diff --git a/.github/workflows/build-container.yaml b/.github/workflows/build-container.yaml
index 5287642a55..55045d86a0 100644
--- a/.github/workflows/build-container.yaml
+++ b/.github/workflows/build-container.yaml
@@ -5,8 +5,10 @@ on:
branches:
- master
- develop
+ - kopff
- release23
- release33
+ - release40
jobs:
build:
diff --git a/README.md b/README.md
index 730b6ee8f4..a0f4b969f6 100644
--- a/README.md
+++ b/README.md
@@ -16,7 +16,7 @@ digital signage network, or single screen, open source and free to use.
[![Licence](https://img.shields.io/github/license/xibosignage/xibo-cms)]()
-Copyright (C) 2006-2023 Xibo Signage Ltd and Contributors.
+Copyright (C) 2006-2024 Xibo Signage Ltd and Contributors.
Xibo is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public
License as published by the Free Software Foundation, either version 3 of the License, or any later version.
@@ -69,10 +69,12 @@ git clone git@github.com:/xibo-cms.git xibo-cms
### Branches
-We maintain the following branches. To contribute to Xibo please also use the `develop` branch as your base.
+We maintain the following branches. To contribute to Xibo please use the `develop` branch as your base.
-- develop: Work in progress toward 4.0.x
+- kopff: Work in progress toward 4.2.x
+- develop: Bug fixes for 4.1.x
- master: Currently 4.0
+- release40: Bug fixes for 4.0
- release33: Bug fixes for 3.3
- release23: Bug fixes for 2.3
- release18: Archive of 1.8
diff --git a/bin/locale.php b/bin/locale.php
index 44fae9e378..486725ba49 100644
--- a/bin/locale.php
+++ b/bin/locale.php
@@ -95,10 +95,10 @@ function __($original)
$sanitizerService = new \Xibo\Helper\SanitizerService();
// Create a new base dependency service
-$baseDepenencyService = new \Xibo\Service\BaseDependenciesService();
-$baseDepenencyService->setConfig(new MockConfigService());
-$baseDepenencyService->setStore(new MockPdoStorageServiceForModuleFactory());
-$baseDepenencyService->setSanitizer($sanitizerService);
+$baseDependencyService = new \Xibo\Service\BaseDependenciesService();
+$baseDependencyService->setConfig(new MockConfigService());
+$baseDependencyService->setStore(new MockPdoStorageServiceForModuleFactory());
+$baseDependencyService->setSanitizer($sanitizerService);
$moduleFactory = new \Xibo\Factory\ModuleFactory(
'',
@@ -106,7 +106,7 @@ function __($original)
$view,
new MockConfigService(),
);
-$moduleFactory->useBaseDependenciesService($baseDepenencyService);
+$moduleFactory->useBaseDependenciesService($baseDependencyService);
// Get all module
$modules = $moduleFactory->getAll();
@@ -114,9 +114,9 @@ function __($original)
$pool,
$view,
);
-$moduleTemplateFactory->useBaseDependenciesService($baseDepenencyService);
+$moduleTemplateFactory->useBaseDependenciesService($baseDependencyService);
// Get all module templates
-$moduleTemplates = $moduleTemplateFactory->getAll();
+$moduleTemplates = $moduleTemplateFactory->getAll(null, false);
// --------------
// Create translation file
diff --git a/cypress/e2e/Layout/Editor/layout_editor_clock.cy.js b/cypress/e2e/Layout/Editor/layout_editor_clock.cy.js
index bb4e229e4e..1930cca09a 100644
--- a/cypress/e2e/Layout/Editor/layout_editor_clock.cy.js
+++ b/cypress/e2e/Layout/Editor/layout_editor_clock.cy.js
@@ -28,6 +28,11 @@ describe('Layout Designer', function() {
it('should create a new layout and be redirected to the layout designer, add/delete analogue clock', function() {
cy.intercept('/playlist/widget/*').as('saveWidget');
+ cy.intercept({
+ method: 'DELETE',
+ url: '/region/*',
+ }).as('deleteWidget');
+
cy.visit('/layout/view');
cy.get('button[href="/layout"]').click();
@@ -76,6 +81,10 @@ describe('Layout Designer', function() {
// Delete
cy.get('#layout-viewer .designer-region .widget-preview[data-type="widget_clock-analogue"]').parents('.designer-region').rightclick();
cy.get('[data-title="Delete"]').click();
+ cy.contains('Yes').click();
+
+ // Wait until the widget has been deleted
+ cy.wait('@deleteWidget');
cy.get('#layout-viewer .designer-region .widget-preview[data-type="widget_clock-analogue"]').should('not.exist');
});
});
diff --git a/cypress/e2e/Layout/Editor/layout_editor_dataset.cy.js b/cypress/e2e/Layout/Editor/layout_editor_dataset.cy.js
index 14b55eee26..426af4175c 100644
--- a/cypress/e2e/Layout/Editor/layout_editor_dataset.cy.js
+++ b/cypress/e2e/Layout/Editor/layout_editor_dataset.cy.js
@@ -29,6 +29,11 @@ describe('Layout Designer', function() {
// Create and alias for load dataset
cy.intercept('/dataset?start=*').as('loadDatasets');
+ cy.intercept({
+ method: 'DELETE',
+ url: '/region/*',
+ }).as('deleteWidget');
+
cy.visit('/layout/view');
cy.get('button[href="/layout"]').click();
@@ -50,25 +55,29 @@ describe('Layout Designer', function() {
cy.wait('@loadDatasets');
// Type the dataset name
- cy.get('.select2-container--open input[type="search"]').type('test');
+ cy.get('.select2-container--open input[type="search"]').type('8 items');
// Wait for datasets to load
cy.wait('@loadDatasets');
- cy.get('.select2-container--open').contains('test');
- cy.get('.select2-container--open .select2-results > ul > li:first').contains('test').click();
-
+ cy.get('.select2-container--open').contains('8 items');
+ cy.get('.select2-container--open .select2-results > ul > li:first').contains('8 items').click();
+
cy.get('[name="lowerLimit"]').clear().type('1');
cy.get('[name="upperLimit"]').clear().type('10');
- cy.get('.order-clause-row > :nth-child(2) > .form-control').select('Text', {force: true});
+ cy.get('.order-clause-row > :nth-child(2) > .form-control').select('Col1', {force: true});
cy.get('.order-clause-row > .btn').click();
- cy.get(':nth-child(2) > :nth-child(2) > .form-control').select('Number', {force: true});
+ cy.get(':nth-child(2) > :nth-child(2) > .form-control').select('Col2', {force: true});
// -------------
// -------------Appearance Tab
cy.get('.nav-link[href="#appearanceTab"]').click();
+ // Check if dataset exists exactly two columns
+ cy.get('#columnsOut')
+ .find('li')
+ .should('have.length', 2)
+
// Select columns available/ move them to columns selected
- cy.get('#columnsOut>li:first').should('have.attr', 'id').and('equal', '1');
cy.get('#columnsOut>li:first')
.trigger('mousedown', {
which: 1,
@@ -80,7 +89,6 @@ describe('Layout Designer', function() {
});
cy.get('#columnsIn').click();
- cy.get('#columnsOut>li:first').should('have.attr', 'id').and('equal', '2');
cy.get('#columnsOut>li:first')
.trigger('mousedown', {
which: 1,
@@ -99,6 +107,10 @@ describe('Layout Designer', function() {
cy.get('#layout-viewer .designer-region .widget-preview[data-type="widget_dataset"]').parents('.designer-region').rightclick();
cy.get('[data-title="Delete"]').click();
+ cy.contains('Yes').click();
+
+ // Wait until the widget has been deleted
+ cy.wait('@deleteWidget');
cy.get('#layout-viewer .designer-region .widget-preview[data-type="widget_dataset"]').should('not.exist');
});
});
diff --git a/cypress/e2e/Layout/Editor/layout_editor_rss_ticker.cy.js b/cypress/e2e/Layout/Editor/layout_editor_rss_ticker.cy.js
index 79a230eb72..a6d452b75a 100644
--- a/cypress/e2e/Layout/Editor/layout_editor_rss_ticker.cy.js
+++ b/cypress/e2e/Layout/Editor/layout_editor_rss_ticker.cy.js
@@ -26,6 +26,11 @@ describe('Layout Designer', function() {
});
it('should create a new layout and be redirected to the layout designer, add/delete RSS ticker widget', function() {
+ cy.intercept({
+ method: 'DELETE',
+ url: '/region/*',
+ }).as('deleteWidget');
+
cy.visit('/layout/view');
cy.get('button[href="/layout"]').click();
@@ -64,12 +69,16 @@ describe('Layout Designer', function() {
cy.get('[name="itemImageFit"]').select('Fill', {force: true});
cy.get('[name="effect"]').select('Fade', {force: true});
cy.get('[name="speed"]').clear().type('500');
- cy.get('.cke_editable_inline').focus().clear();
- cy.get('.cke_editable_inline').type('No data to show').trigger('change');
+ // Update CKEditor value
+ cy.updateCKEditor('noDataMessage', 'No data to show');
cy.get('[name="copyright"]').clear().type('Xibo').trigger('change');
cy.get('#layout-viewer .designer-region .widget-preview[data-type="widget_rss-ticker"]').parents('.designer-region').rightclick();
cy.get('[data-title="Delete"]').click();
+ cy.contains('Yes').click();
+
+ // Wait until the widget has been deleted
+ cy.wait('@deleteWidget');
cy.get('#layout-viewer .designer-region .widget-preview[data-type="widget_rss-ticker"]').should('not.exist');
});
});
diff --git a/cypress/support/commands.js b/cypress/support/commands.js
index b88c55c73e..3a4108b415 100644
--- a/cypress/support/commands.js
+++ b/cypress/support/commands.js
@@ -864,3 +864,19 @@ Cypress.Commands.add('openToolbarMenuForPlaylist', function(menuIdx) {
}
});
});
+
+
+/**
+ * Update data on CKEditor instance
+ * @param {string} ckeditorId
+ * @param {string} value
+ */
+Cypress.Commands.add('updateCKEditor', function(ckeditorId, value) {
+ cy.get('textarea[name="' + ckeditorId + '"]').invoke('prop', 'id').then((id) => {
+ cy.window().then((win) => {
+ win.formHelpers.getCKEditorInstance(
+ id,
+ ).setData(value);
+ });
+ });
+});
diff --git a/db/migrations/20231128144300_real_time_data_migration.php b/db/migrations/20231128144300_real_time_data_migration.php
new file mode 100644
index 0000000000..3bfb807847
--- /dev/null
+++ b/db/migrations/20231128144300_real_time_data_migration.php
@@ -0,0 +1,55 @@
+.
+ */
+
+use Phinx\Migration\AbstractMigration;
+
+/**
+ * Migrations for new real-time data
+ * @phpcs:disable PSR1.Classes.ClassDeclaration.MissingNamespace
+ */
+class RealTimeDataMigration extends AbstractMigration
+{
+ public function change(): void
+ {
+ $this->table('dataset')
+ ->addColumn('isRealTime', 'integer', [
+ 'limit' => \Phinx\Db\Adapter\MysqlAdapter::INT_TINY,
+ 'default' => 0,
+ 'null' => false,
+ ])
+ ->save();
+
+ $this->table('schedule')
+ ->addColumn('dataSetId', 'integer', [
+ 'limit' => \Phinx\Db\Adapter\MysqlAdapter::INT_REGULAR,
+ 'default' => null,
+ 'null' => true
+ ])
+ ->addColumn('dataSetParams', 'text', [
+ 'limit' => \Phinx\Db\Adapter\MysqlAdapter::TEXT_REGULAR,
+ 'default' => null,
+ 'null' => true
+ ])
+ ->addForeignKey('dataSetId', 'dataset', 'dataSetId')
+ ->save();
+ }
+}
diff --git a/db/migrations/20231213120700_schedule_criteria_migration.php b/db/migrations/20231213120700_schedule_criteria_migration.php
new file mode 100644
index 0000000000..21cd2f0bfb
--- /dev/null
+++ b/db/migrations/20231213120700_schedule_criteria_migration.php
@@ -0,0 +1,57 @@
+.
+ */
+
+use Phinx\Migration\AbstractMigration;
+
+/**
+ * Migrations for schedule criteria
+ * @phpcs:disable PSR1.Classes.ClassDeclaration.MissingNamespace
+ */
+class ScheduleCriteriaMigration extends AbstractMigration
+{
+ public function change(): void
+ {
+ $this->table('schedule_criteria')
+ ->addColumn('eventId', 'integer', [
+ 'limit' => \Phinx\Db\Adapter\MysqlAdapter::INT_REGULAR,
+ 'null' => false,
+ ])
+ ->addColumn('type', 'string', [
+ 'limit' => 20,
+ 'null' => false,
+ ])
+ ->addColumn('metric', 'string', [
+ 'limit' => 20,
+ 'null' => false,
+ ])
+ ->addColumn('condition', 'string', [
+ 'limit' => 20,
+ 'null' => false,
+ ])
+ ->addColumn('value', 'string', [
+ 'limit' => 255,
+ 'null' => false,
+ ])
+ ->addForeignKey('eventId', 'schedule', 'eventId')
+ ->save();
+ }
+}
diff --git a/db/migrations/20231220155800_user_module_templates_migration.php b/db/migrations/20231220155800_user_module_templates_migration.php
new file mode 100644
index 0000000000..9cc00b9b8a
--- /dev/null
+++ b/db/migrations/20231220155800_user_module_templates_migration.php
@@ -0,0 +1,61 @@
+.
+ */
+
+use Phinx\Migration\AbstractMigration;
+
+/**
+ * Migrations for adding user supplied module templates
+ * @phpcs:disable PSR1.Classes.ClassDeclaration.MissingNamespace
+ */
+class UserModuleTemplatesMigration extends AbstractMigration
+{
+ public function change(): void
+ {
+ $this->table('module_templates')
+ ->addColumn('templateId', 'string', [
+ 'limit' => 50,
+ 'null' => false,
+ ])
+ ->addColumn('dataType', 'string', [
+ 'limit' => 50,
+ 'null' => false,
+ ])
+ ->addColumn('xml', 'text', [
+ 'limit' => \Phinx\Db\Adapter\MysqlAdapter::TEXT_MEDIUM,
+ 'null' => false,
+ ])
+ ->addColumn('enabled', 'integer', [
+ 'limit' => \Phinx\Db\Adapter\MysqlAdapter::INT_TINY,
+ 'null' => false,
+ 'default' => 1,
+ ])
+ ->addColumn('ownerId', 'integer')
+ ->addForeignKey('ownerId', 'user', 'userId')
+ ->save();
+
+ $this->table('permissionentity')
+ ->insert([
+ ['entity' => 'Xibo\Entity\ModuleTemplate']
+ ])
+ ->save();
+ }
+}
diff --git a/db/migrations/20240227100600_menuboard_field_lengths_migration.php b/db/migrations/20240227100600_menuboard_field_lengths_migration.php
new file mode 100644
index 0000000000..1ff74f4190
--- /dev/null
+++ b/db/migrations/20240227100600_menuboard_field_lengths_migration.php
@@ -0,0 +1,46 @@
+.
+ */
+
+use Phinx\Migration\AbstractMigration;
+
+/**
+ * Migration for adjusting the field length of the menu board product description/allergyInfo
+ * @phpcs:disable PSR1.Classes.ClassDeclaration.MissingNamespace
+ */
+class MenuboardFieldLengthsMigration extends AbstractMigration
+{
+ public function change(): void
+ {
+ $this->table('menu_product')
+ ->changeColumn('description', 'text', [
+ 'limit' => \Phinx\Db\Adapter\MysqlAdapter::TEXT_REGULAR,
+ 'default' => null,
+ 'null' => true,
+ ])
+ ->changeColumn('allergyInfo', 'text', [
+ 'limit' => \Phinx\Db\Adapter\MysqlAdapter::TEXT_REGULAR,
+ 'default' => null,
+ 'null' => true,
+ ])
+ ->save();
+ }
+}
diff --git a/db/migrations/20240227102400_missing_indexes_migration.php b/db/migrations/20240227102400_missing_indexes_migration.php
new file mode 100644
index 0000000000..0ada9fe6c0
--- /dev/null
+++ b/db/migrations/20240227102400_missing_indexes_migration.php
@@ -0,0 +1,51 @@
+.
+ */
+
+use Phinx\Migration\AbstractMigration;
+
+/**
+ * Migration for adding missing indexes
+ * @phpcs:disable PSR1.Classes.ClassDeclaration.MissingNamespace
+ */
+class MissingIndexesMigration extends AbstractMigration
+{
+ public function change(): void
+ {
+ $region = $this->table('region');
+ if (!$region->hasForeignKey('layoutId')) {
+ // Take care of orphaned regions
+ $this->execute('DELETE FROM `region` WHERE `layoutId` NOT IN (SELECT `layoutId` FROM `layout`)');
+
+ // Add the FK
+ $region
+ ->addForeignKey('layoutId', 'layout', 'layoutId')
+ ->save();
+ }
+
+ $playlist = $this->table('playlist');
+ if (!$playlist->hasIndex('regionId')) {
+ $playlist
+ ->addIndex('regionId')
+ ->save();
+ }
+ }
+}
diff --git a/db/migrations/20240408121908_display_alerts_migration.php b/db/migrations/20240408121908_display_alerts_migration.php
new file mode 100644
index 0000000000..29071a4208
--- /dev/null
+++ b/db/migrations/20240408121908_display_alerts_migration.php
@@ -0,0 +1,50 @@
+.
+ */
+
+use Phinx\Migration\AbstractMigration;
+
+/**
+ * Migration for adding more columns to displayevent table.
+ * Add a new column on Command table for createAlertOn.
+ * Add a new column on lkcommanddisplayprofile for createAlertOn.
+ * @phpcs:disable PSR1.Classes.ClassDeclaration.MissingNamespace
+ */
+class DisplayAlertsMigration extends AbstractMigration
+{
+ public function change(): void
+ {
+ $this->table('displayevent')
+ ->changeColumn('start', 'integer', ['null' => true])
+ ->addColumn('eventTypeId', 'integer', ['null' => false, 'default' => 1])
+ ->addColumn('refId', 'integer', ['null' => true, 'default' => null])
+ ->addColumn('detail', 'text', ['null' => true, 'default' => null])
+ ->save();
+
+ $this->table('command')
+ ->addColumn('createAlertOn', 'string', ['null' => false, 'default' => 'never'])
+ ->save();
+
+ $this->table('lkcommanddisplayprofile')
+ ->addColumn('createAlertOn', 'string', ['null' => true, 'default' => null])
+ ->save();
+ }
+}
diff --git a/db/migrations/20240422111609_notification_types_migration.php b/db/migrations/20240422111609_notification_types_migration.php
new file mode 100644
index 0000000000..e2eac45eaf
--- /dev/null
+++ b/db/migrations/20240422111609_notification_types_migration.php
@@ -0,0 +1,72 @@
+.
+ */
+
+use Phinx\Migration\AbstractMigration;
+
+/**
+ * Add new notification type column
+ * Add new notification email options for user groups
+ * @phpcs:disable PSR1.Classes.ClassDeclaration.MissingNamespace
+ */
+class NotificationTypesMigration extends AbstractMigration
+{
+ public function change(): void
+ {
+ $this->table('notification')
+ ->removeColumn('isEmail')
+ ->addColumn('type', 'string', ['null' => false, 'default' => 'unknown', 'limit' => 50])
+ ->save();
+
+ $this->table('group')
+ ->addColumn(
+ 'isDataSetNotification',
+ 'integer',
+ ['limit' => \Phinx\Db\Adapter\MysqlAdapter::INT_TINY, 'default' => 0]
+ )
+ ->addColumn(
+ 'isLayoutNotification',
+ 'integer',
+ ['limit' => \Phinx\Db\Adapter\MysqlAdapter::INT_TINY, 'default' => 0]
+ )
+ ->addColumn(
+ 'isLibraryNotification',
+ 'integer',
+ ['limit' => \Phinx\Db\Adapter\MysqlAdapter::INT_TINY, 'default' => 0]
+ )
+ ->addColumn(
+ 'isReportNotification',
+ 'integer',
+ ['limit' => \Phinx\Db\Adapter\MysqlAdapter::INT_TINY, 'default' => 0]
+ )
+ ->addColumn(
+ 'isScheduleNotification',
+ 'integer',
+ ['limit' => \Phinx\Db\Adapter\MysqlAdapter::INT_TINY, 'default' => 0]
+ )
+ ->addColumn(
+ 'isCustomNotification',
+ 'integer',
+ ['limit' => \Phinx\Db\Adapter\MysqlAdapter::INT_TINY, 'default' => 0]
+ )
+ ->save();
+ }
+}
diff --git a/db/migrations/20240430112500_canvas_duration_fix_migration.php b/db/migrations/20240430112500_canvas_duration_fix_migration.php
new file mode 100644
index 0000000000..a69cd0cf04
--- /dev/null
+++ b/db/migrations/20240430112500_canvas_duration_fix_migration.php
@@ -0,0 +1,37 @@
+.
+ */
+
+use Phinx\Migration\AbstractMigration;
+
+/**
+ * Migration to fix the Canvas duration which mistakenly got added as 60s instead of 1s
+ * @phpcs:disable PSR1.Classes.ClassDeclaration.MissingNamespace
+ */
+class CanvasDurationFixMigration extends AbstractMigration
+{
+ public function change(): void
+ {
+ $this->execute('UPDATE `module` SET `defaultDuration` = 1, `enabled` = 1 WHERE `moduleId` = :moduleId', [
+ 'moduleId' => 'core-canvas',
+ ]);
+ }
+}
diff --git a/db/migrations/20240501111721_session_history_migration.php b/db/migrations/20240501111721_session_history_migration.php
new file mode 100644
index 0000000000..5a26bc9176
--- /dev/null
+++ b/db/migrations/20240501111721_session_history_migration.php
@@ -0,0 +1,49 @@
+.
+ */
+
+use Phinx\Migration\AbstractMigration;
+
+/**
+ * Migration to Add a new table for session_history
+ * @phpcs:disable PSR1.Classes.ClassDeclaration.MissingNamespace
+ */
+class SessionHistoryMigration extends AbstractMigration
+{
+ public function change(): void
+ {
+ $this->table('session_history', ['id' => 'sessionId'])
+ ->addColumn('ipAddress', 'string', ['limit' => 50, 'null' => true, 'default' => null])
+ ->addColumn('userAgent', 'string', ['limit' => 255, 'null' => true, 'default' => null])
+ ->addColumn('startTime', 'datetime', ['null' => true, 'default' => null])
+ ->addColumn('userId', 'integer', ['null' => true, 'default' => null])
+ ->addIndex('userId')
+ ->create();
+
+ $this->table('auditlog')
+ ->addColumn('sessionHistoryId', 'integer', ['null' => true, 'default' => null])
+ ->save();
+
+ $this->table('log')
+ ->addColumn('sessionHistoryId', 'integer', ['null' => true, 'default' => null])
+ ->save();
+ }
+}
diff --git a/db/migrations/20240605101251_auditing_api_requests_migration.php b/db/migrations/20240605101251_auditing_api_requests_migration.php
new file mode 100644
index 0000000000..38205a23af
--- /dev/null
+++ b/db/migrations/20240605101251_auditing_api_requests_migration.php
@@ -0,0 +1,52 @@
+.
+ */
+
+use Phinx\Migration\AbstractMigration;
+
+/**
+ * Migration to Add a new table for session_history
+ * @phpcs:disable PSR1.Classes.ClassDeclaration.MissingNamespace
+ */
+class AuditingApiRequestsMigration extends AbstractMigration
+{
+ public function change(): void
+ {
+ $this->table('application_requests_history', ['id' => 'requestId'])
+ ->addColumn('userId', 'integer', ['null' => true, 'default' => null])
+ ->addColumn('applicationId', 'string', ['limit' => 255, 'null' => true, 'default' => null])
+ ->addColumn('url', 'string', ['limit' => 255, 'null' => true, 'default' => null])
+ ->addColumn('method', 'string', ['limit' => 20, 'null' => true, 'default' => null])
+ ->addColumn('startTime', 'datetime', ['null' => true, 'default' => null])
+ ->addColumn('endTime', 'datetime', ['null' => true, 'default' => null])
+ ->addColumn('duration', 'integer', ['null' => true, 'default' => null])
+ ->addIndex('userId')
+ ->create();
+
+ $this->table('auditlog')
+ ->addColumn('requestId', 'integer', ['null' => true, 'default' => null])
+ ->save();
+
+ $this->table('log')
+ ->addColumn('requestId', 'integer', ['null' => true, 'default' => null])
+ ->save();
+ }
+}
diff --git a/db/migrations/20240612112949_add_switch_delay_and_video_pause_delay_to_sync_group.php b/db/migrations/20240612112949_add_switch_delay_and_video_pause_delay_to_sync_group.php
new file mode 100755
index 0000000000..11159187da
--- /dev/null
+++ b/db/migrations/20240612112949_add_switch_delay_and_video_pause_delay_to_sync_group.php
@@ -0,0 +1,38 @@
+.
+ */
+
+use Phinx\Migration\AbstractMigration;
+
+/**
+ * Added syncSwitchDelay and syncVideoPauseDelay columns to Sync Groups
+ * @phpcs:disable PSR1.Classes.ClassDeclaration.MissingNamespace
+ */
+class AddSwitchDelayAndVideoPauseDelayToSyncGroup extends AbstractMigration
+{
+ public function change(): void
+ {
+ $this->table('syncgroup')
+ ->addColumn('syncSwitchDelay', 'integer', ['null' => false, 'default' => 1])
+ ->addColumn('syncVideoPauseDelay', 'integer', ['null' => true, 'default' => null])
+ ->update();
+ }
+}
diff --git a/db/migrations/20240614031633_update_switch_delay_and_video_pause_delay_migration.php b/db/migrations/20240614031633_update_switch_delay_and_video_pause_delay_migration.php
new file mode 100755
index 0000000000..355af17ef8
--- /dev/null
+++ b/db/migrations/20240614031633_update_switch_delay_and_video_pause_delay_migration.php
@@ -0,0 +1,38 @@
+.
+ */
+
+use Phinx\Migration\AbstractMigration;
+
+/**
+ * Updated syncSwitchDelay and syncVideoPauseDelay columns to accept null values
+ * @phpcs:disable PSR1.Classes.ClassDeclaration.MissingNamespace
+ */
+class UpdateSwitchDelayAndVideoPauseDelayMigration extends AbstractMigration
+{
+ public function change(): void
+ {
+ $this->table('syncgroup')
+ ->changeColumn('syncSwitchDelay', 'integer', ['null' => true, 'default' => null])
+ ->changeColumn('syncVideoPauseDelay', 'integer', ['null' => true, 'default' => null])
+ ->update();
+ }
+}
diff --git a/db/migrations/20240615155000_widget_fallback_data_migration.php b/db/migrations/20240615155000_widget_fallback_data_migration.php
new file mode 100644
index 0000000000..0a3e66ceb9
--- /dev/null
+++ b/db/migrations/20240615155000_widget_fallback_data_migration.php
@@ -0,0 +1,49 @@
+.
+ */
+
+use Phinx\Db\Adapter\MysqlAdapter;
+use Phinx\Migration\AbstractMigration;
+
+/**
+ * Migration to add a new table for modelling widget fallback data
+ * @phpcs:disable PSR1.Classes.ClassDeclaration.MissingNamespace
+ */
+class WidgetFallbackDataMigration extends AbstractMigration
+{
+ public function change(): void
+ {
+ $this->table('widgetdata')
+ ->addColumn('widgetId', 'integer', ['null' => false])
+ ->addColumn('data', 'text', [
+ 'limit' => MysqlAdapter::TEXT_MEDIUM,
+ 'null' => true,
+ 'default' => null,
+ ])
+ ->addColumn('displayOrder', 'integer', [
+ 'limit' => MysqlAdapter::INT_MEDIUM,
+ ])
+ ->addColumn('createdDt', 'datetime', ['null' => true, 'default' => null])
+ ->addColumn('modifiedDt', 'datetime', ['null' => true, 'default' => null])
+ ->addForeignKey('widgetId', 'widget', 'widgetId')
+ ->create();
+ }
+}
diff --git a/db/migrations/20240617040320_add_o_s_details_to_display_table_migration.php b/db/migrations/20240617040320_add_o_s_details_to_display_table_migration.php
new file mode 100755
index 0000000000..51476defd5
--- /dev/null
+++ b/db/migrations/20240617040320_add_o_s_details_to_display_table_migration.php
@@ -0,0 +1,41 @@
+.
+ */
+
+use Phinx\Migration\AbstractMigration;
+
+/**
+ * Migration to Add osVersion, osSdk, manufacturer, brand, model columns to Display table
+ * @phpcs:disable PSR1.Classes.ClassDeclaration.MissingNamespace
+ */
+class AddOSDetailsToDisplayTableMigration extends AbstractMigration
+{
+ public function change(): void
+ {
+ $this->table('display')
+ ->addColumn('osVersion', 'string', ['default' => null, 'null' => true])
+ ->addColumn('osSdk', 'string', ['default' => null, 'null' => true])
+ ->addColumn('manufacturer', 'string', ['default' => null, 'null' => true])
+ ->addColumn('brand', 'string', ['default' => null, 'null' => true])
+ ->addColumn('model', 'string', ['default' => null, 'null' => true])
+ ->save();
+ }
+}
diff --git a/db/migrations/20240717043020_add_data_connector_source_to_dataset_table_migration.php b/db/migrations/20240717043020_add_data_connector_source_to_dataset_table_migration.php
new file mode 100644
index 0000000000..e12a3c9da4
--- /dev/null
+++ b/db/migrations/20240717043020_add_data_connector_source_to_dataset_table_migration.php
@@ -0,0 +1,37 @@
+.
+ */
+
+use Phinx\Migration\AbstractMigration;
+
+/**
+ * Migration to add data source column to the dataset table.
+ * @phpcs:disable PSR1.Classes.ClassDeclaration.MissingNamespace
+ */
+class AddDataConnectorSourceToDatasetTableMigration extends AbstractMigration
+{
+ public function change(): void
+ {
+ $this->table('dataset')
+ ->addColumn('dataConnectorSource', 'string', ['default' => null, 'null' => true])
+ ->save();
+ }
+}
diff --git a/db/migrations/20240717113400_add_last_used_time_to_session_history_table_migration.php b/db/migrations/20240717113400_add_last_used_time_to_session_history_table_migration.php
new file mode 100755
index 0000000000..764c80b90b
--- /dev/null
+++ b/db/migrations/20240717113400_add_last_used_time_to_session_history_table_migration.php
@@ -0,0 +1,37 @@
+.
+ */
+
+use Phinx\Migration\AbstractMigration;
+
+/**
+ * Migration to add lastUsedTime in session_history table
+ * @phpcs:disable PSR1.Classes.ClassDeclaration.MissingNamespace
+ */
+class AddLastUsedTimeToSessionHistoryTableMigration extends AbstractMigration
+{
+ public function change(): void
+ {
+ $this->table('session_history')
+ ->addColumn('lastUsedTime', 'datetime', ['null' => true, 'default' => null])
+ ->save();
+ }
+}
diff --git a/docker/etc/apache2/sites-available/000-default.conf b/docker/etc/apache2/sites-available/000-default.conf
index 1f99fe02f8..762f518aa6 100644
--- a/docker/etc/apache2/sites-available/000-default.conf
+++ b/docker/etc/apache2/sites-available/000-default.conf
@@ -46,7 +46,6 @@ ServerTokens OS
# Hardening
Header always append X-Frame-Options SAMEORIGIN
Header always append X-Content-Type-Options nosniff
- Header always append Content-Security-Policy "frame-ancestors 'self'"
# Alias /xibo /var/www/cms/web
diff --git a/lib/Connector/DataConnectorScriptProviderInterface.php b/lib/Connector/DataConnectorScriptProviderInterface.php
new file mode 100644
index 0000000000..48533ffe7d
--- /dev/null
+++ b/lib/Connector/DataConnectorScriptProviderInterface.php
@@ -0,0 +1,53 @@
+.
+ */
+
+namespace Xibo\Connector;
+
+/**
+ * Interface for handling the DataConnectorScriptRequestEvent.
+ *
+ * Provides methods for connectors to supply their data connector JS code.
+ *
+ * These methods should be used together:
+ * - Use getConnectorId() to retrieve the unique identifier of the connector provided in the event.
+ * - Check if the connector's ID matches the ID provided in the event.
+ * - If the IDs match, use setScript() to provide the JavaScript code for the data connector.
+ *
+ * This ensures that the correct script is supplied by the appropriate connector.
+ */
+interface DataConnectorScriptProviderInterface
+{
+ /**
+ * Get the unique identifier of the connector that is selected as the data source for the dataset.
+ *
+ * @return string
+ */
+ public function getConnectorId(): string;
+
+ /**
+ * Set the data connector JavaScript code provided by the connector. Requires real time.
+ *
+ * @param string $script JavaScript code
+ * @return void
+ */
+ public function setScript(string $script): void;
+}
diff --git a/lib/Connector/DataConnectorSourceProviderInterface.php b/lib/Connector/DataConnectorSourceProviderInterface.php
new file mode 100644
index 0000000000..0b863b89f3
--- /dev/null
+++ b/lib/Connector/DataConnectorSourceProviderInterface.php
@@ -0,0 +1,43 @@
+.
+ */
+
+namespace Xibo\Connector;
+
+use InvalidArgumentException;
+
+/**
+ * Interface for handling the DataConnectorSourceRequestEvent.
+ *
+ * Registers connectors that provide data connector JavaScript (JS).
+ */
+interface DataConnectorSourceProviderInterface
+{
+ /**
+ * Adds/Registers a connector, that would provide a data connector JS, to the event.
+ * Implementations should use $this->getSourceName() as the $id and $this->getTitle() as the $name.
+ *
+ * @param string $id
+ * @param string $name
+ * @throws InvalidArgumentException if a duplicate ID or name is found.
+ */
+ public function addDataConnectorSource(string $id, string $name): void;
+}
diff --git a/lib/Connector/OpenWeatherMapConnector.php b/lib/Connector/OpenWeatherMapConnector.php
index 26ca577f18..ddb76239da 100644
--- a/lib/Connector/OpenWeatherMapConnector.php
+++ b/lib/Connector/OpenWeatherMapConnector.php
@@ -26,7 +26,11 @@
use GuzzleHttp\Exception\RequestException;
use Illuminate\Support\Str;
use Symfony\Component\EventDispatcher\EventDispatcherInterface;
+use Xibo\Event\ScheduleCriteriaRequestEvent;
+use Xibo\Event\ScheduleCriteriaRequestInterface;
use Xibo\Event\WidgetDataRequestEvent;
+use Xibo\Event\XmdsWeatherRequestEvent;
+use Xibo\Support\Exception\ConfigurationException;
use Xibo\Support\Exception\GeneralException;
use Xibo\Support\Sanitizer\SanitizerInterface;
use Xibo\Widget\DataType\Forecast;
@@ -54,6 +58,8 @@ class OpenWeatherMapConnector implements ConnectorInterface
public function registerWithDispatcher(EventDispatcherInterface $dispatcher): ConnectorInterface
{
$dispatcher->addListener(WidgetDataRequestEvent::$NAME, [$this, 'onDataRequest']);
+ $dispatcher->addListener(ScheduleCriteriaRequestEvent::$NAME, [$this, 'onScheduleCriteriaRequest']);
+ $dispatcher->addListener(XmdsWeatherRequestEvent::$NAME, [$this, 'onXmdsWeatherRequest']);
return $this;
}
@@ -88,6 +94,7 @@ public function processSettingsForm(SanitizerInterface $params, array $settings)
$settings['owmApiKey'] = $params->getString('owmApiKey');
$settings['owmIsPaidPlan'] = $params->getCheckbox('owmIsPaidPlan');
$settings['cachePeriod'] = $params->getInt('cachePeriod');
+ $settings['xmdsCachePeriod'] = $params->getInt('xmdsCachePeriod');
}
return $settings;
}
@@ -161,8 +168,23 @@ private function getWeatherData(DataProviderInterface $dataProvider)
$data = $this->queryApi($this->apiUrl . $this->forecastCurrent . $url, $cacheExpire);
$data['current'] = $this->parseCurrentIntoFormat($data);
- $timezoneOffset = (int)$data['timezone'] / 3600;
- $this->timezone = (new \DateTimeZone(($timezoneOffset < 0 ? '-' : '+') . abs($timezoneOffset)))->getName();
+ // initialize timezone
+ $timezoneOffset = (int)$data['timezone'];
+
+ // Calculate the number of whole hours in the offset
+ $offsetHours = floor($timezoneOffset / 3600);
+
+ // Calculate the remaining minutes after extracting the whole hours
+ $offsetMinutes = ($timezoneOffset % 3600) / 60;
+
+ // Determine the sign of the offset (positive or negative)
+ $sign = $offsetHours < 0 ? '-' : '+';
+
+ // Ensure the format is as follows: +/-hh:mm
+ $formattedOffset = sprintf("%s%02d:%02d", $sign, abs($offsetHours), abs($offsetMinutes));
+
+ // Get the timezone name
+ $this->timezone = (new \DateTimeZone($formattedOffset))->getName();
// Pick out the country
$country = $data['sys']['country'] ?? null;
@@ -217,6 +239,7 @@ private function getWeatherData(DataProviderInterface $dataProvider)
$this->currentDay->temperatureUnit = $unit['tempUnit'] ?: 'C';
$this->currentDay->windSpeedUnit = $unit['windUnit'] ?: 'KPH';
$this->currentDay->visibilityDistanceUnit = $unit['visibilityUnit'] ?: 'km';
+ $this->currentDay->location = $data['name'] ?? '';
$this->processItemIntoDay($this->currentDay, $data['current'], $units, true);
$countForecast = 0;
@@ -231,6 +254,7 @@ private function getWeatherData(DataProviderInterface $dataProvider)
$day->temperatureUnit = $this->currentDay->temperatureUnit;
$day->windSpeedUnit = $this->currentDay->windSpeedUnit;
$day->visibilityDistanceUnit = $this->currentDay->visibilityDistanceUnit;
+ $day->location = $this->currentDay->location;
$this->processItemIntoDay($day, $dayItem, $units);
$forecasts[] = $day;
@@ -631,4 +655,240 @@ private static function cardinalDirections()
'NW' => [292.5, 337.5]
];
}
+
+ /**
+ * @param ScheduleCriteriaRequestInterface $event
+ * @return void
+ * @throws ConfigurationException
+ */
+ public function onScheduleCriteriaRequest(ScheduleCriteriaRequestInterface $event): void
+ {
+ // Initialize Open Weather Schedule Criteria parameters
+ $event->addType('weather', __('Weather'))
+ ->addMetric('weather_condition', __('Weather Condition'))
+ ->addValues('dropdown', [
+ 'clear_sky' => __('Clear Sky'),
+ 'few_clouds' => __('Few Clouds'),
+ 'scattered_clouds' => __('Scattered Clouds'),
+ 'broken_clouds' => __('Broken Clouds'),
+ 'shower_rain' => __('Shower Rain'),
+ 'rain' => __('Rain'),
+ 'thunderstorm' => __('Thunderstorm'),
+ 'snow' => __('Snow'),
+ 'mist' => __('Mist')
+ ])
+ ->addMetric('temperature_imperial', __('Temperature (Imperial)'))
+ ->addValues('number', [])
+ ->addMetric('temperature_metric', __('Temperature (Metric)'))
+ ->addValues('number', [])
+ ->addMetric('apparent_temperature_imperial', __('Apparent Temperature (Imperial)'))
+ ->addValues('number', [])
+ ->addMetric('apparent_temperature_metric', __('Apparent Temperature (Metric)'))
+ ->addValues('number', [])
+ ->addMetric('wind_speed', __('Wind Speed'))
+ ->addValues('number', [])
+ ->addMetric('wind_direction', __('Wind Direction'))
+ ->addValues('dropdown', [
+ 'N' => __('North'),
+ 'NNE ' => __('North-Northeast'),
+ 'NE' => __('Northeast'),
+ 'ENE' => __('East-Northeast'),
+ 'E' => __('East'),
+ 'ESE' => __('East-Southeast'),
+ 'SE' => __('Southeast'),
+ 'SSE' => __('South-Southeast'),
+ 'S' => __('South'),
+ 'SSW' => __('South-Southwest'),
+ 'SW' => __('Southwest'),
+ 'WSW' => __('West-Southwest'),
+ 'W' => __('West'),
+ 'WNW' => __('West-Northwest'),
+ 'NW' => __('Northwest'),
+ 'NNW' => __('North-Northwest'),
+ ])
+ ->addMetric('wind_bearing', __('Wind Bearing'))
+ ->addValues('number', [])
+ ->addMetric('humidity', __('Humidity (Percent)'))
+ ->addValues('number', [])
+ ->addMetric('pressure', __('Pressure'))
+ ->addValues('number', [])
+ ->addMetric('visibility', __('Visibility'))
+ ->addValues('number', []);
+ }
+
+ /**
+ * @param $item
+ * @param $unit
+ * @param $requestUnit
+ * @return array
+ */
+ private function processXmdsWeatherData($item, $unit, $requestUnit): array
+ {
+ $windSpeedUnit = $unit['windUnit'] ?? 'KPH';
+ $visibilityDistanceUnit = $unit['visibilityUnit'] ?? 'km';
+
+ // var to store output/response
+ $data = array();
+
+ // format the weather condition
+ $data['weather_condition'] = str_replace(' ', '_', strtolower($item['weather'][0]['main']));
+
+ // Temperature
+ // imperial = F
+ // metric = C
+ $tempImperial = $item['temp'];
+ $apparentTempImperial = $item['feels_like'];
+
+ // Convert F to C
+ $tempMetric = ($tempImperial - 32) * 5 / 9;
+ $apparentTempMetric = ($apparentTempImperial - 32) * 5 / 9;
+
+ // Round those temperature values
+ $data['temperature_imperial'] = round($tempImperial, 0);
+ $data['apparent_temperature_imperial'] = round($apparentTempImperial, 0);
+ $data['temperature_metric'] = round($tempMetric, 0);
+ $data['apparent_temperature_metric'] = round($apparentTempMetric, 0);
+
+
+ // Humidity
+ $data['humidity'] = $item['humidity'];
+
+ // Pressure
+ // received in hPa, display in mB
+ $data['pressure'] = $item['pressure'] / 100;
+
+ // Wind
+ // metric = meters per second
+ // imperial = miles per hour
+ $data['wind_speed'] = $item['wind_speed'] ?? $item['speed'] ?? null;
+ $data['wind_bearing'] = $item['wind_deg'] ?? $item['deg'] ?? null;
+
+ if ($requestUnit === 'metric' && $windSpeedUnit !== 'MPS') {
+ // We have MPS and need to go to something else
+ if ($windSpeedUnit === 'MPH') {
+ // Convert MPS to MPH
+ $data['wind_speed'] = round($data['wind_speed'] * 2.237, 2);
+ } else if ($windSpeedUnit === 'KPH') {
+ // Convert MPS to KPH
+ $data['wind_speed'] = round($data['wind_speed'] * 3.6, 2);
+ }
+ } else if ($requestUnit === 'imperial' && $windSpeedUnit !== 'MPH') {
+ if ($windSpeedUnit === 'MPS') {
+ // Convert MPH to MPS
+ $data['wind_speed'] = round($data['wind_speed'] / 2.237, 2);
+ } else if ($windSpeedUnit === 'KPH') {
+ // Convert MPH to KPH
+ $data['wind_speed'] = round($data['wind_speed'] * 1.609344, 2);
+ }
+ }
+
+ // Wind direction
+ $data['wind_direction'] = '--';
+ if ($data['wind_bearing'] !== null && $data['wind_bearing'] !== 0) {
+ foreach (self::cardinalDirections() as $dir => $angles) {
+ if ($data['wind_bearing'] >= $angles[0] && $data['wind_bearing'] < $angles[1]) {
+ $data['wind_direction'] = $dir;
+ break;
+ }
+ }
+ }
+
+ // Visibility
+ // metric = meters
+ // imperial = meters?
+ $data['visibility'] = $item['visibility'] ?? '--';
+
+ if ($data['visibility'] !== '--') {
+ // Always in meters
+ if ($visibilityDistanceUnit === 'mi') {
+ // Convert meters to miles
+ $data['visibility'] = $data['visibility'] / 1609;
+ } else {
+ if ($visibilityDistanceUnit === 'km') {
+ // Convert meters to KM
+ $data['visibility'] = $data['visibility'] / 1000;
+ }
+ }
+ }
+
+ return $data;
+ }
+
+ /**
+ * @param XmdsWeatherRequestEvent $event
+ * @return void
+ * @throws GeneralException|\SoapFault
+ */
+ public function onXmdsWeatherRequest(XmdsWeatherRequestEvent $event): void
+ {
+ // check for API Key
+ if (empty($this->getSetting('owmApiKey'))) {
+ $this->getLogger()->debug('onXmdsWeatherRequest: Open Weather Map not configured.');
+
+ throw new \SoapFault(
+ 'Receiver',
+ 'Open Weather Map API key is not configured'
+ );
+ }
+
+ $latitude = $event->getLatitude();
+ $longitude = $event->getLongitude();
+
+ // Cache expiry date
+ $cacheExpire = Carbon::now()->addHours($this->getSetting('xmdsCachePeriod'));
+
+ // use imperial as the default units, so we can get the right value when converting to metric
+ $units = 'imperial';
+
+ // Temperature and Wind Speed Unit Mappings
+ $unit = $this->getUnit('auto');
+
+ // Build the URL
+ $url = '?lat=' . $latitude
+ . '&lon=' . $longitude
+ . '&units=' . $units
+ . '&appid=[API_KEY]';
+
+ // check API plan
+ if ($this->getSetting('owmIsPaidPlan') ?? 0 == 1) {
+ // use weather data endpoints for Paid Plan
+ $data = $this->queryApi($this->apiUrl . $this->forecastCurrent . $url, $cacheExpire);
+ $data['current'] = $this->parseCurrentIntoFormat($data);
+
+ // Pick out the country
+ $country = $data['sys']['country'] ?? null;
+
+ // If we don't have a unit, then can we base it on the timezone we got back?
+ if ($country !== null) {
+ // Pick out some countries to set the units
+ if ($country === 'GB') {
+ $unit = $this->getUnit('uk2');
+ } else if ($country === 'US') {
+ $unit = $this->getUnit('us');
+ } else if ($country === 'CA') {
+ $unit = $this->getUnit('ca');
+ } else {
+ $unit = $this->getUnit('si');
+ }
+ }
+ } else {
+ // We use one call API 3.0 for Free Plan
+ $data = $this->queryApi($this->apiUrl . $this->forecastCombinedV3 . $url, $cacheExpire);
+
+ // Country based on timezone (this is harder than using the real country)
+ if (Str::startsWith($data['timezone'], 'America')) {
+ $unit = $this->getUnit('us');
+ } else if ($data['timezone'] === 'Europe/London') {
+ $unit = $this->getUnit('uk2');
+ } else {
+ $unit = $this->getUnit('si');
+ }
+ }
+
+ // process weather data
+ $weatherData = $this->processXmdsWeatherData($data['current'], $unit, 'imperial');
+
+ // Set the processed weather data in the event as a JSON-encoded string
+ $event->setWeatherData(json_encode($weatherData));
+ }
}
diff --git a/lib/Connector/PixabayConnector.php b/lib/Connector/PixabayConnector.php
index 0792814cbb..5e62b0704b 100644
--- a/lib/Connector/PixabayConnector.php
+++ b/lib/Connector/PixabayConnector.php
@@ -1,8 +1,8 @@
addListener('connector.provider.library', [$this, 'onLibraryProvider']);
$dispatcher->addListener('connector.provider.library.import', [$this, 'onLibraryImport']);
+ $dispatcher->addListener('connector.provider.library.list', [$this, 'onLibraryList']);
return $this;
}
@@ -98,139 +100,142 @@ public function onLibraryProvider(LibraryProviderEvent $event)
return;
}
- // We do! Let's get some results from Pixabay
- // first we look at paging
- $start = $event->getStart();
- $perPage = $event->getLength();
- if ($start == 0) {
- $page = 1;
- } else {
- $page = floor($start / $perPage) + 1;
- }
-
- $query = [
- 'key' => $apiKey,
- 'page' => $page,
- 'per_page' => $perPage,
- 'safesearch' => 'true'
- ];
-
- // Now we handle any other search
- if ($event->getOrientation() === 'landscape') {
- $query['orientation'] = 'horizontal';
- } else if ($event->getOrientation() === 'portrait') {
- $query['orientation'] = 'vertical';
- }
-
- if (!empty($event->getSearch())) {
- $query['q'] = urlencode($event->getSearch());
- }
-
- // Pixabay either returns images or videos, not both.
- if (count($event->getTypes()) !== 1) {
- return;
- }
-
- $type = $event->getTypes()[0];
- if (!in_array($type, ['image', 'video'])) {
- return;
- }
+ // was Pixabay requested?
+ if ($event->getProviderName() === $this->getSourceName()) {
+ // We do! Let's get some results from Pixabay
+ // first we look at paging
+ $start = $event->getStart();
+ $perPage = $event->getLength();
+ if ($start == 0) {
+ $page = 1;
+ } else {
+ $page = floor($start / $perPage) + 1;
+ }
- // Pixabay require a 24-hour cache of each result set.
- $key = md5($type . '_' . json_encode($query));
- $cache = $this->getPool()->getItem($key);
- $body = $cache->get();
+ $query = [
+ 'key' => $apiKey,
+ 'page' => $page,
+ 'per_page' => $perPage,
+ 'safesearch' => 'true'
+ ];
- if ($cache->isMiss()) {
- $this->getLogger()->debug('onLibraryProvider: cache miss, generating.');
+ // Now we handle any other search
+ if ($event->getOrientation() === 'landscape') {
+ $query['orientation'] = 'horizontal';
+ } else if ($event->getOrientation() === 'portrait') {
+ $query['orientation'] = 'vertical';
+ }
- // Make the request
- $request = $this->getClient()->request('GET', $baseUrl . ($type === 'video' ? 'videos' : ''), [
- 'query' => $query
- ]);
+ if (!empty($event->getSearch())) {
+ $query['q'] = urlencode($event->getSearch());
+ }
- $body = $request->getBody()->getContents();
- if (empty($body)) {
- $this->getLogger()->debug('onLibraryProvider: Empty body');
+ // Pixabay either returns images or videos, not both.
+ if (count($event->getTypes()) !== 1) {
return;
}
- $body = json_decode($body);
- if ($body === null || $body === false) {
- $this->getLogger()->debug('onLibraryProvider: non-json body or empty body returned.');
+ $type = $event->getTypes()[0];
+ if (!in_array($type, ['image', 'video'])) {
return;
}
- // Cache for next time
- $cache->set($body);
- $cache->expiresAt(Carbon::now()->addHours(24));
- $this->getPool()->saveDeferred($cache);
- } else {
- $this->getLogger()->debug('onLibraryProvider: serving from cache.');
- }
+ // Pixabay require a 24-hour cache of each result set.
+ $key = md5($type . '_' . json_encode($query));
+ $cache = $this->getPool()->getItem($key);
+ $body = $cache->get();
- $providerDetails = new ProviderDetails();
- $providerDetails->id = 'pixabay';
- $providerDetails->link = 'https://pixabay.com';
- $providerDetails->logoUrl = '/theme/default/img/connectors/pixabay_logo.svg';
- $providerDetails->backgroundColor = '';
+ if ($cache->isMiss()) {
+ $this->getLogger()->debug('onLibraryProvider: cache miss, generating.');
- // Process each hit into a search result and add it to the overall results we've been given.
- foreach ($body->hits as $result) {
- $searchResult = new SearchResult();
- // TODO: add more info
- $searchResult->source = $this->getSourceName();
- $searchResult->id = $result->id;
- $searchResult->title = $result->tags;
- $searchResult->provider = $providerDetails;
-
- if ($type === 'video') {
- $searchResult->type = 'video';
- $searchResult->thumbnail = $result->videos->tiny->url;
- $searchResult->duration = $result->duration;
- if (!empty($result->videos->large)) {
- $searchResult->download = $result->videos->large->url;
- $searchResult->width = $result->videos->large->width;
- $searchResult->height = $result->videos->large->height;
- $searchResult->fileSize = $result->videos->large->size;
- } else if (!empty($result->videos->medium)) {
- $searchResult->download = $result->videos->medium->url;
- $searchResult->width = $result->videos->medium->width;
- $searchResult->height = $result->videos->medium->height;
- $searchResult->fileSize = $result->videos->medium->size;
- } else if (!empty($result->videos->small)) {
- $searchResult->download = $result->videos->small->url;
- $searchResult->width = $result->videos->small->width;
- $searchResult->height = $result->videos->small->height;
- $searchResult->fileSize = $result->videos->small->size;
- } else {
- $searchResult->download = $result->videos->tiny->url;
- $searchResult->width = $result->videos->tiny->width;
- $searchResult->height = $result->videos->tiny->height;
- $searchResult->fileSize = $result->videos->tiny->size;
+ // Make the request
+ $request = $this->getClient()->request('GET', $baseUrl . ($type === 'video' ? 'videos' : ''), [
+ 'query' => $query
+ ]);
+
+ $body = $request->getBody()->getContents();
+ if (empty($body)) {
+ $this->getLogger()->debug('onLibraryProvider: Empty body');
+ return;
}
- if (!empty($result->picture_id ?? null)) {
- // Try the old way (at some point this stopped working and went to the thumbnail approach above
- $searchResult->videoThumbnailUrl = str_replace(
- 'pictureId',
- $result->picture_id,
- 'https://i.vimeocdn.com/video/pictureId_960x540.png'
- );
- } else {
- // Use the medium thumbnail if we have it, otherwise the tiny one.
- $searchResult->videoThumbnailUrl = $result->videos->medium->thumbnail
- ?? $result->videos->tiny->thumbnail;
+ $body = json_decode($body);
+ if ($body === null || $body === false) {
+ $this->getLogger()->debug('onLibraryProvider: non-json body or empty body returned.');
+ return;
}
+
+ // Cache for next time
+ $cache->set($body);
+ $cache->expiresAt(Carbon::now()->addHours(24));
+ $this->getPool()->saveDeferred($cache);
} else {
- $searchResult->type = 'image';
- $searchResult->thumbnail = $result->previewURL;
- $searchResult->download = $result->fullHDURL ?? $result->largeImageURL;
- $searchResult->width = $result->imageWidth;
- $searchResult->height = $result->imageHeight;
- $searchResult->fileSize = $result->imageSize;
+ $this->getLogger()->debug('onLibraryProvider: serving from cache.');
+ }
+
+ $providerDetails = new ProviderDetails();
+ $providerDetails->id = 'pixabay';
+ $providerDetails->link = 'https://pixabay.com';
+ $providerDetails->logoUrl = '/theme/default/img/connectors/pixabay_logo.svg';
+ $providerDetails->iconUrl = '/theme/default/img/connectors/pixabay_logo_square.svg';
+ $providerDetails->backgroundColor = '';
+
+ // Process each hit into a search result and add it to the overall results we've been given.
+ foreach ($body->hits as $result) {
+ $searchResult = new SearchResult();
+ $searchResult->source = $this->getSourceName();
+ $searchResult->id = $result->id;
+ $searchResult->title = $result->tags;
+ $searchResult->provider = $providerDetails;
+
+ if ($type === 'video') {
+ $searchResult->type = 'video';
+ $searchResult->thumbnail = $result->videos->tiny->url;
+ $searchResult->duration = $result->duration;
+ if (!empty($result->videos->large)) {
+ $searchResult->download = $result->videos->large->url;
+ $searchResult->width = $result->videos->large->width;
+ $searchResult->height = $result->videos->large->height;
+ $searchResult->fileSize = $result->videos->large->size;
+ } else if (!empty($result->videos->medium)) {
+ $searchResult->download = $result->videos->medium->url;
+ $searchResult->width = $result->videos->medium->width;
+ $searchResult->height = $result->videos->medium->height;
+ $searchResult->fileSize = $result->videos->medium->size;
+ } else if (!empty($result->videos->small)) {
+ $searchResult->download = $result->videos->small->url;
+ $searchResult->width = $result->videos->small->width;
+ $searchResult->height = $result->videos->small->height;
+ $searchResult->fileSize = $result->videos->small->size;
+ } else {
+ $searchResult->download = $result->videos->tiny->url;
+ $searchResult->width = $result->videos->tiny->width;
+ $searchResult->height = $result->videos->tiny->height;
+ $searchResult->fileSize = $result->videos->tiny->size;
+ }
+
+ if (!empty($result->picture_id ?? null)) {
+ // Try the old way (at some point this stopped working and went to the thumbnail approach above
+ $searchResult->videoThumbnailUrl = str_replace(
+ 'pictureId',
+ $result->picture_id,
+ 'https://i.vimeocdn.com/video/pictureId_960x540.png'
+ );
+ } else {
+ // Use the medium thumbnail if we have it, otherwise the tiny one.
+ $searchResult->videoThumbnailUrl = $result->videos->medium->thumbnail
+ ?? $result->videos->tiny->thumbnail;
+ }
+ } else {
+ $searchResult->type = 'image';
+ $searchResult->thumbnail = $result->previewURL;
+ $searchResult->download = $result->fullHDURL ?? $result->largeImageURL;
+ $searchResult->width = $result->imageWidth;
+ $searchResult->height = $result->imageHeight;
+ $searchResult->fileSize = $result->imageSize;
+ }
+ $event->addResult($searchResult);
}
- $event->addResult($searchResult);
}
}
@@ -246,4 +251,24 @@ public function onLibraryImport(LibraryProviderImportEvent $event)
}
}
}
+
+ public function onLibraryList(LibraryProviderListEvent $event)
+ {
+ $this->getLogger()->debug('onLibraryList:event');
+
+ if (empty($this->getSetting('apiKey'))) {
+ $this->getLogger()->debug('onLibraryList: No api key');
+ return;
+ }
+
+ $providerDetails = new ProviderDetails();
+ $providerDetails->id = 'pixabay';
+ $providerDetails->link = 'https://pixabay.com';
+ $providerDetails->logoUrl = '/theme/default/img/connectors/pixabay_logo.svg';
+ $providerDetails->iconUrl = '/theme/default/img/connectors/pixabay_logo_square.svg';
+ $providerDetails->backgroundColor = '';
+ $providerDetails->mediaTypes = ['image', 'video'];
+
+ $event->addProvider($providerDetails);
+ }
}
diff --git a/lib/Connector/ProviderDetails.php b/lib/Connector/ProviderDetails.php
index 8abc2313d3..b444bf82fa 100644
--- a/lib/Connector/ProviderDetails.php
+++ b/lib/Connector/ProviderDetails.php
@@ -1,6 +1,6 @@
$this->message,
'link' => $this->link,
'logoUrl' => $this->logoUrl,
- 'backgroundColor' => $this->backgroundColor
+ 'iconUrl' => $this->iconUrl,
+ 'backgroundColor' => $this->backgroundColor,
+ 'mediaTypes' => $this->mediaTypes
];
}
}
diff --git a/lib/Connector/XiboExchangeConnector.php b/lib/Connector/XiboExchangeConnector.php
index 6b576ea285..d7d405bf65 100644
--- a/lib/Connector/XiboExchangeConnector.php
+++ b/lib/Connector/XiboExchangeConnector.php
@@ -93,7 +93,7 @@ public function onTemplateProvider(TemplateProviderEvent $event)
$this->getLogger()->debug('XiboExchangeConnector: onTemplateProvider');
// Get a cache of the layouts.json file, or request one from download.
- $uri = 'https://download.xibosignage.com/layouts_v4.json';
+ $uri = 'https://download.xibosignage.com/layouts_v4_1.json';
$key = md5($uri);
$cache = $this->getPool()->getItem($key);
$body = $cache->get();
@@ -132,19 +132,36 @@ public function onTemplateProvider(TemplateProviderEvent $event)
$providerDetails = new ProviderDetails();
$providerDetails->id = $this->getSourceName();
$providerDetails->logoUrl = $this->getThumbnail();
+ $providerDetails->iconUrl = $this->getThumbnail();
$providerDetails->message = $this->getTitle();
$providerDetails->backgroundColor = '';
+ // parse the templates based on orientation filter.
+ if (!empty($event->getOrientation())) {
+ $templates = [];
+ foreach ($body as $template) {
+ if (!empty($template->orientation) &&
+ Str::contains($template->orientation, $event->getOrientation(), true)
+ ) {
+ $templates[] = $template;
+ }
+ }
+ } else {
+ $templates = $body;
+ }
+
// Filter the body based on search param.
if (!empty($event->getSearch())) {
$filtered = [];
- foreach ($body as $template) {
- if (Str::contains($template->title, $event->getSearch())) {
+ foreach ($templates as $template) {
+ if (Str::contains($template->title, $event->getSearch(), true)) {
$filtered[] = $template;
continue;
}
- if (!empty($template->description) && Str::contains($template->description, $event->getSearch())) {
+ if (!empty($template->description) &&
+ Str::contains($template->description, $event->getSearch(), true)
+ ) {
$filtered[] = $template;
continue;
}
@@ -156,9 +173,18 @@ public function onTemplateProvider(TemplateProviderEvent $event)
}
}
} else {
- $filtered = $body;
+ $filtered = $templates;
}
+ // sort, featured first, otherwise alphabetically.
+ usort($filtered, function ($a, $b) {
+ if (property_exists($a, 'isFeatured') && property_exists($b, 'isFeatured')) {
+ return $b->isFeatured <=> $a->isFeatured;
+ } else {
+ return $a->title <=> $b->title;
+ }
+ });
+
for ($i = $start; $i < ($start + $perPage - 1) && $i < count($filtered); $i++) {
$searchResult = $this->createSearchResult($filtered[$i]);
$searchResult->provider = $providerDetails;
@@ -204,6 +230,10 @@ private function createSearchResult($template) : SearchResult
$searchResult->orientation = $template->orientation;
}
+ if (property_exists($template, 'isFeatured')) {
+ $searchResult->isFeatured = $template->isFeatured;
+ }
+
// Thumbnail
$searchResult->thumbnail = $template->thumbnailUrl;
$searchResult->download = $template->downloadUrl;
diff --git a/lib/Connector/XiboSspConnector.php b/lib/Connector/XiboSspConnector.php
index 45b109e03c..0b2b657198 100644
--- a/lib/Connector/XiboSspConnector.php
+++ b/lib/Connector/XiboSspConnector.php
@@ -442,7 +442,7 @@ public function activity(SanitizerInterface $params): array
'fromDt' => $fromDt->toAtomString(),
'toDt' => $toDt->toAtomString(),
'displayId' => $params->getInt('displayId'),
- 'campaignId' => $params->getString('campaignId'),
+ 'campaignId' => $params->getString('partnerId'),
],
]);
@@ -463,6 +463,22 @@ public function activity(SanitizerInterface $params): array
];
}
+ /**
+ * Available Partners
+ */
+ public function getAvailablePartnersFilter(SanitizerInterface $params): array
+ {
+ try {
+ return $this->getAvailablePartners() ?? [];
+ } catch (\Exception $e) {
+ $this->getLogger()->error('activity: e = ' . $e->getMessage());
+ }
+
+ return [
+ 'data' => [],
+ 'recordsTotal' => 0,
+ ];
+ }
//
//
diff --git a/lib/Controller/AuditLog.php b/lib/Controller/AuditLog.php
index 69bf9e594e..aa76689ac0 100644
--- a/lib/Controller/AuditLog.php
+++ b/lib/Controller/AuditLog.php
@@ -1,6 +1,6 @@
getString('message');
$filterIpAddress = $sanitizedParams->getString('ipAddress');
- $search = [];
-
if ($filterFromDt != null && $filterFromDt == $filterToDt) {
$filterToDt->addDay();
}
@@ -98,30 +96,21 @@ function grid(Request $request, Response $response)
$filterToDt = Carbon::now();
}
- $search['fromTimeStamp'] = $filterFromDt->format('U');
- $search['toTimeStamp'] = $filterToDt->format('U');
-
- if ($filterUser != '') {
- $search['userName'] = $filterUser;
- }
-
- if ($filterEntity != '') {
- $search['entity'] = $filterEntity;
- }
-
- if ($filterEntityId != null) {
- $search['entityId'] = $filterEntityId;
- }
-
- if ($filterMessage != '') {
- $search['message'] = $filterMessage;
- }
-
- if ($filterIpAddress != '') {
- $search['ipAddress'] = $filterIpAddress;
- }
-
- $rows = $this->auditLogFactory->query($this->gridRenderSort($sanitizedParams), $this->gridRenderFilter($search, $sanitizedParams));
+ $search = [
+ 'fromTimeStamp' => $filterFromDt->format('U'),
+ 'toTimeStamp' => $filterToDt->format('U'),
+ 'userName' => $filterUser,
+ 'entity' => $filterEntity,
+ 'entityId' => $filterEntityId,
+ 'message' => $filterMessage,
+ 'ipAddress' => $filterIpAddress,
+ 'sessionHistoryId' => $sanitizedParams->getInt('sessionHistoryId')
+ ];
+
+ $rows = $this->auditLogFactory->query(
+ $this->gridRenderSort($sanitizedParams),
+ $this->gridRenderFilter($search, $sanitizedParams)
+ );
// Do some post processing
foreach ($rows as $row) {
diff --git a/lib/Controller/Command.php b/lib/Controller/Command.php
index b2d94d4e5d..a6847ed506 100644
--- a/lib/Controller/Command.php
+++ b/lib/Controller/Command.php
@@ -369,6 +369,14 @@ public function deleteForm(Request $request, Response $response, $id)
* type="string",
* required=false
* ),
+ * @SWG\Parameter(
+ * name="createAlertOn",
+ * in="formData",
+ * description="On command execution, when should a Display alert be created?
+ * success, failure, always or never",
+ * type="string",
+ * required=false
+ * ),
* @SWG\Response(
* response=201,
* description="successful operation",
@@ -398,6 +406,7 @@ public function add(Request $request, Response $response)
$command->userId = $this->getUser()->userId;
$command->commandString = $sanitizedParams->getString('commandString');
$command->validationString = $sanitizedParams->getString('validationString');
+ $command->createAlertOn = $sanitizedParams->getString('createAlertOn', ['default' => 'never']);
$availableOn = $sanitizedParams->getArray('availableOn');
if (empty($availableOn)) {
$command->availableOn = null;
@@ -476,6 +485,14 @@ public function add(Request $request, Response $response)
* type="string",
* required=false
* ),
+ * @SWG\Parameter(
+ * name="createAlertOn",
+ * in="formData",
+ * description="On command execution, when should a Display alert be created?
+ * success, failure, always or never",
+ * type="string",
+ * required=false
+ * ),
* @SWG\Response(
* response=200,
* description="successful operation",
@@ -496,6 +513,7 @@ public function edit(Request $request, Response $response, $id)
$command->description = $sanitizedParams->getString('description');
$command->commandString = $sanitizedParams->getString('commandString');
$command->validationString = $sanitizedParams->getString('validationString');
+ $command->createAlertOn = $sanitizedParams->getString('createAlertOn', ['default' => 'never']);
$availableOn = $sanitizedParams->getArray('availableOn');
if (empty($availableOn)) {
$command->availableOn = null;
@@ -552,7 +570,7 @@ public function delete(Request $request, Response $response, $id)
throw new AccessDeniedException();
}
- $this->getDispatcher()->dispatch(CommandDeleteEvent::$NAME, new CommandDeleteEvent($command));
+ $this->getDispatcher()->dispatch(new CommandDeleteEvent($command), CommandDeleteEvent::$NAME);
$command->delete();
diff --git a/lib/Controller/DataSet.php b/lib/Controller/DataSet.php
index ad19aeaf95..960e472171 100644
--- a/lib/Controller/DataSet.php
+++ b/lib/Controller/DataSet.php
@@ -21,8 +21,13 @@
*/
namespace Xibo\Controller;
+use GuzzleHttp\Client;
+use GuzzleHttp\Exception\RequestException;
+use Illuminate\Support\Str;
use Slim\Http\Response as Response;
use Slim\Http\ServerRequest as Request;
+use Xibo\Event\DataConnectorScriptRequestEvent;
+use Xibo\Event\DataConnectorSourceRequestEvent;
use Xibo\Factory\DataSetColumnFactory;
use Xibo\Factory\DataSetFactory;
use Xibo\Factory\FolderFactory;
@@ -128,6 +133,13 @@ public function displayPage(Request $request, Response $response)
* required=false
* ),
* @SWG\Parameter(
+ * name="isRealTime",
+ * in="query",
+ * description="Filter by real time",
+ * type="integer",
+ * required=false
+ * ),
+ * @SWG\Parameter(
* name="userId",
* in="query",
* description="Filter by user Id",
@@ -165,12 +177,13 @@ public function grid(Request $request, Response $response)
// Embed?
$embed = ($sanitizedParams->getString('embed') != null) ? explode(',', $sanitizedParams->getString('embed')) : [];
-
+
$filter = [
'dataSetId' => $sanitizedParams->getInt('dataSetId'),
'dataSet' => $sanitizedParams->getString('dataSet'),
'useRegexForName' => $sanitizedParams->getCheckbox('useRegexForName'),
'code' => $sanitizedParams->getString('code'),
+ 'isRealTime' => $sanitizedParams->getInt('isRealTime'),
'userId' => $sanitizedParams->getInt('userId'),
'folderId' => $sanitizedParams->getInt('folderId'),
'logicalOperatorName' => $sanitizedParams->getString('logicalOperatorName'),
@@ -221,6 +234,17 @@ public function grid(Request $request, Response $response)
'text' => __('View RSS')
);
+ if ($this->getUser()->featureEnabled('dataset.realtime') && $dataSet->isRealTime === 1) {
+ $dataSet->buttons[] = [
+ 'id' => 'dataset_button_view_data_connector',
+ 'url' => $this->urlFor($request, 'dataSet.dataConnector.view', [
+ 'id' => $dataSet->dataSetId
+ ]),
+ 'class' => 'XiboRedirectButton',
+ 'text' => __('View Data Connector'),
+ ];
+ }
+
// Divider
$dataSet->buttons[] = ['divider' => true];
@@ -250,6 +274,27 @@ public function grid(Request $request, Response $response)
'text' => __('Edit')
);
+ if ($this->getUser()->featureEnabled('folder.view')) {
+ // Select Folder
+ $dataSet->buttons[] = [
+ 'id' => 'dataSet_button_selectfolder',
+ 'url' => $this->urlFor($request, 'dataSet.selectfolder.form', ['id' => $dataSet->dataSetId]),
+ 'text' => __('Select Folder'),
+ 'multi-select' => true,
+ 'dataAttributes' => [
+ [
+ 'name' => 'commit-url',
+ 'value' => $this->urlFor($request, 'dataSet.selectfolder', ['id' => $dataSet->dataSetId])
+ ],
+ ['name' => 'commit-method', 'value' => 'put'],
+ ['name' => 'id', 'value' => 'dataSet_button_selectfolder'],
+ ['name' => 'text', 'value' => __('Move to Folder')],
+ ['name' => 'rowtitle', 'value' => $dataSet->dataSet],
+ ['name' => 'form-callback', 'value' => 'moveFolderMultiSelectFormOpen']
+ ]
+ ];
+ }
+
$dataSet->buttons[] = [
'id' => 'dataset_button_csv_export',
'linkType' => '_self', 'external' => true,
@@ -271,7 +316,10 @@ public function grid(Request $request, Response $response)
}
}
- if ($user->checkDeleteable($dataSet) && $dataSet->isLookup == 0) {
+ if ($user->checkDeleteable($dataSet)
+ && $dataSet->isLookup == 0
+ && ($dataSet->isRealTime === 0 || $this->getUser()->featureEnabled('dataset.realtime'))
+ ) {
$dataSet->buttons[] = ['divider' => true];
// Delete DataSet
$dataSet->buttons[] = [
@@ -335,9 +383,18 @@ public function grid(Request $request, Response $response)
*/
public function addForm(Request $request, Response $response)
{
+
+ // Dispatch an event to initialize list of data sources for data connectors
+ $event = new DataConnectorSourceRequestEvent();
+ $this->getDispatcher()->dispatch($event, DataConnectorSourceRequestEvent::$NAME);
+
+ // Retrieve data connector sources from the event
+ $dataConnectorSources = $event->getDataConnectorSources();
+
$this->getState()->template = 'dataset-form-add';
$this->getState()->setData([
'dataSets' => $this->dataSetFactory->query(),
+ 'dataConnectorSources' => $dataConnectorSources,
]);
return $this->render($request, $response);
@@ -381,6 +438,20 @@ public function addForm(Request $request, Response $response)
* required=true
* ),
* @SWG\Parameter(
+ * name="isRealTime",
+ * in="formData",
+ * description="Is this a real time DataSet?",
+ * type="integer",
+ * required=true
+ * ),
+ * @SWG\Parameter(
+ * name="dataConnectorSource",
+ * in="formData",
+ * description="Source of the data connector",
+ * type="string",
+ * required=true
+ * ),
+ * @SWG\Parameter(
* name="method",
* in="formData",
* description="The Request Method GET or POST",
@@ -521,6 +592,13 @@ public function addForm(Request $request, Response $response)
* required=false
* ),
* @SWG\Parameter(
+ * name="dataConnectorScript",
+ * in="formData",
+ * description="If isRealTime then provide a script to connect to the data source",
+ * type="string",
+ * required=false
+ * ),
+ * @SWG\Parameter(
* name="folderId",
* in="formData",
* description="Folder ID to which this object should be assigned to",
@@ -556,6 +634,8 @@ public function add(Request $request, Response $response)
$dataSet->description = $sanitizedParams->getString('description');
$dataSet->code = $sanitizedParams->getString('code');
$dataSet->isRemote = $sanitizedParams->getCheckbox('isRemote');
+ $dataSet->isRealTime = $sanitizedParams->getCheckbox('isRealTime');
+ $dataSet->dataConnectorSource = $sanitizedParams->getString('dataConnectorSource');
$dataSet->userId = $this->getUser()->userId;
// Folders
@@ -642,11 +722,23 @@ public function editForm(Request $request, Response $response, $id)
throw new AccessDeniedException();
}
+ // Dispatch an event to initialize list of data sources for data connectors
+ $event = new DataConnectorSourceRequestEvent();
+ $this->getDispatcher()->dispatch($event, DataConnectorSourceRequestEvent::$NAME);
+
+ // Retrieve data sources from the event
+ $dataConnectorSources = $event->getDataConnectorSources();
+
+ // retrieve the columns of the selected dataset
+ $dataSet->getColumn();
+
// Set the form
$this->getState()->template = 'dataset-form-edit';
$this->getState()->setData([
'dataSet' => $dataSet,
'dataSets' => $this->dataSetFactory->query(),
+ 'script' => $dataSet->getScript(),
+ 'dataConnectorSources' => $dataConnectorSources
]);
return $this->render($request, $response);
@@ -706,6 +798,20 @@ public function editForm(Request $request, Response $response, $id)
* required=true
* ),
* @SWG\Parameter(
+ * name="isRealTime",
+ * in="formData",
+ * description="Is this a real time DataSet?",
+ * type="integer",
+ * required=true
+ * ),
+ * @SWG\Parameter(
+ * name="dataConnectorSource",
+ * in="formData",
+ * description="Source of the data connector",
+ * type="string",
+ * required=true
+ * ),
+ * @SWG\Parameter(
* name="method",
* in="formData",
* description="The Request Method GET or POST",
@@ -846,6 +952,13 @@ public function editForm(Request $request, Response $response, $id)
* required=false
* ),
* @SWG\Parameter(
+ * name="dataConnectorScript",
+ * in="formData",
+ * description="If isRealTime then provide a script to connect to the data source",
+ * type="string",
+ * required=false
+ * ),
+ * @SWG\Parameter(
* name="folderId",
* in="formData",
* description="Folder ID to which this object should be assigned to",
@@ -872,6 +985,8 @@ public function edit(Request $request, Response $response, $id)
$dataSet->description = $sanitizedParams->getString('description');
$dataSet->code = $sanitizedParams->getString('code');
$dataSet->isRemote = $sanitizedParams->getCheckbox('isRemote');
+ $dataSet->isRealTime = $sanitizedParams->getCheckbox('isRealTime');
+ $dataSet->dataConnectorSource = $sanitizedParams->getString('dataConnectorSource');
$dataSet->folderId = $sanitizedParams->getInt('folderId', ['default' => $dataSet->folderId]);
if ($dataSet->hasPropertyChanged('folderId')) {
@@ -902,7 +1017,9 @@ public function edit(Request $request, Response $response, $id)
$dataSet->ignoreFirstRow = $sanitizedParams->getCheckbox('ignoreFirstRow');
$dataSet->rowLimit = $sanitizedParams->getInt('rowLimit');
$dataSet->limitPolicy = $sanitizedParams->getString('limitPolicy') ?? 'stop';
- $dataSet->csvSeparator = ($dataSet->sourceId === 2) ? $sanitizedParams->getString('csvSeparator') ?? ',' : null;
+ $dataSet->csvSeparator = ($dataSet->sourceId === 2)
+ ? $sanitizedParams->getString('csvSeparator') ?? ','
+ : null;
}
$dataSet->save();
@@ -917,6 +1034,68 @@ public function edit(Request $request, Response $response, $id)
return $this->render($request, $response);
}
+ /**
+ * Edit DataSet Data Connector
+ * @param Request $request
+ * @param Response $response
+ * @param $id
+ * @return \Psr\Http\Message\ResponseInterface|Response
+ * @throws GeneralException
+ *
+ * @SWG\Put(
+ * path="/dataset/dataConnector/{dataSetId}",
+ * operationId="dataSetDataConnectorEdit",
+ * tags={"dataset"},
+ * summary="Edit DataSet Data Connector",
+ * description="Edit a DataSet Data Connector",
+ * @SWG\Parameter(
+ * name="dataSetId",
+ * in="path",
+ * description="The DataSet ID",
+ * type="integer",
+ * required=true
+ * ),
+ * @SWG\Parameter(
+ * name="dataConnectorScript",
+ * in="formData",
+ * description="If isRealTime then provide a script to connect to the data source",
+ * type="string",
+ * required=false
+ * ),
+ * @SWG\Response(
+ * response=200,
+ * description="successful operation",
+ * @SWG\Schema(ref="#/definitions/DataSet")
+ * )
+ * )
+ */
+ public function updateDataConnector(Request $request, Response $response, $id)
+ {
+ $dataSet = $this->dataSetFactory->getById($id);
+ $sanitizedParams = $this->getSanitizer($request->getParams());
+
+ if (!$this->getUser()->checkEditable($dataSet)) {
+ throw new AccessDeniedException();
+ }
+
+ if ($dataSet->isRealTime === 1) {
+ // Set the script.
+ $dataSet->saveScript($sanitizedParams->getParam('dataConnectorScript'));
+ $dataSet->notify();
+ } else {
+ throw new InvalidArgumentException(__('This DataSet does not have a data connector'), 'isRealTime');
+ }
+
+ // Return
+ $this->getState()->hydrate([
+ 'message' => sprintf(__('Edited %s'), $dataSet->dataSet),
+ 'id' => $dataSet->dataSetId,
+ 'data' => $dataSet
+ ]);
+
+ return $this->render($request, $response);
+ }
+
/**
* DataSet Delete
* @param Request $request
@@ -1005,6 +1184,107 @@ public function delete(Request $request, Response $response, $id)
return $this->render($request, $response);
}
+ /**
+ * Select Folder Form
+ * @param Request $request
+ * @param Response $response
+ * @param int $id
+ * @return \Psr\Http\Message\ResponseInterface|Response
+ * @throws AccessDeniedException
+ * @throws GeneralException
+ * @throws NotFoundException
+ * @throws \Xibo\Support\Exception\ControllerNotImplemented
+ */
+ public function selectFolderForm(Request $request, Response $response, $id)
+ {
+ // Get the data set
+ $dataSet = $this->dataSetFactory->getById($id);
+
+ // Check Permissions
+ if (!$this->getUser()->checkEditable($dataSet)) {
+ throw new AccessDeniedException();
+ }
+
+ $data = [
+ 'dataSet' => $dataSet
+ ];
+
+ $this->getState()->template = 'dataset-form-selectfolder';
+ $this->getState()->setData($data);
+
+ return $this->render($request, $response);
+ }
+
+ /**
+ * @SWG\Put(
+ * path="/dataset/{id}/selectfolder",
+ * operationId="dataSetSelectFolder",
+ * tags={"dataSet"},
+ * summary="DataSet Select folder",
+ * description="Select Folder for DataSet",
+ * @SWG\Parameter(
+ * name="menuId",
+ * in="path",
+ * description="The DataSet ID",
+ * type="integer",
+ * required=true
+ * ),
+ * @SWG\Parameter(
+ * name="folderId",
+ * in="formData",
+ * description="Folder ID to which this object should be assigned to",
+ * type="integer",
+ * required=true
+ * ),
+ * @SWG\Response(
+ * response=200,
+ * description="successful operation",
+ * @SWG\Schema(ref="#/definitions/DataSet")
+ * )
+ * )
+ *
+ * @param Request $request
+ * @param Response $response
+ * @param int $id
+ * @return \Psr\Http\Message\ResponseInterface|Response
+ * @throws AccessDeniedException
+ * @throws GeneralException
+ * @throws InvalidArgumentException
+ * @throws NotFoundException
+ * @throws \Xibo\Support\Exception\ControllerNotImplemented
+ */
+ public function selectFolder(Request $request, Response $response, $id)
+ {
+ // Get the DataSet
+ $dataSet = $this->dataSetFactory->getById($id);
+
+ // Check Permissions
+ if (!$this->getUser()->checkEditable($dataSet)) {
+ throw new AccessDeniedException();
+ }
+
+ $folderId = $this->getSanitizer($request->getParams())->getInt('folderId');
+
+ if ($folderId === 1) {
+ $this->checkRootFolderAllowSave();
+ }
+
+ $dataSet->folderId = $folderId;
+ $folder = $this->folderFactory->getById($dataSet->folderId);
+ $dataSet->permissionsFolderId = ($folder->getPermissionFolderId() == null) ? $folder->id : $folder->getPermissionFolderId();
+
+ // Save
+ $dataSet->save();
+
+ // Return
+ $this->getState()->hydrate([
+ 'httpStatus' => 204,
+ 'message' => sprintf(__('DataSet %s moved to Folder %s'), $dataSet->dataSet, $folder->text)
+ ]);
+
+ return $this->render($request, $response);
+ }
+
/**
* Copy DataSet Form
* @param Request $request
@@ -1348,28 +1628,33 @@ public function importJson(Request $request, Response $response, $id)
// Check unique keys to see if this is an update
if (!empty($data['uniqueKeys']) && is_array($data['uniqueKeys'])) {
-
// Build a filter to select existing records
$filter = '';
+ $params = [];
+ $i = 0;
foreach ($data['uniqueKeys'] as $uniqueKey) {
if (isset($rowToAdd[$uniqueKey])) {
- $filter .= 'AND `' . $uniqueKey . '` = \'' . $rowToAdd[$uniqueKey] . '\' ';
+ $i++;
+ $filter .= 'AND `' . $uniqueKey . '` = :uniqueKey_' . $i . ' ';
+ $params['uniqueKey_' . $i] = $rowToAdd[$uniqueKey];
}
}
$filter = trim($filter, 'AND');
// Use the unique keys to look up this row and see if it exists
- $existingRows = $dataSet->getData(['filter' => $filter], ['includeFormulaColumns' => false, 'requireTotal' => false]);
+ $existingRows = $dataSet->getData(
+ ['filter' => $filter],
+ ['includeFormulaColumns' => false, 'requireTotal' => false],
+ $params,
+ );
if (count($existingRows) > 0) {
foreach ($existingRows as $existingRow) {
$dataSet->editRow($existingRow['id'], array_merge($existingRow, $rowToAdd));
}
- }
- else {
+ } else {
$dataSet->addRow($rowToAdd);
}
-
} else {
$dataSet->addRow($rowToAdd);
}
@@ -1566,4 +1851,135 @@ public function clearCache(Request $request, Response $response, $id)
return $this->render($request, $response);
}
+
+ /**
+ * Real-time data script editor
+ * @param Request $request
+ * @param Response $response
+ * @param $id
+ * @return Response
+ * @throws GeneralException
+ */
+ public function dataConnectorView(Request $request, Response $response, $id): Response
+ {
+ $dataSet = $this->dataSetFactory->getById($id);
+
+ if (!$this->getUser()->checkEditable($dataSet)) {
+ throw new AccessDeniedException();
+ }
+
+ $dataSet->load();
+
+ if ($dataSet->dataConnectorSource == 'user_defined') {
+ // retrieve the user defined javascript
+ $script = $dataSet->getScript();
+ } else {
+ // Dispatch the event to get the script from the connector
+ $event = new DataConnectorScriptRequestEvent($dataSet);
+ $this->getDispatcher()->dispatch($event, DataConnectorScriptRequestEvent::$NAME);
+ $script = $dataSet->getScript();
+ }
+
+ $this->getState()->template = 'dataset-data-connector-page';
+ $this->getState()->setData([
+ 'dataSet' => $dataSet,
+ 'script' => $script,
+ ]);
+
+ return $this->render($request, $response);
+ }
+
+ /**
+ * Real-time data script test
+ * @param Request $request
+ * @param Response $response
+ * @param $id
+ * @return Response
+ * @throws GeneralException
+ */
+ public function dataConnectorTest(Request $request, Response $response, $id): Response
+ {
+ $dataSet = $this->dataSetFactory->getById($id);
+
+ if (!$this->getUser()->checkEditable($dataSet)) {
+ throw new AccessDeniedException();
+ }
+
+ $dataSet->load();
+
+ $this->getState()->template = 'dataset-data-connector-test-page';
+ $this->getState()->setData([
+ 'dataSet' => $dataSet,
+ 'script' => $dataSet->getScript(),
+ ]);
+
+ return $this->render($request, $response);
+ }
+
+ /**
+ * Real-time data script test
+ * @param Request $request
+ * @param Response $response
+ * @param $id
+ * @return Response
+ * @throws GeneralException
+ */
+ public function dataConnectorRequest(Request $request, Response $response, $id): Response
+ {
+ $dataSet = $this->dataSetFactory->getById($id);
+
+ if (!$this->getUser()->checkEditable($dataSet)) {
+ throw new AccessDeniedException();
+ }
+
+ $params = $this->getSanitizer($request->getParams());
+ $url = $params->getString('url');
+ $method = $params->getString('method', ['default' => 'GET']);
+ $headers = $params->getArray('headers');
+ $body = $params->getArray('body');
+
+ // Verify that the requested URL appears in the script somewhere.
+ $script = $dataSet->getScript();
+
+ if (!Str::contains($script, $url)) {
+ throw new InvalidArgumentException(__('URL not found in data connector script'), 'url');
+ }
+
+ // Make the request
+ $options = [];
+ if (is_array($headers)) {
+ $options['headers'] = $headers;
+ }
+
+ if ($method === 'GET') {
+ $options['query'] = $body;
+ } else {
+ $options['body'] = $body;
+ }
+
+ $this->getLog()->debug('dataConnectorRequest: making request with options ' . var_export($options, true));
+
+ // Use guzzle to make the request
+ try {
+ $client = new Client();
+ $remoteResponse = $client->request($method, $url, $options);
+
+ // Format the response
+ $response->getBody()->write($remoteResponse->getBody()->getContents());
+ $response = $response->withAddedHeader('Content-Type', $remoteResponse->getHeader('Content-Type')[0]);
+ $response = $response->withStatus($remoteResponse->getStatusCode());
+ } catch (RequestException $exception) {
+ $this->getLog()->error('dataConnectorRequest: error with request: ' . $exception->getMessage());
+
+ if ($exception->hasResponse()) {
+ $remoteResponse = $exception->getResponse();
+ $response = $response->withStatus($remoteResponse->getStatusCode());
+ $response->getBody()->write($remoteResponse->getBody()->getContents());
+ } else {
+ $response = $response->withStatus(500);
+ }
+ }
+
+ return $response;
+ }
}
diff --git a/lib/Controller/DataSetData.php b/lib/Controller/DataSetData.php
index a25c0c0ec6..94cfbcaaa2 100644
--- a/lib/Controller/DataSetData.php
+++ b/lib/Controller/DataSetData.php
@@ -1,6 +1,6 @@
getColumn() as $column) {
/* @var \Xibo\Entity\DataSetColumn $column */
if ($column->dataSetColumnTypeId == 1) {
+ $i++;
if ($sanitizedParams->getString($column->heading) != null) {
- $filter .= 'AND ' . $column->heading . ' LIKE \'%' . $sanitizedParams->getString($column->heading) . '%\' ';
+ $filter .= 'AND `' . $column->heading . '` LIKE :heading_' . $i . ' ';
+ $params['heading_' . $i] = '%' . $sanitizedParams->getString($column->heading) . '%';
}
}
}
@@ -146,12 +150,16 @@ public function grid(Request $request, Response $response, $id)
$filter = $this->gridRenderFilter(['filter' => $request->getParam('filter', $filter)], $sanitizedParams);
try {
- $data = $dataSet->getData([
- 'order' => $sorting,
- 'start' => $filter['start'],
- 'size' => $filter['length'],
- 'filter' => $filter['filter']
- ]);
+ $data = $dataSet->getData(
+ [
+ 'order' => $sorting,
+ 'start' => $filter['start'],
+ 'size' => $filter['length'],
+ 'filter' => $filter['filter']
+ ],
+ [],
+ $params,
+ );
} catch (\Exception $e) {
$data = ['exception' => __('Error getting DataSet data, failed with following message: ') . $e->getMessage()];
$this->getLog()->error('Error getting DataSet data, failed with following message: ' . $e->getMessage());
diff --git a/lib/Controller/Developer.php b/lib/Controller/Developer.php
new file mode 100644
index 0000000000..ba43d13bef
--- /dev/null
+++ b/lib/Controller/Developer.php
@@ -0,0 +1,698 @@
+.
+ */
+namespace Xibo\Controller;
+
+use Psr\Http\Message\ResponseInterface;
+use Slim\Http\Response as Response;
+use Slim\Http\ServerRequest as Request;
+use Xibo\Factory\ModuleFactory;
+use Xibo\Factory\ModuleTemplateFactory;
+use Xibo\Helper\SendFile;
+use Xibo\Service\MediaService;
+use Xibo\Service\UploadService;
+use Xibo\Support\Exception\AccessDeniedException;
+use Xibo\Support\Exception\ConfigurationException;
+use Xibo\Support\Exception\ControllerNotImplemented;
+use Xibo\Support\Exception\GeneralException;
+use Xibo\Support\Exception\InvalidArgumentException;
+use Xibo\Support\Exception\NotFoundException;
+
+/**
+ * Class Module
+ * @package Xibo\Controller
+ */
+class Developer extends Base
+{
+ public function __construct(
+ private readonly ModuleFactory $moduleFactory,
+ private readonly ModuleTemplateFactory $moduleTemplateFactory
+ ) {
+ }
+
+ /**
+ * Display the module templates page
+ * @param Request $request
+ * @param Response $response
+ * @return \Slim\Http\Response
+ * @throws \Xibo\Support\Exception\GeneralException
+ */
+ public function displayTemplatePage(Request $request, Response $response): Response
+ {
+ $this->getState()->template = 'developer-template-page';
+
+ return $this->render($request, $response);
+ }
+
+ /**
+ * Show Module templates in a grid
+ * @param \Slim\Http\ServerRequest $request
+ * @param \Slim\Http\Response $response
+ * @return \Slim\Http\Response
+ * @throws \Xibo\Support\Exception\GeneralException
+ */
+ public function templateGrid(Request $request, Response $response): Response
+ {
+ $params = $this->getSanitizer($request->getParams());
+
+ $templates = $this->moduleTemplateFactory->loadUserTemplates(
+ $this->gridRenderSort($params),
+ $this->gridRenderFilter(
+ [
+ 'id' => $params->getInt('id'),
+ 'templateId' => $params->getString('templateId'),
+ 'dataType' => $params->getString('dataType'),
+ ],
+ $params
+ )
+ );
+
+ foreach ($templates as $template) {
+ if ($this->isApi($request)) {
+ break;
+ }
+
+ $template->includeProperty('buttons');
+
+ if ($this->getUser()->checkEditable($template) &&
+ $this->getUser()->featureEnabled('developer.edit')
+ ) {
+ // Edit button
+ $template->buttons[] = [
+ 'id' => 'template_button_edit',
+ 'url' => $this->urlFor($request, 'developer.templates.view.edit', ['id' => $template->id]),
+ 'text' => __('Edit'),
+ 'class' => 'XiboRedirectButton',
+ ];
+
+ $template->buttons[] = [
+ 'id' => 'template_button_export',
+ 'linkType' => '_self', 'external' => true,
+ 'url' => $this->urlFor($request, 'developer.templates.export', ['id' => $template->id]),
+ 'text' => __('Export XML'),
+ ];
+
+ $template->buttons[] = [
+ 'id' => 'template_button_copy',
+ 'url' => $this->urlFor($request, 'developer.templates.form.copy', ['id' => $template->id]),
+ 'text' => __('Copy'),
+ ];
+ }
+
+ if ($this->getUser()->featureEnabled('developer.edit') &&
+ $this->getUser()->checkPermissionsModifyable($template)
+ ) {
+ $template->buttons[] = ['divider' => true];
+ // Permissions for Module Template
+ $template->buttons[] = [
+ 'id' => 'template_button_permissions',
+ 'url' => $this->urlFor(
+ $request,
+ 'user.permissions.form',
+ ['entity' => 'ModuleTemplate', 'id' => $template->id]
+ ),
+ 'text' => __('Share'),
+ 'multi-select' => true,
+ 'dataAttributes' => [
+ [
+ 'name' => 'commit-url',
+ 'value' => $this->urlFor(
+ $request,
+ 'user.permissions.multi',
+ ['entity' => 'ModuleTemplate', 'id' => $template->id]
+ )
+ ],
+ ['name' => 'commit-method', 'value' => 'post'],
+ ['name' => 'id', 'value' => 'template_button_permissions'],
+ ['name' => 'text', 'value' => __('Share')],
+ ['name' => 'rowtitle', 'value' => $template->templateId],
+ ['name' => 'sort-group', 'value' => 2],
+ ['name' => 'custom-handler', 'value' => 'XiboMultiSelectPermissionsFormOpen'],
+ [
+ 'name' => 'custom-handler-url',
+ 'value' => $this->urlFor(
+ $request,
+ 'user.permissions.multi.form',
+ ['entity' => 'ModuleTemplate']
+ )
+ ],
+ ['name' => 'content-id-name', 'value' => 'id']
+ ]
+ ];
+ }
+
+ if ($this->getUser()->checkDeleteable($template) &&
+ $this->getUser()->featureEnabled('developer.delete')
+ ) {
+ $template->buttons[] = ['divider' => true];
+ // Delete button
+ $template->buttons[] = [
+ 'id' => 'template_button_delete',
+ 'url' => $this->urlFor($request, 'developer.templates.form.delete', ['id' => $template->id]),
+ 'text' => __('Delete'),
+ 'multi-select' => true,
+ 'dataAttributes' => [
+ [
+ 'name' => 'commit-url',
+ 'value' => $this->urlFor(
+ $request,
+ 'developer.templates.delete',
+ ['id' => $template->id]
+ )
+ ],
+ ['name' => 'commit-method', 'value' => 'delete'],
+ ['name' => 'id', 'value' => 'template_button_delete'],
+ ['name' => 'text', 'value' => __('Delete')],
+ ['name' => 'sort-group', 'value' => 1],
+ ['name' => 'rowtitle', 'value' => $template->templateId]
+ ]
+ ];
+ }
+ }
+
+ $this->getState()->template = 'grid';
+ $this->getState()->recordsTotal = $this->moduleTemplateFactory->countLast();
+ $this->getState()->setData($templates);
+
+ return $this->render($request, $response);
+ }
+
+ /**
+ * Shows an add form for a module template
+ * @param Request $request
+ * @param Response $response
+ * @return \Slim\Http\Response
+ * @throws \Xibo\Support\Exception\GeneralException
+ */
+ public function templateAddForm(Request $request, Response $response): Response
+ {
+ $this->getState()->template = 'developer-template-form-add';
+ return $this->render($request, $response);
+ }
+
+ /**
+ * Display the module template page
+ * @param Request $request
+ * @param Response $response
+ * @param mixed $id The template ID to edit.
+ * @return \Slim\Http\Response
+ * @throws \Xibo\Support\Exception\GeneralException
+ */
+ public function displayTemplateEditPage(Request $request, Response $response, $id): Response
+ {
+ $template = $this->moduleTemplateFactory->getUserTemplateById($id);
+ if ($template->ownership !== 'user') {
+ throw new AccessDeniedException();
+ }
+
+ $this->getState()->template = 'developer-template-edit-page';
+ $this->getState()->setData([
+ 'template' => $template,
+ 'propertiesJSON' => json_encode($template->properties),
+ ]);
+
+ return $this->render($request, $response);
+ }
+
+ /**
+ * Add a module template
+ * @param Request $request
+ * @param Response $response
+ * @return \Slim\Http\Response
+ * @throws \Xibo\Support\Exception\GeneralException
+ */
+ public function templateAdd(Request $request, Response $response): Response
+ {
+ // When adding a template we just save the XML
+ $params = $this->getSanitizer($request->getParams());
+
+ $templateId = $params->getString('templateId', ['throw' => function () {
+ throw new InvalidArgumentException(__('Please supply a unique template ID'), 'templateId');
+ }]);
+ $title = $params->getString('title', ['throw' => function () {
+ throw new InvalidArgumentException(__('Please supply a title'), 'title');
+ }]);
+ $dataType = $params->getString('dataType', ['throw' => function () {
+ throw new InvalidArgumentException(__('Please supply a data type'), 'dataType');
+ }]);
+ $showIn = $params->getString('showIn', ['throw' => function () {
+ throw new InvalidArgumentException(
+ __('Please select relevant editor which should show this Template'),
+ 'showIn'
+ );
+ }]);
+
+ // do we have a template selected?
+ if (!empty($params->getString('copyTemplateId'))) {
+ // get the selected template
+ $copyTemplate = $this->moduleTemplateFactory->getByDataTypeAndId(
+ $dataType,
+ $params->getString('copyTemplateId')
+ );
+
+ // get the template xml and load to document.
+ $xml = new \DOMDocument();
+ $xml->loadXML($copyTemplate->getXml());
+
+ // get template node, make adjustments from the form
+ $templateNode = $xml->getElementsByTagName('template')[0];
+ $this->setNode($xml, 'id', $templateId, false, $templateNode);
+ $this->setNode($xml, 'title', $title, false, $templateNode);
+ $this->setNode($xml, 'showIn', $showIn, false, $templateNode);
+
+ // create template with updated xml.
+ $template = $this->moduleTemplateFactory->createUserTemplate($xml->saveXML());
+ } else {
+ // The most basic template possible.
+ $template = $this->moduleTemplateFactory->createUserTemplate('
+
+ ' . $templateId . '
+ ' . $title . '
+ static
+ ' . $dataType . '
+ '. $showIn . '
+
+ ');
+ }
+
+ $template->ownerId = $this->getUser()->userId;
+ $template->save();
+
+ $this->getState()->hydrate([
+ 'httpState' => 201,
+ 'message' => __('Added'),
+ 'id' => $template->id,
+ ]);
+
+ return $this->render($request, $response);
+ }
+
+ /**
+ * Edit a module template
+ * @param Request $request
+ * @param Response $response
+ * @param $id
+ * @return Response
+ * @throws \Xibo\Support\Exception\GeneralException
+ */
+ public function templateEdit(Request $request, Response $response, $id): Response
+ {
+ $template = $this->moduleTemplateFactory->getUserTemplateById($id);
+
+ $params = $this->getSanitizer($request->getParams());
+ $templateId = $params->getString('templateId', ['throw' => function () {
+ throw new InvalidArgumentException(__('Please supply a unique template ID'), 'templateId');
+ }]);
+ $title = $params->getString('title', ['throw' => function () {
+ throw new InvalidArgumentException(__('Please supply a title'), 'title');
+ }]);
+ $dataType = $params->getString('dataType', ['throw' => function () {
+ throw new InvalidArgumentException(__('Please supply a data type'), 'dataType');
+ }]);
+ $showIn = $params->getString('showIn', ['throw' => function () {
+ throw new InvalidArgumentException(
+ __('Please select relevant editor which should show this Template'),
+ 'showIn'
+ );
+ }]);
+
+ $template->dataType = $dataType;
+ $template->isEnabled = $params->getCheckbox('enabled');
+
+ // TODO: validate?
+ $twig = $params->getParam('twig');
+ $hbs = $params->getParam('hbs');
+ $style = $params->getParam('style');
+ $head = $params->getParam('head');
+ $properties = $params->getParam('properties');
+ $onTemplateRender = $params->getParam('onTemplateRender');
+ $onTemplateVisible = $params->getParam('onTemplateVisible');
+
+ // We need to edit the XML we have for this template.
+ $document = $template->getDocument();
+
+ // Root nodes
+ $template->templateId = $templateId;
+ $this->setNode($document, 'id', $templateId, false);
+ $this->setNode($document, 'title', $title, false);
+ $this->setNode($document, 'showIn', $showIn, false);
+ $this->setNode($document, 'dataType', $dataType, false);
+ $this->setNode($document, 'onTemplateRender', $onTemplateRender);
+ $this->setNode($document, 'onTemplateVisible', $onTemplateVisible);
+
+ // Stencil nodes.
+ $stencilNodes = $document->getElementsByTagName('stencil');
+ if ($stencilNodes->count() <= 0) {
+ $stencilNode = $document->createElement('stencil');
+ $document->documentElement->appendChild($stencilNode);
+ } else {
+ $stencilNode = $stencilNodes[0];
+ }
+
+ $this->setNode($document, 'twig', $twig, true, $stencilNode);
+ $this->setNode($document, 'hbs', $hbs, true, $stencilNode);
+ $this->setNode($document, 'style', $style, true, $stencilNode);
+ $this->setNode($document, 'head', $head, true, $stencilNode);
+
+ // Properties.
+ // this is different because we want to replace the properties node with a new one.
+ if (!empty($properties)) {
+ // parse json and create a new properties node
+ $newPropertiesXml = $this->moduleTemplateFactory->parseJsonPropertiesToXml($properties);
+
+ $propertiesNodes = $document->getElementsByTagName('properties');
+
+ if ($propertiesNodes->count() <= 0) {
+ $document->documentElement->appendChild(
+ $document->importNode($newPropertiesXml->documentElement, true)
+ );
+ } else {
+ $document->documentElement->replaceChild(
+ $document->importNode($newPropertiesXml->documentElement, true),
+ $propertiesNodes[0]
+ );
+ }
+ }
+
+ // All done.
+ $template->setXml($document->saveXML());
+ $template->save();
+
+ if ($params->getCheckbox('isInvalidateWidget')) {
+ $template->invalidate();
+ }
+
+ $this->getState()->hydrate([
+ 'message' => sprintf(__('Edited %s'), $template->title),
+ 'id' => $template->id,
+ ]);
+
+ return $this->render($request, $response);
+ }
+
+ /**
+ * Helper function to set a node.
+ * @param \DOMDocument $document
+ * @param string $node
+ * @param string $value
+ * @param bool $cdata
+ * @param \DOMElement|null $childNode
+ * @return void
+ * @throws \DOMException
+ */
+ private function setNode(
+ \DOMDocument $document,
+ string $node,
+ string $value,
+ bool $cdata = true,
+ ?\DOMElement $childNode = null
+ ): void {
+ $addTo = $childNode ?? $document->documentElement;
+
+ $nodes = $addTo->getElementsByTagName($node);
+ if ($nodes->count() <= 0) {
+ if ($cdata) {
+ $element = $document->createElement($node);
+ $cdata = $document->createCDATASection($value);
+ $element->appendChild($cdata);
+ } else {
+ $element = $document->createElement($node, $value);
+ }
+
+ $addTo->appendChild($element);
+ } else {
+ /** @var \DOMElement $element */
+ $element = $nodes[0];
+ if ($cdata) {
+ $cdata = $document->createCDATASection($value);
+ $element->textContent = $value;
+
+ if ($element->firstChild !== null) {
+ $element->replaceChild($cdata, $element->firstChild);
+ } else {
+ //$element->textContent = '';
+ $element->appendChild($cdata);
+ }
+ } else {
+ $element->textContent = $value;
+ }
+ }
+ }
+
+ public function getAvailableDataTypes(Request $request, Response $response)
+ {
+ $params = $this->getSanitizer($request->getParams());
+ $dataTypes = $this->moduleFactory->getAllDataTypes();
+
+ if ($params->getString('dataType') !== null) {
+ foreach ($dataTypes as $dataType) {
+ if ($dataType->id === $params->getString('dataType')) {
+ $dataTypes = [$dataType];
+ }
+ }
+ }
+
+ $this->getState()->template = 'grid';
+ $this->getState()->recordsTotal = 0;
+ $this->getState()->setData($dataTypes);
+
+ return $this->render($request, $response);
+ }
+
+ /**
+ * Export module template
+ * @param Request $request
+ * @param Response $response
+ * @param $id
+ * @return ResponseInterface|Response
+ * @throws AccessDeniedException
+ * @throws ControllerNotImplemented
+ * @throws GeneralException
+ * @throws NotFoundException
+ */
+ public function templateExport(Request $request, Response $response, $id): Response|ResponseInterface
+ {
+ $template = $this->moduleTemplateFactory->getUserTemplateById($id);
+
+ if ($template->ownership !== 'user') {
+ throw new AccessDeniedException();
+ }
+
+ $tempFileName = $this->getConfig()->getSetting('LIBRARY_LOCATION') . 'temp/' . $template->templateId . '.xml';
+
+ $template->getDocument()->save($tempFileName);
+
+ $this->setNoOutput(true);
+
+ return $this->render($request, SendFile::decorateResponse(
+ $response,
+ $this->getConfig()->getSetting('SENDFILE_MODE'),
+ $tempFileName,
+ $template->templateId . '.xml'
+ )->withHeader('Content-Type', 'text/xml;charset=utf-8'));
+ }
+
+ /**
+ * Import xml file and create module template
+ * @param Request $request
+ * @param Response $response
+ * @return ResponseInterface|Response
+ * @throws ControllerNotImplemented
+ * @throws GeneralException
+ * @throws ConfigurationException
+ */
+ public function templateImport(Request $request, Response $response): Response|ResponseInterface
+ {
+ $this->getLog()->debug('Import Module Template');
+
+ $libraryFolder = $this->getConfig()->getSetting('LIBRARY_LOCATION');
+
+ // Make sure the library exists
+ MediaService::ensureLibraryExists($libraryFolder);
+
+ $options = [
+ 'upload_dir' => $libraryFolder . 'temp/',
+ 'accept_file_types' => '/\.xml/i',
+ 'libraryQuotaFull' => false,
+ ];
+
+ $this->getLog()->debug('Hand off to Upload Handler with options: ' . json_encode($options));
+
+ // Hand off to the Upload Handler provided by jquery-file-upload
+ $uploadService = new UploadService($libraryFolder . 'temp/', $options, $this->getLog(), $this->getState());
+ $uploadHandler = $uploadService->createUploadHandler();
+
+ $uploadHandler->setPostProcessor(function ($file, $uploadHandler) use ($libraryFolder) {
+ // Return right away if the file already has an error.
+ if (!empty($file->error)) {
+ return $file;
+ }
+
+ $this->getUser()->isQuotaFullByUser(true);
+
+ $filePath = $libraryFolder . 'temp/' . $file->fileName;
+
+ // load the xml from uploaded file
+ $xml = new \DOMDocument();
+ $xml->load($filePath);
+
+ // Add the Template
+ $moduleTemplate = $this->moduleTemplateFactory->createUserTemplate($xml->saveXML());
+ $moduleTemplate->ownerId = $this->getUser()->userId;
+ $moduleTemplate->save();
+
+ // Tidy up the temporary file
+ @unlink($filePath);
+
+ return $file;
+ });
+
+ $uploadHandler->post();
+
+ $this->setNoOutput(true);
+
+ return $this->render($request, $response);
+ }
+
+ /**
+ * Show module template copy form
+ * @param Request $request
+ * @param Response $response
+ * @param $id
+ * @return Response|ResponseInterface
+ * @throws AccessDeniedException
+ * @throws ControllerNotImplemented
+ * @throws GeneralException
+ * @throws InvalidArgumentException
+ * @throws NotFoundException
+ */
+ public function templateCopyForm(Request $request, Response $response, $id): Response|ResponseInterface
+ {
+ $moduleTemplate = $this->moduleTemplateFactory->getUserTemplateById($id);
+
+ if (!$this->getUser()->checkViewable($moduleTemplate)) {
+ throw new AccessDeniedException();
+ }
+
+ $this->getState()->template = 'developer-template-form-copy';
+ $this->getState()->setData([
+ 'template' => $moduleTemplate,
+ ]);
+
+ return $this->render($request, $response);
+ }
+
+ /**
+ * Copy module template
+ * @param Request $request
+ * @param Response $response
+ * @param $id
+ * @return Response|ResponseInterface
+ * @throws AccessDeniedException
+ * @throws ControllerNotImplemented
+ * @throws GeneralException
+ * @throws InvalidArgumentException
+ * @throws NotFoundException
+ */
+ public function templateCopy(Request $request, Response $response, $id): Response|ResponseInterface
+ {
+ $moduleTemplate = $this->moduleTemplateFactory->getUserTemplateById($id);
+
+ if (!$this->getUser()->checkViewable($moduleTemplate)) {
+ throw new AccessDeniedException();
+ }
+
+ $params = $this->getSanitizer($request->getParams());
+
+ $newTemplate = clone $moduleTemplate;
+ $newTemplate->templateId = $params->getString('templateId');
+ $newTemplate->save();
+
+ // Return
+ $this->getState()->hydrate([
+ 'httpStatus' => 201,
+ 'message' => sprintf(__('Copied as %s'), $newTemplate->templateId),
+ 'id' => $newTemplate->id,
+ 'data' => $newTemplate
+ ]);
+
+ return $this->render($request, $response);
+ }
+
+ /**
+ * Show module template delete form
+ * @param Request $request
+ * @param Response $response
+ * @param $id
+ * @return Response|ResponseInterface
+ * @throws AccessDeniedException
+ * @throws ControllerNotImplemented
+ * @throws GeneralException
+ * @throws InvalidArgumentException
+ * @throws NotFoundException
+ */
+ public function templateDeleteForm(Request $request, Response $response, $id): Response|ResponseInterface
+ {
+ $moduleTemplate = $this->moduleTemplateFactory->getUserTemplateById($id);
+
+ if (!$this->getUser()->checkDeleteable($moduleTemplate)) {
+ throw new AccessDeniedException();
+ }
+
+ $this->getState()->template = 'developer-template-form-delete';
+ $this->getState()->setData([
+ 'template' => $moduleTemplate,
+ ]);
+
+ return $this->render($request, $response);
+ }
+
+ /**
+ * Delete module template
+ * @param Request $request
+ * @param Response $response
+ * @param $id
+ * @return Response|ResponseInterface
+ * @throws AccessDeniedException
+ * @throws ControllerNotImplemented
+ * @throws GeneralException
+ * @throws InvalidArgumentException
+ * @throws NotFoundException
+ */
+ public function templateDelete(Request $request, Response $response, $id): Response|ResponseInterface
+ {
+ $moduleTemplate = $this->moduleTemplateFactory->getUserTemplateById($id);
+
+ if (!$this->getUser()->checkDeleteable($moduleTemplate)) {
+ throw new AccessDeniedException();
+ }
+
+ $moduleTemplate->delete();
+
+ // Return
+ $this->getState()->hydrate([
+ 'httpStatus' => 204,
+ 'message' => sprintf(__('Deleted %s'), $moduleTemplate->templateId)
+ ]);
+
+ return $this->render($request, $response);
+ }
+}
diff --git a/lib/Controller/Display.php b/lib/Controller/Display.php
index 3ba8d1ec52..2c6f0911e5 100644
--- a/lib/Controller/Display.php
+++ b/lib/Controller/Display.php
@@ -504,6 +504,7 @@ public function getFilters(SanitizerInterface $parsedQueryParams): array
'syncGroupIdMembers' => $parsedQueryParams->getInt('syncGroupIdMembers'),
'xmrRegistered' => $parsedQueryParams->getInt('xmrRegistered'),
'isPlayerSupported' => $parsedQueryParams->getInt('isPlayerSupported'),
+ 'displayGroupIds' => $parsedQueryParams->getIntArray('displayGroupIds'),
];
}
@@ -1004,33 +1005,36 @@ public function grid(Request $request, Response $response)
);
}
- if ($this->getUser()->featureEnabled('displays.modify')
- && $this->getUser()->checkEditable($display)
+ // Check if limited view access is allowed
+ if (($this->getUser()->featureEnabled('displays.modify') && $this->getUser()->checkEditable($display))
+ || $this->getUser()->featureEnabled('displays.limitedView')
) {
- if ($this->getUser()->featureEnabled('layout.view')) {
- $display->buttons[] = [
- 'id' => 'display_button_layouts_jump',
- 'linkType' => '_self',
- 'external' => true,
- 'url' => $this->urlFor($request, 'layout.view')
- . '?activeDisplayGroupId=' . $display->displayGroupId,
- 'text' => __('Jump to Scheduled Layouts')
- ];
- }
+ if ($this->getUser()->checkEditable($display)) {
+ if ($this->getUser()->featureEnabled('layout.view')) {
+ $display->buttons[] = [
+ 'id' => 'display_button_layouts_jump',
+ 'linkType' => '_self',
+ 'external' => true,
+ 'url' => $this->urlFor($request, 'layout.view')
+ . '?activeDisplayGroupId=' . $display->displayGroupId,
+ 'text' => __('Jump to Scheduled Layouts')
+ ];
+ }
- // File Associations
- $display->buttons[] = array(
- 'id' => 'displaygroup_button_fileassociations',
- 'url' => $this->urlFor($request, 'displayGroup.media.form', ['id' => $display->displayGroupId]),
- 'text' => __('Assign Files')
- );
+ // File Associations
+ $display->buttons[] = array(
+ 'id' => 'displaygroup_button_fileassociations',
+ 'url' => $this->urlFor($request, 'displayGroup.media.form', ['id' => $display->displayGroupId]),
+ 'text' => __('Assign Files')
+ );
- // Layout Assignments
- $display->buttons[] = array(
- 'id' => 'displaygroup_button_layout_associations',
- 'url' => $this->urlFor($request, 'displayGroup.layout.form', ['id' => $display->displayGroupId]),
- 'text' => __('Assign Layouts')
- );
+ // Layout Assignments
+ $display->buttons[] = array(
+ 'id' => 'displaygroup_button_layout_associations',
+ 'url' => $this->urlFor($request, 'displayGroup.layout.form', ['id' => $display->displayGroupId]),
+ 'text' => __('Assign Layouts')
+ );
+ }
// Screen Shot
$display->buttons[] = [
@@ -1084,43 +1088,45 @@ public function grid(Request $request, Response $response)
]
];
- // Trigger webhook
- $display->buttons[] = [
- 'id' => 'display_button_trigger_webhook',
- 'url' => $this->urlFor(
- $request,
- 'displayGroup.trigger.webhook.form',
- ['id' => $display->displayGroupId]
- ),
- 'text' => __('Trigger a web hook'),
- 'multi-select' => true,
- 'dataAttributes' => [
- [
- 'name' => 'commit-url',
- 'value' => $this->urlFor(
- $request,
- 'displayGroup.action.trigger.webhook',
- ['id' => $display->displayGroupId]
- )
- ],
- ['name' => 'commit-method', 'value' => 'post'],
- ['name' => 'id', 'value' => 'display_button_trigger_webhook'],
- ['name' => 'sort-group', 'value' => 3],
- ['name' => 'text', 'value' => __('Trigger a web hook')],
- ['name' => 'rowtitle', 'value' => $display->display],
- ['name' => 'form-callback', 'value' => 'triggerWebhookMultiSelectFormOpen']
- ]
- ];
-
- if ($this->getUser()->isSuperAdmin()) {
+ if ($this->getUser()->checkEditable($display)) {
+ // Trigger webhook
$display->buttons[] = [
- 'id' => 'display_button_purgeAll',
- 'url' => $this->urlFor($request, 'display.purge.all.form', ['id' => $display->displayId]),
- 'text' => __('Purge All')
+ 'id' => 'display_button_trigger_webhook',
+ 'url' => $this->urlFor(
+ $request,
+ 'displayGroup.trigger.webhook.form',
+ ['id' => $display->displayGroupId]
+ ),
+ 'text' => __('Trigger a web hook'),
+ 'multi-select' => true,
+ 'dataAttributes' => [
+ [
+ 'name' => 'commit-url',
+ 'value' => $this->urlFor(
+ $request,
+ 'displayGroup.action.trigger.webhook',
+ ['id' => $display->displayGroupId]
+ )
+ ],
+ ['name' => 'commit-method', 'value' => 'post'],
+ ['name' => 'id', 'value' => 'display_button_trigger_webhook'],
+ ['name' => 'sort-group', 'value' => 3],
+ ['name' => 'text', 'value' => __('Trigger a web hook')],
+ ['name' => 'rowtitle', 'value' => $display->display],
+ ['name' => 'form-callback', 'value' => 'triggerWebhookMultiSelectFormOpen']
+ ]
];
- }
- $display->buttons[] = ['divider' => true];
+ if ($this->getUser()->isSuperAdmin()) {
+ $display->buttons[] = [
+ 'id' => 'display_button_purgeAll',
+ 'url' => $this->urlFor($request, 'display.purge.all.form', ['id' => $display->displayId]),
+ 'text' => __('Purge All')
+ ];
+ }
+
+ $display->buttons[] = ['divider' => true];
+ }
}
if ($this->getUser()->featureEnabled('displays.modify')
@@ -1377,10 +1383,19 @@ function editForm(Request $request, Response $response, $id)
: null;
$display->setUnmatchedProperty('auditingUntilIso', $auditingUntilIso);
+ // display profile dates
+ $displayProfile = $display->getDisplayProfile();
+
// Get the settings from the profile
$profile = $display->getSettings();
$displayTypes = $this->displayTypeFactory->query();
+ $elevateLogsUntil = $displayProfile->getSetting('elevateLogsUntil');
+ $elevateLogsUntilIso = !empty($elevateLogsUntil)
+ ? Carbon::createFromTimestamp($elevateLogsUntil)->format(DateFormatHelper::getSystemFormat())
+ : null;
+ $displayProfile->setUnmatchedProperty('elevateLogsUntilIso', $elevateLogsUntilIso);
+
// Get a list of timezones
$timeZones = [];
foreach (DateFormatHelper::timezoneList() as $key => $value) {
@@ -1450,7 +1465,7 @@ function editForm(Request $request, Response $response, $id)
$this->getState()->template = 'display-form-edit';
$this->getState()->setData([
'display' => $display,
- 'displayProfile' => $display->getDisplayProfile(),
+ 'displayProfile' => $displayProfile,
'lockOptions' => json_decode($display->getDisplayProfile()->getSetting('lockOptions', '[]'), true),
'layouts' => $layouts,
'profiles' => $this->displayProfileFactory->query(null, array('type' => $display->clientType)),
@@ -2177,7 +2192,8 @@ public function screenShot(Request $request, Response $response, $id)
{
$display = $this->displayFactory->getById($id);
- if (!$this->getUser()->checkViewable($display)) {
+ // Allow limited view access
+ if (!$this->getUser()->checkViewable($display) && !$this->getUser()->featureEnabled('displays.limitedView')) {
throw new AccessDeniedException();
}
@@ -2237,7 +2253,8 @@ public function requestScreenShotForm(Request $request, Response $response, $id)
{
$display = $this->displayFactory->getById($id);
- if (!$this->getUser()->checkViewable($display)) {
+ // Allow limited view access
+ if (!$this->getUser()->checkViewable($display) && !$this->getUser()->featureEnabled('displays.limitedView')) {
throw new AccessDeniedException();
}
@@ -2295,7 +2312,8 @@ public function requestScreenShot(Request $request, Response $response, $id)
{
$display = $this->displayFactory->getById($id);
- if (!$this->getUser()->checkViewable($display)) {
+ // Allow limited view access
+ if (!$this->getUser()->checkViewable($display) && !$this->getUser()->featureEnabled('displays.limitedView')) {
throw new AccessDeniedException();
}
@@ -2463,6 +2481,8 @@ public function validateDisplays($displays)
$event = $this->displayEventFactory->createEmpty();
$event->displayId = $display->displayId;
$event->start = $display->lastAccessed;
+ // eventTypeId 1 is for Display up/down events.
+ $event->eventTypeId = 1;
$event->save();
}
@@ -2534,7 +2554,8 @@ public function validateDisplays($displays)
$notification = $this->notificationFactory->createSystemNotification(
$subject,
$body,
- Carbon::now()
+ Carbon::now(),
+ 'display'
);
// Add in any displayNotificationGroups, with permissions
diff --git a/lib/Controller/DisplayGroup.php b/lib/Controller/DisplayGroup.php
index 370de447e0..7de67df679 100644
--- a/lib/Controller/DisplayGroup.php
+++ b/lib/Controller/DisplayGroup.php
@@ -1,6 +1,6 @@
$parsedQueryParams->getInt('displayGroupId'),
+ 'displayGroupIds' => $parsedQueryParams->getIntArray('displayGroupIds'),
'displayGroup' => $parsedQueryParams->getString('displayGroup'),
'useRegexForName' => $parsedQueryParams->getCheckbox('useRegexForName'),
'displayId' => $parsedQueryParams->getInt('displayId'),
@@ -394,11 +399,11 @@ public function grid(Request $request, Response $response)
];
}
- $group->buttons[] = ['divider' => true];
-
if ($this->getUser()->featureEnabled('displaygroup.modify')
&& $this->getUser()->checkEditable($group)
) {
+ $group->buttons[] = ['divider' => true];
+
// File Associations
$group->buttons[] = [
'id' => 'displaygroup_button_fileassociations',
@@ -455,11 +460,16 @@ public function grid(Request $request, Response $response)
];
}
- if ($this->getUser()->featureEnabled('displaygroup.modify')
- && $this->getUser()->checkEditable($group)
+ // Check if limited view access is allowed
+ if (($this->getUser()->featureEnabled('displaygroup.modify') && $this->getUser()->checkEditable($group))
+ || $this->getUser()->featureEnabled('displaygroup.limitedView')
) {
- $group->buttons[] = ['divider' => true];
+ if ($this->getUser()->checkEditable($group)) {
+ $group->buttons[] = ['divider' => true];
+ }
+
+ // Send command
$group->buttons[] = [
'id' => 'displaygroup_button_command',
'url' => $this->urlFor($request, 'displayGroup.command.form', ['id' => $group->displayGroupId]),
@@ -483,6 +493,7 @@ public function grid(Request $request, Response $response)
]
];
+ // Collect Now
$group->buttons[] = [
'id' => 'displaygroup_button_collectNow',
'url' => $this->urlFor($request, 'displayGroup.collectNow.form', ['id' => $group->displayGroupId]),
@@ -500,32 +511,34 @@ public function grid(Request $request, Response $response)
]
];
- // Trigger webhook
- $group->buttons[] = [
- 'id' => 'displaygroup_button_trigger_webhook',
- 'url' => $this->urlFor(
- $request,
- 'displayGroup.trigger.webhook.form',
- ['id' => $group->displayGroupId]
- ),
- 'text' => __('Trigger a web hook'),
- 'multi-select' => true,
- 'dataAttributes' => [
- [
- 'name' => 'commit-url',
- 'value' => $this->urlFor(
- $request,
- 'displayGroup.action.trigger.webhook',
- ['id' => $group->displayGroupId]
- )
- ],
- ['name' => 'commit-method', 'value' => 'post'],
- ['name' => 'id', 'value' => 'displaygroup_button_trigger_webhook'],
- ['name' => 'text', 'value' => __('Trigger a web hook')],
- ['name' => 'rowtitle', 'value' => $group->displayGroup],
- ['name' => 'form-callback', 'value' => 'triggerWebhookMultiSelectFormOpen']
- ]
- ];
+ if ($this->getUser()->checkEditable($group)) {
+ // Trigger webhook
+ $group->buttons[] = [
+ 'id' => 'displaygroup_button_trigger_webhook',
+ 'url' => $this->urlFor(
+ $request,
+ 'displayGroup.trigger.webhook.form',
+ ['id' => $group->displayGroupId]
+ ),
+ 'text' => __('Trigger a web hook'),
+ 'multi-select' => true,
+ 'dataAttributes' => [
+ [
+ 'name' => 'commit-url',
+ 'value' => $this->urlFor(
+ $request,
+ 'displayGroup.action.trigger.webhook',
+ ['id' => $group->displayGroupId]
+ )
+ ],
+ ['name' => 'commit-method', 'value' => 'post'],
+ ['name' => 'id', 'value' => 'displaygroup_button_trigger_webhook'],
+ ['name' => 'text', 'value' => __('Trigger a web hook')],
+ ['name' => 'rowtitle', 'value' => $group->displayGroup],
+ ['name' => 'form-callback', 'value' => 'triggerWebhookMultiSelectFormOpen']
+ ]
+ ];
+ }
}
}
@@ -1944,7 +1957,12 @@ public function collectNowForm(Request $request, Response $response, $id)
{
$displayGroup = $this->displayGroupFactory->getById($id);
- if (!$this->getUser()->checkEditable($displayGroup)) {
+ // Non-destructive edit-only feature; allow limited view access
+ if (
+ !$this->getUser()->checkEditable($displayGroup)
+ && !$this->getUser()->featureEnabled('displays.limitedView')
+ && !$this->getUser()->featureEnabled('displaygroup.limitedView')
+ ) {
throw new AccessDeniedException();
}
@@ -1990,7 +2008,12 @@ public function collectNow(Request $request, Response $response, $id)
{
$displayGroup = $this->displayGroupFactory->getById($id);
- if (!$this->getUser()->checkEditable($displayGroup)) {
+ // Non-destructive edit-only feature; allow limited view access
+ if (
+ !$this->getUser()->checkEditable($displayGroup)
+ && !$this->getUser()->featureEnabled('displays.limitedView')
+ && !$this->getUser()->featureEnabled('displaygroup.limitedView')
+ ) {
throw new AccessDeniedException();
}
@@ -2418,7 +2441,11 @@ public function commandForm(Request $request, Response $response, $id)
{
$displayGroup = $this->displayGroupFactory->getById($id);
- if (!$this->getUser()->checkEditable($displayGroup)) {
+ // Non-destructive edit-only feature; allow limited view access
+ if (
+ !$this->getUser()->checkEditable($displayGroup)
+ && !$this->getUser()->featureEnabled('displaygroup.limitedView')
+ ) {
throw new AccessDeniedException();
}
@@ -2479,7 +2506,11 @@ public function command(Request $request, Response $response, $id)
$displayGroup = $this->displayGroupFactory->getById($id);
$sanitizedParams = $this->getSanitizer($request->getParams());
- if (!$this->getUser()->checkEditable($displayGroup)) {
+ // Non-destructive edit-only feature; allow limited view access
+ if (
+ !$this->getUser()->checkEditable($displayGroup)
+ && !$this->getUser()->featureEnabled('displaygroup.limitedView')
+ ) {
throw new AccessDeniedException();
}
@@ -2870,4 +2901,109 @@ public function triggerWebhook(Request $request, Response $response, $id)
return $this->render($request, $response);
}
+
+ /**
+ * @SWG\Post(
+ * path="/displaygroup/criteria[/{displayGroupId}]",
+ * operationId="ScheduleCriteriaUpdate",
+ * tags={"displayGroup"},
+ * summary="Action: Push Criteria Update",
+ * description="Send criteria updates to the specified DisplayGroup or to all displays if displayGroupId is not
+ * provided.",
+ * @SWG\Parameter(
+ * name="displayGroupId",
+ * in="path",
+ * description="The display group id",
+ * type="integer",
+ * required=true
+ * ),
+ * @SWG\Parameter(
+ * name="criteriaUpdates",
+ * in="body",
+ * description="The criteria updates to send to the Player",
+ * required=true,
+ * @SWG\Schema(
+ * type="array",
+ * @SWG\Items(
+ * type="object",
+ * @SWG\Property(property="metric", type="string"),
+ * @SWG\Property(property="value", type="string"),
+ * @SWG\Property(property="ttl", type="integer")
+ * )
+ * )
+ * ),
+ * @SWG\Response(
+ * response=204,
+ * description="Successful operation"
+ * ),
+ * @SWG\Response(
+ * response=400,
+ * description="Invalid criteria format"
+ * )
+ * )
+ *
+ * @param Request $request
+ * @param Response $response
+ * @param int $displayGroupId
+ * @return ResponseInterface|Response
+ * @throws ControllerNotImplemented
+ * @throws GeneralException
+ * @throws NotFoundException
+ * @throws PlayerActionException
+ */
+ public function pushCriteriaUpdate(Request $request, Response $response, int $displayGroupId): Response|ResponseInterface
+ {
+ $sanitizedParams = $this->getSanitizer($request->getParams());
+
+ // Get criteria updates
+ $criteriaUpdates = $sanitizedParams->getArray('criteriaUpdates');
+
+ // ensure criteria updates exists
+ if (empty($criteriaUpdates)) {
+ throw new InvalidArgumentException(__('No criteria found.'), 'criteriaUpdates');
+ }
+
+ // Initialize array to hold sanitized criteria updates
+ $sanitizedCriteriaUpdates = [];
+
+ // Loop through each criterion and sanitize the input
+ foreach ($criteriaUpdates as $criteria) {
+ $criteriaSanitizer = $this->getSanitizer($criteria);
+
+ // Sanitize and retrieve the metric, value, and ttl
+ $metric = $criteriaSanitizer->getString('metric');
+ $value = $criteriaSanitizer->getString('value');
+ $ttl = $criteriaSanitizer->getInt('ttl');
+
+ // Ensure each criterion has metric, value, and ttl
+ if (empty($metric) || empty($value) || !isset($ttl)) {
+ // Throw an exception if any of the required fields are missing or empty
+ throw new PlayerActionException(
+ __('Invalid criteria format. Metric, value, and ttl must all be present and not empty.')
+ );
+ }
+
+ // Add sanitized criteria
+ $sanitizedCriteriaUpdates[] = [
+ 'metric' => $metric,
+ 'value' => $value,
+ 'ttl' => abs($ttl)
+ ];
+ }
+
+ // Create and send the player action to displays under the display group
+ $this->playerAction->sendAction(
+ $this->displayFactory->getByDisplayGroupId($displayGroupId),
+ (new ScheduleCriteriaUpdateAction())->setCriteriaUpdates($sanitizedCriteriaUpdates)
+ );
+
+ // Return
+ $this->getState()->hydrate([
+ 'httpStatus' => 204,
+ 'message' => __('Schedule criteria updates sent to players.'),
+ 'id' => $displayGroupId
+ ]);
+
+ return $this->render($request, $response);
+ }
}
diff --git a/lib/Controller/DisplayProfile.php b/lib/Controller/DisplayProfile.php
index fa09978ea6..3d27d9a93a 100644
--- a/lib/Controller/DisplayProfile.php
+++ b/lib/Controller/DisplayProfile.php
@@ -1,6 +1,6 @@
getSetting('elevateLogsUntil');
+ $elevateLogsUntilIso = !empty($elevateLogsUntil)
+ ? Carbon::createFromTimestamp($elevateLogsUntil)->format(DateFormatHelper::getSystemFormat())
+ : null;
+ $displayProfile->setUnmatchedProperty('elevateLogsUntilIso', $elevateLogsUntilIso);
+
$this->getState()->template = 'displayprofile-form-edit';
$this->getState()->setData([
'displayProfile' => $displayProfile,
@@ -457,6 +466,7 @@ public function edit(Request $request, Response $response, $id)
// Set and assign the command
$command->commandString = $parsedParams->getString('commandString_' . $command->commandId);
$command->validationString = $parsedParams->getString('validationString_' . $command->commandId);
+ $command->createAlertOn = $parsedParams->getString('createAlertOn_' . $command->commandId);
$displayProfile->assignCommand($command);
} else {
diff --git a/lib/Controller/DisplayProfileConfigFields.php b/lib/Controller/DisplayProfileConfigFields.php
index d6c28b558c..d59a40bb74 100644
--- a/lib/Controller/DisplayProfileConfigFields.php
+++ b/lib/Controller/DisplayProfileConfigFields.php
@@ -120,6 +120,23 @@ public function editConfigFields($displayProfile, $sanitizedParams, $config = nu
$displayProfile->setSetting('logLevel', $sanitizedParams->getString('logLevel'), $ownConfig, $config);
}
+ if ($sanitizedParams->hasParam('elevateLogsUntil')) {
+ $this->handleChangedSettings(
+ 'elevateLogsUntil',
+ ($ownConfig)
+ ? $displayProfile->getSetting('elevateLogsUntil')
+ : $display->getSetting('elevateLogsUntil'),
+ $sanitizedParams->getDate('elevateLogsUntil')?->format('U'),
+ $changedSettings
+ );
+ $displayProfile->setSetting(
+ 'elevateLogsUntil',
+ $sanitizedParams->getDate('elevateLogsUntil')?->format('U'),
+ $ownConfig,
+ $config
+ );
+ }
+
if ($sanitizedParams->hasParam('versionMediaId')) {
$this->handleChangedSettings('versionMediaId', ($ownConfig) ? $displayProfile->getSetting('versionMediaId') : $display->getSetting('versionMediaId'), $sanitizedParams->getInt('versionMediaId'), $changedSettings);
$displayProfile->setSetting('versionMediaId', $sanitizedParams->getInt('versionMediaId'), $ownConfig, $config);
@@ -356,6 +373,23 @@ public function editConfigFields($displayProfile, $sanitizedParams, $config = nu
$displayProfile->setSetting('logLevel', $sanitizedParams->getString('logLevel'), $ownConfig, $config);
}
+ if ($sanitizedParams->hasParam('elevateLogsUntil')) {
+ $this->handleChangedSettings(
+ 'elevateLogsUntil',
+ ($ownConfig)
+ ? $displayProfile->getSetting('elevateLogsUntil')
+ : $display->getSetting('elevateLogsUntil'),
+ $sanitizedParams->getDate('elevateLogsUntil')?->format('U'),
+ $changedSettings
+ );
+ $displayProfile->setSetting(
+ 'elevateLogsUntil',
+ $sanitizedParams->getDate('elevateLogsUntil')?->format('U'),
+ $ownConfig,
+ $config
+ );
+ }
+
if ($sanitizedParams->hasParam('logToDiskLocation')){
$this->handleChangedSettings('logToDiskLocation', ($ownConfig) ? $displayProfile->getSetting('logToDiskLocation') : $display->getSetting('logToDiskLocation'), $sanitizedParams->getString('logToDiskLocation'), $changedSettings);
$displayProfile->setSetting('logToDiskLocation', $sanitizedParams->getString('logToDiskLocation'), $ownConfig, $config);
@@ -524,6 +558,23 @@ public function editConfigFields($displayProfile, $sanitizedParams, $config = nu
$displayProfile->setSetting('logLevel', $sanitizedParams->getString('logLevel'), $ownConfig, $config);
}
+ if ($sanitizedParams->hasParam('elevateLogsUntil')) {
+ $this->handleChangedSettings(
+ 'elevateLogsUntil',
+ ($ownConfig)
+ ? $displayProfile->getSetting('elevateLogsUntil')
+ : $display->getSetting('elevateLogsUntil'),
+ $sanitizedParams->getDate('elevateLogsUntil')?->format('U'),
+ $changedSettings
+ );
+ $displayProfile->setSetting(
+ 'elevateLogsUntil',
+ $sanitizedParams->getDate('elevateLogsUntil')?->format('U'),
+ $ownConfig,
+ $config
+ );
+ }
+
if ($sanitizedParams->hasParam('enableShellCommands')) {
$this->handleChangedSettings('enableShellCommands',($ownConfig) ? $displayProfile->getSetting('enableShellCommands') : $display->getSetting('enableShellCommands'), $sanitizedParams->getCheckbox('enableShellCommands'), $changedSettings);
$displayProfile->setSetting('enableShellCommands', $sanitizedParams->getCheckbox('enableShellCommands'), $ownConfig, $config);
@@ -649,6 +700,23 @@ public function editConfigFields($displayProfile, $sanitizedParams, $config = nu
$displayProfile->setSetting('logLevel', $sanitizedParams->getString('logLevel'), $ownConfig, $config);
}
+ if ($sanitizedParams->hasParam('elevateLogsUntil')) {
+ $this->handleChangedSettings(
+ 'elevateLogsUntil',
+ ($ownConfig)
+ ? $displayProfile->getSetting('elevateLogsUntil')
+ : $display->getSetting('elevateLogsUntil'),
+ $sanitizedParams->getDate('elevateLogsUntil')?->format('U'),
+ $changedSettings
+ );
+ $displayProfile->setSetting(
+ 'elevateLogsUntil',
+ $sanitizedParams->getDate('elevateLogsUntil')?->format('U'),
+ $ownConfig,
+ $config
+ );
+ }
+
if ($sanitizedParams->hasParam('versionMediaId')) {
$this->handleChangedSettings('versionMediaId', ($ownConfig) ? $displayProfile->getSetting('versionMediaId') : $display->getSetting('versionMediaId'), $sanitizedParams->getInt('versionMediaId'), $changedSettings);
$displayProfile->setSetting('versionMediaId', $sanitizedParams->getInt('versionMediaId'), $ownConfig, $config);
diff --git a/lib/Controller/Fault.php b/lib/Controller/Fault.php
index ac2b8b3357..61667649dc 100644
--- a/lib/Controller/Fault.php
+++ b/lib/Controller/Fault.php
@@ -1,8 +1,8 @@
getUri() . $request->getUri()->getPath();
@@ -85,7 +85,7 @@ function displayPage(Request $request, Response $response)
$this->getState()->template = 'fault-page';
$this->getState()->setData($data);
- return $this->render($request,$response);
+ return $this->render($request, $response);
}
/**
@@ -117,7 +117,13 @@ public function collect(Request $request, Response $response)
$outputDisplays = $sanitizedParams->getCheckbox('outputDisplays') == 1;
$outputDisplayProfile = $sanitizedParams->getCheckbox('outputDisplayProfile') == 1;
- if (!$outputVersion && !$outputLog && !$outputEnvCheck && !$outputSettings && !$outputDisplays && !$outputDisplayProfile) {
+ if (!$outputVersion &&
+ !$outputLog &&
+ !$outputEnvCheck &&
+ !$outputSettings &&
+ !$outputDisplays &&
+ !$outputDisplayProfile
+ ) {
throw new InvalidArgumentException(__('Please select at least one option'));
}
@@ -136,12 +142,41 @@ public function collect(Request $request, Response $response)
if ($outputLog) {
$tempLogFile = $this->getConfig()->getSetting('LIBRARY_LOCATION') . 'temp/log_' . Random::generateString();
$out = fopen($tempLogFile, 'w');
- fputcsv($out, ['logId', 'runNo', 'logDate', 'channel', 'page', 'function', 'message', 'display.display', 'type']);
-
+ fputcsv(
+ $out,
+ [
+ 'logId',
+ 'runNo',
+ 'logDate',
+ 'channel',
+ 'page',
+ 'function',
+ 'message',
+ 'display.display',
+ 'type',
+ 'sessionHistoryId'
+ ]
+ );
+
+ $fromDt = Carbon::now()->subSeconds(60 * 10)->format('U');
// Do some post processing
- foreach ($this->logFactory->query(['logId'], ['fromDt' => (Carbon::now()->subSeconds(60 * 10)->format('U'))]) as $row) {
+ foreach ($this->logFactory->query(['logId'], ['fromDt' => $fromDt]) as $row) {
/* @var \Xibo\Entity\LogEntry $row */
- fputcsv($out, [$row->logId, $row->runNo, $row->logDate, $row->channel, $row->page, $row->function, $row->message, $row->display, $row->type]);
+ fputcsv(
+ $out,
+ [
+ $row->logId,
+ $row->runNo,
+ $row->logDate,
+ $row->channel,
+ $row->page,
+ $row->function,
+ $row->message,
+ $row->display,
+ $row->type,
+ $row->sessionHistoryId
+ ]
+ );
}
fclose($out);
@@ -159,24 +194,23 @@ public function collect(Request $request, Response $response)
// Output Settings
if ($outputSettings) {
- $zip->addFromString('settings.json', json_encode(array_map(function($element) {
+ $zip->addFromString('settings.json', json_encode(array_map(function ($element) {
return [$element['setting'] => $element['value']];
}, $this->store->select('SELECT setting, `value` FROM `setting`', [])), JSON_PRETTY_PRINT));
}
// Output Displays
if ($outputDisplays) {
-
$displays = $this->displayFactory->query(['display']);
// Output Profiles
if ($outputDisplayProfile) {
foreach ($displays as $display) {
/** @var \Xibo\Entity\Display $display */
- $display->settingProfile = array_map(function ($element) {
+ $display->setUnmatchedProperty('settingProfile', array_map(function ($element) {
unset($element['helpText']);
return $element;
- }, $display->getSettings());
+ }, $display->getSettings()));
}
}
diff --git a/lib/Controller/Folder.php b/lib/Controller/Folder.php
index 9a0231d74f..0d1fdf03e6 100644
--- a/lib/Controller/Folder.php
+++ b/lib/Controller/Folder.php
@@ -97,6 +97,13 @@ public function displayPage(Request $request, Response $response)
* type="string",
* required=false
* ),
+ * @SWG\Parameter(
+ * name="exactFolderName",
+ * in="query",
+ * description="Use with gridView, Filter by exact Folder name match",
+ * type="integer",
+ * required=false
+ * ),
* @SWG\Response(
* response=200,
* description="successful operation",
@@ -118,6 +125,7 @@ public function grid(Request $request, Response $response, $folderId = null)
$folders = $this->folderFactory->query($this->gridRenderSort($params), $this->gridRenderFilter([
'folderName' => $params->getString('folderName'),
'folderId' => $params->getInt('folderId'),
+ 'exactFolderName' => $params->getInt('exactFolderName'),
], $params));
$this->getState()->template = 'grid';
diff --git a/lib/Controller/Layout.php b/lib/Controller/Layout.php
index 7a63d92ce4..f6f627b50f 100644
--- a/lib/Controller/Layout.php
+++ b/lib/Controller/Layout.php
@@ -45,6 +45,7 @@
use Xibo\Factory\TagFactory;
use Xibo\Factory\UserFactory;
use Xibo\Factory\UserGroupFactory;
+use Xibo\Factory\WidgetDataFactory;
use Xibo\Factory\WidgetFactory;
use Xibo\Helper\DateFormatHelper;
use Xibo\Helper\Environment;
@@ -154,6 +155,7 @@ public function __construct(
$pool,
MediaServiceInterface $mediaService,
WidgetFactory $widgetFactory,
+ private readonly WidgetDataFactory $widgetDataFactory,
PlaylistFactory $playlistFactory,
) {
$this->session = $session;
@@ -239,7 +241,7 @@ public function displayDesigner(Request $request, Response $response, $id)
$resolution = $this->resolutionFactory->getByDimensions($layout->width, $layout->height);
}
} catch (NotFoundException $notFoundException) {
- $this->getLog()->info('Layout Designer with an unknown resolution, we will create it with name: ' . $layout->width . ' x ' . $layout->height);
+ $this->getLog()->info('Layout Editor with an unknown resolution, we will create it with name: ' . $layout->width . ' x ' . $layout->height);
$resolution = $this->resolutionFactory->create($layout->width . ' x ' . $layout->height, (int)$layout->width, (int)$layout->height);
$resolution->userId = $this->userFactory->getSystemUser()->userId;
@@ -877,12 +879,33 @@ public function applyTemplate(Request $request, Response $response, $id): Respon
$this->getDataSetFactory(),
'',
$this->mediaService,
- $layout->folderId
+ $layout->folderId,
+ false,
);
$template->managePlaylistClosureTable();
$template->manageActions();
+ // Handle widget data
+ $fallback = $layout->getUnmatchedProperty('fallback');
+ if ($fallback !== null) {
+ foreach ($layout->getAllWidgets() as $widget) {
+ // Did this widget have fallback data included in its export?
+ if (array_key_exists($widget->tempWidgetId, $fallback)) {
+ foreach ($fallback[$widget->tempWidgetId] as $item) {
+ // We create the widget data with the new widgetId
+ $this->widgetDataFactory
+ ->create(
+ $widget->widgetId,
+ $item['data'] ?? [],
+ intval($item['displayOrder'] ?? 1),
+ )
+ ->save();
+ }
+ }
+ }
+ }
+
@unlink($event->getFilePath());
} else {
$templateId = $sanitizedParams->getInt('templateId');
@@ -1493,6 +1516,7 @@ public function grid(Request $request, Response $response)
}
$widget->setUnmatchedProperty('moduleName', $module->name);
+ $widget->setUnmatchedProperty('moduleDataType', $module->dataType);
if ($module->regionSpecific == 0) {
// Use the media assigned to this widget
@@ -1699,7 +1723,8 @@ public function grid(Request $request, Response $response)
'id' => 'layout_button_preview',
'external' => true,
'url' => '#',
- 'onclick' => 'createMiniLayoutPreview("' . $this->urlFor($request, 'layout.preview', ['id' => $layout->layoutId]) . '");',
+ 'onclick' => 'createMiniLayoutPreview',
+ 'onclickParam' => $this->urlFor($request, 'layout.preview', ['id' => $layout->layoutId]),
'text' => __('Preview Layout')
);
@@ -1709,7 +1734,8 @@ public function grid(Request $request, Response $response)
'id' => 'layout_button_preview_draft',
'external' => true,
'url' => '#',
- 'onclick' => 'createMiniLayoutPreview("' . $this->urlFor($request, 'layout.preview', ['id' => $layout->layoutId]) . '?isPreviewDraft=true");',
+ 'onclick' => 'createMiniLayoutPreview',
+ 'onclickParam' => $this->urlFor($request, 'layout.preview', ['id' => $layout->layoutId]) . '?isPreviewDraft=true',
'text' => __('Preview Draft Layout')
);
}
@@ -2496,7 +2522,15 @@ public function export(Request $request, Response $response, $id)
}
$fileName = $this->getConfig()->getSetting('LIBRARY_LOCATION') . 'temp/' . $saveAs . '.zip';
- $layout->toZip($this->dataSetFactory, $fileName, ['includeData' => ($sanitizedParams->getCheckbox('includeData')== 1)]);
+ $layout->toZip(
+ $this->dataSetFactory,
+ $this->widgetDataFactory,
+ $fileName,
+ [
+ 'includeData' => ($sanitizedParams->getCheckbox('includeData') == 1),
+ 'includeFallback' => ($sanitizedParams->getCheckbox('includeFallback') == 1),
+ ]
+ );
return $this->render($request, SendFile::decorateResponse(
$response,
@@ -2530,7 +2564,7 @@ public function export(Request $request, Response $response, $id)
* @param Request $request
* @param Response $response
* @return Response
- * @throws \Xibo\Support\Exception\ConfigurationException
+ * @throws \Xibo\Support\Exception\GeneralException
*/
public function import(Request $request, Response $response)
{
@@ -2560,6 +2594,7 @@ public function import(Request $request, Response $response)
'userId' => $this->getUser()->userId,
'controller' => $this,
'dataSetFactory' => $this->getDataSetFactory(),
+ 'widgetDataFactory' => $this->widgetDataFactory,
'image_versions' => [],
'accept_file_types' => '/\.zip$/i',
'libraryLimit' => $libraryLimit,
@@ -2569,15 +2604,13 @@ public function import(Request $request, Response $response)
'folderId' => $folderId,
];
- $this->setNoOutput(true);
+ $this->setNoOutput();
// Hand off to the Upload Handler provided by jquery-file-upload
new LayoutUploadHandler($libraryFolder . 'temp/', $this->getLog()->getLoggerInterface(), $options);
// Explicitly set the Content-Type header to application/json
- $response = $response->withHeader('Content-Type', 'application/json');
-
- return $response;
+ return $response->withHeader('Content-Type', 'application/json');
}
/**
diff --git a/lib/Controller/Library.php b/lib/Controller/Library.php
index 0992a00555..ff07ee7ff4 100644
--- a/lib/Controller/Library.php
+++ b/lib/Controller/Library.php
@@ -25,6 +25,7 @@
use GuzzleHttp\Client;
use Illuminate\Support\Str;
use Intervention\Image\ImageManagerStatic as Img;
+use Psr\Http\Message\ResponseInterface;
use Respect\Validation\Validator as v;
use Slim\Http\Response as Response;
use Slim\Http\ServerRequest as Request;
@@ -36,6 +37,7 @@
use Xibo\Entity\SearchResults;
use Xibo\Event\LibraryProviderEvent;
use Xibo\Event\LibraryProviderImportEvent;
+use Xibo\Event\LibraryProviderListEvent;
use Xibo\Event\MediaDeleteEvent;
use Xibo\Event\MediaFullLoadEvent;
use Xibo\Factory\DisplayFactory;
@@ -816,10 +818,10 @@ public function grid(Request $request, Response $response)
public function search(Request $request, Response $response): Response
{
$parsedQueryParams = $this->getSanitizer($request->getQueryParams());
- $provider = $parsedQueryParams->getString('provider', ['default' => 'both']);
+ $provider = $parsedQueryParams->getString('provider', ['default' => 'local']);
$searchResults = new SearchResults();
- if ($provider === 'both' || $provider === 'local') {
+ if ($provider === 'local') {
// Sorting options.
// only allow from a preset list
$sortCol = match ($parsedQueryParams->getString('sortCol')) {
@@ -847,6 +849,7 @@ public function search(Request $request, Response $response): Response
'tags' => $parsedQueryParams->getString('tags'),
'exactTags' => $parsedQueryParams->getCheckbox('exactTags'),
'ownerId' => $parsedQueryParams->getInt('ownerId'),
+ 'folderId' => $parsedQueryParams->getInt('folderId'),
'assignable' => 1,
'retired' => 0,
'orientation' => $parsedQueryParams->getString('orientation', ['defaultOnEmptyString' => true])
@@ -876,10 +879,8 @@ public function search(Request $request, Response $response): Response
// Add the result
$searchResults->data[] = $searchResult;
}
- }
-
- if ($provider === 'both' || $provider === 'remote') {
- $this->getLog()->debug('Dispatching event.');
+ } else {
+ $this->getLog()->debug('Dispatching event, for provider ' . $provider);
// Do we have a type filter
$types = $parsedQueryParams->getArray('types');
@@ -895,11 +896,12 @@ public function search(Request $request, Response $response): Response
$parsedQueryParams->getInt('length', ['default' => 10]),
$parsedQueryParams->getString('media'),
$types,
- $parsedQueryParams->getString('orientation')
+ $parsedQueryParams->getString('orientation'),
+ $provider
);
try {
- $this->getDispatcher()->dispatch($event->getName(), $event);
+ $this->getDispatcher()->dispatch($event, $event->getName());
} catch (\Exception $exception) {
$this->getLog()->error('Library search: Exception in dispatched event: ' . $exception->getMessage());
$this->getLog()->debug($exception->getTraceAsString());
@@ -909,6 +911,23 @@ public function search(Request $request, Response $response): Response
return $response->withJson($searchResults);
}
+ /**
+ * Get list of Library providers with their details.
+ *
+ * @param Request $request
+ * @param Response $response
+ * @return Response|ResponseInterface
+ */
+ public function providersList(Request $request, Response $response): Response|\Psr\Http\Message\ResponseInterface
+ {
+ $event = new LibraryProviderListEvent();
+ $this->getDispatcher()->dispatch($event, $event->getName());
+
+ $providers = $event->getProviders();
+
+ return $response->withJson($providers);
+ }
+
/**
* Media Delete Form
* @param Request $request
@@ -1149,6 +1168,14 @@ public function add(Request $request, Response $response)
$folderId = $this->getUser()->homeFolderId;
}
+ if ($parsedBody->getInt('playlistId') !== null) {
+ $playlist = $this->playlistFactory->getById($parsedBody->getInt('playlistId'));
+
+ if ($playlist->isDynamic === 1) {
+ throw new InvalidArgumentException(__('This Playlist is dynamically managed so cannot accept manual assignments.'), 'isDynamic');
+ }
+ }
+
$options = array_merge([
'oldMediaId' => null,
'updateInLayouts' => 0,
@@ -1616,7 +1643,9 @@ public function download(Request $request, Response $response, $id)
$downloader->useLogger($this->getLog()->getLoggerInterface());
$params = $this->getSanitizer($request->getParams());
- if ($params->getCheckbox('preview') == 1) {
+
+ // Check if preview is allowed for the module
+ if ($params->getCheckbox('preview') == 1 && $module->allowPreview === 1) {
$this->getLog()->debug('download: preview mode, seeing if we can output an image/video');
// Output a 1px image if we're not allowed to see the media.
@@ -2129,7 +2158,8 @@ public function usageLayouts(Request $request, Response $response, $id)
'id' => 'layout_button_preview',
'external' => true,
'url' => '#',
- 'onclick' => 'createMiniLayoutPreview("' . $this->urlFor($request, 'layout.preview', ['id' => $layout->layoutId]) . '");',
+ 'onclick' => 'createMiniLayoutPreview',
+ 'onclickParam' => $this->urlFor($request, 'layout.preview', ['id' => $layout->layoutId]),
'text' => __('Preview Layout')
);
}
@@ -2768,6 +2798,9 @@ public function connectorImport(Request $request, Response $response)
throw new InvalidArgumentException('Missing or invalid URL', 'url');
}
+ // This ensures that apiRef will be unique for each provider and resource id
+ $apiRef = $import->searchResult->provider->id . '_' . $import->searchResult->id;
+
// Queue this for upload.
// Use a module to make sure our type, etc is supported.
$module = $this->getModuleFactory()->getByType($import->searchResult->type);
@@ -2782,7 +2815,8 @@ public function connectorImport(Request $request, Response $response)
: $module->defaultDuration,
'enableStat' => $enableStat,
'folderId' => $folder->getId(),
- 'permissionsFolderId' => $folder->permissionsFolderId
+ 'permissionsFolderId' => $folder->permissionsFolderId,
+ 'apiRef' => $apiRef
]
);
} else {
diff --git a/lib/Controller/Login.php b/lib/Controller/Login.php
index 234a52afb9..6fbafc63b9 100644
--- a/lib/Controller/Login.php
+++ b/lib/Controller/Login.php
@@ -147,6 +147,7 @@ public function loginForm(Request $request, Response $response)
$session->setIsExpired(0);
$session->regenerateSessionId();
$session->setUser($user->userId);
+ $this->getLog()->setSessionHistoryId($session->get('sessionHistoryId'));
// Audit Log
$this->getLog()->audit('User', $user->userId, 'Login Granted via token', [
@@ -647,6 +648,8 @@ private function completeLoginFlow($user, Request $request)
$session->regenerateSessionId();
$session->setUser($user->userId);
+ $this->getLog()->setSessionHistoryId($session->get('sessionHistoryId'));
+
// Audit Log
$this->getLog()->audit('User', $user->userId, 'Login Granted', [
'UserAgent' => $request->getHeader('User-Agent')
diff --git a/lib/Controller/Module.php b/lib/Controller/Module.php
index 28bd338572..4955466bc4 100644
--- a/lib/Controller/Module.php
+++ b/lib/Controller/Module.php
@@ -1,6 +1,6 @@
setValueByType($sanitizedParams, null, true);
}
+ // Preview is not allowed for generic file type
+ if ($module->allowPreview === 0 && $sanitizedParams->getCheckbox('previewEnabled') == 1) {
+ throw new InvalidArgumentException(__('Preview is disabled'));
+ }
+
// Save
$module->save();
@@ -330,6 +335,13 @@ public function clearCache(Request $request, Response $response, $id)
* type="string",
* required=true
* ),
+ * @SWG\Parameter(
+ * name="type",
+ * in="query",
+ * description="Type to return templates for",
+ * type="string",
+ * required=false
+ * ),
* @SWG\Response(
* response=200,
* description="An array of module templates for the provided datatype",
@@ -348,9 +360,16 @@ public function templateGrid(Request $request, Response $response, string $dataT
throw new InvalidArgumentException(__('Please provide a datatype'), 'dataType');
}
+ $params = $this->getSanitizer($request->getParams());
+ $type = $params->getString('type');
+
+ $templates = !empty($type)
+ ? $this->moduleTemplateFactory->getByTypeAndDataType($type, $dataType)
+ : $this->moduleTemplateFactory->getByDataType($dataType);
+
$this->getState()->template = 'grid';
$this->getState()->recordsTotal = 0;
- $this->getState()->setData($this->moduleTemplateFactory->getByDataType($dataType));
+ $this->getState()->setData($templates);
return $this->render($request, $response);
}
diff --git a/lib/Controller/Notification.php b/lib/Controller/Notification.php
index 185dc0f754..e602747029 100644
--- a/lib/Controller/Notification.php
+++ b/lib/Controller/Notification.php
@@ -68,8 +68,13 @@ class Notification extends Base
* @param UserGroupFactory $userGroupFactory
* @param DisplayNotifyService $displayNotifyService
*/
- public function __construct($notificationFactory, $userNotificationFactory, $displayGroupFactory, $userGroupFactory, $displayNotifyService)
- {
+ public function __construct(
+ $notificationFactory,
+ $userNotificationFactory,
+ $displayGroupFactory,
+ $userGroupFactory,
+ $displayNotifyService
+ ) {
$this->notificationFactory = $notificationFactory;
$this->userNotificationFactory = $userNotificationFactory;
$this->displayGroupFactory = $displayGroupFactory;
@@ -128,16 +133,21 @@ public function interrupt(Request $request, Response $response, $id)
*/
public function show(Request $request, Response $response, $id)
{
+ $params = $this->getSanitizer($request->getParams());
$notification = $this->userNotificationFactory->getByNotificationId($id);
// Mark it as read
$notification->setRead(Carbon::now()->format('U'));
$notification->save();
- $this->getState()->template = 'notification-form-show';
- $this->getState()->setData(['notification' => $notification]);
+ if ($params->getCheckbox('multiSelect')) {
+ return $response->withStatus(201);
+ } else {
+ $this->getState()->template = 'notification-form-show';
+ $this->getState()->setData(['notification' => $notification]);
- return $this->render($request, $response);
+ return $this->render($request, $response);
+ }
}
/**
@@ -184,20 +194,27 @@ public function show(Request $request, Response $response, $id)
* @throws \Xibo\Support\Exception\GeneralException
* @throws \Xibo\Support\Exception\NotFoundException
*/
- function grid(Request $request, Response $response)
+ public function grid(Request $request, Response $response): Response|\Psr\Http\Message\ResponseInterface
{
$sanitizedQueryParams = $this->getSanitizer($request->getQueryParams());
$filter = [
'notificationId' => $sanitizedQueryParams->getInt('notificationId'),
- 'subject' => $sanitizedQueryParams->getString('subject')
+ 'subject' => $sanitizedQueryParams->getString('subject'),
+ 'read' => $sanitizedQueryParams->getInt('read'),
+ 'releaseDt' => $sanitizedQueryParams->getDate('releaseDt')?->format('U'),
+ 'type' => $sanitizedQueryParams->getString('type'),
];
- $embed = ($sanitizedQueryParams->getString('embed') != null) ? explode(',', $sanitizedQueryParams->getString('embed')) : [];
- $notifications = $this->notificationFactory->query($this->gridRenderSort($sanitizedQueryParams), $this->gridRenderFilter($filter, $sanitizedQueryParams));
+ $embed = ($sanitizedQueryParams->getString('embed') != null)
+ ? explode(',', $sanitizedQueryParams->getString('embed'))
+ : [];
- foreach ($notifications as $notification) {
- /* @var \Xibo\Entity\Notification $notification */
+ $notifications = $this->notificationFactory->query(
+ $this->gridRenderSort($sanitizedQueryParams),
+ $this->gridRenderFilter($filter, $sanitizedQueryParams)
+ );
+ foreach ($notifications as $notification) {
if (in_array('userGroups', $embed) || in_array('displayGroups', $embed)) {
$notification->load([
'loadUserGroups' => in_array('userGroups', $embed),
@@ -205,30 +222,83 @@ function grid(Request $request, Response $response)
]);
}
- if ($this->isApi($request) || !$this->getUser()->featureEnabled('notification.modify'))
+ if ($this->isApi($request)) {
continue;
+ }
$notification->includeProperty('buttons');
- // Default Layout
+ // View Notification
$notification->buttons[] = [
- 'id' => 'notification_button_edit',
- 'url' => $this->urlFor($request,'notification.edit.form', ['id' => $notification->notificationId]),
- 'text' => __('Edit')
+ 'id' => 'notification_button_view',
+ 'url' => $this->urlFor(
+ $request,
+ 'notification.show',
+ ['id' => $notification->notificationId]
+ ),
+ 'text' => __('View'),
+ 'multi-select' => true,
+ 'dataAttributes' => [
+ [
+ 'name' => 'commit-url',
+ 'value' => $this->urlFor(
+ $request,
+ 'notification.show',
+ ['id' => $notification->notificationId, 'multiSelect' => true]
+ ),
+ ],
+ ['name' => 'commit-method', 'value' => 'get'],
+ ['name' => 'id', 'value' => 'notification_button_view'],
+ ['name' => 'text', 'value' => __('Mark as read?')],
+ ['name' => 'sort-group', 'value' => 1],
+ ['name' => 'rowtitle', 'value' => $notification->subject]
+ ]
];
- if ($this->getUser()->checkDeleteable($notification)) {
+
+ // Edit Notification
+ if ($this->getUser()->checkEditable($notification) &&
+ $this->getUser()->featureEnabled('notification.modify')
+ ) {
+ $notification->buttons[] = [
+ 'id' => 'notification_button_edit',
+ 'url' => $this->urlFor(
+ $request,
+ 'notification.edit.form',
+ ['id' => $notification->notificationId]
+ ),
+ 'text' => __('Edit')
+ ];
+ }
+
+ // Delete Notifications
+ if ($this->getUser()->checkDeleteable($notification) &&
+ $this->getUser()->featureEnabled('notification.modify')
+ ) {
+ $notification->buttons[] = ['divider' => true];
+
$notification->buttons[] = [
'id' => 'notification_button_delete',
- 'url' => $this->urlFor($request,'notification.delete.form', ['id' => $notification->notificationId]),
+ 'url' => $this->urlFor(
+ $request,
+ 'notification.delete.form',
+ ['id' => $notification->notificationId]
+ ),
'text' => __('Delete'),
'multi-select' => true,
'dataAttributes' => [
- ['name' => 'commit-url', 'value' => $this->urlFor($request,'notification.delete', ['id' => $notification->notificationId])],
+ [
+ 'name' => 'commit-url',
+ 'value' => $this->urlFor(
+ $request,
+ 'notification.delete',
+ ['id' => $notification->notificationId]
+ )
+ ],
['name' => 'commit-method', 'value' => 'delete'],
['name' => 'id', 'value' => 'notification_button_delete'],
['name' => 'text', 'value' => __('Delete?')],
- ['name' => 'sort-group', 'value' => 1],
+ ['name' => 'sort-group', 'value' => 2],
['name' => 'rowtitle', 'value' => $notification->subject]
]
];
@@ -258,7 +328,7 @@ public function addForm(Request $request, Response $response)
$userGroups = [];
$users = [];
- foreach ($this->displayGroupFactory->query(['displayGroup'], ['isDisplaySpecific' => -1], $request) as $displayGroup) {
+ foreach ($this->displayGroupFactory->query(['displayGroup'], ['isDisplaySpecific' => -1]) as $displayGroup) {
/* @var \Xibo\Entity\DisplayGroup $displayGroup */
if ($displayGroup->isDisplaySpecific == 1) {
@@ -268,7 +338,7 @@ public function addForm(Request $request, Response $response)
}
}
- foreach ($this->userGroupFactory->query(['`group`'], ['isUserSpecific' => -1], $request) as $userGroup) {
+ foreach ($this->userGroupFactory->query(['`group`'], ['isUserSpecific' => -1]) as $userGroup) {
/* @var UserGroup $userGroup */
if ($userGroup->isUserSpecific == 0) {
@@ -347,10 +417,10 @@ public function editForm(Request $request, Response $response, $id)
'displayGroups' => $groups,
'users' => $users,
'userGroups' => $userGroups,
- 'displayGroupIds' => array_map(function($element) {
+ 'displayGroupIds' => array_map(function ($element) {
return $element->displayGroupId;
}, $notification->displayGroups),
- 'userGroupIds' => array_map(function($element) {
+ 'userGroupIds' => array_map(function ($element) {
return $element->groupId;
}, $notification->userGroups)
]);
@@ -401,11 +471,11 @@ public function addAttachment(Request $request, Response $response)
// Make sure the library exists
MediaService::ensureLibraryExists($this->getConfig()->getSetting('LIBRARY_LOCATION'));
- $options = array(
+ $options = [
'userId' => $this->getUser()->userId,
'controller' => $this,
'accept_file_types' => '/\.jpg|.jpeg|.png|.bmp|.gif|.zip|.pdf/i'
- );
+ ];
// Output handled by UploadHandler
$this->setNoOutput(true);
@@ -452,13 +522,6 @@ public function addAttachment(Request $request, Response $response)
* required=false
* ),
* @SWG\Parameter(
- * name="isEmail",
- * in="formData",
- * description="Flag indicating whether this notification should be emailed.",
- * type="integer",
- * required=true
- * ),
- * @SWG\Parameter(
* name="isInterrupt",
* in="formData",
* description="Flag indication whether this notification should interrupt the web portal nativation/login",
@@ -516,10 +579,10 @@ public function add(Request $request, Response $response)
$notification->releaseDt = $notification->createDt;
}
- $notification->isEmail = $sanitizedParams->getCheckbox('isEmail');
$notification->isInterrupt = $sanitizedParams->getCheckbox('isInterrupt');
$notification->userId = $this->getUser()->userId;
$notification->nonusers = $sanitizedParams->getString('nonusers');
+ $notification->type = 'custom';
// Displays and Users to link
foreach ($sanitizedParams->getIntArray('displayGroupIds', ['default' => [] ]) as $displayGroupId) {
@@ -550,7 +613,9 @@ public function add(Request $request, Response $response)
$moved = rename($from, $to);
if (!$moved) {
- $this->getLog()->info('Cannot move file: ' . $from . ' to ' . $to . ', will try and copy/delete instead.');
+ $this->getLog()->info(
+ 'Cannot move file: ' . $from . ' to ' . $to . ', will try and copy/delete instead.'
+ );
// Copy
$moved = copy($from, $to);
@@ -624,13 +689,6 @@ public function add(Request $request, Response $response)
* required=true
* ),
* @SWG\Parameter(
- * name="isEmail",
- * in="formData",
- * description="Flag indicating whether this notification should be emailed.",
- * type="integer",
- * required=true
- * ),
- * @SWG\Parameter(
* name="isInterrupt",
* in="formData",
* description="Flag indication whether this notification should interrupt the web portal nativation/login",
@@ -675,7 +733,6 @@ public function edit(Request $request, Response $response, $id)
$notification->body = $request->getParam('body', '');
$notification->createDt = Carbon::now()->format('U');
$notification->releaseDt = $sanitizedParams->getDate('releaseDt')->format('U');
- $notification->isEmail = $sanitizedParams->getCheckbox('isEmail');
$notification->isInterrupt = $sanitizedParams->getCheckbox('isInterrupt');
$notification->userId = $this->getUser()->userId;
$notification->nonusers = $sanitizedParams->getString('nonusers');
diff --git a/lib/Controller/Playlist.php b/lib/Controller/Playlist.php
index 3b04978812..f05ceb164d 100644
--- a/lib/Controller/Playlist.php
+++ b/lib/Controller/Playlist.php
@@ -22,6 +22,7 @@
namespace Xibo\Controller;
+use Carbon\Carbon;
use Slim\Http\Response as Response;
use Slim\Http\ServerRequest as Request;
use Xibo\Factory\DisplayFactory;
@@ -36,10 +37,12 @@
use Xibo\Factory\UserFactory;
use Xibo\Factory\UserGroupFactory;
use Xibo\Factory\WidgetFactory;
+use Xibo\Helper\DateFormatHelper;
use Xibo\Support\Exception\AccessDeniedException;
use Xibo\Support\Exception\GeneralException;
use Xibo\Support\Exception\InvalidArgumentException;
use Xibo\Support\Exception\NotFoundException;
+use Xibo\Widget\SubPlaylistItem;
/**
* Class Playlist
@@ -1709,7 +1712,8 @@ public function usageLayouts(Request $request, Response $response, $id)
'id' => 'layout_button_preview',
'external' => true,
'url' => '#',
- 'onclick' => 'createMiniLayoutPreview("' . $this->urlFor($request, 'layout.preview', ['id' => $layout->layoutId]) . '");',
+ 'onclick' => 'createMiniLayoutPreview',
+ 'onclickParam' => $this->urlFor($request, 'layout.preview', ['id' => $layout->layoutId]),
'text' => __('Preview Layout')
);
}
@@ -1933,4 +1937,154 @@ private function hasFullScreenLayout(\Xibo\Entity\Playlist $playlist): ?int
{
return $this->layoutFactory->getLinkedFullScreenLayout('playlist', $playlist->playlistId)?->campaignId;
}
+
+ /**
+ * Convert Layout editor playlist to global playlist.
+ * Assign this Playlist to the original regionPlaylist via sub-playlist Widget.
+ * @SWG\Post(
+ * path="/playlist/{id}/convert",
+ * operationId="convert",
+ * tags={"playlist"},
+ * summary="Playlist Convert",
+ * description="Create a global playlist from inline editor Playlist.
+ * Assign created Playlist via sub-playlist Widget to region Playlist.",
+ * @SWG\Parameter(
+ * name="playlistId",
+ * in="path",
+ * description="The Playlist ID",
+ * type="integer",
+ * required=true
+ * ),
+ * @SWG\Parameter(
+ * name="name",
+ * in="formData",
+ * description="Optional name for the global Playlist.",
+ * type="string",
+ * required=false
+ * ),
+ * @SWG\Response(
+ * response=201,
+ * description="successful operation"
+ * )
+ * )
+ * @param Request $request
+ * @param Response $response
+ * @param $id
+ * @return Response
+ * @throws AccessDeniedException
+ * @throws GeneralException
+ * @throws InvalidArgumentException
+ * @throws NotFoundException
+ */
+ public function convert(Request $request, Response $response, $id): Response
+ {
+ $params = $this->getSanitizer($request->getParams());
+
+ // get region playlist
+ $regionPlaylist = $this->playlistFactory->getById($id);
+
+ // check if it is region playlist
+ if (!$regionPlaylist->isRegionPlaylist()) {
+ throw new InvalidArgumentException(__('Not a Region Playlist'), 'playlistId');
+ }
+
+ // get the region
+ $region = $this->regionFactory->getById($regionPlaylist->regionId);
+
+ // make sure this is playlist type region
+ if ($region->type !== 'playlist') {
+ throw new InvalidArgumentException(__('Not a Playlist'), 'playlistId');
+ }
+
+ // get Layout
+ $layout = $this->layoutFactory->getByRegionId($regionPlaylist->regionId);
+
+ // check permissions
+ if (!$this->getUser()->checkEditable($layout)) {
+ throw new AccessDeniedException();
+ }
+
+ // check if it is a draft
+ if (!$layout->isEditable()) {
+ throw new InvalidArgumentException(
+ __('This Layout is not a Draft, please checkout.'),
+ 'layoutId'
+ );
+ }
+
+ $regionPlaylist->load();
+
+ // clone region playlist to a new Playlist object
+ $playlist = clone $regionPlaylist;
+ $name = $params->getString(
+ 'name',
+ ['default' => sprintf(__('Untitled %s'), Carbon::now()->format(DateFormatHelper::getSystemFormat()))]
+ );
+
+ $playlist->name = empty($playlist->name) ? $name : $playlist->name;
+ $playlist->setOwner($this->getUser()->userId);
+
+ if ($playlist->enableStat == null) {
+ $playlist->enableStat = $this->getConfig()->getSetting('PLAYLIST_STATS_ENABLED_DEFAULT');
+ }
+
+ // Save the new playlist
+ $playlist->save();
+ $playlist->updateDuration();
+
+ // Clone the closure table for the original playlist
+ $regionPlaylist->cloneClosureTable($playlist->getId());
+
+ // remove widgets on the region Playlist
+ foreach ($regionPlaylist->widgets as $widget) {
+ $widget->delete();
+ }
+ $regionPlaylist->widgets = [];
+
+ $module = $this->moduleFactory->getByType('subplaylist');
+
+ // create a new sub-playlist Widget
+ $widget = $this->widgetFactory->create(
+ $this->getUser()->userId,
+ $regionPlaylist->playlistId,
+ 'subplaylist',
+ $playlist->duration,
+ $module->schemaVersion
+ );
+
+ // save, simulate add
+ $widget->save();
+
+ // prepare sub-playlist item
+ $item = new SubPlaylistItem();
+ $item->rowNo = 1;
+ $item->playlistId = $playlist->playlistId;
+ $item->spotFill = 'repeat';
+ $item->spotLength = '';
+ $item->spots = '';
+
+ $playlistItems[] = $item;
+
+ // update Widget subPlaylists option
+ $widget->setOptionValue('subPlaylists', 'attrib', json_encode($playlistItems));
+
+ // Calculate the duration
+ $widget->calculateDuration($module);
+
+ // Assign the sub-playlist widget to the region playlist
+ $regionPlaylist->assignWidget($widget);
+ // Save the region playlist
+ $regionPlaylist->save();
+
+ // build Layout xlf
+ $layout->xlfToDisk(['notify' => true, 'exceptionOnError' => true, 'exceptionOnEmptyRegion' => false]);
+
+ // Success
+ $this->getState()->hydrate([
+ 'httpStatus' => 201,
+ 'message' => __('Conversion Successful'),
+ ]);
+
+ return $this->render($request, $response);
+ }
}
diff --git a/lib/Controller/Preview.php b/lib/Controller/Preview.php
index 0d6c15aba8..6fdaa01313 100644
--- a/lib/Controller/Preview.php
+++ b/lib/Controller/Preview.php
@@ -69,7 +69,7 @@ public function show(Request $request, Response $response, $id)
}
if (!$this->getUser()->checkViewable($layout)
- || !$this->getUser()->featureEnabled(['layout.view', 'playlist.view'])
+ || !$this->getUser()->featureEnabled(['layout.view', 'playlist.view', 'campaign.view'])
) {
throw new AccessDeniedException();
}
@@ -79,7 +79,8 @@ public function show(Request $request, Response $response, $id)
$layout = $this->layoutFactory->getByParentId($layout->layoutId);
}
- $this->getState()->template = 'layout-preview';
+ // $this->getState()->template = 'layout-preview';
+ $this->getState()->template = 'layout-renderer';
$this->getState()->setData([
'layout' => $layout,
'previewOptions' => [
diff --git a/lib/Controller/Schedule.php b/lib/Controller/Schedule.php
index 7988ec9b79..f59b3fe64e 100644
--- a/lib/Controller/Schedule.php
+++ b/lib/Controller/Schedule.php
@@ -26,13 +26,16 @@
use Psr\Http\Message\ResponseInterface;
use Slim\Http\Response as Response;
use Slim\Http\ServerRequest as Request;
+use Symfony\Component\EventDispatcher\EventDispatcher;
use Xibo\Entity\ScheduleReminder;
+use Xibo\Event\ScheduleCriteriaRequestEvent;
use Xibo\Factory\CampaignFactory;
use Xibo\Factory\CommandFactory;
use Xibo\Factory\DayPartFactory;
use Xibo\Factory\DisplayFactory;
use Xibo\Factory\DisplayGroupFactory;
use Xibo\Factory\LayoutFactory;
+use Xibo\Factory\ScheduleCriteriaFactory;
use Xibo\Factory\ScheduleExclusionFactory;
use Xibo\Factory\ScheduleFactory;
use Xibo\Factory\ScheduleReminderFactory;
@@ -121,7 +124,8 @@ public function __construct(
$dayPartFactory,
$scheduleReminderFactory,
$scheduleExclusionFactory,
- SyncGroupFactory $syncGroupFactory
+ SyncGroupFactory $syncGroupFactory,
+ private readonly ScheduleCriteriaFactory $scheduleCriteriaFactory
) {
$this->session = $session;
$this->scheduleFactory = $scheduleFactory;
@@ -145,57 +149,11 @@ public function __construct(
*/
function displayPage(Request $request, Response $response)
{
- // We need to provide a list of displays
- $displayGroupIds = $this->session->get('displayGroupIds');
-
- if (!is_array($displayGroupIds)) {
- $displayGroupIds = [];
- }
-
- $displayGroups = [];
- $displaySpecificDisplayGroups = [];
-
- // Boolean to check if the option show all was saved in session
- $displayGroupsShowAll = false;
-
- if (count($displayGroupIds) > 0) {
- foreach ($displayGroupIds as $displayGroupId) {
- if ($displayGroupId == -1) {
- // If we have the show all option selected, go no further.
- $displayGroupsShowAll = true;
- break;
- }
-
- try {
- $displayGroup = $this->displayGroupFactory->getById($displayGroupId);
-
- if ($this->getUser()->checkViewable($displayGroup)) {
- if ($displayGroup->isDisplaySpecific === 1) {
- $displaySpecificDisplayGroups[] = $displayGroup;
- } else {
- $displayGroups[] = $displayGroup;
- }
- }
- } catch (NotFoundException $e) {
- $this->getLog()->debug(
- sprintf(
- 'Saved filter option for displayGroupId %d that no longer exists.',
- $displayGroupId
- )
- );
- }
- }
- }
-
// get the default longitude and latitude from CMS options
$defaultLat = (float)$this->getConfig()->getSetting('DEFAULT_LAT');
$defaultLong = (float)$this->getConfig()->getSetting('DEFAULT_LONG');
$data = [
- 'displayGroupIds' => $displayGroupIds,
- 'displayGroups' => $displayGroups,
- 'displaySpecificDisplayGroups' => $displaySpecificDisplayGroups,
- 'displayGroupsShowAll' => $displayGroupsShowAll,
'defaultLat' => $defaultLat,
'defaultLong' => $defaultLong,
'eventTypes' => \Xibo\Entity\Schedule::getEventTypesGrid(),
@@ -261,16 +219,14 @@ public function eventData(Request $request, Response $response)
$sanitizedParams = $this->getSanitizer($request->getParams());
$displayGroupIds = $sanitizedParams->getIntArray('displayGroupIds', ['default' => []]);
+ $displaySpecificDisplayGroupIds = $sanitizedParams->getIntArray('displaySpecificGroupIds', ['default' => []]);
+ $originalDisplayGroupIds = array_merge($displayGroupIds, $displaySpecificDisplayGroupIds);
$campaignId = $sanitizedParams->getInt('campaignId');
- $originalDisplayGroupIds = $displayGroupIds;
$start = $sanitizedParams->getDate('from', ['default' => Carbon::now()->startOfMonth()]);
$end = $sanitizedParams->getDate('to', ['default' => Carbon::now()->addMonth()->startOfMonth()]);
- // if we have some displayGroupIds then add them to the session info so we can default everything else.
- $this->session->set('displayGroupIds', $displayGroupIds);
-
- if (count($displayGroupIds) <= 0) {
+ if (count($originalDisplayGroupIds) <= 0) {
return $response->withJson(['success' => 1, 'result' => []]);
}
@@ -278,7 +234,7 @@ public function eventData(Request $request, Response $response)
$showLayoutName = ($this->getConfig()->getSetting('SCHEDULE_SHOW_LAYOUT_NAME') == 1);
// Permissions check the list of display groups with the user accessible list of display groups
- $displayGroupIds = array_diff($displayGroupIds, [-1]);
+ $resolvedDisplayGroupIds = array_diff($originalDisplayGroupIds, [-1]);
if (!$this->getUser()->isSuperAdmin()) {
$userDisplayGroupIds = array_map(function ($element) {
@@ -288,15 +244,15 @@ public function eventData(Request $request, Response $response)
// Reset the list to only those display groups that intersect and if 0 have been provided, only those from
// the user list
- $displayGroupIds = (count($displayGroupIds) > 0) ? array_intersect($displayGroupIds, $userDisplayGroupIds) : $userDisplayGroupIds;
+ $resolvedDisplayGroupIds = (count($originalDisplayGroupIds) > 0) ? array_intersect($originalDisplayGroupIds, $userDisplayGroupIds) : $userDisplayGroupIds;
$this->getLog()->debug('Resolved list of display groups ['
- . json_encode($displayGroupIds) . '] from provided list ['
+ . json_encode($resolvedDisplayGroupIds) . '] from provided list ['
. json_encode($originalDisplayGroupIds) . '] and user list ['
. json_encode($userDisplayGroupIds) . ']');
// If we have none, then we do not return any events.
- if (count($displayGroupIds) <= 0) {
+ if (count($resolvedDisplayGroupIds) <= 0) {
return $response->withJson(['success' => 1, 'result' => []]);
}
}
@@ -305,7 +261,7 @@ public function eventData(Request $request, Response $response)
$filter = [
'futureSchedulesFrom' => $start->format('U'),
'futureSchedulesTo' => $end->format('U'),
- 'displayGroupIds' => $displayGroupIds,
+ 'displayGroupIds' => $resolvedDisplayGroupIds,
'geoAware' => $sanitizedParams->getInt('geoAware'),
'recurring' => $sanitizedParams->getInt('recurring'),
'eventTypeId' => $sanitizedParams->getInt('eventTypeId'),
@@ -815,52 +771,27 @@ private function calculateIntermediates($display, $displayGroup, $eventDisplayGr
*/
public function addForm(Request $request, Response $response, ?string $from, ?int $id): Response|ResponseInterface
{
- // Get the display groups added to the session (if there are some)
- $displayGroupIds = $this->session->get('displayGroupIds');
-
- if (!is_array($displayGroupIds)) {
- $displayGroupIds = [];
- }
-
- $displayGroups = [];
-
- if (count($displayGroupIds) > 0) {
- foreach ($displayGroupIds as $displayGroupId) {
- if ($displayGroupId == -1) {
- continue;
- }
-
- try {
- $displayGroup = $this->displayGroupFactory->getById($displayGroupId);
-
- if ($this->getUser()->checkViewable($displayGroup)) {
- $displayGroups[] = $displayGroup;
- }
- } catch (NotFoundException $e) {
- $this->getLog()->debug(
- sprintf(
- 'Saved filter option for displayGroupId %d that no longer exists.',
- $displayGroupId
- )
- );
- }
- }
- }
-
// get the default longitude and latitude from CMS options
$defaultLat = (float)$this->getConfig()->getSetting('DEFAULT_LAT');
$defaultLong = (float)$this->getConfig()->getSetting('DEFAULT_LONG');
+ // Dispatch an event to initialize schedule criteria
+ $event = new ScheduleCriteriaRequestEvent();
+ $this->getDispatcher()->dispatch($event, ScheduleCriteriaRequestEvent::$NAME);
+
+ // Retrieve the criteria data from the event
+ $criteria = $event->getCriteria();
+
$addFormData = [
'dayParts' => $this->dayPartFactory->allWithSystem(),
- 'displayGroupIds' => $displayGroupIds,
- 'displayGroups' => $displayGroups,
'reminders' => [],
'defaultLat' => $defaultLat,
'defaultLong' => $defaultLong,
'eventTypes' => \Xibo\Entity\Schedule::getEventTypesForm(),
'isScheduleNow' => false,
'relativeTime' => 0,
+ 'setDisplaysFromFilter' => true,
+ 'scheduleCriteria' => $criteria
];
$formNowData = [];
@@ -879,6 +810,7 @@ public function addForm(Request $request, Response $response, ?string $from, ?in
'readonlySelect' => !($from == 'DisplayGroup'),
'isScheduleNow' => true,
'relativeTime' => 1,
+ 'setDisplaysFromFilter' => false,
];
}
@@ -1089,6 +1021,20 @@ public function addForm(Request $request, Response $response, ?string $from, ?in
* type="string",
* required=false
* ),
+ * @SWG\Parameter(
+ * name="dataSetId",
+ * in="formData",
+ * description="For Data Connector eventTypeId, the DataSet ID",
+ * type="integer",
+ * required=false
+ * ),
+ * @SWG\Parameter(
+ * name="dataSetParams",
+ * in="formData",
+ * description="For Data Connector eventTypeId, the DataSet params",
+ * type="string",
+ * required=false
+ * ),
* @SWG\Response(
* response=201,
* description="successful operation",
@@ -1166,6 +1112,19 @@ public function add(Request $request, Response $response)
$schedule->shareOfVoice = null;
}
+ // Fields only collected for data connector events
+ if ($schedule->eventTypeId === \Xibo\Entity\Schedule::$DATA_CONNECTOR_EVENT) {
+ $schedule->dataSetId = $sanitizedParams->getInt('dataSetId', [
+ 'throw' => function () {
+ new InvalidArgumentException(
+ __('Please select a DataSet'),
+ 'dataSetId'
+ );
+ }
+ ]);
+ $schedule->dataSetParams = $sanitizedParams->getString('dataSetParams');
+ }
+
// API request can provide an array of coordinates or valid GeoJSON, handle both cases here.
if ($this->isApi($request) && $schedule->isGeoAware === 1) {
if ($sanitizedParams->getArray('geoLocation') != null) {
@@ -1268,6 +1227,20 @@ public function add(Request $request, Response $response)
);
}
+ // Schedule Criteria
+ $criteria = $sanitizedParams->getArray('criteria');
+ if (is_array($criteria) && count($criteria) > 0) {
+ foreach ($criteria as $item) {
+ $itemParams = $this->getSanitizer($item);
+ $criterion = $this->scheduleCriteriaFactory->createEmpty();
+ $criterion->metric = $itemParams->getString('metric');
+ $criterion->type = $itemParams->getString('type');
+ $criterion->condition = $itemParams->getString('condition');
+ $criterion->value = $itemParams->getString('value');
+ $schedule->addOrUpdateCriteria($criterion);
+ }
+ }
+
// Ready to do the add
$schedule->setDisplayNotifyService($this->displayFactory->getDisplayNotifyService());
if ($schedule->campaignId != null) {
@@ -1360,6 +1333,13 @@ function editForm(Request $request, Response $response, $id)
$schedule = $this->scheduleFactory->getById($id);
$schedule->load();
+ // Dispatch an event to retrieve criteria for scheduling from the OpenWeatherMap connector.
+ $event = new ScheduleCriteriaRequestEvent();
+ $this->getDispatcher()->dispatch($event, ScheduleCriteriaRequestEvent::$NAME);
+
+ // Retrieve the data from the event
+ $criteria = $event->getCriteria();
+
if (!$this->isEventEditable($schedule)) {
throw new AccessDeniedException();
}
@@ -1423,6 +1403,7 @@ function editForm(Request $request, Response $response, $id)
'eventStart' => $eventStart,
'eventEnd' => $eventEnd,
'eventTypes' => \Xibo\Entity\Schedule::getEventTypesForm(),
+ 'scheduleCriteria' => $criteria
]);
return $this->render($request, $response);
@@ -1703,6 +1684,20 @@ public function deleteRecurrence(Request $request, Response $response, $id)
* type="string",
* required=false
* ),
+ * @SWG\Parameter(
+ * name="dataSetId",
+ * in="formData",
+ * description="For Data Connector eventTypeId, the DataSet ID",
+ * type="integer",
+ * required=false
+ * ),
+ * @SWG\Parameter(
+ * name="dataSetParams",
+ * in="formData",
+ * description="For Data Connector eventTypeId, the DataSet params",
+ * type="string",
+ * required=false
+ * ),
* @SWG\Response(
* response=200,
* description="successful operation",
@@ -1752,21 +1747,21 @@ public function edit(Request $request, Response $response, $id)
if ($schedule->eventTypeId === \Xibo\Entity\Schedule::$ACTION_EVENT) {
$schedule->actionType = $sanitizedParams->getString('actionType');
$schedule->actionTriggerCode = $sanitizedParams->getString('actionTriggerCode');
+ $schedule->commandId = $sanitizedParams->getInt('commandId');
$schedule->actionLayoutCode = $sanitizedParams->getString('actionLayoutCode');
$schedule->campaignId = null;
} else {
$schedule->actionType = null;
$schedule->actionTriggerCode = null;
+ $schedule->commandId = null;
$schedule->actionLayoutCode = null;
}
- // collect commandId only on Command event
- // null commandId otherwise
+ // collect commandId on Command event
+ // Retain existing commandId value otherwise
if ($schedule->eventTypeId === \Xibo\Entity\Schedule::$COMMAND_EVENT) {
$schedule->commandId = $sanitizedParams->getInt('commandId');
$schedule->campaignId = null;
- } else {
- $schedule->commandId = null;
}
// Set the parentCampaignId for campaign events
@@ -1817,6 +1812,19 @@ public function edit(Request $request, Response $response, $id)
$schedule->shareOfVoice = null;
}
+ // Fields only collected for data connector events
+ if ($schedule->eventTypeId === \Xibo\Entity\Schedule::$DATA_CONNECTOR_EVENT) {
+ $schedule->dataSetId = $sanitizedParams->getInt('dataSetId', [
+ 'throw' => function () {
+ new InvalidArgumentException(
+ __('Please select a DataSet'),
+ 'dataSetId'
+ );
+ }
+ ]);
+ $schedule->dataSetParams = $sanitizedParams->getString('dataSetParams');
+ }
+
// API request can provide an array of coordinates or valid GeoJSON, handle both cases here.
if ($this->isApi($request) && $schedule->isGeoAware === 1) {
if ($sanitizedParams->getArray('geoLocation') != null) {
@@ -1899,6 +1907,21 @@ public function edit(Request $request, Response $response, $id)
$schedule->recurrenceType = null;
}
+ // Schedule Criteria
+ $schedule->criteria = [];
+ $criteria = $sanitizedParams->getArray('criteria');
+ if (is_array($criteria)) {
+ foreach ($criteria as $item) {
+ $itemParams = $this->getSanitizer($item);
+ $criterion = $this->scheduleCriteriaFactory->createEmpty();
+ $criterion->metric = $itemParams->getString('metric');
+ $criterion->type = $itemParams->getString('type');
+ $criterion->condition = $itemParams->getString('condition');
+ $criterion->value = $itemParams->getString('value');
+ $schedule->addOrUpdateCriteria($criterion, $itemParams->getInt('id'));
+ }
+ }
+
// Ready to do the add
$schedule->setDisplayNotifyService($this->displayFactory->getDisplayNotifyService());
if ($schedule->campaignId != null) {
@@ -2236,7 +2259,8 @@ public function grid(Request $request, Response $response)
$params = $this->getSanitizer($request->getParams());
$displayGroupIds = $params->getIntArray('displayGroupIds', ['default' => []]);
- $originalDisplayGroupIds = $displayGroupIds;
+ $displaySpecificDisplayGroupIds = $params->getIntArray('displaySpecificGroupIds', ['default' => []]);
+ $originalDisplayGroupIds = array_merge($displayGroupIds, $displaySpecificDisplayGroupIds);
if (!$this->getUser()->isSuperAdmin()) {
$userDisplayGroupIds = array_map(function ($element) {
@@ -2246,8 +2270,8 @@ public function grid(Request $request, Response $response)
// Reset the list to only those display groups that intersect and if 0 have been provided, only those from
// the user list
- $displayGroupIds = (count($displayGroupIds) > 0)
- ? array_intersect($displayGroupIds, $userDisplayGroupIds)
+ $resolvedDisplayGroupIds = (count($originalDisplayGroupIds) > 0)
+ ? array_intersect($originalDisplayGroupIds, $userDisplayGroupIds)
: $userDisplayGroupIds;
$this->getLog()->debug('Resolved list of display groups ['
@@ -2256,13 +2280,15 @@ public function grid(Request $request, Response $response)
. json_encode($userDisplayGroupIds) . ']');
// If we have none, then we do not return any events.
- if (count($displayGroupIds) <= 0) {
+ if (count($resolvedDisplayGroupIds) <= 0) {
$this->getState()->template = 'grid';
$this->getState()->recordsTotal = $this->scheduleFactory->countLast();
$this->getState()->setData([]);
return $this->render($request, $response);
}
+ } else {
+ $resolvedDisplayGroupIds = $originalDisplayGroupIds;
}
$events = $this->scheduleFactory->query(
@@ -2274,7 +2300,7 @@ public function grid(Request $request, Response $response)
'geoAware' => $params->getInt('geoAware'),
'recurring' => $params->getInt('recurring'),
'campaignId' => $params->getInt('campaignId'),
- 'displayGroupIds' => $displayGroupIds,
+ 'displayGroupIds' => $resolvedDisplayGroupIds,
'name' => $params->getString('name'),
'useRegexForName' => $params->getCheckbox('useRegexForName'),
'logicalOperatorName' => $params->getString('logicalOperatorName'),
diff --git a/lib/Controller/SyncGroup.php b/lib/Controller/SyncGroup.php
old mode 100644
new mode 100755
index 33a5450a82..da76ce9db4
--- a/lib/Controller/SyncGroup.php
+++ b/lib/Controller/SyncGroup.php
@@ -1,6 +1,6 @@
name = $params->getString('name');
$syncGroup->ownerId = $this->getUser()->userId;
$syncGroup->syncPublisherPort = $params->getInt('syncPublisherPort');
+ $syncGroup->syncSwitchDelay = $params->getInt('syncSwitchDelay');
+ $syncGroup->syncVideoPauseDelay = $params->getInt('syncVideoPauseDelay');
$syncGroup->folderId = $folder->getId();
$syncGroup->permissionsFolderId = $folder->getPermissionFolderIdOrThis();
@@ -488,6 +490,20 @@ public function editForm(Request $request, Response $response, $id): Response|Re
* required=false
* ),
* @SWG\Parameter(
+ * name="syncSwitchDelay",
+ * in="formData",
+ * description="The delay (in ms) when displaying the changes in content - default 750",
+ * type="integer",
+ * required=false
+ * ),
+ * @SWG\Parameter(
+ * name="syncVideoPauseDelay",
+ * in="formData",
+ * description="The delay (in ms) before unpausing the video on start - default 100",
+ * type="integer",
+ * required=false
+ * ),
+ * @SWG\Parameter(
* name="leadDisplayId",
* in="formData",
* description="The ID of the Display that belongs to this Sync Group and should act as a Lead Display",
@@ -545,6 +561,8 @@ public function edit(Request $request, Response $response, $id): Response|Respon
$syncGroup->name = $params->getString('name');
$syncGroup->syncPublisherPort = $params->getInt('syncPublisherPort');
+ $syncGroup->syncSwitchDelay = $params->getInt('syncSwitchDelay');
+ $syncGroup->syncVideoPauseDelay = $params->getInt('syncVideoPauseDelay');
$syncGroup->leadDisplayId = $params->getInt('leadDisplayId');
$syncGroup->modifiedBy = $this->getUser()->userId;
$syncGroup->folderId = $folder->getId();
@@ -701,4 +719,4 @@ public function fetchDisplays(Request $request, Response $response, $id): Respon
return $this->render($request, $response);
}
-}
+}
\ No newline at end of file
diff --git a/lib/Controller/Template.php b/lib/Controller/Template.php
index b905e1f27c..db8e7b9d63 100644
--- a/lib/Controller/Template.php
+++ b/lib/Controller/Template.php
@@ -113,7 +113,9 @@ public function grid(Request $request, Response $response)
{
$sanitizedQueryParams = $this->getSanitizer($request->getQueryParams());
// Embed?
- $embed = ($sanitizedQueryParams->getString('embed') != null) ? explode(',', $sanitizedQueryParams->getString('embed')) : [];
+ $embed = ($sanitizedQueryParams->getString('embed') != null)
+ ? explode(',', $sanitizedQueryParams->getString('embed'))
+ : [];
$templates = $this->layoutFactory->query($this->gridRenderSort($sanitizedQueryParams), $this->gridRenderFilter([
'excludeTemplates' => 0,
@@ -164,12 +166,16 @@ public function grid(Request $request, Response $response)
&& $this->getUser()->checkEditable($template)
) {
// Design Button
- $template->buttons[] = array(
+ $template->buttons[] = [
'id' => 'layout_button_design',
'linkType' => '_self', 'external' => true,
- 'url' => $this->urlFor($request, 'layout.designer', array('id' => $template->layoutId)) . '?isTemplateEditor=1',
+ 'url' => $this->urlFor(
+ $request,
+ 'layout.designer',
+ ['id' => $template->layoutId]
+ ) . '?isTemplateEditor=1',
'text' => __('Alter Template')
- );
+ ];
if ($template->isEditable()) {
$template->buttons[] = ['divider' => true];
@@ -197,7 +203,14 @@ public function grid(Request $request, Response $response)
'text' => __('Checkout'),
'dataAttributes' => [
['name' => 'auto-submit', 'value' => true],
- ['name' => 'commit-url', 'value' => $this->urlFor($request, 'layout.checkout', ['id' => $template->layoutId])],
+ [
+ 'name' => 'commit-url',
+ 'value' => $this->urlFor(
+ $request,
+ 'layout.checkout',
+ ['id' => $template->layoutId]
+ )
+ ],
['name' => 'commit-method', 'value' => 'PUT']
]
);
@@ -220,7 +233,14 @@ public function grid(Request $request, Response $response)
'text' => __('Select Folder'),
'multi-select' => true,
'dataAttributes' => [
- ['name' => 'commit-url', 'value' => $this->urlFor($request, 'campaign.selectfolder', ['id' => $template->campaignId])],
+ [
+ 'name' => 'commit-url',
+ 'value' => $this->urlFor(
+ $request,
+ 'campaign.selectfolder',
+ ['id' => $template->campaignId]
+ )
+ ],
['name' => 'commit-method', 'value' => 'put'],
['name' => 'id', 'value' => 'campaign_button_selectfolder'],
['name' => 'text', 'value' => __('Move to Folder')],
@@ -248,7 +268,14 @@ public function grid(Request $request, Response $response)
'text' => __('Delete'),
'multi-select' => true,
'dataAttributes' => [
- ['name' => 'commit-url', 'value' => $this->urlFor($request, 'layout.delete', ['id' => $template->layoutId])],
+ [
+ 'name' => 'commit-url',
+ 'value' => $this->urlFor(
+ $request,
+ 'layout.delete',
+ ['id' => $template->layoutId]
+ )
+ ],
['name' => 'commit-method', 'value' => 'delete'],
['name' => 'id', 'value' => 'layout_button_delete'],
['name' => 'text', 'value' => __('Delete')],
@@ -266,18 +293,36 @@ public function grid(Request $request, Response $response)
// Permissions button
$template->buttons[] = [
'id' => 'layout_button_permissions',
- 'url' => $this->urlFor($request, 'user.permissions.form', ['entity' => 'Campaign', 'id' => $template->campaignId]) . '?nameOverride=' . __('Template'),
+ 'url' => $this->urlFor(
+ $request,
+ 'user.permissions.form',
+ ['entity' => 'Campaign', 'id' => $template->campaignId]
+ ) . '?nameOverride=' . __('Template'),
'text' => __('Share'),
'multi-select' => true,
'dataAttributes' => [
- ['name' => 'commit-url', 'value' => $this->urlFor($request, 'user.permissions.multi', ['entity' => 'Campaign', 'id' => $template->campaignId])],
+ [
+ 'name' => 'commit-url',
+ 'value' => $this->urlFor(
+ $request,
+ 'user.permissions.multi',
+ ['entity' => 'Campaign', 'id' => $template->campaignId]
+ )
+ ],
['name' => 'commit-method', 'value' => 'post'],
['name' => 'id', 'value' => 'layout_button_permissions'],
['name' => 'text', 'value' => __('Share')],
['name' => 'rowtitle', 'value' => $template->layout],
['name' => 'sort-group', 'value' => 2],
['name' => 'custom-handler', 'value' => 'XiboMultiSelectPermissionsFormOpen'],
- ['name' => 'custom-handler-url', 'value' => $this->urlFor($request, 'user.permissions.multi.form', ['entity' => 'Campaign'])],
+ [
+ 'name' => 'custom-handler-url',
+ 'value' => $this->urlFor(
+ $request,
+ 'user.permissions.multi.form',
+ ['entity' => 'Campaign']
+ )
+ ],
['name' => 'content-id-name', 'value' => 'campaignId']
]
];
@@ -338,6 +383,7 @@ public function search(Request $request, Response $response)
'excludeTemplates' => 0,
'layout' => $sanitizedQueryParams->getString('template'),
'folderId' => $sanitizedQueryParams->getInt('folderId'),
+ 'orientation' => $sanitizedQueryParams->getString('orientation', ['defaultOnEmptyString' => true]),
'publishedStatusId' => 1
], $sanitizedQueryParams));
@@ -385,7 +431,8 @@ public function search(Request $request, Response $response)
$searchResults,
$sanitizedQueryParams->getInt('start', ['default' => 0]),
$sanitizedQueryParams->getInt('length', ['default' => 15]),
- $sanitizedQueryParams->getString('template')
+ $sanitizedQueryParams->getString('template'),
+ $sanitizedQueryParams->getString('orientation'),
);
$this->getLog()->debug('Dispatching event. ' . $event->getName());
diff --git a/lib/Controller/User.php b/lib/Controller/User.php
index f613667f54..361f3d311c 100644
--- a/lib/Controller/User.php
+++ b/lib/Controller/User.php
@@ -280,6 +280,8 @@ function grid(Request $request, Response $response)
'userId' => $sanitizedParams->getInt('userId'),
'userTypeId' => $sanitizedParams->getInt('userTypeId'),
'userName' => $sanitizedParams->getString('userName'),
+ 'firstName' => $sanitizedParams->getString('firstName'),
+ 'lastName' => $sanitizedParams->getString('lastName'),
'useRegexForName' => $sanitizedParams->getCheckbox('useRegexForName'),
'retired' => $sanitizedParams->getInt('retired'),
'logicalOperatorName' => $sanitizedParams->getString('logicalOperatorName'),
@@ -839,9 +841,21 @@ public function edit(Request $request, Response $response, $id)
if ($user->retired === 1) {
$user->isSystemNotification = 0;
$user->isDisplayNotification = 0;
+ $user->isDataSetNotification = 0;
+ $user->isCustomNotification = 0;
+ $user->isLayoutNotification = 0;
+ $user->isLibraryNotification = 0;
+ $user->isReportNotification = 0;
+ $user->isScheduleNotification = 0;
} else {
$user->isSystemNotification = $sanitizedParams->getCheckbox('isSystemNotification');
$user->isDisplayNotification = $sanitizedParams->getCheckbox('isDisplayNotification');
+ $user->isDataSetNotification = $sanitizedParams->getCheckbox('isDataSetNotification');
+ $user->isCustomNotification = $sanitizedParams->getCheckbox('isCustomNotification');
+ $user->isLayoutNotification = $sanitizedParams->getCheckbox('isLayoutNotification');
+ $user->isLibraryNotification = $sanitizedParams->getCheckbox('isLibraryNotification');
+ $user->isReportNotification = $sanitizedParams->getCheckbox('isReportNotification');
+ $user->isScheduleNotification = $sanitizedParams->getCheckbox('isScheduleNotification');
}
}
@@ -864,7 +878,10 @@ public function edit(Request $request, Response $response, $id)
// Handle enabled features for the homepage.
$homepage = $this->userGroupFactory->getHomepageByName($user->homePageId);
if (!empty($homepage->feature) && !$user->featureEnabled($homepage->feature)) {
- throw new InvalidArgumentException(__('User does not have the enabled Feature for this Dashboard'), 'homePageId');
+ throw new InvalidArgumentException(
+ __('User does not have the enabled Feature for this Dashboard'),
+ 'homePageId'
+ );
}
$this->getLog()->debug('Homepage validated.');
diff --git a/lib/Controller/UserGroup.php b/lib/Controller/UserGroup.php
index a80f7792a4..802c359f03 100644
--- a/lib/Controller/UserGroup.php
+++ b/lib/Controller/UserGroup.php
@@ -311,10 +311,53 @@ function deleteForm(Request $request, Response $response, $id)
* @SWG\Parameter(
* name="isDisplayNotification",
* in="formData",
- * description="Flag (0, 1), should members of this Group receive Display notifications for Displays they have permissions to see",
+ * description="Flag (0, 1), should members of this Group receive Display notifications
+ * for Displays they have permissions to see",
* type="integer",
* required=false
* ),
+ * @SWG\Parameter(
+ * name="isDataSetNotification",
+ * in="formData",
+ * description="Flag (0, 1), should members of this Group receive DataSet notification emails?",
+ * type="integer",
+ * required=false
+ * ),
+ * @SWG\Parameter(
+ * name="isLayoutNotification",
+ * in="formData",
+ * description="Flag (0, 1), should members of this Group receive Layout notification emails?",
+ * type="integer",
+ * required=false
+ * ),
+ * @SWG\Parameter(
+ * name="isLibraryNotification",
+ * in="formData",
+ * description="Flag (0, 1), should members of this Group receive Library notification emails?",
+ * type="integer",
+ * required=false
+ * ),
+ * @SWG\Parameter(
+ * name="isReportNotification",
+ * in="formData",
+ * description="Flag (0, 1), should members of this Group receive Report notification emails?",
+ * type="integer",
+ * required=false
+ * ),
+ * @SWG\Parameter(
+ * name="isScheduleNotification",
+ * in="formData",
+ * description="Flag (0, 1), should members of this Group receive Schedule notification emails?",
+ * type="integer",
+ * required=false
+ * ),
+ * @SWG\Parameter(
+ * name="isCustomNotification",
+ * in="formData",
+ * description="Flag (0, 1), should members of this Group receive Custom notification emails?",
+ * type="integer",
+ * required=false
+ * ),
* @SWG\Parameter(
* name="isShownForAddUser",
* in="formData",
@@ -347,7 +390,7 @@ function deleteForm(Request $request, Response $response, $id)
* @throws \Xibo\Support\Exception\GeneralException
* @throws \Xibo\Support\Exception\InvalidArgumentException
*/
- function add(Request $request, Response $response)
+ public function add(Request $request, Response $response)
{
$sanitizedParams = $this->getSanitizer($request->getParams());
@@ -365,6 +408,12 @@ function add(Request $request, Response $response)
if ($this->getUser()->userTypeId == 1) {
$group->isSystemNotification = $sanitizedParams->getCheckbox('isSystemNotification');
$group->isDisplayNotification = $sanitizedParams->getCheckbox('isDisplayNotification');
+ $group->isDataSetNotification = $sanitizedParams->getCheckbox('isDataSetNotification');
+ $group->isCustomNotification = $sanitizedParams->getCheckbox('isCustomNotification');
+ $group->isLayoutNotification = $sanitizedParams->getCheckbox('isLayoutNotification');
+ $group->isLibraryNotification = $sanitizedParams->getCheckbox('isLibraryNotification');
+ $group->isReportNotification = $sanitizedParams->getCheckbox('isReportNotification');
+ $group->isScheduleNotification = $sanitizedParams->getCheckbox('isScheduleNotification');
$group->isShownForAddUser = $sanitizedParams->getCheckbox('isShownForAddUser');
$group->defaultHomepageId = $sanitizedParams->getString('defaultHomepageId');
}
@@ -434,10 +483,53 @@ function add(Request $request, Response $response)
* @SWG\Parameter(
* name="isDisplayNotification",
* in="formData",
- * description="Flag (0, 1), should members of this Group receive Display notifications for Displays they have permissions to see",
+ * description="Flag (0, 1), should members of this Group receive Display notifications
+ * for Displays they have permissions to see",
* type="integer",
* required=false
* ),
+ * @SWG\Parameter(
+ * name="isDataSetNotification",
+ * in="formData",
+ * description="Flag (0, 1), should members of this Group receive DataSet notification emails?",
+ * type="integer",
+ * required=false
+ * ),
+ * @SWG\Parameter(
+ * name="isLayoutNotification",
+ * in="formData",
+ * description="Flag (0, 1), should members of this Group receive Layout notification emails?",
+ * type="integer",
+ * required=false
+ * ),
+ * @SWG\Parameter(
+ * name="isLibraryNotification",
+ * in="formData",
+ * description="Flag (0, 1), should members of this Group receive Library notification emails?",
+ * type="integer",
+ * required=false
+ * ),
+ * @SWG\Parameter(
+ * name="isReportNotification",
+ * in="formData",
+ * description="Flag (0, 1), should members of this Group receive Report notification emails?",
+ * type="integer",
+ * required=false
+ * ),
+ * @SWG\Parameter(
+ * name="isScheduleNotification",
+ * in="formData",
+ * description="Flag (0, 1), should members of this Group receive Schedule notification emails?",
+ * type="integer",
+ * required=false
+ * ),
+ * @SWG\Parameter(
+ * name="isCustomNotification",
+ * in="formData",
+ * description="Flag (0, 1), should members of this Group receive Custom notification emails?",
+ * type="integer",
+ * required=false
+ * ),
* @SWG\Parameter(
* name="isShownForAddUser",
* in="formData",
@@ -472,7 +564,7 @@ function add(Request $request, Response $response)
* @throws \Xibo\Support\Exception\InvalidArgumentException
* @throws \Xibo\Support\Exception\NotFoundException
*/
- function edit(Request $request, Response $response, $id)
+ public function edit(Request $request, Response $response, $id)
{
// Check permissions
if (!$this->getUser()->isSuperAdmin() && !$this->getUser()->isGroupAdmin()) {
@@ -496,12 +588,21 @@ function edit(Request $request, Response $response, $id)
if ($this->getUser()->userTypeId == 1) {
$group->isSystemNotification = $sanitizedParams->getCheckbox('isSystemNotification');
$group->isDisplayNotification = $sanitizedParams->getCheckbox('isDisplayNotification');
+ $group->isDataSetNotification = $sanitizedParams->getCheckbox('isDataSetNotification');
+ $group->isCustomNotification = $sanitizedParams->getCheckbox('isCustomNotification');
+ $group->isLayoutNotification = $sanitizedParams->getCheckbox('isLayoutNotification');
+ $group->isLibraryNotification = $sanitizedParams->getCheckbox('isLibraryNotification');
+ $group->isReportNotification = $sanitizedParams->getCheckbox('isReportNotification');
+ $group->isScheduleNotification = $sanitizedParams->getCheckbox('isScheduleNotification');
$group->isShownForAddUser = $sanitizedParams->getCheckbox('isShownForAddUser');
$group->defaultHomepageId = $sanitizedParams->getString('defaultHomepageId');
// if we have homepage set assign matching feature if it does not already exist
if (!empty($group->defaultHomepageId)
- && !in_array($this->userGroupFactory->getHomepageByName($group->defaultHomepageId)->feature, $group->features)
+ && !in_array(
+ $this->userGroupFactory->getHomepageByName($group->defaultHomepageId)->feature,
+ $group->features
+ )
&& $group->defaultHomepageId !== 'icondashboard.view'
) {
$group->features[] = $this->userGroupFactory->getHomepageByName($group->defaultHomepageId)->feature;
@@ -551,7 +652,7 @@ function edit(Request $request, Response $response, $id)
* )
* )
*/
- function delete(Request $request, Response $response, $id)
+ public function delete(Request $request, Response $response, $id)
{
// Check permissions
if (!$this->getUser()->isSuperAdmin()) {
diff --git a/lib/Controller/Widget.php b/lib/Controller/Widget.php
index bd2afe7904..abc8940a15 100644
--- a/lib/Controller/Widget.php
+++ b/lib/Controller/Widget.php
@@ -37,6 +37,7 @@
use Xibo\Factory\RegionFactory;
use Xibo\Factory\TransitionFactory;
use Xibo\Factory\WidgetAudioFactory;
+use Xibo\Factory\WidgetDataFactory;
use Xibo\Factory\WidgetFactory;
use Xibo\Helper\DateFormatHelper;
use Xibo\Support\Exception\AccessDeniedException;
@@ -99,7 +100,8 @@ public function __construct(
$widgetFactory,
$transitionFactory,
$regionFactory,
- $widgetAudioFactory
+ $widgetAudioFactory,
+ private readonly WidgetDataFactory $widgetDataFactory
) {
$this->moduleFactory = $moduleFactory;
$this->moduleTemplateFactory = $moduleTemplateFactory;
@@ -191,6 +193,10 @@ public function addWidget(Request $request, Response $response, $type, $id)
throw new InvalidArgumentException(__('This Layout is not a Draft, please checkout.'), 'layoutId');
}
+ if ($playlist->isDynamic === 1) {
+ throw new InvalidArgumentException(__('This Playlist is dynamically managed so cannot accept manual assignments.'), 'isDynamic');
+ }
+
// Load some information about this playlist
// loadWidgets = true to keep the ordering correct
$playlist->load([
@@ -359,6 +365,7 @@ public function editWidgetForm(Request $request, Response $response, $id)
'name' => $widget->getOptionValue('name', null),
'enableStat' => $widget->getOptionValue('enableStat', null),
'isRepeatData' => $widget->getOptionValue('isRepeatData', null),
+ 'showFallback' => $widget->getOptionValue('showFallback', null),
'duration' => $widget->duration,
'useDuration' => $widget->useDuration
],
@@ -420,6 +427,13 @@ public function editWidgetForm(Request $request, Response $response, $id)
* required=false
* ),
* @SWG\Parameter(
+ * name="showFallback",
+ * in="formData",
+ * description="If this widget requires data and allows fallback data how should that data be returned? (never, always, empty, error)",
+ * type="string",
+ * required=false
+ * ),
+ * @SWG\Parameter(
* name="properties",
* in="formData",
* description="Add an additional parameter for each of the properties required this module and its template. Use the moduleProperties and moduleTemplateProperties calls to get a list of properties needed",
@@ -456,6 +470,10 @@ public function editWidget(Request $request, Response $response, $id)
throw new InvalidArgumentException(__('This Layout is not a Draft, please checkout.'), 'layoutId');
}
+ if ($playlist->isDynamic === 1) {
+ throw new InvalidArgumentException(__('This Playlist is dynamically managed so cannot accept manual assignments.'), 'isDynamic');
+ }
+
$module = $this->moduleFactory->getByType($widget->type);
// Handle common parameters.
@@ -467,6 +485,10 @@ public function editWidget(Request $request, Response $response, $id)
// Handle special common properties for widgets with data
if ($module->isDataProviderExpected()) {
$widget->setOptionValue('isRepeatData', 'attrib', $params->getCheckbox('isRepeatData'));
+
+ if ($module->fallbackData === 1) {
+ $widget->setOptionValue('showFallback', 'attrib', $params->getString('showFallback'));
+ }
}
// Validate common parameters if we don't have a validator present.
@@ -665,6 +687,10 @@ public function deleteWidget(Request $request, Response $response, $id)
throw new InvalidArgumentException(__('This Layout is not a Draft, please checkout.'), 'layoutId');
}
+ if ($playlist->isDynamic === 1) {
+ throw new InvalidArgumentException(__('This Playlist is dynamically managed so cannot accept manual assignments.'), 'isDynamic');
+ }
+
// Delete clears these, so cache them.
$widgetMedia = $widget->mediaIds;
@@ -823,6 +849,10 @@ public function editWidgetTransition(Request $request, Response $response, $type
throw new InvalidArgumentException(__('This Layout is not a Draft, please checkout.'), 'layoutId');
}
+ if ($playlist->isDynamic === 1) {
+ throw new InvalidArgumentException(__('This Playlist is dynamically managed so cannot accept manual assignments.'), 'isDynamic');
+ }
+
$widget->load();
$sanitizedParams = $this->getSanitizer($request->getParams());
@@ -988,6 +1018,10 @@ public function widgetAudio(Request $request, Response $response, $id)
throw new InvalidArgumentException(__('This Layout is not a Draft, please checkout.'), 'layoutId');
}
+ if ($playlist->isDynamic === 1) {
+ throw new InvalidArgumentException(__('This Playlist is dynamically managed so cannot accept manual assignments.'), 'isDynamic');
+ }
+
// Are we allowed to do this?
if ($widget->type === 'subplaylist') {
throw new InvalidArgumentException(
@@ -1077,6 +1111,10 @@ public function widgetAudioDelete(Request $request, Response $response, $id)
throw new InvalidArgumentException(__('This Layout is not a Draft, please checkout.'), 'layoutId');
}
+ if ($playlist->isDynamic === 1) {
+ throw new InvalidArgumentException(__('This Playlist is dynamically managed so cannot accept manual assignments.'), 'isDynamic');
+ }
+
$widget->load();
foreach ($widget->audio as $audio) {
@@ -1158,6 +1196,32 @@ public function getData(Request $request, Response $response, $regionId, $id)
}
}
+ // Will we use fallback data if available?
+ $showFallback = $widget->getOptionValue('showFallback', 'never');
+ if ($showFallback !== 'never') {
+ // What data type are we dealing with?
+ try {
+ $dataTypeFields = [];
+ foreach ($this->moduleFactory->getDataTypeById($module->dataType)->fields as $field) {
+ $dataTypeFields[$field->id] = $field->type;
+ }
+
+ // Potentially we will, so get the modifiedDt of this fallback data.
+ $fallbackModifiedDt = $this->widgetDataFactory->getModifiedDtForWidget($widget->widgetId);
+
+ if ($fallbackModifiedDt !== null) {
+ $this->getLog()->debug('getData: fallback modifiedDt is ' . $fallbackModifiedDt->toAtomString());
+
+ $dataModifiedDt = max($dataModifiedDt, $fallbackModifiedDt);
+ }
+ } catch (NotFoundException) {
+ $this->getLog()->info('getData: widget will fallback set where the module does not support it');
+ $dataTypeFields = null;
+ }
+ } else {
+ $dataTypeFields = null;
+ }
+
// Use the cache if we can.
if (!$widgetDataProviderCache->decorateWithCache($dataProvider, $cacheKey, $dataModifiedDt)
|| $widgetDataProviderCache->isCacheMissOrOld()
@@ -1166,6 +1230,7 @@ public function getData(Request $request, Response $response, $regionId, $id)
$dataProvider->clearData();
$dataProvider->clearMeta();
+ $dataProvider->addOrUpdateMeta('showFallback', $showFallback);
try {
if ($widgetInterface !== null) {
@@ -1181,6 +1246,47 @@ public function getData(Request $request, Response $response, $regionId, $id)
);
}
+ // Before caching images, check to see if the data provider is handled
+ $isFallback = false;
+ if ($showFallback !== 'never'
+ && $dataTypeFields !== null
+ && (
+ count($dataProvider->getErrors()) > 0
+ || count($dataProvider->getData()) <= 0
+ || $showFallback === 'always'
+ )
+ ) {
+ // Error or no data.
+ $this->getLog()->debug('getData: eligible for fallback data');
+
+ // Pull in the fallback data
+ foreach ($this->widgetDataFactory->getByWidgetId($dataProvider->getWidgetId()) as $item) {
+ // Handle any special data types in the fallback data
+ foreach ($item->data as $itemId => $itemData) {
+ if (!empty($itemData)
+ && array_key_exists($itemId, $dataTypeFields)
+ && $dataTypeFields[$itemId] === 'image'
+ ) {
+ $item->data[$itemId] = $dataProvider->addLibraryFile($itemData);
+ }
+ }
+
+ $dataProvider->addItem($item->data);
+
+ // Indicate we've been handled by fallback data
+ $isFallback = true;
+ }
+
+ if ($isFallback) {
+ $dataProvider->addOrUpdateMeta('includesFallback', true);
+ }
+ }
+
+ // Remove fallback data from the cache if no-longer needed
+ if (!$isFallback) {
+ $dataProvider->addOrUpdateMeta('includesFallback', false);
+ }
+
// Do we have images?
$media = $dataProvider->getImages();
if (count($media) > 0) {
@@ -1195,10 +1301,12 @@ public function getData(Request $request, Response $response, $regionId, $id)
}
// Save to cache
- if ($dataProvider->isHandled()) {
+ if ($dataProvider->isHandled() || $isFallback) {
$widgetDataProviderCache->saveToCache($dataProvider);
} else {
// Unhandled data provider.
+ $this->getLog()->debug('getData: unhandled data provider and no fallback data');
+
$message = null;
foreach ($dataProvider->getErrors() as $error) {
$message .= $error . PHP_EOL;
@@ -1322,7 +1430,8 @@ public function getResource(Request $request, Response $response, $regionId, $id
$resource,
function (string $route, array $data, array $params = []) use ($request) {
return $this->urlFor($request, $route, $data, $params);
- }
+ },
+ $request,
);
$response->getBody()->write($resource);
@@ -1444,6 +1553,10 @@ public function widgetExpiry(Request $request, Response $response, $id)
throw new InvalidArgumentException(__('This Layout is not a Draft, please checkout.'), 'layoutId');
}
+ if ($playlist->isDynamic === 1) {
+ throw new InvalidArgumentException(__('This Playlist is dynamically managed so cannot accept manual assignments.'), 'isDynamic');
+ }
+
$widget->load();
// Pull in the parameters we are expecting from the form.
diff --git a/lib/Controller/WidgetData.php b/lib/Controller/WidgetData.php
new file mode 100644
index 0000000000..907e7a4ef4
--- /dev/null
+++ b/lib/Controller/WidgetData.php
@@ -0,0 +1,414 @@
+.
+ */
+
+namespace Xibo\Controller;
+
+use Slim\Http\Response as Response;
+use Slim\Http\ServerRequest as Request;
+use Xibo\Factory\ModuleFactory;
+use Xibo\Factory\WidgetDataFactory;
+use Xibo\Factory\WidgetFactory;
+use Xibo\Support\Exception\AccessDeniedException;
+use Xibo\Support\Exception\InvalidArgumentException;
+
+/**
+ * Controller for managing Widget Data
+ */
+class WidgetData extends Base
+{
+ public function __construct(
+ private readonly WidgetDataFactory $widgetDataFactory,
+ private readonly WidgetFactory $widgetFactory,
+ private readonly ModuleFactory $moduleFactory
+ ) {
+ }
+
+ // phpcs:disable
+ /**
+ * @SWG\Post(
+ * path="/playlist/widget/data/{id}",
+ * operationId="getWidgetData",
+ * tags={"widget"},
+ * summary="Get data for Widget",
+ * description="Return all of the fallback data currently assigned to this Widget",
+ * @SWG\Parameter(
+ * name="id",
+ * in="path",
+ * description="The Widget ID that this data should be added to",
+ * type="integer",
+ * required=true
+ * ),
+ * @SWG\Response(
+ * response=201,
+ * description="successful operation",
+ * @SWG\Schema(
+ * type="array",
+ * @SWG\Items(ref="#/definitions/WidgetData")
+ * )
+ * )
+ * )
+ * @throws \Xibo\Support\Exception\GeneralException
+ */
+ // phpcs:enable
+ public function get(Request $request, Response $response, int $id): Response
+ {
+ $widget = $this->widgetFactory->getById($id);
+ if (!$this->getUser()->checkEditable($widget)) {
+ throw new AccessDeniedException(__('This Widget is not shared with you with edit permission'));
+ }
+
+ return $response->withJson($this->widgetDataFactory->getByWidgetId($widget->widgetId));
+ }
+
+ // phpcs:disable
+ /**
+ * @SWG\Post(
+ * path="/playlist/widget/data/{id}",
+ * operationId="addWidgetData",
+ * tags={"widget"},
+ * summary="Add a data to a Widget",
+ * description="Add fallback data to a data Widget",
+ * @SWG\Parameter(
+ * name="id",
+ * in="path",
+ * description="The Widget ID that this data should be added to",
+ * type="integer",
+ * required=true
+ * ),
+ * @SWG\Parameter(
+ * name="data",
+ * in="path",
+ * description="A JSON formatted string containing a single data item for this widget's data type",
+ * type="string",
+ * required=true
+ * ),
+ * @SWG\Parameter(
+ * name="displayOrder",
+ * in="formData",
+ * description="Optional integer to say which position this data should appear if there is more than one data item",
+ * type="integer",
+ * required=false
+ * ),
+ * @SWG\Response(
+ * response=201,
+ * description="successful operation",
+ * @SWG\Header(
+ * header="Location",
+ * description="Location of the new record",
+ * type="string"
+ * )
+ * )
+ * )
+ * @throws \Xibo\Support\Exception\GeneralException
+ */
+ // phpcs:enable
+ public function add(Request $request, Response $response, int $id): Response
+ {
+ // Check that we have permission to edit this widget
+ $widget = $this->widgetFactory->getById($id);
+ if (!$this->getUser()->checkEditable($widget)) {
+ throw new AccessDeniedException(__('This Widget is not shared with you with edit permission'));
+ }
+
+ // Get the other params.
+ $params = $this->getSanitizer($request->getParams());
+ $widgetData = $this->widgetDataFactory
+ ->create(
+ $widget->widgetId,
+ $this->parseAndValidate($widget, $params->getArray('data')),
+ $params->getInt('displayOrder', ['default' => 1]),
+ )
+ ->save();
+
+ // Update the widget modified dt
+ $widget->modifiedDt =
+
+ // Successful
+ $this->getState()->hydrate([
+ 'httpStatus' => 201,
+ 'message' => __('Added data for Widget'),
+ 'id' => $widgetData->id,
+ 'data' => $widgetData,
+ ]);
+
+ return $this->render($request, $response);
+ }
+
+ // phpcs:disable
+ /**
+ * @SWG\Put(
+ * path="/playlist/widget/data/{id}/{dataId}",
+ * operationId="editWidgetData",
+ * tags={"widget"},
+ * summary="Edit data on a Widget",
+ * description="Edit fallback data on a data Widget",
+ * @SWG\Parameter(
+ * name="id",
+ * in="path",
+ * description="The Widget ID that this data is attached to",
+ * type="integer",
+ * required=true
+ * ),
+ * @SWG\Parameter(
+ * name="dataId",
+ * in="path",
+ * description="The ID of the data to be edited",
+ * type="integer",
+ * required=true
+ * ),
+ * @SWG\Parameter(
+ * name="data",
+ * in="path",
+ * description="A JSON formatted string containing a single data item for this widget's data type",
+ * type="string",
+ * required=true
+ * ),
+ * @SWG\Parameter(
+ * name="displayOrder",
+ * in="formData",
+ * description="Optional integer to say which position this data should appear if there is more than one data item",
+ * type="integer",
+ * required=false
+ * ),
+ * @SWG\Response(
+ * response=204,
+ * description="successful operation"
+ * )
+ * )
+ * @throws \Xibo\Support\Exception\GeneralException
+ */
+ // phpcs:enable
+ public function edit(Request $request, Response $response, int $id, int $dataId): Response
+ {
+ // Check that we have permission to edit this widget
+ $widget = $this->widgetFactory->getById($id);
+ if (!$this->getUser()->checkEditable($widget)) {
+ throw new AccessDeniedException(__('This Widget is not shared with you with edit permission'));
+ }
+
+ // Make sure this dataId is for this widget
+ $widgetData = $this->widgetDataFactory->getById($dataId);
+
+ if ($id !== $widgetData->widgetId) {
+ throw new AccessDeniedException(__('This widget data does not belong to this widget'));
+ }
+
+ // Get params and process the edit
+ $params = $this->getSanitizer($request->getParams());
+ $widgetData->data = $this->parseAndValidate($widget, $params->getArray('data'));
+ $widgetData->displayOrder = $params->getInt('displayOrder', ['default' => 1]);
+ $widgetData->save();
+
+ // Successful
+ $this->getState()->hydrate([
+ 'message' => __('Edited data for Widget'),
+ 'id' => $widgetData->id,
+ 'data' => $widgetData,
+ 'httpStatus' => 204,
+ ]);
+
+ return $this->render($request, $response);
+ }
+
+ // phpcs:disable
+ /**
+ * @SWG\Delete(
+ * path="/playlist/widget/data/{id}/{dataId}",
+ * operationId="deleteWidgetData",
+ * tags={"widget"},
+ * summary="Delete data on a Widget",
+ * description="Delete fallback data on a data Widget",
+ * @SWG\Parameter(
+ * name="id",
+ * in="path",
+ * description="The Widget ID that this data is attached to",
+ * type="integer",
+ * required=true
+ * ),
+ * @SWG\Parameter(
+ * name="dataId",
+ * in="path",
+ * description="The ID of the data to be deleted",
+ * type="integer",
+ * required=true
+ * ),
+ * @SWG\Response(
+ * response=204,
+ * description="successful operation"
+ * )
+ * )
+ * @throws \Xibo\Support\Exception\GeneralException
+ */
+ // phpcs:enable
+ public function delete(Request $request, Response $response, int $id, int $dataId): Response
+ {
+ // Check that we have permission to edit this widget
+ $widget = $this->widgetFactory->getById($id);
+ if (!$this->getUser()->checkEditable($widget)) {
+ throw new AccessDeniedException(__('This Widget is not shared with you with edit permission'));
+ }
+
+ // Make sure this dataId is for this widget
+ $widgetData = $this->widgetDataFactory->getById($dataId);
+
+ if ($id !== $widgetData->widgetId) {
+ throw new AccessDeniedException(__('This widget data does not belong to this widget'));
+ }
+
+ // Delete it.
+ $widgetData->delete();
+
+ // Successful
+ $this->getState()->hydrate(['message' => __('Deleted'), 'httpStatus' => 204]);
+
+ return $this->render($request, $response);
+ }
+
+ // phpcs:disable
+ /**
+ * @SWG\Definition(
+ * definition="WidgetDataOrder",
+ * @SWG\Property(
+ * property="dataId",
+ * type="integer",
+ * description="Data ID"
+ * ),
+ * @SWG\Property(
+ * property="displayOrder",
+ * type="integer",
+ * description="Desired display order"
+ * )
+ * )
+ *
+ * @SWG\Post(
+ * path="/playlist/widget/data/{id}/order",
+ * operationId="orderWidgetData",
+ * tags={"widget"},
+ * summary="Update the order of data on a Widget",
+ * description="Provide all data to be ordered on a widget",
+ * @SWG\Parameter(
+ * name="id",
+ * in="path",
+ * description="The Widget ID that this data is attached to",
+ * type="integer",
+ * required=true
+ * ),
+ * @SWG\Parameter(
+ * name="dataId",
+ * in="path",
+ * description="The ID of the data to be deleted",
+ * type="integer",
+ * required=true
+ * ),
+ * @SWG\Parameter(
+ * name="order",
+ * in="body",
+ * description="An array of any widget data records that should be re-ordered",
+ * @SWG\Schema(
+ * type="array",
+ * @SWG\Items(ref="WidgetDataOrder")
+ * ),
+ * required=true
+ * ),
+ * @SWG\Response(
+ * response=204,
+ * description="successful operation"
+ * )
+ * )
+ * @throws \Xibo\Support\Exception\GeneralException
+ */
+ // phpcs:enable
+ public function setOrder(Request $request, Response $response, int $id): Response
+ {
+ // Check that we have permission to edit this widget
+ $widget = $this->widgetFactory->getById($id);
+ if (!$this->getUser()->checkEditable($widget)) {
+ throw new AccessDeniedException(__('This Widget is not shared with you with edit permission'));
+ }
+
+ // Expect an array of `id` in order.
+ $params = $this->getSanitizer($request->getParams());
+ foreach ($params->getArray('order', ['default' => []]) as $item) {
+ $itemParams = $this->getSanitizer($item);
+
+ // Make sure this dataId is for this widget
+ $widgetData = $this->widgetDataFactory->getById($itemParams->getInt('dataId'));
+ $widgetData->displayOrder = $itemParams->getInt('displayOrder');
+
+ if ($id !== $widgetData->widgetId) {
+ throw new AccessDeniedException(__('This widget data does not belong to this widget'));
+ }
+
+ // Save it
+ $widgetData->save();
+ }
+
+ // Successful
+ $this->getState()->hydrate([
+ 'message' => __('Updated the display order for data on Widget'),
+ 'id' => $widget->widgetId,
+ 'httpStatus' => 204,
+ ]);
+
+ return $this->render($request, $response);
+ }
+
+ /**
+ * Parse and validate the data provided in params.
+ * @throws \Xibo\Support\Exception\InvalidArgumentException
+ * @throws \Xibo\Support\Exception\NotFoundException
+ */
+ private function parseAndValidate(\Xibo\Entity\Widget $widget, array $item): array
+ {
+ // Check that this module is a data widget
+ $module = $this->moduleFactory->getByType($widget->type);
+ if (!$module->isDataProviderExpected()) {
+ throw new InvalidArgumentException(__('This is not a data widget'));
+ }
+
+ if ($module->fallbackData !== 1) {
+ throw new InvalidArgumentException(__('Fallback data is not expected for this Widget'));
+ }
+
+ // Parse out the data string we've been given and make sure it's valid according to this widget's datatype
+ $data = [];
+ $params = $this->getSanitizer($item);
+
+ $dataType = $this->moduleFactory->getDataTypeById($module->dataType);
+ foreach ($dataType->fields as $field) {
+ if ($field->isRequired && !$params->hasParam($field->id)) {
+ throw new InvalidArgumentException(sprintf(
+ 'Data is missing a field called %s',
+ $field->title
+ ));
+ }
+
+ $value = match ($field->type) {
+ 'number' => $params->getDouble($field->id),
+ default => $params->getString($field->id),
+ };
+ $data[$field->id] = $value;
+ }
+
+ return $data;
+ }
+}
diff --git a/lib/Dependencies/Controllers.php b/lib/Dependencies/Controllers.php
index 8eef97f395..b6fe8a2157 100644
--- a/lib/Dependencies/Controllers.php
+++ b/lib/Dependencies/Controllers.php
@@ -24,6 +24,9 @@
use Psr\Container\ContainerInterface;
+/**
+ * Helper class to add controllers to DI
+ */
class Controllers
{
/**
@@ -147,6 +150,14 @@ public static function registerControllersWithDi()
$controller->useBaseDependenciesService($c->get('ControllerBaseDependenciesService'));
return $controller;
},
+ '\Xibo\Controller\Developer' => function (ContainerInterface $c) {
+ $controller = new \Xibo\Controller\Developer(
+ $c->get('moduleFactory'),
+ $c->get('moduleTemplateFactory')
+ );
+ $controller->useBaseDependenciesService($c->get('ControllerBaseDependenciesService'));
+ return $controller;
+ },
'\Xibo\Controller\Display' => function (ContainerInterface $c) {
$controller = new \Xibo\Controller\Display(
$c->get('store'),
@@ -240,7 +251,8 @@ public static function registerControllersWithDi()
$c->get('pool'),
$c->get('mediaService'),
$c->get('widgetFactory'),
- $c->get('playlistFactory')
+ $c->get('widgetDataFactory'),
+ $c->get('playlistFactory'),
);
$controller->useBaseDependenciesService($c->get('ControllerBaseDependenciesService'));
return $controller;
@@ -471,7 +483,8 @@ public static function registerControllersWithDi()
$c->get('dayPartFactory'),
$c->get('scheduleReminderFactory'),
$c->get('scheduleExclusionFactory'),
- $c->get('syncGroupFactory')
+ $c->get('syncGroupFactory'),
+ $c->get('scheduleCriteriaFactory')
);
$controller->useBaseDependenciesService($c->get('ControllerBaseDependenciesService'));
return $controller;
@@ -606,7 +619,17 @@ public static function registerControllersWithDi()
$c->get('widgetFactory'),
$c->get('transitionFactory'),
$c->get('regionFactory'),
- $c->get('widgetAudioFactory')
+ $c->get('widgetAudioFactory'),
+ $c->get('widgetDataFactory'),
+ );
+ $controller->useBaseDependenciesService($c->get('ControllerBaseDependenciesService'));
+ return $controller;
+ },
+ '\Xibo\Controller\WidgetData' => function (ContainerInterface $c) {
+ $controller = new \Xibo\Controller\WidgetData(
+ $c->get('widgetDataFactory'),
+ $c->get('widgetFactory'),
+ $c->get('moduleFactory'),
);
$controller->useBaseDependenciesService($c->get('ControllerBaseDependenciesService'));
return $controller;
diff --git a/lib/Dependencies/Factories.php b/lib/Dependencies/Factories.php
index 1c45bf0df0..5f8ba457aa 100644
--- a/lib/Dependencies/Factories.php
+++ b/lib/Dependencies/Factories.php
@@ -1,6 +1,6 @@
useBaseDependenciesService($c->get('RepositoryBaseDependenciesService'));
return $repository;
},
+ 'apiRequestsFactory' => function (ContainerInterface $c) {
+ $repository = new \Xibo\Factory\ApplicationRequestsFactory();
+ $repository->useBaseDependenciesService($c->get('RepositoryBaseDependenciesService'));
+ return $repository;
+ },
'applicationFactory' => function (ContainerInterface $c) {
$repository = new \Xibo\Factory\ApplicationFactory(
$c->get('user'),
@@ -220,7 +228,8 @@ public static function registerFactoriesWithDi()
$c->get('widgetAudioFactory'),
$c->get('actionFactory'),
$c->get('folderFactory'),
- $c->get('fontFactory')
+ $c->get('fontFactory'),
+ $c->get('widgetDataFactory'),
);
$repository->useBaseDependenciesService($c->get('RepositoryBaseDependenciesService'));
@@ -289,9 +298,14 @@ public static function registerFactoriesWithDi()
'moduleTemplateFactory' => function (ContainerInterface $c) {
$repository = new \Xibo\Factory\ModuleTemplateFactory(
$c->get('pool'),
- $c->get('view')
+ $c->get('view'),
);
- $repository->useBaseDependenciesService($c->get('RepositoryBaseDependenciesService'));
+ $repository
+ ->setAclDependencies(
+ $c->get('user'),
+ $c->get('userFactory')
+ )
+ ->useBaseDependenciesService($c->get('RepositoryBaseDependenciesService'));
return $repository;
},
'notificationFactory' => function (ContainerInterface $c) {
@@ -387,7 +401,8 @@ public static function registerFactoriesWithDi()
$c->get('userFactory'),
$c->get('scheduleReminderFactory'),
$c->get('scheduleExclusionFactory'),
- $c->get('user')
+ $c->get('user'),
+ $c->get('scheduleCriteriaFactory')
);
$repository->useBaseDependenciesService($c->get('RepositoryBaseDependenciesService'));
return $repository;
@@ -406,6 +421,11 @@ public static function registerFactoriesWithDi()
$repository->useBaseDependenciesService($c->get('RepositoryBaseDependenciesService'));
return $repository;
},
+ 'scheduleCriteriaFactory' => function (ContainerInterface $c) {
+ $repository = new \Xibo\Factory\ScheduleCriteriaFactory();
+ $repository->useBaseDependenciesService($c->get('RepositoryBaseDependenciesService'));
+ return $repository;
+ },
'sessionFactory' => function (ContainerInterface $c) {
$repository = new \Xibo\Factory\SessionFactory();
$repository->useBaseDependenciesService($c->get('RepositoryBaseDependenciesService'));
@@ -503,6 +523,11 @@ public static function registerFactoriesWithDi()
$repository->useBaseDependenciesService($c->get('RepositoryBaseDependenciesService'));
return $repository;
},
+ 'widgetDataFactory' => function (ContainerInterface $c) {
+ $repository = new \Xibo\Factory\WidgetDataFactory();
+ $repository->useBaseDependenciesService($c->get('RepositoryBaseDependenciesService'));
+ return $repository;
+ },
];
}
}
diff --git a/lib/Entity/ApplicationRequest.php b/lib/Entity/ApplicationRequest.php
new file mode 100644
index 0000000000..4406fa74be
--- /dev/null
+++ b/lib/Entity/ApplicationRequest.php
@@ -0,0 +1,94 @@
+.
+ */
+
+namespace Xibo\Entity;
+
+use Symfony\Component\EventDispatcher\EventDispatcherInterface;
+use Xibo\Service\LogServiceInterface;
+use Xibo\Storage\StorageServiceInterface;
+
+class ApplicationRequest implements \JsonSerializable
+{
+ use EntityTrait;
+
+ /**
+ * @SWG\Property(description="The request ID")
+ * @var int
+ */
+ public $requestId;
+
+ /**
+ * @SWG\Property(description="The user ID")
+ * @var int
+ */
+ public $userId;
+
+ /**
+ * @SWG\Property(description="The application ID")
+ * @var string
+ */
+ public $applicationId;
+
+ /**
+ * @SWG\Property(description="The request route")
+ * @var string
+ */
+ public $url;
+
+ /**
+ * @SWG\Property(description="The request method")
+ * @var string
+ */
+ public $method;
+
+ /**
+ * @SWG\Property(description="The request start time")
+ * @var string
+ */
+ public $startTime;
+
+ /**
+ * @SWG\Property(description="The request end time")
+ * @var string
+ */
+ public $endTime;
+
+ /**
+ * @SWG\Property(description="The request duration")
+ * @var int
+ */
+ public $duration;
+
+ /**
+ * Entity constructor.
+ * @param StorageServiceInterface $store
+ * @param LogServiceInterface $log
+ * @param EventDispatcherInterface $dispatcher
+ */
+ public function __construct(
+ StorageServiceInterface $store,
+ LogServiceInterface $log,
+ EventDispatcherInterface $dispatcher
+ ) {
+ $this->setCommonDependencies($store, $log, $dispatcher);
+ }
+}
diff --git a/lib/Entity/AuditLog.php b/lib/Entity/AuditLog.php
index c1cf81169b..03815b25d4 100644
--- a/lib/Entity/AuditLog.php
+++ b/lib/Entity/AuditLog.php
@@ -1,8 +1,8 @@
validationStringDisplayProfile) ? $this->validationString : $this->validationStringDisplayProfile;
+ return empty($this->validationStringDisplayProfile)
+ ? $this->validationString
+ : $this->validationStringDisplayProfile;
+ }
+
+ /**
+ * @return string
+ */
+ public function getCreateAlertOn(): string
+ {
+ return empty($this->createAlertOnDisplayProfile)
+ ? $this->createAlertOn
+ : $this->createAlertOnDisplayProfile;
}
/**
@@ -210,18 +237,24 @@ public function isReady()
public function validate()
{
if (!v::stringType()->notEmpty()->length(1, 254)->validate($this->command)) {
- throw new InvalidArgumentException(__('Please enter a command name between 1 and 254 characters'),
- 'command');
+ throw new InvalidArgumentException(
+ __('Please enter a command name between 1 and 254 characters'),
+ 'command'
+ );
}
if (!v::alpha('_')->NoWhitespace()->notEmpty()->length(1, 50)->validate($this->code)) {
- throw new InvalidArgumentException(__('Please enter a code between 1 and 50 characters containing only alpha characters and no spaces'),
- 'code');
+ throw new InvalidArgumentException(
+ __('Please enter a code between 1 and 50 characters containing only alpha characters and no spaces'),
+ 'code'
+ );
}
if (!v::stringType()->length(0, 1000)->validate($this->description)) {
- throw new InvalidArgumentException(__('Please enter a description between 1 and 1000 characters'),
- 'description');
+ throw new InvalidArgumentException(
+ __('Please enter a description between 1 and 1000 characters'),
+ 'description'
+ );
}
}
@@ -251,14 +284,35 @@ public function save($options = [])
*/
public function delete()
{
- $this->getStore()->update('DELETE FROM `command` WHERE `commandId` = :commandId', ['commandId' => $this->commandId]);
+ $this->getStore()->update(
+ 'DELETE FROM `command` WHERE `commandId` = :commandId',
+ ['commandId' => $this->commandId]
+ );
}
private function add()
{
$this->commandId = $this->getStore()->insert('
- INSERT INTO `command` (`command`, `code`, `description`, `userId`, `commandString`, `validationString`, `availableOn`)
- VALUES (:command, :code, :description, :userId, :commandString, :validationString, :availableOn)
+ INSERT INTO `command` (
+ `command`,
+ `code`,
+ `description`,
+ `userId`,
+ `commandString`,
+ `validationString`,
+ `availableOn`,
+ `createAlertOn`
+ )
+ VALUES (
+ :command,
+ :code,
+ :description,
+ :userId,
+ :commandString,
+ :validationString,
+ :availableOn,
+ :createAlertOn
+ )
', [
'command' => $this->command,
'code' => $this->code,
@@ -266,7 +320,8 @@ private function add()
'userId' => $this->userId,
'commandString' => $this->commandString,
'validationString' => $this->validationString,
- 'availableOn' => $this->availableOn
+ 'availableOn' => $this->availableOn,
+ 'createAlertOn' => $this->createAlertOn
]);
}
@@ -280,7 +335,8 @@ private function edit()
`userId` = :userId,
`commandString` = :commandString,
`validationString` = :validationString,
- `availableOn` = :availableOn
+ `availableOn` = :availableOn,
+ `createAlertOn` = :createAlertOn
WHERE `commandId` = :commandId
', [
'command' => $this->command,
@@ -290,7 +346,8 @@ private function edit()
'commandId' => $this->commandId,
'commandString' => $this->commandString,
'validationString' => $this->validationString,
- 'availableOn' => $this->availableOn
+ 'availableOn' => $this->availableOn,
+ 'createAlertOn' => $this->createAlertOn
]);
}
}
\ No newline at end of file
diff --git a/lib/Entity/DataSet.php b/lib/Entity/DataSet.php
index f68086b420..674f90e7e8 100644
--- a/lib/Entity/DataSet.php
+++ b/lib/Entity/DataSet.php
@@ -112,6 +112,19 @@ class DataSet implements \JsonSerializable
*/
public $isRemote = 0;
+ /**
+ * @SWG\Property(description="Flag to indicate whether this DataSet is Real time")
+ * @var int
+ */
+ public $isRealTime = 0;
+
+ /**
+ * @SWG\Property(description="Indicates the source of the data connector. Requires the Real time flag. Can be null,
+ * user-defined, or a connector.")
+ * @var string
+ */
+ public $dataConnectorSource;
+
/**
* @SWG\Property(description="Method to fetch the Data, can be GET or POST")
* @var string
@@ -467,10 +480,11 @@ public function getUniqueColumnValues($columns)
* Get DataSet Data
* @param array $filterBy
* @param array $options
+ * @param array $extraParams Extra params to apply to the final query
* @return array
* @throws NotFoundException
*/
- public function getData($filterBy = [], $options = [])
+ public function getData($filterBy = [], $options = [], $extraParams = [])
{
$sanitizer = $this->getSanitizer($filterBy);
@@ -486,8 +500,84 @@ public function getData($filterBy = [], $options = [])
'connection' => 'default'
], $options);
- // Params
- $params = [];
+ // Params (start from extraParams supplied)
+ $params = $extraParams;
+
+ // Fetch display tag value/s
+ if ($filter != '' && $displayId != 0) {
+ // Define the regular expression to match [Tag:...]
+ $pattern = '/\[Tag:[^]]+\]/';
+
+ // Find all instances of [Tag:...]
+ preg_match_all($pattern, $filter, $matches);
+
+ // Check if matches were found
+ if (!empty($matches[0])) {
+ $displayTags = [];
+
+ // Iterate through the matches and process each tag
+ foreach ($matches[0] as $tagString) {
+ // Remove the enclosing [Tag:] brackets
+ $tagContent = substr($tagString, 5, -1);
+
+ // Explode the tag content by ":" to separate tagName and defaultValue (if present)
+ $parts = explode(':', $tagContent);
+ $tagName = $parts[0];
+ $defaultTagValue = $parts[1] ?? '';
+
+ $displayTags[] = [
+ 'tagString' => $tagString,
+ 'tagName' => $tagName,
+ 'defaultValue' => $defaultTagValue
+ ];
+ }
+
+ $tagCount = 1;
+
+ // Loop through each tag and get the actual tag value from the database
+ foreach ($displayTags as $tag) {
+ $tagSanitizer = $this->getSanitizer($tag);
+
+ $tagName = $tagSanitizer->getString('tagName');
+ $defaultTagValue = $tagSanitizer->getString('defaultValue');
+ $tagString = $tag['tagString'];
+
+ $query = 'SELECT `lktagdisplaygroup`.`value` AS tagValue
+ FROM `lkdisplaydg`
+ INNER JOIN `displaygroup`
+ ON `displaygroup`.displayGroupId = `lkdisplaydg`.displayGroupId
+ AND `displaygroup`.isDisplaySpecific = 1
+ INNER JOIN `lktagdisplaygroup`
+ ON `lktagdisplaygroup`.displayGroupId = `lkdisplaydg`.displayGroupId
+ INNER JOIN `tag` ON `lktagdisplaygroup`.tagId = `tag`.tagId
+ WHERE `lkdisplaydg`.displayId = :displayId
+ AND `tag`.`tag` = :tagName
+ LIMIT 1';
+
+ $tagParams = [
+ 'displayId' => $displayId,
+ 'tagName' => $tagName
+ ];
+
+ // Execute the query
+ $results = $this->getStore()->select($query, $tagParams);
+
+ // Determine the tag value
+ if (!empty($results)) {
+ $tagValue = !empty($results[0]['tagValue']) ? $results[0]['tagValue'] : '';
+ } else {
+ // Use default tag value if no tag is found
+ $tagValue = $defaultTagValue;
+ }
+
+ // Replace the tag string in the filter with the actual tag value or default value
+ $filter = str_replace($tagString, ':tagValue_'.$tagCount, $filter);
+ $params['tagValue_'.$tagCount] = $tagValue;
+
+ $tagCount++;
+ }
+ }
+ }
// Sanitize the filter options provided
// Get the Latitude and Longitude ( might be used in a formula )
@@ -526,11 +616,21 @@ public function getData($filterBy = [], $options = [])
continue;
}
+ $count = 0;
$formula = str_ireplace(
Sql::DISALLOWED_KEYWORDS,
'',
- htmlspecialchars_decode($column->formula, ENT_QUOTES)
+ htmlspecialchars_decode($column->formula, ENT_QUOTES),
+ $count
);
+
+ if ($count > 0) {
+ $this->getLog()->error(
+ 'Formula contains disallowed keywords on DataSet ID ' . $this->dataSetId
+ );
+ continue;
+ }
+
$formula = str_replace('[DisplayId]', $displayId, $formula);
$heading = str_replace('[DisplayGeoLocation]', $displayGeoLocation, $formula)
@@ -953,6 +1053,17 @@ public function delete()
throw new InvalidArgumentException(__('Cannot delete because DataSet is in use on one or more Layouts.'), 'dataSetId');
}
+ if ($this->getStore()->exists('
+ SELECT `eventId`
+ FROM `schedule`
+ WHERE `dataSetId` = :dataSetId
+ ', ['dataSetId' => $this->dataSetId])) {
+ throw new InvalidArgumentException(
+ __('Cannot delete because DataSet is in use on one or more Data Connector schedules.'),
+ 'dataSetId'
+ );
+ }
+
// Delete Permissions
foreach ($this->permissions as $permission) {
/* @var Permission $permission */
@@ -990,8 +1101,10 @@ public function deleteData()
*/
private function add()
{
- $columns = 'DataSet, Description, UserID, `code`, `isLookup`, `isRemote`, `lastDataEdit`, `lastClear`, `folderId`, `permissionsFolderId`';
- $values = ':dataSet, :description, :userId, :code, :isLookup, :isRemote, :lastDataEdit, :lastClear, :folderId, :permissionsFolderId';
+ $columns = 'DataSet, Description, UserID, `code`, `isLookup`, `isRemote`, `lastDataEdit`,';
+ $columns .= '`lastClear`, `folderId`, `permissionsFolderId`, `isRealTime`, `dataConnectorSource`';
+ $values = ':dataSet, :description, :userId, :code, :isLookup, :isRemote,';
+ $values .= ':lastDataEdit, :lastClear, :folderId, :permissionsFolderId, :isRealTime, :dataConnectorSource';
$params = [
'dataSet' => $this->dataSet,
@@ -1000,10 +1113,12 @@ private function add()
'code' => ($this->code == '') ? null : $this->code,
'isLookup' => $this->isLookup,
'isRemote' => $this->isRemote,
+ 'isRealTime' => $this->isRealTime,
+ 'dataConnectorSource' => $this->dataConnectorSource,
'lastDataEdit' => 0,
'lastClear' => 0,
'folderId' => ($this->folderId === null) ? 1 : $this->folderId,
- 'permissionsFolderId' => ($this->permissionsFolderId == null) ? 1 : $this-> permissionsFolderId
+ 'permissionsFolderId' => ($this->permissionsFolderId == null) ? 1 : $this-> permissionsFolderId,
];
// Insert the extra columns we expect for a remote DataSet
@@ -1046,7 +1161,19 @@ private function add()
*/
private function edit()
{
- $sql = 'DataSet = :dataSet, Description = :description, userId = :userId, lastDataEdit = :lastDataEdit, `code` = :code, `isLookup` = :isLookup, `isRemote` = :isRemote, `folderId` = :folderId, `permissionsFolderId` = :permissionsFolderId ';
+ $sql = '
+ `DataSet` = :dataSet,
+ `Description` = :description,
+ `userId` = :userId,
+ `lastDataEdit` = :lastDataEdit,
+ `code` = :code,
+ `isLookup` = :isLookup,
+ `isRemote` = :isRemote,
+ `isRealTime` = :isRealTime,
+ `dataConnectorSource` = :dataConnectorSource,
+ `folderId` = :folderId,
+ `permissionsFolderId` = :permissionsFolderId
+ ';
$params = [
'dataSetId' => $this->dataSetId,
'dataSet' => $this->dataSet,
@@ -1056,6 +1183,8 @@ private function edit()
'code' => $this->code,
'isLookup' => $this->isLookup,
'isRemote' => $this->isRemote,
+ 'isRealTime' => $this->isRealTime,
+ 'dataConnectorSource' => $this->dataConnectorSource,
'folderId' => $this->folderId,
'permissionsFolderId' => $this->permissionsFolderId
];
@@ -1151,15 +1280,22 @@ public function addRow($row)
$this->lastDataEdit = Carbon::now()->format('U');
// Build a query to insert
+ $params = [];
$keys = array_keys($row);
- $keys[] = 'id';
- $values = array_values($row);
- $values[] = NULL;
+ $sql = 'INSERT INTO `dataset_' . $this->dataSetId
+ . '` (`' . implode('`, `', $keys) . '`) VALUES (';
- $sql = 'INSERT INTO `dataset_' . $this->dataSetId . '` (`' . implode('`, `', $keys) . '`) VALUES (' . implode(',', array_fill(0, count($values), '?')) . ')';
+ $i = 0;
+ foreach ($row as $value) {
+ $i++;
+ $sql .= ':value' . $i . ',';
+ $params['value' . $i] = $value;
+ }
+ $sql = rtrim($sql, ',');
+ $sql .= ')';
- return $this->getStore()->insert($sql, $values);
+ return $this->getStore()->insert($sql, $params);
}
/**
@@ -1227,4 +1363,32 @@ public function clearCache()
$this->getLog()->debug('Force sync detected, clear cache for remote dataSet ID ' . $this->dataSetId);
$this->pool->deleteItem('/dataset/cache/' . $this->dataSetId);
}
+
+ private function getScriptPath(): string
+ {
+ return $this->config->getSetting('LIBRARY_LOCATION')
+ . 'data_connectors' . DIRECTORY_SEPARATOR
+ . 'dataSet_' . $this->dataSetId . '.js';
+ }
+
+ public function getScript(): string
+ {
+ if ($this->isRealTime == 0) {
+ return '';
+ }
+
+ $path = $this->getScriptPath();
+ return (file_exists($path))
+ ? file_get_contents($path)
+ : '';
+ }
+
+ public function saveScript(string $script): void
+ {
+ if ($this->isRealTime == 1) {
+ $path = $this->getScriptPath();
+ file_put_contents($path, $script);
+ file_put_contents($path . '.md5', md5_file($path));
+ }
+ }
}
diff --git a/lib/Entity/DataSetColumn.php b/lib/Entity/DataSetColumn.php
index 933c5cab07..b153f3b43a 100644
--- a/lib/Entity/DataSetColumn.php
+++ b/lib/Entity/DataSetColumn.php
@@ -1,6 +1,6 @@
.
*/
-
namespace Xibo\Entity;
+
use Respect\Validation\Validator as v;
use Xibo\Factory\DataSetColumnFactory;
use Xibo\Factory\DataSetColumnTypeFactory;
@@ -30,6 +30,7 @@
use Xibo\Storage\StorageServiceInterface;
use Xibo\Support\Exception\InvalidArgumentException;
use Xibo\Support\Exception\NotFoundException;
+use Xibo\Widget\Definition\Sql;
/**
* Class DataSetColumn
@@ -299,7 +300,19 @@ public function validate($options = [])
&& !str_starts_with($this->formula, '$')
) {
try {
- $formula = str_replace('[DisplayId]', 0, $this->formula);
+ $count = 0;
+ $formula = str_ireplace(
+ Sql::DISALLOWED_KEYWORDS,
+ '',
+ htmlspecialchars_decode($this->formula, ENT_QUOTES),
+ $count
+ );
+
+ if ($count > 0) {
+ throw new InvalidArgumentException(__('Formula contains disallowed keywords.'));
+ }
+
+ $formula = str_replace('[DisplayId]', 0, $formula);
$formula = str_replace('[DisplayGeoLocation]', "ST_GEOMFROMTEXT('POINT(51.504 -0.104)')", $formula);
$this->getStore()->select('
@@ -453,7 +466,7 @@ private function sqlDataType()
switch ($this->dataTypeId) {
case 2:
- $dataType = 'FLOAT';
+ $dataType = 'DOUBLE';
break;
case 3:
diff --git a/lib/Entity/Display.php b/lib/Entity/Display.php
index 8c04c7abc0..c96a7ebcd0 100644
--- a/lib/Entity/Display.php
+++ b/lib/Entity/Display.php
@@ -512,6 +512,36 @@ class Display implements \JsonSerializable
*/
public $syncGroupId;
+ /**
+ * @SWG\Property(description="The OS version of the Display")
+ * @var string
+ */
+ public $osVersion;
+
+ /**
+ * @SWG\Property(description="The SDK version of the Display")
+ * @var string
+ */
+ public $osSdk;
+
+ /**
+ * @SWG\Property(description="The manufacturer of the Display")
+ * @var string
+ */
+ public $manufacturer;
+
+ /**
+ * @SWG\Property(description="The brand of the Display")
+ * @var string
+ */
+ public $brand;
+
+ /**
+ * @SWG\Property(description="The model of the Display")
+ * @var string
+ */
+ public $model;
+
/** @var array The configuration from the Display Profile */
private $profileConfig;
@@ -677,6 +707,37 @@ public function isAuditing(): bool
return (!empty($this->auditingUntil) && $this->auditingUntil >= Carbon::now()->format('U'));
}
+ /**
+ * Does this display has elevated log level?
+ * @return bool
+ * @throws NotFoundException
+ */
+ public function isElevatedLogging(): bool
+ {
+ $elevatedUntil = $this->getSetting('elevateLogsUntil', 0);
+
+ $this->getLog()->debug(sprintf(
+ 'Testing whether this display has elevated log level. %d vs %d.',
+ $elevatedUntil,
+ Carbon::now()->format('U')
+ ));
+
+ return (!empty($elevatedUntil) && $elevatedUntil >= Carbon::now()->format('U'));
+ }
+
+ /**
+ * Get current log level for this Display
+ * @return string
+ * @throws NotFoundException
+ */
+ public function getLogLevel(): string
+ {
+ $restingLogLevel = $this->getSetting('logLevel', 'error');
+ $isElevated = $this->isElevatedLogging();
+
+ return $isElevated ? 'debug' : $restingLogLevel;
+ }
+
/**
* Set the Media Status to Incomplete
*/
@@ -945,8 +1006,8 @@ public function delete()
private function add()
{
$this->displayId = $this->getStore()->insert('
- INSERT INTO display (display, auditingUntil, defaultlayoutid, license, licensed, lastAccessed, inc_schedule, email_alert, alert_timeout, clientAddress, xmrChannel, xmrPubKey, lastCommandSuccess, macAddress, lastChanged, lastWakeOnLanCommandSent, client_type, client_version, client_code, overrideConfig, newCmsAddress, newCmsKey, commercialLicence, lanIpAddress, syncGroupId)
- VALUES (:display, :auditingUntil, :defaultlayoutid, :license, :licensed, :lastAccessed, :inc_schedule, :email_alert, :alert_timeout, :clientAddress, :xmrChannel, :xmrPubKey, :lastCommandSuccess, :macAddress, :lastChanged, :lastWakeOnLanCommandSent, :clientType, :clientVersion, :clientCode, :overrideConfig, :newCmsAddress, :newCmsKey, :commercialLicence, :lanIpAddress, :syncGroupId)
+ INSERT INTO display (display, auditingUntil, defaultlayoutid, license, licensed, lastAccessed, inc_schedule, email_alert, alert_timeout, clientAddress, xmrChannel, xmrPubKey, lastCommandSuccess, macAddress, lastChanged, lastWakeOnLanCommandSent, client_type, client_version, client_code, overrideConfig, newCmsAddress, newCmsKey, commercialLicence, lanIpAddress, syncGroupId, osVersion, osSdk, manufacturer, brand, model)
+ VALUES (:display, :auditingUntil, :defaultlayoutid, :license, :licensed, :lastAccessed, :inc_schedule, :email_alert, :alert_timeout, :clientAddress, :xmrChannel, :xmrPubKey, :lastCommandSuccess, :macAddress, :lastChanged, :lastWakeOnLanCommandSent, :clientType, :clientVersion, :clientCode, :overrideConfig, :newCmsAddress, :newCmsKey, :commercialLicence, :lanIpAddress, :syncGroupId, :osVersion, :osSdk, :manufacturer, :brand, :model)
', [
'display' => $this->display,
'auditingUntil' => 0,
@@ -973,6 +1034,11 @@ private function add()
'commercialLicence' => $this->commercialLicence,
'lanIpAddress' => empty($this->lanIpAddress) ? null : $this->lanIpAddress,
'syncGroupId' => empty($this->syncGroupId) ? null : $this->syncGroupId,
+ 'osVersion' => $this->osVersion,
+ 'osSdk' => $this->osSdk,
+ 'manufacturer' => $this->manufacturer,
+ 'brand' => $this->brand,
+ 'model' => $this->model,
]);
@@ -1060,6 +1126,11 @@ private function edit($options = [])
screenShotRequested = :screenShotRequested,
storageAvailableSpace = :storageAvailableSpace,
storageTotalSpace = :storageTotalSpace,
+ osVersion = :osVersion,
+ osSdk = :osSdk,
+ manufacturer = :manufacturer,
+ brand = :brand,
+ model = :model,
xmrChannel = :xmrChannel,
xmrPubKey = :xmrPubKey,
`lastCommandSuccess` = :lastCommandSuccess,
@@ -1132,7 +1203,12 @@ private function edit($options = [])
'webkeySerial' => empty($this->webkeySerial) ? null : $this->webkeySerial,
'lanIpAddress' => empty($this->lanIpAddress) ? null : $this->lanIpAddress,
'syncGroupId' => empty($this->syncGroupId) ? null : $this->syncGroupId,
- 'displayId' => $this->displayId
+ 'displayId' => $this->displayId,
+ 'osVersion' => $this->osVersion,
+ 'osSdk' => $this->osSdk,
+ 'manufacturer' => $this->manufacturer,
+ 'brand' => $this->brand,
+ 'model' => $this->model,
]);
// Maintain the Display Group
diff --git a/lib/Entity/DisplayEvent.php b/lib/Entity/DisplayEvent.php
index 4d6f814461..2c29000200 100644
--- a/lib/Entity/DisplayEvent.php
+++ b/lib/Entity/DisplayEvent.php
@@ -1,8 +1,8 @@
.
*/
-
namespace Xibo\Entity;
+
use Carbon\Carbon;
+use Symfony\Component\EventDispatcher\EventDispatcherInterface;
use Xibo\Service\LogServiceInterface;
use Xibo\Storage\StorageServiceInterface;
@@ -39,55 +40,186 @@ class DisplayEvent implements \JsonSerializable
public $eventDate;
public $start;
public $end;
+ public $eventTypeId;
+ public $refId;
+ public $detail;
/**
* Entity constructor.
* @param StorageServiceInterface $store
* @param LogServiceInterface $log
- * @param \Symfony\Component\EventDispatcher\EventDispatcherInterface $dispatcher
+ * @param EventDispatcherInterface $dispatcher
*/
- public function __construct($store, $log, $dispatcher)
- {
+ public function __construct(
+ StorageServiceInterface $store,
+ LogServiceInterface $log,
+ EventDispatcherInterface $dispatcher
+ ) {
$this->setCommonDependencies($store, $log, $dispatcher);
}
- public function save()
+ /**
+ * Save displayevent
+ * @return void
+ */
+ public function save(): void
{
- if ($this->displayEventId == null)
+ if ($this->displayEventId == null) {
$this->add();
- else
+ } else {
$this->edit();
+ }
}
- private function add()
+ /**
+ * Add a new displayevent
+ * @return void
+ */
+ private function add(): void
{
$this->displayEventId = $this->getStore()->insert('
- INSERT INTO `displayevent` (eventDate, start, end, displayID)
- VALUES (:eventDate, :start, :end, :displayId)
+ INSERT INTO `displayevent` (eventDate, start, end, displayID, eventTypeId, refId, detail)
+ VALUES (:eventDate, :start, :end, :displayId, :eventTypeId, :refId, :detail)
', [
'eventDate' => Carbon::now()->format('U'),
'start' => $this->start,
'end' => $this->end,
- 'displayId' => $this->displayId
+ 'displayId' => $this->displayId,
+ 'eventTypeId' => $this->eventTypeId,
+ 'refId' => $this->refId,
+ 'detail' => $this->detail,
]);
}
- private function edit()
+ /**
+ * Edit displayevent
+ * @return void
+ */
+ private function edit(): void
{
- $this->getStore()->update('UPDATE `displayevent` SET `end` = :end WHERE statId = :statId', [
- 'displayevent' => $this->displayEventId, 'end' => $this->end
+ $this->getStore()->update('
+ UPDATE displayevent
+ SET end = :end,
+ displayId = :displayId,
+ eventTypeId = :eventTypeId,
+ refId = :refId,
+ detail = :detail
+ WHERE displayEventId = :displayEventId
+ ', [
+ 'displayEventId' => $this->displayEventId,
+ 'end' => $this->end,
+ 'displayId' => $this->displayId,
+ 'eventTypeId' => $this->eventTypeId,
+ 'refId' => $this->refId,
+ 'detail' => $this->detail,
]);
}
+
/**
- * Record the display coming online
- * @param $displayId
+ * Record end date for specified display and event type.
+ * @param int $displayId
+ * @param int|null $date
+ * @param int $eventTypeId
+ * @return void
*/
- public function displayUp($displayId)
+ public function eventEnd(int $displayId, int $eventTypeId = 1, string $detail = null, ?int $date = null): void
{
- $this->getStore()->update('UPDATE `displayevent` SET `end` = :toDt WHERE displayId = :displayId AND `end` IS NULL', [
- 'toDt' => Carbon::now()->format('U'),
- 'displayId' => $displayId
- ]);
+ $this->getLog()->debug(
+ sprintf(
+ 'displayEvent : end display alert for eventType %s and displayId %d',
+ $this->getEventNameFromId($eventTypeId),
+ $displayId
+ )
+ );
+
+ $this->getStore()->update(
+ "UPDATE `displayevent` SET `end` = :toDt, `detail` = CONCAT_WS('. ', NULLIF(`detail`, ''), :detail)
+ WHERE displayId = :displayId
+ AND `end` IS NULL
+ AND eventTypeId = :eventTypeId",
+ [
+ 'toDt' => $date ?? Carbon::now()->format('U'),
+ 'displayId' => $displayId,
+ 'eventTypeId' => $eventTypeId,
+ 'detail' => $detail,
+ ]
+ );
+ }
+
+ /**
+ * Record end date for specified display, event type and refId
+ * @param int $displayId
+ * @param int $eventTypeId
+ * @param int $refId
+ * @param int|null $date
+ * @return void
+ */
+ public function eventEndByReference(int $displayId, int $eventTypeId, int $refId, string $detail = null, ?int $date = null): void
+ {
+ $this->getLog()->debug(
+ sprintf(
+ 'displayEvent : end display alert for refId %d, displayId %d and eventType %s',
+ $refId,
+ $displayId,
+ $this->getEventNameFromId($eventTypeId),
+ )
+ );
+
+ // When updating the event end, concatenate the end message to the current message
+ $this->getStore()->update(
+ "UPDATE `displayevent` SET
+ `end` = :toDt,
+ `detail` = CONCAT_WS('. ', NULLIF(`detail`, ''), :detail)
+ WHERE displayId = :displayId
+ AND `end` IS NULL
+ AND eventTypeId = :eventTypeId
+ AND refId = :refId",
+ [
+ 'toDt' => $date ?? Carbon::now()->format('U'),
+ 'displayId' => $displayId,
+ 'eventTypeId' => $eventTypeId,
+ 'refId' => $refId,
+ 'detail' => $detail,
+ ]
+ );
+ }
+
+ /**
+ * Match event type string from log to eventTypeId in database.
+ * @param string $eventType
+ * @return int
+ */
+ public function getEventIdFromString(string $eventType): int
+ {
+ return match ($eventType) {
+ 'Display Up/down' => 1,
+ 'App Start' => 2,
+ 'Power Cycle' => 3,
+ 'Network Cycle' => 4,
+ 'TV Monitoring' => 5,
+ 'Player Fault' => 6,
+ 'Command' => 7,
+ default => 8
+ };
+ }
+
+ /**
+ * Match eventTypeId from database to string event name.
+ * @param int $eventTypeId
+ * @return string
+ */
+ public function getEventNameFromId(int $eventTypeId): string
+ {
+ return match ($eventTypeId) {
+ 1 => __('Display Up/down'),
+ 2 => __('App Start'),
+ 3 => __('Power Cycle'),
+ 4 => __('Network Cycle'),
+ 5 => __('TV Monitoring'),
+ 6 => __('Player Fault'),
+ 7 => __('Command'),
+ default => __('Other')
+ };
}
-}
\ No newline at end of file
+}
diff --git a/lib/Entity/DisplayProfile.php b/lib/Entity/DisplayProfile.php
index 9755331002..7b25e3ee3f 100644
--- a/lib/Entity/DisplayProfile.php
+++ b/lib/Entity/DisplayProfile.php
@@ -1,6 +1,6 @@
getId() == $command->getId()) {
$alreadyAssigned->commandString = $command->commandString;
$alreadyAssigned->validationString = $command->validationString;
+ $alreadyAssigned->createAlertOn = $command->createAlertOn;
$assigned = true;
break;
}
}
- if (!$assigned)
+ if (!$assigned) {
$this->commands[] = $command;
+ }
}
/**
@@ -481,22 +485,41 @@ private function manageAssignments()
foreach ($this->commands as $command) {
/* @var Command $command */
$this->getStore()->update('
- INSERT INTO `lkcommanddisplayprofile` (`commandId`, `displayProfileId`, `commandString`, `validationString`) VALUES
- (:commandId, :displayProfileId, :commandString, :validationString) ON DUPLICATE KEY UPDATE commandString = :commandString2, validationString = :validationString2
+ INSERT INTO `lkcommanddisplayprofile` (
+ `commandId`,
+ `displayProfileId`,
+ `commandString`,
+ `validationString`,
+ `createAlertOn`
+ )
+ VALUES (
+ :commandId,
+ :displayProfileId,
+ :commandString,
+ :validationString,
+ :createAlertOn
+ )
+ ON DUPLICATE KEY UPDATE
+ commandString = :commandString2,
+ validationString = :validationString2,
+ createAlertOn = :createAlertOn2
', [
'commandId' => $command->commandId,
'displayProfileId' => $this->displayProfileId,
'commandString' => $command->commandString,
'validationString' => $command->validationString,
+ 'createAlertOn' => $command->createAlertOn,
'commandString2' => $command->commandString,
- 'validationString2' => $command->validationString
+ 'validationString2' => $command->validationString,
+ 'createAlertOn2' => $command->createAlertOn
]);
}
// Unlink
$params = ['displayProfileId' => $this->displayProfileId];
- $sql = 'DELETE FROM `lkcommanddisplayprofile` WHERE `displayProfileId` = :displayProfileId AND `commandId` NOT IN (0';
+ $sql = 'DELETE FROM `lkcommanddisplayprofile`
+ WHERE `displayProfileId` = :displayProfileId AND `commandId` NOT IN (0';
$i = 0;
foreach ($this->commands as $command) {
@@ -554,7 +577,10 @@ public function getCustomEditTemplate()
if ($this->isCustom()) {
return $this->displayProfileFactory->getCustomEditTemplate($this->getClientType());
} else {
- $this->getLog()->error('Attempting to get Custom Edit template for Display Profile ' . $this->getClientType() . ' that is not custom');
+ $this->getLog()->error(
+ 'Attempting to get Custom Edit template for Display Profile ' .
+ $this->getClientType() . ' that is not custom'
+ );
return null;
}
}
@@ -563,4 +589,22 @@ public function handleCustomFields($sanitizedParams, $config = null, $display =
{
return $this->displayProfileFactory->handleCustomFields($this, $sanitizedParams, $config, $display);
}
+
+ /**
+ * Does this display profile has elevated log level?
+ * @return bool
+ * @throws NotFoundException
+ */
+ public function isElevatedLogging(): bool
+ {
+ $elevatedUntil = $this->getSetting('elevateLogsUntil', 0);
+
+ $this->getLog()->debug(sprintf(
+ 'Testing whether this display profile has elevated log level. %d vs %d.',
+ $elevatedUntil,
+ Carbon::now()->format('U')
+ ));
+
+ return (!empty($elevatedUntil) && $elevatedUntil >= Carbon::now()->format('U'));
+ }
}
diff --git a/lib/Entity/Layout.php b/lib/Entity/Layout.php
index 671c44630e..ce6d09cdd6 100644
--- a/lib/Entity/Layout.php
+++ b/lib/Entity/Layout.php
@@ -39,6 +39,7 @@
use Xibo\Factory\PlaylistFactory;
use Xibo\Factory\RegionFactory;
use Xibo\Factory\TagFactory;
+use Xibo\Factory\WidgetDataFactory;
use Xibo\Helper\DateFormatHelper;
use Xibo\Helper\Environment;
use Xibo\Helper\Profiler;
@@ -1896,16 +1897,20 @@ private function decorateActionXmlNode(\DOMElement $node, Action $action): void
/**
* Export the Layout as a ZipArchive
* @param DataSetFactory $dataSetFactory
+ * @param \Xibo\Factory\WidgetDataFactory $widgetDataFactory
* @param string $fileName
* @param array $options
- * @throws GeneralException
- * @throws InvalidArgumentException
- * @throws NotFoundException
+ * @throws \Xibo\Support\Exception\GeneralException
*/
- public function toZip($dataSetFactory, $fileName, $options = [])
- {
+ public function toZip(
+ DataSetFactory $dataSetFactory,
+ WidgetDataFactory $widgetDataFactory,
+ string $fileName,
+ array $options = []
+ ): void {
$options = array_merge([
- 'includeData' => false
+ 'includeData' => false,
+ 'includeFallback' => false,
], $options);
// Load the complete layout
@@ -2055,13 +2060,15 @@ public function toZip($dataSetFactory, $fileName, $options = [])
$dataSetIds = [];
$dataSets = [];
+ // Handle any Widget Data
+ $widgetData = [];
+
// Playlists
$playlistMappings = [];
$playlistDefinitions = [];
$nestedPlaylistDefinitions = [];
foreach ($this->getAllWidgets() as $widget) {
- /** @var Widget $widget */
if ($widget->type == 'dataset') {
$dataSetId = $widget->getOptionValue('dataSetId', 0);
@@ -2082,7 +2089,7 @@ public function toZip($dataSetFactory, $fileName, $options = [])
$dataSetIds[] = $dataSet->dataSetId;
$dataSets[] = $dataSet;
}
- } elseif ($widget->type == 'subplaylist') {
+ } else if ($widget->type == 'subplaylist') {
$playlistItems = json_decode($widget->getOptionValue('subPlaylists', '[]'), true);
foreach ($playlistItems as $playlistItem) {
$count = 1;
@@ -2110,6 +2117,14 @@ public function toZip($dataSetFactory, $fileName, $options = [])
);
}
}
+
+ // Handle fallback data?
+ if ($options['includeFallback'] == 1) {
+ $fallback = $widgetDataFactory->getByWidgetId($widget->widgetId);
+ if (count($fallback) > 0) {
+ $widgetData[$widget->widgetId] = $fallback;
+ }
+ }
}
// Add the mappings file to the ZIP
@@ -2117,6 +2132,11 @@ public function toZip($dataSetFactory, $fileName, $options = [])
$zip->addFromString('dataSet.json', json_encode($dataSets, JSON_PRETTY_PRINT));
}
+ // Add widget data
+ if ($options['includeFallback'] == 1 && $widgetData != []) {
+ $zip->addFromString('fallback.json', json_encode($widgetData, JSON_PRETTY_PRINT));
+ }
+
// Add the Playlist definitions to the ZIP
if ($playlistDefinitions != []) {
$zip->addFromString('playlist.json', json_encode($playlistDefinitions, JSON_PRETTY_PRINT));
diff --git a/lib/Entity/LogEntry.php b/lib/Entity/LogEntry.php
index b1939f1043..f092236f9d 100644
--- a/lib/Entity/LogEntry.php
+++ b/lib/Entity/LogEntry.php
@@ -1,8 +1,8 @@
mediaId != 0) {
$checkSQL .= ' AND mediaId <> :mediaId AND IsEdited = 0 ';
@@ -399,8 +400,14 @@ public function validate($options)
$result = $this->getStore()->select($checkSQL, $params);
- if (count($result) > 0)
- throw new DuplicateEntityException(__('Media you own already has this name. Please choose another.'));
+ if (count($result) > 0) {
+ // If the media is imported from a provider (ie Pixabay, etc), use it instead of importing again.
+ if (isset($this->apiRef) && $this->apiRef === $result[0]['apiRef']) {
+ $this->mediaId = intval($result[0]['mediaId']);
+ } else {
+ throw new DuplicateEntityException(__('Media you own already has this name. Please choose another.'));
+ }
+ }
}
/**
@@ -447,7 +454,8 @@ public function save($options = [])
'validate' => true,
'oldMedia' => null,
'deferred' => false,
- 'saveTags' => true
+ 'saveTags' => true,
+ 'audit' => true,
], $options);
if ($options['validate'] && $this->mediaType !== 'module') {
@@ -461,13 +469,15 @@ public function save($options = [])
// Always set force to true as we always want to save new files
$this->isSaveRequired = true;
- $this->audit($this->mediaId, 'Added', [
- 'mediaId' => $this->mediaId,
- 'name' => $this->name,
- 'mediaType' => $this->mediaType,
- 'fileName' => $this->fileName,
- 'folderId' => $this->folderId
- ]);
+ if ($options['audit']) {
+ $this->audit($this->mediaId, 'Added', [
+ 'mediaId' => $this->mediaId,
+ 'name' => $this->name,
+ 'mediaType' => $this->mediaType,
+ 'fileName' => $this->fileName,
+ 'folderId' => $this->folderId
+ ]);
+ }
} else {
$this->edit();
@@ -478,7 +488,9 @@ public function save($options = [])
|| ($expires > 0 && $expires < Carbon::now()->format('U'))
|| ($this->mediaType === 'module' && !file_exists($this->downloadSink(false)));
- $this->audit($this->mediaId, 'Updated', $this->getChangedProperties());
+ if ($options['audit']) {
+ $this->audit($this->mediaId, 'Updated', $this->getChangedProperties());
+ }
}
if ($options['deferred']) {
@@ -549,6 +561,29 @@ public function delete($options = [])
$this->load(['deleting' => true]);
+ // Prepare some contexts for auditing
+ $auditMessage = 'Deleted';
+ $auditContext = [
+ 'mediaId' => $this->mediaId,
+ 'name' => $this->name,
+ 'mediaType' => $this->mediaType,
+ 'fileName' => $this->fileName,
+ ];
+
+ // Should we bring back this items parent?
+ try {
+ // Revert
+ $parentMedia = $this->mediaFactory->getParentById($this->mediaId);
+ $parentMedia->isEdited = 0;
+ $parentMedia->parentId = null;
+ $parentMedia->save(['validate' => false, 'audit' => false]);
+
+ $auditMessage .= ' and reverted old revision';
+ $auditContext['revertedMediaId'] = $parentMedia->mediaId;
+ } catch (NotFoundException) {
+ // No parent, this is fine.
+ }
+
foreach ($this->permissions as $permission) {
/* @var Permission $permission */
$permission->delete();
@@ -559,7 +594,7 @@ public function delete($options = [])
$this->deleteRecord();
$this->deleteFile();
- $this->audit($this->mediaId, 'Deleted', ['mediaId' => $this->mediaId, 'name' => $this->name, 'mediaType' => $this->mediaType, 'fileName' => $this->fileName]);
+ $this->audit($this->mediaId, $auditMessage, $auditContext);
}
/**
diff --git a/lib/Entity/Module.php b/lib/Entity/Module.php
index 9b75b0e6e5..10c9c84fc5 100644
--- a/lib/Entity/Module.php
+++ b/lib/Entity/Module.php
@@ -104,6 +104,12 @@ class Module implements \JsonSerializable
*/
public $dataCacheKey;
+ /**
+ * @SWG\Property(description="Is fallback data allowed for this module? Only applicable for a Data Widget")
+ * @var int
+ */
+ public $fallbackData;
+
/**
* @SWG\Property(description="Is specific to a Layout or can be uploaded to the Library?")
* @var int
@@ -284,6 +290,7 @@ class Module implements \JsonSerializable
public $errors;
//
+ public $allowPreview;
/** @var ModuleFactory */
private $moduleFactory;
diff --git a/lib/Entity/ModuleTemplate.php b/lib/Entity/ModuleTemplate.php
index c9532bef4b..30f3975c1a 100644
--- a/lib/Entity/ModuleTemplate.php
+++ b/lib/Entity/ModuleTemplate.php
@@ -37,6 +37,9 @@ class ModuleTemplate implements \JsonSerializable
use EntityTrait;
use ModulePropertyTrait;
+ /** @var int The database ID */
+ public $id;
+
/**
* @SWG\Property()
* @var string The templateId
@@ -112,6 +115,12 @@ class ModuleTemplate implements \JsonSerializable
*/
public $isVisible = true;
+ /**
+ * @SWG\Property()
+ * @var bool Is Enabled?
+ */
+ public $isEnabled = true;
+
/**
* @SWG\Property(description="An array of additional module specific group properties")
* @var \Xibo\Widget\Definition\PropertyGroup[]
@@ -138,13 +147,31 @@ class ModuleTemplate implements \JsonSerializable
/** @var string A data parser for elements */
public $onElementParseData;
-
+
/** @var bool $isError Does this module have any errors? */
public $isError;
/** @var string[] $errors An array of errors this module has. */
public $errors;
+ /** @var string $ownership Who owns this file? system|custom|user */
+ public $ownership;
+
+ /** @var int $ownerId User ID of the owner of this template */
+ public $ownerId;
+
+ /**
+ * @SWG\Property(description="A comma separated list of groups/users with permissions to this template")
+ * @var string
+ */
+ public $groupsWithPermissions;
+ /** @var string $xml The XML used to build this template */
+
+ private $xml;
+
+ /** @var \DOMDocument The DOM Document for this templates XML */
+ private $document;
+
/** @var \Xibo\Factory\ModuleTemplateFactory */
private $moduleTemplateFactory;
@@ -154,17 +181,36 @@ class ModuleTemplate implements \JsonSerializable
* @param LogServiceInterface $log
* @param \Symfony\Component\EventDispatcher\EventDispatcherInterface $dispatcher
* @param \Xibo\Factory\ModuleTemplateFactory $moduleTemplateFactory
+ * @param string $file The file this template resides in
*/
public function __construct(
StorageServiceInterface $store,
LogServiceInterface $log,
EventDispatcherInterface $dispatcher,
- ModuleTemplateFactory $moduleTemplateFactory
+ ModuleTemplateFactory $moduleTemplateFactory,
+ private readonly string $file
) {
$this->setCommonDependencies($store, $log, $dispatcher);
+ $this->setPermissionsClass('Xibo\Entity\ModuleTemplate');
$this->moduleTemplateFactory = $moduleTemplateFactory;
}
+ public function getId()
+ {
+ return $this->id;
+ }
+
+ public function getOwnerId()
+ {
+ return $this->ownerId;
+ }
+
+ public function __clone()
+ {
+ $this->id = null;
+ $this->templateId = null;
+ }
+
/**
* Get assets
* @return \Xibo\Widget\Definition\Asset[]
@@ -173,4 +219,156 @@ public function getAssets(): array
{
return $this->assets;
}
+
+ /**
+ * Set XML for this Module Template
+ * @param string $xml
+ * @return void
+ */
+ public function setXml(string $xml): void
+ {
+ $this->xml = $xml;
+ }
+
+ /**
+ * Get XML for this Module Template
+ * @return string
+ */
+ public function getXml(): string
+ {
+ // for system templates
+ if ($this->file !== 'database') {
+ $xml = new \DOMDocument();
+ // load whole file to document
+ $xml->loadXML(file_get_contents($this->file));
+ // go through template tags
+ foreach ($xml->getElementsByTagName('template') as $templateXml) {
+ if ($templateXml instanceof \DOMElement) {
+ foreach ($templateXml->childNodes as $childNode) {
+ if ($childNode instanceof \DOMElement) {
+ // match the template to what was requested
+ // set the xml and return it.
+ if ($childNode->nodeName === 'id' && $childNode->nodeValue == $this->templateId) {
+ $this->setXml($xml->saveXML($templateXml));
+ }
+ }
+ }
+ }
+ }
+ }
+ return $this->xml;
+ }
+
+ /**
+ * Set Document
+ * @param \DOMDocument $document
+ * @return void
+ */
+ public function setDocument(\DOMDocument $document): void
+ {
+ $this->document = $document;
+ }
+
+ /**
+ * Get this templates DOM document
+ * @return \DOMDocument
+ */
+ public function getDocument(): \DOMDocument
+ {
+ if ($this->document === null) {
+ $this->document = new \DOMDocument();
+ $this->document->load($this->getXml());
+ }
+ return $this->document;
+ }
+
+ /**
+ * Save
+ * @return void
+ */
+ public function save(): void
+ {
+ if ($this->file === 'database') {
+ if ($this->id === null) {
+ $this->add();
+ } else {
+ $this->edit();
+ }
+ }
+ }
+
+ /**
+ * Delete
+ * @return void
+ */
+ public function delete(): void
+ {
+ if ($this->file === 'database') {
+ $this->getStore()->update('DELETE FROM module_templates WHERE id = :id', [
+ 'id' => $this->id
+ ]);
+ }
+ }
+
+ /**
+ * Invalidate this module template for any widgets that use it
+ * @return void
+ */
+ public function invalidate(): void
+ {
+ // TODO: can we improve this via the event mechanism instead?
+ $this->getStore()->update('
+ UPDATE `widget` SET modifiedDt = :now
+ WHERE widgetId IN (
+ SELECT widgetId
+ FROM widgetoption
+ WHERE `option` = \'templateId\'
+ AND `value` = :templateId
+ )
+ ', [
+ 'now' => time(),
+ 'templateId' => $this->templateId,
+ ]);
+ }
+
+ /**
+ * Add
+ * @return void
+ */
+ private function add(): void
+ {
+ $this->id = $this->getStore()->insert('
+ INSERT INTO `module_templates` (`templateId`, `dataType`, `xml`, `ownerId`)
+ VALUES (:templateId, :dataType, :xml, :ownerId)
+ ', [
+ 'templateId' => $this->templateId,
+ 'dataType' => $this->dataType,
+ 'xml' => $this->xml,
+ 'ownerId' => $this->ownerId,
+ ]);
+ }
+
+ /**
+ * Edit
+ * @return void
+ */
+ private function edit(): void
+ {
+ $this->getStore()->update('
+ UPDATE `module_templates` SET
+ `templateId` = :templateId,
+ `dataType`= :dataType,
+ `enabled` = :enabled,
+ `xml` = :xml,
+ `ownerId` = :ownerId
+ WHERE `id` = :id
+ ', [
+ 'templateId' => $this->templateId,
+ 'dataType' => $this->dataType,
+ 'xml' => $this->xml,
+ 'enabled' => $this->isEnabled ? 1 : 0,
+ 'ownerId' => $this->ownerId,
+ 'id' => $this->id,
+ ]);
+ }
}
diff --git a/lib/Entity/Notification.php b/lib/Entity/Notification.php
index b142e36eef..b138f5fc7c 100644
--- a/lib/Entity/Notification.php
+++ b/lib/Entity/Notification.php
@@ -1,6 +1,6 @@
load();
- if (!in_array($userGroup, $this->userGroups))
+ if (!in_array($userGroup, $this->userGroups)) {
$this->userGroups[] = $userGroup;
+ }
}
/**
@@ -211,8 +212,9 @@ public function assignDisplayGroup($displayGroup)
{
$this->load();
- if (!in_array($displayGroup, $this->displayGroups))
+ if (!in_array($displayGroup, $this->displayGroups)) {
$this->displayGroups[] = $displayGroup;
+ }
}
/**
@@ -221,11 +223,13 @@ public function assignDisplayGroup($displayGroup)
*/
public function validate()
{
- if (empty($this->subject))
+ if (empty($this->subject)) {
throw new InvalidArgumentException(__('Please provide a subject'), 'subject');
+ }
- if (empty($this->body))
+ if (empty($this->body)) {
throw new InvalidArgumentException(__('Please provide a body'), 'body');
+ }
}
/**
@@ -240,15 +244,18 @@ public function load($options = [])
'loadDisplayGroups' => true,
], $options);
- if ($this->loaded || $this->notificationId == null)
+ if ($this->loaded || $this->notificationId == null) {
return;
+ }
// Load the Display Groups and User Group Notifications
- if ($options['loadUserGroups'])
+ if ($options['loadUserGroups']) {
$this->userGroups = $this->userGroupFactory->getByNotificationId($this->notificationId);
+ }
- if ($options['loadDisplayGroups'])
+ if ($options['loadDisplayGroups']) {
$this->displayGroups = $this->displayGroupFactory->getByNotificationId($this->notificationId);
+ }
$this->loaded = true;
}
@@ -278,14 +285,26 @@ public function save(): void
public function delete()
{
// Remove all links
- $this->getStore()->update('DELETE FROM `lknotificationuser` WHERE `notificationId` = :notificationId', ['notificationId' => $this->notificationId]);
+ $this->getStore()->update(
+ 'DELETE FROM `lknotificationuser` WHERE `notificationId` = :notificationId',
+ ['notificationId' => $this->notificationId]
+ );
- $this->getStore()->update('DELETE FROM `lknotificationgroup` WHERE `notificationId` = :notificationId', ['notificationId' => $this->notificationId]);
+ $this->getStore()->update(
+ 'DELETE FROM `lknotificationgroup` WHERE `notificationId` = :notificationId',
+ ['notificationId' => $this->notificationId]
+ );
- $this->getStore()->update('DELETE FROM `lknotificationdg` WHERE `notificationId` = :notificationId', ['notificationId' => $this->notificationId]);
+ $this->getStore()->update(
+ 'DELETE FROM `lknotificationdg` WHERE `notificationId` = :notificationId',
+ ['notificationId' => $this->notificationId]
+ );
// Remove the notification
- $this->getStore()->update('DELETE FROM `notification` WHERE `notificationId` = :notificationId', ['notificationId' => $this->notificationId]);
+ $this->getStore()->update(
+ 'DELETE FROM `notification` WHERE `notificationId` = :notificationId',
+ ['notificationId' => $this->notificationId]
+ );
}
/**
@@ -294,21 +313,44 @@ public function delete()
private function add()
{
$this->notificationId = $this->getStore()->insert('
- INSERT INTO `notification`
- (`subject`, `body`, `createDt`, `releaseDt`, `isEmail`, `isInterrupt`, `isSystem`, `userId`, `filename`, `originalFileName`, `nonusers`)
- VALUES (:subject, :body, :createDt, :releaseDt, :isEmail, :isInterrupt, :isSystem, :userId, :filename, :originalFileName, :nonusers)
+ INSERT INTO `notification` (
+ `subject`,
+ `body`,
+ `createDt`,
+ `releaseDt`,
+ `isInterrupt`,
+ `isSystem`,
+ `userId`,
+ `filename`,
+ `originalFileName`,
+ `nonusers`,
+ `type`
+ )
+ VALUES (
+ :subject,
+ :body,
+ :createDt,
+ :releaseDt,
+ :isInterrupt,
+ :isSystem,
+ :userId,
+ :filename,
+ :originalFileName,
+ :nonusers,
+ :type
+ )
', [
'subject' => $this->subject,
'body' => $this->body,
'createDt' => $this->createDt,
'releaseDt' => $this->releaseDt,
- 'isEmail' => $this->isEmail,
'isInterrupt' => $this->isInterrupt,
'isSystem' => $this->isSystem,
'userId' => $this->userId,
'filename' => $this->filename,
'originalFileName' => $this->originalFileName,
- 'nonusers' => $this->nonusers
+ 'nonusers' => $this->nonusers,
+ 'type' => $this->type ?? 'custom'
]);
}
@@ -322,26 +364,26 @@ private function edit()
`body` = :body,
`createDt` = :createDt,
`releaseDt` = :releaseDt,
- `isEmail` = :isEmail,
`isInterrupt` = :isInterrupt,
`isSystem` = :isSystem,
`userId` = :userId,
`filename` = :filename,
`originalFileName` = :originalFileName,
- `nonusers` = :nonusers
+ `nonusers` = :nonusers,
+ `type` = :type
WHERE `notificationId` = :notificationId
', [
'subject' => $this->subject,
'body' => $this->body,
'createDt' => $this->createDt,
'releaseDt' => $this->releaseDt,
- 'isEmail' => $this->isEmail,
'isInterrupt' => $this->isInterrupt,
'isSystem' => $this->isSystem,
'userId' => $this->userId,
'filename' => $this->filename,
'originalFileName' => $this->originalFileName,
'nonusers' => $this->nonusers,
+ 'type' => $this->type ?? 'custom',
'notificationId' => $this->notificationId
]);
}
diff --git a/lib/Entity/Permission.php b/lib/Entity/Permission.php
index f5410c82f6..f87c5067bb 100644
--- a/lib/Entity/Permission.php
+++ b/lib/Entity/Permission.php
@@ -1,8 +1,8 @@
permissionId = null;
}
- public function save()
+ /**
+ * Save this permission
+ * @return void
+ */
+ public function save(): void
{
if ($this->permissionId == 0) {
// Check there is something to add
if ($this->view != 0 || $this->edit != 0 || $this->delete != 0) {
- $this->getLog()->debug(sprintf('Adding Permission for %s, %d. GroupId: %d - View = %d, Edit = %d, Delete = %d', $this->entity, $this->objectId, $this->groupId, $this->view, $this->edit, $this->delete));
+ $this->getLog()->debug(sprintf(
+ 'save: Adding Permission for %s, %d. GroupId: %d - View = %d, Edit = %d, Delete = %d',
+ $this->entity,
+ $this->objectId,
+ $this->groupId,
+ $this->view,
+ $this->edit,
+ $this->delete,
+ ));
+
$this->add();
}
} else {
- $this->getLog()->debug(sprintf('Editing Permission for %s, %d. GroupId: %d - View = %d, Edit = %d, Delete = %d', $this->entity, $this->objectId, $this->groupId, $this->view, $this->edit, $this->delete));
- // Are we all 0 permissions
- if ($this->view == 0 && $this->edit == 0 && $this->delete == 0)
+ $this->getLog()->debug(sprintf(
+ 'save: Editing Permission for %s, %d. GroupId: %d - View = %d, Edit = %d, Delete = %d',
+ $this->entity,
+ $this->objectId,
+ $this->groupId,
+ $this->view,
+ $this->edit,
+ $this->delete,
+ ));
+
+ // If all permissions are set to 0, then we delete the record to tidy up
+ if ($this->view == 0 && $this->edit == 0 && $this->delete == 0) {
$this->delete();
- else
+ } else if (count($this->getChangedProperties()) > 0) {
+ // Something has changed, so run the update.
$this->update();
+ }
}
}
diff --git a/lib/Entity/Schedule.php b/lib/Entity/Schedule.php
index d30a65a108..c76263d78a 100644
--- a/lib/Entity/Schedule.php
+++ b/lib/Entity/Schedule.php
@@ -27,6 +27,7 @@
use Xibo\Factory\CampaignFactory;
use Xibo\Factory\DayPartFactory;
use Xibo\Factory\DisplayGroupFactory;
+use Xibo\Factory\ScheduleCriteriaFactory;
use Xibo\Factory\ScheduleExclusionFactory;
use Xibo\Factory\ScheduleReminderFactory;
use Xibo\Factory\UserFactory;
@@ -62,6 +63,7 @@ class Schedule implements \JsonSerializable
public static $MEDIA_EVENT = 7;
public static $PLAYLIST_EVENT = 8;
public static $SYNC_EVENT = 9;
+ public static $DATA_CONNECTOR_EVENT = 10;
public static $DATE_MIN = 0;
public static $DATE_MAX = 2147483647;
@@ -117,6 +119,16 @@ class Schedule implements \JsonSerializable
*/
public $scheduleReminders = [];
+ /**
+ * @SWG\Property(
+ * description="Schedule Criteria assigned to this Scheduled Event.",
+ * type="array",
+ * @SWG\Items(ref="#/definitions/ScheduleCriteria")
+ * )
+ * @var ScheduleCriteria[]
+ */
+ public $criteria = [];
+
/**
* @SWG\Property(
* description="The userId that owns this event."
@@ -304,6 +316,18 @@ class Schedule implements \JsonSerializable
*/
public $syncGroupId;
+ /**
+ * @SWG\Property(description="For data connector events, the dataSetId")
+ * @var int
+ */
+ public $dataSetId;
+
+ /**
+ * @SWG\Property(description="For data connector events, the data set parameters")
+ * @var int
+ */
+ public $dataSetParams;
+
/**
* @SWG\Property(description="The userId of the user that last modified this Schedule")
* @var int
@@ -384,8 +408,19 @@ class Schedule implements \JsonSerializable
* @param ScheduleReminderFactory $scheduleReminderFactory
* @param ScheduleExclusionFactory $scheduleExclusionFactory
*/
- public function __construct($store, $log, $dispatcher, $config, $pool, $displayGroupFactory, $dayPartFactory, $userFactory, $scheduleReminderFactory, $scheduleExclusionFactory)
- {
+ public function __construct(
+ $store,
+ $log,
+ $dispatcher,
+ $config,
+ $pool,
+ $displayGroupFactory,
+ $dayPartFactory,
+ $userFactory,
+ $scheduleReminderFactory,
+ $scheduleExclusionFactory,
+ private readonly ScheduleCriteriaFactory $scheduleCriteriaFactory
+ ) {
$this->setCommonDependencies($store, $log, $dispatcher);
$this->config = $config;
$this->pool = $pool;
@@ -457,6 +492,29 @@ public function setOwner($ownerId)
$this->userId = $ownerId;
}
+ /**
+ * @param ScheduleCriteria $criteria
+ * @param int|null $id
+ * @return $this
+ */
+ public function addOrUpdateCriteria(ScheduleCriteria $criteria, ?int $id = null): Schedule
+ {
+ // set empty array as the default value if original value is empty/null
+ $originalValue = $this->getOriginalValue('criteria') ?? [];
+
+ // Does this already exist?
+ foreach ($originalValue as $existing) {
+ if ($id !== null && $existing->id === $id) {
+ $this->criteria[] = $criteria;
+ return $this;
+ }
+ }
+
+ // We didn't find it.
+ $this->criteria[] = $criteria;
+ return $this;
+ }
+
/**
* Are the provided dates within the schedule look ahead
* @return bool
@@ -510,7 +568,9 @@ private function inScheduleLookAhead()
public function load($options = [])
{
$options = array_merge([
- 'loadScheduleReminders' => false
+ 'loadDisplayGroups' => true,
+ 'loadScheduleReminders' => false,
+ 'loadScheduleCriteria' => true,
], $options);
// If we are already loaded, then don't do it again
@@ -518,13 +578,21 @@ public function load($options = [])
return;
}
- $this->displayGroups = $this->displayGroupFactory->getByEventId($this->eventId);
+ // Load display groups
+ if ($options['loadDisplayGroups']) {
+ $this->displayGroups = $this->displayGroupFactory->getByEventId($this->eventId);
+ }
// Load schedule reminders
if ($options['loadScheduleReminders']) {
$this->scheduleReminders = $this->scheduleReminderFactory->query(null, ['eventId'=> $this->eventId]);
}
+ // Load schedule criteria
+ if ($options['loadScheduleCriteria']) {
+ $this->criteria = $this->scheduleCriteriaFactory->getByEventId($this->eventId);
+ }
+
// Set the original values now that we're loaded.
$this->setOriginals();
@@ -672,6 +740,11 @@ public function validate()
);
}
}
+ } else if ($this->eventTypeId === Schedule::$DATA_CONNECTOR_EVENT) {
+ if (!v::intType()->notEmpty()->validate($this->dataSetId)) {
+ throw new InvalidArgumentException(__('Please select a DataSet for this event.'), 'dataSetId');
+ }
+ $this->campaignId = null;
} else {
// No event type selected
throw new InvalidArgumentException(__('Please select the Event Type'), 'eventTypeId');
@@ -794,6 +867,32 @@ public function save($options = [])
$this->manageAssignments($isEdit && $options['notify']);
}
+ // Update schedule criteria
+ $criteriaIds = [];
+ foreach ($this->criteria as $criteria) {
+ $criteria->eventId = $this->eventId;
+ $criteria->save();
+
+ $criteriaIds[] = $criteria->id;
+ }
+
+ // Remove records that no longer exist.
+ if (count($criteriaIds) > 0) {
+ // There are still criteria left
+ $this->getStore()->update('
+ DELETE FROM `schedule_criteria`
+ WHERE `id` NOT IN (' . implode(',', $criteriaIds) . ')
+ AND `eventId` = :eventId
+ ', [
+ 'eventId' => $this->eventId,
+ ]);
+ } else {
+ // No criteria left at all (or never was any)
+ $this->getStore()->update('DELETE FROM `schedule_criteria` WHERE `eventId` = :eventId', [
+ 'eventId' => $this->eventId,
+ ]);
+ }
+
// Notify
if ($options['notify']) {
// Only if the schedule effects the immediate future - i.e. within the RF Look Ahead
@@ -858,6 +957,11 @@ public function delete($options = [])
}
}
+ // Delete schedule criteria
+ $this->getStore()->update('DELETE FROM `schedule_criteria` WHERE `eventId` = :eventId', [
+ 'eventId' => $this->eventId,
+ ]);
+
if ($this->eventTypeId === self::$SYNC_EVENT) {
$this->getStore()->update('DELETE FROM `schedule_sync` WHERE eventId = :eventId', [
'eventId' => $this->eventId
@@ -928,7 +1032,9 @@ private function add()
`modifiedBy`,
`createdOn`,
`updatedOn`,
- `name`
+ `name`,
+ `dataSetId`,
+ `dataSetParams`
)
VALUES (
:eventTypeId,
@@ -959,7 +1065,9 @@ private function add()
:modifiedBy,
:createdOn,
:updatedOn,
- :name
+ :name,
+ :dataSetId,
+ :dataSetParams
)
', [
'eventTypeId' => $this->eventTypeId,
@@ -992,7 +1100,9 @@ private function add()
'modifiedBy' => null,
'createdOn' => Carbon::now()->format(DateFormatHelper::getSystemFormat()),
'updatedOn' => null,
- 'name' => !empty($this->name) ? $this->name : null
+ 'name' => !empty($this->name) ? $this->name : null,
+ 'dataSetId' => !empty($this->dataSetId) ? $this->dataSetId : null,
+ 'dataSetParams' => !empty($this->dataSetParams) ? $this->dataSetParams : null,
]);
}
@@ -1030,7 +1140,9 @@ private function edit()
`syncGroupId` = :syncGroupId,
`modifiedBy` = :modifiedBy,
`updatedOn` = :updatedOn,
- `name` = :name
+ `name` = :name,
+ `dataSetId` = :dataSetId,
+ `dataSetParams` = :dataSetParams
WHERE eventId = :eventId
', [
'eventTypeId' => $this->eventTypeId,
@@ -1061,6 +1173,8 @@ private function edit()
'modifiedBy' => $this->modifiedBy,
'updatedOn' => Carbon::now()->format(DateFormatHelper::getSystemFormat()),
'name' => $this->name,
+ 'dataSetId' => !empty($this->dataSetId) ? $this->dataSetId : null,
+ 'dataSetParams' => !empty($this->dataSetParams) ? $this->dataSetParams : null,
'eventId' => $this->eventId,
]);
}
@@ -1973,6 +2087,7 @@ public static function getEventTypesForm(): array
['eventTypeId' => self::$ACTION_EVENT, 'eventTypeName' => __('Action')],
['eventTypeId' => self::$MEDIA_EVENT, 'eventTypeName' => __('Video/Image')],
['eventTypeId' => self::$PLAYLIST_EVENT, 'eventTypeName' => __('Playlist')],
+ ['eventTypeId' => self::$DATA_CONNECTOR_EVENT, 'eventTypeName' => __('Data Connector')],
];
}
diff --git a/lib/Entity/ScheduleCriteria.php b/lib/Entity/ScheduleCriteria.php
new file mode 100644
index 0000000000..770e93f3e9
--- /dev/null
+++ b/lib/Entity/ScheduleCriteria.php
@@ -0,0 +1,144 @@
+.
+ */
+
+namespace Xibo\Entity;
+
+use Symfony\Component\EventDispatcher\EventDispatcherInterface;
+use Xibo\Service\LogServiceInterface;
+use Xibo\Storage\StorageServiceInterface;
+use Xibo\Support\Exception\InvalidArgumentException;
+use Xibo\Support\Exception\NotFoundException;
+
+/**
+ * Schedule Criteria entity
+ * @SWG\Definition()
+ */
+class ScheduleCriteria implements \JsonSerializable
+{
+ use EntityTrait;
+
+ public int $id;
+ public int $eventId;
+ public string $type;
+ public string $metric;
+ public string $condition;
+ public string $value;
+
+ public function __construct(
+ StorageServiceInterface $store,
+ LogServiceInterface $logService,
+ EventDispatcherInterface $dispatcher
+ ) {
+ $this->setCommonDependencies($store, $logService, $dispatcher);
+ }
+
+ /**
+ * Basic checks to make sure we have all the fields, etc that we need/
+ * @return void
+ * @throws InvalidArgumentException
+ */
+ private function validate(): void
+ {
+ if (empty($this->eventId)) {
+ throw new InvalidArgumentException(__('Criteria must be attached to an event'), 'eventId');
+ }
+
+ if (empty($this->metric)) {
+ throw new InvalidArgumentException(__('Please select a metric'), 'metric');
+ }
+
+ if (!in_array($this->condition, ['set', 'lt', 'lte', 'eq', 'neq', 'gt', 'gte', 'contains', 'ncontains'])) {
+ throw new InvalidArgumentException(__('Please enter a valid condition'), 'condition');
+ }
+ }
+
+ /**
+ * @throws NotFoundException|InvalidArgumentException
+ */
+ public function save(array $options = []): ScheduleCriteria
+ {
+ $options = array_merge([
+ 'validate' => true,
+ 'audit' => true,
+ ], $options);
+
+ // Validate?
+ if ($options['validate']) {
+ $this->validate();
+ }
+
+ if (empty($this->id)) {
+ $this->add();
+ } else {
+ $this->edit();
+ }
+
+ if ($options['audit']) {
+ $this->audit($this->id, 'Saved schedule criteria to event', null, true);
+ }
+
+ return $this;
+ }
+
+ /**
+ * Delete this criteria
+ * @return void
+ */
+ public function delete(): void
+ {
+ $this->getStore()->update('DELETE FROM `schedule_criteria` WHERE `id` = :id', ['id' => $this->id]);
+ }
+
+ private function add(): void
+ {
+ $this->id = $this->getStore()->insert('
+ INSERT INTO `schedule_criteria` (`eventId`, `type`, `metric`, `condition`, `value`)
+ VALUES (:eventId, :type, :metric, :condition, :value)
+ ', [
+ 'eventId' => $this->eventId,
+ 'type' => $this->type,
+ 'metric' => $this->metric,
+ 'condition' => $this->condition,
+ 'value' => $this->value,
+ ]);
+ }
+
+ private function edit(): void
+ {
+ $this->getStore()->update('
+ UPDATE `schedule_criteria` SET
+ `eventId` = :eventId,
+ `type` = :type,
+ `metric` = :metric,
+ `condition` = :condition,
+ `value` = :value
+ WHERE `id` = :id
+ ', [
+ 'eventId' => $this->eventId,
+ 'type' => $this->type,
+ 'metric' => $this->metric,
+ 'condition' => $this->condition,
+ 'value' => $this->value,
+ 'id' => $this->id,
+ ]);
+ }
+}
diff --git a/lib/Entity/SearchResult.php b/lib/Entity/SearchResult.php
index 14bbeb5b9b..01fd4a741f 100644
--- a/lib/Entity/SearchResult.php
+++ b/lib/Entity/SearchResult.php
@@ -42,6 +42,7 @@ class SearchResult implements \JsonSerializable
public $duration;
public $videoThumbnailUrl;
public $tags = [];
+ public $isFeatured = 0;
/** @var ProviderDetails */
public $provider;
@@ -63,7 +64,8 @@ public function jsonSerialize(): array
'orientation' => $this->orientation,
'fileSize' => $this->fileSize,
'videoThumbnailUrl' => $this->videoThumbnailUrl,
- 'tags' => $this->tags
+ 'tags' => $this->tags,
+ 'isFeatured' => $this->isFeatured
];
}
}
diff --git a/lib/Entity/SyncGroup.php b/lib/Entity/SyncGroup.php
old mode 100644
new mode 100755
index 9d4768185a..54b25e5b8b
--- a/lib/Entity/SyncGroup.php
+++ b/lib/Entity/SyncGroup.php
@@ -1,6 +1,6 @@
leadDisplayId) && isset($this->syncGroupId)) {
throw new InvalidArgumentException(__('Please select lead Display for this sync group'), 'leadDisplayId');
}
+
+ if ($this->syncSwitchDelay < 0) {
+ throw new InvalidArgumentException(__('Switch Delay value cannot be negative'), 'syncSwitchDelay');
+ }
+
+ if ($this->syncVideoPauseDelay < 0) {
+ throw new InvalidArgumentException(__('Video Pause Delay value cannot be negative'), 'syncVideoPauseDelay');
+ }
}
public function validateForSchedule(SanitizerInterface $sanitizer)
@@ -305,8 +323,8 @@ private function add(): void
$time = Carbon::now()->format(DateFormatHelper::getSystemFormat());
$this->syncGroupId = $this->getStore()->insert('
- INSERT INTO syncgroup (`name`, `createdDt`, `modifiedDt`, `ownerId`, `modifiedBy`, `syncPublisherPort`, `folderId`, `permissionsFolderId`)
- VALUES (:name, :createdDt, :modifiedDt, :ownerId, :modifiedBy, :syncPublisherPort, :folderId, :permissionsFolderId)
+ INSERT INTO syncgroup (`name`, `createdDt`, `modifiedDt`, `ownerId`, `modifiedBy`, `syncPublisherPort`, `syncSwitchDelay`, `syncVideoPauseDelay`, `folderId`, `permissionsFolderId`)
+ VALUES (:name, :createdDt, :modifiedDt, :ownerId, :modifiedBy, :syncPublisherPort, :syncSwitchDelay, :syncVideoPauseDelay, :folderId, :permissionsFolderId)
', [
'name' => $this->name,
'createdDt' => $time,
@@ -314,6 +332,8 @@ private function add(): void
'modifiedBy' => $this->modifiedBy,
'ownerId' => $this->ownerId,
'syncPublisherPort' => $this->syncPublisherPort,
+ 'syncSwitchDelay' => $this->syncSwitchDelay,
+ 'syncVideoPauseDelay' => $this->syncVideoPauseDelay,
'folderId' => $this->folderId,
'permissionsFolderId' => $this->permissionsFolderId
]);
@@ -331,6 +351,8 @@ private function edit(): void
`ownerId` = :ownerId,
`modifiedBy` = :modifiedBy,
`syncPublisherPort` = :syncPublisherPort,
+ `syncSwitchDelay` = :syncSwitchDelay,
+ `syncVideoPauseDelay` = :syncVideoPauseDelay,
`leadDisplayId` = :leadDisplayId,
`folderId` = :folderId,
`permissionsFolderId` = :permissionsFolderId
@@ -341,6 +363,8 @@ private function edit(): void
'ownerId' => $this->ownerId,
'modifiedBy' => $this->modifiedBy,
'syncPublisherPort' => $this->syncPublisherPort,
+ 'syncSwitchDelay' => $this->syncSwitchDelay,
+ 'syncVideoPauseDelay' => $this->syncVideoPauseDelay,
'leadDisplayId' => $this->leadDisplayId == 0 ? null : $this->leadDisplayId,
'folderId' => $this->folderId,
'permissionsFolderId' => $this->permissionsFolderId,
@@ -366,7 +390,7 @@ public function delete(): void
foreach ($this->scheduleFactory->getBySyncGroupId($this->syncGroupId) as $event) {
$event->delete();
}
-
+
$this->getStore()->update('DELETE FROM `syncgroup` WHERE `syncgroup`.syncGroupId = :syncGroupId', [
'syncGroupId' => $this->syncGroupId
]);
@@ -421,10 +445,10 @@ public function unSetMembers(array $displayIds): void
AND `schedule_sync`.eventId IN (SELECT eventId FROM schedule WHERE schedule.syncGroupId = :syncGroupId)', [
'displayId' => $display->displayId,
'syncGroupId' => $this->syncGroupId
- ]);
+ ]);
}
$display->notify();
}
}
-}
+}
\ No newline at end of file
diff --git a/lib/Entity/User.php b/lib/Entity/User.php
index 84bcc54eb5..ac16bd875e 100644
--- a/lib/Entity/User.php
+++ b/lib/Entity/User.php
@@ -244,17 +244,53 @@ class User implements \JsonSerializable, UserEntityInterface
public $dayParts = [];
/**
- * @SWG\Property(description="Does this Group receive system notifications.")
+ * @SWG\Property(description="Does this User receive system notifications.")
* @var int
*/
public $isSystemNotification = 0;
/**
- * @SWG\Property(description="Does this Group receive system notifications.")
+ * @SWG\Property(description="Does this User receive system notifications.")
* @var int
*/
public $isDisplayNotification = 0;
+ /**
+ * @SWG\Property(description="Does this User receive DataSet notifications.")
+ * @var int
+ */
+ public $isDataSetNotification = 0;
+
+ /**
+ * @SWG\Property(description="Does this User receive Layout notifications.")
+ * @var int
+ */
+ public $isLayoutNotification = 0;
+
+ /**
+ * @SWG\Property(description="Does this User receive Library notifications.")
+ * @var int
+ */
+ public $isLibraryNotification = 0;
+
+ /**
+ * @SWG\Property(description="Does this User receive Report notifications.")
+ * @var int
+ */
+ public $isReportNotification = 0;
+
+ /**
+ * @SWG\Property(description="Does this User receive Schedule notifications.")
+ * @var int
+ */
+ public $isScheduleNotification = 0;
+
+ /**
+ * @SWG\Property(description="Does this User receive Custom notifications.")
+ * @var int
+ */
+ public $isCustomNotification = 0;
+
/**
* @SWG\Property(description="The two factor type id")
* @var int
@@ -420,7 +456,14 @@ public function setChildAclDependencies($userGroupFactory)
*/
public function __toString()
{
- return sprintf('User %s. userId: %d, UserTypeId: %d, homePageId: %d, email = %s', $this->userName, $this->userId, $this->userTypeId, $this->homePageId, $this->email);
+ return sprintf(
+ 'User %s. userId: %d, UserTypeId: %d, homePageId: %d, email = %s',
+ $this->userName,
+ $this->userId,
+ $this->userTypeId,
+ $this->homePageId,
+ $this->email
+ );
}
/**
@@ -465,8 +508,9 @@ public function getOption($option)
foreach ($this->userOptions as $userOption) {
/* @var UserOption $userOption */
- if ($userOption->option == $option)
+ if ($userOption->option == $option) {
return $userOption;
+ }
}
$this->getLog()->debug(sprintf('UserOption %s not found', $option));
@@ -591,15 +635,16 @@ private function setNewPasswordHash($password)
*/
public function checkPassword($password)
{
- if ($this->userId == 0)
+ if ($this->userId == 0) {
throw new NotFoundException(__('User not found'));
+ }
if ($this->CSPRNG == 0) {
// Password is tested using a plain MD5 check
- if ($this->password != md5($password))
+ if ($this->password != md5($password)) {
throw new AccessDeniedException();
- }
- else if ($this->CSPRNG == 1) {
+ }
+ } else if ($this->CSPRNG == 1) {
// Test with Pbkdf2
try {
if (!Pbkdf2Hash::verifyPassword($password, $this->password)) {
@@ -610,8 +655,7 @@ public function checkPassword($password)
$this->getLog()->warning('Invalid password hash stored for userId ' . $this->userId);
$this->getLog()->debug('Hash error: ' . $e->getMessage());
}
- }
- else {
+ } else {
if (!password_verify($password, $this->password)) {
$this->getLog()->debug('Password failed Hash Check.');
throw new AccessDeniedException();
@@ -672,8 +716,9 @@ public function load($all = false)
if ($this->userId == null || $this->loaded)
return;
- if ($this->userGroupFactory == null)
+ if ($this->userGroupFactory == null) {
throw new \RuntimeException('Cannot load user without first calling setUserGroupFactory');
+ }
$this->getLog()->debug(sprintf('Loading %d. All Objects = %d', $this->userId, $all));
@@ -844,6 +889,13 @@ private function add()
$group->setOwner($this);
$group->isSystemNotification = $this->isSystemNotification;
$group->isDisplayNotification = $this->isDisplayNotification;
+ $group->isCustomNotification = $this->isCustomNotification;
+ $group->isDataSetNotification = $this->isDataSetNotification;
+ $group->isLayoutNotification = $this->isLayoutNotification;
+ $group->isLibraryNotification = $this->isLibraryNotification;
+ $group->isReportNotification = $this->isReportNotification;
+ $group->isScheduleNotification = $this->isScheduleNotification;
+
$group->save();
// Assert the groupIds on the user (we do this so we have group in the API return)
@@ -918,6 +970,12 @@ private function update()
$group->libraryQuota = $this->libraryQuota;
$group->isSystemNotification = $this->isSystemNotification;
$group->isDisplayNotification = $this->isDisplayNotification;
+ $group->isCustomNotification = $this->isCustomNotification;
+ $group->isDataSetNotification = $this->isDataSetNotification;
+ $group->isLayoutNotification = $this->isLayoutNotification;
+ $group->isLibraryNotification = $this->isLibraryNotification;
+ $group->isReportNotification = $this->isReportNotification;
+ $group->isScheduleNotification = $this->isScheduleNotification;
$group->save(['linkUsers' => false]);
}
diff --git a/lib/Entity/UserGroup.php b/lib/Entity/UserGroup.php
index 05d2c77762..5ca7207112 100644
--- a/lib/Entity/UserGroup.php
+++ b/lib/Entity/UserGroup.php
@@ -91,6 +91,42 @@ class UserGroup
*/
public $isDisplayNotification = 0;
+ /**
+ * @SWG\Property(description="Does this Group receive DataSet notifications.")
+ * @var int
+ */
+ public $isDataSetNotification = 0;
+
+ /**
+ * @SWG\Property(description="Does this Group receive Layout notifications.")
+ * @var int
+ */
+ public $isLayoutNotification = 0;
+
+ /**
+ * @SWG\Property(description="Does this Group receive Library notifications.")
+ * @var int
+ */
+ public $isLibraryNotification = 0;
+
+ /**
+ * @SWG\Property(description="Does this Group receive Report notifications.")
+ * @var int
+ */
+ public $isReportNotification = 0;
+
+ /**
+ * @SWG\Property(description="Does this Group receive Schedule notifications.")
+ * @var int
+ */
+ public $isScheduleNotification = 0;
+
+ /**
+ * @SWG\Property(description="Does this Group receive Custom notifications.")
+ * @var int
+ */
+ public $isCustomNotification = 0;
+
/**
* @SWG\Property(description="Is this Group shown in the list of choices when onboarding a new user")
* @var int
@@ -217,7 +253,7 @@ public function unassignUser($user)
{
$this->load();
$this->unassignedUserIds[] = $user->userId;
- $this->users = array_udiff($this->users, [$user], function($a, $b) {
+ $this->users = array_udiff($this->users, [$user], function ($a, $b) {
/**
* @var User $a
* @var User $b
@@ -231,19 +267,23 @@ public function unassignUser($user)
*/
public function validate()
{
- if (!v::stringType()->length(1, 50)->validate($this->group))
+ if (!v::stringType()->length(1, 50)->validate($this->group)) {
throw new InvalidArgumentException(__('User Group Name cannot be empty.') . $this, 'name');
+ }
- if ($this->libraryQuota !== null && !v::intType()->validate($this->libraryQuota))
+ if ($this->libraryQuota !== null && !v::intType()->validate($this->libraryQuota)) {
throw new InvalidArgumentException(__('Library Quota must be a whole number.'), 'libraryQuota');
+ }
try {
$group = $this->userGroupFactory->getByName($this->group, $this->isUserSpecific);
- if ($this->groupId == null || $this->groupId != $group->groupId)
- throw new DuplicateEntityException(__('There is already a group with this name. Please choose another.'));
- }
- catch (NotFoundException $e) {
+ if ($this->groupId == null || $this->groupId != $group->groupId) {
+ throw new DuplicateEntityException(
+ __('There is already a group with this name. Please choose another.')
+ );
+ }
+ } catch (NotFoundException $e) {
}
}
@@ -285,8 +325,9 @@ public function save($options = [])
'linkUsers' => true
], $options);
- if ($options['validate'])
+ if ($options['validate']) {
$this->validate();
+ }
if ($this->groupId == null || $this->groupId == 0) {
$this->add();
@@ -374,23 +415,35 @@ private function add()
$this->groupId = $this->getStore()->insert('
INSERT INTO `group` (
`group`,
- IsUserSpecific,
+ `IsUserSpecific`,
`description`,
- libraryQuota,
+ `libraryQuota`,
`isSystemNotification`,
`isDisplayNotification`,
+ `isDataSetNotification`,
+ `isLayoutNotification`,
+ `isLibraryNotification`,
+ `isReportNotification`,
+ `isScheduleNotification`,
+ `isCustomNotification`,
`isShownForAddUser`,
`defaultHomepageId`
)
VALUES (
- :group,
- :isUserSpecific,
- :description,
- :libraryQuota,
- :isSystemNotification,
- :isDisplayNotification,
- :isShownForAddUser,
- :defaultHomepageId
+ :group,
+ :isUserSpecific,
+ :description,
+ :libraryQuota,
+ :isSystemNotification,
+ :isDisplayNotification,
+ :isDataSetNotification,
+ :isLayoutNotification,
+ :isLibraryNotification,
+ :isReportNotification,
+ :isScheduleNotification,
+ :isCustomNotification,
+ :isShownForAddUser,
+ :defaultHomepageId
)
', [
'group' => $this->group,
@@ -399,6 +452,12 @@ private function add()
'libraryQuota' => $this->libraryQuota,
'isSystemNotification' => $this->isSystemNotification,
'isDisplayNotification' => $this->isDisplayNotification,
+ 'isDataSetNotification' => $this->isDataSetNotification,
+ 'isLayoutNotification' => $this->isLayoutNotification,
+ 'isLibraryNotification' => $this->isLibraryNotification,
+ 'isReportNotification' => $this->isReportNotification,
+ 'isScheduleNotification' => $this->isScheduleNotification,
+ 'isCustomNotification' => $this->isCustomNotification,
'isShownForAddUser' => $this->isShownForAddUser,
'defaultHomepageId' => $this->defaultHomepageId
]);
@@ -416,6 +475,12 @@ private function edit()
libraryQuota = :libraryQuota,
`isSystemNotification` = :isSystemNotification,
`isDisplayNotification` = :isDisplayNotification,
+ `isDataSetNotification` = :isDataSetNotification,
+ `isLayoutNotification` = :isLayoutNotification,
+ `isLibraryNotification` = :isLibraryNotification,
+ `isReportNotification` = :isReportNotification,
+ `isScheduleNotification` = :isScheduleNotification,
+ `isCustomNotification` = :isCustomNotification,
`isShownForAddUser` = :isShownForAddUser,
`defaultHomepageId` = :defaultHomepageId
WHERE groupId = :groupId
@@ -426,6 +491,12 @@ private function edit()
'libraryQuota' => $this->libraryQuota,
'isSystemNotification' => $this->isSystemNotification,
'isDisplayNotification' => $this->isDisplayNotification,
+ 'isDataSetNotification' => $this->isDataSetNotification,
+ 'isLayoutNotification' => $this->isLayoutNotification,
+ 'isLibraryNotification' => $this->isLibraryNotification,
+ 'isReportNotification' => $this->isReportNotification,
+ 'isScheduleNotification' => $this->isScheduleNotification,
+ 'isCustomNotification' => $this->isCustomNotification,
'isShownForAddUser' => $this->isShownForAddUser,
'defaultHomepageId' => $this->defaultHomepageId
]);
@@ -436,7 +507,10 @@ private function edit()
*/
private function linkUsers()
{
- $insert = $this->getStore()->getConnection()->prepare('INSERT INTO `lkusergroup` (groupId, userId) VALUES (:groupId, :userId) ON DUPLICATE KEY UPDATE groupId = groupId');
+ $insert = $this->getStore()->getConnection()->prepare(
+ 'INSERT INTO `lkusergroup` (groupId, userId)
+ VALUES (:groupId, :userId) ON DUPLICATE KEY UPDATE groupId = groupId'
+ );
foreach ($this->users as $user) {
/* @var User $user */
diff --git a/lib/Entity/UserNotification.php b/lib/Entity/UserNotification.php
index 758d955067..cb4e06afa4 100644
--- a/lib/Entity/UserNotification.php
+++ b/lib/Entity/UserNotification.php
@@ -135,6 +135,11 @@ class UserNotification implements \JsonSerializable
*/
public $nonusers;
+ /**
+ * @var string
+ */
+ public $type;
+
/**
* Command constructor.
* @param StorageServiceInterface $store
@@ -154,8 +159,9 @@ public function setRead($readDt)
{
$this->read = 1;
- if ($this->readDt == 0)
+ if ($this->readDt == 0) {
$this->readDt = $readDt;
+ }
}
/**
@@ -172,8 +178,9 @@ public function setUnread()
*/
public function setEmailed($emailDt)
{
- if ($this->emailDt == 0)
+ if ($this->emailDt == 0) {
$this->emailDt = $emailDt;
+ }
}
/**
@@ -181,7 +188,14 @@ public function setEmailed($emailDt)
*/
public function save()
{
- $this->getStore()->update('UPDATE `lknotificationuser` SET `read` = :read, readDt = :readDt, emailDt = :emailDt WHERE notificationId = :notificationId AND userId = :userId', [
+ $this->getStore()->update('
+ UPDATE `lknotificationuser`
+ SET `read` = :read,
+ `readDt` = :readDt,
+ `emailDt` = :emailDt
+ WHERE notificationId = :notificationId
+ AND userId = :userId
+ ', [
'read' => $this->read,
'readDt' => $this->readDt,
'emailDt' => $this->emailDt,
@@ -189,4 +203,20 @@ public function save()
'userId' => $this->userId
]);
}
+
+ /**
+ * @return string
+ */
+ public function getTypeForGroup(): string
+ {
+ return match ($this->type) {
+ 'dataset' => 'isDataSetNotification',
+ 'display' => 'isDisplayNotification',
+ 'layout' => 'isLayoutNotification',
+ 'library' => 'isLibraryNotification',
+ 'report' => 'isReportNotification',
+ 'schedule' => 'isScheduleNotification',
+ default => 'isCustomNotification',
+ };
+ }
}
\ No newline at end of file
diff --git a/lib/Entity/Widget.php b/lib/Entity/Widget.php
index 036e91770f..a187f1f4fe 100644
--- a/lib/Entity/Widget.php
+++ b/lib/Entity/Widget.php
@@ -1108,8 +1108,15 @@ public function delete($options = [])
$this->mediaIds = [];
$this->unlinkMedia();
+ // Delete any fallback data
+ $this->getStore()->update('DELETE FROM `widgetdata` WHERE `widgetId` = :widgetId', [
+ 'widgetId' => $this->widgetId,
+ ]);
+
// Delete this
- $this->getStore()->update('DELETE FROM `widget` WHERE widgetId = :widgetId', array('widgetId' => $this->widgetId));
+ $this->getStore()->update('DELETE FROM `widget` WHERE `widgetId` = :widgetId', [
+ 'widgetId' => $this->widgetId,
+ ]);
// Call notify with the notify options passed in
$this->notify($options);
diff --git a/lib/Entity/WidgetData.php b/lib/Entity/WidgetData.php
new file mode 100644
index 0000000000..6e1abea14d
--- /dev/null
+++ b/lib/Entity/WidgetData.php
@@ -0,0 +1,169 @@
+.
+ */
+
+namespace Xibo\Entity;
+
+use Carbon\Carbon;
+use Symfony\Component\EventDispatcher\EventDispatcherInterface;
+use Xibo\Helper\DateFormatHelper;
+use Xibo\Service\LogServiceInterface;
+use Xibo\Storage\StorageServiceInterface;
+
+/**
+ * Class representing widget data
+ * @SWG\Definition()
+ */
+class WidgetData implements \JsonSerializable
+{
+ use EntityTrait;
+
+ /**
+ * @SWG\Property(
+ * property="id",
+ * description="The ID"
+ * )
+ * @var int|null
+ */
+ public ?int $id = null;
+
+ /**
+ * @SWG\Property(
+ * property="widgetId",
+ * description="The Widget ID"
+ * )
+ * @var int
+ */
+ public int $widgetId;
+
+ /**
+ * @SWG\Property(
+ * property="data",
+ * description="Array of data properties depending on the widget data type this data is for",
+ * @SWG\Items(type="string")
+ * )
+ * @var array
+ */
+ public array $data;
+
+ /**
+ * @SWG\Property(
+ * property="displayOrder",
+ * description="The Display Order"
+ * )
+ * @var int
+ */
+ public int $displayOrder;
+
+ /**
+ * @SWG\Property(
+ * property="createdDt",
+ * description="The datetime this entity was created"
+ * )
+ * @var ?string
+ */
+ public ?string $createdDt;
+
+ /**
+ * @SWG\Property(
+ * property="createdDt",
+ * description="The datetime this entity was last modified"
+ * )
+ * @var ?string
+ */
+ public ?string $modifiedDt;
+
+ /**
+ * Entity constructor.
+ * @param StorageServiceInterface $store
+ * @param LogServiceInterface $log
+ * @param \Symfony\Component\EventDispatcher\EventDispatcherInterface $dispatcher
+ */
+ public function __construct(
+ StorageServiceInterface $store,
+ LogServiceInterface $log,
+ EventDispatcherInterface $dispatcher
+ ) {
+ $this->setCommonDependencies($store, $log, $dispatcher);
+ }
+
+ /**
+ * Save this widget data
+ * @return $this
+ */
+ public function save(): WidgetData
+ {
+ if ($this->id === null) {
+ $this->add();
+ } else {
+ $this->modifiedDt = Carbon::now()->format(DateFormatHelper::getSystemFormat());
+ $this->edit();
+ }
+ return $this;
+ }
+
+ /**
+ * Delete this widget data
+ * @return void
+ */
+ public function delete(): void
+ {
+ $this->getStore()->update('DELETE FROM `widgetdata` WHERE `id` = :id', ['id' => $this->id]);
+ }
+
+ /**
+ * Add and capture the ID
+ * @return void
+ */
+ private function add(): void
+ {
+ $this->id = $this->getStore()->insert('
+ INSERT INTO `widgetdata` (`widgetId`, `data`, `displayOrder`, `createdDt`, `modifiedDt`)
+ VALUES (:widgetId, :data, :displayOrder, :createdDt, :modifiedDt)
+ ', [
+ 'widgetId' => $this->widgetId,
+ 'data' => $this->data == null ? null : json_encode($this->data),
+ 'displayOrder' => $this->displayOrder,
+ 'createdDt' => Carbon::now()->format(DateFormatHelper::getSystemFormat()),
+ 'modifiedDt' => null,
+ ]);
+ }
+
+ /**
+ * Edit
+ * @return void
+ */
+ private function edit(): void
+ {
+ $this->getStore()->update('
+ UPDATE `widgetdata` SET
+ `data` = :data,
+ `displayOrder` = :displayOrder,
+ `modifiedDt` = :modifiedDt
+ WHERE `id` = :id
+ ', [
+ 'id' => $this->id,
+ 'data' => $this->data == null ? null : json_encode($this->data),
+ 'displayOrder' => $this->displayOrder,
+ 'modifiedDt' => $this->modifiedDt,
+ ]);
+ }
+}
diff --git a/lib/Event/DataConnectorScriptRequestEvent.php b/lib/Event/DataConnectorScriptRequestEvent.php
new file mode 100644
index 0000000000..88b9b87347
--- /dev/null
+++ b/lib/Event/DataConnectorScriptRequestEvent.php
@@ -0,0 +1,68 @@
+.
+ */
+
+namespace Xibo\Event;
+
+use Xibo\Connector\DataConnectorScriptProviderInterface;
+use Xibo\Entity\DataSet;
+
+/**
+ * Event triggered to retrieve the Data Connector JavaScript from a connector.
+ */
+class DataConnectorScriptRequestEvent extends Event implements DataConnectorScriptProviderInterface
+{
+ public static $NAME = 'data.connector.script.request';
+
+ /**
+ * @var DataSet
+ */
+ private $dataSet;
+
+ /**
+ * @param DataSet $dataSet
+ */
+ public function __construct(DataSet $dataSet)
+ {
+ $this->dataSet = $dataSet;
+ }
+
+ /**
+ * @inheritDoc
+ */
+ public function getConnectorId(): string
+ {
+ return $this->dataSet->dataConnectorSource;
+ }
+
+ /**
+ * @inheritDoc
+ */
+ public function setScript(string $script): void
+ {
+ if ($this->dataSet->isRealTime == 0) {
+ return;
+ }
+
+ // Save the script.
+ $this->dataSet->saveScript($script);
+ }
+}
diff --git a/lib/Event/DataConnectorSourceRequestEvent.php b/lib/Event/DataConnectorSourceRequestEvent.php
new file mode 100644
index 0000000000..d9c514f522
--- /dev/null
+++ b/lib/Event/DataConnectorSourceRequestEvent.php
@@ -0,0 +1,80 @@
+.
+ */
+
+namespace Xibo\Event;
+
+use InvalidArgumentException;
+use Xibo\Connector\DataConnectorSourceProviderInterface;
+
+/**
+ * Event triggered to retrieve a list of data connector sources.
+ *
+ * This event collects metadata (names and IDs) of connectors that provides data connector.
+ */
+class DataConnectorSourceRequestEvent extends Event implements DataConnectorSourceProviderInterface
+{
+ public static $NAME = 'data.connector.source.request';
+
+ /**
+ * @var array
+ */
+ private $dataConnectorSources = [];
+
+ /**
+ * Initializes the dataConnectorSources with default value.
+ */
+ public function __construct()
+ {
+ $this->dataConnectorSources[] = [
+ 'id' => 'user_defined',
+ 'name' => __('User-Defined JavaScript')
+ ];
+ }
+
+ /**
+ * @inheritDoc
+ */
+ public function addDataConnectorSource(string $id, string $name): void
+ {
+ // ensure that there are no duplicate id or name
+ foreach ($this->dataConnectorSources as $dataConnectorSource) {
+ if ($dataConnectorSource['id'] == $id) {
+ throw new InvalidArgumentException('Duplicate Connector ID found.');
+ }
+ if ($dataConnectorSource['name'] == $name) {
+ throw new InvalidArgumentException('Duplicate Connector Name found.');
+ }
+ }
+
+ $this->dataConnectorSources[] = ['id' => $id, 'name' => $name];
+ }
+
+ /**
+ * Retrieves the list of data connector sources.
+ *
+ * @return array
+ */
+ public function getDataConnectorSources(): array
+ {
+ return $this->dataConnectorSources;
+ }
+}
diff --git a/lib/Event/LibraryProviderEvent.php b/lib/Event/LibraryProviderEvent.php
index dec770b3fe..8af84e71d5 100644
--- a/lib/Event/LibraryProviderEvent.php
+++ b/lib/Event/LibraryProviderEvent.php
@@ -49,6 +49,8 @@ class LibraryProviderEvent extends Event
/** @var string landspace|portrait or empty */
private $orientation;
+ /** @var string provider name */
+ private $provider;
/**
* @param \Xibo\Entity\SearchResults $results
@@ -57,8 +59,9 @@ class LibraryProviderEvent extends Event
* @param $search
* @param $types
* @param $orientation
+ * @param $provider
*/
- public function __construct(SearchResults $results, $start, $length, $search, $types, $orientation)
+ public function __construct(SearchResults $results, $start, $length, $search, $types, $orientation, $provider)
{
$this->results = $results;
$this->start = $start;
@@ -66,6 +69,7 @@ public function __construct(SearchResults $results, $start, $length, $search, $t
$this->search = $search;
$this->types = $types;
$this->orientation = $orientation;
+ $this->provider = $provider;
}
public function addResult(SearchResult $result): LibraryProviderEvent
@@ -120,4 +124,9 @@ public function getOrientation()
{
return $this->orientation;
}
+
+ public function getProviderName()
+ {
+ return $this->provider;
+ }
}
diff --git a/lib/Event/LibraryProviderListEvent.php b/lib/Event/LibraryProviderListEvent.php
new file mode 100644
index 0000000000..b9d3a4ced9
--- /dev/null
+++ b/lib/Event/LibraryProviderListEvent.php
@@ -0,0 +1,57 @@
+.
+ */
+
+namespace Xibo\Event;
+
+use Xibo\Connector\ProviderDetails;
+
+class LibraryProviderListEvent extends Event
+{
+ protected static $NAME = 'connector.provider.library.list';
+ /**
+ * @var array
+ */
+ private mixed $providers;
+
+ public function __construct($providers = [])
+ {
+ $this->providers = $providers;
+ }
+
+ /**
+ * @param ProviderDetails $provider
+ * @return LibraryProviderListEvent
+ */
+ public function addProvider(ProviderDetails $provider): LibraryProviderListEvent
+ {
+ $this->providers[] = $provider;
+ return $this;
+ }
+
+ /**
+ * @return ProviderDetails[]
+ */
+ public function getProviders(): array
+ {
+ return $this->providers;
+ }
+}
diff --git a/lib/Event/ScheduleCriteriaRequestEvent.php b/lib/Event/ScheduleCriteriaRequestEvent.php
new file mode 100644
index 0000000000..f36694a101
--- /dev/null
+++ b/lib/Event/ScheduleCriteriaRequestEvent.php
@@ -0,0 +1,125 @@
+.
+ */
+
+namespace Xibo\Event;
+
+use Xibo\Support\Exception\ConfigurationException;
+
+/**
+ * This class represents a schedule criteria request event. It is responsible for initializing,
+ * managing, and retrieving schedule criteria. The class provides methods for adding types,
+ * metrics, and their associated values.
+ */
+class ScheduleCriteriaRequestEvent extends Event implements ScheduleCriteriaRequestInterface
+{
+ public static $NAME = 'schedule.criteria.request';
+ private $criteria = [];
+ private $currentTypeIndex = null;
+ private $currentMetric = null;
+
+ /**
+ * @inheritDoc
+ */
+ public function addType(string $id, string $type): self
+ {
+ // Initialize the type in the criteria array
+ $this->criteria['types'][] = [
+ 'id' => $id,
+ 'name' => $type,
+ 'metrics' => []
+ ];
+
+ // Set the current type index for chaining
+ $this->currentTypeIndex = count($this->criteria['types']) - 1;
+ return $this;
+ }
+
+ /**
+ * @inheritDoc
+ */
+ public function addMetric(string $id, string $name): self
+ {
+ $metric = [
+ 'id' => $id,
+ 'name' => $name,
+ 'values' => null
+ ];
+
+ // Add the metric to the current type
+ if (isset($this->criteria['types'][$this->currentTypeIndex])) {
+ $this->criteria['types'][$this->currentTypeIndex]['metrics'][] = $metric;
+ $this->currentMetric = $metric;
+ } else {
+ throw new ConfigurationException(__('Current type is not set.'));
+ }
+
+ return $this;
+ }
+
+ /**
+ * @inheritDoc
+ */
+ public function addValues(string $inputType, array $values): self
+ {
+ // Restrict input types to 'dropdown', 'number', 'text' and 'date'
+ $allowedInputTypes = ['dropdown', 'number', 'text', 'date'];
+ if (!in_array($inputType, $allowedInputTypes)) {
+ throw new ConfigurationException(__('Invalid input type.'));
+ }
+
+ // Add values to the current metric
+ if (isset($this->criteria['types'][$this->currentTypeIndex])) {
+ foreach ($this->criteria['types'][$this->currentTypeIndex]['metrics'] as &$metric) {
+ // check if the current metric matches the metric from the current iteration
+ if ($metric['name'] === $this->currentMetric['name']) {
+ // format the values to separate id and title
+ $formattedValues = [];
+ foreach ($values as $id => $title) {
+ $formattedValues[] = [
+ 'id' => $id,
+ 'title' => $title
+ ];
+ }
+
+ $metric['values'] = [
+ 'inputType' => $inputType,
+ 'values' => $formattedValues
+ ];
+ }
+ }
+ } else {
+ throw new ConfigurationException(__('Current type is not set.'));
+ }
+
+ return $this;
+ }
+
+ /**
+ * Get the criteria array.
+ *
+ * @return array
+ */
+ public function getCriteria(): array
+ {
+ return $this->criteria;
+ }
+}
diff --git a/lib/Event/ScheduleCriteriaRequestInterface.php b/lib/Event/ScheduleCriteriaRequestInterface.php
new file mode 100644
index 0000000000..dbc8f13fef
--- /dev/null
+++ b/lib/Event/ScheduleCriteriaRequestInterface.php
@@ -0,0 +1,81 @@
+.
+ */
+
+namespace Xibo\Event;
+
+use Xibo\Support\Exception\ConfigurationException;
+
+/**
+ * Interface for managing schedule criteria types, metrics, and values.
+ *
+ * Allows the addition of types, metrics, and values in a chained manner:
+ * - Start with addType() to add a new type. Call addType() multiple times to add multiple types.
+ * - Follow with addMetric() to add metrics under the specified type. Call addMetric() multiple times to add multiple
+ * metrics to the current type.
+ * - Conclude with addValues() immediately after addMetric() to specify a set of values for the metric. Each metric can
+ * have one set of values.
+ *
+ * The added criteria are then parsed and displayed in the Schedule Criteria Form, enabling users to configure
+ * scheduling conditions based on the specified types, metrics, and values.
+ */
+interface ScheduleCriteriaRequestInterface
+{
+ /**
+ * Add a new type to the criteria.
+ *
+ * @param string $id Unique identifier for the type.
+ * @param string $type Name of the type.
+ * @return self
+ */
+ public function addType(string $id, string $type): self;
+
+ /**
+ * Add a new metric to the current type.
+ *
+ * @param string $id Unique identifier for the metric.
+ * @param string $name Name of the metric.
+ * @return self
+ * @throws ConfigurationException If the current type is not set.
+ */
+ public function addMetric(string $id, string $name): self;
+
+ /**
+ * Add values to the current metric. The input type must be either "dropdown", "string", "date", or "number".
+ *
+ * The values array should be formatted such that the index is the id and the value is the title/name of the value.
+ * For "dropdown" input type, provide an array of values. For other input types ("string", "date", "number"),
+ * the values array should be empty "[]".
+ *
+ * Example values for "dropdown":
+ * [
+ * 'id1' => 'Value 1',
+ * 'id2' => 'Value 2'
+ * ]
+ *
+ * @param string $inputType Type of input for the values ("dropdown", "string", "date", "number").
+ * @param array $values Array of values to be associated with the metric, where the index is the id and the value is
+ * the title.
+ * @return self
+ * @throws ConfigurationException If the current type or metric is not set.
+ */
+ public function addValues(string $inputType, array $values): self;
+}
diff --git a/lib/Event/TemplateProviderEvent.php b/lib/Event/TemplateProviderEvent.php
index a43a7578ae..4905c707ac 100644
--- a/lib/Event/TemplateProviderEvent.php
+++ b/lib/Event/TemplateProviderEvent.php
@@ -48,17 +48,21 @@ class TemplateProviderEvent extends Event
/** @var string|null */
private $search;
+ /** @var string|null */
+ private $orientation;
+
/**
* @param \Xibo\Entity\SearchResults $results
* @param int $start
* @param int $length
*/
- public function __construct(SearchResults $results, int $start, int $length, ?string $search)
+ public function __construct(SearchResults $results, int $start, int $length, ?string $search, ?string $orientation)
{
$this->results = $results;
$this->start = $start;
$this->length = $length;
$this->search = $search;
+ $this->orientation = $orientation;
}
/**
@@ -104,4 +108,12 @@ public function getSearch(): ?string
{
return $this->search;
}
+
+ /**
+ * @return string|null
+ */
+ public function getOrientation(): ?string
+ {
+ return $this->orientation;
+ }
}
diff --git a/lib/Event/XmdsWeatherRequestEvent.php b/lib/Event/XmdsWeatherRequestEvent.php
new file mode 100644
index 0000000000..4c172c7793
--- /dev/null
+++ b/lib/Event/XmdsWeatherRequestEvent.php
@@ -0,0 +1,92 @@
+.
+ */
+
+namespace Xibo\Event;
+
+/**
+ * Event raised when XMDS receives a request for weather data.
+ */
+class XmdsWeatherRequestEvent extends Event
+{
+ public static $NAME = 'xmds.weather.request';
+
+ /**
+ * @var float
+ */
+ private $latitude;
+
+ /**
+ * @var float
+ */
+ private $longitude;
+
+ /**
+ * @var float
+ */
+ private $weatherData;
+
+ /**
+ * @param float $latitude
+ * @param float $longitude
+ */
+ public function __construct(float $latitude, float $longitude)
+ {
+ $this->latitude = $latitude;
+ $this->longitude = $longitude;
+ }
+
+ /**
+ * @return float
+ */
+ public function getLatitude(): float
+ {
+ return $this->latitude;
+ }
+
+ /**
+ * @return float
+ */
+ public function getLongitude(): float
+ {
+ return $this->longitude;
+ }
+
+ /**
+ * Sets the weather data.
+ *
+ * @param string $weatherData
+ */
+ public function setWeatherData(string $weatherData): void
+ {
+ $this->weatherData = $weatherData;
+ }
+
+ /**
+ * Gets the weather data.
+ *
+ * @return string
+ */
+ public function getWeatherData(): string
+ {
+ return $this->weatherData;
+ }
+}
diff --git a/lib/Factory/ApplicationRequestsFactory.php b/lib/Factory/ApplicationRequestsFactory.php
new file mode 100644
index 0000000000..2054168d7f
--- /dev/null
+++ b/lib/Factory/ApplicationRequestsFactory.php
@@ -0,0 +1,40 @@
+.
+ */
+
+namespace Xibo\Factory;
+
+use Xibo\Entity\ApplicationRequest;
+
+/**
+ * Class ApplicationRequestsFactory
+ * @package Xibo\Factory
+ */
+class ApplicationRequestsFactory extends BaseFactory
+{
+ /**
+ * @return ApplicationRequest
+ */
+ public function createEmpty(): ApplicationRequest
+ {
+ return new ApplicationRequest($this->getStore(), $this->getLog(), $this->getDispatcher());
+ }
+}
diff --git a/lib/Factory/AuditLogFactory.php b/lib/Factory/AuditLogFactory.php
index 20d8d25819..636b5d03f8 100644
--- a/lib/Factory/AuditLogFactory.php
+++ b/lib/Factory/AuditLogFactory.php
@@ -1,6 +1,6 @@
getInt('userId') !== null) {
+ $body .= ' AND `auditlog`.`userId` = :userId ';
+ $params['userId'] = $sanitizedFilter->getInt('userId');
+ }
+
+ if ($sanitizedFilter->getInt('sessionHistoryId') !== null) {
+ $body .= ' AND `auditlog`.`sessionHistoryId` = :sessionHistoryId ';
+ $params['sessionHistoryId'] = $sanitizedFilter->getInt('sessionHistoryId');
+ }
+
$order = '';
if (is_array($sortOrder) && count($sortOrder) > 0) {
$order .= 'ORDER BY ' . implode(', ', $sortOrder) . ' ';
diff --git a/lib/Factory/CommandFactory.php b/lib/Factory/CommandFactory.php
index 19c6e3b558..5991e94c61 100644
--- a/lib/Factory/CommandFactory.php
+++ b/lib/Factory/CommandFactory.php
@@ -117,16 +117,19 @@ public function query($sortOrder = null, $filterBy = [])
`command`.userId,
`command`.availableOn,
`command`.commandString,
- `command`.validationString ';
+ `command`.validationString,
+ `command`.createAlertOn
+ ';
if ($sanitizedFilter->getInt('displayProfileId') !== null) {
$select .= ',
:displayProfileId AS displayProfileId,
`lkcommanddisplayprofile`.commandString AS commandStringDisplayProfile,
- `lkcommanddisplayprofile`.validationString AS validationStringDisplayProfile ';
+ `lkcommanddisplayprofile`.validationString AS validationStringDisplayProfile,
+ `lkcommanddisplayprofile`.createAlertOn AS createAlertOnDisplayProfile ';
}
- $select .= " , (SELECT GROUP_CONCAT(DISTINCT `group`.group)
+ $select .= ' , (SELECT GROUP_CONCAT(DISTINCT `group`.group)
FROM `permission`
INNER JOIN `permissionentity`
ON `permissionentity`.entityId = permission.entityId
@@ -135,7 +138,7 @@ public function query($sortOrder = null, $filterBy = [])
WHERE entity = :permissionEntityForGroup
AND objectId = command.commandId
AND view = 1
- ) AS groupsWithPermissions ";
+ ) AS groupsWithPermissions ';
$params['permissionEntityForGroup'] = 'Xibo\\Entity\\Command';
$body = ' FROM `command` ';
@@ -195,7 +198,14 @@ public function query($sortOrder = null, $filterBy = [])
$params['userId'] = $sanitizedFilter->getInt('userId');
}
- $this->viewPermissionSql('Xibo\Entity\Command', $body, $params, 'command.commandId', 'command.userId', $filterBy);
+ $this->viewPermissionSql(
+ 'Xibo\Entity\Command',
+ $body,
+ $params,
+ 'command.commandId',
+ 'command.userId',
+ $filterBy
+ );
// Sorting?
$order = '';
diff --git a/lib/Factory/DataSetFactory.php b/lib/Factory/DataSetFactory.php
index 7140e257fc..5b702aaa6e 100644
--- a/lib/Factory/DataSetFactory.php
+++ b/lib/Factory/DataSetFactory.php
@@ -202,6 +202,8 @@ public function query($sortOrder = null, $filterBy = [])
dataset.`code`,
dataset.`isLookup`,
dataset.`isRemote`,
+ dataset.`isRealTime`,
+ dataset.`dataConnectorSource`,
dataset.`method`,
dataset.`uri`,
dataset.`postData`,
@@ -262,6 +264,11 @@ public function query($sortOrder = null, $filterBy = [])
$params['isRemote'] = $parsedFilter->getInt('isRemote');
}
+ if ($parsedFilter->getInt('isRealTime') !== null) {
+ $body .= ' AND dataset.isRealTime = :isRealTime ';
+ $params['isRealTime'] = $parsedFilter->getInt('isRealTime');
+ }
+
if ($parsedFilter->getString('dataSet') != null) {
$terms = explode(',', $parsedFilter->getString('dataSet'));
$logicalOperator = $parsedFilter->getString('logicalOperatorName', ['default' => 'OR']);
@@ -309,7 +316,18 @@ public function query($sortOrder = null, $filterBy = [])
foreach ($this->getStore()->select($sql, $params) as $row) {
$entries[] = $this->createEmpty()->hydrate($row, [
- 'intProperties' => ['isLookup', 'isRemote', 'clearRate', 'refreshRate', 'lastDataEdit', 'runsAfter', 'lastSync', 'lastClear', 'ignoreFirstRow']
+ 'intProperties' => [
+ 'isLookup',
+ 'isRemote',
+ 'isRealTime',
+ 'clearRate',
+ 'refreshRate',
+ 'lastDataEdit',
+ 'runsAfter',
+ 'lastSync',
+ 'lastClear',
+ 'ignoreFirstRow',
+ ],
]);
}
@@ -523,6 +541,14 @@ function ($v) use ($dataSet) {
array_shift($array);
}
+ // Filter out rows that are entirely empty
+ $array = array_filter($array, function($row) {
+ // Check if the row is empty (all elements are empty or null)
+ return array_filter($row, function($value) {
+ return !empty($value);
+ });
+ });
+
$result->entries = $array;
$result->number = count($array);
}
diff --git a/lib/Factory/DisplayFactory.php b/lib/Factory/DisplayFactory.php
index 977720f973..876302dbb5 100644
--- a/lib/Factory/DisplayFactory.php
+++ b/lib/Factory/DisplayFactory.php
@@ -1,6 +1,6 @@
getInt('displayGroupId');
}
+ if ($parsedBody->getIntArray('displayGroupIds') !== null) {
+ $body .= ' AND displaygroup.displayGroupId IN (0';
+ $i = 0;
+ foreach ($parsedBody->getIntArray('displayGroupIds') as $displayGroupId) {
+ $i++;
+ $body .= ',:displayGroupId' . $i;
+ $params['displayGroupId' . $i] = $displayGroupId;
+ }
+ $body .= ')';
+ }
+
if ($parsedBody->getInt('parentId') !== null) {
$body .= ' AND `displaygroup`.displayGroupId IN (SELECT `childId` FROM `lkdgdg` WHERE `parentId` = :parentId AND `depth` = 1) ';
$params['parentId'] = $parsedBody->getInt('parentId');
diff --git a/lib/Factory/DisplayProfileFactory.php b/lib/Factory/DisplayProfileFactory.php
index 1617ee1a27..46bcf2b7bf 100644
--- a/lib/Factory/DisplayProfileFactory.php
+++ b/lib/Factory/DisplayProfileFactory.php
@@ -187,6 +187,7 @@ public function loadForType($type)
['name' => 'clientInfomationCtrlKey', 'default' => 0, 'type' => 'checkbox'],
['name' => 'clientInformationKeyCode', 'default' => 'I', 'type' => 'string'],
['name' => 'logLevel', 'default' => 'error', 'type' => 'string'],
+ ['name' => 'elevateLogsUntil', 'default' => 0, 'type' => 'int'],
['name' => 'logToDiskLocation', 'default' => '', 'type' => 'string'],
['name' => 'showInTaskbar', 'default' => 1, 'type' => 'checkbox'],
['name' => 'cursorStartPosition', 'default' => 'Unchanged', 'type' => 'string'],
@@ -236,6 +237,7 @@ public function loadForType($type)
['name' => 'storeHtmlOnInternal', 'default' => 0, 'type' => 'checkbox'],
['name' => 'useSurfaceVideoView', 'default' => 1, 'type' => 'checkbox'],
['name' => 'logLevel', 'default' => 'error'],
+ ['name' => 'elevateLogsUntil', 'default' => 0, 'type' => 'int'],
['name' => 'versionMediaId', 'default' => null],
['name' => 'startOnBoot', 'default' => 1, 'type' => 'checkbox'],
['name' => 'actionBarMode', 'default' => 1],
@@ -290,6 +292,7 @@ public function loadForType($type)
['name' => 'offsetX', 'default' => 0],
['name' => 'offsetY', 'default' => 0],
['name' => 'logLevel', 'default' => 'error'],
+ ['name' => 'elevateLogsUntil', 'default' => 0, 'type' => 'int'],
['name' => 'enableShellCommands', 'default' => 0, 'type' => 'checkbox'],
['name' => 'expireModifiedLayouts', 'default' => 0, 'type' => 'checkbox'],
['name' => 'maxConcurrentDownloads', 'default' => 2],
@@ -325,6 +328,7 @@ public function loadForType($type)
],
['name' => 'orientation', 'default' => 0],
['name' => 'logLevel', 'default' => 'error'],
+ ['name' => 'elevateLogsUntil', 'default' => 0, 'type' => 'int'],
['name' => 'versionMediaId', 'default' => null],
['name' => 'actionBarMode', 'default' => 1],
['name' => 'actionBarDisplayDuration', 'default' => 30],
@@ -360,6 +364,7 @@ public function loadForType($type)
],
['name' => 'orientation', 'default' => 0],
['name' => 'logLevel', 'default' => 'error'],
+ ['name' => 'elevateLogsUntil', 'default' => 0, 'type' => 'int'],
['name' => 'versionMediaId', 'default' => null],
['name' => 'actionBarMode', 'default' => 1],
['name' => 'actionBarDisplayDuration', 'default' => 30],
diff --git a/lib/Factory/FolderFactory.php b/lib/Factory/FolderFactory.php
index 3173a0af45..6b96b7534c 100644
--- a/lib/Factory/FolderFactory.php
+++ b/lib/Factory/FolderFactory.php
@@ -152,6 +152,12 @@ public function query($sortOrder = null, $filterBy = [])
$body .= 'OR folder.isRoot = 1';
}
+ // get the exact match for the search functionality
+ if ($sanitizedFilter->getInt('exactFolderName') === 1) {
+ $body.= " AND folder.folderName = :exactFolderName ";
+ $params['exactFolderName'] = $sanitizedFilter->getString('folderName');
+ }
+
// View Permissions (home folder included in here)
$this->viewPermissionSql(
'Xibo\Entity\Folder',
diff --git a/lib/Factory/LayoutFactory.php b/lib/Factory/LayoutFactory.php
index 548de0ec46..9e96f71b54 100644
--- a/lib/Factory/LayoutFactory.php
+++ b/lib/Factory/LayoutFactory.php
@@ -36,7 +36,6 @@
use Xibo\Helper\DateFormatHelper;
use Xibo\Service\ConfigServiceInterface;
use Xibo\Service\MediaServiceInterface;
-use Xibo\Support\Exception\ConfigurationException;
use Xibo\Support\Exception\DuplicateEntityException;
use Xibo\Support\Exception\GeneralException;
use Xibo\Support\Exception\InvalidArgumentException;
@@ -163,7 +162,8 @@ public function __construct(
$widgetAudioFactory,
$actionFactory,
$folderFactory,
- FontFactory $fontFactory
+ FontFactory $fontFactory,
+ private readonly WidgetDataFactory $widgetDataFactory
) {
$this->setAclDependencies($user, $userFactory);
$this->config = $config;
@@ -1251,7 +1251,7 @@ public function loadByJson($layoutJson, $playlistJson, $nestedPlaylistJson, Fold
* @param string $zipFile
* @param string $layoutName
* @param int $userId
- * @param int $template
+ * @param int $template Are we importing a layout to be used as a template?
* @param int $replaceExisting
* @param int $importTags
* @param bool $useExistingDataSets
@@ -1260,12 +1260,10 @@ public function loadByJson($layoutJson, $playlistJson, $nestedPlaylistJson, Fold
* @param string $tags
* @param MediaServiceInterface $mediaService
* @param int $folderId
+ * @param bool $isSystemTags Should we add the system tags (currently the "imported" tag)
* @return Layout
- * @throws DuplicateEntityException
- * @throws GeneralException
- * @throws InvalidArgumentException
- * @throws NotFoundException
- * @throws ConfigurationException
+ * @throws \FontLib\Exception\FontNotFoundException
+ * @throws \Xibo\Support\Exception\GeneralException
*/
public function createFromZip(
$zipFile,
@@ -1279,7 +1277,8 @@ public function createFromZip(
$dataSetFactory,
$tags,
MediaServiceInterface $mediaService,
- int $folderId
+ int $folderId,
+ bool $isSystemTags = true,
) {
$this->getLog()->debug(sprintf(
'Create Layout from ZIP File: %s, imported name will be %s.',
@@ -1432,8 +1431,11 @@ public function createFromZip(
$layout->assignTag($this->tagFactory->tagFromString('template'));
}
- // Tag as imported
- $layout->assignTag($this->tagFactory->tagFromString('imported'));
+ // Add system tags?
+ if ($isSystemTags) {
+ // Tag as imported
+ $layout->assignTag($this->tagFactory->tagFromString('imported'));
+ }
// Tag from the upload form
$tagsFromForm = (($tags != '') ? $this->tagFactory->tagsFromString($tags) : []);
@@ -1948,6 +1950,12 @@ public function createFromZip(
}
}
+ // Load widget data into an array for processing outside (once the layout has been saved)
+ $fallback = $zip->getFromName('fallback.json');
+ if ($fallback !== false) {
+ $layout->setUnmatchedProperty('fallback', json_decode($fallback, true));
+ }
+
// Save the thumbnail to a temporary location.
$image_path = $zip->getFromName('library/thumbs/campaign_thumb.png');
if ($image_path !== false) {
@@ -2811,6 +2819,9 @@ public function checkoutLayout($layout, $returnDraft = true)
$new->objectId = $widget->widgetId;
$new->save();
}
+
+ // Copy widget data
+ $this->widgetDataFactory->copyByWidgetId($originalWidget->widgetId, $widget->widgetId);
}
}
diff --git a/lib/Factory/LogFactory.php b/lib/Factory/LogFactory.php
index 840a57701f..da195a9e54 100644
--- a/lib/Factory/LogFactory.php
+++ b/lib/Factory/LogFactory.php
@@ -1,6 +1,6 @@
getSanitizer($filterBy);
- if ($sortOrder == null)
+ if ($sortOrder == null) {
$sortOrder = ['logId DESC'];
+ }
$entries = [];
$params = [];
- $order = ''; $limit = '';
+ $order = '';
+ $limit = '';
$select = '
SELECT `logId`,
@@ -70,7 +72,9 @@ public function query($sortOrder = null, $filterBy = [])
`message`,
`display`.`displayId`,
`display`.`display`,
- `type`
+ `type`,
+ `userId`,
+ `sessionHistoryId`
';
$body = '
@@ -88,12 +92,16 @@ public function query($sortOrder = null, $filterBy = [])
if ($parsedFilter->getInt('fromDt') !== null) {
$body .= ' AND `logdate` > :fromDt ';
- $params['fromDt'] = Carbon::createFromTimestamp( $parsedFilter->getInt('fromDt'))->format(DateFormatHelper::getSystemFormat());
+ $params['fromDt'] = Carbon::createFromTimestamp(
+ $parsedFilter->getInt('fromDt')
+ )->format(DateFormatHelper::getSystemFormat());
}
if ($parsedFilter->getInt('toDt') !== null) {
$body .= ' AND `logdate` <= :toDt ';
- $params['toDt'] = Carbon::createFromTimestamp( $parsedFilter->getInt('toDt'))->format(DateFormatHelper::getSystemFormat());
+ $params['toDt'] = Carbon::createFromTimestamp(
+ $parsedFilter->getInt('toDt')
+ )->format(DateFormatHelper::getSystemFormat());
}
if ($parsedFilter->getString('runNo') != null) {
@@ -138,7 +146,7 @@ public function query($sortOrder = null, $filterBy = [])
if ($parsedFilter->getCheckbox('excludeLog') == 1) {
$body .= ' AND (`log`.`page` NOT LIKE \'/log%\' OR `log`.`page` = \'/login\') ';
- $body .= ' AND `log`.`page` NOT IN(\'/user/pref\', \'/clock\', \'/library/fontcss\') ';
+ $body .= ' AND `log`.`page` NOT IN(\'/user/pref\', \'/clock\', \'/fonts/fontcss\') ';
}
// Filter by Display Name?
@@ -159,6 +167,11 @@ public function query($sortOrder = null, $filterBy = [])
$params['displayGroupId'] = $parsedFilter->getInt('displayGroupId');
}
+ if ($parsedFilter->getInt('sessionHistoryId') !== null) {
+ $body .= ' AND `log`.`sessionHistoryId` = :sessionHistoryId ';
+ $params['sessionHistoryId'] = $parsedFilter->getInt('sessionHistoryId');
+ }
+
// Sorting?
if (is_array($sortOrder)) {
$order = ' ORDER BY ' . implode(',', $sortOrder);
diff --git a/lib/Factory/MediaFactory.php b/lib/Factory/MediaFactory.php
index 57ad97d87a..98fbf769e2 100644
--- a/lib/Factory/MediaFactory.php
+++ b/lib/Factory/MediaFactory.php
@@ -183,6 +183,7 @@ public function queueDownload($name, $uri, $expiry, $requestOptions = [])
$media->enableStat = $requestOptions['enableStat'];
$media->folderId = $requestOptions['folderId'];
$media->permissionsFolderId = $requestOptions['permissionsFolderId'];
+ $media->apiRef = $requestOptions['apiRef'];
}
$this->getLog()->debug('Queue download of: ' . $uri . ', current mediaId for this download is '
diff --git a/lib/Factory/ModuleFactory.php b/lib/Factory/ModuleFactory.php
index 5ea1784838..46637e1f71 100644
--- a/lib/Factory/ModuleFactory.php
+++ b/lib/Factory/ModuleFactory.php
@@ -49,6 +49,16 @@ class ModuleFactory extends BaseFactory
{
use ModuleXmlTrait;
+ public static $systemDataTypes = [
+ 'Article',
+ 'Event',
+ 'Forecast',
+ 'Product',
+ 'ProductCategory',
+ 'SocialMedia',
+ 'dataset'
+ ];
+
/** @var Module[] all modules */
private $modules = null;
@@ -194,6 +204,11 @@ public function determineCacheKey(
}
}
}
+
+ // Include a separate cache per fallback data?
+ if ($module->fallbackData == 1) {
+ $cacheKey .= '_fb ' . $widget->getOptionValue('showFallback', 'never');
+ }
}
$this->getLog()->debug('determineCacheKey: cache key is : ' . $cacheKey);
@@ -426,7 +441,8 @@ public function getValidExtensions($filterBy = []): array
public function getDataTypeById(string $dataTypeId): DataType
{
// Rely on a class if we have one.
- $className = '\\Xibo\\Widget\\DataType\\' . ucfirst($dataTypeId);
+ $className = ucfirst(str_replace('-', '', ucwords($dataTypeId, '-')));
+ $className = '\\Xibo\\Widget\\DataType\\' . $className;
if (class_exists($className)) {
$class = new $className();
if ($class instanceof DataTypeInterface) {
@@ -444,6 +460,51 @@ public function getDataTypeById(string $dataTypeId): DataType
throw new NotFoundException(__('DataType not found'));
}
+ /**
+ * @return DataType[]
+ */
+ public function getAllDataTypes()
+ {
+ $dataTypes = [];
+
+ // get system data types
+ foreach (self::$systemDataTypes as $dataTypeId) {
+ $className = '\\Xibo\\Widget\\DataType\\' . ucfirst($dataTypeId);
+ if (class_exists($className)) {
+ $class = new $className();
+ if ($class instanceof DataTypeInterface) {
+ $dataTypes[] = $class->getDefinition();
+ }
+ }
+
+ // special handling for dataset
+ if ($dataTypeId === 'dataset') {
+ $dataType = new DataType();
+ $dataType->id = $dataTypeId;
+ $dataType->name = 'DataSet';
+ $dataTypes[] = $dataType;
+ }
+ }
+
+ // get data types from xml
+ $files = array_merge(
+ glob(PROJECT_ROOT . '/modules/datatypes/*.xml'),
+ glob(PROJECT_ROOT . '/custom/modules/datatypes/*.xml')
+ );
+
+ foreach ($files as $file) {
+ $xml = new \DOMDocument();
+ $xml->load($file);
+ $dataType = new DataType();
+ $dataType->id = $this->getFirstValueOrDefaultFromXmlNode($xml, 'id');
+ $dataType->name = $this->getFirstValueOrDefaultFromXmlNode($xml, 'name');
+ $dataTypes[] = $dataType;
+ }
+
+ sort($dataTypes);
+ return $dataTypes;
+ }
+
/**
* @param string $assetId
* @return \Xibo\Widget\Definition\Asset
@@ -684,6 +745,7 @@ private function createFromXml(string $file, array $modulesWithSettings): Module
$module->startHeight = intval($this->getFirstValueOrDefaultFromXmlNode($xml, 'startHeight'));
$module->dataType = $this->getFirstValueOrDefaultFromXmlNode($xml, 'dataType');
$module->dataCacheKey = $this->getFirstValueOrDefaultFromXmlNode($xml, 'dataCacheKey');
+ $module->fallbackData = intval($this->getFirstValueOrDefaultFromXmlNode($xml, 'fallbackData', 0));
$module->schemaVersion = intval($this->getFirstValueOrDefaultFromXmlNode($xml, 'schemaVersion'));
$module->compatibilityClass = $this->getFirstValueOrDefaultFromXmlNode($xml, 'compatibilityClass');
$module->showIn = $this->getFirstValueOrDefaultFromXmlNode($xml, 'showIn') ?? 'both';
@@ -692,6 +754,7 @@ private function createFromXml(string $file, array $modulesWithSettings): Module
$module->renderAs = $this->getFirstValueOrDefaultFromXmlNode($xml, 'renderAs');
$module->defaultDuration = intval($this->getFirstValueOrDefaultFromXmlNode($xml, 'defaultDuration'));
$module->hasThumbnail = intval($this->getFirstValueOrDefaultFromXmlNode($xml, 'hasThumbnail', 0));
+ $module->allowPreview = intval($this->getFirstValueOrDefaultFromXmlNode($xml, 'allowPreview', 1));
// Validator classes
foreach ($xml->getElementsByTagName('validatorClass') as $node) {
@@ -868,7 +931,8 @@ private function createDataTypeFromXml(string $file): DataType
$dataType->addField(
$field->getAttribute('id'),
trim($field->textContent),
- $field->getAttribute('type')
+ $field->getAttribute('type'),
+ $field->getAttribute('isRequired') === 'true',
);
}
}
diff --git a/lib/Factory/ModuleTemplateFactory.php b/lib/Factory/ModuleTemplateFactory.php
index 36284cddb9..6f18beda0e 100644
--- a/lib/Factory/ModuleTemplateFactory.php
+++ b/lib/Factory/ModuleTemplateFactory.php
@@ -71,6 +71,21 @@ public function getByTypeAndId(string $type, string $id): ModuleTemplate
throw new NotFoundException(sprintf(__('%s not found for %s'), $type, $id));
}
+ /**
+ * @param int $id
+ * @return \Xibo\Entity\ModuleTemplate
+ * @throws \Xibo\Support\Exception\NotFoundException
+ */
+ public function getUserTemplateById(int $id): ModuleTemplate
+ {
+ $templates = $this->loadUserTemplates(null, ['id' => $id]);
+ if (count($templates) !== 1) {
+ throw new NotFoundException(sprintf(__('Template not found for %s'), $id));
+ }
+
+ return $templates[0];
+ }
+
/**
* @param string $dataType
* @param string $id
@@ -102,6 +117,22 @@ public function getByDataType(string $dataType): array
return $templates;
}
+ /**
+ * @param string $type
+ * @param string $dataType
+ * @return ModuleTemplate[]
+ */
+ public function getByTypeAndDataType(string $type, string $dataType, bool $includeUserTemplates = true): array
+ {
+ $templates = [];
+ foreach ($this->load($includeUserTemplates) as $template) {
+ if ($template->dataType === $dataType && $template->type === $type) {
+ $templates[] = $template;
+ }
+ }
+ return $templates;
+ }
+
/**
* @param string $assetId
* @return \Xibo\Widget\Definition\Asset
@@ -140,11 +171,25 @@ public function getAssetByAlias(string $alias): Asset
/**
* Get an array of all modules
- * @return \Xibo\Entity\ModuleTemplate[]
+ * @param string|null $ownership
+ * @param bool $includeUserTemplates
+ * @return ModuleTemplate[]
*/
- public function getAll(): array
+ public function getAll(?string $ownership = null, bool $includeUserTemplates = true): array
{
- return $this->load();
+ $templates = $this->load($includeUserTemplates);
+
+ if ($ownership === null) {
+ return $templates;
+ } else {
+ $ownedBy = [];
+ foreach ($templates as $template) {
+ if ($ownership === $template->ownership) {
+ $ownedBy[] = $template;
+ }
+ }
+ return $ownedBy;
+ }
}
/**
@@ -164,39 +209,178 @@ public function getAllAssets(): array
/**
* Load templates
- * @return \Xibo\Entity\ModuleTemplate[]
+ * @param bool $includeUserTemplates
+ * @return ModuleTemplate[]
*/
- private function load(): array
+ private function load(bool $includeUserTemplates = true): array
{
if ($this->templates === null) {
- $this->getLog()->debug('Loading templates');
-
- $files = array_merge(
- glob(PROJECT_ROOT . '/modules/templates/*.xml'),
- glob(PROJECT_ROOT . '/custom/modules/templates/*.xml')
+ $this->getLog()->debug('load: Loading templates');
+
+ $this->templates = array_merge(
+ $this->loadFolder(
+ PROJECT_ROOT . '/modules/templates/*.xml',
+ 'system',
+ ),
+ $this->loadFolder(
+ PROJECT_ROOT . '/custom/modules/templates/*.xml',
+ 'custom'
+ ),
);
- foreach ($files as $file) {
- // Create our module entity from this file
- try {
- $this->createMultiFromXml($file);
- } catch (\Exception $exception) {
- $this->getLog()->error('Unable to create template from '
- . basename($file) . ', skipping. e = ' . $exception->getMessage());
- }
+ if ($includeUserTemplates) {
+ $this->templates = array_merge(
+ $this->templates,
+ $this->loadUserTemplates()
+ );
}
}
return $this->templates;
}
+ /**
+ * Load templates
+ * @return \Xibo\Entity\ModuleTemplate[]
+ */
+ private function loadFolder(string $folder, string $ownership): array
+ {
+ $this->getLog()->debug('loadFolder: Loading templates from ' . $folder);
+ $templates = [];
+
+ foreach (glob($folder) as $file) {
+ // Create our module entity from this file
+ try {
+ $templates = array_merge($templates, $this->createMultiFromXml($file, $ownership));
+ } catch (\Exception $exception) {
+ $this->getLog()->error('Unable to create template from '
+ . basename($file) . ', skipping. e = ' . $exception->getMessage());
+ }
+ }
+
+ return $templates;
+ }
+
+ /**
+ * Load user templates from the database.
+ * @return ModuleTemplate[]
+ */
+ public function loadUserTemplates($sortOrder = [], $filterBy = []): array
+ {
+ $this->getLog()->debug('load: Loading user templates');
+
+ if (empty($sortOrder)) {
+ $sortOrder = ['id'];
+ }
+
+ $templates = [];
+ $params = [];
+
+ $filter = $this->getSanitizer($filterBy);
+
+ $select = 'SELECT *,
+ (SELECT GROUP_CONCAT(DISTINCT `group`.group)
+ FROM `permission`
+ INNER JOIN `permissionentity`
+ ON `permissionentity`.entityId = permission.entityId
+ INNER JOIN `group`
+ ON `group`.groupId = `permission`.groupId
+ WHERE entity = :permissionEntityGroups
+ AND objectId = `module_templates`.id
+ AND view = 1
+ ) AS groupsWithPermissions';
+
+ $body = ' FROM `module_templates`
+ WHERE 1 = 1 ';
+
+ if ($filter->getInt('id') !== null) {
+ $body .= ' AND `id` = :id ';
+ $params['id'] = $filter->getInt('id');
+ }
+
+ if (!empty($filter->getString('templateId'))) {
+ $body .= ' AND `templateId` LIKE :templateId ';
+ $params['templateId'] = '%' . $filter->getString('templateId') . '%';
+ }
+
+ if (!empty($filter->getString('dataType'))) {
+ $body .= ' AND `dataType` = :dataType ';
+ $params['dataType'] = $filter->getString('dataType') ;
+ }
+
+ $params['permissionEntityGroups'] = 'Xibo\\Entity\\ModuleTemplate';
+
+ $this->viewPermissionSql(
+ 'Xibo\Entity\ModuleTemplate',
+ $body,
+ $params,
+ 'module_templates.id',
+ 'module_templates.ownerId',
+ $filterBy,
+ );
+
+ $order = '';
+ if (is_array($sortOrder) && !empty($sortOrder)) {
+ $order .= ' ORDER BY ' . implode(',', $sortOrder);
+ }
+
+ // Paging
+ $limit = '';
+ if ($filterBy !== null && $filter->getInt('start') !== null && $filter->getInt('length') !== null) {
+ $limit .= ' LIMIT ' .
+ $filter->getInt('start', ['default' => 0]) . ', ' .
+ $filter->getInt('length', ['default' => 10]);
+ }
+
+ $sql = $select . $body . $order. $limit;
+
+ foreach ($this->getStore()->select($sql, $params) as $row) {
+ $template = $this->createUserTemplate($row['xml']);
+ $template->id = intval($row['id']);
+ $template->templateId = $row['templateId'];
+ $template->dataType = $row['dataType'];
+ $template->isEnabled = $row['enabled'] == 1;
+ $template->ownerId = intval($row['ownerId']);
+ $template->groupsWithPermissions = $row['groupsWithPermissions'];
+ $templates[] = $template;
+ }
+
+ // Paging
+ if (!empty($limit) && count($templates) > 0) {
+ unset($params['permissionEntityGroups']);
+ $results = $this->getStore()->select('SELECT COUNT(*) AS total ' . $body, $params);
+ $this->_countLast = intval($results[0]['total']);
+ }
+
+ return $templates;
+ }
+
+ /**
+ * Create a user template from an XML string
+ * @param string $xmlString
+ * @return ModuleTemplate
+ */
+ public function createUserTemplate(string $xmlString): ModuleTemplate
+ {
+ $xml = new \DOMDocument();
+ $xml->loadXML($xmlString);
+
+ $template = $this->createFromXml($xml->documentElement, 'user', 'database');
+ $template->setXml($xmlString);
+ $template->setDocument($xml);
+ return $template;
+ }
+
/**
* Create multiple templates from XML
* @param string $file
- * @return void
+ * @param string $ownership
+ * @return ModuleTemplate[]
*/
- private function createMultiFromXml(string $file): void
+ private function createMultiFromXml(string $file, string $ownership): array
{
+ $templates = [];
+
$xml = new \DOMDocument();
$xml->load($file);
@@ -206,21 +390,26 @@ private function createMultiFromXml(string $file): void
. ' templates in ' . $file);
foreach ($node->childNodes as $childNode) {
if ($childNode instanceof \DOMElement) {
- $this->templates[] = $this->createFromXml($childNode);
+ $templates[] = $this->createFromXml($childNode, $ownership, $file);
}
}
}
}
+
+ return $templates;
}
/**
* @param \DOMElement $xml
+ * @param string $ownership
+ * @param string $file
* @return \Xibo\Entity\ModuleTemplate
*/
- private function createFromXml(\DOMElement $xml): ModuleTemplate
+ private function createFromXml(\DOMElement $xml, string $ownership, string $file): ModuleTemplate
{
// TODO: cache this into Stash
- $template = new ModuleTemplate($this->getStore(), $this->getLog(), $this->getDispatcher(), $this);
+ $template = new ModuleTemplate($this->getStore(), $this->getLog(), $this->getDispatcher(), $this, $file);
+ $template->ownership = $ownership;
$template->templateId = $this->getFirstValueOrDefaultFromXmlNode($xml, 'id');
$template->type = $this->getFirstValueOrDefaultFromXmlNode($xml, 'type');
$template->dataType = $this->getFirstValueOrDefaultFromXmlNode($xml, 'dataType');
@@ -299,4 +488,156 @@ private function createFromXml(\DOMElement $xml): ModuleTemplate
return $template;
}
+
+ /**
+ * Parse properties json into xml node.
+ *
+ * @param string $properties
+ * @return \DOMDocument
+ * @throws \DOMException
+ */
+ public function parseJsonPropertiesToXml(string $properties): \DOMDocument
+ {
+ $newPropertiesXml = new \DOMDocument();
+ $newPropertiesNode = $newPropertiesXml->createElement('properties');
+ $attributes = [
+ 'id',
+ 'type',
+ 'variant',
+ 'format',
+ 'mode',
+ 'target',
+ 'propertyGroupId',
+ 'allowLibraryRefs',
+ 'allowAssetRefs',
+ 'parseTranslations',
+ 'includeInXlf'
+ ];
+
+ $commonNodes = [
+ 'title',
+ 'helpText',
+ 'default',
+ 'dependsOn',
+ 'customPopOver'
+ ];
+
+ $newProperties = json_decode($properties, true);
+ foreach ($newProperties as $property) {
+ // create property node
+ $propertyNode = $newPropertiesXml->createElement('property');
+
+ // go through possible attributes on the property node.
+ foreach ($attributes as $attribute) {
+ if (!empty($property[$attribute])) {
+ $propertyNode->setAttribute($attribute, $property[$attribute]);
+ }
+ }
+
+ // go through common nodes on property add them if not empty
+ foreach ($commonNodes as $commonNode) {
+ if (!empty($property[$commonNode])) {
+ $propertyNode->appendChild($newPropertiesXml->createElement($commonNode, $property[$commonNode]));
+ }
+ }
+
+ // do we have options?
+ if (!empty($property['options'])) {
+ $options = $property['options'];
+ if (!is_array($options)) {
+ $options = json_decode($options, true);
+ }
+
+ $optionsNode = $newPropertiesXml->createElement('options');
+ foreach ($options as $option) {
+ $optionNode = $newPropertiesXml->createElement('option', $option['title']);
+ $optionNode->setAttribute('name', $option['name']);
+ if (!empty($option['set'])) {
+ $optionNode->setAttribute('set', $option['set']);
+ }
+ if (!empty($option['image'])) {
+ $optionNode->setAttribute('image', $option['image']);
+ }
+ $optionsNode->appendChild($optionNode);
+ }
+ $propertyNode->appendChild($optionsNode);
+ }
+
+ // do we have visibility?
+ if (!empty($property['visibility'])) {
+ $visibility = $property['visibility'];
+ if (!is_array($visibility)) {
+ $visibility = json_decode($visibility, true);
+ }
+
+ $visibilityNode = $newPropertiesXml->createElement('visibility');
+
+ foreach ($visibility as $testElement) {
+ $testNode = $newPropertiesXml->createElement('test');
+ $testNode->setAttribute('type', $testElement['type']);
+ $testNode->setAttribute('message', $testElement['message']);
+ foreach ($testElement['conditions'] as $condition) {
+ $conditionNode = $newPropertiesXml->createElement('condition', $condition['value']);
+ $conditionNode->setAttribute('field', $condition['field']);
+ $conditionNode->setAttribute('type', $condition['type']);
+ $testNode->appendChild($conditionNode);
+ }
+ $visibilityNode->appendChild($testNode);
+ }
+ $propertyNode->appendChild($visibilityNode);
+ }
+
+ // do we have validation rules?
+ if (!empty($property['validation'])) {
+ $validation = $property['validation'];
+ if (!is_array($validation)) {
+ $validation = json_decode($property['validation'], true);
+ }
+
+ // xml uses rule node for this.
+ $ruleNode = $newPropertiesXml->createElement('rule');
+
+ // attributes on rule node;
+ $ruleNode->setAttribute('onSave', $validation['onSave'] ? 'true' : 'false');
+ $ruleNode->setAttribute('onStatus', $validation['onStatus'] ? 'true' : 'false');
+
+ // validation property has an array on tests in it
+ foreach ($validation['tests'] as $validationTest) {
+ $ruleTestNode = $newPropertiesXml->createElement('test');
+ $ruleTestNode->setAttribute('type', $validationTest['type']);
+ $ruleTestNode->setAttribute('message', $validationTest['message']);
+
+ foreach ($validationTest['conditions'] as $condition) {
+ $conditionNode = $newPropertiesXml->createElement('condition', $condition['value']);
+ $conditionNode->setAttribute('field', $condition['field']);
+ $conditionNode->setAttribute('type', $condition['type']);
+ $ruleTestNode->appendChild($conditionNode);
+ }
+ $ruleNode->appendChild($ruleTestNode);
+ }
+ $propertyNode->appendChild($ruleNode);
+ }
+
+ // do we have player compatibility?
+ if (!empty($property['playerCompatibility'])) {
+ $playerCompat = $property['playerCompatibility'];
+ if (!is_array($playerCompat)) {
+ $playerCompat = json_decode($property['playerCompatibility'], true);
+ }
+
+ $playerCompatibilityNode = $newPropertiesXml->createElement('playerCompatibility');
+ foreach ($playerCompat as $player => $value) {
+ $playerCompatibilityNode->setAttribute($player, $value);
+ }
+
+ $propertyNode->appendChild($playerCompatibilityNode);
+ }
+
+ $newPropertiesNode->appendChild($propertyNode);
+ }
+
+ $newPropertiesXml->appendChild($newPropertiesNode);
+
+ return $newPropertiesXml;
+ }
}
diff --git a/lib/Factory/ModuleXmlTrait.php b/lib/Factory/ModuleXmlTrait.php
index d1b4743eb3..b887694900 100644
--- a/lib/Factory/ModuleXmlTrait.php
+++ b/lib/Factory/ModuleXmlTrait.php
@@ -26,6 +26,7 @@
use Xibo\Entity\Module;
use Xibo\Widget\Definition\Asset;
use Xibo\Widget\Definition\Element;
+use Xibo\Widget\Definition\ElementGroup;
use Xibo\Widget\Definition\Extend;
use Xibo\Widget\Definition\LegacyType;
use Xibo\Widget\Definition\PlayerCompatibility;
@@ -76,6 +77,8 @@ private function getStencils(\DOMNodeList $nodes): array
$stencil->height = doubleval($childNode->textContent);
} else if ($childNode->nodeName === 'gapBetweenHbs') {
$stencil->gapBetweenHbs = doubleval($childNode->textContent);
+ } else if ($childNode->nodeName === 'elementGroups') {
+ $stencil->elementGroups = $this->parseElementGroups($childNode->childNodes);
}
}
@@ -123,6 +126,7 @@ private function parseProperties($propertyNodes, ?Module $module = null): array
$property->allowAssetRefs = $node->getAttribute('allowAssetRefs') === 'true';
$property->parseTranslations = $node->getAttribute('parseTranslations') === 'true';
$property->saveDefault = $node->getAttribute('saveDefault') === 'true';
+ $property->sendToElements = $node->getAttribute('sendToElements') === 'true';
$property->title = __($this->getFirstValueOrDefaultFromXmlNode($node, 'title'));
$property->helpText = __($this->getFirstValueOrDefaultFromXmlNode($node, 'helpText'));
$property->dependsOn = $this->getFirstValueOrDefaultFromXmlNode($node, 'dependsOn');
@@ -326,6 +330,7 @@ private function parseElements(\DOMNodeList $elementsNodes): array
if ($elementNode instanceof \DOMElement) {
$element = new Element();
$element->id = $elementNode->getAttribute('id');
+ $element->elementGroupId = $elementNode->getAttribute('elementGroupId');
foreach ($elementNode->childNodes as $childNode) {
if ($childNode instanceof \DOMElement) {
if ($childNode->nodeName === 'top') {
@@ -359,6 +364,46 @@ private function parseElements(\DOMNodeList $elementsNodes): array
return $elements;
}
+ /**
+ * @param \DOMNodeList $elementGroupsNodes
+ * @return \Xibo\Widget\Definition\Property[]
+ */
+ private function parseElementGroups (\DOMNodeList $elementGroupsNodes): array
+ {
+ $elementGroups = [];
+ foreach ($elementGroupsNodes as $elementGroupsNode) {
+ /** @var \DOMNode $elementNode */
+ if ($elementGroupsNode instanceof \DOMElement) {
+ $elementGroup = new ElementGroup();
+ $elementGroup->id = $elementGroupsNode->getAttribute('id');
+ foreach ($elementGroupsNode->childNodes as $childNode) {
+ if ($childNode instanceof \DOMElement) {
+ if ($childNode->nodeName === 'top') {
+ $elementGroup->top = doubleval($childNode->textContent);
+ } else if ($childNode->nodeName === 'left') {
+ $elementGroup->left = doubleval($childNode->textContent);
+ } else if ($childNode->nodeName === 'width') {
+ $elementGroup->width = doubleval($childNode->textContent);
+ } else if ($childNode->nodeName === 'height') {
+ $elementGroup->height = doubleval($childNode->textContent);
+ } else if ($childNode->nodeName === 'layer') {
+ $elementGroup->layer = intval($childNode->textContent);
+ } else if ($childNode->nodeName === 'title') {
+ $elementGroup->title = $childNode->textContent;
+ } else if ($childNode->nodeName === 'slot') {
+ $elementGroup->slot = intval($childNode->textContent);
+ } else if ($childNode->nodeName === 'pinSlot') {
+ $elementGroup->pinSlot = boolval($childNode->textContent);
+ }
+ }
+ }
+ $elementGroups[] = $elementGroup;
+ }
+ }
+
+ return $elementGroups;
+ }
+
/**
* @param \DOMNodeList $legacyTypeNodes
* @return \Xibo\Widget\Definition\LegacyType[]
diff --git a/lib/Factory/NotificationFactory.php b/lib/Factory/NotificationFactory.php
index dcdb08b469..0265e55a8b 100644
--- a/lib/Factory/NotificationFactory.php
+++ b/lib/Factory/NotificationFactory.php
@@ -1,6 +1,6 @@
getUser()->userId;
@@ -87,10 +87,10 @@ public function createSystemNotification($subject, $body, $date, $isEmail = true
$notification->body = $body;
$notification->createDt = $date->format('U');
$notification->releaseDt = $date->format('U');
- $notification->isEmail = ($isEmail) ? 1 : 0;
$notification->isInterrupt = 0;
$notification->userId = $userId;
$notification->isSystem = 1;
+ $notification->type = $type;
if ($addGroups) {
// Add the system notifications group - if there is one.
@@ -142,21 +142,22 @@ public function getByOwnerId($ownerId)
* @return Notification[]
* @throws NotFoundException
*/
- public function query($sortOrder = null, $filterBy = [])
+ public function query($sortOrder = null, array $filterBy = [])
{
$entries = [];
$sanitizedFilter = $this->getSanitizer($filterBy);
- if ($sortOrder == null)
+ if (empty($sortOrder)) {
$sortOrder = ['subject'];
+ }
- $params = array();
+ $params = [];
$select = 'SELECT `notification`.notificationId,
`notification`.subject,
`notification`.createDt,
`notification`.releaseDt,
`notification`.body,
- `notification`.isEmail,
+ `notification`.type,
`notification`.isInterrupt,
`notification`.isSystem,
`notification`.filename,
@@ -227,24 +228,45 @@ public function query($sortOrder = null, $filterBy = [])
$params['displayId'] = $sanitizedFilter->getInt('displayId');
}
- self::viewPermissionSql('Xibo\Entity\Notification', $body, $params, '`notification`.notificationId', '`notification`.userId', $filterBy);
+ // Read
+ if ($sanitizedFilter->getInt('read') !== null) {
+ $body .= ' AND `notification`.notificationId IN (
+ SELECT notificationId
+ FROM `lknotificationuser`
+ WHERE userId = :userId
+ AND `read` = :read
+ )';
+ $params['read'] = $sanitizedFilter->getInt('read');
+ $params['userId'] = $this->getUser()->userId;
+ }
+
+ // Type
+ if (!empty($sanitizedFilter->getString('type'))) {
+ $body .= ' AND `notification`.type = :type ';
+ $params['type'] = $sanitizedFilter->getString('type');
+ }
// Sorting?
$order = '';
- if (is_array($sortOrder))
+ if (is_array($sortOrder)) {
$order .= 'ORDER BY ' . implode(',', $sortOrder);
+ }
$limit = '';
// Paging
- if ($filterBy !== null && $sanitizedFilter->getInt('start') !== null && $sanitizedFilter->getInt('length') !== null) {
- $limit = ' LIMIT ' . $sanitizedFilter->getInt('start', ['default' => 0]) . ', ' . $sanitizedFilter->getInt('length', ['default' => 10]);
+ if ($filterBy !== null &&
+ $sanitizedFilter->getInt('start') !== null &&
+ $sanitizedFilter->getInt('length') !== null
+ ) {
+ $limit = ' LIMIT ' . $sanitizedFilter->getInt('start', ['default' => 0]) .
+ ', ' . $sanitizedFilter->getInt('length', ['default' => 10]);
}
$sql = $select . $body . $order . $limit;
foreach ($this->getStore()->select($sql, $params) as $row) {
$entries[] = $this->createEmpty()->hydrate($row, [
- 'intProperties' => ['isEmail', 'isInterrupt', 'isSystem']
+ 'intProperties' => ['isInterrupt', 'isSystem']
]);
}
diff --git a/lib/Factory/PermissionFactory.php b/lib/Factory/PermissionFactory.php
index ee869c32ec..9c21d32e96 100644
--- a/lib/Factory/PermissionFactory.php
+++ b/lib/Factory/PermissionFactory.php
@@ -143,15 +143,11 @@ public function getByObjectId($entity, $objectId)
$params = array('entity' => $entity, 'objectId' => $objectId);
foreach ($this->getStore()->select($sql, $params) as $row) {
- $permission = $this->createEmpty();
- $permission->permissionId = $row['permissionId'];
- $permission->groupId = $row['groupId'];
- $permission->view = $row['view'];
- $permission->edit = $row['edit'];
- $permission->delete = $row['delete'];
+ $permission = $this->createEmpty()->hydrate($row, [
+ 'intProperties' => ['view', 'edit', 'delete'],
+ ]);
$permission->objectId = $objectId;
$permission->entity = $entity;
- $permission->entityId = $row['entityId'];
$permissions[] = $permission;
}
@@ -285,23 +281,13 @@ public function getAllByObjectId($user, $entity, $objectId, $sortOrder = null, $
$sql = $select . $body . $order . $limit;
-
-
foreach ($this->getStore()->select($sql, $params) as $row) {
- // TODO Sanitizer?
- $permission = $this->createEmpty();
- $permission->permissionId = intval($row['permissionId']);
- $permission->groupId = intval($row['groupId']);
- $permission->view = intval($row['view']);
- $permission->edit = intval($row['edit']);
- $permission->delete = intval($row['delete']);
- $permission->objectId = intval($objectId);
- $permission->entity = $entity;
- $permission->entityId = intval($entityId);
- $permission->isUser = intval($row['isuserspecific']);
- $permission->group = ($row['group']);
-
- $permissions[] = $permission;
+ $row['entityId'] = $entityId;
+ $row['entity'] = $entity;
+ $row['objectId'] = $objectId;
+ $permissions[] = $this->createEmpty()->hydrate($row, [
+ 'intProperties' => ['view', 'edit', 'delete', 'isUser'],
+ ]);
}
// Paging
@@ -321,10 +307,16 @@ public function getAllByObjectId($user, $entity, $objectId, $sortOrder = null, $
*/
public function getByGroupId($entity, $groupId)
{
- $permissions = array();
+ $permissions = [];
$sql = '
- SELECT `permission`.`permissionId`, `permission`.`groupId`, `permission`.`objectId`, `permission`.`view`, `permission`.`edit`, `permission`.`delete`, permissionentity.entityId
+ SELECT `permission`.`permissionId`,
+ `permission`.`groupId`,
+ `permission`.`objectId`,
+ `permission`.`view`,
+ `permission`.`edit`,
+ `permission`.`delete`,
+ `permissionentity`.`entityId`
FROM `permission`
INNER JOIN `permissionentity`
ON `permissionentity`.entityId = permission.entityId
@@ -333,22 +325,13 @@ public function getByGroupId($entity, $groupId)
WHERE entity = :entity
AND `permission`.`groupId` = :groupId
';
- $params = array('entity' => 'Xibo\Entity\\' . $entity, 'groupId' => $groupId);
-
-
+ $params = ['entity' => 'Xibo\Entity\\' . $entity, 'groupId' => $groupId];
foreach ($this->getStore()->select($sql, $params) as $row) {
- $permission = $this->createEmpty();
- $permission->permissionId = $row['permissionId'];
- $permission->groupId = $row['groupId'];
- $permission->view = $row['view'];
- $permission->edit = $row['edit'];
- $permission->delete = $row['delete'];
- $permission->objectId = $row['objectId'];
- $permission->entity = $entity;
- $permission->entityId = $row['entityId'];
-
- $permissions[] = $permission;
+ $row['entity'] = $entity;
+ $permissions[] = $this->createEmpty()->hydrate($row, [
+ 'intProperties' => ['view', 'edit', 'delete'],
+ ]);
}
return $permissions;
@@ -360,7 +343,7 @@ public function getByGroupId($entity, $groupId)
* @param int $userId
* @return Permission[]
*/
- public function getByUserId($entity, $userId)
+ public function getByUserId($entity, $userId): array
{
$permissions = [];
@@ -371,7 +354,7 @@ public function getByUserId($entity, $userId)
`permission`.`view`,
`permission`.`edit`,
`permission`.`delete`,
- `permissionentity`.entityId
+ `permissionentity`.`entityId`
FROM `permission`
INNER JOIN `permissionentity`
ON `permissionentity`.entityId = permission.entityId
@@ -402,17 +385,10 @@ public function getByUserId($entity, $userId)
$params = ['entity' => $entity, 'userId' => $userId];
foreach ($this->getStore()->select($sql, $params) as $row) {
- $permission = $this->createEmpty();
- $permission->permissionId = $row['permissionId'];
- $permission->groupId = $row['groupId'];
- $permission->view = $row['view'];
- $permission->edit = $row['edit'];
- $permission->delete = $row['delete'];
- $permission->objectId = $row['objectId'];
- $permission->entity = $entity;
- $permission->entityId = $row['entityId'];
-
- $permissions[] = $permission;
+ $row['entity'] = $entity;
+ $permissions[] = $this->createEmpty()->hydrate($row, [
+ 'intProperties' => ['view', 'edit', 'delete'],
+ ]);
}
return $permissions;
@@ -422,7 +398,7 @@ public function getByUserId($entity, $userId)
* Get Full Permissions
* @return Permission
*/
- public function getFullPermissions()
+ public function getFullPermissions(): Permission
{
$permission = $this->createEmpty();
$permission->view = 1;
diff --git a/lib/Factory/ScheduleCriteriaFactory.php b/lib/Factory/ScheduleCriteriaFactory.php
new file mode 100644
index 0000000000..253c50e98d
--- /dev/null
+++ b/lib/Factory/ScheduleCriteriaFactory.php
@@ -0,0 +1,54 @@
+.
+ */
+
+namespace Xibo\Factory;
+
+use Xibo\Entity\ScheduleCriteria;
+
+/**
+ * Factory to return schedule criteria entities
+ */
+class ScheduleCriteriaFactory extends BaseFactory
+{
+ public function createEmpty(): ScheduleCriteria
+ {
+ return new ScheduleCriteria($this->getStore(), $this->getLog(), $this->getDispatcher());
+ }
+
+ /**
+ * Get all criteria for an event
+ * @param int $eventId
+ * @return ScheduleCriteria[]
+ */
+ public function getByEventId(int $eventId): array
+ {
+ $entries = [];
+
+ foreach ($this->getStore()->select('SELECT * FROM `schedule_criteria` WHERE `eventId` = :eventId', [
+ 'eventId' => $eventId,
+ ]) as $row) {
+ // Create and hydrate
+ $entries[] = $this->createEmpty()->hydrate($row);
+ }
+ return $entries;
+ }
+}
diff --git a/lib/Factory/ScheduleFactory.php b/lib/Factory/ScheduleFactory.php
index 8e4990fa5f..a685fad076 100644
--- a/lib/Factory/ScheduleFactory.php
+++ b/lib/Factory/ScheduleFactory.php
@@ -78,7 +78,8 @@ public function __construct(
$userFactory,
$scheduleReminderFactory,
$scheduleExclusionFactory,
- $user
+ $user,
+ private readonly ScheduleCriteriaFactory $scheduleCriteriaFactory
) {
$this->setAclDependencies($user, $userFactory);
$this->config = $config;
@@ -106,7 +107,8 @@ public function createEmpty()
$this->dayPartFactory,
$this->userFactory,
$this->scheduleReminderFactory,
- $this->scheduleExclusionFactory
+ $this->scheduleExclusionFactory,
+ $this->scheduleCriteriaFactory
);
}
@@ -206,9 +208,9 @@ public function getForXmds($displayId, $fromDt, $toDt, $options = [])
// Firstly get all the scheduled layouts
$SQL = '
SELECT `schedule`.eventTypeId,
- layout.layoutId,
- `layout`.status,
- `layout`.duration,
+ `layoutLinks`.layoutId,
+ `layoutLinks`.status,
+ `layoutLinks`.duration,
`command`.code,
schedule.fromDt,
schedule.toDt,
@@ -244,7 +246,9 @@ public function getForXmds($displayId, $fromDt, $toDt, $options = [])
`daypart`.isCustom,
`syncLayout`.layoutId AS syncLayoutId,
`syncLayout`.status AS syncLayoutStatus,
- `syncLayout`.duration AS syncLayoutDuration
+ `syncLayout`.duration AS syncLayoutDuration,
+ `schedule`.dataSetId,
+ `schedule`.dataSetParams
FROM `schedule`
INNER JOIN `daypart`
ON `daypart`.dayPartId = `schedule`.dayPartId
@@ -267,12 +271,19 @@ public function getForXmds($displayId, $fromDt, $toDt, $options = [])
$SQL .= '
LEFT OUTER JOIN `campaign`
ON `schedule`.CampaignID = campaign.CampaignID
- LEFT OUTER JOIN `lkcampaignlayout`
- ON lkcampaignlayout.CampaignID = campaign.CampaignID
- LEFT OUTER JOIN `layout`
- ON lkcampaignlayout.LayoutID = layout.LayoutID
- AND layout.retired = 0
- AND layout.parentId IS NULL
+ LEFT OUTER JOIN (
+ SELECT `layout`.layoutId,
+ `layout`.status,
+ `layout`.duration,
+ `lkcampaignlayout`.campaignId,
+ `lkcampaignlayout`.displayOrder
+ FROM `layout`
+ INNER JOIN `lkcampaignlayout`
+ ON `lkcampaignlayout`.LayoutID = `layout`.layoutId
+ WHERE `layout`.retired = 0
+ AND `layout`.parentId IS NULL
+ ) layoutLinks
+ ON `campaign`.CampaignID = `layoutLinks`.campaignId
LEFT OUTER JOIN `command`
ON `command`.commandId = `schedule`.commandId
LEFT OUTER JOIN `schedule_sync`
@@ -312,7 +323,7 @@ public function getForXmds($displayId, $fromDt, $toDt, $options = [])
ORDER BY `schedule`.DisplayOrder,
CASE WHEN `campaign`.listPlayOrder = \'block\' THEN `schedule`.FromDT ELSE 0 END,
CASE WHEN `campaign`.listPlayOrder = \'block\' THEN `campaign`.campaignId ELSE 0 END,
- IFNULL(`lkcampaignlayout`.DisplayOrder, 0),
+ IFNULL(`layoutLinks`.displayOrder, 0),
`schedule`.FromDT,
`schedule`.eventId
';
@@ -398,7 +409,9 @@ public function query($sortOrder = null, $filterBy = [])
`user`.userName as modifiedByName,
`schedule`.createdOn,
`schedule`.updatedOn,
- `schedule`.name
+ `schedule`.name,
+ `schedule`.dataSetId,
+ `schedule`.dataSetParams
';
$body = ' FROM `schedule`
@@ -768,7 +781,8 @@ public function query($sortOrder = null, $filterBy = [])
'recurrenceMonthlyRepeatsOn',
'isGeoAware',
'maxPlaysPerHour',
- 'modifiedBy'
+ 'modifiedBy',
+ 'dataSetId',
]
]);
}
diff --git a/lib/Factory/SyncGroupFactory.php b/lib/Factory/SyncGroupFactory.php
old mode 100644
new mode 100755
index 5240a1ebe9..322a7eb695
--- a/lib/Factory/SyncGroupFactory.php
+++ b/lib/Factory/SyncGroupFactory.php
@@ -1,6 +1,6 @@
getString('email');
}
+ // First Name Provided
+ if ($parsedFilter->getString('firstName') != null) {
+ $body .= " AND user.firstName LIKE :firstName ";
+ $params['firstName'] = '%' . $parsedFilter->getString('firstName') . '%';
+ }
+
+ // Last Name Provided
+ if ($parsedFilter->getString('lastName') != null) {
+ $body .= " AND user.lastName LIKE :lastName ";
+ $params['lastName'] = '%' . $parsedFilter->getString('lastName') . '%';
+ }
+
// Retired users?
if ($parsedFilter->getInt('retired') !== null) {
$body .= " AND user.retired = :retired ";
@@ -402,7 +420,18 @@ public function query($sortOrder = [], $filterBy = [])
foreach ($this->getStore()->select($sql, $params) as $row) {
$entries[] = $this->create()->hydrate($row, [
- 'intProperties' => ['libraryQuota', 'isPasswordChangeRequired', 'retired'],
+ 'intProperties' => [
+ 'libraryQuota',
+ 'isPasswordChangeRequired',
+ 'retired',
+ 'isSystemNotification',
+ 'isDisplayNotification',
+ 'isDataSetNotification',
+ 'isLayoutNotification',
+ 'isReportNotification',
+ 'isScheduleNotification',
+ 'isCustomNotification',
+ ],
'stringProperties' => ['homePageId']
]);
}
diff --git a/lib/Factory/UserGroupFactory.php b/lib/Factory/UserGroupFactory.php
index 173b2287dd..8151560095 100644
--- a/lib/Factory/UserGroupFactory.php
+++ b/lib/Factory/UserGroupFactory.php
@@ -1,6 +1,6 @@
query(null, ['disableUserCheck' => 1, 'notificationId' => $notificationId, 'isUserSpecific' => -1]);
+ return $this->query(
+ null,
+ ['disableUserCheck' => 1, 'notificationId' => $notificationId, 'isUserSpecific' => -1]
+ );
}
/**
@@ -177,6 +180,18 @@ public function getByDisplayGroupId($displayGroupId)
return $this->query(null, ['disableUserCheck' => 1, 'displayGroupId' => $displayGroupId]);
}
+ /**
+ * @param int $userId
+ * @param string $type
+ * @return bool
+ */
+ public function checkNotificationEmailPreferences(int $userId, string $type): bool
+ {
+ $groups = $this->query(null, ['disableUserCheck' => 1, 'userId' => $userId, 'notificationType' => $type]);
+
+ return count($groups) > 0;
+ }
+
/**
* @param array $sortOrder
* @param array $filterBy
@@ -201,6 +216,12 @@ public function query($sortOrder = null, $filterBy = [])
`group`.libraryQuota,
`group`.isSystemNotification,
`group`.isDisplayNotification,
+ `group`.isDataSetNotification,
+ `group`.isLayoutNotification,
+ `group`.isLibraryNotification,
+ `group`.isReportNotification,
+ `group`.isScheduleNotification,
+ `group`.isCustomNotification,
`group`.isShownForAddUser,
`group`.defaultHomepageId,
`group`.features
@@ -295,8 +316,14 @@ public function query($sortOrder = null, $filterBy = [])
$params['isDisplayNotification'] = $parsedFilter->getInt('isDisplayNotification');
}
+ if (!empty($parsedFilter->getString('notificationType'))) {
+ $body .= ' AND ' . $parsedFilter->getString('notificationType') . ' = 1 ';
+ }
+
if ($parsedFilter->getInt('notificationId') !== null) {
- $body .= ' AND `group`.groupId IN (SELECT groupId FROM `lknotificationgroup` WHERE notificationId = :notificationId) ';
+ $body .= ' AND `group`.groupId IN (
+ SELECT groupId FROM `lknotificationgroup` WHERE notificationId = :notificationId
+ ) ';
$params['notificationId'] = $parsedFilter->getInt('notificationId');
}
@@ -376,7 +403,17 @@ public function query($sortOrder = null, $filterBy = [])
foreach ($this->getStore()->select($sql, $params) as $row) {
$group = $this->createEmpty()->hydrate($row, [
'intProperties' => [
- 'isUserSpecific', 'isEveryone', 'libraryQuota', 'isSystemNotification', 'isDisplayNotification', 'isShownForAddUser'
+ 'isUserSpecific',
+ 'isEveryone',
+ 'libraryQuota',
+ 'isSystemNotification',
+ 'isDisplayNotification',
+ 'isDataSetNotification',
+ 'isLayoutNotification',
+ 'isReportNotification',
+ 'isScheduleNotification',
+ 'isCustomNotification',
+ 'isShownForAddUser'
],
'stringProperties' => [
'defaultHomepageId'
@@ -478,6 +515,11 @@ public function getFeatures()
'group' => 'scheduling',
'title' => __('Allow creation of Synchronised Schedules')
],
+ 'schedule.dataConnector' => [
+ 'feature' => 'schedule.dataConnector',
+ 'group' => 'scheduling',
+ 'title' => __('Allow creation of Data Connector Schedules')
+ ],
'daypart.view' => [
'feature' => 'daypart.view',
'group' => 'scheduling',
@@ -528,6 +570,11 @@ public function getFeatures()
'group' => 'library',
'title' => __('Allow edits including deletion to all data contained within a DataSet independently to Layouts')
],
+ 'dataset.dataConnector' => [
+ 'feature' => 'dataset.realtime',
+ 'group' => 'library',
+ 'title' => __('Create and update real time DataSets')
+ ],
'layout.view' => [
'feature' => 'layout.view',
'group' => 'layout-design',
@@ -713,6 +760,11 @@ public function getFeatures()
'group' => 'displays',
'title' => __('Allow edits including deletion for all added Displays')
],
+ 'displays.limitedView' => [
+ 'feature' => 'displays.limitedView',
+ 'group' => 'displays',
+ 'title' => __('Allow access to non-destructive edit-only features')
+ ],
'displaygroup.view' => [
'feature' => 'displaygroup.view',
'group' => 'displays',
@@ -728,6 +780,11 @@ public function getFeatures()
'group' => 'displays',
'title' => __('Allow edits including deletion for all created Display Groups')
],
+ 'displaygroup.limitedView' => [
+ 'feature' => 'displaygroup.limitedView',
+ 'group' => 'displays',
+ 'title' => __('Allow access to non-destructive edit-only features in a Display Group')
+ ],
'displayprofile.view' => [
'feature' => 'displayprofile.view',
'group' => 'displays',
@@ -793,6 +850,16 @@ public function getFeatures()
'group' => 'system',
'title' => __('Page which allows for Module Management for the platform')
],
+ 'developer.edit' => [
+ 'feature' => 'developer.edit',
+ 'group' => 'system',
+ 'title' => __('Add/Edit custom modules and templates'),
+ ],
+ 'developer.delete' => [
+ 'feature' => 'developer.delete',
+ 'group' => 'system',
+ 'title' => __('Delete custom modules and templates'),
+ ],
'transition.view' => [
'feature' => 'transition.view',
'group' => 'system',
diff --git a/lib/Factory/UserNotificationFactory.php b/lib/Factory/UserNotificationFactory.php
index a009ba5d49..4a392a6ac3 100644
--- a/lib/Factory/UserNotificationFactory.php
+++ b/lib/Factory/UserNotificationFactory.php
@@ -101,7 +101,7 @@ public function getMine($length = 5)
*/
public function getEmailQueue()
{
- return $this->query(null, ['isEmail' => 1, 'isEmailed' => 0, 'checkRetired' => 1]);
+ return $this->query(null, ['isEmailed' => 0, 'checkRetired' => 1]);
}
/**
@@ -152,6 +152,7 @@ public function query($sortOrder = null, $filterBy = [])
`notification`.filename,
`notification`.originalFileName,
`notification`.nonusers,
+ `notification`.type,
`user`.email,
`user`.retired
';
@@ -180,16 +181,12 @@ public function query($sortOrder = null, $filterBy = [])
$params['read'] = $parsedBody->getInt('read');
}
- if ($parsedBody->getInt('isEmail') !== null) {
- $body .= ' AND `notification`.isEmail = :isEmail ';
- $params['isEmail'] = $parsedBody->getInt('isEmail');
- }
-
if ($parsedBody->getInt('isEmailed') !== null) {
- if ($parsedBody->getInt('isEmailed') == 0)
+ if ($parsedBody->getInt('isEmailed') == 0) {
$body .= ' AND `lknotificationuser`.emailDt = 0 ';
- else
+ } else {
$body .= ' AND `lknotificationuser`.emailDt <> 0 ';
+ }
}
if ($parsedBody->getInt('checkRetired') === 1) {
@@ -198,8 +195,9 @@ public function query($sortOrder = null, $filterBy = [])
// Sorting?
$order = '';
- if (is_array($sortOrder))
+ if (is_array($sortOrder)) {
$order .= 'ORDER BY ' . implode(',', $sortOrder);
+ }
$limit = '';
// Paging
diff --git a/lib/Factory/WidgetDataFactory.php b/lib/Factory/WidgetDataFactory.php
new file mode 100644
index 0000000000..bb1c5bdfea
--- /dev/null
+++ b/lib/Factory/WidgetDataFactory.php
@@ -0,0 +1,153 @@
+.
+ */
+
+namespace Xibo\Factory;
+
+use Carbon\Carbon;
+use Xibo\Entity\WidgetData;
+use Xibo\Helper\DateFormatHelper;
+use Xibo\Support\Exception\InvalidArgumentException;
+use Xibo\Support\Exception\NotFoundException;
+
+/**
+ * Factory for returning Widget Data
+ */
+class WidgetDataFactory extends BaseFactory
+{
+ public function create(
+ int $widgetId,
+ array $data,
+ int $displayOrder
+ ): WidgetData {
+ $widgetData = $this->createEmpty();
+ $widgetData->widgetId = $widgetId;
+ $widgetData->data = $data;
+ $widgetData->displayOrder = $displayOrder;
+ return $widgetData;
+ }
+
+ private function createEmpty(): WidgetData
+ {
+ return new WidgetData($this->getStore(), $this->getLog(), $this->getDispatcher());
+ }
+
+ /**
+ * Get Widget Data by its ID
+ * @throws \Xibo\Support\Exception\NotFoundException
+ * @throws \Xibo\Support\Exception\InvalidArgumentException
+ */
+ public function getById(int $id): WidgetData
+ {
+ if (empty($id)) {
+ throw new InvalidArgumentException(__('Missing ID'), 'id');
+ }
+
+ $sql = 'SELECT * FROM `widgetdata` WHERE `id` = :id';
+ foreach ($this->getStore()->select($sql, ['id' => $id]) as $row) {
+ return $this->hydrate($row);
+ };
+
+ throw new NotFoundException();
+ }
+
+ /**
+ * Get Widget Data for a Widget
+ * @param int $widgetId
+ * @return WidgetData[]
+ * @throws \Xibo\Support\Exception\InvalidArgumentException
+ */
+ public function getByWidgetId(int $widgetId): array
+ {
+ if (empty($widgetId)) {
+ throw new InvalidArgumentException(__('Missing Widget ID'), 'widgetId');
+ }
+
+ $entries = [];
+ $sql = 'SELECT * FROM `widgetdata` WHERE `widgetId` = :widgetId';
+ foreach ($this->getStore()->select($sql, ['widgetId' => $widgetId]) as $row) {
+ $entries[] = $this->hydrate($row);
+ };
+
+ return $entries;
+ }
+
+ /**
+ * Get modified date for Widget Data for a Widget
+ * @param int $widgetId
+ * @return ?\Carbon\Carbon
+ * @throws \Xibo\Support\Exception\InvalidArgumentException
+ */
+ public function getModifiedDtForWidget(int $widgetId): ?Carbon
+ {
+ if (empty($widgetId)) {
+ throw new InvalidArgumentException(__('Missing Widget ID'), 'widgetId');
+ }
+
+ $sql = '
+ SELECT MAX(`createdDt`) AS createdDt, MAX(`modifiedDt`) AS modifiedDt
+ FROM `widgetdata`
+ WHERE `widgetId` = :widgetId
+ ';
+ $result = $this->getStore()->select($sql, ['widgetId' => $widgetId]);
+ $modifiedDt = $result[0]['modifiedDt'] ?? ($result[0]['createdDt'] ?? null);
+ if (empty($modifiedDt)) {
+ return null;
+ } else {
+ return Carbon::createFromFormat(DateFormatHelper::getSystemFormat(), $modifiedDt);
+ }
+ }
+
+ /**
+ * Copy data from one widget to another
+ * primarily used during checkout
+ * @param int $fromWidgetId
+ * @param int $toWidgetId
+ * @return void
+ */
+ public function copyByWidgetId(int $fromWidgetId, int $toWidgetId): void
+ {
+ $this->getStore()->update('
+ INSERT INTO `widgetdata` (`widgetId`, `data`, `displayOrder`, `createdDt`, `modifiedDt`)
+ SELECT :toWidgetId, `data`, `displayOrder`, `createdDt`, `modifiedDt`
+ FROM `widgetdata`
+ WHERE `widgetId` = :widgetId
+ ', [
+ 'widgetId' => $fromWidgetId,
+ 'toWidgetId' => $toWidgetId
+ ]);
+ }
+
+ /**
+ * Helper function for
+ * @param array $row
+ * @return \Xibo\Entity\WidgetData
+ */
+ private function hydrate(array $row): WidgetData
+ {
+ if (!empty($row['data'])) {
+ $row['data'] = json_decode($row['data'], true);
+ } else {
+ $row['data'] = [];
+ }
+ return $this->createEmpty()->hydrate($row);
+ }
+}
diff --git a/lib/Helper/AccessibleMonologWriter.php b/lib/Helper/AccessibleMonologWriter.php
deleted file mode 100644
index aa9786e8f2..0000000000
--- a/lib/Helper/AccessibleMonologWriter.php
+++ /dev/null
@@ -1,39 +0,0 @@
-resource;
- }
-
- public function addHandler($handler) {
- if (!$this->resource)
- $this->settings['handlers'][] = $handler;
- else
- $this->getWriter()->pushHandler($handler);
- }
-
- public function addProcessor($processor) {
- if (!$this->resource)
- $this->settings['processors'][] = $processor;
- else
- $this->getWriter()->pushProcessor($processor);
- }
-}
\ No newline at end of file
diff --git a/lib/Helper/DataSetUploadHandler.php b/lib/Helper/DataSetUploadHandler.php
index 0b5a2c8dfc..7f1eec68c8 100644
--- a/lib/Helper/DataSetUploadHandler.php
+++ b/lib/Helper/DataSetUploadHandler.php
@@ -62,6 +62,20 @@ protected function handleFormData($file, $index)
throw new AccessDeniedException();
}
+ // Get all columns
+ $columns = $dataSet->getColumn();
+
+ // Filter columns where dataSetColumnType is "Value"
+ $filteredColumns = array_filter($columns, function ($column) {
+ return $column->dataSetColumnTypeId == '1';
+ });
+
+ // Check if there are any value columns defined in the dataset
+ if (count($filteredColumns) === 0) {
+ $controller->getLog()->error('Import failed: No value columns defined in the dataset.');
+ throw new InvalidArgumentException(__('Import failed: No value columns defined in the dataset.'));
+ }
+
// We are allowed to edit - pull all required parameters from the request object
$overwrite = $sanitizer->getCheckbox('overwrite');
$ignoreFirstRow = $sanitizer->getCheckbox('ignorefirstrow');
@@ -90,16 +104,22 @@ protected function handleFormData($file, $index)
if ($overwrite == 1)
$dataSet->deleteData();
- // Load the file
- ini_set('auto_detect_line_endings', true);
-
$firstRow = true;
$i = 0;
-
$handle = fopen($controller->getConfig()->getSetting('LIBRARY_LOCATION') . 'temp/' . $fileName, 'r');
while (($data = fgetcsv($handle)) !== FALSE ) {
$i++;
+ // remove any elements that doesn't contain any value from the array
+ $filteredData = array_filter($data, function($value) {
+ return !empty($value);
+ });
+
+ // Skip empty lines without any delimiters or data
+ if (empty($filteredData)) {
+ continue;
+ }
+
$row = [];
// The CSV file might have headings, so ignore the first row.
@@ -137,9 +157,6 @@ protected function handleFormData($file, $index)
// Close the file
fclose($handle);
- // Change the auto detect setting back
- ini_set('auto_detect_line_endings', false);
-
// TODO: update list content definitions
// Save the dataSet
diff --git a/lib/Helper/DatabaseLogHandler.php b/lib/Helper/DatabaseLogHandler.php
index b8cf08fc58..3130b7d5dc 100644
--- a/lib/Helper/DatabaseLogHandler.php
+++ b/lib/Helper/DatabaseLogHandler.php
@@ -83,9 +83,31 @@ protected function write(array $record)
self::$pdo = PdoStorageService::newConnection('log');
$SQL = '
- INSERT INTO `log`
- (`runNo`, `logdate`, `channel`, `type`, `page`, `function`, `message`, `userid`, `displayid`)
- VALUES (:runNo, :logdate, :channel, :type, :page, :function, :message, :userid, :displayid)
+ INSERT INTO `log` (
+ `runNo`,
+ `logdate`,
+ `channel`,
+ `type`,
+ `page`,
+ `function`,
+ `message`,
+ `userid`,
+ `displayid`,
+ `sessionHistoryId`,
+ `requestId`
+ ) VALUES (
+ :runNo,
+ :logdate,
+ :channel,
+ :type,
+ :page,
+ :function,
+ :message,
+ :userid,
+ :displayid,
+ :sessionHistoryId,
+ :requestId
+ )
';
self::$statement = self::$pdo->prepare($SQL);
@@ -100,7 +122,9 @@ protected function write(array $record)
'function' => $record['extra']['method'] ?? '',
'message' => $record['message'],
'userid' => $record['extra']['userId'] ?? 0,
- 'displayid' => $record['extra']['displayId'] ?? 0
+ 'displayid' => $record['extra']['displayId'] ?? 0,
+ 'sessionHistoryId' => $record['extra']['sessionHistoryId'] ?? 0,
+ 'requestId' => $record['extra']['requestId'] ?? 0,
];
try {
diff --git a/lib/Helper/Environment.php b/lib/Helper/Environment.php
index c55281818f..d342e40b05 100644
--- a/lib/Helper/Environment.php
+++ b/lib/Helper/Environment.php
@@ -30,7 +30,7 @@
*/
class Environment
{
- public static $WEBSITE_VERSION_NAME = '4.0.13';
+ public static $WEBSITE_VERSION_NAME = '4.1.0';
public static $XMDS_VERSION = '7';
public static $XLF_VERSION = 4;
public static $VERSION_REQUIRED = '8.1.0';
diff --git a/lib/Helper/LayoutUploadHandler.php b/lib/Helper/LayoutUploadHandler.php
index 8222cf634c..1b160c0241 100644
--- a/lib/Helper/LayoutUploadHandler.php
+++ b/lib/Helper/LayoutUploadHandler.php
@@ -23,7 +23,6 @@
namespace Xibo\Helper;
use Exception;
-use Xibo\Entity\Layout;
use Xibo\Support\Exception\LibraryFullException;
/**
@@ -40,6 +39,7 @@ protected function handleFormData($file, $index)
{
/* @var \Xibo\Controller\Layout $controller */
$controller = $this->options['controller'];
+
/* @var SanitizerService $sanitizerService */
$sanitizerService = $this->options['sanitizerService'];
@@ -52,7 +52,10 @@ protected function handleFormData($file, $index)
try {
// Check Library
if ($this->options['libraryQuotaFull']) {
- throw new LibraryFullException(sprintf(__('Your library is full. Library Limit: %s K'), $this->options['libraryLimit']));
+ throw new LibraryFullException(sprintf(
+ __('Your library is full. Library Limit: %s K'),
+ $this->options['libraryLimit']
+ ));
}
// Check for a user quota
@@ -69,8 +72,8 @@ protected function handleFormData($file, $index)
$importTags = $params->getCheckbox('importTags', ['default' => 0]);
$useExistingDataSets = $params->getCheckbox('useExistingDataSets', ['default' => 0]);
$importDataSetData = $params->getCheckbox('importDataSetData', ['default' => 0]);
+ $importFallback = $params->getCheckbox('importFallback', ['default' => 0]);
- /* @var Layout $layout */
$layout = $controller->getLayoutFactory()->createFromZip(
$controller->getConfig()->getSetting('LIBRARY_LOCATION') . 'temp/' . $fileName,
$name,
@@ -83,7 +86,7 @@ protected function handleFormData($file, $index)
$this->options['dataSetFactory'],
$tags,
$this->options['mediaService'],
- $this->options['folderId']
+ $this->options['folderId'],
);
// set folderId, permissionFolderId is handled on Layout specific Campaign record.
@@ -97,6 +100,28 @@ protected function handleFormData($file, $index)
$layout->managePlaylistClosureTable();
$layout->manageActions();
+ // Handle widget data
+ $fallback = $layout->getUnmatchedProperty('fallback');
+ if ($importFallback == 1 && $fallback !== null) {
+ /** @var \Xibo\Factory\WidgetDataFactory $widgetDataFactory */
+ $widgetDataFactory = $this->options['widgetDataFactory'];
+ foreach ($layout->getAllWidgets() as $widget) {
+ // Did this widget have fallback data included in its export?
+ if (array_key_exists($widget->tempWidgetId, $fallback)) {
+ foreach ($fallback[$widget->tempWidgetId] as $item) {
+ // We create the widget data with the new widgetId
+ $widgetDataFactory
+ ->create(
+ $widget->widgetId,
+ $item['data'] ?? [],
+ intval($item['displayOrder'] ?? 1),
+ )
+ ->save();
+ }
+ }
+ }
+ }
+
@unlink($controller->getConfig()->getSetting('LIBRARY_LOCATION') . 'temp/' . $fileName);
// Set the name for the return
diff --git a/lib/Helper/LogProcessor.php b/lib/Helper/RouteLogProcessor.php
similarity index 60%
rename from lib/Helper/LogProcessor.php
rename to lib/Helper/RouteLogProcessor.php
index 98ead973b1..cf2aeeea2a 100644
--- a/lib/Helper/LogProcessor.php
+++ b/lib/Helper/RouteLogProcessor.php
@@ -1,9 +1,10 @@
route = $route;
- $this->method = $method;
- $this->userId = $userId;
+ public function __construct(
+ private readonly string $route,
+ private readonly string $method
+ ) {
}
/**
* @param array $record
* @return array
*/
- public function __invoke(array $record)
+ public function __invoke(array $record): array
{
$record['extra']['method'] = $this->method;
$record['extra']['route'] = $this->route;
-
- if ($this->userId != null) {
- $record['extra']['userId'] = $this->userId;
- }
-
return $record;
}
-}
\ No newline at end of file
+}
diff --git a/lib/Helper/Session.php b/lib/Helper/Session.php
index c38485df13..63109e0bd5 100644
--- a/lib/Helper/Session.php
+++ b/lib/Helper/Session.php
@@ -410,6 +410,8 @@ private function insertSession($key, $data, $lastAccessed, $expiry)
{
//$this->log->debug('Session insert');
+ $this->insertSessionHistory();
+
$sql = '
INSERT INTO `session` (session_id, session_data, session_expiration, lastaccessed, userid, isexpired, useragent, remoteaddr)
VALUES (:session_id, :session_data, :session_expiration, :lastAccessed, :userId, :expired, :useragent, :remoteaddr)
@@ -429,6 +431,26 @@ private function insertSession($key, $data, $lastAccessed, $expiry)
$this->getDb()->update($sql, $params);
}
+ private function insertSessionHistory()
+ {
+ $sql = '
+ INSERT INTO `session_history` (`ipAddress`, `userAgent`, `startTime`, `userId`, `lastUsedTime`)
+ VALUES (:ipAddress, :userAgent, :startTime, :userId, :lastUsedTime)
+ ';
+
+ $params = [
+ 'ipAddress' => $this->getIp(),
+ 'userAgent' => substr(htmlspecialchars($_SERVER['HTTP_USER_AGENT']), 0, 253),
+ 'startTime' => Carbon::now()->format(DateFormatHelper::getSystemFormat()),
+ 'userId' => $this->userId,
+ 'lastUsedTime' => Carbon::now()->format(DateFormatHelper::getSystemFormat())
+ ];
+
+ $id = $this->getDb()->insert($sql, $params);
+
+ $this->set('sessionHistoryId', $id);
+ }
+
/**
* Update Session
* @param $key
@@ -440,6 +462,8 @@ private function updateSession($key, $data, $lastAccessed, $expiry)
{
//$this->log->debug('Session update');
+ $this->updateSessionHistory();
+
$sql = '
UPDATE `session` SET
session_data = :session_data,
@@ -462,6 +486,26 @@ private function updateSession($key, $data, $lastAccessed, $expiry)
$this->getDb()->update($sql, $params);
}
+ /**
+ * Updates the session history
+ */
+ private function updateSessionHistory()
+ {
+ $sql = '
+ UPDATE `session_history` SET
+ lastUsedTime = :lastUsedTime, userID = :userId
+ WHERE sessionId = :sessionId
+ ';
+
+ $params = [
+ 'lastUsedTime' => Carbon::now()->format(DateFormatHelper::getSystemFormat()),
+ 'userId' => $this->userId,
+ 'sessionId' => $_SESSION['sessionHistoryId'],
+ ];
+
+ $this->getDb()->update($sql, $params);
+ }
+
/**
* Get the Client IP Address
* @return string
diff --git a/lib/Helper/UserLogProcessor.php b/lib/Helper/UserLogProcessor.php
new file mode 100644
index 0000000000..dee8b66b52
--- /dev/null
+++ b/lib/Helper/UserLogProcessor.php
@@ -0,0 +1,63 @@
+.
+ */
+
+
+namespace Xibo\Helper;
+
+/**
+ * Class UserLogProcessor
+ * @package Xibo\Helper
+ */
+class UserLogProcessor
+{
+ /**
+ * UserLogProcessor
+ * @param int $userId
+ * @param int|null $sessionHistoryId
+ * @param int|null $requestId
+ */
+ public function __construct(
+ private readonly int $userId,
+ private readonly ?int $sessionHistoryId,
+ private readonly ?int $requestId
+ ) {
+ }
+
+ /**
+ * @param array $record
+ * @return array
+ */
+ public function __invoke(array $record): array
+ {
+ $record['extra']['userId'] = $this->userId;
+
+ if ($this->sessionHistoryId != null) {
+ $record['extra']['sessionHistoryId'] = $this->sessionHistoryId;
+ }
+
+ if ($this->requestId != null) {
+ $record['extra']['requestId'] = $this->requestId;
+ }
+
+ return $record;
+ }
+}
diff --git a/lib/Listener/ModuleTemplateListener.php b/lib/Listener/ModuleTemplateListener.php
new file mode 100644
index 0000000000..46051a5bdb
--- /dev/null
+++ b/lib/Listener/ModuleTemplateListener.php
@@ -0,0 +1,58 @@
+.
+ */
+
+namespace Xibo\Listener;
+
+use Symfony\Component\EventDispatcher\EventDispatcherInterface;
+use Xibo\Event\ParsePermissionEntityEvent;
+use Xibo\Factory\ModuleTemplateFactory;
+
+class ModuleTemplateListener
+{
+ use ListenerLoggerTrait;
+
+ /** @var ModuleTemplateFactory */
+ private ModuleTemplateFactory $moduleTemplateFactory;
+
+ public function __construct(ModuleTemplateFactory $moduleTemplateFactory)
+ {
+ $this->moduleTemplateFactory = $moduleTemplateFactory;
+ }
+
+ public function registerWithDispatcher(EventDispatcherInterface $dispatcher): ModuleTemplateListener
+ {
+ $dispatcher->addListener(ParsePermissionEntityEvent::$NAME . 'moduleTemplate', [$this, 'onParsePermissions']);
+
+ return $this;
+ }
+
+ /**
+ * @param ParsePermissionEntityEvent $event
+ * @return void
+ * @throws \Xibo\Support\Exception\NotFoundException
+ */
+ public function onParsePermissions(ParsePermissionEntityEvent $event)
+ {
+ $this->getLogger()->debug('onParsePermissions');
+ $event->setObject($this->moduleTemplateFactory->getUserTemplateById($event->getObjectId()));
+ }
+}
diff --git a/lib/Middleware/ApiAuthorization.php b/lib/Middleware/ApiAuthorization.php
index 5e7ed66b01..0e9fd98607 100644
--- a/lib/Middleware/ApiAuthorization.php
+++ b/lib/Middleware/ApiAuthorization.php
@@ -1,6 +1,6 @@
get('configService')->getApiKeyDetails();
- $accessTokenRepository = new AccessTokenRepository($logger, $container->get('pool'), $container->get('applicationFactory'));
+ $accessTokenRepository = new AccessTokenRepository(
+ $logger,
+ $container->get('pool'),
+ $container->get('applicationFactory')
+ );
return new ResourceServer(
$accessTokenRepository,
$apiKeyPaths['publicKeyPath']
@@ -141,7 +146,10 @@ public function process(Request $request, RequestHandler $handler): Response
// Check the route and request method
try {
$i++;
- $checkRoute = $applicationScopeFactory->getById($scope)->checkRoute($request->getMethod(), $resource);
+ $checkRoute = $applicationScopeFactory->getById($scope)->checkRoute(
+ $request->getMethod(),
+ $resource
+ );
// if we have access to the requested route, break the loop
if ($checkRoute) {
@@ -163,8 +171,47 @@ public function process(Request $request, RequestHandler $handler): Response
$validatedRequest = $validatedRequest->withAttribute('public', true);
}
+ $requestId = $this->app->getContainer()->get('store')->insert('
+ INSERT INTO `application_requests_history` (
+ userId,
+ applicationId,
+ url,
+ method,
+ startTime,
+ endTime,
+ duration
+ )
+ VALUES (
+ :userId,
+ :applicationId,
+ :url,
+ :method,
+ :startTime,
+ :endTime,
+ :duration
+ )
+ ', [
+ 'userId' => $user->userId,
+ 'applicationId' => $validatedRequest->getAttribute('oauth_client_id'),
+ 'url' => htmlspecialchars($request->getUri()->getPath()),
+ 'method' => $request->getMethod(),
+ 'startTime' => Carbon::now(),
+ 'endTime' => Carbon::now(),
+ 'duration' => 0
+ ], 'api_requests_history');
+
+ $this->app->getContainer()->get('store')->commitIfNecessary('api_requests_history');
+
$logger->setUserId($user->userId);
$this->app->getContainer()->set('user', $user);
+ $logger->setRequestId($requestId);
+
+ // Add this request information to the logger.
+ $logger->getLoggerInterface()->pushProcessor(new UserLogProcessor(
+ $user->userId,
+ null,
+ $requestId,
+ ));
return $handler->handle($validatedRequest->withAttribute('name', 'API'));
}
diff --git a/lib/Middleware/AuthenticationBase.php b/lib/Middleware/AuthenticationBase.php
index ecf0d62b09..57f9d1a08a 100644
--- a/lib/Middleware/AuthenticationBase.php
+++ b/lib/Middleware/AuthenticationBase.php
@@ -1,8 +1,8 @@
hasIdentity() && !$this->getSession()->isExpired()) {
// Replace our user with a fully loaded one
- $user = $this->getUser($user->userId, $request->getAttribute('ip_address'));
+ $user = $this->getUser(
+ $user->userId,
+ $request->getAttribute('ip_address'),
+ $this->getSession()->get('sessionHistoryId')
+ );
// We are authenticated, override with the populated user object
$this->setUserForRequest($user);
diff --git a/lib/Middleware/AuthenticationTrait.php b/lib/Middleware/AuthenticationTrait.php
index c4bd658c03..72d2d1972c 100644
--- a/lib/Middleware/AuthenticationTrait.php
+++ b/lib/Middleware/AuthenticationTrait.php
@@ -1,8 +1,8 @@
app->getContainer();
$user = $container->get('userFactory')->getById($userId);
@@ -131,6 +134,7 @@ protected function getUser($userId, $ip)
// Configure the log service with the logged in user id
$container->get('logService')->setUserId($user->userId);
$container->get('logService')->setIpAddress($ip);
+ $container->get('logService')->setSessionHistoryId($sessionHistoryId);
return $user;
}
@@ -140,7 +144,15 @@ protected function getUser($userId, $ip)
*/
protected function setUserForRequest($user)
{
- $this->app->getContainer()->set('user', $user);
+ $container = $this->app->getContainer();
+ $container->set('user', $user);
+
+ // Add this users information to the logger
+ $this->getLog()->getLoggerInterface()->pushProcessor(new UserLogProcessor(
+ $user->userId,
+ $this->getLog()->getSessionHistoryId(),
+ null,
+ ));
}
/**
diff --git a/lib/Middleware/CASAuthentication.php b/lib/Middleware/CASAuthentication.php
index 65d56e1686..a3b38774d5 100644
--- a/lib/Middleware/CASAuthentication.php
+++ b/lib/Middleware/CASAuthentication.php
@@ -1,6 +1,6 @@
app;
$app->getContainer()->set('logoutRoute', 'cas.logout');
- $app->map(['GET', 'POST'], '/cas/login', function (\Slim\Http\ServerRequest $request, \Slim\Http\Response $response) {
-
+ $app->map(['GET', 'POST'], '/cas/login', function (ServerRequest $request, Response $response) {
// Initiate CAS SSO
$this->initCasClient();
\phpCAS::setNoCasServerValidation();
@@ -72,7 +73,11 @@ public function addRoutes()
if (isset($user) && $user->userId > 0) {
// Load User
- $this->getUser($user->userId, $request->getAttribute('ip_address'));
+ $this->getUser(
+ $user->userId,
+ $request->getAttribute('ip_address'),
+ $this->getSession()->get('sessionHistoryId')
+ );
// Overwrite our stored user with this new object.
$this->setUserForRequest($user);
@@ -96,10 +101,19 @@ public function addRoutes()
// Service for the logout of the user.
// End the CAS session and the application session
- $app->get('/cas/logout', function (\Slim\Http\ServerRequest $request, \Slim\Http\Response $response) {
+ $app->get('/cas/logout', function (ServerRequest $request, Response $response) {
// The order is first: local session to destroy, second the cas session
// because phpCAS::logout() redirects to CAS server
- $this->completeLogoutFlow($this->getUser($_SESSION['userid'], $request->getAttribute('ip_address')), $this->getSession(), $this->getLog(), $request);
+ $this->completeLogoutFlow(
+ $this->getUser(
+ $_SESSION['userid'],
+ $request->getAttribute('ip_address'),
+ $_SESSION['sessionHistoryId']
+ ),
+ $this->getSession(),
+ $this->getLog(),
+ $request
+ );
$this->initCasClient();
\phpCAS::logout();
@@ -153,6 +167,9 @@ public function shouldRedirectPublicRoute($route)
/** @inheritDoc */
public function addToRequest(Request $request)
{
- return $request->withAttribute('excludedCsrfRoutes', array_merge($request->getAttribute('excludedCsrfRoutes', []), ['/cas/login', '/cas/logout']));
+ return $request->withAttribute(
+ 'excludedCsrfRoutes',
+ array_merge($request->getAttribute('excludedCsrfRoutes', []), ['/cas/login', '/cas/logout'])
+ );
}
}
diff --git a/lib/Middleware/Csp.php b/lib/Middleware/Csp.php
new file mode 100644
index 0000000000..e46bb514a0
--- /dev/null
+++ b/lib/Middleware/Csp.php
@@ -0,0 +1,72 @@
+.
+ */
+
+namespace Xibo\Middleware;
+
+use Psr\Container\ContainerInterface;
+use Psr\Http\Message\ResponseInterface as Response;
+use Psr\Http\Message\ServerRequestInterface as Request;
+use Psr\Http\Server\MiddlewareInterface as Middleware;
+use Psr\Http\Server\RequestHandlerInterface as RequestHandler;
+use Xibo\Helper\Random;
+
+/**
+ * CSP middleware to output CSP headers and add a CSP nonce to the view layer.
+ */
+class Csp implements Middleware
+{
+ public function __construct(private readonly ContainerInterface $container)
+ {
+ }
+
+ /**
+ * Call middleware
+ * @param Request $request
+ * @param RequestHandler $handler
+ * @return Response
+ * @throws \Psr\Container\ContainerExceptionInterface
+ * @throws \Psr\Container\NotFoundExceptionInterface
+ */
+ public function process(Request $request, RequestHandler $handler): Response
+ {
+ // Generate a nonce
+ $nonce = Random::generateString(8);
+
+ // Create CSP header
+ $csp = 'object-src \'none\'; script-src \'nonce-' . $nonce . '\'';
+ $csp .= ' \'unsafe-inline\' \'unsafe-eval\' \'strict-dynamic\' https: http:;';
+ $csp .= ' base-uri \'self\';';
+ $csp .= ' frame-ancestors \'self\';';
+
+ // Store it for use in the stack if needed
+ $request = $request->withAttribute('cspNonce', $nonce);
+
+ // Assign it to our view
+ $this->container->get('view')->offsetSet('cspNonce', $nonce);
+
+ // Call next middleware.
+ $response = $handler->handle($request);
+
+ // Add our header
+ return $response->withAddedHeader('Content-Security-Policy', $csp);
+ }
+}
diff --git a/lib/Middleware/LayoutLock.php b/lib/Middleware/LayoutLock.php
index 6feaa6ca0c..2a0c9a86d2 100644
--- a/lib/Middleware/LayoutLock.php
+++ b/lib/Middleware/LayoutLock.php
@@ -1,8 +1,8 @@
app = $app;
- $this->ttl = $ttl;
+ private LoggerInterface $logger;
+
+ /**
+ * @param \Slim\App $app
+ * @param int $ttl
+ * @throws \Psr\Container\ContainerExceptionInterface
+ * @throws \Psr\Container\NotFoundExceptionInterface
+ */
+ public function __construct(
+ private readonly App $app,
+ private readonly int $ttl = 300
+ ) {
+ $this->logger = $this->app->getContainer()->get('logService')->getLoggerInterface();
}
/**
- * This Middleware will Lock the Layout for the specific User and entry point
- * It is not added on the whole Application stack, instead it's added to selected groups of routes in routes.php
- *
- * For a User designing a Layout there will be no change in the way that User interacts with it
- * However if the same Layout will be accessed by different User or Entry Point then this middleware will throw an Exception with suitable message.
- *
- *
* @param Request $request
* @param RequestHandler $handler
* @return Response
- * @throws GeneralException
+ * @throws \Psr\Container\ContainerExceptionInterface
+ * @throws \Psr\Container\NotFoundExceptionInterface
+ * @throws \Xibo\Support\Exception\GeneralException
*/
public function process(Request $request, RequestHandler $handler): Response
{
@@ -74,26 +85,28 @@ public function process(Request $request, RequestHandler $handler): Response
// what route are we in?
$resource = $route->getPattern();
+ $routeName = $route->getName();
// skip for test suite
if ($request->getAttribute('name') === 'test' && $this->app->getContainer()->get('name') === 'test') {
return $handler->handle($request);
}
- if (strpos($resource,'layout') !== false) {
+ $this->logger->debug('layoutLock: testing route ' . $routeName . ', pattern ' . $resource);
+
+ if (str_contains($resource, 'layout') !== false) {
// Layout route, we can get the Layout id from route argument.
$this->layoutId = (int)$route->getArgument('id');
- } elseif (strpos($resource,'region') !== false) {
+ } elseif (str_contains($resource, 'region') !== false) {
// Region route, we need to get the Layout Id from layoutFactory by Region Id
-
// if it's POST request or positionAll then id in route is already LayoutId we can use
- if (strpos($resource, 'position') !== false || $route->getMethods()[0] === 'POST') {
+ if (str_contains($resource, 'position') !== false || $route->getMethods()[0] === 'POST') {
$this->layoutId = (int)$route->getArgument('id');
} else {
$regionId = (int)$route->getArgument('id');
$this->layoutId = $this->app->getContainer()->get('layoutFactory')->getByRegionId($regionId)->layoutId;
}
- } elseif (strpos($route->getName(),'playlist') !== false || $route->getName() === 'module.widget.add') {
+ } else if (str_contains($routeName, 'playlist') !== false || $routeName === 'module.widget.add') {
// Playlist Route, we need to get to LayoutId, Widget add the same behaviour.
$playlistId = (int)$route->getArgument('id');
$regionId = $this->app->getContainer()->get('playlistFactory')->getById($playlistId)->regionId;
@@ -103,7 +116,7 @@ public function process(Request $request, RequestHandler $handler): Response
if ($regionId != null) {
$this->layoutId = $this->app->getContainer()->get('layoutFactory')->getByRegionId($regionId)->layoutId;
}
- } elseif (strpos($route->getName(), 'widget') !== false) {
+ } else if (str_contains($routeName, 'widget') !== false) {
// Widget route, the id route argument will be Widget Id
$widgetId = (int)$route->getArgument('id');
@@ -117,7 +130,10 @@ public function process(Request $request, RequestHandler $handler): Response
}
} else {
// this should never happen
- throw new GeneralException(sprintf(__('Layout Lock Middleware called with incorrect route %s'), $route->getPattern()));
+ throw new GeneralException(sprintf(
+ __('Layout Lock Middleware called with incorrect route %s'),
+ $route->getPattern(),
+ ));
}
// run only if we have layout id, that will exclude non Region specific Playlist requests.
@@ -132,17 +148,19 @@ public function process(Request $request, RequestHandler $handler): Response
$objectToCache->userId = $this->userId;
$objectToCache->entryPoint = $this->entryPoint;
- $this->app->getContainer()->get('logger')->debug('Layout Lock middleware for LayoutId ' . $this->layoutId . ' userId ' . $this->userId . ' emtrypoint ' . $this->entryPoint);
+ $this->logger->debug('Layout Lock middleware for LayoutId ' . $this->layoutId
+ . ' userId ' . $this->userId . ' emtrypoint ' . $this->entryPoint);
$this->lock->setInvalidationMethod(Invalidation::OLD);
// Get the lock
// other requests will wait here until we're done, or we've timed out
$locked = $this->lock->get();
- $this->app->getContainer()->get('logger')->debug('$locked is ' . var_export($locked, true) . ', key = ' . $key);
+ $this->logger->debug('$locked is ' . var_export($locked, true) . ', key = ' . $key);
if ($this->lock->isMiss() || $locked === []) {
- $this->app->getContainer()->get('logger')->debug('Lock miss or false. Locking for ' . $this->ttl . ' seconds. $locked is ' . var_export($locked, true) . ', key = ' . $key);
+ $this->logger->debug('Lock miss or false. Locking for ' . $this->ttl . ' seconds. $locked is '
+ . var_export($locked, true) . ', key = ' . $key);
// so lock now
$this->lock->expiresAfter($this->ttl);
@@ -151,7 +169,9 @@ public function process(Request $request, RequestHandler $handler): Response
$this->lock->save();
} else {
// We are a hit - we must be locked
- $this->app->getContainer()->get('logger')->debug('LOCK hit for ' . $key . ' expires ' . $this->lock->getExpiration()->format(DateFormatHelper::getSystemFormat()) . ', created ' . $this->lock->getCreation()->format(DateFormatHelper::getSystemFormat()));
+ $this->logger->debug('LOCK hit for ' . $key . ' expires '
+ . $this->lock->getExpiration()->format(DateFormatHelper::getSystemFormat()) . ', created '
+ . $this->lock->getCreation()->format(DateFormatHelper::getSystemFormat()));
if ($locked->userId == $this->userId && $locked->entryPoint == $this->entryPoint) {
// the same user in the same entry point is editing the same layoutId
@@ -160,11 +180,16 @@ public function process(Request $request, RequestHandler $handler): Response
$this->lock->set($objectToCache);
$this->lock->save();
- $this->app->getContainer()->get('logger')->debug('Lock extended to ' . $this->lock->getExpiration()->format(DateFormatHelper::getSystemFormat()));
+ $this->logger->debug('Lock extended to '
+ . $this->lock->getExpiration()->format(DateFormatHelper::getSystemFormat()));
} else {
// different user or entry point
- $this->app->getContainer()->get('logger')->debug('Sorry Layout is locked by another User!');
- throw new AccessDeniedException(sprintf(__('Layout ID %d is locked by another User! Lock expires on: %s'), $locked->layoutId, $locked->expires));
+ $this->logger->debug('Sorry Layout is locked by another User!');
+ throw new AccessDeniedException(sprintf(
+ __('Layout ID %d is locked by another User! Lock expires on: %s'),
+ $locked->layoutId,
+ $locked->expires
+ ));
}
}
}
@@ -174,12 +199,18 @@ public function process(Request $request, RequestHandler $handler): Response
/**
* @return Pool
+ * @throws \Psr\Container\ContainerExceptionInterface
+ * @throws \Psr\Container\NotFoundExceptionInterface
*/
private function getPool()
{
return $this->app->getContainer()->get('pool');
}
+ /**
+ * Get the lock key
+ * @return mixed
+ */
private function getKey()
{
return $this->layoutId;
diff --git a/lib/Middleware/ListenersMiddleware.php b/lib/Middleware/ListenersMiddleware.php
index 8aaf677d5a..300470532a 100644
--- a/lib/Middleware/ListenersMiddleware.php
+++ b/lib/Middleware/ListenersMiddleware.php
@@ -43,12 +43,14 @@
use Xibo\Listener\LayoutListener;
use Xibo\Listener\MediaListener;
use Xibo\Listener\MenuBoardProviderListener;
+use Xibo\Listener\ModuleTemplateListener;
use Xibo\Listener\NotificationDataProviderListener;
use Xibo\Listener\PlaylistListener;
use Xibo\Listener\SyncGroupListener;
use Xibo\Listener\TaskListener;
use Xibo\Listener\WidgetListener;
use Xibo\Xmds\Listeners\XmdsAssetsListener;
+use Xibo\Xmds\Listeners\XmdsDataConnectorListener;
use Xibo\Xmds\Listeners\XmdsFontsListener;
use Xibo\Xmds\Listeners\XmdsPlayerBundleListener;
use Xibo\Xmds\Listeners\XmdsPlayerVersionListener;
@@ -127,6 +129,13 @@ public static function setListeners(App $app)
->useLogger($c->get('logger'))
->registerWithDispatcher($dispatcher);
+ // Listen for events that affect ModuleTemplates
+ (new ModuleTemplateListener(
+ $c->get('moduleTemplateFactory'),
+ ))
+ ->useLogger($c->get('logger'))
+ ->registerWithDispatcher($dispatcher);
+
// Listen for event that affect Playlist
(new PlaylistListener(
$c->get('playlistFactory'),
@@ -397,6 +406,11 @@ public static function setXmdsListeners(App $app)
->useLogger($c->get('logger'))
->useConfig($c->get('configService'));
+ $dataConnectorListener = new XmdsDataConnectorListener();
+ $dataConnectorListener
+ ->useLogger($c->get('logger'))
+ ->useConfig($c->get('configService'));
+
$dispatcher->addListener('xmds.dependency.list', [$playerBundleListener, 'onDependencyList']);
$dispatcher->addListener('xmds.dependency.request', [$playerBundleListener, 'onDependencyRequest']);
$dispatcher->addListener('xmds.dependency.list', [$fontsListener, 'onDependencyList']);
@@ -404,5 +418,6 @@ public static function setXmdsListeners(App $app)
$dispatcher->addListener('xmds.dependency.list', [$playerVersionListner, 'onDependencyList']);
$dispatcher->addListener('xmds.dependency.request', [$playerVersionListner, 'onDependencyRequest']);
$dispatcher->addListener('xmds.dependency.request', [$assetsListener, 'onDependencyRequest']);
+ $dispatcher->addListener('xmds.dependency.request', [$dataConnectorListener, 'onDependencyRequest']);
}
}
diff --git a/lib/Middleware/Log.php b/lib/Middleware/Log.php
index 3529354db0..8c2462b586 100644
--- a/lib/Middleware/Log.php
+++ b/lib/Middleware/Log.php
@@ -1,8 +1,8 @@
app = $app;
@@ -44,17 +49,14 @@ public function __construct($app)
* @param Request $request
* @param RequestHandler $handler
* @return Response
+ * @throws \Psr\Container\ContainerExceptionInterface
+ * @throws \Psr\Container\NotFoundExceptionInterface
*/
public function process(Request $request, RequestHandler $handler): Response
{
- $user = $this->app->getContainer()->get('user');
- $userId = (isset($user)) ? $user->userId : null;
+ $container = $this->app->getContainer();
- self::addLogProcessorToLogger(
- $this->app->getContainer()->get('logger'),
- $request,
- $userId
- );
+ self::addLogProcessorToLogger($container->get('logger'), $request);
return $handler->handle($request);
}
@@ -62,11 +64,14 @@ public function process(Request $request, RequestHandler $handler): Response
/**
* @param LoggerInterface $logger
* @param \Psr\Http\Message\ServerRequestInterface $request
- * @param int|null $userId
*/
- public static function addLogProcessorToLogger(LoggerInterface $logger, Request $request, $userId = null)
- {
- $logHelper = new LogProcessor($request->getUri()->getPath(), $request->getMethod(), $userId);
- $logger->pushProcessor($logHelper);
+ public static function addLogProcessorToLogger(
+ LoggerInterface $logger,
+ Request $request,
+ ): void {
+ $logger->pushProcessor(new RouteLogProcessor(
+ $request->getUri()->getPath(),
+ $request->getMethod(),
+ ));
}
-}
\ No newline at end of file
+}
diff --git a/lib/Middleware/SAMLAuthentication.php b/lib/Middleware/SAMLAuthentication.php
index edd70d4b94..c38241ccd3 100644
--- a/lib/Middleware/SAMLAuthentication.php
+++ b/lib/Middleware/SAMLAuthentication.php
@@ -202,9 +202,17 @@ public function addRoutes()
// Home page
if (isset($samlSettings['workflow']['homePage'])) {
try {
- $user->homePageId = $this->getUserGroupFactory()->getHomepageByName($samlSettings['workflow']['homePage'])->homepage;
+ $user->homePageId = $this->getUserGroupFactory()->getHomepageByName(
+ $samlSettings['workflow']['homePage']
+ )->homepage;
} catch (NotFoundException $exception) {
- $this->getLog()->info(sprintf('Provided homepage %s, does not exist, setting the icondashboard.view as homepage', $samlSettings['workflow']['homePage']));
+ $this->getLog()->info(
+ sprintf(
+ 'Provided homepage %s, does not exist,
+ setting the icondashboard.view as homepage',
+ $samlSettings['workflow']['homePage']
+ )
+ );
$user->homePageId = 'icondashboard.view';
}
} else {
@@ -263,7 +271,11 @@ public function addRoutes()
if (isset($user) && $user->userId > 0) {
// Load User
- $user = $this->getUser($user->userId, $request->getAttribute('ip_address'));
+ $user = $this->getUser(
+ $user->userId,
+ $request->getAttribute('ip_address'),
+ $this->getSession()->get('sessionHistoryId')
+ );
// Overwrite our stored user with this new object.
$this->setUserForRequest($user);
@@ -374,6 +386,7 @@ public function addRoutes()
$auth->processSLO(false, null, false, function () use ($request) {
// Audit that the IDP has completed this request.
$this->getLog()->setIpAddress($request->getAttribute('ip_address'));
+ $this->getLog()->setSessionHistoryId($this->getSession()->get('sessionHistoryId'));
$this->getLog()->audit('User', 0, 'Idp SLO completed', [
'UserAgent' => $request->getHeader('User-Agent')
]);
@@ -410,7 +423,11 @@ public function samlLogout(Request $request, Response $response)
) {
// Complete our own logout flow
$this->completeLogoutFlow(
- $this->getUser($_SESSION['userid'], $request->getAttribute('ip_address')),
+ $this->getUser(
+ $_SESSION['userid'],
+ $request->getAttribute('ip_address'),
+ $_SESSION['sessionHistoryId']
+ ),
$this->getSession(),
$this->getLog(),
$request
diff --git a/lib/Report/ApiRequests.php b/lib/Report/ApiRequests.php
new file mode 100644
index 0000000000..085bb8df2b
--- /dev/null
+++ b/lib/Report/ApiRequests.php
@@ -0,0 +1,468 @@
+.
+ */
+
+namespace Xibo\Report;
+
+use Carbon\Carbon;
+use Psr\Container\ContainerInterface;
+use Xibo\Controller\DataTablesDotNetTrait;
+use Xibo\Entity\ReportForm;
+use Xibo\Entity\ReportResult;
+use Xibo\Entity\ReportSchedule;
+use Xibo\Factory\ApplicationRequestsFactory;
+use Xibo\Factory\AuditLogFactory;
+use Xibo\Factory\LogFactory;
+use Xibo\Helper\DateFormatHelper;
+use Xibo\Helper\Translate;
+use Xibo\Support\Exception\AccessDeniedException;
+use Xibo\Support\Sanitizer\SanitizerInterface;
+
+class ApiRequests implements ReportInterface
+{
+ use ReportDefaultTrait, DataTablesDotNetTrait;
+
+ /** @var LogFactory */
+ private $logFactory;
+
+ /** @var AuditLogFactory */
+ private $auditLogFactory;
+
+ /** @var ApplicationRequestsFactory */
+ private $apiRequestsFactory;
+
+ /** @inheritdoc */
+ public function setFactories(ContainerInterface $container)
+ {
+ $this->logFactory = $container->get('logFactory');
+ $this->auditLogFactory = $container->get('auditLogFactory');
+ $this->apiRequestsFactory = $container->get('apiRequestsFactory');
+
+ return $this;
+ }
+
+ /** @inheritdoc */
+ public function getReportEmailTemplate()
+ {
+ return 'apirequests-email-template.twig';
+ }
+
+ /** @inheritdoc */
+ public function getSavedReportTemplate()
+ {
+ return 'apirequests-report-preview';
+ }
+
+ /** @inheritdoc */
+ public function getReportForm(): ReportForm
+ {
+ return new ReportForm(
+ 'apirequests-report-form',
+ 'apirequests',
+ 'Audit',
+ [
+ 'fromDate' => Carbon::now()->startOfMonth()->format(DateFormatHelper::getSystemFormat()),
+ 'toDate' => Carbon::now()->format(DateFormatHelper::getSystemFormat()),
+ ]
+ );
+ }
+
+ /** @inheritdoc */
+ public function getReportScheduleFormData(SanitizerInterface $sanitizedParams): array
+ {
+ $data = [];
+ $data['reportName'] = 'apirequests';
+
+ return [
+ 'template' => 'apirequests-schedule-form-add',
+ 'data' => $data
+ ];
+ }
+
+ /** @inheritdoc */
+ public function setReportScheduleFormData(SanitizerInterface $sanitizedParams): array
+ {
+ $filter = $sanitizedParams->getString('filter');
+ $filterCriteria['userId'] = $sanitizedParams->getInt('userId');
+ $filterCriteria['type'] = $sanitizedParams->getString('type');
+ $filterCriteria['scheduledReport'] = true;
+
+ $filterCriteria['filter'] = $filter;
+
+ $schedule = '';
+ if ($filter == 'daily') {
+ $schedule = ReportSchedule::$SCHEDULE_DAILY;
+ $filterCriteria['reportFilter'] = 'yesterday';
+ } elseif ($filter == 'weekly') {
+ $schedule = ReportSchedule::$SCHEDULE_WEEKLY;
+ $filterCriteria['reportFilter'] = 'lastweek';
+ } elseif ($filter == 'monthly') {
+ $schedule = ReportSchedule::$SCHEDULE_MONTHLY;
+ $filterCriteria['reportFilter'] = 'lastmonth';
+ } elseif ($filter == 'yearly') {
+ $schedule = ReportSchedule::$SCHEDULE_YEARLY;
+ $filterCriteria['reportFilter'] = 'lastyear';
+ }
+
+ $filterCriteria['sendEmail'] = $sanitizedParams->getCheckbox('sendEmail');
+ $filterCriteria['nonusers'] = $sanitizedParams->getString('nonusers');
+
+ // Return
+ return [
+ 'filterCriteria' => json_encode($filterCriteria),
+ 'schedule' => $schedule
+ ];
+ }
+
+ public function generateSavedReportName(SanitizerInterface $sanitizedParams): string
+ {
+ return sprintf(
+ __('%s API requests %s log report for User'),
+ ucfirst($sanitizedParams->getString('filter')),
+ ucfirst($sanitizedParams->getString('type'))
+ );
+ }
+
+ /** @inheritdoc */
+ public function restructureSavedReportOldJson($json)
+ {
+ return $json;
+ }
+
+ /** @inheritdoc */
+ public function getSavedReportResults($json, $savedReport)
+ {
+ $metadata = [
+ 'periodStart' => $json['metadata']['periodStart'],
+ 'periodEnd' => $json['metadata']['periodEnd'],
+ 'generatedOn' => Carbon::createFromTimestamp($savedReport->generatedOn)
+ ->format(DateFormatHelper::getSystemFormat()),
+ 'title' => $savedReport->saveAs,
+ 'logType' => $json['metadata']['logType']
+ ];
+
+ // Report result object
+ return new ReportResult(
+ $metadata,
+ $json['table'],
+ $json['recordsTotal'],
+ );
+ }
+
+ /** @inheritdoc */
+ public function getResults(SanitizerInterface $sanitizedParams)
+ {
+ if (!$this->getUser()->isSuperAdmin()) {
+ throw new AccessDeniedException();
+ }
+
+ $currentDate = Carbon::now()->startOfDay();
+
+ //
+ // From and To Date Selection
+ // --------------------------
+ // Our report has a range filter which determines whether the user has to enter their own from / to dates
+ // check the range filter first and set from/to dates accordingly.
+ $reportFilter = $sanitizedParams->getString('reportFilter');
+
+ // Use the current date as a helper
+ $now = Carbon::now();
+
+ switch ($reportFilter) {
+ // the monthly data starts from yesterday
+ case 'yesterday':
+ $fromDt = $now->copy()->startOfDay()->subDay();
+ $toDt = $now->copy()->startOfDay();
+ break;
+
+ case 'lastweek':
+ $fromDt = $now->copy()->locale(Translate::GetLocale())->startOfWeek()->subWeek();
+ $toDt = $fromDt->copy()->addWeek();
+ break;
+
+ case 'lastmonth':
+ $fromDt = $now->copy()->startOfMonth()->subMonth();
+ $toDt = $fromDt->copy()->addMonth();
+ break;
+
+ case 'lastyear':
+ $fromDt = $now->copy()->startOfYear()->subYear();
+ $toDt = $fromDt->copy()->addYear();
+ break;
+
+ case '':
+ default:
+ // Expect dates to be provided.
+ $fromDt = $sanitizedParams->getDate('fromDt');
+ $toDt = $sanitizedParams->getDate('toDt');
+
+ $fromDt = $fromDt->startOfDay();
+
+ // If toDt is current date then make it current datetime
+ if ($toDt->format('Y-m-d') == $currentDate->format('Y-m-d')) {
+ $toDt = Carbon::now();
+ } else {
+ $toDt = $toDt->addDay()->startOfDay();
+ }
+
+ break;
+ }
+
+ $type = $sanitizedParams->getString('type');
+
+ $metadata = [
+ 'periodStart' => Carbon::createFromTimestamp($fromDt->toDateTime()->format('U'))
+ ->format(DateFormatHelper::getSystemFormat()),
+ 'periodEnd' => Carbon::createFromTimestamp($toDt->toDateTime()->format('U'))
+ ->format(DateFormatHelper::getSystemFormat()),
+ 'logType' => $type,
+ ];
+
+ if ($type === 'audit') {
+ $params = [
+ 'fromDt' => $fromDt->format('U'),
+ 'toDt' => $toDt->format('U'),
+ ];
+
+ $sql = 'SELECT
+ `auditlog`.`logId`,
+ `auditlog`.`logDate`,
+ `user`.`userName`,
+ `auditlog`.`message`,
+ `auditlog`.`objectAfter`,
+ `auditlog`.`entity`,
+ `auditlog`.`entityId`,
+ `auditlog`.userId,
+ `auditlog`.ipAddress,
+ `auditlog`.requestId,
+ `application_requests_history`.applicationId,
+ `application_requests_history`.url,
+ `application_requests_history`.method,
+ `application_requests_history`.startTime,
+ `oauth_clients`.name AS applicationName
+ FROM `auditlog`
+ INNER JOIN `user`
+ ON `user`.`userId` = `auditlog`.`userId`
+ INNER JOIN `application_requests_history`
+ ON `application_requests_history`.`requestId` = `auditlog`.`requestId`
+ INNER JOIN `oauth_clients`
+ ON `oauth_clients`.id = `application_requests_history`.applicationId
+ WHERE `auditlog`.logDate BETWEEN :fromDt AND :toDt
+ ';
+
+ if ($sanitizedParams->getInt('userId') !== null) {
+ $sql .= ' AND `auditlog`.`userId` = :userId';
+ $params['userId'] = $sanitizedParams->getInt('userId');
+ }
+
+ if ($sanitizedParams->getInt('requestId') !== null) {
+ $sql .= ' AND `auditlog`.`requestId` = :requestId';
+ $params['requestId'] = $sanitizedParams->getInt('requestId');
+ }
+
+ // Sorting?
+ $sortOrder = $this->gridRenderSort($sanitizedParams);
+
+ if (is_array($sortOrder)) {
+ $sql .= ' ORDER BY ' . implode(',', $sortOrder);
+ }
+
+ $rows = [];
+ foreach ($this->store->select($sql, $params) as $row) {
+ $auditRecord = $this->auditLogFactory->create()->hydrate($row);
+ $auditRecord->setUnmatchedProperty(
+ 'applicationId',
+ $row['applicationId']
+ );
+
+ $auditRecord->setUnmatchedProperty(
+ 'applicationName',
+ $row['applicationName']
+ );
+
+ $auditRecord->setUnmatchedProperty(
+ 'url',
+ $row['url']
+ );
+
+ $auditRecord->setUnmatchedProperty(
+ 'method',
+ $row['method']
+ );
+
+ // decode for grid view, leave as json for email/preview.
+ if (!$sanitizedParams->getCheckbox('scheduledReport')) {
+ $auditRecord->objectAfter = json_decode($auditRecord->objectAfter);
+ }
+
+ $auditRecord->logDate = Carbon::createFromTimestamp($auditRecord->logDate)
+ ->format(DateFormatHelper::getSystemFormat());
+
+ $rows[] = $auditRecord;
+ }
+
+ return new ReportResult(
+ $metadata,
+ $rows,
+ count($rows),
+ );
+ } else if ($type === 'debug') {
+ $params = [
+ 'fromDt' => $fromDt->format(DateFormatHelper::getSystemFormat()),
+ 'toDt' => $toDt->format(DateFormatHelper::getSystemFormat()),
+ ];
+
+ $sql = 'SELECT
+ `log`.`logId`,
+ `log`.`logDate`,
+ `log`.`runNo`,
+ `log`.`channel`,
+ `log`.`page`,
+ `log`.`function`,
+ `log`.`type`,
+ `log`.`message`,
+ `log`.`userId`,
+ `log`.`requestId`,
+ `user`.`userName`,
+ `application_requests_history`.applicationId,
+ `application_requests_history`.url,
+ `application_requests_history`.method,
+ `application_requests_history`.startTime,
+ `oauth_clients`.name AS applicationName
+ FROM `log`
+ INNER JOIN `user`
+ ON `user`.`userId` = `log`.`userId`
+ INNER JOIN `application_requests_history`
+ ON `application_requests_history`.`requestId` = `log`.`requestId`
+ INNER JOIN `oauth_clients`
+ ON `oauth_clients`.id = `application_requests_history`.applicationId
+ WHERE `log`.logDate BETWEEN :fromDt AND :toDt
+ ';
+
+ if ($sanitizedParams->getInt('userId') !== null) {
+ $sql .= ' AND `log`.`userId` = :userId';
+ $params['userId'] = $sanitizedParams->getInt('userId');
+ }
+
+ if ($sanitizedParams->getInt('requestId') !== null) {
+ $sql .= ' AND `log`.`requestId` = :requestId';
+ $params['requestId'] = $sanitizedParams->getInt('requestId');
+ }
+
+ // Sorting?
+ $sortOrder = $this->gridRenderSort($sanitizedParams);
+
+ if (is_array($sortOrder)) {
+ $sql .= ' ORDER BY ' . implode(',', $sortOrder);
+ }
+
+ $rows = [];
+ foreach ($this->store->select($sql, $params) as $row) {
+ $logRecord = $this->logFactory->createEmpty()->hydrate($row, ['htmlStringProperties' => ['message']]);
+ $logRecord->setUnmatchedProperty(
+ 'applicationId',
+ $row['applicationId']
+ );
+
+ $logRecord->setUnmatchedProperty(
+ 'applicationName',
+ $row['applicationName']
+ );
+
+ $logRecord->setUnmatchedProperty(
+ 'url',
+ $row['url']
+ );
+
+ $logRecord->setUnmatchedProperty(
+ 'method',
+ $row['method']
+ );
+
+ $rows[] = $logRecord;
+ }
+
+ return new ReportResult(
+ $metadata,
+ $rows,
+ count($rows),
+ );
+ } else {
+ $params = [
+ 'fromDt' => $fromDt->format(DateFormatHelper::getSystemFormat()),
+ 'toDt' => $toDt->format(DateFormatHelper::getSystemFormat()),
+ ];
+
+ $sql = 'SELECT
+ `application_requests_history`.applicationId,
+ `application_requests_history`.requestId,
+ `application_requests_history`.userId,
+ `application_requests_history`.url,
+ `application_requests_history`.method,
+ `application_requests_history`.startTime,
+ `oauth_clients`.name AS applicationName,
+ `user`.`userName`
+ FROM `application_requests_history`
+ INNER JOIN `user`
+ ON `user`.`userId` = `application_requests_history`.`userId`
+ INNER JOIN `oauth_clients`
+ ON `oauth_clients`.id = `application_requests_history`.applicationId
+ WHERE `application_requests_history`.startTime BETWEEN :fromDt AND :toDt
+ ';
+
+ if ($sanitizedParams->getInt('userId') !== null) {
+ $sql .= ' AND `application_requests_history`.`userId` = :userId';
+ $params['userId'] = $sanitizedParams->getInt('userId');
+ }
+
+ // Sorting?
+ $sortOrder = $this->gridRenderSort($sanitizedParams);
+
+ if (is_array($sortOrder)) {
+ $sql .= ' ORDER BY ' . implode(',', $sortOrder);
+ }
+
+ $rows = [];
+
+ foreach ($this->store->select($sql, $params) as $row) {
+ $apiRequestRecord = $this->apiRequestsFactory->createEmpty()->hydrate($row);
+
+ $apiRequestRecord->setUnmatchedProperty(
+ 'userName',
+ $row['userName']
+ );
+
+ $apiRequestRecord->setUnmatchedProperty(
+ 'applicationName',
+ $row['applicationName']
+ );
+
+ $rows[] = $apiRequestRecord;
+ }
+
+ return new ReportResult(
+ $metadata,
+ $rows,
+ count($rows),
+ );
+ }
+ }
+}
diff --git a/lib/Report/Bandwidth.php b/lib/Report/Bandwidth.php
index 3fb2bc333f..2d18f37f46 100644
--- a/lib/Report/Bandwidth.php
+++ b/lib/Report/Bandwidth.php
@@ -255,7 +255,7 @@ public function getResults(SanitizerInterface $sanitizedParams)
$params['displayid'] = $displayId;
}
- $SQL .= 'GROUP BY display.display ';
+ $SQL .= 'GROUP BY display.displayId, display.display ';
if ($displayId != 0) {
$SQL .= ' , bandwidthtype.name ';
diff --git a/lib/Report/DisplayAlerts.php b/lib/Report/DisplayAlerts.php
new file mode 100644
index 0000000000..37abf820e3
--- /dev/null
+++ b/lib/Report/DisplayAlerts.php
@@ -0,0 +1,353 @@
+.
+ */
+
+namespace Xibo\Report;
+
+use Carbon\Carbon;
+use Psr\Container\ContainerInterface;
+use Xibo\Controller\DataTablesDotNetTrait;
+use Xibo\Entity\ReportForm;
+use Xibo\Entity\ReportResult;
+use Xibo\Entity\ReportSchedule;
+use Xibo\Factory\DisplayEventFactory;
+use Xibo\Factory\DisplayFactory;
+use Xibo\Factory\DisplayGroupFactory;
+use Xibo\Helper\DateFormatHelper;
+use Xibo\Helper\Translate;
+use Xibo\Support\Sanitizer\SanitizerInterface;
+
+/**
+ * Class DisplayAlerts
+ * @package Xibo\Report
+ */
+class DisplayAlerts implements ReportInterface
+{
+ use ReportDefaultTrait, DataTablesDotNetTrait;
+
+ /** @var DisplayFactory */
+ private $displayFactory;
+ /** @var DisplayGroupFactory */
+ private $displayGroupFactory;
+ /** @var DisplayEventFactory */
+ private $displayEventFactory;
+
+ public function setFactories(ContainerInterface $container)
+ {
+ $this->displayFactory = $container->get('displayFactory');
+ $this->displayGroupFactory = $container->get('displayGroupFactory');
+ $this->displayEventFactory = $container->get('displayEventFactory');
+
+ return $this;
+ }
+
+ public function getReportEmailTemplate()
+ {
+ return 'displayalerts-email-template.twig';
+ }
+
+ public function getSavedReportTemplate()
+ {
+ return 'displayalerts-report-preview';
+ }
+
+ public function getReportForm()
+ {
+ return new ReportForm(
+ 'displayalerts-report-form',
+ 'displayalerts',
+ 'Display',
+ [
+ 'fromDate' => Carbon::now()->startOfMonth()->format(DateFormatHelper::getSystemFormat()),
+ 'toDate' => Carbon::now()->format(DateFormatHelper::getSystemFormat()),
+ ]
+ );
+ }
+
+ public function getReportScheduleFormData(SanitizerInterface $sanitizedParams)
+ {
+ $data = [];
+ $data['reportName'] = 'displayalerts';
+
+ return [
+ 'template' => 'displayalerts-schedule-form-add',
+ 'data' => $data
+ ];
+ }
+
+ public function setReportScheduleFormData(SanitizerInterface $sanitizedParams)
+ {
+ $filter = $sanitizedParams->getString('filter');
+ $displayId = $sanitizedParams->getInt('displayId');
+ $displayGroupIds = $sanitizedParams->getIntArray('displayGroupId', ['default' => []]);
+ $filterCriteria['displayId'] = $displayId;
+
+ if (empty($displayId) && count($displayGroupIds) > 0) {
+ $filterCriteria['displayGroupId'] = $displayGroupIds;
+ }
+
+ $filterCriteria['filter'] = $filter;
+
+ $schedule = '';
+ if ($filter == 'daily') {
+ $schedule = ReportSchedule::$SCHEDULE_DAILY;
+ $filterCriteria['reportFilter'] = 'yesterday';
+ } elseif ($filter == 'weekly') {
+ $schedule = ReportSchedule::$SCHEDULE_WEEKLY;
+ $filterCriteria['reportFilter'] = 'lastweek';
+ } elseif ($filter == 'monthly') {
+ $schedule = ReportSchedule::$SCHEDULE_MONTHLY;
+ $filterCriteria['reportFilter'] = 'lastmonth';
+ } elseif ($filter == 'yearly') {
+ $schedule = ReportSchedule::$SCHEDULE_YEARLY;
+ $filterCriteria['reportFilter'] = 'lastyear';
+ }
+
+ $filterCriteria['sendEmail'] = $sanitizedParams->getCheckbox('sendEmail');
+ $filterCriteria['nonusers'] = $sanitizedParams->getString('nonusers');
+
+ // Return
+ return [
+ 'filterCriteria' => json_encode($filterCriteria),
+ 'schedule' => $schedule
+ ];
+ }
+
+ public function generateSavedReportName(SanitizerInterface $sanitizedParams)
+ {
+ return sprintf(__('%s report for Display'), ucfirst($sanitizedParams->getString('filter')));
+ }
+
+ public function restructureSavedReportOldJson($json)
+ {
+ return $json;
+ }
+
+ public function getSavedReportResults($json, $savedReport)
+ {
+ $metadata = [
+ 'periodStart' => $json['metadata']['periodStart'],
+ 'periodEnd' => $json['metadata']['periodEnd'],
+ 'generatedOn' => Carbon::createFromTimestamp($savedReport->generatedOn)
+ ->format(DateFormatHelper::getSystemFormat()),
+ 'title' => $savedReport->saveAs,
+ ];
+
+ // Report result object
+ return new ReportResult(
+ $metadata,
+ $json['table'],
+ $json['recordsTotal'],
+ );
+ }
+
+ public function getResults(SanitizerInterface $sanitizedParams)
+ {
+ $displayIds = $this->getDisplayIdFilter($sanitizedParams);
+ $onlyLoggedIn = $sanitizedParams->getCheckbox('onlyLoggedIn') == 1;
+
+ $currentDate = Carbon::now()->startOfDay();
+
+ //
+ // From and To Date Selection
+ // --------------------------
+ // Our report has a range filter which determines whether the user has to enter their own from / to dates
+ // check the range filter first and set from/to dates accordingly.
+ $reportFilter = $sanitizedParams->getString('reportFilter');
+
+ // Use the current date as a helper
+ $now = Carbon::now();
+
+ switch ($reportFilter) {
+ // the monthly data starts from yesterday
+ case 'yesterday':
+ $fromDt = $now->copy()->startOfDay()->subDay();
+ $toDt = $now->copy()->startOfDay();
+ break;
+
+ case 'lastweek':
+ $fromDt = $now->copy()->locale(Translate::GetLocale())->startOfWeek()->subWeek();
+ $toDt = $fromDt->copy()->addWeek();
+ break;
+
+ case 'lastmonth':
+ $fromDt = $now->copy()->startOfMonth()->subMonth();
+ $toDt = $fromDt->copy()->addMonth();
+ break;
+
+ case 'lastyear':
+ $fromDt = $now->copy()->startOfYear()->subYear();
+ $toDt = $fromDt->copy()->addYear();
+ break;
+
+ case '':
+ default:
+ // Expect dates to be provided.
+ $fromDt = $sanitizedParams->getDate('fromDt');
+ $toDt = $sanitizedParams->getDate('toDt');
+
+ $fromDt = $fromDt->startOfDay();
+
+ // If toDt is current date then make it current datetime
+ if ($toDt->format('Y-m-d') == $currentDate->format('Y-m-d')) {
+ $toDt = Carbon::now();
+ } else {
+ $toDt = $toDt->addDay()->startOfDay();
+ }
+
+ break;
+ }
+
+ $metadata = [
+ 'periodStart' => Carbon::createFromTimestamp($fromDt->toDateTime()->format('U'))
+ ->format(DateFormatHelper::getSystemFormat()),
+ 'periodEnd' => Carbon::createFromTimestamp($toDt->toDateTime()->format('U'))
+ ->format(DateFormatHelper::getSystemFormat()),
+ ];
+
+ $params = [
+ 'start' => $fromDt->format('U'),
+ 'end' => $toDt->format('U')
+ ];
+
+ $sql = 'SELECT
+ `displayevent`.displayId,
+ `display`.display,
+ `displayevent`.start,
+ `displayevent`.end,
+ `displayevent`.eventTypeId,
+ `displayevent`.refId,
+ `displayevent`.detail
+ FROM `displayevent`
+ INNER JOIN `display` ON `display`.displayId = `displayevent`.displayId
+ INNER JOIN `lkdisplaydg` ON `display`.displayId = `lkdisplaydg`.displayId
+ INNER JOIN `displaygroup` ON `displaygroup`.displayGroupId = `lkdisplaydg`.displayGroupId
+ AND `displaygroup`.isDisplaySpecific = 1
+ WHERE `displayevent`.eventDate BETWEEN :start AND :end ';
+
+ if (count($displayIds) > 0) {
+ $sql .= 'AND `displayevent`.displayId IN (' . implode(',', $displayIds) . ')';
+ }
+
+ if ($onlyLoggedIn) {
+ $sql .= ' AND `display`.loggedIn = 1 ';
+ }
+
+ // Tags
+ if (!empty($sanitizedParams->getString('tags'))) {
+ $tagFilter = $sanitizedParams->getString('tags');
+
+ if (trim($tagFilter) === '--no-tag') {
+ $sql .= ' AND `displaygroup`.displaygroupId NOT IN (
+ SELECT `lktagdisplaygroup`.displaygroupId
+ FROM tag
+ INNER JOIN `lktagdisplaygroup`
+ ON `lktagdisplaygroup`.tagId = tag.tagId
+ )
+ ';
+ } else {
+ $operator = $sanitizedParams->getCheckbox('exactTags') == 1 ? '=' : 'LIKE';
+ $logicalOperator = $sanitizedParams->getString('logicalOperator', ['default' => 'OR']);
+ $allTags = explode(',', $tagFilter);
+ $notTags = [];
+ $tags = [];
+
+ foreach ($allTags as $tag) {
+ if (str_starts_with($tag, '-')) {
+ $notTags[] = ltrim(($tag), '-');
+ } else {
+ $tags[] = $tag;
+ }
+ }
+
+ if (!empty($notTags)) {
+ $sql .= ' AND `displaygroup`.displaygroupId NOT IN (
+ SELECT `lktagdisplaygroup`.displaygroupId
+ FROM tag
+ INNER JOIN `lktagdisplaygroup`
+ ON `lktagdisplaygroup`.tagId = tag.tagId
+ ';
+
+ $this->displayFactory->tagFilter(
+ $notTags,
+ 'lktagdisplaygroup',
+ 'lkTagDisplayGroupId',
+ 'displayGroupId',
+ $logicalOperator,
+ $operator,
+ true,
+ $sql,
+ $params
+ );
+ }
+
+ if (!empty($tags)) {
+ $sql .= ' AND `displaygroup`.displaygroupId IN (
+ SELECT `lktagdisplaygroup`.displaygroupId
+ FROM tag
+ INNER JOIN `lktagdisplaygroup`
+ ON `lktagdisplaygroup`.tagId = tag.tagId
+ ';
+
+ $this->displayFactory->tagFilter(
+ $tags,
+ 'lktagdisplaygroup',
+ 'lkTagDisplayGroupId',
+ 'displayGroupId',
+ $logicalOperator,
+ $operator,
+ false,
+ $sql,
+ $params
+ );
+ }
+ }
+ }
+
+ // Sorting?
+ $sortOrder = $this->gridRenderSort($sanitizedParams);
+
+ if (is_array($sortOrder)) {
+ $sql .= 'ORDER BY ' . implode(',', $sortOrder);
+ }
+
+ $rows = [];
+ foreach ($this->store->select($sql, $params) as $row) {
+ $displayEvent = $this->displayEventFactory->createEmpty()->hydrate($row);
+ $displayEvent->setUnmatchedProperty(
+ 'eventType',
+ $displayEvent->getEventNameFromId($displayEvent->eventTypeId)
+ );
+ $displayEvent->setUnmatchedProperty(
+ 'display',
+ $row['display']
+ );
+
+ $rows[] = $displayEvent;
+ }
+
+ return new ReportResult(
+ $metadata,
+ $rows,
+ count($rows),
+ );
+ }
+}
diff --git a/lib/Report/ProofOfPlay.php b/lib/Report/ProofOfPlay.php
index daf9f7460b..cef45eeed6 100644
--- a/lib/Report/ProofOfPlay.php
+++ b/lib/Report/ProofOfPlay.php
@@ -1,6 +1,6 @@
getString('sortBy');
- $columns = ($sortBy == '') ? ['widgetId'] : [$sortBy];
+ $sortBy = $sanitizedParams->getString('sortBy', ['default' => 'widgetId']);
+ if (!in_array($sortBy, [
+ 'widgetId',
+ 'type',
+ 'display',
+ 'displayId',
+ 'media',
+ 'layout',
+ 'layoutId',
+ 'tag',
+ ])) {
+ throw new InvalidArgumentException(__('Invalid Sort By'), 'sortBy');
+ }
+ $columns = [$sortBy];
}
//
diff --git a/lib/Report/SessionHistory.php b/lib/Report/SessionHistory.php
new file mode 100644
index 0000000000..5450dff7bc
--- /dev/null
+++ b/lib/Report/SessionHistory.php
@@ -0,0 +1,449 @@
+.
+ */
+
+namespace Xibo\Report;
+
+use Carbon\Carbon;
+use Psr\Container\ContainerInterface;
+use Xibo\Controller\DataTablesDotNetTrait;
+use Xibo\Entity\ReportForm;
+use Xibo\Entity\ReportResult;
+use Xibo\Entity\ReportSchedule;
+use Xibo\Factory\AuditLogFactory;
+use Xibo\Factory\LogFactory;
+use Xibo\Helper\DateFormatHelper;
+use Xibo\Helper\Translate;
+use Xibo\Support\Exception\AccessDeniedException;
+use Xibo\Support\Sanitizer\SanitizerInterface;
+
+class SessionHistory implements ReportInterface
+{
+ use ReportDefaultTrait, DataTablesDotNetTrait;
+
+ /** @var LogFactory */
+ private $logFactory;
+
+ /** @var AuditLogFactory */
+ private $auditLogFactory;
+
+ /** @inheritdoc */
+ public function setFactories(ContainerInterface $container)
+ {
+ $this->logFactory = $container->get('logFactory');
+ $this->auditLogFactory = $container->get('auditLogFactory');
+
+ return $this;
+ }
+
+ /** @inheritdoc */
+ public function getReportEmailTemplate()
+ {
+ return 'sessionhistory-email-template.twig';
+ }
+
+ /** @inheritdoc */
+ public function getSavedReportTemplate()
+ {
+ return 'sessionhistory-report-preview';
+ }
+
+ /** @inheritdoc */
+ public function getReportForm(): ReportForm
+ {
+ return new ReportForm(
+ 'sessionhistory-report-form',
+ 'sessionhistory',
+ 'Audit',
+ [
+ 'fromDate' => Carbon::now()->startOfMonth()->format(DateFormatHelper::getSystemFormat()),
+ 'toDate' => Carbon::now()->format(DateFormatHelper::getSystemFormat()),
+ ]
+ );
+ }
+
+ /** @inheritdoc */
+ public function getReportScheduleFormData(SanitizerInterface $sanitizedParams): array
+ {
+ $data = [];
+ $data['reportName'] = 'sessionhistory';
+
+ return [
+ 'template' => 'sessionhistory-schedule-form-add',
+ 'data' => $data
+ ];
+ }
+
+ /** @inheritdoc */
+ public function setReportScheduleFormData(SanitizerInterface $sanitizedParams): array
+ {
+ $filter = $sanitizedParams->getString('filter');
+ $filterCriteria['userId'] = $sanitizedParams->getInt('userId');
+ $filterCriteria['type'] = $sanitizedParams->getString('type');
+ $filterCriteria['scheduledReport'] = true;
+
+ $filterCriteria['filter'] = $filter;
+
+ $schedule = '';
+ if ($filter == 'daily') {
+ $schedule = ReportSchedule::$SCHEDULE_DAILY;
+ $filterCriteria['reportFilter'] = 'yesterday';
+ } elseif ($filter == 'weekly') {
+ $schedule = ReportSchedule::$SCHEDULE_WEEKLY;
+ $filterCriteria['reportFilter'] = 'lastweek';
+ } elseif ($filter == 'monthly') {
+ $schedule = ReportSchedule::$SCHEDULE_MONTHLY;
+ $filterCriteria['reportFilter'] = 'lastmonth';
+ } elseif ($filter == 'yearly') {
+ $schedule = ReportSchedule::$SCHEDULE_YEARLY;
+ $filterCriteria['reportFilter'] = 'lastyear';
+ }
+
+ $filterCriteria['sendEmail'] = $sanitizedParams->getCheckbox('sendEmail');
+ $filterCriteria['nonusers'] = $sanitizedParams->getString('nonusers');
+
+ // Return
+ return [
+ 'filterCriteria' => json_encode($filterCriteria),
+ 'schedule' => $schedule
+ ];
+ }
+
+ public function generateSavedReportName(SanitizerInterface $sanitizedParams): string
+ {
+ return sprintf(
+ __('%s Session %s log report for User'),
+ ucfirst($sanitizedParams->getString('filter')),
+ ucfirst($sanitizedParams->getString('type'))
+ );
+ }
+
+ /** @inheritdoc */
+ public function restructureSavedReportOldJson($json)
+ {
+ return $json;
+ }
+
+ /** @inheritdoc */
+ public function getSavedReportResults($json, $savedReport)
+ {
+ $metadata = [
+ 'periodStart' => $json['metadata']['periodStart'],
+ 'periodEnd' => $json['metadata']['periodEnd'],
+ 'generatedOn' => Carbon::createFromTimestamp($savedReport->generatedOn)
+ ->format(DateFormatHelper::getSystemFormat()),
+ 'title' => $savedReport->saveAs,
+ ];
+
+ // Report result object
+ return new ReportResult(
+ $metadata,
+ $json['table'],
+ $json['recordsTotal'],
+ );
+ }
+
+ /** @inheritdoc */
+ public function getResults(SanitizerInterface $sanitizedParams)
+ {
+ if (!$this->getUser()->isSuperAdmin()) {
+ throw new AccessDeniedException();
+ }
+
+ $currentDate = Carbon::now()->startOfDay();
+
+ //
+ // From and To Date Selection
+ // --------------------------
+ // Our report has a range filter which determines whether the user has to enter their own from / to dates
+ // check the range filter first and set from/to dates accordingly.
+ $reportFilter = $sanitizedParams->getString('reportFilter');
+
+ // Use the current date as a helper
+ $now = Carbon::now();
+
+ switch ($reportFilter) {
+ // the monthly data starts from yesterday
+ case 'yesterday':
+ $fromDt = $now->copy()->startOfDay()->subDay();
+ $toDt = $now->copy()->startOfDay();
+ break;
+
+ case 'lastweek':
+ $fromDt = $now->copy()->locale(Translate::GetLocale())->startOfWeek()->subWeek();
+ $toDt = $fromDt->copy()->addWeek();
+ break;
+
+ case 'lastmonth':
+ $fromDt = $now->copy()->startOfMonth()->subMonth();
+ $toDt = $fromDt->copy()->addMonth();
+ break;
+
+ case 'lastyear':
+ $fromDt = $now->copy()->startOfYear()->subYear();
+ $toDt = $fromDt->copy()->addYear();
+ break;
+
+ case '':
+ default:
+ // Expect dates to be provided.
+ $fromDt = $sanitizedParams->getDate('fromDt');
+ $toDt = $sanitizedParams->getDate('toDt');
+
+ $fromDt = $fromDt->startOfDay();
+
+ // If toDt is current date then make it current datetime
+ if ($toDt->format('Y-m-d') == $currentDate->format('Y-m-d')) {
+ $toDt = Carbon::now();
+ } else {
+ $toDt = $toDt->addDay()->startOfDay();
+ }
+
+ break;
+ }
+
+ $metadata = [
+ 'periodStart' => Carbon::createFromTimestamp($fromDt->toDateTime()->format('U'))
+ ->format(DateFormatHelper::getSystemFormat()),
+ 'periodEnd' => Carbon::createFromTimestamp($toDt->toDateTime()->format('U'))
+ ->format(DateFormatHelper::getSystemFormat()),
+ ];
+
+ $type = $sanitizedParams->getString('type');
+
+ if ($type === 'audit') {
+ $params = [
+ 'fromDt' => $fromDt->format('U'),
+ 'toDt' => $toDt->format('U'),
+ ];
+
+ $sql = 'SELECT
+ `auditlog`.`logId`,
+ `auditlog`.`logDate`,
+ `user`.`userName`,
+ `auditlog`.`message`,
+ `auditlog`.`objectAfter`,
+ `auditlog`.`entity`,
+ `auditlog`.`entityId`,
+ `auditlog`.userId,
+ `auditlog`.ipAddress,
+ `auditlog`.sessionHistoryId,
+ `session_history`.userAgent
+ FROM `auditlog`
+ INNER JOIN `user` ON `user`.`userId` = `auditlog`.`userId`
+ INNER JOIN `session_history` ON `session_history`.`sessionId` = `auditlog`.`sessionHistoryId`
+ WHERE `auditlog`.logDate BETWEEN :fromDt AND :toDt
+ ';
+
+ if ($sanitizedParams->getInt('userId') !== null) {
+ $sql .= ' AND `auditlog`.`userId` = :userId';
+ $params['userId'] = $sanitizedParams->getInt('userId');
+ }
+
+ if ($sanitizedParams->getInt('sessionHistoryId') !== null) {
+ $sql .= ' AND `auditlog`.`sessionHistoryId` = :sessionHistoryId';
+ $params['sessionHistoryId'] = $sanitizedParams->getInt('sessionHistoryId');
+ }
+
+ // Sorting?
+ $sortOrder = $this->gridRenderSort($sanitizedParams);
+
+ if (is_array($sortOrder)) {
+ $sql .= ' ORDER BY ' . implode(',', $sortOrder);
+ }
+
+ $rows = [];
+ foreach ($this->store->select($sql, $params) as $row) {
+ $auditRecord = $this->auditLogFactory->create()->hydrate($row);
+ $auditRecord->setUnmatchedProperty(
+ 'userAgent',
+ $row['userAgent']
+ );
+
+ // decode for grid view, leave as json for email/preview.
+ if (!$sanitizedParams->getCheckbox('scheduledReport')) {
+ $auditRecord->objectAfter = json_decode($auditRecord->objectAfter);
+ }
+
+ $auditRecord->logDate = Carbon::createFromTimestamp($auditRecord->logDate)
+ ->format(DateFormatHelper::getSystemFormat());
+
+ $rows[] = $auditRecord;
+ }
+
+ return new ReportResult(
+ $metadata,
+ $rows,
+ count($rows),
+ );
+ } else if ($type === 'debug') {
+ $params = [
+ 'fromDt' => $fromDt->format(DateFormatHelper::getSystemFormat()),
+ 'toDt' => $toDt->format(DateFormatHelper::getSystemFormat()),
+ ];
+
+ $sql = 'SELECT
+ `log`.`logId`,
+ `log`.`logDate`,
+ `log`.`runNo`,
+ `log`.`channel`,
+ `log`.`page`,
+ `log`.`function`,
+ `log`.`type`,
+ `log`.`message`,
+ `log`.`userId`,
+ `log`.`sessionHistoryId`,
+ `user`.`userName`,
+ `display`.`displayId`,
+ `display`.`display`,
+ `session_history`.ipAddress,
+ `session_history`.userAgent
+ FROM `log`
+ LEFT OUTER JOIN `display` ON `display`.`displayid` = `log`.`displayid`
+ INNER JOIN `user` ON `user`.`userId` = `log`.`userId`
+ INNER JOIN `session_history` ON `session_history`.`sessionId` = `log`.`sessionHistoryId`
+ WHERE `log`.logDate BETWEEN :fromDt AND :toDt
+ ';
+
+ if ($sanitizedParams->getInt('userId') !== null) {
+ $sql .= ' AND `log`.`userId` = :userId';
+ $params['userId'] = $sanitizedParams->getInt('userId');
+ }
+
+ if ($sanitizedParams->getInt('sessionHistoryId') !== null) {
+ $sql .= ' AND `log`.`sessionHistoryId` = :sessionHistoryId';
+ $params['sessionHistoryId'] = $sanitizedParams->getInt('sessionHistoryId');
+ }
+
+ // Sorting?
+ $sortOrder = $this->gridRenderSort($sanitizedParams);
+
+ if (is_array($sortOrder)) {
+ $sql .= ' ORDER BY ' . implode(',', $sortOrder);
+ }
+
+ $rows = [];
+ foreach ($this->store->select($sql, $params) as $row) {
+ $logRecord = $this->logFactory->createEmpty()->hydrate($row, ['htmlStringProperties' => ['message']]);
+ $logRecord->setUnmatchedProperty(
+ 'userAgent',
+ $row['userAgent']
+ );
+
+ $logRecord->setUnmatchedProperty(
+ 'ipAddress',
+ $row['ipAddress']
+ );
+
+ $logRecord->setUnmatchedProperty(
+ 'userName',
+ $row['userName']
+ );
+
+ $rows[] = $logRecord;
+ }
+
+ return new ReportResult(
+ $metadata,
+ $rows,
+ count($rows),
+ );
+ } else {
+ $params = [
+ 'fromDt' => $fromDt->format(DateFormatHelper::getSystemFormat()),
+ 'toDt' => $toDt->format(DateFormatHelper::getSystemFormat()),
+ ];
+
+ $sql = 'SELECT
+ `session_history`.`sessionId`,
+ `session_history`.`startTime`,
+ `session_history`.`userId`,
+ `session_history`.`userAgent`,
+ `session_history`.`ipAddress`,
+ `session_history`.`lastUsedTime`,
+ `user`.`userName`,
+ `usertype`.`userType`
+ FROM `session_history`
+ LEFT OUTER JOIN `user` ON `user`.`userId` = `session_history`.`userId`
+ LEFT OUTER JOIN `usertype` ON `usertype`.`userTypeId` = `user`.`userTypeId`
+ WHERE `session_history`.startTime BETWEEN :fromDt AND :toDt
+ ';
+
+ if ($sanitizedParams->getInt('userId') !== null) {
+ $sql .= ' AND `session_history`.`userId` = :userId';
+ $params['userId'] = $sanitizedParams->getInt('userId');
+ }
+
+ if ($sanitizedParams->getInt('sessionHistoryId') !== null) {
+ $sql .= ' AND `session_history`.`sessionId` = :sessionHistoryId';
+ $params['sessionHistoryId'] = $sanitizedParams->getInt('sessionHistoryId');
+ }
+
+ // Sorting?
+ $sortOrder = $this->gridRenderSort($sanitizedParams);
+
+ if (is_array($sortOrder)) {
+ $sql .= ' ORDER BY ' . implode(',', $sortOrder);
+ }
+
+ $rows = [];
+ foreach ($this->store->select($sql, $params) as $row) {
+ $sessionRecord = $this->logFactory->createEmpty()->hydrate($row, ['htmlStringProperties' => ['message']]);
+ $duration = isset($row['lastUsedTime'])
+ ? date_diff(date_create($row['startTime']), date_create($row['lastUsedTime']))->format('%H:%I:%S')
+ : null;
+
+ $sessionRecord->setUnmatchedProperty(
+ 'userAgent',
+ $row['userAgent']
+ );
+
+ $sessionRecord->setUnmatchedProperty(
+ 'ipAddress',
+ $row['ipAddress']
+ );
+
+ $sessionRecord->setUnmatchedProperty(
+ 'userName',
+ $row['userName']
+ );
+
+ $sessionRecord->setUnmatchedProperty(
+ 'endTime',
+ $row['lastUsedTime']
+ );
+
+ $sessionRecord->setUnmatchedProperty(
+ 'duration',
+ $duration
+ );
+
+ $rows[] = $sessionRecord;
+ }
+
+ return new ReportResult(
+ $metadata,
+ $rows,
+ count($rows),
+ );
+ }
+ }
+}
diff --git a/lib/Report/TimeConnected.php b/lib/Report/TimeConnected.php
index 64080a8d9f..da3eb0e07a 100644
--- a/lib/Report/TimeConnected.php
+++ b/lib/Report/TimeConnected.php
@@ -1,8 +1,8 @@
0) {
- $query .= ' WHERE display.displayID IN (' . implode(',', $displayIds) . ') ';
+ $query .= ' AND display.displayID IN (' . implode(',', $displayIds) . ') ';
}
$query .= '
diff --git a/lib/Report/TimeDisconnectedSummary.php b/lib/Report/TimeDisconnectedSummary.php
index ce261f2962..78d6ce0c6f 100644
--- a/lib/Report/TimeDisconnectedSummary.php
+++ b/lib/Report/TimeDisconnectedSummary.php
@@ -1,6 +1,6 @@
getString('tags');
$onlyLoggedIn = $sanitizedParams->getCheckbox('onlyLoggedIn') == 1;
+ $groupBy = $sanitizedParams->getString('groupBy');
$currentDate = Carbon::now()->startOfDay();
@@ -281,7 +282,8 @@ public function getResults(SanitizerInterface $sanitizedParams)
ON display.displayId = `displayevent`.displayId
WHERE `start` <= :end
AND IFNULL(`end`, :end) >= :start
- AND :end <= UNIX_TIMESTAMP(NOW()) ';
+ AND :end <= UNIX_TIMESTAMP(NOW())
+ AND `displayevent`.eventTypeId = 1 ';
if (count($displayIds) > 0) {
$body .= 'AND display.displayId IN (' . implode(',', $displayIds) . ') ';
@@ -339,6 +341,10 @@ public function getResults(SanitizerInterface $sanitizedParams)
$displayBody = 'FROM `display` ';
+ if ($groupBy === 'displayGroup') {
+ $displaySelect .= ', displaydg.displayGroup, displaydg.displayGroupId ';
+ }
+
if ($tags != '') {
$displayBody .= 'INNER JOIN `lkdisplaydg`
ON lkdisplaydg.DisplayID = display.displayid
@@ -346,12 +352,24 @@ public function getResults(SanitizerInterface $sanitizedParams)
ON displaygroup.displaygroupId = lkdisplaydg.displaygroupId
AND `displaygroup`.isDisplaySpecific = 1 ';
}
+
+ // Grouping Option
+ if ($groupBy === 'displayGroup') {
+ $displayBody .= 'INNER JOIN `lkdisplaydg` AS linkdg
+ ON linkdg.DisplayID = display.displayid
+ INNER JOIN `displaygroup` AS displaydg
+ ON displaydg.displaygroupId = linkdg.displaygroupId
+ AND `displaydg`.isDisplaySpecific = 0 ';
+ }
+
$displayBody .= 'WHERE 1 = 1 ';
if (count($displayIds) > 0) {
$displayBody .= 'AND display.displayId IN (' . implode(',', $displayIds) . ') ';
}
+ $tagParams = [];
+
if ($tags != '') {
if (trim($tags) === '--no-tag') {
$displayBody .= ' AND `displaygroup`.displaygroupId NOT IN (
@@ -382,9 +400,9 @@ public function getResults(SanitizerInterface $sanitizedParams)
}
if ($operator === '=') {
- $params['tags' . $i] = $tag;
+ $tagParams['tags' . $i] = $tag;
} else {
- $params['tags' . $i] = '%' . $tag . '%';
+ $tagParams['tags' . $i] = '%' . $tag . '%';
}
}
@@ -400,6 +418,14 @@ public function getResults(SanitizerInterface $sanitizedParams)
GROUP BY display.display, display.displayId
';
+ if ($tags != '') {
+ $displayBody .= ', displaygroup.displayGroupId ';
+ }
+
+ if ($groupBy === 'displayGroup') {
+ $displayBody .= ', displaydg.displayGroupId ';
+ }
+
// Sorting?
$sortOrder = $this->gridRenderSort($sanitizedParams);
@@ -413,7 +439,7 @@ public function getResults(SanitizerInterface $sanitizedParams)
$rows = [];
// Retrieve the disconnected/connected time from the $disconnectedDisplays array into displays
- foreach ($this->store->select($displaySql, []) as $displayRow) {
+ foreach ($this->store->select($displaySql, $tagParams) as $displayRow) {
$sanitizedDisplayRow = $this->sanitizer->getSanitizer($displayRow);
$entry = [];
$displayId = $sanitizedDisplayRow->getInt(('displayId'));
@@ -422,6 +448,15 @@ public function getResults(SanitizerInterface $sanitizedParams)
$entry['timeDisconnected'] = $disconnectedDisplays[$displayId]['timeDisconnected'] ?? 0 ;
$entry['timeConnected'] = $disconnectedDisplays[$displayId]['timeConnected'] ?? round(($toDt->format('U') - $fromDt->format('U')) / $divisor, 2);
$entry['postUnits'] = $postUnits;
+ $entry['displayGroupId'] = $sanitizedDisplayRow->getInt(('displayGroupId'));
+ $entry['displayGroup'] = $sanitizedDisplayRow->getString(('displayGroup'));
+ $entry['avgTimeDisconnected'] = 0;
+ $entry['avgTimeConnected'] = 0;
+ $entry['availabilityPercentage'] = $this->getAvailabilityPercentage(
+ $entry['timeConnected'],
+ $entry['timeDisconnected']
+ ) . '%';
+
$rows[] = $entry;
}
@@ -434,10 +469,16 @@ public function getResults(SanitizerInterface $sanitizedParams)
$availabilityLabels = [];
$postUnits = '';
+ if ($groupBy === 'displayGroup') {
+ $rows = $this->getByDisplayGroup($rows, $sanitizedParams->getIntArray('displayGroupId', ['default' => []]));
+ }
+
foreach ($rows as $row) {
$availabilityData[] = $row['timeDisconnected'];
$availabilityDataConnected[] = $row['timeConnected'];
- $availabilityLabels[] = $row['display'];
+ $availabilityLabels[] = ($groupBy === 'displayGroup')
+ ? $row['displayGroup']
+ : $row['display'];
$postUnits = $row['postUnits'];
}
@@ -499,4 +540,63 @@ public function getResults(SanitizerInterface $sanitizedParams)
$chart
);
}
+
+ /**
+ * Get the Availability Percentage
+ * @param float $connectedTime
+ * @param float $disconnectedTime
+ * @return float
+ */
+ private function getAvailabilityPercentage(float $connectedTime, float $disconnectedTime) : float
+ {
+ $connectedPercentage = $connectedTime/($connectedTime + $disconnectedTime ?: 1);
+
+ return abs(round($connectedPercentage * 100, 2));
+ }
+
+ /**
+ * Get the accumulated value by display groups
+ * @param array $rows
+ * @param array $displayGroupIds
+ * @return array
+ */
+ private function getByDisplayGroup(array $rows, array $displayGroupIds = []) : array
+ {
+ $data = [];
+ $displayGroups = [];
+
+ // Get the accumulated values by displayGroupId
+ foreach ($rows as $row) {
+ $displayGroupId = $row['displayGroupId'];
+
+ if (isset($displayGroups[$displayGroupId])) {
+ $displayGroups[$displayGroupId]['timeDisconnected'] += $row['timeDisconnected'];
+ $displayGroups[$displayGroupId]['timeConnected'] += $row['timeConnected'];
+ $displayGroups[$displayGroupId]['count'] += 1;
+ } else {
+ $row['count'] = 1;
+ $displayGroups[$displayGroupId] = $row;
+ }
+ }
+
+ // Get all display groups or selected display groups only
+ foreach ($displayGroups as $displayGroup) {
+ if (!$displayGroupIds || in_array($displayGroup['displayGroupId'], $displayGroupIds)) {
+ $displayGroup['timeConnected'] = round($displayGroup['timeConnected'], 2);
+ $displayGroup['timeDisconnected'] = round($displayGroup['timeDisconnected'], 2);
+ $displayGroup['availabilityPercentage'] = $this->getAvailabilityPercentage(
+ $displayGroup['timeConnected'],
+ $displayGroup['timeDisconnected']
+ ) . '%';
+
+ // Calculate the average values
+ $displayGroup['avgTimeConnected'] = round($displayGroup['timeConnected'] / $displayGroup['count'], 2);
+ $displayGroup['avgTimeDisconnected'] = round($displayGroup['timeDisconnected'] / $displayGroup['count'], 2);
+
+ $data[] = $displayGroup;
+ }
+ }
+
+ return $data;
+ }
}
diff --git a/lib/Service/DisplayNotifyService.php b/lib/Service/DisplayNotifyService.php
index 2db6b42545..2501fa33e6 100644
--- a/lib/Service/DisplayNotifyService.php
+++ b/lib/Service/DisplayNotifyService.php
@@ -1,6 +1,6 @@
log->debug('notifyByDataSetId: dataSetId: ' . $dataSetId);
- if (in_array('dataSet', $this->keysProcessed)) {
+ if (in_array('dataSet_' . $dataSetId, $this->keysProcessed)) {
$this->log->debug('notifyByDataSetId: already processed.');
return;
}
@@ -407,6 +407,33 @@ public function notifyByDataSetId($dataSetId)
$this->store->update('UPDATE `task` SET `runNow` = 1 WHERE `class` LIKE :taskClassLike', [
'taskClassLike' => '%WidgetSyncTask%',
]);
+
+ // Query the schedule for any data connectors.
+ // This is a simple test to see if there are ever any schedules for this dataSetId
+ // TODO: this could be improved.
+ $sql = '
+ SELECT DISTINCT display.displayId
+ FROM `schedule`
+ INNER JOIN `lkscheduledisplaygroup`
+ ON `lkscheduledisplaygroup`.eventId = `schedule`.eventId
+ INNER JOIN `lkdgdg`
+ ON `lkdgdg`.parentId = `lkscheduledisplaygroup`.displayGroupId
+ INNER JOIN `lkdisplaydg`
+ ON `lkdisplaydg`.DisplayGroupID = `lkdgdg`.childId
+ INNER JOIN `display`
+ ON `lkdisplaydg`.DisplayID = `display`.displayID
+ WHERE `schedule`.dataSetId = :dataSetId
+ ';
+
+ foreach ($this->store->select($sql, ['dataSetId' => $dataSetId]) as $row) {
+ $this->displayIds[] = $row['displayId'];
+
+ if ($this->collectRequired) {
+ $this->displayIdsRequiringActions[] = $row['displayId'];
+ }
+ }
+
+ $this->keysProcessed[] = 'dataSet_' . $dataSetId;
}
/** @inheritdoc */
diff --git a/lib/Service/LogService.php b/lib/Service/LogService.php
index eda228990b..f11386900c 100644
--- a/lib/Service/LogService.php
+++ b/lib/Service/LogService.php
@@ -63,6 +63,16 @@ class LogService implements LogServiceInterface
*/
private $_auditLogStatement;
+ /**
+ * The History session id.
+ */
+ private $sessionHistoryId = 0;
+
+ /**
+ * The API requestId.
+ */
+ private $requestId = 0;
+
/**
* @inheritdoc
*/
@@ -94,6 +104,34 @@ public function setUserId($userId)
$this->userId = $userId;
}
+ /**
+ * @inheritdoc
+ */
+ public function setSessionHistoryId($sessionHistoryId)
+ {
+ $this->sessionHistoryId = $sessionHistoryId;
+ }
+
+ public function setRequestId($requestId)
+ {
+ $this->requestId = $requestId;
+ }
+
+ public function getUserId(): ?int
+ {
+ return $this->userId;
+ }
+
+ public function getSessionHistoryId(): ?int
+ {
+ return $this->sessionHistoryId;
+ }
+
+ public function getRequestId(): ?int
+ {
+ return $this->requestId;
+ }
+
/**
* @inheritdoc
*/
@@ -108,11 +146,12 @@ public function setMode($mode)
public function audit($entity, $entityId, $message, $object)
{
$this->debug(sprintf(
- 'Audit Trail message recorded for %s with id %d. Message: %s from IP %s',
+ 'Audit Trail message recorded for %s with id %d. Message: %s from IP %s, session %d',
$entity,
$entityId,
$message,
- $this->ipAddress
+ $this->ipAddress,
+ $this->sessionHistoryId
));
if ($this->_auditLogStatement == null) {
@@ -120,8 +159,28 @@ public function audit($entity, $entityId, $message, $object)
// audit log should rollback on failure.
$dbh = PdoStorageService::newConnection('default');
$this->_auditLogStatement = $dbh->prepare('
- INSERT INTO `auditlog` (`logDate`, `userId`, `entity`, `message`, `entityId`, `objectAfter`, `ipAddress`)
- VALUES (:logDate, :userId, :entity, :message, :entityId, :objectAfter, :ipAddress)
+ INSERT INTO `auditlog` (
+ `logDate`,
+ `userId`,
+ `entity`,
+ `message`,
+ `entityId`,
+ `objectAfter`,
+ `ipAddress`,
+ `sessionHistoryId`,
+ `requestId`
+ )
+ VALUES (
+ :logDate,
+ :userId,
+ :entity,
+ :message,
+ :entityId,
+ :objectAfter,
+ :ipAddress,
+ :sessionHistoryId,
+ :requestId
+ )
');
}
@@ -140,7 +199,9 @@ public function audit($entity, $entityId, $message, $object)
'message' => $message,
'entityId' => $entityId,
'ipAddress' => $this->ipAddress,
- 'objectAfter' => $object
+ 'objectAfter' => $object,
+ 'sessionHistoryId' => $this->sessionHistoryId,
+ 'requestId' => $this->requestId
]);
}
diff --git a/lib/Service/LogServiceInterface.php b/lib/Service/LogServiceInterface.php
index 57674625bf..6ecd6badd7 100644
--- a/lib/Service/LogServiceInterface.php
+++ b/lib/Service/LogServiceInterface.php
@@ -45,6 +45,10 @@ public function __construct($logger, $mode = 'production');
*/
public function getLoggerInterface(): LoggerInterface;
+ public function getUserId(): ?int;
+ public function getSessionHistoryId(): ?int;
+ public function getRequestId(): ?int;
+
/**
* Set the user Id
* @param int $userId
@@ -58,6 +62,20 @@ public function setUserId($userId);
*/
public function setIpAddress($ip);
+ /**
+ * Set history session id
+ * @param $sessionHistoryId
+ * @return mixed
+ */
+ public function setSessionHistoryId($sessionHistoryId);
+
+ /**
+ * Set API requestId
+ * @param $requestId
+ * @return mixed
+ */
+ public function setRequestId($requestId);
+
/**
* @param $mode
* @return mixed
@@ -141,4 +159,4 @@ public static function resolveLogLevel($level);
* @param $level
*/
public function setLevel($level);
-}
\ No newline at end of file
+}
diff --git a/lib/Service/MediaService.php b/lib/Service/MediaService.php
index 7fb0e601ee..d3d6c9cb88 100644
--- a/lib/Service/MediaService.php
+++ b/lib/Service/MediaService.php
@@ -304,6 +304,10 @@ public static function ensureLibraryExists($libraryFolder)
mkdir($libraryFolder . '/assets', 0777, true);
}
+ if (!file_exists($libraryFolder . '/data_connectors')) {
+ mkdir($libraryFolder . '/data_connectors', 0777, true);
+ }
+
// Check that we are now writable - if not then error
if (!is_writable($libraryFolder)) {
throw new ConfigurationException(__('Library not writable'));
diff --git a/lib/Widget/DataType/Article.php b/lib/Widget/DataType/Article.php
index 0ea92c9636..9096367573 100644
--- a/lib/Widget/DataType/Article.php
+++ b/lib/Widget/DataType/Article.php
@@ -1,6 +1,6 @@
addField('link', __('Link'), 'text')
->addField('date', __('Created Date'), 'datetime')
->addField('publishedDate', __('Published Date'), 'datetime')
- ->addField('image', __('Image'), 'text');
+ ->addField('image', __('Image'), 'image');
return $dataType;
}
}
diff --git a/lib/Widget/DataType/Forecast.php b/lib/Widget/DataType/Forecast.php
index 491ec597a8..06b1fd64ed 100644
--- a/lib/Widget/DataType/Forecast.php
+++ b/lib/Widget/DataType/Forecast.php
@@ -1,6 +1,6 @@
$this->uvIndex,
'visibility' => $this->visibility,
'ozone' => $this->ozone,
+ 'location' => $this->location,
'temperatureUnit' => $this->temperatureUnit,
'windSpeedUnit' => $this->windSpeedUnit,
'visibilityDistanceUnit' => $this->visibilityDistanceUnit
@@ -150,6 +152,7 @@ public function getDefinition(): DataType
->addField('uvIndex', 'Uv Index', 'number')
->addField('visibility', 'Visibility', 'number')
->addField('ozone', 'Ozone', 'number')
+ ->addField('location', 'Location', 'text')
->addField('temperatureUnit', 'Temperature Unit', 'text')
->addField('windSpeedUnit', 'WindSpeed Unit', 'text')
->addField('visibilityDistanceUnit', 'VisibilityDistance Unit', 'text');
diff --git a/lib/Widget/DataType/SocialMedia.php b/lib/Widget/DataType/SocialMedia.php
index 6614a32b58..5e44b5014c 100644
--- a/lib/Widget/DataType/SocialMedia.php
+++ b/lib/Widget/DataType/SocialMedia.php
@@ -62,7 +62,7 @@ public function getDefinition(): DataType
$dataType->id = self::$NAME;
$dataType->name = __('Social Media');
$dataType
- ->addField('text', __('Text'), 'text')
+ ->addField('text', __('Text'), 'text', true)
->addField('user', __('User'), 'text')
->addField('userProfileImage', __('Profile Image'), 'image')
->addField('userProfileImageMini', __('Mini Profile Image'), 'image')
diff --git a/lib/Widget/Definition/DataType.php b/lib/Widget/Definition/DataType.php
index c0d35da126..f699761232 100644
--- a/lib/Widget/Definition/DataType.php
+++ b/lib/Widget/Definition/DataType.php
@@ -33,12 +33,13 @@ class DataType implements \JsonSerializable
/** @var \Xibo\Widget\Definition\Field[] */
public $fields = [];
- public function addField(string $id, string $title, string $type): DataType
+ public function addField(string $id, string $title, string $type, bool $isRequired = false): DataType
{
$field = new Field();
$field->id = $id;
$field->type = $type;
$field->title = $title;
+ $field->isRequired = $isRequired;
$this->fields[] = $field;
return $this;
}
diff --git a/lib/Widget/Definition/Element.php b/lib/Widget/Definition/Element.php
index 9c5ac232bc..a5de1c9d5f 100644
--- a/lib/Widget/Definition/Element.php
+++ b/lib/Widget/Definition/Element.php
@@ -35,6 +35,7 @@ class Element implements \JsonSerializable
public $height;
public $rotation;
public $layer;
+ public $elementGroupId;
public $properties = [];
/** @inheritDoc */
@@ -48,6 +49,7 @@ public function jsonSerialize(): array
'height' => $this->height,
'rotation' => $this->rotation,
'layer' => $this->layer,
+ 'elementGroupId' => $this->elementGroupId,
'properties' => $this->properties
];
}
diff --git a/lib/Widget/Definition/ElementGroup.php b/lib/Widget/Definition/ElementGroup.php
new file mode 100644
index 0000000000..56b7e7b2f9
--- /dev/null
+++ b/lib/Widget/Definition/ElementGroup.php
@@ -0,0 +1,56 @@
+.
+ */
+
+namespace Xibo\Widget\Definition;
+
+/**
+ * A class representing an instance of a group of elements
+ * @SWG\Definition()
+ */
+class ElementGroup implements \JsonSerializable
+{
+ public $id;
+ public $top;
+ public $left;
+ public $width;
+ public $height;
+ public $layer;
+ public $title;
+ public $slot;
+ public $pinSlot;
+
+ /** @inheritDoc */
+ public function jsonSerialize(): array
+ {
+ return [
+ 'id' => $this->id,
+ 'top' => $this->top,
+ 'left' => $this->left,
+ 'width' => $this->width,
+ 'height' => $this->height,
+ 'layer' => $this->layer,
+ 'title' => $this->title,
+ 'slot' => $this->slot,
+ 'pinSlot' => $this->pinSlot
+ ];
+ }
+}
diff --git a/lib/Widget/Definition/Field.php b/lib/Widget/Definition/Field.php
index be8c0000b4..f91325d64f 100644
--- a/lib/Widget/Definition/Field.php
+++ b/lib/Widget/Definition/Field.php
@@ -30,6 +30,7 @@ class Field implements \JsonSerializable
public $id;
public $type;
public $title;
+ public $isRequired;
/** @inheritDoc */
public function jsonSerialize(): array
@@ -38,6 +39,7 @@ public function jsonSerialize(): array
'id' => $this->id,
'type' => $this->type,
'title' => $this->title,
+ 'isRequired' => $this->isRequired,
];
}
}
diff --git a/lib/Widget/Definition/Property.php b/lib/Widget/Definition/Property.php
index 40ff8c7ca0..db953d6d8e 100644
--- a/lib/Widget/Definition/Property.php
+++ b/lib/Widget/Definition/Property.php
@@ -93,6 +93,9 @@ class Property implements \JsonSerializable
/** @var bool Should the property be included in the XLF? */
public $includeInXlf = false;
+ /** @var bool Should the property be sent into Elements */
+ public $sendToElements = false;
+
/** @var bool Should the default value be written out to widget options */
public $saveDefault = false;
@@ -142,6 +145,7 @@ public function jsonSerialize(): array
'parseTranslations' => $this->parseTranslations,
'saveDefault' => $this->saveDefault,
'dependsOn' => $this->dependsOn,
+ 'sendToElements' => $this->sendToElements,
];
}
@@ -275,6 +279,23 @@ public function validate(array $properties, string $stage): Property
}
break;
+ case 'windowsPath':
+ // Ensure the path is a valid Windows file path ending in a file, not a directory
+ $windowsPathRegex = '/^(?P[A-Za-z]:)(?P(?:\\\\[^<>:"\/\\\\|?*\r\n]+)+)(?P\\\\[^<>:"\/\\\\|?*\r\n]+)$/';
+
+ // Check if the test value is not empty and does not match the regular expression
+ if (!empty($testValue)
+ && !preg_match($windowsPathRegex, $testValue)
+ ) {
+ // Throw an InvalidArgumentException if the test value is not a valid Windows path
+ throw new InvalidArgumentException(
+ $message ?? sprintf(__('%s must be a valid Windows path'), $this->title),
+ $this->id
+ );
+ }
+
+ break;
+
case 'interval':
if (!empty($testValue)) {
// Try to create a date interval from it
diff --git a/lib/Widget/Definition/Stencil.php b/lib/Widget/Definition/Stencil.php
index 5ea0433229..732012d97b 100644
--- a/lib/Widget/Definition/Stencil.php
+++ b/lib/Widget/Definition/Stencil.php
@@ -56,6 +56,12 @@ class Stencil implements \JsonSerializable
/** @var double Optional positional information if contained as part of an element group */
public $gapBetweenHbs;
+ /**
+ * @SWG\Property(description="An array of element groups")
+ * @var \Xibo\Widget\Definition\ElementGroup[]
+ */
+ public $elementGroups = [];
+
/** @inheritDoc */
public function jsonSerialize(): array
{
@@ -67,7 +73,8 @@ public function jsonSerialize(): array
'width' => $this->width,
'height' => $this->height,
'gapBetweenHbs' => $this->gapBetweenHbs,
- 'elements' => $this->elements
+ 'elements' => $this->elements,
+ 'elementGroups' => $this->elementGroups
];
}
}
diff --git a/lib/Widget/Provider/DataProvider.php b/lib/Widget/Provider/DataProvider.php
index d86321eb1b..53b5dff5fb 100644
--- a/lib/Widget/Provider/DataProvider.php
+++ b/lib/Widget/Provider/DataProvider.php
@@ -186,7 +186,7 @@ public function isPreview(): bool
/**
* @inheritDoc
*/
- public function getWidgetId() : int
+ public function getWidgetId(): int
{
return $this->widget->widgetId;
}
diff --git a/lib/Widget/Provider/DataProviderInterface.php b/lib/Widget/Provider/DataProviderInterface.php
index 4fd54e61d3..478bf32f84 100644
--- a/lib/Widget/Provider/DataProviderInterface.php
+++ b/lib/Widget/Provider/DataProviderInterface.php
@@ -81,7 +81,7 @@ public function isPreview(): bool;
* Get the ID for this Widget
* @return int
*/
- public function getWidgetId() : int;
+ public function getWidgetId(): int;
/**
* Get a configured Guzzle client
diff --git a/lib/Widget/Render/WidgetHtmlRenderer.php b/lib/Widget/Render/WidgetHtmlRenderer.php
index e6620ca80b..5492a3ee60 100644
--- a/lib/Widget/Render/WidgetHtmlRenderer.php
+++ b/lib/Widget/Render/WidgetHtmlRenderer.php
@@ -25,6 +25,7 @@
use Carbon\Carbon;
use FilesystemIterator;
use Illuminate\Support\Str;
+use Psr\Http\Message\RequestInterface;
use Psr\Log\LoggerInterface;
use Psr\Log\NullLogger;
use Slim\Views\Twig;
@@ -269,10 +270,15 @@ public function renderOrCache(
* @param \Xibo\Entity\Region $region
* @param string $output
* @param callable $urlFor
+ * @param \Psr\Http\Message\ServerRequestInterface $request
* @return string
*/
- public function decorateForPreview(Region $region, string $output, callable $urlFor): string
- {
+ public function decorateForPreview(
+ Region $region,
+ string $output,
+ callable $urlFor,
+ RequestInterface $request
+ ): string {
$matches = [];
preg_match_all('/\[\[(.*?)\]\]/', $output, $matches);
foreach ($matches[1] as $match) {
@@ -319,7 +325,18 @@ public function decorateForPreview(Region $region, string $output, callable $url
);
}
}
- return $output;
+
+ // Handle CSP in preview
+ $html = new \DOMDocument();
+ $html->loadHTML($output, LIBXML_NOERROR | LIBXML_NOWARNING | LIBXML_SCHEMA_CREATE);
+ foreach ($html->getElementsByTagName('script') as $node) {
+ // We add this requests cspNonce to every script tag
+ if ($node instanceof \DOMElement) {
+ $node->setAttribute('nonce', $request->getAttribute('cspNonce'));
+ }
+ }
+
+ return $html->saveHTML();
}
/**
@@ -481,11 +498,9 @@ private function render(
$widget->isValid = 0;
}
+ // Parse out some common properties.
$moduleLanguage = null;
- $translator = null;
- // Check if a language property is defined against the module
- // Note: We are using the language defined against the module and not from the module template
foreach ($module->properties as $property) {
if ($property->type === 'languageSelector' && !empty($property->value)) {
$moduleLanguage = $property->value;
@@ -493,6 +508,12 @@ private function render(
}
}
+ // Get an array of the modules property values.
+ $modulePropertyValues = $module->getPropertyValues();
+
+ // Configure a translator for the module
+ // Note: We are using the language defined against the module and not from the module template
+ $translator = null;
if ($moduleLanguage !== null) {
$translator = Translate::getTranslationsFromLocale($moduleLanguage);
}
@@ -502,7 +523,7 @@ private function render(
'widgetId' => $widget->widgetId,
'templateId' => $templateId,
'sample' => $module->sampleData,
- 'properties' => $module->getPropertyValues(),
+ 'properties' => $modulePropertyValues,
'isValid' => $widget->isValid === 1,
'isRepeatData' => $widget->getOptionValue('isRepeatData', 1) === 1,
'duration' => $widget->useDuration ? $widget->duration : $module->defaultDuration,
@@ -589,8 +610,6 @@ private function render(
// What does our module have
if ($module->stencil !== null) {
// Stencils have access to any module properties
- $modulePropertyValues = $module->getPropertyValues();
-
if ($module->stencil->twig !== null) {
$twig['twig'][] = $this->twig->fetchFromString(
$this->decorateTranslations($module->stencil->twig, null),
@@ -627,6 +646,16 @@ private function render(
// Elements will be JSON
$widgetElements = json_decode($widgetElements, true);
+ // Are any of the module properties marked for sending to elements?
+ $modulePropertiesToSend = [];
+ if (count($widgetElements) > 0) {
+ foreach ($module->properties as $property) {
+ if ($property->sendToElements) {
+ $modulePropertiesToSend[$property->id] = $modulePropertyValues[$property->id] ?? null;
+ }
+ }
+ }
+
// Join together the template properties for this element, and the element properties
foreach ($widgetElements as $widgetIndex => $widgetElement) {
// Assert the widgetId
@@ -650,6 +679,12 @@ private function render(
true
)
);
+
+ // Update any properties which match on the element
+ foreach ($modulePropertiesToSend as $propertyToSend => $valueToSend) {
+ $widgetElements[$widgetIndex]['elements']
+ [$elementIndex]['properties'][$propertyToSend] = $valueToSend;
+ }
}
}
diff --git a/lib/Widget/RssProvider.php b/lib/Widget/RssProvider.php
index 22812a4887..c9a746121d 100644
--- a/lib/Widget/RssProvider.php
+++ b/lib/Widget/RssProvider.php
@@ -1,6 +1,6 @@
setCacheTtl($dataProvider->getProperty('updateInterval', 60) * 60);
$dataProvider->setIsHandled();
- } catch (RequestException $requestException) {
+ } catch (GuzzleException $requestException) {
// Log and return empty?
$this->getLog()->error('Unable to get feed: ' . $uri
. ', e: ' . $requestException->getMessage());
diff --git a/lib/XMR/ScheduleCriteriaUpdateAction.php b/lib/XMR/ScheduleCriteriaUpdateAction.php
new file mode 100644
index 0000000000..5b703fff7e
--- /dev/null
+++ b/lib/XMR/ScheduleCriteriaUpdateAction.php
@@ -0,0 +1,67 @@
+.
+ */
+
+namespace Xibo\XMR;
+
+/**
+ * Class ScheduleCriteriaUpdateAction
+ * @package Xibo\XMR
+ */
+class ScheduleCriteriaUpdateAction extends PlayerAction
+{
+ /**
+ * @var array
+ */
+ public $criteriaUpdates = [];
+
+ public function __construct()
+ {
+ $this->setQos(10);
+ }
+
+ /**
+ * Set criteria updates
+ * @param array $criteriaUpdates an array of criteria updates
+ * @return $this
+ */
+ public function setCriteriaUpdates(array $criteriaUpdates)
+ {
+ $this->criteriaUpdates = $criteriaUpdates;
+ return $this;
+ }
+
+ /**
+ * @inheritdoc
+ */
+ public function getMessage(): string
+ {
+ $this->action = 'criteriaUpdate';
+
+ // Ensure criteriaUpdates array is not empty
+ if (empty($this->criteriaUpdates)) {
+ // Throw an exception if criteriaUpdates is not provided
+ throw new PlayerActionException(__('Criteria updates not provided.'));
+ }
+
+ return $this->serializeToJson(['criteriaUpdates']);
+ }
+}
diff --git a/lib/XTR/EmailNotificationsTask.php b/lib/XTR/EmailNotificationsTask.php
index f581cb610c..28c87bace3 100644
--- a/lib/XTR/EmailNotificationsTask.php
+++ b/lib/XTR/EmailNotificationsTask.php
@@ -1,8 +1,8 @@
view = $container->get('view');
$this->userNotificationFactory = $container->get('userNotificationFactory');
+ $this->userGroupFactory = $container->get('userGroupFactory');
return $this;
}
@@ -77,7 +83,10 @@ private function processQueue()
$mail = new \PHPMailer\PHPMailer\PHPMailer();
$this->log->debug('Sending Notification email to ' . $notification->email);
- $mail->addAddress($notification->email);
+
+ if ($this->checkEmailPreferences($notification)) {
+ $mail->addAddress($notification->email);
+ }
// System notifications, add mail_to to addresses if set.
if ($notification->isSystem == 1) {
@@ -170,7 +179,10 @@ private function generateEmailBody($subject, $body)
ob_start();
// Render the template
- echo $this->view->fetch('email-template.twig', ['config' => $this->config, 'subject' => $subject, 'body' => $body]);
+ echo $this->view->fetch(
+ 'email-template.twig',
+ ['config' => $this->config, 'subject' => $subject, 'body' => $body]
+ );
$body = ob_get_contents();
@@ -178,4 +190,16 @@ private function generateEmailBody($subject, $body)
return $body;
}
+
+ /**
+ * Should we send email to this user?
+ * check relevant flag for the notification type on the user group.
+ * @param UserNotification $notification
+ * @return bool
+ */
+ private function checkEmailPreferences(UserNotification $notification)
+ {
+ $groupType = $notification->getTypeForGroup();
+ return $this->userGroupFactory->checkNotificationEmailPreferences($notification->userId, $groupType);
+ }
}
diff --git a/lib/XTR/MaintenanceRegularTask.php b/lib/XTR/MaintenanceRegularTask.php
index 511e5e1823..e5ed4e3631 100644
--- a/lib/XTR/MaintenanceRegularTask.php
+++ b/lib/XTR/MaintenanceRegularTask.php
@@ -1,6 +1,6 @@
config->getSetting('LIBRARY_SIZE_LIMIT_KB') * 1024;
- if ($libraryLimit <= 0)
+ if ($libraryLimit <= 0) {
return;
+ }
$results = $this->store->select('SELECT IFNULL(SUM(FileSize), 0) AS SumSize FROM media', []);
@@ -324,15 +325,26 @@ private function checkLibraryUsage()
// Create a notification if we don't already have one today for this display.
$subject = __('Library allowance exceeded');
$date = Carbon::now();
-
- if (count($this->notificationFactory->getBySubjectAndDate($subject, $date->startOfDay()->format('U'), $date->addDay()->startOfDay()->format('U'))) <= 0) {
-
- $body = __(sprintf('Library allowance of %s exceeded. Used %s', ByteFormatter::format($libraryLimit), ByteFormatter::format($size)));
+ $notifications = $this->notificationFactory->getBySubjectAndDate(
+ $subject,
+ $date->startOfDay()->format('U'),
+ $date->addDay()->startOfDay()->format('U')
+ );
+
+ if (count($notifications) <= 0) {
+ $body = __(
+ sprintf(
+ 'Library allowance of %s exceeded. Used %s',
+ ByteFormatter::format($libraryLimit),
+ ByteFormatter::format($size)
+ )
+ );
$notification = $this->notificationFactory->createSystemNotification(
$subject,
$body,
- Carbon::now()
+ Carbon::now(),
+ 'library'
);
$notification->save();
@@ -370,17 +382,29 @@ private function checkOverRequestedFiles()
foreach ($items as $item) {
$sanitizedItem = $this->getSanitizer($item);
// Create a notification if we don't already have one today for this display.
- $subject = sprintf(__('%s is downloading %d files too many times'), $sanitizedItem->getString('display'), $sanitizedItem->getInt('countFiles'));
+ $subject = sprintf(
+ __('%s is downloading %d files too many times'),
+ $sanitizedItem->getString('display'),
+ $sanitizedItem->getInt('countFiles')
+ );
$date = Carbon::now();
-
- if (count($this->notificationFactory->getBySubjectAndDate($subject, $date->startOfDay()->format('U'),$date->addDay()->startOfDay()->format('U'))) <= 0) {
-
- $body = sprintf(__('Please check the bandwidth graphs and display status for %s to investigate the issue.'), $sanitizedItem->getString('display'));
+ $notifications = $this->notificationFactory->getBySubjectAndDate(
+ $subject,
+ $date->startOfDay()->format('U'),
+ $date->addDay()->startOfDay()->format('U')
+ );
+
+ if (count($notifications) <= 0) {
+ $body = sprintf(
+ __('Please check the bandwidth graphs and display status for %s to investigate the issue.'),
+ $sanitizedItem->getString('display')
+ );
$notification = $this->notificationFactory->createSystemNotification(
$subject,
$body,
- Carbon::now()
+ Carbon::now(),
+ 'display'
);
$display = $this->displayFactory->getById($item['displayId']);
@@ -410,7 +434,10 @@ private function updatePlaylistDurations()
$playlist->setModuleFactory($this->moduleFactory);
$playlist->updateDuration();
} catch (GeneralException $xiboException) {
- $this->log->error('Maintenance cannot update Playlist ' . $playlist->playlistId . ', ' . $xiboException->getMessage());
+ $this->log->error(
+ 'Maintenance cannot update Playlist ' . $playlist->playlistId .
+ ', ' . $xiboException->getMessage()
+ );
}
}
@@ -425,7 +452,10 @@ private function publishLayouts()
{
$this->runMessage .= '## ' . __('Publishing layouts with set publish dates') . PHP_EOL;
- $layouts = $this->layoutFactory->query(null, ['havePublishDate' => 1, 'disableUserCheck' => 1, 'excludeTemplates' => -1]);
+ $layouts = $this->layoutFactory->query(
+ null,
+ ['havePublishDate' => 1, 'disableUserCheck' => 1, 'excludeTemplates' => -1]
+ );
// check if we have any layouts with set publish date
if (count($layouts) > 0) {
@@ -441,7 +471,11 @@ private function publishLayouts()
$draft = $this->layoutFactory->getByParentId($layout->layoutId);
if ($draft->status === Status::$STATUS_INVALID
&& isset($draft->statusMessage)
- && (count($draft->getStatusMessage()) > 1 || count($draft->getStatusMessage()) === 1 && !$draft->checkForEmptyRegion())
+ && (
+ count($draft->getStatusMessage()) > 1 ||
+ count($draft->getStatusMessage()) === 1 &&
+ !$draft->checkForEmptyRegion()
+ )
) {
throw new GeneralException(json_encode($draft->statusMessage));
}
@@ -455,24 +489,40 @@ private function publishLayouts()
} finally {
$this->layoutFactory->concurrentRequestRelease($layout, true);
}
- $this->log->info('Published layout ID ' . $layout->layoutId . ' new layout id is ' . $draft->layoutId);
+ $this->log->info(
+ 'Published layout ID ' . $layout->layoutId . ' new layout id is ' . $draft->layoutId
+ );
} catch (GeneralException $e) {
- $this->log->error('Error publishing layout ID ' . $layout->layoutId . ' with name ' . $layout->layout . ' Failed with message: ' . $e->getMessage());
+ $this->log->error(
+ 'Error publishing layout ID ' . $layout->layoutId .
+ ' with name ' . $layout->layout . ' Failed with message: ' . $e->getMessage()
+ );
// create a notification
$subject = __(sprintf('Error publishing layout ID %d', $layout->layoutId));
$date = Carbon::now();
- if (count($this->notificationFactory->getBySubjectAndDate($subject,
- $date->startOfDay()->format('U'),
- $date->addDay()->startOfDay()->format('U'))) <= 0) {
-
- $body = __(sprintf('Publishing layout ID %d with name %s failed. With message %s', $layout->layoutId, $layout->layout, $e->getMessage()));
+ $notifications = $this->notificationFactory->getBySubjectAndDate(
+ $subject,
+ $date->startOfDay()->format('U'),
+ $date->addDay()->startOfDay()->format('U')
+ );
+
+ if (count($notifications) <= 0) {
+ $body = __(
+ sprintf(
+ 'Publishing layout ID %d with name %s failed. With message %s',
+ $layout->layoutId,
+ $layout->layout,
+ $e->getMessage()
+ )
+ );
$notification = $this->notificationFactory->createSystemNotification(
$subject,
$body,
- Carbon::now()
+ Carbon::now(),
+ 'layout'
);
$notification->save();
@@ -480,7 +530,9 @@ private function publishLayouts()
}
}
} else {
- $this->log->debug('Layouts with published date were found, they are set to publish later than current time');
+ $this->log->debug(
+ 'Layouts with published date were found, they are set to publish later than current time'
+ );
}
}
} else {
diff --git a/lib/XTR/RemoteDataSetFetchTask.php b/lib/XTR/RemoteDataSetFetchTask.php
index b0f8da54dd..0bdd16e585 100644
--- a/lib/XTR/RemoteDataSetFetchTask.php
+++ b/lib/XTR/RemoteDataSetFetchTask.php
@@ -99,6 +99,20 @@ public function run()
continue;
}
+ // Get all columns
+ $columns = $dataSet->getColumn();
+
+ // Filter columns where dataSetColumnType is "Remote"
+ $filteredColumns = array_filter($columns, function ($column) {
+ return $column->dataSetColumnTypeId == '3';
+ });
+
+ // Check if there are any remote columns defined in the dataset
+ if (count($filteredColumns) === 0) {
+ $this->log->info('Skipping dataSet ' . $dataSet->dataSetId . ': No remote columns defined in the dataset.');
+ continue;
+ }
+
$this->log->debug('Comparing run time ' . $runTime . ' to next sync time ' . $dataSet->getNextSyncTime());
if ($runTime >= $dataSet->getNextSyncTime()) {
@@ -193,9 +207,9 @@ public function run()
$notification->body = 'The error is: ' . $e->getMessage();
$notification->createDt = Carbon::now()->format('U');
$notification->releaseDt = $notification->createDt;
- $notification->isEmail = 0;
$notification->isInterrupt = 0;
$notification->userId = $this->user->userId;
+ $notification->type = 'dataset';
// Assign me
$dataSetUser = $this->userFactory->getById($dataSet->userId);
diff --git a/lib/XTR/ReportScheduleTask.php b/lib/XTR/ReportScheduleTask.php
index 7031ddcbbe..8fdfd2aba1 100644
--- a/lib/XTR/ReportScheduleTask.php
+++ b/lib/XTR/ReportScheduleTask.php
@@ -1,6 +1,6 @@
body = __('Attached please find the report for %s', $savedReport->saveAs);
$notification->createDt = Carbon::now()->format('U');
$notification->releaseDt = Carbon::now()->format('U');
- $notification->isEmail = 1;
$notification->isInterrupt = 0;
$notification->userId = $savedReport->userId; // event owner
$notification->filename = 'filename-'.$savedReport->savedReportId.'.pdf';
$notification->originalFileName = 'saved_report.pdf';
$notification->nonusers = $nonusers;
+ $notification->type = 'report';
// Get user group to create user notification
$notificationUser = $this->userFactory->getById($savedReport->userId);
diff --git a/lib/XTR/ScheduleReminderTask.php b/lib/XTR/ScheduleReminderTask.php
index 31e4c6b86d..2722ee2d26 100644
--- a/lib/XTR/ScheduleReminderTask.php
+++ b/lib/XTR/ScheduleReminderTask.php
@@ -228,9 +228,9 @@ private function createNotification($subject, $body, $reminder, $schedule, $rele
$notification->body = $body;
$notification->createDt = Carbon::now()->format('U');
$notification->releaseDt = $releaseDt;
- $notification->isEmail = $reminder->isEmail;
$notification->isInterrupt = 0;
$notification->userId = $schedule->userId; // event owner
+ $notification->type = 'schedule';
// Get user group to create user notification
$notificationUser = $this->userFactory->getById($schedule->userId);
diff --git a/lib/XTR/SeedDatabaseTask.php b/lib/XTR/SeedDatabaseTask.php
index fb337d3866..cc274d89f1 100644
--- a/lib/XTR/SeedDatabaseTask.php
+++ b/lib/XTR/SeedDatabaseTask.php
@@ -312,6 +312,7 @@ private function importLayouts(): void
// all layouts name and file name
$layoutNames = [
'dataset test ' => 'export-dataset-test.zip',
+ 'layout_with_8_items_dataset' => 'export-layout-with-8-items-dataset.zip',
'Image test' => 'export-image-test.zip',
'Layout for Schedule 1' => 'export-layout-for-schedule-1.zip',
'List Campaign Layout 1' => 'export-list-campaign-layout-1.zip',
@@ -908,7 +909,7 @@ private function createCommands()
$command->description = 'a command to test schedule';
$command->code = 'TIMEZONE';
$command->userId = $this->userFactory->getSystemUser()->getId();
-
+ $command->createAlertOn = 'never';
$command->save();
$this->store->commitIfNecessary();
} catch (GeneralException $e) {
diff --git a/lib/XTR/WidgetSyncTask.php b/lib/XTR/WidgetSyncTask.php
index 4b4bdf7681..f7ac29824a 100644
--- a/lib/XTR/WidgetSyncTask.php
+++ b/lib/XTR/WidgetSyncTask.php
@@ -27,6 +27,7 @@
use Xibo\Entity\Module;
use Xibo\Entity\Widget;
use Xibo\Event\WidgetDataRequestEvent;
+use Xibo\Factory\WidgetDataFactory;
use Xibo\Helper\DateFormatHelper;
use Xibo\Support\Exception\GeneralException;
use Xibo\Support\Exception\NotFoundException;
@@ -47,6 +48,9 @@ class WidgetSyncTask implements TaskInterface
/** @var \Xibo\Factory\WidgetFactory */
private $widgetFactory;
+ /** @var \Xibo\Factory\WidgetDataFactory */
+ private WidgetDataFactory $widgetDataFactory;
+
/** @var \Xibo\Factory\MediaFactory */
private $mediaFactory;
@@ -61,6 +65,7 @@ public function setFactories($container)
{
$this->moduleFactory = $container->get('moduleFactory');
$this->widgetFactory = $container->get('widgetFactory');
+ $this->widgetDataFactory = $container->get('widgetDataFactory');
$this->mediaFactory = $container->get('mediaFactory');
$this->displayFactory = $container->get('displayFactory');
$this->eventDispatcher = $container->get('dispatcher');
@@ -221,6 +226,32 @@ private function cache(
}
}
+ // Will we use fallback data if available?
+ $showFallback = $widget->getOptionValue('showFallback', 'never');
+ if ($showFallback !== 'never') {
+ // What data type are we dealing with?
+ try {
+ $dataTypeFields = [];
+ foreach ($this->moduleFactory->getDataTypeById($module->dataType)->fields as $field) {
+ $dataTypeFields[$field->id] = $field->type;
+ }
+
+ // Potentially we will, so get the modifiedDt of this fallback data.
+ $fallbackModifiedDt = $this->widgetDataFactory->getModifiedDtForWidget($widget->widgetId);
+
+ if ($fallbackModifiedDt !== null) {
+ $this->getLogger()->debug('cache: fallback modifiedDt is ' . $fallbackModifiedDt->toAtomString());
+
+ $dataModifiedDt = max($dataModifiedDt, $fallbackModifiedDt);
+ }
+ } catch (NotFoundException) {
+ $this->getLogger()->info('cache: widget will fallback set where the module does not support it');
+ $dataTypeFields = null;
+ }
+ } else {
+ $dataTypeFields = null;
+ }
+
if (!$widgetDataProviderCache->decorateWithCache($dataProvider, $cacheKey, $dataModifiedDt)
|| $widgetDataProviderCache->isCacheMissOrOld()
) {
@@ -228,6 +259,7 @@ private function cache(
$dataProvider->clearData();
$dataProvider->clearMeta();
+ $dataProvider->addOrUpdateMeta('showFallback', $showFallback);
try {
if ($widgetInterface !== null) {
@@ -243,6 +275,43 @@ private function cache(
);
}
+ // Before caching images, check to see if the data provider is handled
+ $isFallback = false;
+ if ($showFallback !== 'never'
+ && $dataTypeFields !== null
+ && (
+ count($dataProvider->getErrors()) > 0
+ || count($dataProvider->getData()) <= 0
+ || $showFallback === 'always'
+ )
+ ) {
+ // Error or no data.
+ // Pull in the fallback data
+ foreach ($this->widgetDataFactory->getByWidgetId($dataProvider->getWidgetId()) as $item) {
+ // Handle any special data types in the fallback data
+ foreach ($item->data as $itemId => $itemData) {
+ if (!empty($itemData)
+ && array_key_exists($itemId, $dataTypeFields)
+ && $dataTypeFields[$itemId] === 'image'
+ ) {
+ $item->data[$itemId] = $dataProvider->addLibraryFile($itemData);
+ }
+ }
+
+ // Indicate we've been handled by fallback data
+ $isFallback = true;
+ }
+
+ if ($isFallback) {
+ $dataProvider->addOrUpdateMeta('includesFallback', true);
+ }
+ }
+
+ // Remove fallback data from the cache if no-longer needed
+ if (!$isFallback) {
+ $dataProvider->addOrUpdateMeta('includesFallback', false);
+ }
+
// Do we have images?
// They could be library images (i.e. they already exist) or downloads
$mediaIds = $dataProvider->getImageIds();
@@ -263,7 +332,7 @@ private function cache(
}
// Save to cache
- if ($dataProvider->isHandled()) {
+ if ($dataProvider->isHandled() || $isFallback) {
$widgetDataProviderCache->saveToCache($dataProvider);
}
} finally {
diff --git a/lib/Xmds/Entity/Dependency.php b/lib/Xmds/Entity/Dependency.php
index 08a3ad4dcb..c1e4631eaf 100644
--- a/lib/Xmds/Entity/Dependency.php
+++ b/lib/Xmds/Entity/Dependency.php
@@ -31,6 +31,7 @@ class Dependency
const LEGACY_ID_OFFSET_FONT = 100000000;
const LEGACY_ID_OFFSET_PLAYER_SOFTWARE = 200000000;
const LEGACY_ID_OFFSET_ASSET = 300000000;
+ const LEGACY_ID_OFFSET_DATA_CONNECTOR = 400000000;
public $fileType;
public $legacyId;
diff --git a/lib/Xmds/Listeners/XmdsDataConnectorListener.php b/lib/Xmds/Listeners/XmdsDataConnectorListener.php
new file mode 100644
index 0000000000..14eb0f8521
--- /dev/null
+++ b/lib/Xmds/Listeners/XmdsDataConnectorListener.php
@@ -0,0 +1,76 @@
+.
+ */
+
+namespace Xibo\Xmds\Listeners;
+
+use Xibo\Event\XmdsDependencyRequestEvent;
+use Xibo\Listener\ListenerConfigTrait;
+use Xibo\Listener\ListenerLoggerTrait;
+use Xibo\Support\Exception\NotFoundException;
+use Xibo\Xmds\Entity\Dependency;
+
+/**
+ * Listener to handle dependency requests for data connectors.
+ */
+class XmdsDataConnectorListener
+{
+ use ListenerLoggerTrait;
+ use ListenerConfigTrait;
+
+ public function onDependencyRequest(XmdsDependencyRequestEvent $event)
+ {
+ // Can we return this type of file?
+ if ($event->getFileType() === 'data_connector') {
+ // Set the path
+ $event->setRelativePathToLibrary('data_connectors/dataSet_' . $event->getRealId() . '.js');
+
+ // No need to carry on, we've found it.
+ $event->stopPropagation();
+ }
+ }
+
+ /**
+ * @throws NotFoundException
+ */
+ public static function getDataConnectorDependency(string $libraryLocation, int $dataSetId): Dependency
+ {
+ // Check that this asset is valid.
+ $path = $libraryLocation
+ . 'data_connectors' . DIRECTORY_SEPARATOR
+ . 'dataSet_' . $dataSetId . '.js';
+
+ if (!file_exists($path)) {
+ throw new NotFoundException(sprintf(__('Data Connector %s not found'), $path));
+ }
+
+ // Return a dependency
+ return new Dependency(
+ 'data_connector',
+ $dataSetId,
+ (Dependency::LEGACY_ID_OFFSET_DATA_CONNECTOR + $dataSetId) * -1,
+ $path,
+ filesize($path),
+ file_get_contents($path . '.md5'),
+ true
+ );
+ }
+}
diff --git a/lib/Xmds/LogProcessor.php b/lib/Xmds/LogProcessor.php
index c7ffb69c4e..f7fd14f4a9 100644
--- a/lib/Xmds/LogProcessor.php
+++ b/lib/Xmds/LogProcessor.php
@@ -1,8 +1,8 @@
log->getHandlers() as $handler) {
+ foreach ($this->log->getHandlers() as $handler) {
if ($handler instanceof DatabaseLogHandler) {
$handler->setLevel(\Xibo\Service\LogService::resolveLogLevel('debug'));
}
@@ -85,11 +85,11 @@ public function getLevel()
{
$level = Logger::ERROR;
- foreach($this->log->getHandlers() as $handler) {
+ foreach ($this->log->getHandlers() as $handler) {
if ($handler instanceof DatabaseLogHandler) {
$level = $handler->getLevel();
} else {
- $this->log->error('Log level not set in DabaseLogHandler');
+ $this->log->error('Log level not set in DatabaseLogHandler');
}
}
@@ -117,4 +117,4 @@ public function __invoke(array $record)
return $record;
}
-}
\ No newline at end of file
+}
diff --git a/lib/Xmds/Soap.php b/lib/Xmds/Soap.php
index 410d7c8711..8c1f843abe 100644
--- a/lib/Xmds/Soap.php
+++ b/lib/Xmds/Soap.php
@@ -33,6 +33,7 @@
use Xibo\Entity\Region;
use Xibo\Entity\RequiredFile;
use Xibo\Entity\Schedule;
+use Xibo\Event\DataConnectorScriptRequestEvent;
use Xibo\Event\XmdsDependencyListEvent;
use Xibo\Factory\BandwidthFactory;
use Xibo\Factory\DataSetFactory;
@@ -43,6 +44,7 @@
use Xibo\Factory\MediaFactory;
use Xibo\Factory\ModuleFactory;
use Xibo\Factory\NotificationFactory;
+use Xibo\Factory\PlayerFaultFactory;
use Xibo\Factory\PlayerVersionFactory;
use Xibo\Factory\RegionFactory;
use Xibo\Factory\RequiredFileFactory;
@@ -66,6 +68,7 @@
use Xibo\Support\Exception\GeneralException;
use Xibo\Support\Exception\NotFoundException;
use Xibo\Xmds\Entity\Dependency;
+use Xibo\Xmds\Listeners\XmdsDataConnectorListener;
/**
* Class Soap
@@ -166,6 +169,9 @@ class Soap
/** @var \Xibo\Factory\CampaignFactory */
private $campaignFactory;
+ /** @var PlayerFaultFactory */
+ protected $playerFaultFactory;
+
/**
* Soap constructor.
* @param LogProcessor $logProcessor
@@ -219,7 +225,8 @@ public function __construct(
$playerVersionFactory,
$dispatcher,
$campaignFactory,
- $syncGroupFactory
+ $syncGroupFactory,
+ $playerFaultFactory
) {
$this->logProcessor = $logProcessor;
$this->pool = $pool;
@@ -246,6 +253,7 @@ public function __construct(
$this->dispatcher = $dispatcher;
$this->campaignFactory = $campaignFactory;
$this->syncGroupFactory = $syncGroupFactory;
+ $this->playerFaultFactory = $playerFaultFactory;
}
/**
@@ -500,9 +508,7 @@ protected function doRequiredFiles(
'displayId' => $this->display->displayId
];
- if ($this->display->isAuditing()) {
- $this->getLog()->sql($SQL, $params);
- }
+ $this->getLog()->sql($SQL, $params);
$sth = $dbh->prepare($SQL);
$sth->execute($params);
@@ -551,10 +557,12 @@ protected function doRequiredFiles(
$this->getLog()->debug(count($scheduleEvents) . ' events for eventId ' . $schedule->eventId);
+ // Sync events
$layoutId = ($schedule->eventTypeId == Schedule::$SYNC_EVENT)
? $parsedRow->getInt('syncLayoutId')
: $parsedRow->getInt('layoutId');
+ // Layout codes (action events)
$layoutCode = $parsedRow->getString('actionLayoutCode');
if ($layoutId != null &&
(
@@ -578,6 +586,27 @@ protected function doRequiredFiles(
$this->getLog()->error(sprintf(__('Scheduled Action Event ID %d contains an invalid Layout linked to it by the Layout code.'), $schedule->eventId));
}
}
+
+ // Data Connectors
+ if ($isSupportsDependency && $schedule->eventTypeId === Schedule::$DATA_CONNECTOR_EVENT) {
+ $dataSet = $this->dataSetFactory->getById($row['dataSetId']);
+
+ if ($dataSet->dataConnectorSource != 'user_defined') {
+ // Dispatch an event to save the data connector javascript from the connector
+ $dataConnectorScriptRequestEvent = new DataConnectorScriptRequestEvent($dataSet);
+ $this->getDispatcher()
+ ->dispatch($dataConnectorScriptRequestEvent, DataConnectorScriptRequestEvent::$NAME);
+ }
+
+ $this->addDependency(
+ $newRfIds,
+ $requiredFilesXml,
+ $fileElements,
+ $httpDownloads,
+ $isSupportsDependency,
+ XmdsDataConnectorListener::getDataConnectorDependency($libraryLocation, $row['dataSetId']),
+ );
+ }
}
} catch (\Exception $e) {
$this->getLog()->error('Unable to get a list of layouts. ' . $e->getMessage());
@@ -677,9 +706,7 @@ protected function doRequiredFiles(
// Sub layoutId list
$SQL = sprintf($SQL, $layoutIdList, $layoutIdList);
- if ($this->display->isAuditing()) {
- $this->getLog()->sql($SQL, $params);
- }
+ $this->getLog()->sql($SQL, $params);
$sth = $dbh->prepare($SQL);
$sth->execute($params);
@@ -791,9 +818,7 @@ protected function doRequiredFiles(
$fileName = basename($path);
// Log
- if ($this->display->isAuditing()) {
- $this->getLog()->debug('MD5 for layoutid ' . $layoutId . ' is: [' . $md5 . ']');
- }
+ $this->getLog()->debug('MD5 for layoutid ' . $layoutId . ' is: [' . $md5 . ']');
// Add nonce
$layoutNonce = $this->requiredFileFactory
@@ -1078,9 +1103,7 @@ protected function doRequiredFiles(
return new \SoapFault('Sender', 'Unable to get purge list files');
}
- if ($this->display->isAuditing()) {
- $this->getLog()->debug($requiredFilesXml->saveXML());
- }
+ $this->getLog()->debug($requiredFilesXml->saveXML());
// Return the results of requiredFiles()
$requiredFilesXml->formatOutput = true;
@@ -1272,8 +1295,10 @@ protected function doSchedule($serverKey, $hardwareKey, $options = [])
$this->getLog()->debug(sprintf('Resolved dependents for Schedule: %s.', json_encode($layoutDependents, JSON_PRETTY_PRINT)));
+ // Additional nodes.
$overlayNodes = null;
$actionNodes = null;
+ $dataConnectorNodes = null;
// We must have some results in here by this point
foreach ($events as $row) {
@@ -1297,6 +1322,21 @@ protected function doSchedule($serverKey, $hardwareKey, $options = [])
$this->getLog()->debug(count($scheduleEvents) . ' events for eventId ' . $schedule->eventId);
+ // Does this event have any criteria?
+ $criteriaNodes = [];
+ if (count($scheduleEvents) > 0) {
+ $schedule->load(['loadDisplayGroups' => false]);
+
+ foreach ($schedule->criteria as $scheduleCriteria) {
+ $criteriaNode = $scheduleXml->createElement('criteria');
+ $criteriaNode->setAttribute('metric', $scheduleCriteria->metric);
+ $criteriaNode->setAttribute('condition', $scheduleCriteria->condition);
+ $criteriaNode->setAttribute('type', $scheduleCriteria->type);
+ $criteriaNode->textContent = $scheduleCriteria->value;
+ $criteriaNodes[] = $criteriaNode;
+ }
+ }
+
foreach ($scheduleEvents as $scheduleEvent) {
$eventTypeId = $row['eventTypeId'];
@@ -1383,6 +1423,13 @@ protected function doSchedule($serverKey, $hardwareKey, $options = [])
}
}
+ // Add criteria notes
+ if (count($criteriaNodes) > 0) {
+ foreach ($criteriaNodes as $criteriaNode) {
+ $layout->appendChild($criteriaNode);
+ }
+ }
+
$layoutElements->appendChild($layout);
} elseif ($eventTypeId == Schedule::$COMMAND_EVENT) {
// Add a command node to the schedule
@@ -1390,6 +1437,14 @@ protected function doSchedule($serverKey, $hardwareKey, $options = [])
$command->setAttribute('date', $fromDt);
$command->setAttribute('scheduleid', $scheduleId);
$command->setAttribute('code', $commandCode);
+
+ // Add criteria notes
+ if (count($criteriaNodes) > 0) {
+ foreach ($criteriaNodes as $criteriaNode) {
+ $command->appendChild($criteriaNode);
+ }
+ }
+
$layoutElements->appendChild($command);
} elseif ($eventTypeId == Schedule::$OVERLAY_EVENT && $options['includeOverlays']) {
// Ensure we have a layoutId (we may not if an empty campaign is assigned)
@@ -1420,6 +1475,13 @@ protected function doSchedule($serverKey, $hardwareKey, $options = [])
$overlay->setAttribute('isGeoAware', $row['isGeoAware'] ?? 0);
$overlay->setAttribute('geoLocation', $row['geoLocation'] ?? null);
+ // Add criteria notes
+ if (count($criteriaNodes) > 0) {
+ foreach ($criteriaNodes as $criteriaNode) {
+ $overlay->appendChild($criteriaNode);
+ }
+ }
+
// Add to the overlays node list
$overlayNodes->appendChild($overlay);
} elseif ($eventTypeId == Schedule::$ACTION_EVENT) {
@@ -1439,7 +1501,39 @@ protected function doSchedule($serverKey, $hardwareKey, $options = [])
$action->setAttribute('layoutCode', $row['actionLayoutCode']);
$action->setAttribute('commandCode', $commandCode);
+ // Add criteria notes
+ if (count($criteriaNodes) > 0) {
+ foreach ($criteriaNodes as $criteriaNode) {
+ $action->appendChild($criteriaNode);
+ }
+ }
+
$actionNodes->appendChild($action);
+ } else if ($eventTypeId === Schedule::$DATA_CONNECTOR_EVENT) {
+ if ($dataConnectorNodes == null) {
+ $dataConnectorNodes = $scheduleXml->createElement('dataConnectors');
+ }
+
+ $dataConnector = $scheduleXml->createElement('connector');
+ $dataConnector->setAttribute('fromdt', $fromDt);
+ $dataConnector->setAttribute('todt', $toDt);
+ $dataConnector->setAttribute('scheduleid', $scheduleId);
+ $dataConnector->setAttribute('priority', $is_priority);
+ $dataConnector->setAttribute('duration', $row['duration'] ?? 0);
+ $dataConnector->setAttribute('isGeoAware', $row['isGeoAware'] ?? 0);
+ $dataConnector->setAttribute('geoLocation', $row['geoLocation'] ?? null);
+ $dataConnector->setAttribute('dataSetId', $row['dataSetId']);
+ $dataConnector->setAttribute('dataParams', urlencode($row['dataSetParams']));
+ $dataConnector->setAttribute('js', 'dataSet_' . $row['dataSetId'] . '.js');
+
+ // Add criteria notes
+ if (count($criteriaNodes) > 0) {
+ foreach ($criteriaNodes as $criteriaNode) {
+ $dataConnector->appendChild($criteriaNode);
+ }
+ }
+
+ $dataConnectorNodes->appendChild($dataConnector);
}
}
}
@@ -1453,6 +1547,11 @@ protected function doSchedule($serverKey, $hardwareKey, $options = [])
if ($actionNodes != null) {
$layoutElements->appendChild($actionNodes);
}
+
+ // Add Data Connector nodes if we had any
+ if ($dataConnectorNodes != null) {
+ $layoutElements->appendChild($dataConnectorNodes);
+ }
} catch (\Exception $e) {
$this->getLog()->error('Error getting the schedule. ' . $e->getMessage());
return new \SoapFault('Sender', 'Unable to get the schedule');
@@ -1524,10 +1623,10 @@ protected function doSchedule($serverKey, $hardwareKey, $options = [])
}
// Add on a list of global dependants
- $globalDependents = $scheduleXml->createElement("dependants");
+ $globalDependents = $scheduleXml->createElement('dependants');
foreach ($moduleDependents as $dep) {
- $dependent = $scheduleXml->createElement("file", $dep);
+ $dependent = $scheduleXml->createElement('file', $dep);
$globalDependents->appendChild($dependent);
}
$layoutElements->appendChild($globalDependents);
@@ -1535,8 +1634,7 @@ protected function doSchedule($serverKey, $hardwareKey, $options = [])
// Format the output
$scheduleXml->formatOutput = true;
- if ($this->display->isAuditing())
- $this->getLog()->debug($scheduleXml->saveXML());
+ $this->getLog()->debug($scheduleXml->saveXML());
$output = $scheduleXml->saveXML();
@@ -1589,7 +1687,10 @@ protected function doSubmitLog($serverKey, $hardwareKey, $logXml)
// Check the serverKey matches
if ($serverKey != $this->getConfig()->getSetting('SERVER_KEY')) {
- throw new \SoapFault('Sender', 'The Server key you entered does not match with the server key at this address');
+ throw new \SoapFault(
+ 'Sender',
+ 'The Server key you entered does not match with the server key at this address'
+ );
}
// Auth this request...
@@ -1599,38 +1700,37 @@ protected function doSubmitLog($serverKey, $hardwareKey, $logXml)
// Now that we authenticated the Display, make sure we are sticking to our bandwidth limit
if (!$this->checkBandwidth($this->display->displayId)) {
- throw new \SoapFault('Receiver', "Bandwidth Limit exceeded");
+ throw new \SoapFault('Receiver', 'Bandwidth Limit exceeded');
}
// Load the XML into a DOMDocument
- $document = new \DOMDocument("1.0");
+ $document = new \DOMDocument('1.0');
if (!$document->loadXML($logXml)) {
- $this->getLog()->error('Malformed XML from Player, this will be discarded. The Raw XML String provided is: ' . $logXml);
+ $this->getLog()->error(
+ 'Malformed XML from Player, this will be discarded. The Raw XML String provided is: ' . $logXml
+ );
$this->getLog()->debug('XML log: ' . $logXml);
return true;
}
// Current log level
- $logLevel = $this->logProcessor->getLevel();
+ $logLevel = \Xibo\Service\LogService::resolveLogLevel($this->display->getLogLevel());
$discardedLogs = 0;
- // Get the display timezone to use when adjusting log dates.
- $defaultTimeZone = $this->getConfig()->getSetting('defaultTimezone');
-
// Store processed logs in an array
$logs = [];
foreach ($document->documentElement->childNodes as $node) {
/* @var \DOMElement $node */
// Make sure we don't consider any text nodes
- if ($node->nodeType == XML_TEXT_NODE)
+ if ($node->nodeType == XML_TEXT_NODE) {
continue;
-
+ }
// Zero out the common vars
- $scheduleId = "";
- $layoutId = "";
- $mediaId = "";
+ $scheduleId = '';
+ $layoutId = '';
+ $mediaId = '';
$method = '';
$thread = '';
$type = '';
@@ -1647,6 +1747,14 @@ protected function doSubmitLog($serverKey, $hardwareKey, $logXml)
continue;
}
+ // special handling for event
+ // this will create record in displayevent table
+ // and is not added to the logs.
+ if ($cat == 'event') {
+ $this->createDisplayAlert($node);
+ continue;
+ }
+
// Does this meet the current log level?
if ($cat == 'error') {
$recordLogLevel = Logger::ERROR;
@@ -1668,20 +1776,10 @@ protected function doSubmitLog($serverKey, $hardwareKey, $logXml)
}
// Adjust the date according to the display timezone
- try {
- $date = ($this->display->timeZone != null) ? Carbon::createFromFormat(DateFormatHelper::getSystemFormat(), $date, $this->display->timeZone)->tz($defaultTimeZone) : Carbon::createFromFormat(DateFormatHelper::getSystemFormat(), $date);
- $date = $date->format(DateFormatHelper::getSystemFormat());
- } catch (\Exception $e) {
- // Protect against the date format being inreadable
- $this->getLog()->debug('Date format unreadable on log message: ' . $date);
-
- // Use now instead
- $date = Carbon::now()->format(DateFormatHelper::getSystemFormat());
- }
+ $date = $this->adjustDisplayLogDate($date, DateFormatHelper::getSystemFormat());
// Get the date and the message (all log types have these)
foreach ($node->childNodes as $nodeElements) {
-
if ($nodeElements->nodeName == 'scheduleID') {
$scheduleId = $nodeElements->textContent;
} else if ($nodeElements->nodeName == 'layoutID') {
@@ -1695,30 +1793,32 @@ protected function doSubmitLog($serverKey, $hardwareKey, $logXml)
} else if ($nodeElements->nodeName == 'message') {
$message = $nodeElements->textContent;
} else if ($nodeElements->nodeName == 'thread') {
- if ($nodeElements->textContent != '')
+ if ($nodeElements->textContent != '') {
$thread = '[' . $nodeElements->textContent . '] ';
+ }
}
}
// If the message is still empty, take the entire node content
- if ($message == '')
+ if ($message == '') {
$message = $node->textContent;
-
+ }
// Add the IDs to the message
- if ($scheduleId != '')
+ if ($scheduleId != '') {
$message .= ' scheduleId: ' . $scheduleId;
-
- if ($layoutId != '')
- $message .= ' layoutId: '. $layoutId;
-
- if ($mediaId != '')
+ }
+ if ($layoutId != '') {
+ $message .= ' layoutId: ' . $layoutId;
+ }
+ if ($mediaId != '') {
$message .= ' mediaId: ' . $mediaId;
-
+ }
// Trim the page if it is over 50 characters.
$page = $thread . $method . $type;
- if (strlen($page) >= 50)
+ if (strlen($page) >= 50) {
$page = substr($page, 0, 49);
+ }
$logs[] = [
$this->logProcessor->getUid(),
@@ -1736,7 +1836,7 @@ protected function doSubmitLog($serverKey, $hardwareKey, $logXml)
if (count($logs) > 0) {
// Insert
$sql = '
- INSERT INTO log (
+ INSERT INTO `log` (
`runNo`,
`logdate`,
`channel`,
@@ -1748,26 +1848,39 @@ protected function doSubmitLog($serverKey, $hardwareKey, $logXml)
`displayid`
) VALUES
';
- $placeHolders = '(?, ?, ?, ?, ?, ?, ?, ?, ?)';
- $sql = $sql . implode(', ', array_fill(1, count($logs), $placeHolders));
+ // Build our query
+ $params = [];
- // Flatten the array
- $data = [];
+ // We're going to make params for each row/column
+ $i = 0;
+ $row = 0;
foreach ($logs as $log) {
+ $row++;
+ $sql .= '(';
foreach ($log as $field) {
- $data[] = $field;
+ $i++;
+ $key = $row . '_' . $i;
+ $sql .= ':' . $key . ',';
+ $params[$key] = $field;
}
+ $sql = rtrim($sql, ',');
+ $sql .= '),';
}
+ $sql = rtrim($sql, ',');
// Insert
- $this->getStore()->update($sql, $data);
+ $this->getStore()->update($sql, $params);
} else {
$this->getLog()->info('0 logs resolved from log package');
}
- if ($discardedLogs > 0)
- $this->getLog()->info('Discarded ' . $discardedLogs . ' logs. Consider adjusting your display profile log level. Resolved level is ' . $logLevel);
+ if ($discardedLogs > 0) {
+ $this->getLog()->info(
+ 'Discarded ' . $discardedLogs . ' logs.
+ Consider adjusting your display profile log level. Resolved level is ' . $logLevel
+ );
+ }
$this->logBandwidth($this->display->displayId, Bandwidth::$SUBMITLOG, strlen($logXml));
@@ -1811,9 +1924,7 @@ protected function doSubmitStats($serverKey, $hardwareKey, $statXml)
throw new \SoapFault('Receiver', 'Bandwidth Limit exceeded');
}
- if ($this->display->isAuditing()) {
- $this->getLog()->debug('Received XML. ' . $statXml);
- }
+ $this->getLog()->debug('Received XML. ' . $statXml);
if ($statXml == '') {
throw new \SoapFault('Receiver', 'Stat XML is empty.');
@@ -2144,9 +2255,7 @@ protected function doMediaInventory($serverKey, $hardwareKey, $inventory)
throw new \SoapFault('Receiver', 'Bandwidth Limit exceeded');
}
- if ($this->display->isAuditing()) {
- $this->getLog()->debug($inventory);
- }
+ $this->getLog()->debug($inventory);
// Check that the $inventory contains something
if ($inventory == '') {
@@ -2456,9 +2565,7 @@ protected function phoneHome()
// If it's been > 1 week since last PHONE_HOME then send a new report
$oneWeekAgo = Carbon::now()->subWeek()->format('U');
if ($this->getConfig()->getSetting('PHONE_HOME_DATE') < $oneWeekAgo) {
- if ($this->display->isAuditing()) {
- $this->getLog()->debug('Phone Home required for displayId ' . $this->display->displayId);
- }
+ $this->getLog()->debug('Phone Home required for displayId ' . $this->display->displayId);
try {
// What type of install are we?
@@ -2539,7 +2646,7 @@ protected function authDisplay($hardwareKey)
}
// Configure our log processor
- $this->logProcessor->setDisplay($this->display->displayId, ($this->display->isAuditing()));
+ $this->logProcessor->setDisplay($this->display->displayId, $this->display->isAuditing());
return true;
@@ -2560,11 +2667,11 @@ protected function alertDisplayUp(): void
{
$maintenanceEnabled = $this->getConfig()->getSetting('MAINTENANCE_ENABLED');
- if ($this->display->loggedIn == 0) {
+ if ($this->display->loggedIn == 0 && !empty($this->display->displayId)) {
$this->getLog()->info(sprintf('Display %s was down, now its up.', $this->display->display));
// Log display up
- $this->displayEventFactory->createEmpty()->displayUp($this->display->displayId);
+ $this->displayEventFactory->createEmpty()->eventEnd($this->display->displayId);
// Do we need to email?
if ($this->display->emailAlert == 1
@@ -2585,7 +2692,8 @@ protected function alertDisplayUp(): void
$notification = $this->notificationFactory->createSystemNotification(
$subject,
$body,
- Carbon::now()
+ Carbon::now(),
+ 'display',
);
// Get groups which have been configured to receive notifications
@@ -2701,7 +2809,7 @@ protected function getIp()
protected function checkBandwidth($displayId)
{
// Uncomment to enable auditing.
- //$this->logProcessor->setDisplay(0, true);
+ //$this->logProcessor->setDisplay(0, 'debug');
$this->display = $this->displayFactory->getById($displayId);
@@ -2716,15 +2824,26 @@ protected function checkBandwidth($displayId)
// Create a notification if we don't already have one today for this display.
$subject = __('Bandwidth allowance exceeded');
$date = Carbon::now();
+ $notifications = $this->notificationFactory->getBySubjectAndDate(
+ $subject,
+ $date->startOfDay()->format('U'),
+ $date->addDay()->startOfDay()->format('U')
+ );
- if (count($this->notificationFactory->getBySubjectAndDate($subject, $date->startOfDay()->format('U'), $date->addDay()->startOfDay()->format('U'))) <= 0) {
-
- $body = __(sprintf('Bandwidth allowance of %s exceeded. Used %s', ByteFormatter::format($xmdsLimit * 1024), ByteFormatter::format($bandwidthUsage)));
+ if (count($notifications) <= 0) {
+ $body = __(
+ sprintf(
+ 'Bandwidth allowance of %s exceeded. Used %s',
+ ByteFormatter::format($xmdsLimit * 1024),
+ ByteFormatter::format($bandwidthUsage)
+ )
+ );
$notification = $this->notificationFactory->createSystemNotification(
$subject,
$body,
- Carbon::now()
+ Carbon::now(),
+ 'library'
);
$notification->save();
@@ -2734,22 +2853,46 @@ protected function checkBandwidth($displayId)
return false;
- } elseif ($this->bandwidthFactory->isBandwidthExceeded($displayBandwidthLimit, $bandwidthUsage, $displayId)) {
+ } elseif ($this->bandwidthFactory->isBandwidthExceeded(
+ $displayBandwidthLimit,
+ $bandwidthUsage,
+ $displayId
+ )
+ ) {
// Bandwidth Exceeded
// Create a notification if we don't already have one today for this display.
$subject = __(sprintf('Display ID %d exceeded the bandwidth limit', $this->display->displayId));
$date = Carbon::now();
- if (count($this->notificationFactory->getBySubjectAndDate($subject, $date->startOfDay()->format('U'), $date->addDay()->startOfDay()->format('U'))) <= 0) {
-
- $body = __(sprintf('Display bandwidth limit %s exceeded. Used %s for Display Id %d', ByteFormatter::format($displayBandwidthLimit * 1024), ByteFormatter::format($bandwidthUsage), $this->display->displayId));
+ $notifications = $this->notificationFactory->getBySubjectAndDate(
+ $subject,
+ $date->startOfDay()->format('U'),
+ $date->addDay()->startOfDay()->format('U')
+ );
+ if (count($notifications) <= 0) {
+ $body = __(
+ sprintf(
+ 'Display bandwidth limit %s exceeded. Used %s for Display Id %d',
+ ByteFormatter::format($displayBandwidthLimit * 1024),
+ ByteFormatter::format($bandwidthUsage),
+ $this->display->displayId
+ )
+ );
$notification = $this->notificationFactory->createSystemNotification(
$subject,
$body,
- Carbon::now()
+ Carbon::now(),
+ 'display'
);
+ // Add in any displayNotificationGroups, with permissions
+ foreach ($this->userGroupFactory->getDisplayNotificationGroups(
+ $this->display->displayGroupId
+ ) as $group) {
+ $notification->assignUserGroup($group);
+ }
+
$notification->save();
$this->getLog()->critical($subject);
@@ -2970,6 +3113,96 @@ protected function setDateFilters()
$this->fromFilter = Carbon::createFromFormat(DateFormatHelper::getSystemFormat(), $fromFilter);
$this->toFilter = Carbon::createFromFormat(DateFormatHelper::getSystemFormat(), $toFilter);
- $this->getLog()->debug(sprintf('FromDT = %s [%d]. ToDt = %s [%d]', $fromFilter->toRssString(), $fromFilter->format('U'), $toFilter->toRssString(), $toFilter->format('U')));
+ $this->getLog()->debug(
+ sprintf(
+ 'FromDT = %s [%d]. ToDt = %s [%d]',
+ $fromFilter->toRssString(),
+ $fromFilter->format('U'),
+ $toFilter->toRssString(),
+ $toFilter->format('U')
+ )
+ );
+ }
+
+ /**
+ * Adjust the log date according to the Display timezone.
+ * Return current date if we fail.
+ * @param string $date
+ * @param string $format
+ * @return string
+ */
+ protected function adjustDisplayLogDate(string $date, string $format): string
+ {
+ // Get the display timezone to use when adjusting log dates.
+ $defaultTimeZone = $this->getConfig()->getSetting('defaultTimezone');
+
+ // Adjust the date according to the display timezone
+ try {
+ $date = ($this->display->timeZone != null)
+ ? Carbon::createFromFormat(
+ DateFormatHelper::getSystemFormat(),
+ $date,
+ $this->display->timeZone
+ )->tz($defaultTimeZone)
+ : Carbon::createFromFormat(
+ DateFormatHelper::getSystemFormat(),
+ $date
+ );
+ $date = $date->format($format);
+ } catch (\Exception $e) {
+ // Protect against the date format being unreadable
+ $this->getLog()->debug('Date format unreadable on log message: ' . $date);
+
+ // Use now instead
+ $date = Carbon::now()->format($format);
+ }
+
+ return $date;
+ }
+
+ private function createDisplayAlert(\DomElement $alertNode)
+ {
+ $date = $this->adjustDisplayLogDate($alertNode->getAttribute('date'), 'U');
+ $eventType = '';
+ $refId = '';
+ $detail = '';
+ $alertType = '';
+
+ // Get the nodes we are expecting
+ foreach ($alertNode->childNodes as $nodeElements) {
+ if ($nodeElements->nodeName == 'eventType') {
+ $eventType = $nodeElements->textContent;
+ } else if ($nodeElements->nodeName == 'refId') {
+ $refId = $nodeElements->textContent;
+ } else if ($nodeElements->nodeName == 'message') {
+ $detail = $nodeElements->textContent;
+ } else if ($nodeElements->nodeName == 'alertType') {
+ $alertType = $nodeElements->textContent;
+ }
+ }
+
+ // if alerts should provide both start and end or just start
+ if ($alertType == 'both' || $alertType == 'start') {
+ $displayEvent = $this->displayEventFactory->createEmpty();
+
+ // new record populated from the submitLog xml.
+ $displayEvent->displayId = $this->display->displayId;
+ $displayEvent->eventTypeId = $displayEvent->getEventIdFromString($eventType);
+ $displayEvent->eventDate = $date;
+ $displayEvent->start = $date;
+ $displayEvent->end = $alertType == 'both' ? $date : null;
+ $displayEvent->refId = empty($refId) ? null : $refId;
+ $displayEvent->detail = $detail;
+
+ $displayEvent->save();
+ } else if ($alertType == 'end') {
+ // if this event pertain only to end date for an existing event record,
+ // then set the end date for this display and the specified eventType
+ $displayEvent = $this->displayEventFactory->createEmpty();
+ $eventTypeId = $displayEvent->getEventIdFromString($eventType);
+ empty($refId)
+ ? $displayEvent->eventEnd($this->display->displayId, $eventTypeId, $detail, $date)
+ : $displayEvent->eventEndByReference($this->display->displayId, $eventTypeId, $refId, $detail);
+ }
}
}
diff --git a/lib/Xmds/Soap3.php b/lib/Xmds/Soap3.php
index f71c6fc320..4bec933ff5 100644
--- a/lib/Xmds/Soap3.php
+++ b/lib/Xmds/Soap3.php
@@ -1,6 +1,6 @@
licensed = 0;
}
- $this->logProcessor->setDisplay($display->displayId, ($display->isAuditing()));
+ $this->logProcessor->setDisplay($display->displayId, $display->isAuditing());
if ($display->licensed == 0) {
$active = 'Display is awaiting licensing approval from an Administrator.';
@@ -156,7 +156,10 @@ public function GetFile($serverKey, $hardwareKey, $filePath, $fileType, $chunkOf
// Check the serverKey matches
if ($serverKey != $this->getConfig()->getSetting('SERVER_KEY')) {
- throw new \SoapFault('Sender', 'The Server key you entered does not match with the server key at this address');
+ throw new \SoapFault(
+ 'Sender',
+ 'The Server key you entered does not match with the server key at this address'
+ );
}
// Authenticate this request...
@@ -169,15 +172,19 @@ public function GetFile($serverKey, $hardwareKey, $filePath, $fileType, $chunkOf
throw new \SoapFault('Receiver', 'Bandwidth Limit exceeded');
}
- if ($this->display->isAuditing()) {
- $this->getLog()->debug("[IN] Params: [$hardwareKey] [$filePath] [$fileType] [$chunkOffset] [$chunkSize]");
- }
+ $this->getLog()->debug(
+ '[IN] Params: ['. $hardwareKey .'] ['. $filePath . ']
+ ['. $fileType.'] ['.$chunkOffset.'] ['.$chunkSize.']'
+ );
$file = null;
if (empty($filePath)) {
$this->getLog()->error('Soap3 GetFile request without a file path. Maybe a player missing ?v= parameter');
- throw new \SoapFault('Receiver', 'GetFile request is missing file path - is this version compatible with this CMS?');
+ throw new \SoapFault(
+ 'Receiver',
+ 'GetFile request is missing file path - is this version compatible with this CMS?'
+ );
}
try {
diff --git a/lib/Xmds/Soap4.php b/lib/Xmds/Soap4.php
index 60d77dde7d..88bd57c2b1 100644
--- a/lib/Xmds/Soap4.php
+++ b/lib/Xmds/Soap4.php
@@ -1,6 +1,6 @@
$operatingSystem,
'macAddress' => $macAddress,
'xmrChannel' => $xmrChannel,
- 'xmrPubKey' => $xmrPubKey
+ 'xmrPubKey' => $xmrPubKey,
]);
// Sanitize
@@ -81,6 +81,7 @@ public function RegisterDisplay($serverKey, $hardwareKey, $displayName, $clientT
$clientCode = $sanitized->getInt('clientCode');
$macAddress = $sanitized->getString('macAddress');
$clientAddress = $this->getIp();
+ $operatingSystem = $sanitized->getString('operatingSystem');
// Check the serverKey matches
if ($serverKey != $this->getConfig()->getSetting('SERVER_KEY')) {
@@ -102,10 +103,13 @@ public function RegisterDisplay($serverKey, $hardwareKey, $displayName, $clientT
$display = $this->displayFactory->getByLicence($hardwareKey);
$this->display = $display;
- $this->logProcessor->setDisplay($display->displayId, ($display->isAuditing()));
+ $this->logProcessor->setDisplay($display->displayId, $display->isAuditing());
// Audit in
- $this->getLog()->debug('serverKey: ' . $serverKey . ', hardwareKey: ' . $hardwareKey . ', displayName: ' . $displayName . ', macAddress: ' . $macAddress);
+ $this->getLog()->debug(
+ 'serverKey: ' . $serverKey . ', hardwareKey: ' . $hardwareKey .
+ ', displayName: ' . $displayName . ', macAddress: ' . $macAddress
+ );
// Now
$dateNow = Carbon::now();
@@ -268,7 +272,18 @@ public function RegisterDisplay($serverKey, $hardwareKey, $displayName, $clientT
$display->clientType = $clientType;
$display->clientVersion = $clientVersion;
$display->clientCode = $clientCode;
- //$display->operatingSystem = $operatingSystem;
+
+ // Parse operatingSystem JSON data
+ $operatingSystemJson = json_decode($operatingSystem, false);
+
+ // Newer version of players will return a JSON value, but for older version, it will return a string.
+ // In case the json decode fails, use the operatingSystem string value as the default value for the osVersion.
+ $display->osVersion = $operatingSystemJson->version ?? $operatingSystem;
+ $display->osSdk = $operatingSystemJson->sdk ?? null;
+ $display->manufacturer = $operatingSystemJson->manufacturer ?? null;
+ $display->brand = $operatingSystemJson->brand ?? null;
+ $display->model = $operatingSystemJson->model ?? null;
+
$display->save(['validate' => false, 'audit' => false]);
// Log Bandwidth
@@ -357,10 +372,12 @@ function GetFile($serverKey, $hardwareKey, $fileId, $fileType, $chunkOffset, $ch
throw new \SoapFault('Receiver', 'Bandwidth Limit exceeded');
}
- if ($this->display->isAuditing()) {
- $this->getLog()->debug('hardwareKey: ' . $hardwareKey . ', fileId: ' . $fileId . ', fileType: '
- . $fileType . ', chunkOffset: ' . $chunkOffset . ', chunkSize: ' . $chunkSize);
- }
+
+ $this->getLog()->debug(
+ 'hardwareKey: ' . $hardwareKey . ', fileId: ' . $fileId . ', fileType: ' . $fileType .
+ ', chunkOffset: ' . $chunkOffset . ', chunkSize: ' . $chunkSize
+ );
+
try {
if ($isDependency || ($fileType == 'media' && $fileId < 0)) {
@@ -598,9 +615,7 @@ public function NotifyStatus($serverKey, $hardwareKey, $status)
}
// Important to keep this logging in place (status screen notification gets logged)
- if ($this->display->isAuditing()) {
- $this->getLog()->debug($status);
- }
+ $this->getLog()->debug($status);
$this->logBandwidth($this->display->displayId, Bandwidth::$NOTIFYSTATUS, strlen($status));
@@ -756,9 +771,7 @@ public function SubmitScreenShot($serverKey, $hardwareKey, $screenShot)
throw new \SoapFault('Receiver', "Bandwidth Limit exceeded");
}
- if ($this->display->isAuditing()) {
- $this->getLog()->debug('Received Screen shot');
- }
+ $this->getLog()->debug('Received Screen shot');
// Open this displays screen shot file and save this.
$location = $this->getConfig()->getSetting('LIBRARY_LOCATION') . 'screenshots/' . $this->display->displayId . '_screenshot.' . $screenShotFmt;
@@ -768,14 +781,10 @@ public function SubmitScreenShot($serverKey, $hardwareKey, $screenShot)
try {
$screenShotImg = Img::make($screenShot);
} catch (\Exception $e) {
- if ($this->display->isAuditing()) {
- $this->getLog()->debug($imgDriver . " - " . $e->getMessage());
- }
+ $this->getLog()->debug($imgDriver . ' - ' . $e->getMessage());
}
if ($screenShotImg !== false) {
- if ($this->display->isAuditing()) {
- $this->getLog()->debug("Use " . $imgDriver);
- }
+ $this->getLog()->debug('Use ' . $imgDriver);
break;
}
}
@@ -786,15 +795,11 @@ public function SubmitScreenShot($serverKey, $hardwareKey, $screenShot)
if ($imgMime != $screenShotMime) {
$needConversion = true;
try {
- if ($this->display->isAuditing()) {
- $this->getLog()->debug("converting: '" . $imgMime . "' to '" . $screenShotMime . "'");
- }
+ $this->getLog()->debug("converting: '" . $imgMime . "' to '" . $screenShotMime . "'");
$screenShot = (string) $screenShotImg->encode($screenShotFmt);
$converted = true;
} catch (\Exception $e) {
- if ($this->display->isAuditing()) {
- $this->getLog()->debug($e->getMessage());
- }
+ $this->getLog()->debug($e->getMessage());
}
}
}
diff --git a/lib/Xmds/Soap5.php b/lib/Xmds/Soap5.php
old mode 100644
new mode 100755
index 29537d1a42..46da9bc793
--- a/lib/Xmds/Soap5.php
+++ b/lib/Xmds/Soap5.php
@@ -99,6 +99,8 @@ public function RegisterDisplay(
$clientAddress = $this->getIp();
$xmrChannel = $sanitized->getString('xmrChannel');
$xmrPubKey = trim($sanitized->getString('xmrPubKey'));
+ $operatingSystem = $sanitized->getString('operatingSystem');
+
// this is only sent from xmds v7
$commercialLicenceString = $sanitized->getString('licenceResult');
@@ -108,12 +110,18 @@ public function RegisterDisplay(
// Check the serverKey matches
if ($serverKey != $this->getConfig()->getSetting('SERVER_KEY')) {
- throw new \SoapFault('Sender', 'The Server key you entered does not match with the server key at this address');
+ throw new \SoapFault(
+ 'Sender',
+ 'The Server key you entered does not match with the server key at this address'
+ );
}
// Check the Length of the hardwareKey
if (strlen($hardwareKey) > 40) {
- throw new \SoapFault('Sender', 'The Hardware Key you sent was too long. Only 40 characters are allowed (SHA1).');
+ throw new \SoapFault(
+ 'Sender',
+ 'The Hardware Key you sent was too long. Only 40 characters are allowed (SHA1).'
+ );
}
// Return an XML formatted string
@@ -122,17 +130,20 @@ public function RegisterDisplay(
$return->appendChild($displayElement);
// Uncomment this if we want additional logging in register.
- //$this->logProcessor->setDisplay(0, 1);
+ //$this->logProcessor->setDisplay(0, 'debug');
// Check in the database for this hardwareKey
try {
$display = $this->displayFactory->getByLicence($hardwareKey);
$this->display = $display;
- $this->logProcessor->setDisplay($display->displayId, ($display->isAuditing()));
+ $this->logProcessor->setDisplay($display->displayId, $display->isAuditing());
// Audit in
- $this->getLog()->debug('serverKey: ' . $serverKey . ', hardwareKey: ' . $hardwareKey . ', displayName: ' . $displayName . ', macAddress: ' . $macAddress);
+ $this->getLog()->debug(
+ 'serverKey: ' . $serverKey . ', hardwareKey: ' . $hardwareKey .
+ ', displayName: ' . $displayName . ', macAddress: ' . $macAddress
+ );
// Now
$dateNow = Carbon::now();
@@ -146,7 +157,10 @@ public function RegisterDisplay(
// It is not authorised
$displayElement->setAttribute('status', 2);
$displayElement->setAttribute('code', 'WAITING');
- $displayElement->setAttribute('message', 'Display is Registered and awaiting Authorisation from an Administrator in the CMS');
+ $displayElement->setAttribute(
+ 'message',
+ 'Display is Registered and awaiting Authorisation from an Administrator in the CMS'
+ );
} else {
// It is licensed
$displayElement->setAttribute('status', 0);
@@ -167,11 +181,20 @@ public function RegisterDisplay(
}
// Override the XMR address if empty
- if (strtolower($settingName) == 'xmrnetworkaddress' && (!isset($arrayItem['value']) || $arrayItem['value'] == '')) {
+ if (strtolower($settingName) == 'xmrnetworkaddress' &&
+ (!isset($arrayItem['value']) || $arrayItem['value'] == '')
+ ) {
$arrayItem['value'] = $this->getConfig()->getSetting('XMR_PUB_ADDRESS');
}
- $value = (isset($arrayItem['value']) ? $arrayItem['value'] : $arrayItem['default']);
+ // logLevels
+ if (strtolower($settingName) == 'loglevel') {
+ // return resting log level
+ // unless it is currently elevated, in which case return debug
+ $arrayItem['value'] = $this->display->getLogLevel();
+ }
+
+ $value = ($arrayItem['value'] ?? $arrayItem['default']);
// Patch download and update windows to make sure they are only 00:00
// https://github.com/xibosignage/xibo/issues/1791
@@ -308,6 +331,7 @@ public function RegisterDisplay(
}
$node = $return->createElement($command->code);
+ $node->setAttribute('createAlertOn', $command->getCreateAlertOn());
$commandString = $return->createElement('commandString');
$commandStringCData = $return->createCDATASection($command->getCommandString());
$commandString->appendChild($commandStringCData);
@@ -320,7 +344,10 @@ public function RegisterDisplay(
$commandElement->appendChild($node);
} catch (\DOMException $DOMException) {
- $this->getLog()->error('Cannot add command to settings for displayId ' . $this->display->displayId . ', ' . $DOMException->getMessage());
+ $this->getLog()->error(
+ 'Cannot add command to settings for displayId ' .
+ $this->display->displayId . ', ' . $DOMException->getMessage()
+ );
}
}
}
@@ -352,9 +379,7 @@ public function RegisterDisplay(
}
// Check to see if the channel/pubKey are already entered
- if ($display->isAuditing()) {
- $this->getLog()->debug('xmrChannel: [' . $xmrChannel . ']. xmrPublicKey: [' . $xmrPubKey . ']');
- }
+ $this->getLog()->debug('xmrChannel: [' . $xmrChannel . ']. xmrPublicKey: [' . $xmrPubKey . ']');
// Update the Channel
$display->xmrChannel = $xmrChannel;
@@ -410,7 +435,17 @@ public function RegisterDisplay(
$display->clientType = $clientType;
$display->clientVersion = $clientVersion;
$display->clientCode = $clientCode;
- //$display->operatingSystem = $operatingSystem;
+
+ // Parse operatingSystem data
+ $operatingSystemJson = json_decode($operatingSystem, false);
+
+ // Newer version of players will return a JSON value, but for older version, it will return a string.
+ // In case the json decode fails, use the operatingSystem string value as the default value for the osVersion.
+ $display->osVersion = $operatingSystemJson->version ?? $operatingSystem;
+ $display->osSdk = $operatingSystemJson->sdk ?? null;
+ $display->manufacturer = $operatingSystemJson->manufacturer ?? null;
+ $display->brand = $operatingSystemJson->brand ?? null;
+ $display->model = $operatingSystemJson->model ?? null;
// Commercial Licence Check, 0 - Not licensed, 1 - licensed, 2 - trial licence, 3 - not applicable
// only sent by xmds v7
@@ -453,6 +488,16 @@ public function RegisterDisplay(
$value = $return->createTextNode($syncGroup->syncPublisherPort ?? 9590);
$syncPublisherPortNode->appendChild($value);
$displayElement->appendChild($syncPublisherPortNode);
+
+ $syncSwitchDelayNode = $return->createElement('syncSwitchDelay');
+ $value = $return->createTextNode($syncGroup->syncSwitchDelay ?? 750);
+ $syncSwitchDelayNode->appendChild($value);
+ $displayElement->appendChild($syncSwitchDelayNode);
+
+ $syncVideoPauseDelayNode = $return->createElement('syncVideoPauseDelay');
+ $value = $return->createTextNode($syncGroup->syncVideoPauseDelay ?? 100);
+ $syncVideoPauseDelayNode->appendChild($value);
+ $displayElement->appendChild($syncVideoPauseDelayNode);
}
$display->save(Display::$saveOptionsMinimum);
@@ -460,11 +505,14 @@ public function RegisterDisplay(
// cache checks
$cacheSchedule = $this->getPool()->getItem($this->display->getCacheKey() . '/schedule');
$cacheSchedule->setInvalidationMethod(Invalidation::OLD);
- $displayElement->setAttribute('checkSchedule', ($cacheSchedule->isHit() ? crc32($cacheSchedule->get()) : ""));
+ $displayElement->setAttribute(
+ 'checkSchedule',
+ ($cacheSchedule->isHit() ? crc32($cacheSchedule->get()) : '')
+ );
$cacheRF = $this->getPool()->getItem($this->display->getCacheKey() . '/requiredFiles');
$cacheRF->setInvalidationMethod(Invalidation::OLD);
- $displayElement->setAttribute('checkRf', ($cacheRF->isHit() ? crc32($cacheRF->get()) : ""));
+ $displayElement->setAttribute('checkRf', ($cacheRF->isHit() ? crc32($cacheRF->get()) : ''));
// Log Bandwidth
$returnXml = $return->saveXML();
diff --git a/lib/Xmds/Soap6.php b/lib/Xmds/Soap6.php
index 57425efc91..e053332a97 100644
--- a/lib/Xmds/Soap6.php
+++ b/lib/Xmds/Soap6.php
@@ -1,6 +1,6 @@
logProcessor->setRoute('ReportFault');
- //$this->logProcessor->setDisplay(0, 1);
+ //$this->logProcessor->setDisplay(0, 'debug');
$sanitizer = $this->getSanitizer([
'serverKey' => $serverKey,
@@ -57,7 +58,10 @@ public function reportFaults(string $serverKey, string $hardwareKey, string $fau
// Check the serverKey matches
if ($serverKey != $this->getConfig()->getSetting('SERVER_KEY')) {
- throw new \SoapFault('Sender', 'The Server key you entered does not match with the server key at this address');
+ throw new \SoapFault(
+ 'Sender',
+ 'The Server key you entered does not match with the server key at this address'
+ );
}
// Auth this request...
@@ -70,17 +74,23 @@ public function reportFaults(string $serverKey, string $hardwareKey, string $fau
throw new \SoapFault('Receiver', 'Bandwidth Limit exceeded');
}
+ $faultDecoded = json_decode($fault, true);
+
+ // check if we should record or update any display events.
+ $this->manageDisplayAlerts($faultDecoded);
+
// clear existing records from player_faults table
$this->getStore()->update('DELETE FROM `player_faults` WHERE displayId = :displayId', [
'displayId' => $this->display->displayId
]);
- $faultDecoded = json_decode($fault, true);
-
foreach ($faultDecoded as $faultAlert) {
$sanitizedFaultAlert = $this->getSanitizer($faultAlert);
- $incidentDt = $sanitizedFaultAlert->getDate('date', ['default' => Carbon::now()])->format(DateFormatHelper::getSystemFormat());
+ $incidentDt = $sanitizedFaultAlert->getDate(
+ 'date',
+ ['default' => Carbon::now()]
+ )->format(DateFormatHelper::getSystemFormat());
$expires = $sanitizedFaultAlert->getDate('expires', ['default' => null]);
$code = $sanitizedFaultAlert->getInt('code');
$reason = $sanitizedFaultAlert->getString('reason');
@@ -125,4 +135,99 @@ public function reportFaults(string $serverKey, string $hardwareKey, string $fau
return true;
}
+
+ private function manageDisplayAlerts(array $newPlayerFaults)
+ {
+ // check current faults for player
+ $currentFaults = $this->playerFaultFactory->getByDisplayId($this->display->displayId);
+
+ // if we had faults and now we no longer have any to add
+ // set end date for any existing fault events
+ // add display event for cleared all faults
+ if (!empty($currentFaults) && empty($newPlayerFaults)) {
+ $displayEvent = $this->displayEventFactory->createEmpty();
+ $displayEvent->eventTypeId = $displayEvent->getEventIdFromString('Player Fault');
+ $displayEvent->displayId = $this->display->displayId;
+ // clear any open player fault events for this display
+ $displayEvent->eventEnd($displayEvent->displayId, $displayEvent->eventTypeId);
+
+ // log new event for all faults cleared.
+ $displayEvent->start = Carbon::now()->format('U');
+ $displayEvent->end = Carbon::now()->format('U');
+ $displayEvent->detail = __('All Player faults cleared');
+ $displayEvent->save();
+ } else if (empty($currentFaults) && !empty($newPlayerFaults)) {
+ $codesAdded = [];
+ // we do not have any faults currently, but new ones will be added
+ foreach ($newPlayerFaults as $newPlayerFault) {
+ $sanitizedFaultAlert = $this->getSanitizer($newPlayerFault);
+ // if we do not have an alert for the specific code yet, add it
+ if (!in_array($sanitizedFaultAlert->getInt('code'), $codesAdded)) {
+ $this->addDisplayEvent($sanitizedFaultAlert);
+ // keep track of added codes, we want a single alert per code
+ $codesAdded[] = $sanitizedFaultAlert->getInt('code');
+ }
+ }
+ } else if (!empty($newPlayerFaults) && !empty($currentFaults)) {
+ // we have both existing faults and new faults
+ $existingFaultsCodes = [];
+ $newFaultCodes = [];
+ $codesAdded = [];
+
+ // keep track of existing fault codes.
+ foreach ($currentFaults as $currentFault) {
+ $existingFaultsCodes[] = $currentFault->code;
+ }
+
+ // go through new faults
+ foreach ($newPlayerFaults as $newPlayerFault) {
+ $sanitizedFaultAlert = $this->getSanitizer($newPlayerFault);
+ $newFaultCodes[] = $sanitizedFaultAlert->getInt('code');
+ // if it already exists, we do not do anything with alerts
+ // if it is a new code and was not added already
+ // add it now
+ if (!in_array($sanitizedFaultAlert->getInt('code'), $existingFaultsCodes)
+ && !in_array($sanitizedFaultAlert->getInt('code'), $codesAdded)
+ ) {
+ $this->addDisplayEvent($sanitizedFaultAlert);
+ // keep track of added codes, we want a single alert per code
+ $codesAdded[] = $sanitizedFaultAlert->getInt('code');
+ }
+ }
+
+ // go through any existing codes that are no longer reported
+ // update the end date on all of them.
+ foreach (array_diff($existingFaultsCodes, $newFaultCodes) as $code) {
+ $displayEvent = $this->displayEventFactory->createEmpty();
+ $displayEvent->eventEndByReference(
+ $this->display->displayId,
+ $displayEvent->getEventIdFromString('Player Fault'),
+ $code
+ );
+ }
+ }
+ }
+
+ private function addDisplayEvent(SanitizerInterface $sanitizedFaultAlert)
+ {
+ $this->getLog()->debug(
+ sprintf(
+ 'displayEvent : add new display alert for player fault code %d and displayId %d',
+ $sanitizedFaultAlert->getInt('code'),
+ $this->display->displayId
+ )
+ );
+
+ $displayEvent = $this->displayEventFactory->createEmpty();
+ $displayEvent->eventTypeId = $displayEvent->getEventIdFromString('Player Fault');
+ $displayEvent->displayId = $this->display->displayId;
+ $displayEvent->start = $sanitizedFaultAlert->getDate(
+ 'date',
+ ['default' => Carbon::now()]
+ )->format('U');
+ $displayEvent->end = null;
+ $displayEvent->detail = $sanitizedFaultAlert->getString('reason');
+ $displayEvent->refId = $sanitizedFaultAlert->getInt('code');
+ $displayEvent->save();
+ }
}
diff --git a/lib/Xmds/Soap7.php b/lib/Xmds/Soap7.php
index 5816045e83..293f5a3896 100644
--- a/lib/Xmds/Soap7.php
+++ b/lib/Xmds/Soap7.php
@@ -23,6 +23,7 @@
namespace Xibo\Xmds;
use Xibo\Entity\Bandwidth;
+use Xibo\Event\XmdsWeatherRequestEvent;
use Xibo\Support\Exception\GeneralException;
use Xibo\Support\Exception\NotFoundException;
@@ -291,7 +292,22 @@ public function GetWeather($serverKey, $hardwareKey): string
throw new \SoapFault('Receiver', 'This Display is not authorised.');
}
- // TODO actually get the Weather with Display lat/long
- return '{}';
+ $latitude = $this->display->latitude;
+ $longitude = $this->display->longitude;
+
+ // check for coordinates if present
+ if ($latitude && $longitude) {
+ // Dispatch an event to initialize weather data.
+ $event = new XmdsWeatherRequestEvent($latitude, $longitude);
+ $this->getDispatcher()->dispatch($event, XmdsWeatherRequestEvent::$NAME);
+ } else {
+ throw new \SoapFault(
+ 'Receiver',
+ 'Display coordinates is not configured'
+ );
+ }
+
+ // return weather data
+ return $event->getWeatherData();
}
}
diff --git a/lib/routes-web.php b/lib/routes-web.php
index 3cb33b770e..1fa0372ccc 100644
--- a/lib/routes-web.php
+++ b/lib/routes-web.php
@@ -1,6 +1,6 @@
setName('layout.view');
$app->group('', function(\Slim\Routing\RouteCollectorProxy $group) {
- $group->get('/layout/preview/{id}', ['\Xibo\Controller\Preview', 'show'])->setName('layout.preview');
$group->get('/layout/xlf/{id}', ['\Xibo\Controller\Preview', 'getXlf'])->setName('layout.getXlf');
$group->get('/layout/background/{id}', ['\Xibo\Controller\Layout', 'downloadBackground'])->setName('layout.download.background');
$group->get('/layout/thumbnail/{id}', ['\Xibo\Controller\Layout', 'downloadThumbnail'])->setName('layout.download.thumbnail');
@@ -142,6 +141,10 @@
$group->get('/connector/widget/preview', ['\Xibo\Controller\Connector', 'connectorPreview'])->setName('layout.preview.connector');
})->addMiddleware(new FeatureAuth($app->getContainer(), ['layout.view', 'template.view']));
+$app->get('/layout/preview/{id}', ['\Xibo\Controller\Preview', 'show'])
+ ->addMiddleware(new FeatureAuth($app->getContainer(), ['layout.view', 'template.view', 'campaign.view']))
+ ->setName('layout.preview');
+
// forms
$app->get('/layout/form/add', ['\Xibo\Controller\Layout','addForm'])
->addMiddleware(new FeatureAuth($app->getContainer(), ['layout.add']))
@@ -237,6 +240,9 @@
$app->get('/library/search', ['\Xibo\Controller\Library','search'])
->setName('library.search.all');
+$app->get('/library/connector/list', ['\Xibo\Controller\Library','providersList'])
+ ->setName('library.search.providers');
+
$app->get('/library/view', ['\Xibo\Controller\Library','displayPage'])
->addMiddleware(new FeatureAuth($app->getContainer(), ['library.view']))
->setName('library.view');
@@ -366,8 +372,7 @@
->setName('campaign.selectfolder.form');
$app->get('/campaign/{id}/preview', ['\Xibo\Controller\Campaign','preview'])
- ->addMiddleware(new FeatureAuth($app->getContainer(), ['campaign.view']))
- ->addMiddleware(new FeatureAuth($app->getContainer(), ['layout.view']))
+ ->addMiddleware(new FeatureAuth($app->getContainer(), ['campaign.view', 'layout.view']))
->setName('campaign.preview');
//
@@ -418,6 +423,11 @@
$group->get('/dataset/form/import/{id}', ['\Xibo\Controller\DataSet', 'importForm'])->setName('dataSet.import.form');
$group->get('/dataset/form/cache/clear/{id}', ['\Xibo\Controller\DataSet', 'clearCacheForm'])->setName('dataSet.clear.cache.form');
$group->post('/dataset/cache/clear/{id}', ['\Xibo\Controller\DataSet', 'clearCache'])->setName('dataSet.clear.cache');
+ $group->get('/dataset/form/{id}/selectfolder', ['\Xibo\Controller\DataSet', 'selectFolderForm'])->setName('dataSet.selectfolder.form');
+
+ $group->get('/dataset/dataConnector/{id}', ['\Xibo\Controller\DataSet', 'dataConnectorView'])->setName('dataSet.dataConnector.view');
+ $group->get('/dataset/dataConnector/request/{id}', ['\Xibo\Controller\DataSet', 'dataConnectorRequest'])->setName('dataSet.dataConnector.request');
+ $group->get('/dataset/dataConnector/test/{id}', ['\Xibo\Controller\DataSet', 'dataConnectorTest'])->setName('dataSet.dataConnector.test');
// columns
$group->get('/dataset/{id}/column/view', ['\Xibo\Controller\DataSetColumn','displayPage'])->setName('dataSet.column.view');
@@ -566,6 +576,46 @@
->setName('module.settings.form');
})->addMiddleware(new FeatureAuth($app->getContainer(), ['module.view']));
+//
+// Developer
+//
+$app->group('', function (\Slim\Routing\RouteCollectorProxy $group) {
+ $group->get('/developer/template/datatypes', ['\Xibo\Controller\Developer', 'getAvailableDataTypes'])
+ ->setName('developer.templates.datatypes.search');
+ $group->get('/developer/template/view', ['\Xibo\Controller\Developer', 'displayTemplatePage'])
+ ->setName('developer.templates.view');
+ $group->get('/developer/template', ['\Xibo\Controller\Developer', 'templateGrid'])
+ ->setName('developer.templates.search');
+
+ $group->get('/developer/template/{id}', ['\Xibo\Controller\Developer', 'displayTemplateEditPage'])
+ ->setName('developer.templates.view.edit');
+
+ $group->get('/developer/template/form/add', ['\Xibo\Controller\Developer', 'templateAddForm'])
+ ->setName('developer.templates.form.add');
+
+ $group->get('/developer/template/form/edit/{id}', ['\Xibo\Controller\Developer', 'templateEditForm'])
+ ->setName('developer.templates.form.edit');
+
+ $group->get('/developer/template/form/delete/{id}', ['\Xibo\Controller\Developer', 'templateDeleteForm'])
+ ->setName('developer.templates.form.delete');
+
+ $group->get('/developer/template/form/copy/{id}', ['\Xibo\Controller\Developer', 'templateCopyForm'])
+ ->setName('developer.templates.form.copy');
+
+ $group->post('/developer/template', ['\Xibo\Controller\Developer', 'templateAdd'])
+ ->setName('developer.templates.add');
+ $group->put('/developer/template/{id}', ['\Xibo\Controller\Developer', 'templateEdit'])
+ ->setName('developer.templates.edit');
+ $group->delete('/developer/template/{id}', ['\Xibo\Controller\Developer', 'templateDelete'])
+ ->setName('developer.templates.delete');
+ $group->get('/developer/template/{id}/export', ['\Xibo\Controller\Developer', 'templateExport'])
+ ->setName('developer.templates.export');
+ $group->post('/developer/template/import', ['\Xibo\Controller\Developer', 'templateImport'])
+ ->setName('developer.templates.import');
+ $group->post('/developer/template/{id}/copy', ['\Xibo\Controller\Developer', 'templateCopy'])
+ ->setName('developer.templates.copy');
+})->addMiddleware(new FeatureAuth($app->getContainer(), ['developer.edit']));
+
//
// transition
//
diff --git a/lib/routes.php b/lib/routes.php
index 997bbed15e..d8318337b6 100644
--- a/lib/routes.php
+++ b/lib/routes.php
@@ -20,6 +20,8 @@
* along with Xibo. If not, see .
*/
+global $app;
+
use Slim\Routing\RouteCollectorProxy;
use Xibo\Middleware\FeatureAuth;
use Xibo\Middleware\LayoutLock;
@@ -211,8 +213,18 @@
$group->put('/playlist/{id}', ['\Xibo\Controller\Playlist','edit'])->setName('playlist.edit');
$group->delete('/playlist/{id}', ['\Xibo\Controller\Playlist','delete'])->setName('playlist.delete');
$group->post('/playlist/copy/{id}', ['\Xibo\Controller\Playlist','copy'])->setName('playlist.copy');
- $group->put('/playlist/setenablestat/{id}', ['\Xibo\Controller\Playlist','setEnableStat'])->setName('playlist.setenablestat');
- $group->put('/playlist/{id}/selectfolder', ['\Xibo\Controller\Playlist','selectFolder'])->setName('playlist.selectfolder');
+ $group->put(
+ '/playlist/setenablestat/{id}',
+ ['\Xibo\Controller\Playlist','setEnableStat']
+ )->setName('playlist.setenablestat');
+ $group->put(
+ '/playlist/{id}/selectfolder',
+ ['\Xibo\Controller\Playlist','selectFolder']
+ )->setName('playlist.selectfolder');
+ $group->post(
+ '/playlist/{id}/convert',
+ ['\Xibo\Controller\Playlist','convert']
+ )->setName('playlist.convert');
})->addMiddleware(new FeatureAuth($app->getContainer(), ['playlist.modify']));
@@ -239,7 +251,8 @@
$group->post('/{type}/{id}', ['\Xibo\Controller\Widget','addWidget'])->setName('module.widget.add');
$group->put('/{id}', ['\Xibo\Controller\Widget','editWidget'])->setName('module.widget.edit');
$group->delete('/{id}', ['\Xibo\Controller\Widget','deleteWidget'])->setName('module.widget.delete');
- $group->put('/transition/{type}/{id}', ['\Xibo\Controller\Widget','editWidgetTransition'])->setName('module.widget.transition.edit');
+ $group->put('/transition/{type}/{id}', ['\Xibo\Controller\Widget','editWidgetTransition'])
+ ->setName('module.widget.transition.edit');
$group->put('/{id}/audio', ['\Xibo\Controller\Widget','widgetAudio'])->setName('module.widget.audio');
$group->delete('/{id}/audio', ['\Xibo\Controller\Widget','widgetAudioDelete']);
$group->put('/{id}/expiry', ['\Xibo\Controller\Widget','widgetExpiry'])->setName('module.widget.expiry');
@@ -248,6 +261,18 @@
// Drawer widgets Region
$group->put('/{id}/target', ['\Xibo\Controller\Widget','widgetSetRegion'])->setName('module.widget.set.region');
+
+ // Widget Fallback Data APIs
+ $group->get('/fallback/data/{id}', ['\Xibo\Controller\WidgetData','get'])
+ ->setName('module.widget.data.get');
+ $group->post('/fallback/data/{id}', ['\Xibo\Controller\WidgetData','add'])
+ ->setName('module.widget.data.add');
+ $group->put('/fallback/data/{id}/{dataId}', ['\Xibo\Controller\WidgetData','edit'])
+ ->setName('module.widget.data.edit');
+ $group->delete('/fallback/data/{id}/{dataId}', ['\Xibo\Controller\WidgetData','delete'])
+ ->setName('module.widget.data.delete');
+ $group->post('/fallback/data/{id}/order', ['\Xibo\Controller\WidgetData','setOrder'])
+ ->setName('module.widget.data.set.order');
})
->addMiddleware(new FeatureAuth($app->getContainer(), ['layout.modify', 'playlist.modify']))
->addMiddleware(new LayoutLock($app));
@@ -398,6 +423,7 @@
$app->post('/displaygroup', ['\Xibo\Controller\DisplayGroup','add'])
->addMiddleware(new \Xibo\Middleware\FeatureAuth($app->getContainer(), ['displaygroup.add']))
->setName('displayGroup.add');
+$app->post('/displaygroup/criteria/{displayGroupId}', ['\Xibo\Controller\DisplayGroup','pushCriteriaUpdate'])->setName('displayGroup.criteria.push');
$app->post('/displaygroup/{id}/action/collectNow', ['\Xibo\Controller\DisplayGroup','collectNow'])
->addMiddleware(new \Xibo\Middleware\FeatureAuth($app->getContainer(), ['displaygroup.view']))
@@ -463,11 +489,14 @@
$app->group('', function (RouteCollectorProxy $group) {
$group->put('/dataset/{id}', ['\Xibo\Controller\DataSet','edit'])->setName('dataSet.edit');
$group->delete('/dataset/{id}', ['\Xibo\Controller\DataSet','delete'])->setName('dataSet.delete');
+ $group->put('/dataset/{id}/selectfolder', ['\Xibo\Controller\DataSet', 'selectFolder'])->setName('dataSet.selectfolder');
+
$group->post('/dataset/copy/{id}', ['\Xibo\Controller\DataSet','copy'])->setName('dataSet.copy');
//$group->map(['HEAD'],'/dataset/import/{id}', ['\Xibo\Controller\DataSet','import');
$group->post('/dataset/import/{id}', ['\Xibo\Controller\DataSet','import'])->setName('dataSet.import');
$group->post('/dataset/importjson/{id}', ['\Xibo\Controller\DataSet','importJson'])->setName('dataSet.import.json');
$group->post('/dataset/remote/test', ['\Xibo\Controller\DataSet','testRemoteRequest'])->setName('dataSet.test.remote');
+ $group->put('/dataset/dataConnector/{id}', ['\Xibo\Controller\DataSet','updateDataConnector'])->setName('dataSet.dataConnector.update');
$group->get('/dataset/export/csv/{id}', ['\Xibo\Controller\DataSet', 'exportToCsv'])->setName('dataSet.export.csv');
// Columns
diff --git a/locale/af.mo b/locale/af.mo
index 30f6b3e8cf..c6939dab57 100755
Binary files a/locale/af.mo and b/locale/af.mo differ
diff --git a/locale/ar.mo b/locale/ar.mo
index fbb6777c73..18f1d3e554 100755
Binary files a/locale/ar.mo and b/locale/ar.mo differ
diff --git a/locale/bg.mo b/locale/bg.mo
index 85045c245e..c114fb8d66 100755
Binary files a/locale/bg.mo and b/locale/bg.mo differ
diff --git a/locale/ca.mo b/locale/ca.mo
index d4ac42a844..3bfd2998f8 100755
Binary files a/locale/ca.mo and b/locale/ca.mo differ
diff --git a/locale/cs.mo b/locale/cs.mo
index 81915859c1..f55b68e424 100755
Binary files a/locale/cs.mo and b/locale/cs.mo differ
diff --git a/locale/da.mo b/locale/da.mo
index cf38ce73c6..5e366d45ee 100755
Binary files a/locale/da.mo and b/locale/da.mo differ
diff --git a/locale/de.mo b/locale/de.mo
index dd38edb581..c3a10f2805 100755
Binary files a/locale/de.mo and b/locale/de.mo differ
diff --git a/locale/default.pot b/locale/default.pot
index 3349a8e93c..be00d2708e 100755
--- a/locale/default.pot
+++ b/locale/default.pot
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-07-05 08:10+0100\n"
+"POT-Creation-Date: 2024-08-29 08:35+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language-Team: LANGUAGE \n"
@@ -18,8 +18,9 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
#: locale/moduletranslate.php:3 locale/dbtranslate.php:73
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1848
-#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:483
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1996
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2230
+#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:512
msgid "Audio"
msgstr ""
@@ -52,7 +53,7 @@ msgstr ""
#: locale/moduletranslate.php:8 locale/moduletranslate.php:716
#: cache/3d/3d43e8adbd5d771e55b4c097d061edee.php:105
#: cache/ea/ea83fd6b5caea08dc04b78466d82213e.php:171
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1495
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1585
msgid "Loop?"
msgstr ""
@@ -61,7 +62,7 @@ msgid "Should the audio loop if it finishes before the provided duration?"
msgstr ""
#: locale/moduletranslate.php:10
-#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:491
+#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:452
msgid "Calendar"
msgstr ""
@@ -131,8 +132,8 @@ msgid ""
msgstr ""
#: locale/moduletranslate.php:26 locale/moduletranslate.php:1413
-#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:585
-#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:265
+#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:599
+#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:268
#: cache/fe/fe92f223f863fb1896ced5bd33b8c256.php:138
#: cache/79/7925e7fdcb44e9a96c9b2b2e4814991e.php:166
#: lib/Widget/DataType/Event.php:64
@@ -140,8 +141,8 @@ msgid "Start Date"
msgstr ""
#: locale/moduletranslate.php:27 locale/moduletranslate.php:1414
-#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:600
-#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:269
+#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:614
+#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:272
#: cache/fe/fe92f223f863fb1896ced5bd33b8c256.php:153
#: cache/79/7925e7fdcb44e9a96c9b2b2e4814991e.php:170
#: lib/Widget/DataType/Event.php:65
@@ -229,7 +230,7 @@ msgid "The duration specified is per item otherwise it is per feed."
msgstr ""
#: locale/moduletranslate.php:44 locale/moduletranslate.php:554
-#: cache/12/128a25d2a51c15a82cded4869488f710.php:200
+#: cache/12/128a25d2a51c15a82cded4869488f710.php:202
msgid "Number of items"
msgstr ""
@@ -286,8 +287,8 @@ msgstr ""
#: locale/moduletranslate.php:55
#: cache/3d/3d685e4b4f0f4e045b5cc2697b26574d.php:100
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2118
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2146
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2362
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2390
msgid "Canvas"
msgstr ""
@@ -378,10 +379,10 @@ msgstr ""
#: locale/moduletranslate.php:2995 locale/moduletranslate.php:3028
#: locale/moduletranslate.php:3065 locale/moduletranslate.php:3101
#: cache/3d/3d43e8adbd5d771e55b4c097d061edee.php:167
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1130
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1399
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1531
-#: cache/4c/4c1de7ab59196b70ffa9f9da4d4e3b9c.php:407
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1220
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1489
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1629
+#: cache/4c/4c1de7ab59196b70ffa9f9da4d4e3b9c.php:413
msgid "Left"
msgstr ""
@@ -472,10 +473,10 @@ msgstr ""
#: locale/moduletranslate.php:3000 locale/moduletranslate.php:3033
#: locale/moduletranslate.php:3070 locale/moduletranslate.php:3106
#: cache/3d/3d43e8adbd5d771e55b4c097d061edee.php:152
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1126
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1395
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1523
-#: cache/4c/4c1de7ab59196b70ffa9f9da4d4e3b9c.php:411
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1216
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1485
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1621
+#: cache/4c/4c1de7ab59196b70ffa9f9da4d4e3b9c.php:409
msgid "Top"
msgstr ""
@@ -678,7 +679,7 @@ msgstr ""
#: locale/moduletranslate.php:3119 locale/moduletranslate.php:3138
#: locale/moduletranslate.php:3165
#: cache/3c/3cafc6063c2a786736bea5bbf9d4cb6f.php:238
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1425
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1515
#: cache/0c/0cc104a3d7987780eed7a70657ece580.php:104
msgid "Background Colour"
msgstr ""
@@ -1012,7 +1013,7 @@ msgstr ""
#: locale/moduletranslate.php:3012 locale/moduletranslate.php:3045
#: locale/moduletranslate.php:3076 locale/moduletranslate.php:3154
#: locale/moduletranslate.php:3177 locale/dbtranslate.php:69
-#: cache/08/08aee2625ba2279e6a2c6465471b11e8.php:93
+#: cache/08/08aee2625ba2279e6a2c6465471b11e8.php:92
msgid "Font"
msgstr ""
@@ -1122,29 +1123,36 @@ msgid ""
msgstr ""
#: locale/moduletranslate.php:323
-#: cache/e5/e5e5434fb79a5ac6a7fd60b41343e917.php:137
+#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:844
+#: cache/e5/e5e5434fb79a5ac6a7fd60b41343e917.php:141
#: cache/f5/f5c7640aa7fbb9ab7e2caec1a409d7c2.php:133
#: cache/eb/eb0b05526f681e297aa747d8a42bfc36.php:72
+#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:900
#: cache/7d/7d8878cf40b2a074d7a7dd990858a580.php:82
-#: cache/fb/fb12c90670ac105c9ea03fcc99876e87.php:122
+#: cache/fb/fb12c90670ac105c9ea03fcc99876e87.php:126
#: cache/66/661d79c5da6d14a0db85cd0980868ff7.php:220
#: cache/66/661d79c5da6d14a0db85cd0980868ff7.php:376
#: cache/8a/8acc5a2af63338673a6de3f58764bb95.php:399
-#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:174
-#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:261
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:876
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1736
-#: cache/1b/1b54f8dd2f1a33488bb30d63484f87f7.php:146
+#: cache/97/97f2c018825ccdd326aad4a0b160725e.php:171
+#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:179
+#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:264
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:946
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1767
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1876
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2260
+#: cache/1b/1b54f8dd2f1a33488bb30d63484f87f7.php:157
#: cache/23/2360e54d15ebe919cd8f4305d3819359.php:412
-#: cache/05/05600263dc8230138bb0f89338bbef69.php:89
+#: cache/05/05600263dc8230138bb0f89338bbef69.php:137
+#: cache/c5/c5ca1344d07a74a91c5de3a21d4c2de4.php:139
+#: cache/c5/c5ca1344d07a74a91c5de3a21d4c2de4.php:170
#: cache/67/671e1a0d15cf6622a031b0a7a49f5956.php:117
#: cache/35/35be00044edc69c7e0405b74ef1b4562.php:207
-#: cache/cb/cb0f801b3d2ddd3d1f61f47414d32047.php:91
-#: cache/cb/cb0f801b3d2ddd3d1f61f47414d32047.php:134
-#: cache/10/10329fe20a57f63b38843c6701587e70.php:113
-#: cache/10/10329fe20a57f63b38843c6701587e70.php:132
-#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:219
-#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:325
+#: cache/cb/cb0f801b3d2ddd3d1f61f47414d32047.php:96
+#: cache/cb/cb0f801b3d2ddd3d1f61f47414d32047.php:139
+#: cache/10/10329fe20a57f63b38843c6701587e70.php:118
+#: cache/10/10329fe20a57f63b38843c6701587e70.php:137
+#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:224
+#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:328
msgid "Type"
msgstr ""
@@ -1154,10 +1162,10 @@ msgstr ""
#: locale/moduletranslate.php:325 locale/moduletranslate.php:740
#: locale/moduletranslate.php:917
-#: cache/4f/4f86b68b499f4cd831a26849e7ca7d16.php:113
+#: cache/4f/4f86b68b499f4cd831a26849e7ca7d16.php:117
#: cache/fb/fb4bc86a9035b6ec146f3221bdb0c2c1.php:118
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2610
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2699
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2870
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3022
#: cache/71/7116c27ed9d9118b32072e096012ea7b.php:118
#: lib/Widget/DataType/Article.php:74
msgid "Link"
@@ -1168,6 +1176,9 @@ msgid "The Location (URL) of the dashboard webpage"
msgstr ""
#: locale/moduletranslate.php:329 locale/moduletranslate.php:331
+#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:491
+#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:573
+#: cache/c5/c5ca1344d07a74a91c5de3a21d4c2de4.php:135
msgid "DataSet"
msgstr ""
@@ -1233,7 +1244,7 @@ msgid "The Number of items you want to display"
msgstr ""
#: locale/moduletranslate.php:348 locale/moduletranslate.php:352
-#: cache/88/88e10283780c820d9196a2e88b3b8e39.php:140
+#: cache/88/88e10283780c820d9196a2e88b3b8e39.php:144
#: cache/cd/cdfcf24fb200643d729a7d42581ab314.php:188
#: cache/cd/cdfcf24fb200643d729a7d42581ab314.php:340
#: cache/fa/faa7a864be7733d5d543f560dd13d215.php:188
@@ -1395,6 +1406,7 @@ msgid ""
msgstr ""
#: locale/moduletranslate.php:381 locale/dbtranslate.php:58
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2234
msgid "Flash"
msgstr ""
@@ -1403,6 +1415,7 @@ msgid "Upload SWF files to assign to Layouts"
msgstr ""
#: locale/moduletranslate.php:385 locale/dbtranslate.php:99
+#: lib/Connector/OpenWeatherMapConnector.php:667
msgid "Weather"
msgstr ""
@@ -1420,7 +1433,7 @@ msgstr ""
#: locale/moduletranslate.php:389 locale/moduletranslate.php:422
#: cache/09/09fa06e4cbb20e5f65e2075bff1da423.php:554
-#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:664
+#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:660
#: cache/70/70af2bbd82243291558c9b83caec5b48.php:346
msgid "Latitude"
msgstr ""
@@ -1431,7 +1444,7 @@ msgstr ""
#: locale/moduletranslate.php:391 locale/moduletranslate.php:424
#: cache/09/09fa06e4cbb20e5f65e2075bff1da423.php:558
-#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:668
+#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:664
#: cache/70/70af2bbd82243291558c9b83caec5b48.php:361
msgid "Longitude"
msgstr ""
@@ -1570,6 +1583,7 @@ msgid "Should the video be muted?"
msgstr ""
#: locale/moduletranslate.php:439
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2238
msgid "HTML Package"
msgstr ""
@@ -1590,9 +1604,10 @@ msgstr ""
#: locale/moduletranslate.php:445 locale/moduletranslate.php:592
#: locale/moduletranslate.php:916 locale/moduletranslate.php:1161
#: locale/moduletranslate.php:2497 locale/dbtranslate.php:52
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1840
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2622
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2711
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1988
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2222
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2882
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3034
#: lib/Widget/DataType/Product.php:52 lib/Widget/DataType/Article.php:77
#: lib/Widget/DataType/ProductCategory.php:43
msgid "Image"
@@ -1777,9 +1792,13 @@ msgid "Leave empty to use the one from settings."
msgstr ""
#: locale/moduletranslate.php:501 locale/moduletranslate.php:2646
-#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:360
-#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:333
+#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:427
+#: cache/0a/0ae358955c92f467744fc6cf0f8f5624.php:130
+#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:371
#: cache/58/582bf6a35fd9661de4021ae6aad02414.php:198
+#: cache/cd/cdf12d9a1fc3b5db7965cfa8f9bb8d13.php:132
+#: cache/53/53221a3cb3187e41cde32cfa796d45a7.php:123
+#: cache/53/53221a3cb3187e41cde32cfa796d45a7.php:181
msgid "Username"
msgstr ""
@@ -1788,8 +1807,8 @@ msgid "Provide Mastodon username to get public statuses from the account."
msgstr ""
#: locale/moduletranslate.php:503
-#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:566
-#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:539
+#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:633
+#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:577
#: lib/Report/DistributionReport.php:490
#: lib/Report/SummaryDistributionCommonTrait.php:89
#: lib/Report/SummaryReport.php:482
@@ -1851,7 +1870,7 @@ msgid "Please select the Menu to use as a source of data for this template."
msgstr ""
#: locale/moduletranslate.php:520 locale/moduletranslate.php:526
-#: cache/4f/4f86b68b499f4cd831a26849e7ca7d16.php:109
+#: cache/4f/4f86b68b499f4cd831a26849e7ca7d16.php:113
#: cache/fb/fb4bc86a9035b6ec146f3221bdb0c2c1.php:103
#: cache/71/7116c27ed9d9118b32072e096012ea7b.php:103
msgid "Category"
@@ -1875,7 +1894,7 @@ msgid "The duration specified is per item otherwise it is per menu."
msgstr ""
#: locale/moduletranslate.php:530
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1753
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1901
msgid "Sort by"
msgstr ""
@@ -1884,14 +1903,14 @@ msgid "How should we sort the menu items?"
msgstr ""
#: locale/moduletranslate.php:532
-#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:480
-#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:558
-#: cache/04/04b4b8b9bb93bf0580422332c142abff.php:211
-#: cache/d4/d41eb57456e7d0ead8c455e4652b975c.php:193
+#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:527
+#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:608
+#: cache/04/04b4b8b9bb93bf0580422332c142abff.php:216
+#: cache/d4/d41eb57456e7d0ead8c455e4652b975c.php:152
#: cache/38/38e5186bcfa9917c4ec02d8c626e2552.php:288
#: cache/0e/0e02100c0f3615b819bb09d3e2a17b8a.php:312
-#: cache/fd/fd08b6cb6765ac676b671e9c5a7afe27.php:193
-#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:1453
+#: cache/fd/fd08b6cb6765ac676b671e9c5a7afe27.php:152
+#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:1418
msgid "Display Order"
msgstr ""
@@ -1904,49 +1923,50 @@ msgstr ""
#: cache/3d/3d685e4b4f0f4e045b5cc2697b26574d.php:184
#: cache/3d/3d2cccf3b2d4ef70fb5cca66b9b93574.php:151
#: cache/3d/3d43e8adbd5d771e55b4c097d061edee.php:90
-#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:165
+#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:169
#: cache/c8/c8b99142441b986f998bf81808403c07.php:181
-#: cache/c8/c82ad061a984295661821ddeb6ffb8c0.php:113
-#: cache/c8/c82ad061a984295661821ddeb6ffb8c0.php:287
-#: cache/b8/b883949087e41a51e58bfb0a9f1ef74b.php:112
+#: cache/c8/c82ad061a984295661821ddeb6ffb8c0.php:118
+#: cache/c8/c82ad061a984295661821ddeb6ffb8c0.php:290
+#: cache/b8/b883949087e41a51e58bfb0a9f1ef74b.php:122
#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:160
-#: cache/52/522b66fbe5b8efaad37d81db81288730.php:96
-#: cache/52/522b66fbe5b8efaad37d81db81288730.php:111
+#: cache/52/522b66fbe5b8efaad37d81db81288730.php:94
+#: cache/52/522b66fbe5b8efaad37d81db81288730.php:109
#: cache/a0/a08e0b0d63f497e79ba45d275f7d8e2e.php:135
-#: cache/e7/e797c362bd1affbbe5c271346b5e38b5.php:100
-#: cache/e7/e797c362bd1affbbe5c271346b5e38b5.php:115
+#: cache/e7/e797c362bd1affbbe5c271346b5e38b5.php:105
+#: cache/e7/e797c362bd1affbbe5c271346b5e38b5.php:120
#: cache/68/68fd0cd201e7760602f39ca6ad3e8add.php:88
-#: cache/e5/e5e5434fb79a5ac6a7fd60b41343e917.php:109
-#: cache/e5/e5e5434fb79a5ac6a7fd60b41343e917.php:170
-#: cache/2d/2d67b2aac34d9a8cd68e4dad8db97260.php:116
-#: cache/2d/2d67b2aac34d9a8cd68e4dad8db97260.php:153
+#: cache/e5/e5e5434fb79a5ac6a7fd60b41343e917.php:113
+#: cache/e5/e5e5434fb79a5ac6a7fd60b41343e917.php:174
+#: cache/2d/2d67b2aac34d9a8cd68e4dad8db97260.php:121
+#: cache/2d/2d67b2aac34d9a8cd68e4dad8db97260.php:158
#: cache/f5/f5c7640aa7fbb9ab7e2caec1a409d7c2.php:154
#: cache/eb/ebcff77a4e266af34134679c91af4d2d.php:100
#: cache/eb/eb0b05526f681e297aa747d8a42bfc36.php:68
-#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:159
+#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:167
#: cache/80/80846113d03ba42567baaa96738353d4.php:108
#: cache/03/039a03a53ca9c115563cba3023033457.php:90
-#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:131
+#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:129
#: cache/7d/7d8878cf40b2a074d7a7dd990858a580.php:70
-#: cache/04/04b4b8b9bb93bf0580422332c142abff.php:130
-#: cache/04/04b4b8b9bb93bf0580422332c142abff.php:195
-#: cache/88/8836e166837e167ba9b26786f8a2b7ef.php:117
-#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:483
+#: cache/04/04b4b8b9bb93bf0580422332c142abff.php:135
+#: cache/04/04b4b8b9bb93bf0580422332c142abff.php:200
+#: cache/88/8836e166837e167ba9b26786f8a2b7ef.php:123
+#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:497
#: cache/d5/d548e4848346b34fa2915d684010817b.php:143
#: cache/0a/0a340a0ca0d8bada06401bf9fd7c6bf2.php:90
-#: cache/d4/d41eb57456e7d0ead8c455e4652b975c.php:118
-#: cache/41/411fdd8ac98835cf7ed952b29cda0628.php:99
-#: cache/41/411fdd8ac98835cf7ed952b29cda0628.php:114
+#: cache/d4/d41eb57456e7d0ead8c455e4652b975c.php:122
+#: cache/41/411fdd8ac98835cf7ed952b29cda0628.php:103
+#: cache/41/411fdd8ac98835cf7ed952b29cda0628.php:118
#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:146
-#: cache/df/dfa8c9877043c738d127ce9a84cd99fa.php:125
-#: cache/d2/d2fa8bed4d1e30769527c78081442bfc.php:119
-#: cache/d2/d2fa8bed4d1e30769527c78081442bfc.php:186
+#: cache/df/dfa8c9877043c738d127ce9a84cd99fa.php:105
+#: cache/df/dfa8c9877043c738d127ce9a84cd99fa.php:130
+#: cache/d2/d2fa8bed4d1e30769527c78081442bfc.php:118
+#: cache/d2/d2fa8bed4d1e30769527c78081442bfc.php:183
#: cache/b1/b1c2db71469950cfdd34c323d05aa155.php:115
#: cache/dc/dc31159d960349451e03fc348c75e315.php:91
#: cache/5e/5ec96adf0346509994d4c975eac80689.php:118
-#: cache/fb/fb7b914f174fce1e94ee3971e92a92dd.php:110
-#: cache/fb/fb12c90670ac105c9ea03fcc99876e87.php:94
-#: cache/82/823c47cd9e81aebabd5478c5693b1131.php:86
+#: cache/fb/fb7b914f174fce1e94ee3971e92a92dd.php:108
+#: cache/fb/fb12c90670ac105c9ea03fcc99876e87.php:98
+#: cache/82/823c47cd9e81aebabd5478c5693b1131.php:101
#: cache/66/661d79c5da6d14a0db85cd0980868ff7.php:216
#: cache/66/661d79c5da6d14a0db85cd0980868ff7.php:292
#: cache/66/661d79c5da6d14a0db85cd0980868ff7.php:372
@@ -1957,21 +1977,23 @@ msgstr ""
#: cache/8a/8acc5a2af63338673a6de3f58764bb95.php:191
#: cache/8a/8acc5a2af63338673a6de3f58764bb95.php:395
#: cache/49/4936487d4c4f8a19e60f59a338e483da.php:51
-#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:102
-#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:254
-#: cache/e3/e3e074211e42eadb55ae8cb6ceeaa722.php:108
-#: cache/e3/e3e074211e42eadb55ae8cb6ceeaa722.php:147
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:872
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1479
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1728
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1762
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2048
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2158
-#: cache/1b/1b54f8dd2f1a33488bb30d63484f87f7.php:142
+#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:107
+#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:257
+#: cache/e3/e3e074211e42eadb55ae8cb6ceeaa722.php:112
+#: cache/e3/e3e074211e42eadb55ae8cb6ceeaa722.php:151
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:942
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1569
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1868
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1910
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2256
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2288
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2402
+#: cache/1b/1b54f8dd2f1a33488bb30d63484f87f7.php:131
+#: cache/1b/1b54f8dd2f1a33488bb30d63484f87f7.php:153
#: cache/23/235acc51022bf578b604ce47dd2743a4.php:145
#: cache/23/23114ff234f79ee13968407a57f6252d.php:100
-#: cache/23/238f0b98d7f96aca9a850e8b230fe1fb.php:119
-#: cache/23/238f0b98d7f96aca9a850e8b230fe1fb.php:250
+#: cache/23/238f0b98d7f96aca9a850e8b230fe1fb.php:118
+#: cache/23/238f0b98d7f96aca9a850e8b230fe1fb.php:248
#: cache/23/2360e54d15ebe919cd8f4305d3819359.php:182
#: cache/23/2360e54d15ebe919cd8f4305d3819359.php:408
#: cache/18/182efb17b49d552c0a40888c354c91f9.php:141
@@ -1987,13 +2009,13 @@ msgstr ""
#: cache/0b/0bf1ec6ab33ef0ba5938df774146f8dc.php:157
#: cache/0b/0bf1ec6ab33ef0ba5938df774146f8dc.php:360
#: cache/0b/0bf1ec6ab33ef0ba5938df774146f8dc.php:412
-#: cache/fd/fd08b6cb6765ac676b671e9c5a7afe27.php:118
+#: cache/fd/fd08b6cb6765ac676b671e9c5a7afe27.php:122
#: cache/5d/5d1d07a99874fba69dc650a90f8eab06.php:91
#: cache/22/22125d4e14bf79dcb46dd4705caf6309.php:124
-#: cache/f3/f3286f195f132c53823b9bb1068e5cc9.php:112
-#: cache/f3/f3286f195f132c53823b9bb1068e5cc9.php:202
+#: cache/f3/f3286f195f132c53823b9bb1068e5cc9.php:117
+#: cache/f3/f3286f195f132c53823b9bb1068e5cc9.php:205
#: cache/c5/c52b8109558dd3acc604e183177113c8.php:133
-#: cache/f0/f03a3c9d913ba87fcd4d1925058f2671.php:118
+#: cache/f0/f03a3c9d913ba87fcd4d1925058f2671.php:116
#: cache/b0/b0d638d98d54413cf5ca73bcaa313dae.php:120
#: cache/fe/fe92f223f863fb1896ced5bd33b8c256.php:123
#: cache/fe/fe92f223f863fb1896ced5bd33b8c256.php:384
@@ -2005,43 +2027,41 @@ msgstr ""
#: cache/31/31805080e1e51d4a56cb67fa60bdcb2f.php:91
#: cache/35/35be00044edc69c7e0405b74ef1b4562.php:203
#: cache/35/35be00044edc69c7e0405b74ef1b4562.php:246
-#: cache/08/08aee2625ba2279e6a2c6465471b11e8.php:116
-#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:218
-#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:516
-#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:1547
-#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:1590
+#: cache/08/08aee2625ba2279e6a2c6465471b11e8.php:115
+#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:223
+#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:477
+#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:1512
+#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:1555
#: cache/42/427f29e983bd9df69023fb3b4d508a91.php:141
#: cache/42/429bc3b90e0dd835a4548e949ce40ad6.php:113
-#: cache/53/53221a3cb3187e41cde32cfa796d45a7.php:125
-#: cache/53/53221a3cb3187e41cde32cfa796d45a7.php:163
#: cache/06/064860d0048e253d534fdf8acb4ec0bd.php:141
-#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:136
-#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:422
+#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:142
+#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:426
#: cache/cb/cbba241d915c7e565fbb58c637b124a8.php:168
#: cache/cb/cbba241d915c7e565fbb58c637b124a8.php:249
-#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:594
+#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:606
#: cache/d3/d3aa1431a8c1ca36890facca4eb9503f.php:100
-#: cache/10/10329fe20a57f63b38843c6701587e70.php:103
-#: cache/10/10329fe20a57f63b38843c6701587e70.php:128
-#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:137
-#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:321
+#: cache/10/10329fe20a57f63b38843c6701587e70.php:108
+#: cache/10/10329fe20a57f63b38843c6701587e70.php:133
+#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:142
+#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:324
#: cache/10/1090c5665a57f49e6b968318ca49de82.php:89
-#: cache/8b/8bc5b04498de39f4571d14d541bd6a91.php:102
-#: cache/8b/8bc5b04498de39f4571d14d541bd6a91.php:186
+#: cache/8b/8bc5b04498de39f4571d14d541bd6a91.php:107
+#: cache/8b/8bc5b04498de39f4571d14d541bd6a91.php:189
#: cache/60/603a543f479715b41db75352b8cdb845.php:91
#: cache/11/1107af5e0742401bd7bdcb180ef3991e.php:138
#: cache/11/1107af5e0742401bd7bdcb180ef3991e.php:169
-#: cache/b2/b21687508ff5b0bb637fdbd3f8c0d3c6.php:105
-#: cache/b2/b21687508ff5b0bb637fdbd3f8c0d3c6.php:196
+#: cache/b2/b21687508ff5b0bb637fdbd3f8c0d3c6.php:110
+#: cache/b2/b21687508ff5b0bb637fdbd3f8c0d3c6.php:199
#: lib/Widget/DataType/Product.php:46
#: lib/Widget/DataType/ProductCategory.php:41
msgid "Name"
msgstr ""
#: locale/moduletranslate.php:534 locale/moduletranslate.php:2602
-#: cache/04/04b4b8b9bb93bf0580422332c142abff.php:203
-#: cache/d4/d41eb57456e7d0ead8c455e4652b975c.php:148
-#: cache/fd/fd08b6cb6765ac676b671e9c5a7afe27.php:148
+#: cache/04/04b4b8b9bb93bf0580422332c142abff.php:208
+#: cache/d4/d41eb57456e7d0ead8c455e4652b975c.php:137
+#: cache/fd/fd08b6cb6765ac676b671e9c5a7afe27.php:137
#: lib/Widget/DataType/Product.php:47
msgid "Price"
msgstr ""
@@ -2052,20 +2072,22 @@ msgstr ""
#: cache/91/91982ff1ff9899125ec30731f264a8f4.php:157
#: cache/91/91982ff1ff9899125ec30731f264a8f4.php:191
#: cache/c8/c8b99142441b986f998bf81808403c07.php:343
-#: cache/c8/c82ad061a984295661821ddeb6ffb8c0.php:283
-#: cache/14/14220f2427744b387c8a9518e0bf00d2.php:157
-#: cache/e5/e5e5434fb79a5ac6a7fd60b41343e917.php:99
-#: cache/2d/2d67b2aac34d9a8cd68e4dad8db97260.php:106
-#: cache/2d/2d67b2aac34d9a8cd68e4dad8db97260.php:149
+#: cache/c8/c82ad061a984295661821ddeb6ffb8c0.php:286
+#: cache/12/1239457c009f290772b733957cc20e8b.php:91
+#: cache/14/14220f2427744b387c8a9518e0bf00d2.php:161
+#: cache/e5/e5e5434fb79a5ac6a7fd60b41343e917.php:103
+#: cache/2d/2d67b2aac34d9a8cd68e4dad8db97260.php:111
+#: cache/2d/2d67b2aac34d9a8cd68e4dad8db97260.php:154
#: cache/09/09fa06e4cbb20e5f65e2075bff1da423.php:461
-#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:121
-#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:553
+#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:119
+#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:549
#: cache/04/04b11bf7b7a8190d66899471a8930ffd.php:345
-#: cache/04/04b4b8b9bb93bf0580422332c142abff.php:120
-#: cache/04/04b4b8b9bb93bf0580422332c142abff.php:191
-#: cache/ae/ae039a69e1615431d4752f5fb2b147d3.php:112
-#: cache/d2/d2fa8bed4d1e30769527c78081442bfc.php:109
-#: cache/d2/d2fa8bed4d1e30769527c78081442bfc.php:182
+#: cache/04/04b4b8b9bb93bf0580422332c142abff.php:125
+#: cache/04/04b4b8b9bb93bf0580422332c142abff.php:196
+#: cache/bf/bfa04d76ea96a772caeedcfdf9d70e40.php:173
+#: cache/ae/ae039a69e1615431d4752f5fb2b147d3.php:116
+#: cache/d2/d2fa8bed4d1e30769527c78081442bfc.php:108
+#: cache/d2/d2fa8bed4d1e30769527c78081442bfc.php:179
#: cache/66/661d79c5da6d14a0db85cd0980868ff7.php:288
#: cache/66/661d79c5da6d14a0db85cd0980868ff7.php:368
#: cache/66/661d79c5da6d14a0db85cd0980868ff7.php:487
@@ -2073,39 +2095,43 @@ msgstr ""
#: cache/9e/9e2a80ecdd8879e59308a644c1f6721f.php:166
#: cache/9e/9e2a80ecdd8879e59308a644c1f6721f.php:200
#: cache/8a/8acc5a2af63338673a6de3f58764bb95.php:391
-#: cache/8c/8c08891d370939702e3d45696c9e38d6.php:130
-#: cache/e3/e3e074211e42eadb55ae8cb6ceeaa722.php:98
-#: cache/e3/e3e074211e42eadb55ae8cb6ceeaa722.php:143
-#: cache/23/238f0b98d7f96aca9a850e8b230fe1fb.php:109
-#: cache/23/238f0b98d7f96aca9a850e8b230fe1fb.php:246
+#: cache/97/97f2c018825ccdd326aad4a0b160725e.php:112
+#: cache/97/97f2c018825ccdd326aad4a0b160725e.php:155
+#: cache/8c/8c08891d370939702e3d45696c9e38d6.php:135
+#: cache/e3/e3e074211e42eadb55ae8cb6ceeaa722.php:102
+#: cache/e3/e3e074211e42eadb55ae8cb6ceeaa722.php:147
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2252
+#: cache/23/238f0b98d7f96aca9a850e8b230fe1fb.php:108
+#: cache/23/238f0b98d7f96aca9a850e8b230fe1fb.php:244
#: cache/23/2360e54d15ebe919cd8f4305d3819359.php:404
#: cache/18/182efb17b49d552c0a40888c354c91f9.php:159
#: cache/38/38e5186bcfa9917c4ec02d8c626e2552.php:180
-#: cache/0e/0ed8020e97c517a55ad881cfc5dd0b4c.php:180
+#: cache/0e/0ed8020e97c517a55ad881cfc5dd0b4c.php:178
#: cache/0e/0e02100c0f3615b819bb09d3e2a17b8a.php:204
#: cache/0b/0bf1ec6ab33ef0ba5938df774146f8dc.php:408
-#: cache/f3/f3286f195f132c53823b9bb1068e5cc9.php:102
-#: cache/f3/f3286f195f132c53823b9bb1068e5cc9.php:198
-#: cache/f0/f03a3c9d913ba87fcd4d1925058f2671.php:114
+#: cache/f3/f3286f195f132c53823b9bb1068e5cc9.php:107
+#: cache/f3/f3286f195f132c53823b9bb1068e5cc9.php:201
+#: cache/26/26272b78e1f020a579ccf676c2d83a39.php:100
+#: cache/f0/f03a3c9d913ba87fcd4d1925058f2671.php:112
#: cache/fe/fe92f223f863fb1896ced5bd33b8c256.php:380
#: cache/67/671e1a0d15cf6622a031b0a7a49f5956.php:113
#: cache/35/35be00044edc69c7e0405b74ef1b4562.php:199
#: cache/35/35be00044edc69c7e0405b74ef1b4562.php:242
-#: cache/08/08aee2625ba2279e6a2c6465471b11e8.php:106
-#: cache/08/08aee2625ba2279e6a2c6465471b11e8.php:131
-#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:507
-#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:1417
-#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:1543
-#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:1586
+#: cache/08/08aee2625ba2279e6a2c6465471b11e8.php:105
+#: cache/08/08aee2625ba2279e6a2c6465471b11e8.php:130
+#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:468
+#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:1382
+#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:1508
+#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:1551
#: cache/42/427f29e983bd9df69023fb3b4d508a91.php:159
#: cache/06/064860d0048e253d534fdf8acb4ec0bd.php:164
-#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:126
-#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:418
+#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:132
+#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:422
#: cache/cb/cbba241d915c7e565fbb58c637b124a8.php:200
#: cache/cb/cbba241d915c7e565fbb58c637b124a8.php:272
-#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:127
-#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:317
-#: cache/b2/b21687508ff5b0bb637fdbd3f8c0d3c6.php:192
+#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:132
+#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:320
+#: cache/b2/b21687508ff5b0bb637fdbd3f8c0d3c6.php:195
msgid "ID"
msgstr ""
@@ -2152,6 +2178,7 @@ msgid "What is the maximum notification age in minutes, 0 for no restrictions."
msgstr ""
#: locale/moduletranslate.php:557 locale/dbtranslate.php:75
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2242
msgid "PDF"
msgstr ""
@@ -2168,6 +2195,7 @@ msgid "The duration specified is per page otherwise it is per document."
msgstr ""
#: locale/moduletranslate.php:563 locale/dbtranslate.php:59
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2246
msgid "PowerPoint"
msgstr ""
@@ -2251,6 +2279,8 @@ msgid "Media Content"
msgstr ""
#: locale/moduletranslate.php:593 locale/moduletranslate.php:3080
+#: cache/3c/3cafc6063c2a786736bea5bbf9d4cb6f.php:273
+#: cache/c5/c5ca1344d07a74a91c5de3a21d4c2de4.php:135
#: cache/8e/8e4c9c1886827e5f797c4436d4051e48.php:126
#: cache/8e/8e4c9c1886827e5f797c4436d4051e48.php:719
msgid "Custom"
@@ -2297,8 +2327,8 @@ msgid ""
msgstr ""
#: locale/moduletranslate.php:602
-#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:405
-#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:378
+#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:472
+#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:416
msgid "User Agent"
msgstr ""
@@ -2470,7 +2500,7 @@ msgid ""
msgstr ""
#: locale/moduletranslate.php:645
-#: cache/60/6096ddd2496c1f25a148669f286abbeb.php:226
+#: cache/60/6096ddd2496c1f25a148669f286abbeb.php:421
msgid "Partner"
msgstr ""
@@ -2498,18 +2528,19 @@ msgstr ""
#: locale/moduletranslate.php:666
#: cache/3d/3d685e4b4f0f4e045b5cc2697b26574d.php:82
-#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:335
+#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:339
#: cache/3c/3cafc6063c2a786736bea5bbf9d4cb6f.php:180
#: cache/eb/eb0b05526f681e297aa747d8a42bfc36.php:64
-#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:419
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1074
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1086
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1252
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2013
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2130
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2182
+#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:427
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1160
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1172
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1342
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2185
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2374
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2426
+#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:493
#: cache/34/3453edc522f8d2c6d1d154ad55500693.php:66
-#: lib/Entity/Schedule.php:1975
+#: lib/Entity/Schedule.php:2089
msgid "Playlist"
msgstr ""
@@ -2642,20 +2673,20 @@ msgstr ""
#: locale/moduletranslate.php:691
#: cache/a2/a25dbce646a9a1ed849b53f6d93ed8cb.php:144
-#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:320
-#: cache/c8/c82ad061a984295661821ddeb6ffb8c0.php:228
+#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:324
+#: cache/c8/c82ad061a984295661821ddeb6ffb8c0.php:233
#: cache/3c/3cafc6063c2a786736bea5bbf9d4cb6f.php:154
-#: cache/2d/2d67b2aac34d9a8cd68e4dad8db97260.php:157
-#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:404
+#: cache/2d/2d67b2aac34d9a8cd68e4dad8db97260.php:162
+#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:412
#: cache/9f/9f9a142004ca4a1c914a4395fe586017.php:254
-#: cache/04/04b4b8b9bb93bf0580422332c142abff.php:207
+#: cache/04/04b4b8b9bb93bf0580422332c142abff.php:212
#: cache/6e/6e8678de8ffffc5ed3b935eb9c3f6eb0.php:195
-#: cache/d4/d41eb57456e7d0ead8c455e4652b975c.php:238
+#: cache/d4/d41eb57456e7d0ead8c455e4652b975c.php:197
#: cache/a4/a4b5f52b1992bb349e8a30b19ff24645.php:167
#: cache/66/661d79c5da6d14a0db85cd0980868ff7.php:359
#: cache/d7/d7ce5b1f05d3a691d8332e778a077544.php:140
-#: cache/fd/fd08b6cb6765ac676b671e9c5a7afe27.php:238
-#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:342
+#: cache/fd/fd08b6cb6765ac676b671e9c5a7afe27.php:197
+#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:348
msgid "Media"
msgstr ""
@@ -2779,7 +2810,8 @@ msgid "Optional Stylesheet"
msgstr ""
#: locale/moduletranslate.php:705 locale/dbtranslate.php:54
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1856
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2004
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2226
msgid "Video"
msgstr ""
@@ -2868,8 +2900,8 @@ msgstr ""
#: locale/moduletranslate.php:746
#: cache/eb/ebcff77a4e266af34134679c91af4d2d.php:88
#: cache/0a/0ae358955c92f467744fc6cf0f8f5624.php:118
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1007
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1675
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1089
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1799
#: cache/cd/cdf12d9a1fc3b5db7965cfa8f9bb8d13.php:118
msgid "Options"
msgstr ""
@@ -2983,7 +3015,7 @@ msgstr ""
#: locale/moduletranslate.php:782 locale/moduletranslate.php:1190
#: locale/moduletranslate.php:1234
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1429
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1519
#: cache/0c/0cc104a3d7987780eed7a70657ece580.php:109
msgid "Use the colour picker to select the background colour"
msgstr ""
@@ -3220,10 +3252,14 @@ msgstr ""
#: locale/moduletranslate.php:908 locale/moduletranslate.php:965
#: locale/moduletranslate.php:987 locale/moduletranslate.php:1007
#: locale/moduletranslate.php:1026 locale/dbtranslate.php:147
-#: cache/ae/ae039a69e1615431d4752f5fb2b147d3.php:116
+#: cache/bf/bfa04d76ea96a772caeedcfdf9d70e40.php:188
+#: cache/ae/ae039a69e1615431d4752f5fb2b147d3.php:120
#: cache/f6/f60761fa1e2b5ad016f9d13f094f9488.php:56
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2590
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2679
+#: cache/97/97f2c018825ccdd326aad4a0b160725e.php:122
+#: cache/97/97f2c018825ccdd326aad4a0b160725e.php:167
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2850
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3002
+#: cache/26/26272b78e1f020a579ccf676c2d83a39.php:115
#: cache/cd/cdfcf24fb200643d729a7d42581ab314.php:204
#: cache/fa/faa7a864be7733d5d543f560dd13d215.php:204
#: lib/Widget/DataType/Article.php:69
@@ -3232,8 +3268,8 @@ msgstr ""
#: locale/moduletranslate.php:909 locale/moduletranslate.php:1411
#: locale/moduletranslate.php:1790
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2594
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2683
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2854
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3006
#: lib/Widget/DataType/Article.php:70 lib/Widget/DataType/Event.php:61
msgid "Summary"
msgstr ""
@@ -3241,8 +3277,8 @@ msgstr ""
#: locale/moduletranslate.php:910
#: cache/6e/6e8678de8ffffc5ed3b935eb9c3f6eb0.php:165
#: cache/64/6468accf3a0fea12fced661d430c769f.php:269
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2598
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2687
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2858
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3010
#: cache/8e/8e4c9c1886827e5f797c4436d4051e48.php:106
#: lib/Widget/DataType/Article.php:71
msgid "Content"
@@ -3257,9 +3293,9 @@ msgid "Should new lines (\\n) be removed from content?"
msgstr ""
#: locale/moduletranslate.php:913
-#: cache/ae/ae039a69e1615431d4752f5fb2b147d3.php:120
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2602
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2691
+#: cache/ae/ae039a69e1615431d4752f5fb2b147d3.php:124
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2862
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3014
#: cache/cd/cdfcf24fb200643d729a7d42581ab314.php:219
#: cache/fa/faa7a864be7733d5d543f560dd13d215.php:219
#: lib/Widget/DataType/Article.php:72
@@ -3272,24 +3308,26 @@ msgstr ""
#: locale/moduletranslate.php:2587 locale/moduletranslate.php:2647
#: locale/dbtranslate.php:33 cache/04/04b11bf7b7a8190d66899471a8930ffd.php:353
#: cache/66/661d79c5da6d14a0db85cd0980868ff7.php:166
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2614
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2703
-#: cache/0e/0ed8020e97c517a55ad881cfc5dd0b4c.php:184
-#: cache/c5/c5ca1344d07a74a91c5de3a21d4c2de4.php:111
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2874
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3026
+#: cache/0e/0ed8020e97c517a55ad881cfc5dd0b4c.php:182
+#: cache/c5/c5ca1344d07a74a91c5de3a21d4c2de4.php:151
+#: cache/c5/c5ca1344d07a74a91c5de3a21d4c2de4.php:174
+#: cache/60/6096ddd2496c1f25a148669f286abbeb.php:494
#: lib/Widget/DataType/SocialMedia.php:72
msgid "Date"
msgstr ""
#: locale/moduletranslate.php:915
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2618
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2707
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2878
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3030
#: lib/Widget/DataType/Article.php:76
msgid "Published Date"
msgstr ""
#: locale/moduletranslate.php:918
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2606
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2695
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2866
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3018
#: lib/Widget/DataType/Article.php:73
msgid "Permalink"
msgstr ""
@@ -3345,8 +3383,8 @@ msgstr ""
#: cache/3c/3cff55fb510343a28bcab4eebabcb98a.php:283
#: cache/68/683636238aff529d5a7b7478118dede4.php:2925
#: cache/ee/ee0c1651752b1209943673ee1794a659.php:283
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2651
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2740
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2911
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3063
msgid "Date Format"
msgstr ""
@@ -3501,7 +3539,7 @@ msgstr ""
#: locale/moduletranslate.php:952 locale/moduletranslate.php:974
#: locale/moduletranslate.php:995 locale/moduletranslate.php:1808
#: locale/moduletranslate.php:2504
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2500
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2760
msgid "Fill"
msgstr ""
@@ -3535,30 +3573,30 @@ msgstr ""
#: cache/91/91982ff1ff9899125ec30731f264a8f4.php:199
#: cache/c8/c8b99142441b986f998bf81808403c07.php:196
#: cache/b8/b883949087e41a51e58bfb0a9f1ef74b.php:96
-#: cache/b8/b883949087e41a51e58bfb0a9f1ef74b.php:197
+#: cache/b8/b883949087e41a51e58bfb0a9f1ef74b.php:300
#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:175
-#: cache/52/522b66fbe5b8efaad37d81db81288730.php:115
-#: cache/e7/e797c362bd1affbbe5c271346b5e38b5.php:119
-#: cache/2d/2d67b2aac34d9a8cd68e4dad8db97260.php:165
+#: cache/52/522b66fbe5b8efaad37d81db81288730.php:113
+#: cache/e7/e797c362bd1affbbe5c271346b5e38b5.php:124
+#: cache/2d/2d67b2aac34d9a8cd68e4dad8db97260.php:170
#: cache/09/09fa06e4cbb20e5f65e2075bff1da423.php:493
-#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:593
-#: cache/04/04b4b8b9bb93bf0580422332c142abff.php:199
+#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:589
+#: cache/04/04b4b8b9bb93bf0580422332c142abff.php:204
#: cache/88/8836e166837e167ba9b26786f8a2b7ef.php:96
-#: cache/88/8836e166837e167ba9b26786f8a2b7ef.php:205
+#: cache/88/8836e166837e167ba9b26786f8a2b7ef.php:304
#: cache/d5/d548e4848346b34fa2915d684010817b.php:88
#: cache/d5/d548e4848346b34fa2915d684010817b.php:261
-#: cache/d4/d41eb57456e7d0ead8c455e4652b975c.php:133
+#: cache/d4/d41eb57456e7d0ead8c455e4652b975c.php:217
#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:161
-#: cache/df/dfa8c9877043c738d127ce9a84cd99fa.php:137
+#: cache/df/dfa8c9877043c738d127ce9a84cd99fa.php:142
#: cache/b1/b1c2db71469950cfdd34c323d05aa155.php:145
-#: cache/fb/fb7b914f174fce1e94ee3971e92a92dd.php:129
+#: cache/fb/fb7b914f174fce1e94ee3971e92a92dd.php:127
#: cache/81/811403ea85a4f89fb6575e4ffc9988d8.php:112
#: cache/d7/d7ce5b1f05d3a691d8332e778a077544.php:110
#: cache/9e/9e2a80ecdd8879e59308a644c1f6721f.php:174
#: cache/9e/9e2a80ecdd8879e59308a644c1f6721f.php:208
#: cache/23/23114ff234f79ee13968407a57f6252d.php:88
-#: cache/23/23114ff234f79ee13968407a57f6252d.php:188
-#: cache/23/238f0b98d7f96aca9a850e8b230fe1fb.php:254
+#: cache/23/23114ff234f79ee13968407a57f6252d.php:208
+#: cache/23/238f0b98d7f96aca9a850e8b230fe1fb.php:252
#: cache/63/63e26e752b3c6315edeb7408e1bf2ae9.php:112
#: cache/63/63a123f42a16165e90cd9f604b2de4bd.php:96
#: cache/63/63a123f42a16165e90cd9f604b2de4bd.php:231
@@ -3566,21 +3604,21 @@ msgstr ""
#: cache/51/5183626e7e19083fdf9708e7d778f66f.php:191
#: cache/73/736be9c5f96ff30502beba0ab9149fd4.php:91
#: cache/73/736be9c5f96ff30502beba0ab9149fd4.php:175
-#: cache/fd/fd08b6cb6765ac676b671e9c5a7afe27.php:133
+#: cache/fd/fd08b6cb6765ac676b671e9c5a7afe27.php:217
#: cache/22/22125d4e14bf79dcb46dd4705caf6309.php:154
-#: cache/f3/f3286f195f132c53823b9bb1068e5cc9.php:206
+#: cache/f3/f3286f195f132c53823b9bb1068e5cc9.php:209
#: cache/b0/b0d638d98d54413cf5ca73bcaa313dae.php:104
#: cache/b0/b0d638d98d54413cf5ca73bcaa313dae.php:182
#: cache/bc/bc965084fd482159596791d6371a0f77.php:204
#: cache/83/8300bf8b96eee9813dc4373df0e08748.php:88
#: cache/83/8300bf8b96eee9813dc4373df0e08748.php:225
-#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:317
-#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:430
+#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:323
+#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:434
#: cache/d3/d3aa1431a8c1ca36890facca4eb9503f.php:88
-#: cache/d3/d3aa1431a8c1ca36890facca4eb9503f.php:190
-#: cache/8b/8bc5b04498de39f4571d14d541bd6a91.php:198
+#: cache/d3/d3aa1431a8c1ca36890facca4eb9503f.php:210
+#: cache/8b/8bc5b04498de39f4571d14d541bd6a91.php:201
#: cache/70/70af2bbd82243291558c9b83caec5b48.php:225
-#: cache/b2/b21687508ff5b0bb637fdbd3f8c0d3c6.php:200
+#: cache/b2/b21687508ff5b0bb637fdbd3f8c0d3c6.php:203
#: lib/Widget/DataType/Product.php:48 lib/Widget/DataType/Event.php:62
#: lib/Widget/DataType/ProductCategory.php:42
msgid "Description"
@@ -3597,8 +3635,8 @@ msgstr ""
#: locale/moduletranslate.php:2409 locale/moduletranslate.php:2435
#: locale/moduletranslate.php:2471 locale/moduletranslate.php:2611
#: locale/moduletranslate.php:2625
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2635
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2724
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2895
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3047
msgid "Font Size"
msgstr ""
@@ -3675,8 +3713,8 @@ msgstr ""
#: locale/moduletranslate.php:1069 locale/moduletranslate.php:1403
#: locale/moduletranslate.php:2437 locale/moduletranslate.php:2473
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2639
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2728
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2899
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3051
msgid "Bold"
msgstr ""
@@ -3686,8 +3724,8 @@ msgstr ""
#: locale/moduletranslate.php:1071 locale/moduletranslate.php:1405
#: locale/moduletranslate.php:2439 locale/moduletranslate.php:2475
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2643
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2732
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2903
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3055
msgid "Italics"
msgstr ""
@@ -3697,8 +3735,8 @@ msgstr ""
#: locale/moduletranslate.php:1073 locale/moduletranslate.php:1407
#: locale/moduletranslate.php:2441 locale/moduletranslate.php:2477
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2647
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2736
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2907
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3059
msgid "Underline"
msgstr ""
@@ -3932,8 +3970,8 @@ msgstr ""
#: locale/moduletranslate.php:1796 locale/moduletranslate.php:2434
#: locale/moduletranslate.php:2470 locale/moduletranslate.php:2612
#: locale/moduletranslate.php:2626
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2631
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2720
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2891
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3043
msgid "Font Colour"
msgstr ""
@@ -4337,10 +4375,12 @@ msgid "Icon"
msgstr ""
#: locale/moduletranslate.php:1798
+#: lib/Connector/OpenWeatherMapConnector.php:690
msgid "Wind Direction"
msgstr ""
#: locale/moduletranslate.php:1799
+#: lib/Connector/OpenWeatherMapConnector.php:688
msgid "Wind Speed"
msgstr ""
@@ -4362,7 +4402,7 @@ msgstr ""
#: locale/moduletranslate.php:2257 locale/moduletranslate.php:2286
#: locale/moduletranslate.php:2321 locale/moduletranslate.php:2356
#: locale/moduletranslate.php:2380 locale/moduletranslate.php:2412
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1433
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1523
#: cache/0c/0cc104a3d7987780eed7a70657ece580.php:121
msgid "Background Image"
msgstr ""
@@ -4575,15 +4615,17 @@ msgstr ""
#: locale/moduletranslate.php:2288 locale/moduletranslate.php:2323
#: locale/moduletranslate.php:2358 locale/moduletranslate.php:2382
#: locale/moduletranslate.php:2414
-#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:577
-#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:322
-#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:556
-#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:631
-#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:295
-#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:529
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2834
+#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:624
+#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:389
+#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:623
+#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:681
+#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:333
+#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:567
+#: cache/bf/bfa04d76ea96a772caeedcfdf9d70e40.php:231
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3157
#: cache/38/38e5186bcfa9917c4ec02d8c626e2552.php:361
#: cache/0e/0e02100c0f3615b819bb09d3e2a17b8a.php:408
+#: cache/26/26272b78e1f020a579ccf676c2d83a39.php:175
msgid "None"
msgstr ""
@@ -4851,8 +4893,8 @@ msgid "The colour of the container background"
msgstr ""
#: locale/moduletranslate.php:2432 locale/moduletranslate.php:2468
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2627
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2716
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2887
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3039
msgid "Font Family"
msgstr ""
@@ -4929,8 +4971,8 @@ msgid "Enter the URL of the image you want to use."
msgstr ""
#: locale/moduletranslate.php:2500
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2655
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2744
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2915
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3067
msgid "Opacity"
msgstr ""
@@ -4956,14 +4998,14 @@ msgstr ""
#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:245
#: cache/f6/f60761fa1e2b5ad016f9d13f094f9488.php:103
#: cache/65/651e2483d1426d8b1b7ce3fef030fb15.php:103
-#: cache/8c/8c08891d370939702e3d45696c9e38d6.php:138
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1114
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1403
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1539
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1770
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2659
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2748
-#: cache/4c/4c1de7ab59196b70ffa9f9da4d4e3b9c.php:415
+#: cache/8c/8c08891d370939702e3d45696c9e38d6.php:143
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1204
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1493
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1637
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1918
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2919
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3071
+#: cache/4c/4c1de7ab59196b70ffa9f9da4d4e3b9c.php:417
msgid "Width"
msgstr ""
@@ -4972,6 +5014,8 @@ msgid "Colour"
msgstr ""
#: locale/moduletranslate.php:2524
+#: cache/bf/bfa04d76ea96a772caeedcfdf9d70e40.php:134
+#: cache/bf/bfa04d76ea96a772caeedcfdf9d70e40.php:342
msgid "Style"
msgstr ""
@@ -5080,7 +5124,7 @@ msgstr ""
#: locale/moduletranslate.php:2574 locale/moduletranslate.php:2585
#: cache/39/394b19a8eebf2eb1d9628eb62cde032c.php:116
-#: cache/c5/c5ca1344d07a74a91c5de3a21d4c2de4.php:107
+#: cache/c5/c5ca1344d07a74a91c5de3a21d4c2de4.php:166
#: cache/fa/fa9935428c44daef4d95e4b582124caa.php:116
msgid "Subject"
msgstr ""
@@ -5091,10 +5135,10 @@ msgstr ""
#: locale/moduletranslate.php:2577
#: cache/09/09fa06e4cbb20e5f65e2075bff1da423.php:594
-#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:752
-#: cache/d2/d2fa8bed4d1e30769527c78081442bfc.php:190
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1786
-#: cache/23/238f0b98d7f96aca9a850e8b230fe1fb.php:303
+#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:748
+#: cache/d2/d2fa8bed4d1e30769527c78081442bfc.php:187
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1934
+#: cache/23/238f0b98d7f96aca9a850e8b230fe1fb.php:301
#: lib/Widget/DataType/Article.php:75
msgid "Created Date"
msgstr ""
@@ -5173,9 +5217,9 @@ msgid "Options: Value"
msgstr ""
#: locale/moduletranslate.php:2639
-#: cache/04/04b4b8b9bb93bf0580422332c142abff.php:223
-#: cache/d4/d41eb57456e7d0ead8c455e4652b975c.php:178
-#: cache/fd/fd08b6cb6765ac676b671e9c5a7afe27.php:178
+#: cache/04/04b4b8b9bb93bf0580422332c142abff.php:228
+#: cache/d4/d41eb57456e7d0ead8c455e4652b975c.php:247
+#: cache/fd/fd08b6cb6765ac676b671e9c5a7afe27.php:247
#: lib/Widget/DataType/Product.php:51
msgid "Calories"
msgstr ""
@@ -5588,7 +5632,7 @@ msgstr ""
msgid "Fade In"
msgstr ""
-#: locale/dbtranslate.php:27 cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2862
+#: locale/dbtranslate.php:27 cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3185
msgid "Fade Out"
msgstr ""
@@ -5600,9 +5644,12 @@ msgstr ""
msgid "External Image"
msgstr ""
-#: locale/dbtranslate.php:37 cache/0e/0ed8020e97c517a55ad881cfc5dd0b4c.php:305
-#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:604
-#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:746
+#: locale/dbtranslate.php:37 cache/c8/c81aa074ed0c595eefef0776b8c89639.php:856
+#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:912
+#: cache/66/664c6c931a53dbf67110ec2cb80223cf.php:243
+#: cache/0e/0ed8020e97c517a55ad881cfc5dd0b4c.php:306
+#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:616
+#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:758
msgid "Value"
msgstr ""
@@ -5811,11 +5858,11 @@ msgstr ""
msgid "December"
msgstr ""
-#: locale/dbtranslate.php:119 lib/Factory/UserGroupFactory.php:922
+#: locale/dbtranslate.php:119 lib/Factory/UserGroupFactory.php:979
msgid "Icon Dashboard"
msgstr ""
-#: locale/dbtranslate.php:120 lib/Factory/UserGroupFactory.php:916
+#: locale/dbtranslate.php:120 lib/Factory/UserGroupFactory.php:973
msgid "Status Dashboard"
msgstr ""
@@ -5957,11 +6004,11 @@ msgstr ""
msgid "Right now"
msgstr ""
-#: locale/dbtranslate.php:167
+#: locale/dbtranslate.php:167 lib/Connector/OpenWeatherMapConnector.php:713
msgid "Pressure"
msgstr ""
-#: locale/dbtranslate.php:168
+#: locale/dbtranslate.php:168 lib/Connector/OpenWeatherMapConnector.php:715
msgid "Visibility"
msgstr ""
@@ -5989,8 +6036,10 @@ msgstr ""
#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:73
#: cache/c8/c8b99142441b986f998bf81808403c07.php:67
#: cache/bb/bba27e43d8e558ba6d285ff214f194e1.php:65
+#: cache/12/1239457c009f290772b733957cc20e8b.php:68
#: cache/b8/b81dfc25d045feba9e99bafc39f2c552.php:65
#: cache/b8/b883949087e41a51e58bfb0a9f1ef74b.php:66
+#: cache/94/9464af4a196c6fb9a396017edb6718bb.php:65
#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:66
#: cache/5a/5a34b094516ac476287fa5e412610303.php:65
#: cache/a0/a08e0b0d63f497e79ba45d275f7d8e2e.php:65
@@ -6021,6 +6070,7 @@ msgstr ""
#: cache/0a/0ae358955c92f467744fc6cf0f8f5624.php:66
#: cache/0a/0a340a0ca0d8bada06401bf9fd7c6bf2.php:67
#: cache/d4/d41eb57456e7d0ead8c455e4652b975c.php:72
+#: cache/41/416015b714a3d4ce25c4f5a60b5e0869.php:68
#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:66
#: cache/ae/ae925f8de1afddaa54d77aba65ebb00b.php:65
#: cache/a9/a9e5683d775fba4115fbe1530a299060.php:68
@@ -6047,9 +6097,9 @@ msgstr ""
#: cache/e3/e31b4df8534304ebbf1261cf4fb5314c.php:65
#: cache/33/33968a0a5a1ed14133e2cd23ec95b9a9.php:65
#: cache/74/746ec3a82f78da39c0d83b4d24c675b3.php:71
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:832
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:853
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1281
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:902
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:923
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1371
#: cache/1b/1b54f8dd2f1a33488bb30d63484f87f7.php:68
#: cache/23/235acc51022bf578b604ce47dd2743a4.php:68
#: cache/23/23114ff234f79ee13968407a57f6252d.php:65
@@ -6080,6 +6130,7 @@ msgstr ""
#: cache/3b/3b9cacba37bbb7e89681dcd788de8b05.php:65
#: cache/71/7116c27ed9d9118b32072e096012ea7b.php:65
#: cache/26/26e331d824f29de3b77e8888f0d29b15.php:68
+#: cache/26/26272b78e1f020a579ccf676c2d83a39.php:66
#: cache/c5/c52b8109558dd3acc604e183177113c8.php:66
#: cache/2c/2c7e285435ee15c451266c797cce5a32.php:65
#: cache/2c/2c55cdb5429a136a535a9cd9b127d575.php:65
@@ -6087,7 +6138,7 @@ msgstr ""
#: cache/c6/c6570004e7b23a90548bf6f9c53600f0.php:65
#: cache/b0/b0d638d98d54413cf5ca73bcaa313dae.php:67
#: cache/b0/b05e5edd52f5df3c92f275e802bfd21a.php:65
-#: cache/fe/fe92f223f863fb1896ced5bd33b8c256.php:543
+#: cache/fe/fe92f223f863fb1896ced5bd33b8c256.php:548
#: cache/bc/bcf5f9074f174f8b5cbd4c3a0b0b5850.php:65
#: cache/bc/bc9a3e0798fa1ba064d681f1d6c69009.php:65
#: cache/bc/bc965084fd482159596791d6371a0f77.php:65
@@ -6105,7 +6156,7 @@ msgstr ""
#: cache/3a/3aa0a33f33a855bb42a0c3267174495d.php:65
#: cache/f1/f175af5a0b688206a139cd08f00e63e5.php:65
#: cache/ca/ca2dd0b2142f7bc07fc5e4b9d6a35375.php:68
-#: cache/37/37f12704cf17017038d73d9ee1907d04.php:340
+#: cache/37/37f12704cf17017038d73d9ee1907d04.php:368
#: cache/37/377ff96eb23f94563370a45d1c41993f.php:73
#: cache/fa/fa9935428c44daef4d95e4b582124caa.php:73
#: cache/fa/faae83213ac48b5ddd10aa2f75cd5121.php:65
@@ -6144,17 +6195,18 @@ msgstr ""
#: cache/16/1615c30bcb549b0701fc601d992580eb.php:69
#: cache/39/39b6c5c36d79ecc73403045a4b553399.php:69
#: cache/bb/bba27e43d8e558ba6d285ff214f194e1.php:69
+#: cache/94/9464af4a196c6fb9a396017edb6718bb.php:69
#: cache/68/6890d35803a665b9db578df45f0f60f0.php:70
#: cache/14/14165eacc3942d330924d58703131cba.php:69
#: cache/f9/f9380bc0ae4e8cd229cd91c7cdd73df4.php:69
#: cache/f9/f92fcbc3e5aadf70527c18c1877f9814.php:69
#: cache/75/751b2a96c8637d98a362ec0fd7c3d205.php:69
-#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:177
-#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:202
-#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:227
-#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:480
-#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:997
-#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:409
+#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:175
+#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:200
+#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:225
+#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:478
+#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:1015
+#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:423
#: cache/88/88ea0bf76c0247d2574b4760f8157b6b.php:69
#: cache/17/1730b41c1b94639a7bb894f0f6bbe405.php:78
#: cache/17/17a063cd6b023f6b3259fc5bb6f3383f.php:78
@@ -6165,9 +6217,9 @@ msgstr ""
#: cache/29/294f373475cdd3d7df887812134af374.php:69
#: cache/2f/2ff9d6ea9a67ebd110e5702c27503ba4.php:81
#: cache/9c/9cd9c506c8127381b3a38d63834ca951.php:72
-#: cache/8c/8c08891d370939702e3d45696c9e38d6.php:107
+#: cache/8c/8c08891d370939702e3d45696c9e38d6.php:112
#: cache/e3/e31b4df8534304ebbf1261cf4fb5314c.php:69
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:709
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:779
#: cache/58/581725fc73e075b270eb8c5ca975df6c.php:69
#: cache/73/7380f2a38e77dc7c928531f9d5420936.php:69
#: cache/c0/c0e9fb4708e939b6f7beb146f0d68435.php:69
@@ -6182,14 +6234,14 @@ msgstr ""
#: cache/4a/4a5cc7c83dad3def46c8e5520964964d.php:69
#: cache/4c/4cf917c586e727b0fb8bbf89dacfd02d.php:72
#: cache/31/3166fdb717b675138677789dfe3ee06a.php:69
-#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:455
-#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:468
+#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:416
+#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:429
#: cache/8f/8ff33b0a8b8fc5a9fe400184b8838e4f.php:77
#: cache/f1/f175af5a0b688206a139cd08f00e63e5.php:69
#: cache/8d/8d762416eec05c4841be70e1b937f167.php:70
#: cache/72/7200184dcf867208ff40fb0a39739de4.php:69
#: cache/53/53e83337eb2bf3e9523456dda845ffab.php:69
-#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:280
+#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:286
#: cache/10/1059436378c31f42b91ec08aa5499036.php:69
#: cache/d1/d1f7c2019c76b8371777ee48d123f8ca.php:69
#: cache/15/159208e1f5d4b5b8c32db48cfd0eb9e4.php:69
@@ -6228,10 +6280,10 @@ msgstr ""
#: cache/7f/7f6fb9fb77c85bdf7ccd1ed5556c7a81.php:123
#: cache/2c/2c7e285435ee15c451266c797cce5a32.php:69
#: cache/32/32885dae79820faade39c5207ec15914.php:341
-#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:622
-#: cache/37/37f12704cf17017038d73d9ee1907d04.php:627
-#: cache/53/53221a3cb3187e41cde32cfa796d45a7.php:481
-#: cache/53/53221a3cb3187e41cde32cfa796d45a7.php:499
+#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:587
+#: cache/37/37f12704cf17017038d73d9ee1907d04.php:671
+#: cache/53/53221a3cb3187e41cde32cfa796d45a7.php:501
+#: cache/53/53221a3cb3187e41cde32cfa796d45a7.php:519
msgid "Next"
msgstr ""
@@ -6266,12 +6318,14 @@ msgstr ""
#: cache/a5/a593dac8469a0e585ebaf44442696494.php:70
#: cache/7d/7d93daaf181fe08e96e60d7e241a1d1c.php:69
#: cache/88/8836e166837e167ba9b26786f8a2b7ef.php:70
-#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:250
+#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:264
#: cache/d5/d548e4848346b34fa2915d684010817b.php:69
#: cache/0a/0ae358955c92f467744fc6cf0f8f5624.php:70
#: cache/0a/0a340a0ca0d8bada06401bf9fd7c6bf2.php:71
#: cache/d4/d41eb57456e7d0ead8c455e4652b975c.php:80
+#: cache/41/416015b714a3d4ce25c4f5a60b5e0869.php:72
#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:70
+#: cache/bf/bfa04d76ea96a772caeedcfdf9d70e40.php:418
#: cache/ae/ae925f8de1afddaa54d77aba65ebb00b.php:69
#: cache/a9/a9e5683d775fba4115fbe1530a299060.php:72
#: cache/ea/ea83fd6b5caea08dc04b78466d82213e.php:72
@@ -6280,6 +6334,7 @@ msgstr ""
#: cache/5e/5ec96adf0346509994d4c975eac80689.php:69
#: cache/fb/fb4bc86a9035b6ec146f3221bdb0c2c1.php:69
#: cache/7f/7fc756b1f76699c2b9e7d2bfb64e9999.php:69
+#: cache/66/664c6c931a53dbf67110ec2cb80223cf.php:139
#: cache/81/811403ea85a4f89fb6575e4ffc9988d8.php:72
#: cache/d7/d7326d049226360861decd025d796004.php:72
#: cache/d7/d7ce5b1f05d3a691d8332e778a077544.php:75
@@ -6288,9 +6343,10 @@ msgstr ""
#: cache/8a/8acc5a2af63338673a6de3f58764bb95.php:71
#: cache/33/33968a0a5a1ed14133e2cd23ec95b9a9.php:69
#: cache/74/746ec3a82f78da39c0d83b4d24c675b3.php:75
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1277
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1367
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2939
#: cache/1b/1b54f8dd2f1a33488bb30d63484f87f7.php:72
-#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:385
+#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:400
#: cache/23/235acc51022bf578b604ce47dd2743a4.php:72
#: cache/23/23114ff234f79ee13968407a57f6252d.php:69
#: cache/23/2360e54d15ebe919cd8f4305d3819359.php:71
@@ -6311,13 +6367,14 @@ msgstr ""
#: cache/2b/2b524e8ea3d6496ba6837a702ebed2f4.php:116
#: cache/22/22125d4e14bf79dcb46dd4705caf6309.php:71
#: cache/71/7116c27ed9d9118b32072e096012ea7b.php:69
+#: cache/26/26272b78e1f020a579ccf676c2d83a39.php:70
#: cache/c5/c52b8109558dd3acc604e183177113c8.php:70
#: cache/2c/2c7e285435ee15c451266c797cce5a32.php:73
#: cache/2c/2c55cdb5429a136a535a9cd9b127d575.php:69
#: cache/2c/2c268905994cc74a86fb2ebd71265416.php:69
#: cache/b0/b0d638d98d54413cf5ca73bcaa313dae.php:71
#: cache/fe/fe92f223f863fb1896ced5bd33b8c256.php:333
-#: cache/fe/fe92f223f863fb1896ced5bd33b8c256.php:539
+#: cache/fe/fe92f223f863fb1896ced5bd33b8c256.php:544
#: cache/bc/bc9a3e0798fa1ba064d681f1d6c69009.php:69
#: cache/bc/bc965084fd482159596791d6371a0f77.php:69
#: cache/4a/4a1316556dbf2c1f6276a15abb899508.php:73
@@ -6328,7 +6385,7 @@ msgstr ""
#: cache/cd/cdfcf24fb200643d729a7d42581ab314.php:72
#: cache/cd/cdf12d9a1fc3b5db7965cfa8f9bb8d13.php:70
#: cache/3a/3aa0a33f33a855bb42a0c3267174495d.php:69
-#: cache/37/37f12704cf17017038d73d9ee1907d04.php:336
+#: cache/37/37f12704cf17017038d73d9ee1907d04.php:364
#: cache/37/377ff96eb23f94563370a45d1c41993f.php:77
#: cache/fa/fa9935428c44daef4d95e4b582124caa.php:77
#: cache/fa/faa7a864be7733d5d543f560dd13d215.php:72
@@ -6337,7 +6394,7 @@ msgstr ""
#: cache/42/429bc3b90e0dd835a4548e949ce40ad6.php:69
#: cache/8d/8de7dd9661211f3ba39933b564d76990.php:70
#: cache/72/72bfb52fd80e06544d4442d19663906a.php:72
-#: cache/53/53221a3cb3187e41cde32cfa796d45a7.php:476
+#: cache/53/53221a3cb3187e41cde32cfa796d45a7.php:496
#: cache/06/064860d0048e253d534fdf8acb4ec0bd.php:78
#: cache/cb/cbba241d915c7e565fbb58c637b124a8.php:78
#: cache/d3/d3aa1431a8c1ca36890facca4eb9503f.php:69
@@ -6366,31 +6423,32 @@ msgstr ""
#: cache/a2/a25dbce646a9a1ed849b53f6d93ed8cb.php:129
#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:190
-#: cache/2d/2d67b2aac34d9a8cd68e4dad8db97260.php:134
-#: cache/2d/2d67b2aac34d9a8cd68e4dad8db97260.php:161
-#: cache/04/04b4b8b9bb93bf0580422332c142abff.php:148
-#: cache/04/04b4b8b9bb93bf0580422332c142abff.php:227
-#: cache/d4/d41eb57456e7d0ead8c455e4652b975c.php:223
+#: cache/2d/2d67b2aac34d9a8cd68e4dad8db97260.php:139
+#: cache/2d/2d67b2aac34d9a8cd68e4dad8db97260.php:166
+#: cache/04/04b4b8b9bb93bf0580422332c142abff.php:153
+#: cache/04/04b4b8b9bb93bf0580422332c142abff.php:232
+#: cache/d4/d41eb57456e7d0ead8c455e4652b975c.php:182
#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:176
-#: cache/df/dfa8c9877043c738d127ce9a84cd99fa.php:110
-#: cache/df/dfa8c9877043c738d127ce9a84cd99fa.php:129
+#: cache/df/dfa8c9877043c738d127ce9a84cd99fa.php:115
+#: cache/df/dfa8c9877043c738d127ce9a84cd99fa.php:134
#: cache/b1/b1c2db71469950cfdd34c323d05aa155.php:130
#: cache/66/661d79c5da6d14a0db85cd0980868ff7.php:158
#: cache/d7/d7ce5b1f05d3a691d8332e778a077544.php:125
-#: cache/74/744e0b5373a743ed5470adc55bec6bcc.php:147
+#: cache/74/744e0b5373a743ed5470adc55bec6bcc.php:149
+#: cache/23/23114ff234f79ee13968407a57f6252d.php:115
#: cache/63/63e26e752b3c6315edeb7408e1bf2ae9.php:127
-#: cache/fd/fd08b6cb6765ac676b671e9c5a7afe27.php:223
+#: cache/fd/fd08b6cb6765ac676b671e9c5a7afe27.php:182
#: cache/22/22125d4e14bf79dcb46dd4705caf6309.php:139
-#: cache/f3/f3286f195f132c53823b9bb1068e5cc9.php:122
-#: cache/f3/f3286f195f132c53823b9bb1068e5cc9.php:210
+#: cache/f3/f3286f195f132c53823b9bb1068e5cc9.php:127
+#: cache/f3/f3286f195f132c53823b9bb1068e5cc9.php:213
#: cache/4c/4c51c53e92ed5731d0e8526118d29799.php:118
#: cache/3a/3aa0a33f33a855bb42a0c3267174495d.php:113
-#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:177
-#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:481
-#: cache/cb/cb0f801b3d2ddd3d1f61f47414d32047.php:111
-#: cache/cb/cb0f801b3d2ddd3d1f61f47414d32047.php:142
-#: cache/b2/b21687508ff5b0bb637fdbd3f8c0d3c6.php:115
-#: cache/b2/b21687508ff5b0bb637fdbd3f8c0d3c6.php:204
+#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:183
+#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:485
+#: cache/cb/cb0f801b3d2ddd3d1f61f47414d32047.php:116
+#: cache/cb/cb0f801b3d2ddd3d1f61f47414d32047.php:147
+#: cache/b2/b21687508ff5b0bb637fdbd3f8c0d3c6.php:120
+#: cache/b2/b21687508ff5b0bb637fdbd3f8c0d3c6.php:207
msgid "Code"
msgstr ""
@@ -6427,7 +6485,7 @@ msgstr ""
#: cache/3d/3d43e8adbd5d771e55b4c097d061edee.php:68
#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:98
#: cache/c8/c8b99142441b986f998bf81808403c07.php:138
-#: cache/c8/c82ad061a984295661821ddeb6ffb8c0.php:99
+#: cache/c8/c82ad061a984295661821ddeb6ffb8c0.php:104
#: cache/b8/b883949087e41a51e58bfb0a9f1ef74b.php:92
#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:92
#: cache/3c/3c7bd12ad2faa21d9e80b1c4ee69d3b4.php:55
@@ -6436,16 +6494,17 @@ msgstr ""
#: cache/eb/ebcff77a4e266af34134679c91af4d2d.php:84
#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:101
#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:55
-#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:108
+#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:106
#: cache/04/04b11bf7b7a8190d66899471a8930ffd.php:105
#: cache/88/8836e166837e167ba9b26786f8a2b7ef.php:92
-#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:457
+#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:471
#: cache/d5/d548e4848346b34fa2915d684010817b.php:84
#: cache/d4/d41eb57456e7d0ead8c455e4652b975c.php:101
#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:92
+#: cache/bf/bfa04d76ea96a772caeedcfdf9d70e40.php:102
#: cache/8a/8acc5a2af63338673a6de3f58764bb95.php:138
#: cache/49/49b3c02c876e8a464a75e1682c064115.php:55
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1102
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1192
#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:55
#: cache/23/23114ff234f79ee13968407a57f6252d.php:84
#: cache/23/2360e54d15ebe919cd8f4305d3819359.php:138
@@ -6465,7 +6524,7 @@ msgstr ""
#: cache/fa/fa9935428c44daef4d95e4b582124caa.php:92
#: cache/fa/faa7a864be7733d5d543f560dd13d215.php:184
#: cache/8d/8de7dd9661211f3ba39933b564d76990.php:92
-#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:113
+#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:119
#: cache/d3/d3aa1431a8c1ca36890facca4eb9503f.php:84
#: cache/70/70af2bbd82243291558c9b83caec5b48.php:100
msgid "General"
@@ -6474,8 +6533,8 @@ msgstr ""
#: cache/39/394b19a8eebf2eb1d9628eb62cde032c.php:96
#: cache/04/04b11bf7b7a8190d66899471a8930ffd.php:318
#: cache/04/04b11bf7b7a8190d66899471a8930ffd.php:377
-#: cache/0e/0ed8020e97c517a55ad881cfc5dd0b4c.php:165
-#: cache/0e/0ed8020e97c517a55ad881cfc5dd0b4c.php:204
+#: cache/0e/0ed8020e97c517a55ad881cfc5dd0b4c.php:163
+#: cache/0e/0ed8020e97c517a55ad881cfc5dd0b4c.php:202
#: cache/fa/fa9935428c44daef4d95e4b582124caa.php:96
msgid "Message"
msgstr ""
@@ -6506,80 +6565,69 @@ msgid "The date when this notification will be published"
msgstr ""
#: cache/39/394b19a8eebf2eb1d9628eb62cde032c.php:146
-#: cache/c5/c5ca1344d07a74a91c5de3a21d4c2de4.php:115
+#: cache/c5/c5ca1344d07a74a91c5de3a21d4c2de4.php:178
#: cache/fa/fa9935428c44daef4d95e4b582124caa.php:146
-msgid "Email?"
+msgid "Interrupt?"
msgstr ""
#: cache/39/394b19a8eebf2eb1d9628eb62cde032c.php:151
#: cache/fa/fa9935428c44daef4d95e4b582124caa.php:151
-msgid "Should the notification be emailed?"
-msgstr ""
-
-#: cache/39/394b19a8eebf2eb1d9628eb62cde032c.php:161
-#: cache/c5/c5ca1344d07a74a91c5de3a21d4c2de4.php:119
-#: cache/fa/fa9935428c44daef4d95e4b582124caa.php:161
-msgid "Interrupt?"
-msgstr ""
-
-#: cache/39/394b19a8eebf2eb1d9628eb62cde032c.php:166
-#: cache/fa/fa9935428c44daef4d95e4b582124caa.php:166
msgid ""
"Should the notification interrupt nagivation in the Web Portal? Including "
"Login."
msgstr ""
-#: cache/39/394b19a8eebf2eb1d9628eb62cde032c.php:178
-#: cache/fa/fa9935428c44daef4d95e4b582124caa.php:178
+#: cache/39/394b19a8eebf2eb1d9628eb62cde032c.php:163
+#: cache/fa/fa9935428c44daef4d95e4b582124caa.php:163
msgid ""
"Add the body of your message in the box below. If you are going to target "
"this message to a Display/DisplayGroup be aware that the formatting you "
"apply here will be removed."
msgstr ""
-#: cache/39/394b19a8eebf2eb1d9628eb62cde032c.php:194
-#: cache/39/394b19a8eebf2eb1d9628eb62cde032c.php:212
+#: cache/39/394b19a8eebf2eb1d9628eb62cde032c.php:179
+#: cache/39/394b19a8eebf2eb1d9628eb62cde032c.php:197
#: cache/46/46d175eb37bdc1a79c39e008e76f3511.php:172
#: cache/68/683636238aff529d5a7b7478118dede4.php:135
#: cache/68/683636238aff529d5a7b7478118dede4.php:3275
#: cache/9f/9f9a142004ca4a1c914a4395fe586017.php:481
#: cache/09/09fa06e4cbb20e5f65e2075bff1da423.php:121
#: cache/a4/a4b5f52b1992bb349e8a30b19ff24645.php:328
-#: cache/fa/fa9935428c44daef4d95e4b582124caa.php:194
-#: cache/fa/fa9935428c44daef4d95e4b582124caa.php:212
+#: cache/fa/fa9935428c44daef4d95e4b582124caa.php:179
+#: cache/fa/fa9935428c44daef4d95e4b582124caa.php:197
#: cache/53/53221a3cb3187e41cde32cfa796d45a7.php:55
-#: cache/53/53221a3cb3187e41cde32cfa796d45a7.php:111
+#: cache/53/53221a3cb3187e41cde32cfa796d45a7.php:109
#: cache/8e/8e4c9c1886827e5f797c4436d4051e48.php:118
msgid "Users"
msgstr ""
-#: cache/39/394b19a8eebf2eb1d9628eb62cde032c.php:199
-#: cache/fa/fa9935428c44daef4d95e4b582124caa.php:199
+#: cache/39/394b19a8eebf2eb1d9628eb62cde032c.php:184
+#: cache/fa/fa9935428c44daef4d95e4b582124caa.php:184
msgid ""
"Please select one or more users / groups who will receive this notification."
msgstr ""
-#: cache/39/394b19a8eebf2eb1d9628eb62cde032c.php:207
-#: cache/39/394b19a8eebf2eb1d9628eb62cde032c.php:255
-#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:204
-#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:211
+#: cache/39/394b19a8eebf2eb1d9628eb62cde032c.php:192
+#: cache/39/394b19a8eebf2eb1d9628eb62cde032c.php:240
+#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:208
+#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:219
#: cache/fe/fe92f223f863fb1896ced5bd33b8c256.php:177
-#: cache/fa/fa9935428c44daef4d95e4b582124caa.php:207
-#: cache/fa/fa9935428c44daef4d95e4b582124caa.php:255
+#: cache/fa/fa9935428c44daef4d95e4b582124caa.php:192
+#: cache/fa/fa9935428c44daef4d95e4b582124caa.php:240
msgid "Groups"
msgstr ""
-#: cache/39/394b19a8eebf2eb1d9628eb62cde032c.php:227
-#: cache/fa/fa9935428c44daef4d95e4b582124caa.php:227
+#: cache/39/394b19a8eebf2eb1d9628eb62cde032c.php:212
+#: cache/fa/fa9935428c44daef4d95e4b582124caa.php:212
msgid "Non users"
msgstr ""
-#: cache/39/394b19a8eebf2eb1d9628eb62cde032c.php:232
-#: cache/fa/fa9935428c44daef4d95e4b582124caa.php:232
+#: cache/39/394b19a8eebf2eb1d9628eb62cde032c.php:217
+#: cache/fa/fa9935428c44daef4d95e4b582124caa.php:217
msgid "Additional emails separated by a comma."
msgstr ""
-#: cache/39/394b19a8eebf2eb1d9628eb62cde032c.php:242
+#: cache/39/394b19a8eebf2eb1d9628eb62cde032c.php:227
#: cache/39/39cc315464ac8c34ba79db4a07dcc832.php:291
#: cache/91/91982ff1ff9899125ec30731f264a8f4.php:95
#: cache/c8/c8b99142441b986f998bf81808403c07.php:283
@@ -6590,51 +6638,53 @@ msgstr ""
#: cache/09/09fa06e4cbb20e5f65e2075bff1da423.php:78
#: cache/09/09fa06e4cbb20e5f65e2075bff1da423.php:414
#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:55
-#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:96
+#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:94
#: cache/6e/6e8678de8ffffc5ed3b935eb9c3f6eb0.php:240
#: cache/6e/6e8678de8ffffc5ed3b935eb9c3f6eb0.php:250
#: cache/a4/a4b5f52b1992bb349e8a30b19ff24645.php:210
#: cache/a4/a4b5f52b1992bb349e8a30b19ff24645.php:219
#: cache/9e/9e2a80ecdd8879e59308a644c1f6721f.php:95
#: cache/79/7925e7fdcb44e9a96c9b2b2e4814991e.php:194
-#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:284
-#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:297
-#: cache/fa/fa9935428c44daef4d95e4b582124caa.php:242
+#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:289
+#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:302
+#: cache/fa/fa9935428c44daef4d95e4b582124caa.php:227
#: cache/cb/cbba241d915c7e565fbb58c637b124a8.php:136
#: cache/8e/8e4c9c1886827e5f797c4436d4051e48.php:110
msgid "Displays"
msgstr ""
-#: cache/39/394b19a8eebf2eb1d9628eb62cde032c.php:247
-#: cache/fa/fa9935428c44daef4d95e4b582124caa.php:247
+#: cache/39/394b19a8eebf2eb1d9628eb62cde032c.php:232
+#: cache/fa/fa9935428c44daef4d95e4b582124caa.php:232
msgid ""
"Please select one or more displays / groups for this notification to be "
"shown on - Layouts will need the notification widget."
msgstr ""
-#: cache/39/394b19a8eebf2eb1d9628eb62cde032c.php:260
+#: cache/39/394b19a8eebf2eb1d9628eb62cde032c.php:245
#: cache/39/39cc315464ac8c34ba79db4a07dcc832.php:355
#: cache/3d/3d685e4b4f0f4e045b5cc2697b26574d.php:76
#: cache/3d/3d2cccf3b2d4ef70fb5cca66b9b93574.php:187
#: cache/91/91982ff1ff9899125ec30731f264a8f4.php:161
-#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:195
-#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:204
+#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:199
+#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:208
#: cache/c8/c8b99142441b986f998bf81808403c07.php:347
-#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:202
-#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:211
+#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:210
+#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:219
#: cache/09/09fa06e4cbb20e5f65e2075bff1da423.php:76
#: cache/09/09fa06e4cbb20e5f65e2075bff1da423.php:245
#: cache/09/09fa06e4cbb20e5f65e2075bff1da423.php:465
-#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:557
+#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:553
#: cache/04/04b11bf7b7a8190d66899471a8930ffd.php:272
#: cache/04/04b11bf7b7a8190d66899471a8930ffd.php:369
#: cache/9e/9e2a80ecdd8879e59308a644c1f6721f.php:170
-#: cache/23/238f0b98d7f96aca9a850e8b230fe1fb.php:129
+#: cache/23/238f0b98d7f96aca9a850e8b230fe1fb.php:128
+#: cache/c5/c5ca1344d07a74a91c5de3a21d4c2de4.php:135
#: cache/fe/fe92f223f863fb1896ced5bd33b8c256.php:168
#: cache/fe/fe92f223f863fb1896ced5bd33b8c256.php:177
-#: cache/fa/fa9935428c44daef4d95e4b582124caa.php:260
+#: cache/fa/fa9935428c44daef4d95e4b582124caa.php:245
#: cache/cb/cbba241d915c7e565fbb58c637b124a8.php:204
#: cache/70/70af2bbd82243291558c9b83caec5b48.php:178
+#: cache/60/6096ddd2496c1f25a148669f286abbeb.php:408
#: cache/11/1107af5e0742401bd7bdcb180ef3991e.php:70
#: cache/f2/f2c4f8da776f3da2da0354bcdf5050cd.php:116
#: lib/Report/DistributionReport.php:253
@@ -6648,7 +6698,6 @@ msgstr ""
#: cache/39/39cc315464ac8c34ba79db4a07dcc832.php:138
#: cache/c8/c8b99142441b986f998bf81808403c07.php:142
#: cache/0a/0ae358955c92f467744fc6cf0f8f5624.php:105
-#: cache/23/23114ff234f79ee13968407a57f6252d.php:115
#: cache/0b/0bf1ec6ab33ef0ba5938df774146f8dc.php:101
#: cache/fe/fe92f223f863fb1896ced5bd33b8c256.php:108
#: cache/cd/cdf12d9a1fc3b5db7965cfa8f9bb8d13.php:105
@@ -6661,10 +6710,11 @@ msgstr ""
#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:129
#: cache/07/0762fe09da77cd40faec35b3575a6abb.php:91
#: cache/d5/d548e4848346b34fa2915d684010817b.php:112
+#: cache/41/416015b714a3d4ce25c4f5a60b5e0869.php:91
#: cache/a9/a9e5683d775fba4115fbe1530a299060.php:91
#: cache/d7/d7326d049226360861decd025d796004.php:91
#: cache/8a/8acc5a2af63338673a6de3f58764bb95.php:161
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:964
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1038
#: cache/51/516db3616cec383813b2ba8f7cef0b6d.php:133
#: cache/c0/c0957d7f61132493ea43a4e545472a41.php:91
#: cache/0b/0bf1ec6ab33ef0ba5938df774146f8dc.php:126
@@ -6672,8 +6722,8 @@ msgstr ""
#: cache/c5/c52b8109558dd3acc604e183177113c8.php:109
#: cache/bc/bc965084fd482159596791d6371a0f77.php:94
#: cache/83/8300bf8b96eee9813dc4373df0e08748.php:106
-#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:835
-#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:655
+#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:849
+#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:664
#: cache/70/70704e5a81b7b174a6652eebe0894444.php:91
#: cache/70/70af2bbd82243291558c9b83caec5b48.php:146
msgid "Current Folder"
@@ -6683,6 +6733,7 @@ msgstr ""
#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:139
#: cache/07/0762fe09da77cd40faec35b3575a6abb.php:101
#: cache/d5/d548e4848346b34fa2915d684010817b.php:122
+#: cache/41/416015b714a3d4ce25c4f5a60b5e0869.php:101
#: cache/a9/a9e5683d775fba4115fbe1530a299060.php:101
#: cache/d7/d7326d049226360861decd025d796004.php:101
#: cache/8a/8acc5a2af63338673a6de3f58764bb95.php:170
@@ -6708,8 +6759,8 @@ msgstr ""
#: cache/b1/b1c2db71469950cfdd34c323d05aa155.php:99
#: cache/5e/5ec96adf0346509994d4c975eac80689.php:102
#: cache/8a/8acc5a2af63338673a6de3f58764bb95.php:175
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:956
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2217
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1030
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2465
#: cache/23/2360e54d15ebe919cd8f4305d3819359.php:166
#: cache/63/63a123f42a16165e90cd9f604b2de4bd.php:122
#: cache/0b/0bf1ec6ab33ef0ba5938df774146f8dc.php:141
@@ -6718,14 +6769,15 @@ msgstr ""
#: cache/bc/bc965084fd482159596791d6371a0f77.php:109
#: cache/83/8300bf8b96eee9813dc4373df0e08748.php:121
#: cache/42/429bc3b90e0dd835a4548e949ce40ad6.php:97
-#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:827
-#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:900
-#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:647
+#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:841
+#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:912
+#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:656
#: cache/70/70af2bbd82243291558c9b83caec5b48.php:161
-#: lib/Controller/Template.php:220 lib/Controller/DisplayGroup.php:347
-#: lib/Controller/Campaign.php:348 lib/Controller/MenuBoard.php:170
-#: lib/Controller/Playlist.php:408 lib/Controller/Library.php:665
-#: lib/Controller/Layout.php:1785 lib/Controller/Display.php:942
+#: lib/Controller/Template.php:233 lib/Controller/DisplayGroup.php:352
+#: lib/Controller/DataSet.php:282 lib/Controller/Campaign.php:348
+#: lib/Controller/MenuBoard.php:170 lib/Controller/Playlist.php:411
+#: lib/Controller/Library.php:667 lib/Controller/Layout.php:1811
+#: lib/Controller/Display.php:943
msgid "Select Folder"
msgstr ""
@@ -6743,25 +6795,26 @@ msgstr ""
#: cache/39/39cc315464ac8c34ba79db4a07dcc832.php:359
#: cache/c8/c8b99142441b986f998bf81808403c07.php:214
#: cache/c8/c8b99142441b986f998bf81808403c07.php:351
-#: cache/c8/c82ad061a984295661821ddeb6ffb8c0.php:126
-#: cache/c8/c82ad061a984295661821ddeb6ffb8c0.php:297
+#: cache/c8/c82ad061a984295661821ddeb6ffb8c0.php:131
+#: cache/c8/c82ad061a984295661821ddeb6ffb8c0.php:300
#: cache/f5/f5c7640aa7fbb9ab7e2caec1a409d7c2.php:172
#: cache/9f/9f9a142004ca4a1c914a4395fe586017.php:691
#: cache/09/09fa06e4cbb20e5f65e2075bff1da423.php:505
-#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:250
-#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:607
+#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:248
+#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:603
#: cache/7d/7d8878cf40b2a074d7a7dd990858a580.php:76
#: cache/d5/d548e4848346b34fa2915d684010817b.php:161
#: cache/a4/a4b5f52b1992bb349e8a30b19ff24645.php:419
#: cache/8a/8acc5a2af63338673a6de3f58764bb95.php:209
#: cache/8a/8acc5a2af63338673a6de3f58764bb95.php:405
-#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:115
-#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:281
+#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:120
+#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:284
#: cache/e3/e3e074211e42eadb55ae8cb6ceeaa722.php:55
-#: cache/e3/e3e074211e42eadb55ae8cb6ceeaa722.php:85
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2574
-#: cache/23/238f0b98d7f96aca9a850e8b230fe1fb.php:175
-#: cache/23/238f0b98d7f96aca9a850e8b230fe1fb.php:273
+#: cache/e3/e3e074211e42eadb55ae8cb6ceeaa722.php:89
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2264
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2834
+#: cache/23/238f0b98d7f96aca9a850e8b230fe1fb.php:174
+#: cache/23/238f0b98d7f96aca9a850e8b230fe1fb.php:271
#: cache/23/2360e54d15ebe919cd8f4305d3819359.php:200
#: cache/23/2360e54d15ebe919cd8f4305d3819359.php:418
#: cache/63/63a123f42a16165e90cd9f604b2de4bd.php:156
@@ -6772,11 +6825,11 @@ msgstr ""
#: cache/bc/bc965084fd482159596791d6371a0f77.php:150
#: cache/83/8300bf8b96eee9813dc4373df0e08748.php:155
#: cache/31/31805080e1e51d4a56cb67fa60bdcb2f.php:115
-#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:149
-#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:440
-#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:150
-#: cache/8b/8bc5b04498de39f4571d14d541bd6a91.php:115
-#: cache/8b/8bc5b04498de39f4571d14d541bd6a91.php:204
+#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:155
+#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:444
+#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:155
+#: cache/8b/8bc5b04498de39f4571d14d541bd6a91.php:120
+#: cache/8b/8bc5b04498de39f4571d14d541bd6a91.php:207
#: cache/70/70af2bbd82243291558c9b83caec5b48.php:243
msgid "Tags"
msgstr ""
@@ -6813,8 +6866,8 @@ msgstr ""
#: cache/bc/bc965084fd482159596791d6371a0f77.php:178
#: cache/83/8300bf8b96eee9813dc4373df0e08748.php:172
#: cache/83/8300bf8b96eee9813dc4373df0e08748.php:183
-#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:786
-#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:797
+#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:798
+#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:809
#: cache/70/70af2bbd82243291558c9b83caec5b48.php:260
#: cache/70/70af2bbd82243291558c9b83caec5b48.php:271
msgid "Tag value"
@@ -6832,7 +6885,7 @@ msgstr ""
#: cache/fe/fe92f223f863fb1896ced5bd33b8c256.php:255
#: cache/bc/bc965084fd482159596791d6371a0f77.php:183
#: cache/83/8300bf8b96eee9813dc4373df0e08748.php:188
-#: cache/37/37f12704cf17017038d73d9ee1907d04.php:396
+#: cache/37/37f12704cf17017038d73d9ee1907d04.php:424
#: cache/70/70af2bbd82243291558c9b83caec5b48.php:276
msgid ""
"Please provide the value for this Tag and confirm by pressing enter on your "
@@ -6851,7 +6904,7 @@ msgstr ""
#: cache/fe/fe92f223f863fb1896ced5bd33b8c256.php:266
#: cache/bc/bc965084fd482159596791d6371a0f77.php:194
#: cache/83/8300bf8b96eee9813dc4373df0e08748.php:199
-#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:812
+#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:824
#: cache/70/70af2bbd82243291558c9b83caec5b48.php:287
msgid ""
"This tag requires a set value, please select one from the Tag value dropdown "
@@ -6869,8 +6922,10 @@ msgid "Are the members of this group dynamic?"
msgstr ""
#: cache/39/39cc315464ac8c34ba79db4a07dcc832.php:298
+#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:114
#: cache/c8/c8b99142441b986f998bf81808403c07.php:290
-#: cache/23/238f0b98d7f96aca9a850e8b230fe1fb.php:262
+#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:117
+#: cache/23/238f0b98d7f96aca9a850e8b230fe1fb.php:260
msgid "Criteria"
msgstr ""
@@ -6883,37 +6938,37 @@ msgstr ""
#: cache/39/39cc315464ac8c34ba79db4a07dcc832.php:316
#: cache/c8/c8b99142441b986f998bf81808403c07.php:308
-#: cache/23/238f0b98d7f96aca9a850e8b230fe1fb.php:269
+#: cache/23/238f0b98d7f96aca9a850e8b230fe1fb.php:267
msgid "Criteria Tags"
msgstr ""
#: cache/39/39cc315464ac8c34ba79db4a07dcc832.php:321
#: cache/c8/c8b99142441b986f998bf81808403c07.php:313
-#: cache/c8/c82ad061a984295661821ddeb6ffb8c0.php:131
-#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:255
+#: cache/c8/c82ad061a984295661821ddeb6ffb8c0.php:136
+#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:253
#: cache/8a/8acc5a2af63338673a6de3f58764bb95.php:350
-#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:120
-#: cache/23/238f0b98d7f96aca9a850e8b230fe1fb.php:180
+#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:125
+#: cache/23/238f0b98d7f96aca9a850e8b230fe1fb.php:179
#: cache/23/2360e54d15ebe919cd8f4305d3819359.php:362
#: cache/0b/0bf1ec6ab33ef0ba5938df774146f8dc.php:378
-#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:154
-#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:155
-#: cache/8b/8bc5b04498de39f4571d14d541bd6a91.php:120
+#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:160
+#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:160
+#: cache/8b/8bc5b04498de39f4571d14d541bd6a91.php:125
msgid "Exact match?"
msgstr ""
#: cache/39/39cc315464ac8c34ba79db4a07dcc832.php:326
#: cache/c8/c8b99142441b986f998bf81808403c07.php:318
-#: cache/c8/c82ad061a984295661821ddeb6ffb8c0.php:136
-#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:260
+#: cache/c8/c82ad061a984295661821ddeb6ffb8c0.php:141
+#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:258
#: cache/8a/8acc5a2af63338673a6de3f58764bb95.php:355
-#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:125
-#: cache/23/238f0b98d7f96aca9a850e8b230fe1fb.php:185
+#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:130
+#: cache/23/238f0b98d7f96aca9a850e8b230fe1fb.php:184
#: cache/23/2360e54d15ebe919cd8f4305d3819359.php:367
#: cache/0b/0bf1ec6ab33ef0ba5938df774146f8dc.php:383
-#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:159
-#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:160
-#: cache/8b/8bc5b04498de39f4571d14d541bd6a91.php:125
+#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:165
+#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:165
+#: cache/8b/8bc5b04498de39f4571d14d541bd6a91.php:130
msgid "When filtering by multiple Tags, which logical operator should be used?"
msgstr ""
@@ -6928,17 +6983,18 @@ msgstr ""
#: cache/3d/3d2cccf3b2d4ef70fb5cca66b9b93574.php:191
#: cache/c8/c8b99142441b986f998bf81808403c07.php:355
#: cache/09/09fa06e4cbb20e5f65e2075bff1da423.php:469
-#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:141
-#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:569
+#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:139
+#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:565
#: cache/a5/a5b6c45ce9be70286d1fe135db11c5e3.php:109
#: cache/04/0499f0242d314e52ef2aed46b4a0b1e9.php:190
#: cache/04/0499f0242d314e52ef2aed46b4a0b1e9.php:272
#: cache/0b/0bf1ec6ab33ef0ba5938df774146f8dc.php:416
-#: cache/f0/f03a3c9d913ba87fcd4d1925058f2671.php:126
-#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:1425
-#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:426
+#: cache/c5/c5ca1344d07a74a91c5de3a21d4c2de4.php:105
+#: cache/f0/f03a3c9d913ba87fcd4d1925058f2671.php:124
+#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:1390
+#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:430
#: cache/cb/cbba241d915c7e565fbb58c637b124a8.php:208
-#: cache/8b/8bc5b04498de39f4571d14d541bd6a91.php:190
+#: cache/8b/8bc5b04498de39f4571d14d541bd6a91.php:193
msgid "Status"
msgstr ""
@@ -6949,9 +7005,9 @@ msgstr ""
#: cache/39/39cc315464ac8c34ba79db4a07dcc832.php:383
#: cache/c8/c8b99142441b986f998bf81808403c07.php:381
-#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:720
+#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:716
#: cache/0a/0ae358955c92f467744fc6cf0f8f5624.php:341
-#: cache/23/238f0b98d7f96aca9a850e8b230fe1fb.php:283
+#: cache/23/238f0b98d7f96aca9a850e8b230fe1fb.php:281
#: cache/0b/0bf1ec6ab33ef0ba5938df774146f8dc.php:283
#: cache/26/26b74efc874b3a8a5a7cf3ed2a22c6ba.php:492
#: cache/fe/fe92f223f863fb1896ced5bd33b8c256.php:282
@@ -6962,9 +7018,9 @@ msgstr ""
#: cache/39/39cc315464ac8c34ba79db4a07dcc832.php:393
#: cache/c8/c8b99142441b986f998bf81808403c07.php:391
-#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:724
+#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:720
#: cache/0a/0ae358955c92f467744fc6cf0f8f5624.php:356
-#: cache/23/238f0b98d7f96aca9a850e8b230fe1fb.php:287
+#: cache/23/238f0b98d7f96aca9a850e8b230fe1fb.php:285
#: cache/0b/0bf1ec6ab33ef0ba5938df774146f8dc.php:293
#: cache/26/26b74efc874b3a8a5a7cf3ed2a22c6ba.php:492
#: cache/fe/fe92f223f863fb1896ced5bd33b8c256.php:292
@@ -6975,9 +7031,9 @@ msgstr ""
#: cache/39/39cc315464ac8c34ba79db4a07dcc832.php:403
#: cache/c8/c8b99142441b986f998bf81808403c07.php:401
-#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:728
+#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:724
#: cache/0a/0ae358955c92f467744fc6cf0f8f5624.php:371
-#: cache/23/238f0b98d7f96aca9a850e8b230fe1fb.php:291
+#: cache/23/238f0b98d7f96aca9a850e8b230fe1fb.php:289
#: cache/0b/0bf1ec6ab33ef0ba5938df774146f8dc.php:303
#: cache/26/26b74efc874b3a8a5a7cf3ed2a22c6ba.php:492
#: cache/fe/fe92f223f863fb1896ced5bd33b8c256.php:302
@@ -6988,9 +7044,9 @@ msgstr ""
#: cache/39/39cc315464ac8c34ba79db4a07dcc832.php:413
#: cache/c8/c8b99142441b986f998bf81808403c07.php:411
-#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:732
+#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:728
#: cache/0a/0ae358955c92f467744fc6cf0f8f5624.php:386
-#: cache/23/238f0b98d7f96aca9a850e8b230fe1fb.php:295
+#: cache/23/238f0b98d7f96aca9a850e8b230fe1fb.php:293
#: cache/0b/0bf1ec6ab33ef0ba5938df774146f8dc.php:313
#: cache/26/26b74efc874b3a8a5a7cf3ed2a22c6ba.php:492
#: cache/fe/fe92f223f863fb1896ced5bd33b8c256.php:312
@@ -7001,9 +7057,9 @@ msgstr ""
#: cache/39/39cc315464ac8c34ba79db4a07dcc832.php:423
#: cache/c8/c8b99142441b986f998bf81808403c07.php:421
-#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:736
+#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:732
#: cache/0a/0ae358955c92f467744fc6cf0f8f5624.php:401
-#: cache/23/238f0b98d7f96aca9a850e8b230fe1fb.php:299
+#: cache/23/238f0b98d7f96aca9a850e8b230fe1fb.php:297
#: cache/0b/0bf1ec6ab33ef0ba5938df774146f8dc.php:323
#: cache/26/26b74efc874b3a8a5a7cf3ed2a22c6ba.php:492
#: cache/fe/fe92f223f863fb1896ced5bd33b8c256.php:322
@@ -7023,27 +7079,27 @@ msgstr ""
#: cache/3d/3d685e4b4f0f4e045b5cc2697b26574d.php:70
#: cache/91/91982ff1ff9899125ec30731f264a8f4.php:195
-#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:299
-#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:305
-#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:383
-#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:389
+#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:303
+#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:309
+#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:391
+#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:397
#: cache/9e/9e2a80ecdd8879e59308a644c1f6721f.php:204
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1236
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1248
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2029
-#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:450
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1326
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1338
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2201
+#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:481
#: cache/38/38e5186bcfa9917c4ec02d8c626e2552.php:188
#: cache/0e/0e02100c0f3615b819bb09d3e2a17b8a.php:212
+#: cache/c5/c5ca1344d07a74a91c5de3a21d4c2de4.php:135
#: cache/fe/fe92f223f863fb1896ced5bd33b8c256.php:343
#: cache/11/1107af5e0742401bd7bdcb180ef3991e.php:64
-#: lib/Controller/Campaign.php:682 lib/Entity/Schedule.php:1968
+#: lib/Controller/Campaign.php:682 lib/Entity/Schedule.php:2082
msgid "Layout"
msgstr ""
#: cache/3d/3d685e4b4f0f4e045b5cc2697b26574d.php:88
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2114
-#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:454
-#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:473
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2358
+#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:485
msgid "Region"
msgstr ""
@@ -7059,31 +7115,34 @@ msgstr ""
#: cache/3d/3d685e4b4f0f4e045b5cc2697b26574d.php:188
#: cache/e7/e7012f849ea8937cd0edbed2b7de4de8.php:982
-#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:212
+#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:219
#: cache/11/1107af5e0742401bd7bdcb180ef3991e.php:173
+#: lib/Controller/Notification.php:239
msgid "View"
msgstr ""
#: cache/3d/3d685e4b4f0f4e045b5cc2697b26574d.php:192
#: cache/e7/e7012f849ea8937cd0edbed2b7de4de8.php:986
-#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:166
-#: cache/fe/fe92f223f863fb1896ced5bd33b8c256.php:555
+#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:168
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2943
+#: cache/fe/fe92f223f863fb1896ced5bd33b8c256.php:560
#: cache/11/1107af5e0742401bd7bdcb180ef3991e.php:177
-#: lib/Controller/Task.php:136 lib/Controller/Template.php:212
-#: lib/Controller/DisplayGroup.php:329 lib/Controller/DataSet.php:250
-#: lib/Controller/ScheduleReport.php:216 lib/Controller/Notification.php:217
+#: lib/Controller/Task.php:136 lib/Controller/Template.php:225
+#: lib/Controller/DisplayGroup.php:334 lib/Controller/DataSet.php:274
+#: lib/Controller/ScheduleReport.php:216 lib/Controller/Notification.php:270
#: lib/Controller/Campaign.php:327 lib/Controller/Campaign.php:335
-#: lib/Controller/MenuBoard.php:162 lib/Controller/Playlist.php:393
-#: lib/Controller/Transition.php:94 lib/Controller/Library.php:650
+#: lib/Controller/MenuBoard.php:162 lib/Controller/Playlist.php:396
+#: lib/Controller/Transition.php:94 lib/Controller/Library.php:652
#: lib/Controller/SyncGroup.php:170 lib/Controller/DataSetColumn.php:173
-#: lib/Controller/Tag.php:231 lib/Controller/Layout.php:1777
+#: lib/Controller/Tag.php:231 lib/Controller/Layout.php:1803
#: lib/Controller/MenuBoardCategory.php:191
-#: lib/Controller/DisplayProfile.php:200 lib/Controller/User.php:335
+#: lib/Controller/DisplayProfile.php:202 lib/Controller/User.php:337
#: lib/Controller/Applications.php:178 lib/Controller/Resolution.php:161
-#: lib/Controller/Display.php:838 lib/Controller/MenuBoardProduct.php:191
-#: lib/Controller/PlayerSoftware.php:157 lib/Controller/Command.php:178
-#: lib/Controller/DataSetRss.php:163 lib/Controller/Schedule.php:2436
-#: lib/Controller/UserGroup.php:157 lib/Controller/DayPart.php:154
+#: lib/Controller/Display.php:839 lib/Controller/MenuBoardProduct.php:191
+#: lib/Controller/Developer.php:102 lib/Controller/PlayerSoftware.php:157
+#: lib/Controller/Command.php:178 lib/Controller/DataSetRss.php:163
+#: lib/Controller/Schedule.php:2462 lib/Controller/UserGroup.php:157
+#: lib/Controller/DayPart.php:154
msgid "Edit"
msgstr ""
@@ -7092,65 +7151,69 @@ msgstr ""
#: cache/e7/e7012f849ea8937cd0edbed2b7de4de8.php:990
#: cache/68/6890d35803a665b9db578df45f0f60f0.php:57
#: cache/f9/f92fcbc3e5aadf70527c18c1877f9814.php:56
-#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:170
+#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:172
+#: cache/bf/bfa04d76ea96a772caeedcfdf9d70e40.php:448
#: cache/17/17a063cd6b023f6b3259fc5bb6f3383f.php:68
#: cache/25/257d7652c0b04ca6e480ad5c9beaa3c2.php:247
#: cache/74/746ec3a82f78da39c0d83b4d24c675b3.php:65
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:725
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:818
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:836
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1043
-#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:164
-#: cache/34/3453edc522f8d2c6d1d154ad55500693.php:325
-#: cache/fe/fe92f223f863fb1896ced5bd33b8c256.php:559
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:795
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:888
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:906
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1125
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2947
+#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:171
+#: cache/34/3453edc522f8d2c6d1d154ad55500693.php:330
+#: cache/fe/fe92f223f863fb1896ced5bd33b8c256.php:564
#: cache/11/1107af5e0742401bd7bdcb180ef3991e.php:181
-#: lib/Controller/Task.php:143 lib/Controller/Template.php:248
-#: lib/Controller/Template.php:254 lib/Controller/DisplayGroup.php:375
-#: lib/Controller/DisplayGroup.php:388 lib/Controller/DataSet.php:280
-#: lib/Controller/DataSet.php:286 lib/Controller/ScheduleReport.php:236
-#: lib/Controller/ScheduleReport.php:242 lib/Controller/Notification.php:224
+#: lib/Controller/Task.php:143 lib/Controller/Template.php:268
+#: lib/Controller/Template.php:281 lib/Controller/DisplayGroup.php:380
+#: lib/Controller/DisplayGroup.php:393 lib/Controller/DataSet.php:328
+#: lib/Controller/DataSet.php:334 lib/Controller/ScheduleReport.php:236
+#: lib/Controller/ScheduleReport.php:242 lib/Controller/Notification.php:287
#: lib/Controller/Campaign.php:393 lib/Controller/Campaign.php:406
#: lib/Controller/SavedReport.php:177 lib/Controller/SavedReport.php:183
-#: lib/Controller/MenuBoard.php:223 lib/Controller/Playlist.php:458
-#: lib/Controller/Playlist.php:469 lib/Controller/Library.php:690
-#: lib/Controller/Library.php:696 lib/Controller/SyncGroup.php:184
+#: lib/Controller/MenuBoard.php:223 lib/Controller/Playlist.php:461
+#: lib/Controller/Playlist.php:472 lib/Controller/Library.php:692
+#: lib/Controller/Library.php:698 lib/Controller/SyncGroup.php:184
#: lib/Controller/DataSetColumn.php:181 lib/Controller/Tag.php:238
-#: lib/Controller/Tag.php:244 lib/Controller/Layout.php:1835
-#: lib/Controller/Layout.php:1841 lib/Controller/MenuBoardCategory.php:201
+#: lib/Controller/Tag.php:244 lib/Controller/Layout.php:1861
+#: lib/Controller/Layout.php:1867 lib/Controller/MenuBoardCategory.php:201
#: lib/Controller/Font.php:172 lib/Controller/Font.php:181
-#: lib/Controller/DisplayProfile.php:221 lib/Controller/User.php:349
+#: lib/Controller/DisplayProfile.php:223 lib/Controller/User.php:351
#: lib/Controller/Applications.php:185 lib/Controller/Resolution.php:172
-#: lib/Controller/Display.php:849 lib/Controller/Display.php:868
+#: lib/Controller/Display.php:850 lib/Controller/Display.php:869
#: lib/Controller/MenuBoardProduct.php:201
-#: lib/Controller/MenuBoardProduct.php:207
-#: lib/Controller/PlayerSoftware.php:164 lib/Controller/PlayerSoftware.php:173
-#: lib/Controller/Command.php:187 lib/Controller/Command.php:196
-#: lib/Controller/DataSetRss.php:171 lib/Controller/Schedule.php:2442
-#: lib/Controller/Schedule.php:2451 lib/Controller/UserGroup.php:165
-#: lib/Controller/DayPart.php:161 lib/Controller/DayPart.php:167
+#: lib/Controller/MenuBoardProduct.php:207 lib/Controller/Developer.php:170
+#: lib/Controller/Developer.php:183 lib/Controller/PlayerSoftware.php:164
+#: lib/Controller/PlayerSoftware.php:173 lib/Controller/Command.php:187
+#: lib/Controller/Command.php:196 lib/Controller/DataSetRss.php:171
+#: lib/Controller/Schedule.php:2468 lib/Controller/Schedule.php:2477
+#: lib/Controller/UserGroup.php:165 lib/Controller/DayPart.php:161
+#: lib/Controller/DayPart.php:167
msgid "Delete"
msgstr ""
#: cache/3d/3d685e4b4f0f4e045b5cc2697b26574d.php:217
-#: cache/c8/c82ad061a984295661821ddeb6ffb8c0.php:159
-#: cache/c8/c82ad061a984295661821ddeb6ffb8c0.php:306
-#: cache/e5/e5e5434fb79a5ac6a7fd60b41343e917.php:119
-#: cache/e5/e5e5434fb79a5ac6a7fd60b41343e917.php:182
-#: cache/41/411fdd8ac98835cf7ed952b29cda0628.php:118
-#: cache/d2/d2fa8bed4d1e30769527c78081442bfc.php:198
-#: cache/fb/fb12c90670ac105c9ea03fcc99876e87.php:104
-#: cache/fb/fb12c90670ac105c9ea03fcc99876e87.php:171
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1740
-#: cache/f3/f3286f195f132c53823b9bb1068e5cc9.php:132
-#: cache/f3/f3286f195f132c53823b9bb1068e5cc9.php:218
+#: cache/c8/c82ad061a984295661821ddeb6ffb8c0.php:164
+#: cache/c8/c82ad061a984295661821ddeb6ffb8c0.php:309
+#: cache/e5/e5e5434fb79a5ac6a7fd60b41343e917.php:123
+#: cache/e5/e5e5434fb79a5ac6a7fd60b41343e917.php:186
+#: cache/41/411fdd8ac98835cf7ed952b29cda0628.php:122
+#: cache/d2/d2fa8bed4d1e30769527c78081442bfc.php:195
+#: cache/fb/fb12c90670ac105c9ea03fcc99876e87.php:108
+#: cache/fb/fb12c90670ac105c9ea03fcc99876e87.php:175
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1880
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1884
+#: cache/f3/f3286f195f132c53823b9bb1068e5cc9.php:137
+#: cache/f3/f3286f195f132c53823b9bb1068e5cc9.php:221
#: cache/8d/8de7dd9661211f3ba39933b564d76990.php:409
-#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:211
-#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:453
-#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:183
-#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:360
-#: cache/8b/8bc5b04498de39f4571d14d541bd6a91.php:194
-#: cache/b2/b21687508ff5b0bb637fdbd3f8c0d3c6.php:130
-#: cache/b2/b21687508ff5b0bb637fdbd3f8c0d3c6.php:212
+#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:217
+#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:457
+#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:188
+#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:363
+#: cache/8b/8bc5b04498de39f4571d14d541bd6a91.php:197
+#: cache/b2/b21687508ff5b0bb637fdbd3f8c0d3c6.php:135
+#: cache/b2/b21687508ff5b0bb637fdbd3f8c0d3c6.php:219
msgid "Owner"
msgstr ""
@@ -7179,18 +7242,18 @@ msgstr ""
#: cache/3d/3d2cccf3b2d4ef70fb5cca66b9b93574.php:195
#: cache/09/09fa06e4cbb20e5f65e2075bff1da423.php:249
#: cache/09/09fa06e4cbb20e5f65e2075bff1da423.php:522
-#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:624
+#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:620
#: cache/cb/cbba241d915c7e565fbb58c637b124a8.php:212
msgid "Logged In"
msgstr ""
#: cache/3d/3d2cccf3b2d4ef70fb5cca66b9b93574.php:199
#: cache/09/09fa06e4cbb20e5f65e2075bff1da423.php:534
-#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:636
+#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:632
#: cache/4c/4c51c53e92ed5731d0e8526118d29799.php:103
#: cache/cb/cbba241d915c7e565fbb58c637b124a8.php:216
-#: cache/cb/cb0f801b3d2ddd3d1f61f47414d32047.php:101
-#: cache/cb/cb0f801b3d2ddd3d1f61f47414d32047.php:138
+#: cache/cb/cb0f801b3d2ddd3d1f61f47414d32047.php:106
+#: cache/cb/cb0f801b3d2ddd3d1f61f47414d32047.php:143
msgid "Version"
msgstr ""
@@ -7208,12 +7271,12 @@ msgid "Region Options"
msgstr ""
#: cache/3d/3d43e8adbd5d771e55b4c097d061edee.php:72
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1106
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1196
msgid "Positioning"
msgstr ""
#: cache/3d/3d43e8adbd5d771e55b4c097d061edee.php:76
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1110
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1200
#: cache/4a/4a1316556dbf2c1f6276a15abb899508.php:189
msgid "Transition"
msgstr ""
@@ -7265,14 +7328,14 @@ msgstr ""
#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:256
#: cache/f6/f60761fa1e2b5ad016f9d13f094f9488.php:118
#: cache/65/651e2483d1426d8b1b7ce3fef030fb15.php:118
-#: cache/8c/8c08891d370939702e3d45696c9e38d6.php:142
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1118
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1407
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1547
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1774
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2663
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2752
-#: cache/4c/4c1de7ab59196b70ffa9f9da4d4e3b9c.php:419
+#: cache/8c/8c08891d370939702e3d45696c9e38d6.php:147
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1208
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1497
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1645
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1922
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2923
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3075
+#: cache/4c/4c1de7ab59196b70ffa9f9da4d4e3b9c.php:421
msgid "Height"
msgstr ""
@@ -7281,11 +7344,11 @@ msgid "Height of the Region"
msgstr ""
#: cache/3d/3d43e8adbd5d771e55b4c097d061edee.php:212
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1138
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1363
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1461
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1515
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2142
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1228
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1453
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1551
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1613
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2386
#: cache/0c/0cc104a3d7987780eed7a70657ece580.php:197
msgid "Layer"
msgstr ""
@@ -7304,6 +7367,7 @@ msgid "Exit Transition"
msgstr ""
#: cache/3d/3d43e8adbd5d771e55b4c097d061edee.php:247
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1609
msgid "What transition should be applied when this region is finished?"
msgstr ""
@@ -7329,8 +7393,8 @@ msgstr ""
#: cache/e7/e796ca1083ad3813266a62e6854798e8.php:91
#: cache/68/683636238aff529d5a7b7478118dede4.php:1115
#: cache/d5/d548e4848346b34fa2915d684010817b.php:245
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1589
-#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:896
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1687
+#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:910
#: cache/11/1140e2fe8d16f9c5bd7224da78abee20.php:91
msgid "Enable Stats Collection?"
msgstr ""
@@ -7340,7 +7404,7 @@ msgid "Enable the collection of Proof of Play statistics for this Media Item."
msgstr ""
#: cache/91/9185cbd1230ab9c1c9e7a57f5654d49b.php:103
-#: cache/c8/c82ad061a984295661821ddeb6ffb8c0.php:685
+#: cache/c8/c82ad061a984295661821ddeb6ffb8c0.php:697
#: cache/a0/a08e0b0d63f497e79ba45d275f7d8e2e.php:162
#: cache/e7/e796ca1083ad3813266a62e6854798e8.php:103
#: cache/3c/3c7bd12ad2faa21d9e80b1c4ee69d3b4.php:255
@@ -7353,21 +7417,21 @@ msgstr ""
#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:321
#: cache/8a/8acc5a2af63338673a6de3f58764bb95.php:290
#: cache/49/49b3c02c876e8a464a75e1682c064115.php:280
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1597
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1695
#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:348
-#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:502
-#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:516
-#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:585
+#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:532
+#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:546
+#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:615
#: cache/23/2360e54d15ebe919cd8f4305d3819359.php:291
#: cache/c5/c52b8109558dd3acc604e183177113c8.php:262
-#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:462
-#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:924
-#: lib/Controller/Layout.php:1250
+#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:474
+#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:933
+#: lib/Controller/Layout.php:1273
msgid "Off"
msgstr ""
#: cache/91/9185cbd1230ab9c1c9e7a57f5654d49b.php:108
-#: cache/c8/c82ad061a984295661821ddeb6ffb8c0.php:689
+#: cache/c8/c82ad061a984295661821ddeb6ffb8c0.php:701
#: cache/a0/a08e0b0d63f497e79ba45d275f7d8e2e.php:167
#: cache/e7/e796ca1083ad3813266a62e6854798e8.php:108
#: cache/68/683636238aff529d5a7b7478118dede4.php:1174
@@ -7376,29 +7440,29 @@ msgstr ""
#: cache/68/683636238aff529d5a7b7478118dede4.php:1986
#: cache/68/683636238aff529d5a7b7478118dede4.php:3508
#: cache/8a/8acc5a2af63338673a6de3f58764bb95.php:295
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1601
-#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:502
-#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:516
-#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:585
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1699
+#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:532
+#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:546
+#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:615
#: cache/23/2360e54d15ebe919cd8f4305d3819359.php:296
#: cache/c5/c52b8109558dd3acc604e183177113c8.php:267
-#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:928
-#: lib/Controller/Layout.php:1250
+#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:937
+#: lib/Controller/Layout.php:1273
msgid "On"
msgstr ""
#: cache/91/9185cbd1230ab9c1c9e7a57f5654d49b.php:113
-#: cache/c8/c82ad061a984295661821ddeb6ffb8c0.php:693
+#: cache/c8/c82ad061a984295661821ddeb6ffb8c0.php:705
#: cache/a0/a08e0b0d63f497e79ba45d275f7d8e2e.php:172
#: cache/e7/e796ca1083ad3813266a62e6854798e8.php:113
#: cache/68/683636238aff529d5a7b7478118dede4.php:1179
#: cache/68/683636238aff529d5a7b7478118dede4.php:1235
#: cache/68/683636238aff529d5a7b7478118dede4.php:1291
#: cache/8a/8acc5a2af63338673a6de3f58764bb95.php:300
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1605
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1703
#: cache/23/2360e54d15ebe919cd8f4305d3819359.php:301
#: cache/c5/c52b8109558dd3acc604e183177113c8.php:272
-#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:932
+#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:941
msgid "Inherit"
msgstr ""
@@ -7410,12 +7474,12 @@ msgstr ""
#: cache/91/91982ff1ff9899125ec30731f264a8f4.php:73
#: cache/e5/e5310108493cd13aa490732e70fdb013.php:60
#: cache/9e/9e2a80ecdd8879e59308a644c1f6721f.php:73
-#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:377
+#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:392
#: cache/73/73ac35c5bb699e096000941498cdfdc9.php:66
#: cache/4e/4ecfb080a1b970aaf8c60b2a16c13a4f.php:67
#: cache/67/671e1a0d15cf6622a031b0a7a49f5956.php:73
-#: cache/37/37f12704cf17017038d73d9ee1907d04.php:344
-#: cache/53/53221a3cb3187e41cde32cfa796d45a7.php:491
+#: cache/37/37f12704cf17017038d73d9ee1907d04.php:372
+#: cache/53/53221a3cb3187e41cde32cfa796d45a7.php:511
msgid "Close"
msgstr ""
@@ -7426,13 +7490,13 @@ msgstr ""
#: cache/a4/a4b5f52b1992bb349e8a30b19ff24645.php:102
#: cache/66/661d79c5da6d14a0db85cd0980868ff7.php:280
#: cache/9e/9e2a80ecdd8879e59308a644c1f6721f.php:99
-#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:143
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:802
+#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:148
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:872
#: cache/0b/0bf1ec6ab33ef0ba5938df774146f8dc.php:105
-#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:264
-#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:1368
+#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:269
+#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:1333
#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:55
-#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:101
+#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:107
msgid "Layouts"
msgstr ""
@@ -7446,11 +7510,11 @@ msgstr ""
#: cache/a5/a536aec6145b5d387ad9111f4d568074.php:88
#: cache/04/04b11bf7b7a8190d66899471a8930ffd.php:193
#: cache/9e/9e2a80ecdd8879e59308a644c1f6721f.php:135
-#: cache/0e/0ed8020e97c517a55ad881cfc5dd0b4c.php:105
-#: cache/05/05600263dc8230138bb0f89338bbef69.php:79
-#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:198
-#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:1429
-#: cache/60/6096ddd2496c1f25a148669f286abbeb.php:196
+#: cache/0e/0ed8020e97c517a55ad881cfc5dd0b4c.php:103
+#: cache/05/05600263dc8230138bb0f89338bbef69.php:127
+#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:203
+#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:1394
+#: cache/60/6096ddd2496c1f25a148669f286abbeb.php:388
#: cache/f2/f2c4f8da776f3da2da0354bcdf5050cd.php:96
msgid "From Date"
msgstr ""
@@ -7458,10 +7522,10 @@ msgstr ""
#: cache/91/91982ff1ff9899125ec30731f264a8f4.php:136
#: cache/a5/a536aec6145b5d387ad9111f4d568074.php:98
#: cache/9e/9e2a80ecdd8879e59308a644c1f6721f.php:145
-#: cache/0e/0ed8020e97c517a55ad881cfc5dd0b4c.php:115
-#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:208
-#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:1433
-#: cache/60/6096ddd2496c1f25a148669f286abbeb.php:206
+#: cache/0e/0ed8020e97c517a55ad881cfc5dd0b4c.php:113
+#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:213
+#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:1398
+#: cache/60/6096ddd2496c1f25a148669f286abbeb.php:398
#: cache/f2/f2c4f8da776f3da2da0354bcdf5050cd.php:106
msgid "To Date"
msgstr ""
@@ -7471,9 +7535,9 @@ msgid "Edit Event"
msgstr ""
#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:102
-#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:567
+#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:614
#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:105
-#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:621
+#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:671
#: cache/38/38e5186bcfa9917c4ec02d8c626e2552.php:96
#: cache/38/38e5186bcfa9917c4ec02d8c626e2552.php:351
#: cache/0e/0e02100c0f3615b819bb09d3e2a17b8a.php:96
@@ -7492,14 +7556,14 @@ msgstr ""
#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:113
#: cache/38/38e5186bcfa9917c4ec02d8c626e2552.php:104
#: cache/0e/0e02100c0f3615b819bb09d3e2a17b8a.php:104
-#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:782
+#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:747
msgid "Geo Location"
msgstr ""
-#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:116
-#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:274
-#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:119
-#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:358
+#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:120
+#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:278
+#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:123
+#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:366
#: cache/38/38e5186bcfa9917c4ec02d8c626e2552.php:110
#: cache/38/38e5186bcfa9917c4ec02d8c626e2552.php:263
#: cache/0e/0e02100c0f3615b819bb09d3e2a17b8a.php:110
@@ -7507,51 +7571,51 @@ msgstr ""
msgid "Select the start time for this event"
msgstr ""
-#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:142
+#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:146
#: cache/0e/0e02100c0f3615b819bb09d3e2a17b8a.php:153
msgid "Duplicate form loaded, make adjustments and press save."
msgstr ""
-#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:170
-#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:164
+#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:174
+#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:172
#: cache/38/38e5186bcfa9917c4ec02d8c626e2552.php:148
#: cache/0e/0e02100c0f3615b819bb09d3e2a17b8a.php:171
msgid "Optional Name for this Event (1-50 characters)"
msgstr ""
-#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:180
-#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:183
-#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:228
-#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:512
+#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:184
+#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:191
+#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:233
+#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:473
msgid "Event Type"
msgstr ""
-#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:185
-#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:188
+#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:189
+#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:196
msgid "Select the type of event to schedule"
msgstr ""
-#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:200
-#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:207
+#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:204
+#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:215
#: cache/fe/fe92f223f863fb1896ced5bd33b8c256.php:173
msgid ""
"Please select one or more displays / groups for this event to be shown on."
msgstr ""
-#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:213
+#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:217
#: cache/e7/e797c362bd1affbbe5c271346b5e38b5.php:55
-#: cache/e7/e797c362bd1affbbe5c271346b5e38b5.php:87
-#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:220
+#: cache/e7/e797c362bd1affbbe5c271346b5e38b5.php:92
+#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:228
#: cache/9f/9f9a142004ca4a1c914a4395fe586017.php:92
#: cache/a4/a4b5f52b1992bb349e8a30b19ff24645.php:66
#: cache/38/38e5186bcfa9917c4ec02d8c626e2552.php:202
#: cache/0e/0e02100c0f3615b819bb09d3e2a17b8a.php:226
-#: cache/fe/fe92f223f863fb1896ced5bd33b8c256.php:653
+#: cache/fe/fe92f223f863fb1896ced5bd33b8c256.php:658
msgid "Dayparting"
msgstr ""
-#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:218
-#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:225
+#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:222
+#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:233
#: cache/38/38e5186bcfa9917c4ec02d8c626e2552.php:207
#: cache/0e/0e02100c0f3615b819bb09d3e2a17b8a.php:231
msgid ""
@@ -7559,12 +7623,12 @@ msgid ""
"select custom and to have the event run constantly select Always."
msgstr ""
-#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:269
-#: cache/e7/e797c362bd1affbbe5c271346b5e38b5.php:123
-#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:353
+#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:273
+#: cache/e7/e797c362bd1affbbe5c271346b5e38b5.php:128
+#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:361
#: cache/7d/7d93daaf181fe08e96e60d7e241a1d1c.php:99
-#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:633
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2400
+#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:647
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2660
#: cache/38/38e5186bcfa9917c4ec02d8c626e2552.php:258
#: cache/51/5183626e7e19083fdf9708e7d778f66f.php:150
#: cache/0e/0e02100c0f3615b819bb09d3e2a17b8a.php:282
@@ -7574,12 +7638,12 @@ msgstr ""
msgid "Start Time"
msgstr ""
-#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:284
-#: cache/e7/e797c362bd1affbbe5c271346b5e38b5.php:127
-#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:368
+#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:288
+#: cache/e7/e797c362bd1affbbe5c271346b5e38b5.php:132
+#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:376
#: cache/7d/7d93daaf181fe08e96e60d7e241a1d1c.php:114
-#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:648
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2404
+#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:662
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2664
#: cache/38/38e5186bcfa9917c4ec02d8c626e2552.php:273
#: cache/51/5183626e7e19083fdf9708e7d778f66f.php:165
#: cache/0e/0e02100c0f3615b819bb09d3e2a17b8a.php:297
@@ -7589,148 +7653,164 @@ msgstr ""
msgid "End Time"
msgstr ""
-#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:289
-#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:373
+#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:293
+#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:381
#: cache/38/38e5186bcfa9917c4ec02d8c626e2552.php:278
#: cache/0e/0e02100c0f3615b819bb09d3e2a17b8a.php:302
msgid "Select the end time for this event"
msgstr ""
-#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:299
-#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:310
-#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:383
-#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:394
+#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:303
+#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:314
+#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:391
+#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:402
msgid "Please select a Layout for this Event to show"
msgstr ""
-#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:299
-#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:383
+#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:303
+#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:391
#: cache/26/26e331d824f29de3b77e8888f0d29b15.php:93
-#: cache/60/6096ddd2496c1f25a148669f286abbeb.php:255
-#: lib/Entity/Schedule.php:1972
+#: cache/60/6096ddd2496c1f25a148669f286abbeb.php:506
+#: cache/60/6096ddd2496c1f25a148669f286abbeb.php:577
+#: lib/Entity/Schedule.php:2086
msgid "Campaign"
msgstr ""
-#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:299
-#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:383
+#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:303
+#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:391
msgid "Please select a Campaign for this Event to show"
msgstr ""
-#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:325
+#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:329
#: cache/3c/3cafc6063c2a786736bea5bbf9d4cb6f.php:159
-#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:409
+#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:417
msgid ""
"Select a Media file from the Library to use. The selected file will be shown "
"full screen for this event."
msgstr ""
-#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:340
+#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:344
#: cache/3c/3cafc6063c2a786736bea5bbf9d4cb6f.php:185
-#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:424
+#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:432
msgid ""
"Select a Playlist to use. The selected playlist will be shown full screen "
"for this event."
msgstr ""
-#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:358
-#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:441
+#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:368
+#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:455
msgid "Preview"
msgstr ""
-#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:362
-#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:445
+#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:372
+#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:459
msgid "Preview your selection in a new tab"
msgstr ""
-#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:370
-#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:453
+#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:381
+#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:468
#: cache/26/26b74efc874b3a8a5a7cf3ed2a22c6ba.php:332
-#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:1445
+#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:1410
msgid "Share of Voice"
msgstr ""
-#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:379
-#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:459
+#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:390
+#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:474
msgid "The amount of time this Layout should be shown, in seconds per hour."
msgstr ""
-#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:387
-#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:467
+#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:398
+#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:482
#: cache/26/26b74efc874b3a8a5a7cf3ed2a22c6ba.php:366
msgid "As a percentage"
msgstr ""
-#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:395
-#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:475
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2781
+#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:406
+#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:490
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3104
msgid "Action Type"
msgstr ""
-#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:400
-#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:480
+#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:411
+#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:495
msgid "Please select action Type"
msgstr ""
-#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:405
-#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:485
-#: cache/77/774dde73b0eb7965a680b8a52776fa6b.php:234
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1309
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1925
+#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:416
+#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:500
+#: cache/77/774dde73b0eb7965a680b8a52776fa6b.php:241
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1399
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2093
msgid "Navigate to Layout"
msgstr ""
-#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:410
-#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:461
-#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:490
-#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:540
+#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:421
+#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:472
+#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:505
+#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:555
#: cache/ae/ae925f8de1afddaa54d77aba65ebb00b.php:88
-#: cache/df/dfa8c9877043c738d127ce9a84cd99fa.php:100
#: cache/23/23114ff234f79ee13968407a57f6252d.php:133
-#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:772
-#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:554
-#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:1255
+#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:737
+#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:566
+#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:1270
#: cache/d3/d3aa1431a8c1ca36890facca4eb9503f.php:135
#: cache/10/1090c5665a57f49e6b968318ca49de82.php:113
-#: lib/Entity/Schedule.php:1969
+#: lib/Entity/Schedule.php:2083 lib/Entity/DisplayEvent.php:221
msgid "Command"
msgstr ""
-#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:425
-#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:505
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1333
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2777
+#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:436
+#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:520
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1423
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3100
#: cache/fa/fa66e594804204b7397616a42725bee8.php:87
-#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:1227
+#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:1242
msgid "Trigger Code"
msgstr ""
-#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:430
-#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:510
+#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:441
+#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:525
msgid "Web hook trigger code for this Action"
msgstr ""
-#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:440
-#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:520
-#: cache/77/774dde73b0eb7965a680b8a52776fa6b.php:242
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1349
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2797
+#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:451
+#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:535
+#: cache/77/774dde73b0eb7965a680b8a52776fa6b.php:249
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1439
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3120
msgid "Layout Code"
msgstr ""
-#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:445
-#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:525
+#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:456
+#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:540
msgid ""
"Please select the Code identifier for the Layout that Player should navigate "
"to when this Action is triggered."
msgstr ""
-#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:466
-#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:545
+#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:477
+#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:560
msgid "Please select a command for this Event."
msgstr ""
-#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:485
-#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:563
+#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:496
+#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:578
+msgid ""
+"Please select the real time DataSet related to this Data Connector event"
+msgstr ""
+
+#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:512
+#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:593
+msgid "Data Connector Parameters"
+msgstr ""
+
+#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:517
+#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:598
+msgid "Optionally provide any parameters to be used by the Data Connector."
+msgstr ""
+
+#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:532
+#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:613
#: cache/38/38e5186bcfa9917c4ec02d8c626e2552.php:293
#: cache/0e/0e02100c0f3615b819bb09d3e2a17b8a.php:317
msgid ""
@@ -7738,19 +7818,19 @@ msgid ""
"there is more than one event scheduled"
msgstr ""
-#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:495
-#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:573
-#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:498
+#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:542
+#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:623
+#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:512
#: cache/38/38e5186bcfa9917c4ec02d8c626e2552.php:303
#: cache/0e/0e02100c0f3615b819bb09d3e2a17b8a.php:327
#: cache/79/7925e7fdcb44e9a96c9b2b2e4814991e.php:190
-#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:757
-#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:1457
+#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:722
+#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:1422
msgid "Priority"
msgstr ""
-#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:500
-#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:578
+#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:547
+#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:628
#: cache/38/38e5186bcfa9917c4ec02d8c626e2552.php:308
#: cache/0e/0e02100c0f3615b819bb09d3e2a17b8a.php:332
msgid ""
@@ -7758,15 +7838,15 @@ msgid ""
"preference to lower priority events."
msgstr ""
-#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:510
-#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:588
+#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:557
+#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:638
#: cache/38/38e5186bcfa9917c4ec02d8c626e2552.php:318
#: cache/0e/0e02100c0f3615b819bb09d3e2a17b8a.php:342
msgid "Maximum plays per hour"
msgstr ""
-#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:515
-#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:593
+#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:562
+#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:643
#: cache/38/38e5186bcfa9917c4ec02d8c626e2552.php:323
#: cache/0e/0e02100c0f3615b819bb09d3e2a17b8a.php:347
msgid ""
@@ -7774,15 +7854,15 @@ msgid ""
"unlimited plays set to 0."
msgstr ""
-#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:526
-#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:604
+#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:573
+#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:654
#: cache/38/38e5186bcfa9917c4ec02d8c626e2552.php:334
#: cache/0e/0e02100c0f3615b819bb09d3e2a17b8a.php:358
msgid "Run at CMS Time?"
msgstr ""
-#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:531
-#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:609
+#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:578
+#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:659
#: cache/38/38e5186bcfa9917c4ec02d8c626e2552.php:339
#: cache/0e/0e02100c0f3615b819bb09d3e2a17b8a.php:363
msgid ""
@@ -7790,7 +7870,7 @@ msgid ""
"otherwise the event will run at Display local time"
msgstr ""
-#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:550
+#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:597
#: cache/0e/0e02100c0f3615b819bb09d3e2a17b8a.php:382
msgid ""
"Editing the Start and or End date/time will create a new Recurring Event "
@@ -7798,29 +7878,29 @@ msgid ""
"recreated with edits made here."
msgstr ""
-#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:572
-#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:626
+#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:619
+#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:676
#: cache/38/38e5186bcfa9917c4ec02d8c626e2552.php:356
#: cache/0e/0e02100c0f3615b819bb09d3e2a17b8a.php:403
msgid "Select the type of Repeat required for this Event."
msgstr ""
-#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:582
-#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:636
+#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:629
+#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:686
#: cache/38/38e5186bcfa9917c4ec02d8c626e2552.php:366
#: cache/0e/0e02100c0f3615b819bb09d3e2a17b8a.php:413
msgid "Per Minute"
msgstr ""
-#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:587
-#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:628
-#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:701
+#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:634
+#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:695
+#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:768
#: cache/3c/3c7bd12ad2faa21d9e80b1c4ee69d3b4.php:139
#: cache/68/683636238aff529d5a7b7478118dede4.php:1076
-#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:641
+#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:691
#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:139
-#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:598
-#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:671
+#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:636
+#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:709
#: cache/49/49b3c02c876e8a464a75e1682c064115.php:150
#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:161
#: cache/38/38e5186bcfa9917c4ec02d8c626e2552.php:371
@@ -7828,15 +7908,15 @@ msgstr ""
msgid "Hourly"
msgstr ""
-#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:592
-#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:633
-#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:706
+#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:639
+#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:700
+#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:773
#: cache/3c/3c7bd12ad2faa21d9e80b1c4ee69d3b4.php:139
#: cache/68/683636238aff529d5a7b7478118dede4.php:1081
-#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:646
+#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:696
#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:139
-#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:603
-#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:676
+#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:641
+#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:714
#: cache/49/49b3c02c876e8a464a75e1682c064115.php:150
#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:161
#: cache/38/38e5186bcfa9917c4ec02d8c626e2552.php:376
@@ -7844,187 +7924,187 @@ msgstr ""
msgid "Daily"
msgstr ""
-#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:597
-#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:638
-#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:711
-#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:651
-#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:608
-#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:681
+#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:644
+#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:705
+#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:778
+#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:701
+#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:646
+#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:719
#: cache/38/38e5186bcfa9917c4ec02d8c626e2552.php:381
#: cache/0e/0e02100c0f3615b819bb09d3e2a17b8a.php:428
msgid "Weekly"
msgstr ""
-#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:602
-#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:648
-#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:721
-#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:656
-#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:618
-#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:691
+#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:649
+#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:715
+#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:788
+#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:706
+#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:656
+#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:729
#: cache/38/38e5186bcfa9917c4ec02d8c626e2552.php:386
#: cache/0e/0e02100c0f3615b819bb09d3e2a17b8a.php:433
msgid "Monthly"
msgstr ""
-#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:607
-#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:658
-#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:731
-#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:661
-#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:628
-#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:701
+#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:654
+#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:725
+#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:798
+#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:711
+#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:666
+#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:739
#: cache/38/38e5186bcfa9917c4ec02d8c626e2552.php:391
#: cache/0e/0e02100c0f3615b819bb09d3e2a17b8a.php:438
msgid "Yearly"
msgstr ""
-#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:627
+#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:674
msgid ""
"Use the drop-down to select which days of the week this Event should be "
"repeated"
msgstr ""
-#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:632
-#: cache/e7/e797c362bd1affbbe5c271346b5e38b5.php:196
-#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:686
-#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:45
-#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:624
-#: cache/49/49b3c02c876e8a464a75e1682c064115.php:459
+#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:679
+#: cache/e7/e797c362bd1affbbe5c271346b5e38b5.php:207
+#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:736
+#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:47
+#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:638
+#: cache/49/49b3c02c876e8a464a75e1682c064115.php:489
#: cache/38/38e5186bcfa9917c4ec02d8c626e2552.php:416
#: cache/0e/0e02100c0f3615b819bb09d3e2a17b8a.php:463
-#: cache/fe/fe92f223f863fb1896ced5bd33b8c256.php:564
-#: cache/fe/fe92f223f863fb1896ced5bd33b8c256.php:640
-#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:2080
+#: cache/fe/fe92f223f863fb1896ced5bd33b8c256.php:569
+#: cache/fe/fe92f223f863fb1896ced5bd33b8c256.php:645
+#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:2047
msgid "Monday"
msgstr ""
-#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:637
-#: cache/e7/e797c362bd1affbbe5c271346b5e38b5.php:200
-#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:691
-#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:49
-#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:624
-#: cache/49/49b3c02c876e8a464a75e1682c064115.php:464
+#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:684
+#: cache/e7/e797c362bd1affbbe5c271346b5e38b5.php:211
+#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:741
+#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:51
+#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:638
+#: cache/49/49b3c02c876e8a464a75e1682c064115.php:494
#: cache/38/38e5186bcfa9917c4ec02d8c626e2552.php:421
#: cache/0e/0e02100c0f3615b819bb09d3e2a17b8a.php:468
-#: cache/fe/fe92f223f863fb1896ced5bd33b8c256.php:568
-#: cache/fe/fe92f223f863fb1896ced5bd33b8c256.php:640
-#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:2084
+#: cache/fe/fe92f223f863fb1896ced5bd33b8c256.php:573
+#: cache/fe/fe92f223f863fb1896ced5bd33b8c256.php:645
+#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:2051
msgid "Tuesday"
msgstr ""
-#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:642
-#: cache/e7/e797c362bd1affbbe5c271346b5e38b5.php:204
-#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:696
-#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:53
-#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:624
-#: cache/49/49b3c02c876e8a464a75e1682c064115.php:469
+#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:689
+#: cache/e7/e797c362bd1affbbe5c271346b5e38b5.php:215
+#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:746
+#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:55
+#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:638
+#: cache/49/49b3c02c876e8a464a75e1682c064115.php:499
#: cache/38/38e5186bcfa9917c4ec02d8c626e2552.php:426
#: cache/0e/0e02100c0f3615b819bb09d3e2a17b8a.php:473
-#: cache/fe/fe92f223f863fb1896ced5bd33b8c256.php:572
-#: cache/fe/fe92f223f863fb1896ced5bd33b8c256.php:640
-#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:2088
+#: cache/fe/fe92f223f863fb1896ced5bd33b8c256.php:577
+#: cache/fe/fe92f223f863fb1896ced5bd33b8c256.php:645
+#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:2055
msgid "Wednesday"
msgstr ""
-#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:647
-#: cache/e7/e797c362bd1affbbe5c271346b5e38b5.php:208
-#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:701
-#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:57
-#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:624
-#: cache/49/49b3c02c876e8a464a75e1682c064115.php:474
+#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:694
+#: cache/e7/e797c362bd1affbbe5c271346b5e38b5.php:219
+#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:751
+#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:59
+#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:638
+#: cache/49/49b3c02c876e8a464a75e1682c064115.php:504
#: cache/38/38e5186bcfa9917c4ec02d8c626e2552.php:431
#: cache/0e/0e02100c0f3615b819bb09d3e2a17b8a.php:478
-#: cache/fe/fe92f223f863fb1896ced5bd33b8c256.php:576
-#: cache/fe/fe92f223f863fb1896ced5bd33b8c256.php:640
-#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:2092
+#: cache/fe/fe92f223f863fb1896ced5bd33b8c256.php:581
+#: cache/fe/fe92f223f863fb1896ced5bd33b8c256.php:645
+#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:2059
msgid "Thursday"
msgstr ""
-#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:652
-#: cache/e7/e797c362bd1affbbe5c271346b5e38b5.php:212
-#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:706
-#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:61
-#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:624
-#: cache/49/49b3c02c876e8a464a75e1682c064115.php:479
+#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:699
+#: cache/e7/e797c362bd1affbbe5c271346b5e38b5.php:223
+#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:756
+#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:63
+#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:638
+#: cache/49/49b3c02c876e8a464a75e1682c064115.php:509
#: cache/38/38e5186bcfa9917c4ec02d8c626e2552.php:436
#: cache/0e/0e02100c0f3615b819bb09d3e2a17b8a.php:483
-#: cache/fe/fe92f223f863fb1896ced5bd33b8c256.php:580
-#: cache/fe/fe92f223f863fb1896ced5bd33b8c256.php:640
-#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:2096
+#: cache/fe/fe92f223f863fb1896ced5bd33b8c256.php:585
+#: cache/fe/fe92f223f863fb1896ced5bd33b8c256.php:645
+#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:2063
msgid "Friday"
msgstr ""
-#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:657
-#: cache/e7/e797c362bd1affbbe5c271346b5e38b5.php:216
-#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:711
-#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:65
-#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:624
-#: cache/49/49b3c02c876e8a464a75e1682c064115.php:484
+#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:704
+#: cache/e7/e797c362bd1affbbe5c271346b5e38b5.php:227
+#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:761
+#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:67
+#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:638
+#: cache/49/49b3c02c876e8a464a75e1682c064115.php:514
#: cache/38/38e5186bcfa9917c4ec02d8c626e2552.php:441
#: cache/0e/0e02100c0f3615b819bb09d3e2a17b8a.php:488
-#: cache/fe/fe92f223f863fb1896ced5bd33b8c256.php:584
-#: cache/fe/fe92f223f863fb1896ced5bd33b8c256.php:640
-#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:2100
+#: cache/fe/fe92f223f863fb1896ced5bd33b8c256.php:589
+#: cache/fe/fe92f223f863fb1896ced5bd33b8c256.php:645
+#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:2067
msgid "Saturday"
msgstr ""
-#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:662
-#: cache/e7/e797c362bd1affbbe5c271346b5e38b5.php:220
-#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:716
-#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:69
-#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:624
-#: cache/49/49b3c02c876e8a464a75e1682c064115.php:489
+#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:709
+#: cache/e7/e797c362bd1affbbe5c271346b5e38b5.php:231
+#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:766
+#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:71
+#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:638
+#: cache/49/49b3c02c876e8a464a75e1682c064115.php:519
#: cache/38/38e5186bcfa9917c4ec02d8c626e2552.php:446
#: cache/0e/0e02100c0f3615b819bb09d3e2a17b8a.php:493
-#: cache/fe/fe92f223f863fb1896ced5bd33b8c256.php:588
-#: cache/fe/fe92f223f863fb1896ced5bd33b8c256.php:640
-#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:2104
+#: cache/fe/fe92f223f863fb1896ced5bd33b8c256.php:593
+#: cache/fe/fe92f223f863fb1896ced5bd33b8c256.php:645
+#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:2071
msgid "Sunday"
msgstr ""
-#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:682
+#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:729
msgid ""
"Should this Event Repeat by Day of the month (eg. Monthly on Day 21) or by a "
"Weekday in the month (eg. Monthly on the third Thursday)"
msgstr ""
-#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:687
-#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:740
+#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:734
+#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:790
#: cache/38/38e5186bcfa9917c4ec02d8c626e2552.php:470
#: cache/0e/0e02100c0f3615b819bb09d3e2a17b8a.php:517
msgid "on the [DAY] day"
msgstr ""
-#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:687
-#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:740
+#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:734
+#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:790
#: cache/38/38e5186bcfa9917c4ec02d8c626e2552.php:470
#: cache/0e/0e02100c0f3615b819bb09d3e2a17b8a.php:517
msgid "on the [POSITION] [WEEKDAY]"
msgstr ""
-#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:696
-#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:749
+#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:743
+#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:799
#: cache/38/38e5186bcfa9917c4ec02d8c626e2552.php:479
#: cache/0e/0e02100c0f3615b819bb09d3e2a17b8a.php:526
msgid "Every"
msgstr ""
-#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:701
-#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:754
+#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:748
+#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:804
#: cache/38/38e5186bcfa9917c4ec02d8c626e2552.php:484
#: cache/0e/0e02100c0f3615b819bb09d3e2a17b8a.php:531
msgid ""
"Include a number to determine the Repeat frequency required for this Event."
msgstr ""
-#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:729
-#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:782
+#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:776
+#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:832
#: cache/38/38e5186bcfa9917c4ec02d8c626e2552.php:512
#: cache/0e/0e02100c0f3615b819bb09d3e2a17b8a.php:559
msgid "Until"
msgstr ""
-#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:734
-#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:787
+#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:781
+#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:837
#: cache/38/38e5186bcfa9917c4ec02d8c626e2552.php:517
#: cache/0e/0e02100c0f3615b819bb09d3e2a17b8a.php:564
msgid ""
@@ -8032,8 +8112,8 @@ msgid ""
"Repeat indefinitely."
msgstr ""
-#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:746
-#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:799
+#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:793
+#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:849
#: cache/38/38e5186bcfa9917c4ec02d8c626e2552.php:528
#: cache/0e/0e02100c0f3615b819bb09d3e2a17b8a.php:576
msgid ""
@@ -8043,15 +8123,15 @@ msgid ""
"shown in the message center."
msgstr ""
-#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:762
-#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:815
+#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:809
+#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:865
#: cache/38/38e5186bcfa9917c4ec02d8c626e2552.php:544
#: cache/0e/0e02100c0f3615b819bb09d3e2a17b8a.php:592
msgid "Geo Schedule?"
msgstr ""
-#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:767
-#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:820
+#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:814
+#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:870
#: cache/38/38e5186bcfa9917c4ec02d8c626e2552.php:549
#: cache/0e/0e02100c0f3615b819bb09d3e2a17b8a.php:597
msgid ""
@@ -8059,6 +8139,26 @@ msgid ""
"by drawing a polygon or rectangle layer on the map below."
msgstr ""
+#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:833
+#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:889
+msgid ""
+"Set criteria to determine when this event is active. All conditions must be "
+"true for an event to be included in the schedule loop. Events without "
+"criteria are always active."
+msgstr ""
+
+#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:848
+#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:904
+#: cache/66/664c6c931a53dbf67110ec2cb80223cf.php:239
+msgid "Metric"
+msgstr ""
+
+#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:852
+#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:908
+#: cache/bf/bfa04d76ea96a772caeedcfdf9d70e40.php:670
+msgid "Condition"
+msgstr ""
+
#: cache/c8/c8b99142441b986f998bf81808403c07.php:58
#: cache/23/238f0b98d7f96aca9a850e8b230fe1fb.php:75
msgid "Add Display Group"
@@ -8070,6 +8170,7 @@ msgstr ""
#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:125
#: cache/b1/b1c2db71469950cfdd34c323d05aa155.php:94
#: cache/5e/5ec96adf0346509994d4c975eac80689.php:97
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1896
#: cache/23/2360e54d15ebe919cd8f4305d3819359.php:161
#: cache/63/63a123f42a16165e90cd9f604b2de4bd.php:117
#: cache/42/429bc3b90e0dd835a4548e949ce40ad6.php:92
@@ -8084,11 +8185,12 @@ msgid "Add reference fields if needed"
msgstr ""
#: cache/c8/c82ad061a984295661821ddeb6ffb8c0.php:55
-#: cache/c8/c82ad061a984295661821ddeb6ffb8c0.php:87
+#: cache/c8/c82ad061a984295661821ddeb6ffb8c0.php:92
#: cache/9f/9f9a142004ca4a1c914a4395fe586017.php:239
#: cache/a4/a4b5f52b1992bb349e8a30b19ff24645.php:154
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:814
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2524
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:884
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2044
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2784
msgid "Playlists"
msgstr ""
@@ -8097,204 +8199,244 @@ msgstr ""
msgid "Add Playlist"
msgstr ""
-#: cache/c8/c82ad061a984295661821ddeb6ffb8c0.php:103
+#: cache/c8/c82ad061a984295661821ddeb6ffb8c0.php:78
+#: cache/52/522b66fbe5b8efaad37d81db81288730.php:67
+#: cache/e7/e797c362bd1affbbe5c271346b5e38b5.php:78
+#: cache/14/14220f2427744b387c8a9518e0bf00d2.php:95
+#: cache/e5/e5e5434fb79a5ac6a7fd60b41343e917.php:70
+#: cache/2d/2d67b2aac34d9a8cd68e4dad8db97260.php:82
+#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:80
+#: cache/04/04b4b8b9bb93bf0580422332c142abff.php:92
+#: cache/88/88e10283780c820d9196a2e88b3b8e39.php:85
+#: cache/41/411fdd8ac98835cf7ed952b29cda0628.php:76
+#: cache/ae/ae039a69e1615431d4752f5fb2b147d3.php:77
+#: cache/df/dfa8c9877043c738d127ce9a84cd99fa.php:78
+#: cache/d2/d2fa8bed4d1e30769527c78081442bfc.php:81
+#: cache/4f/4f86b68b499f4cd831a26849e7ca7d16.php:75
+#: cache/fb/fb7b914f174fce1e94ee3971e92a92dd.php:80
+#: cache/fb/fb12c90670ac105c9ea03fcc99876e87.php:70
+#: cache/82/823c47cd9e81aebabd5478c5693b1131.php:67
+#: cache/97/97f2c018825ccdd326aad4a0b160725e.php:85
+#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:80
+#: cache/8c/8c08891d370939702e3d45696c9e38d6.php:80
+#: cache/e3/e3e074211e42eadb55ae8cb6ceeaa722.php:75
+#: cache/23/238f0b98d7f96aca9a850e8b230fe1fb.php:81
+#: cache/0e/0ed8020e97c517a55ad881cfc5dd0b4c.php:75
+#: cache/05/05600263dc8230138bb0f89338bbef69.php:100
+#: cache/f3/f3286f195f132c53823b9bb1068e5cc9.php:80
+#: cache/c5/c5ca1344d07a74a91c5de3a21d4c2de4.php:78
+#: cache/f0/f03a3c9d913ba87fcd4d1925058f2671.php:78
+#: cache/08/08aee2625ba2279e6a2c6465471b11e8.php:78
+#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:103
+#: cache/53/53221a3cb3187e41cde32cfa796d45a7.php:95
+#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:93
+#: cache/cb/cb0f801b3d2ddd3d1f61f47414d32047.php:69
+#: cache/10/10329fe20a57f63b38843c6701587e70.php:80
+#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:105
+#: cache/8b/8bc5b04498de39f4571d14d541bd6a91.php:80
+#: cache/b2/b21687508ff5b0bb637fdbd3f8c0d3c6.php:83
+msgid "Refresh the Table"
+msgstr ""
+
+#: cache/c8/c82ad061a984295661821ddeb6ffb8c0.php:108
#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:108
#: cache/3c/3c7bd12ad2faa21d9e80b1c4ee69d3b4.php:71
#: cache/9f/9f9a142004ca4a1c914a4395fe586017.php:883
#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:71
-#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:112
+#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:110
#: cache/04/04b11bf7b7a8190d66899471a8930ffd.php:109
#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:108
#: cache/a4/a4b5f52b1992bb349e8a30b19ff24645.php:517
#: cache/49/49b3c02c876e8a464a75e1682c064115.php:71
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1098
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1188
#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:71
#: cache/8d/8de7dd9661211f3ba39933b564d76990.php:96
-#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:117
+#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:123
#: cache/70/70af2bbd82243291558c9b83caec5b48.php:128
msgid "Advanced"
msgstr ""
-#: cache/c8/c82ad061a984295661821ddeb6ffb8c0.php:141
-#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:265
-#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:130
-#: cache/23/238f0b98d7f96aca9a850e8b230fe1fb.php:190
+#: cache/c8/c82ad061a984295661821ddeb6ffb8c0.php:146
+#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:263
+#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:135
+#: cache/23/238f0b98d7f96aca9a850e8b230fe1fb.php:189
#: cache/0b/0bf1ec6ab33ef0ba5938df774146f8dc.php:388
-#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:164
-#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:165
-#: cache/8b/8bc5b04498de39f4571d14d541bd6a91.php:130
+#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:170
+#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:170
+#: cache/8b/8bc5b04498de39f4571d14d541bd6a91.php:135
msgid ""
"A comma separated list of tags to filter by. Enter a tag|tag value to filter "
"tags with values. Enter --no-tag to filter all items without tags. Enter - "
"before a tag or tag value to exclude from results."
msgstr ""
-#: cache/c8/c82ad061a984295661821ddeb6ffb8c0.php:164
-#: cache/e5/e5e5434fb79a5ac6a7fd60b41343e917.php:124
-#: cache/fb/fb12c90670ac105c9ea03fcc99876e87.php:109
-#: cache/f3/f3286f195f132c53823b9bb1068e5cc9.php:137
-#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:216
-#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:188
-#: cache/b2/b21687508ff5b0bb637fdbd3f8c0d3c6.php:135
+#: cache/c8/c82ad061a984295661821ddeb6ffb8c0.php:169
+#: cache/e5/e5e5434fb79a5ac6a7fd60b41343e917.php:128
+#: cache/fb/fb12c90670ac105c9ea03fcc99876e87.php:113
+#: cache/f3/f3286f195f132c53823b9bb1068e5cc9.php:142
+#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:222
+#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:193
+#: cache/b2/b21687508ff5b0bb637fdbd3f8c0d3c6.php:140
msgid "Show items owned by the selected User."
msgstr ""
-#: cache/c8/c82ad061a984295661821ddeb6ffb8c0.php:177
-#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:229
-#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:201
+#: cache/c8/c82ad061a984295661821ddeb6ffb8c0.php:182
+#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:235
+#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:206
msgid "Owner User Group"
msgstr ""
-#: cache/c8/c82ad061a984295661821ddeb6ffb8c0.php:182
-#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:234
-#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:206
+#: cache/c8/c82ad061a984295661821ddeb6ffb8c0.php:187
+#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:240
+#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:211
msgid "Show items owned by users in the selected User Group."
msgstr ""
-#: cache/c8/c82ad061a984295661821ddeb6ffb8c0.php:200
+#: cache/c8/c82ad061a984295661821ddeb6ffb8c0.php:205
#: cache/66/661d79c5da6d14a0db85cd0980868ff7.php:178
-#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:161
-#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:355
-#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:477
-#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:247
+#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:166
+#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:361
+#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:481
+#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:252
msgid "Layout ID"
msgstr ""
-#: cache/c8/c82ad061a984295661821ddeb6ffb8c0.php:212
+#: cache/c8/c82ad061a984295661821ddeb6ffb8c0.php:217
#: cache/37/377ff96eb23f94563370a45d1c41993f.php:232
-#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:295
+#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:301
msgid "Show"
msgstr ""
-#: cache/c8/c82ad061a984295661821ddeb6ffb8c0.php:248
+#: cache/c8/c82ad061a984295661821ddeb6ffb8c0.php:252
#: cache/12/128a25d2a51c15a82cded4869488f710.php:74
-#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:506
-#: cache/d2/d2fa8bed4d1e30769527c78081442bfc.php:148
-#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:220
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1687
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1724
-#: cache/23/238f0b98d7f96aca9a850e8b230fe1fb.php:212
-#: cache/f3/f3286f195f132c53823b9bb1068e5cc9.php:171
-#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:382
-#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:908
-#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:283
-#: cache/8b/8bc5b04498de39f4571d14d541bd6a91.php:152
-#: cache/b2/b21687508ff5b0bb637fdbd3f8c0d3c6.php:158
+#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:503
+#: cache/d2/d2fa8bed4d1e30769527c78081442bfc.php:146
+#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:224
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1819
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1864
+#: cache/23/238f0b98d7f96aca9a850e8b230fe1fb.php:210
+#: cache/f3/f3286f195f132c53823b9bb1068e5cc9.php:175
+#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:387
+#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:920
+#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:287
+#: cache/8b/8bc5b04498de39f4571d14d541bd6a91.php:156
+#: cache/b2/b21687508ff5b0bb637fdbd3f8c0d3c6.php:162
msgid "Search"
msgstr ""
-#: cache/c8/c82ad061a984295661821ddeb6ffb8c0.php:254
-#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:512
-#: cache/d2/d2fa8bed4d1e30769527c78081442bfc.php:154
-#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:226
-#: cache/23/238f0b98d7f96aca9a850e8b230fe1fb.php:218
-#: cache/f3/f3286f195f132c53823b9bb1068e5cc9.php:177
-#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:388
-#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:289
-#: cache/8b/8bc5b04498de39f4571d14d541bd6a91.php:158
-#: cache/b2/b21687508ff5b0bb637fdbd3f8c0d3c6.php:164
+#: cache/c8/c82ad061a984295661821ddeb6ffb8c0.php:258
+#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:509
+#: cache/d2/d2fa8bed4d1e30769527c78081442bfc.php:152
+#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:230
+#: cache/23/238f0b98d7f96aca9a850e8b230fe1fb.php:216
+#: cache/f3/f3286f195f132c53823b9bb1068e5cc9.php:181
+#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:393
+#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:293
+#: cache/8b/8bc5b04498de39f4571d14d541bd6a91.php:162
+#: cache/b2/b21687508ff5b0bb637fdbd3f8c0d3c6.php:168
msgid "Search in all folders"
msgstr ""
-#: cache/c8/c82ad061a984295661821ddeb6ffb8c0.php:256
-#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:514
-#: cache/d2/d2fa8bed4d1e30769527c78081442bfc.php:156
-#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:228
-#: cache/23/238f0b98d7f96aca9a850e8b230fe1fb.php:220
-#: cache/f3/f3286f195f132c53823b9bb1068e5cc9.php:179
-#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:390
-#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:291
-#: cache/8b/8bc5b04498de39f4571d14d541bd6a91.php:160
-#: cache/b2/b21687508ff5b0bb637fdbd3f8c0d3c6.php:166
+#: cache/c8/c82ad061a984295661821ddeb6ffb8c0.php:260
+#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:511
+#: cache/d2/d2fa8bed4d1e30769527c78081442bfc.php:154
+#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:232
+#: cache/23/238f0b98d7f96aca9a850e8b230fe1fb.php:218
+#: cache/f3/f3286f195f132c53823b9bb1068e5cc9.php:183
+#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:395
+#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:295
+#: cache/8b/8bc5b04498de39f4571d14d541bd6a91.php:164
+#: cache/b2/b21687508ff5b0bb637fdbd3f8c0d3c6.php:170
msgid "All Folders"
msgstr ""
-#: cache/c8/c82ad061a984295661821ddeb6ffb8c0.php:262
+#: cache/c8/c82ad061a984295661821ddeb6ffb8c0.php:266
#: cache/12/128a25d2a51c15a82cded4869488f710.php:79
-#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:520
-#: cache/d2/d2fa8bed4d1e30769527c78081442bfc.php:162
-#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:234
-#: cache/23/238f0b98d7f96aca9a850e8b230fe1fb.php:226
-#: cache/f3/f3286f195f132c53823b9bb1068e5cc9.php:185
-#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:396
-#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:913
-#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:297
-#: cache/8b/8bc5b04498de39f4571d14d541bd6a91.php:166
-#: cache/b2/b21687508ff5b0bb637fdbd3f8c0d3c6.php:172
+#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:517
+#: cache/d2/d2fa8bed4d1e30769527c78081442bfc.php:160
+#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:238
+#: cache/23/238f0b98d7f96aca9a850e8b230fe1fb.php:224
+#: cache/f3/f3286f195f132c53823b9bb1068e5cc9.php:189
+#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:401
+#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:925
+#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:301
+#: cache/8b/8bc5b04498de39f4571d14d541bd6a91.php:170
+#: cache/b2/b21687508ff5b0bb637fdbd3f8c0d3c6.php:176
msgid "No Folders matching the search term"
msgstr ""
-#: cache/c8/c82ad061a984295661821ddeb6ffb8c0.php:271
-#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:529
-#: cache/d2/d2fa8bed4d1e30769527c78081442bfc.php:171
-#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:243
-#: cache/23/238f0b98d7f96aca9a850e8b230fe1fb.php:235
-#: cache/f3/f3286f195f132c53823b9bb1068e5cc9.php:158
-#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:406
-#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:306
-#: cache/8b/8bc5b04498de39f4571d14d541bd6a91.php:175
-#: cache/b2/b21687508ff5b0bb637fdbd3f8c0d3c6.php:181
+#: cache/c8/c82ad061a984295661821ddeb6ffb8c0.php:274
+#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:525
+#: cache/d2/d2fa8bed4d1e30769527c78081442bfc.php:168
+#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:246
+#: cache/23/238f0b98d7f96aca9a850e8b230fe1fb.php:232
+#: cache/f3/f3286f195f132c53823b9bb1068e5cc9.php:163
+#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:410
+#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:309
+#: cache/8b/8bc5b04498de39f4571d14d541bd6a91.php:178
+#: cache/b2/b21687508ff5b0bb637fdbd3f8c0d3c6.php:184
msgid "Open / Close Folder Search options"
msgstr ""
-#: cache/c8/c82ad061a984295661821ddeb6ffb8c0.php:291
+#: cache/c8/c82ad061a984295661821ddeb6ffb8c0.php:294
#: cache/eb/eb0b05526f681e297aa747d8a42bfc36.php:76
#: cache/8a/8acc5a2af63338673a6de3f58764bb95.php:410
-#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:286
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1581
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1699
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1778
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2056
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2166
+#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:289
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1679
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1831
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1926
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2296
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2410
#: cache/23/2360e54d15ebe919cd8f4305d3819359.php:423
#: cache/c5/c52b8109558dd3acc604e183177113c8.php:148
#: cache/fe/fe92f223f863fb1896ced5bd33b8c256.php:388
#: cache/4a/4a1316556dbf2c1f6276a15abb899508.php:199
-#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:434
-#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:340
+#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:438
+#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:343
msgid "Duration"
msgstr ""
-#: cache/c8/c82ad061a984295661821ddeb6ffb8c0.php:302
+#: cache/c8/c82ad061a984295661821ddeb6ffb8c0.php:305
#: cache/8a/8acc5a2af63338673a6de3f58764bb95.php:263
#: cache/23/2360e54d15ebe919cd8f4305d3819359.php:254
msgid "Dynamic?"
msgstr ""
-#: cache/c8/c82ad061a984295661821ddeb6ffb8c0.php:310
+#: cache/c8/c82ad061a984295661821ddeb6ffb8c0.php:313
#: cache/68/683636238aff529d5a7b7478118dede4.php:123
#: cache/68/683636238aff529d5a7b7478118dede4.php:2690
-#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:704
+#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:700
#: cache/64/6468accf3a0fea12fced661d430c769f.php:97
-#: cache/df/dfa8c9877043c738d127ce9a84cd99fa.php:141
-#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:523
-#: cache/23/238f0b98d7f96aca9a850e8b230fe1fb.php:279
+#: cache/df/dfa8c9877043c738d127ce9a84cd99fa.php:146
+#: cache/97/97f2c018825ccdd326aad4a0b160725e.php:175
+#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:542
+#: cache/23/238f0b98d7f96aca9a850e8b230fe1fb.php:277
#: cache/8d/8de7dd9661211f3ba39933b564d76990.php:100
-#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:457
-#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:364
-#: cache/8b/8bc5b04498de39f4571d14d541bd6a91.php:217
-#: cache/b2/b21687508ff5b0bb637fdbd3f8c0d3c6.php:216
+#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:461
+#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:367
+#: cache/8b/8bc5b04498de39f4571d14d541bd6a91.php:220
+#: cache/b2/b21687508ff5b0bb637fdbd3f8c0d3c6.php:223
msgid "Sharing"
msgstr ""
-#: cache/c8/c82ad061a984295661821ddeb6ffb8c0.php:314
-#: cache/e5/e5e5434fb79a5ac6a7fd60b41343e917.php:214
-#: cache/08/08aee2625ba2279e6a2c6465471b11e8.php:143
-#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:469
-#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:384
+#: cache/c8/c82ad061a984295661821ddeb6ffb8c0.php:317
+#: cache/e5/e5e5434fb79a5ac6a7fd60b41343e917.php:218
+#: cache/08/08aee2625ba2279e6a2c6465471b11e8.php:142
+#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:473
+#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:387
msgid "Created"
msgstr ""
-#: cache/c8/c82ad061a984295661821ddeb6ffb8c0.php:318
-#: cache/08/08aee2625ba2279e6a2c6465471b11e8.php:147
-#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:473
-#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:388
+#: cache/c8/c82ad061a984295661821ddeb6ffb8c0.php:321
+#: cache/08/08aee2625ba2279e6a2c6465471b11e8.php:146
+#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:477
+#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:391
msgid "Modified"
msgstr ""
-#: cache/c8/c82ad061a984295661821ddeb6ffb8c0.php:322
-#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:465
-#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:380
+#: cache/c8/c82ad061a984295661821ddeb6ffb8c0.php:325
+#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:469
+#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:383
msgid "Stats?"
msgstr ""
@@ -8308,6 +8450,35 @@ msgid ""
"undone"
msgstr ""
+#: cache/12/1239457c009f290772b733957cc20e8b.php:59
+#: cache/dc/dc31159d960349451e03fc348c75e315.php:59
+#: cache/81/811403ea85a4f89fb6575e4ffc9988d8.php:59
+#: cache/73/736be9c5f96ff30502beba0ab9149fd4.php:59
+#: cache/5d/5d1d07a99874fba69dc650a90f8eab06.php:59
+#: cache/31/31805080e1e51d4a56cb67fa60bdcb2f.php:59
+#: cache/60/603a543f479715b41db75352b8cdb845.php:59
+#, no-php-format
+msgid "Copy %name%"
+msgstr ""
+
+#: cache/12/1239457c009f290772b733957cc20e8b.php:72
+#: cache/dc/dc31159d960349451e03fc348c75e315.php:72
+#: cache/73/736be9c5f96ff30502beba0ab9149fd4.php:72
+#: cache/31/31805080e1e51d4a56cb67fa60bdcb2f.php:72
+#: lib/Controller/Template.php:257 lib/Controller/DisplayGroup.php:340
+#: lib/Controller/DataSet.php:264 lib/Controller/Campaign.php:376
+#: lib/Controller/Playlist.php:403 lib/Controller/Library.php:659
+#: lib/Controller/Layout.php:1828 lib/Controller/DisplayProfile.php:212
+#: lib/Controller/Developer.php:116 lib/Controller/UserGroup.php:174
+msgid "Copy"
+msgstr ""
+
+#: cache/12/1239457c009f290772b733957cc20e8b.php:96
+#: cache/bf/bfa04d76ea96a772caeedcfdf9d70e40.php:178
+#: cache/26/26272b78e1f020a579ccf676c2d83a39.php:105
+msgid "A unique ID for the module template"
+msgstr ""
+
#: cache/12/128a25d2a51c15a82cded4869488f710.php:55
#: cache/12/128a25d2a51c15a82cded4869488f710.php:67
#: cache/9f/9f9a142004ca4a1c914a4395fe586017.php:721
@@ -8316,49 +8487,50 @@ msgstr ""
msgid "Folders"
msgstr ""
-#: cache/12/128a25d2a51c15a82cded4869488f710.php:127
-#: cache/12/128a25d2a51c15a82cded4869488f710.php:134
-#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:1833
+#: cache/12/128a25d2a51c15a82cded4869488f710.php:129
+#: cache/12/128a25d2a51c15a82cded4869488f710.php:136
+#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:1856
+#: cache/97/97f2c018825ccdd326aad4a0b160725e.php:346
#: lib/Connector/XiboSspConnector.php:102
msgid "Unknown error"
msgstr ""
-#: cache/12/128a25d2a51c15a82cded4869488f710.php:160
+#: cache/12/128a25d2a51c15a82cded4869488f710.php:162
msgid "Folder info"
msgstr ""
-#: cache/12/128a25d2a51c15a82cded4869488f710.php:166
+#: cache/12/128a25d2a51c15a82cded4869488f710.php:168
msgid "Number of times used as a home folder:"
msgstr ""
-#: cache/12/128a25d2a51c15a82cded4869488f710.php:172
+#: cache/12/128a25d2a51c15a82cded4869488f710.php:174
msgid "Shared with:"
msgstr ""
-#: cache/12/128a25d2a51c15a82cded4869488f710.php:181
+#: cache/12/128a25d2a51c15a82cded4869488f710.php:183
msgid "Not shared"
msgstr ""
-#: cache/12/128a25d2a51c15a82cded4869488f710.php:188
+#: cache/12/128a25d2a51c15a82cded4869488f710.php:190
msgid "Contents:"
msgstr ""
-#: cache/12/128a25d2a51c15a82cded4869488f710.php:196
+#: cache/12/128a25d2a51c15a82cded4869488f710.php:198
msgid "Section"
msgstr ""
-#: cache/12/128a25d2a51c15a82cded4869488f710.php:204
+#: cache/12/128a25d2a51c15a82cded4869488f710.php:206
#: cache/66/661d79c5da6d14a0db85cd0980868ff7.php:296
#: cache/66/661d79c5da6d14a0db85cd0980868ff7.php:384
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2008
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2180
#: cache/35/35be00044edc69c7e0405b74ef1b4562.php:211
-#: cache/08/08aee2625ba2279e6a2c6465471b11e8.php:155
-#: cache/cb/cb0f801b3d2ddd3d1f61f47414d32047.php:150
-#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:348
+#: cache/08/08aee2625ba2279e6a2c6465471b11e8.php:154
+#: cache/cb/cb0f801b3d2ddd3d1f61f47414d32047.php:155
+#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:351
msgid "Size"
msgstr ""
-#: cache/12/128a25d2a51c15a82cded4869488f710.php:221
+#: cache/12/128a25d2a51c15a82cded4869488f710.php:223
msgid "Empty folder"
msgstr ""
@@ -8391,105 +8563,198 @@ msgstr ""
msgid "Add User Group"
msgstr ""
-#: cache/b8/b883949087e41a51e58bfb0a9f1ef74b.php:100
-#: cache/88/8836e166837e167ba9b26786f8a2b7ef.php:102
+#: cache/b8/b883949087e41a51e58bfb0a9f1ef74b.php:103
+#: cache/88/8836e166837e167ba9b26786f8a2b7ef.php:103
+#: cache/0a/0ae358955c92f467744fc6cf0f8f5624.php:112
+#: cache/8c/8ce8fc6aadcb243480fdca6732c41fea.php:51
+#: cache/cd/cdf12d9a1fc3b5db7965cfa8f9bb8d13.php:112
+#: cache/8e/8e4c9c1886827e5f797c4436d4051e48.php:533
+msgid "Notifications"
+msgstr ""
+
+#: cache/b8/b883949087e41a51e58bfb0a9f1ef74b.php:107
+#: cache/88/8836e166837e167ba9b26786f8a2b7ef.php:107
msgid "Onboarding Settings"
msgstr ""
-#: cache/b8/b883949087e41a51e58bfb0a9f1ef74b.php:117
+#: cache/b8/b883949087e41a51e58bfb0a9f1ef74b.php:127
#: cache/68/68fd0cd201e7760602f39ca6ad3e8add.php:93
-#: cache/88/8836e166837e167ba9b26786f8a2b7ef.php:122
+#: cache/88/8836e166837e167ba9b26786f8a2b7ef.php:128
msgid "The Name for this User Group"
msgstr ""
-#: cache/b8/b883949087e41a51e58bfb0a9f1ef74b.php:127
-#: cache/88/8836e166837e167ba9b26786f8a2b7ef.php:132
+#: cache/b8/b883949087e41a51e58bfb0a9f1ef74b.php:137
+#: cache/88/8836e166837e167ba9b26786f8a2b7ef.php:138
#: cache/0a/0ae358955c92f467744fc6cf0f8f5624.php:190
-#: cache/fb/fb7b914f174fce1e94ee3971e92a92dd.php:133
+#: cache/fb/fb7b914f174fce1e94ee3971e92a92dd.php:131
#: cache/cd/cdf12d9a1fc3b5db7965cfa8f9bb8d13.php:271
-#: cache/53/53221a3cb3187e41cde32cfa796d45a7.php:179
+#: cache/53/53221a3cb3187e41cde32cfa796d45a7.php:197
msgid "Library Quota"
msgstr ""
-#: cache/b8/b883949087e41a51e58bfb0a9f1ef74b.php:132
-#: cache/88/8836e166837e167ba9b26786f8a2b7ef.php:137
+#: cache/b8/b883949087e41a51e58bfb0a9f1ef74b.php:142
+#: cache/88/8836e166837e167ba9b26786f8a2b7ef.php:143
#: cache/0a/0ae358955c92f467744fc6cf0f8f5624.php:195
#: cache/cd/cdf12d9a1fc3b5db7965cfa8f9bb8d13.php:276
msgid "The quota that should be applied. Enter 0 for no quota."
msgstr ""
-#: cache/b8/b883949087e41a51e58bfb0a9f1ef74b.php:162
-#: cache/88/8836e166837e167ba9b26786f8a2b7ef.php:170
+#: cache/b8/b883949087e41a51e58bfb0a9f1ef74b.php:175
+#: cache/88/8836e166837e167ba9b26786f8a2b7ef.php:179
#: cache/0a/0ae358955c92f467744fc6cf0f8f5624.php:421
-#: cache/fb/fb7b914f174fce1e94ee3971e92a92dd.php:137
+#: cache/fb/fb7b914f174fce1e94ee3971e92a92dd.php:135
#: cache/cd/cdf12d9a1fc3b5db7965cfa8f9bb8d13.php:465
msgid "Receive System Notifications?"
msgstr ""
-#: cache/b8/b883949087e41a51e58bfb0a9f1ef74b.php:167
-#: cache/88/8836e166837e167ba9b26786f8a2b7ef.php:175
+#: cache/b8/b883949087e41a51e58bfb0a9f1ef74b.php:180
+#: cache/88/8836e166837e167ba9b26786f8a2b7ef.php:184
msgid "Should members of this Group receive system notifications?"
msgstr ""
-#: cache/b8/b883949087e41a51e58bfb0a9f1ef74b.php:177
-#: cache/88/8836e166837e167ba9b26786f8a2b7ef.php:185
+#: cache/b8/b883949087e41a51e58bfb0a9f1ef74b.php:190
+#: cache/88/8836e166837e167ba9b26786f8a2b7ef.php:194
#: cache/0a/0ae358955c92f467744fc6cf0f8f5624.php:436
-#: cache/fb/fb7b914f174fce1e94ee3971e92a92dd.php:141
+#: cache/fb/fb7b914f174fce1e94ee3971e92a92dd.php:139
#: cache/cd/cdf12d9a1fc3b5db7965cfa8f9bb8d13.php:480
msgid "Receive Display Notifications?"
msgstr ""
-#: cache/b8/b883949087e41a51e58bfb0a9f1ef74b.php:182
-#: cache/88/8836e166837e167ba9b26786f8a2b7ef.php:190
+#: cache/b8/b883949087e41a51e58bfb0a9f1ef74b.php:195
+#: cache/88/8836e166837e167ba9b26786f8a2b7ef.php:199
msgid ""
"Should members of this Group receive Display notifications for Displays they "
"have permission to see?"
msgstr ""
-#: cache/b8/b883949087e41a51e58bfb0a9f1ef74b.php:202
-#: cache/88/8836e166837e167ba9b26786f8a2b7ef.php:210
+#: cache/b8/b883949087e41a51e58bfb0a9f1ef74b.php:205
+#: cache/88/8836e166837e167ba9b26786f8a2b7ef.php:209
+#: cache/0a/0ae358955c92f467744fc6cf0f8f5624.php:451
+#: cache/fb/fb7b914f174fce1e94ee3971e92a92dd.php:147
+#: cache/cd/cdf12d9a1fc3b5db7965cfa8f9bb8d13.php:495
+msgid "Receive DataSet Notifications?"
+msgstr ""
+
+#: cache/b8/b883949087e41a51e58bfb0a9f1ef74b.php:210
+msgid "Should members of this Group receive DataSet notification emails?"
+msgstr ""
+
+#: cache/b8/b883949087e41a51e58bfb0a9f1ef74b.php:220
+#: cache/88/8836e166837e167ba9b26786f8a2b7ef.php:224
+#: cache/0a/0ae358955c92f467744fc6cf0f8f5624.php:466
+#: cache/fb/fb7b914f174fce1e94ee3971e92a92dd.php:151
+#: cache/cd/cdf12d9a1fc3b5db7965cfa8f9bb8d13.php:510
+msgid "Receive Layout Notifications?"
+msgstr ""
+
+#: cache/b8/b883949087e41a51e58bfb0a9f1ef74b.php:225
+msgid "Should members of this Group receive Layout notification emails?"
+msgstr ""
+
+#: cache/b8/b883949087e41a51e58bfb0a9f1ef74b.php:235
+#: cache/88/8836e166837e167ba9b26786f8a2b7ef.php:239
+#: cache/0a/0ae358955c92f467744fc6cf0f8f5624.php:481
+#: cache/fb/fb7b914f174fce1e94ee3971e92a92dd.php:155
+#: cache/cd/cdf12d9a1fc3b5db7965cfa8f9bb8d13.php:525
+msgid "Receive Library Notifications?"
+msgstr ""
+
+#: cache/b8/b883949087e41a51e58bfb0a9f1ef74b.php:240
+#: cache/88/8836e166837e167ba9b26786f8a2b7ef.php:244
+msgid "Should members of this Group receive Library notification emails?"
+msgstr ""
+
+#: cache/b8/b883949087e41a51e58bfb0a9f1ef74b.php:250
+#: cache/88/8836e166837e167ba9b26786f8a2b7ef.php:254
+#: cache/0a/0ae358955c92f467744fc6cf0f8f5624.php:496
+#: cache/fb/fb7b914f174fce1e94ee3971e92a92dd.php:159
+#: cache/cd/cdf12d9a1fc3b5db7965cfa8f9bb8d13.php:540
+msgid "Receive Report Notifications?"
+msgstr ""
+
+#: cache/b8/b883949087e41a51e58bfb0a9f1ef74b.php:255
+msgid "Should members of this Group receive Report notification emails?"
+msgstr ""
+
+#: cache/b8/b883949087e41a51e58bfb0a9f1ef74b.php:265
+#: cache/88/8836e166837e167ba9b26786f8a2b7ef.php:269
+#: cache/0a/0ae358955c92f467744fc6cf0f8f5624.php:511
+#: cache/fb/fb7b914f174fce1e94ee3971e92a92dd.php:163
+#: cache/cd/cdf12d9a1fc3b5db7965cfa8f9bb8d13.php:555
+msgid "Receive Schedule Notifications?"
+msgstr ""
+
+#: cache/b8/b883949087e41a51e58bfb0a9f1ef74b.php:270
+msgid "Should members of this Group receive Schedule notification emails?"
+msgstr ""
+
+#: cache/b8/b883949087e41a51e58bfb0a9f1ef74b.php:280
+#: cache/88/8836e166837e167ba9b26786f8a2b7ef.php:284
+#: cache/0a/0ae358955c92f467744fc6cf0f8f5624.php:526
+#: cache/fb/fb7b914f174fce1e94ee3971e92a92dd.php:143
+#: cache/cd/cdf12d9a1fc3b5db7965cfa8f9bb8d13.php:570
+msgid "Receive Custom Notifications?"
+msgstr ""
+
+#: cache/b8/b883949087e41a51e58bfb0a9f1ef74b.php:285
+#: cache/88/8836e166837e167ba9b26786f8a2b7ef.php:289
+msgid ""
+"Should members of this Group receive notifications emails for Notifications "
+"manually created in CMS?"
+msgstr ""
+
+#: cache/b8/b883949087e41a51e58bfb0a9f1ef74b.php:305
+#: cache/88/8836e166837e167ba9b26786f8a2b7ef.php:309
msgid "An optional description of the user group. (1 - 500 characters)"
msgstr ""
-#: cache/b8/b883949087e41a51e58bfb0a9f1ef74b.php:218
-#: cache/88/8836e166837e167ba9b26786f8a2b7ef.php:226
+#: cache/b8/b883949087e41a51e58bfb0a9f1ef74b.php:321
+#: cache/88/8836e166837e167ba9b26786f8a2b7ef.php:325
msgid "Show when onboarding a new user?"
msgstr ""
-#: cache/b8/b883949087e41a51e58bfb0a9f1ef74b.php:223
-#: cache/88/8836e166837e167ba9b26786f8a2b7ef.php:231
+#: cache/b8/b883949087e41a51e58bfb0a9f1ef74b.php:326
+#: cache/88/8836e166837e167ba9b26786f8a2b7ef.php:330
msgid ""
"Should this User Group be available for selection when creating a New User "
"via the onboarding form?"
msgstr ""
-#: cache/b8/b883949087e41a51e58bfb0a9f1ef74b.php:233
-#: cache/88/8836e166837e167ba9b26786f8a2b7ef.php:241
+#: cache/b8/b883949087e41a51e58bfb0a9f1ef74b.php:336
+#: cache/88/8836e166837e167ba9b26786f8a2b7ef.php:340
msgid "Default Homepage"
msgstr ""
-#: cache/b8/b883949087e41a51e58bfb0a9f1ef74b.php:238
-#: cache/88/8836e166837e167ba9b26786f8a2b7ef.php:246
+#: cache/b8/b883949087e41a51e58bfb0a9f1ef74b.php:341
+#: cache/88/8836e166837e167ba9b26786f8a2b7ef.php:345
msgid "Default Homepage for users created with this group."
msgstr ""
+#: cache/94/9464af4a196c6fb9a396017edb6718bb.php:56
+msgid "Delete Module Template"
+msgstr ""
+
+#: cache/94/9464af4a196c6fb9a396017edb6718bb.php:88
+msgid "Are you sure you want to delete this Template? This cannot be undone"
+msgstr ""
+
#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:57
msgid "Edit DataSet"
msgstr ""
#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:96
#: cache/09/09fa06e4cbb20e5f65e2075bff1da423.php:590
-#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:700
+#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:696
#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:96
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1818
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1966
#: cache/70/70af2bbd82243291558c9b83caec5b48.php:124
msgid "Remote"
msgstr ""
#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:100
-#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:312
+#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:379
#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:100
-#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:285
+#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:323
msgid "Authentication"
msgstr ""
@@ -8520,7 +8785,7 @@ msgstr ""
#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:205
#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:191
-#: cache/b2/b21687508ff5b0bb637fdbd3f8c0d3c6.php:208
+#: cache/b2/b21687508ff5b0bb637fdbd3f8c0d3c6.php:211
msgid "Remote?"
msgstr ""
@@ -8529,167 +8794,200 @@ msgstr ""
msgid "Is this DataSet connected to a remote data source?"
msgstr ""
-#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:222
+#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:220
+#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:209
+#: cache/b2/b21687508ff5b0bb637fdbd3f8c0d3c6.php:215
+msgid "Real time?"
+msgstr ""
+
+#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:225
+#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:214
+msgid "Is this DataSet connected to a real time data source?"
+msgstr ""
+
+#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:236
+#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:228
+msgid "Data Connector Source"
+msgstr ""
+
+#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:241
+#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:233
+msgid "Select data connector source."
+msgstr ""
+
+#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:260
+msgid ""
+"No remote columns have been configured for this dataset. Please configure "
+"your columns accordingly."
+msgstr ""
+
+#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:275
+msgid ""
+"No value columns have been configured for this dataset. Please configure "
+"your columns accordingly."
+msgstr ""
+
+#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:289
msgid ""
"This DataSet has been accessed or updated recently, which means the CMS will "
"keep it active."
msgstr ""
-#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:232
-#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:208
+#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:299
+#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:246
msgid "Method"
msgstr ""
-#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:237
-#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:213
+#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:304
+#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:251
msgid "What type of request needs to be made to get the remote data?"
msgstr ""
-#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:242
+#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:309
#: cache/04/04b11bf7b7a8190d66899471a8930ffd.php:228
-#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:218
+#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:256
msgid "GET"
msgstr ""
-#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:247
+#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:314
#: cache/04/04b11bf7b7a8190d66899471a8930ffd.php:233
-#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:223
+#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:261
msgid "POST"
msgstr ""
-#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:262
-#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:238
+#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:329
+#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:276
msgid "URI"
msgstr ""
-#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:267
-#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:243
+#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:334
+#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:281
msgid "URL to the Remote DataSet for GET and POST."
msgstr ""
-#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:279
-#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:255
+#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:346
+#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:293
msgid "Replacements"
msgstr ""
-#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:283
-#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:259
+#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:350
+#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:297
msgid "Request date: {{DATE}}"
msgstr ""
-#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:287
-#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:263
+#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:354
+#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:301
msgid "Request time: {{TIME}}"
msgstr ""
-#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:291
-#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:267
+#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:358
+#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:305
msgid ""
"Dependant fields: {{COL.NAME}} where NAME is a FieldName from the dependant "
"DataSet"
msgstr ""
-#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:297
-#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:273
+#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:364
+#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:311
msgid ""
"Data to add to this request. This should be URL encoded, e.g. paramA=1&"
"paramB=2."
msgstr ""
-#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:317
-#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:290
+#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:384
+#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:328
msgid ""
"Select the authentication requirements for the remote data source. These "
"will be added to the request."
msgstr ""
-#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:327
-#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:300
+#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:394
+#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:338
msgid "Basic"
msgstr ""
-#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:332
-#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:305
+#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:399
+#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:343
msgid "Digest"
msgstr ""
-#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:337
-#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:310
+#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:404
+#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:348
msgid "NTLM"
msgstr ""
-#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:342
-#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:315
+#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:409
+#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:353
msgid "Bearer"
msgstr ""
-#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:365
-#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:338
+#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:432
+#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:376
msgid "Enter the authentication Username"
msgstr ""
-#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:375
-#: cache/9f/9fdba8e23ed4ab1fa30c86aed8306cba.php:217
+#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:442
+#: cache/9f/9fdba8e23ed4ab1fa30c86aed8306cba.php:219
#: cache/0a/0ae358955c92f467744fc6cf0f8f5624.php:145
-#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:348
+#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:386
#: cache/64/6468accf3a0fea12fced661d430c769f.php:236
#: cache/58/582bf6a35fd9661de4021ae6aad02414.php:213
#: cache/37/377ff96eb23f94563370a45d1c41993f.php:114
msgid "Password"
msgstr ""
-#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:380
-#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:353
+#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:447
+#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:391
msgid "Corresponding Password"
msgstr ""
-#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:390
-#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:363
+#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:457
+#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:401
msgid "Custom Headers"
msgstr ""
-#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:395
-#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:368
+#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:462
+#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:406
msgid ""
"Comma separated string of custom HTTP headers in headerName:headerValue "
"format"
msgstr ""
-#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:410
-#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:383
+#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:477
+#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:421
msgid ""
"Optionally set specific User Agent for this request, provide only the value, "
"relevant header will be added automatically"
msgstr ""
-#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:422
-#: cache/9f/9fdba8e23ed4ab1fa30c86aed8306cba.php:320
-#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:395
+#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:489
+#: cache/9f/9fdba8e23ed4ab1fa30c86aed8306cba.php:322
+#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:433
msgid "Source"
msgstr ""
-#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:427
-#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:400
+#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:494
+#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:438
msgid "Select source type of the provided remote Dataset URL"
msgstr ""
-#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:432
-#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:405
+#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:499
+#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:443
msgid "JSON"
msgstr ""
-#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:437
-#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:410
+#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:504
+#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:448
msgid "CSV"
msgstr ""
-#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:452
-#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:425
+#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:519
+#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:463
msgid "Data root"
msgstr ""
-#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:457
-#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:430
+#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:524
+#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:468
msgid ""
"Please enter the element in your remote data which we should use as the "
"starting point when we match the remote Columns. This should be an array or "
@@ -8697,228 +8995,221 @@ msgid ""
"returned."
msgstr ""
-#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:467
-#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:440
+#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:534
+#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:478
msgid "CSV separator"
msgstr ""
-#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:472
-#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:445
+#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:539
+#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:483
msgid "What separator should be used for CSV source?"
msgstr ""
-#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:477
-#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:450
+#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:544
+#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:488
msgid "Comma"
msgstr ""
-#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:483
-#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:456
+#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:550
+#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:494
msgid "Semicolon"
msgstr ""
-#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:489
-#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:462
+#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:556
+#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:500
msgid "Space"
msgstr ""
-#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:495
-#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:468
+#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:562
+#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:506
msgid "Tab"
msgstr ""
-#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:501
-#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:474
+#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:568
+#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:512
msgid "Pipe"
msgstr ""
-#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:520
-#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:493
-#: cache/b2/b21687508ff5b0bb637fdbd3f8c0d3c6.php:647
+#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:587
+#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:531
+#: cache/b2/b21687508ff5b0bb637fdbd3f8c0d3c6.php:688
msgid "Ignore first row?"
msgstr ""
-#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:525
-#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:498
+#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:592
+#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:536
msgid "For CSV source, should the first row be ignored?"
msgstr ""
-#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:537
-#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:510
+#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:604
+#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:548
msgid "Test data URL"
msgstr ""
-#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:546
-#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:519
+#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:613
+#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:557
msgid "Aggregation"
msgstr ""
-#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:551
-#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:524
+#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:618
+#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:562
msgid "Aggregate received data by the given method"
msgstr ""
-#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:561
-#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:534
+#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:628
+#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:572
msgid "Summarize"
msgstr ""
-#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:582
-#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:555
+#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:649
+#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:593
msgid "By Field"
msgstr ""
-#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:592
-#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:562
+#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:659
+#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:600
msgid ""
"Using JSON syntax enter the path below the Data root by which the above "
"aggregation should be applied."
msgstr ""
-#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:596
-#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:566
+#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:663
+#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:604
msgid ""
"Summarize: Values in this field will be summarized and stored in one column."
msgstr ""
-#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:600
-#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:570
+#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:667
+#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:608
msgid ""
"Count: All individual values in this field will be counted and stored in one "
"Column for each value"
msgstr ""
-#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:611
-#: cache/52/522b66fbe5b8efaad37d81db81288730.php:67
-#: cache/52/522b66fbe5b8efaad37d81db81288730.php:69
-#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:82
+#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:678
#: cache/04/04b11bf7b7a8190d66899471a8930ffd.php:79
-#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:581
-#: cache/d2/d2fa8bed4d1e30769527c78081442bfc.php:81
-#: cache/fb/fb7b914f174fce1e94ee3971e92a92dd.php:82
-#: cache/23/238f0b98d7f96aca9a850e8b230fe1fb.php:81
-#: cache/0e/0ed8020e97c517a55ad881cfc5dd0b4c.php:77
-#: cache/f0/f03a3c9d913ba87fcd4d1925058f2671.php:80
-#: cache/53/53221a3cb3187e41cde32cfa796d45a7.php:97
+#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:619
msgid "Refresh"
msgstr ""
-#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:616
-#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:586
+#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:683
+#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:624
msgid "How often should this remote data be fetched and imported?"
msgstr ""
-#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:623
-#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:593
+#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:690
+#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:631
msgid "Constantly"
msgstr ""
-#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:643
-#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:716
-#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:613
-#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:686
+#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:710
+#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:783
+#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:651
+#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:724
msgid "Every two Weeks"
msgstr ""
-#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:653
-#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:726
-#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:623
-#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:696
+#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:720
+#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:793
+#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:661
+#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:734
msgid "Quaterly"
msgstr ""
-#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:679
-#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:649
+#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:746
+#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:687
msgid "Truncate DataSet"
msgstr ""
-#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:684
-#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:654
+#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:751
+#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:692
msgid ""
"Select when you would like the Data to be truncated out of this DataSet. The "
"criteria is assessed when synchronisation occurs and is truncated before "
"adding new data."
msgstr ""
-#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:691
-#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:661
-#: lib/Controller/Library.php:579
+#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:758
+#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:699
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2959
+#: lib/Controller/Library.php:581
msgid "Never"
msgstr ""
-#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:696
-#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:666
-#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:1499
-#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:1965
-#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:1980
+#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:763
+#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:704
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2963
+#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:1464
+#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:1932
+#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:1947
msgid "Always"
msgstr ""
-#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:736
-#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:706
+#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:803
+#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:744
msgid "Every second Year"
msgstr ""
-#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:759
-#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:729
+#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:826
+#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:767
msgid "Truncate with no new data?"
msgstr ""
-#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:764
-#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:734
+#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:831
+#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:772
msgid ""
"Should the DataSet data be truncated even if no new data is pulled from the "
"source?"
msgstr ""
-#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:774
-#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:744
+#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:841
+#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:782
msgid "Depends on DataSet"
msgstr ""
-#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:782
-#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:752
+#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:849
+#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:790
msgid ""
"The DataSet you select here will be processed in advance and have its values "
"available for subsitution in the data to add to this request on the Remote "
"tab."
msgstr ""
-#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:792
-#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:762
+#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:859
+#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:800
msgid "Row Limit"
msgstr ""
-#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:797
-#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:767
+#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:864
+#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:805
msgid ""
"Optionally provide a row limit for this DataSet. When left empty the DataSet "
"row limit from CMS Settings will be used."
msgstr ""
-#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:807
-#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:777
+#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:874
+#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:815
msgid "Limit Policy"
msgstr ""
-#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:812
-#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:782
+#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:879
+#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:820
msgid "What should happen when this Dataset reaches the row limit?"
msgstr ""
-#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:817
-#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:787
+#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:884
+#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:825
msgid "Stop Syncing"
msgstr ""
-#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:822
-#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:792
+#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:889
+#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:830
msgid "First In First Out"
msgstr ""
-#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:827
+#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:894
#: cache/04/04b11bf7b7a8190d66899471a8930ffd.php:73
-#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:797
+#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:835
#: cache/dc/dc491f32668885ef8be3c5ae4c7dc6e5.php:56
msgid "Truncate"
msgstr ""
@@ -8988,7 +9279,7 @@ msgid ""
msgstr ""
#: cache/46/46d175eb37bdc1a79c39e008e76f3511.php:80
-#: cache/e5/e5e5434fb79a5ac6a7fd60b41343e917.php:178
+#: cache/e5/e5e5434fb79a5ac6a7fd60b41343e917.php:182
#: cache/f5/f5b6ca9665811279877c56e7283984bb.php:46
#: cache/eb/ebcff77a4e266af34134679c91af4d2d.php:115
#: cache/80/80846113d03ba42567baaa96738353d4.php:123
@@ -8997,21 +9288,23 @@ msgstr ""
#: cache/6e/6e8678de8ffffc5ed3b935eb9c3f6eb0.php:214
#: cache/6e/6e8678de8ffffc5ed3b935eb9c3f6eb0.php:224
#: cache/a4/a4b5f52b1992bb349e8a30b19ff24645.php:53
-#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:176
+#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:183
+#: cache/c5/c5ca1344d07a74a91c5de3a21d4c2de4.php:135
#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:58
-#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:112
-#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:1652
-#: lib/Controller/Campaign.php:297 lib/Controller/Playlist.php:538
-#: lib/Controller/Library.php:782 lib/Controller/Layout.php:1725
-#: lib/Controller/Display.php:1003
+#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:117
+#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:1617
+#: lib/Controller/Campaign.php:297 lib/Controller/Playlist.php:541
+#: lib/Controller/Library.php:784 lib/Controller/Layout.php:1751
+#: lib/Controller/Display.php:1004
msgid "Schedule"
msgstr ""
#: cache/46/46d175eb37bdc1a79c39e008e76f3511.php:126
#: cache/9f/9f9a142004ca4a1c914a4395fe586017.php:221
#: cache/a4/a4b5f52b1992bb349e8a30b19ff24645.php:145
+#: cache/c5/c5ca1344d07a74a91c5de3a21d4c2de4.php:135
#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:55
-#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:114
+#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:119
#: cache/8e/8e4c9c1886827e5f797c4436d4051e48.php:254
msgid "Library"
msgstr ""
@@ -9020,7 +9313,7 @@ msgstr ""
#: cache/9f/9f9a142004ca4a1c914a4395fe586017.php:173
#: cache/a4/a4b5f52b1992bb349e8a30b19ff24645.php:115
#: cache/8b/8bc5b04498de39f4571d14d541bd6a91.php:55
-#: cache/8b/8bc5b04498de39f4571d14d541bd6a91.php:89
+#: cache/8b/8bc5b04498de39f4571d14d541bd6a91.php:94
msgid "Templates"
msgstr ""
@@ -9037,8 +9330,8 @@ msgstr ""
#: cache/46/46d175eb37bdc1a79c39e008e76f3511.php:214
#: cache/e5/e5310108493cd13aa490732e70fdb013.php:51
-#: cache/9f/9fdba8e23ed4ab1fa30c86aed8306cba.php:326
#: cache/9f/9fdba8e23ed4ab1fa30c86aed8306cba.php:328
+#: cache/9f/9fdba8e23ed4ab1fa30c86aed8306cba.php:330
#: cache/da/da41f70f7f97d805693655ab22c71014.php:53
#: cache/71/71725d40a3089432630feea639ab8751.php:102
msgid "About"
@@ -9052,44 +9345,44 @@ msgid "Report Fault"
msgstr ""
#: cache/52/522b66fbe5b8efaad37d81db81288730.php:55
-#: cache/52/522b66fbe5b8efaad37d81db81288730.php:83
+#: cache/52/522b66fbe5b8efaad37d81db81288730.php:81
#: cache/9f/9f9a142004ca4a1c914a4395fe586017.php:601
#: cache/a4/a4b5f52b1992bb349e8a30b19ff24645.php:380
msgid "Modules"
msgstr ""
-#: cache/52/522b66fbe5b8efaad37d81db81288730.php:119
+#: cache/52/522b66fbe5b8efaad37d81db81288730.php:117
#: cache/8a/8acc5a2af63338673a6de3f58764bb95.php:326
#: cache/23/2360e54d15ebe919cd8f4305d3819359.php:337
msgid "Library Media"
msgstr ""
-#: cache/52/522b66fbe5b8efaad37d81db81288730.php:123
+#: cache/52/522b66fbe5b8efaad37d81db81288730.php:121
#: cache/f7/f789072c56d4d186cbc4fdd166003cb4.php:135
msgid "Default Duration"
msgstr ""
-#: cache/52/522b66fbe5b8efaad37d81db81288730.php:127
+#: cache/52/522b66fbe5b8efaad37d81db81288730.php:125
msgid "Preview Enabled"
msgstr ""
-#: cache/52/522b66fbe5b8efaad37d81db81288730.php:131
+#: cache/52/522b66fbe5b8efaad37d81db81288730.php:129
msgid "Can this module be assigned to a Layout?"
msgstr ""
-#: cache/52/522b66fbe5b8efaad37d81db81288730.php:133
+#: cache/52/522b66fbe5b8efaad37d81db81288730.php:131
msgid "Assignable"
msgstr ""
-#: cache/52/522b66fbe5b8efaad37d81db81288730.php:137
-#: cache/41/411fdd8ac98835cf7ed952b29cda0628.php:409
-#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:195
-#: cache/8c/8c08891d370939702e3d45696c9e38d6.php:102
+#: cache/52/522b66fbe5b8efaad37d81db81288730.php:135
+#: cache/41/411fdd8ac98835cf7ed952b29cda0628.php:419
+#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:200
+#: cache/8c/8c08891d370939702e3d45696c9e38d6.php:107
msgid "Enabled"
msgstr ""
-#: cache/52/522b66fbe5b8efaad37d81db81288730.php:141
-#: cache/60/6096ddd2496c1f25a148669f286abbeb.php:283
+#: cache/52/522b66fbe5b8efaad37d81db81288730.php:139
+#: cache/60/6096ddd2496c1f25a148669f286abbeb.php:605
msgid "Errors"
msgstr ""
@@ -9102,15 +9395,15 @@ msgstr ""
#: cache/0e/0ed8020e97c517a55ad881cfc5dd0b4c.php:71
#: cache/fa/faae83213ac48b5ddd10aa2f75cd5121.php:56
#: cache/fa/faae83213ac48b5ddd10aa2f75cd5121.php:69
-#: lib/Controller/Template.php:295 lib/Controller/Layout.php:1880
+#: lib/Controller/Template.php:340 lib/Controller/Layout.php:1906
msgid "Export"
msgstr ""
-#: cache/a0/a0f36c1fb58c28bcc160b69bcd8c3260.php:203
+#: cache/a0/a0f36c1fb58c28bcc160b69bcd8c3260.php:205
msgid "Total number of records to be exported "
msgstr ""
-#: cache/a0/a0f36c1fb58c28bcc160b69bcd8c3260.php:245
+#: cache/a0/a0f36c1fb58c28bcc160b69bcd8c3260.php:247
msgid "Form field is required."
msgstr ""
@@ -9119,10 +9412,10 @@ msgid "Add Media via URL"
msgstr ""
#: cache/a0/a08e0b0d63f497e79ba45d275f7d8e2e.php:120
-#: cache/ae/ae039a69e1615431d4752f5fb2b147d3.php:124
+#: cache/ae/ae039a69e1615431d4752f5fb2b147d3.php:128
#: cache/58/582bf6a35fd9661de4021ae6aad02414.php:246
-#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:614
-#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:618
+#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:626
+#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:630
msgid "URL"
msgstr ""
@@ -9148,14 +9441,14 @@ msgid ""
msgstr ""
#: cache/e7/e7012f849ea8937cd0edbed2b7de4de8.php:978
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2150
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2394
msgid "Group"
msgstr ""
#: cache/e7/e7012f849ea8937cd0edbed2b7de4de8.php:1454
-#: cache/2d/2d67b2aac34d9a8cd68e4dad8db97260.php:124
+#: cache/2d/2d67b2aac34d9a8cd68e4dad8db97260.php:129
#: cache/04/04b11bf7b7a8190d66899471a8930ffd.php:294
-#: cache/04/04b4b8b9bb93bf0580422332c142abff.php:138
+#: cache/04/04b4b8b9bb93bf0580422332c142abff.php:143
msgid "Use Regex?"
msgstr ""
@@ -9187,18 +9480,18 @@ msgid "Add Column"
msgstr ""
#: cache/3c/3cff55fb510343a28bcab4eebabcb98a.php:134
-#: cache/88/88e10283780c820d9196a2e88b3b8e39.php:120
+#: cache/88/88e10283780c820d9196a2e88b3b8e39.php:124
#: cache/ee/ee0c1651752b1209943673ee1794a659.php:134
msgid "Heading"
msgstr ""
#: cache/3c/3cff55fb510343a28bcab4eebabcb98a.php:139
#: cache/ee/ee0c1651752b1209943673ee1794a659.php:139
-msgid "The heading for this Column"
+msgid "The heading for this Column. You cannot use a column name with spaces."
msgstr ""
#: cache/3c/3cff55fb510343a28bcab4eebabcb98a.php:149
-#: cache/88/88e10283780c820d9196a2e88b3b8e39.php:128
+#: cache/88/88e10283780c820d9196a2e88b3b8e39.php:132
#: cache/ee/ee0c1651752b1209943673ee1794a659.php:149
msgid "Column Type"
msgstr ""
@@ -9209,7 +9502,11 @@ msgid "Select the Column Type"
msgstr ""
#: cache/3c/3cff55fb510343a28bcab4eebabcb98a.php:164
+#: cache/bf/bfa04d76ea96a772caeedcfdf9d70e40.php:207
#: cache/ee/ee0c1651752b1209943673ee1794a659.php:164
+#: cache/97/97f2c018825ccdd326aad4a0b160725e.php:135
+#: cache/97/97f2c018825ccdd326aad4a0b160725e.php:163
+#: cache/26/26272b78e1f020a579ccf676c2d83a39.php:133
msgid "Data Type"
msgstr ""
@@ -9219,7 +9516,7 @@ msgid "The DataType of the Intended Data"
msgstr ""
#: cache/3c/3cff55fb510343a28bcab4eebabcb98a.php:179
-#: cache/88/88e10283780c820d9196a2e88b3b8e39.php:132
+#: cache/88/88e10283780c820d9196a2e88b3b8e39.php:136
#: cache/ee/ee0c1651752b1209943673ee1794a659.php:179
msgid "List Content"
msgstr ""
@@ -9260,7 +9557,7 @@ msgid "The order this column should be displayed in when entering data"
msgstr ""
#: cache/3c/3cff55fb510343a28bcab4eebabcb98a.php:238
-#: cache/88/88e10283780c820d9196a2e88b3b8e39.php:136
+#: cache/88/88e10283780c820d9196a2e88b3b8e39.php:140
#: cache/ee/ee0c1651752b1209943673ee1794a659.php:238
msgid "Tooltip"
msgstr ""
@@ -9305,7 +9602,7 @@ msgid ""
msgstr ""
#: cache/3c/3cff55fb510343a28bcab4eebabcb98a.php:319
-#: cache/88/88e10283780c820d9196a2e88b3b8e39.php:144
+#: cache/88/88e10283780c820d9196a2e88b3b8e39.php:148
#: cache/ee/ee0c1651752b1209943673ee1794a659.php:319
msgid "Required?"
msgstr ""
@@ -9334,7 +9631,7 @@ msgstr ""
#: cache/3c/3c90c1b1128021f78951bf370e3c5c0b.php:58
#: cache/09/09fa06e4cbb20e5f65e2075bff1da423.php:574
-#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:684
+#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:680
msgid "Bandwidth Limit"
msgstr ""
@@ -9357,6 +9654,7 @@ msgid "Minute"
msgstr ""
#: cache/3c/3cafc6063c2a786736bea5bbf9d4cb6f.php:57
+#: cache/60/6096ddd2496c1f25a148669f286abbeb.php:498
msgid "Hour"
msgstr ""
@@ -9400,15 +9698,15 @@ msgstr ""
#: cache/3c/3cafc6063c2a786736bea5bbf9d4cb6f.php:220
#: cache/09/09fa06e4cbb20e5f65e2075bff1da423.php:499
-#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:601
+#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:597
#: cache/f6/f60761fa1e2b5ad016f9d13f094f9488.php:88
#: cache/65/651e2483d1426d8b1b7ce3fef030fb15.php:88
-#: cache/8c/8c08891d370939702e3d45696c9e38d6.php:89
-#: cache/8c/8c08891d370939702e3d45696c9e38d6.php:134
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1453
+#: cache/8c/8c08891d370939702e3d45696c9e38d6.php:94
+#: cache/8c/8c08891d370939702e3d45696c9e38d6.php:139
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1543
#: cache/63/63a123f42a16165e90cd9f604b2de4bd.php:210
#: cache/0c/0cc104a3d7987780eed7a70657ece580.php:182
-#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:356
+#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:359
msgid "Resolution"
msgstr ""
@@ -9431,6 +9729,42 @@ msgid ""
"not fill the entire screen"
msgstr ""
+#: cache/3c/3cafc6063c2a786736bea5bbf9d4cb6f.php:288
+msgid "Is set"
+msgstr ""
+
+#: cache/3c/3cafc6063c2a786736bea5bbf9d4cb6f.php:292
+msgid "Less than"
+msgstr ""
+
+#: cache/3c/3cafc6063c2a786736bea5bbf9d4cb6f.php:296
+msgid "Less than or equal to"
+msgstr ""
+
+#: cache/3c/3cafc6063c2a786736bea5bbf9d4cb6f.php:300
+msgid "Equal to"
+msgstr ""
+
+#: cache/3c/3cafc6063c2a786736bea5bbf9d4cb6f.php:304
+msgid "Not equal to"
+msgstr ""
+
+#: cache/3c/3cafc6063c2a786736bea5bbf9d4cb6f.php:308
+msgid "Greater than or equal to"
+msgstr ""
+
+#: cache/3c/3cafc6063c2a786736bea5bbf9d4cb6f.php:312
+msgid "Greater than"
+msgstr ""
+
+#: cache/3c/3cafc6063c2a786736bea5bbf9d4cb6f.php:316
+msgid "Contains"
+msgstr ""
+
+#: cache/3c/3cafc6063c2a786736bea5bbf9d4cb6f.php:320
+msgid "Not contains"
+msgstr ""
+
#: cache/3c/3c7bd12ad2faa21d9e80b1c4ee69d3b4.php:59
#: cache/68/683636238aff529d5a7b7478118dede4.php:119
#: cache/68/683636238aff529d5a7b7478118dede4.php:2174
@@ -9452,7 +9786,7 @@ msgstr ""
#: cache/9f/9f9a142004ca4a1c914a4395fe586017.php:410
#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:78
#: cache/df/dfa8c9877043c738d127ce9a84cd99fa.php:55
-#: cache/df/dfa8c9877043c738d127ce9a84cd99fa.php:87
+#: cache/df/dfa8c9877043c738d127ce9a84cd99fa.php:92
#: cache/a4/a4b5f52b1992bb349e8a30b19ff24645.php:284
#: cache/49/49b3c02c876e8a464a75e1682c064115.php:78
#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:78
@@ -9769,22 +10103,34 @@ msgstr ""
#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:318
#: cache/49/49b3c02c876e8a464a75e1682c064115.php:277
#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:345
-msgid "The logging level that should be recorded by the Player."
+msgid "The resting logging level that should be recorded by the Player."
msgstr ""
#: cache/3c/3c7bd12ad2faa21d9e80b1c4ee69d3b4.php:255
-msgid "Trace"
+#: cache/68/683636238aff529d5a7b7478118dede4.php:3057
+#: cache/68/683636238aff529d5a7b7478118dede4.php:3119
+#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:321
+#: cache/49/49b3c02c876e8a464a75e1682c064115.php:280
+#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:348
+msgid "Emergency"
msgstr ""
#: cache/3c/3c7bd12ad2faa21d9e80b1c4ee69d3b4.php:255
-#: cache/68/683636238aff529d5a7b7478118dede4.php:3154
-msgid "Debug"
+#: cache/68/683636238aff529d5a7b7478118dede4.php:3062
+#: cache/68/683636238aff529d5a7b7478118dede4.php:3124
+#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:321
+#: cache/49/49b3c02c876e8a464a75e1682c064115.php:280
+#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:348
+msgid "Alert"
msgstr ""
#: cache/3c/3c7bd12ad2faa21d9e80b1c4ee69d3b4.php:255
-#: cache/68/683636238aff529d5a7b7478118dede4.php:3149
+#: cache/68/683636238aff529d5a7b7478118dede4.php:3067
+#: cache/68/683636238aff529d5a7b7478118dede4.php:3129
#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:321
-msgid "Information"
+#: cache/49/49b3c02c876e8a464a75e1682c064115.php:280
+#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:348
+msgid "Critical"
msgstr ""
#: cache/3c/3c7bd12ad2faa21d9e80b1c4ee69d3b4.php:255
@@ -9798,147 +10144,163 @@ msgstr ""
msgid "Error"
msgstr ""
-#: cache/3c/3c7bd12ad2faa21d9e80b1c4ee69d3b4.php:267
-#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:402
-msgid "Enable Shell Commands"
+#: cache/3c/3c7bd12ad2faa21d9e80b1c4ee69d3b4.php:266
+#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:330
+#: cache/49/49b3c02c876e8a464a75e1682c064115.php:289
+#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:357
+msgid "Elevate Logging until"
msgstr ""
-#: cache/3c/3c7bd12ad2faa21d9e80b1c4ee69d3b4.php:270
-#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:405
-msgid "Enable the Shell Command module."
-msgstr ""
+#: cache/3c/3c7bd12ad2faa21d9e80b1c4ee69d3b4.php:271
+#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:335
+#: cache/49/49b3c02c876e8a464a75e1682c064115.php:294
+#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:362
+msgid ""
+"Elevate log level for the specified time. Should only be used if there is a "
+"problem with the display."
+msgstr ""
+
+#: cache/3c/3c7bd12ad2faa21d9e80b1c4ee69d3b4.php:299
+#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:432
+msgid "Enable Shell Commands"
+msgstr ""
+
+#: cache/3c/3c7bd12ad2faa21d9e80b1c4ee69d3b4.php:302
+#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:435
+msgid "Enable the Shell Command module."
+msgstr ""
-#: cache/3c/3c7bd12ad2faa21d9e80b1c4ee69d3b4.php:281
-#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:416
-#: cache/49/49b3c02c876e8a464a75e1682c064115.php:316
-#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:432
+#: cache/3c/3c7bd12ad2faa21d9e80b1c4ee69d3b4.php:313
+#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:446
+#: cache/49/49b3c02c876e8a464a75e1682c064115.php:346
+#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:462
msgid "Notify current layout"
msgstr ""
-#: cache/3c/3c7bd12ad2faa21d9e80b1c4ee69d3b4.php:284
-#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:419
-#: cache/49/49b3c02c876e8a464a75e1682c064115.php:319
-#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:435
+#: cache/3c/3c7bd12ad2faa21d9e80b1c4ee69d3b4.php:316
+#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:449
+#: cache/49/49b3c02c876e8a464a75e1682c064115.php:349
+#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:465
msgid ""
"When enabled the Player will send the current layout to the CMS each time it "
"changes. Warning: This is bandwidth intensive and should be disabled unless "
"on a LAN."
msgstr ""
-#: cache/3c/3c7bd12ad2faa21d9e80b1c4ee69d3b4.php:295
-#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:430
-#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:446
+#: cache/3c/3c7bd12ad2faa21d9e80b1c4ee69d3b4.php:327
+#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:460
+#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:476
msgid "Expire Modified Layouts?"
msgstr ""
-#: cache/3c/3c7bd12ad2faa21d9e80b1c4ee69d3b4.php:298
-#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:433
-#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:449
+#: cache/3c/3c7bd12ad2faa21d9e80b1c4ee69d3b4.php:330
+#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:463
+#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:479
msgid ""
"Expire Modified Layouts immediately on change. This means a layout can be "
"cut during playback if it receives an update from the CMS"
msgstr ""
-#: cache/3c/3c7bd12ad2faa21d9e80b1c4ee69d3b4.php:306
-#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:441
+#: cache/3c/3c7bd12ad2faa21d9e80b1c4ee69d3b4.php:338
+#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:471
msgid "Maximum concurrent downloads"
msgstr ""
-#: cache/3c/3c7bd12ad2faa21d9e80b1c4ee69d3b4.php:309
-#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:444
+#: cache/3c/3c7bd12ad2faa21d9e80b1c4ee69d3b4.php:341
+#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:474
msgid "The maximum number of concurrent downloads the Player will attempt."
msgstr ""
-#: cache/3c/3c7bd12ad2faa21d9e80b1c4ee69d3b4.php:317
-#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:452
+#: cache/3c/3c7bd12ad2faa21d9e80b1c4ee69d3b4.php:349
+#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:482
msgid "Shell Command Allow List"
msgstr ""
-#: cache/3c/3c7bd12ad2faa21d9e80b1c4ee69d3b4.php:320
-#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:455
+#: cache/3c/3c7bd12ad2faa21d9e80b1c4ee69d3b4.php:352
+#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:485
msgid "Which shell commands should the Player execute?"
msgstr ""
-#: cache/3c/3c7bd12ad2faa21d9e80b1c4ee69d3b4.php:331
-#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:466
-#: cache/49/49b3c02c876e8a464a75e1682c064115.php:336
-#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:460
+#: cache/3c/3c7bd12ad2faa21d9e80b1c4ee69d3b4.php:363
+#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:496
+#: cache/49/49b3c02c876e8a464a75e1682c064115.php:366
+#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:490
msgid "Screen shot interval"
msgstr ""
-#: cache/3c/3c7bd12ad2faa21d9e80b1c4ee69d3b4.php:334
-#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:469
-#: cache/49/49b3c02c876e8a464a75e1682c064115.php:345
-#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:463
+#: cache/3c/3c7bd12ad2faa21d9e80b1c4ee69d3b4.php:366
+#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:499
+#: cache/49/49b3c02c876e8a464a75e1682c064115.php:375
+#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:493
msgid ""
"The duration between status screen shots in minutes. 0 to disable. Warning: "
"This is bandwidth intensive."
msgstr ""
-#: cache/3c/3c7bd12ad2faa21d9e80b1c4ee69d3b4.php:345
-#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:480
-#: cache/49/49b3c02c876e8a464a75e1682c064115.php:356
-#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:485
+#: cache/3c/3c7bd12ad2faa21d9e80b1c4ee69d3b4.php:377
+#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:510
+#: cache/49/49b3c02c876e8a464a75e1682c064115.php:386
+#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:515
msgid "Screen Shot Size"
msgstr ""
-#: cache/3c/3c7bd12ad2faa21d9e80b1c4ee69d3b4.php:348
-#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:483
-#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:488
+#: cache/3c/3c7bd12ad2faa21d9e80b1c4ee69d3b4.php:380
+#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:513
+#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:518
msgid "The size of the largest dimension. Empty or 0 means the screen size."
msgstr ""
-#: cache/3c/3c7bd12ad2faa21d9e80b1c4ee69d3b4.php:356
-#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:491
+#: cache/3c/3c7bd12ad2faa21d9e80b1c4ee69d3b4.php:388
+#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:521
msgid "Limit the number of log files uploaded concurrently"
msgstr ""
-#: cache/3c/3c7bd12ad2faa21d9e80b1c4ee69d3b4.php:359
-#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:494
+#: cache/3c/3c7bd12ad2faa21d9e80b1c4ee69d3b4.php:391
+#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:524
msgid ""
"The number of log files to upload concurrently. The lower the number the "
"longer it will take, but the better for memory usage."
msgstr ""
-#: cache/3c/3c7bd12ad2faa21d9e80b1c4ee69d3b4.php:367
-#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:502
-#: cache/49/49b3c02c876e8a464a75e1682c064115.php:393
-#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:546
+#: cache/3c/3c7bd12ad2faa21d9e80b1c4ee69d3b4.php:399
+#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:532
+#: cache/49/49b3c02c876e8a464a75e1682c064115.php:423
+#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:576
msgid "Embedded Web Server Port"
msgstr ""
-#: cache/3c/3c7bd12ad2faa21d9e80b1c4ee69d3b4.php:370
-#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:505
-#: cache/49/49b3c02c876e8a464a75e1682c064115.php:396
-#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:549
+#: cache/3c/3c7bd12ad2faa21d9e80b1c4ee69d3b4.php:402
+#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:535
+#: cache/49/49b3c02c876e8a464a75e1682c064115.php:426
+#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:579
msgid ""
"The port number to use for the embedded web server on the Player. Only "
"change this if there is a port conflict reported on the status screen."
msgstr ""
-#: cache/3c/3c7bd12ad2faa21d9e80b1c4ee69d3b4.php:378
-#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:513
-#: cache/49/49b3c02c876e8a464a75e1682c064115.php:404
-#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:557
+#: cache/3c/3c7bd12ad2faa21d9e80b1c4ee69d3b4.php:410
+#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:543
+#: cache/49/49b3c02c876e8a464a75e1682c064115.php:434
+#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:587
msgid "Embedded Web Server allow WAN?"
msgstr ""
-#: cache/3c/3c7bd12ad2faa21d9e80b1c4ee69d3b4.php:381
-#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:516
-#: cache/49/49b3c02c876e8a464a75e1682c064115.php:407
-#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:560
+#: cache/3c/3c7bd12ad2faa21d9e80b1c4ee69d3b4.php:413
+#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:546
+#: cache/49/49b3c02c876e8a464a75e1682c064115.php:437
+#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:590
msgid ""
"Should we allow access to the Player Embedded Web Server from WAN? You may "
"need to adjust the device firewall to allow external traffic"
msgstr ""
-#: cache/3c/3c7bd12ad2faa21d9e80b1c4ee69d3b4.php:389
-#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:524
+#: cache/3c/3c7bd12ad2faa21d9e80b1c4ee69d3b4.php:421
+#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:554
msgid "Prevent Sleep?"
msgstr ""
-#: cache/3c/3c7bd12ad2faa21d9e80b1c4ee69d3b4.php:392
-#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:527
+#: cache/3c/3c7bd12ad2faa21d9e80b1c4ee69d3b4.php:424
+#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:557
msgid "Stop the player PC power management from Sleeping the PC"
msgstr ""
@@ -10167,10 +10529,10 @@ msgstr ""
#: cache/68/683636238aff529d5a7b7478118dede4.php:776
#: cache/09/09fa06e4cbb20e5f65e2075bff1da423.php:510
-#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:612
+#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:608
#: cache/fd/fdcb7243cca15e1cb2caaef15ca051a6.php:93
#: cache/70/70af2bbd82243291558c9b83caec5b48.php:327
-#: lib/Controller/Display.php:913
+#: lib/Controller/Display.php:914
msgid "Default Layout"
msgstr ""
@@ -10719,7 +11081,7 @@ msgstr ""
#: cache/68/683636238aff529d5a7b7478118dede4.php:2890
#: cache/09/09fa06e4cbb20e5f65e2075bff1da423.php:550
-#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:656
+#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:652
#: cache/70/70af2bbd82243291558c9b83caec5b48.php:379
msgid "Timezone"
msgstr ""
@@ -10767,21 +11129,6 @@ msgid ""
"recommended."
msgstr ""
-#: cache/68/683636238aff529d5a7b7478118dede4.php:3057
-#: cache/68/683636238aff529d5a7b7478118dede4.php:3119
-msgid "Emergency"
-msgstr ""
-
-#: cache/68/683636238aff529d5a7b7478118dede4.php:3062
-#: cache/68/683636238aff529d5a7b7478118dede4.php:3124
-msgid "Alert"
-msgstr ""
-
-#: cache/68/683636238aff529d5a7b7478118dede4.php:3067
-#: cache/68/683636238aff529d5a7b7478118dede4.php:3129
-msgid "Critical"
-msgstr ""
-
#: cache/68/683636238aff529d5a7b7478118dede4.php:3112
msgid ""
"Set the level of logging the CMS should record. In production systems "
@@ -10796,6 +11143,14 @@ msgstr ""
msgid "Notice"
msgstr ""
+#: cache/68/683636238aff529d5a7b7478118dede4.php:3149
+msgid "Information"
+msgstr ""
+
+#: cache/68/683636238aff529d5a7b7478118dede4.php:3154
+msgid "Debug"
+msgstr ""
+
#: cache/68/683636238aff529d5a7b7478118dede4.php:3193
msgid "Elevate Log Until"
msgstr ""
@@ -10820,6 +11175,7 @@ msgid "Production"
msgstr ""
#: cache/68/683636238aff529d5a7b7478118dede4.php:3245
+#: cache/bf/bfa04d76ea96a772caeedcfdf9d70e40.php:627
msgid "Test"
msgstr ""
@@ -10850,12 +11206,12 @@ msgid ""
msgstr ""
#: cache/68/683636238aff529d5a7b7478118dede4.php:3372
-#: cache/9f/9fdba8e23ed4ab1fa30c86aed8306cba.php:213
-#: cache/9f/9fdba8e23ed4ab1fa30c86aed8306cba.php:280
+#: cache/9f/9fdba8e23ed4ab1fa30c86aed8306cba.php:215
+#: cache/9f/9fdba8e23ed4ab1fa30c86aed8306cba.php:282
#: cache/09/09fa06e4cbb20e5f65e2075bff1da423.php:119
#: cache/04/04b11bf7b7a8190d66899471a8930ffd.php:179
-#: cache/0e/0ed8020e97c517a55ad881cfc5dd0b4c.php:125
-#: cache/0e/0ed8020e97c517a55ad881cfc5dd0b4c.php:188
+#: cache/0e/0ed8020e97c517a55ad881cfc5dd0b4c.php:123
+#: cache/0e/0ed8020e97c517a55ad881cfc5dd0b4c.php:186
#: cache/42/427f29e983bd9df69023fb3b4d508a91.php:163
#: lib/Widget/DataType/SocialMedia.php:66
msgid "User"
@@ -10911,23 +11267,23 @@ msgid ""
msgstr ""
#: cache/68/6890d35803a665b9db578df45f0f60f0.php:66
-#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:182
-#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:207
-#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:232
-#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:485
-#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:995
-#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:416
+#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:180
+#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:205
+#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:230
+#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:483
+#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:1013
+#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:430
#: cache/17/1730b41c1b94639a7bb894f0f6bbe405.php:74
#: cache/17/17a063cd6b023f6b3259fc5bb6f3383f.php:74
#: cache/9c/9cd9c506c8127381b3a38d63834ca951.php:68
-#: cache/8c/8c08891d370939702e3d45696c9e38d6.php:112
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:713
+#: cache/8c/8c08891d370939702e3d45696c9e38d6.php:117
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:783
#: cache/0b/0be3ce8babaac9062233441fb19b6502.php:68
#: cache/4c/4cf917c586e727b0fb8bbf89dacfd02d.php:68
-#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:455
-#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:468
+#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:416
+#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:429
#: cache/53/53e83337eb2bf3e9523456dda845ffab.php:65
-#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:283
+#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:289
#: cache/70/70af2bbd82243291558c9b83caec5b48.php:312
#: cache/70/70af2bbd82243291558c9b83caec5b48.php:616
#: cache/70/70af2bbd82243291558c9b83caec5b48.php:785
@@ -10961,7 +11317,7 @@ msgid "Reassign all items this User owns to the selected User."
msgstr ""
#: cache/14/14220f2427744b387c8a9518e0bf00d2.php:57
-#: cache/14/14220f2427744b387c8a9518e0bf00d2.php:104
+#: cache/14/14220f2427744b387c8a9518e0bf00d2.php:108
#, no-php-format
msgid "Data Entry for %dataSetName%"
msgstr ""
@@ -10979,7 +11335,7 @@ msgid "Click to toggle between Data Edit and Multi Select modes"
msgstr ""
#: cache/14/14220f2427744b387c8a9518e0bf00d2.php:79
-#: cache/14/14220f2427744b387c8a9518e0bf00d2.php:205
+#: cache/14/14220f2427744b387c8a9518e0bf00d2.php:211
msgid "Multi Select Mode"
msgstr ""
@@ -10992,21 +11348,21 @@ msgid "Delete Rows"
msgstr ""
#: cache/14/14220f2427744b387c8a9518e0bf00d2.php:91
-#: lib/Controller/DataSet.php:213
+#: lib/Controller/DataSet.php:226
msgid "View Columns"
msgstr ""
-#: cache/14/14220f2427744b387c8a9518e0bf00d2.php:112
-#: cache/14/14220f2427744b387c8a9518e0bf00d2.php:201
+#: cache/14/14220f2427744b387c8a9518e0bf00d2.php:116
+#: cache/14/14220f2427744b387c8a9518e0bf00d2.php:207
msgid "Edit Mode"
msgstr ""
-#: cache/14/14220f2427744b387c8a9518e0bf00d2.php:114
-#: cache/14/14220f2427744b387c8a9518e0bf00d2.php:209
+#: cache/14/14220f2427744b387c8a9518e0bf00d2.php:118
+#: cache/14/14220f2427744b387c8a9518e0bf00d2.php:215
msgid "Click on any row to edit"
msgstr ""
-#: cache/14/14220f2427744b387c8a9518e0bf00d2.php:213
+#: cache/14/14220f2427744b387c8a9518e0bf00d2.php:219
msgid "Select one or more rows to delete"
msgstr ""
@@ -11057,61 +11413,61 @@ msgstr ""
msgid "Saved Reports"
msgstr ""
-#: cache/e5/e5e5434fb79a5ac6a7fd60b41343e917.php:81
-#: cache/fb/fb12c90670ac105c9ea03fcc99876e87.php:155
+#: cache/e5/e5e5434fb79a5ac6a7fd60b41343e917.php:85
+#: cache/fb/fb12c90670ac105c9ea03fcc99876e87.php:159
msgid "Report Schedule"
msgstr ""
-#: cache/e5/e5e5434fb79a5ac6a7fd60b41343e917.php:85
+#: cache/e5/e5e5434fb79a5ac6a7fd60b41343e917.php:89
msgid "The report will be available 6AM every day."
msgstr ""
-#: cache/e5/e5e5434fb79a5ac6a7fd60b41343e917.php:142
-#: cache/fb/fb12c90670ac105c9ea03fcc99876e87.php:127
+#: cache/e5/e5e5434fb79a5ac6a7fd60b41343e917.php:146
+#: cache/fb/fb12c90670ac105c9ea03fcc99876e87.php:131
msgid "Show items belong to a report."
msgstr ""
-#: cache/e5/e5e5434fb79a5ac6a7fd60b41343e917.php:155
+#: cache/e5/e5e5434fb79a5ac6a7fd60b41343e917.php:159
msgid "Only my schedules?"
msgstr ""
-#: cache/e5/e5e5434fb79a5ac6a7fd60b41343e917.php:174
+#: cache/e5/e5e5434fb79a5ac6a7fd60b41343e917.php:178
msgid "Report Name"
msgstr ""
-#: cache/e5/e5e5434fb79a5ac6a7fd60b41343e917.php:186
-#: cache/f0/f03a3c9d913ba87fcd4d1925058f2671.php:138
+#: cache/e5/e5e5434fb79a5ac6a7fd60b41343e917.php:190
+#: cache/f0/f03a3c9d913ba87fcd4d1925058f2671.php:136
msgid "Last Run"
msgstr ""
-#: cache/e5/e5e5434fb79a5ac6a7fd60b41343e917.php:190
-#: cache/f0/f03a3c9d913ba87fcd4d1925058f2671.php:130
+#: cache/e5/e5e5434fb79a5ac6a7fd60b41343e917.php:194
+#: cache/f0/f03a3c9d913ba87fcd4d1925058f2671.php:128
msgid "Next Run"
msgstr ""
-#: cache/e5/e5e5434fb79a5ac6a7fd60b41343e917.php:194
+#: cache/e5/e5e5434fb79a5ac6a7fd60b41343e917.php:198
msgid "Previous Run"
msgstr ""
-#: cache/e5/e5e5434fb79a5ac6a7fd60b41343e917.php:198
+#: cache/e5/e5e5434fb79a5ac6a7fd60b41343e917.php:202
#: cache/eb/ebcff77a4e266af34134679c91af4d2d.php:130
-#: cache/05/05600263dc8230138bb0f89338bbef69.php:94
-#: cache/05/05600263dc8230138bb0f89338bbef69.php:130
-#: cache/f0/f03a3c9d913ba87fcd4d1925058f2671.php:122
+#: cache/05/05600263dc8230138bb0f89338bbef69.php:142
+#: cache/05/05600263dc8230138bb0f89338bbef69.php:178
+#: cache/f0/f03a3c9d913ba87fcd4d1925058f2671.php:120
msgid "Active"
msgstr ""
-#: cache/e5/e5e5434fb79a5ac6a7fd60b41343e917.php:202
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:916
+#: cache/e5/e5e5434fb79a5ac6a7fd60b41343e917.php:206
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:990
msgid "Start time"
msgstr ""
-#: cache/e5/e5e5434fb79a5ac6a7fd60b41343e917.php:206
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:920
+#: cache/e5/e5e5434fb79a5ac6a7fd60b41343e917.php:210
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:994
msgid "End time"
msgstr ""
-#: cache/e5/e5e5434fb79a5ac6a7fd60b41343e917.php:210
+#: cache/e5/e5e5434fb79a5ac6a7fd60b41343e917.php:214
msgid "Failed Message"
msgstr ""
@@ -11148,6 +11504,16 @@ msgid ""
"would like to cache results."
msgstr ""
+#: cache/e5/e5c3ab4b73473f74411baea5286e8687.php:137
+msgid "Schedule Criteria Cache Period"
+msgstr ""
+
+#: cache/e5/e5c3ab4b73473f74411baea5286e8687.php:142
+msgid ""
+"If a player has weather based schedule criteria, how many hours should this "
+"connector cache that weather data for?"
+msgstr ""
+
#: cache/2d/2d67b2aac34d9a8cd68e4dad8db97260.php:55
msgid "Categories for "
msgstr ""
@@ -11160,24 +11526,25 @@ msgstr ""
msgid "Add Category"
msgstr ""
-#: cache/2d/2d67b2aac34d9a8cd68e4dad8db97260.php:91
+#: cache/2d/2d67b2aac34d9a8cd68e4dad8db97260.php:96
msgid "Menu Board Categories for"
msgstr ""
-#: cache/2d/2d67b2aac34d9a8cd68e4dad8db97260.php:230
+#: cache/2d/2d67b2aac34d9a8cd68e4dad8db97260.php:237
#: cache/09/09fa06e4cbb20e5f65e2075bff1da423.php:566
-#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:676
-#: cache/04/04b4b8b9bb93bf0580422332c142abff.php:306
+#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:672
+#: cache/04/04b4b8b9bb93bf0580422332c142abff.php:313
#: cache/25/257d7652c0b04ca6e480ad5c9beaa3c2.php:140
-#: cache/49/49b3c02c876e8a464a75e1682c064115.php:365
-#: cache/49/49b3c02c876e8a464a75e1682c064115.php:371
-#: cache/34/3453edc522f8d2c6d1d154ad55500693.php:334
-#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:449
-#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:606
-#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:336
-#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:475
-#: cache/8b/8bc5b04498de39f4571d14d541bd6a91.php:213
-#: cache/8b/8bc5b04498de39f4571d14d541bd6a91.php:323
+#: cache/49/49b3c02c876e8a464a75e1682c064115.php:395
+#: cache/49/49b3c02c876e8a464a75e1682c064115.php:401
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2268
+#: cache/34/3453edc522f8d2c6d1d154ad55500693.php:339
+#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:453
+#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:612
+#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:339
+#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:480
+#: cache/8b/8bc5b04498de39f4571d14d541bd6a91.php:216
+#: cache/8b/8bc5b04498de39f4571d14d541bd6a91.php:328
msgid "Thumbnail"
msgstr ""
@@ -11211,12 +11578,12 @@ msgid "What type of Campaign would you like to create?"
msgstr ""
#: cache/f5/f5c7640aa7fbb9ab7e2caec1a409d7c2.php:142
-#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:178
+#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:183
msgid "Layout list"
msgstr ""
#: cache/f5/f5c7640aa7fbb9ab7e2caec1a409d7c2.php:142
-#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:178
+#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:183
msgid "Ad Campaign"
msgstr ""
@@ -11279,8 +11646,8 @@ msgid "Block"
msgstr ""
#: cache/f5/f5c7640aa7fbb9ab7e2caec1a409d7c2.php:274
-#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:301
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2785
+#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:304
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3108
#: cache/fe/fe92f223f863fb1896ced5bd33b8c256.php:186
msgid "Target Type"
msgstr ""
@@ -11291,33 +11658,34 @@ msgid "How would you like to set the target for this campaign?"
msgstr ""
#: cache/f5/f5c7640aa7fbb9ab7e2caec1a409d7c2.php:283
-#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:309
-#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:510
+#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:312
+#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:515
#: cache/fe/fe92f223f863fb1896ced5bd33b8c256.php:195
#: cache/fe/fe92f223f863fb1896ced5bd33b8c256.php:466
msgid "Plays"
msgstr ""
#: cache/f5/f5c7640aa7fbb9ab7e2caec1a409d7c2.php:283
-#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:515
+#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:520
#: cache/fe/fe92f223f863fb1896ced5bd33b8c256.php:195
msgid "Budget"
msgstr ""
#: cache/f5/f5c7640aa7fbb9ab7e2caec1a409d7c2.php:283
-#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:317
-#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:520
+#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:320
+#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:525
#: cache/fe/fe92f223f863fb1896ced5bd33b8c256.php:195
#: cache/fe/fe92f223f863fb1896ced5bd33b8c256.php:486
-#: cache/60/6096ddd2496c1f25a148669f286abbeb.php:271
+#: cache/60/6096ddd2496c1f25a148669f286abbeb.php:522
+#: cache/60/6096ddd2496c1f25a148669f286abbeb.php:593
msgid "Impressions"
msgstr ""
#: cache/f5/f5c7640aa7fbb9ab7e2caec1a409d7c2.php:292
-#: cache/77/774dde73b0eb7965a680b8a52776fa6b.php:246
-#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:305
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1261
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2789
+#: cache/77/774dde73b0eb7965a680b8a52776fa6b.php:253
+#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:308
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1351
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3112
#: cache/fe/fe92f223f863fb1896ced5bd33b8c256.php:204
msgid "Target"
msgstr ""
@@ -11363,7 +11731,7 @@ msgid ""
msgstr ""
#: cache/eb/eb722a59dac7c3fddd70255e2c4c5f1d.php:56
-#: lib/Controller/DataSet.php:264 lib/Controller/Module.php:129
+#: lib/Controller/DataSet.php:309 lib/Controller/Module.php:129
msgid "Clear Cache"
msgstr ""
@@ -11375,7 +11743,7 @@ msgstr ""
msgid "Schedule Event"
msgstr ""
-#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:124
+#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:128
#: cache/38/38e5186bcfa9917c4ec02d8c626e2552.php:115
#: cache/0e/0e02100c0f3615b819bb09d3e2a17b8a.php:115
msgid ""
@@ -11384,57 +11752,57 @@ msgid ""
"days"
msgstr ""
-#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:276
+#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:284
msgid "Use Relative time?"
msgstr ""
-#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:281
+#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:289
msgid ""
"Switch between relative time inputs and Date pickers for start and end time."
msgstr ""
-#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:291
+#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:299
#: cache/04/04b11bf7b7a8190d66899471a8930ffd.php:143
-#: lib/Report/TimeDisconnectedSummary.php:309
+#: lib/Report/TimeDisconnectedSummary.php:311
msgid "Hours"
msgstr ""
-#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:296
+#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:304
msgid "Hours this event should be scheduled for"
msgstr ""
-#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:306
+#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:314
#: cache/04/04b11bf7b7a8190d66899471a8930ffd.php:138
-#: lib/Report/TimeDisconnectedSummary.php:312
+#: lib/Report/TimeDisconnectedSummary.php:314
msgid "Minutes"
msgstr ""
-#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:311
+#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:319
msgid "Minutes this event should be scheduled for"
msgstr ""
-#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:321
+#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:329
#: cache/04/04b11bf7b7a8190d66899471a8930ffd.php:133
msgid "Seconds"
msgstr ""
-#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:326
+#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:334
msgid "Seconds this event should be scheduled for"
msgstr ""
-#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:336
+#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:344
msgid ""
"Your event will be scheduled from [fromDt] to [toDt] in each of your "
"selected Displays respective timezones"
msgstr ""
-#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:341
+#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:349
msgid ""
"Your event will be scheduled from [fromDt] to [toDt] in the CMS timezone, "
"please check this covers each of your Displays in their respective timezones."
msgstr ""
-#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:681
+#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:731
#: cache/38/38e5186bcfa9917c4ec02d8c626e2552.php:411
#: cache/0e/0e02100c0f3615b819bb09d3e2a17b8a.php:458
msgid ""
@@ -11442,7 +11810,7 @@ msgid ""
"repeated."
msgstr ""
-#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:736
+#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:786
#: cache/38/38e5186bcfa9917c4ec02d8c626e2552.php:466
#: cache/0e/0e02100c0f3615b819bb09d3e2a17b8a.php:513
msgid ""
@@ -11470,17 +11838,17 @@ msgstr ""
#: cache/9f/9f9a142004ca4a1c914a4395fe586017.php:125
#: cache/a4/a4b5f52b1992bb349e8a30b19ff24645.php:80
-#: lib/Controller/Playlist.php:1703 lib/Controller/Library.php:2123
-#: lib/Controller/Layout.php:1657
+#: lib/Controller/Playlist.php:1706 lib/Controller/Library.php:2152
+#: lib/Controller/Layout.php:1681
msgid "Design"
msgstr ""
#: cache/9f/9f9a142004ca4a1c914a4395fe586017.php:143
#: cache/a4/a4b5f52b1992bb349e8a30b19ff24645.php:89
#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:55
-#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:89
-#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:260
-#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:1579
+#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:94
+#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:265
+#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:1544
#: cache/8e/8e4c9c1886827e5f797c4436d4051e48.php:326
msgid "Campaigns"
msgstr ""
@@ -11494,33 +11862,33 @@ msgstr ""
#: cache/9f/9f9a142004ca4a1c914a4395fe586017.php:269
#: cache/a4/a4b5f52b1992bb349e8a30b19ff24645.php:180
#: cache/b2/b21687508ff5b0bb637fdbd3f8c0d3c6.php:58
-#: cache/b2/b21687508ff5b0bb637fdbd3f8c0d3c6.php:92
+#: cache/b2/b21687508ff5b0bb637fdbd3f8c0d3c6.php:97
msgid "DataSets"
msgstr ""
#: cache/9f/9f9a142004ca4a1c914a4395fe586017.php:284
#: cache/a4/a4b5f52b1992bb349e8a30b19ff24645.php:193
#: cache/f3/f3286f195f132c53823b9bb1068e5cc9.php:55
-#: cache/f3/f3286f195f132c53823b9bb1068e5cc9.php:89
+#: cache/f3/f3286f195f132c53823b9bb1068e5cc9.php:94
msgid "Menu Boards"
msgstr ""
#: cache/9f/9f9a142004ca4a1c914a4395fe586017.php:350
#: cache/a4/a4b5f52b1992bb349e8a30b19ff24645.php:232
#: cache/23/238f0b98d7f96aca9a850e8b230fe1fb.php:56
-#: cache/23/238f0b98d7f96aca9a850e8b230fe1fb.php:96
-#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:338
-#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:351
-#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:536
-#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:1536
+#: cache/23/238f0b98d7f96aca9a850e8b230fe1fb.php:95
+#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:321
+#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:334
+#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:497
+#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:1501
#: cache/cb/cbba241d915c7e565fbb58c637b124a8.php:140
-#: lib/Controller/Display.php:1133
+#: lib/Controller/Display.php:1134
msgid "Display Groups"
msgstr ""
#: cache/9f/9f9a142004ca4a1c914a4395fe586017.php:365
#: cache/d2/d2fa8bed4d1e30769527c78081442bfc.php:56
-#: cache/d2/d2fa8bed4d1e30769527c78081442bfc.php:96
+#: cache/d2/d2fa8bed4d1e30769527c78081442bfc.php:95
#: cache/a4/a4b5f52b1992bb349e8a30b19ff24645.php:245
msgid "Sync Groups"
msgstr ""
@@ -11543,30 +11911,30 @@ msgstr ""
#: cache/9f/9f9a142004ca4a1c914a4395fe586017.php:511
#: cache/a4/a4b5f52b1992bb349e8a30b19ff24645.php:341
#: cache/fb/fb7b914f174fce1e94ee3971e92a92dd.php:55
-#: cache/fb/fb7b914f174fce1e94ee3971e92a92dd.php:96
+#: cache/fb/fb7b914f174fce1e94ee3971e92a92dd.php:94
#: cache/18/182efb17b49d552c0a40888c354c91f9.php:163
-#: lib/Controller/User.php:379
+#: lib/Controller/User.php:381
msgid "User Groups"
msgstr ""
#: cache/9f/9f9a142004ca4a1c914a4395fe586017.php:571
#: cache/41/411fdd8ac98835cf7ed952b29cda0628.php:56
-#: cache/41/411fdd8ac98835cf7ed952b29cda0628.php:86
+#: cache/41/411fdd8ac98835cf7ed952b29cda0628.php:90
#: cache/a4/a4b5f52b1992bb349e8a30b19ff24645.php:367
msgid "Applications"
msgstr ""
#: cache/9f/9f9a142004ca4a1c914a4395fe586017.php:631
#: cache/a4/a4b5f52b1992bb349e8a30b19ff24645.php:393
-#: cache/82/823c47cd9e81aebabd5478c5693b1131.php:54
-#: cache/82/823c47cd9e81aebabd5478c5693b1131.php:66
+#: cache/82/823c47cd9e81aebabd5478c5693b1131.php:55
+#: cache/82/823c47cd9e81aebabd5478c5693b1131.php:81
msgid "Transitions"
msgstr ""
#: cache/9f/9f9a142004ca4a1c914a4395fe586017.php:661
#: cache/a4/a4b5f52b1992bb349e8a30b19ff24645.php:406
#: cache/f0/f03a3c9d913ba87fcd4d1925058f2671.php:55
-#: cache/f0/f03a3c9d913ba87fcd4d1925058f2671.php:94
+#: cache/f0/f03a3c9d913ba87fcd4d1925058f2671.php:92
msgid "Tasks"
msgstr ""
@@ -11597,8 +11965,8 @@ msgstr ""
#: cache/9f/9f9a142004ca4a1c914a4395fe586017.php:916
#: cache/a4/a4b5f52b1992bb349e8a30b19ff24645.php:540
-#: cache/05/05600263dc8230138bb0f89338bbef69.php:54
-#: cache/05/05600263dc8230138bb0f89338bbef69.php:66
+#: cache/05/05600263dc8230138bb0f89338bbef69.php:55
+#: cache/05/05600263dc8230138bb0f89338bbef69.php:114
msgid "Sessions"
msgstr ""
@@ -11607,40 +11975,53 @@ msgstr ""
msgid "Audit Trail"
msgstr ""
-#: cache/9f/9fdba8e23ed4ab1fa30c86aed8306cba.php:149
+#: cache/9f/9f9a142004ca4a1c914a4395fe586017.php:973
+#: cache/6e/6e8678de8ffffc5ed3b935eb9c3f6eb0.php:295
+#: cache/a4/a4b5f52b1992bb349e8a30b19ff24645.php:583
+msgid "Developer"
+msgstr ""
+
+#: cache/9f/9f9a142004ca4a1c914a4395fe586017.php:983
+#: cache/a4/a4b5f52b1992bb349e8a30b19ff24645.php:593
+#: cache/97/97f2c018825ccdd326aad4a0b160725e.php:56
+#: cache/97/97f2c018825ccdd326aad4a0b160725e.php:99
+msgid "Module Templates"
+msgstr ""
+
+#: cache/9f/9fdba8e23ed4ab1fa30c86aed8306cba.php:151
msgid "Connect with the Central Authentication Server"
msgstr ""
-#: cache/9f/9fdba8e23ed4ab1fa30c86aed8306cba.php:170
+#: cache/9f/9fdba8e23ed4ab1fa30c86aed8306cba.php:172
msgid "CAS Login"
msgstr ""
-#: cache/9f/9fdba8e23ed4ab1fa30c86aed8306cba.php:208
+#: cache/9f/9fdba8e23ed4ab1fa30c86aed8306cba.php:210
msgid "Please provide your credentials"
msgstr ""
-#: cache/9f/9fdba8e23ed4ab1fa30c86aed8306cba.php:238
+#: cache/9f/9fdba8e23ed4ab1fa30c86aed8306cba.php:240
msgid "Login"
msgstr ""
-#: cache/9f/9fdba8e23ed4ab1fa30c86aed8306cba.php:245
+#: cache/9f/9fdba8e23ed4ab1fa30c86aed8306cba.php:247
msgid "Forgotten your password?"
msgstr ""
-#: cache/9f/9fdba8e23ed4ab1fa30c86aed8306cba.php:276
+#: cache/9f/9fdba8e23ed4ab1fa30c86aed8306cba.php:278
msgid "Please provide your user name"
msgstr ""
-#: cache/9f/9fdba8e23ed4ab1fa30c86aed8306cba.php:301
+#: cache/9f/9fdba8e23ed4ab1fa30c86aed8306cba.php:303
msgid "Send Reset"
msgstr ""
-#: cache/9f/9fdba8e23ed4ab1fa30c86aed8306cba.php:306
+#: cache/9f/9fdba8e23ed4ab1fa30c86aed8306cba.php:308
msgid "Login instead?"
msgstr ""
-#: cache/9f/9fdba8e23ed4ab1fa30c86aed8306cba.php:315
-#: cache/ad/ad54e0056cae6c1c9fdb33f368333c1e.php:125
+#: cache/9f/9fdba8e23ed4ab1fa30c86aed8306cba.php:317
+#: cache/ad/ad54e0056cae6c1c9fdb33f368333c1e.php:127
#, no-php-format
msgid "Version %version%"
msgstr ""
@@ -11656,7 +12037,7 @@ msgstr ""
#: cache/03/039a03a53ca9c115563cba3023033457.php:105
#: cache/0a/0a340a0ca0d8bada06401bf9fd7c6bf2.php:105
-#: cache/e3/e3e074211e42eadb55ae8cb6ceeaa722.php:155
+#: cache/e3/e3e074211e42eadb55ae8cb6ceeaa722.php:159
msgid "Values"
msgstr ""
@@ -11756,83 +12137,77 @@ msgid ""
"Which key should activate the Player information screen? A single character."
msgstr ""
-#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:321
-#: cache/49/49b3c02c876e8a464a75e1682c064115.php:280
-#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:348
-msgid "Audit"
-msgstr ""
-
-#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:329
+#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:359
msgid "Log file path name."
msgstr ""
-#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:332
+#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:362
msgid ""
"Create a log file on disk in this location. Please enter a fully qualified "
"path."
msgstr ""
-#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:344
+#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:374
msgid "Show the icon in the task bar?"
msgstr ""
-#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:347
+#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:377
msgid "Should the application icon be shown in the task bar?"
msgstr ""
-#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:355
+#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:385
msgid "Cursor Start Position"
msgstr ""
-#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:358
+#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:388
msgid "The position of the cursor when the Player starts up."
msgstr ""
-#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:361
+#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:391
msgid "Unchanged"
msgstr ""
-#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:361
+#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:391
msgid "Top Left"
msgstr ""
-#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:361
+#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:391
msgid "Top Right"
msgstr ""
-#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:361
+#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:391
msgid "Bottom Left"
msgstr ""
-#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:361
+#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:391
msgid "Bottom Right"
msgstr ""
-#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:369
+#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:399
msgid "Enable Double Buffering"
msgstr ""
-#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:372
+#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:402
msgid ""
"Double buffering helps smooth the playback but should be disabled if "
"graphics errors occur"
msgstr ""
-#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:380
+#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:410
msgid "Duration for Empty Layouts"
msgstr ""
-#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:383
+#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:413
msgid ""
"If an empty layout is detected how long (in seconds) should it remain on "
"screen? Must be greater than 1."
msgstr ""
-#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:391
+#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:421
msgid "Enable Mouse"
msgstr ""
-#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:394
+#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:424
msgid "Enable the mouse."
msgstr ""
@@ -11911,143 +12286,143 @@ msgid "Displays Page"
msgstr ""
#: cache/09/09fa06e4cbb20e5f65e2075bff1da423.php:473
-#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:197
-#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:573
+#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:195
+#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:569
msgid "Authorised?"
msgstr ""
#: cache/09/09fa06e4cbb20e5f65e2075bff1da423.php:477
-#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:577
+#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:573
msgid "Current Layout"
msgstr ""
#: cache/09/09fa06e4cbb20e5f65e2075bff1da423.php:481
-#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:581
+#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:577
msgid "Storage Available"
msgstr ""
#: cache/09/09fa06e4cbb20e5f65e2075bff1da423.php:485
-#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:585
+#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:581
msgid "Storage Total"
msgstr ""
#: cache/09/09fa06e4cbb20e5f65e2075bff1da423.php:489
-#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:589
+#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:585
msgid "Storage Free %"
msgstr ""
#: cache/09/09fa06e4cbb20e5f65e2075bff1da423.php:495
-#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:413
-#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:597
+#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:411
+#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:593
#: cache/7d/7d8878cf40b2a074d7a7dd990858a580.php:90
#: cache/49/49b3c02c876e8a464a75e1682c064115.php:187
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1744
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1766
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1888
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1914
#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:280
#: cache/c5/c52b8109558dd3acc604e183177113c8.php:288
-#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:247
-#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:445
-#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:257
-#: cache/8b/8bc5b04498de39f4571d14d541bd6a91.php:209
+#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:253
+#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:449
+#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:262
+#: cache/8b/8bc5b04498de39f4571d14d541bd6a91.php:212
msgid "Orientation"
msgstr ""
#: cache/09/09fa06e4cbb20e5f65e2075bff1da423.php:514
-#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:616
+#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:612
#: cache/70/70af2bbd82243291558c9b83caec5b48.php:770
msgid "Interleave Default"
msgstr ""
#: cache/09/09fa06e4cbb20e5f65e2075bff1da423.php:518
-#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:620
+#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:616
msgid "Email Alert"
msgstr ""
#: cache/09/09fa06e4cbb20e5f65e2075bff1da423.php:526
-#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:320
-#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:628
-#: cache/05/05600263dc8230138bb0f89338bbef69.php:126
+#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:318
+#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:624
+#: cache/05/05600263dc8230138bb0f89338bbef69.php:174
msgid "Last Accessed"
msgstr ""
#: cache/09/09fa06e4cbb20e5f65e2075bff1da423.php:530
-#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:300
-#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:632
+#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:298
+#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:628
msgid "Display Profile"
msgstr ""
#: cache/09/09fa06e4cbb20e5f65e2075bff1da423.php:538
-#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:644
+#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:640
msgid "Device Name"
msgstr ""
#: cache/09/09fa06e4cbb20e5f65e2075bff1da423.php:542
-#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:403
-#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:648
-#: cache/0e/0ed8020e97c517a55ad881cfc5dd0b4c.php:155
-#: cache/0e/0ed8020e97c517a55ad881cfc5dd0b4c.php:200
-#: cache/05/05600263dc8230138bb0f89338bbef69.php:138
+#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:401
+#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:644
+#: cache/0e/0ed8020e97c517a55ad881cfc5dd0b4c.php:153
+#: cache/0e/0ed8020e97c517a55ad881cfc5dd0b4c.php:198
+#: cache/05/05600263dc8230138bb0f89338bbef69.php:186
msgid "IP Address"
msgstr ""
#: cache/09/09fa06e4cbb20e5f65e2075bff1da423.php:546
-#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:393
-#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:652
+#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:391
+#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:648
msgid "Mac Address"
msgstr ""
#: cache/09/09fa06e4cbb20e5f65e2075bff1da423.php:562
-#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:672
+#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:668
msgid "Screen shot?"
msgstr ""
#: cache/09/09fa06e4cbb20e5f65e2075bff1da423.php:570
-#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:680
+#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:676
msgid "CMS Transfer?"
msgstr ""
#: cache/09/09fa06e4cbb20e5f65e2075bff1da423.php:578
-#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:688
+#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:684
msgid "Last Command"
msgstr ""
#: cache/09/09fa06e4cbb20e5f65e2075bff1da423.php:582
-#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:692
+#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:688
msgid "XMR Registered"
msgstr ""
#: cache/09/09fa06e4cbb20e5f65e2075bff1da423.php:586
-#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:438
-#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:696
+#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:436
+#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:692
msgid "Commercial Licence"
msgstr ""
#: cache/09/09fa06e4cbb20e5f65e2075bff1da423.php:598
-#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:756
-#: cache/d2/d2fa8bed4d1e30769527c78081442bfc.php:194
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1790
-#: cache/23/238f0b98d7f96aca9a850e8b230fe1fb.php:307
-#: cache/f3/f3286f195f132c53823b9bb1068e5cc9.php:214
+#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:752
+#: cache/d2/d2fa8bed4d1e30769527c78081442bfc.php:191
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1938
+#: cache/23/238f0b98d7f96aca9a850e8b230fe1fb.php:305
+#: cache/f3/f3286f195f132c53823b9bb1068e5cc9.php:217
msgid "Modified Date"
msgstr ""
#: cache/09/09fa06e4cbb20e5f65e2075bff1da423.php:602
-#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:760
+#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:756
msgid "Faults?"
msgstr ""
-#: cache/09/09fa06e4cbb20e5f65e2075bff1da423.php:1265
-#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:1147
+#: cache/09/09fa06e4cbb20e5f65e2075bff1da423.php:1267
+#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:1165
msgid "VNC to this Display"
msgstr ""
-#: cache/09/09fa06e4cbb20e5f65e2075bff1da423.php:1275
-#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:1157
+#: cache/09/09fa06e4cbb20e5f65e2075bff1da423.php:1277
+#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:1175
msgid "TeamViewer to this Display"
msgstr ""
-#: cache/09/09fa06e4cbb20e5f65e2075bff1da423.php:1286
-#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:1168
+#: cache/09/09fa06e4cbb20e5f65e2075bff1da423.php:1288
+#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:1186
msgid "Webkey to this Display"
msgstr ""
@@ -12056,8 +12431,8 @@ msgid "Delete this DataSet?"
msgstr ""
#: cache/75/751b2a96c8637d98a362ec0fd7c3d205.php:88
-#: cache/d2/d2fa8bed4d1e30769527c78081442bfc.php:306
-#: cache/23/238f0b98d7f96aca9a850e8b230fe1fb.php:569
+#: cache/d2/d2fa8bed4d1e30769527c78081442bfc.php:315
+#: cache/23/238f0b98d7f96aca9a850e8b230fe1fb.php:573
#: cache/58/581725fc73e075b270eb8c5ca975df6c.php:88
#: cache/c6/c6570004e7b23a90548bf6f9c53600f0.php:88
msgid "Are you sure you want to delete?"
@@ -12074,12 +12449,12 @@ msgid ""
msgstr ""
#: cache/24/249edab771342e4742e81d0f76c7ebbc.php:56
-#: lib/Controller/Display.php:1216 lib/Controller/Display.php:1229
+#: lib/Controller/Display.php:1217 lib/Controller/Display.php:1230
msgid "Transfer to another CMS"
msgstr ""
#: cache/24/249edab771342e4742e81d0f76c7ebbc.php:88
-#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:1757
+#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:1780
msgid ""
"Please note: Once the CMS Address and Key are authenticated in this form the "
"Display will attempt to register with the CMS Instance details entered. Once "
@@ -12099,7 +12474,7 @@ msgid "New CMS Key"
msgstr ""
#: cache/24/249edab771342e4742e81d0f76c7ebbc.php:110
-#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:1784
+#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:1807
msgid "CMS Secret Key associated with the provided new CMS Address"
msgstr ""
@@ -12108,7 +12483,7 @@ msgid "Two Factor Code"
msgstr ""
#: cache/24/249edab771342e4742e81d0f76c7ebbc.php:121
-#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:1797
+#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:1820
msgid "Please enter your Two Factor authentication code"
msgstr ""
@@ -12120,179 +12495,191 @@ msgstr ""
msgid "Add Display (Code)"
msgstr ""
-#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:80
-#: cache/d2/d2fa8bed4d1e30769527c78081442bfc.php:79
-#: cache/fb/fb7b914f174fce1e94ee3971e92a92dd.php:80
-#: cache/23/238f0b98d7f96aca9a850e8b230fe1fb.php:79
-#: cache/53/53221a3cb3187e41cde32cfa796d45a7.php:95
-msgid "Refresh the Table"
-msgstr ""
-
-#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:146
-#: cache/37/37f12704cf17017038d73d9ee1907d04.php:456
-#: lib/Controller/Display.php:1295
+#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:144
+#: cache/37/37f12704cf17017038d73d9ee1907d04.php:484
+#: lib/Controller/Display.php:1296
msgid "Up to date"
msgstr ""
-#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:151
-#: lib/Controller/Display.php:1296
+#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:149
+#: lib/Controller/Display.php:1297
msgid "Downloading"
msgstr ""
-#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:156
-#: lib/Controller/Display.php:1297
+#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:154
+#: lib/Controller/Display.php:1298
msgid "Out of date"
msgstr ""
-#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:172
-#: cache/53/53221a3cb3187e41cde32cfa796d45a7.php:187
+#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:170
+#: cache/53/53221a3cb3187e41cde32cfa796d45a7.php:205
msgid "Logged In?"
msgstr ""
-#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:222
+#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:220
msgid "XMR Registered?"
msgstr ""
-#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:281
+#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:279
#: cache/04/04b11bf7b7a8190d66899471a8930ffd.php:305
-#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:513
+#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:527
#: cache/26/26b74efc874b3a8a5a7cf3ed2a22c6ba.php:455
#: cache/06/064860d0048e253d534fdf8acb4ec0bd.php:168
-#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:190
+#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:196
#: cache/cb/cbba241d915c7e565fbb58c637b124a8.php:276
msgid "Display Group"
msgstr ""
-#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:330
+#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:328
msgid "Player Type"
msgstr ""
-#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:335
+#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:333
msgid "Android"
msgstr ""
-#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:340
+#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:338
msgid "Windows"
msgstr ""
-#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:345
+#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:343
msgid "webOS"
msgstr ""
-#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:350
+#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:348
msgid "Tizen"
msgstr ""
-#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:355
+#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:353
msgid "Linux"
msgstr ""
-#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:373
+#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:371
msgid "Player Code"
msgstr ""
-#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:383
-#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:740
+#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:381
+#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:736
#: cache/26/26b74efc874b3a8a5a7cf3ed2a22c6ba.php:492
#: cache/70/70af2bbd82243291558c9b83caec5b48.php:589
msgid "Custom ID"
msgstr ""
-#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:418
+#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:416
#: cache/49/49b3c02c876e8a464a75e1682c064115.php:193
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1800
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1948
#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:286
#: cache/c5/c52b8109558dd3acc604e183177113c8.php:297
-#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:254
-#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:264
+#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:260
+#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:269
msgid "Landscape"
msgstr ""
-#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:423
+#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:421
#: cache/49/49b3c02c876e8a464a75e1682c064115.php:193
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1804
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1952
#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:286
#: cache/c5/c52b8109558dd3acc604e183177113c8.php:300
-#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:257
-#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:267
+#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:263
+#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:272
msgid "Portrait"
msgstr ""
-#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:443
+#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:441
msgid "Licensed fully"
msgstr ""
-#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:448
+#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:446
msgid "Trial"
msgstr ""
-#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:453
+#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:451
msgid "Not licenced"
msgstr ""
-#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:458
+#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:456
msgid "Not applicable"
msgstr ""
-#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:475
+#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:473
msgid "Player supported?"
msgstr ""
-#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:536
-#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:682
+#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:532
+#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:647
msgid "Map"
msgstr ""
-#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:542
-#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:426
+#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:538
+#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:431
msgid "List"
msgstr ""
-#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:561
+#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:557
#: cache/bc/bc9a3e0798fa1ba064d681f1d6c69009.php:107
#: cache/70/70af2bbd82243291558c9b83caec5b48.php:409
msgid "Display Type"
msgstr ""
-#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:565
+#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:561
#: cache/70/70af2bbd82243291558c9b83caec5b48.php:443
msgid "Address"
msgstr ""
-#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:640
+#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:636
msgid "Supported?"
msgstr ""
-#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:660
+#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:656
#: cache/70/70af2bbd82243291558c9b83caec5b48.php:394
msgid "Languages"
msgstr ""
-#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:708
+#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:704
msgid "Screen Size"
msgstr ""
-#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:712
+#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:708
msgid "Is Mobile?"
msgstr ""
-#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:716
+#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:712
msgid "Outdoor?"
msgstr ""
-#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:744
+#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:740
msgid "Cost Per Play"
msgstr ""
-#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:748
+#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:744
msgid "Impressions Per Play"
msgstr ""
-#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:1771
+#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:760
+msgid "OS Version"
+msgstr ""
+
+#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:764
+msgid "OS SDK"
+msgstr ""
+
+#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:768
+msgid "Manufacturer"
+msgstr ""
+
+#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:772
+msgid "Brand"
+msgstr ""
+
+#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:776
+msgid "Model"
+msgstr ""
+
+#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:1794
msgid "Full URL to the new CMS, including https:// "
msgstr ""
-#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:1964
+#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:1998
msgid ""
"Adjust the times of this timer. To add or remove a day, use the Display "
"Profile."
@@ -12350,14 +12737,14 @@ msgstr ""
msgid "Output Audit Trail as CSV"
msgstr ""
-#: cache/a5/a593dac8469a0e585ebaf44442696494.php:57 lib/Controller/User.php:363
+#: cache/a5/a593dac8469a0e585ebaf44442696494.php:57 lib/Controller/User.php:365
msgid "Set home folder"
msgstr ""
#: cache/a5/a593dac8469a0e585ebaf44442696494.php:96
#: cache/0a/0ae358955c92f467744fc6cf0f8f5624.php:281
#: cache/cd/cdf12d9a1fc3b5db7965cfa8f9bb8d13.php:325
-#: cache/53/53221a3cb3187e41cde32cfa796d45a7.php:597
+#: cache/53/53221a3cb3187e41cde32cfa796d45a7.php:617
msgid "Set a home folder to use as the default folder for new content."
msgstr ""
@@ -12382,7 +12769,7 @@ msgid ""
msgstr ""
#: cache/7d/7d8878cf40b2a074d7a7dd990858a580.php:97
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1782
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1930
msgid "File Size"
msgstr ""
@@ -12392,6 +12779,7 @@ msgstr ""
#: cache/04/04b11bf7b7a8190d66899471a8930ffd.php:55
#: cache/04/04b11bf7b7a8190d66899471a8930ffd.php:93
+#: cache/66/664c6c931a53dbf67110ec2cb80223cf.php:159
msgid "Logs"
msgstr ""
@@ -12400,8 +12788,6 @@ msgid "Truncate the Log"
msgstr ""
#: cache/04/04b11bf7b7a8190d66899471a8930ffd.php:77
-#: cache/0e/0ed8020e97c517a55ad881cfc5dd0b4c.php:75
-#: cache/f0/f03a3c9d913ba87fcd4d1925058f2671.php:78
msgid "Refresh the Log"
msgstr ""
@@ -12484,7 +12870,7 @@ msgid ""
msgstr ""
#: cache/04/0499f0242d314e52ef2aed46b4a0b1e9.php:140
-#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:520
+#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:481
msgid "Start"
msgstr ""
@@ -12517,7 +12903,7 @@ msgstr ""
#: cache/04/0499f0242d314e52ef2aed46b4a0b1e9.php:403
#: cache/04/0499f0242d314e52ef2aed46b4a0b1e9.php:493
#: cache/04/0499f0242d314e52ef2aed46b4a0b1e9.php:529
-#: cache/37/37f12704cf17017038d73d9ee1907d04.php:631
+#: cache/37/37f12704cf17017038d73d9ee1907d04.php:675
msgid "Previous"
msgstr ""
@@ -12609,24 +12995,24 @@ msgstr ""
msgid "Start again"
msgstr ""
-#: cache/04/0499f0242d314e52ef2aed46b4a0b1e9.php:646
+#: cache/04/0499f0242d314e52ef2aed46b4a0b1e9.php:651
msgid "Downloading file"
msgstr ""
-#: cache/04/0499f0242d314e52ef2aed46b4a0b1e9.php:661
+#: cache/04/0499f0242d314e52ef2aed46b4a0b1e9.php:666
msgid "Download selected items"
msgstr ""
-#: cache/04/0499f0242d314e52ef2aed46b4a0b1e9.php:676
-#: cache/04/0499f0242d314e52ef2aed46b4a0b1e9.php:680
+#: cache/04/0499f0242d314e52ef2aed46b4a0b1e9.php:681
+#: cache/04/0499f0242d314e52ef2aed46b4a0b1e9.php:685
msgid "Hide Environment checks"
msgstr ""
-#: cache/04/0499f0242d314e52ef2aed46b4a0b1e9.php:678
+#: cache/04/0499f0242d314e52ef2aed46b4a0b1e9.php:683
msgid "Show Environment checks"
msgstr ""
-#: cache/04/044378220c7594ff5591bed8818e8f1b.php:97
+#: cache/04/044378220c7594ff5591bed8818e8f1b.php:99
#, no-php-format
msgid "%themeName% Installation"
msgstr ""
@@ -12652,24 +13038,24 @@ msgstr ""
msgid "View Categories"
msgstr ""
-#: cache/04/04b4b8b9bb93bf0580422332c142abff.php:101
+#: cache/04/04b4b8b9bb93bf0580422332c142abff.php:106
msgid "Products for"
msgstr ""
-#: cache/04/04b4b8b9bb93bf0580422332c142abff.php:105
+#: cache/04/04b4b8b9bb93bf0580422332c142abff.php:110
msgid "in Menu Board"
msgstr ""
-#: cache/04/04b4b8b9bb93bf0580422332c142abff.php:215
-#: cache/d4/d41eb57456e7d0ead8c455e4652b975c.php:208
-#: cache/fd/fd08b6cb6765ac676b671e9c5a7afe27.php:208
+#: cache/04/04b4b8b9bb93bf0580422332c142abff.php:220
+#: cache/d4/d41eb57456e7d0ead8c455e4652b975c.php:167
+#: cache/fd/fd08b6cb6765ac676b671e9c5a7afe27.php:167
#: lib/Widget/DataType/Product.php:49
msgid "Availability"
msgstr ""
-#: cache/04/04b4b8b9bb93bf0580422332c142abff.php:219
-#: cache/d4/d41eb57456e7d0ead8c455e4652b975c.php:163
-#: cache/fd/fd08b6cb6765ac676b671e9c5a7afe27.php:163
+#: cache/04/04b4b8b9bb93bf0580422332c142abff.php:224
+#: cache/d4/d41eb57456e7d0ead8c455e4652b975c.php:232
+#: cache/fd/fd08b6cb6765ac676b671e9c5a7afe27.php:232
#: lib/Widget/DataType/Product.php:50
msgid "Allergy Information"
msgstr ""
@@ -12686,18 +13072,18 @@ msgid ""
msgstr ""
#: cache/88/88e10283780c820d9196a2e88b3b8e39.php:57
-#: cache/88/88e10283780c820d9196a2e88b3b8e39.php:94
+#: cache/88/88e10283780c820d9196a2e88b3b8e39.php:98
#, no-php-format
msgid "Columns for %dataSetName%"
msgstr ""
#: cache/88/88e10283780c820d9196a2e88b3b8e39.php:77
#: cache/88/88e10283780c820d9196a2e88b3b8e39.php:81
-#: lib/Controller/DataSet.php:202
+#: lib/Controller/DataSet.php:215
msgid "View Data"
msgstr ""
-#: cache/88/88e10283780c820d9196a2e88b3b8e39.php:124
+#: cache/88/88e10283780c820d9196a2e88b3b8e39.php:128
msgid "DataType"
msgstr ""
@@ -12705,108 +13091,126 @@ msgstr ""
msgid "Edit User Group"
msgstr ""
-#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:187
-#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:218
+#: cache/88/8836e166837e167ba9b26786f8a2b7ef.php:214
+msgid "Should members of this Group receive DataSet emails?"
+msgstr ""
+
+#: cache/88/8836e166837e167ba9b26786f8a2b7ef.php:229
+msgid "Should members of this Group receive Layout emails?"
+msgstr ""
+
+#: cache/88/8836e166837e167ba9b26786f8a2b7ef.php:259
+msgid "Should members of this Group receive Report emails?"
+msgstr ""
+
+#: cache/88/8836e166837e167ba9b26786f8a2b7ef.php:274
+msgid "Should members of this Group receive Schedule emails?"
+msgstr ""
+
+#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:189
+#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:232
msgid "Add DMA"
msgstr ""
-#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:212
+#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:226
msgid "Edit DMA"
msgstr ""
-#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:238
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:721
-#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:124
+#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:252
+#: cache/bf/bfa04d76ea96a772caeedcfdf9d70e40.php:81
+#: cache/66/664c6c931a53dbf67110ec2cb80223cf.php:81
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:791
+#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:131
#: cache/fe/fe92f223f863fb1896ced5bd33b8c256.php:82
-#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:646
+#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:611
msgid "Back"
msgstr ""
-#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:403
+#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:417
msgid "Are you sure you want to delete this DMA?"
msgstr ""
-#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:432
+#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:446
msgid "DMA deleted"
msgstr ""
-#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:461
+#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:475
msgid "Date/Time"
msgstr ""
-#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:465
+#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:479
#: cache/fe/fe92f223f863fb1896ced5bd33b8c256.php:400
msgid "Geofence"
msgstr ""
-#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:488
+#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:502
msgid "The Name of this DMA - (1 - 50 characters)"
msgstr ""
-#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:503
+#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:517
msgid "Set a priority for this DMA. Higher priorities take precedence."
msgstr ""
-#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:518
+#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:532
msgid "Which displays would you like this DMA to apply to?"
msgstr ""
-#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:531
+#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:545
#: cache/79/7925e7fdcb44e9a96c9b2b2e4814991e.php:154
msgid "Cost per Play"
msgstr ""
-#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:536
+#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:550
#: cache/70/70af2bbd82243291558c9b83caec5b48.php:508
msgid "The cost per play"
msgstr ""
-#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:547
+#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:561
#: cache/79/7925e7fdcb44e9a96c9b2b2e4814991e.php:162
msgid "Impression Source"
msgstr ""
-#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:561
+#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:575
msgid "What is the source of this impression figure?"
msgstr ""
-#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:569
+#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:583
#: cache/70/70af2bbd82243291558c9b83caec5b48.php:518
msgid "Impressions per play"
msgstr ""
-#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:574
+#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:588
#: cache/70/70af2bbd82243291558c9b83caec5b48.php:523
msgid "The impressions per play"
msgstr ""
-#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:590
+#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:604
msgid "Select the start date for this DMA"
msgstr ""
-#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:605
+#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:619
msgid "Select the end date for this DMA"
msgstr ""
-#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:615
+#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:629
#: cache/fe/fe92f223f863fb1896ced5bd33b8c256.php:396
-#: cache/fe/fe92f223f863fb1896ced5bd33b8c256.php:631
+#: cache/fe/fe92f223f863fb1896ced5bd33b8c256.php:636
msgid "Days of the week"
msgstr ""
-#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:620
+#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:634
msgid "Which days of the week should the DMA be active?"
msgstr ""
-#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:638
+#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:652
msgid "Select the start time for this DMA"
msgstr ""
-#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:653
+#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:667
msgid "Select the end time for this DMA"
msgstr ""
-#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:668
+#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:682
msgid "Draw areas on the map where you want this DMA to be active."
msgstr ""
@@ -12818,7 +13222,7 @@ msgstr ""
msgid "Are you sure you want to delete this Resolution? This cannot be undone"
msgstr ""
-#: cache/d5/d5080e01a5945887b95fc6e11b156bb8.php:118
+#: cache/d5/d5080e01a5945887b95fc6e11b156bb8.php:120
msgid ""
"The CMS is temporarily off-line as an upgrade is in progress. Please check "
"with your system administrator for updates or refresh your page in a few "
@@ -12826,8 +13230,8 @@ msgid ""
msgstr ""
#: cache/d5/d548e4848346b34fa2915d684010817b.php:56
-#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:413
-#: cache/fe/fe92f223f863fb1896ced5bd33b8c256.php:551
+#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:428
+#: cache/fe/fe92f223f863fb1896ced5bd33b8c256.php:556
#: cache/0c/0cc104a3d7987780eed7a70657ece580.php:57
msgid "Edit Layout"
msgstr ""
@@ -12858,9 +13262,9 @@ msgstr ""
#: cache/51/5183626e7e19083fdf9708e7d778f66f.php:135
#: cache/b0/b0d638d98d54413cf5ca73bcaa313dae.php:135
#: cache/83/8300bf8b96eee9813dc4373df0e08748.php:209
-#: cache/53/53221a3cb3187e41cde32cfa796d45a7.php:145
-#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:276
-#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:229
+#: cache/53/53221a3cb3187e41cde32cfa796d45a7.php:143
+#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:282
+#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:234
msgid "Retired"
msgstr ""
@@ -12884,6 +13288,8 @@ msgid "Add User"
msgstr ""
#: cache/0a/0ae358955c92f467744fc6cf0f8f5624.php:92
+#: cache/d4/d41eb57456e7d0ead8c455e4652b975c.php:105
+#: cache/fd/fd08b6cb6765ac676b671e9c5a7afe27.php:105
#: cache/cd/cdf12d9a1fc3b5db7965cfa8f9bb8d13.php:92
#: cache/70/70af2bbd82243291558c9b83caec5b48.php:104
#: lib/Controller/Font.php:162
@@ -12895,26 +13301,9 @@ msgstr ""
msgid "Home Folder"
msgstr ""
-#: cache/0a/0ae358955c92f467744fc6cf0f8f5624.php:112
-#: cache/8c/8ce8fc6aadcb243480fdca6732c41fea.php:51
-#: cache/cd/cdf12d9a1fc3b5db7965cfa8f9bb8d13.php:112
-#: cache/8e/8e4c9c1886827e5f797c4436d4051e48.php:533
-msgid "Notifications"
-msgstr ""
-
-#: cache/0a/0ae358955c92f467744fc6cf0f8f5624.php:130
-#: cache/64/6468accf3a0fea12fced661d430c769f.php:221
-#: cache/05/05600263dc8230138bb0f89338bbef69.php:134
-#: cache/2b/2b524e8ea3d6496ba6837a702ebed2f4.php:71
-#: cache/cd/cdf12d9a1fc3b5db7965cfa8f9bb8d13.php:132
-#: cache/37/377ff96eb23f94563370a45d1c41993f.php:104
-msgid "User Name"
-msgstr ""
-
#: cache/0a/0ae358955c92f467744fc6cf0f8f5624.php:135
-#: cache/64/6468accf3a0fea12fced661d430c769f.php:226
#: cache/cd/cdf12d9a1fc3b5db7965cfa8f9bb8d13.php:137
-msgid "The Login Name of the user."
+msgid "The Username of the user."
msgstr ""
#: cache/0a/0ae358955c92f467744fc6cf0f8f5624.php:150
@@ -12926,8 +13315,8 @@ msgstr ""
#: cache/64/6468accf3a0fea12fced661d430c769f.php:251
#: cache/cd/cdf12d9a1fc3b5db7965cfa8f9bb8d13.php:147
#: cache/37/377ff96eb23f94563370a45d1c41993f.php:159
-#: cache/53/53221a3cb3187e41cde32cfa796d45a7.php:175
-#: lib/Controller/User.php:302
+#: cache/53/53221a3cb3187e41cde32cfa796d45a7.php:193
+#: lib/Controller/User.php:304
msgid "Email"
msgstr ""
@@ -12940,7 +13329,7 @@ msgstr ""
#: cache/0a/0ae358955c92f467744fc6cf0f8f5624.php:175
#: cache/cd/cdf12d9a1fc3b5db7965cfa8f9bb8d13.php:253
-#: cache/53/53221a3cb3187e41cde32cfa796d45a7.php:135
+#: cache/53/53221a3cb3187e41cde32cfa796d45a7.php:133
msgid "User Type"
msgstr ""
@@ -12968,7 +13357,7 @@ msgstr ""
#: cache/0a/0ae358955c92f467744fc6cf0f8f5624.php:248
#: cache/cd/cdf12d9a1fc3b5db7965cfa8f9bb8d13.php:215
-#: cache/53/53221a3cb3187e41cde32cfa796d45a7.php:167
+#: cache/53/53221a3cb3187e41cde32cfa796d45a7.php:185
msgid "Homepage"
msgstr ""
@@ -12981,7 +13370,8 @@ msgstr ""
#: cache/0a/0ae358955c92f467744fc6cf0f8f5624.php:296
#: cache/cd/cdf12d9a1fc3b5db7965cfa8f9bb8d13.php:340
-#: cache/53/53221a3cb3187e41cde32cfa796d45a7.php:199
+#: cache/53/53221a3cb3187e41cde32cfa796d45a7.php:156
+#: cache/53/53221a3cb3187e41cde32cfa796d45a7.php:217
msgid "First Name"
msgstr ""
@@ -12992,7 +13382,8 @@ msgstr ""
#: cache/0a/0ae358955c92f467744fc6cf0f8f5624.php:311
#: cache/cd/cdf12d9a1fc3b5db7965cfa8f9bb8d13.php:355
-#: cache/53/53221a3cb3187e41cde32cfa796d45a7.php:203
+#: cache/53/53221a3cb3187e41cde32cfa796d45a7.php:166
+#: cache/53/53221a3cb3187e41cde32cfa796d45a7.php:221
msgid "Last Name"
msgstr ""
@@ -13036,32 +13427,64 @@ msgid ""
"permission to see?"
msgstr ""
-#: cache/0a/0ae358955c92f467744fc6cf0f8f5624.php:455
+#: cache/0a/0ae358955c92f467744fc6cf0f8f5624.php:456
#: cache/cd/cdf12d9a1fc3b5db7965cfa8f9bb8d13.php:500
+msgid "Should this User receive DataSet notification emails?"
+msgstr ""
+
+#: cache/0a/0ae358955c92f467744fc6cf0f8f5624.php:471
+#: cache/cd/cdf12d9a1fc3b5db7965cfa8f9bb8d13.php:515
+msgid "Should this User receive Layout notification emails?"
+msgstr ""
+
+#: cache/0a/0ae358955c92f467744fc6cf0f8f5624.php:486
+#: cache/cd/cdf12d9a1fc3b5db7965cfa8f9bb8d13.php:530
+msgid "Should this User receive Library notification emails?"
+msgstr ""
+
+#: cache/0a/0ae358955c92f467744fc6cf0f8f5624.php:501
+#: cache/cd/cdf12d9a1fc3b5db7965cfa8f9bb8d13.php:545
+msgid "Should this User receive Report notification emails?"
+msgstr ""
+
+#: cache/0a/0ae358955c92f467744fc6cf0f8f5624.php:516
+#: cache/cd/cdf12d9a1fc3b5db7965cfa8f9bb8d13.php:560
+msgid "Should this User receive Schedule notification emails?"
+msgstr ""
+
+#: cache/0a/0ae358955c92f467744fc6cf0f8f5624.php:531
+#: cache/cd/cdf12d9a1fc3b5db7965cfa8f9bb8d13.php:575
+msgid ""
+"Should this User receive notifications emails for Notifications manually "
+"created in CMS?"
+msgstr ""
+
+#: cache/0a/0ae358955c92f467744fc6cf0f8f5624.php:545
+#: cache/cd/cdf12d9a1fc3b5db7965cfa8f9bb8d13.php:590
msgid "Hide navigation?"
msgstr ""
-#: cache/0a/0ae358955c92f467744fc6cf0f8f5624.php:460
-#: cache/cd/cdf12d9a1fc3b5db7965cfa8f9bb8d13.php:505
+#: cache/0a/0ae358955c92f467744fc6cf0f8f5624.php:550
+#: cache/cd/cdf12d9a1fc3b5db7965cfa8f9bb8d13.php:595
msgid "Should the navigation side bar be hidden for this User?"
msgstr ""
-#: cache/0a/0ae358955c92f467744fc6cf0f8f5624.php:470
-#: cache/cd/cdf12d9a1fc3b5db7965cfa8f9bb8d13.php:515
+#: cache/0a/0ae358955c92f467744fc6cf0f8f5624.php:560
+#: cache/cd/cdf12d9a1fc3b5db7965cfa8f9bb8d13.php:605
msgid "Hide User Guide?"
msgstr ""
-#: cache/0a/0ae358955c92f467744fc6cf0f8f5624.php:475
+#: cache/0a/0ae358955c92f467744fc6cf0f8f5624.php:565
msgid "Should this User see the new user guide when they log in?"
msgstr ""
-#: cache/0a/0ae358955c92f467744fc6cf0f8f5624.php:485
-#: cache/cd/cdf12d9a1fc3b5db7965cfa8f9bb8d13.php:530
+#: cache/0a/0ae358955c92f467744fc6cf0f8f5624.php:575
+#: cache/cd/cdf12d9a1fc3b5db7965cfa8f9bb8d13.php:620
msgid "Force Password Change"
msgstr ""
-#: cache/0a/0ae358955c92f467744fc6cf0f8f5624.php:490
-#: cache/cd/cdf12d9a1fc3b5db7965cfa8f9bb8d13.php:535
+#: cache/0a/0ae358955c92f467744fc6cf0f8f5624.php:580
+#: cache/cd/cdf12d9a1fc3b5db7965cfa8f9bb8d13.php:625
msgid "Should this User be forced to change password next time they log in?"
msgstr ""
@@ -13192,51 +13615,35 @@ msgstr ""
msgid "Admin"
msgstr ""
-#: cache/6e/6e8678de8ffffc5ed3b935eb9c3f6eb0.php:295
-msgid "Developer"
-msgstr ""
-
#: cache/6e/6e8678de8ffffc5ed3b935eb9c3f6eb0.php:312
msgid "Training"
msgstr ""
#: cache/6e/6e8678de8ffffc5ed3b935eb9c3f6eb0.php:316
msgid ""
-"Self-paced online training courses designed to get you up and running with "
+"Self-paced online training videos designed to get you up and running with "
"Xibo in no time."
msgstr ""
#: cache/6e/6e8678de8ffffc5ed3b935eb9c3f6eb0.php:320
-msgid "Enrol on new user training or admin essentials for free."
-msgstr ""
-
-#: cache/6e/6e8678de8ffffc5ed3b935eb9c3f6eb0.php:324
msgid "New User Training"
msgstr ""
-#: cache/6e/6e8678de8ffffc5ed3b935eb9c3f6eb0.php:328
-msgid "Admin Essentials"
-msgstr ""
-
-#: cache/6e/6e8678de8ffffc5ed3b935eb9c3f6eb0.php:332
-msgid "Training School"
-msgstr ""
-
-#: cache/6e/6e8678de8ffffc5ed3b935eb9c3f6eb0.php:345
+#: cache/6e/6e8678de8ffffc5ed3b935eb9c3f6eb0.php:333
#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:250
msgid "Help"
msgstr ""
-#: cache/6e/6e8678de8ffffc5ed3b935eb9c3f6eb0.php:349
+#: cache/6e/6e8678de8ffffc5ed3b935eb9c3f6eb0.php:337
msgid ""
"We are here to help! All the support you’re looking for, at your fingertips."
msgstr ""
-#: cache/6e/6e8678de8ffffc5ed3b935eb9c3f6eb0.php:356
+#: cache/6e/6e8678de8ffffc5ed3b935eb9c3f6eb0.php:344
msgid "Help Center"
msgstr ""
-#: cache/6e/6e8678de8ffffc5ed3b935eb9c3f6eb0.php:363
+#: cache/6e/6e8678de8ffffc5ed3b935eb9c3f6eb0.php:351
msgid "Contact your service provider for assistance."
msgstr ""
@@ -13244,66 +13651,71 @@ msgstr ""
msgid "Add Product to "
msgstr ""
-#: cache/d4/d41eb57456e7d0ead8c455e4652b975c.php:105
-#: cache/fd/fd08b6cb6765ac676b671e9c5a7afe27.php:105
+#: cache/d4/d41eb57456e7d0ead8c455e4652b975c.php:109
+#: cache/fd/fd08b6cb6765ac676b671e9c5a7afe27.php:109
#: lib/Widget/DataType/Product.php:53
msgid "Product Options"
msgstr ""
-#: cache/d4/d41eb57456e7d0ead8c455e4652b975c.php:123
-#: cache/fd/fd08b6cb6765ac676b671e9c5a7afe27.php:123
+#: cache/d4/d41eb57456e7d0ead8c455e4652b975c.php:127
+#: cache/fd/fd08b6cb6765ac676b671e9c5a7afe27.php:127
msgid "The Name for this Menu Board Product"
msgstr ""
-#: cache/d4/d41eb57456e7d0ead8c455e4652b975c.php:138
-#: cache/fd/fd08b6cb6765ac676b671e9c5a7afe27.php:138
-msgid "The Description for this Menu Board Product"
+#: cache/d4/d41eb57456e7d0ead8c455e4652b975c.php:142
+#: cache/fd/fd08b6cb6765ac676b671e9c5a7afe27.php:142
+msgid "The Price for this Menu Board Product"
msgstr ""
-#: cache/d4/d41eb57456e7d0ead8c455e4652b975c.php:153
-#: cache/fd/fd08b6cb6765ac676b671e9c5a7afe27.php:153
-msgid "The Price for this Menu Board Product"
+#: cache/d4/d41eb57456e7d0ead8c455e4652b975c.php:157
+msgid ""
+"Set a display order for this item to appear, leave empty to add to the end."
msgstr ""
-#: cache/d4/d41eb57456e7d0ead8c455e4652b975c.php:168
-#: cache/fd/fd08b6cb6765ac676b671e9c5a7afe27.php:168
-msgid "The Allergy Information for this Menu Board Product"
+#: cache/d4/d41eb57456e7d0ead8c455e4652b975c.php:172
+#: cache/fd/fd08b6cb6765ac676b671e9c5a7afe27.php:172
+msgid "Should this Product appear as available?"
msgstr ""
-#: cache/d4/d41eb57456e7d0ead8c455e4652b975c.php:183
-#: cache/fd/fd08b6cb6765ac676b671e9c5a7afe27.php:183
-msgid "How many calories are in this product?"
+#: cache/d4/d41eb57456e7d0ead8c455e4652b975c.php:187
+#: cache/fd/fd08b6cb6765ac676b671e9c5a7afe27.php:187
+msgid "The Code identifier for this Menu Board Product"
msgstr ""
-#: cache/d4/d41eb57456e7d0ead8c455e4652b975c.php:198
+#: cache/d4/d41eb57456e7d0ead8c455e4652b975c.php:202
+#: cache/fd/fd08b6cb6765ac676b671e9c5a7afe27.php:202
msgid ""
-"Set a display order for this item to appear, leave empty to add to the end."
+"Optionally select Image or Video to be associated with this Menu Board "
+"Product"
msgstr ""
-#: cache/d4/d41eb57456e7d0ead8c455e4652b975c.php:213
-#: cache/fd/fd08b6cb6765ac676b671e9c5a7afe27.php:213
-msgid "Should this Product appear as available?"
+#: cache/d4/d41eb57456e7d0ead8c455e4652b975c.php:222
+#: cache/fd/fd08b6cb6765ac676b671e9c5a7afe27.php:222
+msgid "The Description for this Menu Board Product"
msgstr ""
-#: cache/d4/d41eb57456e7d0ead8c455e4652b975c.php:228
-#: cache/fd/fd08b6cb6765ac676b671e9c5a7afe27.php:228
-msgid "The Code identifier for this Menu Board Product"
+#: cache/d4/d41eb57456e7d0ead8c455e4652b975c.php:237
+#: cache/fd/fd08b6cb6765ac676b671e9c5a7afe27.php:237
+msgid "The Allergy Information for this Menu Board Product"
msgstr ""
-#: cache/d4/d41eb57456e7d0ead8c455e4652b975c.php:243
-#: cache/fd/fd08b6cb6765ac676b671e9c5a7afe27.php:243
-msgid ""
-"Optionally select Image or Video to be associated with this Menu Board "
-"Product"
+#: cache/d4/d41eb57456e7d0ead8c455e4652b975c.php:252
+#: cache/fd/fd08b6cb6765ac676b671e9c5a7afe27.php:252
+msgid "How many calories are in this product?"
msgstr ""
-#: cache/d4/d41eb57456e7d0ead8c455e4652b975c.php:258
-#: cache/fd/fd08b6cb6765ac676b671e9c5a7afe27.php:258
+#: cache/d4/d41eb57456e7d0ead8c455e4652b975c.php:265
+#: cache/fd/fd08b6cb6765ac676b671e9c5a7afe27.php:265
msgid ""
"If required please provide additional options and their prices for this "
"Product."
msgstr ""
+#: cache/41/416015b714a3d4ce25c4f5a60b5e0869.php:59
+#, no-php-format
+msgid "Data set %name%"
+msgstr ""
+
#: cache/41/411fdd8ac98835cf7ed952b29cda0628.php:68
msgid "Add an Application"
msgstr ""
@@ -13313,32 +13725,32 @@ msgstr ""
msgid "Add Application"
msgstr ""
-#: cache/41/411fdd8ac98835cf7ed952b29cda0628.php:134
+#: cache/41/411fdd8ac98835cf7ed952b29cda0628.php:138
msgid "Connectors"
msgstr ""
-#: cache/41/411fdd8ac98835cf7ed952b29cda0628.php:179
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:749
+#: cache/41/411fdd8ac98835cf7ed952b29cda0628.php:185
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:819
#: cache/8d/8de7dd9661211f3ba39933b564d76990.php:137
msgid "Copy to Clipboard"
msgstr ""
-#: cache/41/411fdd8ac98835cf7ed952b29cda0628.php:183
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:785
+#: cache/41/411fdd8ac98835cf7ed952b29cda0628.php:189
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:855
msgid "Could not copy"
msgstr ""
-#: cache/41/411fdd8ac98835cf7ed952b29cda0628.php:187
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:789
+#: cache/41/411fdd8ac98835cf7ed952b29cda0628.php:193
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:859
msgid "Copied!"
msgstr ""
-#: cache/41/411fdd8ac98835cf7ed952b29cda0628.php:415
+#: cache/41/411fdd8ac98835cf7ed952b29cda0628.php:425
msgid "Installed"
msgstr ""
-#: cache/41/411fdd8ac98835cf7ed952b29cda0628.php:424
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1090
+#: cache/41/411fdd8ac98835cf7ed952b29cda0628.php:434
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1176
#: lib/Controller/Module.php:121
msgid "Configure"
msgstr ""
@@ -13375,7 +13787,7 @@ msgid "id"
msgstr ""
#: cache/77/774dde73b0eb7965a680b8a52776fa6b.php:139
-#: cache/08/08aee2625ba2279e6a2c6465471b11e8.php:135
+#: cache/08/08aee2625ba2279e6a2c6465471b11e8.php:134
msgid "name"
msgstr ""
@@ -13387,45 +13799,198 @@ msgstr ""
msgid "Open full screen"
msgstr ""
-#: cache/77/774dde73b0eb7965a680b8a52776fa6b.php:210
+#: cache/77/774dde73b0eb7965a680b8a52776fa6b.php:217
msgid "Webhook Controller"
msgstr ""
-#: cache/77/774dde73b0eb7965a680b8a52776fa6b.php:214
+#: cache/77/774dde73b0eb7965a680b8a52776fa6b.php:221
msgid "Navigate to layout with code [layoutTag]?"
msgstr ""
-#: cache/77/774dde73b0eb7965a680b8a52776fa6b.php:218
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2170
-msgid "Empty layout"
+#: cache/77/774dde73b0eb7965a680b8a52776fa6b.php:225
+msgid "Empty region!"
msgstr ""
-#: cache/77/774dde73b0eb7965a680b8a52776fa6b.php:222
+#: cache/77/774dde73b0eb7965a680b8a52776fa6b.php:229
msgid "Next Item"
msgstr ""
-#: cache/77/774dde73b0eb7965a680b8a52776fa6b.php:226
+#: cache/77/774dde73b0eb7965a680b8a52776fa6b.php:233
msgid "Previous Item"
msgstr ""
-#: cache/77/774dde73b0eb7965a680b8a52776fa6b.php:230
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1313
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1929
+#: cache/77/774dde73b0eb7965a680b8a52776fa6b.php:237
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1403
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2097
msgid "Navigate to Widget"
msgstr ""
-#: cache/77/774dde73b0eb7965a680b8a52776fa6b.php:238
+#: cache/77/774dde73b0eb7965a680b8a52776fa6b.php:245
#: cache/66/661d79c5da6d14a0db85cd0980868ff7.php:186
msgid "Widget ID"
msgstr ""
+#: cache/bf/bfa04d76ea96a772caeedcfdf9d70e40.php:59
+#, no-php-format
+msgid "%templateName% - Module Template"
+msgstr ""
+
+#: cache/bf/bfa04d76ea96a772caeedcfdf9d70e40.php:110
+#: cache/bf/bfa04d76ea96a772caeedcfdf9d70e40.php:257
+msgid "Properties"
+msgstr ""
+
+#: cache/bf/bfa04d76ea96a772caeedcfdf9d70e40.php:118
+#: cache/bf/bfa04d76ea96a772caeedcfdf9d70e40.php:306
+msgid "Twig"
+msgstr ""
+
+#: cache/bf/bfa04d76ea96a772caeedcfdf9d70e40.php:126
+#: cache/bf/bfa04d76ea96a772caeedcfdf9d70e40.php:324
+msgid "HBS"
+msgstr ""
+
+#: cache/bf/bfa04d76ea96a772caeedcfdf9d70e40.php:142
+#: cache/bf/bfa04d76ea96a772caeedcfdf9d70e40.php:360
+msgid "Head"
+msgstr ""
+
+#: cache/bf/bfa04d76ea96a772caeedcfdf9d70e40.php:150
+#: cache/bf/bfa04d76ea96a772caeedcfdf9d70e40.php:378
+msgid "onTemplateRender"
+msgstr ""
+
+#: cache/bf/bfa04d76ea96a772caeedcfdf9d70e40.php:158
+#: cache/bf/bfa04d76ea96a772caeedcfdf9d70e40.php:396
+msgid "onTemplateVisible"
+msgstr ""
+
+#: cache/bf/bfa04d76ea96a772caeedcfdf9d70e40.php:193
+#: cache/26/26272b78e1f020a579ccf676c2d83a39.php:120
+msgid "A title for the module template"
+msgstr ""
+
+#: cache/bf/bfa04d76ea96a772caeedcfdf9d70e40.php:212
+#: cache/97/97f2c018825ccdd326aad4a0b160725e.php:140
+#: cache/26/26272b78e1f020a579ccf676c2d83a39.php:138
+msgid "Which data type does this template need?"
+msgstr ""
+
+#: cache/bf/bfa04d76ea96a772caeedcfdf9d70e40.php:222
+#: cache/26/26272b78e1f020a579ccf676c2d83a39.php:166
+msgid "Show In"
+msgstr ""
+
+#: cache/bf/bfa04d76ea96a772caeedcfdf9d70e40.php:227
+#: cache/26/26272b78e1f020a579ccf676c2d83a39.php:171
+msgid "Which Editor should this template be available in?"
+msgstr ""
+
+#: cache/bf/bfa04d76ea96a772caeedcfdf9d70e40.php:231
+#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:56
+#: cache/26/26272b78e1f020a579ccf676c2d83a39.php:175
+msgid "Layout Editor"
+msgstr ""
+
+#: cache/bf/bfa04d76ea96a772caeedcfdf9d70e40.php:231
+#: cache/26/26272b78e1f020a579ccf676c2d83a39.php:175
+msgid "Playlist Editor"
+msgstr ""
+
+#: cache/bf/bfa04d76ea96a772caeedcfdf9d70e40.php:231
+#: cache/26/26272b78e1f020a579ccf676c2d83a39.php:175
+#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:416
+msgid "Both"
+msgstr ""
+
+#: cache/bf/bfa04d76ea96a772caeedcfdf9d70e40.php:240
+#: cache/8c/8c08891d370939702e3d45696c9e38d6.php:151
+#: cache/26/26b74efc874b3a8a5a7cf3ed2a22c6ba.php:264
+#: cache/f7/f789072c56d4d186cbc4fdd166003cb4.php:120
+#: cache/3e/3e663c80c5eafee333d2ece3b148e49a.php:95
+#: cache/8e/8e4c9c1886827e5f797c4436d4051e48.php:145
+#: cache/8e/8e4c9c1886827e5f797c4436d4051e48.php:204
+#: cache/8e/8e4c9c1886827e5f797c4436d4051e48.php:401
+#: cache/8e/8e4c9c1886827e5f797c4436d4051e48.php:483
+#: cache/8e/8e4c9c1886827e5f797c4436d4051e48.php:609
+#: cache/8e/8e4c9c1886827e5f797c4436d4051e48.php:691
+msgid "Enabled?"
+msgstr ""
+
+#: cache/bf/bfa04d76ea96a772caeedcfdf9d70e40.php:245
+msgid "Is this template enabled?"
+msgstr ""
+
+#: cache/bf/bfa04d76ea96a772caeedcfdf9d70e40.php:267
+msgid "Go to start"
+msgstr ""
+
+#: cache/bf/bfa04d76ea96a772caeedcfdf9d70e40.php:273
+msgid "Add new property"
+msgstr ""
+
+#: cache/bf/bfa04d76ea96a772caeedcfdf9d70e40.php:277
+#: cache/25/257d7652c0b04ca6e480ad5c9beaa3c2.php:330
+#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:372
+msgid "Add"
+msgstr ""
+
+#: cache/bf/bfa04d76ea96a772caeedcfdf9d70e40.php:282
+msgid "Go to end"
+msgstr ""
+
+#: cache/bf/bfa04d76ea96a772caeedcfdf9d70e40.php:413
+msgid "Invalidate any widgets using this template"
+msgstr ""
+
+#: cache/bf/bfa04d76ea96a772caeedcfdf9d70e40.php:442
+msgid "Move"
+msgstr ""
+
+#: cache/bf/bfa04d76ea96a772caeedcfdf9d70e40.php:461
+msgid "No properties, click Add to create one!"
+msgstr ""
+
+#: cache/bf/bfa04d76ea96a772caeedcfdf9d70e40.php:489
+msgid "Add option"
+msgstr ""
+
+#: cache/bf/bfa04d76ea96a772caeedcfdf9d70e40.php:506
+msgid "Delete option"
+msgstr ""
+
+#: cache/bf/bfa04d76ea96a772caeedcfdf9d70e40.php:575
+#: cache/bf/bfa04d76ea96a772caeedcfdf9d70e40.php:616
+msgid "Add test"
+msgstr ""
+
+#: cache/bf/bfa04d76ea96a772caeedcfdf9d70e40.php:633
+msgid "Delete test"
+msgstr ""
+
+#: cache/bf/bfa04d76ea96a772caeedcfdf9d70e40.php:658
+msgid "Add condition"
+msgstr ""
+
+#: cache/bf/bfa04d76ea96a772caeedcfdf9d70e40.php:676
+msgid "Delete condition"
+msgstr ""
+
+#: cache/bf/bfa04d76ea96a772caeedcfdf9d70e40.php:731
+msgid "Default value"
+msgstr ""
+
+#: cache/bf/bfa04d76ea96a772caeedcfdf9d70e40.php:782
+msgid "Options for the dropdown control"
+msgstr ""
+
#: cache/64/6468accf3a0fea12fced661d430c769f.php:56
msgid "Add New User"
msgstr ""
#: cache/64/6468accf3a0fea12fced661d430c769f.php:79
#: cache/64/6468accf3a0fea12fced661d430c769f.php:113
-#: cache/37/37f12704cf17017038d73d9ee1907d04.php:404
+#: cache/37/37f12704cf17017038d73d9ee1907d04.php:432
msgid "Create"
msgstr ""
@@ -13464,20 +14029,41 @@ msgid ""
" create user."
msgstr ""
+#: cache/64/6468accf3a0fea12fced661d430c769f.php:221
+#: cache/05/05600263dc8230138bb0f89338bbef69.php:182
+#: cache/2b/2b524e8ea3d6496ba6837a702ebed2f4.php:71
+#: cache/37/377ff96eb23f94563370a45d1c41993f.php:104
+msgid "User Name"
+msgstr ""
+
+#: cache/64/6468accf3a0fea12fced661d430c769f.php:226
+msgid "The Login Name of the user."
+msgstr ""
+
#: cache/64/6468accf3a0fea12fced661d430c769f.php:283
msgid ""
"Select any folders the new user should have shared with them for viewing and "
"editing."
msgstr ""
+#: cache/64/6468accf3a0fea12fced661d430c769f.php:288
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:787
+#: cache/37/37f12704cf17017038d73d9ee1907d04.php:340
+msgid "Select All"
+msgstr ""
+
+#: cache/64/6468accf3a0fea12fced661d430c769f.php:292
+msgid "Clear Selection"
+msgstr ""
+
#: cache/17/1730b41c1b94639a7bb894f0f6bbe405.php:59
#, no-php-format
msgid "Delete %layout%"
msgstr ""
#: cache/17/1730b41c1b94639a7bb894f0f6bbe405.php:68
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:737
-#: lib/Controller/Layout.php:1810 lib/Controller/Layout.php:1816
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:807
+#: lib/Controller/Layout.php:1836 lib/Controller/Layout.php:1842
msgid "Retire"
msgstr ""
@@ -13502,13 +14088,13 @@ msgid "Are you sure you want to retire this item?"
msgstr ""
#: cache/ae/ae925f8de1afddaa54d77aba65ebb00b.php:56
-#: lib/Controller/DisplayGroup.php:466 lib/Controller/DisplayGroup.php:479
-#: lib/Controller/Display.php:1191 lib/Controller/Display.php:1204
+#: lib/Controller/DisplayGroup.php:471 lib/Controller/DisplayGroup.php:484
+#: lib/Controller/Display.php:1192 lib/Controller/Display.php:1205
msgid "Send Command"
msgstr ""
#: cache/ae/ae925f8de1afddaa54d77aba65ebb00b.php:93
-#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:1264
+#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:1279
msgid ""
"Pick a command to send to the Player. If the CMS has XMR enabled this will "
"be sent immediately, otherwise it will show an error."
@@ -13530,7 +14116,7 @@ msgid "Continue..."
msgstr ""
#: cache/ae/ae039a69e1615431d4752f5fb2b147d3.php:57
-#: cache/ae/ae039a69e1615431d4752f5fb2b147d3.php:86
+#: cache/ae/ae039a69e1615431d4752f5fb2b147d3.php:90
#, no-php-format
msgid "RSS Feeds for %dataSetName%"
msgstr ""
@@ -13541,81 +14127,81 @@ msgstr ""
msgid "Add RSS"
msgstr ""
-#: cache/ae/ae039a69e1615431d4752f5fb2b147d3.php:211
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2411
+#: cache/ae/ae039a69e1615431d4752f5fb2b147d3.php:221
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2671
msgid "Ascending"
msgstr ""
-#: cache/ae/ae039a69e1615431d4752f5fb2b147d3.php:215
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2415
+#: cache/ae/ae039a69e1615431d4752f5fb2b147d3.php:225
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2675
msgid "Descending"
msgstr ""
-#: cache/ae/ae039a69e1615431d4752f5fb2b147d3.php:260
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2422
+#: cache/ae/ae039a69e1615431d4752f5fb2b147d3.php:270
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2682
msgid "starts with"
msgstr ""
-#: cache/ae/ae039a69e1615431d4752f5fb2b147d3.php:266
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2428
+#: cache/ae/ae039a69e1615431d4752f5fb2b147d3.php:276
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2688
msgid "ends with"
msgstr ""
-#: cache/ae/ae039a69e1615431d4752f5fb2b147d3.php:272
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2434
+#: cache/ae/ae039a69e1615431d4752f5fb2b147d3.php:282
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2694
msgid "contains"
msgstr ""
-#: cache/ae/ae039a69e1615431d4752f5fb2b147d3.php:278
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2440
+#: cache/ae/ae039a69e1615431d4752f5fb2b147d3.php:288
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2700
msgid "equals"
msgstr ""
-#: cache/ae/ae039a69e1615431d4752f5fb2b147d3.php:284
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2446
+#: cache/ae/ae039a69e1615431d4752f5fb2b147d3.php:294
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2706
msgid "does not start with"
msgstr ""
-#: cache/ae/ae039a69e1615431d4752f5fb2b147d3.php:290
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2452
+#: cache/ae/ae039a69e1615431d4752f5fb2b147d3.php:300
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2712
msgid "does not end with"
msgstr ""
-#: cache/ae/ae039a69e1615431d4752f5fb2b147d3.php:296
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2458
+#: cache/ae/ae039a69e1615431d4752f5fb2b147d3.php:306
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2718
msgid "does not contain"
msgstr ""
-#: cache/ae/ae039a69e1615431d4752f5fb2b147d3.php:302
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2464
+#: cache/ae/ae039a69e1615431d4752f5fb2b147d3.php:312
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2724
msgid "does not equal"
msgstr ""
-#: cache/ae/ae039a69e1615431d4752f5fb2b147d3.php:308
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2470
+#: cache/ae/ae039a69e1615431d4752f5fb2b147d3.php:318
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2730
msgid "greater than"
msgstr ""
-#: cache/ae/ae039a69e1615431d4752f5fb2b147d3.php:314
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2476
+#: cache/ae/ae039a69e1615431d4752f5fb2b147d3.php:324
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2736
msgid "less than"
msgstr ""
-#: cache/ae/ae039a69e1615431d4752f5fb2b147d3.php:320
+#: cache/ae/ae039a69e1615431d4752f5fb2b147d3.php:330
msgid "is empty"
msgstr ""
-#: cache/ae/ae039a69e1615431d4752f5fb2b147d3.php:326
+#: cache/ae/ae039a69e1615431d4752f5fb2b147d3.php:336
msgid "is not empty"
msgstr ""
-#: cache/ae/ae039a69e1615431d4752f5fb2b147d3.php:335
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2485
+#: cache/ae/ae039a69e1615431d4752f5fb2b147d3.php:345
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2745
msgid "Or"
msgstr ""
-#: cache/ae/ae039a69e1615431d4752f5fb2b147d3.php:341
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2491
+#: cache/ae/ae039a69e1615431d4752f5fb2b147d3.php:351
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2751
msgid "And"
msgstr ""
@@ -13624,7 +14210,7 @@ msgstr ""
msgid "Add Command"
msgstr ""
-#: cache/df/dfa8c9877043c738d127ce9a84cd99fa.php:133
+#: cache/df/dfa8c9877043c738d127ce9a84cd99fa.php:138
msgid "Available On"
msgstr ""
@@ -13668,31 +14254,43 @@ msgstr ""
msgid "Add Sync Group"
msgstr ""
-#: cache/d2/d2fa8bed4d1e30769527c78081442bfc.php:129
+#: cache/d2/d2fa8bed4d1e30769527c78081442bfc.php:128
msgid "Lead Display ID"
msgstr ""
-#: cache/d2/d2fa8bed4d1e30769527c78081442bfc.php:202
-#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:351
-#: cache/08/08aee2625ba2279e6a2c6465471b11e8.php:151
-#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:588
-#: cache/cb/cb0f801b3d2ddd3d1f61f47414d32047.php:162
+#: cache/d2/d2fa8bed4d1e30769527c78081442bfc.php:199
+#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:354
+#: cache/08/08aee2625ba2279e6a2c6465471b11e8.php:150
+#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:553
+#: cache/cb/cb0f801b3d2ddd3d1f61f47414d32047.php:167
msgid "Modified By"
msgstr ""
-#: cache/d2/d2fa8bed4d1e30769527c78081442bfc.php:206
+#: cache/d2/d2fa8bed4d1e30769527c78081442bfc.php:203
#: cache/5e/5ec96adf0346509994d4c975eac80689.php:133
#: cache/42/429bc3b90e0dd835a4548e949ce40ad6.php:128
msgid "Publisher Port"
msgstr ""
-#: cache/d2/d2fa8bed4d1e30769527c78081442bfc.php:210
+#: cache/d2/d2fa8bed4d1e30769527c78081442bfc.php:207
+#: cache/5e/5ec96adf0346509994d4c975eac80689.php:148
#: cache/42/429bc3b90e0dd835a4548e949ce40ad6.php:143
+msgid "Switch Delay"
+msgstr ""
+
+#: cache/d2/d2fa8bed4d1e30769527c78081442bfc.php:211
+#: cache/5e/5ec96adf0346509994d4c975eac80689.php:163
+#: cache/42/429bc3b90e0dd835a4548e949ce40ad6.php:158
+msgid "Video Pause Delay"
+msgstr ""
+
+#: cache/d2/d2fa8bed4d1e30769527c78081442bfc.php:215
+#: cache/42/429bc3b90e0dd835a4548e949ce40ad6.php:173
msgid "Lead Display"
msgstr ""
-#: cache/d2/d2fa8bed4d1e30769527c78081442bfc.php:312
-#: cache/23/238f0b98d7f96aca9a850e8b230fe1fb.php:575
+#: cache/d2/d2fa8bed4d1e30769527c78081442bfc.php:321
+#: cache/23/238f0b98d7f96aca9a850e8b230fe1fb.php:579
msgid "Check to confirm deletion of the selected records."
msgstr ""
@@ -13740,7 +14338,7 @@ msgid "Is the Resolution enabled for use?"
msgstr ""
#: cache/4f/4f86b68b499f4cd831a26849e7ca7d16.php:55
-#: cache/4f/4f86b68b499f4cd831a26849e7ca7d16.php:85
+#: cache/4f/4f86b68b499f4cd831a26849e7ca7d16.php:89
msgid "Help Links"
msgstr ""
@@ -13753,7 +14351,7 @@ msgstr ""
msgid "Add Help Link"
msgstr ""
-#: cache/4f/4f86b68b499f4cd831a26849e7ca7d16.php:105
+#: cache/4f/4f86b68b499f4cd831a26849e7ca7d16.php:109
#: cache/fb/fb4bc86a9035b6ec146f3221bdb0c2c1.php:88
#: cache/71/7116c27ed9d9118b32072e096012ea7b.php:88
msgid "Topic"
@@ -13763,27 +14361,6 @@ msgstr ""
msgid "Are you sure you want to truncate?"
msgstr ""
-#: cache/dc/dc31159d960349451e03fc348c75e315.php:59
-#: cache/81/811403ea85a4f89fb6575e4ffc9988d8.php:59
-#: cache/73/736be9c5f96ff30502beba0ab9149fd4.php:59
-#: cache/5d/5d1d07a99874fba69dc650a90f8eab06.php:59
-#: cache/31/31805080e1e51d4a56cb67fa60bdcb2f.php:59
-#: cache/60/603a543f479715b41db75352b8cdb845.php:59
-#, no-php-format
-msgid "Copy %name%"
-msgstr ""
-
-#: cache/dc/dc31159d960349451e03fc348c75e315.php:72
-#: cache/73/736be9c5f96ff30502beba0ab9149fd4.php:72
-#: cache/31/31805080e1e51d4a56cb67fa60bdcb2f.php:72
-#: lib/Controller/Template.php:237 lib/Controller/DisplayGroup.php:335
-#: lib/Controller/DataSet.php:240 lib/Controller/Campaign.php:376
-#: lib/Controller/Playlist.php:400 lib/Controller/Library.php:657
-#: lib/Controller/Layout.php:1802 lib/Controller/DisplayProfile.php:210
-#: lib/Controller/UserGroup.php:174
-msgid "Copy"
-msgstr ""
-
#: cache/dc/dc31159d960349451e03fc348c75e315.php:96
#: cache/8a/8acc5a2af63338673a6de3f58764bb95.php:196
#: cache/23/2360e54d15ebe919cd8f4305d3819359.php:187
@@ -13810,6 +14387,21 @@ msgstr ""
msgid "The port on which players will communicate"
msgstr ""
+#: cache/5e/5ec96adf0346509994d4c975eac80689.php:153
+#: cache/42/429bc3b90e0dd835a4548e949ce40ad6.php:148
+msgid ""
+"The delay (in ms) when displaying the changes in content. If the network is "
+"unstable this value can be raised to compensate."
+msgstr ""
+
+#: cache/5e/5ec96adf0346509994d4c975eac80689.php:168
+#: cache/42/429bc3b90e0dd835a4548e949ce40ad6.php:163
+msgid ""
+"The delay (in ms) before unpausing the video on start. If some of the "
+"devices in the group do not support gapless, this value can be raised to "
+"compensate."
+msgstr ""
+
#: cache/96/9605b8778fdca994dfa334b9602917ff.php:66
msgid "Loading Layout..."
msgstr ""
@@ -13822,11 +14414,11 @@ msgstr ""
msgid "Add a new User Group"
msgstr ""
-#: cache/fb/fb7b914f174fce1e94ee3971e92a92dd.php:125
+#: cache/fb/fb7b914f174fce1e94ee3971e92a92dd.php:123
msgid "User Group"
msgstr ""
-#: cache/fb/fb7b914f174fce1e94ee3971e92a92dd.php:145
+#: cache/fb/fb7b914f174fce1e94ee3971e92a92dd.php:167
msgid "Is shown for Add User?"
msgstr ""
@@ -13848,23 +14440,23 @@ msgstr ""
msgid "The Link to open for this help topic and category"
msgstr ""
-#: cache/fb/fb12c90670ac105c9ea03fcc99876e87.php:80
+#: cache/fb/fb12c90670ac105c9ea03fcc99876e87.php:84
msgid "Saved reports"
msgstr ""
-#: cache/fb/fb12c90670ac105c9ea03fcc99876e87.php:140
+#: cache/fb/fb12c90670ac105c9ea03fcc99876e87.php:144
msgid "Only my reports?"
msgstr ""
-#: cache/fb/fb12c90670ac105c9ea03fcc99876e87.php:159
+#: cache/fb/fb12c90670ac105c9ea03fcc99876e87.php:163
msgid "Saved as"
msgstr ""
-#: cache/fb/fb12c90670ac105c9ea03fcc99876e87.php:163
+#: cache/fb/fb12c90670ac105c9ea03fcc99876e87.php:167
msgid "Report Type"
msgstr ""
-#: cache/fb/fb12c90670ac105c9ea03fcc99876e87.php:167
+#: cache/fb/fb12c90670ac105c9ea03fcc99876e87.php:171
msgid "Generated on"
msgstr ""
@@ -13924,22 +14516,57 @@ msgstr ""
msgid "Should the cache for this remote DataSet be cleared?"
msgstr ""
-#: cache/82/823c47cd9e81aebabd5478c5693b1131.php:90
+#: cache/82/823c47cd9e81aebabd5478c5693b1131.php:105
msgid "Has Duration"
msgstr ""
-#: cache/82/823c47cd9e81aebabd5478c5693b1131.php:94
+#: cache/82/823c47cd9e81aebabd5478c5693b1131.php:109
msgid "Has Direction"
msgstr ""
-#: cache/82/823c47cd9e81aebabd5478c5693b1131.php:98
+#: cache/82/823c47cd9e81aebabd5478c5693b1131.php:113
msgid "Enabled for In"
msgstr ""
-#: cache/82/823c47cd9e81aebabd5478c5693b1131.php:102
+#: cache/82/823c47cd9e81aebabd5478c5693b1131.php:117
msgid "Enabled for Out"
msgstr ""
+#: cache/66/664c6c931a53dbf67110ec2cb80223cf.php:59
+#, no-php-format
+msgid "%dataSetName% - Data Connector"
+msgstr ""
+
+#: cache/66/664c6c931a53dbf67110ec2cb80223cf.php:117
+msgid "Data Connector JavaScript"
+msgstr ""
+
+#: cache/66/664c6c931a53dbf67110ec2cb80223cf.php:151
+msgid "Test Params"
+msgstr ""
+
+#: cache/66/664c6c931a53dbf67110ec2cb80223cf.php:167
+msgid "DataSet Data"
+msgstr ""
+
+#: cache/66/664c6c931a53dbf67110ec2cb80223cf.php:175
+msgid "Other Data"
+msgstr ""
+
+#: cache/66/664c6c931a53dbf67110ec2cb80223cf.php:183
+msgid "Schedule Criteria"
+msgstr ""
+
+#: cache/66/664c6c931a53dbf67110ec2cb80223cf.php:192
+msgid ""
+"You can test passing parameters that would otherwise be set when this Data "
+"Connector is scheduled."
+msgstr ""
+
+#: cache/66/664c6c931a53dbf67110ec2cb80223cf.php:197
+msgid "Test Parameters"
+msgstr ""
+
#: cache/66/6669e06466c1e433cfb14ef774afcd6a.php:56
msgid "Delete Daypart"
msgstr ""
@@ -13999,7 +14626,7 @@ msgid "Reason"
msgstr ""
#: cache/66/661d79c5da6d14a0db85cd0980868ff7.php:170
-#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:392
+#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:395
msgid "Expires"
msgstr ""
@@ -14012,6 +14639,7 @@ msgid "Region ID"
msgstr ""
#: cache/66/661d79c5da6d14a0db85cd0980868ff7.php:190
+#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:464
msgid "Media ID"
msgstr ""
@@ -14031,27 +14659,27 @@ msgstr ""
#: cache/66/661d79c5da6d14a0db85cd0980868ff7.php:392
#: cache/66/661d79c5da6d14a0db85cd0980868ff7.php:499
#: cache/66/661d79c5da6d14a0db85cd0980868ff7.php:576
-#: cache/66/661d79c5da6d14a0db85cd0980868ff7.php:805
-#: cache/66/661d79c5da6d14a0db85cd0980868ff7.php:828
+#: cache/66/661d79c5da6d14a0db85cd0980868ff7.php:807
+#: cache/66/661d79c5da6d14a0db85cd0980868ff7.php:830
msgid "Downloaded"
msgstr ""
#: cache/66/661d79c5da6d14a0db85cd0980868ff7.php:380
-#: cache/08/08aee2625ba2279e6a2c6465471b11e8.php:139
-#: cache/cb/cb0f801b3d2ddd3d1f61f47414d32047.php:146
-#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:376
+#: cache/08/08aee2625ba2279e6a2c6465471b11e8.php:138
+#: cache/cb/cb0f801b3d2ddd3d1f61f47414d32047.php:151
+#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:379
msgid "File Name"
msgstr ""
#: cache/66/661d79c5da6d14a0db85cd0980868ff7.php:396
-#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:372
+#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:375
msgid "Released"
msgstr ""
#: cache/66/661d79c5da6d14a0db85cd0980868ff7.php:479
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:810
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1824
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1935
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:880
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1972
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2103
msgid "Widgets"
msgstr ""
@@ -14060,13 +14688,13 @@ msgid "Widget Data"
msgstr ""
#: cache/66/661d79c5da6d14a0db85cd0980868ff7.php:626
-#: cache/66/661d79c5da6d14a0db85cd0980868ff7.php:738
+#: cache/66/661d79c5da6d14a0db85cd0980868ff7.php:740
#: lib/Report/Bandwidth.php:322
msgid "Bandwidth"
msgstr ""
-#: cache/66/661d79c5da6d14a0db85cd0980868ff7.php:807
-#: cache/66/661d79c5da6d14a0db85cd0980868ff7.php:832
+#: cache/66/661d79c5da6d14a0db85cd0980868ff7.php:809
+#: cache/66/661d79c5da6d14a0db85cd0980868ff7.php:834
msgid "Pending"
msgstr ""
@@ -14141,20 +14769,15 @@ msgid ""
msgstr ""
#: cache/25/257d7652c0b04ca6e480ad5c9beaa3c2.php:79
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2532
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2792
msgid "Spots"
msgstr ""
#: cache/25/257d7652c0b04ca6e480ad5c9beaa3c2.php:235
-#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:196
+#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:203
msgid "Locked"
msgstr ""
-#: cache/25/257d7652c0b04ca6e480ad5c9beaa3c2.php:330
-#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:357
-msgid "Add"
-msgstr ""
-
#: cache/25/257d7652c0b04ca6e480ad5c9beaa3c2.php:336
#: lib/Controller/StatusDashboard.php:302 lib/Report/LibraryUsage.php:207
#: lib/Report/LibraryUsage.php:555
@@ -14167,8 +14790,8 @@ msgid "Discard %layout%"
msgstr ""
#: cache/40/4029f5db3a11dd01464e9160f8b6cf6f.php:72
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:745
-#: lib/Controller/Template.php:186 lib/Controller/Layout.php:1673
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:815
+#: lib/Controller/Template.php:192 lib/Controller/Layout.php:1697
msgid "Discard"
msgstr ""
@@ -14241,8 +14864,9 @@ msgid ""
msgstr ""
#: cache/8a/8acc5a2af63338673a6de3f58764bb95.php:58
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1003
-#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:255
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1077
+#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:262
+#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:282
msgid "Edit Playlist"
msgstr ""
@@ -14380,221 +15004,221 @@ msgstr ""
msgid "The end of the time window to install application updates."
msgstr ""
-#: cache/49/49b3c02c876e8a464a75e1682c064115.php:288
-#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:371
+#: cache/49/49b3c02c876e8a464a75e1682c064115.php:318
+#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:401
msgid "Action Bar Mode"
msgstr ""
-#: cache/49/49b3c02c876e8a464a75e1682c064115.php:291
-#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:374
+#: cache/49/49b3c02c876e8a464a75e1682c064115.php:321
+#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:404
msgid "How should the action bar behave?"
msgstr ""
-#: cache/49/49b3c02c876e8a464a75e1682c064115.php:294
-#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:377
+#: cache/49/49b3c02c876e8a464a75e1682c064115.php:324
+#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:407
msgid "Hide"
msgstr ""
-#: cache/49/49b3c02c876e8a464a75e1682c064115.php:294
-#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:377
+#: cache/49/49b3c02c876e8a464a75e1682c064115.php:324
+#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:407
msgid "Timed"
msgstr ""
-#: cache/49/49b3c02c876e8a464a75e1682c064115.php:302
-#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:385
+#: cache/49/49b3c02c876e8a464a75e1682c064115.php:332
+#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:415
msgid "Action Bar Display Duration"
msgstr ""
-#: cache/49/49b3c02c876e8a464a75e1682c064115.php:305
-#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:388
+#: cache/49/49b3c02c876e8a464a75e1682c064115.php:335
+#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:418
msgid "How long should the Action Bar be shown for, in seconds?"
msgstr ""
-#: cache/49/49b3c02c876e8a464a75e1682c064115.php:359
+#: cache/49/49b3c02c876e8a464a75e1682c064115.php:389
msgid "The size of the screenshot to return when requested."
msgstr ""
-#: cache/49/49b3c02c876e8a464a75e1682c064115.php:365
+#: cache/49/49b3c02c876e8a464a75e1682c064115.php:395
msgid "HD"
msgstr ""
-#: cache/49/49b3c02c876e8a464a75e1682c064115.php:365
+#: cache/49/49b3c02c876e8a464a75e1682c064115.php:395
msgid "FHD"
msgstr ""
-#: cache/49/49b3c02c876e8a464a75e1682c064115.php:371
+#: cache/49/49b3c02c876e8a464a75e1682c064115.php:401
msgid "Standard"
msgstr ""
-#: cache/49/49b3c02c876e8a464a75e1682c064115.php:382
+#: cache/49/49b3c02c876e8a464a75e1682c064115.php:412
msgid "Send progress while downloading"
msgstr ""
-#: cache/49/49b3c02c876e8a464a75e1682c064115.php:385
+#: cache/49/49b3c02c876e8a464a75e1682c064115.php:415
msgid ""
"How often, in minutes, should the Display send its download progress while "
"it is downloading new content?"
msgstr ""
-#: cache/49/49b3c02c876e8a464a75e1682c064115.php:421
+#: cache/49/49b3c02c876e8a464a75e1682c064115.php:451
msgid ""
"Use the form fields to create On/Off timings for the monitor for specific "
"days of the week as required."
msgstr ""
-#: cache/49/49b3c02c876e8a464a75e1682c064115.php:430
+#: cache/49/49b3c02c876e8a464a75e1682c064115.php:460
msgid "Please note:"
msgstr ""
-#: cache/49/49b3c02c876e8a464a75e1682c064115.php:439
+#: cache/49/49b3c02c876e8a464a75e1682c064115.php:469
msgid ""
"When the monitor is 'Off' it will not be able to receive content updates. "
"With the next timed 'On' the monitor will connect to the CMS and get content/"
"schedule updates."
msgstr ""
-#: cache/49/49b3c02c876e8a464a75e1682c064115.php:521
+#: cache/49/49b3c02c876e8a464a75e1682c064115.php:551
msgid ""
"Control picture settings using the fields below. Use the sliders to set the "
"required range for each setting."
msgstr ""
-#: cache/49/49b3c02c876e8a464a75e1682c064115.php:537
+#: cache/49/49b3c02c876e8a464a75e1682c064115.php:567
msgid "Backlight"
msgstr ""
-#: cache/49/49b3c02c876e8a464a75e1682c064115.php:542
+#: cache/49/49b3c02c876e8a464a75e1682c064115.php:572
msgid "Contrast"
msgstr ""
-#: cache/49/49b3c02c876e8a464a75e1682c064115.php:547
+#: cache/49/49b3c02c876e8a464a75e1682c064115.php:577
msgid "Brightness"
msgstr ""
-#: cache/49/49b3c02c876e8a464a75e1682c064115.php:552
+#: cache/49/49b3c02c876e8a464a75e1682c064115.php:582
msgid "Sharpness"
msgstr ""
-#: cache/49/49b3c02c876e8a464a75e1682c064115.php:557
+#: cache/49/49b3c02c876e8a464a75e1682c064115.php:587
msgid "Horizontal Sharpness"
msgstr ""
-#: cache/49/49b3c02c876e8a464a75e1682c064115.php:562
+#: cache/49/49b3c02c876e8a464a75e1682c064115.php:592
msgid "Vertical Sharpness"
msgstr ""
-#: cache/49/49b3c02c876e8a464a75e1682c064115.php:567
+#: cache/49/49b3c02c876e8a464a75e1682c064115.php:597
msgid "Color"
msgstr ""
-#: cache/49/49b3c02c876e8a464a75e1682c064115.php:572
+#: cache/49/49b3c02c876e8a464a75e1682c064115.php:602
msgid "Tint"
msgstr ""
-#: cache/49/49b3c02c876e8a464a75e1682c064115.php:577
+#: cache/49/49b3c02c876e8a464a75e1682c064115.php:607
msgid "Color Temperature"
msgstr ""
-#: cache/49/49b3c02c876e8a464a75e1682c064115.php:582
+#: cache/49/49b3c02c876e8a464a75e1682c064115.php:612
msgid "Dynamic Contrast"
msgstr ""
-#: cache/49/49b3c02c876e8a464a75e1682c064115.php:587
+#: cache/49/49b3c02c876e8a464a75e1682c064115.php:617
msgid "Super Resolution"
msgstr ""
-#: cache/49/49b3c02c876e8a464a75e1682c064115.php:592
+#: cache/49/49b3c02c876e8a464a75e1682c064115.php:622
msgid "Color Gamut"
msgstr ""
-#: cache/49/49b3c02c876e8a464a75e1682c064115.php:597
+#: cache/49/49b3c02c876e8a464a75e1682c064115.php:627
msgid "Dynamic Color"
msgstr ""
-#: cache/49/49b3c02c876e8a464a75e1682c064115.php:602
+#: cache/49/49b3c02c876e8a464a75e1682c064115.php:632
msgid "Noise Reduction"
msgstr ""
-#: cache/49/49b3c02c876e8a464a75e1682c064115.php:607
+#: cache/49/49b3c02c876e8a464a75e1682c064115.php:637
msgid "MPEG Noise Reduction"
msgstr ""
-#: cache/49/49b3c02c876e8a464a75e1682c064115.php:612
+#: cache/49/49b3c02c876e8a464a75e1682c064115.php:642
msgid "Black Level"
msgstr ""
-#: cache/49/49b3c02c876e8a464a75e1682c064115.php:617
+#: cache/49/49b3c02c876e8a464a75e1682c064115.php:647
msgid "Gamma"
msgstr ""
-#: cache/49/49b3c02c876e8a464a75e1682c064115.php:625
-#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:466
+#: cache/49/49b3c02c876e8a464a75e1682c064115.php:655
+#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:478
msgid "Red"
msgstr ""
-#: cache/49/49b3c02c876e8a464a75e1682c064115.php:630
-#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:470
+#: cache/49/49b3c02c876e8a464a75e1682c064115.php:660
+#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:482
msgid "Green"
msgstr ""
-#: cache/49/49b3c02c876e8a464a75e1682c064115.php:635
+#: cache/49/49b3c02c876e8a464a75e1682c064115.php:665
msgid "Warm"
msgstr ""
-#: cache/49/49b3c02c876e8a464a75e1682c064115.php:640
+#: cache/49/49b3c02c876e8a464a75e1682c064115.php:670
msgid "Cool"
msgstr ""
-#: cache/49/49b3c02c876e8a464a75e1682c064115.php:685
+#: cache/49/49b3c02c876e8a464a75e1682c064115.php:715
msgid "usblock"
msgstr ""
-#: cache/49/49b3c02c876e8a464a75e1682c064115.php:690
+#: cache/49/49b3c02c876e8a464a75e1682c064115.php:720
msgid ""
"Set access to any device that uses the monitors USB port. Set to ‘False’ the "
"monitor will not accept input or read from USB ports."
msgstr ""
-#: cache/49/49b3c02c876e8a464a75e1682c064115.php:695
+#: cache/49/49b3c02c876e8a464a75e1682c064115.php:725
msgid "osdlock"
msgstr ""
-#: cache/49/49b3c02c876e8a464a75e1682c064115.php:700
+#: cache/49/49b3c02c876e8a464a75e1682c064115.php:730
msgid ""
"Set access to the monitor settings via the remote control. Set To ‘False’ "
"the remote control will not change the volume, brightness etc of the monitor."
msgstr ""
-#: cache/49/49b3c02c876e8a464a75e1682c064115.php:705
+#: cache/49/49b3c02c876e8a464a75e1682c064115.php:735
msgid "False"
msgstr ""
-#: cache/49/49b3c02c876e8a464a75e1682c064115.php:710
+#: cache/49/49b3c02c876e8a464a75e1682c064115.php:740
msgid "True"
msgstr ""
-#: cache/49/49b3c02c876e8a464a75e1682c064115.php:797
+#: cache/49/49b3c02c876e8a464a75e1682c064115.php:827
msgid "Keylock (local)"
msgstr ""
-#: cache/49/49b3c02c876e8a464a75e1682c064115.php:802
-#: cache/49/49b3c02c876e8a464a75e1682c064115.php:812
+#: cache/49/49b3c02c876e8a464a75e1682c064115.php:832
+#: cache/49/49b3c02c876e8a464a75e1682c064115.php:842
msgid "Set the allowed key input for the monitor."
msgstr ""
-#: cache/49/49b3c02c876e8a464a75e1682c064115.php:807
+#: cache/49/49b3c02c876e8a464a75e1682c064115.php:837
msgid "Keylock (remote)"
msgstr ""
-#: cache/49/49b3c02c876e8a464a75e1682c064115.php:817
+#: cache/49/49b3c02c876e8a464a75e1682c064115.php:847
msgid "Allow All"
msgstr ""
-#: cache/49/49b3c02c876e8a464a75e1682c064115.php:822
+#: cache/49/49b3c02c876e8a464a75e1682c064115.php:852
msgid "Block All"
msgstr ""
-#: cache/49/49b3c02c876e8a464a75e1682c064115.php:827
+#: cache/49/49b3c02c876e8a464a75e1682c064115.php:857
msgid "Power Only"
msgstr ""
@@ -14614,6 +15238,71 @@ msgid ""
"can be the default."
msgstr ""
+#: cache/97/97f2c018825ccdd326aad4a0b160725e.php:68
+msgid "Add a new template"
+msgstr ""
+
+#: cache/97/97f2c018825ccdd326aad4a0b160725e.php:74
+#: cache/26/26272b78e1f020a579ccf676c2d83a39.php:57
+msgid "Add Module Template"
+msgstr ""
+
+#: cache/97/97f2c018825ccdd326aad4a0b160725e.php:79
+msgid "Add a new template by importing XML file"
+msgstr ""
+
+#: cache/97/97f2c018825ccdd326aad4a0b160725e.php:81
+#: cache/97/97f2c018825ccdd326aad4a0b160725e.php:259
+msgid "Import XML"
+msgstr ""
+
+#: cache/97/97f2c018825ccdd326aad4a0b160725e.php:159
+msgid "Template ID"
+msgstr ""
+
+#: cache/97/97f2c018825ccdd326aad4a0b160725e.php:266
+#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:726
+#: cache/c5/c5ca1344d07a74a91c5de3a21d4c2de4.php:377
+#: cache/08/08aee2625ba2279e6a2c6465471b11e8.php:248
+#: cache/37/37f12704cf17017038d73d9ee1907d04.php:408
+#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:779
+#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:939
+#: cache/cb/cb0f801b3d2ddd3d1f61f47414d32047.php:274
+#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:631
+#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:739
+#: cache/b2/b21687508ff5b0bb637fdbd3f8c0d3c6.php:398
+#: lib/XTR/MaintenanceDailyTask.php:157 lib/XTR/NotificationTidyTask.php:115
+#: lib/XTR/MaintenanceRegularTask.php:150 lib/XTR/StatsArchiveTask.php:134
+#: lib/XTR/AuditLogArchiveTask.php:125 lib/XTR/RemoteDataSetFetchTask.php:228
+msgid "Done"
+msgstr ""
+
+#: cache/97/97f2c018825ccdd326aad4a0b160725e.php:280
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:974
+#: cache/08/08aee2625ba2279e6a2c6465471b11e8.php:262
+#: cache/cb/cb0f801b3d2ddd3d1f61f47414d32047.php:289
+#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:644
+msgid "Add files"
+msgstr ""
+
+#: cache/97/97f2c018825ccdd326aad4a0b160725e.php:284
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:978
+#: cache/08/08aee2625ba2279e6a2c6465471b11e8.php:266
+#: cache/cb/cb0f801b3d2ddd3d1f61f47414d32047.php:293
+#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:648
+#: cache/b2/b21687508ff5b0bb637fdbd3f8c0d3c6.php:358
+msgid "Start upload"
+msgstr ""
+
+#: cache/97/97f2c018825ccdd326aad4a0b160725e.php:288
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:982
+#: cache/08/08aee2625ba2279e6a2c6465471b11e8.php:270
+#: cache/cb/cb0f801b3d2ddd3d1f61f47414d32047.php:297
+#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:652
+#: cache/b2/b21687508ff5b0bb637fdbd3f8c0d3c6.php:362
+msgid "Cancel upload"
+msgstr ""
+
#: cache/69/694e00aa83e173717d735dc599dad89e.php:50
msgid "Font Details"
msgstr ""
@@ -14626,70 +15315,71 @@ msgstr ""
msgid "Add a new Campaign"
msgstr ""
-#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:190
+#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:195
msgid "Cycle Based Playback"
msgstr ""
-#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:200
-#: lib/Controller/User.php:304 lib/XTR/MaintenanceDailyTask.php:159
+#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:205
+#: lib/Controller/User.php:306 lib/XTR/MaintenanceDailyTask.php:159
#: lib/XTR/StatsArchiveTask.php:137 lib/XTR/StatsArchiveTask.php:332
msgid "Disabled"
msgstr ""
-#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:275
+#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:278
msgid "# Layouts"
msgstr ""
-#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:290
+#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:293
msgid "Cycle based Playback"
msgstr ""
-#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:294
+#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:297
+#: cache/60/6096ddd2496c1f25a148669f286abbeb.php:510
msgid "Play Count"
msgstr ""
-#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:313
+#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:316
#: cache/fe/fe92f223f863fb1896ced5bd33b8c256.php:476
#: lib/Report/DisplayAdPlay.php:461
msgid "Spend"
msgstr ""
-#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:323
-#: cache/53/53221a3cb3187e41cde32cfa796d45a7.php:211
+#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:326
+#: cache/53/53221a3cb3187e41cde32cfa796d45a7.php:229
msgid "Ref 1"
msgstr ""
-#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:327
-#: cache/53/53221a3cb3187e41cde32cfa796d45a7.php:215
+#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:330
+#: cache/53/53221a3cb3187e41cde32cfa796d45a7.php:233
msgid "Ref 2"
msgstr ""
-#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:331
-#: cache/53/53221a3cb3187e41cde32cfa796d45a7.php:219
+#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:334
+#: cache/53/53221a3cb3187e41cde32cfa796d45a7.php:237
msgid "Ref 3"
msgstr ""
-#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:335
-#: cache/53/53221a3cb3187e41cde32cfa796d45a7.php:223
+#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:338
+#: cache/53/53221a3cb3187e41cde32cfa796d45a7.php:241
msgid "Ref 4"
msgstr ""
-#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:339
-#: cache/53/53221a3cb3187e41cde32cfa796d45a7.php:227
+#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:342
+#: cache/53/53221a3cb3187e41cde32cfa796d45a7.php:245
msgid "Ref 5"
msgstr ""
-#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:343
-#: cache/cb/cb0f801b3d2ddd3d1f61f47414d32047.php:154
+#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:346
+#: cache/cb/cb0f801b3d2ddd3d1f61f47414d32047.php:159
msgid "Created At"
msgstr ""
-#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:347
-#: cache/cb/cb0f801b3d2ddd3d1f61f47414d32047.php:158
+#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:350
+#: cache/cb/cb0f801b3d2ddd3d1f61f47414d32047.php:163
msgid "Modified At"
msgstr ""
-#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:431
+#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:436
msgid "Ad"
msgstr ""
@@ -14722,22 +15412,9 @@ msgstr ""
msgid "Add a new resolution for use on layouts"
msgstr ""
-#: cache/8c/8c08891d370939702e3d45696c9e38d6.php:146
-#: cache/26/26b74efc874b3a8a5a7cf3ed2a22c6ba.php:264
-#: cache/f7/f789072c56d4d186cbc4fdd166003cb4.php:120
-#: cache/3e/3e663c80c5eafee333d2ece3b148e49a.php:95
-#: cache/8e/8e4c9c1886827e5f797c4436d4051e48.php:145
-#: cache/8e/8e4c9c1886827e5f797c4436d4051e48.php:204
-#: cache/8e/8e4c9c1886827e5f797c4436d4051e48.php:401
-#: cache/8e/8e4c9c1886827e5f797c4436d4051e48.php:483
-#: cache/8e/8e4c9c1886827e5f797c4436d4051e48.php:609
-#: cache/8e/8e4c9c1886827e5f797c4436d4051e48.php:691
-msgid "Enabled?"
-msgstr ""
-
#: cache/8c/8ce8fc6aadcb243480fdca6732c41fea.php:109
#: cache/c5/c5ca1344d07a74a91c5de3a21d4c2de4.php:55
-#: cache/c5/c5ca1344d07a74a91c5de3a21d4c2de4.php:87
+#: cache/c5/c5ca1344d07a74a91c5de3a21d4c2de4.php:92
msgid "Notification Centre"
msgstr ""
@@ -14756,15 +15433,15 @@ msgstr ""
msgid "Add a new Tag"
msgstr ""
-#: cache/e3/e3e074211e42eadb55ae8cb6ceeaa722.php:118
+#: cache/e3/e3e074211e42eadb55ae8cb6ceeaa722.php:122
msgid "Show System tags?"
msgstr ""
-#: cache/e3/e3e074211e42eadb55ae8cb6ceeaa722.php:128
+#: cache/e3/e3e074211e42eadb55ae8cb6ceeaa722.php:132
msgid "Show only tags with values?"
msgstr ""
-#: cache/e3/e3e074211e42eadb55ae8cb6ceeaa722.php:151
+#: cache/e3/e3e074211e42eadb55ae8cb6ceeaa722.php:155
msgid "isRequired"
msgstr ""
@@ -14777,351 +15454,354 @@ msgstr ""
msgid "Edit Data"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:701
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:763
msgid "Delete %obj%"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:705
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:767
msgid "Changes that you have made may not be saved!"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:717
-#: cache/37/37f12704cf17017038d73d9ee1907d04.php:312
-msgid "Select All"
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:771
+msgid "Please increase your resolution to use the editing tools"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:729
-msgid "Load %prop% for %obj%"
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:775
+msgid ""
+"Layout and Playlist editing requires a minimum width of 1200 pixels and "
+"height of 600 pixels"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:733
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:799
+msgid "Load %prop% for %obj%"
+msgstr ""
+
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:803
msgid "Loading"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:741
-#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:156
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:811
+#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:163
#: cache/8d/8d27a7617bf5bf7e7c28a56a7b503514.php:74
-#: lib/Controller/Template.php:180 lib/Controller/Layout.php:1667
+#: lib/Controller/Template.php:186 lib/Controller/Layout.php:1691
msgid "Publish"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:753
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:823
msgid "View Source Code"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:757
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:827
msgid "Detach Editor"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:761
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:831
msgid "Attach Editor"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:765
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:835
msgid "Scale to view"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:769
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:839
msgid "Scale to width"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:773
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:843
msgid "Scale to height"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:777
-#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:278
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:847
+#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:293
msgid "Zoom in"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:781
-#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:282
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:851
+#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:297
msgid "Zoom out"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:793
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:863
msgid ""
"This widget isn't enabled and can't be configured, please contact your "
"administrator for help."
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:797
-#: lib/Controller/Playlist.php:383
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:867
+#: lib/Controller/Playlist.php:386
msgid "Timeline"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:806
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:876
msgid "Zones"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:823
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1289
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:893
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1379
msgid "Delete Action"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:827
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:897
msgid "Are you sure you want to delete this action?"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:844
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:914
msgid "Replace Layout"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:848
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:918
msgid "Are you sure you want to replace your Layout with a template?"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:857
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2201
-#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:711
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:927
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2449
+#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:720
msgid "Replace"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:864
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:934
msgid "Select widget or create a new one"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:868
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:938
msgid "Create new"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:880
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:950
msgid "# of elements"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:884
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:954
msgid "# of element groups"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:889
-#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:128
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:959
+#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:135
msgid "Exit"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:896
-#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:724
-msgid "Upload media"
-msgstr ""
-
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:900
-#: cache/08/08aee2625ba2279e6a2c6465471b11e8.php:257
-#: cache/cb/cb0f801b3d2ddd3d1f61f47414d32047.php:278
-#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:635
-msgid "Add files"
-msgstr ""
-
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:904
-#: cache/08/08aee2625ba2279e6a2c6465471b11e8.php:261
-#: cache/cb/cb0f801b3d2ddd3d1f61f47414d32047.php:282
-#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:639
-#: cache/b2/b21687508ff5b0bb637fdbd3f8c0d3c6.php:344
-msgid "Start upload"
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:963
+msgid "Playlist converted to global!"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:908
-#: cache/08/08aee2625ba2279e6a2c6465471b11e8.php:265
-#: cache/cb/cb0f801b3d2ddd3d1f61f47414d32047.php:286
-#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:643
-#: cache/b2/b21687508ff5b0bb637fdbd3f8c0d3c6.php:348
-msgid "Cancel upload"
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:970
+#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:733
+msgid "Upload media"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:912
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2225
-#: cache/37/37f12704cf17017038d73d9ee1907d04.php:606
-#: cache/cb/cb0f801b3d2ddd3d1f61f47414d32047.php:290
-#: cache/b2/b21687508ff5b0bb637fdbd3f8c0d3c6.php:352
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:986
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2473
+#: cache/37/37f12704cf17017038d73d9ee1907d04.php:650
+#: cache/cb/cb0f801b3d2ddd3d1f61f47414d32047.php:301
+#: cache/b2/b21687508ff5b0bb637fdbd3f8c0d3c6.php:366
msgid "Processing..."
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:924
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2249
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:998
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2497
msgid "Set Expiry Dates"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:928
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2253
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1002
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2501
msgid ""
"Use the check box to set Start and End dates/times for media files and use "
"the Start Upload button to apply to all files or the row upload button to "
"upload individually."
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:932
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2257
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1006
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2505
#: cache/72/72bfb52fd80e06544d4442d19663906a.php:97
msgid "Select the start time for this widget"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:936
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2261
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1010
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2509
#: cache/72/72bfb52fd80e06544d4442d19663906a.php:112
msgid "Select the end time for this widget"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:940
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2265
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1014
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2513
msgid "Delete on Expiry"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:944
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2269
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1018
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2517
#: cache/72/72bfb52fd80e06544d4442d19663906a.php:127
msgid ""
"When the End Time for this Widget passes should the Widget be removed from "
"the Playlist?"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:948
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1022
msgid "Delete from Library"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:952
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1026
msgid "Remove file from the Media Library"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:960
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2221
-#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:831
-#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:651
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1034
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2469
+#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:845
+#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:660
msgid "Change Current Folder location"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:968
-#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:839
-#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:659
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1042
+#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:853
+#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:668
msgid "Upload files to this Folder"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:975
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1049
msgid "Edit Attached Audio"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:979
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1053
msgid "Edit Expiry Dates"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:983
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1057
msgid "Edit Transition In"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:987
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1061
msgid "Edit Transition Out"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:991
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1065
msgid "Edit Sharing"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:995
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1069
msgid "Edit Region Sharing"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:999
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1073
msgid "Edit Widget Sharing"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1011
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1081
+msgid "Convert Playlist"
+msgstr ""
+
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1085
+msgid "Convert Layout playlist into a Global playlist."
+msgstr ""
+
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1093
msgid "Move one step left"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1015
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1097
msgid "Move one step right"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1019
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1101
msgid "Move to the top left"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1023
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1105
msgid "Move to the top right"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1027
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1109
msgid "Bring to front"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1031
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1113
msgid "Bring forward"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1035
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1117
msgid "Send backwards"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1039
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1121
msgid "Send to back"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1047
-#: cache/37/37f12704cf17017038d73d9ee1907d04.php:368
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1129
+#: cache/37/37f12704cf17017038d73d9ee1907d04.php:396
msgid "Duplicate"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1051
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1133
msgid "New Configuration"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1055
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1137
+msgid "Edit Text"
+msgstr ""
+
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1141
msgid "Group elements"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1059
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1145
msgid "Ungroup elements"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1063
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1149
msgid "Add elements to group"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1067
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1153
msgid "Delete all"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1078
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1240
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2017
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2033
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2126
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2186
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1164
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1330
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2189
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2205
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2370
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2430
+#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:489
msgid "Zone"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1082
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1244
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1621
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2110
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2793
-#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:458
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1168
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1334
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1719
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2354
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3116
+#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:497
msgid "Widget"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1094
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1180
msgid "Appearance"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1122
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1184
+msgid "Fallback Data"
+msgstr ""
+
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1212
msgid "Widget Dimensions"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1134
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1224
msgid "Scale"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1142
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1232
msgid "This widget needs to be configured before it will be shown."
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1146
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1236
msgid ""
"This widget needs to have at least one of the following elements: %elements%."
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1150
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1240
msgid "Data Slot"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1154
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1244
msgid ""
"When there are more than one of the same element for a widget you can set "
"the slot for each element. For example with two of the same element you'd "
@@ -15129,1611 +15809,1807 @@ msgid ""
"receive items 1,3,5,7,9 and slot 2 would receive items 2,4,6,8,10."
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1158
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1248
msgid "Pin this slot?"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1162
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1252
msgid ""
"The first item that appears in a slot will be pinned and will not cycle with "
"the rest of the items."
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1166
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1256
msgid "Scale with group"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1170
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1260
msgid "Scale element when scaling containing group."
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1174
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1264
msgid "Align"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1178
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1268
msgid "Alignment when scaling the containing group."
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1183
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1273
msgid "Top/Left"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1187
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1277
msgid "Top/Right"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1191
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1281
msgid "Bottom/Left"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1195
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1285
msgid "Bottom/Right"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1200
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1290
msgid "Something went wrong!"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1204
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1294
msgid "Selected item is not shared with you with edit permission!"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1209
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1299
msgid "No actions to show"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1213
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1303
msgid "Other Actions"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1217
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1307
msgid "* Not Defined"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1222
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1312
msgid "Layout Actions"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1226
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1316
msgid "Zone Actions"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1230
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1320
msgid "Widget Actions"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1257
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1341
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1347
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1431
msgid "Trigger"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1265
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1355
msgid ""
"If your Widget is a Shell Command you can select to target 'Screen' to run "
"the command without affecting any Zones. For all other Widgets select 'Zone' "
"as target."
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1269
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1359
msgid "Touch/Click"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1273
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1363
msgid "Web hook"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1285
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1375
msgid "Edit Action"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1293
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1909
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1383
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2077
msgid "Next Layout"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1297
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1913
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1387
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2081
msgid "Previous Layout"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1301
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1917
-#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:263
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1391
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2085
+#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:270
msgid "Next Widget"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1305
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1921
-#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:259
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1395
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2089
+#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:266
msgid "Previous Widget"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1317
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1407
msgid "Widget to Load"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1321
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1411
msgid "Select or create a Widget to be loaded"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1325
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2773
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1415
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3096
msgid "Trigger Type"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1329
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1419
msgid "How should the Player listen for this Action to be triggered?"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1337
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1427
msgid ""
"If this Action is triggered by a Web Hook then this Trigger Code must be "
"present in the URL `trigger=` parameter."
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1345
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1435
msgid "Select the target for the Trigger"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1353
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1443
msgid ""
"Please enter the Code identifier for the Layout as assigned in the Add / "
"Edit Layout form."
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1357
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1447
msgid "-- Create New --"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1367
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1457
msgid "Layer related to all layout objects"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1371
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1461
msgid "Element Layer"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1375
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1465
msgid "Layer for the element related to other elements"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1379
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1469
msgid "Element Group Layer"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1383
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1473
msgid ""
"Layer for the element group related to other groups or elements without group"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1387
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1477
msgid "Canvas Layer"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1391
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1481
msgid "Layer for the canvas containing all elements"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1411
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1501
msgid "Rotation"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1415
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1505
msgid ""
"Make this full screen, dimensions will be set to %layout.width% by %layout."
"height%."
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1419
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1509
msgid "Bring selected object back to the Layout view."
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1437
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1527
#: cache/0c/0cc104a3d7987780eed7a70657ece580.php:131
-msgid "No Image set, add from Toolbar or Upload!"
+msgid "No Image set, add from Toolbox or Upload!"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1441
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1531
#: cache/0c/0cc104a3d7987780eed7a70657ece580.php:143
msgid "Add background image"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1445
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1535
#: cache/0c/0cc104a3d7987780eed7a70657ece580.php:156
msgid "Upload"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1449
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1539
#: cache/0c/0cc104a3d7987780eed7a70657ece580.php:164
-#: cache/37/37f12704cf17017038d73d9ee1907d04.php:412
+#: cache/37/37f12704cf17017038d73d9ee1907d04.php:440
msgid "Remove"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1457
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1547
#: cache/0c/0cc104a3d7987780eed7a70657ece580.php:187
msgid "Change the resolution"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1465
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1555
#: cache/0c/0cc104a3d7987780eed7a70657ece580.php:202
msgid ""
"The layering order of the background image (z-index). Advanced use only."
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1469
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1559
#: cache/0c/0cc104a3d7987780eed7a70657ece580.php:212
msgid "Automatically apply Transitions?"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1473
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1563
#: cache/0c/0cc104a3d7987780eed7a70657ece580.php:217
msgid ""
"When enabled, the default Transition type and duration will be applied to "
"all widgets on this Layout."
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1483
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1569
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1573
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1667
msgid "An optional name for this widget"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1487
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1577
msgid "Content Synchronisation Key"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1491
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1581
msgid ""
"If this layout is scheduled using a synchronised event, this key will be "
"used to match with other layouts in the same event."
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1499
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1589
msgid "Enable Widget loop?"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1503
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1593
msgid "When should the Widget Loop be enabled?"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1507
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1597
msgid ""
"* If the Widget is a 'fixed' item (eg Text), Loop should not be enabled."
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1511
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1601
msgid ""
"* If the Widget needs to update periodically (eg RSS Ticker Widget), Loop "
"can be enabled ONLY if the Widget needs to update MORE frequently than the "
"duration of the overall Layout."
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1519
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1605
+msgid "Exit Transition?"
+msgstr ""
+
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1617
msgid "The layering order of this %regionType% (z-index). Advanced use only."
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1527
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1625
msgid "The top position of the %regionType%"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1535
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1633
msgid "The left position of the %regionType%"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1543
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1641
msgid "The width of the %regionType%"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1551
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1649
msgid "The height of the %regionType%"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1555
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1653
msgid ""
"Make this %regionType% full screen, dimensions will be set to %layout.width% "
"by %layout.height%."
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1559
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1657
msgid "Bring selected %regionType% back to the Layout view."
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1565
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1639
-#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:429
-msgid "Widget Name"
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1663
+msgid "Configuration Name"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1573
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1671
msgid "Set a duration?"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1577
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1675
msgid "Select to provide a specific duration for this Widget"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1585
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1683
msgid "The duration of the widget in seconds"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1593
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1691
msgid ""
"Enable the collection of Proof of Play statistics for this Widget. Ensure "
"that ‘Enable Stats Collection’ is set to ‘On’ in the Display Settings."
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1609
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1707
msgid "Repeat items to fill all data slots?"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1613
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1711
msgid ""
"Once all items have been placed in a slot, any empty slots will be filled "
"with items from the start."
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1625
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1723
msgid ""
"Widgets of the same type, change to transfer the source to a different "
"widget."
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1629
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1727
msgid "Transfer"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1633
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1731
msgid "Transfer the currently selected elements into a new widget!"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1644
-#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:433
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1737
+#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:444
+msgid "Widget Name"
+msgstr ""
+
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1742
+#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:456
msgid "Element Name"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1648
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1746
msgid "An optional name for this element"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1652
-#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:437
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1750
+#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:468
msgid "Element Group Name"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1656
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1754
msgid "An optional name for this group of elements"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1663
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1759
+msgid "Color 1"
+msgstr ""
+
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1763
+msgid "Color 2"
+msgstr ""
+
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1771
+msgid "Radial"
+msgstr ""
+
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1775
+msgid "Linear"
+msgstr ""
+
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1779
+msgid "Angle"
+msgstr ""
+
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1787
msgid "Delete selected %object%"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1667
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1791
msgid "Delete selected objects"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1671
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1795
msgid "Change Layout"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1679
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1803
msgid "Tooltips?"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1683
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1807
msgid ""
"Show/Hide tooltips which provide help; informational tooltips will remain."
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1691
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1811
+msgid "Delete confirmation?"
+msgstr ""
+
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1815
+msgid ""
+"Do we want to show confirmation modals when deleting critical Layout content?"
+msgstr ""
+
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1823
msgid "Select"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1695
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1827
msgid "Deselect"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1703
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1835
+#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:286
+msgid "Dynamic Playlist"
+msgstr ""
+
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1839
msgid "Preview media"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1707
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1843
#: lib/Controller/SavedReport.php:141
msgid "Open"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1711
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1847
msgid "Mark as favourite"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1715
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1851
msgid "Upload new"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1719
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1855
msgid "Upload %obj%"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1732
-#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:331
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1859
+msgid "New Playlist"
+msgstr ""
+
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1872
+#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:334
msgid "Tag"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1748
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1892
msgid "Provider"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1758
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1906
msgid "Media Id"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1796
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1810
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2822
-#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:251
-#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:299
-#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:321
-#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:261
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1944
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1958
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3145
+#: cache/c5/c5ca1344d07a74a91c5de3a21d4c2de4.php:115
+#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:257
+#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:305
+#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:327
+#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:266
msgid "All"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1814
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1962
msgid "Local"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1828
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1976
msgid "Add widgets"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1832
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1980
msgid "Global"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1836
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1984
msgid "Global Elements"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1844
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1992
msgid "Library image search"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1852
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2000
msgid "Library audio search"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1860
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2008
msgid "Library video search"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1864
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2012
+#: lib/Entity/DisplayEvent.php:222
msgid "Other"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1868
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2016
msgid "Library other media search"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1872
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1943
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2761
-#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:216
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2020
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2111
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3084
+#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:223
msgid "Actions"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1876
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2024
msgid "Interactive actions"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1880
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2028
msgid "Layout Templates"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1884
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2032
msgid "Search for Layout Templates"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1890
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2036
+msgid "Xibo Layout Exchange"
+msgstr ""
+
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2040
+msgid "Search for templates available from the Xibo Exchange."
+msgstr ""
+
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2048
+msgid "Add Playlists"
+msgstr ""
+
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2052
+msgid "Provider: %obj%"
+msgstr ""
+
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2058
msgid "Move Window"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1894
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2062
msgid "Close Window"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1898
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2066
msgid "Minimise Window"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1902
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2070
msgid "New Tab"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1939
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2107
msgid "Data Widgets"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1947
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2115
msgid "Favourites"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1951
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2119
msgid "Elements"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1955
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2123
msgid "Stencils"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1959
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2127
msgid "Static Templates"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1963
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2131
msgid "Close content"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1967
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2135
msgid "No widgets to display"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1971
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2139
msgid "No actions to display"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1975
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2143
msgid "No templates to display"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1979
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2147
msgid "No media to display!"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1983
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2151
+msgid "No playlists to display!"
+msgstr ""
+
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2155
msgid "Show more"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1987
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2159
msgid "No more results for this filter!"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1992
-#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:944
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2164
+#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:956
msgid "Close Preview"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1996
-#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:948
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2168
+#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:960
msgid "Change window size"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2000
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2172
msgid "Select media to add"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2004
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2064
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2176
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2304
msgid "Dimensions"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2021
-#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:462
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2193
+#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:501
msgid "Element"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2025
-#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:466
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2197
+#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:505
msgid "Element Group"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2037
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2209
msgid "Replace your Layout with a template?"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2041
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2213
+msgid "Replace your Layout with a Xibo Exchange template?"
+msgstr ""
+
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2217
msgid "Required"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2052
-#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:314
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2275
+msgid "Placeholder"
+msgstr ""
+
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2279
+msgid "Use this item to be used as a placeholder to add images."
+msgstr ""
+
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2292
+#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:329
msgid "Layout name"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2060
-#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:318
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2300
+#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:333
msgid "Layout duration"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2068
-#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:322
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2308
+#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:337
msgid "Layout dimensions"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2072
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2312
msgid "Layout Actions:"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2076
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2316
msgid "My Layouts?"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2084
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2324
msgid "Revert %target% save"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2088
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2328
msgid "Revert %target% order"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2092
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2332
msgid "Revert %target% transformation"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2096
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2104
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2336
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2344
msgid "Revert %target% creation"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2100
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2340
msgid "Revert %target% assignment"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2122
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2348
+msgid "Revert %target% elements change"
+msgstr ""
+
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2366
msgid "Frame"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2138
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2382
msgid "Layers"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2154
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2398
msgid "In %groupId%"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2162
-#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:445
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2406
+#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:476
+#: cache/26/26272b78e1f020a579ccf676c2d83a39.php:151
#: cache/bc/bc965084fd482159596791d6371a0f77.php:137
-#: lib/Controller/Template.php:269
+#: lib/Controller/Template.php:300
msgid "Template"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2174
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2414
+msgid "Empty layout"
+msgstr ""
+
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2418
msgid "Expand"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2178
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2422
msgid "Shrink"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2190
-#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:271
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2434
+msgid "Layout Background"
+msgstr ""
+
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2438
+#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:278
msgid "Invalid Region"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2194
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2373
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2442
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2629
msgid "Region is invalid: Please delete it to validate the Layout!"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2205
-#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:762
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2453
+#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:771
msgid "Add Replacement"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2209
-#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:766
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2457
+#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:775
msgid "Start Replace"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2213
-#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:770
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2461
+#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:779
msgid "Cancel Replace"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2230
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2478
#: cache/c5/c52b8109558dd3acc604e183177113c8.php:312
-#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:775
+#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:784
msgid "Update this media in all layouts it is assigned to?"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2234
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2482
#: cache/c5/c52b8109558dd3acc604e183177113c8.php:317
-#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:779
+#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:788
msgid "Note: It will only be updated in layouts you have permission to edit."
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2240
-#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:785
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2488
+#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:794
msgid "Delete the old version?"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2244
-#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:789
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2492
+#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:798
msgid ""
"Completely remove the old version of this media item if a new file is being "
"uploaded."
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2277
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2525
msgid "ERROR"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2281
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2529
msgid "There was a problem loading the Layout!"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2285
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2533
msgid "There was a problem loading the Playlist!"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2289
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2537
msgid "User save preferences failed!"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2293
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2541
msgid "User load preferences failed!"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2297
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2545
msgid "Library load failed!"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2301
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2549
msgid "Form load failed!"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2305
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2553
+msgid "Convert playlist failed!"
+msgstr ""
+
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2557
+msgid "Playlist needs a name to be converted!"
+msgstr ""
+
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2561
msgid "Revert failed: %error%"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2309
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2565
msgid "Save order failed: %error%"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2313
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2569
msgid "Delete failed: %error%"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2317
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2573
msgid "Save all changes failed!"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2321
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2577
msgid "Remove all changes failed!!"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2325
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2581
msgid "Importing media failed!!"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2329
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2585
msgid "Add media failed: %error%"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2333
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2589
msgid "Add module failed: %error%"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2337
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2593
msgid "Create region failed: %error%"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2341
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2597
msgid "List order not Changed!"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2345
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2601
msgid "Playlist save order failed!"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2349
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2605
msgid "Get form failed!"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2353
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2609
msgid "Transform zone failed!"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2357
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2613
msgid "Preview failed!"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2361
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2617
msgid "No widgets need saving!"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2365
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2621
msgid "Missing required property %property%"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2369
-#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:738
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2625
+#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:748
#: lib/Connector/XiboAudienceReportingConnector.php:899
#: lib/Connector/XiboAudienceReportingConnector.php:974
msgid "Unknown Error"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2377
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2633
msgid "Failed to import media!"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2381
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2637
msgid "This Canvas is not shared with you with edit permission!"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2388
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2641
+msgid "Failed to load media providers!"
+msgstr ""
+
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2648
msgid "Set to start"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2392
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2652
msgid "Set to expire"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2396
-#: cache/05/05600263dc8230138bb0f89338bbef69.php:104 web/xmds.php:136
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2656
+#: cache/05/05600263dc8230138bb0f89338bbef69.php:152 web/xmds.php:136
msgid "Expired"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2504
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2764
msgid "Fill - use the first Playlist to fill any remaining Spots"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2508
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2768
msgid "Pad"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2512
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2772
msgid "Pad - use the first Playlist to pad any remaining Spots"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2516
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2776
msgid "Repeat"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2520
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2780
msgid ""
"Repeat - repeat the Widgets in this Playlist until the number of Spots have "
"been filled"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2528
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2788
msgid ""
"How many spots would you like on this Sub-Playlist? This is used before "
"ordering to expand or shrink the list to the specified size. Leave empty to "
"use the count of Widgets."
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2536
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2796
msgid ""
"Set the duration of all Widgets in the Playlist to a specific value in "
"seconds. Leave empty to use each Widget duration."
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2540
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2800
msgid "Spot Length"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2544
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2804
msgid ""
"If there are not enough Widgets fill all spots, how should the remaining "
"spots be filled?"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2548
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2808
msgid "Spot Fill"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2552
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2812
msgid "You do not have access to this playlist"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2556
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2816
msgid "Playlist Id"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2563
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2671
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2823
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2994
msgid "Columns Available"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2567
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2675
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2827
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2998
msgid "Columns Selected"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2578
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2838
msgid "Drag tags to the right column so thy can be displayed on the marquee."
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2582
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2842
#: lib/Controller/StatusDashboard.php:231
msgid "Available"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2586
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2846
msgid "Selected"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2765
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2931
+msgid ""
+"Fallback data for this Data Widget can be provided below and included "
+"according to the property \"Show fallback data\". Fallback data will be "
+"shown with the same appearance as data returned from the source, and can be "
+"edited using the form below."
+msgstr ""
+
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2935
+msgid "Add New"
+msgstr ""
+
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2951
+msgid "Show fallback data"
+msgstr ""
+
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2955
+msgid "If provided, when should we show fallback data for this Widget?"
+msgstr ""
+
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2967
+msgid "When no data is returned"
+msgstr ""
+
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2971
+msgid "When there is an error"
+msgstr ""
+
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2975
+msgid "Undefined"
+msgstr ""
+
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2979
+msgid "Please fill out all least one field!"
+msgstr ""
+
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2983
+msgid "Please fill out all the required fields!"
+msgstr ""
+
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2987
+msgid "Required Field!"
+msgstr ""
+
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3088
msgid "Id"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2769
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3092
msgid "Owner Id"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2803
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3126
msgid "Add Action"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2807
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3130
msgid "Click to Add a new Action"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2815
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3138
msgid "There can only be one category per zone!"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2826
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3149
msgid "Show All"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2830
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3153
msgid "Show Paged"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2838
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3161
msgid "No Transition"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2842
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3165
msgid "Marquee Left"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2846
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3169
msgid "Marquee Right"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2850
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3173
msgid "Marquee Up"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2854
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3177
msgid "Marquee Down"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2858
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3181
msgid "Fade"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2866
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3189
msgid "Scroll Horizontal"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2870
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3193
msgid "Scroll Vertical"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2874
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3197
msgid "Flip Horizontal"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2878
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3201
msgid "Flip Vertical"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2882
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3205
msgid "Shuffle"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2886
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3209
msgid "Tile Slide"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2890
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3213
msgid "Tile Blind"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2898
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3221
msgid "Edit Playlist - %playlistName% - "
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2902
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3225
msgid "Widgets count"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2907
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3229
+msgid "Editing source playlist %playlistName% "
+msgstr ""
+
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3234
msgid "Zoom In"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2911
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3238
msgid "Zoom Out"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2915
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3242
msgid "Default zoom"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2919
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3246
msgid "Change scale mode"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2928
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3251
+msgid "Your changes will apply anywhere this Playlist is used."
+msgstr ""
+
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3259
msgid "Delete Playlist"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2932
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3263
msgid "Are you sure you want to delete a non-empty Playlist?"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2940
-#: lib/Connector/OpenWeatherMapConnector.php:495
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3269
+#: cache/2b/2b32343e2d811827739ee3c637757fe7.php:56
+#: cache/8d/8d762416eec05c4841be70e1b937f167.php:57
+msgid "Delete Widget"
+msgstr ""
+
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3273
+msgid "Are you sure you want to delete this widget?"
+msgstr ""
+
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3279
+msgid "Delete Element"
+msgstr ""
+
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3283
+msgid ""
+"Are you sure you want to delete this element? Widget will also be deleted "
+"and configuration will be lost."
+msgstr ""
+
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3289
+msgid "Delete Element Group"
+msgstr ""
+
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3293
+msgid ""
+"Are you sure you want to delete this element group? Widget will also be "
+"deleted and configuration will be lost."
+msgstr ""
+
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3299
+msgid "Delete all selected objects?"
+msgstr ""
+
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3303
+msgid ""
+"Are you sure you want to delete all selected objects? Widgets might also be "
+"deleted and configuration will be lost."
+msgstr ""
+
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3311
+#: lib/Connector/OpenWeatherMapConnector.php:519
msgid "Afrikaans"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2944
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3315
msgid "Arabic (Algeria)"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2948
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3319
msgid "Arabic (Kuwait)"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2952
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3323
msgid "Arabic (Libya)"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2956
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3327
msgid "Arabic (Morocco)"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2960
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3331
msgid "Arabic (Saudi Arabia)"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2964
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3335
msgid "Arabic (Tunisia)"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2968
-#: lib/Connector/OpenWeatherMapConnector.php:496
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3339
+#: lib/Connector/OpenWeatherMapConnector.php:520
msgid "Arabic"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2972
-#: lib/Connector/OpenWeatherMapConnector.php:497
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3343
+#: lib/Connector/OpenWeatherMapConnector.php:521
msgid "Azerbaijani"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2976
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3347
msgid "Belarusian"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2980
-#: lib/Connector/OpenWeatherMapConnector.php:498
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3351
+#: lib/Connector/OpenWeatherMapConnector.php:522
msgid "Bulgarian"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2984
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3355
msgid "Bambara"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2988
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3359
msgid "Bengali (Bangladesh)"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2992
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3363
msgid "Bengali"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2996
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3367
msgid "Tibetan"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3000
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3371
msgid "Breton"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3004
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3375
msgid "Bosnian"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3008
-#: lib/Connector/OpenWeatherMapConnector.php:499
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3379
+#: lib/Connector/OpenWeatherMapConnector.php:523
msgid "Catalan"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3012
-#: lib/Connector/OpenWeatherMapConnector.php:502
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3383
+#: lib/Connector/OpenWeatherMapConnector.php:526
msgid "Czech"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3016
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3387
msgid "Chuvash"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3020
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3391
msgid "Welsh"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3024
-#: lib/Connector/OpenWeatherMapConnector.php:503
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3395
+#: lib/Connector/OpenWeatherMapConnector.php:527
msgid "Danish"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3028
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3399
msgid "German (Austria)"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3032
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3403
msgid "German (Switzerland)"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3036
-#: lib/Connector/OpenWeatherMapConnector.php:504
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3407
+#: lib/Connector/OpenWeatherMapConnector.php:528
msgid "German"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3040
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3411
msgid "Divehi"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3044
-#: lib/Connector/OpenWeatherMapConnector.php:505
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3415
+#: lib/Connector/OpenWeatherMapConnector.php:529
msgid "Greek"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3048
-#: lib/Connector/OpenWeatherMapConnector.php:506
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3419
+#: lib/Connector/OpenWeatherMapConnector.php:530
msgid "English"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3052
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3423
msgid "English (Australia)"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3056
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3427
msgid "English (Canada)"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3060
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3064
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3431
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3435
msgid "English (United Kingdom)"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3068
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3439
msgid "English (Ireland)"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3072
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3443
msgid "English (Israel)"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3076
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3447
msgid "English (India)"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3080
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3451
msgid "English (New Zealand)"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3084
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3455
msgid "English (Singapore)"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3088
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3459
msgid "Esperanto"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3092
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3463
msgid "Spanish (Dominican Republic)"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3096
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3467
msgid "Spanish (Mexico)"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3100
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3471
msgid "Spanish (United States)"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3104
-#: lib/Connector/OpenWeatherMapConnector.php:533
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3475
+#: lib/Connector/OpenWeatherMapConnector.php:557
msgid "Spanish"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3108
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3479
msgid "Estonian"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3112
-#: lib/Connector/OpenWeatherMapConnector.php:507
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3483
+#: lib/Connector/OpenWeatherMapConnector.php:531
msgid "Basque"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3116
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3487
msgid "Persian"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3120
-#: lib/Connector/OpenWeatherMapConnector.php:509
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3491
+#: lib/Connector/OpenWeatherMapConnector.php:533
msgid "Finnish"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3124
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3495
msgid "Filipino"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3128
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3499
msgid "Faroese"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3132
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3503
msgid "French (Canada)"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3136
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3507
msgid "French (Switzerland)"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3140
-#: lib/Connector/OpenWeatherMapConnector.php:510
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3511
+#: lib/Connector/OpenWeatherMapConnector.php:534
msgid "French"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3144
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3515
msgid "Western Frisian"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3148
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3519
msgid "Scottish Gaelic"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3152
-#: lib/Connector/OpenWeatherMapConnector.php:511
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3523
+#: lib/Connector/OpenWeatherMapConnector.php:535
msgid "Galician"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3156
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3527
msgid "gom (Latin)"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3160
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3531
msgid "Gujarati"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3164
-#: lib/Connector/OpenWeatherMapConnector.php:512
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3535
+#: lib/Connector/OpenWeatherMapConnector.php:536
msgid "Hebrew"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3168
-#: lib/Connector/OpenWeatherMapConnector.php:513
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3539
+#: lib/Connector/OpenWeatherMapConnector.php:537
msgid "Hindi"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3172
-#: lib/Connector/OpenWeatherMapConnector.php:514
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3543
+#: lib/Connector/OpenWeatherMapConnector.php:538
msgid "Croatian"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3176
-#: lib/Connector/OpenWeatherMapConnector.php:515
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3547
+#: lib/Connector/OpenWeatherMapConnector.php:539
msgid "Hungarian"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3180
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3551
msgid "Armenian (Armenia)"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3184
-#: lib/Connector/OpenWeatherMapConnector.php:516
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3555
+#: lib/Connector/OpenWeatherMapConnector.php:540
msgid "Indonesian"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3188
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3559
msgid "Icelandic"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3192
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3563
msgid "Italian (Switzerland)"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3196
-#: lib/Connector/OpenWeatherMapConnector.php:517
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3567
+#: lib/Connector/OpenWeatherMapConnector.php:541
msgid "Italian"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3200
-#: lib/Connector/OpenWeatherMapConnector.php:518
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3571
+#: lib/Connector/OpenWeatherMapConnector.php:542
msgid "Japanese"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3204
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3575
msgid "Javanese"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3208
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3579
msgid "Georgian"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3212
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3583
msgid "Kazakh"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3216
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3587
msgid "Khmer"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3220
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3591
msgid "Kannada"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3224
-#: lib/Connector/OpenWeatherMapConnector.php:519
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3595
+#: lib/Connector/OpenWeatherMapConnector.php:543
msgid "Korean"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3228
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3599
msgid "Kurdish"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3232
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3603
msgid "Kirghiz"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3236
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3607
msgid "Luxembourgish"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3240
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3611
msgid "Lao"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3244
-#: lib/Connector/OpenWeatherMapConnector.php:521
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3615
+#: lib/Connector/OpenWeatherMapConnector.php:545
msgid "Lithuanian"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3248
-#: lib/Connector/OpenWeatherMapConnector.php:520
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3619
+#: lib/Connector/OpenWeatherMapConnector.php:544
msgid "Latvian"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3252
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3623
msgid "Montenegrin"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3256
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3627
msgid "Maori"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3260
-#: lib/Connector/OpenWeatherMapConnector.php:522
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3631
+#: lib/Connector/OpenWeatherMapConnector.php:546
msgid "Macedonian"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3264
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3635
msgid "Malayalam"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3268
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3639
msgid "Mongolian"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3272
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3643
msgid "Marathi"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3276
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3647
msgid "Malay (Malaysia)"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3280
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3651
msgid "Malay"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3284
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3655
msgid "Maltese"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3288
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3659
msgid "Burmese"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3292
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3663
msgid "Norwegian Bokmål"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3296
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3667
msgid "Nepali"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3300
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3671
msgid "Dutch (Belgium)"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3304
-#: lib/Connector/OpenWeatherMapConnector.php:524
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3675
+#: lib/Connector/OpenWeatherMapConnector.php:548
msgid "Dutch"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3308
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3679
msgid "Norwegian Nynorsk"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3312
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3683
msgid "Punjabi (India)"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3316
-#: lib/Connector/OpenWeatherMapConnector.php:525
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3687
+#: lib/Connector/OpenWeatherMapConnector.php:549
msgid "Polish"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3320
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3691
msgid "Portuguese (Brazil)"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3324
-#: lib/Connector/OpenWeatherMapConnector.php:526
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3695
+#: lib/Connector/OpenWeatherMapConnector.php:550
msgid "Portuguese"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3328
-#: lib/Connector/OpenWeatherMapConnector.php:528
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3699
+#: lib/Connector/OpenWeatherMapConnector.php:552
msgid "Romanian"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3332
-#: lib/Connector/OpenWeatherMapConnector.php:529
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3703
+#: lib/Connector/OpenWeatherMapConnector.php:553
msgid "Russian"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3336
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3707
msgid "Sindhi"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3340
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3711
msgid "Northern Sami"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3344
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3715
msgid "Sinhala"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3348
-#: lib/Connector/OpenWeatherMapConnector.php:531
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3719
+#: lib/Connector/OpenWeatherMapConnector.php:555
msgid "Slovak"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3352
-#: lib/Connector/OpenWeatherMapConnector.php:532
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3723
+#: lib/Connector/OpenWeatherMapConnector.php:556
msgid "Slovenian"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3356
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3727
msgid "Albanian"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3360
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3731
msgid "Serbian (Cyrillic)"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3364
-#: lib/Connector/OpenWeatherMapConnector.php:534
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3735
+#: lib/Connector/OpenWeatherMapConnector.php:558
msgid "Serbian"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3368
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3739
msgid "Swati"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3372
-#: lib/Connector/OpenWeatherMapConnector.php:530
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3743
+#: lib/Connector/OpenWeatherMapConnector.php:554
msgid "Swedish"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3376
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3747
msgid "Swahili"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3380
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3751
msgid "Tamil"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3384
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3755
msgid "Telugu"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3388
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3759
msgid "Tetum"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3392
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3763
msgid "Tajik"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3396
-#: lib/Connector/OpenWeatherMapConnector.php:535
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3767
+#: lib/Connector/OpenWeatherMapConnector.php:559
msgid "Thai"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3400
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3771
msgid "Turkmen"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3404
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3775
msgid "Tagalog (Philippines)"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3408
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3779
msgid "Klingon"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3412
-#: lib/Connector/OpenWeatherMapConnector.php:536
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3783
+#: lib/Connector/OpenWeatherMapConnector.php:560
msgid "Turkish"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3416
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3787
msgid "Talossan"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3420
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3791
msgid "Central Atlas Tamazight (Latin)"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3424
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3795
msgid "Central Atlas Tamazight"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3428
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3799
msgid "Uyghur (China)"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3432
-#: lib/Connector/OpenWeatherMapConnector.php:537
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3803
+#: lib/Connector/OpenWeatherMapConnector.php:561
msgid "Ukrainian"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3436
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3807
msgid "Urdu"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3440
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3811
msgid "Uzbek (Latin)"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3444
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3815
msgid "Uzbek"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3448
-#: lib/Connector/OpenWeatherMapConnector.php:538
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3819
+#: lib/Connector/OpenWeatherMapConnector.php:562
msgid "Vietnamese"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3452
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3823
msgid "Pseudo"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3456
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3827
msgid "Yoruba (Nigeria)"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3460
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3831
msgid "Chinese (China)"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3464
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3835
msgid "Chinese (Hong Kong)"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3468
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3839
msgid "Chinese (Macau)"
msgstr ""
-#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3472
+#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3843
msgid "Chinese (Taiwan)"
msgstr ""
@@ -16762,8 +17638,8 @@ msgid ""
msgstr ""
#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:286
-#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:585
-#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:610
+#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:615
+#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:640
msgid "Device Default"
msgstr ""
@@ -16775,7 +17651,7 @@ msgstr ""
msgid ""
"Set dimensions to be used for the Player window ensuring that they do not "
"exceed the actual screen size. Enter the following values representing the "
-"pixel sizings for; Left,Top,Width,Height. This requires a Player Restart to "
+"pixel sizings for; Top,Left,Width,Height. This requires a Player Restart to "
"action."
msgstr ""
@@ -16807,156 +17683,156 @@ msgid ""
"a Surface View for Video Rendering."
msgstr ""
-#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:360
+#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:390
msgid "Start during device start up?"
msgstr ""
-#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:363
+#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:393
msgid ""
"When the device starts and Android finishes loading, should the Player start "
"up and come to the foreground?"
msgstr ""
-#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:377
+#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:407
msgid "Run Intent"
msgstr ""
-#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:396
+#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:426
msgid "Action Bar Intent"
msgstr ""
-#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:399
+#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:429
msgid ""
"When set to Run Intent, which intent should be run. Format is: Action|"
"ExtraKey,ExtraMsg"
msgstr ""
-#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:407
+#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:437
msgid "Automatic Restart"
msgstr ""
-#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:410
+#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:440
msgid "Automatically Restart the application if we detect it is not visible."
msgstr ""
-#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:418
+#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:448
msgid "Start delay for device start up"
msgstr ""
-#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:421
+#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:451
msgid ""
"The number of seconds to wait before starting the application after the "
"device has started. Minimum 10."
msgstr ""
-#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:474
+#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:504
msgid "Action for Screen Shot Intent"
msgstr ""
-#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:477
+#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:507
msgid ""
"The Intent Action to use for requesting a screen shot. Leave empty to "
"natively create an image from the player screen content."
msgstr ""
-#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:496
+#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:526
msgid "WebView Plugin State"
msgstr ""
-#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:499
+#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:529
msgid "What plugin state should be used when starting a web view."
msgstr ""
-#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:502
+#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:532
msgid "On Demand"
msgstr ""
-#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:510
+#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:540
msgid "Hardware Accelerate Web Content"
msgstr ""
-#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:513
+#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:543
msgid "Mode for hardware acceleration of web based content."
msgstr ""
-#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:516
+#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:546
msgid "Off when transparent"
msgstr ""
-#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:524
+#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:554
msgid "Use CMS time?"
msgstr ""
-#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:527
+#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:557
msgid ""
"Set the device time using the CMS. Only available on rooted devices or "
"system signed players."
msgstr ""
-#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:535
+#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:565
msgid "Enable caching of Web Resources?"
msgstr ""
-#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:538
+#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:568
msgid ""
"The standard browser cache will be used - we recommend this is switched off "
"unless specifically required. Effects Web Page and Embedded."
msgstr ""
-#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:568
+#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:598
msgid "Load Link Libraries for APK Update"
msgstr ""
-#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:571
+#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:601
msgid ""
"Should the update command include dynamic link libraries? Only change this "
"if your updates are failing."
msgstr ""
-#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:579
+#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:609
msgid "Use Multiple Video Decoders"
msgstr ""
-#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:582
+#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:612
msgid ""
"Should the Player try to use Multiple Video Decoders when preparing and "
"showing Video content."
msgstr ""
-#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:593
+#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:623
msgid "Maximum Region Count"
msgstr ""
-#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:596
+#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:626
msgid ""
"This setting is a memory limit protection setting which will stop rendering "
"regions beyond the limit set. Leave at 0 for no limit."
msgstr ""
-#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:604
+#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:634
msgid "Video Engine"
msgstr ""
-#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:607
+#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:637
msgid ""
"Select which video engine should be used to playback video. ExoPlayer is "
"usually better, but if you experience issues you can revert back to Android "
"Media Player. HLS always uses ExoPlayer. Available from v3 R300."
msgstr ""
-#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:610
+#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:640
msgid "ExoPlayer"
msgstr ""
-#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:610
+#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:640
msgid "Android Media Player"
msgstr ""
-#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:618
+#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:648
msgid "Enable touch capabilities on the device?"
msgstr ""
-#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:621
+#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:651
msgid ""
"If this device will be used as a touch screen check this option. Checking "
"this option will cause a message to appear on the player which needs to be "
@@ -16965,30 +17841,30 @@ msgid ""
"from v3 R300."
msgstr ""
-#: cache/74/744e0b5373a743ed5470adc55bec6bcc.php:143
+#: cache/74/744e0b5373a743ed5470adc55bec6bcc.php:145
msgid "Please provide your Two Factor Authorisation Code"
msgstr ""
-#: cache/74/744e0b5373a743ed5470adc55bec6bcc.php:163
-#: cache/74/744e0b5373a743ed5470adc55bec6bcc.php:230
+#: cache/74/744e0b5373a743ed5470adc55bec6bcc.php:165
+#: cache/74/744e0b5373a743ed5470adc55bec6bcc.php:232
#: cache/bc/bcf5f9074f174f8b5cbd4c3a0b0b5850.php:56
#: cache/bc/bcf5f9074f174f8b5cbd4c3a0b0b5850.php:69
msgid "Verify"
msgstr ""
-#: cache/74/744e0b5373a743ed5470adc55bec6bcc.php:168
+#: cache/74/744e0b5373a743ed5470adc55bec6bcc.php:170
msgid "Use Recovery Code instead?"
msgstr ""
-#: cache/74/744e0b5373a743ed5470adc55bec6bcc.php:205
+#: cache/74/744e0b5373a743ed5470adc55bec6bcc.php:207
msgid "Please provide your Two Factor Authorisation Recovery Code"
msgstr ""
-#: cache/74/744e0b5373a743ed5470adc55bec6bcc.php:209
+#: cache/74/744e0b5373a743ed5470adc55bec6bcc.php:211
msgid "Recovery Code"
msgstr ""
-#: cache/74/744e0b5373a743ed5470adc55bec6bcc.php:235
+#: cache/74/744e0b5373a743ed5470adc55bec6bcc.php:237
msgid "Use Two Factor Code instead?"
msgstr ""
@@ -16996,303 +17872,283 @@ msgstr ""
msgid "Associate an item from the Library"
msgstr ""
-#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:56
-msgid "Layout Editor"
-msgstr ""
-
-#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:132
+#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:139
msgid "Toggle Fullscreen Mode"
msgstr ""
-#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:136
+#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:143
msgid "Layer Manager"
msgstr ""
-#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:140
+#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:147
msgid "Snap to Grid"
msgstr ""
-#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:144
+#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:151
msgid "Snap to Borders"
msgstr ""
-#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:148
+#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:155
msgid "Snap to Elements"
msgstr ""
-#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:152
+#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:159
#: cache/32/32885dae79820faade39c5207ec15914.php:62
msgid "New"
msgstr ""
-#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:160
+#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:167
msgid "Discard draft"
msgstr ""
-#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:168
+#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:175
#: cache/8d/8d27a7617bf5bf7e7c28a56a7b503514.php:140
msgid ""
"Are you sure you want to publish this Layout? If it is already in use the "
"update will automatically get pushed."
msgstr ""
-#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:172
+#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:179
#: cache/ca/ca2dd0b2142f7bc07fc5e4b9d6a35375.php:72
-#: lib/Controller/Template.php:197 lib/Controller/Layout.php:1684
+#: lib/Controller/Template.php:203 lib/Controller/Layout.php:1708
msgid "Checkout"
msgstr ""
-#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:180
+#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:187
msgid "Unlock"
msgstr ""
-#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:184
-#: lib/Controller/Layout.php:1871
+#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:191
+#: lib/Controller/Layout.php:1897
msgid "Save Template"
msgstr ""
-#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:188
+#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:195
msgid "Read Only"
msgstr ""
-#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:192
+#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:199
msgid ""
"You are viewing this Layout in read only mode, checkout by clicking on this "
"message or from the Options menu above!"
msgstr ""
-#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:200
+#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:207
msgid "This is being locked by another user. Lock expires on: [expiryDate]"
msgstr ""
-#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:204
+#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:211
msgid "Not editable, please checkout!"
msgstr ""
-#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:208
+#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:215
msgid ""
"The current layout will be unlocked to other users. You will also be "
"redirected to the Layouts page"
msgstr ""
-#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:220
+#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:227
msgid ""
"This is published and cannot be edited. You can checkout for editing below, "
"or continue to view it in a read only mode."
msgstr ""
-#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:224
+#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:231
msgid "Showing sample data"
msgstr ""
-#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:228
+#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:235
msgid "Has empty data"
msgstr ""
-#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:235
+#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:242
msgid "Inline Editor"
msgstr ""
-#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:239
-#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:421
+#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:246
+#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:436
msgid "Next widget"
msgstr ""
-#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:243
-#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:425
+#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:250
+#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:440
msgid "Previous widget"
msgstr ""
-#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:247
+#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:254
msgid "Add Widget"
msgstr ""
-#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:251
+#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:258
msgid "Edit Group"
msgstr ""
-#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:267
+#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:274
#: lib/Controller/Region.php:672
msgid "Empty Playlist"
msgstr ""
-#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:286
+#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:301
msgid "Reset zoom"
msgstr ""
-#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:290
+#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:305
msgid "Visible area time span"
msgstr ""
-#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:294
+#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:309
msgid "Zoom out to see timeruler!"
msgstr ""
-#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:298
+#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:313
msgid ""
"No Regions: Add a Region to start creating content by clicking here or the "
"Edit Layout icon below!"
msgstr ""
-#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:302
+#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:317
msgid "Scroll to selected widget"
msgstr ""
-#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:306
+#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:321
msgid "Visible area start time"
msgstr ""
-#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:310
+#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:325
msgid "Visible area end time"
msgstr ""
-#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:326
+#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:341
msgid "Add to this position"
msgstr ""
-#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:330
+#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:345
msgid "Zoom in to see more details!"
msgstr ""
-#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:334
+#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:349
msgid "Edit region"
msgstr ""
-#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:338
+#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:353
msgid "Open as playlist"
msgstr ""
-#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:342
+#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:357
msgid "Widget Actions:"
msgstr ""
-#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:346
+#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:361
msgid "Region Actions:"
msgstr ""
-#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:353
+#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:368
msgid "Edit layout regions"
msgstr ""
-#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:361
+#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:376
msgid "Add a new region"
msgstr ""
-#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:365
+#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:380
msgid "Delete region"
msgstr ""
-#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:369
+#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:384
msgid "Undo"
msgstr ""
-#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:373
+#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:388
msgid "Revert last change"
msgstr ""
-#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:381
+#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:396
msgid "Return to Layout View"
msgstr ""
-#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:389
+#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:404
msgid "Save changes"
msgstr ""
-#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:393
+#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:408
msgid "Go back to Layout view"
msgstr ""
-#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:397
+#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:412
msgid "Save editor changes"
msgstr ""
-#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:401
+#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:416
msgid "Play Layout preview"
msgstr ""
-#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:405
+#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:420
msgid "Preview stopped!"
msgstr ""
-#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:409
+#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:424
msgid "Click to Play again"
msgstr ""
-#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:417
+#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:432
msgid "Stop Layout preview"
msgstr ""
-#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:441
-msgid "Region Name"
+#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:448
+msgid "Widget Type"
msgstr ""
-#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:477
-msgid "Add a Region"
+#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:452
+msgid "Widget Template Name"
msgstr ""
-#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:487
-msgid "Upload Audio files to assign to Widgets"
+#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:460
+msgid "Media Name"
msgstr ""
-#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:493
-msgid "Expiry Dates"
+#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:472
+msgid "Region Name"
msgstr ""
-#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:497
-msgid "Enter start and end times for Widgets"
+#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:516
+msgid "Upload Audio files to assign to Widgets"
msgstr ""
-#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:503
+#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:522
msgid "Transition In"
msgstr ""
-#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:507
+#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:526
msgid "Apply a Transition type for the start of a media item"
msgstr ""
-#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:513
+#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:532
msgid "Transition Out"
msgstr ""
-#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:517
+#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:536
msgid "Apply a Transition type for the end of a media item"
msgstr ""
-#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:527
+#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:546
msgid "Set View, Edit and Delete Sharing for Widgets and Playlists"
msgstr ""
-#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:697
+#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:719
msgid "Add Background Image"
msgstr ""
-#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:704
-#: cache/c5/c5ca1344d07a74a91c5de3a21d4c2de4.php:305
-#: cache/08/08aee2625ba2279e6a2c6465471b11e8.php:243
-#: cache/37/37f12704cf17017038d73d9ee1907d04.php:380
-#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:769
-#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:927
-#: cache/cb/cb0f801b3d2ddd3d1f61f47414d32047.php:263
-#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:622
-#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:730
-#: cache/b2/b21687508ff5b0bb637fdbd3f8c0d3c6.php:384
-#: lib/XTR/MaintenanceDailyTask.php:157 lib/XTR/NotificationTidyTask.php:115
-#: lib/XTR/MaintenanceRegularTask.php:150 lib/XTR/StatsArchiveTask.php:134
-#: lib/XTR/AuditLogArchiveTask.php:125 lib/XTR/RemoteDataSetFetchTask.php:214
-msgid "Done"
-msgstr ""
-
-#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:717
+#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:739
msgid "Browse/Add Image"
msgstr ""
-#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:721
-#: cache/c5/c5ca1344d07a74a91c5de3a21d4c2de4.php:322
+#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:743
+#: cache/c5/c5ca1344d07a74a91c5de3a21d4c2de4.php:394
msgid "Start Upload"
msgstr ""
-#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:725
-#: cache/c5/c5ca1344d07a74a91c5de3a21d4c2de4.php:326
+#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:747
+#: cache/c5/c5ca1344d07a74a91c5de3a21d4c2de4.php:398
msgid "Cancel Upload"
msgstr ""
@@ -17349,8 +18205,20 @@ msgid ""
"Leave empty if this command should be available on all types of Display."
msgstr ""
-#: cache/23/23114ff234f79ee13968407a57f6252d.php:193
-#: cache/d3/d3aa1431a8c1ca36890facca4eb9503f.php:195
+#: cache/23/23114ff234f79ee13968407a57f6252d.php:189
+#: cache/d3/d3aa1431a8c1ca36890facca4eb9503f.php:191
+#: cache/10/1090c5665a57f49e6b968318ca49de82.php:174
+msgid "Create Alert On"
+msgstr ""
+
+#: cache/23/23114ff234f79ee13968407a57f6252d.php:194
+#: cache/d3/d3aa1431a8c1ca36890facca4eb9503f.php:196
+#: cache/10/1090c5665a57f49e6b968318ca49de82.php:179
+msgid "On command execution, when should a Display alert be created?"
+msgstr ""
+
+#: cache/23/23114ff234f79ee13968407a57f6252d.php:213
+#: cache/d3/d3aa1431a8c1ca36890facca4eb9503f.php:215
msgid ""
"This should be a textual description of what the command is trying to "
"achieve. It should not be the command string."
@@ -17360,25 +18228,25 @@ msgstr ""
msgid "Add a new Display Group"
msgstr ""
-#: cache/23/238f0b98d7f96aca9a850e8b230fe1fb.php:137
+#: cache/23/238f0b98d7f96aca9a850e8b230fe1fb.php:136
msgid "Return Display Groups that directly contain the selected Display."
msgstr ""
-#: cache/23/238f0b98d7f96aca9a850e8b230fe1fb.php:147
+#: cache/23/238f0b98d7f96aca9a850e8b230fe1fb.php:146
msgid "Nested Display"
msgstr ""
-#: cache/23/238f0b98d7f96aca9a850e8b230fe1fb.php:152
+#: cache/23/238f0b98d7f96aca9a850e8b230fe1fb.php:151
msgid ""
"Return Display Groups that contain the selected Display somewhere in the "
"nested Display Group relationship tree."
msgstr ""
-#: cache/23/238f0b98d7f96aca9a850e8b230fe1fb.php:162
+#: cache/23/238f0b98d7f96aca9a850e8b230fe1fb.php:161
msgid "Dynamic Criteria"
msgstr ""
-#: cache/23/238f0b98d7f96aca9a850e8b230fe1fb.php:258
+#: cache/23/238f0b98d7f96aca9a850e8b230fe1fb.php:256
msgid "Is Dynamic?"
msgstr ""
@@ -17498,6 +18366,7 @@ msgid ""
msgstr ""
#: cache/38/38e5186bcfa9917c4ec02d8c626e2552.php:57
+#: cache/05/05600263dc8230138bb0f89338bbef69.php:81
#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:84
msgid "Add Synchronised Event"
msgstr ""
@@ -17560,7 +18429,7 @@ msgstr ""
#: cache/63/63a123f42a16165e90cd9f604b2de4bd.php:224
msgid ""
-"You can also add a template from an existing Layout from the Layout Designer."
+"You can also add a template from an existing Layout from the Layout Editor."
msgstr ""
#: cache/63/63a123f42a16165e90cd9f604b2de4bd.php:236
@@ -17734,7 +18603,7 @@ msgid "Layout %name%"
msgstr ""
#: cache/0e/0ed8020e97c517a55ad881cfc5dd0b4c.php:55
-#: cache/0e/0ed8020e97c517a55ad881cfc5dd0b4c.php:91
+#: cache/0e/0ed8020e97c517a55ad881cfc5dd0b4c.php:89
msgid "Audit Log"
msgstr ""
@@ -17742,21 +18611,21 @@ msgstr ""
msgid "Export raw data to CSV"
msgstr ""
-#: cache/0e/0ed8020e97c517a55ad881cfc5dd0b4c.php:135
-#: cache/0e/0ed8020e97c517a55ad881cfc5dd0b4c.php:192
+#: cache/0e/0ed8020e97c517a55ad881cfc5dd0b4c.php:133
+#: cache/0e/0ed8020e97c517a55ad881cfc5dd0b4c.php:190
msgid "Entity"
msgstr ""
-#: cache/0e/0ed8020e97c517a55ad881cfc5dd0b4c.php:145
-#: cache/0e/0ed8020e97c517a55ad881cfc5dd0b4c.php:196
+#: cache/0e/0ed8020e97c517a55ad881cfc5dd0b4c.php:143
+#: cache/0e/0ed8020e97c517a55ad881cfc5dd0b4c.php:194
msgid "Entity ID"
msgstr ""
-#: cache/0e/0ed8020e97c517a55ad881cfc5dd0b4c.php:208
+#: cache/0e/0ed8020e97c517a55ad881cfc5dd0b4c.php:206
msgid "Object"
msgstr ""
-#: cache/0e/0ed8020e97c517a55ad881cfc5dd0b4c.php:303
+#: cache/0e/0ed8020e97c517a55ad881cfc5dd0b4c.php:304
msgid "Property"
msgstr ""
@@ -17774,15 +18643,30 @@ msgstr ""
msgid "Edit Campaign \"%campaignName%\""
msgstr ""
-#: cache/05/05600263dc8230138bb0f89338bbef69.php:99
+#: cache/05/05600263dc8230138bb0f89338bbef69.php:73
+#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:76
+msgid "Add a new Sync event"
+msgstr ""
+
+#: cache/05/05600263dc8230138bb0f89338bbef69.php:87
+#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:90
+msgid "Add a new Scheduled event"
+msgstr ""
+
+#: cache/05/05600263dc8230138bb0f89338bbef69.php:93
+#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:96
+msgid "Add Event"
+msgstr ""
+
+#: cache/05/05600263dc8230138bb0f89338bbef69.php:147
msgid "Guest"
msgstr ""
-#: cache/05/05600263dc8230138bb0f89338bbef69.php:142
+#: cache/05/05600263dc8230138bb0f89338bbef69.php:190
msgid "Browser"
msgstr ""
-#: cache/05/05600263dc8230138bb0f89338bbef69.php:146
+#: cache/05/05600263dc8230138bb0f89338bbef69.php:194
msgid "Expires At"
msgstr ""
@@ -17790,7 +18674,7 @@ msgstr ""
msgid "Edit Product "
msgstr ""
-#: cache/fd/fd08b6cb6765ac676b671e9c5a7afe27.php:198
+#: cache/fd/fd08b6cb6765ac676b671e9c5a7afe27.php:157
msgid "Set a display order for this item to appear"
msgstr ""
@@ -17806,7 +18690,7 @@ msgid ""
msgstr ""
#: cache/fd/fdcb7243cca15e1cb2caaef15ca051a6.php:56
-#: lib/Controller/Display.php:927
+#: lib/Controller/Display.php:928
msgid "Set Default Layout"
msgstr ""
@@ -17823,11 +18707,6 @@ msgid ""
"Are you sure you want to reset this report schedule? This cannot be undone"
msgstr ""
-#: cache/2b/2b32343e2d811827739ee3c637757fe7.php:56
-#: cache/8d/8d762416eec05c4841be70e1b937f167.php:57
-msgid "Delete Widget"
-msgstr ""
-
#: cache/2b/2b32343e2d811827739ee3c637757fe7.php:88
#: cache/8d/8d762416eec05c4841be70e1b937f167.php:96
msgid "Are you sure you want to remove this widget?"
@@ -17885,7 +18764,7 @@ msgstr ""
msgid "Add a new Menu Board"
msgstr ""
-#: cache/f3/f3286f195f132c53823b9bb1068e5cc9.php:222
+#: cache/f3/f3286f195f132c53823b9bb1068e5cc9.php:225
msgid "Permissions"
msgstr ""
@@ -18060,11 +18939,15 @@ msgid "Which field would you like to use as the ID for this SSP?"
msgstr ""
#: cache/26/26b74efc874b3a8a5a7cf3ed2a22c6ba.php:492
-#: cache/60/6096ddd2496c1f25a148669f286abbeb.php:216
-#: cache/60/6096ddd2496c1f25a148669f286abbeb.php:259
+#: cache/60/6096ddd2496c1f25a148669f286abbeb.php:502
+#: cache/60/6096ddd2496c1f25a148669f286abbeb.php:581
msgid "Display ID"
msgstr ""
+#: cache/26/26272b78e1f020a579ccf676c2d83a39.php:156
+msgid "Optionally select existing template to use as a base for this Template"
+msgstr ""
+
#: cache/c5/c52b8109558dd3acc604e183177113c8.php:57
msgid "Edit Media"
msgstr ""
@@ -18110,7 +18993,7 @@ msgid ""
msgstr ""
#: cache/c5/c52b8109558dd3acc604e183177113c8.php:342
-#: lib/Controller/Library.php:1351
+#: lib/Controller/Library.php:1378
msgid "Sorry, Fonts do not have any editable properties."
msgstr ""
@@ -18119,24 +19002,36 @@ msgstr ""
msgid "Add Notification"
msgstr ""
-#: cache/c5/c5ca1344d07a74a91c5de3a21d4c2de4.php:296
+#: cache/c5/c5ca1344d07a74a91c5de3a21d4c2de4.php:109
+msgid "My Read"
+msgstr ""
+
+#: cache/c5/c5ca1344d07a74a91c5de3a21d4c2de4.php:112
+msgid "My Unread"
+msgstr ""
+
+#: cache/c5/c5ca1344d07a74a91c5de3a21d4c2de4.php:135
+msgid "Report"
+msgstr ""
+
+#: cache/c5/c5ca1344d07a74a91c5de3a21d4c2de4.php:368
msgid "Browse/Add attachment"
msgstr ""
-#: cache/c5/c5ca1344d07a74a91c5de3a21d4c2de4.php:318
+#: cache/c5/c5ca1344d07a74a91c5de3a21d4c2de4.php:390
msgid "Browse/Add Attachment"
msgstr ""
-#: cache/f0/f03a3c9d913ba87fcd4d1925058f2671.php:134
+#: cache/f0/f03a3c9d913ba87fcd4d1925058f2671.php:132
#: lib/Controller/Task.php:120
msgid "Run Now"
msgstr ""
-#: cache/f0/f03a3c9d913ba87fcd4d1925058f2671.php:142
+#: cache/f0/f03a3c9d913ba87fcd4d1925058f2671.php:140
msgid "Last Status"
msgstr ""
-#: cache/f0/f03a3c9d913ba87fcd4d1925058f2671.php:146
+#: cache/f0/f03a3c9d913ba87fcd4d1925058f2671.php:144
msgid "Last Duration"
msgstr ""
@@ -18149,8 +19044,8 @@ msgid "Select an Image"
msgstr ""
#: cache/2c/2c55cdb5429a136a535a9cd9b127d575.php:56
-#: lib/Controller/DisplayGroup.php:489 lib/Controller/Display.php:1067
-#: lib/Controller/Display.php:1082
+#: lib/Controller/DisplayGroup.php:494 lib/Controller/Display.php:1068
+#: lib/Controller/Display.php:1083
msgid "Collect Now"
msgstr ""
@@ -18284,8 +19179,8 @@ msgid "Add a layout"
msgstr ""
#: cache/fe/fe92f223f863fb1896ced5bd33b8c256.php:349
-#: cache/fe/fe92f223f863fb1896ced5bd33b8c256.php:547
-#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:79
+#: cache/fe/fe92f223f863fb1896ced5bd33b8c256.php:552
+#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:80
msgid "Add Layout"
msgstr ""
@@ -18303,15 +19198,15 @@ msgid ""
"campaign"
msgstr ""
-#: cache/fe/fe92f223f863fb1896ced5bd33b8c256.php:636
+#: cache/fe/fe92f223f863fb1896ced5bd33b8c256.php:641
msgid "Which days of the week should the layout be active?"
msgstr ""
-#: cache/fe/fe92f223f863fb1896ced5bd33b8c256.php:658
+#: cache/fe/fe92f223f863fb1896ced5bd33b8c256.php:663
msgid "Should this layout only be shown on selected day parts?"
msgstr ""
-#: cache/fe/fe92f223f863fb1896ced5bd33b8c256.php:672
+#: cache/fe/fe92f223f863fb1896ced5bd33b8c256.php:677
msgid "Draw areas on the map where you want this layout to play."
msgstr ""
@@ -18459,7 +19354,7 @@ msgid "Edit Version"
msgstr ""
#: cache/4c/4c51c53e92ed5731d0e8526118d29799.php:88
-#: cache/cb/cb0f801b3d2ddd3d1f61f47414d32047.php:130
+#: cache/cb/cb0f801b3d2ddd3d1f61f47414d32047.php:135
msgid "Player Version Name"
msgstr ""
@@ -18481,8 +19376,8 @@ msgid ""
"on upload, otherwise adjust it here"
msgstr ""
-#: cache/4c/4c1de7ab59196b70ffa9f9da4d4e3b9c.php:379
-#: cache/4c/4c1de7ab59196b70ffa9f9da4d4e3b9c.php:397
+#: cache/4c/4c1de7ab59196b70ffa9f9da4d4e3b9c.php:381
+#: cache/4c/4c1de7ab59196b70ffa9f9da4d4e3b9c.php:399
msgid "Select a property to display inputs"
msgstr ""
@@ -18519,7 +19414,8 @@ msgstr ""
#: cache/31/3166fdb717b675138677789dfe3ee06a.php:88
msgid ""
-"Are you sure you want to delete this notification? This cannot be undone"
+"Are you sure you want to delete this notification? It will be deleted for "
+"all CMS users. This cannot be undone"
msgstr ""
#: cache/31/31805080e1e51d4a56cb67fa60bdcb2f.php:96
@@ -18673,309 +19569,297 @@ msgstr ""
msgid "Widget cache?"
msgstr ""
-#: cache/35/35be00044edc69c7e0405b74ef1b4562.php:349
+#: cache/35/35be00044edc69c7e0405b74ef1b4562.php:351
msgid "No unused media in the Library"
msgstr ""
-#: cache/35/35be00044edc69c7e0405b74ef1b4562.php:395
+#: cache/35/35be00044edc69c7e0405b74ef1b4562.php:397
msgid "No unreleased media in the Library"
msgstr ""
-#: cache/08/08aee2625ba2279e6a2c6465471b11e8.php:73
+#: cache/08/08aee2625ba2279e6a2c6465471b11e8.php:70
msgid "Add a new Font"
msgstr ""
-#: cache/08/08aee2625ba2279e6a2c6465471b11e8.php:75
+#: cache/08/08aee2625ba2279e6a2c6465471b11e8.php:72
msgid "Upload Font"
msgstr ""
-#: cache/08/08aee2625ba2279e6a2c6465471b11e8.php:236
+#: cache/08/08aee2625ba2279e6a2c6465471b11e8.php:241
msgid "Add Font"
msgstr ""
-#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:76
-msgid "Add a new Sync event"
-msgstr ""
-
-#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:90
-msgid "Add a new Scheduled event"
-msgstr ""
-
-#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:96
-msgid "Add Event"
-msgstr ""
-
-#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:125
+#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:130
msgid "Range"
msgstr ""
-#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:130
+#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:135
msgid "Select a range"
msgstr ""
-#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:135
-#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:617
+#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:140
+#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:582
msgid "Today"
msgstr ""
-#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:140
+#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:145
msgid "This Week"
msgstr ""
-#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:145
+#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:150
msgid "This Month"
msgstr ""
-#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:150
+#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:155
msgid "This Year"
msgstr ""
-#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:155
+#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:160
msgid "Yesterday"
msgstr ""
-#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:160
+#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:165
msgid "Last Week"
msgstr ""
-#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:165
+#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:170
msgid "Last Month"
msgstr ""
-#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:170
+#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:175
msgid "Last Year"
msgstr ""
-#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:175
-#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:640
+#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:180
+#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:605
msgid "Agenda"
msgstr ""
-#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:238
-#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:270
-#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:274
+#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:243
+#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:275
+#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:279
msgid "Layout / Campaign"
msgstr ""
-#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:243
+#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:248
msgid "Please select a Layout or Campaign for this Event to show"
msgstr ""
-#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:391
+#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:352
msgid "Direct Schedule?"
msgstr ""
-#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:396
+#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:357
msgid "Show only events scheduled directly on selected Displays/Groups"
msgstr ""
-#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:421
+#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:382
msgid "Only show schedules which appear on all filtered displays/groups?"
msgstr ""
-#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:426
+#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:387
msgid "Shared Schedule?"
msgstr ""
-#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:451
-#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:548
+#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:412
+#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:509
msgid "Geo Aware?"
msgstr ""
-#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:455
-msgid "Both"
-msgstr ""
-
-#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:464
-#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:552
+#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:425
+#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:513
msgid "Recurring?"
msgstr ""
-#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:483
+#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:444
msgid "Grid"
msgstr ""
-#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:524
+#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:485
msgid "End"
msgstr ""
-#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:528
+#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:489
#: lib/Widget/DataType/Event.php:59
msgid "Event"
msgstr ""
-#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:532
+#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:493
msgid "Campaign ID"
msgstr ""
-#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:540
+#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:501
msgid "SoV"
msgstr ""
-#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:544
+#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:505
msgid "Max Plays per Hour"
msgstr ""
-#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:556
+#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:517
msgid "Recurrence Description"
msgstr ""
-#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:560
+#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:521
msgid "Recurrence Type"
msgstr ""
-#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:564
+#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:525
msgid "Recurrence Interval"
msgstr ""
-#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:568
+#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:529
msgid "Recurrence Repeats On"
msgstr ""
-#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:572
+#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:533
msgid "Recurrence End"
msgstr ""
-#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:576
+#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:537
msgid "Priority?"
msgstr ""
-#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:580
+#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:541
+msgid "Criteria?"
+msgstr ""
+
+#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:545
msgid "Created On"
msgstr ""
-#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:584
+#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:549
msgid "Updated On"
msgstr ""
-#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:604
+#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:569
msgid ""
"Please select a Display, Display Group or Layout / Campaign to view the "
"calendar"
msgstr ""
-#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:612
+#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:577
msgid "Prev"
msgstr ""
-#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:687
+#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:652
msgid "Get browser location!"
msgstr ""
-#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:693
+#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:658
msgid "Clear coordinates!"
msgstr ""
-#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:742
+#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:707
msgid "Always showing"
msgstr ""
-#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:747
+#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:712
msgid "Single Display"
msgstr ""
-#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:752
+#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:717
msgid "Multi Display"
msgstr ""
-#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:762
+#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:727
msgid "Recurring"
msgstr ""
-#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:767
+#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:732
msgid "View Only"
msgstr ""
-#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:777
+#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:742
msgid "Interrupt"
msgstr ""
-#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:787
+#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:752
msgid "Interactive Action"
msgstr ""
-#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:793
-#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:1398
+#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:758
+#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:1363
msgid "Synchronised"
msgstr ""
-#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:1018
+#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:983
msgid "Number of events"
msgstr ""
-#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:1285
+#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:1250
msgid "Display not selected!"
msgstr ""
-#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:1290
+#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:1255
msgid ""
"Show All option does not work for this filter, one or more specific Display/"
"Display Group need to be selected!"
msgstr ""
-#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:1295
+#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:1260
msgid "No events for the chosen Display/Display Group on the selected date!"
msgstr ""
-#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:1300
+#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:1265
msgid "Data request failed!"
msgstr ""
-#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:1373
+#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:1338
msgid "Overlay Layouts"
msgstr ""
-#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:1378
+#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:1343
msgid "Interrupt Layouts"
msgstr ""
-#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:1383
+#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:1348
msgid "Campaign Layouts"
msgstr ""
-#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:1388
+#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:1353
msgid "Full Screen Video/Image"
msgstr ""
-#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:1393
+#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:1358
msgid "Full Screen Playlist"
msgstr ""
-#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:1404
+#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:1369
msgid "Number of Layouts"
msgstr ""
-#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:1421
+#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:1386
msgid "Layout Name"
msgstr ""
-#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:1437
+#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:1402
msgid "Layout Duration"
msgstr ""
-#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:1461
+#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:1426
msgid "Visible"
msgstr ""
-#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:1477
+#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:1442
msgid ""
"This layout will not be shown as there are higher priority layouts scheduled "
"at this time"
msgstr ""
-#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:1594
+#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:1559
msgid "Cycle Playback?"
msgstr ""
-#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:1679
+#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:1644
msgid "Lead"
msgstr ""
-#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:1700
+#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:1665
msgid "Set The same Layout on all displays?"
msgstr ""
-#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:1704
+#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:1669
msgid "Mirror"
msgstr ""
@@ -19092,7 +19976,7 @@ msgid ""
msgstr ""
#: cache/cd/cdf12d9a1fc3b5db7965cfa8f9bb8d13.php:306
-#: cache/53/53221a3cb3187e41cde32cfa796d45a7.php:191
+#: cache/53/53221a3cb3187e41cde32cfa796d45a7.php:209
msgid "Retired?"
msgstr ""
@@ -19100,7 +19984,7 @@ msgstr ""
msgid "Is this user retired?"
msgstr ""
-#: cache/cd/cdf12d9a1fc3b5db7965cfa8f9bb8d13.php:520
+#: cache/cd/cdf12d9a1fc3b5db7965cfa8f9bb8d13.php:610
msgid ""
"Should this User see the new user guide when they log in? This will be set "
"to hidden if the User has dismissed the guide themselves."
@@ -19150,216 +20034,217 @@ msgid ""
"state so you can make edits."
msgstr ""
-#: cache/37/37f12704cf17017038d73d9ee1907d04.php:308
+#: cache/37/37f12704cf17017038d73d9ee1907d04.php:336
msgid "With Selected"
msgstr ""
-#: cache/37/37f12704cf17017038d73d9ee1907d04.php:316
+#: cache/37/37f12704cf17017038d73d9ee1907d04.php:344
msgid "Multiple Items Selected"
msgstr ""
-#: cache/37/37f12704cf17017038d73d9ee1907d04.php:320
+#: cache/37/37f12704cf17017038d73d9ee1907d04.php:348
msgid "Indeterminate State"
msgstr ""
-#: cache/37/37f12704cf17017038d73d9ee1907d04.php:324
+#: cache/37/37f12704cf17017038d73d9ee1907d04.php:352
msgid "Sorry, no items have been selected."
msgstr ""
-#: cache/37/37f12704cf17017038d73d9ee1907d04.php:328
+#: cache/37/37f12704cf17017038d73d9ee1907d04.php:356
msgid ""
"Caution, you have selected %1 items. Clicking save will run the %2 "
"transaction on all these items."
msgstr ""
-#: cache/37/37f12704cf17017038d73d9ee1907d04.php:332
+#: cache/37/37f12704cf17017038d73d9ee1907d04.php:360
#, php-format
msgid "Valid extensions are %s"
msgstr ""
-#: cache/37/37f12704cf17017038d73d9ee1907d04.php:348
+#: cache/37/37f12704cf17017038d73d9ee1907d04.php:376
msgid "Success"
msgstr ""
-#: cache/37/37f12704cf17017038d73d9ee1907d04.php:352
+#: cache/37/37f12704cf17017038d73d9ee1907d04.php:380
msgid "Failure"
msgstr ""
-#: cache/37/37f12704cf17017038d73d9ee1907d04.php:356
+#: cache/37/37f12704cf17017038d73d9ee1907d04.php:384
msgid "Enter text..."
msgstr ""
-#: cache/37/37f12704cf17017038d73d9ee1907d04.php:360
+#: cache/37/37f12704cf17017038d73d9ee1907d04.php:388
msgid "No Data returned from the source"
msgstr ""
-#: cache/37/37f12704cf17017038d73d9ee1907d04.php:364
+#: cache/37/37f12704cf17017038d73d9ee1907d04.php:392
msgid "Status Pending"
msgstr ""
-#: cache/37/37f12704cf17017038d73d9ee1907d04.php:372
+#: cache/37/37f12704cf17017038d73d9ee1907d04.php:400
msgid "Delete from Schedule"
msgstr ""
-#: cache/37/37f12704cf17017038d73d9ee1907d04.php:376
+#: cache/37/37f12704cf17017038d73d9ee1907d04.php:404
msgid "Warning - starts with or ends with a space, or contains double spaces"
msgstr ""
-#: cache/37/37f12704cf17017038d73d9ee1907d04.php:384
+#: cache/37/37f12704cf17017038d73d9ee1907d04.php:412
msgid "Free Text"
msgstr ""
-#: cache/37/37f12704cf17017038d73d9ee1907d04.php:388
+#: cache/37/37f12704cf17017038d73d9ee1907d04.php:416
msgid "Edit Tags"
msgstr ""
-#: cache/37/37f12704cf17017038d73d9ee1907d04.php:392
+#: cache/37/37f12704cf17017038d73d9ee1907d04.php:420
msgid ""
"Provide an optional Value for this Tag. If no Value is required, this field "
"can be left blank"
msgstr ""
-#: cache/37/37f12704cf17017038d73d9ee1907d04.php:400
+#: cache/37/37f12704cf17017038d73d9ee1907d04.php:428
msgid ""
"Before Uploading, scroll through the progress bar or play and pause to "
"select a still to be used as the video file thumbnail."
msgstr ""
-#: cache/37/37f12704cf17017038d73d9ee1907d04.php:408
+#: cache/37/37f12704cf17017038d73d9ee1907d04.php:436
msgid "Rename"
msgstr ""
-#: cache/37/37f12704cf17017038d73d9ee1907d04.php:416
-#: lib/Controller/Template.php:270 lib/Controller/Template.php:276
-#: lib/Controller/DisplayGroup.php:428 lib/Controller/DisplayGroup.php:441
-#: lib/Controller/DataSet.php:302 lib/Controller/DataSet.php:308
+#: cache/37/37f12704cf17017038d73d9ee1907d04.php:444
+#: lib/Controller/Template.php:301 lib/Controller/Template.php:314
+#: lib/Controller/DisplayGroup.php:433 lib/Controller/DisplayGroup.php:446
+#: lib/Controller/DataSet.php:350 lib/Controller/DataSet.php:356
#: lib/Controller/Campaign.php:422 lib/Controller/Campaign.php:428
#: lib/Controller/MenuBoard.php:194 lib/Controller/MenuBoard.php:202
-#: lib/Controller/Playlist.php:489 lib/Controller/Playlist.php:501
-#: lib/Controller/Library.php:711 lib/Controller/Library.php:717
-#: lib/Controller/Layout.php:1890 lib/Controller/Layout.php:1896
-#: lib/Controller/Display.php:1144 lib/Controller/Display.php:1157
+#: lib/Controller/Playlist.php:492 lib/Controller/Playlist.php:504
+#: lib/Controller/Library.php:713 lib/Controller/Library.php:719
+#: lib/Controller/Layout.php:1916 lib/Controller/Layout.php:1922
+#: lib/Controller/Display.php:1145 lib/Controller/Display.php:1158
+#: lib/Controller/Developer.php:132 lib/Controller/Developer.php:145
#: lib/Controller/Command.php:213 lib/Controller/Command.php:226
#: lib/Controller/DayPart.php:185 lib/Controller/DayPart.php:191
msgid "Share"
msgstr ""
-#: cache/37/37f12704cf17017038d73d9ee1907d04.php:420
+#: cache/37/37f12704cf17017038d73d9ee1907d04.php:448
msgid "Set as Home"
msgstr ""
-#: cache/37/37f12704cf17017038d73d9ee1907d04.php:424
+#: cache/37/37f12704cf17017038d73d9ee1907d04.php:452
msgid "Cannot modify root folder."
msgstr ""
-#: cache/37/37f12704cf17017038d73d9ee1907d04.php:428
-#: lib/Controller/Folder.php:397
+#: cache/37/37f12704cf17017038d73d9ee1907d04.php:456
+#: lib/Controller/Folder.php:405
msgid "Cannot remove Folder with content"
msgstr ""
-#: cache/37/37f12704cf17017038d73d9ee1907d04.php:432
+#: cache/37/37f12704cf17017038d73d9ee1907d04.php:460
msgid "New Folder"
msgstr ""
-#: cache/37/37f12704cf17017038d73d9ee1907d04.php:436
+#: cache/37/37f12704cf17017038d73d9ee1907d04.php:464
msgid "Move Folder"
msgstr ""
-#: cache/37/37f12704cf17017038d73d9ee1907d04.php:440
+#: cache/37/37f12704cf17017038d73d9ee1907d04.php:468
msgid "Right click a Folder for further Options"
msgstr ""
-#: cache/37/37f12704cf17017038d73d9ee1907d04.php:444
+#: cache/37/37f12704cf17017038d73d9ee1907d04.php:472
msgid "You already set an exception for this day."
msgstr ""
-#: cache/37/37f12704cf17017038d73d9ee1907d04.php:448
+#: cache/37/37f12704cf17017038d73d9ee1907d04.php:476
msgid "Online"
msgstr ""
-#: cache/37/37f12704cf17017038d73d9ee1907d04.php:452
+#: cache/37/37f12704cf17017038d73d9ee1907d04.php:480
msgid "Offline"
msgstr ""
-#: cache/37/37f12704cf17017038d73d9ee1907d04.php:460
+#: cache/37/37f12704cf17017038d73d9ee1907d04.php:488
msgid "Not up to date"
msgstr ""
-#: cache/37/37f12704cf17017038d73d9ee1907d04.php:464
+#: cache/37/37f12704cf17017038d73d9ee1907d04.php:492
msgid "Publishing"
msgstr ""
-#: cache/37/37f12704cf17017038d73d9ee1907d04.php:468
+#: cache/37/37f12704cf17017038d73d9ee1907d04.php:496
msgid "Publish failed."
msgstr ""
-#: cache/37/37f12704cf17017038d73d9ee1907d04.php:472
+#: cache/37/37f12704cf17017038d73d9ee1907d04.php:500
msgid "Default Sorting"
msgstr ""
-#: cache/37/37f12704cf17017038d73d9ee1907d04.php:476
+#: cache/37/37f12704cf17017038d73d9ee1907d04.php:504
msgid "Unlimited"
msgstr ""
-#: cache/37/37f12704cf17017038d73d9ee1907d04.php:480
+#: cache/37/37f12704cf17017038d73d9ee1907d04.php:508
msgid ""
"Warning : Image is too large and will not be displayed on the Players. "
"Please check the allowed Resize Limit in Administration -> Settings"
msgstr ""
-#: cache/37/37f12704cf17017038d73d9ee1907d04.php:580
+#: cache/37/37f12704cf17017038d73d9ee1907d04.php:624
msgid "No data available in table"
msgstr ""
-#: cache/37/37f12704cf17017038d73d9ee1907d04.php:584
+#: cache/37/37f12704cf17017038d73d9ee1907d04.php:628
msgid "Showing _START_ to _END_ of _TOTAL_ entries"
msgstr ""
-#: cache/37/37f12704cf17017038d73d9ee1907d04.php:588
+#: cache/37/37f12704cf17017038d73d9ee1907d04.php:632
msgid "Showing 0 to 0 of 0 entries"
msgstr ""
-#: cache/37/37f12704cf17017038d73d9ee1907d04.php:592
+#: cache/37/37f12704cf17017038d73d9ee1907d04.php:636
msgid "(filtered from _MAX_ total entries)"
msgstr ""
-#: cache/37/37f12704cf17017038d73d9ee1907d04.php:598
+#: cache/37/37f12704cf17017038d73d9ee1907d04.php:642
msgid "Show _MENU_ entries"
msgstr ""
-#: cache/37/37f12704cf17017038d73d9ee1907d04.php:602
+#: cache/37/37f12704cf17017038d73d9ee1907d04.php:646
msgid "Loading..."
msgstr ""
-#: cache/37/37f12704cf17017038d73d9ee1907d04.php:610
+#: cache/37/37f12704cf17017038d73d9ee1907d04.php:654
msgid "Search:"
msgstr ""
-#: cache/37/37f12704cf17017038d73d9ee1907d04.php:614
+#: cache/37/37f12704cf17017038d73d9ee1907d04.php:658
msgid "No matching records found"
msgstr ""
-#: cache/37/37f12704cf17017038d73d9ee1907d04.php:619
+#: cache/37/37f12704cf17017038d73d9ee1907d04.php:663
msgid "First"
msgstr ""
-#: cache/37/37f12704cf17017038d73d9ee1907d04.php:623
+#: cache/37/37f12704cf17017038d73d9ee1907d04.php:667
msgid "Last"
msgstr ""
-#: cache/37/37f12704cf17017038d73d9ee1907d04.php:637
+#: cache/37/37f12704cf17017038d73d9ee1907d04.php:681
msgid ": activate to sort column ascending"
msgstr ""
-#: cache/37/37f12704cf17017038d73d9ee1907d04.php:641
+#: cache/37/37f12704cf17017038d73d9ee1907d04.php:685
msgid ": activate to sort column descending"
msgstr ""
-#: cache/37/37f12704cf17017038d73d9ee1907d04.php:647
+#: cache/37/37f12704cf17017038d73d9ee1907d04.php:691
msgid "Column visibility"
msgstr ""
-#: cache/37/37f12704cf17017038d73d9ee1907d04.php:651
+#: cache/37/37f12704cf17017038d73d9ee1907d04.php:695
msgid "Print"
msgstr ""
@@ -19374,7 +20259,7 @@ msgid ""
msgstr ""
#: cache/37/377ff96eb23f94563370a45d1c41993f.php:174
-#: lib/Controller/Login.php:529
+#: lib/Controller/Login.php:530
msgid "Two Factor Authentication"
msgstr ""
@@ -19423,7 +20308,7 @@ msgid ""
"Recovery codes will become active only after this form is successfully saved"
msgstr ""
-#: cache/fa/fa9935428c44daef4d95e4b582124caa.php:281
+#: cache/fa/fa9935428c44daef4d95e4b582124caa.php:266
msgid "Add an attachment?"
msgstr ""
@@ -19444,16 +20329,25 @@ msgid "Do you want to include the DataSet data?"
msgstr ""
#: cache/fa/faae83213ac48b5ddd10aa2f75cd5121.php:116
-msgid "Save as"
+msgid "Include Widget fallback data?"
msgstr ""
#: cache/fa/faae83213ac48b5ddd10aa2f75cd5121.php:121
+msgid ""
+"Do you want to include fallback data added to Widgets used on this Layout?"
+msgstr ""
+
+#: cache/fa/faae83213ac48b5ddd10aa2f75cd5121.php:131
+msgid "Save as"
+msgstr ""
+
+#: cache/fa/faae83213ac48b5ddd10aa2f75cd5121.php:136
msgid "Change the name of the downloaded file if desired."
msgstr ""
#: cache/fa/fa66e594804204b7397616a42725bee8.php:56
-#: lib/Controller/DisplayGroup.php:511 lib/Controller/DisplayGroup.php:524
-#: lib/Controller/Display.php:1095 lib/Controller/Display.php:1109
+#: lib/Controller/DisplayGroup.php:516 lib/Controller/DisplayGroup.php:529
+#: lib/Controller/Display.php:1096 lib/Controller/Display.php:1110
msgid "Trigger a web hook"
msgstr ""
@@ -19473,7 +20367,7 @@ msgstr ""
msgid "Edit Sync Group"
msgstr ""
-#: cache/42/429bc3b90e0dd835a4548e949ce40ad6.php:148
+#: cache/42/429bc3b90e0dd835a4548e949ce40ad6.php:178
msgid "Select Lead Display for this sync group"
msgstr ""
@@ -19659,7 +20553,7 @@ msgid "Delete on Expiry?"
msgstr ""
#: cache/72/7200184dcf867208ff40fb0a39739de4.php:56
-#: lib/Controller/Display.php:904
+#: lib/Controller/Display.php:905
msgid "Toggle Authorise"
msgstr ""
@@ -19683,24 +20577,24 @@ msgstr ""
msgid "Add a new User"
msgstr ""
-#: cache/53/53221a3cb3187e41cde32cfa796d45a7.php:171
+#: cache/53/53221a3cb3187e41cde32cfa796d45a7.php:189
msgid "Home folder"
msgstr ""
-#: cache/53/53221a3cb3187e41cde32cfa796d45a7.php:183
+#: cache/53/53221a3cb3187e41cde32cfa796d45a7.php:201
msgid "Last Login"
msgstr ""
-#: cache/53/53221a3cb3187e41cde32cfa796d45a7.php:195
+#: cache/53/53221a3cb3187e41cde32cfa796d45a7.php:213
msgid "Two Factor"
msgstr ""
-#: cache/53/53221a3cb3187e41cde32cfa796d45a7.php:207
+#: cache/53/53221a3cb3187e41cde32cfa796d45a7.php:225
msgid "Phone"
msgstr ""
-#: cache/53/53221a3cb3187e41cde32cfa796d45a7.php:231
-#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:373
+#: cache/53/53221a3cb3187e41cde32cfa796d45a7.php:249
+#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:385
msgid "Row Menu"
msgstr ""
@@ -19709,84 +20603,88 @@ msgstr ""
msgid "Manage Membership for %displayName%"
msgstr ""
-#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:71
-msgid "Add a new Layout and jump to the layout designer."
+#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:72
+msgid "Add a new Layout and jump to the layout editor."
msgstr ""
-#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:84
+#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:85
msgid "Import a Layout from a ZIP file."
msgstr ""
-#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:86
+#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:87
msgid "Import"
msgstr ""
-#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:195
+#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:201
msgid "Show Layouts active on the selected Display / Display Group"
msgstr ""
-#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:302
+#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:308
msgid "Only Used"
msgstr ""
-#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:305
+#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:311
msgid "Only Unused"
msgstr ""
-#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:324
+#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:330
msgid "1st line"
msgstr ""
-#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:327
+#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:333
msgid "Widget List"
msgstr ""
-#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:365
+#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:371
msgid "Modified Since"
msgstr ""
-#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:461
+#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:465
msgid "Valid?"
msgstr ""
-#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:619
-#: cache/8b/8bc5b04498de39f4571d14d541bd6a91.php:336
+#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:625
+#: cache/8b/8bc5b04498de39f4571d14d541bd6a91.php:341
msgid "Add Thumbnail"
msgstr ""
-#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:762
+#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:772
msgid "Upload Layout"
msgstr ""
-#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:799
+#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:809
msgid "Add Layout Export ZIP Files"
msgstr ""
-#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:803
+#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:813
msgid "Start Import"
msgstr ""
-#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:807
+#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:817
msgid "Cancel Import"
msgstr ""
-#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:811
+#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:821
msgid "Replace Existing Media?"
msgstr ""
-#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:815
+#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:825
msgid "Import Tags?"
msgstr ""
-#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:819
+#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:829
msgid "Use existing DataSets matched by name?"
msgstr ""
-#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:823
+#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:833
msgid "Import DataSet Data?"
msgstr ""
-#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:900
+#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:837
+msgid "Import Widget Fallback Data?"
+msgstr ""
+
+#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:914
msgid ""
"Check to enable the collection of Proof of Play statistics for the selected "
"items."
@@ -19816,160 +20714,160 @@ msgstr ""
msgid "Visit the user manual"
msgstr ""
-#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:431
-#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:435
+#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:443
+#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:447
msgid "Show command preview!"
msgstr ""
-#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:448
+#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:460
msgid "Invalid command!"
msgstr ""
-#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:474
+#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:486
msgid "Blue"
msgstr ""
-#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:478
+#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:490
msgid "White"
msgstr ""
-#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:487
+#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:499
msgid "Device Name/COM"
msgstr ""
-#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:491
+#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:503
msgid "Baud Rate"
msgstr ""
-#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:495
+#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:507
msgid "Data Bits"
msgstr ""
-#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:502
+#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:514
msgid "Parity:"
msgstr ""
-#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:516
+#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:528
msgid "Stop Bits:"
msgstr ""
-#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:529
+#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:541
msgid "Handshake:"
msgstr ""
-#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:542
+#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:554
msgid "HexSupport:"
msgstr ""
-#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:563
+#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:575
msgid "Type:"
msgstr ""
-#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:574
+#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:586
msgid "Intent"
msgstr ""
-#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:580
+#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:592
msgid "Extra:"
msgstr ""
-#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:626
+#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:638
msgid "Query params builder"
msgstr ""
-#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:630
+#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:642
msgid "Query builder"
msgstr ""
-#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:636
+#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:648
msgid "Query params:"
msgstr ""
-#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:650
+#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:662
msgid "Request method:"
msgstr ""
-#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:670
-#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:674
+#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:682
+#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:686
msgid "Show raw headers"
msgstr ""
-#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:679
-#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:684
+#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:691
+#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:696
msgid "Headers"
msgstr ""
-#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:700
+#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:712
msgid "Content Type:"
msgstr ""
-#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:713
+#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:725
msgid "Show raw body data"
msgstr ""
-#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:717
+#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:729
msgid "Show raw data"
msgstr ""
-#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:722
-#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:727
+#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:734
+#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:739
msgid "Body data"
msgstr ""
-#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:742
+#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:754
msgid "Key"
msgstr ""
-#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:767
+#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:779
msgid "New tags"
msgstr ""
-#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:776
+#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:788
msgid "A comma separated list of tags to add to the selected elements."
msgstr ""
-#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:803
+#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:815
msgid ""
"Provide an optional Value for this Tag. If no Value is required, this field "
"can be left blank."
msgstr ""
-#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:819
+#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:831
msgid "Existing tags"
msgstr ""
-#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:828
+#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:840
msgid ""
"Remove tags from the list to remove them from elements that contain them."
msgstr ""
-#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:845
+#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:857
msgid "Player Status Window"
msgstr ""
-#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:874
+#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:886
msgid ""
"When enabled, this form will automatically submit in future. Reset this in "
"your User Profile."
msgstr ""
-#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:879
+#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:891
msgid "Automatically submit this form?"
msgstr ""
-#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:940
+#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:952
msgid "Play Preview"
msgstr ""
-#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:952
+#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:964
msgid "Preview in new window"
msgstr ""
-#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:964
+#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:976
msgid "Clear Filters"
msgstr ""
-#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:1233
+#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:1248
msgid ""
"Enter the code associated with the web hook you wish to trigger. Please note "
"that for this action to work, the webhook trigger code has to be added to "
@@ -19984,19 +20882,19 @@ msgstr ""
msgid "Add Version"
msgstr ""
-#: cache/cb/cb0f801b3d2ddd3d1f61f47414d32047.php:78
+#: cache/cb/cb0f801b3d2ddd3d1f61f47414d32047.php:83
msgid "Player Software"
msgstr ""
-#: cache/cb/cb0f801b3d2ddd3d1f61f47414d32047.php:126
+#: cache/cb/cb0f801b3d2ddd3d1f61f47414d32047.php:131
msgid "Version ID"
msgstr ""
-#: cache/cb/cb0f801b3d2ddd3d1f61f47414d32047.php:235
+#: cache/cb/cb0f801b3d2ddd3d1f61f47414d32047.php:242
msgid "Please set Player Software Version"
msgstr ""
-#: cache/cb/cb0f801b3d2ddd3d1f61f47414d32047.php:256
+#: cache/cb/cb0f801b3d2ddd3d1f61f47414d32047.php:267
msgid "Upload Version"
msgstr ""
@@ -20005,7 +20903,7 @@ msgid "Edit Command"
msgstr ""
#: cache/10/10329fe20a57f63b38843c6701587e70.php:55
-#: cache/10/10329fe20a57f63b38843c6701587e70.php:89
+#: cache/10/10329fe20a57f63b38843c6701587e70.php:94
msgid "Display Setting Profiles"
msgstr ""
@@ -20013,7 +20911,7 @@ msgstr ""
msgid "Add a new Display Settings Profile"
msgstr ""
-#: cache/10/10329fe20a57f63b38843c6701587e70.php:136
+#: cache/10/10329fe20a57f63b38843c6701587e70.php:141
#: lib/Controller/Display.php:244
msgid "Default"
msgstr ""
@@ -20033,7 +20931,7 @@ msgid "Add a new media item to the library"
msgstr ""
#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:75
-#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:615
+#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:624
msgid "Add Media"
msgstr ""
@@ -20045,15 +20943,15 @@ msgstr ""
msgid "Add media (URL)"
msgstr ""
-#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:344
+#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:347
msgid "Duration (seconds)"
msgstr ""
-#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:352
+#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:355
msgid "Size (bytes)"
msgstr ""
-#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:368
+#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:371
msgid "Revised"
msgstr ""
@@ -20073,8 +20971,12 @@ msgstr ""
msgid "The Validation String for this Command on this display"
msgstr ""
+#: cache/10/1090c5665a57f49e6b968318ca49de82.php:159
+msgid "This Command has a default setting for creating alerts."
+msgstr ""
+
#: cache/b9/b9c2f0bf2de449ead517f283926186af.php:56
-#: lib/Controller/Display.php:1039 lib/Controller/Display.php:1054
+#: lib/Controller/Display.php:1040 lib/Controller/Display.php:1055
msgid "Request Screen Shot"
msgstr ""
@@ -20112,7 +21014,7 @@ msgid "Are you sure you want to delete this Help page? This cannot be undone"
msgstr ""
#: cache/8b/8bc5b04498de39f4571d14d541bd6a91.php:70
-msgid "Add a new Template and jump to the layout designer."
+msgid "Add a new Template and jump to the layout editor."
msgstr ""
#: cache/15/159208e1f5d4b5b8c32db48cfd0eb9e4.php:56
@@ -20128,7 +21030,7 @@ msgid "Edit Display"
msgstr ""
#: cache/70/70af2bbd82243291558c9b83caec5b48.php:116
-#: lib/Controller/Display.php:1185
+#: lib/Controller/Display.php:1186
msgid "Wake on LAN"
msgstr ""
@@ -20531,53 +21433,70 @@ msgstr ""
msgid "Dashboards bring together key features for Users"
msgstr ""
-#: cache/8e/8e4c9c1886827e5f797c4436d4051e48.php:637
-msgid ""
-"Restricted high level access advised - potentially damaging system settings"
+#: cache/8e/8e4c9c1886827e5f797c4436d4051e48.php:637
+msgid ""
+"Restricted high level access advised - potentially damaging system settings"
+msgstr ""
+
+#: cache/8e/8e4c9c1886827e5f797c4436d4051e48.php:659
+msgid "Tools to diagnose problems when seeking help"
+msgstr ""
+
+#: cache/8e/8e4c9c1886827e5f797c4436d4051e48.php:719
+msgid "Third party extensions to the platform."
+msgstr ""
+
+#: cache/60/6096ddd2496c1f25a148669f286abbeb.php:49
+#: cache/60/6096ddd2496c1f25a148669f286abbeb.php:86
+msgid "Activity Report"
+msgstr ""
+
+#: cache/60/6096ddd2496c1f25a148669f286abbeb.php:437
+msgid "Apply"
+msgstr ""
+
+#: cache/60/6096ddd2496c1f25a148669f286abbeb.php:469
+msgid "Filter Options"
msgstr ""
-#: cache/8e/8e4c9c1886827e5f797c4436d4051e48.php:659
-msgid "Tools to diagnose problems when seeking help"
+#: cache/60/6096ddd2496c1f25a148669f286abbeb.php:514
+msgid "Error Count"
msgstr ""
-#: cache/8e/8e4c9c1886827e5f797c4436d4051e48.php:719
-msgid "Third party extensions to the platform."
+#: cache/60/6096ddd2496c1f25a148669f286abbeb.php:518
+msgid "Misses Count"
msgstr ""
-#: cache/60/6096ddd2496c1f25a148669f286abbeb.php:47
-#: cache/60/6096ddd2496c1f25a148669f286abbeb.php:84
-msgid "Activity Report"
+#: cache/60/6096ddd2496c1f25a148669f286abbeb.php:526
+#: cache/60/6096ddd2496c1f25a148669f286abbeb.php:601
+msgid "Impression Actual"
msgstr ""
-#: cache/60/6096ddd2496c1f25a148669f286abbeb.php:237
-msgid "Apply"
+#: cache/60/6096ddd2496c1f25a148669f286abbeb.php:554
+msgid "Summary Chart"
msgstr ""
-#: cache/60/6096ddd2496c1f25a148669f286abbeb.php:251
+#: cache/60/6096ddd2496c1f25a148669f286abbeb.php:573
msgid "Scheduled At"
msgstr ""
-#: cache/60/6096ddd2496c1f25a148669f286abbeb.php:263
+#: cache/60/6096ddd2496c1f25a148669f286abbeb.php:585
msgid "Played?"
msgstr ""
-#: cache/60/6096ddd2496c1f25a148669f286abbeb.php:267
+#: cache/60/6096ddd2496c1f25a148669f286abbeb.php:589
msgid "Errored?"
msgstr ""
-#: cache/60/6096ddd2496c1f25a148669f286abbeb.php:275
+#: cache/60/6096ddd2496c1f25a148669f286abbeb.php:597
msgid "Impression Date"
msgstr ""
-#: cache/60/6096ddd2496c1f25a148669f286abbeb.php:279
-msgid "Impression Actual"
-msgstr ""
-
-#: cache/60/6096ddd2496c1f25a148669f286abbeb.php:287
+#: cache/60/6096ddd2496c1f25a148669f286abbeb.php:609
msgid "Error Date"
msgstr ""
-#: cache/60/6096ddd2496c1f25a148669f286abbeb.php:291
+#: cache/60/6096ddd2496c1f25a148669f286abbeb.php:613
msgid "Error Code"
msgstr ""
@@ -20635,47 +21554,47 @@ msgstr ""
msgid "Add a new DataSet"
msgstr ""
-#: cache/b2/b21687508ff5b0bb637fdbd3f8c0d3c6.php:120
+#: cache/b2/b21687508ff5b0bb637fdbd3f8c0d3c6.php:125
msgid "Show items which match the provided code"
msgstr ""
-#: cache/b2/b21687508ff5b0bb637fdbd3f8c0d3c6.php:220
+#: cache/b2/b21687508ff5b0bb637fdbd3f8c0d3c6.php:227
msgid "Last Sync"
msgstr ""
-#: cache/b2/b21687508ff5b0bb637fdbd3f8c0d3c6.php:224
+#: cache/b2/b21687508ff5b0bb637fdbd3f8c0d3c6.php:231
msgid "Data Last Modified"
msgstr ""
-#: cache/b2/b21687508ff5b0bb637fdbd3f8c0d3c6.php:340
+#: cache/b2/b21687508ff5b0bb637fdbd3f8c0d3c6.php:354
msgid "Add CSV Files"
msgstr ""
-#: cache/b2/b21687508ff5b0bb637fdbd3f8c0d3c6.php:370
+#: cache/b2/b21687508ff5b0bb637fdbd3f8c0d3c6.php:384
msgid ""
"If the CSV file contains non-ASCII characters please ensure the file is "
"UTF-8 encoded"
msgstr ""
-#: cache/b2/b21687508ff5b0bb637fdbd3f8c0d3c6.php:377
+#: cache/b2/b21687508ff5b0bb637fdbd3f8c0d3c6.php:391
msgid "CSV Import"
msgstr ""
-#: cache/b2/b21687508ff5b0bb637fdbd3f8c0d3c6.php:632
+#: cache/b2/b21687508ff5b0bb637fdbd3f8c0d3c6.php:673
msgid "Overwrite existing data?"
msgstr ""
-#: cache/b2/b21687508ff5b0bb637fdbd3f8c0d3c6.php:637
+#: cache/b2/b21687508ff5b0bb637fdbd3f8c0d3c6.php:678
msgid ""
"Erase all content in this DataSet and overwrite it with the new content in "
"this import."
msgstr ""
-#: cache/b2/b21687508ff5b0bb637fdbd3f8c0d3c6.php:652
+#: cache/b2/b21687508ff5b0bb637fdbd3f8c0d3c6.php:693
msgid "Ignore the first row? Useful if the CSV has headings."
msgstr ""
-#: cache/b2/b21687508ff5b0bb637fdbd3f8c0d3c6.php:662
+#: cache/b2/b21687508ff5b0bb637fdbd3f8c0d3c6.php:703
msgid ""
"In the fields below please enter the column number in the CSV file that "
"corresponds to the Column Heading listed. This should be done before Adding "
@@ -20733,60 +21652,61 @@ msgstr ""
msgid "Sorry we could not find that page."
msgstr ""
-#: lib/Controller/Task.php:215 lib/Controller/Widget.php:298
-#: lib/Controller/Template.php:539 lib/Controller/DisplayGroup.php:796
-#: lib/Controller/DisplayGroup.php:2664 lib/Controller/DataSet.php:618
-#: lib/Controller/Notification.php:574 lib/Controller/Campaign.php:649
-#: lib/Controller/Campaign.php:1385 lib/Controller/Folder.php:255
-#: lib/Controller/Playlist.php:788 lib/Controller/SyncGroup.php:291
+#: lib/Controller/Task.php:215 lib/Controller/Widget.php:304
+#: lib/Controller/Template.php:586 lib/Controller/DisplayGroup.php:801
+#: lib/Controller/DisplayGroup.php:2669 lib/Controller/DataSet.php:698
+#: lib/Controller/Notification.php:639 lib/Controller/Campaign.php:649
+#: lib/Controller/Campaign.php:1385 lib/Controller/Folder.php:263
+#: lib/Controller/Playlist.php:791 lib/Controller/SyncGroup.php:293
#: lib/Controller/DataSetColumn.php:389 lib/Controller/Tag.php:360
-#: lib/Controller/Layout.php:488 lib/Controller/CypressTest.php:284
-#: lib/Controller/DisplayProfile.php:318 lib/Controller/DisplayProfile.php:659
-#: lib/Controller/User.php:633 lib/Controller/Applications.php:454
+#: lib/Controller/Layout.php:490 lib/Controller/CypressTest.php:284
+#: lib/Controller/DisplayProfile.php:320 lib/Controller/DisplayProfile.php:669
+#: lib/Controller/User.php:635 lib/Controller/Applications.php:454
#: lib/Controller/Resolution.php:315 lib/Controller/Region.php:262
-#: lib/Controller/Command.php:412 lib/Controller/DataSetRss.php:332
-#: lib/Controller/UserGroup.php:383 lib/Controller/DayPart.php:388
+#: lib/Controller/Command.php:421 lib/Controller/DataSetRss.php:332
+#: lib/Controller/UserGroup.php:432 lib/Controller/DayPart.php:388
#, php-format
msgid "Added %s"
msgstr ""
-#: lib/Controller/Task.php:284 lib/Controller/Widget.php:573
-#: lib/Controller/DisplayGroup.php:1025 lib/Controller/DataSet.php:912
-#: lib/Controller/ScheduleReport.php:426 lib/Controller/Notification.php:704
-#: lib/Controller/Campaign.php:959 lib/Controller/MenuBoard.php:446
-#: lib/Controller/Folder.php:323 lib/Controller/Playlist.php:979
-#: lib/Controller/Transition.php:158 lib/Controller/Library.php:1406
-#: lib/Controller/SyncGroup.php:557 lib/Controller/DataSetColumn.php:596
-#: lib/Controller/Tag.php:545 lib/Controller/Connector.php:205
-#: lib/Controller/Layout.php:667 lib/Controller/Layout.php:789
-#: lib/Controller/Layout.php:913 lib/Controller/MenuBoardCategory.php:437
-#: lib/Controller/DisplayProfile.php:475 lib/Controller/User.php:905
-#: lib/Controller/User.php:2532 lib/Controller/Applications.php:560
+#: lib/Controller/Task.php:284 lib/Controller/Widget.php:595
+#: lib/Controller/DisplayGroup.php:1030 lib/Controller/DataSet.php:1029
+#: lib/Controller/DataSet.php:1091 lib/Controller/ScheduleReport.php:426
+#: lib/Controller/Notification.php:761 lib/Controller/Campaign.php:959
+#: lib/Controller/MenuBoard.php:446 lib/Controller/Folder.php:331
+#: lib/Controller/Playlist.php:982 lib/Controller/Transition.php:158
+#: lib/Controller/Library.php:1433 lib/Controller/SyncGroup.php:575
+#: lib/Controller/DataSetColumn.php:596 lib/Controller/Tag.php:545
+#: lib/Controller/Connector.php:205 lib/Controller/Layout.php:669
+#: lib/Controller/Layout.php:791 lib/Controller/Layout.php:936
+#: lib/Controller/MenuBoardCategory.php:437
+#: lib/Controller/DisplayProfile.php:485 lib/Controller/User.php:922
+#: lib/Controller/User.php:2549 lib/Controller/Applications.php:560
#: lib/Controller/Resolution.php:393 lib/Controller/Region.php:412
-#: lib/Controller/Region.php:582 lib/Controller/Display.php:1909
-#: lib/Controller/MenuBoardProduct.php:640
-#: lib/Controller/PlayerSoftware.php:372 lib/Controller/Command.php:510
-#: lib/Controller/DataSetRss.php:561 lib/Controller/UserGroup.php:517
+#: lib/Controller/Region.php:582 lib/Controller/Display.php:1919
+#: lib/Controller/MenuBoardProduct.php:640 lib/Controller/Developer.php:404
+#: lib/Controller/PlayerSoftware.php:372 lib/Controller/Command.php:528
+#: lib/Controller/DataSetRss.php:561 lib/Controller/UserGroup.php:618
#: lib/Controller/DayPart.php:500
#, php-format
msgid "Edited %s"
msgstr ""
-#: lib/Controller/Task.php:331 lib/Controller/Widget.php:692
-#: lib/Controller/DisplayGroup.php:1081 lib/Controller/DataSet.php:1002
-#: lib/Controller/ScheduleReport.php:464 lib/Controller/Notification.php:763
+#: lib/Controller/Task.php:331 lib/Controller/Widget.php:718
+#: lib/Controller/DisplayGroup.php:1086 lib/Controller/DataSet.php:1181
+#: lib/Controller/ScheduleReport.php:464 lib/Controller/Notification.php:820
#: lib/Controller/Campaign.php:1038 lib/Controller/SavedReport.php:283
-#: lib/Controller/MenuBoard.php:523 lib/Controller/Folder.php:405
-#: lib/Controller/Playlist.php:1060 lib/Controller/Library.php:1016
-#: lib/Controller/SyncGroup.php:635 lib/Controller/DataSetColumn.php:685
-#: lib/Controller/Tag.php:630 lib/Controller/Layout.php:1027
+#: lib/Controller/MenuBoard.php:523 lib/Controller/Folder.php:413
+#: lib/Controller/Playlist.php:1063 lib/Controller/Library.php:1035
+#: lib/Controller/SyncGroup.php:653 lib/Controller/DataSetColumn.php:685
+#: lib/Controller/Tag.php:630 lib/Controller/Layout.php:1050
#: lib/Controller/MenuBoardCategory.php:517
-#: lib/Controller/DisplayProfile.php:554 lib/Controller/User.php:1022
+#: lib/Controller/DisplayProfile.php:564 lib/Controller/User.php:1039
#: lib/Controller/Applications.php:593 lib/Controller/Resolution.php:442
-#: lib/Controller/Region.php:469 lib/Controller/Display.php:1965
-#: lib/Controller/MenuBoardProduct.php:722
-#: lib/Controller/PlayerSoftware.php:278 lib/Controller/Command.php:562
-#: lib/Controller/DataSetRss.php:656 lib/Controller/UserGroup.php:571
+#: lib/Controller/Region.php:469 lib/Controller/Display.php:1975
+#: lib/Controller/MenuBoardProduct.php:722 lib/Controller/Developer.php:693
+#: lib/Controller/PlayerSoftware.php:278 lib/Controller/Command.php:580
+#: lib/Controller/DataSetRss.php:656 lib/Controller/UserGroup.php:672
#: lib/Controller/DayPart.php:615
#, php-format
msgid "Deleted %s"
@@ -20802,415 +21722,463 @@ msgstr ""
msgid "Task with class name %s not found"
msgstr ""
-#: lib/Controller/Widget.php:179
+#: lib/Controller/Widget.php:181
msgid "This Playlist is not shared with you with edit permission"
msgstr ""
-#: lib/Controller/Widget.php:185
+#: lib/Controller/Widget.php:187
msgid ""
"Sorry there is an error with this request, cannot set inherited permissions"
msgstr ""
-#: lib/Controller/Widget.php:191 lib/Controller/Widget.php:456
-#: lib/Controller/Widget.php:665 lib/Controller/Widget.php:823
-#: lib/Controller/Widget.php:988 lib/Controller/Widget.php:1077
-#: lib/Controller/Widget.php:1444 lib/Controller/Widget.php:1553
-#: lib/Controller/Widget.php:1635 lib/Controller/Playlist.php:1311
-#: lib/Controller/Playlist.php:1476 lib/Controller/Layout.php:741
-#: lib/Controller/Layout.php:844 lib/Controller/Region.php:229
-#: lib/Controller/Region.php:376 lib/Controller/Region.php:462
-#: lib/Controller/Region.php:527 lib/Controller/Region.php:748
-#: lib/Controller/Region.php:846 lib/Helper/XiboUploadHandler.php:455
+#: lib/Controller/Widget.php:193 lib/Controller/Widget.php:470
+#: lib/Controller/Widget.php:687 lib/Controller/Widget.php:849
+#: lib/Controller/Widget.php:1018 lib/Controller/Widget.php:1111
+#: lib/Controller/Widget.php:1553 lib/Controller/Widget.php:1666
+#: lib/Controller/Widget.php:1748 lib/Controller/Playlist.php:1314
+#: lib/Controller/Playlist.php:1479 lib/Controller/Playlist.php:2010
+#: lib/Controller/Layout.php:743 lib/Controller/Layout.php:846
+#: lib/Controller/Region.php:229 lib/Controller/Region.php:376
+#: lib/Controller/Region.php:462 lib/Controller/Region.php:527
+#: lib/Controller/Region.php:748 lib/Controller/Region.php:846
+#: lib/Helper/XiboUploadHandler.php:455
msgid "This Layout is not a Draft, please checkout."
msgstr ""
-#: lib/Controller/Widget.php:205
-msgid "No module enabled of that type."
+#: lib/Controller/Widget.php:197 lib/Controller/Widget.php:474
+#: lib/Controller/Widget.php:691 lib/Controller/Widget.php:853
+#: lib/Controller/Widget.php:1022 lib/Controller/Widget.php:1115
+#: lib/Controller/Widget.php:1557 lib/Controller/Playlist.php:1317
+#: lib/Controller/Library.php:1175
+msgid ""
+"This Playlist is dynamically managed so cannot accept manual assignments."
msgstr ""
#: lib/Controller/Widget.php:211
+msgid "No module enabled of that type."
+msgstr ""
+
+#: lib/Controller/Widget.php:217
msgid "Sorry but a file based Widget must be assigned not created"
msgstr ""
-#: lib/Controller/Widget.php:219
+#: lib/Controller/Widget.php:225
msgid "Canvas Widgets can only be added to a Zone"
msgstr ""
-#: lib/Controller/Widget.php:224
+#: lib/Controller/Widget.php:230
msgid "Only one Canvas Widget allowed per Playlist"
msgstr ""
-#: lib/Controller/Widget.php:249
+#: lib/Controller/Widget.php:255
msgid "Please select a template"
msgstr ""
-#: lib/Controller/Widget.php:259
+#: lib/Controller/Widget.php:265
msgid "Expecting a static template"
msgstr ""
-#: lib/Controller/Widget.php:321 lib/Controller/Widget.php:448
-#: lib/Controller/Widget.php:720 lib/Controller/Widget.php:815
-#: lib/Controller/Widget.php:884 lib/Controller/Widget.php:980
-#: lib/Controller/Widget.php:1069 lib/Controller/Widget.php:1350
-#: lib/Controller/Widget.php:1436 lib/Controller/Widget.php:1545
-#: lib/Controller/Widget.php:1627
+#: lib/Controller/Widget.php:327 lib/Controller/Widget.php:462
+#: lib/Controller/Widget.php:746 lib/Controller/Widget.php:841
+#: lib/Controller/Widget.php:914 lib/Controller/Widget.php:1010
+#: lib/Controller/Widget.php:1103 lib/Controller/Widget.php:1459
+#: lib/Controller/Widget.php:1545 lib/Controller/Widget.php:1658
+#: lib/Controller/Widget.php:1740 lib/Controller/WidgetData.php:76
+#: lib/Controller/WidgetData.php:129 lib/Controller/WidgetData.php:205
+#: lib/Controller/WidgetData.php:267 lib/Controller/WidgetData.php:345
msgid "This Widget is not shared with you with edit permission"
msgstr ""
-#: lib/Controller/Widget.php:475
+#: lib/Controller/Widget.php:497
msgid "Duration needs to be a positive value"
msgstr ""
-#: lib/Controller/Widget.php:480
+#: lib/Controller/Widget.php:502
msgid "Duration must be lower than 526000"
msgstr ""
-#: lib/Controller/Widget.php:491
+#: lib/Controller/Widget.php:513
msgid "This widget uses elements and can not be changed to a static template"
msgstr ""
-#: lib/Controller/Widget.php:502
+#: lib/Controller/Widget.php:524
msgid "You can only change to another template of the same type"
msgstr ""
-#: lib/Controller/Widget.php:555
+#: lib/Controller/Widget.php:577
#, php-format
msgid "Your library reference %d does not exist."
msgstr ""
-#: lib/Controller/Widget.php:597 lib/Controller/Widget.php:655
+#: lib/Controller/Widget.php:619 lib/Controller/Widget.php:677
msgid "This Widget is not shared with you with delete permission"
msgstr ""
-#: lib/Controller/Widget.php:694
+#: lib/Controller/Widget.php:720
msgid "Deleted Widget"
msgstr ""
-#: lib/Controller/Widget.php:733 lib/Controller/Region.php:690
+#: lib/Controller/Widget.php:759 lib/Controller/Region.php:690
+#: lib/Connector/OpenWeatherMapConnector.php:692
msgid "North"
msgstr ""
-#: lib/Controller/Widget.php:734 lib/Controller/Region.php:691
+#: lib/Controller/Widget.php:760 lib/Controller/Region.php:691
msgid "North East"
msgstr ""
-#: lib/Controller/Widget.php:735 lib/Controller/Region.php:692
+#: lib/Controller/Widget.php:761 lib/Controller/Region.php:692
+#: lib/Connector/OpenWeatherMapConnector.php:696
msgid "East"
msgstr ""
-#: lib/Controller/Widget.php:736 lib/Controller/Region.php:693
+#: lib/Controller/Widget.php:762 lib/Controller/Region.php:693
msgid "South East"
msgstr ""
-#: lib/Controller/Widget.php:737 lib/Controller/Region.php:694
+#: lib/Controller/Widget.php:763 lib/Controller/Region.php:694
+#: lib/Connector/OpenWeatherMapConnector.php:700
msgid "South"
msgstr ""
-#: lib/Controller/Widget.php:738 lib/Controller/Region.php:695
+#: lib/Controller/Widget.php:764 lib/Controller/Region.php:695
msgid "South West"
msgstr ""
-#: lib/Controller/Widget.php:739 lib/Controller/Region.php:696
+#: lib/Controller/Widget.php:765 lib/Controller/Region.php:696
+#: lib/Connector/OpenWeatherMapConnector.php:704
msgid "West"
msgstr ""
-#: lib/Controller/Widget.php:740 lib/Controller/Region.php:697
+#: lib/Controller/Widget.php:766 lib/Controller/Region.php:697
msgid "North West"
msgstr ""
-#: lib/Controller/Widget.php:853
+#: lib/Controller/Widget.php:883
msgid "Unknown transition type"
msgstr ""
-#: lib/Controller/Widget.php:860
+#: lib/Controller/Widget.php:890
msgid "Edited Transition"
msgstr ""
-#: lib/Controller/Widget.php:890 lib/Controller/Widget.php:994
+#: lib/Controller/Widget.php:920 lib/Controller/Widget.php:1028
msgid ""
"Audio cannot be attached to a Sub-Playlist Widget. Please attach it to the "
"Widgets inside the Playlist"
msgstr ""
-#: lib/Controller/Widget.php:1025
+#: lib/Controller/Widget.php:1059
msgid "Edited Audio"
msgstr ""
-#: lib/Controller/Widget.php:1090
+#: lib/Controller/Widget.php:1128
msgid "Removed Audio"
msgstr ""
-#: lib/Controller/Widget.php:1111 lib/Controller/Widget.php:1260
+#: lib/Controller/Widget.php:1149 lib/Controller/Widget.php:1368
msgid "This Region is not shared with you"
msgstr ""
-#: lib/Controller/Widget.php:1116 lib/Controller/Widget.php:1265
+#: lib/Controller/Widget.php:1154 lib/Controller/Widget.php:1373
msgid "This Widget is not shared with you"
msgstr ""
-#: lib/Controller/Widget.php:1206
+#: lib/Controller/Widget.php:1314
msgid "No data providers configured"
msgstr ""
-#: lib/Controller/Widget.php:1332
+#: lib/Controller/Widget.php:1441
msgid "Problem rendering widget"
msgstr ""
-#: lib/Controller/Widget.php:1496
+#: lib/Controller/Widget.php:1609
msgid "Edited Expiry"
msgstr ""
-#: lib/Controller/Widget.php:1560
+#: lib/Controller/Widget.php:1673
msgid "You can only set a target region on a Widget in the drawer."
msgstr ""
-#: lib/Controller/Widget.php:1584
+#: lib/Controller/Widget.php:1697
msgid "Target region set"
msgstr ""
-#: lib/Controller/Widget.php:1658
+#: lib/Controller/Widget.php:1771
msgid "Invalid element JSON"
msgstr ""
-#: lib/Controller/Widget.php:1664
+#: lib/Controller/Widget.php:1777
msgid ""
"At least one element is required for this Widget. Please delete it if you no "
"longer need it."
msgstr ""
-#: lib/Controller/Widget.php:1733
+#: lib/Controller/Widget.php:1846
msgid "Saved elements"
msgstr ""
-#: lib/Controller/Widget.php:1758
+#: lib/Controller/Widget.php:1871
msgid "Please supply a propertyId"
msgstr ""
-#: lib/Controller/Widget.php:1812
+#: lib/Controller/Widget.php:1925
msgid "Please provide a widgetId"
msgstr ""
-#: lib/Controller/Widget.php:1831
+#: lib/Controller/Widget.php:1944
msgid "Widget does not have a data type"
msgstr ""
-#: lib/Controller/Template.php:171
+#: lib/Controller/Template.php:177
msgid "Alter Template"
msgstr ""
-#: lib/Controller/Template.php:226 lib/Controller/DisplayGroup.php:360
-#: lib/Controller/Campaign.php:361 lib/Controller/MenuBoard.php:179
-#: lib/Controller/Playlist.php:419 lib/Controller/Library.php:675
-#: lib/Controller/Layout.php:1791 lib/Controller/Display.php:956
+#: lib/Controller/Template.php:246 lib/Controller/DisplayGroup.php:365
+#: lib/Controller/DataSet.php:291 lib/Controller/Campaign.php:361
+#: lib/Controller/MenuBoard.php:179 lib/Controller/Playlist.php:422
+#: lib/Controller/Library.php:677 lib/Controller/Layout.php:1817
+#: lib/Controller/Display.php:957
msgid "Move to Folder"
msgstr ""
-#: lib/Controller/Template.php:420 lib/Controller/Template.php:617
+#: lib/Controller/Template.php:467 lib/Controller/Template.php:664
msgid "You do not have permissions to view this layout"
msgstr ""
-#: lib/Controller/Template.php:669
+#: lib/Controller/Template.php:716
#, php-format
msgid "Saved %s"
msgstr ""
-#: lib/Controller/DisplayGroup.php:319 lib/Controller/SyncGroup.php:176
+#: lib/Controller/DisplayGroup.php:324 lib/Controller/SyncGroup.php:176
#: lib/Controller/UserGroup.php:184
msgid "Members"
msgstr ""
-#: lib/Controller/DisplayGroup.php:406 lib/Controller/Display.php:1025
+#: lib/Controller/DisplayGroup.php:411 lib/Controller/Display.php:1026
msgid "Assign Files"
msgstr ""
-#: lib/Controller/DisplayGroup.php:413 lib/Controller/Display.php:1032
+#: lib/Controller/DisplayGroup.php:418 lib/Controller/Display.php:1033
msgid "Assign Layouts"
msgstr ""
-#: lib/Controller/DisplayGroup.php:1072
+#: lib/Controller/DisplayGroup.php:1077
msgid "Displays should be deleted using the Display delete operation"
msgstr ""
-#: lib/Controller/DisplayGroup.php:1142 lib/Controller/DisplayGroup.php:1278
-#: lib/Controller/DisplayGroup.php:1378 lib/Controller/DisplayGroup.php:1482
+#: lib/Controller/DisplayGroup.php:1147 lib/Controller/DisplayGroup.php:1283
+#: lib/Controller/DisplayGroup.php:1383 lib/Controller/DisplayGroup.php:1487
msgid ""
"This is a Display specific Display Group and its assignments cannot be "
"modified."
msgstr ""
-#: lib/Controller/DisplayGroup.php:1153
+#: lib/Controller/DisplayGroup.php:1158
msgid "Displays cannot be manually assigned to a Dynamic Group"
msgstr ""
-#: lib/Controller/DisplayGroup.php:1178 lib/Controller/DisplayGroup.php:1201
-#: lib/Controller/DisplayGroup.php:1303
+#: lib/Controller/DisplayGroup.php:1183 lib/Controller/DisplayGroup.php:1206
+#: lib/Controller/DisplayGroup.php:1308
msgid "Access Denied to Display"
msgstr ""
-#: lib/Controller/DisplayGroup.php:1224 lib/Controller/SyncGroup.php:420
+#: lib/Controller/DisplayGroup.php:1229 lib/Controller/SyncGroup.php:422
#, php-format
msgid "Displays assigned to %s"
msgstr ""
-#: lib/Controller/DisplayGroup.php:1292
+#: lib/Controller/DisplayGroup.php:1297
msgid "Displays cannot be manually unassigned to a Dynamic Group"
msgstr ""
-#: lib/Controller/DisplayGroup.php:1316
+#: lib/Controller/DisplayGroup.php:1321
#, php-format
msgid "Displays unassigned from %s"
msgstr ""
-#: lib/Controller/DisplayGroup.php:1392
+#: lib/Controller/DisplayGroup.php:1397
msgid "DisplayGroups cannot be manually assigned to a Dynamic Group"
msgstr ""
-#: lib/Controller/DisplayGroup.php:1403 lib/Controller/DisplayGroup.php:1416
-#: lib/Controller/Display.php:2134 lib/Controller/Display.php:2148
+#: lib/Controller/DisplayGroup.php:1408 lib/Controller/DisplayGroup.php:1421
+#: lib/Controller/Display.php:2144 lib/Controller/Display.php:2158
msgid "Access Denied to DisplayGroup"
msgstr ""
-#: lib/Controller/DisplayGroup.php:1428
+#: lib/Controller/DisplayGroup.php:1433
#, php-format
msgid "DisplayGroups assigned to %s"
msgstr ""
-#: lib/Controller/DisplayGroup.php:1496
+#: lib/Controller/DisplayGroup.php:1501
msgid "DisplayGroups cannot be manually unassigned to a Dynamic Group"
msgstr ""
-#: lib/Controller/DisplayGroup.php:1512
+#: lib/Controller/DisplayGroup.php:1517
#, php-format
msgid "DisplayGroups unassigned from %s"
msgstr ""
-#: lib/Controller/DisplayGroup.php:1622 lib/Controller/DisplayGroup.php:1636
+#: lib/Controller/DisplayGroup.php:1627 lib/Controller/DisplayGroup.php:1641
msgid ""
"You have selected media that you no longer have permission to use. Please "
"reload the form."
msgstr ""
-#: lib/Controller/DisplayGroup.php:1648
+#: lib/Controller/DisplayGroup.php:1653
#, php-format
msgid "Files assigned to %s"
msgstr ""
-#: lib/Controller/DisplayGroup.php:1720
+#: lib/Controller/DisplayGroup.php:1725
#, php-format
msgid "Files unassigned from %s"
msgstr ""
-#: lib/Controller/DisplayGroup.php:1829 lib/Controller/DisplayGroup.php:1841
+#: lib/Controller/DisplayGroup.php:1834 lib/Controller/DisplayGroup.php:1846
msgid ""
"You have selected a layout that you no longer have permission to use. Please "
"reload the form."
msgstr ""
-#: lib/Controller/DisplayGroup.php:1853
+#: lib/Controller/DisplayGroup.php:1858
#, php-format
msgid "Layouts assigned to %s"
msgstr ""
-#: lib/Controller/DisplayGroup.php:1926
+#: lib/Controller/DisplayGroup.php:1931
#, php-format
msgid "Layouts unassigned from %s"
msgstr ""
-#: lib/Controller/DisplayGroup.php:2002 lib/Controller/DisplayGroup.php:2051
-#: lib/Controller/DisplayGroup.php:2206 lib/Controller/DisplayGroup.php:2256
-#: lib/Controller/DisplayGroup.php:2399 lib/Controller/DisplayGroup.php:2501
-#: lib/Controller/DisplayGroup.php:2867
+#: lib/Controller/DisplayGroup.php:2007 lib/Controller/DisplayGroup.php:2056
+#: lib/Controller/DisplayGroup.php:2211 lib/Controller/DisplayGroup.php:2261
+#: lib/Controller/DisplayGroup.php:2404 lib/Controller/DisplayGroup.php:2506
+#: lib/Controller/DisplayGroup.php:2872
#, php-format
msgid "Command Sent to %s"
msgstr ""
-#: lib/Controller/DisplayGroup.php:2138 lib/Controller/DisplayGroup.php:2336
+#: lib/Controller/DisplayGroup.php:2143 lib/Controller/DisplayGroup.php:2341
msgid "Please provide a Layout ID or Campaign ID"
msgstr ""
-#: lib/Controller/DisplayGroup.php:2148 lib/Controller/DisplayGroup.php:2346
+#: lib/Controller/DisplayGroup.php:2153 lib/Controller/DisplayGroup.php:2351
msgid "Please provide Layout specific campaign ID"
msgstr ""
-#: lib/Controller/DisplayGroup.php:2154 lib/Controller/DisplayGroup.php:2352
+#: lib/Controller/DisplayGroup.php:2159 lib/Controller/DisplayGroup.php:2357
msgid "Cannot find layout by campaignId"
msgstr ""
-#: lib/Controller/DisplayGroup.php:2159 lib/Controller/DisplayGroup.php:2357
+#: lib/Controller/DisplayGroup.php:2164 lib/Controller/DisplayGroup.php:2362
msgid "Please provide Layout id or Campaign id"
msgstr ""
-#: lib/Controller/DisplayGroup.php:2524 lib/Controller/DisplayProfile.php:546
-#: lib/Controller/DisplayProfile.php:576 lib/Controller/DisplayProfile.php:635
+#: lib/Controller/DisplayGroup.php:2529 lib/Controller/DisplayProfile.php:556
+#: lib/Controller/DisplayProfile.php:586 lib/Controller/DisplayProfile.php:645
msgid "You do not have permission to delete this profile"
msgstr ""
-#: lib/Controller/DisplayGroup.php:2776
+#: lib/Controller/DisplayGroup.php:2781
#, php-format
msgid "Display %s moved to Folder %s"
msgstr ""
-#: lib/Controller/DisplayGroup.php:2856
+#: lib/Controller/DisplayGroup.php:2861
msgid "Please provide a Trigger Code"
msgstr ""
-#: lib/Controller/DataSet.php:221
+#: lib/Controller/DisplayGroup.php:2937
+msgid "No criteria found."
+msgstr ""
+
+#: lib/Controller/DisplayGroup.php:2956
+msgid ""
+"Invalid criteria format. Metric, value, and ttl must all be present and not "
+"empty."
+msgstr ""
+
+#: lib/Controller/DisplayGroup.php:2977
+msgid "Schedule criteria updates sent to players."
+msgstr ""
+
+#: lib/Controller/DataSet.php:234
msgid "View RSS"
msgstr ""
-#: lib/Controller/DataSet.php:232
+#: lib/Controller/DataSet.php:244
+msgid "View Data Connector"
+msgstr ""
+
+#: lib/Controller/DataSet.php:256
msgid "Import CSV"
msgstr ""
-#: lib/Controller/DataSet.php:257
+#: lib/Controller/DataSet.php:302
msgid "Export (CSV)"
msgstr ""
-#: lib/Controller/DataSet.php:940 lib/Entity/DataSet.php:932
+#: lib/Controller/DataSet.php:1086
+msgid "This DataSet does not have a data connector"
+msgstr ""
+
+#: lib/Controller/DataSet.php:1119 lib/Entity/DataSet.php:1032
msgid "Lookup Tables cannot be deleted"
msgstr ""
-#: lib/Controller/DataSet.php:994
+#: lib/Controller/DataSet.php:1173
msgid "There is data assigned to this data set, cannot delete."
msgstr ""
-#: lib/Controller/DataSet.php:1126
+#: lib/Controller/DataSet.php:1282
+#, php-format
+msgid "DataSet %s moved to Folder %s"
+msgstr ""
+
+#: lib/Controller/DataSet.php:1406
#, php-format
msgid "Copied %s as %s"
msgstr ""
-#: lib/Controller/DataSet.php:1284
+#: lib/Controller/DataSet.php:1564
msgid "Missing JSON Body"
msgstr ""
-#: lib/Controller/DataSet.php:1291
+#: lib/Controller/DataSet.php:1571
msgid "Malformed JSON body, rows and uniqueKeys are required"
msgstr ""
-#: lib/Controller/DataSet.php:1331
+#: lib/Controller/DataSet.php:1611
#, php-format
msgid "Incorrect date provided %s, expected date format Y-m-d H:i:s "
msgstr ""
-#: lib/Controller/DataSet.php:1380
+#: lib/Controller/DataSet.php:1665
msgid "No data found in request body"
msgstr ""
-#: lib/Controller/DataSet.php:1384
+#: lib/Controller/DataSet.php:1669
#, php-format
msgid "Imported JSON into %s"
msgstr ""
-#: lib/Controller/DataSet.php:1448
+#: lib/Controller/DataSet.php:1733
#, php-format
msgid "Run Test-Request for %s"
msgstr ""
-#: lib/Controller/DataSet.php:1563
+#: lib/Controller/DataSet.php:1848
#, php-format
msgid "Cache cleared for %s"
msgstr ""
+#: lib/Controller/DataSet.php:1945
+msgid "URL not found in data connector script"
+msgstr ""
+
#: lib/Controller/ScheduleReport.php:154
msgid "Unknown or removed report."
msgstr ""
@@ -21324,21 +22292,25 @@ msgid ""
"You do not have permissions to delete saved reports of this report schedule"
msgstr ""
-#: lib/Controller/Notification.php:230
+#: lib/Controller/Notification.php:252
+msgid "Mark as read?"
+msgstr ""
+
+#: lib/Controller/Notification.php:300
msgid "Delete?"
msgstr ""
-#: lib/Controller/Notification.php:565
+#: lib/Controller/Notification.php:630
msgid "Problem moving uploaded file into the Attachment Folder"
msgstr ""
-#: lib/Controller/Stats.php:413 lib/Report/ProofOfPlay.php:476
+#: lib/Controller/Stats.php:413 lib/Report/ProofOfPlay.php:488
msgid "Deleted from Layout"
msgstr ""
#: lib/Controller/Stats.php:415 lib/Controller/Stats.php:416
#: lib/Controller/Stats.php:808 lib/Controller/Stats.php:810
-#: lib/Report/ProofOfPlay.php:483 lib/Report/ProofOfPlay.php:485
+#: lib/Report/ProofOfPlay.php:495 lib/Report/ProofOfPlay.php:497
msgid "Not Found"
msgstr ""
@@ -21454,7 +22426,7 @@ msgid "Please provide LayoutId"
msgstr ""
#: lib/Controller/Action.php:348 lib/Controller/Action.php:498
-#: lib/Controller/Action.php:562 lib/Controller/Layout.php:2959
+#: lib/Controller/Action.php:562 lib/Controller/Layout.php:2992
msgid "Layout is not checked out"
msgstr ""
@@ -21478,112 +22450,116 @@ msgstr ""
msgid "Provided source is invalid. "
msgstr ""
-#: lib/Controller/Module.php:264
+#: lib/Controller/Module.php:261
+msgid "Preview is disabled"
+msgstr ""
+
+#: lib/Controller/Module.php:269
#, php-format
msgid "Configured %s"
msgstr ""
-#: lib/Controller/Module.php:313
+#: lib/Controller/Module.php:318
msgid "Cleared the Cache"
msgstr ""
-#: lib/Controller/Module.php:348
+#: lib/Controller/Module.php:360
msgid "Please provide a datatype"
msgstr ""
-#: lib/Controller/Module.php:429
+#: lib/Controller/Module.php:448
msgid "Please provide an assetId"
msgstr ""
-#: lib/Controller/Fault.php:109 lib/Entity/Layout.php:1918
+#: lib/Controller/Fault.php:109 lib/Entity/Layout.php:1923
msgid "Can't create ZIP. Error Code: "
msgstr ""
-#: lib/Controller/Fault.php:121
+#: lib/Controller/Fault.php:127
msgid "Please select at least one option"
msgstr ""
-#: lib/Controller/Fault.php:211
+#: lib/Controller/Fault.php:245
msgid "Switched to Debug Mode"
msgstr ""
-#: lib/Controller/Fault.php:231
+#: lib/Controller/Fault.php:265
msgid "Switched to Normal Mode"
msgstr ""
-#: lib/Controller/Folder.php:187
+#: lib/Controller/Folder.php:195
msgid "Private Folder"
msgstr ""
-#: lib/Controller/Folder.php:310
+#: lib/Controller/Folder.php:318
msgid "Cannot edit root Folder"
msgstr ""
-#: lib/Controller/Folder.php:369
+#: lib/Controller/Folder.php:377
msgid "Cannot remove root Folder"
msgstr ""
-#: lib/Controller/Folder.php:378
+#: lib/Controller/Folder.php:386
msgid "Cannot remove Folder set as home Folder for a user"
msgstr ""
-#: lib/Controller/Folder.php:380
+#: lib/Controller/Folder.php:388
msgid "Change home Folder for Users using this Folder before deleting"
msgstr ""
-#: lib/Controller/Folder.php:386
+#: lib/Controller/Folder.php:394
msgid "Cannot remove Folder set as default Folder for new Displays"
msgstr ""
-#: lib/Controller/Folder.php:388
+#: lib/Controller/Folder.php:396
msgid "Change Default Folder for new Displays before deleting"
msgstr ""
-#: lib/Controller/Folder.php:399
+#: lib/Controller/Folder.php:407
msgid "Reassign objects from this Folder before deleting."
msgstr ""
-#: lib/Controller/Folder.php:496
+#: lib/Controller/Folder.php:504
msgid "Please select different folder, cannot move Folder to the same Folder"
msgstr ""
-#: lib/Controller/Folder.php:502
+#: lib/Controller/Folder.php:510
msgid ""
"Please select different folder, cannot move Folder inside of one of its sub-"
"folders"
msgstr ""
-#: lib/Controller/Folder.php:507
+#: lib/Controller/Folder.php:515
msgid ""
"This Folder is already a sub-folder of the selected Folder, if you wish to "
"move its content to the parent Folder, please check the merge checkbox."
msgstr ""
-#: lib/Controller/DataSetData.php:156
+#: lib/Controller/DataSetData.php:164
msgid "Error getting DataSet data, failed with following message: "
msgstr ""
-#: lib/Controller/DataSetData.php:283
+#: lib/Controller/DataSetData.php:291
msgid "Cannot add new rows to remote dataSet"
msgstr ""
-#: lib/Controller/DataSetData.php:297
+#: lib/Controller/DataSetData.php:305
msgid "Added Row"
msgstr ""
-#: lib/Controller/DataSetData.php:470
+#: lib/Controller/DataSetData.php:478
msgid "Cannot edit data of remote columns"
msgstr ""
-#: lib/Controller/DataSetData.php:477
+#: lib/Controller/DataSetData.php:485
msgid "Edited Row"
msgstr ""
-#: lib/Controller/DataSetData.php:567
+#: lib/Controller/DataSetData.php:575
msgid "row not found"
msgstr ""
-#: lib/Controller/DataSetData.php:579
+#: lib/Controller/DataSetData.php:587
msgid "Deleted Row"
msgstr ""
@@ -21591,233 +22567,245 @@ msgstr ""
msgid "Widget cache"
msgstr ""
-#: lib/Controller/Playlist.php:355
+#: lib/Controller/Playlist.php:358
msgid "This Playlist has enable stat collection set to ON"
msgstr ""
-#: lib/Controller/Playlist.php:362
+#: lib/Controller/Playlist.php:365
msgid "This Playlist has enable stat collection set to OFF"
msgstr ""
-#: lib/Controller/Playlist.php:369
+#: lib/Controller/Playlist.php:372
msgid "This Playlist has enable stat collection set to INHERIT"
msgstr ""
-#: lib/Controller/Playlist.php:430 lib/Controller/Playlist.php:441
-#: lib/Controller/Library.php:746 lib/Controller/Library.php:752
-#: lib/Controller/Layout.php:1852 lib/Controller/Layout.php:1858
+#: lib/Controller/Playlist.php:433 lib/Controller/Playlist.php:444
+#: lib/Controller/Library.php:748 lib/Controller/Library.php:754
+#: lib/Controller/Layout.php:1878 lib/Controller/Layout.php:1884
msgid "Enable stats collection?"
msgstr ""
-#: lib/Controller/Playlist.php:522 lib/Controller/Library.php:765
+#: lib/Controller/Playlist.php:525 lib/Controller/Library.php:767
msgid "Usage Report"
msgstr ""
-#: lib/Controller/Playlist.php:671
+#: lib/Controller/Playlist.php:674
msgid "Please enter playlist name"
msgstr ""
-#: lib/Controller/Playlist.php:713 lib/Controller/Playlist.php:961
+#: lib/Controller/Playlist.php:716 lib/Controller/Playlist.php:964
msgid ""
"No filters have been set for this dynamic Playlist, please click the Filters "
"tab to define"
msgstr ""
-#: lib/Controller/Playlist.php:1201 lib/Controller/Library.php:2274
-#: lib/Controller/Layout.php:2182
+#: lib/Controller/Playlist.php:1204 lib/Controller/Library.php:2304
+#: lib/Controller/Layout.php:2208 lib/Controller/Developer.php:632
#, php-format
msgid "Copied as %s"
msgstr ""
-#: lib/Controller/Playlist.php:1314
-msgid ""
-"This Playlist is dynamically managed so cannot accept manual assignments."
-msgstr ""
-
-#: lib/Controller/Playlist.php:1320
+#: lib/Controller/Playlist.php:1323
msgid "Please provide Media to Assign"
msgstr ""
-#: lib/Controller/Playlist.php:1336
+#: lib/Controller/Playlist.php:1339
msgid "You do not have permissions to use this media"
msgstr ""
-#: lib/Controller/Playlist.php:1341
+#: lib/Controller/Playlist.php:1344
#, php-format
msgid "You cannot assign file type %s to a playlist"
msgstr ""
-#: lib/Controller/Playlist.php:1401
+#: lib/Controller/Playlist.php:1404
msgid "Media Assigned"
msgstr ""
-#: lib/Controller/Playlist.php:1486
+#: lib/Controller/Playlist.php:1489
msgid "Cannot Save empty region playlist. Please add widgets"
msgstr ""
-#: lib/Controller/Playlist.php:1505
+#: lib/Controller/Playlist.php:1508
msgid "Order Changed"
msgstr ""
-#: lib/Controller/Playlist.php:1643 lib/Controller/Playlist.php:1720
+#: lib/Controller/Playlist.php:1646 lib/Controller/Playlist.php:1724
msgid "Specified Playlist item is not in use."
msgstr ""
-#: lib/Controller/Playlist.php:1713 lib/Controller/Library.php:2133
-#: lib/Controller/Layout.php:1703
+#: lib/Controller/Playlist.php:1717 lib/Controller/Library.php:2163
+#: lib/Controller/Layout.php:1728
msgid "Preview Layout"
msgstr ""
-#: lib/Controller/Playlist.php:1788
+#: lib/Controller/Playlist.php:1792
#, php-format
msgid "For Playlist %s Enable Stats Collection is set to %s"
msgstr ""
-#: lib/Controller/Playlist.php:1921
+#: lib/Controller/Playlist.php:1925
#, php-format
msgid "Playlist %s moved to Folder %s"
msgstr ""
+#: lib/Controller/Playlist.php:1988
+msgid "Not a Region Playlist"
+msgstr ""
+
+#: lib/Controller/Playlist.php:1996
+msgid "Not a Playlist"
+msgstr ""
+
+#: lib/Controller/Playlist.php:2021 lib/Controller/Layout.php:381
+#, php-format
+msgid "Untitled %s"
+msgstr ""
+
+#: lib/Controller/Playlist.php:2085
+msgid "Conversion Successful"
+msgstr ""
+
#: lib/Controller/Transition.php:120 lib/Controller/Transition.php:147
msgid "Transition Config Locked"
msgstr ""
-#: lib/Controller/Library.php:364
+#: lib/Controller/Library.php:366
#, php-format
msgid "For Media %s Enable Stats Collection is set to %s"
msgstr ""
-#: lib/Controller/Library.php:577
+#: lib/Controller/Library.php:579
#, php-format
msgid "Expires %s"
msgstr ""
-#: lib/Controller/Library.php:578
+#: lib/Controller/Library.php:580
msgid "Expired "
msgstr ""
-#: lib/Controller/Library.php:601
+#: lib/Controller/Library.php:603
msgid ""
"The uploaded image is too large and cannot be processed, please use another "
"image."
msgstr ""
-#: lib/Controller/Library.php:608
+#: lib/Controller/Library.php:610
msgid "This image will be resized according to set thresholds and limits."
msgstr ""
-#: lib/Controller/Library.php:616
+#: lib/Controller/Library.php:618
msgid "This Media has enable stat collection set to ON"
msgstr ""
-#: lib/Controller/Library.php:623
+#: lib/Controller/Library.php:625
msgid "This Media has enable stat collection set to OFF"
msgstr ""
-#: lib/Controller/Library.php:630
+#: lib/Controller/Library.php:632
msgid "This Media has enable stat collection set to INHERIT"
msgstr ""
-#: lib/Controller/Library.php:734 lib/Controller/Font.php:155
+#: lib/Controller/Library.php:736 lib/Controller/Font.php:155
#: lib/Controller/PlayerSoftware.php:186
msgid "Download"
msgstr ""
-#: lib/Controller/Library.php:1002
+#: lib/Controller/Library.php:1021
msgid "This library item is in use."
msgstr ""
-#: lib/Controller/Library.php:1174 lib/Controller/Library.php:1386
-#: lib/Controller/Library.php:2463
+#: lib/Controller/Library.php:1201 lib/Controller/Library.php:1413
+#: lib/Controller/Library.php:2493
msgid "Cannot set Expiry date in the past"
msgstr ""
-#: lib/Controller/Library.php:1427 lib/Controller/Library.php:1492
+#: lib/Controller/Library.php:1454 lib/Controller/Library.php:1519
#: lib/Controller/Maintenance.php:97
msgid "Sorry this function is disabled."
msgstr ""
-#: lib/Controller/Library.php:1524 lib/Controller/Maintenance.php:269
+#: lib/Controller/Library.php:1551 lib/Controller/Maintenance.php:269
msgid "Library Tidy Complete"
msgstr ""
-#: lib/Controller/Library.php:1607
+#: lib/Controller/Library.php:1634
msgid "Cannot download region specific module"
msgstr ""
-#: lib/Controller/Library.php:1755
+#: lib/Controller/Library.php:1784
msgid "Route is available through the API"
msgstr ""
-#: lib/Controller/Library.php:1824 lib/Controller/Layout.php:2247
+#: lib/Controller/Library.php:1853 lib/Controller/Layout.php:2273
msgid "No tags to assign"
msgstr ""
-#: lib/Controller/Library.php:1835 lib/Controller/Layout.php:2258
+#: lib/Controller/Library.php:1864 lib/Controller/Layout.php:2284
#, php-format
msgid "Tagged %s"
msgstr ""
-#: lib/Controller/Library.php:1898 lib/Controller/Layout.php:2323
+#: lib/Controller/Library.php:1927 lib/Controller/Layout.php:2349
msgid "No tags to unassign"
msgstr ""
-#: lib/Controller/Library.php:1909 lib/Controller/Layout.php:2333
+#: lib/Controller/Library.php:1938 lib/Controller/Layout.php:2359
#, php-format
msgid "Untagged %s"
msgstr ""
-#: lib/Controller/Library.php:2056 lib/Controller/Library.php:2140
+#: lib/Controller/Library.php:2085 lib/Controller/Library.php:2170
msgid "Specified Media item is not in use."
msgstr ""
-#: lib/Controller/Library.php:2347 lib/Middleware/Theme.php:143
+#: lib/Controller/Library.php:2377 lib/Middleware/Theme.php:143
#, php-format
msgid "This form accepts files up to a maximum size of %s"
msgstr ""
-#: lib/Controller/Library.php:2471
+#: lib/Controller/Library.php:2501
msgid "Provided URL is invalid"
msgstr ""
-#: lib/Controller/Library.php:2507
+#: lib/Controller/Library.php:2537
#, php-format
msgid ""
"Invalid Module type or extension. Module type %s does not allow for %s "
"extension"
msgstr ""
-#: lib/Controller/Library.php:2540
+#: lib/Controller/Library.php:2570
msgid "Download rejected for an unknown reason."
msgstr ""
-#: lib/Controller/Library.php:2544
+#: lib/Controller/Library.php:2574
#, php-format
msgid "Download rejected due to %s"
msgstr ""
-#: lib/Controller/Library.php:2551
+#: lib/Controller/Library.php:2581
msgid "Media upload from URL was successful"
msgstr ""
-#: lib/Controller/Library.php:2596
+#: lib/Controller/Library.php:2626
msgid "Invalid image data"
msgstr ""
-#: lib/Controller/Library.php:2702
+#: lib/Controller/Library.php:2732
#, php-format
msgid "Media %s moved to Folder %s"
msgstr ""
-#: lib/Controller/Library.php:2789
+#: lib/Controller/Library.php:2823
msgid "Not configured by any active connector."
msgstr ""
-#: lib/Controller/Library.php:2839
+#: lib/Controller/Library.php:2873
msgid "Download failed"
msgstr ""
-#: lib/Controller/Library.php:2848
+#: lib/Controller/Library.php:2882
msgid "Imported"
msgstr ""
@@ -21863,182 +22851,177 @@ msgstr ""
msgid "Uninstalled %s"
msgstr ""
-#: lib/Controller/Layout.php:379
-#, php-format
-msgid "Untitled %s"
-msgstr ""
-
-#: lib/Controller/Layout.php:591
+#: lib/Controller/Layout.php:593
msgid "Cannot edit Layout properties on a Draft"
msgstr ""
-#: lib/Controller/Layout.php:603
+#: lib/Controller/Layout.php:605
msgid ""
"Cannot assign a Template tag to a Layout, to create a template use the Save "
"Template button instead."
msgstr ""
-#: lib/Controller/Layout.php:937 lib/Controller/Layout.php:1014
+#: lib/Controller/Layout.php:960 lib/Controller/Layout.php:1037
msgid "You do not have permissions to delete this layout"
msgstr ""
-#: lib/Controller/Layout.php:966 lib/Controller/Layout.php:1068
-#: lib/Controller/Layout.php:1116 lib/Controller/Layout.php:1165
-#: lib/Controller/Layout.php:1234 lib/Controller/Layout.php:1273
-#: lib/Controller/Layout.php:2685 lib/Controller/Layout.php:2736
-#: lib/Controller/Layout.php:2775 lib/Controller/Layout.php:2844
-#: lib/Controller/Layout.php:2904 lib/Controller/Layout.php:2954
+#: lib/Controller/Layout.php:989 lib/Controller/Layout.php:1091
+#: lib/Controller/Layout.php:1139 lib/Controller/Layout.php:1188
+#: lib/Controller/Layout.php:1257 lib/Controller/Layout.php:1296
+#: lib/Controller/Layout.php:2718 lib/Controller/Layout.php:2769
+#: lib/Controller/Layout.php:2808 lib/Controller/Layout.php:2877
+#: lib/Controller/Layout.php:2937 lib/Controller/Layout.php:2987
msgid "You do not have permissions to edit this layout"
msgstr ""
-#: lib/Controller/Layout.php:1019
+#: lib/Controller/Layout.php:1042
msgid "Cannot delete Layout from its Draft, delete the parent"
msgstr ""
-#: lib/Controller/Layout.php:1073 lib/Controller/Layout.php:1170
-#: lib/Controller/Layout.php:1239
+#: lib/Controller/Layout.php:1096 lib/Controller/Layout.php:1193
+#: lib/Controller/Layout.php:1262
msgid "Cannot modify Layout from its Draft"
msgstr ""
-#: lib/Controller/Layout.php:1078
+#: lib/Controller/Layout.php:1101
msgid "This Layout is used as the global default and cannot be retired"
msgstr ""
-#: lib/Controller/Layout.php:1093
+#: lib/Controller/Layout.php:1116
#, php-format
msgid "Retired %s"
msgstr ""
-#: lib/Controller/Layout.php:1185
+#: lib/Controller/Layout.php:1208
#, php-format
msgid "Unretired %s"
msgstr ""
-#: lib/Controller/Layout.php:1250
+#: lib/Controller/Layout.php:1273
#, php-format
msgid "For Layout %s Enable Stats Collection is set to %s"
msgstr ""
-#: lib/Controller/Layout.php:1488 lib/Controller/Layout.php:1489
+#: lib/Controller/Layout.php:1511 lib/Controller/Layout.php:1512
msgid "Invalid Module"
msgstr ""
-#: lib/Controller/Layout.php:1630 lib/Controller/Layout.php:2385
+#: lib/Controller/Layout.php:1654 lib/Controller/Layout.php:2411
msgid "This Layout is ready to play"
msgstr ""
-#: lib/Controller/Layout.php:1631 lib/Controller/Layout.php:2389
+#: lib/Controller/Layout.php:1655 lib/Controller/Layout.php:2415
msgid "There are items on this Layout that can only be assessed by the Display"
msgstr ""
-#: lib/Controller/Layout.php:1632 lib/Controller/Layout.php:2393
+#: lib/Controller/Layout.php:1656 lib/Controller/Layout.php:2419
msgid "This Layout has not been built yet"
msgstr ""
-#: lib/Controller/Layout.php:1633 lib/Controller/Layout.php:2397
+#: lib/Controller/Layout.php:1657 lib/Controller/Layout.php:2423
msgid "This Layout is invalid and should not be scheduled"
msgstr ""
-#: lib/Controller/Layout.php:1637
+#: lib/Controller/Layout.php:1661
msgid "This Layout has enable stat collection set to ON"
msgstr ""
-#: lib/Controller/Layout.php:1638
+#: lib/Controller/Layout.php:1662
msgid "This Layout has enable stat collection set to OFF"
msgstr ""
-#: lib/Controller/Layout.php:1713
+#: lib/Controller/Layout.php:1739
msgid "Preview Draft Layout"
msgstr ""
-#: lib/Controller/Layout.php:1734
+#: lib/Controller/Layout.php:1760
msgid "Assign to Campaign"
msgstr ""
-#: lib/Controller/Layout.php:1745
+#: lib/Controller/Layout.php:1771
msgid "Jump to Playlists included on this Layout"
msgstr ""
-#: lib/Controller/Layout.php:1754
+#: lib/Controller/Layout.php:1780
msgid "Jump to Campaigns containing this Layout"
msgstr ""
-#: lib/Controller/Layout.php:1763
+#: lib/Controller/Layout.php:1789
msgid "Jump to Media included on this Layout"
msgstr ""
-#: lib/Controller/Layout.php:1825
+#: lib/Controller/Layout.php:1851
msgid "Unretire"
msgstr ""
-#: lib/Controller/Layout.php:2096
+#: lib/Controller/Layout.php:2122
msgid "Cannot copy a Draft Layout"
msgstr ""
-#: lib/Controller/Layout.php:2242 lib/Controller/Layout.php:2318
+#: lib/Controller/Layout.php:2268 lib/Controller/Layout.php:2344
msgid "Cannot manage tags on a Draft Layout"
msgstr ""
-#: lib/Controller/Layout.php:2447 lib/Controller/Layout.php:2485
+#: lib/Controller/Layout.php:2473 lib/Controller/Layout.php:2511
msgid "Cannot export Draft Layout"
msgstr ""
-#: lib/Controller/Layout.php:2614
+#: lib/Controller/Layout.php:2647
msgid "Layout background must be an image"
msgstr ""
-#: lib/Controller/Layout.php:2741
+#: lib/Controller/Layout.php:2774
msgid "Layout is already checked out"
msgstr ""
-#: lib/Controller/Layout.php:2750
+#: lib/Controller/Layout.php:2783
#, php-format
msgid "Checked out %s"
msgstr ""
-#: lib/Controller/Layout.php:2866
+#: lib/Controller/Layout.php:2899
#, php-format
msgid "Published %s"
msgstr ""
-#: lib/Controller/Layout.php:2873
+#: lib/Controller/Layout.php:2906
#, php-format
msgid "Layout will be published on %s"
msgstr ""
-#: lib/Controller/Layout.php:2971
+#: lib/Controller/Layout.php:3004
#, php-format
msgid "Discarded %s"
msgstr ""
-#: lib/Controller/Layout.php:3022
+#: lib/Controller/Layout.php:3055
msgid ""
"This function is available only to User who originally locked this Layout."
msgstr ""
-#: lib/Controller/Layout.php:3111 lib/Entity/Layout.php:2257
+#: lib/Controller/Layout.php:3144 lib/Entity/Layout.php:2277
msgid "Empty Region"
msgstr ""
-#: lib/Controller/Layout.php:3215
+#: lib/Controller/Layout.php:3248
msgid "Incorrect image data"
msgstr ""
-#: lib/Controller/Layout.php:3240
+#: lib/Controller/Layout.php:3273
msgid "Thumbnail not found for Layout"
msgstr ""
-#: lib/Controller/Layout.php:3332
+#: lib/Controller/Layout.php:3365
#, php-format
msgid "Please select %s"
msgstr ""
-#: lib/Controller/Layout.php:3350
+#: lib/Controller/Layout.php:3383
#, php-format
msgid "Fetched %s"
msgstr ""
-#: lib/Controller/Layout.php:3473
+#: lib/Controller/Layout.php:3506
#, php-format
msgid "Created %s"
msgstr ""
@@ -22051,35 +23034,35 @@ msgstr ""
msgid "Added Menu Board Category"
msgstr ""
-#: lib/Controller/DisplayProfileConfigFields.php:716
+#: lib/Controller/DisplayProfileConfigFields.php:784
msgid ""
"On/Off Timers: Please check the days selected and remove the duplicates or "
"empty"
msgstr ""
-#: lib/Controller/DisplayProfileConfigFields.php:725
+#: lib/Controller/DisplayProfileConfigFields.php:793
msgid ""
"On/Off Timers: Please enter a on and off date for any row with a day "
"selected, or remove that row"
msgstr ""
-#: lib/Controller/DisplayProfileConfigFields.php:769
+#: lib/Controller/DisplayProfileConfigFields.php:837
msgid ""
"Picture: Please check the settings selected and remove the duplicates or "
"empty"
msgstr ""
-#: lib/Controller/CypressTest.php:160 lib/Controller/Schedule.php:1149
-#: lib/Controller/Schedule.php:1782
+#: lib/Controller/CypressTest.php:160 lib/Controller/Schedule.php:1095
+#: lib/Controller/Schedule.php:1777
msgid "Direct scheduling of an Ad Campaign is not allowed"
msgstr ""
-#: lib/Controller/CypressTest.php:171 lib/Controller/Schedule.php:1160
-#: lib/Controller/Schedule.php:1811 lib/Entity/Schedule.php:622
+#: lib/Controller/CypressTest.php:171 lib/Controller/Schedule.php:1106
+#: lib/Controller/Schedule.php:1806 lib/Entity/Schedule.php:690
msgid "Share of Voice must be a whole number between 0 and 3600"
msgstr ""
-#: lib/Controller/CypressTest.php:197 lib/Controller/Schedule.php:1334
+#: lib/Controller/CypressTest.php:197 lib/Controller/Schedule.php:1307
msgid "Added Event"
msgstr ""
@@ -22088,78 +23071,78 @@ msgid "Added campaign"
msgstr ""
#: lib/Controller/Login.php:119 lib/Controller/Login.php:122
-#: lib/Controller/Login.php:159
+#: lib/Controller/Login.php:160
msgid "This link has expired."
msgstr ""
-#: lib/Controller/Login.php:210
+#: lib/Controller/Login.php:211
msgid ""
"Sorry this account does not exist or does not have permission to access the "
"web portal."
msgstr ""
-#: lib/Controller/Login.php:227 lib/Entity/User.php:595
+#: lib/Controller/Login.php:228 lib/Entity/User.php:639
#: lib/Factory/UserFactory.php:97 lib/Factory/UserFactory.php:131
#: lib/Factory/UserFactory.php:147
msgid "User not found"
msgstr ""
-#: lib/Controller/Login.php:234
+#: lib/Controller/Login.php:235
msgid "Username or Password incorrect"
msgstr ""
-#: lib/Controller/Login.php:266
+#: lib/Controller/Login.php:267
msgid "This feature has been disabled by your administrator"
msgstr ""
-#: lib/Controller/Login.php:283 lib/Controller/Login.php:479
+#: lib/Controller/Login.php:284 lib/Controller/Login.php:480
msgid "No email"
msgstr ""
-#: lib/Controller/Login.php:320
+#: lib/Controller/Login.php:321
msgid "Password Reset"
msgstr ""
-#: lib/Controller/Login.php:325
+#: lib/Controller/Login.php:326
msgid ""
"You are receiving this email because a password reminder was requested for "
"your account. If you did not make this request, please report this email to "
"your administrator immediately."
msgstr ""
-#: lib/Controller/Login.php:325
+#: lib/Controller/Login.php:326
msgid "Reset Password"
msgstr ""
-#: lib/Controller/Login.php:332 lib/Controller/Login.php:343
+#: lib/Controller/Login.php:333 lib/Controller/Login.php:344
msgid "A reminder email will been sent to this user if they exist"
msgstr ""
-#: lib/Controller/Login.php:468
+#: lib/Controller/Login.php:469
msgid "Session has expired, please log in again"
msgstr ""
-#: lib/Controller/Login.php:493
+#: lib/Controller/Login.php:494
msgid "Sending email address in CMS Settings is not configured"
msgstr ""
-#: lib/Controller/Login.php:535
+#: lib/Controller/Login.php:536
msgid ""
"You are receiving this email because two factor email authorisation is "
"enabled in your CMS user account. If you did not make this request, please "
"report this email to your administrator immediately."
msgstr ""
-#: lib/Controller/Login.php:538
+#: lib/Controller/Login.php:539
msgid ""
"Unable to send two factor code to email address associated with this user"
msgstr ""
-#: lib/Controller/Login.php:540
+#: lib/Controller/Login.php:541
msgid "Two factor code email has been sent to your email address"
msgstr ""
-#: lib/Controller/Login.php:625
+#: lib/Controller/Login.php:626
msgid "Authentication code incorrect"
msgstr ""
@@ -22174,178 +23157,178 @@ msgstr ""
msgid "Unable to write to the library"
msgstr ""
-#: lib/Controller/DisplayProfile.php:344 lib/Controller/DisplayProfile.php:444
-#: lib/Controller/DisplayProfile.php:500
+#: lib/Controller/DisplayProfile.php:346 lib/Controller/DisplayProfile.php:453
+#: lib/Controller/DisplayProfile.php:510
msgid "You do not have permission to edit this profile"
msgstr ""
-#: lib/Controller/User.php:303
+#: lib/Controller/User.php:305
msgid "Google Authenticator"
msgstr ""
-#: lib/Controller/User.php:321
+#: lib/Controller/User.php:323
msgid "Unknown homepage, please edit to update."
msgstr ""
-#: lib/Controller/User.php:357
+#: lib/Controller/User.php:359
msgid "Set Home Folder"
msgstr ""
-#: lib/Controller/User.php:390 lib/Controller/UserGroup.php:193
+#: lib/Controller/User.php:392 lib/Controller/UserGroup.php:193
msgid "Features"
msgstr ""
-#: lib/Controller/User.php:391 lib/Controller/UserGroup.php:194
+#: lib/Controller/User.php:393 lib/Controller/UserGroup.php:194
msgid "Turn Features on/off for this User"
msgstr ""
-#: lib/Controller/User.php:563 lib/Controller/User.php:1040
-#: lib/Controller/User.php:1118 lib/Controller/User.php:2461
+#: lib/Controller/User.php:565 lib/Controller/User.php:1057
+#: lib/Controller/User.php:1135 lib/Controller/User.php:2478
msgid "Only super and group admins can create users"
msgstr ""
-#: lib/Controller/User.php:612
+#: lib/Controller/User.php:614
msgid "Invalid user group selected"
msgstr ""
-#: lib/Controller/User.php:626 lib/Controller/User.php:867
+#: lib/Controller/User.php:628 lib/Controller/User.php:882
msgid "User does not have the enabled Feature for this Dashboard"
msgstr ""
-#: lib/Controller/User.php:883 lib/Controller/User.php:1277
-#: lib/Controller/User.php:1525
+#: lib/Controller/User.php:900 lib/Controller/User.php:1294
+#: lib/Controller/User.php:1542
msgid "Passwords do not match"
msgstr ""
-#: lib/Controller/User.php:970
+#: lib/Controller/User.php:987
msgid "This User is set as System User and cannot be deleted."
msgstr ""
-#: lib/Controller/User.php:978
+#: lib/Controller/User.php:995
msgid "Cannot delete your own User from the CMS."
msgstr ""
-#: lib/Controller/User.php:982
+#: lib/Controller/User.php:999
msgid "Group Admin cannot remove Super Admins or other Group Admins."
msgstr ""
-#: lib/Controller/User.php:986
+#: lib/Controller/User.php:1003
msgid ""
"Cannot delete all items owned by a Super Admin, please reassign to a "
"different User."
msgstr ""
-#: lib/Controller/User.php:1011
+#: lib/Controller/User.php:1028
#, php-format
msgid "This user cannot be deleted as it has %d child items"
msgstr ""
-#: lib/Controller/User.php:1094
+#: lib/Controller/User.php:1111
msgid "Homepage not found"
msgstr ""
-#: lib/Controller/User.php:1271
+#: lib/Controller/User.php:1288
msgid "Please enter your password"
msgstr ""
-#: lib/Controller/User.php:1289
+#: lib/Controller/User.php:1306
msgid "Please provide valid email address"
msgstr ""
-#: lib/Controller/User.php:1294
+#: lib/Controller/User.php:1311
msgid ""
"Please provide valid sending email address in CMS Settings on Network tab"
msgstr ""
-#: lib/Controller/User.php:1312
+#: lib/Controller/User.php:1329
msgid "Access Code is empty"
msgstr ""
-#: lib/Controller/User.php:1319
+#: lib/Controller/User.php:1336
msgid "Access Code is incorrect"
msgstr ""
-#: lib/Controller/User.php:1344
+#: lib/Controller/User.php:1361
msgid "User Profile Saved"
msgstr ""
-#: lib/Controller/User.php:1522
+#: lib/Controller/User.php:1539
msgid "Please enter the password"
msgstr ""
-#: lib/Controller/User.php:1530
+#: lib/Controller/User.php:1547
msgid "Please choose a new password"
msgstr ""
-#: lib/Controller/User.php:1545
+#: lib/Controller/User.php:1562
msgid "Password Changed"
msgstr ""
-#: lib/Controller/User.php:1603 lib/Controller/User.php:1745
+#: lib/Controller/User.php:1620 lib/Controller/User.php:1762
msgid "You do not have permission to edit these permissions."
msgstr ""
-#: lib/Controller/User.php:1663 lib/Controller/User.php:1792
-#: lib/Controller/User.php:2028 lib/Controller/Display.php:2023
-#: lib/Controller/Display.php:2058 lib/Controller/Display.php:2063
+#: lib/Controller/User.php:1680 lib/Controller/User.php:1809
+#: lib/Controller/User.php:2045 lib/Controller/Display.php:2033
+#: lib/Controller/Display.php:2068 lib/Controller/Display.php:2073
msgid "The array of ids is empty!"
msgstr ""
-#: lib/Controller/User.php:1682
+#: lib/Controller/User.php:1699
msgid "You do not have permission to edit all the entities permissions."
msgstr ""
-#: lib/Controller/User.php:1871
+#: lib/Controller/User.php:1888
msgid "This object is not shared with you with edit permission"
msgstr ""
-#: lib/Controller/User.php:1875
+#: lib/Controller/User.php:1892
msgid "You cannot share the root folder"
msgstr ""
-#: lib/Controller/User.php:1880
+#: lib/Controller/User.php:1897
msgid "You cannot share the Canvas on a Layout, share the layout instead."
msgstr ""
-#: lib/Controller/User.php:1911
+#: lib/Controller/User.php:1928
msgid "Cannot change owner on this Object"
msgstr ""
-#: lib/Controller/User.php:1958 lib/Controller/User.php:2039
+#: lib/Controller/User.php:1975 lib/Controller/User.php:2056
msgid "Share option Updated"
msgstr ""
-#: lib/Controller/User.php:2054
+#: lib/Controller/User.php:2071
msgid "Sharing requested without an entity"
msgstr ""
-#: lib/Controller/User.php:2058
+#: lib/Controller/User.php:2075
msgid "Sharing form requested without an object"
msgstr ""
-#: lib/Controller/User.php:2222
+#: lib/Controller/User.php:2239
msgid "Updated Preference"
msgstr ""
-#: lib/Controller/User.php:2222 lib/Controller/User.php:2442
+#: lib/Controller/User.php:2239 lib/Controller/User.php:2459
msgid "Updated Preferences"
msgstr ""
-#: lib/Controller/User.php:2286 lib/Controller/User.php:2298
+#: lib/Controller/User.php:2303 lib/Controller/User.php:2315
msgid "Access Denied to UserGroup"
msgstr ""
-#: lib/Controller/User.php:2308
+#: lib/Controller/User.php:2325
#, php-format
msgid "%s assigned to User Groups"
msgstr ""
-#: lib/Controller/User.php:2333
+#: lib/Controller/User.php:2350
#, php-format
msgid "%s has started the welcome tutorial"
msgstr ""
-#: lib/Controller/User.php:2357
+#: lib/Controller/User.php:2374
#, php-format
msgid "%s has seen the welcome tutorial"
msgstr ""
@@ -22375,6 +23358,35 @@ msgstr ""
msgid "Access to %s revoked"
msgstr ""
+#: lib/Controller/WidgetData.php:148
+msgid "Added data for Widget"
+msgstr ""
+
+#: lib/Controller/WidgetData.php:212 lib/Controller/WidgetData.php:274
+#: lib/Controller/WidgetData.php:358
+msgid "This widget data does not belong to this widget"
+msgstr ""
+
+#: lib/Controller/WidgetData.php:223
+msgid "Edited data for Widget"
+msgstr ""
+
+#: lib/Controller/WidgetData.php:281
+msgid "Deleted"
+msgstr ""
+
+#: lib/Controller/WidgetData.php:367
+msgid "Updated the display order for data on Widget"
+msgstr ""
+
+#: lib/Controller/WidgetData.php:385
+msgid "This is not a data widget"
+msgstr ""
+
+#: lib/Controller/WidgetData.php:389
+msgid "Fallback data is not expected for this Widget"
+msgstr ""
+
#: lib/Controller/Region.php:534
msgid "No regions present"
msgstr ""
@@ -22417,158 +23429,158 @@ msgstr ""
msgid "OpenOOH specification missing"
msgstr ""
-#: lib/Controller/Display.php:747 lib/Controller/Display.php:1320
+#: lib/Controller/Display.php:748 lib/Controller/Display.php:1321
msgid " (Default)"
msgstr ""
-#: lib/Controller/Display.php:771
+#: lib/Controller/Display.php:772
msgid "Display is up to date"
msgstr ""
-#: lib/Controller/Display.php:772
+#: lib/Controller/Display.php:773
msgid "Display is downloading new files"
msgstr ""
-#: lib/Controller/Display.php:773
+#: lib/Controller/Display.php:774
msgid "Display is out of date but has not yet checked in with the server"
msgstr ""
-#: lib/Controller/Display.php:774
+#: lib/Controller/Display.php:775
msgid "Unknown Display Status"
msgstr ""
-#: lib/Controller/Display.php:779
+#: lib/Controller/Display.php:780
msgid "Display is fully licensed"
msgstr ""
-#: lib/Controller/Display.php:780
+#: lib/Controller/Display.php:781
msgid "Display is on a trial licence"
msgstr ""
-#: lib/Controller/Display.php:781
+#: lib/Controller/Display.php:782
msgid "Display is not licensed"
msgstr ""
-#: lib/Controller/Display.php:787
+#: lib/Controller/Display.php:788
msgid "The status will be updated with each Commercial Licence check"
msgstr ""
-#: lib/Controller/Display.php:828
+#: lib/Controller/Display.php:829
msgid "Manage"
msgstr ""
-#: lib/Controller/Display.php:889
+#: lib/Controller/Display.php:890
msgid "Authorise"
msgstr ""
-#: lib/Controller/Display.php:967 lib/Controller/Display.php:982
+#: lib/Controller/Display.php:968 lib/Controller/Display.php:983
msgid "Check Licence"
msgstr ""
-#: lib/Controller/Display.php:1017
+#: lib/Controller/Display.php:1018
msgid "Jump to Scheduled Layouts"
msgstr ""
-#: lib/Controller/Display.php:1119
+#: lib/Controller/Display.php:1120
msgid "Purge All"
msgstr ""
-#: lib/Controller/Display.php:1250
+#: lib/Controller/Display.php:1251
msgid "Set Bandwidth"
msgstr ""
-#: lib/Controller/Display.php:1265
+#: lib/Controller/Display.php:1266
msgid "Cancel CMS Transfer"
msgstr ""
-#: lib/Controller/Display.php:1326 lib/Controller/Display.php:1328
+#: lib/Controller/Display.php:1327 lib/Controller/Display.php:1329
msgid "Unknown"
msgstr ""
-#: lib/Controller/Display.php:1956
+#: lib/Controller/Display.php:1966
msgid "Cannot delete a Lead Display of a Sync Group"
msgstr ""
-#: lib/Controller/Display.php:2100
+#: lib/Controller/Display.php:2110
msgid "Displays Updated"
msgstr ""
-#: lib/Controller/Display.php:2158
+#: lib/Controller/Display.php:2168
#, php-format
msgid "%s assigned to Display Groups"
msgstr ""
-#: lib/Controller/Display.php:2246
+#: lib/Controller/Display.php:2256
msgid "once it has connected for the first time"
msgstr ""
-#: lib/Controller/Display.php:2313 lib/Controller/Display.php:3028
-#: lib/Controller/Display.php:3152
+#: lib/Controller/Display.php:2323 lib/Controller/Display.php:3041
+#: lib/Controller/Display.php:3165
#, php-format
msgid "Request sent for %s"
msgstr ""
-#: lib/Controller/Display.php:2341 lib/Controller/Display.php:2393
+#: lib/Controller/Display.php:2351 lib/Controller/Display.php:2403
msgid ""
"This display has no mac address recorded against it yet. Make sure the "
"display is running."
msgstr ""
-#: lib/Controller/Display.php:2416
+#: lib/Controller/Display.php:2426
#, php-format
msgid "Wake on Lan sent for %s"
msgstr ""
-#: lib/Controller/Display.php:2525
+#: lib/Controller/Display.php:2537
#, php-format
msgid "Alert for Display %s"
msgstr ""
-#: lib/Controller/Display.php:2527
+#: lib/Controller/Display.php:2539
#, php-format
msgid "Display ID %d is offline since %s."
msgstr ""
-#: lib/Controller/Display.php:2626
+#: lib/Controller/Display.php:2639
#, php-format
msgid "Authorised set to %d for %s"
msgstr ""
-#: lib/Controller/Display.php:2727
+#: lib/Controller/Display.php:2740
#, php-format
msgid "Default Layout with name %s set for %s"
msgstr ""
-#: lib/Controller/Display.php:2813
+#: lib/Controller/Display.php:2826
msgid "Provided CMS URL is invalid"
msgstr ""
-#: lib/Controller/Display.php:2817
+#: lib/Controller/Display.php:2830
msgid "New CMS URL can have maximum of 1000 characters"
msgstr ""
-#: lib/Controller/Display.php:2821
+#: lib/Controller/Display.php:2834
msgid "Provided CMS Key is invalid"
msgstr ""
-#: lib/Controller/Display.php:2829
+#: lib/Controller/Display.php:2842
msgid "Invalid Two Factor Authentication Code"
msgstr ""
-#: lib/Controller/Display.php:2879
+#: lib/Controller/Display.php:2892
#, php-format
msgid "Cancelled CMS Transfer for %s"
msgstr ""
-#: lib/Controller/Display.php:2917
+#: lib/Controller/Display.php:2930
msgid "Code cannot be empty"
msgstr ""
-#: lib/Controller/Display.php:2945
+#: lib/Controller/Display.php:2958
msgid "Provided user_code does not exist"
msgstr ""
-#: lib/Controller/Display.php:3021 lib/Controller/Display.php:3145
+#: lib/Controller/Display.php:3034 lib/Controller/Display.php:3158
msgid "XMR is not configured for this Display"
msgstr ""
@@ -22576,12 +23588,12 @@ msgstr ""
msgid "The Library Location you have picked is not writeable"
msgstr ""
-#: lib/Controller/Settings.php:335 lib/Entity/Display.php:754
+#: lib/Controller/Settings.php:335 lib/Entity/Display.php:815
#: lib/Widget/Validator/DisplayOrGeoValidator.php:55
msgid "The latitude entered is not valid."
msgstr ""
-#: lib/Controller/Settings.php:345 lib/Entity/Display.php:750
+#: lib/Controller/Settings.php:345 lib/Entity/Display.php:811
#: lib/Widget/Validator/DisplayOrGeoValidator.php:60
msgid "The longitude entered is not valid."
msgstr ""
@@ -22590,7 +23602,7 @@ msgstr ""
msgid "Settings Updated"
msgstr ""
-#: lib/Controller/AuditLog.php:172
+#: lib/Controller/AuditLog.php:161
msgid "Please provide a from/to date."
msgstr ""
@@ -22598,6 +23610,30 @@ msgstr ""
msgid "Added Menu Board Product"
msgstr ""
+#: lib/Controller/Developer.php:110
+msgid "Export XML"
+msgstr ""
+
+#: lib/Controller/Developer.php:248 lib/Controller/Developer.php:322
+msgid "Please supply a unique template ID"
+msgstr ""
+
+#: lib/Controller/Developer.php:251 lib/Controller/Developer.php:325
+msgid "Please supply a title"
+msgstr ""
+
+#: lib/Controller/Developer.php:254 lib/Controller/Developer.php:328
+msgid "Please supply a data type"
+msgstr ""
+
+#: lib/Controller/Developer.php:258 lib/Controller/Developer.php:332
+msgid "Please select relevant editor which should show this Template"
+msgstr ""
+
+#: lib/Controller/Developer.php:301
+msgid "Added"
+msgstr ""
+
#: lib/Controller/PlayerSoftware.php:469
msgid "File available only for SSSP displays"
msgstr ""
@@ -22614,82 +23650,86 @@ msgstr ""
msgid "Please enter author name"
msgstr ""
-#: lib/Controller/Schedule.php:363
+#: lib/Controller/Schedule.php:319
#, php-format
msgid "%s scheduled on sync group %s"
msgstr ""
-#: lib/Controller/Schedule.php:369 lib/Controller/Schedule.php:383
-#: lib/Entity/Schedule.php:1842 lib/Entity/Schedule.php:1854
+#: lib/Controller/Schedule.php:325 lib/Controller/Schedule.php:339
+#: lib/Entity/Schedule.php:1956 lib/Entity/Schedule.php:1968
#, php-format
msgid "%s scheduled on %s"
msgstr ""
-#: lib/Controller/Schedule.php:378 lib/Controller/Schedule.php:636
-#: lib/Controller/Schedule.php:2329 lib/Entity/Schedule.php:1851
+#: lib/Controller/Schedule.php:334 lib/Controller/Schedule.php:592
+#: lib/Controller/Schedule.php:2355 lib/Entity/Schedule.php:1965
msgid "Private Item"
msgstr ""
-#: lib/Controller/Schedule.php:389
+#: lib/Controller/Schedule.php:345
#, php-format
msgid " with Share of Voice %d seconds per hour"
msgstr ""
-#: lib/Controller/Schedule.php:398
+#: lib/Controller/Schedule.php:354
#, php-format
msgid ", Repeats every %s %s"
msgstr ""
-#: lib/Controller/Schedule.php:1212 lib/Controller/Schedule.php:1854
+#: lib/Controller/Schedule.php:1120 lib/Controller/Schedule.php:1820
+msgid "Please select a DataSet"
+msgstr ""
+
+#: lib/Controller/Schedule.php:1171 lib/Controller/Schedule.php:1862
msgid "Please enter a from date"
msgstr ""
-#: lib/Controller/Schedule.php:1516 lib/Controller/Schedule.php:2102
+#: lib/Controller/Schedule.php:1497 lib/Controller/Schedule.php:2125
msgid "Deleted Event"
msgstr ""
-#: lib/Controller/Schedule.php:1789
+#: lib/Controller/Schedule.php:1784
msgid "Cannot schedule Layout as a Campaign, please select a Campaign instead."
msgstr ""
-#: lib/Controller/Schedule.php:1799
+#: lib/Controller/Schedule.php:1794
msgid ""
"Cannot schedule Campaign in selected event type, please select a Layout "
"instead."
msgstr ""
-#: lib/Controller/Schedule.php:2021
+#: lib/Controller/Schedule.php:2044
msgid "Edited Event"
msgstr ""
-#: lib/Controller/Schedule.php:2502 lib/Factory/RequiredFileFactory.php:414
+#: lib/Controller/Schedule.php:2528 lib/Factory/RequiredFileFactory.php:414
msgid "Unknown type"
msgstr ""
-#: lib/Controller/UserGroup.php:639
+#: lib/Controller/UserGroup.php:740
msgid "Features form requested without a User Group"
msgstr ""
-#: lib/Controller/UserGroup.php:654
+#: lib/Controller/UserGroup.php:755
#, php-format
msgid "Features updated for %s"
msgstr ""
-#: lib/Controller/UserGroup.php:761 lib/Controller/UserGroup.php:777
+#: lib/Controller/UserGroup.php:862 lib/Controller/UserGroup.php:878
msgid "Access Denied to User"
msgstr ""
-#: lib/Controller/UserGroup.php:786 lib/Controller/UserGroup.php:862
+#: lib/Controller/UserGroup.php:887 lib/Controller/UserGroup.php:963
#, php-format
msgid "Membership set for %s"
msgstr ""
-#: lib/Controller/UserGroup.php:788
+#: lib/Controller/UserGroup.php:889
#, php-format
msgid "No changes for %s"
msgstr ""
-#: lib/Controller/UserGroup.php:989
+#: lib/Controller/UserGroup.php:1090
#, php-format
msgid "Copied %s"
msgstr ""
@@ -22722,6 +23762,10 @@ msgstr ""
msgid "Saving into root folder is disabled, please select a different folder"
msgstr ""
+#: lib/XMR/ScheduleCriteriaUpdateAction.php:62
+msgid "Criteria updates not provided."
+msgstr ""
+
#: lib/XMR/OverlayLayoutAction.php:65
msgid "Layout Details not provided"
msgstr ""
@@ -22750,12 +23794,12 @@ msgstr ""
msgid "Unexpected Error, please contact support."
msgstr ""
-#: lib/Middleware/LayoutLock.php:120
+#: lib/Middleware/LayoutLock.php:134
#, php-format
msgid "Layout Lock Middleware called with incorrect route %s"
msgstr ""
-#: lib/Middleware/LayoutLock.php:167
+#: lib/Middleware/LayoutLock.php:189
#, php-format
msgid "Layout ID %d is locked by another User! Lock expires on: %s"
msgstr ""
@@ -22795,14 +23839,27 @@ msgid ""
"Time provisioning is disabled"
msgstr ""
-#: lib/Middleware/ApiAuthorization.php:105
+#: lib/Middleware/ApiAuthorization.php:110
msgid "Sorry this account does not exist or cannot be authenticated."
msgstr ""
-#: lib/Middleware/ApiAuthorization.php:154
+#: lib/Middleware/ApiAuthorization.php:162
msgid "Access to this route is denied for this scope"
msgstr ""
+#: lib/Event/DataConnectorSourceRequestEvent.php:49
+msgid "User-Defined JavaScript"
+msgstr ""
+
+#: lib/Event/ScheduleCriteriaRequestEvent.php:72
+#: lib/Event/ScheduleCriteriaRequestEvent.php:110
+msgid "Current type is not set."
+msgstr ""
+
+#: lib/Event/ScheduleCriteriaRequestEvent.php:86
+msgid "Invalid input type."
+msgstr ""
+
#: lib/Entity/Task.php:102
msgid "No config file recorded for task. Please recreate."
msgstr ""
@@ -22831,8 +23888,8 @@ msgstr ""
msgid "Please enter a display group name"
msgstr ""
-#: lib/Entity/DisplayGroup.php:589 lib/Entity/DataSet.php:778
-#: lib/Entity/Layout.php:1094
+#: lib/Entity/DisplayGroup.php:589 lib/Entity/DataSet.php:878
+#: lib/Entity/Layout.php:1095
msgid "Description can not be longer than 254 characters"
msgstr ""
@@ -22850,47 +23907,53 @@ msgstr ""
msgid "This assignment creates a circular reference"
msgstr ""
-#: lib/Entity/DataSet.php:400 lib/Entity/DataSet.php:423
+#: lib/Entity/DataSet.php:413 lib/Entity/DataSet.php:436
#, php-format
msgid "Column %s not found"
msgstr ""
-#: lib/Entity/DataSet.php:457
+#: lib/Entity/DataSet.php:470
msgid "Unknown Column "
msgstr ""
-#: lib/Entity/DataSet.php:774
+#: lib/Entity/DataSet.php:874
msgid "Name must be between 1 and 50 characters"
msgstr ""
-#: lib/Entity/DataSet.php:784
+#: lib/Entity/DataSet.php:884
msgid "A remote DataSet must have a URI."
msgstr ""
-#: lib/Entity/DataSet.php:788
+#: lib/Entity/DataSet.php:888
msgid "DataSet row limit cannot be larger than the CMS dataSet row limit"
msgstr ""
-#: lib/Entity/DataSet.php:796
+#: lib/Entity/DataSet.php:896
#, php-format
msgid "There is already dataSet called %s. Please choose another name."
msgstr ""
-#: lib/Entity/DataSet.php:942
+#: lib/Entity/DataSet.php:1042
msgid ""
"Cannot delete because this DataSet is set as dependent DataSet for another "
"DataSet"
msgstr ""
-#: lib/Entity/DataSet.php:953
+#: lib/Entity/DataSet.php:1053
msgid "Cannot delete because DataSet is in use on one or more Layouts."
msgstr ""
-#: lib/Entity/Notification.php:225
+#: lib/Entity/DataSet.php:1062
+msgid ""
+"Cannot delete because DataSet is in use on one or more Data Connector "
+"schedules."
+msgstr ""
+
+#: lib/Entity/Notification.php:227
msgid "Please provide a subject"
msgstr ""
-#: lib/Entity/Notification.php:228
+#: lib/Entity/Notification.php:231
msgid "Please provide a body"
msgstr ""
@@ -22899,7 +23962,7 @@ msgid "Invalid type"
msgstr ""
#: lib/Entity/Campaign.php:480 lib/Entity/MenuBoard.php:249
-#: lib/Entity/SyncGroup.php:279 lib/Entity/MenuBoardCategory.php:167
+#: lib/Entity/SyncGroup.php:289 lib/Entity/MenuBoardCategory.php:167
#: lib/Entity/MenuBoardProduct.php:151 lib/Entity/DayPart.php:160
msgid "Name cannot be empty"
msgstr ""
@@ -22976,7 +24039,19 @@ msgstr ""
msgid "Please select a Widget"
msgstr ""
-#: lib/Entity/Module.php:534
+#: lib/Entity/ScheduleCriteria.php:62
+msgid "Criteria must be attached to an event"
+msgstr ""
+
+#: lib/Entity/ScheduleCriteria.php:66
+msgid "Please select a metric"
+msgstr ""
+
+#: lib/Entity/ScheduleCriteria.php:70
+msgid "Please enter a valid condition"
+msgstr ""
+
+#: lib/Entity/Module.php:541
msgid "Default Duration is a required field."
msgstr ""
@@ -23015,24 +24090,32 @@ msgstr ""
msgid "This Playlist belongs to a Region, please delete the Region instead."
msgstr ""
-#: lib/Entity/ReportSchedule.php:114 lib/Entity/DisplayProfile.php:399
+#: lib/Entity/ReportSchedule.php:114 lib/Entity/DisplayProfile.php:403
msgid "Missing name"
msgstr ""
-#: lib/Entity/SyncGroup.php:283
+#: lib/Entity/SyncGroup.php:293
msgid "Sync Publisher Port cannot be empty"
msgstr ""
-#: lib/Entity/SyncGroup.php:287
+#: lib/Entity/SyncGroup.php:297
msgid "Please select lead Display for this sync group"
msgstr ""
-#: lib/Entity/SyncGroup.php:297
+#: lib/Entity/SyncGroup.php:301
+msgid "Switch Delay value cannot be negative"
+msgstr ""
+
+#: lib/Entity/SyncGroup.php:305
+msgid "Video Pause Delay value cannot be negative"
+msgstr ""
+
+#: lib/Entity/SyncGroup.php:315
msgid ""
"Please make sure to select a Layout for all Displays in this Sync Group."
msgstr ""
-#: lib/Entity/SyncGroup.php:396
+#: lib/Entity/SyncGroup.php:420
#, php-format
msgid "Display %s already belongs to a different sync group ID %d"
msgstr ""
@@ -23051,91 +24134,95 @@ msgid ""
"provide Tag value in the dedicated field."
msgstr ""
-#: lib/Entity/Media.php:291
+#: lib/Entity/Media.php:292
#, php-format
msgid "Copy of %s on %s"
msgstr ""
-#: lib/Entity/Media.php:378
+#: lib/Entity/Media.php:379
msgid "Unknown Media Type"
msgstr ""
-#: lib/Entity/Media.php:382
+#: lib/Entity/Media.php:383
msgid "The name must be between 1 and 100 characters"
msgstr ""
-#: lib/Entity/Media.php:403
+#: lib/Entity/Media.php:408
msgid "Media you own already has this name. Please choose another."
msgstr ""
-#: lib/Entity/Media.php:718
+#: lib/Entity/Media.php:753
msgid "Problem copying file in the Library Folder"
msgstr ""
-#: lib/Entity/Media.php:724
+#: lib/Entity/Media.php:759
msgid "Problem moving uploaded file into the Library Folder"
msgstr ""
-#: lib/Entity/Media.php:742
+#: lib/Entity/Media.php:777
msgid "Problem moving downloaded file into the Library Folder"
msgstr ""
-#: lib/Entity/Media.php:749
+#: lib/Entity/Media.php:784
msgid "Problem copying provided file into the Library Folder"
msgstr ""
-#: lib/Entity/DataSetColumn.php:205
+#: lib/Entity/DataSetColumn.php:206
msgid "Missing dataSetId"
msgstr ""
-#: lib/Entity/DataSetColumn.php:208
+#: lib/Entity/DataSetColumn.php:209
msgid "Missing dataTypeId"
msgstr ""
-#: lib/Entity/DataSetColumn.php:211
+#: lib/Entity/DataSetColumn.php:212
msgid "Missing dataSetColumnTypeId"
msgstr ""
-#: lib/Entity/DataSetColumn.php:214
+#: lib/Entity/DataSetColumn.php:215
msgid "Please provide a column heading."
msgstr ""
-#: lib/Entity/DataSetColumn.php:222
+#: lib/Entity/DataSetColumn.php:223
#, php-format
msgid "Please provide an alternative column heading %s can not be used."
msgstr ""
-#: lib/Entity/DataSetColumn.php:228
+#: lib/Entity/DataSetColumn.php:229
msgid "Please enter a valid formula"
msgstr ""
-#: lib/Entity/DataSetColumn.php:236
+#: lib/Entity/DataSetColumn.php:237
msgid "A column already exists with this name, please choose another"
msgstr ""
-#: lib/Entity/DataSetColumn.php:243
+#: lib/Entity/DataSetColumn.php:244
msgid "Provided Data Type doesn't exist"
msgstr ""
-#: lib/Entity/DataSetColumn.php:251
+#: lib/Entity/DataSetColumn.php:252
msgid "Remote field is required when the column type is set to Remote"
msgstr ""
-#: lib/Entity/DataSetColumn.php:254
+#: lib/Entity/DataSetColumn.php:255
msgid "Provided DataSet Column Type doesn't exist"
msgstr ""
-#: lib/Entity/DataSetColumn.php:288
+#: lib/Entity/DataSetColumn.php:289
msgid ""
"New list content value is invalid as it does not include values for existing "
"data"
msgstr ""
-#: lib/Entity/DataSetColumn.php:314
+#: lib/Entity/DataSetColumn.php:312
+msgid "Formula contains disallowed keywords."
+msgstr ""
+
+#: lib/Entity/DataSetColumn.php:327
msgid "Provided formula is invalid"
msgstr ""
-#: lib/Entity/DataSetColumn.php:441
+#: lib/Entity/DataSetColumn.php:454
msgid "Existing data is incompatible with your new configuration"
msgstr ""
@@ -23152,53 +24239,53 @@ msgstr ""
msgid "Sorry we cannot delete a system connector."
msgstr ""
-#: lib/Entity/Layout.php:598
+#: lib/Entity/Layout.php:599
msgid "Cannot find region"
msgstr ""
-#: lib/Entity/Layout.php:616
+#: lib/Entity/Layout.php:617
msgid "Cannot find drawer region"
msgstr ""
-#: lib/Entity/Layout.php:637
+#: lib/Entity/Layout.php:638
msgid "Cannot find Region or Drawer"
msgstr ""
-#: lib/Entity/Layout.php:987
+#: lib/Entity/Layout.php:988
msgid "This layout is used as the global default and cannot be deleted"
msgstr ""
-#: lib/Entity/Layout.php:1081
+#: lib/Entity/Layout.php:1082
msgid "The layout dimensions cannot be empty"
msgstr ""
-#: lib/Entity/Layout.php:1087
+#: lib/Entity/Layout.php:1088
msgid "Layout Name must be between 1 and 50 characters"
msgstr ""
-#: lib/Entity/Layout.php:1115
+#: lib/Entity/Layout.php:1116
#, php-format
msgid "You already own a Layout called '%s'. Please choose another name."
msgstr ""
-#: lib/Entity/Layout.php:1123 lib/Entity/Region.php:421
+#: lib/Entity/Layout.php:1124 lib/Entity/Region.php:421
msgid "Layer must be 0 or a positive number"
msgstr ""
-#: lib/Entity/Layout.php:1129
+#: lib/Entity/Layout.php:1130
msgid "Please use only alphanumeric characters in Layout Code identifier"
msgstr ""
-#: lib/Entity/Layout.php:1141
+#: lib/Entity/Layout.php:1142
msgid "Layout with provided code already exists"
msgstr ""
-#: lib/Entity/Layout.php:1264
+#: lib/Entity/Layout.php:1265
#, php-format
msgid "%s set as the Layout background image is pending conversion"
msgstr ""
-#: lib/Entity/Layout.php:1272
+#: lib/Entity/Layout.php:1273
#, php-format
msgid ""
"%s set as the Layout background image is too large. Please ensure that none "
@@ -23206,108 +24293,108 @@ msgid ""
"edge. Please check the allowed Resize Limit in Administration -> Settings"
msgstr ""
-#: lib/Entity/Layout.php:1835
+#: lib/Entity/Layout.php:1836
#, php-format
msgid "%s is pending conversion"
msgstr ""
-#: lib/Entity/Layout.php:1840
+#: lib/Entity/Layout.php:1841
#, php-format
msgid ""
"%s is too large. Please ensure that none of the images in your layout are "
"larger than your Resize Limit on their longest edge."
msgstr ""
-#: lib/Entity/Layout.php:1852
+#: lib/Entity/Layout.php:1853
msgid "Misconfigured Playlist"
msgstr ""
-#: lib/Entity/Layout.php:2246
+#: lib/Entity/Layout.php:2266
#, php-format
msgid "There is an error with this Layout: %s"
msgstr ""
-#: lib/Entity/Layout.php:2325 lib/Entity/Layout.php:2454
+#: lib/Entity/Layout.php:2345 lib/Entity/Layout.php:2474
msgid "Not a Draft"
msgstr ""
-#: lib/Entity/Layout.php:2540
+#: lib/Entity/Layout.php:2560
msgid "Draft Layouts must have a parent"
msgstr ""
-#: lib/Entity/Layout.php:2675 lib/Listener/WidgetListener.php:199
+#: lib/Entity/Layout.php:2695 lib/Listener/WidgetListener.php:199
msgid "Cannot add the same SubPlaylist twice."
msgstr ""
-#: lib/Entity/DisplayProfile.php:402
+#: lib/Entity/DisplayProfile.php:406
msgid "Missing type"
msgstr ""
-#: lib/Entity/DisplayProfile.php:406
+#: lib/Entity/DisplayProfile.php:410
msgid "Concurrent downloads must be a positive number"
msgstr ""
-#: lib/Entity/DisplayProfile.php:410
+#: lib/Entity/DisplayProfile.php:414
msgid "Maximum Region Count must be a positive number"
msgstr ""
-#: lib/Entity/DisplayProfile.php:431
+#: lib/Entity/DisplayProfile.php:435
msgid "Only 1 default per display type is allowed."
msgstr ""
-#: lib/Entity/DisplayProfile.php:463
+#: lib/Entity/DisplayProfile.php:467
msgid "This Display Profile is currently assigned to one or more Displays"
msgstr ""
-#: lib/Entity/DisplayProfile.php:467
+#: lib/Entity/DisplayProfile.php:471
msgid "Cannot delete default Display Profile."
msgstr ""
-#: lib/Entity/User.php:474
+#: lib/Entity/User.php:518
msgid "User Option not found"
msgstr ""
-#: lib/Entity/User.php:564
+#: lib/Entity/User.php:608
msgid "Please enter a Password."
msgstr ""
-#: lib/Entity/User.php:699
+#: lib/Entity/User.php:744
msgid "User name must be between 1 and 50 characters."
msgstr ""
-#: lib/Entity/User.php:702 lib/Entity/UserGroup.php:238
+#: lib/Entity/User.php:747 lib/Entity/UserGroup.php:275
msgid "Library Quota must be a whole number."
msgstr ""
-#: lib/Entity/User.php:705
+#: lib/Entity/User.php:750
msgid "Please enter a valid email address or leave it empty."
msgstr ""
-#: lib/Entity/User.php:711
+#: lib/Entity/User.php:756
msgid "There is already a user with this name. Please choose another."
msgstr ""
-#: lib/Entity/User.php:716
+#: lib/Entity/User.php:761
msgid "This User is set as System User and needs to be super admin"
msgstr ""
-#: lib/Entity/User.php:720
+#: lib/Entity/User.php:765
msgid "This User is set as System User and cannot be retired"
msgstr ""
-#: lib/Entity/User.php:725
+#: lib/Entity/User.php:770
msgid "Library Quota must be a positive number."
msgstr ""
-#: lib/Entity/User.php:1076
+#: lib/Entity/User.php:1134
msgid "Provided Object not under permission management"
msgstr ""
-#: lib/Entity/User.php:1332
+#: lib/Entity/User.php:1390
msgid "You have exceeded your library quota"
msgstr ""
-#: lib/Entity/User.php:1350
+#: lib/Entity/User.php:1408
msgid "Your password does not meet the required complexity"
msgstr ""
@@ -23331,44 +24418,44 @@ msgstr ""
msgid "The Region dimensions cannot be empty or negative"
msgstr ""
-#: lib/Entity/Display.php:697
+#: lib/Entity/Display.php:758
msgid "Can not have a display without a name"
msgstr ""
-#: lib/Entity/Display.php:701
+#: lib/Entity/Display.php:762
msgid "Can not have a display without a hardware key"
msgstr ""
-#: lib/Entity/Display.php:706
+#: lib/Entity/Display.php:767
msgid ""
"Wake on Lan is enabled, but you have not specified a time to wake the display"
msgstr ""
-#: lib/Entity/Display.php:713
+#: lib/Entity/Display.php:774
msgid "BroadCast Address is not a valid IP Address"
msgstr ""
-#: lib/Entity/Display.php:721
+#: lib/Entity/Display.php:782
msgid "CIDR subnet mask is not a number within the range of 0 to 32."
msgstr ""
-#: lib/Entity/Display.php:735
+#: lib/Entity/Display.php:796
msgid ""
"Pattern of secureOn-password is not \"xx-xx-xx-xx-xx-xx\" (x = digit or "
"CAPITAL letter)"
msgstr ""
-#: lib/Entity/Display.php:759
+#: lib/Entity/Display.php:820
msgid "Bandwidth limit must be a whole number greater than 0."
msgstr ""
-#: lib/Entity/Display.php:782
+#: lib/Entity/Display.php:843
msgid ""
"Please set a Default Layout directly on this Display or in CMS Administrator "
"Settings"
msgstr ""
-#: lib/Entity/Display.php:869
+#: lib/Entity/Display.php:930
#, php-format
msgid "You have exceeded your maximum number of authorised displays. %d"
msgstr ""
@@ -23377,139 +24464,147 @@ msgstr ""
msgid "Calories must be a whole number between 0 and 32767"
msgstr ""
-#: lib/Entity/Command.php:213
+#: lib/Entity/Command.php:241
msgid "Please enter a command name between 1 and 254 characters"
msgstr ""
-#: lib/Entity/Command.php:218
+#: lib/Entity/Command.php:248
msgid ""
"Please enter a code between 1 and 50 characters containing only alpha "
"characters and no spaces"
msgstr ""
-#: lib/Entity/Command.php:223
+#: lib/Entity/Command.php:255
msgid "Please enter a description between 1 and 1000 characters"
msgstr ""
-#: lib/Entity/Schedule.php:574
+#: lib/Entity/Schedule.php:642
msgid "No display groups selected"
msgstr ""
-#: lib/Entity/Schedule.php:584
+#: lib/Entity/Schedule.php:652
msgid "The from date is too far in the past."
msgstr ""
-#: lib/Entity/Schedule.php:589
+#: lib/Entity/Schedule.php:657
msgid "Name cannot be longer than 50 characters."
msgstr ""
-#: lib/Entity/Schedule.php:603
+#: lib/Entity/Schedule.php:671
msgid "Please select a Campaign/Layout for this event."
msgstr ""
-#: lib/Entity/Schedule.php:610 lib/Entity/Schedule.php:670
+#: lib/Entity/Schedule.php:678 lib/Entity/Schedule.php:738
msgid "Can not have an end time earlier than your start time"
msgstr ""
-#: lib/Entity/Schedule.php:631 lib/Entity/Schedule.php:649
+#: lib/Entity/Schedule.php:699 lib/Entity/Schedule.php:717
msgid "Please select a Command for this event."
msgstr ""
-#: lib/Entity/Schedule.php:637
+#: lib/Entity/Schedule.php:705
msgid "Please select a Action Type for this event."
msgstr ""
-#: lib/Entity/Schedule.php:642
+#: lib/Entity/Schedule.php:710
msgid "Please select a Action trigger code for this event."
msgstr ""
-#: lib/Entity/Schedule.php:654
+#: lib/Entity/Schedule.php:722
msgid "Please select a Layout code for this event."
msgstr ""
-#: lib/Entity/Schedule.php:663
+#: lib/Entity/Schedule.php:731
msgid "Please select a Sync Group for this event."
msgstr ""
-#: lib/Entity/Schedule.php:677
+#: lib/Entity/Schedule.php:745
+msgid "Please select a DataSet for this event."
+msgstr ""
+
+#: lib/Entity/Schedule.php:750
msgid "Please select the Event Type"
msgstr ""
-#: lib/Entity/Schedule.php:683
+#: lib/Entity/Schedule.php:756
msgid "Repeats selection is invalid for Always or Daypart events"
msgstr ""
-#: lib/Entity/Schedule.php:689
+#: lib/Entity/Schedule.php:762
msgid "Display Order must be 0 or a positive number"
msgstr ""
-#: lib/Entity/Schedule.php:693
+#: lib/Entity/Schedule.php:766
msgid "Priority must be 0 or a positive number"
msgstr ""
-#: lib/Entity/Schedule.php:700
+#: lib/Entity/Schedule.php:773
msgid "Repeat every must be a positive number"
msgstr ""
-#: lib/Entity/Schedule.php:735
+#: lib/Entity/Schedule.php:808
msgid "Unknown repeat type"
msgstr ""
-#: lib/Entity/Schedule.php:740
+#: lib/Entity/Schedule.php:813
msgid ""
"An event cannot repeat more often than the interval between its start and "
"end date"
msgstr ""
-#: lib/Entity/Schedule.php:1092
+#: lib/Entity/Schedule.php:1206
msgid "Cache pool not available"
msgstr ""
-#: lib/Entity/Schedule.php:1095
+#: lib/Entity/Schedule.php:1209
msgid "Unable to generate schedule, unknown event"
msgstr ""
-#: lib/Entity/Schedule.php:1469 lib/Entity/Schedule.php:1781
+#: lib/Entity/Schedule.php:1583 lib/Entity/Schedule.php:1895
msgid "Invalid recurrence type"
msgstr ""
-#: lib/Entity/Schedule.php:1812
+#: lib/Entity/Schedule.php:1926
msgid "reminderDt not found as next event does not exist"
msgstr ""
-#: lib/Entity/Schedule.php:1970
+#: lib/Entity/Schedule.php:2084
msgid "Overlay Layout"
msgstr ""
-#: lib/Entity/Schedule.php:1971
+#: lib/Entity/Schedule.php:2085
msgid "Interrupt Layout"
msgstr ""
-#: lib/Entity/Schedule.php:1973
+#: lib/Entity/Schedule.php:2087
msgid "Action"
msgstr ""
-#: lib/Entity/Schedule.php:1974
+#: lib/Entity/Schedule.php:2088
msgid "Video/Image"
msgstr ""
-#: lib/Entity/Schedule.php:1986
+#: lib/Entity/Schedule.php:2090
+msgid "Data Connector"
+msgstr ""
+
+#: lib/Entity/Schedule.php:2101
msgid "Synchronised Event"
msgstr ""
-#: lib/Entity/Schedule.php:2002
+#: lib/Entity/Schedule.php:2117
msgid "Synchronised Mirrored Content"
msgstr ""
-#: lib/Entity/Schedule.php:2003
+#: lib/Entity/Schedule.php:2118
msgid "Synchronised Content"
msgstr ""
-#: lib/Entity/UserGroup.php:235
+#: lib/Entity/UserGroup.php:271
msgid "User Group Name cannot be empty."
msgstr ""
-#: lib/Entity/UserGroup.php:244
+#: lib/Entity/UserGroup.php:283
msgid "There is already a group with this name. Please choose another."
msgstr ""
@@ -23522,6 +24617,30 @@ msgstr ""
msgid "Exception Start/End time for %s are empty or in an incorrect format"
msgstr ""
+#: lib/Entity/DisplayEvent.php:215
+msgid "Display Up/down"
+msgstr ""
+
+#: lib/Entity/DisplayEvent.php:216
+msgid "App Start"
+msgstr ""
+
+#: lib/Entity/DisplayEvent.php:217
+msgid "Power Cycle"
+msgstr ""
+
+#: lib/Entity/DisplayEvent.php:218
+msgid "Network Cycle"
+msgstr ""
+
+#: lib/Entity/DisplayEvent.php:219
+msgid "TV Monitoring"
+msgstr ""
+
+#: lib/Entity/DisplayEvent.php:220
+msgid "Player Fault"
+msgstr ""
+
#: lib/Service/ReportService.php:190
msgid "Get Report By Name: No file to return"
msgstr ""
@@ -23540,12 +24659,12 @@ msgid "Class %s not found"
msgstr ""
#: lib/Service/ReportService.php:299 lib/Service/ReportService.php:336
-#: lib/Factory/LayoutFactory.php:1295
+#: lib/Factory/LayoutFactory.php:1294
msgid "File does not exist"
msgstr ""
#: lib/Service/ReportService.php:305 lib/Service/ReportService.php:342
-#: lib/Factory/LayoutFactory.php:1301
+#: lib/Factory/LayoutFactory.php:1300
msgid "Unable to open ZIP"
msgstr ""
@@ -23772,7 +24891,7 @@ msgstr ""
msgid "This file size exceeds your environment Max Upload Size %s"
msgstr ""
-#: lib/Service/MediaService.php:309
+#: lib/Service/MediaService.php:313
msgid "Library not writable"
msgstr ""
@@ -23810,24 +24929,24 @@ msgstr ""
msgid "Cannot find saved report"
msgstr ""
-#: lib/Factory/DisplayProfileFactory.php:545
-#: lib/Factory/DisplayProfileFactory.php:559
-#: lib/Factory/DisplayProfileFactory.php:582
+#: lib/Factory/DisplayProfileFactory.php:550
+#: lib/Factory/DisplayProfileFactory.php:564
+#: lib/Factory/DisplayProfileFactory.php:587
#, php-format
msgid "Custom Display Profile not registered correctly for type %s"
msgstr ""
-#: lib/Factory/DisplayProfileFactory.php:549
+#: lib/Factory/DisplayProfileFactory.php:554
#, php-format
msgid "Custom template not registered correctly for type %s"
msgstr ""
-#: lib/Factory/DisplayProfileFactory.php:563
+#: lib/Factory/DisplayProfileFactory.php:568
#, php-format
msgid "Custom config not registered correctly for type %s"
msgstr ""
-#: lib/Factory/DisplayProfileFactory.php:586
+#: lib/Factory/DisplayProfileFactory.php:591
#, php-format
msgid "Custom fields handling not registered correctly for type %s"
msgstr ""
@@ -23866,38 +24985,38 @@ msgstr ""
msgid "Layout import failed, invalid xlf supplied"
msgstr ""
-#: lib/Factory/LayoutFactory.php:1307
+#: lib/Factory/LayoutFactory.php:1306
msgid "Unable to read layout details from ZIP"
msgstr ""
-#: lib/Factory/LayoutFactory.php:1359
+#: lib/Factory/LayoutFactory.php:1358
msgid ""
"Unsupported format. Missing Layout definitions from layout.json file in the "
"archive."
msgstr ""
-#: lib/Factory/LayoutFactory.php:1483
+#: lib/Factory/LayoutFactory.php:1485
msgid "Empty file in ZIP"
msgstr ""
-#: lib/Factory/LayoutFactory.php:1489
+#: lib/Factory/LayoutFactory.php:1491
msgid "Cannot save media file from ZIP file"
msgstr ""
-#: lib/Factory/LayoutFactory.php:1850
+#: lib/Factory/LayoutFactory.php:1852
#, php-format
msgid "DataSets have different number of columns imported = %d, existing = %d"
msgstr ""
-#: lib/Factory/LayoutFactory.php:1867
+#: lib/Factory/LayoutFactory.php:1869
msgid "DataSets have different column names"
msgstr ""
-#: lib/Factory/LayoutFactory.php:2754 lib/Factory/LayoutFactory.php:2767
+#: lib/Factory/LayoutFactory.php:2762 lib/Factory/LayoutFactory.php:2775
msgid "Draft"
msgstr ""
-#: lib/Factory/LayoutFactory.php:3087
+#: lib/Factory/LayoutFactory.php:3098
msgid "Module not found"
msgstr ""
@@ -23941,51 +25060,51 @@ msgstr ""
msgid "Cannot find schedule reminder"
msgstr ""
-#: lib/Factory/MediaFactory.php:278
+#: lib/Factory/MediaFactory.php:279
msgid "File too large"
msgstr ""
-#: lib/Factory/MediaFactory.php:378 lib/Factory/MediaFactory.php:395
-#: lib/Factory/MediaFactory.php:412 lib/Factory/MediaFactory.php:429
+#: lib/Factory/MediaFactory.php:379 lib/Factory/MediaFactory.php:396
+#: lib/Factory/MediaFactory.php:413 lib/Factory/MediaFactory.php:430
msgid "Cannot find media"
msgstr ""
-#: lib/Factory/ModuleFactory.php:392
+#: lib/Factory/ModuleFactory.php:407
#, php-format
msgid "Extension %s does not match any enabled Module"
msgstr ""
-#: lib/Factory/ModuleFactory.php:444
+#: lib/Factory/ModuleFactory.php:460
msgid "DataType not found"
msgstr ""
-#: lib/Factory/ModuleFactory.php:463 lib/Factory/ModuleFactory.php:482
-#: lib/Factory/ModuleFactory.php:556 lib/Factory/ModuleTemplateFactory.php:120
-#: lib/Factory/ModuleTemplateFactory.php:138
+#: lib/Factory/ModuleFactory.php:524 lib/Factory/ModuleFactory.php:543
+#: lib/Factory/ModuleFactory.php:617 lib/Factory/ModuleTemplateFactory.php:151
+#: lib/Factory/ModuleTemplateFactory.php:169
msgid "Asset not found"
msgstr ""
-#: lib/Factory/ModuleFactory.php:741
+#: lib/Factory/ModuleFactory.php:804
msgid "Invalid legacyType"
msgstr ""
-#: lib/Factory/ModuleFactory.php:760 lib/Factory/ModuleTemplateFactory.php:295
+#: lib/Factory/ModuleFactory.php:823 lib/Factory/ModuleTemplateFactory.php:484
msgid "Invalid assets"
msgstr ""
-#: lib/Factory/ModuleFactory.php:776
+#: lib/Factory/ModuleFactory.php:839
msgid "Invalid settings"
msgstr ""
-#: lib/Factory/ModuleFactory.php:820 lib/Factory/ModuleTemplateFactory.php:268
+#: lib/Factory/ModuleFactory.php:883 lib/Factory/ModuleTemplateFactory.php:457
msgid "Invalid properties"
msgstr ""
-#: lib/Factory/ModuleFactory.php:828 lib/Factory/ModuleTemplateFactory.php:277
+#: lib/Factory/ModuleFactory.php:891 lib/Factory/ModuleTemplateFactory.php:466
msgid "Invalid property groups"
msgstr ""
-#: lib/Factory/ModuleFactory.php:844 lib/Factory/ModuleTemplateFactory.php:286
+#: lib/Factory/ModuleFactory.php:907 lib/Factory/ModuleTemplateFactory.php:475
msgid "Invalid stencils"
msgstr ""
@@ -23999,17 +25118,30 @@ msgstr ""
msgid "Cannot find playlist"
msgstr ""
+#: lib/Factory/WidgetDataFactory.php:61
+msgid "Missing ID"
+msgstr ""
+
+#: lib/Factory/WidgetDataFactory.php:81 lib/Factory/WidgetDataFactory.php:102
+msgid "Missing Widget ID"
+msgstr ""
+
#: lib/Factory/ModuleTemplateFactory.php:71
#, php-format
msgid "%s not found for %s"
msgstr ""
-#: lib/Factory/ModuleTemplateFactory.php:87
+#: lib/Factory/ModuleTemplateFactory.php:83
+#, php-format
+msgid "Template not found for %s"
+msgstr ""
+
+#: lib/Factory/ModuleTemplateFactory.php:102
#, php-format
msgid "Template not found for %s and %s"
msgstr ""
-#: lib/Factory/ModuleTemplateFactory.php:259
+#: lib/Factory/ModuleTemplateFactory.php:448
msgid "Invalid Extends"
msgstr ""
@@ -24021,50 +25153,50 @@ msgstr ""
msgid "Menu Board not found"
msgstr ""
-#: lib/Factory/DataSetFactory.php:430
+#: lib/Factory/DataSetFactory.php:448
#, php-format
msgid ""
"The request %d is too large to fit inside the configured memory limit. %d"
msgstr ""
-#: lib/Factory/DataSetFactory.php:500
+#: lib/Factory/DataSetFactory.php:518
#, php-format
msgid "Unable to get Data for %s because the response was not valid JSON."
msgstr ""
-#: lib/Factory/DataSetFactory.php:534
+#: lib/Factory/DataSetFactory.php:560
#, php-format
msgid "Unable to get Data for %s because %s."
msgstr ""
-#: lib/Factory/DataSetFactory.php:582
+#: lib/Factory/DataSetFactory.php:608
#, php-format
msgid "Processing %d results into %d potential columns"
msgstr ""
-#: lib/Factory/DataSetFactory.php:585
+#: lib/Factory/DataSetFactory.php:611
#, php-format
msgid "Processing Result with Data Root %s"
msgstr ""
-#: lib/Factory/DataSetFactory.php:628
+#: lib/Factory/DataSetFactory.php:654
msgid "Processing as a Single Row"
msgstr ""
-#: lib/Factory/DataSetFactory.php:633
+#: lib/Factory/DataSetFactory.php:659
msgid "Processing as Multiple Rows"
msgstr ""
-#: lib/Factory/DataSetFactory.php:643
+#: lib/Factory/DataSetFactory.php:669
#, php-format
msgid "No data found at the DataRoot %s"
msgstr ""
-#: lib/Factory/DataSetFactory.php:646
+#: lib/Factory/DataSetFactory.php:672
msgid "Consolidating entries"
msgstr ""
-#: lib/Factory/DataSetFactory.php:651
+#: lib/Factory/DataSetFactory.php:677
#, php-format
msgid "There are %d entries in total"
msgstr ""
@@ -24110,8 +25242,8 @@ msgstr ""
msgid "Missing fileType"
msgstr ""
-#: lib/Factory/RequiredFileFactory.php:409 lib/Xmds/Soap3.php:236
-#: lib/Xmds/Soap4.php:384
+#: lib/Factory/RequiredFileFactory.php:409 lib/Xmds/Soap3.php:243
+#: lib/Xmds/Soap4.php:401
msgid "File not found"
msgstr ""
@@ -24120,456 +25252,472 @@ msgstr ""
msgid "Group not found"
msgstr ""
-#: lib/Factory/UserGroupFactory.php:459
+#: lib/Factory/UserGroupFactory.php:496
msgid ""
"Page which shows all Events added to the Calendar for the purposes of "
"Schedule Management"
msgstr ""
-#: lib/Factory/UserGroupFactory.php:464
+#: lib/Factory/UserGroupFactory.php:501
msgid "Include the Agenda View on the Calendar"
msgstr ""
-#: lib/Factory/UserGroupFactory.php:469
+#: lib/Factory/UserGroupFactory.php:506
msgid ""
"Include \"Add Event\" button to allow for the creation of new Scheduled "
"Events"
msgstr ""
-#: lib/Factory/UserGroupFactory.php:474
+#: lib/Factory/UserGroupFactory.php:511
msgid "Allow edits including deletion of existing Scheduled Events"
msgstr ""
-#: lib/Factory/UserGroupFactory.php:479
+#: lib/Factory/UserGroupFactory.php:516
msgid "Allow creation of Synchronised Schedules"
msgstr ""
-#: lib/Factory/UserGroupFactory.php:484
+#: lib/Factory/UserGroupFactory.php:521
+msgid "Allow creation of Data Connector Schedules"
+msgstr ""
+
+#: lib/Factory/UserGroupFactory.php:526
msgid "Page which shows all Dayparts that have been created"
msgstr ""
-#: lib/Factory/UserGroupFactory.php:489
+#: lib/Factory/UserGroupFactory.php:531
msgid ""
"Include \"Add Daypart\" button to allow for the creation of new Dayparts"
msgstr ""
-#: lib/Factory/UserGroupFactory.php:494
+#: lib/Factory/UserGroupFactory.php:536
msgid "Allow edits including deletion to be made to all created Dayparts"
msgstr ""
-#: lib/Factory/UserGroupFactory.php:499
+#: lib/Factory/UserGroupFactory.php:541
msgid ""
"Page which shows all items that have been uploaded to the Library for the "
"purposes of Media Management"
msgstr ""
-#: lib/Factory/UserGroupFactory.php:504
+#: lib/Factory/UserGroupFactory.php:546
msgid ""
"Include \"Add Media\" buttons to allow for additional content to be uploaded "
"to the Media Library"
msgstr ""
-#: lib/Factory/UserGroupFactory.php:509
+#: lib/Factory/UserGroupFactory.php:551
msgid ""
"Allow edits including deletion to all items uploaded to the Media Library"
msgstr ""
-#: lib/Factory/UserGroupFactory.php:514
+#: lib/Factory/UserGroupFactory.php:556
msgid ""
"Page which shows all DataSets that have been created which can be used in "
"multiple Layouts"
msgstr ""
-#: lib/Factory/UserGroupFactory.php:519
+#: lib/Factory/UserGroupFactory.php:561
msgid ""
"Include \"Add DataSet\" button to allow for additional DataSets to be "
"created independently to Layouts"
msgstr ""
-#: lib/Factory/UserGroupFactory.php:524
+#: lib/Factory/UserGroupFactory.php:566
msgid ""
"Allow edits including deletion to all created DataSets independently to "
"Layouts"
msgstr ""
-#: lib/Factory/UserGroupFactory.php:529
+#: lib/Factory/UserGroupFactory.php:571
msgid ""
"Allow edits including deletion to all data contained within a DataSet "
"independently to Layouts"
msgstr ""
-#: lib/Factory/UserGroupFactory.php:534
+#: lib/Factory/UserGroupFactory.php:576
+msgid "Create and update real time DataSets"
+msgstr ""
+
+#: lib/Factory/UserGroupFactory.php:581
msgid ""
"Page which shows all Layouts that have been created for the purposes of "
"Layout Management"
msgstr ""
-#: lib/Factory/UserGroupFactory.php:539
+#: lib/Factory/UserGroupFactory.php:586
msgid ""
"Include \"Add Layout\" button to allow for additional Layouts to be created"
msgstr ""
-#: lib/Factory/UserGroupFactory.php:544
+#: lib/Factory/UserGroupFactory.php:591
msgid "Allow edits including deletion to be made to all created Layouts"
msgstr ""
-#: lib/Factory/UserGroupFactory.php:549
+#: lib/Factory/UserGroupFactory.php:596
msgid ""
"Include the Export function for all editable Layouts to allow a User to "
"export a Layout and its contents regardless of the share options that have "
"been set"
msgstr ""
-#: lib/Factory/UserGroupFactory.php:554
+#: lib/Factory/UserGroupFactory.php:601
msgid ""
"Page which shows all Campaigns that have been created for the purposes of "
"Campaign Management"
msgstr ""
-#: lib/Factory/UserGroupFactory.php:559
+#: lib/Factory/UserGroupFactory.php:606
msgid ""
"Include \"Add Campaign\" button to allow for additional Campaigns to be "
"created"
msgstr ""
-#: lib/Factory/UserGroupFactory.php:564
+#: lib/Factory/UserGroupFactory.php:611
msgid "Allow edits including deletion to all created Campaigns"
msgstr ""
-#: lib/Factory/UserGroupFactory.php:569
+#: lib/Factory/UserGroupFactory.php:616
msgid "Access to Ad Campaigns"
msgstr ""
-#: lib/Factory/UserGroupFactory.php:574
+#: lib/Factory/UserGroupFactory.php:621
msgid "Page which shows all Templates that have been saved"
msgstr ""
-#: lib/Factory/UserGroupFactory.php:579
+#: lib/Factory/UserGroupFactory.php:626
msgid "Add \"Save Template\" function for all Layouts"
msgstr ""
-#: lib/Factory/UserGroupFactory.php:584
+#: lib/Factory/UserGroupFactory.php:631
msgid "Allow edits to be made to all saved Templates"
msgstr ""
-#: lib/Factory/UserGroupFactory.php:589
+#: lib/Factory/UserGroupFactory.php:636
msgid "Page which shows all Resolutions that have been added to the platform"
msgstr ""
-#: lib/Factory/UserGroupFactory.php:594
+#: lib/Factory/UserGroupFactory.php:641
msgid "Add Resolution button to allow for additional Resolutions to be added"
msgstr ""
-#: lib/Factory/UserGroupFactory.php:599
+#: lib/Factory/UserGroupFactory.php:646
msgid "Allow edits including deletion to all added Resolutions"
msgstr ""
-#: lib/Factory/UserGroupFactory.php:604
+#: lib/Factory/UserGroupFactory.php:651
msgid ""
"Page which shows all Tags that have been added for the purposes of Tag "
"Management"
msgstr ""
-#: lib/Factory/UserGroupFactory.php:609
+#: lib/Factory/UserGroupFactory.php:656
msgid "Ability to add and edit Tags when assigning to items"
msgstr ""
-#: lib/Factory/UserGroupFactory.php:614
+#: lib/Factory/UserGroupFactory.php:661
msgid ""
"Page which shows all Playlists that have been created which can be used in "
"multiple Layouts"
msgstr ""
-#: lib/Factory/UserGroupFactory.php:619
+#: lib/Factory/UserGroupFactory.php:666
msgid ""
"Include \"Add Playlist\" button to allow for additional Playlists to be "
"created independently to Layouts"
msgstr ""
-#: lib/Factory/UserGroupFactory.php:624
+#: lib/Factory/UserGroupFactory.php:671
msgid ""
"Allow edits including deletion to all created Playlists independently to "
"Layouts"
msgstr ""
-#: lib/Factory/UserGroupFactory.php:629
+#: lib/Factory/UserGroupFactory.php:676
msgid ""
"Ability to update own Profile, including changing passwords and "
"authentication preferences"
msgstr ""
-#: lib/Factory/UserGroupFactory.php:634
+#: lib/Factory/UserGroupFactory.php:681
msgid "Notifications appear in the navigation bar"
msgstr ""
-#: lib/Factory/UserGroupFactory.php:639
+#: lib/Factory/UserGroupFactory.php:686
msgid "Access to the Notification Centre to view past notifications"
msgstr ""
-#: lib/Factory/UserGroupFactory.php:644
+#: lib/Factory/UserGroupFactory.php:691
msgid "Access to API applications"
msgstr ""
-#: lib/Factory/UserGroupFactory.php:649
+#: lib/Factory/UserGroupFactory.php:696
msgid "Allow Sharing capabilities for all User objects"
msgstr ""
-#: lib/Factory/UserGroupFactory.php:654
+#: lib/Factory/UserGroupFactory.php:701
msgid ""
"Include \"Add Notification\" button to allow for the creation of new "
"notifications"
msgstr ""
-#: lib/Factory/UserGroupFactory.php:659
+#: lib/Factory/UserGroupFactory.php:706
msgid ""
"Allow edits including deletion for all notifications in the Notification "
"Centre"
msgstr ""
-#: lib/Factory/UserGroupFactory.php:664
+#: lib/Factory/UserGroupFactory.php:711
msgid ""
"Page which shows all Users in the platform for the purposes of User "
"Management"
msgstr ""
-#: lib/Factory/UserGroupFactory.php:669
+#: lib/Factory/UserGroupFactory.php:716
msgid ""
"Include \"Add User\" button to allow for additional Users to be added to the "
"platform"
msgstr ""
-#: lib/Factory/UserGroupFactory.php:674
+#: lib/Factory/UserGroupFactory.php:721
msgid ""
"Allow Group Admins to edit including deletion, for all added Users within "
"their group"
msgstr ""
-#: lib/Factory/UserGroupFactory.php:679
+#: lib/Factory/UserGroupFactory.php:726
msgid "Page which shows all User Groups that have been created"
msgstr ""
-#: lib/Factory/UserGroupFactory.php:684
+#: lib/Factory/UserGroupFactory.php:731
msgid "Allow edits including deletion for all created User Groups"
msgstr ""
-#: lib/Factory/UserGroupFactory.php:689
+#: lib/Factory/UserGroupFactory.php:736
msgid ""
"Status Dashboard showing key platform metrics, suitable for an Administrator."
msgstr ""
-#: lib/Factory/UserGroupFactory.php:694
+#: lib/Factory/UserGroupFactory.php:741
msgid ""
"Media Manager Dashboard showing only the Widgets the user has access to "
"modify."
msgstr ""
-#: lib/Factory/UserGroupFactory.php:699
+#: lib/Factory/UserGroupFactory.php:746
msgid ""
"Playlist Dashboard showing only the Playlists configured in Layouts the user "
"has access to modify."
msgstr ""
-#: lib/Factory/UserGroupFactory.php:704
+#: lib/Factory/UserGroupFactory.php:751
msgid ""
"Page which shows all Displays added to the platform for the purposes of "
"Display Management"
msgstr ""
-#: lib/Factory/UserGroupFactory.php:709
+#: lib/Factory/UserGroupFactory.php:756
msgid ""
"Include \"Add Display\" button to allow additional Displays to be added to "
"the platform"
msgstr ""
-#: lib/Factory/UserGroupFactory.php:714
+#: lib/Factory/UserGroupFactory.php:761
msgid "Allow edits including deletion for all added Displays"
msgstr ""
-#: lib/Factory/UserGroupFactory.php:719
+#: lib/Factory/UserGroupFactory.php:766
msgid "Page which shows all Display Groups that have been created"
msgstr ""
-#: lib/Factory/UserGroupFactory.php:724
+#: lib/Factory/UserGroupFactory.php:771
msgid ""
"Include \"Add Display Group\" button to allow for the creation of additional "
"Display Groups"
msgstr ""
-#: lib/Factory/UserGroupFactory.php:729
+#: lib/Factory/UserGroupFactory.php:776
msgid "Allow edits including deletion for all created Display Groups"
msgstr ""
-#: lib/Factory/UserGroupFactory.php:734
+#: lib/Factory/UserGroupFactory.php:781
msgid "Page which shows all Display Setting Profiles that have been added"
msgstr ""
-#: lib/Factory/UserGroupFactory.php:739
+#: lib/Factory/UserGroupFactory.php:786
msgid ""
"Include \"Add Profile\" button to allow for additional Display Setting "
"Profiles to be added to the platform"
msgstr ""
-#: lib/Factory/UserGroupFactory.php:744
+#: lib/Factory/UserGroupFactory.php:791
msgid "Allow edits including deletion for all created Display Setting Profiles"
msgstr ""
-#: lib/Factory/UserGroupFactory.php:749
+#: lib/Factory/UserGroupFactory.php:796
msgid "Page to view/add/edit/delete/download Player Software Versions"
msgstr ""
-#: lib/Factory/UserGroupFactory.php:754
+#: lib/Factory/UserGroupFactory.php:801
msgid "Page to view/add/edit/delete Commands"
msgstr ""
-#: lib/Factory/UserGroupFactory.php:759
+#: lib/Factory/UserGroupFactory.php:806
msgid ""
"Page which shows all Sync Groups added to the platform for the purposes of "
"Sync Group Management"
msgstr ""
-#: lib/Factory/UserGroupFactory.php:764
+#: lib/Factory/UserGroupFactory.php:811
msgid "Allow creation of Synchronised Groups"
msgstr ""
-#: lib/Factory/UserGroupFactory.php:769
+#: lib/Factory/UserGroupFactory.php:816
msgid "Allow edits of Synchronised Groups"
msgstr ""
-#: lib/Factory/UserGroupFactory.php:774
+#: lib/Factory/UserGroupFactory.php:821
msgid ""
"Access to a Report Fault wizard for collecting reports to forward to the "
"support team for analysis, which may contain sensitive data."
msgstr ""
-#: lib/Factory/UserGroupFactory.php:779
+#: lib/Factory/UserGroupFactory.php:826
msgid "Page to show debug and error logging which may contain sensitive data"
msgstr ""
-#: lib/Factory/UserGroupFactory.php:784
+#: lib/Factory/UserGroupFactory.php:831
msgid "Page to show all User Sessions throughout the platform"
msgstr ""
-#: lib/Factory/UserGroupFactory.php:789
+#: lib/Factory/UserGroupFactory.php:836
msgid ""
"Page to show the Audit Trail for all created/modified and removed items "
"throughout the platform"
msgstr ""
-#: lib/Factory/UserGroupFactory.php:794
+#: lib/Factory/UserGroupFactory.php:841
msgid "Page which allows for Module Management for the platform"
msgstr ""
-#: lib/Factory/UserGroupFactory.php:799
+#: lib/Factory/UserGroupFactory.php:846
+msgid "Add/Edit custom modules and templates"
+msgstr ""
+
+#: lib/Factory/UserGroupFactory.php:851
+msgid "Delete custom modules and templates"
+msgstr ""
+
+#: lib/Factory/UserGroupFactory.php:856
msgid "Page which allows for Transition Management for the platform"
msgstr ""
-#: lib/Factory/UserGroupFactory.php:804
+#: lib/Factory/UserGroupFactory.php:861
msgid "Page which allows for Task Management for the platform"
msgstr ""
-#: lib/Factory/UserGroupFactory.php:809
+#: lib/Factory/UserGroupFactory.php:866
msgid "Dashboard which shows all available Reports"
msgstr ""
-#: lib/Factory/UserGroupFactory.php:814
+#: lib/Factory/UserGroupFactory.php:871
msgid ""
"Display Reports to show bandwidth usage and time connected / disconnected"
msgstr ""
-#: lib/Factory/UserGroupFactory.php:819
+#: lib/Factory/UserGroupFactory.php:876
msgid ""
"Proof of Play Reports which include summary and distribution by Layout, "
"Media or Event"
msgstr ""
-#: lib/Factory/UserGroupFactory.php:824
+#: lib/Factory/UserGroupFactory.php:881
msgid "Page which shows all Reports that have been Scheduled"
msgstr ""
-#: lib/Factory/UserGroupFactory.php:829
+#: lib/Factory/UserGroupFactory.php:886
msgid "Page which shows all Reports that have been Saved"
msgstr ""
-#: lib/Factory/UserGroupFactory.php:834
+#: lib/Factory/UserGroupFactory.php:891
msgid "View Folder Tree on Grids and Forms"
msgstr ""
-#: lib/Factory/UserGroupFactory.php:839
+#: lib/Factory/UserGroupFactory.php:896
msgid ""
"Allow users to create Sub-Folders under Folders they have access to. (Except "
"the Root Folder)"
msgstr ""
-#: lib/Factory/UserGroupFactory.php:844
+#: lib/Factory/UserGroupFactory.php:901
msgid "Rename and Delete existing Folders"
msgstr ""
-#: lib/Factory/UserGroupFactory.php:849
+#: lib/Factory/UserGroupFactory.php:906
msgid "Set a home folder for a user"
msgstr ""
-#: lib/Factory/UserGroupFactory.php:854
+#: lib/Factory/UserGroupFactory.php:911
msgid "View the Menu Board page"
msgstr ""
-#: lib/Factory/UserGroupFactory.php:859
+#: lib/Factory/UserGroupFactory.php:916
msgid ""
"Include \"Add Menu Board\" button to allow for additional Menu Boards to be "
"added to the platform"
msgstr ""
-#: lib/Factory/UserGroupFactory.php:864
+#: lib/Factory/UserGroupFactory.php:921
msgid ""
"Allow edits, creation of Menu Board Categories and Products including "
"deletion for all created Menu Board content"
msgstr ""
-#: lib/Factory/UserGroupFactory.php:869
+#: lib/Factory/UserGroupFactory.php:926
msgid "View the Fonts page"
msgstr ""
-#: lib/Factory/UserGroupFactory.php:874
+#: lib/Factory/UserGroupFactory.php:931
msgid "Upload new Fonts"
msgstr ""
-#: lib/Factory/UserGroupFactory.php:879
+#: lib/Factory/UserGroupFactory.php:936
msgid "Delete existing Fonts"
msgstr ""
-#: lib/Factory/UserGroupFactory.php:894
+#: lib/Factory/UserGroupFactory.php:951
msgid "Homepage has not been set"
msgstr ""
-#: lib/Factory/UserGroupFactory.php:900
+#: lib/Factory/UserGroupFactory.php:957
#, php-format
msgid "Homepage %s not found."
msgstr ""
-#: lib/Factory/UserGroupFactory.php:917
+#: lib/Factory/UserGroupFactory.php:974
msgid ""
"Status Dashboard showing key platform metrics, usually for an administrator."
msgstr ""
-#: lib/Factory/UserGroupFactory.php:923
+#: lib/Factory/UserGroupFactory.php:980
msgid ""
"Icon Dashboard showing an easy access set of feature icons the user can "
"access."
msgstr ""
-#: lib/Factory/UserGroupFactory.php:928
+#: lib/Factory/UserGroupFactory.php:985
msgid "Media Manager Dashboard"
msgstr ""
-#: lib/Factory/UserGroupFactory.php:929
+#: lib/Factory/UserGroupFactory.php:986
msgid ""
"Media Manager Dashboard showing all Widgets the user has access to modify."
msgstr ""
-#: lib/Factory/UserGroupFactory.php:934
+#: lib/Factory/UserGroupFactory.php:991
msgid "Playlist Dashboard"
msgstr ""
-#: lib/Factory/UserGroupFactory.php:935
+#: lib/Factory/UserGroupFactory.php:992
msgid ""
"Playlist Dashboard showing all Playlists configured in Layouts the user has "
"access to modify."
@@ -24579,19 +25727,19 @@ msgstr ""
msgid "Entity not found: "
msgstr ""
-#: lib/Factory/PermissionFactory.php:180
+#: lib/Factory/PermissionFactory.php:176
msgid "Entity not found"
msgstr ""
-#: lib/Widget/RssProvider.php:54
+#: lib/Widget/RssProvider.php:53
msgid "Please enter the URI to a valid RSS feed."
msgstr ""
-#: lib/Widget/RssProvider.php:205 lib/Widget/IcsProvider.php:213
+#: lib/Widget/RssProvider.php:204 lib/Widget/IcsProvider.php:213
msgid "Unable to download feed"
msgstr ""
-#: lib/Widget/RssProvider.php:218
+#: lib/Widget/RssProvider.php:217
msgid "Unable to parse feed"
msgstr ""
@@ -24629,68 +25777,73 @@ msgstr ""
msgid "Asset file does not exist"
msgstr ""
-#: lib/Widget/Definition/Property.php:221
+#: lib/Widget/Definition/Property.php:225
#, php-format
msgid "Value too large for %s"
msgstr ""
-#: lib/Widget/Definition/Property.php:261
+#: lib/Widget/Definition/Property.php:265
#, php-format
msgid "Missing required property %s"
msgstr ""
-#: lib/Widget/Definition/Property.php:272
+#: lib/Widget/Definition/Property.php:276
#, php-format
msgid "%s must be a valid URI"
msgstr ""
-#: lib/Widget/Definition/Property.php:285
-#: lib/Widget/Definition/Property.php:297
+#: lib/Widget/Definition/Property.php:292
+#, php-format
+msgid "%s must be a valid Windows path"
+msgstr ""
+
+#: lib/Widget/Definition/Property.php:306
+#: lib/Widget/Definition/Property.php:318
msgid ""
"That is not a valid date interval, please use natural language such as 1 week"
msgstr ""
-#: lib/Widget/Definition/Property.php:307
+#: lib/Widget/Definition/Property.php:328
#, php-format
msgid "%s must equal %s"
msgstr ""
-#: lib/Widget/Definition/Property.php:316
+#: lib/Widget/Definition/Property.php:337
#, php-format
msgid "%s must not equal %s"
msgstr ""
-#: lib/Widget/Definition/Property.php:325
+#: lib/Widget/Definition/Property.php:346
#, php-format
msgid "%s must contain %s"
msgstr ""
-#: lib/Widget/Definition/Property.php:335
+#: lib/Widget/Definition/Property.php:356
#, php-format
msgid "%s must not contain %s"
msgstr ""
-#: lib/Widget/Definition/Property.php:346
+#: lib/Widget/Definition/Property.php:367
#, php-format
msgid "%s must be less than %s"
msgstr ""
-#: lib/Widget/Definition/Property.php:357
+#: lib/Widget/Definition/Property.php:378
#, php-format
msgid "%s must be less than or equal to %s"
msgstr ""
-#: lib/Widget/Definition/Property.php:368
+#: lib/Widget/Definition/Property.php:389
#, php-format
msgid "%s must be greater than or equal to %s"
msgstr ""
-#: lib/Widget/Definition/Property.php:379
+#: lib/Widget/Definition/Property.php:400
#, php-format
msgid "%s must be greater than %s"
msgstr ""
-#: lib/Widget/Definition/Property.php:451
+#: lib/Widget/Definition/Property.php:472
#, php-format
msgid "%s is not a valid option"
msgstr ""
@@ -24744,51 +25897,60 @@ msgstr ""
msgid "Product Category"
msgstr ""
-#: lib/Widget/DataType/Forecast.php:118
+#: lib/Widget/DataType/Forecast.php:120
msgid "Forecast"
msgstr ""
-#: lib/Xmds/Soap3.php:255 lib/Xmds/Soap4.php:458
+#: lib/Xmds/Soap3.php:262 lib/Xmds/Soap4.php:475
msgid "Unknown FileType Requested."
msgstr ""
-#: lib/Xmds/Soap4.php:391 lib/Xmds/Soap4.php:441
+#: lib/Xmds/Soap4.php:408 lib/Xmds/Soap4.php:458
msgid "Unable to get file pointer"
msgstr ""
-#: lib/Xmds/Soap4.php:401 lib/Xmds/Soap4.php:452
+#: lib/Xmds/Soap4.php:418 lib/Xmds/Soap4.php:469
msgid "Empty file"
msgstr ""
-#: lib/Xmds/Soap4.php:434
+#: lib/Xmds/Soap4.php:451
msgid "Media exists but file missing from library."
msgstr ""
-#: lib/Xmds/Soap4.php:805
+#: lib/Xmds/Soap4.php:810
msgid "Incorrect Screen shot Format"
msgstr ""
-#: lib/Xmds/Soap.php:578
+#: lib/Xmds/Listeners/XmdsDataConnectorListener.php:62
+#, php-format
+msgid "Data Connector %s not found"
+msgstr ""
+
+#: lib/Xmds/Soap.php:586
#, php-format
msgid ""
"Scheduled Action Event ID %d contains an invalid Layout linked to it by the "
"Layout code."
msgstr ""
-#: lib/Xmds/Soap.php:2576
+#: lib/Xmds/Soap.php:2683
#, php-format
msgid "Recovery for Display %s"
msgstr ""
-#: lib/Xmds/Soap.php:2578
+#: lib/Xmds/Soap.php:2685
#, php-format
msgid "Display ID %d is now back online %s"
msgstr ""
-#: lib/Xmds/Soap.php:2717
+#: lib/Xmds/Soap.php:2825
msgid "Bandwidth allowance exceeded"
msgstr ""
+#: lib/Xmds/Soap6.php:157
+msgid "All Player faults cleared"
+msgstr ""
+
#: lib/Helper/WakeOnLan.php:47
msgid ""
"Pattern of MAC-address is not \"xx-xx-xx-xx-xx-xx\" (x = digit or letter)"
@@ -24842,13 +26004,17 @@ msgstr ""
msgid "Wake On Lan Failed as there are no functions available to transmit it"
msgstr ""
-#: lib/Helper/DataSetUploadHandler.php:133
+#: lib/Helper/DataSetUploadHandler.php:76
+msgid "Import failed: No value columns defined in the dataset."
+msgstr ""
+
+#: lib/Helper/DataSetUploadHandler.php:153
#, php-format
msgid "Unable to import row %d"
msgstr ""
#: lib/Helper/UploadHandler.php:77 lib/Helper/XiboUploadHandler.php:66
-#: lib/Helper/LayoutUploadHandler.php:55
+#: lib/Helper/LayoutUploadHandler.php:56
#, php-format
msgid "Your library is full. Library Limit: %s K"
msgstr ""
@@ -25163,34 +26329,146 @@ msgstr ""
msgid "Currency data invalid"
msgstr ""
-#: lib/Connector/OpenWeatherMapConnector.php:123
+#: lib/Connector/OpenWeatherMapConnector.php:130
msgid "Unable to get weather results."
msgstr ""
-#: lib/Connector/OpenWeatherMapConnector.php:500
+#: lib/Connector/OpenWeatherMapConnector.php:524
msgid "Chinese Simplified"
msgstr ""
-#: lib/Connector/OpenWeatherMapConnector.php:501
+#: lib/Connector/OpenWeatherMapConnector.php:525
msgid "Chinese Traditional"
msgstr ""
-#: lib/Connector/OpenWeatherMapConnector.php:508
+#: lib/Connector/OpenWeatherMapConnector.php:532
msgid "Persian (Farsi)"
msgstr ""
-#: lib/Connector/OpenWeatherMapConnector.php:523
+#: lib/Connector/OpenWeatherMapConnector.php:547
msgid "Norwegian"
msgstr ""
-#: lib/Connector/OpenWeatherMapConnector.php:527
+#: lib/Connector/OpenWeatherMapConnector.php:551
msgid "Português Brasil"
msgstr ""
-#: lib/Connector/OpenWeatherMapConnector.php:539
+#: lib/Connector/OpenWeatherMapConnector.php:563
msgid "Zulu"
msgstr ""
+#: lib/Connector/OpenWeatherMapConnector.php:668
+msgid "Weather Condition"
+msgstr ""
+
+#: lib/Connector/OpenWeatherMapConnector.php:670
+msgid "Clear Sky"
+msgstr ""
+
+#: lib/Connector/OpenWeatherMapConnector.php:671
+msgid "Few Clouds"
+msgstr ""
+
+#: lib/Connector/OpenWeatherMapConnector.php:672
+msgid "Scattered Clouds"
+msgstr ""
+
+#: lib/Connector/OpenWeatherMapConnector.php:673
+msgid "Broken Clouds"
+msgstr ""
+
+#: lib/Connector/OpenWeatherMapConnector.php:674
+msgid "Shower Rain"
+msgstr ""
+
+#: lib/Connector/OpenWeatherMapConnector.php:675
+msgid "Rain"
+msgstr ""
+
+#: lib/Connector/OpenWeatherMapConnector.php:676
+msgid "Thunderstorm"
+msgstr ""
+
+#: lib/Connector/OpenWeatherMapConnector.php:677
+msgid "Snow"
+msgstr ""
+
+#: lib/Connector/OpenWeatherMapConnector.php:678
+msgid "Mist"
+msgstr ""
+
+#: lib/Connector/OpenWeatherMapConnector.php:680
+msgid "Temperature (Imperial)"
+msgstr ""
+
+#: lib/Connector/OpenWeatherMapConnector.php:682
+msgid "Temperature (Metric)"
+msgstr ""
+
+#: lib/Connector/OpenWeatherMapConnector.php:684
+msgid "Apparent Temperature (Imperial)"
+msgstr ""
+
+#: lib/Connector/OpenWeatherMapConnector.php:686
+msgid "Apparent Temperature (Metric)"
+msgstr ""
+
+#: lib/Connector/OpenWeatherMapConnector.php:693
+msgid "North-Northeast"
+msgstr ""
+
+#: lib/Connector/OpenWeatherMapConnector.php:694
+msgid "Northeast"
+msgstr ""
+
+#: lib/Connector/OpenWeatherMapConnector.php:695
+msgid "East-Northeast"
+msgstr ""
+
+#: lib/Connector/OpenWeatherMapConnector.php:697
+msgid "East-Southeast"
+msgstr ""
+
+#: lib/Connector/OpenWeatherMapConnector.php:698
+msgid "Southeast"
+msgstr ""
+
+#: lib/Connector/OpenWeatherMapConnector.php:699
+msgid "South-Southeast"
+msgstr ""
+
+#: lib/Connector/OpenWeatherMapConnector.php:701
+msgid "South-Southwest"
+msgstr ""
+
+#: lib/Connector/OpenWeatherMapConnector.php:702
+msgid "Southwest"
+msgstr ""
+
+#: lib/Connector/OpenWeatherMapConnector.php:703
+msgid "West-Southwest"
+msgstr ""
+
+#: lib/Connector/OpenWeatherMapConnector.php:705
+msgid "West-Northwest"
+msgstr ""
+
+#: lib/Connector/OpenWeatherMapConnector.php:706
+msgid "Northwest"
+msgstr ""
+
+#: lib/Connector/OpenWeatherMapConnector.php:707
+msgid "North-Northwest"
+msgstr ""
+
+#: lib/Connector/OpenWeatherMapConnector.php:709
+msgid "Wind Bearing"
+msgstr ""
+
+#: lib/Connector/OpenWeatherMapConnector.php:711
+msgid "Humidity (Percent)"
+msgstr ""
+
#: lib/XTR/MaintenanceDailyTask.php:93
msgid "Daily Maintenance"
msgstr ""
@@ -25289,7 +26567,7 @@ msgstr ""
msgid "The event (%s) has %s %d %s ago"
msgstr ""
-#: lib/XTR/EmailNotificationsTask.php:54 lib/XTR/EmailNotificationsTask.php:65
+#: lib/XTR/EmailNotificationsTask.php:60 lib/XTR/EmailNotificationsTask.php:71
msgid "Email Notifications"
msgstr ""
@@ -25331,35 +26609,35 @@ msgstr ""
msgid "Build Layouts"
msgstr ""
-#: lib/XTR/MaintenanceRegularTask.php:325
+#: lib/XTR/MaintenanceRegularTask.php:326
msgid "Library allowance exceeded"
msgstr ""
-#: lib/XTR/MaintenanceRegularTask.php:373
+#: lib/XTR/MaintenanceRegularTask.php:386
#, php-format
msgid "%s is downloading %d files too many times"
msgstr ""
-#: lib/XTR/MaintenanceRegularTask.php:378
+#: lib/XTR/MaintenanceRegularTask.php:399
#, php-format
msgid ""
"Please check the bandwidth graphs and display status for %s to investigate "
"the issue."
msgstr ""
-#: lib/XTR/MaintenanceRegularTask.php:405
+#: lib/XTR/MaintenanceRegularTask.php:429
msgid "Playlist Duration Updates"
msgstr ""
-#: lib/XTR/MaintenanceRegularTask.php:426
+#: lib/XTR/MaintenanceRegularTask.php:453
msgid "Publishing layouts with set publish dates"
msgstr ""
-#: lib/XTR/MaintenanceRegularTask.php:500
+#: lib/XTR/MaintenanceRegularTask.php:552
msgid "Assess Dynamic Display Groups"
msgstr ""
-#: lib/XTR/MaintenanceRegularTask.php:546
+#: lib/XTR/MaintenanceRegularTask.php:598
msgid "Tidy Ad Campaign Schedules"
msgstr ""
@@ -25446,22 +26724,22 @@ msgstr ""
msgid "Fetching Remote-DataSets"
msgstr ""
-#: lib/XTR/RemoteDataSetFetchTask.php:176
+#: lib/XTR/RemoteDataSetFetchTask.php:190
#, php-format
msgid "No results for %s, truncate with no new data enabled"
msgstr ""
-#: lib/XTR/RemoteDataSetFetchTask.php:178
+#: lib/XTR/RemoteDataSetFetchTask.php:192
#, php-format
msgid "No results for %s"
msgstr ""
-#: lib/XTR/RemoteDataSetFetchTask.php:186
+#: lib/XTR/RemoteDataSetFetchTask.php:200
#, php-format
msgid "Error syncing DataSet %s"
msgstr ""
-#: lib/XTR/RemoteDataSetFetchTask.php:192
+#: lib/XTR/RemoteDataSetFetchTask.php:206
#, php-format
msgid "Remote DataSet %s failed to synchronise"
msgstr ""
@@ -25541,20 +26819,20 @@ msgstr ""
msgid "%s time disconnected summary report"
msgstr ""
-#: lib/Report/TimeDisconnectedSummary.php:265
+#: lib/Report/TimeDisconnectedSummary.php:266
#: lib/Report/DistributionReport.php:303
msgid "No display groups with View permissions"
msgstr ""
-#: lib/Report/TimeDisconnectedSummary.php:306
+#: lib/Report/TimeDisconnectedSummary.php:308
msgid "Days"
msgstr ""
-#: lib/Report/TimeDisconnectedSummary.php:453
+#: lib/Report/TimeDisconnectedSummary.php:494
msgid "Downtime"
msgstr ""
-#: lib/Report/TimeDisconnectedSummary.php:458
+#: lib/Report/TimeDisconnectedSummary.php:499
msgid "Uptime"
msgstr ""
@@ -25563,6 +26841,11 @@ msgstr ""
msgid "%s bandwidth report"
msgstr ""
+#: lib/Report/ApiRequests.php:138
+#, php-format
+msgid "%s API requests %s log report for User"
+msgstr ""
+
#: lib/Report/DistributionReport.php:135 lib/Report/TimeConnected.php:109
#: lib/Report/ProofOfPlay.php:125 lib/Report/SummaryReport.php:126
msgid "Select a type and an item (i.e., layout/media/tag)"
@@ -25619,7 +26902,7 @@ msgstr ""
msgid "%s library usage report"
msgstr ""
-#: lib/Report/TimeConnected.php:182
+#: lib/Report/TimeConnected.php:182 lib/Report/DisplayAlerts.php:136
#, php-format
msgid "%s report for Display"
msgstr ""
@@ -25640,7 +26923,16 @@ msgstr ""
msgid "Unknown type "
msgstr ""
-#: lib/Report/ProofOfPlay.php:874
+#: lib/Report/SessionHistory.php:133
+#, php-format
+msgid "%s Session %s log report for User"
+msgstr ""
+
+#: lib/Report/ProofOfPlay.php:358
+msgid "Invalid Sort By"
+msgstr ""
+
+#: lib/Report/ProofOfPlay.php:886
msgid "Incorrect Tag type selected"
msgstr ""
diff --git a/locale/el.mo b/locale/el.mo
index ce6bb8b6d6..a6e9efa240 100755
Binary files a/locale/el.mo and b/locale/el.mo differ
diff --git a/locale/en_GB.mo b/locale/en_GB.mo
index 9c1a748ab4..c9d99d8041 100755
Binary files a/locale/en_GB.mo and b/locale/en_GB.mo differ
diff --git a/locale/es.mo b/locale/es.mo
index a3af0c91af..6ea04a6004 100755
Binary files a/locale/es.mo and b/locale/es.mo differ
diff --git a/locale/et.mo b/locale/et.mo
index 874ed5b112..fdc555efa8 100755
Binary files a/locale/et.mo and b/locale/et.mo differ
diff --git a/locale/eu.mo b/locale/eu.mo
index b6cfd139bf..6fa487a1ca 100755
Binary files a/locale/eu.mo and b/locale/eu.mo differ
diff --git a/locale/fa.mo b/locale/fa.mo
index daa7c3c72a..5cf2b891a9 100755
Binary files a/locale/fa.mo and b/locale/fa.mo differ
diff --git a/locale/fi.mo b/locale/fi.mo
index 624d8cb7ad..47b2200990 100755
Binary files a/locale/fi.mo and b/locale/fi.mo differ
diff --git a/locale/fr.mo b/locale/fr.mo
index 0a88214368..0c4827fbdb 100755
Binary files a/locale/fr.mo and b/locale/fr.mo differ
diff --git a/locale/fr_CA.mo b/locale/fr_CA.mo
index d7f8e58351..de25d91cb9 100644
Binary files a/locale/fr_CA.mo and b/locale/fr_CA.mo differ
diff --git a/locale/he.mo b/locale/he.mo
index ed3e92bfe4..56abd8eb0e 100755
Binary files a/locale/he.mo and b/locale/he.mo differ
diff --git a/locale/hi.mo b/locale/hi.mo
index 0c83504ab7..03b34f225a 100755
Binary files a/locale/hi.mo and b/locale/hi.mo differ
diff --git a/locale/hr.mo b/locale/hr.mo
index 71e33c9d63..63fd4f3100 100755
Binary files a/locale/hr.mo and b/locale/hr.mo differ
diff --git a/locale/hu.mo b/locale/hu.mo
index e8b59c2241..5eb3498c1c 100755
Binary files a/locale/hu.mo and b/locale/hu.mo differ
diff --git a/locale/id.mo b/locale/id.mo
index 7f9bb29ff7..e30c6897e8 100755
Binary files a/locale/id.mo and b/locale/id.mo differ
diff --git a/locale/it.mo b/locale/it.mo
index bb235c078e..a963fabf66 100755
Binary files a/locale/it.mo and b/locale/it.mo differ
diff --git a/locale/ja.mo b/locale/ja.mo
index dd2681175d..4885c27539 100755
Binary files a/locale/ja.mo and b/locale/ja.mo differ
diff --git a/locale/ko.mo b/locale/ko.mo
index 2633f9aed6..8fd9853672 100755
Binary files a/locale/ko.mo and b/locale/ko.mo differ
diff --git a/locale/ku.mo b/locale/ku.mo
index 0e4de8c11e..ead3dc2ab7 100755
Binary files a/locale/ku.mo and b/locale/ku.mo differ
diff --git a/locale/lb.mo b/locale/lb.mo
index cddddc6a28..f8317f0ddd 100755
Binary files a/locale/lb.mo and b/locale/lb.mo differ
diff --git a/locale/lo.mo b/locale/lo.mo
index 8f283ab1ab..3db428bc6d 100755
Binary files a/locale/lo.mo and b/locale/lo.mo differ
diff --git a/locale/lt.mo b/locale/lt.mo
index 5b5784f8f6..10b04a4671 100755
Binary files a/locale/lt.mo and b/locale/lt.mo differ
diff --git a/locale/nb.mo b/locale/nb.mo
index fbe39a34a7..aef3429985 100755
Binary files a/locale/nb.mo and b/locale/nb.mo differ
diff --git a/locale/nl.mo b/locale/nl.mo
index 36b38f5660..d933aa91af 100755
Binary files a/locale/nl.mo and b/locale/nl.mo differ
diff --git a/locale/nl_NL.mo b/locale/nl_NL.mo
index 7ce50272ac..eb249fdf8b 100755
Binary files a/locale/nl_NL.mo and b/locale/nl_NL.mo differ
diff --git a/locale/pl.mo b/locale/pl.mo
index b7c83e28c9..9e41b8bb9b 100755
Binary files a/locale/pl.mo and b/locale/pl.mo differ
diff --git a/locale/pt.mo b/locale/pt.mo
index 5ed3001a0c..092e9003cb 100755
Binary files a/locale/pt.mo and b/locale/pt.mo differ
diff --git a/locale/pt_BR.mo b/locale/pt_BR.mo
index 25afaa5b02..2d05012e30 100755
Binary files a/locale/pt_BR.mo and b/locale/pt_BR.mo differ
diff --git a/locale/ro.mo b/locale/ro.mo
index 1f93788524..8f7a8b2d40 100755
Binary files a/locale/ro.mo and b/locale/ro.mo differ
diff --git a/locale/ru.mo b/locale/ru.mo
index 261186f399..4c202b10f2 100755
Binary files a/locale/ru.mo and b/locale/ru.mo differ
diff --git a/locale/sk.mo b/locale/sk.mo
index 79f3defa8b..6ac0580a82 100755
Binary files a/locale/sk.mo and b/locale/sk.mo differ
diff --git a/locale/sl.mo b/locale/sl.mo
index 09b842ba9f..3b9f293c79 100755
Binary files a/locale/sl.mo and b/locale/sl.mo differ
diff --git a/locale/sr@latin.mo b/locale/sr@latin.mo
index e890efada8..ef6060a9bd 100755
Binary files a/locale/sr@latin.mo and b/locale/sr@latin.mo differ
diff --git a/locale/sv.mo b/locale/sv.mo
index 6463ee6bcf..4741f3b512 100755
Binary files a/locale/sv.mo and b/locale/sv.mo differ
diff --git a/locale/th.mo b/locale/th.mo
index 12e1e40fa2..b2b4ab35e6 100755
Binary files a/locale/th.mo and b/locale/th.mo differ
diff --git a/locale/tr.mo b/locale/tr.mo
index 08160af788..984e4323d8 100755
Binary files a/locale/tr.mo and b/locale/tr.mo differ
diff --git a/locale/vi.mo b/locale/vi.mo
index e2d7a4f823..073b8d50a5 100755
Binary files a/locale/vi.mo and b/locale/vi.mo differ
diff --git a/locale/zh_CN.mo b/locale/zh_CN.mo
index 5604b2e632..68442d83a5 100755
Binary files a/locale/zh_CN.mo and b/locale/zh_CN.mo differ
diff --git a/locale/zh_TW.mo b/locale/zh_TW.mo
index 87e77cde60..66386fc00d 100755
Binary files a/locale/zh_TW.mo and b/locale/zh_TW.mo differ
diff --git a/modules/assets/template-thumbnails/currency/elements/currency-group-1.png b/modules/assets/template-thumbnails/currency/elements/currency-group-1.png
new file mode 100644
index 0000000000..7ab80648c1
Binary files /dev/null and b/modules/assets/template-thumbnails/currency/elements/currency-group-1.png differ
diff --git a/modules/assets/template-thumbnails/currency/elements/currency-group-2.png b/modules/assets/template-thumbnails/currency/elements/currency-group-2.png
new file mode 100644
index 0000000000..25f2fdc644
Binary files /dev/null and b/modules/assets/template-thumbnails/currency/elements/currency-group-2.png differ
diff --git a/modules/assets/template-thumbnails/currency/elements/currency-single-1.png b/modules/assets/template-thumbnails/currency/elements/currency-single-1.png
new file mode 100644
index 0000000000..6be7b9fa95
Binary files /dev/null and b/modules/assets/template-thumbnails/currency/elements/currency-single-1.png differ
diff --git a/modules/assets/template-thumbnails/currency/elements/currency-single-2.png b/modules/assets/template-thumbnails/currency/elements/currency-single-2.png
new file mode 100644
index 0000000000..8cb92d8c3e
Binary files /dev/null and b/modules/assets/template-thumbnails/currency/elements/currency-single-2.png differ
diff --git a/modules/assets/template-thumbnails/currency/elements/currency-single-3.png b/modules/assets/template-thumbnails/currency/elements/currency-single-3.png
new file mode 100644
index 0000000000..4cb8f50280
Binary files /dev/null and b/modules/assets/template-thumbnails/currency/elements/currency-single-3.png differ
diff --git a/modules/assets/template-thumbnails/currency/elements/currency-single-4.png b/modules/assets/template-thumbnails/currency/elements/currency-single-4.png
new file mode 100644
index 0000000000..e18d621de4
Binary files /dev/null and b/modules/assets/template-thumbnails/currency/elements/currency-single-4.png differ
diff --git a/modules/assets/template-thumbnails/forecast/elements/forecast-group-1.png b/modules/assets/template-thumbnails/forecast/elements/forecast-group-1.png
new file mode 100644
index 0000000000..f259fb0c23
Binary files /dev/null and b/modules/assets/template-thumbnails/forecast/elements/forecast-group-1.png differ
diff --git a/modules/assets/template-thumbnails/global/date.png b/modules/assets/template-thumbnails/global/date.png
index f8ec5bb83b..f5eace60c0 100644
Binary files a/modules/assets/template-thumbnails/global/date.png and b/modules/assets/template-thumbnails/global/date.png differ
diff --git a/modules/assets/template-thumbnails/global/ellipse.png b/modules/assets/template-thumbnails/global/ellipse.png
new file mode 100644
index 0000000000..41429ff92d
Binary files /dev/null and b/modules/assets/template-thumbnails/global/ellipse.png differ
diff --git a/modules/assets/template-thumbnails/global/placeholder.png b/modules/assets/template-thumbnails/global/placeholder.png
new file mode 100644
index 0000000000..298151c714
Binary files /dev/null and b/modules/assets/template-thumbnails/global/placeholder.png differ
diff --git a/modules/assets/template-thumbnails/stocks/elements/stocks-group-1.png b/modules/assets/template-thumbnails/stocks/elements/stocks-group-1.png
new file mode 100644
index 0000000000..2b915d2bd9
Binary files /dev/null and b/modules/assets/template-thumbnails/stocks/elements/stocks-group-1.png differ
diff --git a/modules/assets/template-thumbnails/stocks/elements/stocks-single-1.png b/modules/assets/template-thumbnails/stocks/elements/stocks-single-1.png
new file mode 100644
index 0000000000..17dbd53cff
Binary files /dev/null and b/modules/assets/template-thumbnails/stocks/elements/stocks-single-1.png differ
diff --git a/modules/assets/template-thumbnails/stocks/elements/stocks-single-2.png b/modules/assets/template-thumbnails/stocks/elements/stocks-single-2.png
new file mode 100644
index 0000000000..5c56d6985b
Binary files /dev/null and b/modules/assets/template-thumbnails/stocks/elements/stocks-single-2.png differ
diff --git a/modules/calendar.xml b/modules/calendar.xml
index 65da8d1f38..d324c28a91 100644
--- a/modules/calendar.xml
+++ b/modules/calendar.xml
@@ -31,6 +31,7 @@
calendar
event
%uri%_%useDateRange%_%startIntervalFrom%_%customInterval%_%rangeStart%_%rangeEnd%_%useEventTimezone%_%useCalendarTimezone%_%windowsFormatCalendar%
+ 1
2
1
1
diff --git a/modules/countdown-clock.xml b/modules/countdown-clock.xml
index fa4a4fe79f..a96435da05 100755
--- a/modules/countdown-clock.xml
+++ b/modules/countdown-clock.xml
@@ -164,6 +164,22 @@
Label Text Colour
#fff
+
+ Warning Background Colour 1
+ darkorange
+
+
+ Warning Background Colour 2
+ orange
+
+
+ Finished Background Colour 1
+ darkred
+
+
+ Finished Background Colour 2
+ red
+
@@ -222,20 +238,16 @@ body {
font-size: 64px;
}
-.warning>#clockdiv>div {
- background: darkred;
-}
-
-.warning>#clockdiv>div>span {
- background: red;
-}
-
{% if innerFontFamily %}#clockdiv > div > span { font-family: {{innerFontFamily}}; }{% endif %}
{% if innerBackgroundColor %}#clockdiv > div > span { background: {{innerBackgroundColor}}; }{% endif %}
{% if innerTextColor %}#clockdiv > div > span { color: {{innerTextColor}}; }{% endif %}
{% if outerBackgroundColor %}#clockdiv > div { background: {{outerBackgroundColor}}; }{% endif %}
{% if labelFontFamily %}#clockdiv .smalltext { font-family: {{labelFontFamily}}; }{% endif %}
{% if labelTextColor %}#clockdiv > div { color: {{labelTextColor}}; }{% endif %}
+{% if warningBackgroundColor1 %}.warning #clockdiv > div {background: {{warningBackgroundColor1}};}{% endif %}
+{% if warningBackgroundColor2 %}.warning #clockdiv > div > span {background: {{warningBackgroundColor2}};}{% endif %}
+{% if finishedBackgroundColor1 %}.finished #clockdiv > div {background: {{finishedBackgroundColor1}};}{% endif %}
+{% if finishedBackgroundColor1 %}.finished #clockdiv > div > span {background: {{finishedBackgroundColor2}};}{% endif %}
]]>
Label Colour
#333
+
+ Warning Background Colour
+ darkgoldenrod
+
+
+ Finished Background Colour
+ darkred
+
@@ -229,22 +237,14 @@ body {
font-size: 30px;
}
-.warning>#clockdiv>div>span {
- border-color: darkgoldenrod;
- color: darkgoldenrod;
-}
-
-.finished>#clockdiv>div>span {
- border-color: darkred;
- color: darkred;
-}
-
{% if textColor %}#clockdiv div>span { color: {{textColor}} !important; }{% endif %}
{% if fontFamily %}#clockdiv div>span { font-family: {{fontFamily}} !important; }{% endif %}
{% if textBackgroundColor %}#clockdiv div>span { background-color: {{textBackgroundColor}} !important; }{% endif %}
{% if borderColor %}#clockdiv div>span { border-color: {{borderColor}} !important; }{% endif %}
{% if labelTextColor %}#clockdiv { color: {{labelTextColor}} !important; }{% endif %}
{% if labelFontFamily %}#clockdiv { font-family: {{labelFontFamily}} !important; }{% endif %}
+{% if warningBackgroundColor %}.warning #clockdiv > div > span {border-color: {{warningBackgroundColor}} !important;color: {{warningBackgroundColor}} !important;}{% endif %}
+{% if finishedBackgroundColor %}.finished #clockdiv > div > span {border-color: {{finishedBackgroundColor}} !important;color: {{finishedBackgroundColor}} !important;}{% endif %}
]]>
-
- Warning Duration
- The countdown will show in a warning mode from the end duration entered.
-
-
-
- 1
- 2
-
-
-
-
-
- 2
-
-
-
- 1
-
-
-
-
- 0
-
-
-
-
-
- Warning Date
- The countdown will show in a warning mode from the warning date entered.
-
-
-
- 3
-
-
-
-
- 3
-
-
-
-
-
Horizontal Align
How should this widget be horizontally aligned?
diff --git a/modules/countdown-text.xml b/modules/countdown-text.xml
index c3a4b53227..fa35d721b7 100755
--- a/modules/countdown-text.xml
+++ b/modules/countdown-text.xml
@@ -192,14 +192,8 @@ body {
{% if fontFamily %}.hoursAll, .hours, .minutes, .seconds { font-family: {{fontFamily}}; }{% endif %}
{% if textColor %}.hoursAll, .hours, .minutes, .seconds { color: {{textColor}}; }{% endif %}
{% if dividerTextColor %}.countdown-container > p > span { color: {{dividerTextColor}}; }{% endif %}
-
-.warning .seconds, .warning .minutes, .warning .hours, .warning .hoursAll {
- color: {{warningColor}};
-}
-
-.finished .seconds, .finished .minutes, .finished .hours, .finished .hoursAll {
- color: {{finishedColor}};
-}
+{% if warningColor %}.warning .seconds, .warning .minutes, .warning .hours, .warning .hoursAll {color: {{warningColor}};}{% endif %}
+{% if finishedColor %}.finished .seconds, .finished .minutes, .finished .hours, .finished .hoursAll {color: {{finishedColor}};}{% endif %}
]]>
currencies
currency
%items%_%base%
+ 1
2
1
1
diff --git a/modules/dataset.xml b/modules/dataset.xml
index 24343e8f4f..5a26cea11e 100755
--- a/modules/dataset.xml
+++ b/modules/dataset.xml
@@ -187,6 +187,15 @@
+
+ The substitution [Tag:tagName:defaultValue] can also be used in filter clauses. Replace tagName with the actual display tag name you want to use and defaultValue with the value to be used if the tag value is not found (e.g., [Tag:region:unknown]). At runtime, it will be substituted with the Display's tag value or defaultValue if the tag value is not found. When shown in the CMS, it will be substituted with an empty string if the tag is not found at all.
+
+
+
+
+
+
+
[]
dataSetId
diff --git a/modules/forecastio.xml b/modules/forecastio.xml
index e6102edfbb..e62ec5e338 100755
--- a/modules/forecastio.xml
+++ b/modules/forecastio.xml
@@ -1,5 +1,5 @@
+
{% for item in head %}
diff --git a/package-lock.json b/package-lock.json
index 0186d7d742..678ee2bd43 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -2539,14 +2539,172 @@
}
},
"@babel/plugin-transform-optional-chaining": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.22.5.tgz",
- "integrity": "sha512-AconbMKOMkyG+xCng2JogMCDcqW8wedQAqpVIL4cOSescZ7+iW8utC6YDZLMCSUIReEA733gzRSaOSXMAt/4WQ==",
+ "version": "7.24.8",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.24.8.tgz",
+ "integrity": "sha512-5cTOLSMs9eypEy8JUVvIKOu6NgvbJMnpG62VpIHrTmROdQ+L5mDAaI40g25k5vXti55JWNX5jCkq3HZxXBQANw==",
"dev": true,
"requires": {
- "@babel/helper-plugin-utils": "^7.22.5",
- "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5",
+ "@babel/helper-plugin-utils": "^7.24.8",
+ "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7",
"@babel/plugin-syntax-optional-chaining": "^7.8.3"
+ },
+ "dependencies": {
+ "@babel/code-frame": {
+ "version": "7.24.7",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.7.tgz",
+ "integrity": "sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==",
+ "dev": true,
+ "requires": {
+ "@babel/highlight": "^7.24.7",
+ "picocolors": "^1.0.0"
+ }
+ },
+ "@babel/generator": {
+ "version": "7.25.0",
+ "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.25.0.tgz",
+ "integrity": "sha512-3LEEcj3PVW8pW2R1SR1M89g/qrYk/m/mB/tLqn7dn4sbBUQyTqnlod+II2U4dqiGtUmkcnAmkMDralTFZttRiw==",
+ "dev": true,
+ "requires": {
+ "@babel/types": "^7.25.0",
+ "@jridgewell/gen-mapping": "^0.3.5",
+ "@jridgewell/trace-mapping": "^0.3.25",
+ "jsesc": "^2.5.1"
+ }
+ },
+ "@babel/helper-plugin-utils": {
+ "version": "7.24.8",
+ "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.8.tgz",
+ "integrity": "sha512-FFWx5142D8h2Mgr/iPVGH5G7w6jDn4jUSpZTyDnQO0Yn7Ks2Kuz6Pci8H6MPCoUJegd/UZQ3tAvfLCxQSnWWwg==",
+ "dev": true
+ },
+ "@babel/helper-skip-transparent-expression-wrappers": {
+ "version": "7.24.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.24.7.tgz",
+ "integrity": "sha512-IO+DLT3LQUElMbpzlatRASEyQtfhSE0+m465v++3jyyXeBTBUjtVZg28/gHeV5mrTJqvEKhKroBGAvhW+qPHiQ==",
+ "dev": true,
+ "requires": {
+ "@babel/traverse": "^7.24.7",
+ "@babel/types": "^7.24.7"
+ }
+ },
+ "@babel/helper-string-parser": {
+ "version": "7.24.8",
+ "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.8.tgz",
+ "integrity": "sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ==",
+ "dev": true
+ },
+ "@babel/helper-validator-identifier": {
+ "version": "7.24.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz",
+ "integrity": "sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==",
+ "dev": true
+ },
+ "@babel/highlight": {
+ "version": "7.24.7",
+ "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.7.tgz",
+ "integrity": "sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-validator-identifier": "^7.24.7",
+ "chalk": "^2.4.2",
+ "js-tokens": "^4.0.0",
+ "picocolors": "^1.0.0"
+ }
+ },
+ "@babel/parser": {
+ "version": "7.25.3",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.25.3.tgz",
+ "integrity": "sha512-iLTJKDbJ4hMvFPgQwwsVoxtHyWpKKPBrxkANrSYewDPaPpT5py5yeVkgPIJ7XYXhndxJpaA3PyALSXQ7u8e/Dw==",
+ "dev": true,
+ "requires": {
+ "@babel/types": "^7.25.2"
+ }
+ },
+ "@babel/template": {
+ "version": "7.25.0",
+ "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.25.0.tgz",
+ "integrity": "sha512-aOOgh1/5XzKvg1jvVz7AVrx2piJ2XBi227DHmbY6y+bM9H2FlN+IfecYu4Xl0cNiiVejlsCri89LUsbj8vJD9Q==",
+ "dev": true,
+ "requires": {
+ "@babel/code-frame": "^7.24.7",
+ "@babel/parser": "^7.25.0",
+ "@babel/types": "^7.25.0"
+ }
+ },
+ "@babel/traverse": {
+ "version": "7.25.3",
+ "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.25.3.tgz",
+ "integrity": "sha512-HefgyP1x754oGCsKmV5reSmtV7IXj/kpaE1XYY+D9G5PvKKoFfSbiS4M77MdjuwlZKDIKFCffq9rPU+H/s3ZdQ==",
+ "dev": true,
+ "requires": {
+ "@babel/code-frame": "^7.24.7",
+ "@babel/generator": "^7.25.0",
+ "@babel/parser": "^7.25.3",
+ "@babel/template": "^7.25.0",
+ "@babel/types": "^7.25.2",
+ "debug": "^4.3.1",
+ "globals": "^11.1.0"
+ }
+ },
+ "@babel/types": {
+ "version": "7.25.2",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.25.2.tgz",
+ "integrity": "sha512-YTnYtra7W9e6/oAZEHj0bJehPRUlLH9/fbpT5LfB0NhQXyALCRkRs3zH9v07IYhkgpqX6Z78FnuccZr/l4Fs4Q==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-string-parser": "^7.24.8",
+ "@babel/helper-validator-identifier": "^7.24.7",
+ "to-fast-properties": "^2.0.0"
+ }
+ },
+ "@jridgewell/gen-mapping": {
+ "version": "0.3.5",
+ "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz",
+ "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==",
+ "dev": true,
+ "requires": {
+ "@jridgewell/set-array": "^1.2.1",
+ "@jridgewell/sourcemap-codec": "^1.4.10",
+ "@jridgewell/trace-mapping": "^0.3.24"
+ }
+ },
+ "@jridgewell/set-array": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz",
+ "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==",
+ "dev": true
+ },
+ "@jridgewell/trace-mapping": {
+ "version": "0.3.25",
+ "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz",
+ "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==",
+ "dev": true,
+ "requires": {
+ "@jridgewell/resolve-uri": "^3.1.0",
+ "@jridgewell/sourcemap-codec": "^1.4.14"
+ }
+ },
+ "debug": {
+ "version": "4.3.6",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.6.tgz",
+ "integrity": "sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==",
+ "dev": true,
+ "requires": {
+ "ms": "2.1.2"
+ }
+ },
+ "js-tokens": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
+ "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
+ "dev": true
+ },
+ "ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
+ "dev": true
+ }
}
},
"@babel/plugin-transform-parameters": {
@@ -3071,6 +3229,14 @@
"to-fast-properties": "^2.0.0"
}
},
+ "@cfcs/core": {
+ "version": "0.0.6",
+ "resolved": "https://registry.npmjs.org/@cfcs/core/-/core-0.0.6.tgz",
+ "integrity": "sha512-FxfJMwoLB8MEMConeXUCqtMGqxdtePQxRBOiGip9ULcYYam3WfCgoY6xdnMaSkYvRvmosp5iuG+TiPofm65+Pw==",
+ "requires": {
+ "@egjs/component": "^3.0.2"
+ }
+ },
"@colors/colors": {
"version": "1.5.0",
"resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz",
@@ -3150,6 +3316,11 @@
"@egjs/list-differ": "^1.0.0"
}
},
+ "@egjs/component": {
+ "version": "3.0.5",
+ "resolved": "https://registry.npmjs.org/@egjs/component/-/component-3.0.5.tgz",
+ "integrity": "sha512-cLcGizTrrUNA2EYE3MBmEDt2tQv1joVP1Q3oDisZ5nw0MZDx2kcgEXM+/kZpfa/PAkFvYVhRUZwytIQWoN3V/w=="
+ },
"@egjs/list-differ": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/@egjs/list-differ/-/list-differ-1.0.1.tgz",
@@ -8373,6 +8544,22 @@
"jquery": ">=1.9.1"
}
},
+ "keycode": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/keycode/-/keycode-2.2.1.tgz",
+ "integrity": "sha512-Rdgz9Hl9Iv4QKi8b0OlCRQEzp4AgVxyCtz5S/+VIHezDmrDhkp2N2TqBWOLz0/gbeREXOOiI9/4b8BY9uw2vFg=="
+ },
+ "keycon": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/keycon/-/keycon-1.4.0.tgz",
+ "integrity": "sha512-p1NAIxiRMH3jYfTeXRs2uWbVJ1WpEjpi8ktzUyBJsX7/wn2qu2VRXktneBLNtKNxJmlUYxRi9gOJt1DuthXR7A==",
+ "requires": {
+ "@cfcs/core": "^0.0.6",
+ "@daybrush/utils": "^1.7.1",
+ "@scena/event-emitter": "^1.0.2",
+ "keycode": "^2.2.0"
+ }
+ },
"kind-of": {
"version": "3.2.2",
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
@@ -10723,6 +10910,43 @@
"resolved": "https://registry.npmjs.org/select2-bootstrap-theme/-/select2-bootstrap-theme-0.1.0-beta.10.tgz",
"integrity": "sha512-gc9Y9yNjkGRqeFmI/pAKyL4maMKH9VKAn62E+uF/hxz8FTmfuKH0sDEGhFhk3f8Jp+emtsDdK1c1nb6S51BV0Q=="
},
+ "selecto": {
+ "version": "1.26.3",
+ "resolved": "https://registry.npmjs.org/selecto/-/selecto-1.26.3.tgz",
+ "integrity": "sha512-gZHgqMy5uyB6/2YDjv3Qqaf7bd2hTDOpPdxXlrez4R3/L0GiEWDCFaUfrflomgqdb3SxHF2IXY0Jw0EamZi7cw==",
+ "requires": {
+ "@daybrush/utils": "^1.13.0",
+ "@egjs/children-differ": "^1.0.1",
+ "@scena/dragscroll": "^1.4.0",
+ "@scena/event-emitter": "^1.0.5",
+ "css-styled": "^1.0.8",
+ "css-to-mat": "^1.1.1",
+ "framework-utils": "^1.1.0",
+ "gesto": "^1.19.4",
+ "keycon": "^1.2.0",
+ "overlap-area": "^1.1.0"
+ },
+ "dependencies": {
+ "css-to-mat": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/css-to-mat/-/css-to-mat-1.1.1.tgz",
+ "integrity": "sha512-kvpxFYZb27jRd2vium35G7q5XZ2WJ9rWjDUMNT36M3Hc41qCrLXFM5iEKMGXcrPsKfXEN+8l/riB4QzwwwiEyQ==",
+ "requires": {
+ "@daybrush/utils": "^1.13.0",
+ "@scena/matrix": "^1.0.0"
+ }
+ },
+ "gesto": {
+ "version": "1.19.4",
+ "resolved": "https://registry.npmjs.org/gesto/-/gesto-1.19.4.tgz",
+ "integrity": "sha512-hfr/0dWwh0Bnbb88s3QVJd1ZRJeOWcgHPPwmiH6NnafDYvhTsxg+SLYu+q/oPNh9JS3V+nlr6fNs8kvPAtcRDQ==",
+ "requires": {
+ "@daybrush/utils": "^1.13.0",
+ "@scena/event-emitter": "^1.0.2"
+ }
+ }
+ }
+ },
"semver": {
"version": "5.7.2",
"resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
@@ -11939,6 +12163,10 @@
"version": "git+https://github.com/xibosignage/xibo-interactive-control.git#44ad744a5a2a0af9e7fcdb828dbdbeff45cc40f0",
"from": "git+https://github.com/xibosignage/xibo-interactive-control.git#44ad744a5a2a0af9e7fcdb828dbdbeff45cc40f0"
},
+ "xibo-layout-renderer": {
+ "version": "git+https://github.com/xibosignage/xibo-layout-renderer.git#73b357402c5c483befa868889ce710698c34ffb3",
+ "from": "git+https://github.com/xibosignage/xibo-layout-renderer.git#73b357402c5c483befa868889ce710698c34ffb3"
+ },
"xtend": {
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
diff --git a/package.json b/package.json
index 25d4350925..7cdf3de11f 100644
--- a/package.json
+++ b/package.json
@@ -118,9 +118,11 @@
"popper.js": "^1.16.1",
"select2": "4.1.0-rc.0",
"select2-bootstrap-theme": "0.1.0-beta.10",
+ "selecto": "^1.26.3",
"serialize-javascript": "^3.1.0",
"toastr": "~2.1.4",
"underscore": "^1.12.1",
- "xibo-interactive-control": "git+https://github.com/xibosignage/xibo-interactive-control.git#44ad744a5a2a0af9e7fcdb828dbdbeff45cc40f0"
+ "xibo-interactive-control": "git+https://github.com/xibosignage/xibo-interactive-control.git#44ad744a5a2a0af9e7fcdb828dbdbeff45cc40f0",
+ "xibo-layout-renderer": "git+https://github.com/xibosignage/xibo-layout-renderer.git#73b357402c5c483befa868889ce710698c34ffb3"
}
}
diff --git a/reports/apirequests-email-template.twig b/reports/apirequests-email-template.twig
new file mode 100644
index 0000000000..d8ef7743db
--- /dev/null
+++ b/reports/apirequests-email-template.twig
@@ -0,0 +1,112 @@
+{#
+/**
+ * Copyright (C) 2024 Xibo Signage Ltd
+ *
+ * Xibo - Digital Signage - https://xibosignage.com
+ *
+ * This file is part of Xibo.
+ *
+ * Xibo is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * any later version.
+ *
+ * Xibo is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with Xibo. If not, see .
+ */
+#}
+{% extends "base-report.twig" %}
+
+{% block content %}
+
+ {% trans "From" %} {{ metadata.periodStart }} {% trans "To" %} {{ metadata.periodEnd }}
+
+
+
+
+ {% if metadata.logType == 'audit' %}
+
+ {% trans "Date" %}
+ {% trans "User Name" %}
+ {% trans "User ID" %}
+ {% trans "Application" %}
+ {% trans "Request ID" %}
+ {% trans "Method" %}
+ {% trans "Url" %}
+ {% trans "Entity" %}
+ {% trans "Entity ID" %}
+ {% trans "Message" %}
+ {% trans "Details" %}
+
+ {% for item in tableData %}
+
+ {{ item.logDate }}
+ {{ item.userName }}
+ {{ item.userId }}
+ {{ item.applicationName }}
+ {{ item.requestId }}
+ {{ item.method }}
+ {{ item.url }}
+ {{ item.entity }}
+ {{ item.entityId }}
+ {{ item.message }}
+ {{ item.objectAfter }}
+
+ {% endfor %}
+ {% elseif metadata.logType == 'debug' %}
+
+ {% trans "Date" %}
+ {% trans "UserName" %}
+ {% trans "User ID" %}
+ {% trans "Application" %}
+ {% trans "Request ID" %}
+ {% trans "Method" %}
+ {% trans "Url" %}
+ {% trans "Level" %}
+ {% trans "Details" %}
+
+ {% for item in tableData %}
+
+ {{ item.logDate }}
+ {{ item.userName }}
+ {{ item.userId }}
+ {{ item.applicationName }}
+ {{ item.requestId }}
+ {{ item.method }}
+ {{ item.url }}
+ {{ item.type }}
+ {{ item.message }}
+
+ {% endfor %}
+ {% else %}
+
+ {% trans "Date" %}
+ {% trans "UserName" %}
+ {% trans "User ID" %}
+ {% trans "Application" %}
+ {% trans "Request ID" %}
+ {% trans "Method" %}
+ {% trans "Url" %}
+
+ {% for item in tableData %}
+
+ {{ item.startTime }}
+ {{ item.userName }}
+ {{ item.userId }}
+ {{ item.applicationName }}
+ {{ item.requestId }}
+ {{ item.method }}
+ {{ item.url }}
+
+ {% endfor %}
+ {% endif %}
+
+
+ {{ placeholder }}
+
+{% endblock %}
\ No newline at end of file
diff --git a/reports/apirequests-report-form.twig b/reports/apirequests-report-form.twig
new file mode 100644
index 0000000000..8deecf7fb2
--- /dev/null
+++ b/reports/apirequests-report-form.twig
@@ -0,0 +1,393 @@
+{#
+/**
+ * Copyright (C) 2024 Xibo Signage Ltd
+ *
+ * Xibo - Digital Signage - https://xibosignage.com
+ *
+ * This file is part of Xibo.
+ *
+ * Xibo is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * any later version.
+ *
+ * Xibo is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with Xibo. If not, see .
+ */
+#}
+
+{% extends "authed.twig" %}
+{% import "inline.twig" as inline %}
+
+{% block title %}{% trans "Report: API Requests History" %} | {% endblock %}
+
+{% block actionMenu %}
+ {% include "report-schedule-buttons.twig" %}
+{% endblock %}
+
+{% block pageContent %}
+
+
+
+{% endblock %}
+
+{% block javaScript %}
+ {% verbatim %}
+
+ {% endverbatim %}
+
+
+{% endblock %}
\ No newline at end of file
diff --git a/reports/apirequests-report-preview.twig b/reports/apirequests-report-preview.twig
new file mode 100644
index 0000000000..4272176f7e
--- /dev/null
+++ b/reports/apirequests-report-preview.twig
@@ -0,0 +1,216 @@
+{#
+/**
+ * Copyright (C) 2024 Xibo Signage Ltd
+ *
+ * Xibo - Digital Signage - https://xibosignage.com
+ *
+ * This file is part of Xibo.
+ *
+ * Xibo is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * any later version.
+ *
+ * Xibo is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with Xibo. If not, see .
+ */
+#}
+
+{% extends "authed.twig" %}
+{% import "inline.twig" as inline %}
+
+{% block actionMenu %}
+
+{% endblock %}
+
+{% block pageContent %}
+
+
+
+{% endblock %}
+
+{% block javaScript %}
+
+{% endblock %}
\ No newline at end of file
diff --git a/reports/apirequests-schedule-form-add.twig b/reports/apirequests-schedule-form-add.twig
new file mode 100644
index 0000000000..add3fa0e9d
--- /dev/null
+++ b/reports/apirequests-schedule-form-add.twig
@@ -0,0 +1,95 @@
+{#
+/**
+ * Copyright (C) 2024 Xibo Signage Ltd
+ *
+ * Xibo - Digital Signage - https://xibosignage.com
+ *
+ * This file is part of Xibo.
+ *
+ * Xibo is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * any later version.
+ *
+ * Xibo is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with Xibo. If not, see .
+ */
+#}
+{% extends "form-base.twig" %}
+{% import "forms.twig" as forms %}
+
+{% block formTitle %}
+ {% trans "Add Report Schedule" %}
+{% endblock %}
+
+{% block formButtons %}
+ {% trans "Cancel" %}, XiboDialogClose()
+ {% trans "Save" %}, $("#reportScheduleAddForm").submit()
+{% endblock %}
+
+{% block formHtml %}
+
+{% endblock %}
\ No newline at end of file
diff --git a/reports/apirequests.report b/reports/apirequests.report
new file mode 100644
index 0000000000..e445102645
--- /dev/null
+++ b/reports/apirequests.report
@@ -0,0 +1,14 @@
+{
+ "name": "apirequests",
+ "description": "API Requests History",
+ "class": "\\Xibo\\Report\\ApiRequests",
+ "type": "Report",
+ "output_type": "table",
+ "color":"orange",
+ "fa_icon": "fa-th",
+ "sort_order": 5,
+ "hidden": 0,
+ "category": "Audit",
+ "feature": "admin",
+ "adminOnly": 1
+}
diff --git a/reports/bandwidth-report-form.twig b/reports/bandwidth-report-form.twig
index 4f7f6936d0..2e012fdb3b 100644
--- a/reports/bandwidth-report-form.twig
+++ b/reports/bandwidth-report-form.twig
@@ -138,7 +138,7 @@
{% endblock %}
{% block javaScript %}
-
+{% endblock %}
\ No newline at end of file
diff --git a/reports/displayalerts-report-preview.twig b/reports/displayalerts-report-preview.twig
new file mode 100644
index 0000000000..4b601467a4
--- /dev/null
+++ b/reports/displayalerts-report-preview.twig
@@ -0,0 +1,122 @@
+{#
+/**
+ * Copyright (C) 2020 Xibo Signage Ltd
+ *
+ * Xibo - Digital Signage - http://www.xibo.org.uk
+ *
+ * This file is part of Xibo.
+ *
+ * Xibo is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * any later version.
+ *
+ * Xibo is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with Xibo. If not, see .
+ */
+#}
+
+{% extends "authed.twig" %}
+{% import "inline.twig" as inline %}
+
+{% block actionMenu %}
+
+{% endblock %}
+
+{% block pageContent %}
+
+
+
+{% endblock %}
+
+{% block javaScript %}
+
+{% endblock %}
\ No newline at end of file
diff --git a/reports/displayalerts-schedule-form-add.twig b/reports/displayalerts-schedule-form-add.twig
new file mode 100644
index 0000000000..5a60f409a8
--- /dev/null
+++ b/reports/displayalerts-schedule-form-add.twig
@@ -0,0 +1,106 @@
+{#
+/**
+ * Copyright (C) 2024 Xibo Signage Ltd
+ *
+ * Xibo - Digital Signage - https://xibosignage.com
+ *
+ * This file is part of Xibo.
+ *
+ * Xibo is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * any later version.
+ *
+ * Xibo is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with Xibo. If not, see .
+ */
+#}
+{% extends "form-base.twig" %}
+{% import "forms.twig" as forms %}
+
+{% block formTitle %}
+ {% trans "Add Report Schedule" %}
+{% endblock %}
+
+{% block formButtons %}
+ {% trans "Cancel" %}, XiboDialogClose()
+ {% trans "Save" %}, $("#reportScheduleAddForm").submit()
+{% endblock %}
+
+{% block callBack %}displayAlertsReportScheduleFormOpen{% endblock %}
+
+{% block formHtml %}
+
+{% endblock %}
\ No newline at end of file
diff --git a/reports/displayalerts.report b/reports/displayalerts.report
new file mode 100644
index 0000000000..d5616ccd4f
--- /dev/null
+++ b/reports/displayalerts.report
@@ -0,0 +1,14 @@
+{
+ "name": "displayalerts",
+ "description": "Display Alerts",
+ "class": "\\Xibo\\Report\\DisplayAlerts",
+ "type": "Report",
+ "output_type": "table",
+ "color":"orange",
+ "fa_icon": "fa-bell",
+ "sort_order": 5,
+ "hidden": 0,
+ "category": "Display",
+ "feature": "displays.reporting",
+ "adminOnly": 0
+}
\ No newline at end of file
diff --git a/reports/distribution-report-form.twig b/reports/distribution-report-form.twig
index 40a40560f8..cc3863a504 100644
--- a/reports/distribution-report-form.twig
+++ b/reports/distribution-report-form.twig
@@ -228,7 +228,7 @@
{% endblock %}
{% block javaScript %}
-
+ {% endverbatim %}
+
+
+{% endblock %}
\ No newline at end of file
diff --git a/reports/sessionhistory-report-preview.twig b/reports/sessionhistory-report-preview.twig
new file mode 100644
index 0000000000..82f170bb56
--- /dev/null
+++ b/reports/sessionhistory-report-preview.twig
@@ -0,0 +1,104 @@
+{#
+/**
+ * Copyright (C) 2024 Xibo Signage Ltd
+ *
+ * Xibo - Digital Signage - https://xibosignage.com
+ *
+ * This file is part of Xibo.
+ *
+ * Xibo is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * any later version.
+ *
+ * Xibo is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with Xibo. If not, see .
+ */
+#}
+
+{% extends "authed.twig" %}
+{% import "inline.twig" as inline %}
+
+{% block actionMenu %}
+
+{% endblock %}
+
+{% block pageContent %}
+
+
+
+{% endblock %}
+
+{% block javaScript %}
+
+{% endblock %}
\ No newline at end of file
diff --git a/reports/sessionhistory-schedule-form-add.twig b/reports/sessionhistory-schedule-form-add.twig
new file mode 100644
index 0000000000..b4837e2d4b
--- /dev/null
+++ b/reports/sessionhistory-schedule-form-add.twig
@@ -0,0 +1,94 @@
+{#
+/**
+ * Copyright (C) 2024 Xibo Signage Ltd
+ *
+ * Xibo - Digital Signage - https://xibosignage.com
+ *
+ * This file is part of Xibo.
+ *
+ * Xibo is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * any later version.
+ *
+ * Xibo is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with Xibo. If not, see .
+ */
+#}
+{% extends "form-base.twig" %}
+{% import "forms.twig" as forms %}
+
+{% block formTitle %}
+ {% trans "Add Report Schedule" %}
+{% endblock %}
+
+{% block formButtons %}
+ {% trans "Cancel" %}, XiboDialogClose()
+ {% trans "Save" %}, $("#reportScheduleAddForm").submit()
+{% endblock %}
+
+{% block formHtml %}
+
+{% endblock %}
\ No newline at end of file
diff --git a/reports/sessionhistory.report b/reports/sessionhistory.report
new file mode 100644
index 0000000000..1bcb37f9d9
--- /dev/null
+++ b/reports/sessionhistory.report
@@ -0,0 +1,14 @@
+{
+ "name": "sessionhistory",
+ "description": "Session History",
+ "class": "\\Xibo\\Report\\SessionHistory",
+ "type": "Report",
+ "output_type": "table",
+ "color":"orange",
+ "fa_icon": "fa-th",
+ "sort_order": 5,
+ "hidden": 0,
+ "category": "Audit",
+ "feature": "admin",
+ "adminOnly": 1
+}
diff --git a/reports/summary-report-form.twig b/reports/summary-report-form.twig
index 61610adea4..6a8eae7a45 100644
--- a/reports/summary-report-form.twig
+++ b/reports/summary-report-form.twig
@@ -229,7 +229,7 @@
{% endblock %}
{% block javaScript %}
-
+
+```
-**Note:** CKEditor is by default installed in the `ckeditor` folder. You can
-place the files in whichever you want though.
+Or in your JavaScript application:
-## Checking Your Installation
+```js
+import ClassicEditor from '@ckeditor/ckeditor5-build-classic';
-The editor comes with a few sample pages that can be used to verify that
-installation proceeded properly. Take a look at the `samples` directory.
+// Or using the CommonJS version:
+// const ClassicEditor = require( '@ckeditor/ckeditor5-build-classic' );
-To test your installation, just call the following page at your website:
+ClassicEditor
+ .create( document.querySelector( '#editor' ) )
+ .then( editor => {
+ window.editor = editor;
+ } )
+ .catch( error => {
+ console.error( 'There was a problem initializing the editor.', error );
+ } );
+```
- http:////samples/index.html
+**Note:** If you are planning to integrate CKEditor 5 deep into your application, it is actually more convenient and recommended to install and import the source modules directly (like it happens in `ckeditor.js`). Read more in the [Advanced setup guide](https://ckeditor.com/docs/ckeditor5/latest/installation/advanced/alternative-setups/integrating-from-source-webpack.html).
-For example:
+## License
- http://www.example.com/ckeditor/samples/index.html
+Licensed under the terms of [GNU General Public License Version 2 or later](http://www.gnu.org/licenses/gpl.html). For full details about the license, please check the `LICENSE.md` file or [https://ckeditor.com/legal/ckeditor-oss-license](https://ckeditor.com/legal/ckeditor-oss-license).
diff --git a/ui/src/vendor/ckeditor/adapters/jquery.js b/ui/src/vendor/ckeditor/adapters/jquery.js
deleted file mode 100644
index 0f6e64fbe3..0000000000
--- a/ui/src/vendor/ckeditor/adapters/jquery.js
+++ /dev/null
@@ -1,10 +0,0 @@
-/*
- Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
- For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
-*/
-(function(a){if("undefined"==typeof a)throw Error("jQuery should be loaded before CKEditor jQuery adapter.");if("undefined"==typeof CKEDITOR)throw Error("CKEditor should be loaded before CKEditor jQuery adapter.");CKEDITOR.config.jqueryOverrideVal="undefined"==typeof CKEDITOR.config.jqueryOverrideVal?!0:CKEDITOR.config.jqueryOverrideVal;a.extend(a.fn,{ckeditorGet:function(){var a=this.eq(0).data("ckeditorInstance");if(!a)throw"CKEditor is not initialized yet, use ckeditor() with a callback.";return a},
-ckeditor:function(g,e){if(!CKEDITOR.env.isCompatible)throw Error("The environment is incompatible.");if(!a.isFunction(g)){var m=e;e=g;g=m}var k=[];e=e||{};this.each(function(){var b=a(this),c=b.data("ckeditorInstance"),f=b.data("_ckeditorInstanceLock"),h=this,l=new a.Deferred;k.push(l.promise());if(c&&!f)g&&g.apply(c,[this]),l.resolve();else if(f)c.once("instanceReady",function(){setTimeout(function d(){c.element?(c.element.$==h&&g&&g.apply(c,[h]),l.resolve()):setTimeout(d,100)},0)},null,null,9999);
-else{if(e.autoUpdateElement||"undefined"==typeof e.autoUpdateElement&&CKEDITOR.config.autoUpdateElement)e.autoUpdateElementJquery=!0;e.autoUpdateElement=!1;b.data("_ckeditorInstanceLock",!0);c=a(this).is("textarea")?CKEDITOR.replace(h,e):CKEDITOR.inline(h,e);b.data("ckeditorInstance",c);c.on("instanceReady",function(e){var d=e.editor;setTimeout(function n(){if(d.element){e.removeListener();d.on("dataReady",function(){b.trigger("dataReady.ckeditor",[d])});d.on("setData",function(a){b.trigger("setData.ckeditor",
-[d,a.data])});d.on("getData",function(a){b.trigger("getData.ckeditor",[d,a.data])},999);d.on("destroy",function(){b.trigger("destroy.ckeditor",[d])});d.on("save",function(){a(h.form).submit();return!1},null,null,20);if(d.config.autoUpdateElementJquery&&b.is("textarea")&&a(h.form).length){var c=function(){b.ckeditor(function(){d.updateElement()})};a(h.form).submit(c);a(h.form).bind("form-pre-serialize",c);b.bind("destroy.ckeditor",function(){a(h.form).unbind("submit",c);a(h.form).unbind("form-pre-serialize",
-c)})}d.on("destroy",function(){b.removeData("ckeditorInstance")});b.removeData("_ckeditorInstanceLock");b.trigger("instanceReady.ckeditor",[d]);g&&g.apply(d,[h]);l.resolve()}else setTimeout(n,100)},0)},null,null,9999)}});var f=new a.Deferred;this.promise=f.promise();a.when.apply(this,k).then(function(){f.resolve()});this.editor=this.eq(0).data("ckeditorInstance");return this}});CKEDITOR.config.jqueryOverrideVal&&(a.fn.val=CKEDITOR.tools.override(a.fn.val,function(g){return function(e){if(arguments.length){var m=
-this,k=[],f=this.each(function(){var b=a(this),c=b.data("ckeditorInstance");if(b.is("textarea")&&c){var f=new a.Deferred;c.setData(e,function(){f.resolve()});k.push(f.promise());return!0}return g.call(b,e)});if(k.length){var b=new a.Deferred;a.when.apply(this,k).done(function(){b.resolveWith(m)});return b.promise()}return f}var f=a(this).eq(0),c=f.data("ckeditorInstance");return f.is("textarea")&&c?c.getData():g.call(f)}}))})(window.jQuery);
\ No newline at end of file
diff --git a/ui/src/vendor/ckeditor/build/ckeditor.d.ts b/ui/src/vendor/ckeditor/build/ckeditor.d.ts
new file mode 100644
index 0000000000..5426caa045
--- /dev/null
+++ b/ui/src/vendor/ckeditor/build/ckeditor.d.ts
@@ -0,0 +1,15 @@
+/**
+ * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
+ */
+import { ClassicEditor as ClassicEditorBase } from '@ckeditor/ckeditor5-editor-classic';
+import { InlineEditor as InlineEditorBase } from '@ckeditor/ckeditor5-editor-inline';
+declare class ClassicEditor extends ClassicEditorBase {
+}
+declare class InlineEditor extends InlineEditorBase {
+}
+declare const _default: {
+ ClassicEditor: typeof ClassicEditor;
+ InlineEditor: typeof InlineEditor;
+};
+export default _default;
diff --git a/ui/src/vendor/ckeditor/build/ckeditor.js b/ui/src/vendor/ckeditor/build/ckeditor.js
new file mode 100644
index 0000000000..59cf544c7c
--- /dev/null
+++ b/ui/src/vendor/ckeditor/build/ckeditor.js
@@ -0,0 +1,7 @@
+!function(t){const e=t.en=t.en||{};e.dictionary=Object.assign(e.dictionary||{},{"(may require Fn )":"(may require Fn )","%0 of %1":"%0 of %1",Accept:"Accept",Accessibility:"Accessibility","Accessibility help":"Accessibility help","Align cell text to the bottom":"Align cell text to the bottom","Align cell text to the center":"Align cell text to the center","Align cell text to the left":"Align cell text to the left","Align cell text to the middle":"Align cell text to the middle","Align cell text to the right":"Align cell text to the right","Align cell text to the top":"Align cell text to the top","Align center":"Align center","Align left":"Align left","Align right":"Align right","Align table to the left":"Align table to the left","Align table to the right":"Align table to the right",Alignment:"Alignment",All:"All","Almost equal to":"Almost equal to",Angle:"Angle","Approximately equal to":"Approximately equal to",Aquamarine:"Aquamarine",Arrows:"Arrows","Asterisk operator":"Asterisk operator","Austral sign":"Austral sign","back with leftwards arrow above":"back with leftwards arrow above",Background:"Background","Below, you can find a list of keyboard shortcuts that can be used in the editor.":"Below, you can find a list of keyboard shortcuts that can be used in the editor.",Big:"Big","Bitcoin sign":"Bitcoin sign",Black:"Black","Block quote":"Block quote",Blue:"Blue",Bold:"Bold","Bold text":"Bold text",Border:"Border","Break text":"Break text","Bulleted List":"Bulleted List","Bulleted list styles toolbar":"Bulleted list styles toolbar",Cancel:"Cancel","Caption for image: %0":"Caption for image: %0","Caption for the image":"Caption for the image","Cedi sign":"Cedi sign","Cell properties":"Cell properties","Cent sign":"Cent sign","Center table":"Center table","Centered image":"Centered image","Change image text alternative":"Change image text alternative","Character categories":"Character categories","Choose heading":"Choose heading",Circle:"Circle",Clear:"Clear","Click to edit block":"Click to edit block",Close:"Close","Close contextual balloons, dropdowns, and dialogs":"Close contextual balloons, dropdowns, and dialogs",Code:"Code","Colon sign":"Colon sign",Color:"Color","Color picker":"Color picker",Column:"Column","Contains as member":"Contains as member","Content editing keystrokes":"Content editing keystrokes","Copy selected content":"Copy selected content","Copyright sign":"Copyright sign","Cruzeiro sign":"Cruzeiro sign",Currency:"Currency","Currency sign":"Currency sign",Custom:"Custom","Custom image size":"Custom image size",Dashed:"Dashed",Decimal:"Decimal","Decimal with leading zero":"Decimal with leading zero","Decrease indent":"Decrease indent","Decrease list item indent":"Decrease list item indent",Default:"Default","Degree sign":"Degree sign","Delete column":"Delete column","Delete row":"Delete row","Dim grey":"Dim grey",Dimensions:"Dimensions",Disc:"Disc","Division sign":"Division sign","Document colors":"Document colors","Dollar sign":"Dollar sign","Dong sign":"Dong sign",Dotted:"Dotted",Double:"Double","Double dagger":"Double dagger","Double exclamation mark":"Double exclamation mark","Double low-9 quotation mark":"Double low-9 quotation mark","Double question mark":"Double question mark","downwards arrow to bar":"downwards arrow to bar","downwards dashed arrow":"downwards dashed arrow","downwards double arrow":"downwards double arrow","downwards simple arrow":"downwards simple arrow","Drachma sign":"Drachma sign","Drag to move":"Drag to move","Dropdown toolbar":"Dropdown toolbar","Edit block":"Edit block","Editor block content toolbar":"Editor block content toolbar","Editor contextual toolbar":"Editor contextual toolbar","Editor dialog":"Editor dialog","Editor editing area: %0":"Editor editing area: %0","Editor menu bar":"Editor menu bar","Editor toolbar":"Editor toolbar","Element of":"Element of","Em dash":"Em dash","Empty set":"Empty set","En dash":"En dash","end with leftwards arrow above":"end with leftwards arrow above","Enter image caption":"Enter image caption","Enter table caption":"Enter table caption","Entering a to-do list":"Entering a to-do list","Error during image upload":"Error during image upload","Euro sign":"Euro sign","Euro-currency sign":"Euro-currency sign","Exclamation question mark":"Exclamation question mark","Execute the currently focused button. Executing buttons that interact with the editor content moves the focus back to the content.":"Execute the currently focused button. Executing buttons that interact with the editor content moves the focus back to the content.","Font Background Color":"Font Background Color","Font Color":"Font Color","Font Family":"Font Family","Font Size":"Font Size","For all":"For all","Fraction slash":"Fraction slash","French franc sign":"French franc sign","Full size image":"Full size image","German penny sign":"German penny sign","Greater-than or equal to":"Greater-than or equal to","Greater-than sign":"Greater-than sign",Green:"Green",Grey:"Grey",Groove:"Groove","Guarani sign":"Guarani sign","Header column":"Header column","Header row":"Header row",Heading:"Heading","Heading 1":"Heading 1","Heading 2":"Heading 2","Heading 3":"Heading 3","Heading 4":"Heading 4","Heading 5":"Heading 5","Heading 6":"Heading 6",Height:"Height","Help Contents. To close this dialog press ESC.":"Help Contents. To close this dialog press ESC.",HEX:"HEX","Horizontal ellipsis":"Horizontal ellipsis","Horizontal line":"Horizontal line","Horizontal text alignment toolbar":"Horizontal text alignment toolbar","Hryvnia sign":"Hryvnia sign",Huge:"Huge","Identical to":"Identical to","Image from computer":"Image from computer","Image resize list":"Image resize list","Image toolbar":"Image toolbar","Image upload complete":"Image upload complete","image widget":"image widget","In line":"In line","Increase indent":"Increase indent","Increase list item indent":"Increase list item indent","Indian rupee sign":"Indian rupee sign",Infinity:"Infinity",Insert:"Insert","Insert a hard break (a new paragraph)":"Insert a hard break (a new paragraph)","Insert a new paragraph directly after a widget":"Insert a new paragraph directly after a widget","Insert a new paragraph directly before a widget":"Insert a new paragraph directly before a widget","Insert a new table row (when in the last cell of a table)":"Insert a new table row (when in the last cell of a table)","Insert a soft break (a <br>
element)":"Insert a soft break (a <br>
element)","Insert column left":"Insert column left","Insert column right":"Insert column right","Insert image":"Insert image","Insert image via URL":"Insert image via URL","Insert paragraph after block":"Insert paragraph after block","Insert paragraph before block":"Insert paragraph before block","Insert row above":"Insert row above","Insert row below":"Insert row below","Insert table":"Insert table",Inset:"Inset",Integral:"Integral",Intersection:"Intersection","Invalid start index value.":"Invalid start index value.","Inverted exclamation mark":"Inverted exclamation mark","Inverted question mark":"Inverted question mark",Italic:"Italic","Italic text":"Italic text",Justify:"Justify","Justify cell text":"Justify cell text","Keystrokes that can be used in a list":"Keystrokes that can be used in a list","Keystrokes that can be used in a table cell":"Keystrokes that can be used in a table cell","Keystrokes that can be used when a widget is selected (for example: image, table, etc.)":"Keystrokes that can be used when a widget is selected (for example: image, table, etc.)","Kip sign":"Kip sign",Latin:"Latin","Latin capital letter a with breve":"Latin capital letter a with breve","Latin capital letter a with macron":"Latin capital letter a with macron","Latin capital letter a with ogonek":"Latin capital letter a with ogonek","Latin capital letter c with acute":"Latin capital letter c with acute","Latin capital letter c with caron":"Latin capital letter c with caron","Latin capital letter c with circumflex":"Latin capital letter c with circumflex","Latin capital letter c with dot above":"Latin capital letter c with dot above","Latin capital letter d with caron":"Latin capital letter d with caron","Latin capital letter d with stroke":"Latin capital letter d with stroke","Latin capital letter e with breve":"Latin capital letter e with breve","Latin capital letter e with caron":"Latin capital letter e with caron","Latin capital letter e with dot above":"Latin capital letter e with dot above","Latin capital letter e with macron":"Latin capital letter e with macron","Latin capital letter e with ogonek":"Latin capital letter e with ogonek","Latin capital letter eng":"Latin capital letter eng","Latin capital letter g with breve":"Latin capital letter g with breve","Latin capital letter g with cedilla":"Latin capital letter g with cedilla","Latin capital letter g with circumflex":"Latin capital letter g with circumflex","Latin capital letter g with dot above":"Latin capital letter g with dot above","Latin capital letter h with circumflex":"Latin capital letter h with circumflex","Latin capital letter h with stroke":"Latin capital letter h with stroke","Latin capital letter i with breve":"Latin capital letter i with breve","Latin capital letter i with dot above":"Latin capital letter i with dot above","Latin capital letter i with macron":"Latin capital letter i with macron","Latin capital letter i with ogonek":"Latin capital letter i with ogonek","Latin capital letter i with tilde":"Latin capital letter i with tilde","Latin capital letter j with circumflex":"Latin capital letter j with circumflex","Latin capital letter k with cedilla":"Latin capital letter k with cedilla","Latin capital letter l with acute":"Latin capital letter l with acute","Latin capital letter l with caron":"Latin capital letter l with caron","Latin capital letter l with cedilla":"Latin capital letter l with cedilla","Latin capital letter l with middle dot":"Latin capital letter l with middle dot","Latin capital letter l with stroke":"Latin capital letter l with stroke","Latin capital letter n with acute":"Latin capital letter n with acute","Latin capital letter n with caron":"Latin capital letter n with caron","Latin capital letter n with cedilla":"Latin capital letter n with cedilla","Latin capital letter o with breve":"Latin capital letter o with breve","Latin capital letter o with double acute":"Latin capital letter o with double acute","Latin capital letter o with macron":"Latin capital letter o with macron","Latin capital letter r with acute":"Latin capital letter r with acute","Latin capital letter r with caron":"Latin capital letter r with caron","Latin capital letter r with cedilla":"Latin capital letter r with cedilla","Latin capital letter s with acute":"Latin capital letter s with acute","Latin capital letter s with caron":"Latin capital letter s with caron","Latin capital letter s with cedilla":"Latin capital letter s with cedilla","Latin capital letter s with circumflex":"Latin capital letter s with circumflex","Latin capital letter t with caron":"Latin capital letter t with caron","Latin capital letter t with cedilla":"Latin capital letter t with cedilla","Latin capital letter t with stroke":"Latin capital letter t with stroke","Latin capital letter u with breve":"Latin capital letter u with breve","Latin capital letter u with double acute":"Latin capital letter u with double acute","Latin capital letter u with macron":"Latin capital letter u with macron","Latin capital letter u with ogonek":"Latin capital letter u with ogonek","Latin capital letter u with ring above":"Latin capital letter u with ring above","Latin capital letter u with tilde":"Latin capital letter u with tilde","Latin capital letter w with circumflex":"Latin capital letter w with circumflex","Latin capital letter y with circumflex":"Latin capital letter y with circumflex","Latin capital letter y with diaeresis":"Latin capital letter y with diaeresis","Latin capital letter z with acute":"Latin capital letter z with acute","Latin capital letter z with caron":"Latin capital letter z with caron","Latin capital letter z with dot above":"Latin capital letter z with dot above","Latin capital ligature ij":"Latin capital ligature ij","Latin capital ligature oe":"Latin capital ligature oe","Latin small letter a with breve":"Latin small letter a with breve","Latin small letter a with macron":"Latin small letter a with macron","Latin small letter a with ogonek":"Latin small letter a with ogonek","Latin small letter c with acute":"Latin small letter c with acute","Latin small letter c with caron":"Latin small letter c with caron","Latin small letter c with circumflex":"Latin small letter c with circumflex","Latin small letter c with dot above":"Latin small letter c with dot above","Latin small letter d with caron":"Latin small letter d with caron","Latin small letter d with stroke":"Latin small letter d with stroke","Latin small letter dotless i":"Latin small letter dotless i","Latin small letter e with breve":"Latin small letter e with breve","Latin small letter e with caron":"Latin small letter e with caron","Latin small letter e with dot above":"Latin small letter e with dot above","Latin small letter e with macron":"Latin small letter e with macron","Latin small letter e with ogonek":"Latin small letter e with ogonek","Latin small letter eng":"Latin small letter eng","Latin small letter f with hook":"Latin small letter f with hook","Latin small letter g with breve":"Latin small letter g with breve","Latin small letter g with cedilla":"Latin small letter g with cedilla","Latin small letter g with circumflex":"Latin small letter g with circumflex","Latin small letter g with dot above":"Latin small letter g with dot above","Latin small letter h with circumflex":"Latin small letter h with circumflex","Latin small letter h with stroke":"Latin small letter h with stroke","Latin small letter i with breve":"Latin small letter i with breve","Latin small letter i with macron":"Latin small letter i with macron","Latin small letter i with ogonek":"Latin small letter i with ogonek","Latin small letter i with tilde":"Latin small letter i with tilde","Latin small letter j with circumflex":"Latin small letter j with circumflex","Latin small letter k with cedilla":"Latin small letter k with cedilla","Latin small letter kra":"Latin small letter kra","Latin small letter l with acute":"Latin small letter l with acute","Latin small letter l with caron":"Latin small letter l with caron","Latin small letter l with cedilla":"Latin small letter l with cedilla","Latin small letter l with middle dot":"Latin small letter l with middle dot","Latin small letter l with stroke":"Latin small letter l with stroke","Latin small letter long s":"Latin small letter long s","Latin small letter n preceded by apostrophe":"Latin small letter n preceded by apostrophe","Latin small letter n with acute":"Latin small letter n with acute","Latin small letter n with caron":"Latin small letter n with caron","Latin small letter n with cedilla":"Latin small letter n with cedilla","Latin small letter o with breve":"Latin small letter o with breve","Latin small letter o with double acute":"Latin small letter o with double acute","Latin small letter o with macron":"Latin small letter o with macron","Latin small letter r with acute":"Latin small letter r with acute","Latin small letter r with caron":"Latin small letter r with caron","Latin small letter r with cedilla":"Latin small letter r with cedilla","Latin small letter s with acute":"Latin small letter s with acute","Latin small letter s with caron":"Latin small letter s with caron","Latin small letter s with cedilla":"Latin small letter s with cedilla","Latin small letter s with circumflex":"Latin small letter s with circumflex","Latin small letter t with caron":"Latin small letter t with caron","Latin small letter t with cedilla":"Latin small letter t with cedilla","Latin small letter t with stroke":"Latin small letter t with stroke","Latin small letter u with breve":"Latin small letter u with breve","Latin small letter u with double acute":"Latin small letter u with double acute","Latin small letter u with macron":"Latin small letter u with macron","Latin small letter u with ogonek":"Latin small letter u with ogonek","Latin small letter u with ring above":"Latin small letter u with ring above","Latin small letter u with tilde":"Latin small letter u with tilde","Latin small letter w with circumflex":"Latin small letter w with circumflex","Latin small letter y with circumflex":"Latin small letter y with circumflex","Latin small letter z with acute":"Latin small letter z with acute","Latin small letter z with caron":"Latin small letter z with caron","Latin small letter z with dot above":"Latin small letter z with dot above","Latin small ligature ij":"Latin small ligature ij","Latin small ligature oe":"Latin small ligature oe","Leaving a to-do list":"Leaving a to-do list","Left aligned image":"Left aligned image","Left double quotation mark":"Left double quotation mark","Left single quotation mark":"Left single quotation mark","Left-pointing double angle quotation mark":"Left-pointing double angle quotation mark","leftwards arrow to bar":"leftwards arrow to bar","leftwards dashed arrow":"leftwards dashed arrow","leftwards double arrow":"leftwards double arrow","leftwards simple arrow":"leftwards simple arrow","Less-than or equal to":"Less-than or equal to","Less-than sign":"Less-than sign","Light blue":"Light blue","Light green":"Light green","Light grey":"Light grey","Lira sign":"Lira sign","List properties":"List properties","Livre tournois sign":"Livre tournois sign","Logical and":"Logical and","Logical or":"Logical or","Lower-latin":"Lower-latin","Lower–roman":"Lower–roman",Macron:"Macron","Manat sign":"Manat sign",Mathematical:"Mathematical",MENU_BAR_MENU_EDIT:"Edit",MENU_BAR_MENU_FILE:"File",MENU_BAR_MENU_FONT:"Font",MENU_BAR_MENU_FORMAT:"Format",MENU_BAR_MENU_HELP:"Help",MENU_BAR_MENU_INSERT:"Insert",MENU_BAR_MENU_TEXT:"Text",MENU_BAR_MENU_TOOLS:"Tools",MENU_BAR_MENU_VIEW:"View","Merge cell down":"Merge cell down","Merge cell left":"Merge cell left","Merge cell right":"Merge cell right","Merge cell up":"Merge cell up","Merge cells":"Merge cells","Mill sign":"Mill sign","Minus sign":"Minus sign","Move focus between form fields (inputs, buttons, etc.)":"Move focus between form fields (inputs, buttons, etc.)","Move focus in and out of an active dialog window":"Move focus in and out of an active dialog window","Move focus to the menu bar, navigate between menu bars":"Move focus to the menu bar, navigate between menu bars","Move focus to the toolbar, navigate between toolbars":"Move focus to the toolbar, navigate between toolbars","Move out of an inline code style":"Move out of an inline code style","Move the caret to allow typing directly after a widget":"Move the caret to allow typing directly after a widget","Move the caret to allow typing directly before a widget":"Move the caret to allow typing directly before a widget","Move the selection to the next cell":"Move the selection to the next cell","Move the selection to the previous cell":"Move the selection to the previous cell","Multiplication sign":"Multiplication sign","N-ary product":"N-ary product","N-ary summation":"N-ary summation",Nabla:"Nabla","Naira sign":"Naira sign","Navigate through the table":"Navigate through the table","Navigate through the toolbar or menu bar":"Navigate through the toolbar or menu bar","New sheqel sign":"New sheqel sign",Next:"Next","No results found":"No results found","No searchable items":"No searchable items",None:"None","Nordic mark sign":"Nordic mark sign","Not an element of":"Not an element of","Not equal to":"Not equal to","Not sign":"Not sign","Numbered List":"Numbered List","Numbered list styles toolbar":"Numbered list styles toolbar","on with exclamation mark with left right arrow above":"on with exclamation mark with left right arrow above","Open the accessibility help dialog":"Open the accessibility help dialog",Orange:"Orange",Original:"Original",Outset:"Outset",Overline:"Overline",Padding:"Padding",Paragraph:"Paragraph","Paragraph sign":"Paragraph sign","Partial differential":"Partial differential","Paste content":"Paste content","Paste content as plain text":"Paste content as plain text","Per mille sign":"Per mille sign","Per ten thousand sign":"Per ten thousand sign","Peseta sign":"Peseta sign","Peso sign":"Peso sign",'Please enter a valid color (e.g. "ff0000").':'Please enter a valid color (e.g. "ff0000").',"Plus-minus sign":"Plus-minus sign","Pound sign":"Pound sign","Press %0 for help.":"Press %0 for help.","Press Enter to type after or press Shift + Enter to type before the widget":"Press Enter to type after or press Shift + Enter to type before the widget",Previous:"Previous","Proportional to":"Proportional to",Purple:"Purple","Question exclamation mark":"Question exclamation mark",Red:"Red",Redo:"Redo","Registered sign":"Registered sign","Remove color":"Remove color","Replace from computer":"Replace from computer","Replace image":"Replace image","Replace image from computer":"Replace image from computer","Resize image":"Resize image","Resize image (in %0)":"Resize image (in %0)","Resize image to %0":"Resize image to %0","Resize image to the original size":"Resize image to the original size","Restore default":"Restore default","Reversed order":"Reversed order","Reversed paragraph sign":"Reversed paragraph sign","Revert autoformatting action":"Revert autoformatting action","Rich Text Editor":"Rich Text Editor","Rich Text Editor. Editing area: %0":"Rich Text Editor. Editing area: %0",Ridge:"Ridge","Right aligned image":"Right aligned image","Right double quotation mark":"Right double quotation mark","Right single quotation mark":"Right single quotation mark","Right-pointing double angle quotation mark":"Right-pointing double angle quotation mark","rightwards arrow to bar":"rightwards arrow to bar","rightwards dashed arrow":"rightwards dashed arrow","rightwards double arrow":"rightwards double arrow","rightwards simple arrow":"rightwards simple arrow",Row:"Row","Ruble sign":"Ruble sign","Rupee sign":"Rupee sign",Save:"Save","Section sign":"Section sign","Select all":"Select all","Select column":"Select column","Select row":"Select row","Show more items":"Show more items","Side image":"Side image","Single left-pointing angle quotation mark":"Single left-pointing angle quotation mark","Single low-9 quotation mark":"Single low-9 quotation mark","Single right-pointing angle quotation mark":"Single right-pointing angle quotation mark",Small:"Small",Solid:"Solid","soon with rightwards arrow above":"soon with rightwards arrow above","Special characters":"Special characters","Spesmilo sign":"Spesmilo sign","Split cell horizontally":"Split cell horizontally","Split cell vertically":"Split cell vertically",Square:"Square","Square root":"Square root","Start at":"Start at","Start index must be greater than 0.":"Start index must be greater than 0.",Strikethrough:"Strikethrough","Strikethrough text":"Strikethrough text",Style:"Style",Subscript:"Subscript",Superscript:"Superscript",Table:"Table","Table alignment toolbar":"Table alignment toolbar","Table cell text alignment":"Table cell text alignment","Table properties":"Table properties","Table toolbar":"Table toolbar","Tenge sign":"Tenge sign",Text:"Text","Text alignment":"Text alignment","Text alignment toolbar":"Text alignment toolbar","Text alternative":"Text alternative",'The color is invalid. Try "#FF0000" or "rgb(255,0,0)" or "red".':'The color is invalid. Try "#FF0000" or "rgb(255,0,0)" or "red".','The value is invalid. Try "10px" or "2em" or simply "2".':'The value is invalid. Try "10px" or "2em" or simply "2".',"The value must not be empty.":"The value must not be empty.","The value should be a plain number.":"The value should be a plain number.","There exists":"There exists","These keyboard shortcuts allow for quick access to content editing features.":"These keyboard shortcuts allow for quick access to content editing features.","Tilde operator":"Tilde operator",Tiny:"Tiny","To-do List":"To-do List","Toggle caption off":"Toggle caption off","Toggle caption on":"Toggle caption on","Toggle the circle list style":"Toggle the circle list style","Toggle the decimal list style":"Toggle the decimal list style","Toggle the decimal with leading zero list style":"Toggle the decimal with leading zero list style","Toggle the disc list style":"Toggle the disc list style","Toggle the lower–latin list style":"Toggle the lower–latin list style","Toggle the lower–roman list style":"Toggle the lower–roman list style","Toggle the square list style":"Toggle the square list style","Toggle the upper–latin list style":"Toggle the upper–latin list style","Toggle the upper–roman list style":"Toggle the upper–roman list style","top with upwards arrow above":"top with upwards arrow above","Trade mark sign":"Trade mark sign","Tugrik sign":"Tugrik sign","Turkish lira sign":"Turkish lira sign",Turquoise:"Turquoise","Two dot leader":"Two dot leader","Type or paste your content here.":"Type or paste your content here.","Type your title":"Type your title",Underline:"Underline","Underline text":"Underline text",Undo:"Undo",Union:"Union","up down arrow with base":"up down arrow with base",Update:"Update","Update image URL":"Update image URL","Upload failed":"Upload failed","Upload from computer":"Upload from computer","Upload image from computer":"Upload image from computer","Upload in progress":"Upload in progress","Uploading image":"Uploading image","Upper-latin":"Upper-latin","Upper-roman":"Upper-roman","upwards arrow to bar":"upwards arrow to bar","upwards dashed arrow":"upwards dashed arrow","upwards double arrow":"upwards double arrow","upwards simple arrow":"upwards simple arrow","Use the following keystrokes for more efficient navigation in the CKEditor 5 user interface.":"Use the following keystrokes for more efficient navigation in the CKEditor 5 user interface.","User interface and content navigation keystrokes":"User interface and content navigation keystrokes","Vertical text alignment toolbar":"Vertical text alignment toolbar","Vulgar fraction one half":"Vulgar fraction one half","Vulgar fraction one quarter":"Vulgar fraction one quarter","Vulgar fraction three quarters":"Vulgar fraction three quarters",White:"White","Widget toolbar":"Widget toolbar",Width:"Width","Won sign":"Won sign","Wrap text":"Wrap text",Yellow:"Yellow","Yen sign":"Yen sign"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={})),
+/*!
+ * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
+ * For licensing, see LICENSE.md.
+ */
+function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.CKEDITOR=e():t.CKEDITOR=e()}(self,(()=>(()=>{var t={9246:(t,e,n)=>{const o=n(6931),i={};for(const t of Object.keys(o))i[o[t]]=t;const r={rgb:{channels:3,labels:"rgb"},hsl:{channels:3,labels:"hsl"},hsv:{channels:3,labels:"hsv"},hwb:{channels:3,labels:"hwb"},cmyk:{channels:4,labels:"cmyk"},xyz:{channels:3,labels:"xyz"},lab:{channels:3,labels:"lab"},lch:{channels:3,labels:"lch"},hex:{channels:1,labels:["hex"]},keyword:{channels:1,labels:["keyword"]},ansi16:{channels:1,labels:["ansi16"]},ansi256:{channels:1,labels:["ansi256"]},hcg:{channels:3,labels:["h","c","g"]},apple:{channels:3,labels:["r16","g16","b16"]},gray:{channels:1,labels:["gray"]}};t.exports=r;for(const t of Object.keys(r)){if(!("channels"in r[t]))throw new Error("missing channels property: "+t);if(!("labels"in r[t]))throw new Error("missing channel labels property: "+t);if(r[t].labels.length!==r[t].channels)throw new Error("channel and label counts mismatch: "+t);const{channels:e,labels:n}=r[t];delete r[t].channels,delete r[t].labels,Object.defineProperty(r[t],"channels",{value:e}),Object.defineProperty(r[t],"labels",{value:n})}r.rgb.hsl=function(t){const e=t[0]/255,n=t[1]/255,o=t[2]/255,i=Math.min(e,n,o),r=Math.max(e,n,o),s=r-i;let a,c;r===i?a=0:e===r?a=(n-o)/s:n===r?a=2+(o-e)/s:o===r&&(a=4+(e-n)/s),a=Math.min(60*a,360),a<0&&(a+=360);const l=(i+r)/2;return c=r===i?0:l<=.5?s/(r+i):s/(2-r-i),[a,100*c,100*l]},r.rgb.hsv=function(t){let e,n,o,i,r;const s=t[0]/255,a=t[1]/255,c=t[2]/255,l=Math.max(s,a,c),d=l-Math.min(s,a,c),h=function(t){return(l-t)/6/d+.5};return 0===d?(i=0,r=0):(r=d/l,e=h(s),n=h(a),o=h(c),s===l?i=o-n:a===l?i=1/3+e-o:c===l&&(i=2/3+n-e),i<0?i+=1:i>1&&(i-=1)),[360*i,100*r,100*l]},r.rgb.hwb=function(t){const e=t[0],n=t[1];let o=t[2];const i=r.rgb.hsl(t)[0],s=1/255*Math.min(e,Math.min(n,o));return o=1-1/255*Math.max(e,Math.max(n,o)),[i,100*s,100*o]},r.rgb.cmyk=function(t){const e=t[0]/255,n=t[1]/255,o=t[2]/255,i=Math.min(1-e,1-n,1-o);return[100*((1-e-i)/(1-i)||0),100*((1-n-i)/(1-i)||0),100*((1-o-i)/(1-i)||0),100*i]},r.rgb.keyword=function(t){const e=i[t];if(e)return e;let n,r=1/0;for(const e of Object.keys(o)){const i=o[e],c=(a=i,((s=t)[0]-a[0])**2+(s[1]-a[1])**2+(s[2]-a[2])**2);c.04045?((e+.055)/1.055)**2.4:e/12.92,n=n>.04045?((n+.055)/1.055)**2.4:n/12.92,o=o>.04045?((o+.055)/1.055)**2.4:o/12.92;return[100*(.4124*e+.3576*n+.1805*o),100*(.2126*e+.7152*n+.0722*o),100*(.0193*e+.1192*n+.9505*o)]},r.rgb.lab=function(t){const e=r.rgb.xyz(t);let n=e[0],o=e[1],i=e[2];n/=95.047,o/=100,i/=108.883,n=n>.008856?n**(1/3):7.787*n+16/116,o=o>.008856?o**(1/3):7.787*o+16/116,i=i>.008856?i**(1/3):7.787*i+16/116;return[116*o-16,500*(n-o),200*(o-i)]},r.hsl.rgb=function(t){const e=t[0]/360,n=t[1]/100,o=t[2]/100;let i,r,s;if(0===n)return s=255*o,[s,s,s];i=o<.5?o*(1+n):o+n-o*n;const a=2*o-i,c=[0,0,0];for(let t=0;t<3;t++)r=e+1/3*-(t-1),r<0&&r++,r>1&&r--,s=6*r<1?a+6*(i-a)*r:2*r<1?i:3*r<2?a+(i-a)*(2/3-r)*6:a,c[t]=255*s;return c},r.hsl.hsv=function(t){const e=t[0];let n=t[1]/100,o=t[2]/100,i=n;const r=Math.max(o,.01);o*=2,n*=o<=1?o:2-o,i*=r<=1?r:2-r;return[e,100*(0===o?2*i/(r+i):2*n/(o+n)),100*((o+n)/2)]},r.hsv.rgb=function(t){const e=t[0]/60,n=t[1]/100;let o=t[2]/100;const i=Math.floor(e)%6,r=e-Math.floor(e),s=255*o*(1-n),a=255*o*(1-n*r),c=255*o*(1-n*(1-r));switch(o*=255,i){case 0:return[o,c,s];case 1:return[a,o,s];case 2:return[s,o,c];case 3:return[s,a,o];case 4:return[c,s,o];case 5:return[o,s,a]}},r.hsv.hsl=function(t){const e=t[0],n=t[1]/100,o=t[2]/100,i=Math.max(o,.01);let r,s;s=(2-n)*o;const a=(2-n)*i;return r=n*i,r/=a<=1?a:2-a,r=r||0,s/=2,[e,100*r,100*s]},r.hwb.rgb=function(t){const e=t[0]/360;let n=t[1]/100,o=t[2]/100;const i=n+o;let r;i>1&&(n/=i,o/=i);const s=Math.floor(6*e),a=1-o;r=6*e-s,1&s&&(r=1-r);const c=n+r*(a-n);let l,d,h;switch(s){default:case 6:case 0:l=a,d=c,h=n;break;case 1:l=c,d=a,h=n;break;case 2:l=n,d=a,h=c;break;case 3:l=n,d=c,h=a;break;case 4:l=c,d=n,h=a;break;case 5:l=a,d=n,h=c}return[255*l,255*d,255*h]},r.cmyk.rgb=function(t){const e=t[0]/100,n=t[1]/100,o=t[2]/100,i=t[3]/100;return[255*(1-Math.min(1,e*(1-i)+i)),255*(1-Math.min(1,n*(1-i)+i)),255*(1-Math.min(1,o*(1-i)+i))]},r.xyz.rgb=function(t){const e=t[0]/100,n=t[1]/100,o=t[2]/100;let i,r,s;return i=3.2406*e+-1.5372*n+-.4986*o,r=-.9689*e+1.8758*n+.0415*o,s=.0557*e+-.204*n+1.057*o,i=i>.0031308?1.055*i**(1/2.4)-.055:12.92*i,r=r>.0031308?1.055*r**(1/2.4)-.055:12.92*r,s=s>.0031308?1.055*s**(1/2.4)-.055:12.92*s,i=Math.min(Math.max(0,i),1),r=Math.min(Math.max(0,r),1),s=Math.min(Math.max(0,s),1),[255*i,255*r,255*s]},r.xyz.lab=function(t){let e=t[0],n=t[1],o=t[2];e/=95.047,n/=100,o/=108.883,e=e>.008856?e**(1/3):7.787*e+16/116,n=n>.008856?n**(1/3):7.787*n+16/116,o=o>.008856?o**(1/3):7.787*o+16/116;return[116*n-16,500*(e-n),200*(n-o)]},r.lab.xyz=function(t){let e,n,o;n=(t[0]+16)/116,e=t[1]/500+n,o=n-t[2]/200;const i=n**3,r=e**3,s=o**3;return n=i>.008856?i:(n-16/116)/7.787,e=r>.008856?r:(e-16/116)/7.787,o=s>.008856?s:(o-16/116)/7.787,e*=95.047,n*=100,o*=108.883,[e,n,o]},r.lab.lch=function(t){const e=t[0],n=t[1],o=t[2];let i;i=360*Math.atan2(o,n)/2/Math.PI,i<0&&(i+=360);return[e,Math.sqrt(n*n+o*o),i]},r.lch.lab=function(t){const e=t[0],n=t[1],o=t[2]/360*2*Math.PI;return[e,n*Math.cos(o),n*Math.sin(o)]},r.rgb.ansi16=function(t,e=null){const[n,o,i]=t;let s=null===e?r.rgb.hsv(t)[2]:e;if(s=Math.round(s/50),0===s)return 30;let a=30+(Math.round(i/255)<<2|Math.round(o/255)<<1|Math.round(n/255));return 2===s&&(a+=60),a},r.hsv.ansi16=function(t){return r.rgb.ansi16(r.hsv.rgb(t),t[2])},r.rgb.ansi256=function(t){const e=t[0],n=t[1],o=t[2];if(e===n&&n===o)return e<8?16:e>248?231:Math.round((e-8)/247*24)+232;return 16+36*Math.round(e/255*5)+6*Math.round(n/255*5)+Math.round(o/255*5)},r.ansi16.rgb=function(t){let e=t%10;if(0===e||7===e)return t>50&&(e+=3.5),e=e/10.5*255,[e,e,e];const n=.5*(1+~~(t>50));return[(1&e)*n*255,(e>>1&1)*n*255,(e>>2&1)*n*255]},r.ansi256.rgb=function(t){if(t>=232){const e=10*(t-232)+8;return[e,e,e]}let e;t-=16;return[Math.floor(t/36)/5*255,Math.floor((e=t%36)/6)/5*255,e%6/5*255]},r.rgb.hex=function(t){const e=(((255&Math.round(t[0]))<<16)+((255&Math.round(t[1]))<<8)+(255&Math.round(t[2]))).toString(16).toUpperCase();return"000000".substring(e.length)+e},r.hex.rgb=function(t){const e=t.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);if(!e)return[0,0,0];let n=e[0];3===e[0].length&&(n=n.split("").map((t=>t+t)).join(""));const o=parseInt(n,16);return[o>>16&255,o>>8&255,255&o]},r.rgb.hcg=function(t){const e=t[0]/255,n=t[1]/255,o=t[2]/255,i=Math.max(Math.max(e,n),o),r=Math.min(Math.min(e,n),o),s=i-r;let a,c;return a=s<1?r/(1-s):0,c=s<=0?0:i===e?(n-o)/s%6:i===n?2+(o-e)/s:4+(e-n)/s,c/=6,c%=1,[360*c,100*s,100*a]},r.hsl.hcg=function(t){const e=t[1]/100,n=t[2]/100,o=n<.5?2*e*n:2*e*(1-n);let i=0;return o<1&&(i=(n-.5*o)/(1-o)),[t[0],100*o,100*i]},r.hsv.hcg=function(t){const e=t[1]/100,n=t[2]/100,o=e*n;let i=0;return o<1&&(i=(n-o)/(1-o)),[t[0],100*o,100*i]},r.hcg.rgb=function(t){const e=t[0]/360,n=t[1]/100,o=t[2]/100;if(0===n)return[255*o,255*o,255*o];const i=[0,0,0],r=e%1*6,s=r%1,a=1-s;let c=0;switch(Math.floor(r)){case 0:i[0]=1,i[1]=s,i[2]=0;break;case 1:i[0]=a,i[1]=1,i[2]=0;break;case 2:i[0]=0,i[1]=1,i[2]=s;break;case 3:i[0]=0,i[1]=a,i[2]=1;break;case 4:i[0]=s,i[1]=0,i[2]=1;break;default:i[0]=1,i[1]=0,i[2]=a}return c=(1-n)*o,[255*(n*i[0]+c),255*(n*i[1]+c),255*(n*i[2]+c)]},r.hcg.hsv=function(t){const e=t[1]/100,n=e+t[2]/100*(1-e);let o=0;return n>0&&(o=e/n),[t[0],100*o,100*n]},r.hcg.hsl=function(t){const e=t[1]/100,n=t[2]/100*(1-e)+.5*e;let o=0;return n>0&&n<.5?o=e/(2*n):n>=.5&&n<1&&(o=e/(2*(1-n))),[t[0],100*o,100*n]},r.hcg.hwb=function(t){const e=t[1]/100,n=e+t[2]/100*(1-e);return[t[0],100*(n-e),100*(1-n)]},r.hwb.hcg=function(t){const e=t[1]/100,n=1-t[2]/100,o=n-e;let i=0;return o<1&&(i=(n-o)/(1-o)),[t[0],100*o,100*i]},r.apple.rgb=function(t){return[t[0]/65535*255,t[1]/65535*255,t[2]/65535*255]},r.rgb.apple=function(t){return[t[0]/255*65535,t[1]/255*65535,t[2]/255*65535]},r.gray.rgb=function(t){return[t[0]/100*255,t[0]/100*255,t[0]/100*255]},r.gray.hsl=function(t){return[0,0,t[0]]},r.gray.hsv=r.gray.hsl,r.gray.hwb=function(t){return[0,100,t[0]]},r.gray.cmyk=function(t){return[0,0,0,t[0]]},r.gray.lab=function(t){return[t[0],0,0]},r.gray.hex=function(t){const e=255&Math.round(t[0]/100*255),n=((e<<16)+(e<<8)+e).toString(16).toUpperCase();return"000000".substring(n.length)+n},r.rgb.gray=function(t){return[(t[0]+t[1]+t[2])/3/255*100]}},9047:(t,e,n)=>{const o=n(9246),i=n(802),r={};Object.keys(o).forEach((t=>{r[t]={},Object.defineProperty(r[t],"channels",{value:o[t].channels}),Object.defineProperty(r[t],"labels",{value:o[t].labels});const e=i(t);Object.keys(e).forEach((n=>{const o=e[n];r[t][n]=function(t){const e=function(...e){const n=e[0];if(null==n)return n;n.length>1&&(e=n);const o=t(e);if("object"==typeof o)for(let t=o.length,e=0;e1&&(e=n),t(e))};return"conversion"in t&&(e.conversion=t.conversion),e}(o)}))})),t.exports=r},802:(t,e,n)=>{const o=n(9246);function i(t){const e=function(){const t={},e=Object.keys(o);for(let n=e.length,o=0;o{"use strict";t.exports={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}},4199:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(9372),i=n.n(o),r=n(935),s=n.n(r)()(i());s.push([t.id,".ck-content code{background-color:hsla(0,0%,78%,.3);border-radius:2px;padding:.15em}.ck.ck-editor__editable .ck-code_selected{background-color:hsla(0,0%,78%,.5)}","",{version:3,sources:["webpack://./../ckeditor5-basic-styles/theme/code.css"],names:[],mappings:"AAKA,iBACC,kCAAuC,CAEvC,iBAAkB,CADlB,aAED,CAEA,0CACC,kCACD",sourcesContent:["/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck-content code {\n\tbackground-color: hsla(0, 0%, 78%, 0.3);\n\tpadding: .15em;\n\tborder-radius: 2px;\n}\n\n.ck.ck-editor__editable .ck-code_selected {\n\tbackground-color: hsla(0, 0%, 78%, 0.5);\n}\n"],sourceRoot:""}]);const a=s},8708:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(9372),i=n.n(o),r=n(935),s=n.n(r)()(i());s.push([t.id,".ck-content blockquote{border-left:5px solid #ccc;font-style:italic;margin-left:0;margin-right:0;overflow:hidden;padding-left:1.5em;padding-right:1.5em}.ck-content[dir=rtl] blockquote{border-left:0;border-right:5px solid #ccc}","",{version:3,sources:["webpack://./../ckeditor5-block-quote/theme/blockquote.css"],names:[],mappings:"AAKA,uBAWC,0BAAsC,CADtC,iBAAkB,CAFlB,aAAc,CACd,cAAe,CAPf,eAAgB,CAIhB,kBAAmB,CADnB,mBAOD,CAEA,gCACC,aAAc,CACd,2BACD",sourcesContent:['/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck-content blockquote {\n\t/* See #12 */\n\toverflow: hidden;\n\n\t/* https://github.com/ckeditor/ckeditor5-block-quote/issues/15 */\n\tpadding-right: 1.5em;\n\tpadding-left: 1.5em;\n\n\tmargin-left: 0;\n\tmargin-right: 0;\n\tfont-style: italic;\n\tborder-left: solid 5px hsl(0, 0%, 80%);\n}\n\n.ck-content[dir="rtl"] blockquote {\n\tborder-left: 0;\n\tborder-right: solid 5px hsl(0, 0%, 80%);\n}\n'],sourceRoot:""}]);const a=s},7793:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(9372),i=n.n(o),r=n(935),s=n.n(r)()(i());s.push([t.id,'.ck.ck-editor__editable .ck.ck-clipboard-drop-target-position{display:inline;pointer-events:none;position:relative}.ck.ck-editor__editable .ck.ck-clipboard-drop-target-position span{position:absolute;width:0}.ck.ck-editor__editable .ck-widget:-webkit-drag>.ck-widget__selection-handle,.ck.ck-editor__editable .ck-widget:-webkit-drag>.ck-widget__type-around{display:none}.ck.ck-clipboard-drop-target-line{pointer-events:none;position:absolute}:root{--ck-clipboard-drop-target-dot-width:12px;--ck-clipboard-drop-target-dot-height:8px;--ck-clipboard-drop-target-color:var(--ck-color-focus-border)}.ck.ck-editor__editable .ck.ck-clipboard-drop-target-position span{background:var(--ck-clipboard-drop-target-color);border:1px solid var(--ck-clipboard-drop-target-color);bottom:calc(var(--ck-clipboard-drop-target-dot-height)*-.5);margin-left:-1px;top:calc(var(--ck-clipboard-drop-target-dot-height)*-.5)}.ck.ck-editor__editable .ck.ck-clipboard-drop-target-position span:after{border-color:var(--ck-clipboard-drop-target-color) transparent transparent transparent;border-style:solid;border-width:calc(var(--ck-clipboard-drop-target-dot-height)) calc(var(--ck-clipboard-drop-target-dot-width)*.5) 0 calc(var(--ck-clipboard-drop-target-dot-width)*.5);content:"";display:block;height:0;left:50%;position:absolute;top:calc(var(--ck-clipboard-drop-target-dot-height)*-.5);transform:translateX(-50%);width:0}.ck.ck-editor__editable .ck-widget.ck-clipboard-drop-target-range{outline:var(--ck-widget-outline-thickness) solid var(--ck-clipboard-drop-target-color)!important}.ck.ck-editor__editable .ck-widget:-webkit-drag{zoom:.6;outline:none!important}.ck.ck-clipboard-drop-target-line{background:var(--ck-clipboard-drop-target-color);border:1px solid var(--ck-clipboard-drop-target-color);height:0;margin-top:-1px}.ck.ck-clipboard-drop-target-line:before{border-style:solid;content:"";height:0;position:absolute;top:calc(var(--ck-clipboard-drop-target-dot-width)*-.5);width:0}[dir=ltr] .ck.ck-clipboard-drop-target-line:before{border-color:transparent transparent transparent var(--ck-clipboard-drop-target-color);border-width:calc(var(--ck-clipboard-drop-target-dot-width)*.5) 0 calc(var(--ck-clipboard-drop-target-dot-width)*.5) var(--ck-clipboard-drop-target-dot-height);left:-1px}[dir=rtl] .ck.ck-clipboard-drop-target-line:before{border-color:transparent var(--ck-clipboard-drop-target-color) transparent transparent;border-width:calc(var(--ck-clipboard-drop-target-dot-width)*.5) var(--ck-clipboard-drop-target-dot-height) calc(var(--ck-clipboard-drop-target-dot-width)*.5) 0;right:-1px}',"",{version:3,sources:["webpack://./../ckeditor5-clipboard/theme/clipboard.css","webpack://./../ckeditor5-theme-lark/theme/ckeditor5-clipboard/clipboard.css"],names:[],mappings:"AASC,8DACC,cAAe,CAEf,mBAAoB,CADpB,iBAOD,CAJC,mEACC,iBAAkB,CAClB,OACD,CAWA,qJACC,YACD,CAIF,kCAEC,mBAAoB,CADpB,iBAED,CC9BA,MACC,yCAA0C,CAC1C,yCAA0C,CAC1C,6DACD,CAOE,mEAIC,gDAAiD,CADjD,sDAAuD,CAFvD,2DAA8D,CAI9D,gBAAiB,CAHjB,wDAqBD,CAfC,yEAWC,sFAAuF,CAEvF,kBAAmB,CADnB,qKAA0K,CAX1K,UAAW,CAIX,aAAc,CAFd,QAAS,CAIT,QAAS,CADT,iBAAkB,CAElB,wDAA2D,CAE3D,0BAA2B,CAR3B,OAYD,CAOF,kEACC,gGACD,CAKA,gDACC,OAAS,CACT,sBACD,CAGD,kCAGC,gDAAiD,CADjD,sDAAuD,CADvD,QAAS,CAGT,eAwBD,CAtBC,yCAMC,kBAAmB,CALnB,UAAW,CAIX,QAAS,CAHT,iBAAkB,CAClB,uDAA0D,CAC1D,OAiBD,CArBA,mDAYE,sFAAuF,CADvF,+JAAoK,CAFpK,SAYF,CArBA,mDAmBE,sFAAuF,CADvF,+JAAmK,CAFnK,UAKF",sourcesContent:["/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-editor__editable {\n\t/*\n\t * Vertical drop target (in text).\n\t */\n\t& .ck.ck-clipboard-drop-target-position {\n\t\tdisplay: inline;\n\t\tposition: relative;\n\t\tpointer-events: none;\n\n\t\t& span {\n\t\t\tposition: absolute;\n\t\t\twidth: 0;\n\t\t}\n\t}\n\n\t/*\n\t * Styles of the widget being dragged (its preview).\n\t */\n\t& .ck-widget:-webkit-drag {\n\t\t& > .ck-widget__selection-handle {\n\t\t\tdisplay: none;\n\t\t}\n\n\t\t& > .ck-widget__type-around {\n\t\t\tdisplay: none;\n\t\t}\n\t}\n}\n\n.ck.ck-clipboard-drop-target-line {\n\tposition: absolute;\n\tpointer-events: none;\n}\n","/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import \"@ckeditor/ckeditor5-ui/theme/mixins/_dir.css\";\n\n:root {\n\t--ck-clipboard-drop-target-dot-width: 12px;\n\t--ck-clipboard-drop-target-dot-height: 8px;\n\t--ck-clipboard-drop-target-color: var(--ck-color-focus-border);\n}\n\n.ck.ck-editor__editable {\n\t/*\n\t * Vertical drop target (in text).\n\t */\n\t& .ck.ck-clipboard-drop-target-position {\n\t\t& span {\n\t\t\tbottom: calc(-.5 * var(--ck-clipboard-drop-target-dot-height));\n\t\t\ttop: calc(-.5 * var(--ck-clipboard-drop-target-dot-height));\n\t\t\tborder: 1px solid var(--ck-clipboard-drop-target-color);\n\t\t\tbackground: var(--ck-clipboard-drop-target-color);\n\t\t\tmargin-left: -1px;\n\n\t\t\t/* The triangle above the marker */\n\t\t\t&::after {\n\t\t\t\tcontent: '';\n\t\t\t\twidth: 0;\n\t\t\t\theight: 0;\n\n\t\t\t\tdisplay: block;\n\t\t\t\tposition: absolute;\n\t\t\t\tleft: 50%;\n\t\t\t\ttop: calc(-.5 * var(--ck-clipboard-drop-target-dot-height));\n\n\t\t\t\ttransform: translateX(-50%);\n\t\t\t\tborder-color: var(--ck-clipboard-drop-target-color) transparent transparent transparent;\n\t\t\t\tborder-width: calc(var(--ck-clipboard-drop-target-dot-height)) calc(.5 * var(--ck-clipboard-drop-target-dot-width)) 0 calc(.5 * var(--ck-clipboard-drop-target-dot-width));\n\t\t\t\tborder-style: solid;\n\t\t\t}\n\t\t}\n\t}\n\n\t/*\n\t * Styles of the widget that it a drop target.\n\t */\n\t& .ck-widget.ck-clipboard-drop-target-range {\n\t\toutline: var(--ck-widget-outline-thickness) solid var(--ck-clipboard-drop-target-color) !important;\n\t}\n\n\t/*\n\t * Styles of the widget being dragged (its preview).\n\t */\n\t& .ck-widget:-webkit-drag {\n\t\tzoom: 0.6;\n\t\toutline: none !important;\n\t}\n}\n\n.ck.ck-clipboard-drop-target-line {\n\theight: 0;\n\tborder: 1px solid var(--ck-clipboard-drop-target-color);\n\tbackground: var(--ck-clipboard-drop-target-color);\n\tmargin-top: -1px;\n\n\t&::before {\n\t\tcontent: '';\n\t\tposition: absolute;\n\t\ttop: calc(-.5 * var(--ck-clipboard-drop-target-dot-width));\n\t\twidth: 0;\n\t\theight: 0;\n\t\tborder-style: solid;\n\n\t\t@mixin ck-dir ltr {\n\t\t\tleft: -1px;\n\n\t\t\tborder-width: calc(.5 * var(--ck-clipboard-drop-target-dot-width)) 0 calc(.5 * var(--ck-clipboard-drop-target-dot-width)) var(--ck-clipboard-drop-target-dot-height);\n\t\t\tborder-color: transparent transparent transparent var(--ck-clipboard-drop-target-color);\n\t\t}\n\n\t\t@mixin ck-dir rtl {\n\t\t\tright: -1px;\n\n\t\t\tborder-width:calc(.5 * var(--ck-clipboard-drop-target-dot-width)) var(--ck-clipboard-drop-target-dot-height) calc(.5 * var(--ck-clipboard-drop-target-dot-width)) 0;\n\t\t\tborder-color: transparent var(--ck-clipboard-drop-target-color) transparent transparent;\n\t\t}\n\t}\n}\n"],sourceRoot:""}]);const a=s},7388:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(9372),i=n.n(o),r=n(935),s=n.n(r)()(i());s.push([t.id,".ck.ck-editor{position:relative}.ck.ck-editor .ck-editor__top .ck-sticky-panel .ck-toolbar{z-index:var(--ck-z-panel)}.ck.ck-editor__top .ck-sticky-panel .ck-sticky-panel__content{border-radius:0}.ck-rounded-corners .ck.ck-editor__top .ck-sticky-panel .ck-sticky-panel__content,.ck.ck-editor__top .ck-sticky-panel .ck-sticky-panel__content.ck-rounded-corners{border-radius:var(--ck-border-radius);border-bottom-left-radius:0;border-bottom-right-radius:0}.ck.ck-editor__top .ck-sticky-panel .ck-sticky-panel__content{border:solid var(--ck-color-base-border);border-width:1px 1px 0}.ck.ck-editor__top .ck-sticky-panel .ck-sticky-panel__content.ck-sticky-panel__content_sticky{border-bottom-width:1px}.ck.ck-editor__top .ck-sticky-panel .ck-sticky-panel__content .ck-menu-bar,.ck.ck-editor__top .ck-sticky-panel .ck-sticky-panel__content .ck-toolbar{border:0}.ck.ck-editor__main>.ck-editor__editable{background:var(--ck-color-base-background);border-radius:0}.ck-rounded-corners .ck.ck-editor__main>.ck-editor__editable,.ck.ck-editor__main>.ck-editor__editable.ck-rounded-corners{border-radius:var(--ck-border-radius);border-top-left-radius:0;border-top-right-radius:0}.ck.ck-editor__main>.ck-editor__editable:not(.ck-focused){border-color:var(--ck-color-base-border)}","",{version:3,sources:["webpack://./../ckeditor5-editor-classic/theme/classiceditor.css","webpack://./../ckeditor5-theme-lark/theme/ckeditor5-editor-classic/classiceditor.css","webpack://./../ckeditor5-theme-lark/theme/mixins/_rounded.css"],names:[],mappings:"AAKA,cAIC,iBAMD,CAJC,2DAEC,yBACD,CCLC,8DCED,eDeC,CAjBA,mKCMA,qCAAsC,CDJpC,2BAA4B,CAC5B,4BAcF,CAjBA,8DAOC,wCAAsB,CAAtB,sBAUD,CARC,8FACC,uBACD,CAEA,qJAEC,QACD,CAMH,yCAEC,0CAA2C,CCtB3C,eDgCD,CAZA,yHChBE,qCAAsC,CDqBtC,wBAAyB,CACzB,yBAMF,CAHC,0DACC,wCACD",sourcesContent:["/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-editor {\n\t/* All the elements within `.ck-editor` are positioned relatively to it.\n\t If any element needs to be positioned with respect to the , etc.,\n\t it must land outside of the `.ck-editor` in DOM. */\n\tposition: relative;\n\n\t& .ck-editor__top .ck-sticky-panel .ck-toolbar {\n\t\t/* https://github.com/ckeditor/ckeditor5-editor-classic/issues/62 */\n\t\tz-index: var(--ck-z-panel);\n\t}\n}\n",'/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "../mixins/_rounded.css";\n\n.ck.ck-editor__top {\n\t& .ck-sticky-panel {\n\t\t& .ck-sticky-panel__content {\n\t\t\t@mixin ck-rounded-corners {\n\t\t\t\tborder-bottom-left-radius: 0;\n\t\t\t\tborder-bottom-right-radius: 0;\n\t\t\t}\n\n\t\t\tborder: 1px solid var(--ck-color-base-border);\n\t\t\tborder-bottom-width: 0;\n\n\t\t\t&.ck-sticky-panel__content_sticky {\n\t\t\t\tborder-bottom-width: 1px;\n\t\t\t}\n\n\t\t\t& .ck-menu-bar,\n\t\t\t& .ck-toolbar {\n\t\t\t\tborder: 0;\n\t\t\t}\n\t\t}\n\t}\n}\n\n/* Note: Use ck-editor__main to make sure these styles don\'t apply to other editor types */\n.ck.ck-editor__main > .ck-editor__editable {\n\t/* https://github.com/ckeditor/ckeditor5-theme-lark/issues/113 */\n\tbackground: var(--ck-color-base-background);\n\n\t@mixin ck-rounded-corners {\n\t\tborder-top-left-radius: 0;\n\t\tborder-top-right-radius: 0;\n\t}\n\n\t&:not(.ck-focused) {\n\t\tborder-color: var(--ck-color-base-border);\n\t}\n}\n',"/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * Implements rounded corner interface for .ck-rounded-corners class.\n *\n * @see $ck-border-radius\n */\n@define-mixin ck-rounded-corners {\n\tborder-radius: 0;\n\n\t@nest .ck-rounded-corners &,\n\t&.ck-rounded-corners {\n\t\tborder-radius: var(--ck-border-radius);\n\t\t@mixin-content;\n\t}\n}\n"],sourceRoot:""}]);const a=s},4098:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(9372),i=n.n(o),r=n(935),s=n.n(r)()(i());s.push([t.id,".ck .ck-placeholder,.ck.ck-placeholder{position:relative}.ck .ck-placeholder:before,.ck.ck-placeholder:before{content:attr(data-placeholder);left:0;pointer-events:none;position:absolute;right:0}.ck.ck-read-only .ck-placeholder:before{display:none}.ck.ck-reset_all .ck-placeholder{position:relative}@media (forced-colors:active){.ck .ck-placeholder,.ck.ck-placeholder{forced-color-adjust:preserve-parent-color}}.ck .ck-placeholder:before,.ck.ck-placeholder:before{cursor:text}@media (forced-colors:none){.ck .ck-placeholder:before,.ck.ck-placeholder:before{color:var(--ck-color-engine-placeholder-text)}}@media (forced-colors:active){.ck .ck-placeholder:before,.ck.ck-placeholder:before{font-style:italic;margin-left:1px}}","",{version:3,sources:["webpack://./../ckeditor5-engine/theme/placeholder.css","webpack://./../ckeditor5-ui/theme/mixins/_mediacolors.css","webpack://./../ckeditor5-theme-lark/theme/ckeditor5-engine/placeholder.css"],names:[],mappings:"AAMA,uCAEC,iBAWD,CATC,qDAIC,8BAA+B,CAF/B,MAAO,CAKP,mBAAoB,CANpB,iBAAkB,CAElB,OAKD,CAKA,wCACC,YACD,CAQD,iCACC,iBACD,CC7BC,8BACC,uCCOA,yCDLA,CACD,CCOA,qDACC,WAmBD,CDvBA,4BACC,qDCMC,6CDJD,CACD,CAZA,8BACC,qDCsBC,iBAAkB,CAMlB,eD1BD,CACD",sourcesContent:["/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/* See ckeditor/ckeditor5#936. */\n.ck.ck-placeholder,\n.ck .ck-placeholder {\n\tposition: relative;\n\n\t&::before {\n\t\tposition: absolute;\n\t\tleft: 0;\n\t\tright: 0;\n\t\tcontent: attr(data-placeholder);\n\n\t\t/* See ckeditor/ckeditor5#469. */\n\t\tpointer-events: none;\n\t}\n}\n\n/* See ckeditor/ckeditor5#1987. */\n.ck.ck-read-only .ck-placeholder {\n\t&::before {\n\t\tdisplay: none;\n\t}\n}\n\n/*\n * Rules for the `ck-placeholder` are loaded before the rules for `ck-reset_all` in the base CKEditor 5 DLL build.\n * This fix overwrites the incorrectly set `position: static` from `ck-reset_all`.\n * See https://github.com/ckeditor/ckeditor5/issues/11418.\n */\n.ck.ck-reset_all .ck-placeholder {\n\tposition: relative;\n}\n","/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@define-mixin ck-media-forced-colors {\n\t@media (forced-colors: active) {\n\t\t& {\n\t\t\t@mixin-content;\n\t\t}\n\t}\n}\n\n@define-mixin ck-media-default-colors {\n\t@media (forced-colors: none) {\n\t\t& {\n\t\t\t@mixin-content;\n\t\t}\n\t}\n}\n",'/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "@ckeditor/ckeditor5-ui/theme/mixins/_mediacolors.css";\n\n/* See ckeditor/ckeditor5#936. */\n.ck.ck-placeholder, .ck .ck-placeholder {\n\t@mixin ck-media-forced-colors {\n\t\t/*\n\t\t * This is needed for Edge on Windows to use the right color for the placeholder content (::before).\n\t\t * See https://github.com/ckeditor/ckeditor5/issues/14907.\n\t\t */\n\t\tforced-color-adjust: preserve-parent-color;\n\t}\n\n\t&::before {\n\t\tcursor: text;\n\n\t\t@mixin ck-media-default-colors {\n\t\t\tcolor: var(--ck-color-engine-placeholder-text);\n\t\t}\n\n\t\t@mixin ck-media-forced-colors {\n\t\t\t/*\n\t\t\t * In the high contrast mode there is no telling between regular and placeholder text. Using\n\t\t\t * italic text to address that issue. See https://github.com/ckeditor/ckeditor5/issues/14907.\n\t\t\t */\n\t\t\tfont-style: italic;\n\n\t\t\t/*\n\t\t\t * Without this margin, the caret will not show up and blink when the user puts the selection\n\t\t\t * in the placeholder (Edge on Windows). See https://github.com/ckeditor/ckeditor5/issues/14907.\n\t\t\t */\n\t\t\tmargin-left: 1px;\n\t\t}\n\t}\n}\n'],sourceRoot:""}]);const a=s},8264:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(9372),i=n.n(o),r=n(935),s=n.n(r)()(i());s.push([t.id,".ck.ck-editor__editable span[data-ck-unsafe-element]{display:none}","",{version:3,sources:["webpack://./../ckeditor5-engine/theme/renderer.css"],names:[],mappings:"AAMA,qDACC,YACD",sourcesContent:["/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/* Elements marked by the Renderer as hidden should be invisible in the editor. */\n.ck.ck-editor__editable span[data-ck-unsafe-element] {\n\tdisplay: none;\n}\n"],sourceRoot:""}]);const a=s},1058:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(9372),i=n.n(o),r=n(935),s=n.n(r)()(i());s.push([t.id,".ck-content .text-tiny{font-size:.7em}.ck-content .text-small{font-size:.85em}.ck-content .text-big{font-size:1.4em}.ck-content .text-huge{font-size:1.8em}","",{version:3,sources:["webpack://./../ckeditor5-font/theme/fontsize.css"],names:[],mappings:"AAUC,uBACC,cACD,CAEA,wBACC,eACD,CAEA,sBACC,eACD,CAEA,uBACC,eACD",sourcesContent:['/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/* The values should be synchronized with the "FONT_SIZE_PRESET_UNITS" object in the "/src/fontsize/utils.js" file. */\n\n/* Styles should be prefixed with the `.ck-content` class.\nSee https://github.com/ckeditor/ckeditor5/issues/6636 */\n.ck-content {\n\t& .text-tiny {\n\t\tfont-size: .7em;\n\t}\n\n\t& .text-small {\n\t\tfont-size: .85em;\n\t}\n\n\t& .text-big {\n\t\tfont-size: 1.4em;\n\t}\n\n\t& .text-huge {\n\t\tfont-size: 1.8em;\n\t}\n}\n'],sourceRoot:""}]);const a=s},6269:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(9372),i=n.n(o),r=n(935),s=n.n(r)()(i());s.push([t.id,".ck.ck-heading_heading1{font-size:20px}.ck.ck-heading_heading2{font-size:17px}.ck.ck-heading_heading3{font-size:14px}.ck[class*=ck-heading_heading]{font-weight:700}.ck.ck-dropdown.ck-heading-dropdown .ck-dropdown__button .ck-button__label{width:8em}.ck.ck-dropdown.ck-heading-dropdown .ck-dropdown__panel .ck-list__item{min-width:18em}","",{version:3,sources:["webpack://./../ckeditor5-heading/theme/heading.css","webpack://./../ckeditor5-theme-lark/theme/ckeditor5-heading/heading.css"],names:[],mappings:"AAKA,wBACC,cACD,CAEA,wBACC,cACD,CAEA,wBACC,cACD,CAEA,+BACC,eACD,CCZC,2EACC,SACD,CAEA,uEACC,cACD",sourcesContent:['/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-heading_heading1 {\n\tfont-size: 20px;\n}\n\n.ck.ck-heading_heading2 {\n\tfont-size: 17px;\n}\n\n.ck.ck-heading_heading3 {\n\tfont-size: 14px;\n}\n\n.ck[class*="ck-heading_heading"] {\n\tfont-weight: bold;\n}\n',"/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/* Resize dropdown's button label. */\n.ck.ck-dropdown.ck-heading-dropdown {\n\t& .ck-dropdown__button .ck-button__label {\n\t\twidth: 8em;\n\t}\n\n\t& .ck-dropdown__panel .ck-list__item {\n\t\tmin-width: 18em;\n\t}\n}\n"],sourceRoot:""}]);const a=s},2626:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(9372),i=n.n(o),r=n(935),s=n.n(r)()(i());s.push([t.id,".ck-editor__editable .ck-horizontal-line{display:flow-root}.ck-content hr{background:#dedede;border:0;height:4px;margin:15px 0}","",{version:3,sources:["webpack://./../ckeditor5-horizontal-line/theme/horizontalline.css"],names:[],mappings:"AAMA,yCAEC,iBACD,CAEA,eAGC,kBAA2B,CAC3B,QAAS,CAFT,UAAW,CADX,aAID",sourcesContent:["/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n\n.ck-editor__editable .ck-horizontal-line {\n\t/* Necessary to render properly next to floated objects, e.g. side image case. */\n\tdisplay: flow-root;\n}\n\n.ck-content hr {\n\tmargin: 15px 0;\n\theight: 4px;\n\tbackground: hsl(0, 0%, 87%);\n\tborder: 0;\n}\n"],sourceRoot:""}]);const a=s},265:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(9372),i=n.n(o),r=n(935),s=n.n(r)()(i());s.push([t.id,".ck-content .image{clear:both;display:table;margin:.9em auto;min-width:50px;text-align:center}.ck-content .image img{display:block;height:auto;margin:0 auto;max-width:100%;min-width:100%}.ck-content .image-inline{align-items:flex-start;display:inline-flex;max-width:100%}.ck-content .image-inline picture{display:flex}.ck-content .image-inline img,.ck-content .image-inline picture{flex-grow:1;flex-shrink:1;max-width:100%}.ck.ck-editor__editable .image>figcaption.ck-placeholder:before{overflow:hidden;padding-left:inherit;padding-right:inherit;text-overflow:ellipsis;white-space:nowrap}.ck.ck-editor__editable .image{z-index:1}.ck.ck-editor__editable .image.ck-widget_selected{z-index:2}.ck.ck-editor__editable .image-inline{z-index:1}.ck.ck-editor__editable .image-inline.ck-widget_selected{z-index:2}.ck.ck-editor__editable .image-inline.ck-widget_selected ::selection{display:none}.ck.ck-editor__editable .image-inline img{height:auto}.ck.ck-editor__editable td .image-inline img,.ck.ck-editor__editable th .image-inline img{max-width:none}","",{version:3,sources:["webpack://./../ckeditor5-image/theme/image.css"],names:[],mappings:"AAMC,mBAEC,UAAW,CADX,aAAc,CAOd,gBAAkB,CAGlB,cAAe,CARf,iBA2BD,CAjBC,uBAEC,aAAc,CAad,WAAY,CAVZ,aAAc,CAGd,cAAe,CAGf,cAKD,CAGD,0BAYC,sBAAuB,CANvB,mBAAoB,CAGpB,cAoBD,CAdC,kCACC,YACD,CAGA,gEAGC,WAAY,CACZ,aAAc,CAGd,cACD,CAUD,gEASC,eAAgB,CARhB,oBAAqB,CACrB,qBAAsB,CAQtB,sBAAuB,CAFvB,kBAGD,CAKA,+BACC,SASD,CAHC,kDACC,SACD,CAMD,sCACC,SAkBD,CAZC,yDACC,SAUD,CAHC,qEACC,YACD,CAMF,0CACC,WACD,CAMC,0FACC,cACD",sourcesContent:['/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck-content {\n\t& .image {\n\t\tdisplay: table;\n\t\tclear: both;\n\t\ttext-align: center;\n\n\t\t/* Make sure there is some space between the content and the image. Center image by default. */\n\t\t/* The first value should be equal to --ck-spacing-large variable if used in the editor context\n\t \tto avoid the content jumping (See https://github.com/ckeditor/ckeditor5/issues/9825). */\n\t\tmargin: 0.9em auto;\n\n\t\t/* Make sure the caption will be displayed properly (See: https://github.com/ckeditor/ckeditor5/issues/1870). */\n\t\tmin-width: 50px;\n\n\t\t& img {\n\t\t\t/* Prevent unnecessary margins caused by line-height (see #44). */\n\t\t\tdisplay: block;\n\n\t\t\t/* Center the image if its width is smaller than the content\'s width. */\n\t\t\tmargin: 0 auto;\n\n\t\t\t/* Make sure the image never exceeds the size of the parent container (ckeditor/ckeditor5-ui#67). */\n\t\t\tmax-width: 100%;\n\n\t\t\t/* Make sure the image is never smaller than the parent container (See: https://github.com/ckeditor/ckeditor5/issues/9300). */\n\t\t\tmin-width: 100%;\n\n\t\t\t/* Keep proportions of the block image if the height is set and the image is wider than the editor width.\n\t\t\tSee https://github.com/ckeditor/ckeditor5/issues/14542. */\n\t\t\theight: auto;\n\t\t}\n\t}\n\n\t& .image-inline {\n\t\t/*\n\t\t * Normally, the .image-inline would have "display: inline-block" and "img { width: 100% }" (to follow the wrapper while resizing).\n\t\t * Unfortunately, together with "srcset", it gets automatically stretched up to the width of the editing root.\n\t\t * This strange behavior does not happen with inline-flex.\n\t\t */\n\t\tdisplay: inline-flex;\n\n\t\t/* While being resized, don\'t allow the image to exceed the width of the editing root. */\n\t\tmax-width: 100%;\n\n\t\t/* This is required by Safari to resize images in a sensible way. Without this, the browser breaks the ratio. */\n\t\talign-items: flex-start;\n\n\t\t/* When the picture is present it must act as a flex container to let the img resize properly */\n\t\t& picture {\n\t\t\tdisplay: flex;\n\t\t}\n\n\t\t/* When the picture is present, it must act like a resizable img. */\n\t\t& picture,\n\t\t& img {\n\t\t\t/* This is necessary for the img to span the entire .image-inline wrapper and to resize properly. */\n\t\t\tflex-grow: 1;\n\t\t\tflex-shrink: 1;\n\n\t\t\t/* Prevents overflowing the editing root boundaries when an inline image is very wide. */\n\t\t\tmax-width: 100%;\n\t\t}\n\t}\n}\n\n.ck.ck-editor__editable {\n\t/*\n\t * Inhertit the content styles padding of the in case the integration overrides `text-align: center`\n\t * of `.image` (e.g. to the left/right). This ensures the placeholder stays at the padding just like the native\n\t * caret does, and not at the edge of .\n\t */\n\t& .image > figcaption.ck-placeholder::before {\n\t\tpadding-left: inherit;\n\t\tpadding-right: inherit;\n\n\t\t/*\n\t\t * Make sure the image caption placeholder doesn\'t overflow the placeholder area.\n\t\t * See https://github.com/ckeditor/ckeditor5/issues/9162.\n\t\t */\n\t\twhite-space: nowrap;\n\t\toverflow: hidden;\n\t\ttext-overflow: ellipsis;\n\t}\n\n\t/*\n\t * See https://github.com/ckeditor/ckeditor5/issues/15115.\n\t */\n\t& .image {\n\t\tz-index: 1;\n\n\t\t/*\n\t\t * Make sure the selected image always stays on top of its siblings.\n\t\t * See https://github.com/ckeditor/ckeditor5/issues/9108.\n\t\t */\n\t\t&.ck-widget_selected {\n\t\t\tz-index: 2;\n\t\t}\n\t}\n\n\t/*\n\t * See https://github.com/ckeditor/ckeditor5/issues/15115.\n\t */\n\t& .image-inline {\n\t\tz-index: 1;\n\n\t\t/*\n\t\t * Make sure the selected inline image always stays on top of its siblings.\n\t\t * See https://github.com/ckeditor/ckeditor5/issues/9108.\n\t\t */\n\t\t&.ck-widget_selected {\n\t\t\tz-index: 2;\n\n\t\t\t/*\n\t\t\t * Make sure the native browser selection style is not displayed.\n\t\t\t * Inline image widgets have their own styles for the selected state and\n\t\t\t * leaving this up to the browser is asking for a visual collision.\n\t\t\t */\n\t\t\t& ::selection {\n\t\t\t\tdisplay: none;\n\t\t\t}\n\t\t}\n\t}\n\n\t/* Keep proportions of the inline image if the height is set and the image is wider than the editor width.\n\tSee https://github.com/ckeditor/ckeditor5/issues/14542. */\n\t& .image-inline img {\n\t\theight: auto;\n\t}\n\n\t/* The inline image nested in the table should have its original size if not resized.\n\tSee https://github.com/ckeditor/ckeditor5/issues/9117. */\n\t& td,\n\t& th {\n\t\t& .image-inline img {\n\t\t\tmax-width: none;\n\t\t}\n\t}\n}\n'],sourceRoot:""}]);const a=s},5247:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(9372),i=n.n(o),r=n(935),s=n.n(r)()(i());s.push([t.id,":root{--ck-color-image-caption-background:#f7f7f7;--ck-color-image-caption-text:#333;--ck-color-image-caption-highlighted-background:#fd0}.ck-content .image>figcaption{background-color:var(--ck-color-image-caption-background);caption-side:bottom;color:var(--ck-color-image-caption-text);display:table-caption;font-size:.75em;outline-offset:-1px;padding:.6em;word-break:break-word}@media (forced-colors:active){.ck-content .image>figcaption{background-color:unset;color:unset}}@media (forced-colors:none){.ck.ck-editor__editable .image>figcaption.image__caption_highlighted{animation:ck-image-caption-highlight .6s ease-out}}@media (prefers-reduced-motion:reduce){.ck.ck-editor__editable .image>figcaption.image__caption_highlighted{animation:none}}@keyframes ck-image-caption-highlight{0%{background-color:var(--ck-color-image-caption-highlighted-background)}to{background-color:var(--ck-color-image-caption-background)}}","",{version:3,sources:["webpack://./../ckeditor5-image/theme/imagecaption.css","webpack://./../ckeditor5-ui/theme/mixins/_mediacolors.css"],names:[],mappings:"AAOA,MACC,2CAAoD,CACpD,kCAA8C,CAC9C,oDACD,CAGA,8BAKC,yDAA0D,CAH1D,mBAAoB,CAEpB,wCAAyC,CAHzC,qBAAsB,CAMtB,eAAgB,CAChB,mBAAoB,CAFpB,YAAa,CAHb,qBAYD,CAJC,8BAXD,8BAYE,sBAAuB,CACvB,WAEF,CADC,CCdA,4BACC,qEDmBA,iDCjBA,CACD,CDmBA,uCALD,qEAME,cAEF,CADC,CAGD,sCACC,GACC,qEACD,CAEA,GACC,yDACD,CACD",sourcesContent:['/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "@ckeditor/ckeditor5-ui/theme/mixins/_mediacolors.css";\n\n:root {\n\t--ck-color-image-caption-background: hsl(0, 0%, 97%);\n\t--ck-color-image-caption-text: hsl(0, 0%, 20%);\n\t--ck-color-image-caption-highlighted-background: hsl(52deg 100% 50%);\n}\n\n/* Content styles */\n.ck-content .image > figcaption {\n\tdisplay: table-caption;\n\tcaption-side: bottom;\n\tword-break: break-word;\n\tcolor: var(--ck-color-image-caption-text);\n\tbackground-color: var(--ck-color-image-caption-background);\n\tpadding: .6em;\n\tfont-size: .75em;\n\toutline-offset: -1px;\n\n\t/* Improve placeholder rendering in high-constrast mode (https://github.com/ckeditor/ckeditor5/issues/14907). */\n\t@media (forced-colors: active) {\n\t\tbackground-color: unset;\n\t\tcolor: unset;\n\t}\n}\n\n/* Editing styles */\n.ck.ck-editor__editable .image > figcaption.image__caption_highlighted {\n\t@mixin ck-media-default-colors {\n\t\tanimation: ck-image-caption-highlight .6s ease-out;\n\t}\n\n\t@media (prefers-reduced-motion: reduce) {\n\t\tanimation: none;\n\t}\n}\n\n@keyframes ck-image-caption-highlight {\n\t0% {\n\t\tbackground-color: var(--ck-color-image-caption-highlighted-background);\n\t}\n\n\t100% {\n\t\tbackground-color: var(--ck-color-image-caption-background);\n\t}\n}\n',"/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@define-mixin ck-media-forced-colors {\n\t@media (forced-colors: active) {\n\t\t& {\n\t\t\t@mixin-content;\n\t\t}\n\t}\n}\n\n@define-mixin ck-media-default-colors {\n\t@media (forced-colors: none) {\n\t\t& {\n\t\t\t@mixin-content;\n\t\t}\n\t}\n}\n"],sourceRoot:""}]);const a=s},4642:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(9372),i=n.n(o),r=n(935),s=n.n(r)()(i());s.push([t.id,".ck.ck-image-custom-resize-form{align-items:flex-start;display:flex;flex-direction:row;flex-wrap:nowrap}.ck.ck-image-custom-resize-form .ck-labeled-field-view{display:inline-block}.ck.ck-image-custom-resize-form .ck-label{display:none}@media screen and (max-width:600px){.ck.ck-image-custom-resize-form{flex-wrap:wrap}.ck.ck-image-custom-resize-form .ck-labeled-field-view{flex-basis:100%}.ck.ck-image-custom-resize-form .ck-button{flex-basis:50%}}","",{version:3,sources:["webpack://./../ckeditor5-image/theme/imagecustomresizeform.css","webpack://./../ckeditor5-ui/theme/mixins/_rwd.css"],names:[],mappings:"AAOA,gCAIC,sBAAuB,CAHvB,YAAa,CACb,kBAAmB,CACnB,gBAsBD,CAnBC,uDACC,oBACD,CAEA,0CACC,YACD,CCbA,oCDCD,gCAeE,cAUF,CARE,uDACC,eACD,CAEA,2CACC,cACD,CCtBD",sourcesContent:['/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "@ckeditor/ckeditor5-ui/theme/mixins/_rwd.css";\n\n.ck.ck-image-custom-resize-form {\n\tdisplay: flex;\n\tflex-direction: row;\n\tflex-wrap: nowrap;\n\talign-items: flex-start;\n\n\t& .ck-labeled-field-view {\n\t\tdisplay: inline-block;\n\t}\n\n\t& .ck-label {\n\t\tdisplay: none;\n\t}\n\n\t@mixin ck-media-phone {\n\t\tflex-wrap: wrap;\n\n\t\t& .ck-labeled-field-view {\n\t\t\tflex-basis: 100%;\n\t\t}\n\n\t\t& .ck-button {\n\t\t\tflex-basis: 50%;\n\t\t}\n\t}\n}\n',"/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@define-mixin ck-media-phone {\n\t@media screen and (max-width: 600px) {\n\t\t@mixin-content;\n\t}\n}\n"],sourceRoot:""}]);const a=s},3350:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(9372),i=n.n(o),r=n(935),s=n.n(r)()(i());s.push([t.id,".ck.ck-image-insert-url .ck-image-insert-url__action-row{display:grid;grid-template-columns:repeat(2,1fr)}:root{--ck-image-insert-insert-by-url-width:250px}.ck.ck-image-insert-url{--ck-input-width:100%}.ck.ck-image-insert-url .ck-image-insert-url__action-row{grid-column-gap:var(--ck-spacing-large);margin-top:var(--ck-spacing-large)}.ck.ck-image-insert-url .ck-image-insert-url__action-row .ck-button-cancel,.ck.ck-image-insert-url .ck-image-insert-url__action-row .ck-button-save{justify-content:center;min-width:auto}.ck.ck-image-insert-url .ck-image-insert-url__action-row .ck-button .ck-button__label{color:var(--ck-color-text)}.ck.ck-image-insert-form>.ck.ck-button{display:block;padding:var(--ck-list-button-padding);width:100%}[dir=ltr] .ck.ck-image-insert-form>.ck.ck-button{text-align:left}[dir=rtl] .ck.ck-image-insert-form>.ck.ck-button{text-align:right}.ck.ck-image-insert-form>.ck.ck-collapsible:not(:first-child){border-top:1px solid var(--ck-color-base-border)}.ck.ck-image-insert-form>.ck.ck-collapsible:not(:last-child){border-bottom:1px solid var(--ck-color-base-border)}.ck.ck-image-insert-form>.ck.ck-collapsible,.ck.ck-image-insert-form>.ck.ck-image-insert-url{min-width:var(--ck-image-insert-insert-by-url-width)}.ck.ck-image-insert-form>.ck.ck-image-insert-url{padding:var(--ck-spacing-large)}.ck.ck-image-insert-form:focus{outline:none}","",{version:3,sources:["webpack://./../ckeditor5-image/theme/imageinsert.css","webpack://./../ckeditor5-theme-lark/theme/ckeditor5-image/imageinsert.css"],names:[],mappings:"AAMC,yDACC,YAAa,CACb,mCACD,CCFD,MACC,2CACD,CAEA,wBACC,qBAgBD,CAdC,yDACC,uCAAwC,CACxC,kCAWD,CATC,oJAEC,sBAAuB,CACvB,cACD,CAEA,sFACC,0BACD,CAKD,uCACC,aAAc,CAEd,qCAAsC,CADtC,UAUD,CAZA,iDAME,eAMF,CAZA,iDAUE,gBAEF,CAGC,8DACC,gDACD,CAEA,6DACC,mDACD,CAMD,6FAJC,oDAOD,CAHA,iDAEC,+BACD,CAEA,+BACC,YACD",sourcesContent:["/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-image-insert-url {\n\t& .ck-image-insert-url__action-row {\n\t\tdisplay: grid;\n\t\tgrid-template-columns: repeat(2, 1fr);\n\t}\n}\n",'/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "@ckeditor/ckeditor5-ui/theme/mixins/_dir.css";\n\n:root {\n\t--ck-image-insert-insert-by-url-width: 250px;\n}\n\n.ck.ck-image-insert-url {\n\t--ck-input-width: 100%;\n\n\t& .ck-image-insert-url__action-row {\n\t\tgrid-column-gap: var(--ck-spacing-large);\n\t\tmargin-top: var(--ck-spacing-large);\n\n\t\t& .ck-button-save,\n\t\t& .ck-button-cancel {\n\t\t\tjustify-content: center;\n\t\t\tmin-width: auto;\n\t\t}\n\n\t\t& .ck-button .ck-button__label {\n\t\t\tcolor: var(--ck-color-text);\n\t\t}\n\t}\n}\n\n.ck.ck-image-insert-form {\n\t& > .ck.ck-button {\n\t\tdisplay: block;\n\t\twidth: 100%;\n\t\tpadding: var(--ck-list-button-padding);\n\n\t\t@mixin ck-dir ltr {\n\t\t\ttext-align: left;\n\t\t}\n\n\t\t@mixin ck-dir rtl {\n\t\t\ttext-align: right;\n\t\t}\n\t}\n\n\t& > .ck.ck-collapsible {\n\t\t&:not(:first-child) {\n\t\t\tborder-top: 1px solid var(--ck-color-base-border);\n\t\t}\n\n\t\t&:not(:last-child) {\n\t\t\tborder-bottom: 1px solid var(--ck-color-base-border);\n\t\t}\n\n\t\tmin-width: var(--ck-image-insert-insert-by-url-width);\n\t}\n\n\t/* This is the case when there are no other integrations configured than insert by URL */\n\t& > .ck.ck-image-insert-url {\n\t\tmin-width: var(--ck-image-insert-insert-by-url-width);\n\t\tpadding: var(--ck-spacing-large);\n\t}\n\n\t&:focus {\n\t\toutline: none;\n\t}\n}\n'],sourceRoot:""}]);const a=s},7378:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(9372),i=n.n(o),r=n(935),s=n.n(r)()(i());s.push([t.id,".ck.ck-editor__editable img.image_placeholder{background-size:100% 100%}","",{version:3,sources:["webpack://./../ckeditor5-image/theme/imageplaceholder.css"],names:[],mappings:"AAMC,8CACC,yBACD",sourcesContent:["/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-editor__editable {\n\t& img.image_placeholder {\n\t\tbackground-size: 100% 100%;\n\t}\n}\n"],sourceRoot:""}]);const a=s},3469:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(9372),i=n.n(o),r=n(935),s=n.n(r)()(i());s.push([t.id,".ck-content img.image_resized{height:auto}.ck-content .image.image_resized{box-sizing:border-box;display:block;max-width:100%}.ck-content .image.image_resized img{width:100%}.ck-content .image.image_resized>figcaption{display:block}.ck.ck-editor__editable td .image-inline.image_resized img,.ck.ck-editor__editable th .image-inline.image_resized img{max-width:100%}[dir=ltr] .ck.ck-button.ck-button_with-text.ck-resize-image-button .ck-button__icon{margin-right:var(--ck-spacing-standard)}[dir=rtl] .ck.ck-button.ck-button_with-text.ck-resize-image-button .ck-button__icon{margin-left:var(--ck-spacing-standard)}.ck.ck-dropdown .ck-button.ck-resize-image-button .ck-button__label{width:4em}","",{version:3,sources:["webpack://./../ckeditor5-image/theme/imageresize.css"],names:[],mappings:"AAMA,8BACC,WACD,CAEA,iCAQC,qBAAsB,CADtB,aAAc,CANd,cAkBD,CATC,qCAEC,UACD,CAEA,4CAEC,aACD,CAQC,sHACC,cACD,CAIF,oFACC,uCACD,CAEA,oFACC,sCACD,CAEA,oEACC,SACD",sourcesContent:['/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/* Preserve aspect ratio of the resized image after introducing image height attribute. */\n.ck-content img.image_resized {\n\theight: auto;\n}\n\n.ck-content .image.image_resized {\n\tmax-width: 100%;\n\t/*\n\tThe `` element for resized images must not use `display:table` as browsers do not support `max-width` for it well.\n\tSee https://stackoverflow.com/questions/4019604/chrome-safari-ignoring-max-width-in-table/14420691#14420691 for more.\n\tFortunately, since we control the width, there is no risk that the image will look bad.\n\t*/\n\tdisplay: block;\n\tbox-sizing: border-box;\n\n\t& img {\n\t\t/* For resized images it is the `` element that determines the image width. */\n\t\twidth: 100%;\n\t}\n\n\t& > figcaption {\n\t\t/* The `` element uses `display:block`, so `` also has to. */\n\t\tdisplay: block;\n\t}\n}\n\n.ck.ck-editor__editable {\n\t/* The resized inline image nested in the table should respect its parent size.\n\tSee https://github.com/ckeditor/ckeditor5/issues/9117. */\n\t& td,\n\t& th {\n\t\t& .image-inline.image_resized img {\n\t\t\tmax-width: 100%;\n\t\t}\n\t}\n}\n\n[dir="ltr"] .ck.ck-button.ck-button_with-text.ck-resize-image-button .ck-button__icon {\n\tmargin-right: var(--ck-spacing-standard);\n}\n\n[dir="rtl"] .ck.ck-button.ck-button_with-text.ck-resize-image-button .ck-button__icon {\n\tmargin-left: var(--ck-spacing-standard);\n}\n\n.ck.ck-dropdown .ck-button.ck-resize-image-button .ck-button__label {\n\twidth: 4em;\n}\n'],sourceRoot:""}]);const a=s},6386:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(9372),i=n.n(o),r=n(935),s=n.n(r)()(i());s.push([t.id,":root{--ck-image-style-spacing:1.5em;--ck-inline-image-style-spacing:calc(var(--ck-image-style-spacing)/2)}.ck-content .image-style-block-align-left,.ck-content .image-style-block-align-right{max-width:calc(100% - var(--ck-image-style-spacing))}.ck-content .image-style-align-left,.ck-content .image-style-align-right{clear:none}.ck-content .image-style-side{float:right;margin-left:var(--ck-image-style-spacing);max-width:50%}.ck-content .image-style-align-left{float:left;margin-right:var(--ck-image-style-spacing)}.ck-content .image-style-align-center{margin-left:auto;margin-right:auto}.ck-content .image-style-align-right{float:right;margin-left:var(--ck-image-style-spacing)}.ck-content .image-style-block-align-right{margin-left:auto;margin-right:0}.ck-content .image-style-block-align-left{margin-left:0;margin-right:auto}.ck-content p+.image-style-align-left,.ck-content p+.image-style-align-right,.ck-content p+.image-style-side{margin-top:0}.ck-content .image-inline.image-style-align-left,.ck-content .image-inline.image-style-align-right{margin-bottom:var(--ck-inline-image-style-spacing);margin-top:var(--ck-inline-image-style-spacing)}.ck-content .image-inline.image-style-align-left{margin-right:var(--ck-inline-image-style-spacing)}.ck-content .image-inline.image-style-align-right{margin-left:var(--ck-inline-image-style-spacing)}.ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open>.ck-splitbutton__action:not(.ck-disabled),.ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open>.ck-splitbutton__arrow:not(.ck-disabled),.ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open>.ck-splitbutton__arrow:not(.ck-disabled):not(:hover),.ck.ck-splitbutton.ck-splitbutton_flatten:hover>.ck-splitbutton__action:not(.ck-disabled),.ck.ck-splitbutton.ck-splitbutton_flatten:hover>.ck-splitbutton__arrow:not(.ck-disabled),.ck.ck-splitbutton.ck-splitbutton_flatten:hover>.ck-splitbutton__arrow:not(.ck-disabled):not(:hover){background-color:var(--ck-color-button-on-background)}.ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open>.ck-splitbutton__action:not(.ck-disabled):after,.ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open>.ck-splitbutton__arrow:not(.ck-disabled):after,.ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open>.ck-splitbutton__arrow:not(.ck-disabled):not(:hover):after,.ck.ck-splitbutton.ck-splitbutton_flatten:hover>.ck-splitbutton__action:not(.ck-disabled):after,.ck.ck-splitbutton.ck-splitbutton_flatten:hover>.ck-splitbutton__arrow:not(.ck-disabled):after,.ck.ck-splitbutton.ck-splitbutton_flatten:hover>.ck-splitbutton__arrow:not(.ck-disabled):not(:hover):after{display:none}.ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open:hover>.ck-splitbutton__action:not(.ck-disabled),.ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open:hover>.ck-splitbutton__arrow:not(.ck-disabled),.ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open:hover>.ck-splitbutton__arrow:not(.ck-disabled):not(:hover){background-color:var(--ck-color-button-on-hover-background)}","",{version:3,sources:["webpack://./../ckeditor5-image/theme/imagestyle.css"],names:[],mappings:"AAKA,MACC,8BAA+B,CAC/B,qEACD,CAMC,qFAEC,oDACD,CAIA,yEAEC,UACD,CAEA,8BACC,WAAY,CACZ,yCAA0C,CAC1C,aACD,CAEA,oCACC,UAAW,CACX,0CACD,CAEA,sCACC,gBAAiB,CACjB,iBACD,CAEA,qCACC,WAAY,CACZ,yCACD,CAEA,2CAEC,gBAAiB,CADjB,cAED,CAEA,0CACC,aAAc,CACd,iBACD,CAGA,6GAGC,YACD,CAGC,mGAGC,kDAAmD,CADnD,+CAED,CAEA,iDACC,iDACD,CAEA,kDACC,gDACD,CAUC,0lBAGC,qDAKD,CAHC,8nBACC,YACD,CAKD,oVAGC,2DACD",sourcesContent:["/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n:root {\n\t--ck-image-style-spacing: 1.5em;\n\t--ck-inline-image-style-spacing: calc(var(--ck-image-style-spacing) / 2);\n}\n\n.ck-content {\n\t/* Provides a minimal side margin for the left and right aligned images, so that the user has a visual feedback\n\tconfirming successful application of the style if image width exceeds the editor's size.\n\tSee https://github.com/ckeditor/ckeditor5/issues/9342 */\n\t& .image-style-block-align-left,\n\t& .image-style-block-align-right {\n\t\tmax-width: calc(100% - var(--ck-image-style-spacing));\n\t}\n\n\t/* Allows displaying multiple floating images in the same line.\n\tSee https://github.com/ckeditor/ckeditor5/issues/9183#issuecomment-804988132 */\n\t& .image-style-align-left,\n\t& .image-style-align-right {\n\t\tclear: none;\n\t}\n\n\t& .image-style-side {\n\t\tfloat: right;\n\t\tmargin-left: var(--ck-image-style-spacing);\n\t\tmax-width: 50%;\n\t}\n\n\t& .image-style-align-left {\n\t\tfloat: left;\n\t\tmargin-right: var(--ck-image-style-spacing);\n\t}\n\n\t& .image-style-align-center {\n\t\tmargin-left: auto;\n\t\tmargin-right: auto;\n\t}\n\n\t& .image-style-align-right {\n\t\tfloat: right;\n\t\tmargin-left: var(--ck-image-style-spacing);\n\t}\n\n\t& .image-style-block-align-right {\n\t\tmargin-right: 0;\n\t\tmargin-left: auto;\n\t}\n\n\t& .image-style-block-align-left {\n\t\tmargin-left: 0;\n\t\tmargin-right: auto;\n\t}\n\n\t/* Simulates margin collapsing with the preceding paragraph, which does not work for the floating elements. */\n\t& p + .image-style-align-left,\n\t& p + .image-style-align-right,\n\t& p + .image-style-side {\n\t\tmargin-top: 0;\n\t}\n\n\t& .image-inline {\n\t\t&.image-style-align-left,\n\t\t&.image-style-align-right {\n\t\t\tmargin-top: var(--ck-inline-image-style-spacing);\n\t\t\tmargin-bottom: var(--ck-inline-image-style-spacing);\n\t\t}\n\n\t\t&.image-style-align-left {\n\t\t\tmargin-right: var(--ck-inline-image-style-spacing);\n\t\t}\n\n\t\t&.image-style-align-right {\n\t\t\tmargin-left: var(--ck-inline-image-style-spacing);\n\t\t}\n\t}\n}\n\n.ck.ck-splitbutton {\n\t/* The button should display as a regular drop-down if the action button\n\tis forced to fire the same action as the arrow button. */\n\t&.ck-splitbutton_flatten {\n\t\t&:hover,\n\t\t&.ck-splitbutton_open {\n\t\t\t& > .ck-splitbutton__action:not(.ck-disabled),\n\t\t\t& > .ck-splitbutton__arrow:not(.ck-disabled),\n\t\t\t& > .ck-splitbutton__arrow:not(.ck-disabled):not(:hover) {\n\t\t\t\tbackground-color: var(--ck-color-button-on-background);\n\n\t\t\t\t&::after {\n\t\t\t\t\tdisplay: none;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t&.ck-splitbutton_open:hover {\n\t\t\t& > .ck-splitbutton__action:not(.ck-disabled),\n\t\t\t& > .ck-splitbutton__arrow:not(.ck-disabled),\n\t\t\t& > .ck-splitbutton__arrow:not(.ck-disabled):not(:hover) {\n\t\t\t\tbackground-color: var(--ck-color-button-on-hover-background);\n\t\t\t}\n\t\t}\n\t}\n}\n"],sourceRoot:""}]);const a=s},7693:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(9372),i=n.n(o),r=n(935),s=n.n(r)()(i());s.push([t.id,'.ck-image-upload-complete-icon{border-radius:50%;display:block;position:absolute;right:min(var(--ck-spacing-medium),6%);top:min(var(--ck-spacing-medium),6%);z-index:1}.ck-image-upload-complete-icon:after{content:"";position:absolute}:root{--ck-color-image-upload-icon:#fff;--ck-color-image-upload-icon-background:#008a00;--ck-image-upload-icon-size:20;--ck-image-upload-icon-width:2px;--ck-image-upload-icon-is-visible:clamp(0px,100% - 50px,1px)}.ck-image-upload-complete-icon{animation-delay:0ms,3s;animation-duration:.5s,.5s;animation-fill-mode:forwards,forwards;animation-name:ck-upload-complete-icon-show,ck-upload-complete-icon-hide;background:var(--ck-color-image-upload-icon-background);font-size:calc(1px*var(--ck-image-upload-icon-size));height:calc(var(--ck-image-upload-icon-is-visible)*var(--ck-image-upload-icon-size));opacity:0;overflow:hidden;width:calc(var(--ck-image-upload-icon-is-visible)*var(--ck-image-upload-icon-size))}.ck-image-upload-complete-icon:after{animation-delay:.5s;animation-duration:.5s;animation-fill-mode:forwards;animation-name:ck-upload-complete-icon-check;border-right:var(--ck-image-upload-icon-width) solid var(--ck-color-image-upload-icon);border-top:var(--ck-image-upload-icon-width) solid var(--ck-color-image-upload-icon);box-sizing:border-box;height:0;left:25%;opacity:0;top:50%;transform:scaleX(-1) rotate(135deg);transform-origin:left top;width:0}@media (prefers-reduced-motion:reduce){.ck-image-upload-complete-icon{animation-duration:0ms}.ck-image-upload-complete-icon:after{animation:none;height:.45em;opacity:1;width:.3em}}@keyframes ck-upload-complete-icon-show{0%{opacity:0}to{opacity:1}}@keyframes ck-upload-complete-icon-hide{0%{opacity:1}to{opacity:0}}@keyframes ck-upload-complete-icon-check{0%{height:0;opacity:1;width:0}33%{height:0;width:.3em}to{height:.45em;opacity:1;width:.3em}}',"",{version:3,sources:["webpack://./../ckeditor5-image/theme/imageuploadicon.css","webpack://./../ckeditor5-theme-lark/theme/ckeditor5-image/imageuploadicon.css"],names:[],mappings:"AAKA,+BAUC,iBAAkB,CATlB,aAAc,CACd,iBAAkB,CAOlB,sCAAwC,CADxC,oCAAsC,CAGtC,SAMD,CAJC,qCACC,UAAW,CACX,iBACD,CChBD,MACC,iCAA8C,CAC9C,+CAA4D,CAG5D,8BAA+B,CAC/B,gCAAiC,CACjC,4DACD,CAEA,+BAWC,sBAA4B,CAN5B,0BAAgC,CADhC,qCAAuC,CADvC,wEAA0E,CAD1E,uDAAwD,CAMxD,oDAAuD,CAWvD,oFAAuF,CAlBvF,SAAU,CAgBV,eAAgB,CAChB,mFAqCD,CAjCC,qCAgBC,mBAAsB,CADtB,sBAAyB,CAEzB,4BAA6B,CAH7B,4CAA6C,CAF7C,sFAAuF,CADvF,oFAAqF,CASrF,qBAAsB,CAdtB,QAAS,CAJT,QAAS,CAGT,SAAU,CADV,OAAQ,CAKR,mCAAoC,CACpC,yBAA0B,CAH1B,OAcD,CAEA,uCA7CD,+BA8CE,sBASF,CAPE,qCACC,cAAe,CAGf,YAAc,CAFd,SAAU,CACV,UAED,CACD,CAGD,wCACC,GACC,SACD,CAEA,GACC,SACD,CACD,CAEA,wCACC,GACC,SACD,CAEA,GACC,SACD,CACD,CAEA,yCACC,GAGC,QAAS,CAFT,SAAU,CACV,OAED,CACA,IAEC,QAAS,CADT,UAED,CACA,GAGC,YAAc,CAFd,SAAU,CACV,UAED,CACD",sourcesContent:['/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck-image-upload-complete-icon {\n\tdisplay: block;\n\tposition: absolute;\n\n\t/*\n\t * Smaller images should have the icon closer to the border.\n\t * Match the icon position with the linked image indicator brought by the link image feature.\n\t */\n\ttop: min(var(--ck-spacing-medium), 6%);\n\tright: min(var(--ck-spacing-medium), 6%);\n\tborder-radius: 50%;\n\tz-index: 1;\n\n\t&::after {\n\t\tcontent: "";\n\t\tposition: absolute;\n\t}\n}\n','/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n:root {\n\t--ck-color-image-upload-icon: hsl(0, 0%, 100%);\n\t--ck-color-image-upload-icon-background: hsl(120, 100%, 27%);\n\n\t/* Match the icon size with the linked image indicator brought by the link image feature. */\n\t--ck-image-upload-icon-size: 20;\n\t--ck-image-upload-icon-width: 2px;\n\t--ck-image-upload-icon-is-visible: clamp(0px, 100% - 50px, 1px);\n}\n\n.ck-image-upload-complete-icon {\n\topacity: 0;\n\tbackground: var(--ck-color-image-upload-icon-background);\n\tanimation-name: ck-upload-complete-icon-show, ck-upload-complete-icon-hide;\n\tanimation-fill-mode: forwards, forwards;\n\tanimation-duration: 500ms, 500ms;\n\n\t/* To make animation scalable. */\n\tfont-size: calc(1px * var(--ck-image-upload-icon-size));\n\n\t/* Hide completed upload icon after 3 seconds. */\n\tanimation-delay: 0ms, 3000ms;\n\n\t/*\n\t * Use CSS math to simulate container queries.\n\t * https://css-tricks.com/the-raven-technique-one-step-closer-to-container-queries/#what-about-showing-and-hiding-things\n\t */\n\toverflow: hidden;\n\twidth: calc(var(--ck-image-upload-icon-is-visible) * var(--ck-image-upload-icon-size));\n\theight: calc(var(--ck-image-upload-icon-is-visible) * var(--ck-image-upload-icon-size));\n\n\t/* This is check icon element made from border-width mixed with animations. */\n\t&::after {\n\t\t/* Because of border transformation we need to "hard code" left position. */\n\t\tleft: 25%;\n\n\t\ttop: 50%;\n\t\topacity: 0;\n\t\theight: 0;\n\t\twidth: 0;\n\n\t\ttransform: scaleX(-1) rotate(135deg);\n\t\ttransform-origin: left top;\n\t\tborder-top: var(--ck-image-upload-icon-width) solid var(--ck-color-image-upload-icon);\n\t\tborder-right: var(--ck-image-upload-icon-width) solid var(--ck-color-image-upload-icon);\n\n\t\tanimation-name: ck-upload-complete-icon-check;\n\t\tanimation-duration: 500ms;\n\t\tanimation-delay: 500ms;\n\t\tanimation-fill-mode: forwards;\n\n\t\t/* #1095. While reset is not providing proper box-sizing for pseudoelements, we need to handle it. */\n\t\tbox-sizing: border-box;\n\t}\n\n\t@media (prefers-reduced-motion: reduce) {\n\t\tanimation-duration: 0ms;\n\n\t\t&::after {\n\t\t\tanimation: none;\n\t\t\topacity: 1;\n\t\t\twidth: 0.3em;\n\t\t\theight: 0.45em;\n\t\t}\n\t}\n}\n\n@keyframes ck-upload-complete-icon-show {\n\tfrom {\n\t\topacity: 0;\n\t}\n\n\tto {\n\t\topacity: 1;\n\t}\n}\n\n@keyframes ck-upload-complete-icon-hide {\n\tfrom {\n\t\topacity: 1;\n\t}\n\n\tto {\n\t\topacity: 0;\n\t}\n}\n\n@keyframes ck-upload-complete-icon-check {\n\t0% {\n\t\topacity: 1;\n\t\twidth: 0;\n\t\theight: 0;\n\t}\n\t33% {\n\t\twidth: 0.3em;\n\t\theight: 0;\n\t}\n\t100% {\n\t\topacity: 1;\n\t\twidth: 0.3em;\n\t\theight: 0.45em;\n\t}\n}\n'],sourceRoot:""}]);const a=s},1559:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(9372),i=n.n(o),r=n(935),s=n.n(r)()(i());s.push([t.id,'.ck .ck-upload-placeholder-loader{align-items:center;display:flex;justify-content:center;left:0;position:absolute;top:0}.ck .ck-upload-placeholder-loader:before{content:"";position:relative}:root{--ck-color-upload-placeholder-loader:#b3b3b3;--ck-upload-placeholder-loader-size:32px;--ck-upload-placeholder-image-aspect-ratio:2.8}.ck .ck-image-upload-placeholder{margin:0;width:100%}.ck .ck-image-upload-placeholder.image-inline{width:calc(var(--ck-upload-placeholder-loader-size)*2*var(--ck-upload-placeholder-image-aspect-ratio))}.ck .ck-image-upload-placeholder img{aspect-ratio:var(--ck-upload-placeholder-image-aspect-ratio)}.ck .ck-upload-placeholder-loader{height:100%;width:100%}.ck .ck-upload-placeholder-loader:before{animation:ck-upload-placeholder-loader 1s linear infinite;border-radius:50%;border-right:2px solid transparent;border-top:3px solid var(--ck-color-upload-placeholder-loader);height:var(--ck-upload-placeholder-loader-size);width:var(--ck-upload-placeholder-loader-size)}@keyframes ck-upload-placeholder-loader{to{transform:rotate(1turn)}}',"",{version:3,sources:["webpack://./../ckeditor5-image/theme/imageuploadloader.css","webpack://./../ckeditor5-theme-lark/theme/ckeditor5-image/imageuploadloader.css"],names:[],mappings:"AAKA,kCAGC,kBAAmB,CADnB,YAAa,CAEb,sBAAuB,CAEvB,MAAO,CALP,iBAAkB,CAIlB,KAOD,CAJC,yCACC,UAAW,CACX,iBACD,CCXD,MACC,4CAAqD,CACrD,wCAAyC,CACzC,8CACD,CAEA,iCAGC,QAAS,CADT,UAgBD,CAbC,8CACC,sGACD,CAEA,qCAOC,4DACD,CAGD,kCAEC,WAAY,CADZ,UAWD,CARC,yCAMC,yDAA0D,CAH1D,iBAAkB,CAElB,kCAAmC,CADnC,8DAA+D,CAF/D,+CAAgD,CADhD,8CAMD,CAGD,wCACC,GACC,uBACD,CACD",sourcesContent:["/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck .ck-upload-placeholder-loader {\n\tposition: absolute;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\ttop: 0;\n\tleft: 0;\n\n\t&::before {\n\t\tcontent: '';\n\t\tposition: relative;\n\t}\n}\n","/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n:root {\n\t--ck-color-upload-placeholder-loader: hsl(0, 0%, 70%);\n\t--ck-upload-placeholder-loader-size: 32px;\n\t--ck-upload-placeholder-image-aspect-ratio: 2.8;\n}\n\n.ck .ck-image-upload-placeholder {\n\t/* We need to control the full width of the SVG gray background. */\n\twidth: 100%;\n\tmargin: 0;\n\n\t&.image-inline {\n\t\twidth: calc( 2 * var(--ck-upload-placeholder-loader-size) * var(--ck-upload-placeholder-image-aspect-ratio) );\n\t}\n\n\t& img {\n\t\t/*\n\t\t * This is an arbitrary aspect for a 1x1 px GIF to display to the user. Not too tall, not too short.\n\t\t * There's nothing special about this number except that it should make the image placeholder look like\n\t\t * a real image during this short period after the upload started and before the image was read from the\n\t\t * file system (and a rich preview was loaded).\n\t\t */\n\t\taspect-ratio: var(--ck-upload-placeholder-image-aspect-ratio);\n\t}\n}\n\n.ck .ck-upload-placeholder-loader {\n\twidth: 100%;\n\theight: 100%;\n\n\t&::before {\n\t\twidth: var(--ck-upload-placeholder-loader-size);\n\t\theight: var(--ck-upload-placeholder-loader-size);\n\t\tborder-radius: 50%;\n\t\tborder-top: 3px solid var(--ck-color-upload-placeholder-loader);\n\t\tborder-right: 2px solid transparent;\n\t\tanimation: ck-upload-placeholder-loader 1s linear infinite;\n\t}\n}\n\n@keyframes ck-upload-placeholder-loader {\n\tto {\n\t\ttransform: rotate( 360deg );\n\t}\n}\n"],sourceRoot:""}]);const a=s},2267:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(9372),i=n.n(o),r=n(935),s=n.n(r)()(i());s.push([t.id,".ck.ck-editor__editable .image,.ck.ck-editor__editable .image-inline{position:relative}.ck.ck-editor__editable .image .ck-progress-bar,.ck.ck-editor__editable .image-inline .ck-progress-bar{left:0;position:absolute;top:0}.ck.ck-editor__editable .image-inline.ck-appear,.ck.ck-editor__editable .image.ck-appear{animation:fadeIn .7s}@media (prefers-reduced-motion:reduce){.ck.ck-editor__editable .image-inline.ck-appear,.ck.ck-editor__editable .image.ck-appear{animation:none;opacity:1}}.ck.ck-editor__editable .image .ck-progress-bar,.ck.ck-editor__editable .image-inline .ck-progress-bar{background:var(--ck-color-upload-bar-background);height:2px;transition:width .1s;width:0}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}","",{version:3,sources:["webpack://./../ckeditor5-image/theme/imageuploadprogress.css","webpack://./../ckeditor5-theme-lark/theme/ckeditor5-image/imageuploadprogress.css"],names:[],mappings:"AAMC,qEAEC,iBACD,CAGA,uGAIC,MAAO,CAFP,iBAAkB,CAClB,KAED,CCRC,yFACC,oBAMD,CAJC,uCAHD,yFAKE,cAAe,CADf,SAGF,CADC,CAKF,uGAIC,gDAAiD,CAFjD,UAAW,CAGX,oBAAuB,CAFvB,OAGD,CAGD,kBACC,GAAO,SAAY,CACnB,GAAO,SAAY,CACpB",sourcesContent:["/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-editor__editable {\n\t& .image,\n\t& .image-inline {\n\t\tposition: relative;\n\t}\n\n\t/* Upload progress bar. */\n\t& .image .ck-progress-bar,\n\t& .image-inline .ck-progress-bar {\n\t\tposition: absolute;\n\t\ttop: 0;\n\t\tleft: 0;\n\t}\n}\n","/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-editor__editable {\n\t& .image,\n\t& .image-inline {\n\t\t/* Showing animation. */\n\t\t&.ck-appear {\n\t\t\tanimation: fadeIn 700ms;\n\n\t\t\t@media (prefers-reduced-motion: reduce) {\n\t\t\t\topacity: 1;\n\t\t\t\tanimation: none;\n\t\t\t}\n\t\t}\n\t}\n\n\t/* Upload progress bar. */\n\t& .image .ck-progress-bar,\n\t& .image-inline .ck-progress-bar {\n\t\theight: 2px;\n\t\twidth: 0;\n\t\tbackground: var(--ck-color-upload-bar-background);\n\t\ttransition: width 100ms;\n\t}\n}\n\n@keyframes fadeIn {\n\tfrom { opacity: 0; }\n\tto { opacity: 1; }\n}\n"],sourceRoot:""}]);const a=s},4062:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(9372),i=n.n(o),r=n(935),s=n.n(r)()(i());s.push([t.id,".ck.ck-text-alternative-form{display:flex;flex-direction:row;flex-wrap:nowrap}.ck.ck-text-alternative-form .ck-labeled-field-view{display:inline-block}.ck.ck-text-alternative-form .ck-label{display:none}@media screen and (max-width:600px){.ck.ck-text-alternative-form{flex-wrap:wrap}.ck.ck-text-alternative-form .ck-labeled-field-view{flex-basis:100%}.ck.ck-text-alternative-form .ck-button{flex-basis:50%}}","",{version:3,sources:["webpack://./../ckeditor5-image/theme/textalternativeform.css","webpack://./../ckeditor5-ui/theme/mixins/_rwd.css"],names:[],mappings:"AAOA,6BACC,YAAa,CACb,kBAAmB,CACnB,gBAqBD,CAnBC,oDACC,oBACD,CAEA,uCACC,YACD,CCZA,oCDCD,6BAcE,cAUF,CARE,oDACC,eACD,CAEA,wCACC,cACD,CCrBD",sourcesContent:['/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "@ckeditor/ckeditor5-ui/theme/mixins/_rwd.css";\n\n.ck.ck-text-alternative-form {\n\tdisplay: flex;\n\tflex-direction: row;\n\tflex-wrap: nowrap;\n\n\t& .ck-labeled-field-view {\n\t\tdisplay: inline-block;\n\t}\n\n\t& .ck-label {\n\t\tdisplay: none;\n\t}\n\n\t@mixin ck-media-phone {\n\t\tflex-wrap: wrap;\n\n\t\t& .ck-labeled-field-view {\n\t\t\tflex-basis: 100%;\n\t\t}\n\n\t\t& .ck-button {\n\t\t\tflex-basis: 50%;\n\t\t}\n\t}\n}\n',"/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@define-mixin ck-media-phone {\n\t@media screen and (max-width: 600px) {\n\t\t@mixin-content;\n\t}\n}\n"],sourceRoot:""}]);const a=s},1232:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(9372),i=n.n(o),r=n(935),s=n.n(r)()(i());s.push([t.id,".ck-editor__editable .ck-list-bogus-paragraph{display:block}","",{version:3,sources:["webpack://./../ckeditor5-list/theme/documentlist.css"],names:[],mappings:"AAKA,8CACC,aACD",sourcesContent:["/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck-editor__editable .ck-list-bogus-paragraph {\n\tdisplay: block;\n}\n"],sourceRoot:""}]);const a=s},6903:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(9372),i=n.n(o),r=n(935),s=n.n(r)()(i());s.push([t.id,".ck-content ol{list-style-type:decimal}.ck-content ol ol{list-style-type:lower-latin}.ck-content ol ol ol{list-style-type:lower-roman}.ck-content ol ol ol ol{list-style-type:upper-latin}.ck-content ol ol ol ol ol{list-style-type:upper-roman}.ck-content ul{list-style-type:disc}.ck-content ul ul{list-style-type:circle}.ck-content ul ul ul,.ck-content ul ul ul ul{list-style-type:square}","",{version:3,sources:["webpack://./../ckeditor5-list/theme/list.css"],names:[],mappings:"AAKA,eACC,uBAiBD,CAfC,kBACC,2BAaD,CAXC,qBACC,2BASD,CAPC,wBACC,2BAKD,CAHC,2BACC,2BACD,CAMJ,eACC,oBAaD,CAXC,kBACC,sBASD,CAJE,6CACC,sBACD",sourcesContent:["/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck-content ol {\n\tlist-style-type: decimal;\n\n\t& ol {\n\t\tlist-style-type: lower-latin;\n\n\t\t& ol {\n\t\t\tlist-style-type: lower-roman;\n\n\t\t\t& ol {\n\t\t\t\tlist-style-type: upper-latin;\n\n\t\t\t\t& ol {\n\t\t\t\t\tlist-style-type: upper-roman;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n.ck-content ul {\n\tlist-style-type: disc;\n\n\t& ul {\n\t\tlist-style-type: circle;\n\n\t\t& ul {\n\t\t\tlist-style-type: square;\n\n\t\t\t& ul {\n\t\t\t\tlist-style-type: square;\n\t\t\t}\n\t\t}\n\t}\n}\n"],sourceRoot:""}]);const a=s},9968:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(9372),i=n.n(o),r=n(935),s=n.n(r)()(i());s.push([t.id,".ck.ck-list-properties.ck-list-properties_without-styles{padding:var(--ck-spacing-large)}.ck.ck-list-properties.ck-list-properties_without-styles>*{min-width:14em}.ck.ck-list-properties.ck-list-properties_without-styles>*+*{margin-top:var(--ck-spacing-standard)}.ck.ck-list-properties.ck-list-properties_with-numbered-properties>.ck-list-styles-list{grid-template-columns:repeat(4,auto)}.ck.ck-list-properties.ck-list-properties_with-numbered-properties>.ck-collapsible{border-top:1px solid var(--ck-color-base-border)}.ck.ck-list-properties.ck-list-properties_with-numbered-properties>.ck-collapsible>.ck-collapsible__children>*{width:100%}.ck.ck-list-properties.ck-list-properties_with-numbered-properties>.ck-collapsible>.ck-collapsible__children>*+*{margin-top:var(--ck-spacing-standard)}.ck.ck-list-properties .ck.ck-numbered-list-properties__start-index .ck-input{min-width:auto;width:100%}.ck.ck-list-properties .ck.ck-numbered-list-properties__reversed-order{background:transparent;margin-bottom:calc(var(--ck-spacing-tiny)*-1);padding-left:0;padding-right:0}.ck.ck-list-properties .ck.ck-numbered-list-properties__reversed-order:active,.ck.ck-list-properties .ck.ck-numbered-list-properties__reversed-order:hover{background:none;border-color:transparent;box-shadow:none}","",{version:3,sources:["webpack://./../ckeditor5-theme-lark/theme/ckeditor5-list/listproperties.css"],names:[],mappings:"AAOC,yDACC,+BASD,CAPC,2DACC,cAKD,CAHC,6DACC,qCACD,CASD,wFACC,oCACD,CAGA,mFACC,gDAWD,CARE,+GACC,UAKD,CAHC,iHACC,qCACD,CAMJ,8EACC,cAAe,CACf,UACD,CAEA,uEACC,sBAAuB,CAGvB,6CAAgD,CAFhD,cAAe,CACf,eAQD,CALC,2JAGC,eAAgB,CADhB,wBAAyB,CADzB,eAGD",sourcesContent:["/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-list-properties {\n\t/* When there are no list styles and there is no collapsible. */\n\t&.ck-list-properties_without-styles {\n\t\tpadding: var(--ck-spacing-large);\n\n\t\t& > * {\n\t\t\tmin-width: 14em;\n\n\t\t\t& + * {\n\t\t\t\tmargin-top: var(--ck-spacing-standard);\n\t\t\t}\n\t\t}\n\t}\n\n\t/*\n\t * When the numbered list property fields (start at, reversed) should be displayed,\n\t * more horizontal space is needed. Reconfigure the style grid to create that space.\n\t */\n\t&.ck-list-properties_with-numbered-properties {\n\t\t& > .ck-list-styles-list {\n\t\t\tgrid-template-columns: repeat( 4, auto );\n\t\t}\n\n\t\t/* When list styles are rendered and property fields are in a collapsible. */\n\t\t& > .ck-collapsible {\n\t\t\tborder-top: 1px solid var(--ck-color-base-border);\n\n\t\t\t& > .ck-collapsible__children {\n\t\t\t\t& > * {\n\t\t\t\t\twidth: 100%;\n\n\t\t\t\t\t& + * {\n\t\t\t\t\t\tmargin-top: var(--ck-spacing-standard);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t& .ck.ck-numbered-list-properties__start-index .ck-input {\n\t\tmin-width: auto;\n\t\twidth: 100%;\n\t}\n\n\t& .ck.ck-numbered-list-properties__reversed-order {\n\t\tbackground: transparent;\n\t\tpadding-left: 0;\n\t\tpadding-right: 0;\n\t\tmargin-bottom: calc(-1 * var(--ck-spacing-tiny));\n\n\t\t&:active, &:hover {\n\t\t\tbox-shadow: none;\n\t\t\tborder-color: transparent;\n\t\t\tbackground: none;\n\t\t}\n\t}\n}\n"],sourceRoot:""}]);const a=s},7141:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(9372),i=n.n(o),r=n(935),s=n.n(r)()(i());s.push([t.id,".ck.ck-list-styles-list{display:grid}:root{--ck-list-style-button-size:44px}.ck.ck-list-styles-list{column-gap:var(--ck-spacing-medium);grid-template-columns:repeat(3,auto);padding:var(--ck-spacing-large);row-gap:var(--ck-spacing-medium)}.ck.ck-list-styles-list .ck-button{box-sizing:content-box;margin:0;padding:0}.ck.ck-list-styles-list .ck-button,.ck.ck-list-styles-list .ck-button .ck-icon{height:var(--ck-list-style-button-size);width:var(--ck-list-style-button-size)}","",{version:3,sources:["webpack://./../ckeditor5-list/theme/liststyles.css","webpack://./../ckeditor5-theme-lark/theme/ckeditor5-list/liststyles.css"],names:[],mappings:"AAKA,wBACC,YACD,CCFA,MACC,gCACD,CAEA,wBAGC,mCAAoC,CAFpC,oCAAwC,CAGxC,+BAAgC,CAFhC,gCA4BD,CAxBC,mCAiBC,sBAAuB,CAPvB,QAAS,CANT,SAmBD,CAJC,+EAhBA,uCAAwC,CADxC,sCAoBA",sourcesContent:["/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-list-styles-list {\n\tdisplay: grid;\n}\n",'/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n:root {\n\t--ck-list-style-button-size: 44px;\n}\n\n.ck.ck-list-styles-list {\n\tgrid-template-columns: repeat( 3, auto );\n\trow-gap: var(--ck-spacing-medium);\n\tcolumn-gap: var(--ck-spacing-medium);\n\tpadding: var(--ck-spacing-large);\n\n\t& .ck-button {\n\t\t/* Make the button look like a thumbnail (the icon "takes it all"). */\n\t\twidth: var(--ck-list-style-button-size);\n\t\theight: var(--ck-list-style-button-size);\n\t\tpadding: 0;\n\n\t\t/*\n\t\t * Buttons are aligned by the grid so disable default button margins to not collide with the\n\t\t * gaps in the grid.\n\t\t */\n\t\tmargin: 0;\n\n\t\t/*\n\t\t * Make sure the button border (which is displayed on focus, BTW) does not steal pixels\n\t\t * from the button dimensions and, as a result, decrease the size of the icon\n\t\t * (which becomes blurry as it scales down).\n\t\t */\n\t\tbox-sizing: content-box;\n\n\t\t& .ck-icon {\n\t\t\twidth: var(--ck-list-style-button-size);\n\t\t\theight: var(--ck-list-style-button-size);\n\t\t}\n\t}\n}\n'],sourceRoot:""}]);const a=s},8991:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(9372),i=n.n(o),r=n(935),s=n.n(r)()(i());s.push([t.id,':root{--ck-todo-list-checkmark-size:16px}.ck-content .todo-list{list-style:none}.ck-content .todo-list li{margin-bottom:5px;position:relative}.ck-content .todo-list li .todo-list{margin-top:5px}.ck-content .todo-list .todo-list__label>input{-webkit-appearance:none;border:0;display:inline-block;height:var(--ck-todo-list-checkmark-size);left:-25px;margin-left:0;margin-right:-15px;position:relative;right:0;vertical-align:middle;width:var(--ck-todo-list-checkmark-size)}.ck-content[dir=rtl] .todo-list .todo-list__label>input{left:0;margin-left:-15px;margin-right:0;right:-25px}.ck-content .todo-list .todo-list__label>input:before{border:1px solid #333;border-radius:2px;box-sizing:border-box;content:"";display:block;height:100%;position:absolute;transition:box-shadow .25s ease-in-out;width:100%}@media (prefers-reduced-motion:reduce){.ck-content .todo-list .todo-list__label>input:before{transition:none}}.ck-content .todo-list .todo-list__label>input:after{border-color:transparent;border-style:solid;border-width:0 calc(var(--ck-todo-list-checkmark-size)/8) calc(var(--ck-todo-list-checkmark-size)/8) 0;box-sizing:content-box;content:"";display:block;height:calc(var(--ck-todo-list-checkmark-size)/2.6);left:calc(var(--ck-todo-list-checkmark-size)/3);pointer-events:none;position:absolute;top:calc(var(--ck-todo-list-checkmark-size)/5.3);transform:rotate(45deg);width:calc(var(--ck-todo-list-checkmark-size)/5.3)}.ck-content .todo-list .todo-list__label>input[checked]:before{background:#26ab33;border-color:#26ab33}.ck-content .todo-list .todo-list__label>input[checked]:after{border-color:#fff}.ck-content .todo-list .todo-list__label .todo-list__label__description{vertical-align:middle}.ck-content .todo-list .todo-list__label.todo-list__label_without-description input[type=checkbox]{position:absolute}.ck-editor__editable.ck-content .todo-list .todo-list__label>input,.ck-editor__editable.ck-content .todo-list .todo-list__label>span[contenteditable=false]>input{cursor:pointer}.ck-editor__editable.ck-content .todo-list .todo-list__label>input:hover:before,.ck-editor__editable.ck-content .todo-list .todo-list__label>span[contenteditable=false]>input:hover:before{box-shadow:0 0 0 5px rgba(0,0,0,.1)}.ck-editor__editable.ck-content .todo-list .todo-list__label>span[contenteditable=false]>input{-webkit-appearance:none;border:0;display:inline-block;height:var(--ck-todo-list-checkmark-size);left:-25px;margin-left:0;margin-right:-15px;position:relative;right:0;vertical-align:middle;width:var(--ck-todo-list-checkmark-size)}.ck-editor__editable.ck-content[dir=rtl] .todo-list .todo-list__label>span[contenteditable=false]>input{left:0;margin-left:-15px;margin-right:0;right:-25px}.ck-editor__editable.ck-content .todo-list .todo-list__label>span[contenteditable=false]>input:before{border:1px solid #333;border-radius:2px;box-sizing:border-box;content:"";display:block;height:100%;position:absolute;transition:box-shadow .25s ease-in-out;width:100%}@media (prefers-reduced-motion:reduce){.ck-editor__editable.ck-content .todo-list .todo-list__label>span[contenteditable=false]>input:before{transition:none}}.ck-editor__editable.ck-content .todo-list .todo-list__label>span[contenteditable=false]>input:after{border-color:transparent;border-style:solid;border-width:0 calc(var(--ck-todo-list-checkmark-size)/8) calc(var(--ck-todo-list-checkmark-size)/8) 0;box-sizing:content-box;content:"";display:block;height:calc(var(--ck-todo-list-checkmark-size)/2.6);left:calc(var(--ck-todo-list-checkmark-size)/3);pointer-events:none;position:absolute;top:calc(var(--ck-todo-list-checkmark-size)/5.3);transform:rotate(45deg);width:calc(var(--ck-todo-list-checkmark-size)/5.3)}.ck-editor__editable.ck-content .todo-list .todo-list__label>span[contenteditable=false]>input[checked]:before{background:#26ab33;border-color:#26ab33}.ck-editor__editable.ck-content .todo-list .todo-list__label>span[contenteditable=false]>input[checked]:after{border-color:#fff}.ck-editor__editable.ck-content .todo-list .todo-list__label.todo-list__label_without-description input[type=checkbox]{position:absolute}',"",{version:3,sources:["webpack://./../ckeditor5-list/theme/todolist.css"],names:[],mappings:"AAKA,MACC,kCACD,CA4EA,uBACC,eAwBD,CAtBC,0BAEC,iBAAkB,CADlB,iBAMD,CAHC,qCACC,cACD,CAIA,+CAtFD,uBAAwB,CAQxB,QAAS,CAPT,oBAAqB,CAGrB,yCAA0C,CAO1C,UAAW,CAGX,aAAc,CAFd,kBAAmB,CAVnB,iBAAkB,CAWlB,OAAQ,CARR,qBAAsB,CAFtB,wCAqFC,CAFA,wDApEA,MAAO,CAGP,iBAAkB,CAFlB,cAAe,CACf,WAoEA,CAhED,sDAOC,qBAAiC,CACjC,iBAAkB,CALlB,qBAAsB,CACtB,UAAW,CAHX,aAAc,CAKd,WAAY,CAJZ,iBAAkB,CAOlB,sCAAwC,CAJxC,UASD,CAHC,uCAXD,sDAYE,eAEF,CADC,CAGD,qDAaC,wBAAyB,CADzB,kBAAmB,CAEnB,sGAA+G,CAX/G,sBAAuB,CAEvB,UAAW,CAJX,aAAc,CAUd,mDAAwD,CAHxD,+CAAoD,CAJpD,mBAAoB,CAFpB,iBAAkB,CAOlB,gDAAqD,CAMrD,uBAAwB,CALxB,kDAMD,CAGC,+DACC,kBAA8B,CAC9B,oBACD,CAEA,8DACC,iBACD,CAwBA,wEACC,qBACD,CAEA,mGACC,iBACD,CAYD,kKAEC,cAKD,CAHC,4LACC,mCACD,CAMD,+FAxHA,uBAAwB,CAQxB,QAAS,CAPT,oBAAqB,CAGrB,yCAA0C,CAO1C,UAAW,CAGX,aAAc,CAFd,kBAAmB,CAVnB,iBAAkB,CAWlB,OAAQ,CARR,qBAAsB,CAFtB,wCAuHA,CAFA,wGAtGC,MAAO,CAGP,iBAAkB,CAFlB,cAAe,CACf,WAsGD,CAlGA,sGAOC,qBAAiC,CACjC,iBAAkB,CALlB,qBAAsB,CACtB,UAAW,CAHX,aAAc,CAKd,WAAY,CAJZ,iBAAkB,CAOlB,sCAAwC,CAJxC,UASD,CAHC,uCAXD,sGAYE,eAEF,CADC,CAGD,qGAaC,wBAAyB,CADzB,kBAAmB,CAEnB,sGAA+G,CAX/G,sBAAuB,CAEvB,UAAW,CAJX,aAAc,CAUd,mDAAwD,CAHxD,+CAAoD,CAJpD,mBAAoB,CAFpB,iBAAkB,CAOlB,gDAAqD,CAMrD,uBAAwB,CALxB,kDAMD,CAGC,+GACC,kBAA8B,CAC9B,oBACD,CAEA,8GACC,iBACD,CA2DA,uHACC,iBACD",sourcesContent:["/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n:root {\n\t--ck-todo-list-checkmark-size: 16px;\n}\n\n@define-mixin todo-list-checkbox {\n\t-webkit-appearance: none;\n\tdisplay: inline-block;\n\tposition: relative;\n\twidth: var(--ck-todo-list-checkmark-size);\n\theight: var(--ck-todo-list-checkmark-size);\n\tvertical-align: middle;\n\n\t/* Needed on iOS */\n\tborder: 0;\n\n\t/* LTR styles */\n\tleft: -25px;\n\tmargin-right: -15px;\n\tright: 0;\n\tmargin-left: 0;\n\n\t/* RTL styles */\n\t@nest [dir=rtl]& {\n\t\tleft: 0;\n\t\tmargin-right: 0;\n\t\tright: -25px;\n\t\tmargin-left: -15px;\n\t}\n\n\t&::before {\n\t\tdisplay: block;\n\t\tposition: absolute;\n\t\tbox-sizing: border-box;\n\t\tcontent: '';\n\t\twidth: 100%;\n\t\theight: 100%;\n\t\tborder: 1px solid hsl(0, 0%, 20%);\n\t\tborder-radius: 2px;\n\t\ttransition: 250ms ease-in-out box-shadow;\n\n\t\t@media (prefers-reduced-motion: reduce) {\n\t\t\ttransition: none;\n\t\t}\n\t}\n\n\t&::after {\n\t\tdisplay: block;\n\t\tposition: absolute;\n\t\tbox-sizing: content-box;\n\t\tpointer-events: none;\n\t\tcontent: '';\n\n\t\t/* Calculate tick position, size and border-width proportional to the checkmark size. */\n\t\tleft: calc( var(--ck-todo-list-checkmark-size) / 3 );\n\t\ttop: calc( var(--ck-todo-list-checkmark-size) / 5.3 );\n\t\twidth: calc( var(--ck-todo-list-checkmark-size) / 5.3 );\n\t\theight: calc( var(--ck-todo-list-checkmark-size) / 2.6 );\n\t\tborder-style: solid;\n\t\tborder-color: transparent;\n\t\tborder-width: 0 calc( var(--ck-todo-list-checkmark-size) / 8 ) calc( var(--ck-todo-list-checkmark-size) / 8 ) 0;\n\t\ttransform: rotate(45deg);\n\t}\n\n\t&[checked] {\n\t\t&::before {\n\t\t\tbackground: hsl(126, 64%, 41%);\n\t\t\tborder-color: hsl(126, 64%, 41%);\n\t\t}\n\n\t\t&::after {\n\t\t\tborder-color: hsl(0, 0%, 100%);\n\t\t}\n\t}\n}\n\n/*\n * To-do list content styles.\n */\n.ck-content .todo-list {\n\tlist-style: none;\n\n\t& li {\n\t\tposition: relative;\n\t\tmargin-bottom: 5px;\n\n\t\t& .todo-list {\n\t\t\tmargin-top: 5px;\n\t\t}\n\t}\n\n\t& .todo-list__label {\n\t\t& > input {\n\t\t\t@mixin todo-list-checkbox;\n\t\t}\n\n\t\t& .todo-list__label__description {\n\t\t\tvertical-align: middle;\n\t\t}\n\n\t\t&.todo-list__label_without-description input[type=checkbox] {\n\t\t\tposition: absolute;\n\t\t}\n\t}\n}\n\n/*\n * To-do list editing view styles.\n */\n.ck-editor__editable.ck-content .todo-list .todo-list__label {\n\t/*\n\t * To-do list should be interactive only during the editing\n\t * (https://github.com/ckeditor/ckeditor5/issues/2090).\n\t */\n\t& > input,\n\t& > span[contenteditable=false] > input {\n\t\tcursor: pointer;\n\n\t\t&:hover::before {\n\t\t\tbox-shadow: 0 0 0 5px hsla(0, 0%, 0%, 0.1);\n\t\t}\n\t}\n\n\t/*\n\t * Document Lists - editing view has an additional span around checkbox.\n\t */\n\t& > span[contenteditable=false] > input {\n\t\t@mixin todo-list-checkbox;\n\t}\n\n\t&.todo-list__label_without-description {\n\t\t& input[type=checkbox] {\n\t\t\tposition: absolute;\n\t\t}\n\t}\n}\n"],sourceRoot:""}]);const a=s},8868:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(9372),i=n.n(o),r=n(935),s=n.n(r)()(i());s.push([t.id,".ck.ck-character-grid{max-width:100%}.ck.ck-character-grid .ck-character-grid__tiles{display:grid}:root{--ck-character-grid-tile-size:24px}.ck.ck-character-grid{max-height:200px;overflow-x:hidden;overflow-y:auto;width:350px}@media screen and (max-width:600px){.ck.ck-character-grid{width:190px}}.ck.ck-character-grid .ck-character-grid__tiles{grid-template-columns:repeat(10,1fr);margin:var(--ck-spacing-standard) var(--ck-spacing-large);grid-gap:var(--ck-spacing-standard)}@media screen and (max-width:600px){.ck.ck-character-grid .ck-character-grid__tiles{grid-template-columns:repeat(5,1fr)}}.ck.ck-character-grid .ck-character-grid__tile{border:0;font-size:1.2em;height:var(--ck-character-grid-tile-size);min-height:var(--ck-character-grid-tile-size);min-width:var(--ck-character-grid-tile-size);padding:0;transition:box-shadow .2s ease;width:var(--ck-character-grid-tile-size)}@media (prefers-reduced-motion:reduce){.ck.ck-character-grid .ck-character-grid__tile{transition:none}}.ck.ck-character-grid .ck-character-grid__tile:focus:not(.ck-disabled),.ck.ck-character-grid .ck-character-grid__tile:hover:not(.ck-disabled){border:0;box-shadow:inset 0 0 0 1px var(--ck-color-base-background),0 0 0 2px var(--ck-color-focus-border)}.ck.ck-character-grid .ck-character-grid__tile .ck-button__label{line-height:var(--ck-character-grid-tile-size);text-align:center;width:100%}","",{version:3,sources:["webpack://./../ckeditor5-special-characters/theme/charactergrid.css","webpack://./../ckeditor5-theme-lark/theme/ckeditor5-special-characters/charactergrid.css","webpack://./../ckeditor5-ui/theme/mixins/_rwd.css"],names:[],mappings:"AAKA,sBACC,cAKD,CAHC,gDACC,YACD,CCFD,MACC,kCACD,CAEA,sBAIC,gBAAiB,CAFjB,iBAAkB,CADlB,eAAgB,CAEhB,WA6CD,CCtDC,oCDMD,sBAOE,WAyCF,CCpDC,CDcA,gDACC,oCAAsC,CACtC,yDAA0D,CAC1D,mCAKD,CCxBA,oCDgBA,gDAME,mCAEF,CCtBA,CDwBA,+CAQC,QAAS,CAHT,eAAgB,CAHhB,yCAA0C,CAE1C,6CAA8C,CAD9C,4CAA6C,CAG7C,SAAU,CACV,8BAA+B,CAN/B,wCA0BD,CAjBC,uCAVD,+CAWE,eAgBF,CAfC,CAEA,8IAGC,QAAS,CACT,iGACD,CAGA,iEACC,8CAA+C,CAE/C,iBAAkB,CADlB,UAED",sourcesContent:["/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-character-grid {\n\tmax-width: 100%;\n\n\t& .ck-character-grid__tiles {\n\t\tdisplay: grid;\n\t}\n}\n",'/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "@ckeditor/ckeditor5-ui/theme/mixins/_rwd.css";\n@import "../mixins/_rounded.css";\n\n:root {\n\t--ck-character-grid-tile-size: 24px;\n}\n\n.ck.ck-character-grid {\n\toverflow-y: auto;\n\toverflow-x: hidden;\n\twidth: 350px;\n\tmax-height: 200px;\n\n\t@mixin ck-media-phone {\n\t\twidth: 190px;\n\t}\n\n\t& .ck-character-grid__tiles {\n\t\tgrid-template-columns: repeat(10, 1fr);\n\t\tmargin: var(--ck-spacing-standard) var(--ck-spacing-large);\n\t\tgrid-gap: var(--ck-spacing-standard);\n\n\t\t@mixin ck-media-phone {\n\t\t\tgrid-template-columns: repeat(5, 1fr);\n\t\t}\n\t}\n\n\t& .ck-character-grid__tile {\n\t\twidth: var(--ck-character-grid-tile-size);\n\t\theight: var(--ck-character-grid-tile-size);\n\t\tmin-width: var(--ck-character-grid-tile-size);\n\t\tmin-height: var(--ck-character-grid-tile-size);\n\t\tfont-size: 1.2em;\n\t\tpadding: 0;\n\t\ttransition: .2s ease box-shadow;\n\t\tborder: 0;\n\n\t\t@media (prefers-reduced-motion: reduce) {\n\t\t\ttransition: none;\n\t\t}\n\n\t\t&:focus:not( .ck-disabled ),\n\t\t&:hover:not( .ck-disabled ) {\n\t\t\t/* Disable the default .ck-button\'s border ring. */\n\t\t\tborder: 0;\n\t\t\tbox-shadow: inset 0 0 0 1px var(--ck-color-base-background), 0 0 0 2px var(--ck-color-focus-border);\n\t\t}\n\n\t\t/* Make sure the glyph is rendered in the center of the button */\n\t\t& .ck-button__label {\n\t\t\tline-height: var(--ck-character-grid-tile-size);\n\t\t\twidth: 100%;\n\t\t\ttext-align: center;\n\t\t}\n\t}\n}\n',"/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@define-mixin ck-media-phone {\n\t@media screen and (max-width: 600px) {\n\t\t@mixin-content;\n\t}\n}\n"],sourceRoot:""}]);const a=s},128:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(9372),i=n.n(o),r=n(935),s=n.n(r)()(i());s.push([t.id,".ck.ck-character-info{border-top:1px solid var(--ck-color-base-border);display:flex;justify-content:space-between;padding:var(--ck-spacing-small) var(--ck-spacing-large)}.ck.ck-character-info>*{font-size:var(--ck-font-size-small);text-transform:uppercase}.ck.ck-character-info .ck-character-info__name{max-width:280px;overflow:hidden;text-overflow:ellipsis}.ck.ck-character-info .ck-character-info__code{opacity:.6}@media screen and (max-width:600px){.ck.ck-character-info{max-width:190px}}","",{version:3,sources:["webpack://./../ckeditor5-special-characters/theme/characterinfo.css","webpack://./../ckeditor5-theme-lark/theme/ckeditor5-special-characters/characterinfo.css","webpack://./../ckeditor5-ui/theme/mixins/_rwd.css"],names:[],mappings:"AAKA,sBCIC,gDAAiD,CDHjD,YAAa,CACb,6BAA8B,CCC9B,uDDAD,CCGC,wBAEC,mCAAoC,CADpC,wBAED,CAEA,+CACC,eAAgB,CAEhB,eAAgB,CADhB,sBAED,CAEA,+CACC,UACD,CClBA,oCDCD,sBAoBE,eAEF,CCrBC",sourcesContent:["/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-character-info {\n\tdisplay: flex;\n\tjustify-content: space-between;\n}\n",'/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "@ckeditor/ckeditor5-ui/theme/mixins/_rwd.css";\n\n.ck.ck-character-info {\n\tpadding: var(--ck-spacing-small) var(--ck-spacing-large);\n\tborder-top: 1px solid var(--ck-color-base-border);\n\n\t& > * {\n\t\ttext-transform: uppercase;\n\t\tfont-size: var(--ck-font-size-small);\n\t}\n\n\t& .ck-character-info__name {\n\t\tmax-width: 280px;\n\t\ttext-overflow: ellipsis;\n\t\toverflow: hidden;\n\t}\n\n\t& .ck-character-info__code {\n\t\topacity: .6;\n\t}\n\n\t@mixin ck-media-phone {\n\t\tmax-width: 190px;\n\t}\n}\n',"/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@define-mixin ck-media-phone {\n\t@media screen and (max-width: 600px) {\n\t\t@mixin-content;\n\t}\n}\n"],sourceRoot:""}]);const a=s},4272:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(9372),i=n.n(o),r=n(935),s=n.n(r)()(i());s.push([t.id,".ck.ck-special-characters-navigation>.ck-label{max-width:160px;overflow:hidden;text-overflow:ellipsis}.ck.ck-special-characters-navigation>.ck-dropdown .ck-dropdown__panel{max-height:250px;overflow-x:hidden;overflow-y:auto}@media screen and (max-width:600px){.ck.ck-special-characters-navigation{max-width:190px}.ck.ck-special-characters-navigation>.ck-form__header__label{overflow:hidden;text-overflow:ellipsis}}","",{version:3,sources:["webpack://./../ckeditor5-theme-lark/theme/ckeditor5-special-characters/specialcharacters.css","webpack://./../ckeditor5-ui/theme/mixins/_rwd.css"],names:[],mappings:"AAUC,+CACC,eAAgB,CAEhB,eAAgB,CADhB,sBAED,CAEA,sEAEC,gBAAiB,CAEjB,iBAAkB,CADlB,eAED,CCfA,oCDED,qCAgBE,eAOF,CALE,6DAEC,eAAgB,CADhB,sBAED,CCrBD",sourcesContent:['/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "@ckeditor/ckeditor5-ui/theme/mixins/_dir.css";\n@import "@ckeditor/ckeditor5-ui/theme/mixins/_rwd.css";\n\n.ck.ck-special-characters-navigation {\n\n\t& > .ck-label {\n\t\tmax-width: 160px;\n\t\ttext-overflow: ellipsis;\n\t\toverflow: hidden;\n\t}\n\n\t& > .ck-dropdown .ck-dropdown__panel {\n\t\t/* There could be dozens of categories available. Use scroll to prevent a 10e6px dropdown. */\n\t\tmax-height: 250px;\n\t\toverflow-y: auto;\n\t\toverflow-x: hidden;\n\t}\n\n\t@mixin ck-media-phone {\n\t\tmax-width: 190px;\n\n\t\t& > .ck-form__header__label {\n\t\t\ttext-overflow: ellipsis;\n\t\t\toverflow: hidden;\n\t\t}\n\t}\n}\n',"/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@define-mixin ck-media-phone {\n\t@media screen and (max-width: 600px) {\n\t\t@mixin-content;\n\t}\n}\n"],sourceRoot:""}]);const a=s},5506:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(9372),i=n.n(o),r=n(935),s=n.n(r)()(i());s.push([t.id,".ck.ck-input-color{display:flex;flex-direction:row-reverse;width:100%}.ck.ck-input-color>input.ck.ck-input-text{flex-grow:1;min-width:auto}.ck.ck-input-color>div.ck.ck-dropdown{min-width:auto}.ck.ck-input-color>div.ck.ck-dropdown>.ck-input-color__button .ck-dropdown__arrow{display:none}.ck.ck-input-color .ck.ck-input-color__button{display:flex}.ck.ck-input-color .ck.ck-input-color__button .ck.ck-input-color__button__preview{overflow:hidden;position:relative}.ck.ck-input-color .ck.ck-input-color__button .ck.ck-input-color__button__preview>.ck.ck-input-color__button__preview__no-color-indicator{display:block;position:absolute}[dir=ltr] .ck.ck-input-color>.ck.ck-input-text{border-bottom-right-radius:0;border-top-right-radius:0}[dir=rtl] .ck.ck-input-color>.ck.ck-input-text{border-bottom-left-radius:0;border-top-left-radius:0}.ck.ck-input-color>.ck.ck-input-text:focus{z-index:0}.ck.ck-input-color>.ck.ck-dropdown>.ck.ck-button.ck-input-color__button{padding:0}[dir=ltr] .ck.ck-input-color>.ck.ck-dropdown>.ck.ck-button.ck-input-color__button{border-bottom-left-radius:0;border-top-left-radius:0}[dir=ltr] .ck.ck-input-color>.ck.ck-dropdown>.ck.ck-button.ck-input-color__button:not(:focus){border-left:1px solid transparent}[dir=rtl] .ck.ck-input-color>.ck.ck-dropdown>.ck.ck-button.ck-input-color__button{border-bottom-right-radius:0;border-top-right-radius:0}[dir=rtl] .ck.ck-input-color>.ck.ck-dropdown>.ck.ck-button.ck-input-color__button:not(:focus){border-right:1px solid transparent}.ck.ck-input-color>.ck.ck-dropdown>.ck.ck-button.ck-input-color__button.ck-disabled{background:var(--ck-color-input-disabled-background)}.ck.ck-input-color>.ck.ck-dropdown>.ck.ck-button.ck-input-color__button>.ck.ck-input-color__button__preview{border-radius:0}.ck-rounded-corners .ck.ck-input-color>.ck.ck-dropdown>.ck.ck-button.ck-input-color__button>.ck.ck-input-color__button__preview,.ck.ck-input-color>.ck.ck-dropdown>.ck.ck-button.ck-input-color__button>.ck.ck-input-color__button__preview.ck-rounded-corners{border-radius:var(--ck-border-radius)}.ck.ck-input-color>.ck.ck-dropdown>.ck.ck-button.ck-input-color__button>.ck.ck-input-color__button__preview{border:1px solid var(--ck-color-input-border);height:20px;width:20px}.ck.ck-input-color>.ck.ck-dropdown>.ck.ck-button.ck-input-color__button>.ck.ck-input-color__button__preview>.ck.ck-input-color__button__preview__no-color-indicator{background:red;border-radius:2px;height:150%;left:50%;top:-30%;transform:rotate(45deg);transform-origin:50%;width:8%}.ck.ck-input-color .ck.ck-input-color__remove-color{border-bottom-left-radius:0;border-bottom-right-radius:0;padding:calc(var(--ck-spacing-standard)/2) var(--ck-spacing-standard);width:100%}.ck.ck-input-color .ck.ck-input-color__remove-color:not(:focus){border-bottom:1px solid var(--ck-color-input-border)}[dir=ltr] .ck.ck-input-color .ck.ck-input-color__remove-color{border-top-right-radius:0}[dir=rtl] .ck.ck-input-color .ck.ck-input-color__remove-color{border-top-left-radius:0}.ck.ck-input-color .ck.ck-input-color__remove-color .ck.ck-icon{margin-right:var(--ck-spacing-standard)}[dir=rtl] .ck.ck-input-color .ck.ck-input-color__remove-color .ck.ck-icon{margin-left:var(--ck-spacing-standard);margin-right:0}","",{version:3,sources:["webpack://./../ckeditor5-table/theme/colorinput.css","webpack://./../ckeditor5-theme-lark/theme/ckeditor5-table/colorinput.css","webpack://./../ckeditor5-theme-lark/theme/mixins/_rounded.css"],names:[],mappings:"AAKA,mBAEC,YAAa,CACb,0BAA2B,CAF3B,UAgCD,CA5BC,0CAEC,WAAY,CADZ,cAED,CAEA,sCACC,cAMD,CAHC,kFACC,YACD,CAGD,8CAEC,YAWD,CATC,kFAEC,eAAgB,CADhB,iBAOD,CAJC,0IAEC,aAAc,CADd,iBAED,CC1BF,+CAGE,4BAA6B,CAD7B,yBAcF,CAhBA,+CAQE,2BAA4B,CAD5B,wBASF,CAHC,2CACC,SACD,CAIA,wEACC,SA0CD,CA3CA,kFAKE,2BAA4B,CAD5B,wBAuCF,CApCE,8FACC,iCACD,CATF,kFAcE,4BAA6B,CAD7B,yBA8BF,CA3BE,8FACC,kCACD,CAGD,oFACC,oDACD,CAEA,4GC1CF,eD2DE,CAjBA,+PCtCD,qCDuDC,CAjBA,4GAKC,6CAA8C,CAD9C,WAAY,CADZ,UAcD,CAVC,oKAKC,cAA6B,CAC7B,iBAAkB,CAHlB,WAAY,CADZ,QAAS,CADT,QAAS,CAMT,uBAAwB,CACxB,oBAAqB,CAJrB,QAKD,CAKH,oDAIC,2BAA4B,CAC5B,4BAA6B,CAH7B,qEAAwE,CADxE,UA0BD,CApBC,gEACC,oDACD,CATD,8DAYE,yBAeF,CA3BA,8DAgBE,wBAWF,CARC,gEACC,uCAMD,CAPA,0EAKE,sCAAuC,CADvC,cAGF",sourcesContent:["/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-input-color {\n\twidth: 100%;\n\tdisplay: flex;\n\tflex-direction: row-reverse;\n\n\t& > input.ck.ck-input-text {\n\t\tmin-width: auto;\n\t\tflex-grow: 1;\n\t}\n\n\t& > div.ck.ck-dropdown {\n\t\tmin-width: auto;\n\n\t\t/* This dropdown has no arrow but a color preview instead. */\n\t\t& > .ck-input-color__button .ck-dropdown__arrow {\n\t\t\tdisplay: none;\n\t\t}\n\t}\n\n\t& .ck.ck-input-color__button {\n\t\t/* Resolving issue with misaligned buttons on Safari (see #10589) */\n\t\tdisplay: flex;\n\n\t\t& .ck.ck-input-color__button__preview {\n\t\t\tposition: relative;\n\t\t\toverflow: hidden;\n\n\t\t\t& > .ck.ck-input-color__button__preview__no-color-indicator {\n\t\t\t\tposition: absolute;\n\t\t\t\tdisplay: block;\n\t\t\t}\n\t\t}\n\t}\n}\n",'/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "@ckeditor/ckeditor5-ui/theme/mixins/_dir.css";\n@import "../mixins/_rounded.css";\n\n.ck.ck-input-color {\n\t& > .ck.ck-input-text {\n\t\t@mixin ck-dir ltr {\n\t\t\tborder-top-right-radius: 0;\n\t\t\tborder-bottom-right-radius: 0;\n\t\t}\n\n\t\t@mixin ck-dir rtl {\n\t\t\tborder-top-left-radius: 0;\n\t\t\tborder-bottom-left-radius: 0;\n\t\t}\n\n\t\t/* Make sure the focused input is always on top of the dropdown button so its\n\t\t outline and border are never cropped (also when the input is read-only). */\n\t\t&:focus {\n\t\t\tz-index: 0;\n\t\t}\n\t}\n\n\t& > .ck.ck-dropdown {\n\t\t& > .ck.ck-button.ck-input-color__button {\n\t\t\tpadding: 0;\n\n\t\t\t@mixin ck-dir ltr {\n\t\t\t\tborder-top-left-radius: 0;\n\t\t\t\tborder-bottom-left-radius: 0;\n\n\t\t\t\t&:not(:focus) {\n\t\t\t\t\tborder-left: 1px solid transparent;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t@mixin ck-dir rtl {\n\t\t\t\tborder-top-right-radius: 0;\n\t\t\t\tborder-bottom-right-radius: 0;\n\n\t\t\t\t&:not(:focus) {\n\t\t\t\t\tborder-right: 1px solid transparent;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t&.ck-disabled {\n\t\t\t\tbackground: var(--ck-color-input-disabled-background);\n\t\t\t}\n\n\t\t\t& > .ck.ck-input-color__button__preview {\n\t\t\t\t@mixin ck-rounded-corners;\n\n\t\t\t\twidth: 20px;\n\t\t\t\theight: 20px;\n\t\t\t\tborder: 1px solid var(--ck-color-input-border);\n\n\t\t\t\t& > .ck.ck-input-color__button__preview__no-color-indicator {\n\t\t\t\t\ttop: -30%;\n\t\t\t\t\tleft: 50%;\n\t\t\t\t\theight: 150%;\n\t\t\t\t\twidth: 8%;\n\t\t\t\t\tbackground: hsl(0, 100%, 50%);\n\t\t\t\t\tborder-radius: 2px;\n\t\t\t\t\ttransform: rotate(45deg);\n\t\t\t\t\ttransform-origin: 50%;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t& .ck.ck-input-color__remove-color {\n\t\twidth: 100%;\n\t\tpadding: calc(var(--ck-spacing-standard) / 2) var(--ck-spacing-standard);\n\n\t\tborder-bottom-left-radius: 0;\n\t\tborder-bottom-right-radius: 0;\n\n\t\t&:not(:focus) {\n\t\t\tborder-bottom: 1px solid var(--ck-color-input-border);\n\t\t}\n\n\t\t@mixin ck-dir ltr {\n\t\t\tborder-top-right-radius: 0;\n\t\t}\n\n\t\t@mixin ck-dir rtl {\n\t\t\tborder-top-left-radius: 0;\n\t\t}\n\n\t\t& .ck.ck-icon {\n\t\t\tmargin-right: var(--ck-spacing-standard);\n\n\t\t\t@mixin ck-dir rtl {\n\t\t\t\tmargin-right: 0;\n\t\t\t\tmargin-left: var(--ck-spacing-standard);\n\t\t\t}\n\t\t}\n\t}\n}\n',"/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * Implements rounded corner interface for .ck-rounded-corners class.\n *\n * @see $ck-border-radius\n */\n@define-mixin ck-rounded-corners {\n\tborder-radius: 0;\n\n\t@nest .ck-rounded-corners &,\n\t&.ck-rounded-corners {\n\t\tborder-radius: var(--ck-border-radius);\n\t\t@mixin-content;\n\t}\n}\n"],sourceRoot:""}]);const a=s},4043:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(9372),i=n.n(o),r=n(935),s=n.n(r)()(i());s.push([t.id,".ck.ck-form{padding:0 0 var(--ck-spacing-large)}.ck.ck-form:focus{outline:none}.ck.ck-form .ck.ck-input-text{min-width:100%;width:0}.ck.ck-form .ck.ck-dropdown{min-width:100%}.ck.ck-form .ck.ck-dropdown .ck-dropdown__button:not(:focus){border:1px solid var(--ck-color-base-border)}.ck.ck-form .ck.ck-dropdown .ck-dropdown__button .ck-button__label{width:100%}","",{version:3,sources:["webpack://./../ckeditor5-theme-lark/theme/ckeditor5-table/form.css"],names:[],mappings:"AAKA,YACC,mCAyBD,CAvBC,kBAEC,YACD,CAEA,8BACC,cAAe,CACf,OACD,CAEA,4BACC,cAWD,CARE,6DACC,4CACD,CAEA,mEACC,UACD",sourcesContent:["/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-form {\n\tpadding: 0 0 var(--ck-spacing-large);\n\n\t&:focus {\n\t\t/* See: https://github.com/ckeditor/ckeditor5/issues/4773 */\n\t\toutline: none;\n\t}\n\n\t& .ck.ck-input-text {\n\t\tmin-width: 100%;\n\t\twidth: 0;\n\t}\n\n\t& .ck.ck-dropdown {\n\t\tmin-width: 100%;\n\n\t\t& .ck-dropdown__button {\n\t\t\t&:not(:focus) {\n\t\t\t\tborder: 1px solid var(--ck-color-base-border);\n\t\t\t}\n\n\t\t\t& .ck-button__label {\n\t\t\t\twidth: 100%;\n\t\t\t}\n\t\t}\n\t}\n}\n"],sourceRoot:""}]);const a=s},2655:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(9372),i=n.n(o),r=n(935),s=n.n(r)()(i());s.push([t.id,".ck.ck-form__row{display:flex;flex-direction:row;flex-wrap:nowrap;justify-content:space-between}.ck.ck-form__row>:not(.ck-label){flex-grow:1}.ck.ck-form__row.ck-table-form__action-row .ck-button-cancel,.ck.ck-form__row.ck-table-form__action-row .ck-button-save{justify-content:center}.ck.ck-form__row{padding:var(--ck-spacing-standard) var(--ck-spacing-large) 0}[dir=ltr] .ck.ck-form__row>:not(.ck-label)+*{margin-left:var(--ck-spacing-large)}[dir=rtl] .ck.ck-form__row>:not(.ck-label)+*{margin-right:var(--ck-spacing-large)}.ck.ck-form__row>.ck-label{min-width:100%;width:100%}.ck.ck-form__row.ck-table-form__action-row{margin-top:var(--ck-spacing-large)}.ck.ck-form__row.ck-table-form__action-row .ck-button .ck-button__label{color:var(--ck-color-text)}","",{version:3,sources:["webpack://./../ckeditor5-table/theme/formrow.css","webpack://./../ckeditor5-theme-lark/theme/ckeditor5-table/formrow.css"],names:[],mappings:"AAKA,iBACC,YAAa,CACb,kBAAmB,CACnB,gBAAiB,CACjB,6BAaD,CAVC,iCACC,WACD,CAGC,wHAEC,sBACD,CCbF,iBACC,4DA2BD,CAvBE,6CAEE,mCAMF,CARA,6CAME,oCAEF,CAGD,2BAEC,cAAe,CADf,UAED,CAEA,2CACC,kCAKD,CAHC,wEACC,0BACD",sourcesContent:["/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-form__row {\n\tdisplay: flex;\n\tflex-direction: row;\n\tflex-wrap: nowrap;\n\tjustify-content: space-between;\n\n\t/* Ignore labels that work as fieldset legends */\n\t& > *:not(.ck-label) {\n\t\tflex-grow: 1;\n\t}\n\n\t&.ck-table-form__action-row {\n\t\t& .ck-button-save,\n\t\t& .ck-button-cancel {\n\t\t\tjustify-content: center;\n\t\t}\n\t}\n}\n",'/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "@ckeditor/ckeditor5-ui/theme/mixins/_dir.css";\n\n.ck.ck-form__row {\n\tpadding: var(--ck-spacing-standard) var(--ck-spacing-large) 0;\n\n\t/* Ignore labels that work as fieldset legends */\n\t& > *:not(.ck-label) {\n\t\t& + * {\n\t\t\t@mixin ck-dir ltr {\n\t\t\t\tmargin-left: var(--ck-spacing-large);\n\t\t\t}\n\n\t\t\t@mixin ck-dir rtl {\n\t\t\t\tmargin-right: var(--ck-spacing-large);\n\t\t\t}\n\t\t}\n\t}\n\n\t& > .ck-label {\n\t\twidth: 100%;\n\t\tmin-width: 100%;\n\t}\n\n\t&.ck-table-form__action-row {\n\t\tmargin-top: var(--ck-spacing-large);\n\n\t\t& .ck-button .ck-button__label {\n\t\t\tcolor: var(--ck-color-text);\n\t\t}\n\t}\n}\n'],sourceRoot:""}]);const a=s},5032:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(9372),i=n.n(o),r=n(935),s=n.n(r)()(i());s.push([t.id,".ck .ck-insert-table-dropdown__grid{display:flex;flex-direction:row;flex-wrap:wrap}:root{--ck-insert-table-dropdown-padding:10px;--ck-insert-table-dropdown-box-height:11px;--ck-insert-table-dropdown-box-width:12px;--ck-insert-table-dropdown-box-margin:1px}.ck .ck-insert-table-dropdown__grid{padding:var(--ck-insert-table-dropdown-padding) var(--ck-insert-table-dropdown-padding) 0;width:calc(var(--ck-insert-table-dropdown-box-width)*10 + var(--ck-insert-table-dropdown-box-margin)*20 + var(--ck-insert-table-dropdown-padding)*2)}.ck .ck-insert-table-dropdown__label,.ck[dir=rtl] .ck-insert-table-dropdown__label{text-align:center}.ck .ck-insert-table-dropdown-grid-box{border:1px solid var(--ck-color-base-border);border-radius:1px;margin:var(--ck-insert-table-dropdown-box-margin);min-height:var(--ck-insert-table-dropdown-box-height);min-width:var(--ck-insert-table-dropdown-box-width);outline:none;transition:none}@media (prefers-reduced-motion:reduce){.ck .ck-insert-table-dropdown-grid-box{transition:none}}.ck .ck-insert-table-dropdown-grid-box:focus{box-shadow:none}.ck .ck-insert-table-dropdown-grid-box.ck-on{background:var(--ck-color-focus-outer-shadow);border-color:var(--ck-color-focus-border)}","",{version:3,sources:["webpack://./../ckeditor5-table/theme/inserttable.css","webpack://./../ckeditor5-theme-lark/theme/ckeditor5-table/inserttable.css"],names:[],mappings:"AAKA,oCACC,YAAa,CACb,kBAAmB,CACnB,cACD,CCJA,MACC,uCAAwC,CACxC,0CAA2C,CAC3C,yCAA0C,CAC1C,yCACD,CAEA,oCAGC,yFAA0F,CAD1F,oJAED,CAEA,mFAEC,iBACD,CAEA,uCAIC,4CAA6C,CAC7C,iBAAkB,CAFlB,iDAAkD,CADlD,qDAAsD,CADtD,mDAAoD,CAKpD,YAAa,CACb,eAcD,CAZC,uCATD,uCAUE,eAWF,CAVC,CAEA,6CACC,eACD,CAEA,6CAEC,6CAA8C,CAD9C,yCAED",sourcesContent:["/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck .ck-insert-table-dropdown__grid {\n\tdisplay: flex;\n\tflex-direction: row;\n\tflex-wrap: wrap;\n}\n","/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n:root {\n\t--ck-insert-table-dropdown-padding: 10px;\n\t--ck-insert-table-dropdown-box-height: 11px;\n\t--ck-insert-table-dropdown-box-width: 12px;\n\t--ck-insert-table-dropdown-box-margin: 1px;\n}\n\n.ck .ck-insert-table-dropdown__grid {\n\t/* The width of a container should match 10 items in a row so there will be a 10x10 grid. */\n\twidth: calc(var(--ck-insert-table-dropdown-box-width) * 10 + var(--ck-insert-table-dropdown-box-margin) * 20 + var(--ck-insert-table-dropdown-padding) * 2);\n\tpadding: var(--ck-insert-table-dropdown-padding) var(--ck-insert-table-dropdown-padding) 0;\n}\n\n.ck .ck-insert-table-dropdown__label,\n.ck[dir=rtl] .ck-insert-table-dropdown__label {\n\ttext-align: center;\n}\n\n.ck .ck-insert-table-dropdown-grid-box {\n\tmin-width: var(--ck-insert-table-dropdown-box-width);\n\tmin-height: var(--ck-insert-table-dropdown-box-height);\n\tmargin: var(--ck-insert-table-dropdown-box-margin);\n\tborder: 1px solid var(--ck-color-base-border);\n\tborder-radius: 1px;\n\toutline: none;\n\ttransition: none;\n\n\t@media (prefers-reduced-motion: reduce) {\n\t\ttransition: none;\n\t}\n\n\t&:focus {\n\t\tbox-shadow: none;\n\t}\n\n\t&.ck-on {\n\t\tborder-color: var(--ck-color-focus-border);\n\t\tbackground: var(--ck-color-focus-outer-shadow);\n\t}\n}\n\n"],sourceRoot:""}]);const a=s},2329:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(9372),i=n.n(o),r=n(935),s=n.n(r)()(i());s.push([t.id,".ck-content .table{display:table;margin:.9em auto}.ck-content .table table{border:1px double #b3b3b3;border-collapse:collapse;border-spacing:0;height:100%;width:100%}.ck-content .table table td,.ck-content .table table th{border:1px solid #bfbfbf;min-width:2em;padding:.4em}.ck-content .table table th{background:rgba(0,0,0,.05);font-weight:700}.ck-content[dir=rtl] .table th{text-align:right}.ck-content[dir=ltr] .table th{text-align:left}.ck-editor__editable .ck-table-bogus-paragraph{display:inline-block;width:100%}","",{version:3,sources:["webpack://./../ckeditor5-table/theme/table.css"],names:[],mappings:"AAKA,mBAKC,aAAc,CADd,gBAiCD,CA9BC,yBAYC,yBAAkC,CAVlC,wBAAyB,CACzB,gBAAiB,CAKjB,WAAY,CADZ,UAsBD,CAfC,wDAQC,wBAAiC,CANjC,aAAc,CACd,YAMD,CAEA,4BAEC,0BAA+B,CAD/B,eAED,CAMF,+BACC,gBACD,CAEA,+BACC,eACD,CAEA,+CAKC,oBAAqB,CAMrB,UACD",sourcesContent:['/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck-content .table {\n\t/* Give the table widget some air and center it horizontally */\n\t/* The first value should be equal to --ck-spacing-large variable if used in the editor context\n\tto avoid the content jumping (See https://github.com/ckeditor/ckeditor5/issues/9825). */\n\tmargin: 0.9em auto;\n\tdisplay: table;\n\n\t& table {\n\t\t/* The table cells should have slight borders */\n\t\tborder-collapse: collapse;\n\t\tborder-spacing: 0;\n\n\t\t/* Table width and height are set on the parent . Make sure the table inside stretches\n\t\tto the full dimensions of the container (https://github.com/ckeditor/ckeditor5/issues/6186). */\n\t\twidth: 100%;\n\t\theight: 100%;\n\n\t\t/* The outer border of the table should be slightly darker than the inner lines.\n\t\tAlso see https://github.com/ckeditor/ckeditor5-table/issues/50. */\n\t\tborder: 1px double hsl(0, 0%, 70%);\n\n\t\t& td,\n\t\t& th {\n\t\t\tmin-width: 2em;\n\t\t\tpadding: .4em;\n\n\t\t\t/* The border is inherited from .ck-editor__nested-editable styles, so theoretically it\'s not necessary here.\n\t\t\tHowever, the border is a content style, so it should use .ck-content (so it works outside the editor).\n\t\t\tHence, the duplication. See https://github.com/ckeditor/ckeditor5/issues/6314 */\n\t\t\tborder: 1px solid hsl(0, 0%, 75%);\n\t\t}\n\n\t\t& th {\n\t\t\tfont-weight: bold;\n\t\t\tbackground: hsla(0, 0%, 0%, 5%);\n\t\t}\n\t}\n}\n\n/* Text alignment of the table header should match the editor settings and override the native browser styling,\nwhen content is available outside the editor. See https://github.com/ckeditor/ckeditor5/issues/6638 */\n.ck-content[dir="rtl"] .table th {\n\ttext-align: right;\n}\n\n.ck-content[dir="ltr"] .table th {\n\ttext-align: left;\n}\n\n.ck-editor__editable .ck-table-bogus-paragraph {\n\t/*\n\t * Use display:inline-block to force Chrome/Safari to limit text mutations to this element.\n\t * See https://github.com/ckeditor/ckeditor5/issues/6062.\n\t */\n\tdisplay: inline-block;\n\n\t/*\n\t * Inline HTML elements nested in the span should always be dimensioned in relation to the whole cell width.\n\t * See https://github.com/ckeditor/ckeditor5/issues/9117.\n\t */\n\twidth: 100%;\n}\n'],sourceRoot:""}]);const a=s},4143:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(9372),i=n.n(o),r=n(935),s=n.n(r)()(i());s.push([t.id,":root{--ck-color-selector-caption-background:#f7f7f7;--ck-color-selector-caption-text:#333;--ck-color-selector-caption-highlighted-background:#fd0}.ck-content .table>figcaption{background-color:var(--ck-color-selector-caption-background);caption-side:top;color:var(--ck-color-selector-caption-text);display:table-caption;font-size:.75em;outline-offset:-1px;padding:.6em;text-align:center;word-break:break-word}@media (forced-colors:active){.ck-content .table>figcaption{background-color:unset;color:unset}}@media (forced-colors:none){.ck.ck-editor__editable .table>figcaption.table__caption_highlighted{animation:ck-table-caption-highlight .6s ease-out}}.ck.ck-editor__editable .table>figcaption.ck-placeholder:before{overflow:hidden;padding-left:inherit;padding-right:inherit;text-overflow:ellipsis;white-space:nowrap}@keyframes ck-table-caption-highlight{0%{background-color:var(--ck-color-selector-caption-highlighted-background)}to{background-color:var(--ck-color-selector-caption-background)}}","",{version:3,sources:["webpack://./../ckeditor5-table/theme/tablecaption.css","webpack://./../ckeditor5-ui/theme/mixins/_mediacolors.css"],names:[],mappings:"AAOA,MACC,8CAAuD,CACvD,qCAAiD,CACjD,uDACD,CAGA,8BAMC,4DAA6D,CAJ7D,gBAAiB,CAGjB,2CAA4C,CAJ5C,qBAAsB,CAOtB,eAAgB,CAChB,mBAAoB,CAFpB,YAAa,CAHb,iBAAkB,CADlB,qBAaD,CCxBC,8BACC,8BDoBA,sBAAuB,CACvB,WCnBA,CACD,CAIA,4BDqBC,qEACC,iDACD,CCnBD,CDsBA,gEASC,eAAgB,CARhB,oBAAqB,CACrB,qBAAsB,CAQtB,sBAAuB,CAFvB,kBAGD,CAGD,sCACC,GACC,wEACD,CAEA,GACC,4DACD,CACD",sourcesContent:['/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "@ckeditor/ckeditor5-ui/theme/mixins/_mediacolors.css";\n\n:root {\n\t--ck-color-selector-caption-background: hsl(0, 0%, 97%);\n\t--ck-color-selector-caption-text: hsl(0, 0%, 20%);\n\t--ck-color-selector-caption-highlighted-background: hsl(52deg 100% 50%);\n}\n\n/* Content styles */\n.ck-content .table > figcaption {\n\tdisplay: table-caption;\n\tcaption-side: top;\n\tword-break: break-word;\n\ttext-align: center;\n\tcolor: var(--ck-color-selector-caption-text);\n\tbackground-color: var(--ck-color-selector-caption-background);\n\tpadding: .6em;\n\tfont-size: .75em;\n\toutline-offset: -1px;\n\n\t/* Improve placeholder rendering in high-constrast mode (https://github.com/ckeditor/ckeditor5/issues/14907). */\n\t@mixin ck-media-forced-colors {\n\t\tbackground-color: unset;\n\t\tcolor: unset;\n\t}\n}\n\n/* Editing styles */\n.ck.ck-editor__editable .table > figcaption {\n\t@mixin ck-media-default-colors {\n\t\t&.table__caption_highlighted {\n\t\t\tanimation: ck-table-caption-highlight .6s ease-out;\n\t\t}\n\t}\n\n\t&.ck-placeholder::before {\n\t\tpadding-left: inherit;\n\t\tpadding-right: inherit;\n\n\t\t/*\n\t\t * Make sure the table caption placeholder doesn\'t overflow the placeholder area.\n\t\t * See https://github.com/ckeditor/ckeditor5/issues/9162.\n\t\t */\n\t\twhite-space: nowrap;\n\t\toverflow: hidden;\n\t\ttext-overflow: ellipsis;\n\t}\n}\n\n@keyframes ck-table-caption-highlight {\n\t0% {\n\t\tbackground-color: var(--ck-color-selector-caption-highlighted-background);\n\t}\n\n\t100% {\n\t\tbackground-color: var(--ck-color-selector-caption-background);\n\t}\n}\n',"/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@define-mixin ck-media-forced-colors {\n\t@media (forced-colors: active) {\n\t\t& {\n\t\t\t@mixin-content;\n\t\t}\n\t}\n}\n\n@define-mixin ck-media-default-colors {\n\t@media (forced-colors: none) {\n\t\t& {\n\t\t\t@mixin-content;\n\t\t}\n\t}\n}\n"],sourceRoot:""}]);const a=s},8986:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(9372),i=n.n(o),r=n(935),s=n.n(r)()(i());s.push([t.id,".ck.ck-table-cell-properties-form .ck-form__row.ck-table-cell-properties-form__alignment-row{flex-wrap:wrap}.ck.ck-table-cell-properties-form .ck-form__row.ck-table-cell-properties-form__alignment-row .ck.ck-toolbar:first-of-type{flex-grow:0.57}.ck.ck-table-cell-properties-form .ck-form__row.ck-table-cell-properties-form__alignment-row .ck.ck-toolbar:last-of-type{flex-grow:0.43}.ck.ck-table-cell-properties-form .ck-form__row.ck-table-cell-properties-form__alignment-row .ck.ck-toolbar .ck-button{flex-grow:1}.ck.ck-table-cell-properties-form{width:320px}.ck.ck-table-cell-properties-form .ck-form__row.ck-table-cell-properties-form__padding-row{align-self:flex-end;padding:0;width:25%}.ck.ck-table-cell-properties-form .ck-form__row.ck-table-cell-properties-form__alignment-row .ck.ck-toolbar{background:none;margin-top:var(--ck-spacing-standard)}","",{version:3,sources:["webpack://./../ckeditor5-table/theme/tablecellproperties.css","webpack://./../ckeditor5-theme-lark/theme/ckeditor5-table/tablecellproperties.css"],names:[],mappings:"AAOE,6FACC,cAiBD,CAdE,0HAEC,cACD,CAEA,yHAEC,cACD,CAEA,uHACC,WACD,CClBJ,kCACC,WAkBD,CAfE,2FACC,mBAAoB,CACpB,SAAU,CACV,SACD,CAGC,4GACC,eAAgB,CAGhB,qCACD",sourcesContent:["/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-table-cell-properties-form {\n\t& .ck-form__row {\n\t\t&.ck-table-cell-properties-form__alignment-row {\n\t\t\tflex-wrap: wrap;\n\n\t\t\t& .ck.ck-toolbar {\n\t\t\t\t&:first-of-type {\n\t\t\t\t\t/* 4 buttons out of 7 (h-alignment + v-alignment) = 0.57 */\n\t\t\t\t\tflex-grow: 0.57;\n\t\t\t\t}\n\n\t\t\t\t&:last-of-type {\n\t\t\t\t\t/* 3 buttons out of 7 (h-alignment + v-alignment) = 0.43 */\n\t\t\t\t\tflex-grow: 0.43;\n\t\t\t\t}\n\n\t\t\t\t& .ck-button {\n\t\t\t\t\tflex-grow: 1;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n","/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-table-cell-properties-form {\n\twidth: 320px;\n\n\t& .ck-form__row {\n\t\t&.ck-table-cell-properties-form__padding-row {\n\t\t\talign-self: flex-end;\n\t\t\tpadding: 0;\n\t\t\twidth: 25%;\n\t\t}\n\n\t\t&.ck-table-cell-properties-form__alignment-row {\n\t\t\t& .ck.ck-toolbar {\n\t\t\t\tbackground: none;\n\n\t\t\t\t/* Compensate for missing input label that would push the margin (toolbar has no inputs). */\n\t\t\t\tmargin-top: var(--ck-spacing-standard);\n\t\t\t}\n\t\t}\n\t}\n}\n"],sourceRoot:""}]);const a=s},8795:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(9372),i=n.n(o),r=n(935),s=n.n(r)()(i());s.push([t.id,":root{--ck-color-selector-column-resizer-hover:var(--ck-color-base-active);--ck-table-column-resizer-width:7px;--ck-table-column-resizer-position-offset:calc(var(--ck-table-column-resizer-width)*-0.5 - 0.5px)}.ck-content .table .ck-table-resized{table-layout:fixed}.ck-content .table table{overflow:hidden}.ck-content .table td,.ck-content .table th{overflow-wrap:break-word;position:relative}.ck.ck-editor__editable .table .ck-table-column-resizer{bottom:0;cursor:col-resize;position:absolute;right:var(--ck-table-column-resizer-position-offset);top:0;user-select:none;width:var(--ck-table-column-resizer-width);z-index:var(--ck-z-default)}.ck.ck-editor__editable .table[draggable] .ck-table-column-resizer,.ck.ck-editor__editable.ck-column-resize_disabled .table .ck-table-column-resizer{display:none}.ck.ck-editor__editable .table .ck-table-column-resizer:hover,.ck.ck-editor__editable .table .ck-table-column-resizer__active{background-color:var(--ck-color-selector-column-resizer-hover);bottom:-999999px;opacity:.25;top:-999999px}.ck.ck-editor__editable[dir=rtl] .table .ck-table-column-resizer{left:var(--ck-table-column-resizer-position-offset);right:unset}","",{version:3,sources:["webpack://./../ckeditor5-table/theme/tablecolumnresize.css"],names:[],mappings:"AAKA,MACC,oEAAqE,CACrE,mCAAoC,CAIpC,iGACD,CAEA,qCACC,kBACD,CAEA,yBACC,eACD,CAEA,4CAIC,wBAAyB,CACzB,iBACD,CAEA,wDAGC,QAAS,CAGT,iBAAkB,CALlB,iBAAkB,CAGlB,oDAAqD,CAFrD,KAAM,CAKN,gBAAiB,CAFjB,0CAA2C,CAG3C,2BACD,CAQA,qJACC,YACD,CAEA,8HAEC,8DAA+D,CAO/D,gBAAiB,CANjB,WAAa,CAKb,aAED,CAEA,iEACC,mDAAoD,CACpD,WACD",sourcesContent:["/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n:root {\n\t--ck-color-selector-column-resizer-hover: var(--ck-color-base-active);\n\t--ck-table-column-resizer-width: 7px;\n\n\t/* The offset used for absolute positioning of the resizer element, so that it is placed exactly above the cell border.\n\t The value is: minus half the width of the resizer decreased additionaly by the half the width of the border (0.5px). */\n\t--ck-table-column-resizer-position-offset: calc(var(--ck-table-column-resizer-width) * -0.5 - 0.5px);\n}\n\n.ck-content .table .ck-table-resized {\n\ttable-layout: fixed;\n}\n\n.ck-content .table table {\n\toverflow: hidden;\n}\n\n.ck-content .table td,\n.ck-content .table th {\n\t/* To prevent text overflowing beyond its cell when columns are resized by resize handler\n\t(https://github.com/ckeditor/ckeditor5/pull/14379#issuecomment-1589460978). */\n\toverflow-wrap: break-word;\n\tposition: relative;\n}\n\n.ck.ck-editor__editable .table .ck-table-column-resizer {\n\tposition: absolute;\n\ttop: 0;\n\tbottom: 0;\n\tright: var(--ck-table-column-resizer-position-offset);\n\twidth: var(--ck-table-column-resizer-width);\n\tcursor: col-resize;\n\tuser-select: none;\n\tz-index: var(--ck-z-default);\n}\n\n.ck.ck-editor__editable.ck-column-resize_disabled .table .ck-table-column-resizer {\n\tdisplay: none;\n}\n\n/* The resizer elements, which are extended to an extremely high height, break the drag & drop feature in Chrome. To make it work again,\n all resizers must be hidden while the table is dragged. */\n.ck.ck-editor__editable .table[draggable] .ck-table-column-resizer {\n\tdisplay: none;\n}\n\n.ck.ck-editor__editable .table .ck-table-column-resizer:hover,\n.ck.ck-editor__editable .table .ck-table-column-resizer__active {\n\tbackground-color: var(--ck-color-selector-column-resizer-hover);\n\topacity: 0.25;\n\t/* The resizer element resides in each cell so to occupy the entire height of the table, which is unknown from a CSS point of view,\n\t it is extended to an extremely high height. Even for screens with a very high pixel density, the resizer will fulfill its role as\n\t it should, i.e. for a screen of 476 ppi the total height of the resizer will take over 350 sheets of A4 format, which is totally\n\t unrealistic height for a single table. */\n\ttop: -999999px;\n\tbottom: -999999px;\n}\n\n.ck.ck-editor__editable[dir=rtl] .table .ck-table-column-resizer {\n\tleft: var(--ck-table-column-resizer-position-offset);\n\tright: unset;\n}\n"],sourceRoot:""}]);const a=s},8137:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(9372),i=n.n(o),r=n(935),s=n.n(r)()(i());s.push([t.id,":root{--ck-color-selector-focused-cell-background:rgba(158,201,250,.3)}.ck-widget.table td.ck-editor__nested-editable.ck-editor__nested-editable_focused,.ck-widget.table td.ck-editor__nested-editable:focus,.ck-widget.table th.ck-editor__nested-editable.ck-editor__nested-editable_focused,.ck-widget.table th.ck-editor__nested-editable:focus{background:var(--ck-color-selector-focused-cell-background);border-style:none;outline:1px solid var(--ck-color-focus-border);outline-offset:-1px}","",{version:3,sources:["webpack://./../ckeditor5-theme-lark/theme/ckeditor5-table/tableediting.css"],names:[],mappings:"AAKA,MACC,gEACD,CAKE,8QAGC,2DAA4D,CAK5D,iBAAkB,CAClB,8CAA+C,CAC/C,mBACD",sourcesContent:["/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n:root {\n\t--ck-color-selector-focused-cell-background: hsla(212, 90%, 80%, .3);\n}\n\n.ck-widget.table {\n\t& td,\n\t& th {\n\t\t&.ck-editor__nested-editable.ck-editor__nested-editable_focused,\n\t\t&.ck-editor__nested-editable:focus {\n\t\t\t/* A very slight background to highlight the focused cell */\n\t\t\tbackground: var(--ck-color-selector-focused-cell-background);\n\n\t\t\t/* Fixes the problem where surrounding cells cover the focused cell's border.\n\t\t\tIt does not fix the problem in all places but the UX is improved.\n\t\t\tSee https://github.com/ckeditor/ckeditor5-table/issues/29. */\n\t\t\tborder-style: none;\n\t\t\toutline: 1px solid var(--ck-color-focus-border);\n\t\t\toutline-offset: -1px; /* progressive enhancement - no IE support */\n\t\t}\n\t}\n}\n"],sourceRoot:""}]);const a=s},1623:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(9372),i=n.n(o),r=n(935),s=n.n(r)()(i());s.push([t.id,'.ck.ck-table-form .ck-form__row.ck-table-form__background-row,.ck.ck-table-form .ck-form__row.ck-table-form__border-row{flex-wrap:wrap}.ck.ck-table-form .ck-form__row.ck-table-form__dimensions-row{align-items:center;flex-wrap:wrap}.ck.ck-table-form .ck-form__row.ck-table-form__dimensions-row .ck-labeled-field-view{align-items:center;display:flex;flex-direction:column-reverse}.ck.ck-table-form .ck-form__row.ck-table-form__dimensions-row .ck-labeled-field-view .ck.ck-dropdown,.ck.ck-table-form .ck-form__row.ck-table-form__dimensions-row .ck-table-form__dimension-operator{flex-grow:0}.ck.ck-table-form .ck.ck-labeled-field-view{position:relative}.ck.ck-table-form .ck.ck-labeled-field-view .ck.ck-labeled-field-view__status{bottom:calc(var(--ck-table-properties-error-arrow-size)*-1);left:50%;position:absolute;transform:translate(-50%,100%);z-index:1}.ck.ck-table-form .ck.ck-labeled-field-view .ck.ck-labeled-field-view__status:after{content:"";left:50%;position:absolute;top:calc(var(--ck-table-properties-error-arrow-size)*-1);transform:translateX(-50%)}:root{--ck-table-properties-error-arrow-size:6px;--ck-table-properties-min-error-width:150px}.ck.ck-table-form .ck-form__row.ck-table-form__border-row .ck-labeled-field-view>.ck-label{font-size:var(--ck-font-size-tiny);text-align:center}.ck.ck-table-form .ck-form__row.ck-table-form__border-row .ck-table-form__border-style,.ck.ck-table-form .ck-form__row.ck-table-form__border-row .ck-table-form__border-width{max-width:80px;min-width:80px;width:80px}.ck.ck-table-form .ck-form__row.ck-table-form__dimensions-row{padding:0}.ck.ck-table-form .ck-form__row.ck-table-form__dimensions-row .ck-table-form__dimensions-row__height,.ck.ck-table-form .ck-form__row.ck-table-form__dimensions-row .ck-table-form__dimensions-row__width{margin:0}.ck.ck-table-form .ck-form__row.ck-table-form__dimensions-row .ck-table-form__dimension-operator{align-self:flex-end;display:inline-block;height:var(--ck-ui-component-min-height);line-height:var(--ck-ui-component-min-height);margin:0 var(--ck-spacing-small)}.ck.ck-table-form .ck.ck-labeled-field-view{padding-top:var(--ck-spacing-standard)}.ck.ck-table-form .ck.ck-labeled-field-view .ck.ck-labeled-field-view__status{border-radius:0}.ck-rounded-corners .ck.ck-table-form .ck.ck-labeled-field-view .ck.ck-labeled-field-view__status,.ck.ck-table-form .ck.ck-labeled-field-view .ck.ck-labeled-field-view__status.ck-rounded-corners{border-radius:var(--ck-border-radius)}.ck.ck-table-form .ck.ck-labeled-field-view .ck.ck-labeled-field-view__status{background:var(--ck-color-base-error);color:var(--ck-color-base-background);min-width:var(--ck-table-properties-min-error-width);padding:var(--ck-spacing-small) var(--ck-spacing-medium);text-align:center}.ck.ck-table-form .ck.ck-labeled-field-view .ck.ck-labeled-field-view__status:after{border-color:transparent transparent var(--ck-color-base-error) transparent;border-style:solid;border-width:0 var(--ck-table-properties-error-arrow-size) var(--ck-table-properties-error-arrow-size) var(--ck-table-properties-error-arrow-size)}.ck.ck-table-form .ck.ck-labeled-field-view .ck.ck-labeled-field-view__status{animation:ck-table-form-labeled-view-status-appear .15s ease both}@media (prefers-reduced-motion:reduce){.ck.ck-table-form .ck.ck-labeled-field-view .ck.ck-labeled-field-view__status{animation:none}}.ck.ck-table-form .ck.ck-labeled-field-view .ck-input.ck-error:not(:focus)+.ck.ck-labeled-field-view__status{display:none}@keyframes ck-table-form-labeled-view-status-appear{0%{opacity:0}to{opacity:1}}',"",{version:3,sources:["webpack://./../ckeditor5-table/theme/tableform.css","webpack://./../ckeditor5-theme-lark/theme/ckeditor5-table/tableform.css","webpack://./../ckeditor5-theme-lark/theme/mixins/_rounded.css"],names:[],mappings:"AAWE,wHACC,cACD,CAEA,8DAEC,kBAAmB,CADnB,cAgBD,CAbC,qFAGC,kBAAmB,CAFnB,YAAa,CACb,6BAMD,CAEA,sMACC,WACD,CAIF,4CAEC,iBAoBD,CAlBC,8EAGC,2DAAgE,CADhE,QAAS,CADT,iBAAkB,CAGlB,8BAA+B,CAG/B,SAUD,CAPC,oFACC,UAAW,CAGX,QAAS,CAFT,iBAAkB,CAClB,wDAA6D,CAE7D,0BACD,CChDH,MACC,0CAA2C,CAC3C,2CACD,CAMI,2FACC,kCAAmC,CACnC,iBACD,CAGD,8KAIC,cAAe,CADf,cAAe,CADf,UAGD,CAGD,8DACC,SAcD,CAZC,yMAEC,QACD,CAEA,iGACC,mBAAoB,CACpB,oBAAqB,CACrB,wCAAyC,CACzC,6CAA8C,CAC9C,gCACD,CAIF,4CACC,sCA6BD,CA3BC,8ECxCD,eD6DC,CArBA,mMCpCA,qCDyDA,CArBA,8EAGC,qCAAsC,CACtC,qCAAsC,CAEtC,oDAAqD,CADrD,wDAAyD,CAEzD,iBAcD,CAXC,oFACC,2EAA4E,CAE5E,kBAAmB,CADnB,kJAED,CAdD,8EAgBC,iEAKD,CAHC,uCAlBD,8EAmBE,cAEF,CADC,CAID,6GACC,YACD,CAIF,oDACC,GACC,SACD,CAEA,GACC,SACD,CACD",sourcesContent:['/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-table-form {\n\t& .ck-form__row {\n\t\t&.ck-table-form__border-row {\n\t\t\tflex-wrap: wrap;\n\t\t}\n\n\t\t&.ck-table-form__background-row {\n\t\t\tflex-wrap: wrap;\n\t\t}\n\n\t\t&.ck-table-form__dimensions-row {\n\t\t\tflex-wrap: wrap;\n\t\t\talign-items: center;\n\n\t\t\t& .ck-labeled-field-view {\n\t\t\t\tdisplay: flex;\n\t\t\t\tflex-direction: column-reverse;\n\t\t\t\talign-items: center;\n\n\t\t\t\t& .ck.ck-dropdown {\n\t\t\t\t\tflex-grow: 0;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t& .ck-table-form__dimension-operator {\n\t\t\t\tflex-grow: 0;\n\t\t\t}\n\t\t}\n\t}\n\n\t& .ck.ck-labeled-field-view {\n\t\t/* Allow absolute positioning of the status (error) balloons. */\n\t\tposition: relative;\n\n\t\t& .ck.ck-labeled-field-view__status {\n\t\t\tposition: absolute;\n\t\t\tleft: 50%;\n\t\t\tbottom: calc( -1 * var(--ck-table-properties-error-arrow-size) );\n\t\t\ttransform: translate(-50%,100%);\n\n\t\t\t/* Make sure the balloon status stays on top of other form elements. */\n\t\t\tz-index: 1;\n\n\t\t\t/* The arrow pointing towards the field. */\n\t\t\t&::after {\n\t\t\t\tcontent: "";\n\t\t\t\tposition: absolute;\n\t\t\t\ttop: calc( -1 * var(--ck-table-properties-error-arrow-size) );\n\t\t\t\tleft: 50%;\n\t\t\t\ttransform: translateX( -50% );\n\t\t\t}\n\t\t}\n\t}\n}\n','/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "../mixins/_rounded.css";\n\n:root {\n\t--ck-table-properties-error-arrow-size: 6px;\n\t--ck-table-properties-min-error-width: 150px;\n}\n\n.ck.ck-table-form {\n\t& .ck-form__row {\n\t\t&.ck-table-form__border-row {\n\t\t\t& .ck-labeled-field-view {\n\t\t\t\t& > .ck-label {\n\t\t\t\t\tfont-size: var(--ck-font-size-tiny);\n\t\t\t\t\ttext-align: center;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t& .ck-table-form__border-style,\n\t\t\t& .ck-table-form__border-width {\n\t\t\t\twidth: 80px;\n\t\t\t\tmin-width: 80px;\n\t\t\t\tmax-width: 80px;\n\t\t\t}\n\t\t}\n\n\t\t&.ck-table-form__dimensions-row {\n\t\t\tpadding: 0;\n\n\t\t\t& .ck-table-form__dimensions-row__width,\n\t\t\t& .ck-table-form__dimensions-row__height {\n\t\t\t\tmargin: 0\n\t\t\t}\n\n\t\t\t& .ck-table-form__dimension-operator {\n\t\t\t\talign-self: flex-end;\n\t\t\t\tdisplay: inline-block;\n\t\t\t\theight: var(--ck-ui-component-min-height);\n\t\t\t\tline-height: var(--ck-ui-component-min-height);\n\t\t\t\tmargin: 0 var(--ck-spacing-small);\n\t\t\t}\n\t\t}\n\t}\n\n\t& .ck.ck-labeled-field-view {\n\t\tpadding-top: var(--ck-spacing-standard);\n\n\t\t& .ck.ck-labeled-field-view__status {\n\t\t\t@mixin ck-rounded-corners;\n\n\t\t\tbackground: var(--ck-color-base-error);\n\t\t\tcolor: var(--ck-color-base-background);\n\t\t\tpadding: var(--ck-spacing-small) var(--ck-spacing-medium);\n\t\t\tmin-width: var(--ck-table-properties-min-error-width);\n\t\t\ttext-align: center;\n\n\t\t\t/* The arrow pointing towards the field. */\n\t\t\t&::after {\n\t\t\t\tborder-color: transparent transparent var(--ck-color-base-error) transparent;\n\t\t\t\tborder-width: 0 var(--ck-table-properties-error-arrow-size) var(--ck-table-properties-error-arrow-size) var(--ck-table-properties-error-arrow-size);\n\t\t\t\tborder-style: solid;\n\t\t\t}\n\n\t\t\tanimation: ck-table-form-labeled-view-status-appear .15s ease both;\n\n\t\t\t@media (prefers-reduced-motion: reduce) {\n\t\t\t\tanimation: none;\n\t\t\t}\n\t\t}\n\n\t\t/* Hide the error balloon when the field is blurred. Makes the experience much more clear. */\n\t\t& .ck-input.ck-error:not(:focus) + .ck.ck-labeled-field-view__status {\n\t\t\tdisplay: none;\n\t\t}\n\t}\n}\n\n@keyframes ck-table-form-labeled-view-status-appear {\n\t0% {\n\t\topacity: 0;\n\t}\n\n\t100% {\n\t\topacity: 1;\n\t}\n}\n',"/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * Implements rounded corner interface for .ck-rounded-corners class.\n *\n * @see $ck-border-radius\n */\n@define-mixin ck-rounded-corners {\n\tborder-radius: 0;\n\n\t@nest .ck-rounded-corners &,\n\t&.ck-rounded-corners {\n\t\tborder-radius: var(--ck-border-radius);\n\t\t@mixin-content;\n\t}\n}\n"],sourceRoot:""}]);const a=s},5562:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(9372),i=n.n(o),r=n(935),s=n.n(r)()(i());s.push([t.id,".ck.ck-table-properties-form .ck-form__row.ck-table-properties-form__alignment-row{align-content:baseline;flex-basis:0;flex-wrap:wrap}.ck.ck-table-properties-form .ck-form__row.ck-table-properties-form__alignment-row .ck.ck-toolbar .ck-toolbar__items{flex-wrap:nowrap}.ck.ck-table-properties-form{width:320px}.ck.ck-table-properties-form .ck-form__row.ck-table-properties-form__alignment-row{align-self:flex-end;padding:0}.ck.ck-table-properties-form .ck-form__row.ck-table-properties-form__alignment-row .ck.ck-toolbar{background:none;margin-top:var(--ck-spacing-standard)}.ck.ck-table-properties-form .ck-form__row.ck-table-properties-form__alignment-row .ck.ck-toolbar .ck-toolbar__items>*{width:40px}","",{version:3,sources:["webpack://./../ckeditor5-table/theme/tableproperties.css","webpack://./../ckeditor5-theme-lark/theme/ckeditor5-table/tableproperties.css"],names:[],mappings:"AAOE,mFAGC,sBAAuB,CADvB,YAAa,CADb,cAOD,CAHC,qHACC,gBACD,CCTH,6BACC,WAmBD,CAhBE,mFACC,mBAAoB,CACpB,SAYD,CAVC,kGACC,eAAgB,CAGhB,qCAKD,CAHC,uHACC,UACD",sourcesContent:["/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-table-properties-form {\n\t& .ck-form__row {\n\t\t&.ck-table-properties-form__alignment-row {\n\t\t\tflex-wrap: wrap;\n\t\t\tflex-basis: 0;\n\t\t\talign-content: baseline;\n\n\t\t\t& .ck.ck-toolbar .ck-toolbar__items {\n\t\t\t\tflex-wrap: nowrap;\n\t\t\t}\n\t\t}\n\t}\n}\n","/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-table-properties-form {\n\twidth: 320px;\n\n\t& .ck-form__row {\n\t\t&.ck-table-properties-form__alignment-row {\n\t\t\talign-self: flex-end;\n\t\t\tpadding: 0;\n\n\t\t\t& .ck.ck-toolbar {\n\t\t\t\tbackground: none;\n\n\t\t\t\t/* Compensate for missing input label that would push the margin (toolbar has no inputs). */\n\t\t\t\tmargin-top: var(--ck-spacing-standard);\n\n\t\t\t\t& .ck-toolbar__items > * {\n\t\t\t\t\twidth: 40px;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n"],sourceRoot:""}]);const a=s},8423:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(9372),i=n.n(o),r=n(935),s=n.n(r)()(i());s.push([t.id,':root{--ck-table-selected-cell-background:rgba(158,207,250,.3)}.ck.ck-editor__editable .table table td.ck-editor__editable_selected,.ck.ck-editor__editable .table table th.ck-editor__editable_selected{box-shadow:unset;caret-color:transparent;outline:unset;position:relative}.ck.ck-editor__editable .table table td.ck-editor__editable_selected:after,.ck.ck-editor__editable .table table th.ck-editor__editable_selected:after{background-color:var(--ck-table-selected-cell-background);bottom:0;content:"";left:0;pointer-events:none;position:absolute;right:0;top:0}.ck.ck-editor__editable .table table td.ck-editor__editable_selected ::selection,.ck.ck-editor__editable .table table td.ck-editor__editable_selected:focus,.ck.ck-editor__editable .table table th.ck-editor__editable_selected ::selection,.ck.ck-editor__editable .table table th.ck-editor__editable_selected:focus{background-color:transparent}.ck.ck-editor__editable .table table td.ck-editor__editable_selected .ck-widget,.ck.ck-editor__editable .table table th.ck-editor__editable_selected .ck-widget{outline:unset}.ck.ck-editor__editable .table table td.ck-editor__editable_selected .ck-widget>.ck-widget__selection-handle,.ck.ck-editor__editable .table table th.ck-editor__editable_selected .ck-widget>.ck-widget__selection-handle{display:none}',"",{version:3,sources:["webpack://./../ckeditor5-theme-lark/theme/ckeditor5-table/tableselection.css"],names:[],mappings:"AAKA,MACC,wDACD,CAGC,0IAKC,gBAAiB,CAFjB,uBAAwB,CACxB,aAAc,CAFd,iBAiCD,CA3BC,sJAGC,yDAA0D,CAK1D,QAAS,CAPT,UAAW,CAKX,MAAO,CAJP,mBAAoB,CAEpB,iBAAkB,CAGlB,OAAQ,CAFR,KAID,CAEA,wTAEC,4BACD,CAMA,gKACC,aAKD,CAHC,0NACC,YACD",sourcesContent:["/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n:root {\n\t--ck-table-selected-cell-background: hsla(208, 90%, 80%, .3);\n}\n\n.ck.ck-editor__editable .table table {\n\t& td.ck-editor__editable_selected,\n\t& th.ck-editor__editable_selected {\n\t\tposition: relative;\n\t\tcaret-color: transparent;\n\t\toutline: unset;\n\t\tbox-shadow: unset;\n\n\t\t/* https://github.com/ckeditor/ckeditor5/issues/6446 */\n\t\t&:after {\n\t\t\tcontent: '';\n\t\t\tpointer-events: none;\n\t\t\tbackground-color: var(--ck-table-selected-cell-background);\n\t\t\tposition: absolute;\n\t\t\ttop: 0;\n\t\t\tleft: 0;\n\t\t\tright: 0;\n\t\t\tbottom: 0;\n\t\t}\n\n\t\t& ::selection,\n\t\t&:focus {\n\t\t\tbackground-color: transparent;\n\t\t}\n\n\t\t/*\n\t\t * To reduce the amount of noise, all widgets in the table selection have no outline and no selection handle.\n\t\t * See https://github.com/ckeditor/ckeditor5/issues/9491.\n\t\t */\n\t\t& .ck-widget {\n\t\t\toutline: unset;\n\n\t\t\t& > .ck-widget__selection-handle {\n\t\t\t\tdisplay: none;\n\t\t\t}\n\t\t}\n\t}\n}\n"],sourceRoot:""}]);const a=s},1801:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(9372),i=n.n(o),r=n(935),s=n.n(r)()(i());s.push([t.id,".ck.ck-aria-live-announcer{left:-10000px;position:absolute;top:-10000px}.ck.ck-aria-live-region-list{list-style-type:none}","",{version:3,sources:["webpack://./../ckeditor5-ui/theme/components/arialiveannouncer/arialiveannouncer.css"],names:[],mappings:"AAKA,2BAEC,aAAc,CADd,iBAAkB,CAElB,YACD,CAEA,6BACC,oBACD",sourcesContent:["/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-aria-live-announcer {\n\tposition: absolute;\n\tleft: -10000px;\n\ttop: -10000px;\n}\n\n.ck.ck-aria-live-region-list {\n\tlist-style-type: none;\n}\n"],sourceRoot:""}]);const a=s},5727:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(9372),i=n.n(o),r=n(935),s=n.n(r)()(i());s.push([t.id,".ck.ck-autocomplete{position:relative}.ck.ck-autocomplete>.ck-search__results{position:absolute;z-index:var(--ck-z-panel)}.ck.ck-autocomplete>.ck-search__results.ck-search__results_n{bottom:100%}.ck.ck-autocomplete>.ck-search__results.ck-search__results_s{bottom:auto;top:100%}.ck.ck-autocomplete>.ck-search__results{border-radius:0}.ck-rounded-corners .ck.ck-autocomplete>.ck-search__results,.ck.ck-autocomplete>.ck-search__results.ck-rounded-corners{border-radius:var(--ck-border-radius)}.ck.ck-autocomplete>.ck-search__results{background:var(--ck-color-base-background);border:1px solid var(--ck-color-dropdown-panel-border);box-shadow:var(--ck-drop-shadow),0 0;max-height:200px;min-width:auto;overflow-y:auto}.ck.ck-autocomplete>.ck-search__results.ck-search__results_n{border-bottom-left-radius:0;border-bottom-right-radius:0;margin-bottom:-1px}.ck.ck-autocomplete>.ck-search__results.ck-search__results_s{border-top-left-radius:0;border-top-right-radius:0;margin-top:-1px}","",{version:3,sources:["webpack://./../ckeditor5-ui/theme/components/autocomplete/autocomplete.css","webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/autocomplete/autocomplete.css","webpack://./../ckeditor5-theme-lark/theme/mixins/_rounded.css","webpack://./../ckeditor5-theme-lark/theme/mixins/_shadow.css"],names:[],mappings:"AAKA,oBACC,iBAeD,CAbC,wCACC,iBAAkB,CAClB,yBAUD,CARC,6DACC,WACD,CAEA,6DAEC,WAAY,CADZ,QAED,CCVD,wCCEA,eDuBA,CAzBA,uHCMC,qCDmBD,CAzBA,wCAMC,0CAA2C,CAC3C,sDAAuD,CEPxD,oCAA8B,CFI7B,gBAAiB,CAIjB,cAAe,CAHf,eAoBD,CAfC,6DACC,2BAA4B,CAC5B,4BAA6B,CAG7B,kBACD,CAEA,6DACC,wBAAyB,CACzB,yBAA0B,CAG1B,eACD",sourcesContent:["/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-autocomplete {\n\tposition: relative;\n\n\t& > .ck-search__results {\n\t\tposition: absolute;\n\t\tz-index: var(--ck-z-panel);\n\n\t\t&.ck-search__results_n {\n\t\t\tbottom: 100%;\n\t\t}\n\n\t\t&.ck-search__results_s {\n\t\t\ttop: 100%;\n\t\t\tbottom: auto;\n\t\t}\n\t}\n}\n",'/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "@ckeditor/ckeditor5-theme-lark/theme/mixins/_rounded.css";\n@import "@ckeditor/ckeditor5-theme-lark/theme/mixins/_shadow.css";\n\n.ck.ck-autocomplete {\n\t& > .ck-search__results {\n\t\t@mixin ck-rounded-corners;\n\t\t@mixin ck-drop-shadow;\n\n\t\tmax-height: 200px;\n\t\toverflow-y: auto;\n\t\tbackground: var(--ck-color-base-background);\n\t\tborder: 1px solid var(--ck-color-dropdown-panel-border);\n\t\tmin-width: auto;\n\n\t\t&.ck-search__results_n {\n\t\t\tborder-bottom-left-radius: 0;\n\t\t\tborder-bottom-right-radius: 0;\n\n\t\t\t/* Prevent duplicated borders between the input and the results pane. */\n\t\t\tmargin-bottom: -1px;\n\t\t}\n\n\t\t&.ck-search__results_s {\n\t\t\tborder-top-left-radius: 0;\n\t\t\tborder-top-right-radius: 0;\n\n\t\t\t/* Prevent duplicated borders between the input and the results pane. */\n\t\t\tmargin-top: -1px;\n\t\t}\n\t}\n}\n',"/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * Implements rounded corner interface for .ck-rounded-corners class.\n *\n * @see $ck-border-radius\n */\n@define-mixin ck-rounded-corners {\n\tborder-radius: 0;\n\n\t@nest .ck-rounded-corners &,\n\t&.ck-rounded-corners {\n\t\tborder-radius: var(--ck-border-radius);\n\t\t@mixin-content;\n\t}\n}\n","/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * A helper to combine multiple shadows.\n */\n@define-mixin ck-box-shadow $shadowA, $shadowB: 0 0 {\n\tbox-shadow: $shadowA, $shadowB;\n}\n\n/**\n * Gives an element a drop shadow so it looks like a floating panel.\n */\n@define-mixin ck-drop-shadow {\n\t@mixin ck-box-shadow var(--ck-drop-shadow);\n}\n"],sourceRoot:""}]);const a=s},9715:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(9372),i=n.n(o),r=n(935),s=n.n(r)()(i());s.push([t.id,".ck.ck-button,a.ck.ck-button{align-items:center;display:inline-flex;position:relative;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none}[dir=ltr] .ck.ck-button,[dir=ltr] a.ck.ck-button{justify-content:left}[dir=rtl] .ck.ck-button,[dir=rtl] a.ck.ck-button{justify-content:right}.ck.ck-button .ck-button__label,a.ck.ck-button .ck-button__label{display:none}.ck.ck-button.ck-button_with-text .ck-button__label,a.ck.ck-button.ck-button_with-text .ck-button__label{display:inline-block}.ck.ck-button:not(.ck-button_with-text),a.ck.ck-button:not(.ck-button_with-text){justify-content:center}.ck.ck-button,a.ck.ck-button{background:var(--ck-color-button-default-background)}.ck.ck-button:not(.ck-disabled):hover,a.ck.ck-button:not(.ck-disabled):hover{background:var(--ck-color-button-default-hover-background)}.ck.ck-button:not(.ck-disabled):active,a.ck.ck-button:not(.ck-disabled):active{background:var(--ck-color-button-default-active-background)}.ck.ck-button.ck-disabled,a.ck.ck-button.ck-disabled{background:var(--ck-color-button-default-disabled-background)}.ck.ck-button,a.ck.ck-button{border-radius:0}.ck-rounded-corners .ck.ck-button,.ck-rounded-corners a.ck.ck-button,.ck.ck-button.ck-rounded-corners,a.ck.ck-button.ck-rounded-corners{border-radius:var(--ck-border-radius)}.ck.ck-button,a.ck.ck-button{-webkit-appearance:none;border:1px solid transparent;cursor:default;font-size:inherit;line-height:1;min-height:var(--ck-ui-component-min-height);min-width:var(--ck-ui-component-min-height);padding:var(--ck-spacing-tiny);text-align:center;transition:box-shadow .2s ease-in-out,border .2s ease-in-out;vertical-align:middle;white-space:nowrap}@media (prefers-reduced-motion:reduce){.ck.ck-button,a.ck.ck-button{transition:none}}.ck.ck-button:active,.ck.ck-button:focus,a.ck.ck-button:active,a.ck.ck-button:focus{border:var(--ck-focus-ring);box-shadow:var(--ck-focus-outer-shadow),0 0;outline:none}.ck.ck-button .ck-button__icon use,.ck.ck-button .ck-button__icon use *,a.ck.ck-button .ck-button__icon use,a.ck.ck-button .ck-button__icon use *{color:inherit}.ck.ck-button .ck-button__label,a.ck.ck-button .ck-button__label{color:inherit;cursor:inherit;font-size:inherit;font-weight:inherit;vertical-align:middle}[dir=ltr] .ck.ck-button .ck-button__label,[dir=ltr] a.ck.ck-button .ck-button__label{text-align:left}[dir=rtl] .ck.ck-button .ck-button__label,[dir=rtl] a.ck.ck-button .ck-button__label{text-align:right}.ck.ck-button .ck-button__keystroke,a.ck.ck-button .ck-button__keystroke{color:inherit}[dir=ltr] .ck.ck-button .ck-button__keystroke,[dir=ltr] a.ck.ck-button .ck-button__keystroke{margin-left:var(--ck-spacing-large)}[dir=rtl] .ck.ck-button .ck-button__keystroke,[dir=rtl] a.ck.ck-button .ck-button__keystroke{margin-right:var(--ck-spacing-large)}.ck.ck-button .ck-button__keystroke,a.ck.ck-button .ck-button__keystroke{opacity:.5}.ck.ck-button.ck-disabled:active,.ck.ck-button.ck-disabled:focus,a.ck.ck-button.ck-disabled:active,a.ck.ck-button.ck-disabled:focus{box-shadow:var(--ck-focus-disabled-outer-shadow),0 0}.ck.ck-button.ck-disabled .ck-button__icon,.ck.ck-button.ck-disabled .ck-button__label,a.ck.ck-button.ck-disabled .ck-button__icon,a.ck.ck-button.ck-disabled .ck-button__label{opacity:var(--ck-disabled-opacity)}.ck.ck-button.ck-disabled .ck-button__keystroke,a.ck.ck-button.ck-disabled .ck-button__keystroke{opacity:.3}.ck.ck-button.ck-button_with-text,a.ck.ck-button.ck-button_with-text{padding:var(--ck-spacing-tiny) var(--ck-spacing-standard)}[dir=ltr] .ck.ck-button.ck-button_with-text .ck-button__icon,[dir=ltr] a.ck.ck-button.ck-button_with-text .ck-button__icon{margin-left:calc(var(--ck-spacing-small)*-1);margin-right:var(--ck-spacing-small)}[dir=rtl] .ck.ck-button.ck-button_with-text .ck-button__icon,[dir=rtl] a.ck.ck-button.ck-button_with-text .ck-button__icon{margin-left:var(--ck-spacing-small);margin-right:calc(var(--ck-spacing-small)*-1)}.ck.ck-button.ck-button_with-keystroke .ck-button__label,a.ck.ck-button.ck-button_with-keystroke .ck-button__label{flex-grow:1}.ck.ck-button.ck-on,a.ck.ck-button.ck-on{background:var(--ck-color-button-on-background)}.ck.ck-button.ck-on:not(.ck-disabled):hover,a.ck.ck-button.ck-on:not(.ck-disabled):hover{background:var(--ck-color-button-on-hover-background)}.ck.ck-button.ck-on:not(.ck-disabled):active,a.ck.ck-button.ck-on:not(.ck-disabled):active{background:var(--ck-color-button-on-active-background)}.ck.ck-button.ck-on.ck-disabled,a.ck.ck-button.ck-on.ck-disabled{background:var(--ck-color-button-on-disabled-background)}.ck.ck-button.ck-on,a.ck.ck-button.ck-on{color:var(--ck-color-button-on-color)}.ck.ck-button.ck-button-save,a.ck.ck-button.ck-button-save{color:var(--ck-color-button-save)}.ck.ck-button.ck-button-cancel,a.ck.ck-button.ck-button-cancel{color:var(--ck-color-button-cancel)}.ck.ck-button-action,a.ck.ck-button-action{background:var(--ck-color-button-action-background)}.ck.ck-button-action:not(.ck-disabled):hover,a.ck.ck-button-action:not(.ck-disabled):hover{background:var(--ck-color-button-action-hover-background)}.ck.ck-button-action:not(.ck-disabled):active,a.ck.ck-button-action:not(.ck-disabled):active{background:var(--ck-color-button-action-active-background)}.ck.ck-button-action.ck-disabled,a.ck.ck-button-action.ck-disabled{background:var(--ck-color-button-action-disabled-background)}.ck.ck-button-action,a.ck.ck-button-action{color:var(--ck-color-button-action-text)}.ck.ck-button-bold,a.ck.ck-button-bold{font-weight:700}","",{version:3,sources:["webpack://./../ckeditor5-ui/theme/components/button/button.css","webpack://./../ckeditor5-ui/theme/mixins/_unselectable.css","webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/button/button.css","webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/mixins/_button.css","webpack://./../ckeditor5-theme-lark/theme/mixins/_rounded.css","webpack://./../ckeditor5-theme-lark/theme/mixins/_focus.css","webpack://./../ckeditor5-theme-lark/theme/mixins/_shadow.css","webpack://./../ckeditor5-theme-lark/theme/mixins/_disabled.css"],names:[],mappings:"AAQA,6BAMC,kBAAmB,CADnB,mBAAoB,CADpB,iBAAkB,CCHlB,qBAAsB,CACtB,wBAAyB,CACzB,oBAAqB,CACrB,gBD0BD,CA9BA,iDASE,oBAqBF,CA9BA,iDAaE,qBAiBF,CAdC,iEACC,YACD,CAGC,yGACC,oBACD,CAID,iFACC,sBACD,CEzBD,6BCAC,oDD+ID,CC5IE,6EACC,0DACD,CAEA,+EACC,2DACD,CAID,qDACC,6DACD,CDfD,6BEDC,eFgJD,CA/IA,wIEGE,qCF4IF,CA/IA,6BA6BC,uBAAwB,CANxB,4BAA6B,CAjB7B,cAAe,CAcf,iBAAkB,CAHlB,aAAc,CAJd,4CAA6C,CAD7C,2CAA4C,CAJ5C,8BAA+B,CAC/B,iBAAkB,CAiBlB,4DAA8D,CAnB9D,qBAAsB,CAFtB,kBA0ID,CAhHC,uCA/BD,6BAgCE,eA+GF,CA9GC,CAEA,oFGpCA,2BAA2B,CCF3B,2CAA8B,CDC9B,YHyCA,CAIC,kJAEC,aACD,CAGD,iEAIC,aAAc,CACd,cAAe,CAHf,iBAAkB,CAClB,mBAAoB,CAMpB,qBASD,CAlBA,qFAYE,eAMF,CAlBA,qFAgBE,gBAEF,CAEA,yEACC,aAWD,CAZA,6FAIE,mCAQF,CAZA,6FAQE,oCAIF,CAZA,yEAWC,UACD,CAIC,oIIxFD,oDJ4FC,CAOA,gLKnGD,kCLqGC,CAEA,iGACC,UACD,CAGD,qEACC,yDAcD,CAXC,2HAEE,4CAA+C,CAC/C,oCAOF,CAVA,2HAQE,mCAAoC,CADpC,6CAGF,CAKA,mHACC,WACD,CAID,yCClIA,+CDsIA,CCnIC,yFACC,qDACD,CAEA,2FACC,sDACD,CAID,iEACC,wDACD,CDmHA,yCAGC,qCACD,CAEA,2DACC,iCACD,CAEA,+DACC,mCACD,CAID,2CClJC,mDDuJD,CCpJE,2FACC,yDACD,CAEA,6FACC,0DACD,CAID,mEACC,4DACD,CDmID,2CAIC,wCACD,CAEA,uCAEC,eACD",sourcesContent:['/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "../../mixins/_unselectable.css";\n@import "../../mixins/_dir.css";\n\n.ck.ck-button,\na.ck.ck-button {\n\t@mixin ck-unselectable;\n\n\tposition: relative;\n\tdisplay: inline-flex;\n\talign-items: center;\n\n\t@mixin ck-dir ltr {\n\t\tjustify-content: left;\n\t}\n\n\t@mixin ck-dir rtl {\n\t\tjustify-content: right;\n\t}\n\n\t& .ck-button__label {\n\t\tdisplay: none;\n\t}\n\n\t&.ck-button_with-text {\n\t\t& .ck-button__label {\n\t\t\tdisplay: inline-block;\n\t\t}\n\t}\n\n\t/* Center the icon horizontally in a button without text. */\n\t&:not(.ck-button_with-text) {\n\t\tjustify-content: center;\n\t}\n}\n',"/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * Makes element unselectable.\n */\n@define-mixin ck-unselectable {\n\t-moz-user-select: none;\n\t-webkit-user-select: none;\n\t-ms-user-select: none;\n\tuser-select: none\n}\n",'/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "../../../mixins/_focus.css";\n@import "../../../mixins/_shadow.css";\n@import "../../../mixins/_disabled.css";\n@import "../../../mixins/_rounded.css";\n@import "../../mixins/_button.css";\n@import "@ckeditor/ckeditor5-ui/theme/mixins/_dir.css";\n\n.ck.ck-button,\na.ck.ck-button {\n\t@mixin ck-button-colors --ck-color-button-default;\n\t@mixin ck-rounded-corners;\n\n\twhite-space: nowrap;\n\tcursor: default;\n\tvertical-align: middle;\n\tpadding: var(--ck-spacing-tiny);\n\ttext-align: center;\n\n\t/* A very important piece of styling. Go to variable declaration to learn more. */\n\tmin-width: var(--ck-ui-component-min-height);\n\tmin-height: var(--ck-ui-component-min-height);\n\n\t/* Normalize the height of the line. Removing this will break consistent height\n\tamong text and text-less buttons (with icons). */\n\tline-height: 1;\n\n\t/* Enable font size inheritance, which allows fluid UI scaling. */\n\tfont-size: inherit;\n\n\t/* Avoid flickering when the foucs border shows up. */\n\tborder: 1px solid transparent;\n\n\t/* Apply some smooth transition to the box-shadow and border. */\n\ttransition: box-shadow .2s ease-in-out, border .2s ease-in-out;\n\n\t/* https://github.com/ckeditor/ckeditor5-theme-lark/issues/189 */\n\t-webkit-appearance: none;\n\n\t@media (prefers-reduced-motion: reduce) {\n\t\ttransition: none;\n\t}\n\n\t&:active,\n\t&:focus {\n\t\t@mixin ck-focus-ring;\n\t\t@mixin ck-box-shadow var(--ck-focus-outer-shadow);\n\t}\n\n\t/* Allow icon coloring using the text "color" property. */\n\t& .ck-button__icon {\n\t\t& use,\n\t\t& use * {\n\t\t\tcolor: inherit;\n\t\t}\n\t}\n\n\t& .ck-button__label {\n\t\t/* Enable font size inheritance, which allows fluid UI scaling. */\n\t\tfont-size: inherit;\n\t\tfont-weight: inherit;\n\t\tcolor: inherit;\n\t\tcursor: inherit;\n\n\t\t/* Must be consistent with .ck-icon\'s vertical align. Otherwise, buttons with and\n\t\twithout labels (but with icons) have different sizes in Chrome */\n\t\tvertical-align: middle;\n\n\t\t@mixin ck-dir ltr {\n\t\t\ttext-align: left;\n\t\t}\n\n\t\t@mixin ck-dir rtl {\n\t\t\ttext-align: right;\n\t\t}\n\t}\n\n\t& .ck-button__keystroke {\n\t\tcolor: inherit;\n\n\t\t@mixin ck-dir ltr {\n\t\t\tmargin-left: var(--ck-spacing-large);\n\t\t}\n\n\t\t@mixin ck-dir rtl {\n\t\t\tmargin-right: var(--ck-spacing-large);\n\t\t}\n\n\t\topacity: .5;\n\t}\n\n\t/* https://github.com/ckeditor/ckeditor5-theme-lark/issues/70 */\n\t&.ck-disabled {\n\t\t&:active,\n\t\t&:focus {\n\t\t\t/* The disabled button should have a slightly less visible shadow when focused. */\n\t\t\t@mixin ck-box-shadow var(--ck-focus-disabled-outer-shadow);\n\t\t}\n\n\t\t& .ck-button__icon {\n\t\t\t@mixin ck-disabled;\n\t\t}\n\n\t\t/* https://github.com/ckeditor/ckeditor5-theme-lark/issues/98 */\n\t\t& .ck-button__label {\n\t\t\t@mixin ck-disabled;\n\t\t}\n\n\t\t& .ck-button__keystroke {\n\t\t\topacity: .3;\n\t\t}\n\t}\n\n\t&.ck-button_with-text {\n\t\tpadding: var(--ck-spacing-tiny) var(--ck-spacing-standard);\n\n\t\t/* stylelint-disable-next-line no-descending-specificity */\n\t\t& .ck-button__icon {\n\t\t\t@mixin ck-dir ltr {\n\t\t\t\tmargin-left: calc(-1 * var(--ck-spacing-small));\n\t\t\t\tmargin-right: var(--ck-spacing-small);\n\t\t\t}\n\n\t\t\t@mixin ck-dir rtl {\n\t\t\t\tmargin-right: calc(-1 * var(--ck-spacing-small));\n\t\t\t\tmargin-left: var(--ck-spacing-small);\n\t\t\t}\n\t\t}\n\t}\n\n\t&.ck-button_with-keystroke {\n\t\t/* stylelint-disable-next-line no-descending-specificity */\n\t\t& .ck-button__label {\n\t\t\tflex-grow: 1;\n\t\t}\n\t}\n\n\t/* A style of the button which is currently on, e.g. its feature is active. */\n\t&.ck-on {\n\t\t@mixin ck-button-colors --ck-color-button-on;\n\n\t\tcolor: var(--ck-color-button-on-color);\n\t}\n\n\t&.ck-button-save {\n\t\tcolor: var(--ck-color-button-save);\n\t}\n\n\t&.ck-button-cancel {\n\t\tcolor: var(--ck-color-button-cancel);\n\t}\n}\n\n/* A style of the button which handles the primary action. */\n.ck.ck-button-action,\na.ck.ck-button-action {\n\t@mixin ck-button-colors --ck-color-button-action;\n\n\tcolor: var(--ck-color-button-action-text);\n}\n\n.ck.ck-button-bold,\na.ck.ck-button-bold {\n\tfont-weight: bold;\n}\n',"/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * Implements a button of given background color.\n *\n * @param {String} $background - Background color of the button.\n * @param {String} $border - Border color of the button.\n */\n@define-mixin ck-button-colors $prefix {\n\tbackground: var($(prefix)-background);\n\n\t&:not(.ck-disabled) {\n\t\t&:hover {\n\t\t\tbackground: var($(prefix)-hover-background);\n\t\t}\n\n\t\t&:active {\n\t\t\tbackground: var($(prefix)-active-background);\n\t\t}\n\t}\n\n\t/* https://github.com/ckeditor/ckeditor5-theme-lark/issues/98 */\n\t&.ck-disabled {\n\t\tbackground: var($(prefix)-disabled-background);\n\t}\n}\n","/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * Implements rounded corner interface for .ck-rounded-corners class.\n *\n * @see $ck-border-radius\n */\n@define-mixin ck-rounded-corners {\n\tborder-radius: 0;\n\n\t@nest .ck-rounded-corners &,\n\t&.ck-rounded-corners {\n\t\tborder-radius: var(--ck-border-radius);\n\t\t@mixin-content;\n\t}\n}\n","/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * A visual style of focused element's border.\n */\n@define-mixin ck-focus-ring {\n\t/* Disable native outline. */\n\toutline: none;\n\tborder: var(--ck-focus-ring)\n}\n","/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * A helper to combine multiple shadows.\n */\n@define-mixin ck-box-shadow $shadowA, $shadowB: 0 0 {\n\tbox-shadow: $shadowA, $shadowB;\n}\n\n/**\n * Gives an element a drop shadow so it looks like a floating panel.\n */\n@define-mixin ck-drop-shadow {\n\t@mixin ck-box-shadow var(--ck-drop-shadow);\n}\n","/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * A class which indicates that an element holding it is disabled.\n */\n@define-mixin ck-disabled {\n\topacity: var(--ck-disabled-opacity);\n}\n"],sourceRoot:""}]);const a=s},4391:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(9372),i=n.n(o),r=n(935),s=n.n(r)()(i());s.push([t.id,".ck.ck-button.ck-switchbutton .ck-button__toggle,.ck.ck-button.ck-switchbutton .ck-button__toggle .ck-button__toggle__inner{display:block}:root{--ck-switch-button-toggle-width:2.6153846154em;--ck-switch-button-toggle-inner-size:calc(1.07692em + 1px);--ck-switch-button-translation:calc(var(--ck-switch-button-toggle-width) - var(--ck-switch-button-toggle-inner-size) - 2px);--ck-switch-button-inner-hover-shadow:0 0 0 5px var(--ck-color-switch-button-inner-shadow)}.ck.ck-button.ck-switchbutton,.ck.ck-button.ck-switchbutton.ck-on:active,.ck.ck-button.ck-switchbutton.ck-on:focus,.ck.ck-button.ck-switchbutton.ck-on:hover,.ck.ck-button.ck-switchbutton:active,.ck.ck-button.ck-switchbutton:focus,.ck.ck-button.ck-switchbutton:hover{background:transparent;color:inherit}[dir=ltr] .ck.ck-button.ck-switchbutton .ck-button__label{margin-right:calc(var(--ck-spacing-large)*2)}[dir=rtl] .ck.ck-button.ck-switchbutton .ck-button__label{margin-left:calc(var(--ck-spacing-large)*2)}.ck.ck-button.ck-switchbutton .ck-button__toggle{border-radius:0}.ck-rounded-corners .ck.ck-button.ck-switchbutton .ck-button__toggle,.ck.ck-button.ck-switchbutton .ck-button__toggle.ck-rounded-corners{border-radius:var(--ck-border-radius)}[dir=ltr] .ck.ck-button.ck-switchbutton .ck-button__toggle{margin-left:auto}[dir=rtl] .ck.ck-button.ck-switchbutton .ck-button__toggle{margin-right:auto}.ck.ck-button.ck-switchbutton .ck-button__toggle{background:var(--ck-color-switch-button-off-background);border:1px solid transparent;transition:background .4s ease,box-shadow .2s ease-in-out,outline .2s ease-in-out;width:var(--ck-switch-button-toggle-width)}.ck.ck-button.ck-switchbutton .ck-button__toggle .ck-button__toggle__inner{border-radius:0}.ck-rounded-corners .ck.ck-button.ck-switchbutton .ck-button__toggle .ck-button__toggle__inner,.ck.ck-button.ck-switchbutton .ck-button__toggle .ck-button__toggle__inner.ck-rounded-corners{border-radius:var(--ck-border-radius);border-radius:calc(var(--ck-border-radius)*.5)}.ck.ck-button.ck-switchbutton .ck-button__toggle .ck-button__toggle__inner{background:var(--ck-color-switch-button-inner-background);height:var(--ck-switch-button-toggle-inner-size);transition:all .3s ease;width:var(--ck-switch-button-toggle-inner-size)}@media (prefers-reduced-motion:reduce){.ck.ck-button.ck-switchbutton .ck-button__toggle .ck-button__toggle__inner{transition:none}}.ck.ck-button.ck-switchbutton .ck-button__toggle:hover{background:var(--ck-color-switch-button-off-hover-background)}.ck.ck-button.ck-switchbutton .ck-button__toggle:hover .ck-button__toggle__inner{box-shadow:var(--ck-switch-button-inner-hover-shadow)}.ck.ck-button.ck-switchbutton.ck-disabled .ck-button__toggle{opacity:var(--ck-disabled-opacity)}.ck.ck-button.ck-switchbutton:focus{border-color:transparent;box-shadow:none;outline:none}.ck.ck-button.ck-switchbutton:focus .ck-button__toggle{box-shadow:0 0 0 1px var(--ck-color-base-background),0 0 0 5px var(--ck-color-focus-outer-shadow);outline:var(--ck-focus-ring);outline-offset:1px}.ck.ck-button.ck-switchbutton.ck-on .ck-button__toggle{background:var(--ck-color-switch-button-on-background)}.ck.ck-button.ck-switchbutton.ck-on .ck-button__toggle:hover{background:var(--ck-color-switch-button-on-hover-background)}[dir=ltr] .ck.ck-button.ck-switchbutton.ck-on .ck-button__toggle .ck-button__toggle__inner{transform:translateX(var( --ck-switch-button-translation ))}[dir=rtl] .ck.ck-button.ck-switchbutton.ck-on .ck-button__toggle .ck-button__toggle__inner{transform:translateX(calc(var( --ck-switch-button-translation )*-1))}","",{version:3,sources:["webpack://./../ckeditor5-ui/theme/components/button/switchbutton.css","webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/button/switchbutton.css","webpack://./../ckeditor5-theme-lark/theme/mixins/_rounded.css","webpack://./../ckeditor5-theme-lark/theme/mixins/_disabled.css"],names:[],mappings:"AASE,4HACC,aACD,CCCF,MAEC,8CAA+C,CAE/C,0DAAgE,CAChE,2HAIC,CACD,0FACD,CAOC,0QAEC,sBAAuB,CADvB,aAED,CAEA,0DAGE,4CAOF,CAVA,0DAQE,2CAEF,CAEA,iDCpCA,eDgFA,CA5CA,yIChCC,qCD4ED,CA5CA,2DAKE,gBAuCF,CA5CA,2DAUE,iBAkCF,CA5CA,iDAkBC,uDAAwD,CAFxD,4BAA6B,CAD7B,iFAAsF,CAEtF,0CA2BD,CAxBC,2ECxDD,eDuEC,CAfA,6LCpDA,qCAAsC,CDsDpC,8CAaF,CAfA,2EAOC,yDAA0D,CAD1D,gDAAiD,CAIjD,uBAA0B,CAL1B,+CAUD,CAHC,uCAZD,2EAaE,eAEF,CADC,CAGD,uDACC,6DAKD,CAHC,iFACC,qDACD,CAIF,6DEpFA,kCFsFA,CAGA,oCACC,wBAAyB,CAEzB,eAAgB,CADhB,YAQD,CALC,uDACC,iGAAmG,CAEnG,4BAA6B,CAD7B,kBAED,CAKA,uDACC,sDAkBD,CAhBC,6DACC,4DACD,CAEA,2FAKE,2DAMF,CAXA,2FASE,oEAEF",sourcesContent:["/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-button.ck-switchbutton {\n\t& .ck-button__toggle {\n\t\tdisplay: block;\n\n\t\t& .ck-button__toggle__inner {\n\t\t\tdisplay: block;\n\t\t}\n\t}\n}\n",'/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "../../../mixins/_rounded.css";\n@import "../../../mixins/_disabled.css";\n@import "@ckeditor/ckeditor5-ui/theme/mixins/_dir.css";\n\n/* Note: To avoid rendering issues (aliasing) but to preserve the responsive nature\nof the component, floating–point numbers have been used which, for the default font size\n(see: --ck-font-size-base), will generate simple integers. */\n:root {\n\t/* 34px at 13px font-size */\n\t--ck-switch-button-toggle-width: 2.6153846154em;\n\t/* 14px at 13px font-size */\n\t--ck-switch-button-toggle-inner-size: calc(1.0769230769em + 1px);\n\t--ck-switch-button-translation: calc(\n\t\tvar(--ck-switch-button-toggle-width) -\n\t\tvar(--ck-switch-button-toggle-inner-size) -\n\t\t2px /* Border */\n\t);\n\t--ck-switch-button-inner-hover-shadow: 0 0 0 5px var(--ck-color-switch-button-inner-shadow);\n}\n\n.ck.ck-button.ck-switchbutton {\n\t/* Unlike a regular button, the switch button text color and background should never change.\n\t * Changing toggle switch (background, outline) is enough to carry the information about the\n\t * state of the entire component (https://github.com/ckeditor/ckeditor5/issues/12519)\n\t */\n\t&, &:hover, &:focus, &:active, &.ck-on:hover, &.ck-on:focus, &.ck-on:active {\n\t\tcolor: inherit;\n\t\tbackground: transparent;\n\t}\n\n\t& .ck-button__label {\n\t\t@mixin ck-dir ltr {\n\t\t\t/* Separate the label from the switch */\n\t\t\tmargin-right: calc(2 * var(--ck-spacing-large));\n\t\t}\n\n\t\t@mixin ck-dir rtl {\n\t\t\t/* Separate the label from the switch */\n\t\t\tmargin-left: calc(2 * var(--ck-spacing-large));\n\t\t}\n\t}\n\n\t& .ck-button__toggle {\n\t\t@mixin ck-rounded-corners;\n\n\t\t@mixin ck-dir ltr {\n\t\t\t/* Make sure the toggle is always to the right as far as possible. */\n\t\t\tmargin-left: auto;\n\t\t}\n\n\t\t@mixin ck-dir rtl {\n\t\t\t/* Make sure the toggle is always to the left as far as possible. */\n\t\t\tmargin-right: auto;\n\t\t}\n\n\t\t/* Apply some smooth transition to the box-shadow and border. */\n\t\t/* Gently animate the background color of the toggle switch */\n\t\ttransition: background 400ms ease, box-shadow .2s ease-in-out, outline .2s ease-in-out;\n\t\tborder: 1px solid transparent;\n\t\twidth: var(--ck-switch-button-toggle-width);\n\t\tbackground: var(--ck-color-switch-button-off-background);\n\n\t\t& .ck-button__toggle__inner {\n\t\t\t@mixin ck-rounded-corners {\n\t\t\t\tborder-radius: calc(.5 * var(--ck-border-radius));\n\t\t\t}\n\n\t\t\twidth: var(--ck-switch-button-toggle-inner-size);\n\t\t\theight: var(--ck-switch-button-toggle-inner-size);\n\t\t\tbackground: var(--ck-color-switch-button-inner-background);\n\n\t\t\t/* Gently animate the inner part of the toggle switch */\n\t\t\ttransition: all 300ms ease;\n\n\t\t\t@media (prefers-reduced-motion: reduce) {\n\t\t\t\ttransition: none;\n\t\t\t}\n\t\t}\n\n\t\t&:hover {\n\t\t\tbackground: var(--ck-color-switch-button-off-hover-background);\n\n\t\t\t& .ck-button__toggle__inner {\n\t\t\t\tbox-shadow: var(--ck-switch-button-inner-hover-shadow);\n\t\t\t}\n\t\t}\n\t}\n\n\t&.ck-disabled .ck-button__toggle {\n\t\t@mixin ck-disabled;\n\t}\n\n\t/* Overriding default .ck-button:focus styles + an outline around the toogle */\n\t&:focus {\n\t\tborder-color: transparent;\n\t\toutline: none;\n\t\tbox-shadow: none;\n\n\t\t& .ck-button__toggle {\n\t\t\tbox-shadow: 0 0 0 1px var(--ck-color-base-background), 0 0 0 5px var(--ck-color-focus-outer-shadow);\n\t\t\toutline-offset: 1px;\n\t\t\toutline: var(--ck-focus-ring);\n\t\t}\n\t}\n\n\t/* stylelint-disable-next-line no-descending-specificity */\n\t&.ck-on {\n\t\t& .ck-button__toggle {\n\t\t\tbackground: var(--ck-color-switch-button-on-background);\n\n\t\t\t&:hover {\n\t\t\t\tbackground: var(--ck-color-switch-button-on-hover-background);\n\t\t\t}\n\n\t\t\t& .ck-button__toggle__inner {\n\t\t\t\t/*\n\t\t\t\t* Move the toggle switch to the right. It will be animated.\n\t\t\t\t*/\n\t\t\t\t@mixin ck-dir ltr {\n\t\t\t\t\ttransform: translateX( var( --ck-switch-button-translation ) );\n\t\t\t\t}\n\n\t\t\t\t@mixin ck-dir rtl {\n\t\t\t\t\ttransform: translateX( calc( -1 * var( --ck-switch-button-translation ) ) );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n',"/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * Implements rounded corner interface for .ck-rounded-corners class.\n *\n * @see $ck-border-radius\n */\n@define-mixin ck-rounded-corners {\n\tborder-radius: 0;\n\n\t@nest .ck-rounded-corners &,\n\t&.ck-rounded-corners {\n\t\tborder-radius: var(--ck-border-radius);\n\t\t@mixin-content;\n\t}\n}\n","/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * A class which indicates that an element holding it is disabled.\n */\n@define-mixin ck-disabled {\n\topacity: var(--ck-disabled-opacity);\n}\n"],sourceRoot:""}]);const a=s},25:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(9372),i=n.n(o),r=n(935),s=n.n(r)()(i());s.push([t.id,".ck.ck-collapsible.ck-collapsible_collapsed>.ck-collapsible__children{display:none}:root{--ck-collapsible-arrow-size:calc(var(--ck-icon-size)*0.5)}.ck.ck-collapsible>.ck.ck-button{border-radius:0;color:inherit;font-weight:700;padding:var(--ck-list-button-padding);width:100%}.ck.ck-collapsible>.ck.ck-button:focus{background:transparent}.ck.ck-collapsible>.ck.ck-button:active,.ck.ck-collapsible>.ck.ck-button:hover:not(:focus),.ck.ck-collapsible>.ck.ck-button:not(:focus){background:transparent;border-color:transparent;box-shadow:none}.ck.ck-collapsible>.ck.ck-button>.ck-icon{margin-right:var(--ck-spacing-medium);width:var(--ck-collapsible-arrow-size)}.ck.ck-collapsible>.ck-collapsible__children{padding:var(--ck-spacing-medium) var(--ck-spacing-large) var(--ck-spacing-large)}.ck.ck-collapsible.ck-collapsible_collapsed>.ck.ck-button .ck-icon{transform:rotate(-90deg)}","",{version:3,sources:["webpack://./../ckeditor5-ui/theme/components/collapsible/collapsible.css","webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/collapsible/collapsible.css"],names:[],mappings:"AAMC,sEACC,YACD,CCHD,MACC,yDACD,CAGC,iCAIC,eAAgB,CAChB,aAAc,CAHd,eAAiB,CACjB,qCAAsC,CAFtC,UAoBD,CAdC,uCACC,sBACD,CAEA,wIACC,sBAAuB,CACvB,wBAAyB,CACzB,eACD,CAEA,0CACC,qCAAsC,CACtC,sCACD,CAGD,6CACC,gFACD,CAGC,mEACC,wBACD",sourcesContent:["/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-collapsible.ck-collapsible_collapsed {\n\t& > .ck-collapsible__children {\n\t\tdisplay: none;\n\t}\n}\n","/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n:root {\n\t--ck-collapsible-arrow-size: calc(0.5 * var(--ck-icon-size));\n}\n\n.ck.ck-collapsible {\n\t& > .ck.ck-button {\n\t\twidth: 100%;\n\t\tfont-weight: bold;\n\t\tpadding: var(--ck-list-button-padding);\n\t\tborder-radius: 0;\n\t\tcolor: inherit;\n\n\t\t&:focus {\n\t\t\tbackground: transparent;\n\t\t}\n\n\t\t&:active, &:not(:focus), &:hover:not(:focus) {\n\t\t\tbackground: transparent;\n\t\t\tborder-color: transparent;\n\t\t\tbox-shadow: none;\n\t\t}\n\n\t\t& > .ck-icon {\n\t\t\tmargin-right: var(--ck-spacing-medium);\n\t\t\twidth: var(--ck-collapsible-arrow-size);\n\t\t}\n\t}\n\n\t& > .ck-collapsible__children {\n\t\tpadding: var(--ck-spacing-medium) var(--ck-spacing-large) var(--ck-spacing-large);\n\t}\n\n\t&.ck-collapsible_collapsed {\n\t\t& > .ck.ck-button .ck-icon {\n\t\t\ttransform: rotate(-90deg);\n\t\t}\n\t}\n}\n"],sourceRoot:""}]);const a=s},7317:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(9372),i=n.n(o),r=n(935),s=n.n(r)()(i());s.push([t.id,".ck.ck-color-grid{display:grid}:root{--ck-color-grid-tile-size:24px;--ck-color-color-grid-check-icon:#166fd4}.ck.ck-color-grid{grid-gap:5px;padding:8px}.ck.ck-color-grid__tile{transition:box-shadow .2s ease}@media (forced-colors:none){.ck.ck-color-grid__tile{border:0;height:var(--ck-color-grid-tile-size);min-height:var(--ck-color-grid-tile-size);min-width:var(--ck-color-grid-tile-size);padding:0;width:var(--ck-color-grid-tile-size)}.ck.ck-color-grid__tile.ck-on,.ck.ck-color-grid__tile:focus:not(.ck-disabled),.ck.ck-color-grid__tile:hover:not(.ck-disabled){border:0}.ck.ck-color-grid__tile.ck-color-selector__color-tile_bordered{box-shadow:0 0 0 1px var(--ck-color-base-border)}.ck.ck-color-grid__tile.ck-on{box-shadow:inset 0 0 0 1px var(--ck-color-base-background),0 0 0 2px var(--ck-color-base-text)}.ck.ck-color-grid__tile:focus:not(.ck-disabled),.ck.ck-color-grid__tile:hover:not(.ck-disabled){box-shadow:inset 0 0 0 1px var(--ck-color-base-background),0 0 0 2px var(--ck-color-focus-border)}}@media (forced-colors:active){.ck.ck-color-grid__tile{height:unset;min-height:unset;min-width:unset;padding:0 var(--ck-spacing-small);width:unset}.ck.ck-color-grid__tile .ck-button__label{display:inline-block}}@media (prefers-reduced-motion:reduce){.ck.ck-color-grid__tile{transition:none}}.ck.ck-color-grid__tile.ck-disabled{cursor:unset;transition:unset}.ck.ck-color-grid__tile .ck.ck-icon{color:var(--ck-color-color-grid-check-icon);display:none}.ck.ck-color-grid__tile.ck-on .ck.ck-icon{display:block}.ck.ck-color-grid__label{padding:0 var(--ck-spacing-standard)}","",{version:3,sources:["webpack://./../ckeditor5-ui/theme/components/colorgrid/colorgrid.css","webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/colorgrid/colorgrid.css","webpack://./../ckeditor5-ui/theme/mixins/_mediacolors.css"],names:[],mappings:"AAKA,kBACC,YACD,CCCA,MACC,8BAA+B,CAK/B,wCACD,CAEA,kBACC,YAAa,CACb,WACD,CAEA,wBACC,8BAkED,CC3EC,4BACC,wBDgBA,QAAS,CAJT,qCAAsC,CAEtC,yCAA0C,CAD1C,wCAAyC,CAEzC,SAAU,CAJV,oCCTA,CDgBA,8HAIC,QACD,CAEA,+DACC,gDACD,CAEA,8BACC,8FACD,CAEA,gGAEC,iGACD,CCjCD,CAZA,8BACC,wBDqDA,YAAa,CAEb,gBAAiB,CADjB,eAAgB,CAEhB,iCAAkC,CAJlC,WClDA,CDwDA,0CACC,oBACD,CCzDD,CD4DA,uCAhDD,wBAiDE,eAkBF,CAjBC,CAEA,oCACC,YAAa,CACb,gBACD,CAEA,oCAEC,2CAA4C,CAD5C,YAED,CAGC,0CACC,aACD,CAIF,yBACC,oCACD",sourcesContent:["/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-color-grid {\n\tdisplay: grid;\n}\n",'/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "../../../mixins/_rounded.css";\n@import "@ckeditor/ckeditor5-ui/theme/mixins/_mediacolors.css";\n\n:root {\n\t--ck-color-grid-tile-size: 24px;\n\n\t/* Not using global colors here because these may change but some colors in a pallette\n\t * require special treatment. For instance, this ensures no matter what the UI text color is,\n\t * the check icon will look good on the black color tile. */\n\t--ck-color-color-grid-check-icon: hsl(212, 81%, 46%);\n}\n\n.ck.ck-color-grid {\n\tgrid-gap: 5px;\n\tpadding: 8px;\n}\n\n.ck.ck-color-grid__tile {\n\ttransition: .2s ease box-shadow;\n\n\t@mixin ck-media-default-colors {\n\t\twidth: var(--ck-color-grid-tile-size);\n\t\theight: var(--ck-color-grid-tile-size);\n\t\tmin-width: var(--ck-color-grid-tile-size);\n\t\tmin-height: var(--ck-color-grid-tile-size);\n\t\tpadding: 0;\n\t\tborder: 0;\n\n\t\t&.ck-on,\n\t\t&:focus:not( .ck-disabled ),\n\t\t&:hover:not( .ck-disabled ) {\n\t\t\t/* Disable the default .ck-button\'s border ring. */\n\t\t\tborder: 0;\n\t\t}\n\n\t\t&.ck-color-selector__color-tile_bordered {\n\t\t\tbox-shadow: 0 0 0 1px var(--ck-color-base-border);\n\t\t}\n\n\t\t&.ck-on {\n\t\t\tbox-shadow: inset 0 0 0 1px var(--ck-color-base-background), 0 0 0 2px var(--ck-color-base-text);\n\t\t}\n\n\t\t&:focus:not( .ck-disabled ),\n\t\t&:hover:not( .ck-disabled ) {\n\t\t\tbox-shadow: inset 0 0 0 1px var(--ck-color-base-background), 0 0 0 2px var(--ck-color-focus-border);\n\t\t}\n\t}\n\n\t/*\n\t * In high contrast mode, the colors are replaced with text labels.\n\t * See https://github.com/ckeditor/ckeditor5/issues/14907.\n\t */\n\t@mixin ck-media-forced-colors {\n\t\twidth: unset;\n\t\theight: unset;\n\t\tmin-width: unset;\n\t\tmin-height: unset;\n\t\tpadding: 0 var(--ck-spacing-small);\n\n\t\t& .ck-button__label {\n\t\t\tdisplay: inline-block;\n\t\t}\n\t}\n\n\t@media (prefers-reduced-motion: reduce) {\n\t\ttransition: none;\n\t}\n\n\t&.ck-disabled {\n\t\tcursor: unset;\n\t\ttransition: unset;\n\t}\n\n\t& .ck.ck-icon {\n\t\tdisplay: none;\n\t\tcolor: var(--ck-color-color-grid-check-icon);\n\t}\n\n\t&.ck-on {\n\t\t& .ck.ck-icon {\n\t\t\tdisplay: block;\n\t\t}\n\t}\n}\n\n.ck.ck-color-grid__label {\n\tpadding: 0 var(--ck-spacing-standard);\n}\n',"/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@define-mixin ck-media-forced-colors {\n\t@media (forced-colors: active) {\n\t\t& {\n\t\t\t@mixin-content;\n\t\t}\n\t}\n}\n\n@define-mixin ck-media-default-colors {\n\t@media (forced-colors: none) {\n\t\t& {\n\t\t\t@mixin-content;\n\t\t}\n\t}\n}\n"],sourceRoot:""}]);const a=s},1905:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(9372),i=n.n(o),r=n(935),s=n.n(r)()(i());s.push([t.id,".color-picker-hex-input{width:max-content}.color-picker-hex-input .ck.ck-input{min-width:unset}.ck.ck-color-picker__row{display:flex;flex-direction:row;flex-wrap:nowrap;justify-content:space-between;margin:var(--ck-spacing-large) 0 0;width:unset}.ck.ck-color-picker__row .ck.ck-labeled-field-view{padding-top:unset}.ck.ck-color-picker__row .ck.ck-input-text{width:unset}.ck.ck-color-picker__row .ck-color-picker__hash-view{padding-right:var(--ck-spacing-medium);padding-top:var(--ck-spacing-tiny)}","",{version:3,sources:["webpack://./../ckeditor5-ui/theme/components/colorpicker/colorpicker.css"],names:[],mappings:"AAKA,wBACC,iBAKD,CAHC,qCACC,eACD,CAGD,yBACC,YAAa,CACb,kBAAmB,CACnB,gBAAiB,CACjB,6BAA8B,CAC9B,kCAAmC,CACnC,WAcD,CAZC,mDACC,iBACD,CAEA,2CACC,WACD,CAEA,qDAEC,sCAAuC,CADvC,kCAED",sourcesContent:["/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.color-picker-hex-input {\n\twidth: max-content;\n\n\t& .ck.ck-input {\n\t\tmin-width: unset;\n\t}\n}\n\n.ck.ck-color-picker__row {\n\tdisplay: flex;\n\tflex-direction: row;\n\tflex-wrap: nowrap;\n\tjustify-content: space-between;\n\tmargin: var(--ck-spacing-large) 0 0;\n\twidth: unset;\n\n\t& .ck.ck-labeled-field-view {\n\t\tpadding-top: unset;\n\t}\n\n\t& .ck.ck-input-text {\n\t\twidth: unset;\n\t}\n\n\t& .ck-color-picker__hash-view {\n\t\tpadding-top: var(--ck-spacing-tiny);\n\t\tpadding-right: var(--ck-spacing-medium);\n\t}\n}\n"],sourceRoot:""}]);const a=s},6309:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(9372),i=n.n(o),r=n(935),s=n.n(r)()(i());s.push([t.id,".ck.ck-color-selector .ck-color-grids-fragment .ck-button.ck-color-selector__color-picker,.ck.ck-color-selector .ck-color-grids-fragment .ck-button.ck-color-selector__remove-color{align-items:center;display:flex}[dir=rtl] .ck.ck-color-selector .ck-color-grids-fragment .ck-button.ck-color-selector__color-picker,[dir=rtl] .ck.ck-color-selector .ck-color-grids-fragment .ck-button.ck-color-selector__remove-color{justify-content:flex-start}.ck.ck-color-selector .ck-color-picker-fragment .ck.ck-color-selector_action-bar{display:flex;flex-direction:row;justify-content:space-around}.ck.ck-color-selector .ck-color-picker-fragment .ck.ck-color-selector_action-bar .ck-button-cancel,.ck.ck-color-selector .ck-color-picker-fragment .ck.ck-color-selector_action-bar .ck-button-save{flex:1}.ck.ck-color-selector .ck-color-grids-fragment .ck-button.ck-color-selector__color-picker,.ck.ck-color-selector .ck-color-grids-fragment .ck-button.ck-color-selector__remove-color{width:100%}.ck.ck-color-selector .ck-color-grids-fragment .ck-button.ck-color-selector__color-picker{border-bottom-left-radius:0;border-bottom-right-radius:0;padding:calc(var(--ck-spacing-standard)/2) var(--ck-spacing-standard)}.ck.ck-color-selector .ck-color-grids-fragment .ck-button.ck-color-selector__color-picker:not(:focus){border-top:1px solid var(--ck-color-base-border)}[dir=ltr] .ck.ck-color-selector .ck-color-grids-fragment .ck-button.ck-color-selector__color-picker .ck.ck-icon{margin-right:var(--ck-spacing-standard)}[dir=rtl] .ck.ck-color-selector .ck-color-grids-fragment .ck-button.ck-color-selector__color-picker .ck.ck-icon{margin-left:var(--ck-spacing-standard)}.ck.ck-color-selector .ck-color-grids-fragment label.ck.ck-color-grid__label{font-weight:unset}.ck.ck-color-selector .ck-color-picker-fragment .ck.ck-color-picker{padding:8px}.ck.ck-color-selector .ck-color-picker-fragment .ck.ck-color-picker .hex-color-picker{height:100px;min-width:180px}.ck.ck-color-selector .ck-color-picker-fragment .ck.ck-color-picker .hex-color-picker::part(saturation){border-radius:var(--ck-border-radius) var(--ck-border-radius) 0 0}.ck.ck-color-selector .ck-color-picker-fragment .ck.ck-color-picker .hex-color-picker::part(hue){border-radius:0 0 var(--ck-border-radius) var(--ck-border-radius)}.ck.ck-color-selector .ck-color-picker-fragment .ck.ck-color-picker .hex-color-picker::part(hue-pointer),.ck.ck-color-selector .ck-color-picker-fragment .ck.ck-color-picker .hex-color-picker::part(saturation-pointer){height:15px;width:15px}.ck.ck-color-selector .ck-color-picker-fragment .ck.ck-color-selector_action-bar{padding:0 8px 8px}","",{version:3,sources:["webpack://./../ckeditor5-ui/theme/components/colorselector/colorselector.css","webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/colorselector/colorselector.css"],names:[],mappings:"AAUE,oLAGC,kBAAmB,CADnB,YAMD,CARA,wMAME,0BAEF,CAKA,iFACC,YAAa,CACb,kBAAmB,CACnB,4BAMD,CAJC,oMAEC,MACD,CCrBD,oLAEC,UACD,CAEA,0FAEC,2BAA4B,CAC5B,4BAA6B,CAF7B,qEAiBD,CAbC,sGACC,gDACD,CAEA,gHAEE,uCAMF,CARA,gHAME,sCAEF,CAGD,6EACC,iBACD,CAKA,oEACC,WAoBD,CAlBC,sFACC,YAAa,CACb,eAeD,CAbC,wGACC,iEACD,CAEA,iGACC,iEACD,CAEA,yNAGC,WAAY,CADZ,UAED,CAIF,iFACC,iBACD",sourcesContent:['/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "@ckeditor/ckeditor5-ui/theme/mixins/_dir.css";\n\n.ck.ck-color-selector {\n\t/* View fragment with color grids. */\n\t& .ck-color-grids-fragment {\n\t\t& .ck-button.ck-color-selector__remove-color,\n\t\t& .ck-button.ck-color-selector__color-picker {\n\t\t\tdisplay: flex;\n\t\t\talign-items: center;\n\n\t\t\t@mixin ck-dir rtl {\n\t\t\t\tjustify-content: flex-start;\n\t\t\t}\n\t\t}\n\t}\n\n\t/* View fragment with a color picker. */\n\t& .ck-color-picker-fragment {\n\t\t& .ck.ck-color-selector_action-bar {\n\t\t\tdisplay: flex;\n\t\t\tflex-direction: row;\n\t\t\tjustify-content: space-around;\n\n\t\t\t& .ck-button-save,\n\t\t\t& .ck-button-cancel {\n\t\t\t\tflex: 1\n\t\t\t}\n\t\t}\n\t}\n}\n','/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "@ckeditor/ckeditor5-ui/theme/mixins/_dir.css";\n\n.ck.ck-color-selector {\n\t/* View fragment with color grids. */\n\t& .ck-color-grids-fragment {\n\t\t& .ck-button.ck-color-selector__remove-color,\n\t\t& .ck-button.ck-color-selector__color-picker {\n\t\t\twidth: 100%;\n\t\t}\n\n\t\t& .ck-button.ck-color-selector__color-picker {\n\t\t\tpadding: calc(var(--ck-spacing-standard) / 2) var(--ck-spacing-standard);\n\t\t\tborder-bottom-left-radius: 0;\n\t\t\tborder-bottom-right-radius: 0;\n\n\t\t\t&:not(:focus) {\n\t\t\t\tborder-top: 1px solid var(--ck-color-base-border);\n\t\t\t}\n\n\t\t\t& .ck.ck-icon {\n\t\t\t\t@mixin ck-dir ltr {\n\t\t\t\t\tmargin-right: var(--ck-spacing-standard);\n\t\t\t\t}\n\n\t\t\t\t@mixin ck-dir rtl {\n\t\t\t\t\tmargin-left: var(--ck-spacing-standard);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t& label.ck.ck-color-grid__label {\n\t\t\tfont-weight: unset;\n\t\t}\n\t}\n\n\t/* View fragment with a color picker. */\n\t& .ck-color-picker-fragment {\n\t\t& .ck.ck-color-picker {\n\t\t\tpadding: 8px;\n\n\t\t\t& .hex-color-picker {\n\t\t\t\theight: 100px;\n\t\t\t\tmin-width: 180px;\n\n\t\t\t\t&::part(saturation) {\n\t\t\t\t\tborder-radius: var(--ck-border-radius) var(--ck-border-radius) 0 0;\n\t\t\t\t}\n\n\t\t\t\t&::part(hue) {\n\t\t\t\t\tborder-radius: 0 0 var(--ck-border-radius) var(--ck-border-radius);\n\t\t\t\t}\n\n\t\t\t\t&::part(saturation-pointer),\n\t\t\t\t&::part(hue-pointer) {\n\t\t\t\t\twidth: 15px;\n\t\t\t\t\theight: 15px;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t& .ck.ck-color-selector_action-bar {\n\t\t\tpadding: 0 8px 8px;\n\t\t}\n\t}\n}\n'],sourceRoot:""}]);const a=s},9819:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(9372),i=n.n(o),r=n(935),s=n.n(r)()(i());s.push([t.id,".ck.ck-dialog-overlay{bottom:0;left:0;overscroll-behavior:none;position:fixed;right:0;top:0;user-select:none}.ck.ck-dialog-overlay.ck-dialog-overlay__transparent{animation:none;background:none;pointer-events:none}.ck.ck-dialog{overscroll-behavior:none;position:absolute;width:fit-content}.ck.ck-dialog .ck.ck-form__header{flex-shrink:0}.ck.ck-dialog .ck.ck-form__header .ck-form__header__label{cursor:grab}.ck.ck-dialog-overlay.ck-dialog-overlay__transparent .ck.ck-dialog{pointer-events:all}:root{--ck-dialog-overlay-background-color:rgba(0,0,0,.5);--ck-dialog-drop-shadow:0px 0px 6px 2px rgba(0,0,0,.15);--ck-dialog-max-width:100vw;--ck-dialog-max-height:90vh;--ck-color-dialog-background:var(--ck-color-base-background);--ck-color-dialog-form-header-border:var(--ck-color-base-border)}.ck.ck-dialog-overlay{animation:ck-dialog-fade-in .3s;background:var(--ck-dialog-overlay-background-color);z-index:var(--ck-z-dialog)}.ck.ck-dialog{border-radius:0}.ck-rounded-corners .ck.ck-dialog,.ck.ck-dialog.ck-rounded-corners{border-radius:var(--ck-border-radius)}.ck.ck-dialog{box-shadow:var(--ck-drop-shadow),0 0;--ck-drop-shadow:var(--ck-dialog-drop-shadow);background:var(--ck-color-dialog-background);border:1px solid var(--ck-color-base-border);max-height:var(--ck-dialog-max-height);max-width:var(--ck-dialog-max-width)}.ck.ck-dialog .ck.ck-form__header{border-bottom:1px solid var(--ck-color-dialog-form-header-border)}@keyframes ck-dialog-fade-in{0%{background:transparent}to{background:var(--ck-dialog-overlay-background-color)}}","",{version:3,sources:["webpack://./../ckeditor5-ui/theme/components/dialog/dialog.css","webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/dialog/dialog.css","webpack://./../ckeditor5-theme-lark/theme/mixins/_rounded.css","webpack://./../ckeditor5-theme-lark/theme/mixins/_shadow.css"],names:[],mappings:"AAKA,sBAKC,QAAS,CACT,MAAO,CAJP,wBAAyB,CAEzB,cAAe,CAGf,OAAQ,CACR,KAAM,CAPN,gBAcD,CALC,qDAEC,cAAe,CACf,eAAgB,CAFhB,mBAGD,CAGD,cACC,wBAAyB,CAEzB,iBAAkB,CADlB,iBAcD,CAXC,kCACC,aAKD,CAHC,0DACC,WACD,CAVF,mEAcE,kBAEF,CC7BA,MACC,mDAA2D,CAC3D,uDAA8D,CAC9D,2BAA4B,CAC5B,2BAA4B,CAC5B,4DAA6D,CAC7D,gEACD,CAEA,sBACC,+BAAgC,CAChC,oDAAqD,CACrD,0BACD,CAEA,cCbC,eD2BD,CAdA,mECTE,qCDuBF,CAdA,cEfC,oCAA8B,CFmB9B,6CAA8C,CAE9C,4CAA6C,CAG7C,4CAA6C,CAF7C,sCAAuC,CACvC,oCAMD,CAHC,kCACC,iEACD,CAGD,6BACC,GACC,sBACD,CAEA,GACC,oDACD,CACD",sourcesContent:["/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-dialog-overlay {\n\tuser-select: none;\n\toverscroll-behavior: none;\n\n\tposition: fixed;\n\tbottom: 0;\n\tleft: 0;\n\tright: 0;\n\ttop: 0;\n\n\t&.ck-dialog-overlay__transparent {\n\t\tpointer-events: none;\n\t\tanimation: none;\n\t\tbackground: none;\n\t}\n}\n\n.ck.ck-dialog {\n\toverscroll-behavior: none;\n\twidth: fit-content;\n\tposition: absolute;\n\n\t& .ck.ck-form__header {\n\t\tflex-shrink: 0;\n\n\t\t& .ck-form__header__label {\n\t\t\tcursor: grab;\n\t\t}\n\t}\n\n\t@nest .ck.ck-dialog-overlay.ck-dialog-overlay__transparent & {\n\t\tpointer-events: all;\n\t}\n}\n",'/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "../../../mixins/_rounded.css";\n@import "../../../mixins/_shadow.css";\n@import "@ckeditor/ckeditor5-ui/theme/mixins/_rwd.css";\n\n:root {\n\t--ck-dialog-overlay-background-color: hsla( 0, 0%, 0%, .5 );\n\t--ck-dialog-drop-shadow: 0px 0px 6px 2px hsl(0deg 0% 0% / 15%);\n\t--ck-dialog-max-width: 100vw;\n\t--ck-dialog-max-height: 90vh;\n\t--ck-color-dialog-background: var(--ck-color-base-background);\n\t--ck-color-dialog-form-header-border: var(--ck-color-base-border);\n}\n\n.ck.ck-dialog-overlay {\n\tanimation: ck-dialog-fade-in .3s;\n\tbackground: var(--ck-dialog-overlay-background-color);\n\tz-index: var(--ck-z-dialog);\n}\n\n.ck.ck-dialog {\n\t@mixin ck-rounded-corners;\n\t@mixin ck-drop-shadow;\n\n\t--ck-drop-shadow: var(--ck-dialog-drop-shadow);\n\n\tbackground: var(--ck-color-dialog-background);\n\tmax-height: var(--ck-dialog-max-height);\n\tmax-width: var(--ck-dialog-max-width);\n\tborder: 1px solid var(--ck-color-base-border);\n\n\t& .ck.ck-form__header {\n\t\tborder-bottom: 1px solid var(--ck-color-dialog-form-header-border);\n\t}\n}\n\n@keyframes ck-dialog-fade-in {\n\t0% {\n\t\tbackground: hsla( 0, 0%, 0%, 0 );\n\t}\n\n\t100% {\n\t\tbackground: var(--ck-dialog-overlay-background-color);\n\t}\n}\n',"/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * Implements rounded corner interface for .ck-rounded-corners class.\n *\n * @see $ck-border-radius\n */\n@define-mixin ck-rounded-corners {\n\tborder-radius: 0;\n\n\t@nest .ck-rounded-corners &,\n\t&.ck-rounded-corners {\n\t\tborder-radius: var(--ck-border-radius);\n\t\t@mixin-content;\n\t}\n}\n","/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * A helper to combine multiple shadows.\n */\n@define-mixin ck-box-shadow $shadowA, $shadowB: 0 0 {\n\tbox-shadow: $shadowA, $shadowB;\n}\n\n/**\n * Gives an element a drop shadow so it looks like a floating panel.\n */\n@define-mixin ck-drop-shadow {\n\t@mixin ck-box-shadow var(--ck-drop-shadow);\n}\n"],sourceRoot:""}]);const a=s},9822:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(9372),i=n.n(o),r=n(935),s=n.n(r)()(i());s.push([t.id,".ck.ck-dialog .ck.ck-dialog__actions{display:flex;justify-content:flex-end;padding:var(--ck-spacing-large)}.ck.ck-dialog .ck.ck-dialog__actions>*+*{margin-left:var(--ck-spacing-large)}","",{version:3,sources:["webpack://./../ckeditor5-ui/theme/components/dialog/dialogactions.css","webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/dialog/dialogactions.css"],names:[],mappings:"AAMC,qCACC,YAAa,CACb,wBAAyB,CCDzB,+BDED,CCAC,yCACC,mCACD",sourcesContent:["/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-dialog {\n\t& .ck.ck-dialog__actions {\n\t\tdisplay: flex;\n\t\tjustify-content: flex-end;\n\t}\n}\n","/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-dialog {\n\t& .ck.ck-dialog__actions {\n\t\tpadding: var(--ck-spacing-large);\n\n\t\t& > * + * {\n\t\t\tmargin-left: var(--ck-spacing-large);\n\t\t}\n\t}\n}\n"],sourceRoot:""}]);const a=s},8149:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(9372),i=n.n(o),r=n(935),s=n.n(r)()(i());s.push([t.id,":root{--ck-dropdown-max-width:75vw}.ck.ck-dropdown{display:inline-block;position:relative}.ck.ck-dropdown .ck-dropdown__arrow{pointer-events:none;z-index:var(--ck-z-default)}.ck.ck-dropdown .ck-button.ck-dropdown__button{width:100%}.ck.ck-dropdown .ck-dropdown__panel{display:none;max-width:var(--ck-dropdown-max-width);position:absolute;z-index:var(--ck-z-panel)}.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel-visible{display:inline-block}.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_n,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_ne,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_nme,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_nmw,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_nw{bottom:100%}.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_s,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_se,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_sme,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_smw,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_sw{bottom:auto;top:100%}.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_ne,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_se{left:0}.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_nw,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_sw{right:0}.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_n,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_s{left:50%;transform:translateX(-50%)}.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_nmw,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_smw{left:75%;transform:translateX(-75%)}.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_nme,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_sme{left:25%;transform:translateX(-25%)}.ck.ck-toolbar .ck-dropdown__panel{z-index:calc(var(--ck-z-panel) + 1)}:root{--ck-dropdown-arrow-size:calc(var(--ck-icon-size)*0.5)}.ck.ck-dropdown{font-size:inherit}.ck.ck-dropdown .ck-dropdown__arrow{width:var(--ck-dropdown-arrow-size)}[dir=ltr] .ck.ck-dropdown .ck-dropdown__arrow{margin-left:var(--ck-spacing-standard);right:var(--ck-spacing-standard)}[dir=rtl] .ck.ck-dropdown .ck-dropdown__arrow{left:var(--ck-spacing-standard);margin-right:var(--ck-spacing-small)}.ck.ck-dropdown.ck-disabled .ck-dropdown__arrow{opacity:var(--ck-disabled-opacity)}[dir=ltr] .ck.ck-dropdown .ck-button.ck-dropdown__button:not(.ck-button_with-text){padding-left:var(--ck-spacing-small)}[dir=rtl] .ck.ck-dropdown .ck-button.ck-dropdown__button:not(.ck-button_with-text){padding-right:var(--ck-spacing-small)}.ck.ck-dropdown .ck-button.ck-dropdown__button .ck-button__label{overflow:hidden;text-overflow:ellipsis;width:7em}.ck.ck-dropdown .ck-button.ck-dropdown__button.ck-disabled .ck-button__label{opacity:var(--ck-disabled-opacity)}.ck.ck-dropdown .ck-button.ck-dropdown__button.ck-on{border-bottom-left-radius:0;border-bottom-right-radius:0}.ck.ck-dropdown .ck-button.ck-dropdown__button.ck-dropdown__button_label-width_auto .ck-button__label{width:auto}.ck.ck-dropdown .ck-button.ck-dropdown__button.ck-off:active,.ck.ck-dropdown .ck-button.ck-dropdown__button.ck-on:active{box-shadow:none}.ck.ck-dropdown .ck-button.ck-dropdown__button.ck-off:active:focus,.ck.ck-dropdown .ck-button.ck-dropdown__button.ck-on:active:focus{box-shadow:var(--ck-focus-outer-shadow),0 0}.ck.ck-dropdown__panel{border-radius:0}.ck-rounded-corners .ck.ck-dropdown__panel,.ck.ck-dropdown__panel.ck-rounded-corners{border-radius:var(--ck-border-radius)}.ck.ck-dropdown__panel{background:var(--ck-color-dropdown-panel-background);border:1px solid var(--ck-color-dropdown-panel-border);bottom:0;box-shadow:var(--ck-drop-shadow),0 0;min-width:100%}.ck.ck-dropdown__panel.ck-dropdown__panel_se{border-top-left-radius:0}.ck.ck-dropdown__panel.ck-dropdown__panel_sw{border-top-right-radius:0}.ck.ck-dropdown__panel.ck-dropdown__panel_ne{border-bottom-left-radius:0}.ck.ck-dropdown__panel.ck-dropdown__panel_nw{border-bottom-right-radius:0}.ck.ck-dropdown__panel:focus{outline:none}","",{version:3,sources:["webpack://./../ckeditor5-ui/theme/components/dropdown/dropdown.css","webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/dropdown/dropdown.css","webpack://./../ckeditor5-theme-lark/theme/mixins/_disabled.css","webpack://./../ckeditor5-theme-lark/theme/mixins/_shadow.css","webpack://./../ckeditor5-theme-lark/theme/mixins/_rounded.css"],names:[],mappings:"AAKA,MACC,4BACD,CAEA,gBACC,oBAAqB,CACrB,iBA2ED,CAzEC,oCACC,mBAAoB,CACpB,2BACD,CAGA,+CACC,UACD,CAEA,oCACC,YAAa,CAEb,sCAAuC,CAEvC,iBAAkB,CAHlB,yBA4DD,CAvDC,+DACC,oBACD,CAEA,mSAKC,WACD,CAEA,mSAUC,WAAY,CADZ,QAED,CAEA,oHAEC,MACD,CAEA,oHAEC,OACD,CAEA,kHAGC,QAAS,CACT,0BACD,CAEA,sHAGC,QAAS,CACT,0BACD,CAEA,sHAGC,QAAS,CACT,0BACD,CAQF,mCACC,mCACD,CCpFA,MACC,sDACD,CAEA,gBAEC,iBA2ED,CAzEC,oCACC,mCACD,CAGC,8CAIC,sCAAuC,CAHvC,gCAID,CAIA,8CACC,+BAAgC,CAGhC,oCACD,CAGD,gDC/BA,kCDiCA,CAIE,mFAEC,oCACD,CAIA,mFAEC,qCACD,CAID,iEAEC,eAAgB,CAChB,sBAAuB,CAFvB,SAGD,CAGA,6EC1DD,kCD4DC,CAGA,qDACC,2BAA4B,CAC5B,4BACD,CAEA,sGACC,UACD,CAGA,yHAEC,eAKD,CAHC,qIE7EF,2CF+EE,CAKH,uBGlFC,eHkHD,CAhCA,qFG9EE,qCH8GF,CAhCA,uBAIC,oDAAqD,CACrD,sDAAuD,CACvD,QAAS,CE1FT,oCAA8B,CF6F9B,cAuBD,CAnBC,6CACC,wBACD,CAEA,6CACC,yBACD,CAEA,6CACC,2BACD,CAEA,6CACC,4BACD,CAEA,6BACC,YACD",sourcesContent:["/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n:root {\n\t--ck-dropdown-max-width: 75vw;\n}\n\n.ck.ck-dropdown {\n\tdisplay: inline-block;\n\tposition: relative;\n\n\t& .ck-dropdown__arrow {\n\t\tpointer-events: none;\n\t\tz-index: var(--ck-z-default);\n\t}\n\n\t/* Dropdown button should span horizontally, e.g. in vertical toolbars */\n\t& .ck-button.ck-dropdown__button {\n\t\twidth: 100%;\n\t}\n\n\t& .ck-dropdown__panel {\n\t\tdisplay: none;\n\t\tz-index: var(--ck-z-panel);\n\t\tmax-width: var(--ck-dropdown-max-width);\n\n\t\tposition: absolute;\n\n\t\t&.ck-dropdown__panel-visible {\n\t\t\tdisplay: inline-block;\n\t\t}\n\n\t\t&.ck-dropdown__panel_ne,\n\t\t&.ck-dropdown__panel_nw,\n\t\t&.ck-dropdown__panel_n,\n\t\t&.ck-dropdown__panel_nmw,\n\t\t&.ck-dropdown__panel_nme {\n\t\t\tbottom: 100%;\n\t\t}\n\n\t\t&.ck-dropdown__panel_se,\n\t\t&.ck-dropdown__panel_sw,\n\t\t&.ck-dropdown__panel_smw,\n\t\t&.ck-dropdown__panel_sme,\n\t\t&.ck-dropdown__panel_s {\n\t\t\t/*\n\t\t\t * Using transform: translate3d( 0, 100%, 0 ) causes blurry dropdown on Chrome 67-78+ on non-retina displays.\n\t\t\t * See https://github.com/ckeditor/ckeditor5/issues/1053.\n\t\t\t */\n\t\t\ttop: 100%;\n\t\t\tbottom: auto;\n\t\t}\n\n\t\t&.ck-dropdown__panel_ne,\n\t\t&.ck-dropdown__panel_se {\n\t\t\tleft: 0px;\n\t\t}\n\n\t\t&.ck-dropdown__panel_nw,\n\t\t&.ck-dropdown__panel_sw {\n\t\t\tright: 0px;\n\t\t}\n\n\t\t&.ck-dropdown__panel_s,\n\t\t&.ck-dropdown__panel_n {\n\t\t\t/* Positioning panels relative to the center of the button */\n\t\t\tleft: 50%;\n\t\t\ttransform: translateX(-50%);\n\t\t}\n\n\t\t&.ck-dropdown__panel_nmw,\n\t\t&.ck-dropdown__panel_smw {\n\t\t\t/* Positioning panels relative to the middle-west of the button */\n\t\t\tleft: 75%;\n\t\t\ttransform: translateX(-75%);\n\t\t}\n\n\t\t&.ck-dropdown__panel_nme,\n\t\t&.ck-dropdown__panel_sme {\n\t\t\t/* Positioning panels relative to the middle-east of the button */\n\t\t\tleft: 25%;\n\t\t\ttransform: translateX(-25%);\n\t\t}\n\t}\n}\n\n/*\n * Toolbar dropdown panels should be always above the UI (eg. other dropdown panels) from the editor's content.\n * See https://github.com/ckeditor/ckeditor5/issues/7874\n */\n.ck.ck-toolbar .ck-dropdown__panel {\n\tz-index: calc( var(--ck-z-panel) + 1 );\n}\n",'/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "../../../mixins/_rounded.css";\n@import "../../../mixins/_disabled.css";\n@import "../../../mixins/_shadow.css";\n@import "@ckeditor/ckeditor5-ui/theme/mixins/_dir.css";\n\n:root {\n\t--ck-dropdown-arrow-size: calc(0.5 * var(--ck-icon-size));\n}\n\n.ck.ck-dropdown {\n\t/* Enable font size inheritance, which allows fluid UI scaling. */\n\tfont-size: inherit;\n\n\t& .ck-dropdown__arrow {\n\t\twidth: var(--ck-dropdown-arrow-size);\n\t}\n\n\t@mixin ck-dir ltr {\n\t\t& .ck-dropdown__arrow {\n\t\t\tright: var(--ck-spacing-standard);\n\n\t\t\t/* A space to accommodate the triangle. */\n\t\t\tmargin-left: var(--ck-spacing-standard);\n\t\t}\n\t}\n\n\t@mixin ck-dir rtl {\n\t\t& .ck-dropdown__arrow {\n\t\t\tleft: var(--ck-spacing-standard);\n\n\t\t\t/* A space to accommodate the triangle. */\n\t\t\tmargin-right: var(--ck-spacing-small);\n\t\t}\n\t}\n\n\t&.ck-disabled .ck-dropdown__arrow {\n\t\t@mixin ck-disabled;\n\t}\n\n\t& .ck-button.ck-dropdown__button {\n\t\t@mixin ck-dir ltr {\n\t\t\t&:not(.ck-button_with-text) {\n\t\t\t\t/* Make sure dropdowns with just an icon have the right inner spacing */\n\t\t\t\tpadding-left: var(--ck-spacing-small);\n\t\t\t}\n\t\t}\n\n\t\t@mixin ck-dir rtl {\n\t\t\t&:not(.ck-button_with-text) {\n\t\t\t\t/* Make sure dropdowns with just an icon have the right inner spacing */\n\t\t\t\tpadding-right: var(--ck-spacing-small);\n\t\t\t}\n\t\t}\n\n\t\t/* #23 */\n\t\t& .ck-button__label {\n\t\t\twidth: 7em;\n\t\t\toverflow: hidden;\n\t\t\ttext-overflow: ellipsis;\n\t\t}\n\n\t\t/* https://github.com/ckeditor/ckeditor5-theme-lark/issues/70 */\n\t\t&.ck-disabled .ck-button__label {\n\t\t\t@mixin ck-disabled;\n\t\t}\n\n\t\t/* https://github.com/ckeditor/ckeditor5/issues/816 */\n\t\t&.ck-on {\n\t\t\tborder-bottom-left-radius: 0;\n\t\t\tborder-bottom-right-radius: 0;\n\t\t}\n\n\t\t&.ck-dropdown__button_label-width_auto .ck-button__label {\n\t\t\twidth: auto;\n\t\t}\n\n\t\t/* https://github.com/ckeditor/ckeditor5/issues/8699 */\n\t\t&.ck-off:active,\n\t\t&.ck-on:active {\n\t\t\tbox-shadow: none;\n\n\t\t\t&:focus {\n\t\t\t\t@mixin ck-box-shadow var(--ck-focus-outer-shadow);\n\t\t\t}\n\t\t}\n\t}\n}\n\n.ck.ck-dropdown__panel {\n\t@mixin ck-rounded-corners;\n\t@mixin ck-drop-shadow;\n\n\tbackground: var(--ck-color-dropdown-panel-background);\n\tborder: 1px solid var(--ck-color-dropdown-panel-border);\n\tbottom: 0;\n\n\t/* Make sure the panel is at least as wide as the drop-down\'s button. */\n\tmin-width: 100%;\n\n\t/* Disabled corner border radius to be consistent with the .dropdown__button\n\thttps://github.com/ckeditor/ckeditor5/issues/816 */\n\t&.ck-dropdown__panel_se {\n\t\tborder-top-left-radius: 0;\n\t}\n\n\t&.ck-dropdown__panel_sw {\n\t\tborder-top-right-radius: 0;\n\t}\n\n\t&.ck-dropdown__panel_ne {\n\t\tborder-bottom-left-radius: 0;\n\t}\n\n\t&.ck-dropdown__panel_nw {\n\t\tborder-bottom-right-radius: 0;\n\t}\n\n\t&:focus {\n\t\toutline: none;\n\t}\n}\n',"/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * A class which indicates that an element holding it is disabled.\n */\n@define-mixin ck-disabled {\n\topacity: var(--ck-disabled-opacity);\n}\n","/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * A helper to combine multiple shadows.\n */\n@define-mixin ck-box-shadow $shadowA, $shadowB: 0 0 {\n\tbox-shadow: $shadowA, $shadowB;\n}\n\n/**\n * Gives an element a drop shadow so it looks like a floating panel.\n */\n@define-mixin ck-drop-shadow {\n\t@mixin ck-box-shadow var(--ck-drop-shadow);\n}\n","/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * Implements rounded corner interface for .ck-rounded-corners class.\n *\n * @see $ck-border-radius\n */\n@define-mixin ck-rounded-corners {\n\tborder-radius: 0;\n\n\t@nest .ck-rounded-corners &,\n\t&.ck-rounded-corners {\n\t\tborder-radius: var(--ck-border-radius);\n\t\t@mixin-content;\n\t}\n}\n"],sourceRoot:""}]);const a=s},3629:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(9372),i=n.n(o),r=n(935),s=n.n(r)()(i());s.push([t.id,".ck.ck-dropdown>.ck-dropdown__panel>.ck-list{border-radius:0}.ck-rounded-corners .ck.ck-dropdown>.ck-dropdown__panel>.ck-list,.ck.ck-dropdown>.ck-dropdown__panel>.ck-list.ck-rounded-corners{border-radius:var(--ck-border-radius);border-top-left-radius:0}.ck.ck-dropdown>.ck-dropdown__panel>.ck-list .ck-list__item:first-child>.ck-button{border-radius:0}.ck-rounded-corners .ck.ck-dropdown>.ck-dropdown__panel>.ck-list .ck-list__item:first-child>.ck-button,.ck.ck-dropdown>.ck-dropdown__panel>.ck-list .ck-list__item:first-child>.ck-button.ck-rounded-corners{border-radius:var(--ck-border-radius);border-bottom-left-radius:0;border-bottom-right-radius:0;border-top-left-radius:0}.ck.ck-dropdown>.ck-dropdown__panel>.ck-list .ck-list__item:last-child>.ck-button{border-radius:0}.ck-rounded-corners .ck.ck-dropdown>.ck-dropdown__panel>.ck-list .ck-list__item:last-child>.ck-button,.ck.ck-dropdown>.ck-dropdown__panel>.ck-list .ck-list__item:last-child>.ck-button.ck-rounded-corners{border-radius:var(--ck-border-radius);border-top-left-radius:0;border-top-right-radius:0}","",{version:3,sources:["webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/dropdown/listdropdown.css","webpack://./../ckeditor5-theme-lark/theme/mixins/_rounded.css"],names:[],mappings:"AAOA,6CCIC,eDqBD,CAzBA,iICQE,qCAAsC,CDJtC,wBAqBF,CAfE,mFCND,eDYC,CANA,6MCFA,qCAAsC,CDKpC,2BAA4B,CAC5B,4BAA6B,CAF7B,wBAIF,CAEA,kFCdD,eDmBC,CALA,2MCVA,qCAAsC,CDYpC,wBAAyB,CACzB,yBAEF",sourcesContent:['/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "../../../mixins/_rounded.css";\n\n.ck.ck-dropdown > .ck-dropdown__panel > .ck-list {\n\t/* Disabled radius of top-left border to be consistent with .dropdown__button\n\thttps://github.com/ckeditor/ckeditor5/issues/816 */\n\t@mixin ck-rounded-corners {\n\t\tborder-top-left-radius: 0;\n\t}\n\n\t/* Make sure the button belonging to the first/last child of the list goes well with the\n\tborder radius of the entire panel. */\n\t& .ck-list__item {\n\t\t&:first-child > .ck-button {\n\t\t\t@mixin ck-rounded-corners {\n\t\t\t\tborder-top-left-radius: 0;\n\t\t\t\tborder-bottom-left-radius: 0;\n\t\t\t\tborder-bottom-right-radius: 0;\n\t\t\t}\n\t\t}\n\n\t\t&:last-child > .ck-button {\n\t\t\t@mixin ck-rounded-corners {\n\t\t\t\tborder-top-left-radius: 0;\n\t\t\t\tborder-top-right-radius: 0;\n\t\t\t}\n\t\t}\n\t}\n}\n',"/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * Implements rounded corner interface for .ck-rounded-corners class.\n *\n * @see $ck-border-radius\n */\n@define-mixin ck-rounded-corners {\n\tborder-radius: 0;\n\n\t@nest .ck-rounded-corners &,\n\t&.ck-rounded-corners {\n\t\tborder-radius: var(--ck-border-radius);\n\t\t@mixin-content;\n\t}\n}\n"],sourceRoot:""}]);const a=s},1792:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(9372),i=n.n(o),r=n(935),s=n.n(r)()(i());s.push([t.id,'.ck.ck-splitbutton{font-size:inherit}.ck.ck-splitbutton .ck-splitbutton__action:focus{z-index:calc(var(--ck-z-default) + 1)}:root{--ck-color-split-button-hover-background:#ebebeb;--ck-color-split-button-hover-border:#b3b3b3}[dir=ltr] .ck.ck-splitbutton.ck-splitbutton_open>.ck-splitbutton__action,[dir=ltr] .ck.ck-splitbutton:hover>.ck-splitbutton__action{border-bottom-right-radius:unset;border-top-right-radius:unset}[dir=rtl] .ck.ck-splitbutton.ck-splitbutton_open>.ck-splitbutton__action,[dir=rtl] .ck.ck-splitbutton:hover>.ck-splitbutton__action{border-bottom-left-radius:unset;border-top-left-radius:unset}.ck.ck-splitbutton>.ck-splitbutton__arrow{min-width:unset}[dir=ltr] .ck.ck-splitbutton>.ck-splitbutton__arrow{border-bottom-left-radius:unset;border-top-left-radius:unset}[dir=rtl] .ck.ck-splitbutton>.ck-splitbutton__arrow{border-bottom-right-radius:unset;border-top-right-radius:unset}.ck.ck-splitbutton>.ck-splitbutton__arrow svg{width:var(--ck-dropdown-arrow-size)}.ck.ck-splitbutton>.ck-splitbutton__arrow:not(:focus){border-bottom-width:0;border-top-width:0}.ck.ck-splitbutton.ck-splitbutton_open>.ck-button:not(.ck-on):not(.ck-disabled):not(:hover),.ck.ck-splitbutton:hover>.ck-button:not(.ck-on):not(.ck-disabled):not(:hover){background:var(--ck-color-split-button-hover-background)}.ck.ck-splitbutton.ck-splitbutton_open>.ck-splitbutton__arrow:not(.ck-disabled):after,.ck.ck-splitbutton:hover>.ck-splitbutton__arrow:not(.ck-disabled):after{background-color:var(--ck-color-split-button-hover-border);content:"";height:100%;position:absolute;width:1px}.ck.ck-splitbutton.ck-splitbutton_open>.ck-splitbutton__arrow:focus:after,.ck.ck-splitbutton:hover>.ck-splitbutton__arrow:focus:after{--ck-color-split-button-hover-border:var(--ck-color-focus-border)}[dir=ltr] .ck.ck-splitbutton.ck-splitbutton_open>.ck-splitbutton__arrow:not(.ck-disabled):after,[dir=ltr] .ck.ck-splitbutton:hover>.ck-splitbutton__arrow:not(.ck-disabled):after{left:-1px}[dir=rtl] .ck.ck-splitbutton.ck-splitbutton_open>.ck-splitbutton__arrow:not(.ck-disabled):after,[dir=rtl] .ck.ck-splitbutton:hover>.ck-splitbutton__arrow:not(.ck-disabled):after{right:-1px}.ck.ck-splitbutton.ck-splitbutton_open{border-radius:0}.ck-rounded-corners .ck.ck-splitbutton.ck-splitbutton_open,.ck.ck-splitbutton.ck-splitbutton_open.ck-rounded-corners{border-radius:var(--ck-border-radius)}.ck-rounded-corners .ck.ck-splitbutton.ck-splitbutton_open>.ck-splitbutton__action,.ck.ck-splitbutton.ck-splitbutton_open.ck-rounded-corners>.ck-splitbutton__action{border-bottom-left-radius:0}.ck-rounded-corners .ck.ck-splitbutton.ck-splitbutton_open>.ck-splitbutton__arrow,.ck.ck-splitbutton.ck-splitbutton_open.ck-rounded-corners>.ck-splitbutton__arrow{border-bottom-right-radius:0}',"",{version:3,sources:["webpack://./../ckeditor5-ui/theme/components/dropdown/splitbutton.css","webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/dropdown/splitbutton.css","webpack://./../ckeditor5-theme-lark/theme/mixins/_rounded.css"],names:[],mappings:"AAKA,mBAEC,iBAKD,CAHC,iDACC,qCACD,CCJD,MACC,gDAAyD,CACzD,4CACD,CAMC,oIAKE,gCAAiC,CADjC,6BASF,CAbA,oIAWE,+BAAgC,CADhC,4BAGF,CAEA,0CAGC,eAiBD,CApBA,oDAQE,+BAAgC,CADhC,4BAaF,CApBA,oDAcE,gCAAiC,CADjC,6BAOF,CAHC,8CACC,mCACD,CAKD,sDAEC,qBAAwB,CADxB,kBAED,CAQC,0KACC,wDACD,CAIA,8JAKC,0DAA2D,CAJ3D,UAAW,CAGX,WAAY,CAFZ,iBAAkB,CAClB,SAGD,CAGA,sIACC,iEACD,CAGC,kLACC,SACD,CAIA,kLACC,UACD,CAMF,uCCzFA,eDmGA,CAVA,qHCrFC,qCD+FD,CARE,qKACC,2BACD,CAEA,mKACC,4BACD",sourcesContent:["/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-splitbutton {\n\t/* Enable font size inheritance, which allows fluid UI scaling. */\n\tfont-size: inherit;\n\n\t& .ck-splitbutton__action:focus {\n\t\tz-index: calc(var(--ck-z-default) + 1);\n\t}\n}\n\n",'/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "../../../mixins/_rounded.css";\n\n:root {\n\t--ck-color-split-button-hover-background: hsl(0, 0%, 92%);\n\t--ck-color-split-button-hover-border: hsl(0, 0%, 70%);\n}\n\n.ck.ck-splitbutton {\n\t/*\n\t * Note: ck-rounded and ck-dir mixins don\'t go together (because they both use @nest).\n\t */\n\t&:hover > .ck-splitbutton__action,\n\t&.ck-splitbutton_open > .ck-splitbutton__action {\n\t\t@nest [dir="ltr"] & {\n\t\t\t/* Don\'t round the action button on the right side */\n\t\t\tborder-top-right-radius: unset;\n\t\t\tborder-bottom-right-radius: unset;\n\t\t}\n\n\t\t@nest [dir="rtl"] & {\n\t\t\t/* Don\'t round the action button on the left side */\n\t\t\tborder-top-left-radius: unset;\n\t\t\tborder-bottom-left-radius: unset;\n\t\t}\n\t}\n\n\t& > .ck-splitbutton__arrow {\n\t\t/* It\'s a text-less button and since the icon is positioned absolutely in such situation,\n\t\tit must get some arbitrary min-width. */\n\t\tmin-width: unset;\n\n\t\t@nest [dir="ltr"] & {\n\t\t\t/* Don\'t round the arrow button on the left side */\n\t\t\tborder-top-left-radius: unset;\n\t\t\tborder-bottom-left-radius: unset;\n\t\t}\n\n\t\t@nest [dir="rtl"] & {\n\t\t\t/* Don\'t round the arrow button on the right side */\n\t\t\tborder-top-right-radius: unset;\n\t\t\tborder-bottom-right-radius: unset;\n\t\t}\n\n\t\t& svg {\n\t\t\twidth: var(--ck-dropdown-arrow-size);\n\t\t}\n\t}\n\n\t/* Make sure the divider stretches 100% height of the button\n\thttps://github.com/ckeditor/ckeditor5/issues/10936 */\n\t& > .ck-splitbutton__arrow:not(:focus) {\n\t\tborder-top-width: 0px;\n\t\tborder-bottom-width: 0px;\n\t}\n\n\t/* When the split button is "open" (the arrow is on) or being hovered, it should get some styling\n\tas a whole. The background of both buttons should stand out and there should be a visual\n\tseparation between both buttons. */\n\t&.ck-splitbutton_open,\n\t&:hover {\n\t\t/* When the split button hovered as a whole, not as individual buttons. */\n\t\t& > .ck-button:not(.ck-on):not(.ck-disabled):not(:hover) {\n\t\t\tbackground: var(--ck-color-split-button-hover-background);\n\t\t}\n\n\t\t/* Splitbutton separator needs to be set with the ::after pseudoselector\n\t\tto display properly the borders on focus */\n\t\t& > .ck-splitbutton__arrow:not(.ck-disabled)::after {\n\t\t\tcontent: \'\';\n\t\t\tposition: absolute;\n\t\t\twidth: 1px;\n\t\t\theight: 100%;\n\t\t\tbackground-color: var(--ck-color-split-button-hover-border);\n\t\t}\n\n\t\t/* Make sure the divider between the buttons looks fine when the button is focused */\n\t\t& > .ck-splitbutton__arrow:focus::after {\n\t\t\t--ck-color-split-button-hover-border: var(--ck-color-focus-border);\n\t\t}\n\n\t\t@nest [dir="ltr"] & {\n\t\t\t& > .ck-splitbutton__arrow:not(.ck-disabled)::after {\n\t\t\t\tleft: -1px;\n\t\t\t}\n\t\t}\n\n\t\t@nest [dir="rtl"] & {\n\t\t\t& > .ck-splitbutton__arrow:not(.ck-disabled)::after {\n\t\t\t\tright: -1px;\n\t\t\t}\n\t\t}\n\t}\n\n\t/* Don\'t round the bottom left and right corners of the buttons when "open"\n\thttps://github.com/ckeditor/ckeditor5/issues/816 */\n\t&.ck-splitbutton_open {\n\t\t@mixin ck-rounded-corners {\n\t\t\t& > .ck-splitbutton__action {\n\t\t\t\tborder-bottom-left-radius: 0;\n\t\t\t}\n\n\t\t\t& > .ck-splitbutton__arrow {\n\t\t\t\tborder-bottom-right-radius: 0;\n\t\t\t}\n\t\t}\n\t}\n}\n',"/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * Implements rounded corner interface for .ck-rounded-corners class.\n *\n * @see $ck-border-radius\n */\n@define-mixin ck-rounded-corners {\n\tborder-radius: 0;\n\n\t@nest .ck-rounded-corners &,\n\t&.ck-rounded-corners {\n\t\tborder-radius: var(--ck-border-radius);\n\t\t@mixin-content;\n\t}\n}\n"],sourceRoot:""}]);const a=s},1666:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(9372),i=n.n(o),r=n(935),s=n.n(r)()(i());s.push([t.id,":root{--ck-toolbar-dropdown-max-width:60vw}.ck.ck-toolbar-dropdown>.ck-dropdown__panel{max-width:var(--ck-toolbar-dropdown-max-width);width:max-content}.ck.ck-toolbar-dropdown>.ck-dropdown__panel .ck-button:focus{z-index:calc(var(--ck-z-default) + 1)}.ck.ck-toolbar-dropdown .ck-toolbar{border:0}","",{version:3,sources:["webpack://./../ckeditor5-ui/theme/components/dropdown/toolbardropdown.css","webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/dropdown/toolbardropdown.css"],names:[],mappings:"AAKA,MACC,oCACD,CAEA,4CAGC,8CAA+C,CAD/C,iBAQD,CAJE,6DACC,qCACD,CCZF,oCACC,QACD",sourcesContent:["/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n:root {\n\t--ck-toolbar-dropdown-max-width: 60vw;\n}\n\n.ck.ck-toolbar-dropdown > .ck-dropdown__panel {\n\t/* https://github.com/ckeditor/ckeditor5/issues/5586 */\n\twidth: max-content;\n\tmax-width: var(--ck-toolbar-dropdown-max-width);\n\n\t& .ck-button {\n\t\t&:focus {\n\t\t\tz-index: calc(var(--ck-z-default) + 1);\n\t\t}\n\t}\n}\n","/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-toolbar-dropdown .ck-toolbar {\n\tborder: 0;\n}\n"],sourceRoot:""}]);const a=s},8527:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(9372),i=n.n(o),r=n(935),s=n.n(r)()(i());s.push([t.id,":root{--ck-accessibility-help-dialog-max-width:600px;--ck-accessibility-help-dialog-max-height:400px;--ck-accessibility-help-dialog-border-color:#ccced1;--ck-accessibility-help-dialog-code-background-color:#ededed;--ck-accessibility-help-dialog-kbd-shadow-color:#9c9c9c}.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content{border:1px solid transparent;max-height:var(--ck-accessibility-help-dialog-max-height);max-width:var(--ck-accessibility-help-dialog-max-width);overflow:auto;padding:var(--ck-spacing-large);user-select:text}.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content:focus{border:var(--ck-focus-ring);box-shadow:var(--ck-focus-outer-shadow),0 0;outline:none}.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content{*{white-space:normal}}.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content .ck-label{display:none}.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content h3{font-size:1.2em;font-weight:700}.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content h4{font-size:1em;font-weight:700}.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content h3,.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content h4,.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content p,.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content table{margin:1em 0}.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content dl{border-bottom:none;border-top:1px solid var(--ck-accessibility-help-dialog-border-color);display:grid;grid-template-columns:2fr 1fr}.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content dl dd,.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content dl dt{border-bottom:1px solid var(--ck-accessibility-help-dialog-border-color);padding:.4em 0}.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content dl dt{grid-column-start:1}.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content dl dd{grid-column-start:2;text-align:right}.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content code,.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content kbd{background:var(--ck-accessibility-help-dialog-code-background-color);border-radius:2px;display:inline-block;font-size:.9em;line-height:1;padding:.4em;text-align:center;vertical-align:middle}.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content code{font-family:monospace}.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content kbd{box-shadow:0 1px 1px var(--ck-accessibility-help-dialog-kbd-shadow-color);margin:0 1px;min-width:1.8em}.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content kbd+kbd{margin-left:2px}","",{version:3,sources:["webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/editorui/accessibilityhelp.css","webpack://./../ckeditor5-theme-lark/theme/mixins/_focus.css","webpack://./../ckeditor5-theme-lark/theme/mixins/_shadow.css"],names:[],mappings:"AAQA,MACC,8CAA+C,CAC/C,+CAAgD,CAChD,mDAA8D,CAC9D,4DAAyE,CACzE,uDACD,CAEA,wEAOC,4BAA6B,CAJ7B,yDAA0D,CAD1D,uDAAwD,CAExD,aAAc,CAHd,+BAAgC,CAIhC,gBAgFD,CA5EC,8ECdA,2BAA2B,CCF3B,2CAA8B,CDC9B,YDkBA,CAZD,wEAcC,EACC,kBACD,CAqED,CAlEC,kFACC,YACD,CAEA,2EAEC,eAAgB,CADhB,eAED,CAEA,2EAEC,aAAc,CADd,eAED,CAEA,8SAIC,YACD,CAEA,2EAIC,kBAAmB,CADnB,qEAAsE,CAFtE,YAAa,CACb,6BAiBD,CAbC,4JACC,wEAAyE,CACzE,cACD,CAEA,8EACC,mBACD,CAEA,8EACC,mBAAoB,CACpB,gBACD,CAGD,yJAEC,oEAAqE,CAIrE,iBAAkB,CALlB,oBAAqB,CAOrB,cAAe,CAHf,aAAc,CAFd,YAAa,CAIb,iBAAkB,CAHlB,qBAKD,CAEA,6EACC,qBACD,CAEA,4EAEC,yEAA4E,CAC5E,YAAa,CAFb,eAOD,CAHC,gFACC,eACD",sourcesContent:['/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "../../../mixins/_focus.css";\n@import "../../../mixins/_shadow.css";\n\n:root {\n\t--ck-accessibility-help-dialog-max-width: 600px;\n\t--ck-accessibility-help-dialog-max-height: 400px;\n\t--ck-accessibility-help-dialog-border-color: hsl(220, 6%, 81%);\n\t--ck-accessibility-help-dialog-code-background-color: hsl(0deg 0% 92.94%);\n\t--ck-accessibility-help-dialog-kbd-shadow-color: hsl(0deg 0% 61%);\n}\n\n.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content {\n\tpadding: var(--ck-spacing-large);\n\tmax-width: var(--ck-accessibility-help-dialog-max-width);\n\tmax-height: var(--ck-accessibility-help-dialog-max-height);\n\toverflow: auto;\n\tuser-select: text;\n\n\tborder: 1px solid transparent;\n\n\t&:focus {\n\t\t@mixin ck-focus-ring;\n\t\t@mixin ck-box-shadow var(--ck-focus-outer-shadow);\n\t}\n\n\t* {\n\t\twhite-space: normal;\n\t}\n\n\t/* Hide the main label of the content container. */\n\t& .ck-label {\n\t\tdisplay: none;\n\t}\n\n\t& h3 {\n\t\tfont-weight: bold;\n\t\tfont-size: 1.2em;\n\t}\n\n\t& h4 {\n\t\tfont-weight: bold;\n\t\tfont-size: 1em;\n\t}\n\n\t& p,\n\t& h3,\n\t& h4,\n\t& table {\n\t\tmargin: 1em 0;\n\t}\n\n\t& dl {\n\t\tdisplay: grid;\n\t\tgrid-template-columns: 2fr 1fr;\n\t\tborder-top: 1px solid var(--ck-accessibility-help-dialog-border-color);\n\t\tborder-bottom: none;\n\n\t\t& dt, & dd {\n\t\t\tborder-bottom: 1px solid var(--ck-accessibility-help-dialog-border-color);\n\t\t\tpadding: .4em 0;\n\t\t}\n\n\t\t& dt {\n\t\t\tgrid-column-start: 1;\n\t\t}\n\n\t\t& dd {\n\t\t\tgrid-column-start: 2;\n\t\t\ttext-align: right;\n\t\t}\n\t}\n\n\t& kbd, & code {\n\t\tdisplay: inline-block;\n\t\tbackground: var(--ck-accessibility-help-dialog-code-background-color);\n\t\tpadding: .4em;\n\t\tvertical-align: middle;\n\t\tline-height: 1;\n\t\tborder-radius: 2px;\n\t\ttext-align: center;\n\t\tfont-size: .9em;\n\t}\n\n\t& code {\n\t\tfont-family: monospace;\n\t}\n\n\t& kbd {\n\t\tmin-width: 1.8em;\n\t\tbox-shadow: 0px 1px 1px var(--ck-accessibility-help-dialog-kbd-shadow-color);\n\t\tmargin: 0 1px;\n\n\t\t& + kbd {\n\t\t\tmargin-left: 2px;\n\t\t}\n\t}\n}\n\n',"/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * A visual style of focused element's border.\n */\n@define-mixin ck-focus-ring {\n\t/* Disable native outline. */\n\toutline: none;\n\tborder: var(--ck-focus-ring)\n}\n","/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * A helper to combine multiple shadows.\n */\n@define-mixin ck-box-shadow $shadowA, $shadowB: 0 0 {\n\tbox-shadow: $shadowA, $shadowB;\n}\n\n/**\n * Gives an element a drop shadow so it looks like a floating panel.\n */\n@define-mixin ck-drop-shadow {\n\t@mixin ck-box-shadow var(--ck-drop-shadow);\n}\n"],sourceRoot:""}]);const a=s},1185:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(9372),i=n.n(o),r=n(935),s=n.n(r)()(i());s.push([t.id,":root{--ck-color-editable-blur-selection:#d9d9d9}.ck.ck-editor__editable:not(.ck-editor__nested-editable){border-radius:0}.ck-rounded-corners .ck.ck-editor__editable:not(.ck-editor__nested-editable),.ck.ck-editor__editable.ck-rounded-corners:not(.ck-editor__nested-editable){border-radius:var(--ck-border-radius)}.ck.ck-editor__editable.ck-focused:not(.ck-editor__nested-editable){border:var(--ck-focus-ring);box-shadow:var(--ck-inner-shadow),0 0;outline:none}.ck.ck-editor__editable_inline{border:1px solid transparent;overflow:auto;padding:0 var(--ck-spacing-standard)}.ck.ck-editor__editable_inline[dir=ltr]{text-align:left}.ck.ck-editor__editable_inline[dir=rtl]{text-align:right}.ck.ck-editor__editable_inline>:first-child{margin-top:var(--ck-spacing-large)}.ck.ck-editor__editable_inline>:last-child{margin-bottom:var(--ck-spacing-large)}.ck.ck-editor__editable_inline.ck-blurred ::selection{background:var(--ck-color-editable-blur-selection)}.ck.ck-balloon-panel.ck-toolbar-container[class*=arrow_n]:after{border-bottom-color:var(--ck-color-panel-background)}.ck.ck-balloon-panel.ck-toolbar-container[class*=arrow_s]:after{border-top-color:var(--ck-color-panel-background)}","",{version:3,sources:["webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/editorui/editorui.css","webpack://./../ckeditor5-theme-lark/theme/mixins/_rounded.css","webpack://./../ckeditor5-theme-lark/theme/mixins/_focus.css","webpack://./../ckeditor5-theme-lark/theme/mixins/_shadow.css"],names:[],mappings:"AAWA,MACC,0CACD,CAEA,yDCJC,eDWD,CAPA,yJCAE,qCDOF,CAJC,oEEPA,2BAA2B,CCF3B,qCAA8B,CDC9B,YFWA,CAGD,+BAGC,4BAA6B,CAF7B,aAAc,CACd,oCA6BD,CA1BC,wCACC,eACD,CAEA,wCACC,gBACD,CAGA,4CACC,kCACD,CAGA,2CAKC,qCACD,CAGA,sDACC,kDACD,CAKA,gEACC,oDACD,CAIA,gEACC,iDACD",sourcesContent:['/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "../../../mixins/_rounded.css";\n@import "../../../mixins/_disabled.css";\n@import "../../../mixins/_shadow.css";\n@import "../../../mixins/_focus.css";\n@import "../../mixins/_button.css";\n\n:root {\n\t--ck-color-editable-blur-selection: hsl(0, 0%, 85%);\n}\n\n.ck.ck-editor__editable:not(.ck-editor__nested-editable) {\n\t@mixin ck-rounded-corners;\n\n\t&.ck-focused {\n\t\t@mixin ck-focus-ring;\n\t\t@mixin ck-box-shadow var(--ck-inner-shadow);\n\t}\n}\n\n.ck.ck-editor__editable_inline {\n\toverflow: auto;\n\tpadding: 0 var(--ck-spacing-standard);\n\tborder: 1px solid transparent;\n\n\t&[dir="ltr"] {\n\t\ttext-align: left;\n\t}\n\n\t&[dir="rtl"] {\n\t\ttext-align: right;\n\t}\n\n\t/* https://github.com/ckeditor/ckeditor5-theme-lark/issues/116 */\n\t& > *:first-child {\n\t\tmargin-top: var(--ck-spacing-large);\n\t}\n\n\t/* https://github.com/ckeditor/ckeditor5/issues/847 */\n\t& > *:last-child {\n\t\t/*\n\t\t * This value should match with the default margins of the block elements (like .media or .image)\n\t\t * to avoid a content jumping when the fake selection container shows up (See https://github.com/ckeditor/ckeditor5/issues/9825).\n\t\t */\n\t\tmargin-bottom: var(--ck-spacing-large);\n\t}\n\n\t/* https://github.com/ckeditor/ckeditor5/issues/6517 */\n\t&.ck-blurred ::selection {\n\t\tbackground: var(--ck-color-editable-blur-selection);\n\t}\n}\n\n/* https://github.com/ckeditor/ckeditor5-theme-lark/issues/111 */\n.ck.ck-balloon-panel.ck-toolbar-container[class*="arrow_n"] {\n\t&::after {\n\t\tborder-bottom-color: var(--ck-color-panel-background);\n\t}\n}\n\n.ck.ck-balloon-panel.ck-toolbar-container[class*="arrow_s"] {\n\t&::after {\n\t\tborder-top-color: var(--ck-color-panel-background);\n\t}\n}\n',"/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * Implements rounded corner interface for .ck-rounded-corners class.\n *\n * @see $ck-border-radius\n */\n@define-mixin ck-rounded-corners {\n\tborder-radius: 0;\n\n\t@nest .ck-rounded-corners &,\n\t&.ck-rounded-corners {\n\t\tborder-radius: var(--ck-border-radius);\n\t\t@mixin-content;\n\t}\n}\n","/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * A visual style of focused element's border.\n */\n@define-mixin ck-focus-ring {\n\t/* Disable native outline. */\n\toutline: none;\n\tborder: var(--ck-focus-ring)\n}\n","/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * A helper to combine multiple shadows.\n */\n@define-mixin ck-box-shadow $shadowA, $shadowB: 0 0 {\n\tbox-shadow: $shadowA, $shadowB;\n}\n\n/**\n * Gives an element a drop shadow so it looks like a floating panel.\n */\n@define-mixin ck-drop-shadow {\n\t@mixin ck-box-shadow var(--ck-drop-shadow);\n}\n"],sourceRoot:""}]);const a=s},7913:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(9372),i=n.n(o),r=n(935),s=n.n(r)()(i());s.push([t.id,".ck.ck-form__header{align-items:center;display:flex;flex-direction:row;flex-wrap:nowrap;justify-content:space-between}.ck.ck-form__header h2.ck-form__header__label{flex-grow:1}:root{--ck-form-header-height:44px}.ck.ck-form__header{border-bottom:1px solid var(--ck-color-base-border);height:var(--ck-form-header-height);line-height:var(--ck-form-header-height);padding:var(--ck-spacing-small) var(--ck-spacing-large)}[dir=ltr] .ck.ck-form__header>.ck-icon{margin-right:var(--ck-spacing-medium)}[dir=rtl] .ck.ck-form__header>.ck-icon{margin-left:var(--ck-spacing-medium)}.ck.ck-form__header .ck-form__header__label{--ck-font-size-base:15px;font-weight:700}","",{version:3,sources:["webpack://./../ckeditor5-ui/theme/components/formheader/formheader.css","webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/formheader/formheader.css"],names:[],mappings:"AAKA,oBAIC,kBAAmB,CAHnB,YAAa,CACb,kBAAmB,CACnB,gBAAiB,CAEjB,6BAKD,CAHC,8CACC,WACD,CCPD,MACC,4BACD,CAEA,oBAIC,mDAAoD,CAFpD,mCAAoC,CACpC,wCAAyC,CAFzC,uDAmBD,CAdC,uCAEE,qCAMF,CARA,uCAME,oCAEF,CAEA,4CACC,wBAAyB,CACzB,eACD",sourcesContent:["/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-form__header {\n\tdisplay: flex;\n\tflex-direction: row;\n\tflex-wrap: nowrap;\n\talign-items: center;\n\tjustify-content: space-between;\n\n\t& h2.ck-form__header__label {\n\t\tflex-grow: 1;\n\t}\n}\n",'/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "@ckeditor/ckeditor5-ui/theme/mixins/_dir.css";\n\n:root {\n\t--ck-form-header-height: 44px;\n}\n\n.ck.ck-form__header {\n\tpadding: var(--ck-spacing-small) var(--ck-spacing-large);\n\theight: var(--ck-form-header-height);\n\tline-height: var(--ck-form-header-height);\n\tborder-bottom: 1px solid var(--ck-color-base-border);\n\n\t& > .ck-icon {\n\t\t@mixin ck-dir ltr {\n\t\t\tmargin-right: var(--ck-spacing-medium);\n\t\t}\n\n\t\t@mixin ck-dir rtl {\n\t\t\tmargin-left: var(--ck-spacing-medium);\n\t\t}\n\t}\n\n\t& .ck-form__header__label {\n\t\t--ck-font-size-base: 15px;\n\t\tfont-weight: bold;\n\t}\n}\n'],sourceRoot:""}]);const a=s},9529:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(9372),i=n.n(o),r=n(935),s=n.n(r)()(i());s.push([t.id,".ck.ck-highlighted-text mark{background:var(--ck-color-highlight-background);font-size:inherit;font-weight:inherit;line-height:inherit;vertical-align:initial}","",{version:3,sources:["webpack://./../ckeditor5-ui/theme/components/highlightedtext/highlightedtext.css"],names:[],mappings:"AAKA,6BACC,+CAAgD,CAIhD,iBAAkB,CAFlB,mBAAoB,CACpB,mBAAoB,CAFpB,sBAID",sourcesContent:["/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-highlighted-text mark {\n\tbackground: var(--ck-color-highlight-background);\n\tvertical-align: initial;\n\tfont-weight: inherit;\n\tline-height: inherit;\n\tfont-size: inherit;\n}\n"],sourceRoot:""}]);const a=s},7621:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(9372),i=n.n(o),r=n(935),s=n.n(r)()(i());s.push([t.id,".ck.ck-icon{vertical-align:middle}:root{--ck-icon-size:calc(var(--ck-line-height-base)*var(--ck-font-size-normal))}.ck.ck-icon{font-size:.8333350694em;height:var(--ck-icon-size);width:var(--ck-icon-size);will-change:transform}.ck.ck-icon,.ck.ck-icon *{cursor:inherit}.ck.ck-icon.ck-icon_inherit-color,.ck.ck-icon.ck-icon_inherit-color *{color:inherit}.ck.ck-icon.ck-icon_inherit-color :not([fill]){fill:currentColor}","",{version:3,sources:["webpack://./../ckeditor5-ui/theme/components/icon/icon.css","webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/icon/icon.css"],names:[],mappings:"AAKA,YACC,qBACD,CCFA,MACC,0EACD,CAEA,YAKC,uBAAwB,CAHxB,0BAA2B,CAD3B,yBAA0B,CAU1B,qBAoBD,CAlBC,0BALA,cAQA,CAMC,sEACC,aAMD,CAJC,+CAEC,iBACD",sourcesContent:["/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-icon {\n\tvertical-align: middle;\n}\n",'/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n:root {\n\t--ck-icon-size: calc(var(--ck-line-height-base) * var(--ck-font-size-normal));\n}\n\n.ck.ck-icon {\n\twidth: var(--ck-icon-size);\n\theight: var(--ck-icon-size);\n\n\t/* Multiplied by the height of the line in "px" should give SVG "viewport" dimensions */\n\tfont-size: .8333350694em;\n\n\t/* Inherit cursor style (#5). */\n\tcursor: inherit;\n\n\t/* This will prevent blurry icons on Firefox. See #340. */\n\twill-change: transform;\n\n\t& * {\n\t\t/* Inherit cursor style (#5). */\n\t\tcursor: inherit;\n\t}\n\n\t/* Allows dynamic coloring of an icon by inheriting its color from the parent. */\n\t&.ck-icon_inherit-color {\n\t\tcolor: inherit;\n\n\t\t& * {\n\t\t\tcolor: inherit;\n\n\t\t\t&:not([fill]) {\n\t\t\t\t/* Needed by FF. */\n\t\t\t\tfill: currentColor;\n\t\t\t}\n\t\t}\n\t}\n}\n'],sourceRoot:""}]);const a=s},253:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(9372),i=n.n(o),r=n(935),s=n.n(r)()(i());s.push([t.id,":root{--ck-input-width:18em;--ck-input-text-width:var(--ck-input-width)}.ck.ck-input{border-radius:0}.ck-rounded-corners .ck.ck-input,.ck.ck-input.ck-rounded-corners{border-radius:var(--ck-border-radius)}.ck.ck-input{background:var(--ck-color-input-background);border:1px solid var(--ck-color-input-border);min-height:var(--ck-ui-component-min-height);min-width:var(--ck-input-width);padding:var(--ck-spacing-extra-tiny) var(--ck-spacing-medium);transition:box-shadow .1s ease-in-out,border .1s ease-in-out}@media (prefers-reduced-motion:reduce){.ck.ck-input{transition:none}}.ck.ck-input:focus{border:var(--ck-focus-ring);box-shadow:var(--ck-focus-outer-shadow),0 0;outline:none}.ck.ck-input[readonly]{background:var(--ck-color-input-disabled-background);border:1px solid var(--ck-color-input-disabled-border);color:var(--ck-color-input-disabled-text)}.ck.ck-input[readonly]:focus{box-shadow:var(--ck-focus-disabled-outer-shadow),0 0}.ck.ck-input.ck-error{animation:ck-input-shake .3s ease both;border-color:var(--ck-color-input-error-border)}@media (prefers-reduced-motion:reduce){.ck.ck-input.ck-error{animation:none}}.ck.ck-input.ck-error:focus{box-shadow:var(--ck-focus-error-outer-shadow),0 0}@keyframes ck-input-shake{20%{transform:translateX(-2px)}40%{transform:translateX(2px)}60%{transform:translateX(-1px)}80%{transform:translateX(1px)}}","",{version:3,sources:["webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/input/input.css","webpack://./../ckeditor5-theme-lark/theme/mixins/_rounded.css","webpack://./../ckeditor5-theme-lark/theme/mixins/_focus.css","webpack://./../ckeditor5-theme-lark/theme/mixins/_shadow.css"],names:[],mappings:"AASA,MACC,qBAAsB,CAGtB,2CACD,CAEA,aCLC,eDmDD,CA9CA,iECDE,qCD+CF,CA9CA,aAGC,2CAA4C,CAC5C,6CAA8C,CAK9C,4CAA6C,CAH7C,+BAAgC,CADhC,6DAA8D,CAO9D,4DAkCD,CAhCC,uCAdD,aAeE,eA+BF,CA9BC,CAEA,mBEvBA,2BAA2B,CCF3B,2CAA8B,CDC9B,YF2BA,CAEA,uBAEC,oDAAqD,CADrD,sDAAuD,CAEvD,yCAMD,CAJC,6BGnCD,oDHsCC,CAGD,sBAEC,sCAAuC,CADvC,+CAUD,CAPC,uCAJD,sBAKE,cAMF,CALC,CAEA,4BGjDD,iDHmDC,CAIF,0BACC,IACC,0BACD,CAEA,IACC,yBACD,CAEA,IACC,0BACD,CAEA,IACC,yBACD,CACD",sourcesContent:['/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "../../../mixins/_rounded.css";\n@import "../../../mixins/_focus.css";\n@import "../../../mixins/_shadow.css";\n\n:root {\n\t--ck-input-width: 18em;\n\n\t/* Backward compatibility. */\n\t--ck-input-text-width: var(--ck-input-width);\n}\n\n.ck.ck-input {\n\t@mixin ck-rounded-corners;\n\n\tbackground: var(--ck-color-input-background);\n\tborder: 1px solid var(--ck-color-input-border);\n\tpadding: var(--ck-spacing-extra-tiny) var(--ck-spacing-medium);\n\tmin-width: var(--ck-input-width);\n\n\t/* This is important to stay of the same height as surrounding buttons */\n\tmin-height: var(--ck-ui-component-min-height);\n\n\t/* Apply some smooth transition to the box-shadow and border. */\n\ttransition: box-shadow .1s ease-in-out, border .1s ease-in-out;\n\n\t@media (prefers-reduced-motion: reduce) {\n\t\ttransition: none;\n\t}\n\n\t&:focus {\n\t\t@mixin ck-focus-ring;\n\t\t@mixin ck-box-shadow var(--ck-focus-outer-shadow);\n\t}\n\n\t&[readonly] {\n\t\tborder: 1px solid var(--ck-color-input-disabled-border);\n\t\tbackground: var(--ck-color-input-disabled-background);\n\t\tcolor: var(--ck-color-input-disabled-text);\n\n\t\t&:focus {\n\t\t\t/* The read-only input should have a slightly less visible shadow when focused. */\n\t\t\t@mixin ck-box-shadow var(--ck-focus-disabled-outer-shadow);\n\t\t}\n\t}\n\n\t&.ck-error {\n\t\tborder-color: var(--ck-color-input-error-border);\n\t\tanimation: ck-input-shake .3s ease both;\n\n\t\t@media (prefers-reduced-motion: reduce) {\n\t\t\tanimation: none;\n\t\t}\n\n\t\t&:focus {\n\t\t\t@mixin ck-box-shadow var(--ck-focus-error-outer-shadow);\n\t\t}\n\t}\n}\n\n@keyframes ck-input-shake {\n\t20% {\n\t\ttransform: translateX(-2px);\n\t}\n\n\t40% {\n\t\ttransform: translateX(2px);\n\t}\n\n\t60% {\n\t\ttransform: translateX(-1px);\n\t}\n\n\t80% {\n\t\ttransform: translateX(1px);\n\t}\n}\n',"/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * Implements rounded corner interface for .ck-rounded-corners class.\n *\n * @see $ck-border-radius\n */\n@define-mixin ck-rounded-corners {\n\tborder-radius: 0;\n\n\t@nest .ck-rounded-corners &,\n\t&.ck-rounded-corners {\n\t\tborder-radius: var(--ck-border-radius);\n\t\t@mixin-content;\n\t}\n}\n","/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * A visual style of focused element's border.\n */\n@define-mixin ck-focus-ring {\n\t/* Disable native outline. */\n\toutline: none;\n\tborder: var(--ck-focus-ring)\n}\n","/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * A helper to combine multiple shadows.\n */\n@define-mixin ck-box-shadow $shadowA, $shadowB: 0 0 {\n\tbox-shadow: $shadowA, $shadowB;\n}\n\n/**\n * Gives an element a drop shadow so it looks like a floating panel.\n */\n@define-mixin ck-drop-shadow {\n\t@mixin ck-box-shadow var(--ck-drop-shadow);\n}\n"],sourceRoot:""}]);const a=s},7801:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(9372),i=n.n(o),r=n(935),s=n.n(r)()(i());s.push([t.id,".ck.ck-label{display:block}.ck.ck-voice-label{display:none}.ck.ck-label{font-weight:700}","",{version:3,sources:["webpack://./../ckeditor5-ui/theme/components/label/label.css","webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/label/label.css"],names:[],mappings:"AAKA,aACC,aACD,CAEA,mBACC,YACD,CCNA,aACC,eACD",sourcesContent:["/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-label {\n\tdisplay: block;\n}\n\n.ck.ck-voice-label {\n\tdisplay: none;\n}\n","/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-label {\n\tfont-weight: bold;\n}\n"],sourceRoot:""}]);const a=s},4962:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(9372),i=n.n(o),r=n(935),s=n.n(r)()(i());s.push([t.id,".ck.ck-labeled-field-view>.ck.ck-labeled-field-view__input-wrapper{display:flex;position:relative}.ck.ck-labeled-field-view .ck.ck-label{display:block;position:absolute}:root{--ck-labeled-field-view-transition:.1s cubic-bezier(0,0,0.24,0.95);--ck-labeled-field-empty-unfocused-max-width:100% - 2 * var(--ck-spacing-medium);--ck-labeled-field-label-default-position-x:var(--ck-spacing-medium);--ck-labeled-field-label-default-position-y:calc(var(--ck-font-size-base)*0.6);--ck-color-labeled-field-label-background:var(--ck-color-base-background)}.ck.ck-labeled-field-view{border-radius:0}.ck-rounded-corners .ck.ck-labeled-field-view,.ck.ck-labeled-field-view.ck-rounded-corners{border-radius:var(--ck-border-radius)}.ck.ck-labeled-field-view>.ck.ck-labeled-field-view__input-wrapper{width:100%}.ck.ck-labeled-field-view>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label{top:0}[dir=ltr] .ck.ck-labeled-field-view>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label{left:0;transform:translate(var(--ck-spacing-medium),-6px) scale(.75);transform-origin:0 0}[dir=rtl] .ck.ck-labeled-field-view>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label{right:0;transform:translate(calc(var(--ck-spacing-medium)*-1),-6px) scale(.75);transform-origin:100% 0}.ck.ck-labeled-field-view>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label{background:var(--ck-color-labeled-field-label-background);font-weight:400;line-height:normal;max-width:100%;overflow:hidden;padding:0 calc(var(--ck-font-size-tiny)*.5);pointer-events:none;text-overflow:ellipsis;transition:transform var(--ck-labeled-field-view-transition),padding var(--ck-labeled-field-view-transition),background var(--ck-labeled-field-view-transition)}@media (prefers-reduced-motion:reduce){.ck.ck-labeled-field-view>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label{transition:none}}.ck.ck-labeled-field-view.ck-error .ck-input:not([readonly])+.ck.ck-label,.ck.ck-labeled-field-view.ck-error>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label{color:var(--ck-color-base-error)}.ck.ck-labeled-field-view .ck-labeled-field-view__status{font-size:var(--ck-font-size-small);margin-top:var(--ck-spacing-small);white-space:normal}.ck.ck-labeled-field-view .ck-labeled-field-view__status.ck-labeled-field-view__status_error{color:var(--ck-color-base-error)}.ck.ck-labeled-field-view.ck-disabled>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label,.ck.ck-labeled-field-view.ck-labeled-field-view_empty:not(.ck-labeled-field-view_focused)>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label{color:var(--ck-color-input-disabled-text)}[dir=ltr] .ck.ck-labeled-field-view.ck-disabled.ck-labeled-field-view_empty:not(.ck-labeled-field-view_placeholder)>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label,[dir=ltr] .ck.ck-labeled-field-view.ck-labeled-field-view_empty:not(.ck-labeled-field-view_focused):not(.ck-labeled-field-view_placeholder):not(.ck-error)>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label{transform:translate(var(--ck-labeled-field-label-default-position-x),var(--ck-labeled-field-label-default-position-y)) scale(1)}[dir=rtl] .ck.ck-labeled-field-view.ck-disabled.ck-labeled-field-view_empty:not(.ck-labeled-field-view_placeholder)>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label,[dir=rtl] .ck.ck-labeled-field-view.ck-labeled-field-view_empty:not(.ck-labeled-field-view_focused):not(.ck-labeled-field-view_placeholder):not(.ck-error)>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label{transform:translate(calc(var(--ck-labeled-field-label-default-position-x)*-1),var(--ck-labeled-field-label-default-position-y)) scale(1)}.ck.ck-labeled-field-view.ck-disabled.ck-labeled-field-view_empty:not(.ck-labeled-field-view_placeholder)>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label,.ck.ck-labeled-field-view.ck-labeled-field-view_empty:not(.ck-labeled-field-view_focused):not(.ck-labeled-field-view_placeholder):not(.ck-error)>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label{background:transparent;max-width:calc(var(--ck-labeled-field-empty-unfocused-max-width));padding:0}.ck.ck-labeled-field-view>.ck.ck-labeled-field-view__input-wrapper>.ck-dropdown>.ck.ck-button{background:transparent}.ck.ck-labeled-field-view.ck-labeled-field-view_empty>.ck.ck-labeled-field-view__input-wrapper>.ck-dropdown>.ck-button>.ck-button__label{opacity:0}.ck.ck-labeled-field-view.ck-labeled-field-view_empty:not(.ck-labeled-field-view_focused):not(.ck-labeled-field-view_placeholder)>.ck.ck-labeled-field-view__input-wrapper>.ck-dropdown+.ck-label{max-width:calc(var(--ck-labeled-field-empty-unfocused-max-width) - var(--ck-dropdown-arrow-size) - var(--ck-spacing-standard))}","",{version:3,sources:["webpack://./../ckeditor5-ui/theme/components/labeledfield/labeledfieldview.css","webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/labeledfield/labeledfieldview.css","webpack://./../ckeditor5-theme-lark/theme/mixins/_rounded.css"],names:[],mappings:"AAMC,mEACC,YAAa,CACb,iBACD,CAEA,uCACC,aAAc,CACd,iBACD,CCND,MACC,kEAAsE,CACtE,gFAAiF,CACjF,oEAAqE,CACrE,8EAAiF,CACjF,yEACD,CAEA,0BCLC,eDmHD,CA9GA,2FCDE,qCD+GF,CA3GC,mEACC,UAwCD,CAtCC,gFACC,KAoCD,CArCA,0FAIE,MAAS,CAGT,6DAA+D,CAF/D,oBAgCF,CArCA,0FAWE,OAAU,CAEV,sEAA0E,CAD1E,uBAyBF,CArCA,gFAkBC,yDAA0D,CAG1D,eAAmB,CADnB,kBAAoB,CAOpB,cAAe,CAFf,eAAgB,CANhB,2CAA8C,CAH9C,mBAAoB,CAQpB,sBAAuB,CAKvB,+JAQD,CAHC,uCAlCD,gFAmCE,eAEF,CADC,CASD,mKACC,gCACD,CAGD,yDACC,mCAAoC,CACpC,kCAAmC,CAInC,kBAKD,CAHC,6FACC,gCACD,CAID,4OAEC,yCACD,CAIA,2XAGE,+HAYF,CAfA,2XAOE,wIAQF,CAfA,uWAaC,sBAAuB,CAFvB,iEAAkE,CAGlE,SACD,CAKA,8FACC,sBACD,CAGA,yIACC,SACD,CAGA,kMACC,8HACD",sourcesContent:["/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-labeled-field-view {\n\t& > .ck.ck-labeled-field-view__input-wrapper {\n\t\tdisplay: flex;\n\t\tposition: relative;\n\t}\n\n\t& .ck.ck-label {\n\t\tdisplay: block;\n\t\tposition: absolute;\n\t}\n}\n",'/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "@ckeditor/ckeditor5-ui/theme/mixins/_dir.css";\n@import "../../../mixins/_rounded.css";\n\n:root {\n\t--ck-labeled-field-view-transition: .1s cubic-bezier(0, 0, 0.24, 0.95);\n\t--ck-labeled-field-empty-unfocused-max-width: 100% - 2 * var(--ck-spacing-medium);\n\t--ck-labeled-field-label-default-position-x: var(--ck-spacing-medium);\n\t--ck-labeled-field-label-default-position-y: calc(0.6 * var(--ck-font-size-base));\n\t--ck-color-labeled-field-label-background: var(--ck-color-base-background);\n}\n\n.ck.ck-labeled-field-view {\n\t@mixin ck-rounded-corners;\n\n\t& > .ck.ck-labeled-field-view__input-wrapper {\n\t\twidth: 100%;\n\n\t\t& > .ck.ck-label {\n\t\t\ttop: 0px;\n\n\t\t\t@mixin ck-dir ltr {\n\t\t\t\tleft: 0px;\n\t\t\t\ttransform-origin: 0 0;\n\t\t\t\t/* By default, display the label scaled down above the field. */\n\t\t\t\ttransform: translate(var(--ck-spacing-medium), -6px) scale(.75);\n\t\t\t}\n\n\t\t\t@mixin ck-dir rtl {\n\t\t\t\tright: 0px;\n\t\t\t\ttransform-origin: 100% 0;\n\t\t\t\ttransform: translate(calc(-1 * var(--ck-spacing-medium)), -6px) scale(.75);\n\t\t\t}\n\n\t\t\tpointer-events: none;\n\n\t\t\tbackground: var(--ck-color-labeled-field-label-background);\n\t\t\tpadding: 0 calc(.5 * var(--ck-font-size-tiny));\n\t\t\tline-height: initial;\n\t\t\tfont-weight: normal;\n\n\t\t\t/* Prevent overflow when the label is longer than the input */\n\t\t\ttext-overflow: ellipsis;\n\t\t\toverflow: hidden;\n\n\t\t\tmax-width: 100%;\n\n\t\t\ttransition:\n\t\t\t\ttransform var(--ck-labeled-field-view-transition),\n\t\t\t\tpadding var(--ck-labeled-field-view-transition),\n\t\t\t\tbackground var(--ck-labeled-field-view-transition);\n\n\t\t\t@media (prefers-reduced-motion: reduce) {\n\t\t\t\ttransition: none;\n\t\t\t}\n\t\t}\n\t}\n\n\t&.ck-error {\n\t\t& > .ck.ck-labeled-field-view__input-wrapper > .ck.ck-label {\n\t\t\tcolor: var(--ck-color-base-error);\n\t\t}\n\n\t\t& .ck-input:not([readonly]) + .ck.ck-label {\n\t\t\tcolor: var(--ck-color-base-error);\n\t\t}\n\t}\n\n\t& .ck-labeled-field-view__status {\n\t\tfont-size: var(--ck-font-size-small);\n\t\tmargin-top: var(--ck-spacing-small);\n\n\t\t/* Let the info wrap to the next line to avoid stretching the layout horizontally.\n\t\tThe status could be very long. */\n\t\twhite-space: normal;\n\n\t\t&.ck-labeled-field-view__status_error {\n\t\t\tcolor: var(--ck-color-base-error);\n\t\t}\n\t}\n\n\t/* Disabled fields and fields that have no focus should fade out. */\n\t&.ck-disabled > .ck.ck-labeled-field-view__input-wrapper > .ck.ck-label,\n\t&.ck-labeled-field-view_empty:not(.ck-labeled-field-view_focused) > .ck.ck-labeled-field-view__input-wrapper > .ck.ck-label {\n\t\tcolor: var(--ck-color-input-disabled-text);\n\t}\n\n\t/* Fields that are disabled or not focused and without a placeholder should have full-sized labels. */\n\t/* stylelint-disable-next-line no-descending-specificity */\n\t&.ck-disabled.ck-labeled-field-view_empty:not(.ck-labeled-field-view_placeholder) > .ck.ck-labeled-field-view__input-wrapper > .ck.ck-label,\n\t&.ck-labeled-field-view_empty:not(.ck-labeled-field-view_focused):not(.ck-labeled-field-view_placeholder):not(.ck-error) > .ck.ck-labeled-field-view__input-wrapper > .ck.ck-label {\n\t\t@mixin ck-dir ltr {\n\t\t\ttransform: translate(var(--ck-labeled-field-label-default-position-x), var(--ck-labeled-field-label-default-position-y)) scale(1);\n\t\t}\n\n\t\t@mixin ck-dir rtl {\n\t\t\ttransform: translate(calc(-1 * var(--ck-labeled-field-label-default-position-x)), var(--ck-labeled-field-label-default-position-y)) scale(1);\n\t\t}\n\n\t\t/* Compensate for the default translate position. */\n\t\tmax-width: calc(var(--ck-labeled-field-empty-unfocused-max-width));\n\n\t\tbackground: transparent;\n\t\tpadding: 0;\n\t}\n\n\t/*------ DropdownView integration ----------------------------------------------------------------------------------- */\n\n\t/* Make sure dropdown\' background color in any of dropdown\'s state does not collide with labeled field. */\n\t& > .ck.ck-labeled-field-view__input-wrapper > .ck-dropdown > .ck.ck-button {\n\t\tbackground: transparent;\n\t}\n\n\t/* When the dropdown is "empty", the labeled field label replaces its label. */\n\t&.ck-labeled-field-view_empty > .ck.ck-labeled-field-view__input-wrapper > .ck-dropdown > .ck-button > .ck-button__label {\n\t\topacity: 0;\n\t}\n\n\t/* Make sure the label of the empty, unfocused input does not cover the dropdown arrow. */\n\t&.ck-labeled-field-view_empty:not(.ck-labeled-field-view_focused):not(.ck-labeled-field-view_placeholder) > .ck.ck-labeled-field-view__input-wrapper > .ck-dropdown + .ck-label {\n\t\tmax-width: calc(var(--ck-labeled-field-empty-unfocused-max-width) - var(--ck-dropdown-arrow-size) - var(--ck-spacing-standard));\n\t}\n}\n',"/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * Implements rounded corner interface for .ck-rounded-corners class.\n *\n * @see $ck-border-radius\n */\n@define-mixin ck-rounded-corners {\n\tborder-radius: 0;\n\n\t@nest .ck-rounded-corners &,\n\t&.ck-rounded-corners {\n\t\tborder-radius: var(--ck-border-radius);\n\t\t@mixin-content;\n\t}\n}\n"],sourceRoot:""}]);const a=s},5199:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(9372),i=n.n(o),r=n(935),s=n.n(r)()(i());s.push([t.id,".ck.ck-list{display:flex;flex-direction:column;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none}.ck.ck-list .ck-list__item,.ck.ck-list .ck-list__separator{display:block}.ck.ck-list .ck-list__item>:focus{position:relative;z-index:var(--ck-z-default)}:root{--ck-list-button-padding:calc(var(--ck-line-height-base)*0.11*var(--ck-font-size-base)) calc(var(--ck-line-height-base)*0.4*var(--ck-font-size-base))}.ck.ck-list{border-radius:0}.ck-rounded-corners .ck.ck-list,.ck.ck-list.ck-rounded-corners{border-radius:var(--ck-border-radius)}.ck.ck-list{background:var(--ck-color-list-background);list-style-type:none}.ck.ck-list__item{cursor:default;min-width:12em}.ck.ck-list__item>.ck-button{border-radius:0;min-height:unset;width:100%}[dir=ltr] .ck.ck-list__item>.ck-button{text-align:left}[dir=rtl] .ck.ck-list__item>.ck-button{text-align:right}.ck.ck-list__item>.ck-button{padding:var(--ck-list-button-padding)}.ck.ck-list__item>.ck-button:active{box-shadow:none}.ck.ck-list__item>.ck-button.ck-on{background:var(--ck-color-list-button-on-background);color:var(--ck-color-list-button-on-text)}.ck.ck-list__item>.ck-button.ck-on:active{box-shadow:none}.ck.ck-list__item>.ck-button.ck-on:hover:not(.ck-disabled){background:var(--ck-color-list-button-on-background-focus)}.ck.ck-list__item>.ck-button.ck-on:focus:not(.ck-switchbutton):not(.ck-disabled){border-color:var(--ck-color-base-background)}.ck.ck-list__item>.ck-button:hover:not(.ck-disabled){background:var(--ck-color-list-button-hover-background)}.ck.ck-list__item>.ck-switchbutton.ck-on{background:var(--ck-color-list-background);color:inherit}.ck.ck-list__item>.ck-switchbutton.ck-on:hover:not(.ck-disabled){background:var(--ck-color-list-button-hover-background);color:inherit}.ck-list .ck-list__group{padding-top:var(--ck-spacing-medium);:not(.ck-hidden)~&{border-top:1px solid var(--ck-color-base-border)}}.ck-list .ck-list__group>.ck-label{font-size:11px;font-weight:700;padding:var(--ck-spacing-medium) var(--ck-spacing-medium) 0 var(--ck-spacing-medium)}.ck.ck-list__separator{background:var(--ck-color-base-border);height:1px;width:100%}","",{version:3,sources:["webpack://./../ckeditor5-ui/theme/components/list/list.css","webpack://./../ckeditor5-ui/theme/mixins/_unselectable.css","webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/list/list.css","webpack://./../ckeditor5-theme-lark/theme/mixins/_rounded.css"],names:[],mappings:"AAOA,YAGC,YAAa,CACb,qBAAsB,CCFtB,qBAAsB,CACtB,wBAAyB,CACzB,oBAAqB,CACrB,gBDaD,CAZC,2DAEC,aACD,CAKA,kCACC,iBAAkB,CAClB,2BACD,CEdD,MACC,qJAGD,CAEA,YCLC,eDUD,CALA,+DCDE,qCDMF,CALA,YAIC,0CAA2C,CAD3C,oBAED,CAEA,kBACC,cAAe,CACf,cA2DD,CAzDC,6BAGC,eAAgB,CAFhB,gBAAiB,CACjB,UAwCD,CA1CA,uCAME,eAoCF,CA1CA,uCAUE,gBAgCF,CA1CA,6BAgBC,qCA0BD,CAxBC,oCACC,eACD,CAEA,mCACC,oDAAqD,CACrD,yCAaD,CAXC,0CACC,eACD,CAEA,2DACC,0DACD,CAEA,iFACC,4CACD,CAGD,qDACC,uDACD,CAMA,yCACC,0CAA2C,CAC3C,aAMD,CAJC,iEACC,uDAAwD,CACxD,aACD,CAKH,yBACC,oCAAqC,CAGrC,mBACC,gDACD,CAOD,CALC,mCACC,cAAe,CACf,eAAiB,CACjB,oFACD,CAGD,uBAGC,sCAAuC,CAFvC,UAAW,CACX,UAED",sourcesContent:['/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "../../mixins/_unselectable.css";\n\n.ck.ck-list {\n\t@mixin ck-unselectable;\n\n\tdisplay: flex;\n\tflex-direction: column;\n\n\t& .ck-list__item,\n\t& .ck-list__separator {\n\t\tdisplay: block;\n\t}\n\n\t/* Make sure that whatever child of the list item gets focus, it remains on the\n\ttop. Thanks to that, styles like box-shadow, outline, etc. are not masked by\n\tadjacent list items. */\n\t& .ck-list__item > *:focus {\n\t\tposition: relative;\n\t\tz-index: var(--ck-z-default);\n\t}\n}\n',"/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * Makes element unselectable.\n */\n@define-mixin ck-unselectable {\n\t-moz-user-select: none;\n\t-webkit-user-select: none;\n\t-ms-user-select: none;\n\tuser-select: none\n}\n",'/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "../../../mixins/_disabled.css";\n@import "../../../mixins/_rounded.css";\n@import "../../../mixins/_shadow.css";\n@import "@ckeditor/ckeditor5-ui/theme/mixins/_dir.css";\n\n:root {\n\t--ck-list-button-padding:\n\t\tcalc(.11 * var(--ck-line-height-base) * var(--ck-font-size-base))\n\t\tcalc(.4 * var(--ck-line-height-base) * var(--ck-font-size-base));\n}\n\n.ck.ck-list {\n\t@mixin ck-rounded-corners;\n\n\tlist-style-type: none;\n\tbackground: var(--ck-color-list-background);\n}\n\n.ck.ck-list__item {\n\tcursor: default;\n\tmin-width: 12em;\n\n\t& > .ck-button {\n\t\tmin-height: unset;\n\t\twidth: 100%;\n\t\tborder-radius: 0;\n\n\t\t@mixin ck-dir ltr {\n\t\t\ttext-align: left;\n\t\t}\n\n\t\t@mixin ck-dir rtl {\n\t\t\ttext-align: right;\n\t\t}\n\n\t\t/* List items should have the same height. Use absolute units to make sure it is so\n\t\t because e.g. different heading styles may have different height\n\t\t https://github.com/ckeditor/ckeditor5-heading/issues/63 */\n\t\tpadding: var(--ck-list-button-padding);\n\n\t\t&:active {\n\t\t\tbox-shadow: none;\n\t\t}\n\n\t\t&.ck-on {\n\t\t\tbackground: var(--ck-color-list-button-on-background);\n\t\t\tcolor: var(--ck-color-list-button-on-text);\n\n\t\t\t&:active {\n\t\t\t\tbox-shadow: none;\n\t\t\t}\n\n\t\t\t&:hover:not(.ck-disabled) {\n\t\t\t\tbackground: var(--ck-color-list-button-on-background-focus);\n\t\t\t}\n\n\t\t\t&:focus:not(.ck-switchbutton):not(.ck-disabled) {\n\t\t\t\tborder-color: var(--ck-color-base-background);\n\t\t\t}\n\t\t}\n\n\t\t&:hover:not(.ck-disabled) {\n\t\t\tbackground: var(--ck-color-list-button-hover-background);\n\t\t}\n\t}\n\n\t/* It\'s unnecessary to change the background/text of a switch toggle; it has different ways\n\tof conveying its state (like the switcher) */\n\t& > .ck-switchbutton {\n\t\t&.ck-on {\n\t\t\tbackground: var(--ck-color-list-background);\n\t\t\tcolor: inherit;\n\n\t\t\t&:hover:not(.ck-disabled) {\n\t\t\t\tbackground: var(--ck-color-list-button-hover-background);\n\t\t\t\tcolor: inherit;\n\t\t\t}\n\t\t}\n\t}\n}\n\n.ck-list .ck-list__group {\n\tpadding-top: var(--ck-spacing-medium);\n\n\t/* The group should have a border when it\'s not the first item. */\n\t*:not(.ck-hidden) ~ & {\n\t\tborder-top: 1px solid var(--ck-color-base-border);\n\t}\n\n\t& > .ck-label {\n\t\tfont-size: 11px;\n\t\tfont-weight: bold;\n\t\tpadding: var(--ck-spacing-medium) var(--ck-spacing-medium) 0 var(--ck-spacing-medium);\n\t}\n}\n\n.ck.ck-list__separator {\n\theight: 1px;\n\twidth: 100%;\n\tbackground: var(--ck-color-base-border);\n}\n',"/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * Implements rounded corner interface for .ck-rounded-corners class.\n *\n * @see $ck-border-radius\n */\n@define-mixin ck-rounded-corners {\n\tborder-radius: 0;\n\n\t@nest .ck-rounded-corners &,\n\t&.ck-rounded-corners {\n\t\tborder-radius: var(--ck-border-radius);\n\t\t@mixin-content;\n\t}\n}\n"],sourceRoot:""}]);const a=s},497:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(9372),i=n.n(o),r=n(935),s=n.n(r)()(i());s.push([t.id,".ck.ck-menu-bar{background:var(--ck-color-base-background);border:1px solid var(--ck-color-toolbar-border);display:flex;flex-wrap:wrap;gap:var(--ck-spacing-small);justify-content:flex-start;padding:var(--ck-spacing-small);width:100%}","",{version:3,sources:["webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/menubar/menubar.css"],names:[],mappings:"AAKA,gBAIC,0CAA2C,CAG3C,+CAAgD,CANhD,YAAa,CACb,cAAe,CAIf,2BAA4B,CAH5B,0BAA2B,CAE3B,+BAAgC,CAGhC,UACD",sourcesContent:["/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-menu-bar {\n\tdisplay: flex;\n\tflex-wrap: wrap;\n\tjustify-content: flex-start;\n\tbackground: var(--ck-color-base-background);\n\tpadding: var(--ck-spacing-small);\n\tgap: var(--ck-spacing-small);\n\tborder: 1px solid var(--ck-color-toolbar-border);\n\twidth: 100%;\n}\n"],sourceRoot:""}]);const a=s},4:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(9372),i=n.n(o),r=n(935),s=n.n(r)()(i());s.push([t.id,".ck.ck-menu-bar__menu{display:block;font-size:inherit;position:relative}.ck.ck-menu-bar__menu.ck-menu-bar__menu_top-level{max-width:100%}","",{version:3,sources:["webpack://./../ckeditor5-ui/theme/components/menubar/menubarmenu.css","webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/menubar/menubarmenu.css"],names:[],mappings:"AAKA,sBACC,aAAc,CCCd,iBAAkB,CDAlB,iBACD,CCCC,kDACC,cACD",sourcesContent:["/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-menu-bar__menu {\n\tdisplay: block;\n\tposition: relative;\n}\n","/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-menu-bar__menu {\n\t/* Enable font size inheritance, which allows fluid UI scaling. */\n\tfont-size: inherit;\n\n\t&.ck-menu-bar__menu_top-level {\n\t\tmax-width: 100%;\n\t}\n}\n"],sourceRoot:""}]);const a=s},3344:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(9372),i=n.n(o),r=n(935),s=n.n(r)()(i());s.push([t.id,".ck.ck-menu-bar__menu>.ck-menu-bar__menu__button>.ck-menu-bar__menu__button__arrow{pointer-events:none;z-index:var(--ck-z-default)}.ck.ck-menu-bar__menu>.ck-menu-bar__menu__button{padding:var(--ck-list-button-padding);width:100%}.ck.ck-menu-bar__menu>.ck-menu-bar__menu__button>.ck-button__label{flex-grow:1;overflow:hidden;text-overflow:ellipsis}.ck.ck-menu-bar__menu>.ck-menu-bar__menu__button.ck-disabled>.ck-button__label{opacity:var(--ck-disabled-opacity)}[dir=ltr] .ck.ck-menu-bar__menu>.ck-menu-bar__menu__button:not(.ck-button_with-text){padding-left:var(--ck-spacing-small)}[dir=rtl] .ck.ck-menu-bar__menu>.ck-menu-bar__menu__button:not(.ck-button_with-text){padding-right:var(--ck-spacing-small)}.ck.ck-menu-bar__menu.ck-menu-bar__menu_top-level>.ck-menu-bar__menu__button{min-height:unset;padding:var(--ck-spacing-small) var(--ck-spacing-medium)}.ck.ck-menu-bar__menu.ck-menu-bar__menu_top-level>.ck-menu-bar__menu__button .ck-button__label{line-height:unset;width:unset}.ck.ck-menu-bar__menu.ck-menu-bar__menu_top-level>.ck-menu-bar__menu__button.ck-on{border-bottom-left-radius:0;border-bottom-right-radius:0}.ck.ck-menu-bar__menu.ck-menu-bar__menu_top-level>.ck-menu-bar__menu__button .ck-icon{display:none}.ck.ck-menu-bar__menu:not(.ck-menu-bar__menu_top-level) .ck-menu-bar__menu__button{border-radius:0}.ck.ck-menu-bar__menu:not(.ck-menu-bar__menu_top-level) .ck-menu-bar__menu__button:focus{border-color:transparent;box-shadow:none}.ck.ck-menu-bar__menu:not(.ck-menu-bar__menu_top-level) .ck-menu-bar__menu__button:focus:not(.ck-on){background:var(--ck-color-button-default-hover-background)}.ck.ck-menu-bar__menu:not(.ck-menu-bar__menu_top-level) .ck-menu-bar__menu__button:not(:has(.ck-button__icon))>.ck-button__label{margin-left:calc(var(--ck-icon-size) - var(--ck-spacing-small))}.ck.ck-menu-bar__menu:not(.ck-menu-bar__menu_top-level) .ck-menu-bar__menu__button>.ck-menu-bar__menu__button__arrow{width:var(--ck-dropdown-arrow-size)}[dir=ltr] .ck.ck-menu-bar__menu:not(.ck-menu-bar__menu_top-level) .ck-menu-bar__menu__button>.ck-menu-bar__menu__button__arrow{transform:rotate(-90deg)}[dir=rtl] .ck.ck-menu-bar__menu:not(.ck-menu-bar__menu_top-level) .ck-menu-bar__menu__button>.ck-menu-bar__menu__button__arrow{transform:rotate(90deg)}.ck.ck-menu-bar__menu:not(.ck-menu-bar__menu_top-level) .ck-menu-bar__menu__button.ck-disabled>.ck-menu-bar__menu__button__arrow{opacity:var(--ck-disabled-opacity)}[dir=ltr] .ck.ck-menu-bar__menu:not(.ck-menu-bar__menu_top-level) .ck-menu-bar__menu__button>.ck-menu-bar__menu__button__arrow{margin-left:var(--ck-spacing-standard);right:var(--ck-spacing-standard)}[dir=rtl] .ck.ck-menu-bar__menu:not(.ck-menu-bar__menu_top-level) .ck-menu-bar__menu__button>.ck-menu-bar__menu__button__arrow{left:var(--ck-spacing-standard);margin-right:var(--ck-spacing-small)}","",{version:3,sources:["webpack://./../ckeditor5-ui/theme/components/menubar/menubarmenubutton.css","webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/menubar/menubarmenubutton.css","webpack://./../ckeditor5-theme-lark/theme/mixins/_disabled.css"],names:[],mappings:"AAMC,mFACC,mBAAoB,CACpB,2BACD,CCIA,iDACC,qCAAsC,CACtC,UAuBD,CArBC,mEACC,WAAY,CACZ,eAAgB,CAChB,sBACD,CAEA,+ECdD,kCDgBC,CAGC,qFACC,oCACD,CAIA,qFACC,qCACD,CAOF,6EAEC,gBAAiB,CADjB,wDAgBD,CAbC,+FAEC,iBAAkB,CADlB,WAED,CAEA,mFACC,2BAA4B,CAC5B,4BACD,CAEA,sFACC,YACD,CAMD,mFACC,eAiDD,CA/CC,yFACC,wBAAyB,CACzB,eAKD,CAHC,qGACC,0DACD,CAID,iIACC,+DACD,CAEA,qHACC,mCASD,CAVA,+HAIE,wBAMF,CAVA,+HAQE,uBAEF,CAEA,iICrFD,kCDuFC,CAGC,+HAIC,sCAAuC,CAHvC,gCAID,CAIA,+HACC,+BAAgC,CAGhC,oCACD",sourcesContent:["/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-menu-bar__menu {\n\t& > .ck-menu-bar__menu__button > .ck-menu-bar__menu__button__arrow {\n\t\tpointer-events: none;\n\t\tz-index: var(--ck-z-default);\n\t}\n}\n",'/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "../../../mixins/_disabled.css";\n@import "../../mixins/_button.css";\n@import "@ckeditor/ckeditor5-ui/theme/mixins/_dir.css";\n\n.ck.ck-menu-bar__menu {\n\t/*\n\t * All menu buttons.\n\t */\n\t& > .ck-menu-bar__menu__button {\n\t\tpadding: var(--ck-list-button-padding);\n\t\twidth: 100%;\n\n\t\t& > .ck-button__label {\n\t\t\tflex-grow: 1;\n\t\t\toverflow: hidden;\n\t\t\ttext-overflow: ellipsis;\n\t\t}\n\n\t\t&.ck-disabled > .ck-button__label {\n\t\t\t@mixin ck-disabled;\n\t\t}\n\n\t\t@mixin ck-dir ltr {\n\t\t\t&:not(.ck-button_with-text) {\n\t\t\t\tpadding-left: var(--ck-spacing-small);\n\t\t\t}\n\t\t}\n\n\t\t@mixin ck-dir rtl {\n\t\t\t&:not(.ck-button_with-text) {\n\t\t\t\tpadding-right: var(--ck-spacing-small);\n\t\t\t}\n\t\t}\n\t}\n\n\t/*\n\t * Top-level menu buttons only.\n\t */\n\t&.ck-menu-bar__menu_top-level > .ck-menu-bar__menu__button {\n\t\tpadding: var(--ck-spacing-small) var(--ck-spacing-medium);\n\t\tmin-height: unset;\n\n\t\t& .ck-button__label {\n\t\t\twidth: unset;\n\t\t\tline-height: unset;\n\t\t}\n\n\t\t&.ck-on {\n\t\t\tborder-bottom-left-radius: 0;\n\t\t\tborder-bottom-right-radius: 0;\n\t\t}\n\n\t\t& .ck-icon {\n\t\t\tdisplay: none;\n\t\t}\n\t}\n\n\t/*\n\t * Sub-menu buttons.\n\t */\n\t&:not(.ck-menu-bar__menu_top-level) .ck-menu-bar__menu__button {\n\t\tborder-radius: 0;\n\n\t\t&:focus {\n\t\t\tborder-color: transparent;\n\t\t\tbox-shadow: none;\n\n\t\t\t&:not(.ck-on) {\n\t\t\t\tbackground: var(--ck-color-button-default-hover-background);\n\t\t\t}\n\t\t}\n\n\t\t/* Spacing in buttons that miss the icon. */\n\t\t&:not(:has(.ck-button__icon)) > .ck-button__label {\n\t\t\tmargin-left: calc(var(--ck-icon-size) - var(--ck-spacing-small));\n\t\t}\n\n\t\t& > .ck-menu-bar__menu__button__arrow {\n\t\t\twidth: var(--ck-dropdown-arrow-size);\n\n\t\t\t@mixin ck-dir ltr {\n\t\t\t\ttransform: rotate(-90deg);\n\t\t\t}\n\n\t\t\t@mixin ck-dir rtl {\n\t\t\t\ttransform: rotate(90deg);\n\t\t\t}\n\t\t}\n\n\t\t&.ck-disabled > .ck-menu-bar__menu__button__arrow {\n\t\t\t@mixin ck-disabled;\n\t\t}\n\n\t\t@mixin ck-dir ltr {\n\t\t\t& > .ck-menu-bar__menu__button__arrow {\n\t\t\t\tright: var(--ck-spacing-standard);\n\n\t\t\t\t/* A space to accommodate the triangle. */\n\t\t\t\tmargin-left: var(--ck-spacing-standard);\n\t\t\t}\n\t\t}\n\n\t\t@mixin ck-dir rtl {\n\t\t\t& > .ck-menu-bar__menu__button__arrow {\n\t\t\t\tleft: var(--ck-spacing-standard);\n\n\t\t\t\t/* A space to accommodate the triangle. */\n\t\t\t\tmargin-right: var(--ck-spacing-small);\n\t\t\t}\n\t\t}\n\t}\n}\n',"/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * A class which indicates that an element holding it is disabled.\n */\n@define-mixin ck-disabled {\n\topacity: var(--ck-disabled-opacity);\n}\n"],sourceRoot:""}]);const a=s},9481:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(9372),i=n.n(o),r=n(935),s=n.n(r)()(i());s.push([t.id,":root{--ck-menu-bar-menu-item-min-width:18em}.ck.ck-menu-bar__menu .ck.ck-menu-bar__menu__item{min-width:var(--ck-menu-bar-menu-item-min-width)}","",{version:3,sources:["webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/menubar/menubarmenulistitem.css"],names:[],mappings:"AAKA,MACC,sCACD,CAEA,kDACC,gDACD",sourcesContent:["/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n:root {\n\t--ck-menu-bar-menu-item-min-width: 18em;\n}\n\n.ck.ck-menu-bar__menu .ck.ck-menu-bar__menu__item {\n\tmin-width: var(--ck-menu-bar-menu-item-min-width);\n}\n"],sourceRoot:""}]);const a=s},977:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(9372),i=n.n(o),r=n(935),s=n.n(r)()(i());s.push([t.id,".ck.ck-menu-bar__menu .ck-button.ck-menu-bar__menu__item__button{border-radius:0}.ck.ck-menu-bar__menu .ck-button.ck-menu-bar__menu__item__button>.ck-spinner-container,.ck.ck-menu-bar__menu .ck-button.ck-menu-bar__menu__item__button>.ck-spinner-container .ck-spinner{--ck-toolbar-spinner-size:20px}.ck.ck-menu-bar__menu .ck-button.ck-menu-bar__menu__item__button>.ck-spinner-container{margin-left:calc(var(--ck-spacing-small)*-1);margin-right:var(--ck-spacing-small)}.ck.ck-menu-bar__menu .ck-button.ck-menu-bar__menu__item__button:focus{border-color:transparent;box-shadow:none}.ck.ck-menu-bar__menu .ck-button.ck-menu-bar__menu__item__button:focus:not(.ck-on){background:var(--ck-color-button-default-hover-background)}.ck.ck-menu-bar__menu.ck-menu-bar__menu_top-level>.ck-menu-bar__menu__panel>ul>.ck-menu-bar__menu__item>.ck-menu-bar__menu__item__button:not(:has(.ck-button__icon))>.ck-button__label{margin-left:calc(var(--ck-icon-size) - var(--ck-spacing-small))}","",{version:3,sources:["webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/menubar/menubarmenulistitembutton.css"],names:[],mappings:"AASC,iEACC,eA0BD,CAxBC,0LAGC,8BACD,CAEA,uFAEC,4CAA+C,CAC/C,oCACD,CAMA,uEACC,wBAAyB,CACzB,eAKD,CAHC,mFACC,0DACD,CASD,uLACC,+DACD",sourcesContent:["/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-menu-bar__menu {\n\t/*\n\t * List item buttons.\n\t */\n\t& .ck-button.ck-menu-bar__menu__item__button {\n\t\tborder-radius: 0;\n\n\t\t& > .ck-spinner-container,\n\t\t& > .ck-spinner-container .ck-spinner {\n\t\t\t/* These styles correspond to .ck-icon so that the spinner seamlessly replaces the icon. */\n\t\t\t--ck-toolbar-spinner-size: 20px;\n\t\t}\n\n\t\t& > .ck-spinner-container {\n\t\t\t/* These margins are the same as for .ck-icon. */\n\t\t\tmargin-left: calc(-1 * var(--ck-spacing-small));\n\t\t\tmargin-right: var(--ck-spacing-small);\n\t\t}\n\n\t\t/*\n\t\t * Hovered items automatically get focused. Default focus styles look odd\n\t\t * while moving across a huge list of items so let's get rid of them\n\t\t */\n\t\t&:focus {\n\t\t\tborder-color: transparent;\n\t\t\tbox-shadow: none;\n\n\t\t\t&:not(.ck-on) {\n\t\t\t\tbackground: var(--ck-color-button-default-hover-background);\n\t\t\t}\n\t\t}\n\t}\n\n\t/*\n\t * First-level sub-menu item buttons.\n\t */\n\t&.ck-menu-bar__menu_top-level > .ck-menu-bar__menu__panel > ul > .ck-menu-bar__menu__item > .ck-menu-bar__menu__item__button {\n\t\t/* Spacing in buttons that miss the icon. */\n\t\t&:not(:has(.ck-button__icon)) > .ck-button__label {\n\t\t\tmargin-left: calc(var(--ck-icon-size) - var(--ck-spacing-small));\n\t\t}\n\t}\n}\n\n\n"],sourceRoot:""}]);const a=s},9108:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(9372),i=n.n(o),r=n(935),s=n.n(r)()(i());s.push([t.id,":root{--ck-menu-bar-menu-max-width:75vw;--ck-menu-bar-nested-menu-horizontal-offset:5px}.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel{max-width:var(--ck-menu-bar-menu-max-width);position:absolute;z-index:var(--ck-z-panel)}.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_ne,.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_nw{bottom:100%}.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_se,.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_sw{bottom:auto;top:100%}.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_ne,.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_se{left:0}.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_nw,.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_sw{right:0}.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_en,.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_es{left:calc(100% - var(--ck-menu-bar-nested-menu-horizontal-offset))}.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_es{top:0}.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_en{bottom:0}.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_wn,.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_ws{right:calc(100% - var(--ck-menu-bar-nested-menu-horizontal-offset))}.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_ws{top:0}.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_wn{bottom:0}:root{--ck-menu-bar-menu-panel-max-width:75vw}.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel{border-radius:0}.ck-rounded-corners .ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel,.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel.ck-rounded-corners{border-radius:var(--ck-border-radius)}.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel{background:var(--ck-color-dropdown-panel-background);border:1px solid var(--ck-color-dropdown-panel-border);bottom:0;box-shadow:var(--ck-drop-shadow),0 0;height:fit-content;max-width:var(--ck-menu-bar-menu-panel-max-width)}.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_es,.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_se{border-top-left-radius:0}.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_sw,.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_ws{border-top-right-radius:0}.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_en,.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_ne{border-bottom-left-radius:0}.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_nw,.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_wn{border-bottom-right-radius:0}.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel:focus{outline:none}","",{version:3,sources:["webpack://./../ckeditor5-ui/theme/components/menubar/menubarmenupanel.css","webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/menubar/menubarmenupanel.css","webpack://./../ckeditor5-theme-lark/theme/mixins/_rounded.css","webpack://./../ckeditor5-theme-lark/theme/mixins/_shadow.css"],names:[],mappings:"AAKA,MACC,iCAAkC,CAClC,+CACD,CAEA,mDAEC,2CAA4C,CAC5C,iBAAkB,CAFlB,yBAkDD,CA9CC,gLAEC,WACD,CAEA,gLAGC,WAAY,CADZ,QAED,CAEA,gLAEC,MACD,CAEA,gLAEC,OACD,CAEA,gLAEC,kEACD,CAEA,wFACC,KACD,CAEA,wFACC,QACD,CAEA,gLAEC,mEACD,CAEA,wFACC,KACD,CAEA,wFACC,QACD,CCpDD,MACC,uCACD,CAEA,mDCDC,eDmCD,CAlCA,6ICGE,qCD+BF,CAlCA,mDAIC,oDAAqD,CACrD,sDAAuD,CACvD,QAAS,CETT,oCAA8B,CFU9B,kBAAmB,CACnB,iDA0BD,CAvBC,gLAEC,wBACD,CAEA,gLAEC,yBACD,CAEA,gLAEC,2BACD,CAEA,gLAEC,4BACD,CAEA,yDACC,YACD",sourcesContent:["/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n:root {\n\t--ck-menu-bar-menu-max-width: 75vw;\n\t--ck-menu-bar-nested-menu-horizontal-offset: 5px;\n}\n\n.ck.ck-menu-bar__menu > .ck.ck-menu-bar__menu__panel {\n\tz-index: var(--ck-z-panel);\n\tmax-width: var(--ck-menu-bar-menu-max-width);\n\tposition: absolute;\n\n\t&.ck-menu-bar__menu__panel_position_ne,\n\t&.ck-menu-bar__menu__panel_position_nw {\n\t\tbottom: 100%;\n\t}\n\n\t&.ck-menu-bar__menu__panel_position_se,\n\t&.ck-menu-bar__menu__panel_position_sw {\n\t\ttop: 100%;\n\t\tbottom: auto;\n\t}\n\n\t&.ck-menu-bar__menu__panel_position_ne,\n\t&.ck-menu-bar__menu__panel_position_se {\n\t\tleft: 0px;\n\t}\n\n\t&.ck-menu-bar__menu__panel_position_nw,\n\t&.ck-menu-bar__menu__panel_position_sw {\n\t\tright: 0px;\n\t}\n\n\t&.ck-menu-bar__menu__panel_position_es,\n\t&.ck-menu-bar__menu__panel_position_en {\n\t\tleft: calc( 100% - var(--ck-menu-bar-nested-menu-horizontal-offset) );\n\t}\n\n\t&.ck-menu-bar__menu__panel_position_es {\n\t\ttop: 0px;\n\t}\n\n\t&.ck-menu-bar__menu__panel_position_en {\n\t\tbottom: 0px;\n\t}\n\n\t&.ck-menu-bar__menu__panel_position_ws,\n\t&.ck-menu-bar__menu__panel_position_wn {\n\t\tright: calc( 100% - var(--ck-menu-bar-nested-menu-horizontal-offset) );\n\t}\n\n\t&.ck-menu-bar__menu__panel_position_ws {\n\t\ttop: 0px;\n\t}\n\n\t&.ck-menu-bar__menu__panel_position_wn {\n\t\tbottom: 0px;\n\t}\n}\n",'/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "../../../mixins/_rounded.css";\n@import "../../../mixins/_shadow.css";\n\n:root {\n\t--ck-menu-bar-menu-panel-max-width: 75vw;\n}\n\n.ck.ck-menu-bar__menu > .ck.ck-menu-bar__menu__panel {\n\t@mixin ck-rounded-corners;\n\t@mixin ck-drop-shadow;\n\n\tbackground: var(--ck-color-dropdown-panel-background);\n\tborder: 1px solid var(--ck-color-dropdown-panel-border);\n\tbottom: 0;\n\theight: fit-content;\n\tmax-width: var(--ck-menu-bar-menu-panel-max-width);\n\n\t/* Corner border radius consistent with the button. */\n\t&.ck-menu-bar__menu__panel_position_es,\n\t&.ck-menu-bar__menu__panel_position_se {\n\t\tborder-top-left-radius: 0;\n\t}\n\n\t&.ck-menu-bar__menu__panel_position_ws,\n\t&.ck-menu-bar__menu__panel_position_sw {\n\t\tborder-top-right-radius: 0;\n\t}\n\n\t&.ck-menu-bar__menu__panel_position_en,\n\t&.ck-menu-bar__menu__panel_position_ne {\n\t\tborder-bottom-left-radius: 0;\n\t}\n\n\t&.ck-menu-bar__menu__panel_position_wn,\n\t&.ck-menu-bar__menu__panel_position_nw {\n\t\tborder-bottom-right-radius: 0;\n\t}\n\n\t&:focus {\n\t\toutline: none;\n\t}\n}\n',"/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * Implements rounded corner interface for .ck-rounded-corners class.\n *\n * @see $ck-border-radius\n */\n@define-mixin ck-rounded-corners {\n\tborder-radius: 0;\n\n\t@nest .ck-rounded-corners &,\n\t&.ck-rounded-corners {\n\t\tborder-radius: var(--ck-border-radius);\n\t\t@mixin-content;\n\t}\n}\n","/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * A helper to combine multiple shadows.\n */\n@define-mixin ck-box-shadow $shadowA, $shadowB: 0 0 {\n\tbox-shadow: $shadowA, $shadowB;\n}\n\n/**\n * Gives an element a drop shadow so it looks like a floating panel.\n */\n@define-mixin ck-drop-shadow {\n\t@mixin ck-box-shadow var(--ck-drop-shadow);\n}\n"],sourceRoot:""}]);const a=s},3710:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(9372),i=n.n(o),r=n(935),s=n.n(r)()(i());s.push([t.id,':root{--ck-balloon-panel-arrow-z-index:calc(var(--ck-z-default) - 3)}.ck.ck-balloon-panel{display:none;position:absolute;z-index:var(--ck-z-panel)}.ck.ck-balloon-panel.ck-balloon-panel_with-arrow:after,.ck.ck-balloon-panel.ck-balloon-panel_with-arrow:before{content:"";position:absolute}.ck.ck-balloon-panel.ck-balloon-panel_with-arrow:before{z-index:var(--ck-balloon-panel-arrow-z-index)}.ck.ck-balloon-panel.ck-balloon-panel_with-arrow:after{z-index:calc(var(--ck-balloon-panel-arrow-z-index) + 1)}.ck.ck-balloon-panel[class*=arrow_n]:before{z-index:var(--ck-balloon-panel-arrow-z-index)}.ck.ck-balloon-panel[class*=arrow_n]:after{z-index:calc(var(--ck-balloon-panel-arrow-z-index) + 1)}.ck.ck-balloon-panel[class*=arrow_s]:before{z-index:var(--ck-balloon-panel-arrow-z-index)}.ck.ck-balloon-panel[class*=arrow_s]:after{z-index:calc(var(--ck-balloon-panel-arrow-z-index) + 1)}.ck.ck-balloon-panel.ck-balloon-panel_visible{display:block}:root{--ck-balloon-border-width:1px;--ck-balloon-arrow-offset:2px;--ck-balloon-arrow-height:10px;--ck-balloon-arrow-half-width:8px;--ck-balloon-arrow-drop-shadow:0 2px 2px var(--ck-color-shadow-drop)}.ck.ck-balloon-panel{border-radius:0}.ck-rounded-corners .ck.ck-balloon-panel,.ck.ck-balloon-panel.ck-rounded-corners{border-radius:var(--ck-border-radius)}.ck.ck-balloon-panel{background:var(--ck-color-panel-background);border:var(--ck-balloon-border-width) solid var(--ck-color-panel-border);box-shadow:var(--ck-drop-shadow),0 0;min-height:15px}.ck.ck-balloon-panel.ck-balloon-panel_with-arrow:after,.ck.ck-balloon-panel.ck-balloon-panel_with-arrow:before{border-style:solid;height:0;width:0}.ck.ck-balloon-panel[class*=arrow_n]:after,.ck.ck-balloon-panel[class*=arrow_n]:before{border-width:0 var(--ck-balloon-arrow-half-width) var(--ck-balloon-arrow-height) var(--ck-balloon-arrow-half-width)}.ck.ck-balloon-panel[class*=arrow_n]:before{border-color:transparent transparent var(--ck-color-panel-border) transparent;margin-top:calc(var(--ck-balloon-border-width)*-1)}.ck.ck-balloon-panel[class*=arrow_n]:after{border-color:transparent transparent var(--ck-color-panel-background) transparent;margin-top:calc(var(--ck-balloon-arrow-offset) - var(--ck-balloon-border-width))}.ck.ck-balloon-panel[class*=arrow_s]:after,.ck.ck-balloon-panel[class*=arrow_s]:before{border-width:var(--ck-balloon-arrow-height) var(--ck-balloon-arrow-half-width) 0 var(--ck-balloon-arrow-half-width)}.ck.ck-balloon-panel[class*=arrow_s]:before{border-color:var(--ck-color-panel-border) transparent transparent;filter:drop-shadow(var(--ck-balloon-arrow-drop-shadow));margin-bottom:calc(var(--ck-balloon-border-width)*-1)}.ck.ck-balloon-panel[class*=arrow_s]:after{border-color:var(--ck-color-panel-background) transparent transparent transparent;margin-bottom:calc(var(--ck-balloon-arrow-offset) - var(--ck-balloon-border-width))}.ck.ck-balloon-panel[class*=arrow_e]:after,.ck.ck-balloon-panel[class*=arrow_e]:before{border-width:var(--ck-balloon-arrow-half-width) 0 var(--ck-balloon-arrow-half-width) var(--ck-balloon-arrow-height)}.ck.ck-balloon-panel[class*=arrow_e]:before{border-color:transparent transparent transparent var(--ck-color-panel-border);margin-right:calc(var(--ck-balloon-border-width)*-1)}.ck.ck-balloon-panel[class*=arrow_e]:after{border-color:transparent transparent transparent var(--ck-color-panel-background);margin-right:calc(var(--ck-balloon-arrow-offset) - var(--ck-balloon-border-width))}.ck.ck-balloon-panel[class*=arrow_w]:after,.ck.ck-balloon-panel[class*=arrow_w]:before{border-width:var(--ck-balloon-arrow-half-width) var(--ck-balloon-arrow-height) var(--ck-balloon-arrow-half-width) 0}.ck.ck-balloon-panel[class*=arrow_w]:before{border-color:transparent var(--ck-color-panel-border) transparent transparent;margin-left:calc(var(--ck-balloon-border-width)*-1)}.ck.ck-balloon-panel[class*=arrow_w]:after{border-color:transparent var(--ck-color-panel-background) transparent transparent;margin-left:calc(var(--ck-balloon-arrow-offset) - var(--ck-balloon-border-width))}.ck.ck-balloon-panel.ck-balloon-panel_arrow_n:after,.ck.ck-balloon-panel.ck-balloon-panel_arrow_n:before{left:50%;margin-left:calc(var(--ck-balloon-arrow-half-width)*-1);top:calc(var(--ck-balloon-arrow-height)*-1)}.ck.ck-balloon-panel.ck-balloon-panel_arrow_nw:after,.ck.ck-balloon-panel.ck-balloon-panel_arrow_nw:before{left:calc(var(--ck-balloon-arrow-half-width)*2);top:calc(var(--ck-balloon-arrow-height)*-1)}.ck.ck-balloon-panel.ck-balloon-panel_arrow_ne:after,.ck.ck-balloon-panel.ck-balloon-panel_arrow_ne:before{right:calc(var(--ck-balloon-arrow-half-width)*2);top:calc(var(--ck-balloon-arrow-height)*-1)}.ck.ck-balloon-panel.ck-balloon-panel_arrow_s:after,.ck.ck-balloon-panel.ck-balloon-panel_arrow_s:before{bottom:calc(var(--ck-balloon-arrow-height)*-1);left:50%;margin-left:calc(var(--ck-balloon-arrow-half-width)*-1)}.ck.ck-balloon-panel.ck-balloon-panel_arrow_sw:after,.ck.ck-balloon-panel.ck-balloon-panel_arrow_sw:before{bottom:calc(var(--ck-balloon-arrow-height)*-1);left:calc(var(--ck-balloon-arrow-half-width)*2)}.ck.ck-balloon-panel.ck-balloon-panel_arrow_se:after,.ck.ck-balloon-panel.ck-balloon-panel_arrow_se:before{bottom:calc(var(--ck-balloon-arrow-height)*-1);right:calc(var(--ck-balloon-arrow-half-width)*2)}.ck.ck-balloon-panel.ck-balloon-panel_arrow_sme:after,.ck.ck-balloon-panel.ck-balloon-panel_arrow_sme:before{bottom:calc(var(--ck-balloon-arrow-height)*-1);margin-right:calc(var(--ck-balloon-arrow-half-width)*2);right:25%}.ck.ck-balloon-panel.ck-balloon-panel_arrow_smw:after,.ck.ck-balloon-panel.ck-balloon-panel_arrow_smw:before{bottom:calc(var(--ck-balloon-arrow-height)*-1);left:25%;margin-left:calc(var(--ck-balloon-arrow-half-width)*2)}.ck.ck-balloon-panel.ck-balloon-panel_arrow_nme:after,.ck.ck-balloon-panel.ck-balloon-panel_arrow_nme:before{margin-right:calc(var(--ck-balloon-arrow-half-width)*2);right:25%;top:calc(var(--ck-balloon-arrow-height)*-1)}.ck.ck-balloon-panel.ck-balloon-panel_arrow_nmw:after,.ck.ck-balloon-panel.ck-balloon-panel_arrow_nmw:before{left:25%;margin-left:calc(var(--ck-balloon-arrow-half-width)*2);top:calc(var(--ck-balloon-arrow-height)*-1)}.ck.ck-balloon-panel.ck-balloon-panel_arrow_e:after,.ck.ck-balloon-panel.ck-balloon-panel_arrow_e:before{margin-top:calc(var(--ck-balloon-arrow-half-width)*-1);right:calc(var(--ck-balloon-arrow-height)*-1);top:50%}.ck.ck-balloon-panel.ck-balloon-panel_arrow_w:after,.ck.ck-balloon-panel.ck-balloon-panel_arrow_w:before{left:calc(var(--ck-balloon-arrow-height)*-1);margin-top:calc(var(--ck-balloon-arrow-half-width)*-1);top:50%}',"",{version:3,sources:["webpack://./../ckeditor5-ui/theme/components/panel/balloonpanel.css","webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/panel/balloonpanel.css","webpack://./../ckeditor5-theme-lark/theme/mixins/_rounded.css","webpack://./../ckeditor5-theme-lark/theme/mixins/_shadow.css"],names:[],mappings:"AAKA,MAEC,8DACD,CAEA,qBACC,YAAa,CACb,iBAAkB,CAElB,yBAyCD,CAtCE,+GAEC,UAAW,CACX,iBACD,CAEA,wDACC,6CACD,CAEA,uDACC,uDACD,CAIA,4CACC,6CACD,CAEA,2CACC,uDACD,CAIA,4CACC,6CACD,CAEA,2CACC,uDACD,CAGD,8CACC,aACD,CC9CD,MACC,6BAA8B,CAC9B,6BAA8B,CAC9B,8BAA+B,CAC/B,iCAAkC,CAClC,oEACD,CAEA,qBCLC,eDmMD,CA9LA,iFCDE,qCD+LF,CA9LA,qBAMC,2CAA4C,CAC5C,wEAAyE,CEdzE,oCAA8B,CFW9B,eA0LD,CApLE,+GAIC,kBAAmB,CADnB,QAAS,CADT,OAGD,CAIA,uFAEC,mHACD,CAEA,4CACC,6EAA8E,CAC9E,kDACD,CAEA,2CACC,iFAAkF,CAClF,gFACD,CAIA,uFAEC,mHACD,CAEA,4CACC,iEAAkE,CAClE,uDAAwD,CACxD,qDACD,CAEA,2CACC,iFAAkF,CAClF,mFACD,CAIA,uFAEC,mHACD,CAEA,4CACC,6EAA8E,CAC9E,oDACD,CAEA,2CACC,iFAAkF,CAClF,kFACD,CAIA,uFAEC,mHACD,CAEA,4CACC,6EAA8E,CAC9E,mDACD,CAEA,2CACC,iFAAkF,CAClF,iFACD,CAIA,yGAEC,QAAS,CACT,uDAA0D,CAC1D,2CACD,CAIA,2GAEC,+CAAkD,CAClD,2CACD,CAIA,2GAEC,gDAAmD,CACnD,2CACD,CAIA,yGAIC,8CAAiD,CAFjD,QAAS,CACT,uDAED,CAIA,2GAGC,8CAAiD,CADjD,+CAED,CAIA,2GAGC,8CAAiD,CADjD,gDAED,CAIA,6GAIC,8CAAiD,CADjD,uDAA0D,CAD1D,SAGD,CAIA,6GAIC,8CAAiD,CAFjD,QAAS,CACT,sDAED,CAIA,6GAGC,uDAA0D,CAD1D,SAAU,CAEV,2CACD,CAIA,6GAEC,QAAS,CACT,sDAAyD,CACzD,2CACD,CAIA,yGAGC,sDAAyD,CADzD,6CAAgD,CAEhD,OACD,CAIA,yGAEC,4CAA+C,CAC/C,sDAAyD,CACzD,OACD",sourcesContent:['/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n:root {\n\t/* Make sure the balloon arrow does not float over its children. */\n\t--ck-balloon-panel-arrow-z-index: calc(var(--ck-z-default) - 3);\n}\n\n.ck.ck-balloon-panel {\n\tdisplay: none;\n\tposition: absolute;\n\n\tz-index: var(--ck-z-panel);\n\n\t&.ck-balloon-panel_with-arrow {\n\t\t&::before,\n\t\t&::after {\n\t\t\tcontent: "";\n\t\t\tposition: absolute;\n\t\t}\n\n\t\t&::before {\n\t\t\tz-index: var(--ck-balloon-panel-arrow-z-index);\n\t\t}\n\n\t\t&::after {\n\t\t\tz-index: calc(var(--ck-balloon-panel-arrow-z-index) + 1);\n\t\t}\n\t}\n\n\t&[class*="arrow_n"] {\n\t\t&::before {\n\t\t\tz-index: var(--ck-balloon-panel-arrow-z-index);\n\t\t}\n\n\t\t&::after {\n\t\t\tz-index: calc(var(--ck-balloon-panel-arrow-z-index) + 1);\n\t\t}\n\t}\n\n\t&[class*="arrow_s"] {\n\t\t&::before {\n\t\t\tz-index: var(--ck-balloon-panel-arrow-z-index);\n\t\t}\n\n\t\t&::after {\n\t\t\tz-index: calc(var(--ck-balloon-panel-arrow-z-index) + 1);\n\t\t}\n\t}\n\n\t&.ck-balloon-panel_visible {\n\t\tdisplay: block;\n\t}\n}\n','/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "../../../mixins/_rounded.css";\n@import "../../../mixins/_shadow.css";\n\n:root {\n\t--ck-balloon-border-width: 1px;\n\t--ck-balloon-arrow-offset: 2px;\n\t--ck-balloon-arrow-height: 10px;\n\t--ck-balloon-arrow-half-width: 8px;\n\t--ck-balloon-arrow-drop-shadow: 0 2px 2px var(--ck-color-shadow-drop);\n}\n\n.ck.ck-balloon-panel {\n\t@mixin ck-rounded-corners;\n\t@mixin ck-drop-shadow;\n\n\tmin-height: 15px;\n\n\tbackground: var(--ck-color-panel-background);\n\tborder: var(--ck-balloon-border-width) solid var(--ck-color-panel-border);\n\n\t&.ck-balloon-panel_with-arrow {\n\t\t&::before,\n\t\t&::after {\n\t\t\twidth: 0;\n\t\t\theight: 0;\n\t\t\tborder-style: solid;\n\t\t}\n\t}\n\n\t&[class*="arrow_n"] {\n\t\t&::before,\n\t\t&::after {\n\t\t\tborder-width: 0 var(--ck-balloon-arrow-half-width) var(--ck-balloon-arrow-height) var(--ck-balloon-arrow-half-width);\n\t\t}\n\n\t\t&::before {\n\t\t\tborder-color: transparent transparent var(--ck-color-panel-border) transparent;\n\t\t\tmargin-top: calc( -1 * var(--ck-balloon-border-width) );\n\t\t}\n\n\t\t&::after {\n\t\t\tborder-color: transparent transparent var(--ck-color-panel-background) transparent;\n\t\t\tmargin-top: calc( var(--ck-balloon-arrow-offset) - var(--ck-balloon-border-width) );\n\t\t}\n\t}\n\n\t&[class*="arrow_s"] {\n\t\t&::before,\n\t\t&::after {\n\t\t\tborder-width: var(--ck-balloon-arrow-height) var(--ck-balloon-arrow-half-width) 0 var(--ck-balloon-arrow-half-width);\n\t\t}\n\n\t\t&::before {\n\t\t\tborder-color: var(--ck-color-panel-border) transparent transparent;\n\t\t\tfilter: drop-shadow(var(--ck-balloon-arrow-drop-shadow));\n\t\t\tmargin-bottom: calc( -1 * var(--ck-balloon-border-width) );\n\t\t}\n\n\t\t&::after {\n\t\t\tborder-color: var(--ck-color-panel-background) transparent transparent transparent;\n\t\t\tmargin-bottom: calc( var(--ck-balloon-arrow-offset) - var(--ck-balloon-border-width) );\n\t\t}\n\t}\n\n\t&[class*="arrow_e"] {\n\t\t&::before,\n\t\t&::after {\n\t\t\tborder-width: var(--ck-balloon-arrow-half-width) 0 var(--ck-balloon-arrow-half-width) var(--ck-balloon-arrow-height);\n\t\t}\n\n\t\t&::before {\n\t\t\tborder-color: transparent transparent transparent var(--ck-color-panel-border);\n\t\t\tmargin-right: calc( -1 * var(--ck-balloon-border-width) );\n\t\t}\n\n\t\t&::after {\n\t\t\tborder-color: transparent transparent transparent var(--ck-color-panel-background);\n\t\t\tmargin-right: calc( var(--ck-balloon-arrow-offset) - var(--ck-balloon-border-width) );\n\t\t}\n\t}\n\n\t&[class*="arrow_w"] {\n\t\t&::before,\n\t\t&::after {\n\t\t\tborder-width: var(--ck-balloon-arrow-half-width) var(--ck-balloon-arrow-height) var(--ck-balloon-arrow-half-width) 0;\n\t\t}\n\n\t\t&::before {\n\t\t\tborder-color: transparent var(--ck-color-panel-border) transparent transparent;\n\t\t\tmargin-left: calc( -1 * var(--ck-balloon-border-width) );\n\t\t}\n\n\t\t&::after {\n\t\t\tborder-color: transparent var(--ck-color-panel-background) transparent transparent;\n\t\t\tmargin-left: calc( var(--ck-balloon-arrow-offset) - var(--ck-balloon-border-width) );\n\t\t}\n\t}\n\n\t&.ck-balloon-panel_arrow_n {\n\t\t&::before,\n\t\t&::after {\n\t\t\tleft: 50%;\n\t\t\tmargin-left: calc(-1 * var(--ck-balloon-arrow-half-width));\n\t\t\ttop: calc(-1 * var(--ck-balloon-arrow-height));\n\t\t}\n\t}\n\n\t&.ck-balloon-panel_arrow_nw {\n\t\t&::before,\n\t\t&::after {\n\t\t\tleft: calc(2 * var(--ck-balloon-arrow-half-width));\n\t\t\ttop: calc(-1 * var(--ck-balloon-arrow-height));\n\t\t}\n\t}\n\n\t&.ck-balloon-panel_arrow_ne {\n\t\t&::before,\n\t\t&::after {\n\t\t\tright: calc(2 * var(--ck-balloon-arrow-half-width));\n\t\t\ttop: calc(-1 * var(--ck-balloon-arrow-height));\n\t\t}\n\t}\n\n\t&.ck-balloon-panel_arrow_s {\n\t\t&::before,\n\t\t&::after {\n\t\t\tleft: 50%;\n\t\t\tmargin-left: calc(-1 * var(--ck-balloon-arrow-half-width));\n\t\t\tbottom: calc(-1 * var(--ck-balloon-arrow-height));\n\t\t}\n\t}\n\n\t&.ck-balloon-panel_arrow_sw {\n\t\t&::before,\n\t\t&::after {\n\t\t\tleft: calc(2 * var(--ck-balloon-arrow-half-width));\n\t\t\tbottom: calc(-1 * var(--ck-balloon-arrow-height));\n\t\t}\n\t}\n\n\t&.ck-balloon-panel_arrow_se {\n\t\t&::before,\n\t\t&::after {\n\t\t\tright: calc(2 * var(--ck-balloon-arrow-half-width));\n\t\t\tbottom: calc(-1 * var(--ck-balloon-arrow-height));\n\t\t}\n\t}\n\n\t&.ck-balloon-panel_arrow_sme {\n\t\t&::before,\n\t\t&::after {\n\t\t\tright: 25%;\n\t\t\tmargin-right: calc(2 * var(--ck-balloon-arrow-half-width));\n\t\t\tbottom: calc(-1 * var(--ck-balloon-arrow-height));\n\t\t}\n\t}\n\n\t&.ck-balloon-panel_arrow_smw {\n\t\t&::before,\n\t\t&::after {\n\t\t\tleft: 25%;\n\t\t\tmargin-left: calc(2 * var(--ck-balloon-arrow-half-width));\n\t\t\tbottom: calc(-1 * var(--ck-balloon-arrow-height));\n\t\t}\n\t}\n\n\t&.ck-balloon-panel_arrow_nme {\n\t\t&::before,\n\t\t&::after {\n\t\t\tright: 25%;\n\t\t\tmargin-right: calc(2 * var(--ck-balloon-arrow-half-width));\n\t\t\ttop: calc(-1 * var(--ck-balloon-arrow-height));\n\t\t}\n\t}\n\n\t&.ck-balloon-panel_arrow_nmw {\n\t\t&::before,\n\t\t&::after {\n\t\t\tleft: 25%;\n\t\t\tmargin-left: calc(2 * var(--ck-balloon-arrow-half-width));\n\t\t\ttop: calc(-1 * var(--ck-balloon-arrow-height));\n\t\t}\n\t}\n\n\t&.ck-balloon-panel_arrow_e {\n\t\t&::before,\n\t\t&::after {\n\t\t\tright: calc(-1 * var(--ck-balloon-arrow-height));\n\t\t\tmargin-top: calc(-1 * var(--ck-balloon-arrow-half-width));\n\t\t\ttop: 50%;\n\t\t}\n\t}\n\n\t&.ck-balloon-panel_arrow_w {\n\t\t&::before,\n\t\t&::after {\n\t\t\tleft: calc(-1 * var(--ck-balloon-arrow-height));\n\t\t\tmargin-top: calc(-1 * var(--ck-balloon-arrow-half-width));\n\t\t\ttop: 50%;\n\t\t}\n\t}\n}\n',"/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * Implements rounded corner interface for .ck-rounded-corners class.\n *\n * @see $ck-border-radius\n */\n@define-mixin ck-rounded-corners {\n\tborder-radius: 0;\n\n\t@nest .ck-rounded-corners &,\n\t&.ck-rounded-corners {\n\t\tborder-radius: var(--ck-border-radius);\n\t\t@mixin-content;\n\t}\n}\n","/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * A helper to combine multiple shadows.\n */\n@define-mixin ck-box-shadow $shadowA, $shadowB: 0 0 {\n\tbox-shadow: $shadowA, $shadowB;\n}\n\n/**\n * Gives an element a drop shadow so it looks like a floating panel.\n */\n@define-mixin ck-drop-shadow {\n\t@mixin ck-box-shadow var(--ck-drop-shadow);\n}\n"],sourceRoot:""}]);const a=s},991:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(9372),i=n.n(o),r=n(935),s=n.n(r)()(i());s.push([t.id,".ck .ck-balloon-rotator__navigation{align-items:center;display:flex;justify-content:center}.ck .ck-balloon-rotator__content .ck-toolbar{justify-content:center}.ck .ck-balloon-rotator__navigation{background:var(--ck-color-toolbar-background);border-bottom:1px solid var(--ck-color-toolbar-border);padding:0 var(--ck-spacing-small)}.ck .ck-balloon-rotator__navigation>*{margin-bottom:var(--ck-spacing-small);margin-right:var(--ck-spacing-small);margin-top:var(--ck-spacing-small)}.ck .ck-balloon-rotator__navigation .ck-balloon-rotator__counter{margin-left:var(--ck-spacing-small);margin-right:var(--ck-spacing-standard)}.ck .ck-balloon-rotator__content .ck.ck-annotation-wrapper{box-shadow:none}","",{version:3,sources:["webpack://./../ckeditor5-ui/theme/components/panel/balloonrotator.css","webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/panel/balloonrotator.css"],names:[],mappings:"AAKA,oCAEC,kBAAmB,CADnB,YAAa,CAEb,sBACD,CAKA,6CACC,sBACD,CCXA,oCACC,6CAA8C,CAC9C,sDAAuD,CACvD,iCAgBD,CAbC,sCAGC,qCAAsC,CAFtC,oCAAqC,CACrC,kCAED,CAGA,iEAIC,mCAAoC,CAHpC,uCAID,CAMA,2DACC,eACD",sourcesContent:["/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck .ck-balloon-rotator__navigation {\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n}\n\n/* Buttons inside a toolbar should be centered when rotator bar is wider.\n * See: https://github.com/ckeditor/ckeditor5-ui/issues/495\n */\n.ck .ck-balloon-rotator__content .ck-toolbar {\n\tjustify-content: center;\n}\n","/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck .ck-balloon-rotator__navigation {\n\tbackground: var(--ck-color-toolbar-background);\n\tborder-bottom: 1px solid var(--ck-color-toolbar-border);\n\tpadding: 0 var(--ck-spacing-small);\n\n\t/* Let's keep similar appearance to `ck-toolbar`. */\n\t& > * {\n\t\tmargin-right: var(--ck-spacing-small);\n\t\tmargin-top: var(--ck-spacing-small);\n\t\tmargin-bottom: var(--ck-spacing-small);\n\t}\n\n\t/* Gives counter more breath than buttons. */\n\t& .ck-balloon-rotator__counter {\n\t\tmargin-right: var(--ck-spacing-standard);\n\n\t\t/* We need to use smaller margin because of previous button's right margin. */\n\t\tmargin-left: var(--ck-spacing-small);\n\t}\n}\n\n.ck .ck-balloon-rotator__content {\n\n\t/* Disable default annotation shadow inside rotator with fake panels. */\n\t& .ck.ck-annotation-wrapper {\n\t\tbox-shadow: none;\n\t}\n}\n"],sourceRoot:""}]);const a=s},5380:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(9372),i=n.n(o),r=n(935),s=n.n(r)()(i());s.push([t.id,".ck .ck-fake-panel{position:absolute;z-index:calc(var(--ck-z-panel) - 1)}.ck .ck-fake-panel div{position:absolute}.ck .ck-fake-panel div:first-child{z-index:2}.ck .ck-fake-panel div:nth-child(2){z-index:1}:root{--ck-balloon-fake-panel-offset-horizontal:6px;--ck-balloon-fake-panel-offset-vertical:6px}.ck .ck-fake-panel div{background:var(--ck-color-panel-background);border:1px solid var(--ck-color-panel-border);border-radius:var(--ck-border-radius);box-shadow:var(--ck-drop-shadow),0 0;height:100%;min-height:15px;width:100%}.ck .ck-fake-panel div:first-child{margin-left:var(--ck-balloon-fake-panel-offset-horizontal);margin-top:var(--ck-balloon-fake-panel-offset-vertical)}.ck .ck-fake-panel div:nth-child(2){margin-left:calc(var(--ck-balloon-fake-panel-offset-horizontal)*2);margin-top:calc(var(--ck-balloon-fake-panel-offset-vertical)*2)}.ck .ck-fake-panel div:nth-child(3){margin-left:calc(var(--ck-balloon-fake-panel-offset-horizontal)*3);margin-top:calc(var(--ck-balloon-fake-panel-offset-vertical)*3)}.ck .ck-balloon-panel_arrow_s+.ck-fake-panel,.ck .ck-balloon-panel_arrow_se+.ck-fake-panel,.ck .ck-balloon-panel_arrow_sw+.ck-fake-panel{--ck-balloon-fake-panel-offset-vertical:-6px}","",{version:3,sources:["webpack://./../ckeditor5-ui/theme/components/panel/fakepanel.css","webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/panel/fakepanel.css","webpack://./../ckeditor5-theme-lark/theme/mixins/_shadow.css"],names:[],mappings:"AAKA,mBACC,iBAAkB,CAGlB,mCACD,CAEA,uBACC,iBACD,CAEA,mCACC,SACD,CAEA,oCACC,SACD,CCfA,MACC,6CAA8C,CAC9C,2CACD,CAGA,uBAKC,2CAA4C,CAC5C,6CAA8C,CAC9C,qCAAsC,CCXtC,oCAA8B,CDc9B,WAAY,CAPZ,eAAgB,CAMhB,UAED,CAEA,mCACC,0DAA2D,CAC3D,uDACD,CAEA,oCACC,kEAAqE,CACrE,+DACD,CACA,oCACC,kEAAqE,CACrE,+DACD,CAGA,yIAGC,4CACD",sourcesContent:["/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck .ck-fake-panel {\n\tposition: absolute;\n\n\t/* Fake panels should be placed under main balloon content. */\n\tz-index: calc(var(--ck-z-panel) - 1);\n}\n\n.ck .ck-fake-panel div {\n\tposition: absolute;\n}\n\n.ck .ck-fake-panel div:nth-child( 1 ) {\n\tz-index: 2;\n}\n\n.ck .ck-fake-panel div:nth-child( 2 ) {\n\tz-index: 1;\n}\n",'/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "../../../mixins/_shadow.css";\n\n:root {\n\t--ck-balloon-fake-panel-offset-horizontal: 6px;\n\t--ck-balloon-fake-panel-offset-vertical: 6px;\n}\n\n/* Let\'s use `.ck-balloon-panel` appearance. See: balloonpanel.css. */\n.ck .ck-fake-panel div {\n\t@mixin ck-drop-shadow;\n\n\tmin-height: 15px;\n\n\tbackground: var(--ck-color-panel-background);\n\tborder: 1px solid var(--ck-color-panel-border);\n\tborder-radius: var(--ck-border-radius);\n\n\twidth: 100%;\n\theight: 100%;\n}\n\n.ck .ck-fake-panel div:nth-child( 1 ) {\n\tmargin-left: var(--ck-balloon-fake-panel-offset-horizontal);\n\tmargin-top: var(--ck-balloon-fake-panel-offset-vertical);\n}\n\n.ck .ck-fake-panel div:nth-child( 2 ) {\n\tmargin-left: calc(var(--ck-balloon-fake-panel-offset-horizontal) * 2);\n\tmargin-top: calc(var(--ck-balloon-fake-panel-offset-vertical) * 2);\n}\n.ck .ck-fake-panel div:nth-child( 3 ) {\n\tmargin-left: calc(var(--ck-balloon-fake-panel-offset-horizontal) * 3);\n\tmargin-top: calc(var(--ck-balloon-fake-panel-offset-vertical) * 3);\n}\n\n/* If balloon is positioned above element, we need to move fake panel to the top. */\n.ck .ck-balloon-panel_arrow_s + .ck-fake-panel,\n.ck .ck-balloon-panel_arrow_se + .ck-fake-panel,\n.ck .ck-balloon-panel_arrow_sw + .ck-fake-panel {\n\t--ck-balloon-fake-panel-offset-vertical: -6px;\n}\n',"/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * A helper to combine multiple shadows.\n */\n@define-mixin ck-box-shadow $shadowA, $shadowB: 0 0 {\n\tbox-shadow: $shadowA, $shadowB;\n}\n\n/**\n * Gives an element a drop shadow so it looks like a floating panel.\n */\n@define-mixin ck-drop-shadow {\n\t@mixin ck-box-shadow var(--ck-drop-shadow);\n}\n"],sourceRoot:""}]);const a=s},8298:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(9372),i=n.n(o),r=n(935),s=n.n(r)()(i());s.push([t.id,".ck.ck-sticky-panel .ck-sticky-panel__content_sticky{position:fixed;top:0;z-index:var(--ck-z-panel)}.ck.ck-sticky-panel .ck-sticky-panel__content_sticky_bottom-limit{position:absolute;top:auto}.ck.ck-sticky-panel .ck-sticky-panel__content_sticky{border-top-left-radius:0;border-top-right-radius:0;border-width:0 1px 1px;box-shadow:var(--ck-drop-shadow),0 0}","",{version:3,sources:["webpack://./../ckeditor5-ui/theme/components/panel/stickypanel.css","webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/panel/stickypanel.css","webpack://./../ckeditor5-theme-lark/theme/mixins/_shadow.css"],names:[],mappings:"AAMC,qDAEC,cAAe,CACf,KAAM,CAFN,yBAGD,CAEA,kEAEC,iBAAkB,CADlB,QAED,CCPA,qDAIC,wBAAyB,CACzB,yBAA0B,CAF1B,sBAAuB,CCFxB,oCDKA",sourcesContent:["/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-sticky-panel {\n\t& .ck-sticky-panel__content_sticky {\n\t\tz-index: var(--ck-z-panel); /* #315 */\n\t\tposition: fixed;\n\t\ttop: 0;\n\t}\n\n\t& .ck-sticky-panel__content_sticky_bottom-limit {\n\t\ttop: auto;\n\t\tposition: absolute;\n\t}\n}\n",'/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "../../../mixins/_shadow.css";\n\n.ck.ck-sticky-panel {\n\t& .ck-sticky-panel__content_sticky {\n\t\t@mixin ck-drop-shadow;\n\n\t\tborder-width: 0 1px 1px;\n\t\tborder-top-left-radius: 0;\n\t\tborder-top-right-radius: 0;\n\t}\n}\n',"/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * A helper to combine multiple shadows.\n */\n@define-mixin ck-box-shadow $shadowA, $shadowB: 0 0 {\n\tbox-shadow: $shadowA, $shadowB;\n}\n\n/**\n * Gives an element a drop shadow so it looks like a floating panel.\n */\n@define-mixin ck-drop-shadow {\n\t@mixin ck-box-shadow var(--ck-drop-shadow);\n}\n"],sourceRoot:""}]);const a=s},2722:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(9372),i=n.n(o),r=n(935),s=n.n(r)()(i());s.push([t.id,'.ck-vertical-form .ck-button:after{bottom:-1px;content:"";position:absolute;right:-1px;top:-1px;width:0;z-index:1}.ck-vertical-form .ck-button:focus:after{display:none}@media screen and (max-width:600px){.ck.ck-responsive-form .ck-button:after{bottom:-1px;content:"";position:absolute;right:-1px;top:-1px;width:0;z-index:1}.ck.ck-responsive-form .ck-button:focus:after{display:none}}.ck-vertical-form>.ck-button:nth-last-child(2):after{border-right:1px solid var(--ck-color-base-border)}.ck.ck-responsive-form{padding:var(--ck-spacing-large)}.ck.ck-responsive-form:focus{outline:none}[dir=ltr] .ck.ck-responsive-form>:not(:first-child),[dir=rtl] .ck.ck-responsive-form>:not(:last-child){margin-left:var(--ck-spacing-standard)}@media screen and (max-width:600px){.ck.ck-responsive-form{padding:0;width:calc(var(--ck-input-width)*.8)}.ck.ck-responsive-form .ck-labeled-field-view{margin:var(--ck-spacing-large) var(--ck-spacing-large) 0}.ck.ck-responsive-form .ck-labeled-field-view .ck-input-number,.ck.ck-responsive-form .ck-labeled-field-view .ck-input-text{min-width:0;width:100%}.ck.ck-responsive-form .ck-labeled-field-view .ck-labeled-field-view__error{white-space:normal}.ck.ck-responsive-form>.ck-button:nth-last-child(2):after{border-right:1px solid var(--ck-color-base-border)}.ck.ck-responsive-form>.ck-button:last-child,.ck.ck-responsive-form>.ck-button:nth-last-child(2){border-radius:0;margin-top:var(--ck-spacing-large);padding:var(--ck-spacing-standard)}.ck.ck-responsive-form>.ck-button:last-child:not(:focus),.ck.ck-responsive-form>.ck-button:nth-last-child(2):not(:focus){border-top:1px solid var(--ck-color-base-border)}[dir=ltr] .ck.ck-responsive-form>.ck-button:last-child,[dir=ltr] .ck.ck-responsive-form>.ck-button:nth-last-child(2),[dir=rtl] .ck.ck-responsive-form>.ck-button:last-child,[dir=rtl] .ck.ck-responsive-form>.ck-button:nth-last-child(2){margin-left:0}[dir=rtl] .ck.ck-responsive-form>.ck-button:last-child:last-of-type,[dir=rtl] .ck.ck-responsive-form>.ck-button:nth-last-child(2):last-of-type{border-right:1px solid var(--ck-color-base-border)}}',"",{version:3,sources:["webpack://./../ckeditor5-ui/theme/components/responsive-form/responsiveform.css","webpack://./../ckeditor5-ui/theme/mixins/_rwd.css","webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/responsive-form/responsiveform.css"],names:[],mappings:"AAQC,mCAMC,WAAY,CALZ,UAAW,CAEX,iBAAkB,CAClB,UAAW,CACX,QAAS,CAHT,OAAQ,CAKR,SACD,CAEA,yCACC,YACD,CCdA,oCDoBE,wCAMC,WAAY,CALZ,UAAW,CAEX,iBAAkB,CAClB,UAAW,CACX,QAAS,CAHT,OAAQ,CAKR,SACD,CAEA,8CACC,YACD,CC9BF,CCAD,qDACC,kDACD,CAEA,uBACC,+BAoED,CAlEC,6BAEC,YACD,CASC,uGACC,sCACD,CDvBD,oCCMD,uBAqBE,SAAU,CACV,oCA+CF,CA7CE,8CACC,wDAYD,CAVC,4HAEC,WAAY,CACZ,UACD,CAGA,4EACC,kBACD,CAKA,0DACC,kDACD,CAGD,iGAIC,eAAgB,CADhB,kCAAmC,CADnC,kCAmBD,CAfC,yHACC,gDACD,CARD,0OAeE,aAMF,CAJE,+IACC,kDACD,CDrEH",sourcesContent:['/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "@ckeditor/ckeditor5-ui/theme/mixins/_rwd.css";\n\n.ck-vertical-form .ck-button {\n\t&::after {\n\t\tcontent: "";\n\t\twidth: 0;\n\t\tposition: absolute;\n\t\tright: -1px;\n\t\ttop: -1px;\n\t\tbottom: -1px;\n\t\tz-index: 1;\n\t}\n\n\t&:focus::after {\n\t\tdisplay: none;\n\t}\n}\n\n.ck.ck-responsive-form {\n\t@mixin ck-media-phone {\n\t\t& .ck-button {\n\t\t\t&::after {\n\t\t\t\tcontent: "";\n\t\t\t\twidth: 0;\n\t\t\t\tposition: absolute;\n\t\t\t\tright: -1px;\n\t\t\t\ttop: -1px;\n\t\t\t\tbottom: -1px;\n\t\t\t\tz-index: 1;\n\t\t\t}\n\n\t\t\t&:focus::after {\n\t\t\t\tdisplay: none;\n\t\t\t}\n\t\t}\n\t}\n}\n',"/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@define-mixin ck-media-phone {\n\t@media screen and (max-width: 600px) {\n\t\t@mixin-content;\n\t}\n}\n",'/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "@ckeditor/ckeditor5-ui/theme/mixins/_rwd.css";\n@import "@ckeditor/ckeditor5-ui/theme/mixins/_dir.css";\n\n.ck-vertical-form > .ck-button:nth-last-child(2)::after {\n\tborder-right: 1px solid var(--ck-color-base-border);\n}\n\n.ck.ck-responsive-form {\n\tpadding: var(--ck-spacing-large);\n\n\t&:focus {\n\t\t/* See: https://github.com/ckeditor/ckeditor5/issues/4773 */\n\t\toutline: none;\n\t}\n\n\t@mixin ck-dir ltr {\n\t\t& > :not(:first-child) {\n\t\t\tmargin-left: var(--ck-spacing-standard);\n\t\t}\n\t}\n\n\t@mixin ck-dir rtl {\n\t\t& > :not(:last-child) {\n\t\t\tmargin-left: var(--ck-spacing-standard);\n\t\t}\n\t}\n\n\t@mixin ck-media-phone {\n\t\tpadding: 0;\n\t\twidth: calc(.8 * var(--ck-input-width));\n\n\t\t& .ck-labeled-field-view {\n\t\t\tmargin: var(--ck-spacing-large) var(--ck-spacing-large) 0;\n\n\t\t\t& .ck-input-text,\n\t\t\t& .ck-input-number {\n\t\t\t\tmin-width: 0;\n\t\t\t\twidth: 100%;\n\t\t\t}\n\n\t\t\t/* Let the long error messages wrap in the narrow form. */\n\t\t\t& .ck-labeled-field-view__error {\n\t\t\t\twhite-space: normal;\n\t\t\t}\n\t\t}\n\n\t\t/* Styles for two last buttons in the form (save&cancel, edit&unlink, etc.). */\n\t\t& > .ck-button:nth-last-child(2) {\n\t\t\t&::after {\n\t\t\t\tborder-right: 1px solid var(--ck-color-base-border);\n\t\t\t}\n\t\t}\n\n\t\t& > .ck-button:nth-last-child(1),\n\t\t& > .ck-button:nth-last-child(2) {\n\t\t\tpadding: var(--ck-spacing-standard);\n\t\t\tmargin-top: var(--ck-spacing-large);\n\t\t\tborder-radius: 0;\n\n\t\t\t&:not(:focus) {\n\t\t\t\tborder-top: 1px solid var(--ck-color-base-border);\n\t\t\t}\n\n\t\t\t@mixin ck-dir ltr {\n\t\t\t\tmargin-left: 0;\n\t\t\t}\n\n\t\t\t@mixin ck-dir rtl {\n\t\t\t\tmargin-left: 0;\n\n\t\t\t\t&:last-of-type {\n\t\t\t\t\tborder-right: 1px solid var(--ck-color-base-border);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n'],sourceRoot:""}]);const a=s},8107:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(9372),i=n.n(o),r=n(935),s=n.n(r)()(i());s.push([t.id,".ck.ck-search>.ck-labeled-field-view>.ck-labeled-field-view__input-wrapper>.ck-icon{position:absolute;top:50%;transform:translateY(-50%)}[dir=ltr] .ck.ck-search>.ck-labeled-field-view>.ck-labeled-field-view__input-wrapper>.ck-icon{left:var(--ck-spacing-medium)}[dir=rtl] .ck.ck-search>.ck-labeled-field-view>.ck-labeled-field-view__input-wrapper>.ck-icon{right:var(--ck-spacing-medium)}.ck.ck-search>.ck-labeled-field-view .ck-search__reset{position:absolute;top:50%;transform:translateY(-50%)}.ck.ck-search>.ck-search__results>.ck-search__info>span:first-child{display:block}.ck.ck-search>.ck-search__results>.ck-search__info:not(.ck-hidden)~*{display:none}:root{--ck-search-field-view-horizontal-spacing:calc(var(--ck-icon-size) + var(--ck-spacing-medium))}.ck.ck-search>.ck-labeled-field-view .ck-input{width:100%}.ck.ck-search>.ck-labeled-field-view.ck-search__query_with-icon{--ck-labeled-field-label-default-position-x:var(--ck-search-field-view-horizontal-spacing)}.ck.ck-search>.ck-labeled-field-view.ck-search__query_with-icon>.ck-labeled-field-view__input-wrapper>.ck-icon{opacity:.5;pointer-events:none}.ck.ck-search>.ck-labeled-field-view.ck-search__query_with-icon .ck-input{width:100%}[dir=ltr] .ck.ck-search>.ck-labeled-field-view.ck-search__query_with-icon .ck-input,[dir=rtl] .ck.ck-search>.ck-labeled-field-view.ck-search__query_with-icon .ck-input:not(.ck-input-text_empty){padding-left:var(--ck-search-field-view-horizontal-spacing)}.ck.ck-search>.ck-labeled-field-view.ck-search__query_with-reset{--ck-labeled-field-empty-unfocused-max-width:100% - 2 * var(--ck-search-field-view-horizontal-spacing)}.ck.ck-search>.ck-labeled-field-view.ck-search__query_with-reset.ck-labeled-field-view_empty{--ck-labeled-field-empty-unfocused-max-width:100% - var(--ck-search-field-view-horizontal-spacing) - var(--ck-spacing-medium)}.ck.ck-search>.ck-labeled-field-view.ck-search__query_with-reset .ck-search__reset{background:none;min-height:auto;min-width:auto;opacity:.5;padding:0}[dir=ltr] .ck.ck-search>.ck-labeled-field-view.ck-search__query_with-reset .ck-search__reset{right:var(--ck-spacing-medium)}[dir=rtl] .ck.ck-search>.ck-labeled-field-view.ck-search__query_with-reset .ck-search__reset{left:var(--ck-spacing-medium)}.ck.ck-search>.ck-labeled-field-view.ck-search__query_with-reset .ck-search__reset:hover{opacity:1}.ck.ck-search>.ck-labeled-field-view.ck-search__query_with-reset .ck-input{width:100%}[dir=ltr] .ck.ck-search>.ck-labeled-field-view.ck-search__query_with-reset .ck-input:not(.ck-input-text_empty),[dir=rtl] .ck.ck-search>.ck-labeled-field-view.ck-search__query_with-reset .ck-input{padding-right:var(--ck-search-field-view-horizontal-spacing)}.ck.ck-search>.ck-search__results{min-width:100%}.ck.ck-search>.ck-search__results>.ck-search__info{padding:var(--ck-spacing-medium) var(--ck-spacing-large);width:100%}.ck.ck-search>.ck-search__results>.ck-search__info *{white-space:normal}.ck.ck-search>.ck-search__results>.ck-search__info>span:first-child{font-weight:700}.ck.ck-search>.ck-search__results>.ck-search__info>span:last-child{margin-top:var(--ck-spacing-medium)}","",{version:3,sources:["webpack://./../ckeditor5-ui/theme/components/search/search.css","webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/search/search.css"],names:[],mappings:"AASE,oFACC,iBAAkB,CAClB,OAAQ,CACR,0BASD,CAZA,8FAME,6BAMF,CAZA,8FAUE,8BAEF,CAEA,uDACC,iBAAkB,CAClB,OAAQ,CACR,0BACD,CAKC,oEACC,aACD,CAGA,qEACC,YACD,CChCH,MACC,8FACD,CAIE,+CACC,UACD,CAEA,gEACC,0FAoBD,CAlBC,+GACC,UAAW,CACX,mBACD,CAEA,0EACC,UAWD,CAJE,kMACC,2DACD,CAKH,iEACC,sGAwCD,CAtCC,6FACC,6HACD,CAEA,mFAIC,eAAgB,CAFhB,eAAgB,CADhB,cAAe,CAIf,UAAW,CACX,SAaD,CAnBA,6FASE,8BAUF,CAnBA,6FAaE,6BAMF,CAHC,yFACC,SACD,CAGD,2EACC,UAWD,CAZA,oMAUE,4DAEF,CAIF,kCACC,cAkBD,CAhBC,mDAEC,wDAAyD,CADzD,UAcD,CAXC,qDACC,kBACD,CAEA,oEACC,eACD,CAEA,mEACC,mCACD",sourcesContent:['/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "@ckeditor/ckeditor5-ui/theme/mixins/_dir.css";\n\n.ck.ck-search {\n\t& > .ck-labeled-field-view {\n\t\t& > .ck-labeled-field-view__input-wrapper > .ck-icon {\n\t\t\tposition: absolute;\n\t\t\ttop: 50%;\n\t\t\ttransform: translateY(-50%);\n\n\t\t\t@mixin ck-dir ltr {\n\t\t\t\tleft: var(--ck-spacing-medium);\n\t\t\t}\n\n\t\t\t@mixin ck-dir rtl {\n\t\t\t\tright: var(--ck-spacing-medium);\n\t\t\t}\n\t\t}\n\n\t\t& .ck-search__reset {\n\t\t\tposition: absolute;\n\t\t\ttop: 50%;\n\t\t\ttransform: translateY(-50%);\n\t\t}\n\t}\n\n\t& > .ck-search__results {\n\t\t& > .ck-search__info {\n\t\t\t& > span:first-child {\n\t\t\t\tdisplay: block;\n\t\t\t}\n\n\t\t\t/* Hide the filtered view when nothing was found */\n\t\t\t&:not(.ck-hidden) ~ * {\n\t\t\t\tdisplay: none;\n\t\t\t}\n\t\t}\n\t}\n}\n','/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "@ckeditor/ckeditor5-ui/theme/mixins/_dir.css";\n\n:root {\n\t--ck-search-field-view-horizontal-spacing: calc(var(--ck-icon-size) + var(--ck-spacing-medium));\n}\n\n.ck.ck-search {\n\t& > .ck-labeled-field-view {\n\t\t& .ck-input {\n\t\t\twidth: 100%;\n\t\t}\n\n\t\t&.ck-search__query_with-icon {\n\t\t\t--ck-labeled-field-label-default-position-x: var(--ck-search-field-view-horizontal-spacing);\n\n\t\t\t& > .ck-labeled-field-view__input-wrapper > .ck-icon {\n\t\t\t\topacity: .5;\n\t\t\t\tpointer-events: none;\n\t\t\t}\n\n\t\t\t& .ck-input {\n\t\t\t\twidth: 100%;\n\n\t\t\t\t@mixin ck-dir ltr {\n\t\t\t\t\tpadding-left: var(--ck-search-field-view-horizontal-spacing);\n\t\t\t\t}\n\n\t\t\t\t@mixin ck-dir rtl {\n\t\t\t\t\t&:not(.ck-input-text_empty) {\n\t\t\t\t\t\tpadding-left: var(--ck-search-field-view-horizontal-spacing);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t&.ck-search__query_with-reset {\n\t\t\t--ck-labeled-field-empty-unfocused-max-width: 100% - 2 * var(--ck-search-field-view-horizontal-spacing);\n\n\t\t\t&.ck-labeled-field-view_empty {\n\t\t\t\t--ck-labeled-field-empty-unfocused-max-width: 100% - var(--ck-search-field-view-horizontal-spacing) - var(--ck-spacing-medium);\n\t\t\t}\n\n\t\t\t& .ck-search__reset {\n\t\t\t\tmin-width: auto;\n\t\t\t\tmin-height: auto;\n\n\t\t\t\tbackground: none;\n\t\t\t\topacity: .5;\n\t\t\t\tpadding: 0;\n\n\t\t\t\t@mixin ck-dir ltr {\n\t\t\t\t\tright: var(--ck-spacing-medium);\n\t\t\t\t}\n\n\t\t\t\t@mixin ck-dir rtl {\n\t\t\t\t\tleft: var(--ck-spacing-medium);\n\t\t\t\t}\n\n\t\t\t\t&:hover {\n\t\t\t\t\topacity: 1;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t& .ck-input {\n\t\t\t\twidth: 100%;\n\n\t\t\t\t@mixin ck-dir ltr {\n\t\t\t\t\t&:not(.ck-input-text_empty) {\n\t\t\t\t\t\tpadding-right: var(--ck-search-field-view-horizontal-spacing);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t@mixin ck-dir rtl {\n\t\t\t\t\tpadding-right: var(--ck-search-field-view-horizontal-spacing);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t& > .ck-search__results {\n\t\tmin-width: 100%;\n\n\t\t& > .ck-search__info {\n\t\t\twidth: 100%;\n\t\t\tpadding: var(--ck-spacing-medium) var(--ck-spacing-large);\n\n\t\t\t& * {\n\t\t\t\twhite-space: normal;\n\t\t\t}\n\n\t\t\t& > span:first-child {\n\t\t\t\tfont-weight: bold;\n\t\t\t}\n\n\t\t\t& > span:last-child {\n\t\t\t\tmargin-top: var(--ck-spacing-medium);\n\t\t\t}\n\t\t}\n\t}\n}\n\n'],sourceRoot:""}]);const a=s},109:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(9372),i=n.n(o),r=n(935),s=n.n(r)()(i());s.push([t.id,".ck.ck-spinner-container{display:block;position:relative}.ck.ck-spinner{left:0;margin:0 auto;position:absolute;right:0;top:50%;transform:translateY(-50%);z-index:1}:root{--ck-toolbar-spinner-size:18px}.ck.ck-spinner-container{animation:rotate 1.5s linear infinite;height:var(--ck-toolbar-spinner-size);width:var(--ck-toolbar-spinner-size)}@media (prefers-reduced-motion:reduce){.ck.ck-spinner-container{animation-duration:3s}}.ck.ck-spinner{border:2px solid var(--ck-color-text);border-radius:50%;border-top:2px solid transparent;height:var(--ck-toolbar-spinner-size);width:var(--ck-toolbar-spinner-size)}@keyframes rotate{to{transform:rotate(1turn)}}","",{version:3,sources:["webpack://./../ckeditor5-ui/theme/components/spinner/spinner.css","webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/spinner/spinner.css"],names:[],mappings:"AASA,yBACC,aAAc,CACd,iBACD,CAEA,eAGC,MAAO,CAEP,aAAc,CAJd,iBAAkB,CAGlB,OAAQ,CAFR,OAAQ,CAIR,0BAA2B,CAC3B,SACD,CCjBA,MACC,8BACD,CAEA,yBAGC,qCAAsC,CADtC,qCAAsC,CADtC,oCAOD,CAHC,uCALD,yBAME,qBAEF,CADC,CAGD,eAKC,qCAA6B,CAF7B,iBAAkB,CAElB,gCAA6B,CAH7B,qCAAsC,CADtC,oCAKD,CAEA,kBACC,GACC,uBACD,CACD",sourcesContent:["/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n:root {\n\t--ck-toolbar-spinner-size: 18px;\n}\n\n.ck.ck-spinner-container {\n\tdisplay: block;\n\tposition: relative;\n}\n\n.ck.ck-spinner {\n\tposition: absolute;\n\ttop: 50%;\n\tleft: 0;\n\tright: 0;\n\tmargin: 0 auto;\n\ttransform: translateY(-50%);\n\tz-index: 1;\n}\n","/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n:root {\n\t--ck-toolbar-spinner-size: 18px;\n}\n\n.ck.ck-spinner-container {\n\twidth: var(--ck-toolbar-spinner-size);\n\theight: var(--ck-toolbar-spinner-size);\n\tanimation: 1.5s infinite rotate linear;\n\n\t@media (prefers-reduced-motion: reduce) {\n\t\tanimation-duration: 3s;\n\t}\n}\n\n.ck.ck-spinner {\n\twidth: var(--ck-toolbar-spinner-size);\n\theight: var(--ck-toolbar-spinner-size);\n\tborder-radius: 50%;\n\tborder: 2px solid var(--ck-color-text);\n\tborder-top-color: transparent;\n}\n\n@keyframes rotate {\n\tto {\n\t\ttransform: rotate(360deg)\n\t}\n}\n"],sourceRoot:""}]);const a=s},1671:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(9372),i=n.n(o),r=n(935),s=n.n(r)()(i());s.push([t.id,".ck-textarea{overflow-x:hidden}","",{version:3,sources:["webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/textarea/textarea.css"],names:[],mappings:"AASA,aACC,iBACD",sourcesContent:["/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/*\n * This fixes a problem in Firefox when the initial height of the complement does not match the number of rows.\n * This bug is especially visible when rows=1.\n */\n.ck-textarea {\n\toverflow-x: hidden\n}\n"],sourceRoot:""}]);const a=s},2710:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(9372),i=n.n(o),r=n(935),s=n.n(r)()(i());s.push([t.id,".ck.ck-block-toolbar-button{position:absolute;z-index:var(--ck-z-default)}:root{--ck-color-block-toolbar-button:var(--ck-color-text);--ck-block-toolbar-button-size:var(--ck-font-size-normal)}.ck.ck-block-toolbar-button{color:var(--ck-color-block-toolbar-button);font-size:var(--ck-block-toolbar-size)}","",{version:3,sources:["webpack://./../ckeditor5-ui/theme/components/toolbar/blocktoolbar.css","webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/toolbar/blocktoolbar.css"],names:[],mappings:"AAKA,4BACC,iBAAkB,CAClB,2BACD,CCHA,MACC,oDAAqD,CACrD,yDACD,CAEA,4BACC,0CAA2C,CAC3C,sCACD",sourcesContent:["/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-block-toolbar-button {\n\tposition: absolute;\n\tz-index: var(--ck-z-default);\n}\n","/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n:root {\n\t--ck-color-block-toolbar-button: var(--ck-color-text);\n\t--ck-block-toolbar-button-size: var(--ck-font-size-normal);\n}\n\n.ck.ck-block-toolbar-button {\n\tcolor: var(--ck-color-block-toolbar-button);\n\tfont-size: var(--ck-block-toolbar-size);\n}\n"],sourceRoot:""}]);const a=s},9677:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(9372),i=n.n(o),r=n(935),s=n.n(r)()(i());s.push([t.id,".ck.ck-toolbar{align-items:center;display:flex;flex-flow:row nowrap;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none}.ck.ck-toolbar>.ck-toolbar__items{align-items:center;display:flex;flex-flow:row wrap;flex-grow:1}.ck.ck-toolbar .ck.ck-toolbar__separator{display:inline-block}.ck.ck-toolbar .ck.ck-toolbar__separator:first-child,.ck.ck-toolbar .ck.ck-toolbar__separator:last-child{display:none}.ck.ck-toolbar .ck-toolbar__line-break{flex-basis:100%}.ck.ck-toolbar.ck-toolbar_grouping>.ck-toolbar__items{flex-wrap:nowrap}.ck.ck-toolbar.ck-toolbar_vertical>.ck-toolbar__items{flex-direction:column}.ck.ck-toolbar.ck-toolbar_floating>.ck-toolbar__items{flex-wrap:nowrap}.ck.ck-toolbar>.ck.ck-toolbar__grouped-dropdown>.ck-dropdown__button .ck-dropdown__arrow{display:none}.ck.ck-toolbar{border-radius:0}.ck-rounded-corners .ck.ck-toolbar,.ck.ck-toolbar.ck-rounded-corners{border-radius:var(--ck-border-radius)}.ck.ck-toolbar{background:var(--ck-color-toolbar-background);border:1px solid var(--ck-color-toolbar-border);padding:0 var(--ck-spacing-small)}.ck.ck-toolbar .ck.ck-toolbar__separator{align-self:stretch;background:var(--ck-color-toolbar-border);margin-bottom:var(--ck-spacing-small);margin-top:var(--ck-spacing-small);min-width:1px;width:1px}.ck.ck-toolbar .ck-toolbar__line-break{height:0}.ck.ck-toolbar>.ck-toolbar__items>:not(.ck-toolbar__line-break){margin-right:var(--ck-spacing-small)}.ck.ck-toolbar>.ck-toolbar__items:empty+.ck.ck-toolbar__separator{display:none}.ck.ck-toolbar>.ck-toolbar__items>:not(.ck-toolbar__line-break),.ck.ck-toolbar>.ck.ck-toolbar__grouped-dropdown{margin-bottom:var(--ck-spacing-small);margin-top:var(--ck-spacing-small)}.ck.ck-toolbar.ck-toolbar_vertical{padding:0}.ck.ck-toolbar.ck-toolbar_vertical>.ck-toolbar__items>.ck{border-radius:0;margin:0;width:100%}.ck.ck-toolbar.ck-toolbar_compact{padding:0}.ck.ck-toolbar.ck-toolbar_compact>.ck-toolbar__items>*{margin:0}.ck.ck-toolbar.ck-toolbar_compact>.ck-toolbar__items>:not(:first-child):not(:last-child){border-radius:0}.ck.ck-toolbar>.ck.ck-toolbar__grouped-dropdown>.ck.ck-button.ck-dropdown__button{padding-left:var(--ck-spacing-tiny)}.ck.ck-toolbar .ck-toolbar__nested-toolbar-dropdown>.ck-dropdown__panel{min-width:auto}.ck.ck-toolbar .ck-toolbar__nested-toolbar-dropdown>.ck-button>.ck-button__label{max-width:7em;width:auto}.ck.ck-toolbar:focus{outline:none}.ck-toolbar-container .ck.ck-toolbar{border:0}.ck.ck-toolbar[dir=rtl]>.ck-toolbar__items>.ck,[dir=rtl] .ck.ck-toolbar>.ck-toolbar__items>.ck{margin-right:0}.ck.ck-toolbar[dir=rtl]:not(.ck-toolbar_compact)>.ck-toolbar__items>.ck,[dir=rtl] .ck.ck-toolbar:not(.ck-toolbar_compact)>.ck-toolbar__items>.ck{margin-left:var(--ck-spacing-small)}.ck.ck-toolbar[dir=rtl]>.ck-toolbar__items>.ck:last-child,[dir=rtl] .ck.ck-toolbar>.ck-toolbar__items>.ck:last-child{margin-left:0}.ck.ck-toolbar.ck-toolbar_compact[dir=rtl]>.ck-toolbar__items>.ck:first-child,[dir=rtl] .ck.ck-toolbar.ck-toolbar_compact>.ck-toolbar__items>.ck:first-child{border-bottom-left-radius:0;border-top-left-radius:0}.ck.ck-toolbar.ck-toolbar_compact[dir=rtl]>.ck-toolbar__items>.ck:last-child,[dir=rtl] .ck.ck-toolbar.ck-toolbar_compact>.ck-toolbar__items>.ck:last-child{border-bottom-right-radius:0;border-top-right-radius:0}.ck.ck-toolbar.ck-toolbar_grouping[dir=rtl]>.ck-toolbar__items:not(:empty):not(:only-child),.ck.ck-toolbar[dir=rtl]>.ck.ck-toolbar__separator,[dir=rtl] .ck.ck-toolbar.ck-toolbar_grouping>.ck-toolbar__items:not(:empty):not(:only-child),[dir=rtl] .ck.ck-toolbar>.ck.ck-toolbar__separator{margin-left:var(--ck-spacing-small)}.ck.ck-toolbar[dir=ltr]>.ck-toolbar__items>.ck:last-child,[dir=ltr] .ck.ck-toolbar>.ck-toolbar__items>.ck:last-child{margin-right:0}.ck.ck-toolbar.ck-toolbar_compact[dir=ltr]>.ck-toolbar__items>.ck:first-child,[dir=ltr] .ck.ck-toolbar.ck-toolbar_compact>.ck-toolbar__items>.ck:first-child{border-bottom-right-radius:0;border-top-right-radius:0}.ck.ck-toolbar.ck-toolbar_compact[dir=ltr]>.ck-toolbar__items>.ck:last-child,[dir=ltr] .ck.ck-toolbar.ck-toolbar_compact>.ck-toolbar__items>.ck:last-child{border-bottom-left-radius:0;border-top-left-radius:0}.ck.ck-toolbar.ck-toolbar_grouping[dir=ltr]>.ck-toolbar__items:not(:empty):not(:only-child),.ck.ck-toolbar[dir=ltr]>.ck.ck-toolbar__separator,[dir=ltr] .ck.ck-toolbar.ck-toolbar_grouping>.ck-toolbar__items:not(:empty):not(:only-child),[dir=ltr] .ck.ck-toolbar>.ck.ck-toolbar__separator{margin-right:var(--ck-spacing-small)}","",{version:3,sources:["webpack://./../ckeditor5-ui/theme/components/toolbar/toolbar.css","webpack://./../ckeditor5-ui/theme/mixins/_unselectable.css","webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/toolbar/toolbar.css","webpack://./../ckeditor5-theme-lark/theme/mixins/_rounded.css"],names:[],mappings:"AAOA,eAKC,kBAAmB,CAFnB,YAAa,CACb,oBAAqB,CCFrB,qBAAsB,CACtB,wBAAyB,CACzB,oBAAqB,CACrB,gBD6CD,CA3CC,kCAGC,kBAAmB,CAFnB,YAAa,CACb,kBAAmB,CAEnB,WAED,CAEA,yCACC,oBAWD,CAJC,yGAEC,YACD,CAGD,uCACC,eACD,CAEA,sDACC,gBACD,CAEA,sDACC,qBACD,CAEA,sDACC,gBACD,CAGC,yFACC,YACD,CE/CF,eCGC,eDwGD,CA3GA,qECOE,qCDoGF,CA3GA,eAGC,6CAA8C,CAE9C,+CAAgD,CADhD,iCAuGD,CApGC,yCACC,kBAAmB,CAGnB,yCAA0C,CAO1C,qCAAsC,CADtC,kCAAmC,CAPnC,aAAc,CADd,SAUD,CAEA,uCACC,QACD,CAGC,gEAEC,oCACD,CAIA,kEACC,YACD,CAGD,gHAIC,qCAAsC,CADtC,kCAED,CAEA,mCAEC,SAaD,CAVC,0DAQC,eAAgB,CAHhB,QAAS,CAHT,UAOD,CAGD,kCAEC,SAWD,CATC,uDAEC,QAMD,CAHC,yFACC,eACD,CASD,kFACC,mCACD,CAMA,wEACC,cACD,CAEA,iFACC,aAAc,CACd,UACD,CAGD,qBACC,YACD,CAtGD,qCAyGE,QAEF,CAYC,+FACC,cACD,CAEA,iJAEC,mCACD,CAEA,qHACC,aACD,CAIC,6JAEC,2BAA4B,CAD5B,wBAED,CAGA,2JAEC,4BAA6B,CAD7B,yBAED,CASD,8RACC,mCACD,CAWA,qHACC,cACD,CAIC,6JAEC,4BAA6B,CAD7B,yBAED,CAGA,2JAEC,2BAA4B,CAD5B,wBAED,CASD,8RACC,oCACD",sourcesContent:['/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "../../mixins/_unselectable.css";\n\n.ck.ck-toolbar {\n\t@mixin ck-unselectable;\n\n\tdisplay: flex;\n\tflex-flow: row nowrap;\n\talign-items: center;\n\n\t& > .ck-toolbar__items {\n\t\tdisplay: flex;\n\t\tflex-flow: row wrap;\n\t\talign-items: center;\n\t\tflex-grow: 1;\n\n\t}\n\n\t& .ck.ck-toolbar__separator {\n\t\tdisplay: inline-block;\n\n\t\t/*\n\t\t * A leading or trailing separator makes no sense (separates from nothing on one side).\n\t\t * For instance, it can happen when toolbar items (also separators) are getting grouped one by one and\n\t\t * moved to another toolbar in the dropdown.\n\t\t */\n\t\t&:first-child,\n\t\t&:last-child {\n\t\t\tdisplay: none;\n\t\t}\n\t}\n\n\t& .ck-toolbar__line-break {\n\t\tflex-basis: 100%;\n\t}\n\n\t&.ck-toolbar_grouping > .ck-toolbar__items {\n\t\tflex-wrap: nowrap;\n\t}\n\n\t&.ck-toolbar_vertical > .ck-toolbar__items {\n\t\tflex-direction: column;\n\t}\n\n\t&.ck-toolbar_floating > .ck-toolbar__items {\n\t\tflex-wrap: nowrap;\n\t}\n\n\t& > .ck.ck-toolbar__grouped-dropdown {\n\t\t& > .ck-dropdown__button .ck-dropdown__arrow {\n\t\t\tdisplay: none;\n\t\t}\n\t}\n}\n',"/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * Makes element unselectable.\n */\n@define-mixin ck-unselectable {\n\t-moz-user-select: none;\n\t-webkit-user-select: none;\n\t-ms-user-select: none;\n\tuser-select: none\n}\n",'/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "../../../mixins/_rounded.css";\n@import "@ckeditor/ckeditor5-ui/theme/mixins/_dir.css";\n\n.ck.ck-toolbar {\n\t@mixin ck-rounded-corners;\n\n\tbackground: var(--ck-color-toolbar-background);\n\tpadding: 0 var(--ck-spacing-small);\n\tborder: 1px solid var(--ck-color-toolbar-border);\n\n\t& .ck.ck-toolbar__separator {\n\t\talign-self: stretch;\n\t\twidth: 1px;\n\t\tmin-width: 1px;\n\t\tbackground: var(--ck-color-toolbar-border);\n\n\t\t/*\n\t\t * These margins make the separators look better in balloon toolbars (when aligned with the "tip").\n\t\t * See https://github.com/ckeditor/ckeditor5/issues/7493.\n\t\t */\n\t\tmargin-top: var(--ck-spacing-small);\n\t\tmargin-bottom: var(--ck-spacing-small);\n\t}\n\n\t& .ck-toolbar__line-break {\n\t\theight: 0;\n\t}\n\n\t& > .ck-toolbar__items {\n\t\t& > *:not(.ck-toolbar__line-break) {\n\t\t\t/* (#11) Separate toolbar items. */\n\t\t\tmargin-right: var(--ck-spacing-small);\n\t\t}\n\n\t\t/* Don\'t display a separator after an empty items container, for instance,\n\t\twhen all items were grouped */\n\t\t&:empty + .ck.ck-toolbar__separator {\n\t\t\tdisplay: none;\n\t\t}\n\t}\n\n\t& > .ck-toolbar__items > *:not(.ck-toolbar__line-break),\n\t& > .ck.ck-toolbar__grouped-dropdown {\n\t\t/* Make sure items wrapped to the next line have v-spacing */\n\t\tmargin-top: var(--ck-spacing-small);\n\t\tmargin-bottom: var(--ck-spacing-small);\n\t}\n\n\t&.ck-toolbar_vertical {\n\t\t/* Items in a vertical toolbar span the entire width. */\n\t\tpadding: 0;\n\n\t\t/* Specificity matters here. See https://github.com/ckeditor/ckeditor5-theme-lark/issues/168. */\n\t\t& > .ck-toolbar__items > .ck {\n\t\t\t/* Items in a vertical toolbar should span the horizontal space. */\n\t\t\twidth: 100%;\n\n\t\t\t/* Items in a vertical toolbar should have no margin. */\n\t\t\tmargin: 0;\n\n\t\t\t/* Items in a vertical toolbar span the entire width so rounded corners are pointless. */\n\t\t\tborder-radius: 0;\n\t\t}\n\t}\n\n\t&.ck-toolbar_compact {\n\t\t/* No spacing around items. */\n\t\tpadding: 0;\n\n\t\t& > .ck-toolbar__items > * {\n\t\t\t/* Compact toolbar items have no spacing between them. */\n\t\t\tmargin: 0;\n\n\t\t\t/* "Middle" children should have no rounded corners. */\n\t\t\t&:not(:first-child):not(:last-child) {\n\t\t\t\tborder-radius: 0;\n\t\t\t}\n\t\t}\n\t}\n\n\t& > .ck.ck-toolbar__grouped-dropdown {\n\t\t/*\n\t\t * Dropdown button has asymmetric padding to fit the arrow.\n\t\t * This button has no arrow so let\'s revert that padding back to normal.\n\t\t */\n\t\t& > .ck.ck-button.ck-dropdown__button {\n\t\t\tpadding-left: var(--ck-spacing-tiny);\n\t\t}\n\t}\n\n\t/* A drop-down containing the nested toolbar with configured items. */\n\t& .ck-toolbar__nested-toolbar-dropdown {\n\t\t/* Prevent empty space in the panel when the dropdown label is visible and long but the toolbar has few items. */\n\t\t& > .ck-dropdown__panel {\n\t\t\tmin-width: auto;\n\t\t}\n\n\t\t& > .ck-button > .ck-button__label {\n\t\t\tmax-width: 7em;\n\t\t\twidth: auto;\n\t\t}\n\t}\n\n\t&:focus {\n\t\toutline: none;\n\t}\n\n\t@nest .ck-toolbar-container & {\n\t\tborder: 0;\n\t}\n}\n\n/* stylelint-disable */\n\n/*\n * Styles for RTL toolbars.\n *\n * Note: In some cases (e.g. a decoupled editor), the toolbar has its own "dir"\n * because its parent is not controlled by the editor framework.\n */\n[dir="rtl"] .ck.ck-toolbar,\n.ck.ck-toolbar[dir="rtl"] {\n\t& > .ck-toolbar__items > .ck {\n\t\tmargin-right: 0;\n\t}\n\n\t&:not(.ck-toolbar_compact) > .ck-toolbar__items > .ck {\n\t\t/* (#11) Separate toolbar items. */\n\t\tmargin-left: var(--ck-spacing-small);\n\t}\n\n\t& > .ck-toolbar__items > .ck:last-child {\n\t\tmargin-left: 0;\n\t}\n\n\t&.ck-toolbar_compact > .ck-toolbar__items > .ck {\n\t\t/* No rounded corners on the right side of the first child. */\n\t\t&:first-child {\n\t\t\tborder-top-left-radius: 0;\n\t\t\tborder-bottom-left-radius: 0;\n\t\t}\n\n\t\t/* No rounded corners on the left side of the last child. */\n\t\t&:last-child {\n\t\t\tborder-top-right-radius: 0;\n\t\t\tborder-bottom-right-radius: 0;\n\t\t}\n\t}\n\n\t/* Separate the the separator form the grouping dropdown when some items are grouped. */\n\t& > .ck.ck-toolbar__separator {\n\t\tmargin-left: var(--ck-spacing-small);\n\t}\n\n\t/* Some spacing between the items and the separator before the grouped items dropdown. */\n\t&.ck-toolbar_grouping > .ck-toolbar__items:not(:empty):not(:only-child) {\n\t\tmargin-left: var(--ck-spacing-small);\n\t}\n}\n\n/*\n * Styles for LTR toolbars.\n *\n * Note: In some cases (e.g. a decoupled editor), the toolbar has its own "dir"\n * because its parent is not controlled by the editor framework.\n */\n[dir="ltr"] .ck.ck-toolbar,\n.ck.ck-toolbar[dir="ltr"] {\n\t& > .ck-toolbar__items > .ck:last-child {\n\t\tmargin-right: 0;\n\t}\n\n\t&.ck-toolbar_compact > .ck-toolbar__items > .ck {\n\t\t/* No rounded corners on the right side of the first child. */\n\t\t&:first-child {\n\t\t\tborder-top-right-radius: 0;\n\t\t\tborder-bottom-right-radius: 0;\n\t\t}\n\n\t\t/* No rounded corners on the left side of the last child. */\n\t\t&:last-child {\n\t\t\tborder-top-left-radius: 0;\n\t\t\tborder-bottom-left-radius: 0;\n\t\t}\n\t}\n\n\t/* Separate the the separator form the grouping dropdown when some items are grouped. */\n\t& > .ck.ck-toolbar__separator {\n\t\tmargin-right: var(--ck-spacing-small);\n\t}\n\n\t/* Some spacing between the items and the separator before the grouped items dropdown. */\n\t&.ck-toolbar_grouping > .ck-toolbar__items:not(:empty):not(:only-child) {\n\t\tmargin-right: var(--ck-spacing-small);\n\t}\n}\n\n/* stylelint-enable */\n',"/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * Implements rounded corner interface for .ck-rounded-corners class.\n *\n * @see $ck-border-radius\n */\n@define-mixin ck-rounded-corners {\n\tborder-radius: 0;\n\n\t@nest .ck-rounded-corners &,\n\t&.ck-rounded-corners {\n\t\tborder-radius: var(--ck-border-radius);\n\t\t@mixin-content;\n\t}\n}\n"],sourceRoot:""}]);const a=s},9205:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(9372),i=n.n(o),r=n(935),s=n.n(r)()(i());s.push([t.id,".ck.ck-balloon-panel.ck-tooltip{-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none;z-index:calc(var(--ck-z-dialog) + 100);--ck-balloon-border-width:0px;--ck-balloon-arrow-offset:0px;--ck-balloon-arrow-half-width:4px;--ck-balloon-arrow-height:4px;--ck-tooltip-text-padding:4px;--ck-color-panel-background:var(--ck-color-tooltip-background);padding:0 var(--ck-spacing-medium)}.ck.ck-balloon-panel.ck-tooltip .ck-tooltip__text{color:var(--ck-color-tooltip-text);font-size:.9em;line-height:1.5}.ck.ck-balloon-panel.ck-tooltip.ck-tooltip_multi-line .ck-tooltip__text{display:inline-block;max-width:200px;padding:var(--ck-tooltip-text-padding) 0;white-space:break-spaces}.ck.ck-balloon-panel.ck-tooltip{box-shadow:none}.ck.ck-balloon-panel.ck-tooltip:before{display:none}","",{version:3,sources:["webpack://./../ckeditor5-ui/theme/components/tooltip/tooltip.css","webpack://./../ckeditor5-ui/theme/mixins/_unselectable.css","webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/tooltip/tooltip.css"],names:[],mappings:"AAOA,gCCEC,qBAAsB,CACtB,wBAAyB,CACzB,oBAAqB,CACrB,gBAAgB,CDFhB,sCAAyC,CEFzC,6BAA8B,CAC9B,6BAA8B,CAC9B,iCAAkC,CAClC,6BAA8B,CAC9B,6BAA8B,CAC9B,8DAA+D,CAE/D,kCFJD,CEMC,kDAGC,kCAAmC,CAFnC,cAAe,CACf,eAED,CAEA,wEAEC,oBAAqB,CAErB,eAAgB,CADhB,wCAAyC,CAFzC,wBAID,CArBD,gCAwBC,eAMD,CAHC,uCACC,YACD",sourcesContent:['/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "../../mixins/_unselectable.css";\n\n.ck.ck-balloon-panel.ck-tooltip {\n\t@mixin ck-unselectable;\n\n\tz-index: calc( var(--ck-z-dialog) + 100 );\n}\n',"/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * Makes element unselectable.\n */\n@define-mixin ck-unselectable {\n\t-moz-user-select: none;\n\t-webkit-user-select: none;\n\t-ms-user-select: none;\n\tuser-select: none\n}\n",'/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "../../../mixins/_rounded.css";\n\n.ck.ck-balloon-panel.ck-tooltip {\n\t--ck-balloon-border-width: 0px;\n\t--ck-balloon-arrow-offset: 0px;\n\t--ck-balloon-arrow-half-width: 4px;\n\t--ck-balloon-arrow-height: 4px;\n\t--ck-tooltip-text-padding: 4px;\n\t--ck-color-panel-background: var(--ck-color-tooltip-background);\n\n\tpadding: 0 var(--ck-spacing-medium);\n\n\t& .ck-tooltip__text {\n\t\tfont-size: .9em;\n\t\tline-height: 1.5;\n\t\tcolor: var(--ck-color-tooltip-text);\n\t}\n\n\t&.ck-tooltip_multi-line .ck-tooltip__text {\n\t\twhite-space: break-spaces;\n\t\tdisplay: inline-block;\n\t\tpadding: var(--ck-tooltip-text-padding) 0;\n\t\tmax-width: 200px;\n\t}\n\n\t/* Reset balloon panel styles */\n\tbox-shadow: none;\n\n\t/* Hide the default shadow of the .ck-balloon-panel tip */\n\t&::before {\n\t\tdisplay: none;\n\t}\n}\n'],sourceRoot:""}]);const a=s},7676:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(9372),i=n.n(o),r=n(935),s=n.n(r)()(i());s.push([t.id,".ck-hidden{display:none!important}:root{--ck-z-default:1;--ck-z-panel:calc(var(--ck-z-default) + 999);--ck-z-dialog:9999}.ck-transitions-disabled,.ck-transitions-disabled *{transition:none!important}:root{--ck-powered-by-line-height:10px;--ck-powered-by-padding-vertical:2px;--ck-powered-by-padding-horizontal:4px;--ck-powered-by-text-color:#4f4f4f;--ck-powered-by-border-radius:var(--ck-border-radius);--ck-powered-by-background:#fff;--ck-powered-by-border-color:var(--ck-color-focus-border)}.ck.ck-balloon-panel.ck-powered-by-balloon{--ck-border-radius:var(--ck-powered-by-border-radius);background:var(--ck-powered-by-background);box-shadow:none;min-height:unset;z-index:calc(var(--ck-z-panel) - 1)}.ck.ck-balloon-panel.ck-powered-by-balloon .ck.ck-powered-by{line-height:var(--ck-powered-by-line-height)}.ck.ck-balloon-panel.ck-powered-by-balloon .ck.ck-powered-by a{align-items:center;cursor:pointer;display:flex;filter:grayscale(80%);line-height:var(--ck-powered-by-line-height);opacity:.66;padding:var(--ck-powered-by-padding-vertical) var(--ck-powered-by-padding-horizontal)}.ck.ck-balloon-panel.ck-powered-by-balloon .ck.ck-powered-by .ck-powered-by__label{color:var(--ck-powered-by-text-color);cursor:pointer;font-size:7.5px;font-weight:700;letter-spacing:-.2px;line-height:normal;margin-right:4px;padding-left:2px;text-transform:uppercase}.ck.ck-balloon-panel.ck-powered-by-balloon .ck.ck-powered-by .ck-icon{cursor:pointer;display:block}.ck.ck-balloon-panel.ck-powered-by-balloon .ck.ck-powered-by:hover a{filter:grayscale(0);opacity:1}.ck.ck-balloon-panel.ck-powered-by-balloon[class*=position_inside]{border-color:transparent}.ck.ck-balloon-panel.ck-powered-by-balloon[class*=position_border]{border:var(--ck-focus-ring);border-color:var(--ck-powered-by-border-color)}:root{--ck-color-base-foreground:#fafafa;--ck-color-base-background:#fff;--ck-color-base-border:#ccced1;--ck-color-base-action:#53a336;--ck-color-base-focus:#6cb5f9;--ck-color-base-text:#333;--ck-color-base-active:#2977ff;--ck-color-base-active-focus:#0d65ff;--ck-color-base-error:#db3700;--ck-color-focus-border-coordinates:218,81.8%,56.9%;--ck-color-focus-border:hsl(var(--ck-color-focus-border-coordinates));--ck-color-focus-outer-shadow:#cae1fc;--ck-color-focus-disabled-shadow:rgba(119,186,248,.3);--ck-color-focus-error-shadow:rgba(255,64,31,.3);--ck-color-text:var(--ck-color-base-text);--ck-color-shadow-drop:rgba(0,0,0,.15);--ck-color-shadow-drop-active:rgba(0,0,0,.2);--ck-color-shadow-inner:rgba(0,0,0,.1);--ck-color-button-default-background:transparent;--ck-color-button-default-hover-background:#f0f0f0;--ck-color-button-default-active-background:#f0f0f0;--ck-color-button-default-disabled-background:transparent;--ck-color-button-on-background:#f0f7ff;--ck-color-button-on-hover-background:#dbecff;--ck-color-button-on-active-background:#dbecff;--ck-color-button-on-disabled-background:#f0f2f4;--ck-color-button-on-color:#2977ff;--ck-color-button-action-background:var(--ck-color-base-action);--ck-color-button-action-hover-background:#4d9d30;--ck-color-button-action-active-background:#4d9d30;--ck-color-button-action-disabled-background:#7ec365;--ck-color-button-action-text:var(--ck-color-base-background);--ck-color-button-save:#008a00;--ck-color-button-cancel:#db3700;--ck-color-switch-button-off-background:#939393;--ck-color-switch-button-off-hover-background:#7d7d7d;--ck-color-switch-button-on-background:var(--ck-color-button-action-background);--ck-color-switch-button-on-hover-background:#4d9d30;--ck-color-switch-button-inner-background:var(--ck-color-base-background);--ck-color-switch-button-inner-shadow:rgba(0,0,0,.1);--ck-color-dropdown-panel-background:var(--ck-color-base-background);--ck-color-dropdown-panel-border:var(--ck-color-base-border);--ck-color-dialog-background:var(--ck-custom-background);--ck-color-dialog-form-header-border:var(--ck-custom-border);--ck-color-input-background:var(--ck-color-base-background);--ck-color-input-border:var(--ck-color-base-border);--ck-color-input-error-border:var(--ck-color-base-error);--ck-color-input-text:var(--ck-color-base-text);--ck-color-input-disabled-background:#f2f2f2;--ck-color-input-disabled-border:var(--ck-color-base-border);--ck-color-input-disabled-text:#757575;--ck-color-list-background:var(--ck-color-base-background);--ck-color-list-button-hover-background:var(--ck-color-button-default-hover-background);--ck-color-list-button-on-background:var(--ck-color-button-on-color);--ck-color-list-button-on-background-focus:var(--ck-color-button-on-color);--ck-color-list-button-on-text:var(--ck-color-base-background);--ck-color-panel-background:var(--ck-color-base-background);--ck-color-panel-border:var(--ck-color-base-border);--ck-color-toolbar-background:var(--ck-color-base-background);--ck-color-toolbar-border:var(--ck-color-base-border);--ck-color-tooltip-background:var(--ck-color-base-text);--ck-color-tooltip-text:var(--ck-color-base-background);--ck-color-engine-placeholder-text:#707070;--ck-color-upload-bar-background:#6cb5f9;--ck-color-link-default:#0000f0;--ck-color-link-selected-background:rgba(31,176,255,.1);--ck-color-link-fake-selection:rgba(31,176,255,.3);--ck-color-highlight-background:#ff0;--ck-color-light-red:#fcc;--ck-disabled-opacity:.5;--ck-focus-outer-shadow-geometry:0 0 0 3px;--ck-focus-outer-shadow:var(--ck-focus-outer-shadow-geometry) var(--ck-color-focus-outer-shadow);--ck-focus-disabled-outer-shadow:var(--ck-focus-outer-shadow-geometry) var(--ck-color-focus-disabled-shadow);--ck-focus-error-outer-shadow:var(--ck-focus-outer-shadow-geometry) var(--ck-color-focus-error-shadow);--ck-focus-ring:1px solid var(--ck-color-focus-border);--ck-font-size-base:13px;--ck-line-height-base:1.84615;--ck-font-face:Helvetica,Arial,Tahoma,Verdana,Sans-Serif;--ck-font-size-tiny:0.7em;--ck-font-size-small:0.75em;--ck-font-size-normal:1em;--ck-font-size-big:1.4em;--ck-font-size-large:1.8em;--ck-ui-component-min-height:2.3em}.ck-reset_all :not(.ck-reset_all-excluded *),.ck.ck-reset,.ck.ck-reset_all{background:transparent;border:0;box-sizing:border-box;height:auto;margin:0;padding:0;position:static;text-decoration:none;transition:none;vertical-align:middle;width:auto;word-wrap:break-word}.ck-reset_all :not(.ck-reset_all-excluded *),.ck.ck-reset_all{border-collapse:collapse;color:var(--ck-color-text);cursor:auto;float:none;font:normal normal normal var(--ck-font-size-base)/var(--ck-line-height-base) var(--ck-font-face);text-align:left;white-space:nowrap}.ck-reset_all .ck-rtl :not(.ck-reset_all-excluded *){text-align:right}.ck-reset_all iframe:not(.ck-reset_all-excluded *){vertical-align:inherit}.ck-reset_all textarea:not(.ck-reset_all-excluded *){white-space:pre-wrap}.ck-reset_all input[type=password]:not(.ck-reset_all-excluded *),.ck-reset_all input[type=text]:not(.ck-reset_all-excluded *),.ck-reset_all textarea:not(.ck-reset_all-excluded *){cursor:text}.ck-reset_all input[type=password][disabled]:not(.ck-reset_all-excluded *),.ck-reset_all input[type=text][disabled]:not(.ck-reset_all-excluded *),.ck-reset_all textarea[disabled]:not(.ck-reset_all-excluded *){cursor:default}.ck-reset_all fieldset:not(.ck-reset_all-excluded *){border:2px groove #dfdee3;padding:10px}.ck-reset_all button:not(.ck-reset_all-excluded *)::-moz-focus-inner{border:0;padding:0}.ck[dir=rtl],.ck[dir=rtl] .ck{text-align:right}:root{--ck-border-radius:2px;--ck-inner-shadow:2px 2px 3px var(--ck-color-shadow-inner) inset;--ck-drop-shadow:0 1px 2px 1px var(--ck-color-shadow-drop);--ck-drop-shadow-active:0 3px 6px 1px var(--ck-color-shadow-drop-active);--ck-spacing-unit:0.6em;--ck-spacing-large:calc(var(--ck-spacing-unit)*1.5);--ck-spacing-standard:var(--ck-spacing-unit);--ck-spacing-medium:calc(var(--ck-spacing-unit)*0.8);--ck-spacing-small:calc(var(--ck-spacing-unit)*0.5);--ck-spacing-tiny:calc(var(--ck-spacing-unit)*0.3);--ck-spacing-extra-tiny:calc(var(--ck-spacing-unit)*0.16)}","",{version:3,sources:["webpack://./../ckeditor5-ui/theme/globals/_hidden.css","webpack://./../ckeditor5-ui/theme/globals/_zindex.css","webpack://./../ckeditor5-ui/theme/globals/_transition.css","webpack://./../ckeditor5-ui/theme/globals/_poweredby.css","webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/globals/_colors.css","webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/globals/_disabled.css","webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/globals/_focus.css","webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/globals/_fonts.css","webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/globals/_reset.css","webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/globals/_rounded.css","webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/globals/_shadow.css","webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/globals/_spacing.css"],names:[],mappings:"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",sourcesContent:["/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * A class which hides an element in DOM.\n */\n.ck-hidden {\n\t/* Override selector specificity. Otherwise, all elements with some display\n\tstyle defined will override this one, which is not a desired result. */\n\tdisplay: none !important;\n}\n","/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n:root {\n\t--ck-z-default: 1;\n\t--ck-z-panel: calc( var(--ck-z-default) + 999 );\n\t--ck-z-dialog: 9999;\n}\n","/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * A class that disables all transitions of the element and its children.\n */\n.ck-transitions-disabled,\n.ck-transitions-disabled * {\n\ttransition: none !important;\n}\n",'/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n:root {\n\t--ck-powered-by-line-height: 10px;\n\t--ck-powered-by-padding-vertical: 2px;\n\t--ck-powered-by-padding-horizontal: 4px;\n\t--ck-powered-by-text-color: hsl(0, 0%, 31%);\n\t--ck-powered-by-border-radius: var(--ck-border-radius);\n\t--ck-powered-by-background: hsl(0, 0%, 100%);\n\t--ck-powered-by-border-color: var(--ck-color-focus-border);\n}\n\n.ck.ck-balloon-panel.ck-powered-by-balloon {\n\t--ck-border-radius: var(--ck-powered-by-border-radius);\n\n\tbox-shadow: none;\n\tbackground: var(--ck-powered-by-background);\n\tmin-height: unset;\n\tz-index: calc( var(--ck-z-panel) - 1 );\n\n\t& .ck.ck-powered-by {\n\t\tline-height: var(--ck-powered-by-line-height);\n\n\t\t& a {\n\t\t\tcursor: pointer;\n\t\t\tdisplay: flex;\n\t\t\talign-items: center;\n\t\t\topacity: .66;\n\t\t\tfilter: grayscale(80%);\n\t\t\tline-height: var(--ck-powered-by-line-height);\n\t\t\tpadding: var(--ck-powered-by-padding-vertical) var(--ck-powered-by-padding-horizontal);\n\t\t}\n\n\t\t& .ck-powered-by__label {\n\t\t\tfont-size: 7.5px;\n\t\t\tletter-spacing: -.2px;\n\t\t\tpadding-left: 2px;\n\t\t\ttext-transform: uppercase;\n\t\t\tfont-weight: bold;\n\t\t\tmargin-right: 4px;\n\t\t\tcursor: pointer;\n\t\t\tline-height: normal;\n\t\t\tcolor: var(--ck-powered-by-text-color);\n\n\t\t}\n\n\t\t& .ck-icon {\n\t\t\tdisplay: block;\n\t\t\tcursor: pointer;\n\t\t}\n\n\t\t&:hover {\n\t\t\t& a {\n\t\t\t\tfilter: grayscale(0%);\n\t\t\t\topacity: 1;\n\t\t\t}\n\t\t}\n\t}\n\n\t&[class*="position_inside"] {\n\t\tborder-color: transparent;\n\t}\n\n\t&[class*="position_border"] {\n\t\tborder: var(--ck-focus-ring);\n\t\tborder-color: var(--ck-powered-by-border-color);\n\t}\n}\n\n',"/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n:root {\n\t--ck-color-base-foreground: \t\t\t\t\t\t\t\thsl(0, 0%, 98%);\n\t--ck-color-base-background: \t\t\t\t\t\t\t\thsl(0, 0%, 100%);\n\t--ck-color-base-border: \t\t\t\t\t\t\t\t\thsl(220, 6%, 81%);\n\t--ck-color-base-action: \t\t\t\t\t\t\t\t\thsl(104, 50.2%, 42.5%);\n\t--ck-color-base-focus: \t\t\t\t\t\t\t\t\t\thsl(209, 92%, 70%);\n\t--ck-color-base-text: \t\t\t\t\t\t\t\t\t\thsl(0, 0%, 20%);\n\t--ck-color-base-active: \t\t\t\t\t\t\t\t\thsl(218.1, 100%, 58%);\n\t--ck-color-base-active-focus:\t\t\t\t\t\t\t\thsl(218.2, 100%, 52.5%);\n\t--ck-color-base-error:\t\t\t\t\t\t\t\t\t\thsl(15, 100%, 43%);\n\n\t/* -- Generic colors ------------------------------------------------------------------------ */\n\n\t--ck-color-focus-border-coordinates: \t\t\t\t\t\t218, 81.8%, 56.9%;\n\t--ck-color-focus-border: \t\t\t\t\t\t\t\t\thsl(var(--ck-color-focus-border-coordinates));\n\t--ck-color-focus-outer-shadow:\t\t\t\t\t\t\t\thsl(212.4, 89.3%, 89%);\n\t--ck-color-focus-disabled-shadow:\t\t\t\t\t\t\thsla(209, 90%, 72%,.3);\n\t--ck-color-focus-error-shadow:\t\t\t\t\t\t\t\thsla(9,100%,56%,.3);\n\t--ck-color-text: \t\t\t\t\t\t\t\t\t\t\tvar(--ck-color-base-text);\n\t--ck-color-shadow-drop: \t\t\t\t\t\t\t\t\thsla(0, 0%, 0%, 0.15);\n\t--ck-color-shadow-drop-active:\t\t\t\t\t\t\t\thsla(0, 0%, 0%, 0.2);\n\t--ck-color-shadow-inner: \t\t\t\t\t\t\t\t\thsla(0, 0%, 0%, 0.1);\n\n\t/* -- Buttons ------------------------------------------------------------------------------- */\n\n\t--ck-color-button-default-background: \t\t\t\t\t\ttransparent;\n\t--ck-color-button-default-hover-background: \t\t\t\thsl(0, 0%, 94.1%);\n\t--ck-color-button-default-active-background: \t\t\t\thsl(0, 0%, 94.1%);\n\t--ck-color-button-default-disabled-background: \t\t\t\ttransparent;\n\n\t--ck-color-button-on-background: \t\t\t\t\t\t\thsl(212, 100%, 97.1%);\n\t--ck-color-button-on-hover-background: \t\t\t\t\t\thsl(211.7, 100%, 92.9%);\n\t--ck-color-button-on-active-background: \t\t\t\t\thsl(211.7, 100%, 92.9%);\n\t--ck-color-button-on-disabled-background: \t\t\t\t\thsl(211, 15%, 95%);\n\t--ck-color-button-on-color:\t\t\t\t\t\t\t\t\thsl(218.1, 100%, 58%);\n\n\n\t--ck-color-button-action-background: \t\t\t\t\t\tvar(--ck-color-base-action);\n\t--ck-color-button-action-hover-background: \t\t\t\t\thsl(104, 53.2%, 40.2%);\n\t--ck-color-button-action-active-background: \t\t\t\thsl(104, 53.2%, 40.2%);\n\t--ck-color-button-action-disabled-background: \t\t\t\thsl(104, 44%, 58%);\n\t--ck-color-button-action-text: \t\t\t\t\t\t\t\tvar(--ck-color-base-background);\n\n\t--ck-color-button-save: \t\t\t\t\t\t\t\t\thsl(120, 100%, 27%);\n\t--ck-color-button-cancel: \t\t\t\t\t\t\t\t\thsl(15, 100%, 43%);\n\n\t--ck-color-switch-button-off-background:\t\t\t\t\thsl(0, 0%, 57.6%);\n\t--ck-color-switch-button-off-hover-background:\t\t\t\thsl(0, 0%, 49%);\n\t--ck-color-switch-button-on-background:\t\t\t\t\t\tvar(--ck-color-button-action-background);\n\t--ck-color-switch-button-on-hover-background:\t\t\t\thsl(104, 53.2%, 40.2%);\n\t--ck-color-switch-button-inner-background:\t\t\t\t\tvar(--ck-color-base-background);\n\t--ck-color-switch-button-inner-shadow:\t\t\t\t\t\thsla(0, 0%, 0%, 0.1);\n\n\t/* -- Dropdown ------------------------------------------------------------------------------ */\n\n\t--ck-color-dropdown-panel-background: \t\t\t\t\t\tvar(--ck-color-base-background);\n\t--ck-color-dropdown-panel-border: \t\t\t\t\t\t\tvar(--ck-color-base-border);\n\n\t/* -- Dialog -------------------------------------------------------------------------------- */\n\n\t--ck-color-dialog-background: \t\t\t\t\t\t\t\tvar(--ck-custom-background);\n\t--ck-color-dialog-form-header-border: \t\t\t\t\t\tvar(--ck-custom-border);\n\n\t/* -- Input --------------------------------------------------------------------------------- */\n\n\t--ck-color-input-background: \t\t\t\t\t\t\t\tvar(--ck-color-base-background);\n\t--ck-color-input-border: \t\t\t\t\t\t\t\t\tvar(--ck-color-base-border);\n\t--ck-color-input-error-border:\t\t\t\t\t\t\t\tvar(--ck-color-base-error);\n\t--ck-color-input-text: \t\t\t\t\t\t\t\t\t\tvar(--ck-color-base-text);\n\t--ck-color-input-disabled-background: \t\t\t\t\t\thsl(0, 0%, 95%);\n\t--ck-color-input-disabled-border: \t\t\t\t\t\t\tvar(--ck-color-base-border);\n\t--ck-color-input-disabled-text: \t\t\t\t\t\t\thsl(0, 0%, 46%);\n\n\t/* -- List ---------------------------------------------------------------------------------- */\n\n\t--ck-color-list-background: \t\t\t\t\t\t\t\tvar(--ck-color-base-background);\n\t--ck-color-list-button-hover-background: \t\t\t\t\tvar(--ck-color-button-default-hover-background);\n\t--ck-color-list-button-on-background: \t\t\t\t\t\tvar(--ck-color-button-on-color);\n\t--ck-color-list-button-on-background-focus: \t\t\t\tvar(--ck-color-button-on-color);\n\t--ck-color-list-button-on-text:\t\t\t\t\t\t\t\tvar(--ck-color-base-background);\n\n\t/* -- Panel --------------------------------------------------------------------------------- */\n\n\t--ck-color-panel-background: \t\t\t\t\t\t\t\tvar(--ck-color-base-background);\n\t--ck-color-panel-border: \t\t\t\t\t\t\t\t\tvar(--ck-color-base-border);\n\n\t/* -- Toolbar ------------------------------------------------------------------------------- */\n\n\t--ck-color-toolbar-background: \t\t\t\t\t\t\t\tvar(--ck-color-base-background);\n\t--ck-color-toolbar-border: \t\t\t\t\t\t\t\t\tvar(--ck-color-base-border);\n\n\t/* -- Tooltip ------------------------------------------------------------------------------- */\n\n\t--ck-color-tooltip-background: \t\t\t\t\t\t\t\tvar(--ck-color-base-text);\n\t--ck-color-tooltip-text: \t\t\t\t\t\t\t\t\tvar(--ck-color-base-background);\n\n\t/* -- Engine -------------------------------------------------------------------------------- */\n\n\t--ck-color-engine-placeholder-text: \t\t\t\t\t\thsl(0, 0%, 44%);\n\n\t/* -- Upload -------------------------------------------------------------------------------- */\n\n\t--ck-color-upload-bar-background:\t\t \t\t\t\t\thsl(209, 92%, 70%);\n\n\t/* -- Link -------------------------------------------------------------------------------- */\n\n\t--ck-color-link-default:\t\t\t\t\t\t\t\t\thsl(240, 100%, 47%);\n\t--ck-color-link-selected-background:\t\t\t\t\t\thsla(201, 100%, 56%, 0.1);\n\t--ck-color-link-fake-selection:\t\t\t\t\t\t\t\thsla(201, 100%, 56%, 0.3);\n\n\t/* -- Search result highlight ---------------------------------------------------------------- */\n\n\t--ck-color-highlight-background:\t\t\t\t\t\t\thsl(60, 100%, 50%);\n\n\t/* -- Generic colors ------------------------------------------------------------------------- */\n\n\t--ck-color-light-red:\t\t\t\t\t\t\t\t\t\thsl(0, 100%, 90%);\n}\n","/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n:root {\n\t/**\n\t * An opacity value of disabled UI item.\n\t */\n\t--ck-disabled-opacity: .5;\n}\n","/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n:root {\n\t/**\n\t * The geometry of the of focused element's outer shadow.\n\t */\n\t--ck-focus-outer-shadow-geometry: 0 0 0 3px;\n\n\t/**\n\t * A visual style of focused element's outer shadow.\n\t */\n\t--ck-focus-outer-shadow: var(--ck-focus-outer-shadow-geometry) var(--ck-color-focus-outer-shadow);\n\n\t/**\n\t * A visual style of focused element's outer shadow (when disabled).\n\t */\n\t--ck-focus-disabled-outer-shadow: var(--ck-focus-outer-shadow-geometry) var(--ck-color-focus-disabled-shadow);\n\n\t/**\n\t * A visual style of focused element's outer shadow (when has errors).\n\t */\n\t--ck-focus-error-outer-shadow: var(--ck-focus-outer-shadow-geometry) var(--ck-color-focus-error-shadow);\n\n\t/**\n\t * A visual style of focused element's border or outline.\n\t */\n\t--ck-focus-ring: 1px solid var(--ck-color-focus-border);\n}\n","/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n:root {\n\t--ck-font-size-base: 13px;\n\t--ck-line-height-base: 1.84615;\n\t--ck-font-face: Helvetica, Arial, Tahoma, Verdana, Sans-Serif;\n\n\t--ck-font-size-tiny: 0.7em;\n\t--ck-font-size-small: 0.75em;\n\t--ck-font-size-normal: 1em;\n\t--ck-font-size-big: 1.4em;\n\t--ck-font-size-large: 1.8em;\n}\n",'/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n:root {\n\t/* This is super-important. This is **manually** adjusted so a button without an icon\n\tis never smaller than a button with icon, additionally making sure that text-less buttons\n\tare perfect squares. The value is also shared by other components which should stay "in-line"\n\twith buttons. */\n\t--ck-ui-component-min-height: 2.3em;\n}\n\n/**\n * Resets an element, ignoring its children.\n */\n.ck.ck-reset,\n.ck.ck-reset_all,\n.ck-reset_all *:not(.ck-reset_all-excluded *) {\n\tbox-sizing: border-box;\n\twidth: auto;\n\theight: auto;\n\tposition: static;\n\n\t/* Do not include inheritable rules here. */\n\tmargin: 0;\n\tpadding: 0;\n\tborder: 0;\n\tbackground: transparent;\n\ttext-decoration: none;\n\tvertical-align: middle;\n\ttransition: none;\n\n\t/* https://github.com/ckeditor/ckeditor5-theme-lark/issues/105 */\n\tword-wrap: break-word;\n}\n\n/**\n * Resets an element AND its children.\n */\n.ck.ck-reset_all,\n.ck-reset_all *:not(.ck-reset_all-excluded *) {\n\t/* These are rule inherited by all children elements. */\n\tborder-collapse: collapse;\n\tfont: normal normal normal var(--ck-font-size-base)/var(--ck-line-height-base) var(--ck-font-face);\n\tcolor: var(--ck-color-text);\n\ttext-align: left;\n\twhite-space: nowrap;\n\tcursor: auto;\n\tfloat: none;\n}\n\n.ck-reset_all {\n\t& .ck-rtl *:not(.ck-reset_all-excluded *) {\n\t\ttext-align: right;\n\t}\n\n\t& iframe:not(.ck-reset_all-excluded *) {\n\t\t/* For IE */\n\t\tvertical-align: inherit;\n\t}\n\n\t& textarea:not(.ck-reset_all-excluded *) {\n\t\twhite-space: pre-wrap;\n\t}\n\n\t& textarea:not(.ck-reset_all-excluded *),\n\t& input[type="text"]:not(.ck-reset_all-excluded *),\n\t& input[type="password"]:not(.ck-reset_all-excluded *) {\n\t\tcursor: text;\n\t}\n\n\t& textarea[disabled]:not(.ck-reset_all-excluded *),\n\t& input[type="text"][disabled]:not(.ck-reset_all-excluded *),\n\t& input[type="password"][disabled]:not(.ck-reset_all-excluded *) {\n\t\tcursor: default;\n\t}\n\n\t& fieldset:not(.ck-reset_all-excluded *) {\n\t\tpadding: 10px;\n\t\tborder: 2px groove hsl(255, 7%, 88%);\n\t}\n\n\t& button:not(.ck-reset_all-excluded *)::-moz-focus-inner {\n\t\t/* See http://stackoverflow.com/questions/5517744/remove-extra-button-spacing-padding-in-firefox */\n\t\tpadding: 0;\n\t\tborder: 0\n\t}\n}\n\n/**\n * Default UI rules for RTL languages.\n */\n.ck[dir="rtl"],\n.ck[dir="rtl"] .ck {\n\ttext-align: right;\n}\n',"/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * Default border-radius value.\n */\n:root{\n\t--ck-border-radius: 2px;\n}\n","/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n:root {\n\t/**\n\t * A visual style of element's inner shadow (i.e. input).\n\t */\n\t--ck-inner-shadow: 2px 2px 3px var(--ck-color-shadow-inner) inset;\n\n\t/**\n\t * A visual style of element's drop shadow (i.e. panel).\n\t */\n\t--ck-drop-shadow: 0 1px 2px 1px var(--ck-color-shadow-drop);\n\n\t/**\n\t * A visual style of element's active shadow (i.e. comment or suggestion).\n\t */\n\t--ck-drop-shadow-active: 0 3px 6px 1px var(--ck-color-shadow-drop-active);\n}\n","/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n:root {\n\t--ck-spacing-unit: \t\t\t\t\t\t0.6em;\n\t--ck-spacing-large: \t\t\t\t\tcalc(var(--ck-spacing-unit) * 1.5);\n\t--ck-spacing-standard: \t\t\t\t\tvar(--ck-spacing-unit);\n\t--ck-spacing-medium: \t\t\t\t\tcalc(var(--ck-spacing-unit) * 0.8);\n\t--ck-spacing-small: \t\t\t\t\tcalc(var(--ck-spacing-unit) * 0.5);\n\t--ck-spacing-tiny: \t\t\t\t\t\tcalc(var(--ck-spacing-unit) * 0.3);\n\t--ck-spacing-extra-tiny: \t\t\t\tcalc(var(--ck-spacing-unit) * 0.16);\n}\n"],sourceRoot:""}]);const a=s},695:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(9372),i=n.n(o),r=n(935),s=n.n(r)()(i());s.push([t.id,":root{--ck-color-resizer:var(--ck-color-focus-border);--ck-color-resizer-tooltip-background:#262626;--ck-color-resizer-tooltip-text:#f2f2f2;--ck-resizer-border-radius:var(--ck-border-radius);--ck-resizer-tooltip-offset:10px;--ck-resizer-tooltip-height:calc(var(--ck-spacing-small)*2 + 10px)}.ck .ck-widget,.ck .ck-widget.ck-widget_with-selection-handle{position:relative}.ck .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle{position:absolute}.ck .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle .ck-icon{display:block}.ck .ck-widget.ck-widget_with-selection-handle.ck-widget_selected>.ck-widget__selection-handle,.ck .ck-widget.ck-widget_with-selection-handle:hover>.ck-widget__selection-handle{visibility:visible}.ck .ck-size-view{background:var(--ck-color-resizer-tooltip-background);border:1px solid var(--ck-color-resizer-tooltip-text);border-radius:var(--ck-resizer-border-radius);color:var(--ck-color-resizer-tooltip-text);display:block;font-size:var(--ck-font-size-tiny);height:var(--ck-resizer-tooltip-height);line-height:var(--ck-resizer-tooltip-height);padding:0 var(--ck-spacing-small)}.ck .ck-size-view.ck-orientation-above-center,.ck .ck-size-view.ck-orientation-bottom-left,.ck .ck-size-view.ck-orientation-bottom-right,.ck .ck-size-view.ck-orientation-top-left,.ck .ck-size-view.ck-orientation-top-right{position:absolute}.ck .ck-size-view.ck-orientation-top-left{left:var(--ck-resizer-tooltip-offset);top:var(--ck-resizer-tooltip-offset)}.ck .ck-size-view.ck-orientation-top-right{right:var(--ck-resizer-tooltip-offset);top:var(--ck-resizer-tooltip-offset)}.ck .ck-size-view.ck-orientation-bottom-right{bottom:var(--ck-resizer-tooltip-offset);right:var(--ck-resizer-tooltip-offset)}.ck .ck-size-view.ck-orientation-bottom-left{bottom:var(--ck-resizer-tooltip-offset);left:var(--ck-resizer-tooltip-offset)}.ck .ck-size-view.ck-orientation-above-center{left:50%;top:calc(var(--ck-resizer-tooltip-height)*-1);transform:translate(-50%)}:root{--ck-widget-outline-thickness:3px;--ck-widget-handler-icon-size:16px;--ck-widget-handler-animation-duration:200ms;--ck-widget-handler-animation-curve:ease;--ck-color-widget-blurred-border:#dedede;--ck-color-widget-hover-border:#ffc83d;--ck-color-widget-editable-focus-background:var(--ck-color-base-background);--ck-color-widget-drag-handler-icon-color:var(--ck-color-base-background)}.ck .ck-widget{outline-color:transparent;outline-style:solid;outline-width:var(--ck-widget-outline-thickness);transition:outline-color var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve)}@media (prefers-reduced-motion:reduce){.ck .ck-widget{transition:none}}.ck .ck-widget.ck-widget_selected,.ck .ck-widget.ck-widget_selected:hover{outline:var(--ck-widget-outline-thickness) solid var(--ck-color-focus-border)}.ck .ck-widget:hover{outline-color:var(--ck-color-widget-hover-border)}.ck .ck-editor__nested-editable{border:1px solid transparent}.ck .ck-editor__nested-editable.ck-editor__nested-editable_focused,.ck .ck-editor__nested-editable:focus{border:var(--ck-focus-ring);box-shadow:var(--ck-inner-shadow),0 0;outline:none}@media (forced-colors:none){.ck .ck-editor__nested-editable.ck-editor__nested-editable_focused,.ck .ck-editor__nested-editable:focus{background-color:var(--ck-color-widget-editable-focus-background)}}.ck .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle{background-color:transparent;border-radius:var(--ck-border-radius) var(--ck-border-radius) 0 0;box-sizing:border-box;left:calc(0px - var(--ck-widget-outline-thickness));opacity:0;padding:4px;top:0;transform:translateY(-100%);transition:background-color var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve),visibility var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve),opacity var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve)}@media (prefers-reduced-motion:reduce){.ck .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle{transition:none}}.ck .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle .ck-icon{color:var(--ck-color-widget-drag-handler-icon-color);height:var(--ck-widget-handler-icon-size);width:var(--ck-widget-handler-icon-size)}.ck .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle .ck-icon .ck-icon__selected-indicator{opacity:0;transition:opacity .3s var(--ck-widget-handler-animation-curve)}@media (prefers-reduced-motion:reduce){.ck .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle .ck-icon .ck-icon__selected-indicator{transition:none}}.ck .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle:hover .ck-icon .ck-icon__selected-indicator{opacity:1}.ck .ck-widget.ck-widget_with-selection-handle:hover>.ck-widget__selection-handle{background-color:var(--ck-color-widget-hover-border);opacity:1}.ck .ck-widget.ck-widget_with-selection-handle.ck-widget_selected:hover>.ck-widget__selection-handle,.ck .ck-widget.ck-widget_with-selection-handle.ck-widget_selected>.ck-widget__selection-handle{background-color:var(--ck-color-focus-border);opacity:1}.ck .ck-widget.ck-widget_with-selection-handle.ck-widget_selected:hover>.ck-widget__selection-handle .ck-icon .ck-icon__selected-indicator,.ck .ck-widget.ck-widget_with-selection-handle.ck-widget_selected>.ck-widget__selection-handle .ck-icon .ck-icon__selected-indicator{opacity:1}.ck[dir=rtl] .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle{left:auto;right:calc(0px - var(--ck-widget-outline-thickness))}.ck.ck-editor__editable.ck-read-only .ck-widget{transition:none}.ck.ck-editor__editable.ck-read-only .ck-widget:not(.ck-widget_selected){--ck-widget-outline-thickness:0px}.ck.ck-editor__editable.ck-read-only .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle,.ck.ck-editor__editable.ck-read-only .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle:hover{background:var(--ck-color-widget-blurred-border)}.ck.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected,.ck.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected:hover{outline-color:var(--ck-color-widget-blurred-border)}.ck.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected.ck-widget_with-selection-handle:hover>.ck-widget__selection-handle,.ck.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected.ck-widget_with-selection-handle:hover>.ck-widget__selection-handle:hover,.ck.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected.ck-widget_with-selection-handle>.ck-widget__selection-handle,.ck.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected.ck-widget_with-selection-handle>.ck-widget__selection-handle:hover{background:var(--ck-color-widget-blurred-border)}.ck.ck-editor__editable blockquote>.ck-widget.ck-widget_with-selection-handle:first-child,.ck.ck-editor__editable>.ck-widget.ck-widget_with-selection-handle:first-child{margin-top:calc(1em + var(--ck-widget-handler-icon-size))}","",{version:3,sources:["webpack://./../ckeditor5-widget/theme/widget.css","webpack://./../ckeditor5-theme-lark/theme/ckeditor5-widget/widget.css","webpack://./../ckeditor5-theme-lark/theme/mixins/_focus.css","webpack://./../ckeditor5-theme-lark/theme/mixins/_shadow.css","webpack://./../ckeditor5-ui/theme/mixins/_mediacolors.css"],names:[],mappings:"AAKA,MACC,+CAAgD,CAChD,6CAAsD,CACtD,uCAAgD,CAEhD,kDAAmD,CACnD,gCAAiC,CACjC,kEACD,CAOA,8DAEC,iBAqBD,CAnBC,4EACC,iBAOD,CALC,qFAGC,aACD,CASD,iLACC,kBACD,CAGD,kBACC,qDAAsD,CAEtD,qDAAsD,CACtD,6CAA8C,CAF9C,0CAA2C,CAI3C,aAAc,CADd,kCAAmC,CAGnC,uCAAwC,CACxC,4CAA6C,CAF7C,iCAsCD,CAlCC,8NAKC,iBACD,CAEA,0CAEC,qCAAsC,CADtC,oCAED,CAEA,2CAEC,sCAAuC,CADvC,oCAED,CAEA,8CACC,uCAAwC,CACxC,sCACD,CAEA,6CACC,uCAAwC,CACxC,qCACD,CAGA,8CAEC,QAAS,CADT,6CAAgD,CAEhD,yBACD,CChFD,MACC,iCAAkC,CAClC,kCAAmC,CACnC,4CAA6C,CAC7C,wCAAyC,CAEzC,wCAAiD,CACjD,sCAAkD,CAClD,2EAA4E,CAC5E,yEACD,CAEA,eAGC,yBAA0B,CAD1B,mBAAoB,CADpB,gDAAiD,CAGjD,6GAcD,CAZC,uCAND,eAOE,eAWF,CAVC,CAEA,0EAEC,6EACD,CAEA,qBACC,iDACD,CAGD,gCACC,4BAYD,CARC,yGCnCA,2BAA2B,CCF3B,qCAA8B,CDC9B,YD2CA,CGvCA,4BACC,yGHoCC,iEGlCD,CACD,CHuCA,4EAKC,4BAA6B,CAa7B,iEAAkE,CAhBlE,qBAAsB,CAoBtB,mDAAoD,CAhBpD,SAAU,CALV,WAAY,CAsBZ,KAAM,CAFN,2BAA4B,CAT5B,6SAwCD,CA3BC,uCAzBD,4EA0BE,eA0BF,CAzBC,CAEA,qFAIC,oDAAqD,CADrD,yCAA0C,CAD1C,wCAeD,CAVC,kHACC,SAAU,CAGV,+DAKD,CAHC,uCAND,kHAOE,eAEF,CADC,CAKF,wHACC,SACD,CAID,kFAEC,oDAAqD,CADrD,SAED,CAKC,oMAEC,6CAA8C,CAD9C,SAOD,CAHC,gRACC,SACD,CAOH,qFACC,SAAU,CACV,oDACD,CAGA,gDAEC,eAkBD,CAhBC,yEAOC,iCACD,CAGC,gOAEC,gDACD,CAOD,wIAEC,mDAQD,CALE,ghBAEC,gDACD,CAKH,yKAOC,yDACD",sourcesContent:["/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n:root {\n\t--ck-color-resizer: var(--ck-color-focus-border);\n\t--ck-color-resizer-tooltip-background: hsl(0, 0%, 15%);\n\t--ck-color-resizer-tooltip-text: hsl(0, 0%, 95%);\n\n\t--ck-resizer-border-radius: var(--ck-border-radius);\n\t--ck-resizer-tooltip-offset: 10px;\n\t--ck-resizer-tooltip-height: calc(var(--ck-spacing-small) * 2 + 10px);\n}\n\n.ck .ck-widget {\n\t/* This is neccessary for type around UI to be positioned properly. */\n\tposition: relative;\n}\n\n.ck .ck-widget.ck-widget_with-selection-handle {\n\t/* Make the widget wrapper a relative positioning container for the drag handle. */\n\tposition: relative;\n\n\t& .ck-widget__selection-handle {\n\t\tposition: absolute;\n\n\t\t& .ck-icon {\n\t\t\t/* Make sure the icon in not a subject to font-size or line-height to avoid\n\t\t\tunnecessary spacing around it. */\n\t\t\tdisplay: block;\n\t\t}\n\t}\n\n\t/* Show the selection handle on mouse hover over the widget, but not for nested widgets. */\n\t&:hover > .ck-widget__selection-handle {\n\t\tvisibility: visible;\n\t}\n\n\t/* Show the selection handle when the widget is selected, but not for nested widgets. */\n\t&.ck-widget_selected > .ck-widget__selection-handle {\n\t\tvisibility: visible;\n\t}\n}\n\n.ck .ck-size-view {\n\tbackground: var(--ck-color-resizer-tooltip-background);\n\tcolor: var(--ck-color-resizer-tooltip-text);\n\tborder: 1px solid var(--ck-color-resizer-tooltip-text);\n\tborder-radius: var(--ck-resizer-border-radius);\n\tfont-size: var(--ck-font-size-tiny);\n\tdisplay: block;\n\tpadding: 0 var(--ck-spacing-small);\n\theight: var(--ck-resizer-tooltip-height);\n\tline-height: var(--ck-resizer-tooltip-height);\n\n\t&.ck-orientation-top-left,\n\t&.ck-orientation-top-right,\n\t&.ck-orientation-bottom-right,\n\t&.ck-orientation-bottom-left,\n\t&.ck-orientation-above-center {\n\t\tposition: absolute;\n\t}\n\n\t&.ck-orientation-top-left {\n\t\ttop: var(--ck-resizer-tooltip-offset);\n\t\tleft: var(--ck-resizer-tooltip-offset);\n\t}\n\n\t&.ck-orientation-top-right {\n\t\ttop: var(--ck-resizer-tooltip-offset);\n\t\tright: var(--ck-resizer-tooltip-offset);\n\t}\n\n\t&.ck-orientation-bottom-right {\n\t\tbottom: var(--ck-resizer-tooltip-offset);\n\t\tright: var(--ck-resizer-tooltip-offset);\n\t}\n\n\t&.ck-orientation-bottom-left {\n\t\tbottom: var(--ck-resizer-tooltip-offset);\n\t\tleft: var(--ck-resizer-tooltip-offset);\n\t}\n\n\t/* Class applied if the widget is too small to contain the size label */\n\t&.ck-orientation-above-center {\n\t\ttop: calc(var(--ck-resizer-tooltip-height) * -1);\n\t\tleft: 50%;\n\t\ttransform: translate(-50%);\n\t}\n}\n",'/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "../mixins/_focus.css";\n@import "../mixins/_shadow.css";\n@import "@ckeditor/ckeditor5-ui/theme/mixins/_mediacolors.css";\n\n:root {\n\t--ck-widget-outline-thickness: 3px;\n\t--ck-widget-handler-icon-size: 16px;\n\t--ck-widget-handler-animation-duration: 200ms;\n\t--ck-widget-handler-animation-curve: ease;\n\n\t--ck-color-widget-blurred-border: hsl(0, 0%, 87%);\n\t--ck-color-widget-hover-border: hsl(43, 100%, 62%);\n\t--ck-color-widget-editable-focus-background: var(--ck-color-base-background);\n\t--ck-color-widget-drag-handler-icon-color: var(--ck-color-base-background);\n}\n\n.ck .ck-widget {\n\toutline-width: var(--ck-widget-outline-thickness);\n\toutline-style: solid;\n\toutline-color: transparent;\n\ttransition: outline-color var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve);\n\n\t@media (prefers-reduced-motion: reduce) {\n\t\ttransition: none;\n\t}\n\n\t&.ck-widget_selected,\n\t&.ck-widget_selected:hover {\n\t\toutline: var(--ck-widget-outline-thickness) solid var(--ck-color-focus-border);\n\t}\n\n\t&:hover {\n\t\toutline-color: var(--ck-color-widget-hover-border);\n\t}\n}\n\n.ck .ck-editor__nested-editable {\n\tborder: 1px solid transparent;\n\n\t/* The :focus style is applied before .ck-editor__nested-editable_focused class is rendered in the view.\n\tThese styles show a different border for a blink of an eye, so `:focus` need to have same styles applied. */\n\t&.ck-editor__nested-editable_focused,\n\t&:focus {\n\t\t@mixin ck-focus-ring;\n\t\t@mixin ck-box-shadow var(--ck-inner-shadow);\n\t\t@mixin ck-media-default-colors {\n\t\t\tbackground-color: var(--ck-color-widget-editable-focus-background);\n\t\t}\n\t}\n}\n\n.ck .ck-widget.ck-widget_with-selection-handle {\n\t& .ck-widget__selection-handle {\n\t\tpadding: 4px;\n\t\tbox-sizing: border-box;\n\n\t\t/* Background and opacity will be animated as the handler shows up or the widget gets selected. */\n\t\tbackground-color: transparent;\n\t\topacity: 0;\n\n\t\t/* Transition:\n\t\t * background-color for the .ck-widget_selected state change,\n\t\t * visibility for hiding the handler,\n\t\t * opacity for the proper look of the icon when the handler disappears. */\n\t\ttransition:\n\t\t\tbackground-color var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve),\n\t\t\tvisibility var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve),\n\t\t\topacity var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve);\n\n\t\t/* Make only top corners round. */\n\t\tborder-radius: var(--ck-border-radius) var(--ck-border-radius) 0 0;\n\n\t\t/* Place the drag handler outside the widget wrapper. */\n\t\ttransform: translateY(-100%);\n\t\tleft: calc(0px - var(--ck-widget-outline-thickness));\n\t\ttop: 0;\n\n\t\t@media (prefers-reduced-motion: reduce) {\n\t\t\ttransition: none;\n\t\t}\n\n\t\t& .ck-icon {\n\t\t\t/* Make sure the dimensions of the icon are independent of the fon-size of the content. */\n\t\t\twidth: var(--ck-widget-handler-icon-size);\n\t\t\theight: var(--ck-widget-handler-icon-size);\n\t\t\tcolor: var(--ck-color-widget-drag-handler-icon-color);\n\n\t\t\t/* The "selected" part of the icon is invisible by default */\n\t\t\t& .ck-icon__selected-indicator {\n\t\t\t\topacity: 0;\n\n\t\t\t\t/* Note: The animation is longer on purpose. Simply feels better. */\n\t\t\t\ttransition: opacity 300ms var(--ck-widget-handler-animation-curve);\n\n\t\t\t\t@media (prefers-reduced-motion: reduce) {\n\t\t\t\t\ttransition: none;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t/* Advertise using the look of the icon that once clicked the handler, the widget will be selected. */\n\t\t&:hover .ck-icon .ck-icon__selected-indicator {\n\t\t\topacity: 1;\n\t\t}\n\t}\n\n\t/* Show the selection handler on mouse hover over the widget, but not for nested widgets. */\n\t&:hover > .ck-widget__selection-handle {\n\t\topacity: 1;\n\t\tbackground-color: var(--ck-color-widget-hover-border);\n\t}\n\n\t/* Show the selection handler when the widget is selected, but not for nested widgets. */\n\t&.ck-widget_selected,\n\t&.ck-widget_selected:hover {\n\t\t& > .ck-widget__selection-handle {\n\t\t\topacity: 1;\n\t\t\tbackground-color: var(--ck-color-focus-border);\n\n\t\t\t/* When the widget is selected, notify the user using the proper look of the icon. */\n\t\t\t& .ck-icon .ck-icon__selected-indicator {\n\t\t\t\topacity: 1;\n\t\t\t}\n\t\t}\n\t}\n}\n\n/* In a RTL environment, align the selection handler to the right side of the widget */\n/* stylelint-disable-next-line no-descending-specificity */\n.ck[dir="rtl"] .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle {\n\tleft: auto;\n\tright: calc(0px - var(--ck-widget-outline-thickness));\n}\n\n/* https://github.com/ckeditor/ckeditor5/issues/6415 */\n.ck.ck-editor__editable.ck-read-only .ck-widget {\n\t/* Prevent the :hover outline from showing up because of the used outline-color transition. */\n\ttransition: none;\n\n\t&:not(.ck-widget_selected) {\n\t\t/* Disable visual effects of hover/active widget when CKEditor is in readOnly mode.\n\t\t * See: https://github.com/ckeditor/ckeditor5/issues/1261\n\t\t *\n\t\t * Leave the unit because this custom property is used in calc() by other features.\n\t\t * See: https://github.com/ckeditor/ckeditor5/issues/6775\n\t\t */\n\t\t--ck-widget-outline-thickness: 0px;\n\t}\n\n\t&.ck-widget_with-selection-handle {\n\t\t& .ck-widget__selection-handle,\n\t\t& .ck-widget__selection-handle:hover {\n\t\t\tbackground: var(--ck-color-widget-blurred-border);\n\t\t}\n\t}\n}\n\n/* Style the widget when it\'s selected but the editable it belongs to lost focus. */\n/* stylelint-disable-next-line no-descending-specificity */\n.ck.ck-editor__editable.ck-blurred .ck-widget {\n\t&.ck-widget_selected,\n\t&.ck-widget_selected:hover {\n\t\toutline-color: var(--ck-color-widget-blurred-border);\n\n\t\t&.ck-widget_with-selection-handle {\n\t\t\t& > .ck-widget__selection-handle,\n\t\t\t& > .ck-widget__selection-handle:hover {\n\t\t\t\tbackground: var(--ck-color-widget-blurred-border);\n\t\t\t}\n\t\t}\n\t}\n}\n\n.ck.ck-editor__editable > .ck-widget.ck-widget_with-selection-handle:first-child,\n.ck.ck-editor__editable blockquote > .ck-widget.ck-widget_with-selection-handle:first-child {\n\t/* Do not crop selection handler if a widget is a first-child in the blockquote or in the root editable.\n\tIn fact, anything with overflow: hidden.\n\thttps://github.com/ckeditor/ckeditor5-block-quote/issues/28\n\thttps://github.com/ckeditor/ckeditor5-widget/issues/44\n\thttps://github.com/ckeditor/ckeditor5-widget/issues/66 */\n\tmargin-top: calc(1em + var(--ck-widget-handler-icon-size));\n}\n',"/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * A visual style of focused element's border.\n */\n@define-mixin ck-focus-ring {\n\t/* Disable native outline. */\n\toutline: none;\n\tborder: var(--ck-focus-ring)\n}\n","/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * A helper to combine multiple shadows.\n */\n@define-mixin ck-box-shadow $shadowA, $shadowB: 0 0 {\n\tbox-shadow: $shadowA, $shadowB;\n}\n\n/**\n * Gives an element a drop shadow so it looks like a floating panel.\n */\n@define-mixin ck-drop-shadow {\n\t@mixin ck-box-shadow var(--ck-drop-shadow);\n}\n","/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@define-mixin ck-media-forced-colors {\n\t@media (forced-colors: active) {\n\t\t& {\n\t\t\t@mixin-content;\n\t\t}\n\t}\n}\n\n@define-mixin ck-media-default-colors {\n\t@media (forced-colors: none) {\n\t\t& {\n\t\t\t@mixin-content;\n\t\t}\n\t}\n}\n"],sourceRoot:""}]);const a=s},4095:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(9372),i=n.n(o),r=n(935),s=n.n(r)()(i());s.push([t.id,".ck .ck-widget_with-resizer{position:relative}.ck .ck-widget__resizer{display:none;left:0;pointer-events:none;position:absolute;top:0}.ck-focused .ck-widget_with-resizer.ck-widget_selected>.ck-widget__resizer{display:block}.ck .ck-widget__resizer__handle{pointer-events:all;position:absolute}.ck .ck-widget__resizer__handle.ck-widget__resizer__handle-bottom-right,.ck .ck-widget__resizer__handle.ck-widget__resizer__handle-top-left{cursor:nwse-resize}.ck .ck-widget__resizer__handle.ck-widget__resizer__handle-bottom-left,.ck .ck-widget__resizer__handle.ck-widget__resizer__handle-top-right{cursor:nesw-resize}:root{--ck-resizer-size:10px;--ck-resizer-offset:calc(var(--ck-resizer-size)/-2 - 2px);--ck-resizer-border-width:1px}.ck .ck-widget__resizer{outline:1px solid var(--ck-color-resizer)}.ck .ck-widget__resizer__handle{background:var(--ck-color-focus-border);border:var(--ck-resizer-border-width) solid #fff;border-radius:var(--ck-resizer-border-radius);height:var(--ck-resizer-size);width:var(--ck-resizer-size)}.ck .ck-widget__resizer__handle.ck-widget__resizer__handle-top-left{left:var(--ck-resizer-offset);top:var(--ck-resizer-offset)}.ck .ck-widget__resizer__handle.ck-widget__resizer__handle-top-right{right:var(--ck-resizer-offset);top:var(--ck-resizer-offset)}.ck .ck-widget__resizer__handle.ck-widget__resizer__handle-bottom-right{bottom:var(--ck-resizer-offset);right:var(--ck-resizer-offset)}.ck .ck-widget__resizer__handle.ck-widget__resizer__handle-bottom-left{bottom:var(--ck-resizer-offset);left:var(--ck-resizer-offset)}","",{version:3,sources:["webpack://./../ckeditor5-widget/theme/widgetresize.css","webpack://./../ckeditor5-theme-lark/theme/ckeditor5-widget/widgetresize.css"],names:[],mappings:"AAKA,4BAEC,iBACD,CAEA,wBACC,YAAa,CAMb,MAAO,CAFP,mBAAoB,CAHpB,iBAAkB,CAMlB,KACD,CAGC,2EACC,aACD,CAGD,gCAIC,kBAAmB,CAHnB,iBAcD,CATC,4IAEC,kBACD,CAEA,4IAEC,kBACD,CCpCD,MACC,sBAAuB,CAGvB,yDAAiE,CACjE,6BACD,CAEA,wBACC,yCACD,CAEA,gCAGC,uCAAwC,CACxC,gDAA6D,CAC7D,6CAA8C,CAH9C,6BAA8B,CAD9B,4BAyBD,CAnBC,oEAEC,6BAA8B,CAD9B,4BAED,CAEA,qEAEC,8BAA+B,CAD/B,4BAED,CAEA,wEACC,+BAAgC,CAChC,8BACD,CAEA,uEACC,+BAAgC,CAChC,6BACD",sourcesContent:["/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck .ck-widget_with-resizer {\n\t/* Make the widget wrapper a relative positioning container for the drag handle. */\n\tposition: relative;\n}\n\n.ck .ck-widget__resizer {\n\tdisplay: none;\n\tposition: absolute;\n\n\t/* The wrapper itself should not interfere with the pointer device, only the handles should. */\n\tpointer-events: none;\n\n\tleft: 0;\n\ttop: 0;\n}\n\n.ck-focused .ck-widget_with-resizer.ck-widget_selected {\n\t& > .ck-widget__resizer {\n\t\tdisplay: block;\n\t}\n}\n\n.ck .ck-widget__resizer__handle {\n\tposition: absolute;\n\n\t/* Resizers are the only UI elements that should interfere with a pointer device. */\n\tpointer-events: all;\n\n\t&.ck-widget__resizer__handle-top-left,\n\t&.ck-widget__resizer__handle-bottom-right {\n\t\tcursor: nwse-resize;\n\t}\n\n\t&.ck-widget__resizer__handle-top-right,\n\t&.ck-widget__resizer__handle-bottom-left {\n\t\tcursor: nesw-resize;\n\t}\n}\n","/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n:root {\n\t--ck-resizer-size: 10px;\n\n\t/* Set the resizer with a 50% offset. */\n\t--ck-resizer-offset: calc( ( var(--ck-resizer-size) / -2 ) - 2px);\n\t--ck-resizer-border-width: 1px;\n}\n\n.ck .ck-widget__resizer {\n\toutline: 1px solid var(--ck-color-resizer);\n}\n\n.ck .ck-widget__resizer__handle {\n\twidth: var(--ck-resizer-size);\n\theight: var(--ck-resizer-size);\n\tbackground: var(--ck-color-focus-border);\n\tborder: var(--ck-resizer-border-width) solid hsl(0, 0%, 100%);\n\tborder-radius: var(--ck-resizer-border-radius);\n\n\t&.ck-widget__resizer__handle-top-left {\n\t\ttop: var(--ck-resizer-offset);\n\t\tleft: var(--ck-resizer-offset);\n\t}\n\n\t&.ck-widget__resizer__handle-top-right {\n\t\ttop: var(--ck-resizer-offset);\n\t\tright: var(--ck-resizer-offset);\n\t}\n\n\t&.ck-widget__resizer__handle-bottom-right {\n\t\tbottom: var(--ck-resizer-offset);\n\t\tright: var(--ck-resizer-offset);\n\t}\n\n\t&.ck-widget__resizer__handle-bottom-left {\n\t\tbottom: var(--ck-resizer-offset);\n\t\tleft: var(--ck-resizer-offset);\n\t}\n}\n"],sourceRoot:""}]);const a=s},8508:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(9372),i=n.n(o),r=n(935),s=n.n(r)()(i());s.push([t.id,'.ck .ck-widget .ck-widget__type-around__button{display:block;overflow:hidden;position:absolute;z-index:var(--ck-z-default)}.ck .ck-widget .ck-widget__type-around__button svg{left:50%;position:absolute;top:50%;z-index:calc(var(--ck-z-default) + 2)}.ck .ck-widget .ck-widget__type-around__button.ck-widget__type-around__button_before{left:min(10%,30px);top:calc(var(--ck-widget-outline-thickness)*-.5);transform:translateY(-50%)}.ck .ck-widget .ck-widget__type-around__button.ck-widget__type-around__button_after{bottom:calc(var(--ck-widget-outline-thickness)*-.5);right:min(10%,30px);transform:translateY(50%)}.ck .ck-widget.ck-widget_selected>.ck-widget__type-around>.ck-widget__type-around__button:after,.ck .ck-widget>.ck-widget__type-around>.ck-widget__type-around__button:hover:after{content:"";display:block;left:1px;position:absolute;top:1px;z-index:calc(var(--ck-z-default) + 1)}.ck .ck-widget>.ck-widget__type-around>.ck-widget__type-around__fake-caret{display:none;left:0;position:absolute;right:0}.ck .ck-widget:hover>.ck-widget__type-around>.ck-widget__type-around__fake-caret{left:calc(var(--ck-widget-outline-thickness)*-1);right:calc(var(--ck-widget-outline-thickness)*-1)}.ck .ck-widget.ck-widget_type-around_show-fake-caret_before>.ck-widget__type-around>.ck-widget__type-around__fake-caret{display:block;top:calc(var(--ck-widget-outline-thickness)*-1 - 1px)}.ck .ck-widget.ck-widget_type-around_show-fake-caret_after>.ck-widget__type-around>.ck-widget__type-around__fake-caret{bottom:calc(var(--ck-widget-outline-thickness)*-1 - 1px);display:block}.ck.ck-editor__editable.ck-read-only .ck-widget__type-around,.ck.ck-editor__editable.ck-restricted-editing_mode_restricted .ck-widget__type-around,.ck.ck-editor__editable.ck-widget__type-around_disabled .ck-widget__type-around{display:none}:root{--ck-widget-type-around-button-size:20px;--ck-color-widget-type-around-button-active:var(--ck-color-focus-border);--ck-color-widget-type-around-button-hover:var(--ck-color-widget-hover-border);--ck-color-widget-type-around-button-blurred-editable:var(--ck-color-widget-blurred-border);--ck-color-widget-type-around-button-radar-start-alpha:0;--ck-color-widget-type-around-button-radar-end-alpha:.3;--ck-color-widget-type-around-button-icon:var(--ck-color-base-background)}.ck .ck-widget .ck-widget__type-around__button{background:var(--ck-color-widget-type-around-button);border-radius:100px;height:var(--ck-widget-type-around-button-size);opacity:0;pointer-events:none;transition:opacity var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve),background var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve);width:var(--ck-widget-type-around-button-size)}@media (prefers-reduced-motion:reduce){.ck .ck-widget .ck-widget__type-around__button{transition:none}}.ck .ck-widget .ck-widget__type-around__button svg{height:8px;margin-top:1px;transform:translate(-50%,-50%);transition:transform .5s ease;width:10px}@media (prefers-reduced-motion:reduce){.ck .ck-widget .ck-widget__type-around__button svg{transition:none}}.ck .ck-widget .ck-widget__type-around__button svg *{stroke-dasharray:10;stroke-dashoffset:0;fill:none;stroke:var(--ck-color-widget-type-around-button-icon);stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round}.ck .ck-widget .ck-widget__type-around__button svg line{stroke-dasharray:7}.ck .ck-widget .ck-widget__type-around__button:hover{animation:ck-widget-type-around-button-sonar 1s ease infinite}.ck .ck-widget .ck-widget__type-around__button:hover svg polyline{animation:ck-widget-type-around-arrow-dash 2s linear}.ck .ck-widget .ck-widget__type-around__button:hover svg line{animation:ck-widget-type-around-arrow-tip-dash 2s linear}@media (prefers-reduced-motion:reduce){.ck .ck-widget .ck-widget__type-around__button:hover,.ck .ck-widget .ck-widget__type-around__button:hover svg line,.ck .ck-widget .ck-widget__type-around__button:hover svg polyline{animation:none}}.ck .ck-widget.ck-widget_selected>.ck-widget__type-around>.ck-widget__type-around__button,.ck .ck-widget:hover>.ck-widget__type-around>.ck-widget__type-around__button{opacity:1;pointer-events:auto}.ck .ck-widget:not(.ck-widget_selected)>.ck-widget__type-around>.ck-widget__type-around__button{background:var(--ck-color-widget-type-around-button-hover)}.ck .ck-widget.ck-widget_selected>.ck-widget__type-around>.ck-widget__type-around__button,.ck .ck-widget>.ck-widget__type-around>.ck-widget__type-around__button:hover{background:var(--ck-color-widget-type-around-button-active)}.ck .ck-widget.ck-widget_selected>.ck-widget__type-around>.ck-widget__type-around__button:after,.ck .ck-widget>.ck-widget__type-around>.ck-widget__type-around__button:hover:after{background:linear-gradient(135deg,hsla(0,0%,100%,0),hsla(0,0%,100%,.3));border-radius:100px;height:calc(var(--ck-widget-type-around-button-size) - 2px);width:calc(var(--ck-widget-type-around-button-size) - 2px)}.ck .ck-widget.ck-widget_with-selection-handle>.ck-widget__type-around>.ck-widget__type-around__button_before{margin-left:20px}.ck .ck-widget .ck-widget__type-around__fake-caret{animation:ck-widget-type-around-fake-caret-pulse 1s linear infinite normal forwards;background:var(--ck-color-base-text);height:1px;outline:1px solid hsla(0,0%,100%,.5);pointer-events:none}.ck .ck-widget.ck-widget_selected.ck-widget_type-around_show-fake-caret_after,.ck .ck-widget.ck-widget_selected.ck-widget_type-around_show-fake-caret_before{outline-color:transparent}.ck .ck-widget.ck-widget_type-around_show-fake-caret_after.ck-widget_selected:hover,.ck .ck-widget.ck-widget_type-around_show-fake-caret_before.ck-widget_selected:hover{outline-color:var(--ck-color-widget-hover-border)}.ck .ck-widget.ck-widget_type-around_show-fake-caret_after>.ck-widget__type-around>.ck-widget__type-around__button,.ck .ck-widget.ck-widget_type-around_show-fake-caret_before>.ck-widget__type-around>.ck-widget__type-around__button{opacity:0;pointer-events:none}.ck .ck-widget.ck-widget_type-around_show-fake-caret_after.ck-widget_selected.ck-widget_with-resizer>.ck-widget__resizer,.ck .ck-widget.ck-widget_type-around_show-fake-caret_after.ck-widget_with-selection-handle.ck-widget_selected:hover>.ck-widget__selection-handle,.ck .ck-widget.ck-widget_type-around_show-fake-caret_after.ck-widget_with-selection-handle.ck-widget_selected>.ck-widget__selection-handle,.ck .ck-widget.ck-widget_type-around_show-fake-caret_before.ck-widget_selected.ck-widget_with-resizer>.ck-widget__resizer,.ck .ck-widget.ck-widget_type-around_show-fake-caret_before.ck-widget_with-selection-handle.ck-widget_selected:hover>.ck-widget__selection-handle,.ck .ck-widget.ck-widget_type-around_show-fake-caret_before.ck-widget_with-selection-handle.ck-widget_selected>.ck-widget__selection-handle{opacity:0}.ck[dir=rtl] .ck-widget.ck-widget_with-selection-handle .ck-widget__type-around>.ck-widget__type-around__button_before{margin-left:0;margin-right:20px}.ck-editor__nested-editable.ck-editor__editable_selected .ck-widget.ck-widget_selected>.ck-widget__type-around>.ck-widget__type-around__button,.ck-editor__nested-editable.ck-editor__editable_selected .ck-widget:hover>.ck-widget__type-around>.ck-widget__type-around__button{opacity:0;pointer-events:none}.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected>.ck-widget__type-around>.ck-widget__type-around__button:not(:hover){background:var(--ck-color-widget-type-around-button-blurred-editable)}.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected>.ck-widget__type-around>.ck-widget__type-around__button:not(:hover) svg *{stroke:#999}@keyframes ck-widget-type-around-arrow-dash{0%{stroke-dashoffset:10}20%,to{stroke-dashoffset:0}}@keyframes ck-widget-type-around-arrow-tip-dash{0%,20%{stroke-dashoffset:7}40%,to{stroke-dashoffset:0}}@keyframes ck-widget-type-around-button-sonar{0%{box-shadow:0 0 0 0 hsla(var(--ck-color-focus-border-coordinates),var(--ck-color-widget-type-around-button-radar-start-alpha))}50%{box-shadow:0 0 0 5px hsla(var(--ck-color-focus-border-coordinates),var(--ck-color-widget-type-around-button-radar-end-alpha))}to{box-shadow:0 0 0 5px hsla(var(--ck-color-focus-border-coordinates),var(--ck-color-widget-type-around-button-radar-start-alpha))}}@keyframes ck-widget-type-around-fake-caret-pulse{0%{opacity:1}49%{opacity:1}50%{opacity:0}99%{opacity:0}to{opacity:1}}',"",{version:3,sources:["webpack://./../ckeditor5-widget/theme/widgettypearound.css","webpack://./../ckeditor5-theme-lark/theme/ckeditor5-widget/widgettypearound.css"],names:[],mappings:"AASC,+CACC,aAAc,CAEd,eAAgB,CADhB,iBAAkB,CAElB,2BAwBD,CAtBC,mDAGC,QAAS,CAFT,iBAAkB,CAClB,OAAQ,CAER,qCACD,CAEA,qFAGC,kBAAoB,CADpB,gDAAoD,CAGpD,0BACD,CAEA,oFAEC,mDAAuD,CACvD,mBAAqB,CAErB,yBACD,CAUA,mLACC,UAAW,CACX,aAAc,CAGd,QAAS,CAFT,iBAAkB,CAClB,OAAQ,CAER,qCACD,CAMD,2EACC,YAAa,CAEb,MAAO,CADP,iBAAkB,CAElB,OACD,CAOA,iFACC,gDAAqD,CACrD,iDACD,CAKA,wHAEC,aAAc,CADd,qDAED,CAKA,uHACC,wDAA6D,CAC7D,aACD,CAoBD,mOACC,YACD,CC3GA,MACC,wCAAyC,CACzC,wEAAyE,CACzE,8EAA+E,CAC/E,2FAA4F,CAC5F,wDAAyD,CACzD,uDAAwD,CACxD,yEACD,CAgBC,+CAGC,oDAAqD,CACrD,mBAAoB,CAFpB,+CAAgD,CAVjD,SAAU,CACV,mBAAoB,CAYnB,uMAAyM,CAJzM,8CAwED,CAhEC,uCATD,+CAUE,eA+DF,CA9DC,CAEA,mDAEC,UAAW,CAGX,cAAe,CAFf,8BAA+B,CAC/B,6BAA8B,CAH9B,UAwBD,CAlBC,uCAPD,mDAQE,eAiBF,CAhBC,CAEA,qDACC,mBAAoB,CACpB,mBAAoB,CAEpB,SAAU,CACV,qDAAsD,CACtD,kBAAmB,CACnB,oBAAqB,CACrB,qBACD,CAEA,wDACC,kBACD,CAGD,qDAIC,6DA4BD,CAtBE,kEACC,oDACD,CAEA,8DACC,wDACD,CAGD,uCAQE,qLACC,cACD,CAEF,CASD,uKA7FD,SAAU,CACV,mBA8FC,CAOD,gGACC,0DACD,CAOA,uKAEC,2DAQD,CANC,mLAIC,uEAAkF,CADlF,mBAAoB,CADpB,2DAA4D,CAD5D,0DAID,CAOD,8GACC,gBACD,CAKA,mDAGC,mFAAoF,CAOpF,oCAAqC,CARrC,UAAW,CAOX,oCAAwC,CARxC,mBAUD,CAOC,6JAEC,yBACD,CAUA,yKACC,iDACD,CAMA,uOAxKD,SAAU,CACV,mBAyKC,CAoBA,6yBACC,SACD,CASF,uHACC,aAAc,CACd,iBACD,CAYG,iRAxNF,SAAU,CACV,mBAyNE,CAQH,kIACC,qEAKD,CAHC,wIACC,WACD,CAGD,4CACC,GACC,oBACD,CACA,OACC,mBACD,CACD,CAEA,gDACC,OACC,mBACD,CACA,OACC,mBACD,CACD,CAEA,8CACC,GACC,6HACD,CACA,IACC,6HACD,CACA,GACC,+HACD,CACD,CAEA,kDACC,GACC,SACD,CACA,IACC,SACD,CACA,IACC,SACD,CACA,IACC,SACD,CACA,GACC,SACD,CACD",sourcesContent:['/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck .ck-widget {\n\t/*\n\t * Styles of the type around buttons\n\t */\n\t& .ck-widget__type-around__button {\n\t\tdisplay: block;\n\t\tposition: absolute;\n\t\toverflow: hidden;\n\t\tz-index: var(--ck-z-default);\n\n\t\t& svg {\n\t\t\tposition: absolute;\n\t\t\ttop: 50%;\n\t\t\tleft: 50%;\n\t\t\tz-index: calc(var(--ck-z-default) + 2);\n\t\t}\n\n\t\t&.ck-widget__type-around__button_before {\n\t\t\t/* Place it in the middle of the outline */\n\t\t\ttop: calc(-0.5 * var(--ck-widget-outline-thickness));\n\t\t\tleft: min(10%, 30px);\n\n\t\t\ttransform: translateY(-50%);\n\t\t}\n\n\t\t&.ck-widget__type-around__button_after {\n\t\t\t/* Place it in the middle of the outline */\n\t\t\tbottom: calc(-0.5 * var(--ck-widget-outline-thickness));\n\t\t\tright: min(10%, 30px);\n\n\t\t\ttransform: translateY(50%);\n\t\t}\n\t}\n\n\t/*\n\t * Styles for the buttons when:\n\t * - the widget is selected,\n\t * - or the button is being hovered (regardless of the widget state).\n\t */\n\t&.ck-widget_selected > .ck-widget__type-around > .ck-widget__type-around__button,\n\t& > .ck-widget__type-around > .ck-widget__type-around__button:hover {\n\t\t&::after {\n\t\t\tcontent: "";\n\t\t\tdisplay: block;\n\t\t\tposition: absolute;\n\t\t\ttop: 1px;\n\t\t\tleft: 1px;\n\t\t\tz-index: calc(var(--ck-z-default) + 1);\n\t\t}\n\t}\n\n\t/*\n\t * Styles for the horizontal "fake caret" which is displayed when the user navigates using the keyboard.\n\t */\n\t& > .ck-widget__type-around > .ck-widget__type-around__fake-caret {\n\t\tdisplay: none;\n\t\tposition: absolute;\n\t\tleft: 0;\n\t\tright: 0;\n\t}\n\n\t/*\n\t * When the widget is hovered the "fake caret" would normally be narrower than the\n\t * extra outline displayed around the widget. Let\'s extend the "fake caret" to match\n\t * the full width of the widget.\n\t */\n\t&:hover > .ck-widget__type-around > .ck-widget__type-around__fake-caret {\n\t\tleft: calc( -1 * var(--ck-widget-outline-thickness) );\n\t\tright: calc( -1 * var(--ck-widget-outline-thickness) );\n\t}\n\n\t/*\n\t * Styles for the horizontal "fake caret" when it should be displayed before the widget (backward keyboard navigation).\n\t */\n\t&.ck-widget_type-around_show-fake-caret_before > .ck-widget__type-around > .ck-widget__type-around__fake-caret {\n\t\ttop: calc( -1 * var(--ck-widget-outline-thickness) - 1px );\n\t\tdisplay: block;\n\t}\n\n\t/*\n\t * Styles for the horizontal "fake caret" when it should be displayed after the widget (forward keyboard navigation).\n\t */\n\t&.ck-widget_type-around_show-fake-caret_after > .ck-widget__type-around > .ck-widget__type-around__fake-caret {\n\t\tbottom: calc( -1 * var(--ck-widget-outline-thickness) - 1px );\n\t\tdisplay: block;\n\t}\n}\n\n/*\n * Integration with the read-only mode of the editor.\n */\n.ck.ck-editor__editable.ck-read-only .ck-widget__type-around {\n\tdisplay: none;\n}\n\n/*\n * Integration with the restricted editing mode (feature) of the editor.\n */\n.ck.ck-editor__editable.ck-restricted-editing_mode_restricted .ck-widget__type-around {\n\tdisplay: none;\n}\n\n/*\n * Integration with the #isEnabled property of the WidgetTypeAround plugin.\n */\n.ck.ck-editor__editable.ck-widget__type-around_disabled .ck-widget__type-around {\n\tdisplay: none;\n}\n','/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n:root {\n\t--ck-widget-type-around-button-size: 20px;\n\t--ck-color-widget-type-around-button-active: var(--ck-color-focus-border);\n\t--ck-color-widget-type-around-button-hover: var(--ck-color-widget-hover-border);\n\t--ck-color-widget-type-around-button-blurred-editable: var(--ck-color-widget-blurred-border);\n\t--ck-color-widget-type-around-button-radar-start-alpha: 0;\n\t--ck-color-widget-type-around-button-radar-end-alpha: .3;\n\t--ck-color-widget-type-around-button-icon: var(--ck-color-base-background);\n}\n\n@define-mixin ck-widget-type-around-button-visible {\n\topacity: 1;\n\tpointer-events: auto;\n}\n\n@define-mixin ck-widget-type-around-button-hidden {\n\topacity: 0;\n\tpointer-events: none;\n}\n\n.ck .ck-widget {\n\t/*\n\t * Styles of the type around buttons\n\t */\n\t& .ck-widget__type-around__button {\n\t\twidth: var(--ck-widget-type-around-button-size);\n\t\theight: var(--ck-widget-type-around-button-size);\n\t\tbackground: var(--ck-color-widget-type-around-button);\n\t\tborder-radius: 100px;\n\t\ttransition: opacity var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve), background var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve);\n\n\t\t@mixin ck-widget-type-around-button-hidden;\n\n\t\t@media (prefers-reduced-motion: reduce) {\n\t\t\ttransition: none;\n\t\t}\n\n\t\t& svg {\n\t\t\twidth: 10px;\n\t\t\theight: 8px;\n\t\t\ttransform: translate(-50%,-50%);\n\t\t\ttransition: transform .5s ease;\n\t\t\tmargin-top: 1px;\n\n\t\t\t@media (prefers-reduced-motion: reduce) {\n\t\t\t\ttransition: none;\n\t\t\t}\n\n\t\t\t& * {\n\t\t\t\tstroke-dasharray: 10;\n\t\t\t\tstroke-dashoffset: 0;\n\n\t\t\t\tfill: none;\n\t\t\t\tstroke: var(--ck-color-widget-type-around-button-icon);\n\t\t\t\tstroke-width: 1.5px;\n\t\t\t\tstroke-linecap: round;\n\t\t\t\tstroke-linejoin: round;\n\t\t\t}\n\n\t\t\t& line {\n\t\t\t\tstroke-dasharray: 7;\n\t\t\t}\n\t\t}\n\n\t\t&:hover {\n\t\t\t/*\n\t\t\t * Display the "sonar" around the button when hovered.\n\t\t\t */\n\t\t\tanimation: ck-widget-type-around-button-sonar 1s ease infinite;\n\n\t\t\t/*\n\t\t\t * Animate active button\'s icon.\n\t\t\t */\n\t\t\t& svg {\n\t\t\t\t& polyline {\n\t\t\t\t\tanimation: ck-widget-type-around-arrow-dash 2s linear;\n\t\t\t\t}\n\n\t\t\t\t& line {\n\t\t\t\t\tanimation: ck-widget-type-around-arrow-tip-dash 2s linear;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t@media (prefers-reduced-motion: reduce) {\n\t\t\t\tanimation: none;\n\n\t\t\t\t& svg {\n\t\t\t\t\t& polyline {\n\t\t\t\t\t\tanimation: none;\n\t\t\t\t\t}\n\n\t\t\t\t\t& line {\n\t\t\t\t\t\tanimation: none;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t/*\n\t * Show type around buttons when the widget gets selected or being hovered.\n\t */\n\t&.ck-widget_selected,\n\t&:hover {\n\t\t& > .ck-widget__type-around > .ck-widget__type-around__button {\n\t\t\t@mixin ck-widget-type-around-button-visible;\n\t\t}\n\t}\n\n\t/*\n\t * Styles for the buttons when the widget is NOT selected (but the buttons are visible\n\t * and still can be hovered).\n\t */\n\t&:not(.ck-widget_selected) > .ck-widget__type-around > .ck-widget__type-around__button {\n\t\tbackground: var(--ck-color-widget-type-around-button-hover);\n\t}\n\n\t/*\n\t * Styles for the buttons when:\n\t * - the widget is selected,\n\t * - or the button is being hovered (regardless of the widget state).\n\t */\n\t&.ck-widget_selected > .ck-widget__type-around > .ck-widget__type-around__button,\n\t& > .ck-widget__type-around > .ck-widget__type-around__button:hover {\n\t\tbackground: var(--ck-color-widget-type-around-button-active);\n\n\t\t&::after {\n\t\t\twidth: calc(var(--ck-widget-type-around-button-size) - 2px);\n\t\t\theight: calc(var(--ck-widget-type-around-button-size) - 2px);\n\t\t\tborder-radius: 100px;\n\t\t\tbackground: linear-gradient(135deg, hsla(0,0%,100%,0) 0%, hsla(0,0%,100%,.3) 100%);\n\t\t}\n\t}\n\n\t/*\n\t * Styles for the "before" button when the widget has a selection handle. Because some space\n\t * is consumed by the handle, the button must be moved slightly to the right to let it breathe.\n\t */\n\t&.ck-widget_with-selection-handle > .ck-widget__type-around > .ck-widget__type-around__button_before {\n\t\tmargin-left: 20px;\n\t}\n\n\t/*\n\t * Styles for the horizontal "fake caret" which is displayed when the user navigates using the keyboard.\n\t */\n\t& .ck-widget__type-around__fake-caret {\n\t\tpointer-events: none;\n\t\theight: 1px;\n\t\tanimation: ck-widget-type-around-fake-caret-pulse linear 1s infinite normal forwards;\n\n\t\t/*\n\t\t * The semi-transparent-outline+background combo improves the contrast\n\t\t * when the background underneath the fake caret is dark.\n\t\t */\n\t\toutline: solid 1px hsla(0, 0%, 100%, .5);\n\t\tbackground: var(--ck-color-base-text);\n\t}\n\n\t/*\n\t * Styles of the widget when the "fake caret" is blinking (e.g. upon keyboard navigation).\n\t * Despite the widget being physically selected in the model, its outline should disappear.\n\t */\n\t&.ck-widget_selected {\n\t\t&.ck-widget_type-around_show-fake-caret_before,\n\t\t&.ck-widget_type-around_show-fake-caret_after {\n\t\t\toutline-color: transparent;\n\t\t}\n\t}\n\n\t&.ck-widget_type-around_show-fake-caret_before,\n\t&.ck-widget_type-around_show-fake-caret_after {\n\t\t/*\n\t\t * When the "fake caret" is visible we simulate that the widget is not selected\n\t\t * (despite being physically selected), so the outline color should be for the\n\t\t * unselected widget.\n\t\t */\n\t\t&.ck-widget_selected:hover {\n\t\t\toutline-color: var(--ck-color-widget-hover-border);\n\t\t}\n\n\t\t/*\n\t\t * Styles of the type around buttons when the "fake caret" is blinking (e.g. upon keyboard navigation).\n\t\t * In this state, the type around buttons would collide with the fake carets so they should disappear.\n\t\t */\n\t\t& > .ck-widget__type-around > .ck-widget__type-around__button {\n\t\t\t@mixin ck-widget-type-around-button-hidden;\n\t\t}\n\n\t\t/*\n\t\t * Fake horizontal caret integration with the selection handle. When the caret is visible, simply\n\t\t * hide the handle because it intersects with the caret (and does not make much sense anyway).\n\t\t */\n\t\t&.ck-widget_with-selection-handle {\n\t\t\t&.ck-widget_selected,\n\t\t\t&.ck-widget_selected:hover {\n\t\t\t\t& > .ck-widget__selection-handle {\n\t\t\t\t\topacity: 0\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t/*\n\t\t * Fake horizontal caret integration with the resize UI. When the caret is visible, simply\n\t\t * hide the resize UI because it creates too much noise. It can be visible when the user\n\t\t * hovers the widget, though.\n\t\t */\n\t\t&.ck-widget_selected.ck-widget_with-resizer > .ck-widget__resizer {\n\t\t\topacity: 0\n\t\t}\n\t}\n}\n\n/*\n * Styles for the "before" button when the widget has a selection handle in an RTL environment.\n * The selection handler is aligned to the right side of the widget so there is no need to create\n * additional space for it next to the "before" button.\n */\n.ck[dir="rtl"] .ck-widget.ck-widget_with-selection-handle .ck-widget__type-around > .ck-widget__type-around__button_before {\n\tmargin-left: 0;\n\tmargin-right: 20px;\n}\n\n/*\n * Hide type around buttons when the widget is selected as a child of a selected\n * nested editable (e.g. mulit-cell table selection).\n *\n * See https://github.com/ckeditor/ckeditor5/issues/7263.\n */\n.ck-editor__nested-editable.ck-editor__editable_selected {\n\t& .ck-widget {\n\t\t&.ck-widget_selected,\n\t\t&:hover {\n\t\t\t& > .ck-widget__type-around > .ck-widget__type-around__button {\n\t\t\t\t@mixin ck-widget-type-around-button-hidden;\n\t\t\t}\n\t\t}\n\t}\n}\n\n/*\n * Styles for the buttons when the widget is selected but the user clicked outside of the editor (blurred the editor).\n */\n.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected > .ck-widget__type-around > .ck-widget__type-around__button:not(:hover) {\n\tbackground: var(--ck-color-widget-type-around-button-blurred-editable);\n\n\t& svg * {\n\t\tstroke: hsl(0,0%,60%);\n\t}\n}\n\n@keyframes ck-widget-type-around-arrow-dash {\n\t0% {\n\t\tstroke-dashoffset: 10;\n\t}\n\t20%, 100% {\n\t\tstroke-dashoffset: 0;\n\t}\n}\n\n@keyframes ck-widget-type-around-arrow-tip-dash {\n\t0%, 20% {\n\t\tstroke-dashoffset: 7;\n\t}\n\t40%, 100% {\n\t\tstroke-dashoffset: 0;\n\t}\n}\n\n@keyframes ck-widget-type-around-button-sonar {\n\t0% {\n\t\tbox-shadow: 0 0 0 0 hsla(var(--ck-color-focus-border-coordinates), var(--ck-color-widget-type-around-button-radar-start-alpha));\n\t}\n\t50% {\n\t\tbox-shadow: 0 0 0 5px hsla(var(--ck-color-focus-border-coordinates), var(--ck-color-widget-type-around-button-radar-end-alpha));\n\t}\n\t100% {\n\t\tbox-shadow: 0 0 0 5px hsla(var(--ck-color-focus-border-coordinates), var(--ck-color-widget-type-around-button-radar-start-alpha));\n\t}\n}\n\n@keyframes ck-widget-type-around-fake-caret-pulse {\n\t0% {\n\t\topacity: 1;\n\t}\n\t49% {\n\t\topacity: 1;\n\t}\n\t50% {\n\t\topacity: 0;\n\t}\n\t99% {\n\t\topacity: 0;\n\t}\n\t100% {\n\t\topacity: 1;\n\t}\n}\n'],sourceRoot:""}]);const a=s},935:t=>{"use strict";t.exports=function(t){var e=[];return e.toString=function(){return this.map((function(e){var n=t(e);return e[2]?"@media ".concat(e[2]," {").concat(n,"}"):n})).join("")},e.i=function(t,n,o){"string"==typeof t&&(t=[[null,t,""]]);var i={};if(o)for(var r=0;r{"use strict";function e(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var n=t&&("undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"]);if(null==n)return;var o,i,r=[],s=!0,a=!1;try{for(n=n.call(t);!(s=(o=n.next()).done)&&(r.push(o.value),!e||r.length!==e);s=!0);}catch(t){a=!0,i=t}finally{try{s||null==n.return||n.return()}finally{if(a)throw i}}return r}(t,e)||function(t,e){if(!t)return;if("string"==typeof t)return n(t,e);var o=Object.prototype.toString.call(t).slice(8,-1);"Object"===o&&t.constructor&&(o=t.constructor.name);if("Map"===o||"Set"===o)return Array.from(t);if("Arguments"===o||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o))return n(t,e)}(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function n(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,o=new Array(e);n{"use strict";var o,i=function(){return void 0===o&&(o=Boolean(window&&document&&document.all&&!window.atob)),o},r=function(){var t={};return function(e){if(void 0===t[e]){var n=document.querySelector(e);if(window.HTMLIFrameElement&&n instanceof window.HTMLIFrameElement)try{n=n.contentDocument.head}catch(t){n=null}t[e]=n}return t[e]}}(),s=[];function a(t){for(var e=-1,n=0;n{var e=t&&t.__esModule?()=>t.default:()=>t;return n.d(e,{a:e}),e},n.d=(t,e)=>{for(var o in e)n.o(e,o)&&!n.o(t,o)&&Object.defineProperty(t,o,{enumerable:!0,get:e[o]})},n.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),n.nc=void 0;var o={};return(()=>{"use strict";function t(){try{return navigator.userAgent.toLowerCase()}catch(t){return""}}n.d(o,{default:()=>OB});const e=t(),i={isMac:r(e),isWindows:s(e),isGecko:a(e),isSafari:c(e),isiOS:l(e),isAndroid:d(e),isBlink:h(e),isMediaForcedColors:m(),get isMotionReduced(){return window.matchMedia("(prefers-reduced-motion)").matches},features:{isRegExpUnicodePropertySupported:u()}};function r(t){return t.indexOf("macintosh")>-1}function s(t){return t.indexOf("windows")>-1}function a(t){return!!t.match(/gecko\/\d+/)}function c(t){return t.indexOf(" applewebkit/")>-1&&-1===t.indexOf("chrome")}function l(t){return!!t.match(/iphone|ipad/i)||r(t)&&navigator.maxTouchPoints>0}function d(t){return t.indexOf("android")>-1}function h(t){return t.indexOf("chrome/")>-1&&t.indexOf("edge/")<0}function u(){let t=!1;try{t=0==="ć".search(new RegExp("[\\p{L}]","u"))}catch(t){}return t}function m(){return window.matchMedia("(forced-colors: active)").matches}function g(t,e,n,o){n=n||function(t,e){return t===e};const i=Array.isArray(t)?t:Array.prototype.slice.call(t),r=Array.isArray(e)?e:Array.prototype.slice.call(e),s=function(t,e,n){const o=p(t,e,n);if(-1===o)return{firstIndex:-1,lastIndexOld:-1,lastIndexNew:-1};const i=f(t,o),r=f(e,o),s=p(i,r,n),a=t.length-s,c=e.length-s;return{firstIndex:o,lastIndexOld:a,lastIndexNew:c}}(i,r,n),a=o?function(t,e){const{firstIndex:n,lastIndexOld:o,lastIndexNew:i}=t;if(-1===n)return Array(e).fill("equal");let r=[];n>0&&(r=r.concat(Array(n).fill("equal")));i-n>0&&(r=r.concat(Array(i-n).fill("insert")));o-n>0&&(r=r.concat(Array(o-n).fill("delete")));i0&&n.push({index:o,type:"insert",values:t.slice(o,r)});i-o>0&&n.push({index:o+(r-o),type:"delete",howMany:i-o});return n}(r,s);return a}function p(t,e,n){for(let o=0;o200||i>200||o+i>300)return k.fastDiff(t,e,n,!0);let r,s;if(il?-1:1;d[o+u]&&(d[o]=d[o+u].slice(0)),d[o]||(d[o]=[]),d[o].push(i>l?r:s);let m=Math.max(i,l),g=m-o;for(;gl;m--)h[m]=u(m);h[l]=u(l),g++}while(h[l]!==c);return d[l].slice(1)}k.fastDiff=g;const b=function(){return function t(){t.called=!0}};class w{source;name;path;stop;off;return;constructor(t,e){this.source=t,this.name=e,this.path=[],this.stop=b(),this.off=b()}}const _=new Array(256).fill("").map(((t,e)=>("0"+e.toString(16)).slice(-2)));function A(){const t=4294967296*Math.random()>>>0,e=4294967296*Math.random()>>>0,n=4294967296*Math.random()>>>0,o=4294967296*Math.random()>>>0;return"e"+_[255&t]+_[t>>8&255]+_[t>>16&255]+_[t>>24&255]+_[255&e]+_[e>>8&255]+_[e>>16&255]+_[e>>24&255]+_[255&n]+_[n>>8&255]+_[n>>16&255]+_[n>>24&255]+_[255&o]+_[o>>8&255]+_[o>>16&255]+_[o>>24&255]}const C={get(t="normal"){return"number"!=typeof t?this[t]||this.normal:t},highest:1e5,high:1e3,normal:0,low:-1e3,lowest:-1e5};function v(t,e){const n=C.get(e.priority);for(let o=0;o{if("object"==typeof e&&null!==e){if(n.has(e))return`[object ${e.constructor.name}]`;n.add(e)}return e},i=e?` ${JSON.stringify(e,o)}`:"",r=D(t);return t+i+r}(t,n)),this.name="CKEditorError",this.context=e,this.data=n}is(t){return"CKEditorError"===t}static rethrowUnexpectedError(t,e){if(t.is&&t.is("CKEditorError"))throw t;const n=new x(t.message,e);throw n.stack=t.stack,n}}function E(t,e){console.warn(...B(t,e))}function D(t){return`\nRead more: ${y}#error-${t}`}function B(t,e){const n=D(t);return e?[t,e,n]:[t,n]}const T="41.3.1",S=new Date(2024,3,16);if(globalThis.CKEDITOR_VERSION)throw new x("ckeditor-duplicated-modules",null);globalThis.CKEDITOR_VERSION=T;const I=Symbol("listeningTo"),P=Symbol("emitterId"),z=Symbol("delegations"),R=L(Object);function L(t){if(!t)return R;return class extends t{on(t,e,n){this.listenTo(this,t,e,n)}once(t,e,n){let o=!1;this.listenTo(this,t,((t,...n)=>{o||(o=!0,t.off(),e.call(this,t,...n))}),n)}off(t,e){this.stopListening(this,t,e)}listenTo(t,e,n,o={}){let i,r;this[I]||(this[I]={});const s=this[I];M(t)||F(t);const a=M(t);(i=s[a])||(i=s[a]={emitter:t,callbacks:{}}),(r=i.callbacks[e])||(r=i.callbacks[e]=[]),r.push(n),function(t,e,n,o,i){e._addEventListener?e._addEventListener(n,o,i):t._addEventListener.call(e,n,o,i)}(this,t,e,n,o)}stopListening(t,e,n){const o=this[I];let i=t&&M(t);const r=o&&i?o[i]:void 0,s=r&&e?r.callbacks[e]:void 0;if(!(!o||t&&!r||e&&!s))if(n){q(this,t,e,n);-1!==s.indexOf(n)&&(1===s.length?delete r.callbacks[e]:q(this,t,e,n))}else if(s){for(;n=s.pop();)q(this,t,e,n);delete r.callbacks[e]}else if(r){for(e in r.callbacks)this.stopListening(t,e);delete o[i]}else{for(i in o)this.stopListening(o[i].emitter);delete this[I]}}fire(t,...e){try{const n=t instanceof w?t:new w(this,t),o=n.name;let i=N(this,o);if(n.path.push(this),i){const t=[n,...e];i=Array.from(i);for(let e=0;e{this[z]||(this[z]=new Map),t.forEach((t=>{const o=this[z].get(t);o?o.set(e,n):this[z].set(t,new Map([[e,n]]))}))}}}stopDelegating(t,e){if(this[z])if(t)if(e){const n=this[z].get(t);n&&n.delete(e)}else this[z].delete(t);else this[z].clear()}_addEventListener(t,e,n){!function(t,e){const n=V(t);if(n[e])return;let o=e,i=null;const r=[];for(;""!==o&&!n[o];)n[o]={callbacks:[],childEvents:[]},r.push(n[o]),i&&n[o].childEvents.push(i),i=o,o=o.substr(0,o.lastIndexOf(":"));if(""!==o){for(const t of r)t.callbacks=n[o].callbacks.slice();n[o].childEvents.push(i)}}(this,t);const o=O(this,t),i={callback:e,priority:C.get(n.priority)};for(const t of o)v(t,i)}_removeEventListener(t,e){const n=O(this,t);for(const t of n)for(let n=0;n-1?N(t,e.substr(0,e.lastIndexOf(":"))):null}function H(t,e,n){for(let[o,i]of t){i?"function"==typeof i&&(i=i(e.name)):i=e.name;const t=new w(e.source,i);t.path=[...e.path],o.fire(t,...n)}}function q(t,e,n,o){e._removeEventListener?e._removeEventListener(n,o):t._removeEventListener.call(e,n,o)}["on","once","off","listenTo","stopListening","fire","delegate","stopDelegating","_addEventListener","_removeEventListener"].forEach((t=>{L[t]=R.prototype[t]}));const j=function(t){var e=typeof t;return null!=t&&("object"==e||"function"==e)},W=Symbol("observableProperties"),G=Symbol("boundObservables"),K=Symbol("boundProperties"),U=Symbol("decoratedMethods"),$=Symbol("decoratedOriginal"),Z=J(L());function J(t){if(!t)return Z;return class extends t{set(t,e){if(j(t))return void Object.keys(t).forEach((e=>{this.set(e,t[e])}),this);Y(this);const n=this[W];if(t in this&&!n.has(t))throw new x("observable-set-cannot-override",this);Object.defineProperty(this,t,{enumerable:!0,configurable:!0,get:()=>n.get(t),set(e){const o=n.get(t);let i=this.fire(`set:${t}`,t,e,o);void 0===i&&(i=e),o===i&&n.has(t)||(n.set(t,i),this.fire(`change:${t}`,t,i,o))}}),this[t]=e}bind(...t){if(!t.length||!tt(t))throw new x("observable-bind-wrong-properties",this);if(new Set(t).size!==t.length)throw new x("observable-bind-duplicate-properties",this);Y(this);const e=this[K];t.forEach((t=>{if(e.has(t))throw new x("observable-bind-rebind",this)}));const n=new Map;return t.forEach((t=>{const o={property:t,to:[]};e.set(t,o),n.set(t,o)})),{to:Q,toMany:X,_observable:this,_bindProperties:t,_to:[],_bindings:n}}unbind(...t){if(!this[W])return;const e=this[K],n=this[G];if(t.length){if(!tt(t))throw new x("observable-unbind-wrong-properties",this);t.forEach((t=>{const o=e.get(t);o&&(o.to.forEach((([t,e])=>{const i=n.get(t),r=i[e];r.delete(o),r.size||delete i[e],Object.keys(i).length||(n.delete(t),this.stopListening(t,"change"))})),e.delete(t))}))}else n.forEach(((t,e)=>{this.stopListening(e,"change")})),n.clear(),e.clear()}decorate(t){Y(this);const e=this[t];if(!e)throw new x("observablemixin-cannot-decorate-undefined",this,{object:this,methodName:t});this.on(t,((t,n)=>{t.return=e.apply(this,n)})),this[t]=function(...e){return this.fire(t,e)},this[t][$]=e,this[U]||(this[U]=[]),this[U].push(t)}stopListening(t,e,n){if(!t&&this[U]){for(const t of this[U])this[t]=this[t][$];delete this[U]}super.stopListening(t,e,n)}[W];[U];[K];[G]}}function Y(t){t[W]||(Object.defineProperty(t,W,{value:new Map}),Object.defineProperty(t,G,{value:new Map}),Object.defineProperty(t,K,{value:new Map}))}function Q(...t){const e=function(...t){if(!t.length)throw new x("observable-bind-to-parse-error",null);const e={to:[]};let n;"function"==typeof t[t.length-1]&&(e.callback=t.pop());return t.forEach((t=>{if("string"==typeof t)n.properties.push(t);else{if("object"!=typeof t)throw new x("observable-bind-to-parse-error",null);n={observable:t,properties:[]},e.to.push(n)}})),e}(...t),n=Array.from(this._bindings.keys()),o=n.length;if(!e.callback&&e.to.length>1)throw new x("observable-bind-to-no-callback",this);if(o>1&&e.callback)throw new x("observable-bind-to-extra-callback",this);var i;e.to.forEach((t=>{if(t.properties.length&&t.properties.length!==o)throw new x("observable-bind-to-properties-length",this);t.properties.length||(t.properties=this._bindProperties)})),this._to=e.to,e.callback&&(this._bindings.get(n[0]).callback=e.callback),i=this._observable,this._to.forEach((t=>{const e=i[G];let n;e.get(t.observable)||i.listenTo(t.observable,"change",((o,r)=>{n=e.get(t.observable)[r],n&&n.forEach((t=>{et(i,t.property)}))}))})),function(t){let e;t._bindings.forEach(((n,o)=>{t._to.forEach((i=>{e=i.properties[n.callback?0:t._bindProperties.indexOf(o)],n.to.push([i.observable,e]),function(t,e,n,o){const i=t[G],r=i.get(n),s=r||{};s[o]||(s[o]=new Set);s[o].add(e),r||i.set(n,s)}(t._observable,n,i.observable,e)}))}))}(this),this._bindProperties.forEach((t=>{et(this._observable,t)}))}function X(t,e,n){if(this._bindings.size>1)throw new x("observable-bind-to-many-not-one-binding",this);this.to(...function(t,e){const n=t.map((t=>[t,e]));return Array.prototype.concat.apply([],n)}(t,e),n)}function tt(t){return t.every((t=>"string"==typeof t))}function et(t,e){const n=t[K].get(e);let o;n.callback?o=n.callback.apply(t,n.to.map((t=>t[0][t[1]]))):(o=n.to[0],o=o[0][o[1]]),Object.prototype.hasOwnProperty.call(t,e)?t[e]=o:t.set(e,o)}["set","bind","unbind","decorate","on","once","off","listenTo","stopListening","fire","delegate","stopDelegating","_addEventListener","_removeEventListener"].forEach((t=>{J[t]=Z.prototype[t]}));class nt{_replacedElements;constructor(){this._replacedElements=[]}replace(t,e){this._replacedElements.push({element:t,newElement:e}),t.style.display="none",e&&t.parentNode.insertBefore(e,t.nextSibling)}restore(){this._replacedElements.forEach((({element:t,newElement:e})=>{t.style.display="",e&&e.remove()})),this._replacedElements=[]}}function ot(t){let e=0;for(const n of t)e++;return e}function it(t,e){const n=Math.min(t.length,e.length);for(let o=0;o-1};const Vt=function(t,e){var n=this.__data__,o=zt(n,t);return o<0?(++this.size,n.push([t,e])):n[o][1]=e,this};function Ot(t){var e=-1,n=null==t?0:t.length;for(this.clear();++e-1&&t%1==0&&t-1&&t%1==0&&t<=9007199254740991};var Ze={};Ze["[object Float32Array]"]=Ze["[object Float64Array]"]=Ze["[object Int8Array]"]=Ze["[object Int16Array]"]=Ze["[object Int32Array]"]=Ze["[object Uint8Array]"]=Ze["[object Uint8ClampedArray]"]=Ze["[object Uint16Array]"]=Ze["[object Uint32Array]"]=!0,Ze["[object Arguments]"]=Ze["[object Array]"]=Ze["[object ArrayBuffer]"]=Ze["[object Boolean]"]=Ze["[object DataView]"]=Ze["[object Date]"]=Ze["[object Error]"]=Ze["[object Function]"]=Ze["[object Map]"]=Ze["[object Number]"]=Ze["[object Object]"]=Ze["[object RegExp]"]=Ze["[object Set]"]=Ze["[object String]"]=Ze["[object WeakMap]"]=!1;const Je=function(t){return _t(t)&&$e(t.length)&&!!Ze[bt(t)]};const Ye=function(t){return function(e){return t(e)}};var Qe="object"==typeof exports&&exports&&!exports.nodeType&&exports,Xe=Qe&&"object"==typeof module&&module&&!module.nodeType&&module,tn=Xe&&Xe.exports===Qe&&st.process;const en=function(){try{var t=Xe&&Xe.require&&Xe.require("util").types;return t||tn&&tn.binding&&tn.binding("util")}catch(t){}}();var nn=en&&en.isTypedArray;const on=nn?Ye(nn):Je;var rn=Object.prototype.hasOwnProperty;const sn=function(t,e){var n=wt(t),o=!n&&Ne(t),i=!n&&!o&&Ge(t),r=!n&&!o&&!i&&on(t),s=n||o||i||r,a=s?Le(t.length,String):[],c=a.length;for(var l in t)!e&&!rn.call(t,l)||s&&("length"==l||i&&("offset"==l||"parent"==l)||r&&("buffer"==l||"byteLength"==l||"byteOffset"==l)||Ue(l,c))||a.push(l);return a};var an=Object.prototype;const cn=function(t){var e=t&&t.constructor;return t===("function"==typeof e&&e.prototype||an)};const ln=vt(Object.keys,Object);var dn=Object.prototype.hasOwnProperty;const hn=function(t){if(!cn(t))return ln(t);var e=[];for(var n in Object(t))dn.call(t,n)&&"constructor"!=n&&e.push(n);return e};const un=function(t){return null!=t&&$e(t.length)&&!Gt(t)};const mn=function(t){return un(t)?sn(t):hn(t)};const gn=function(t,e){return t&&Re(e,mn(e),t)};const pn=function(t){var e=[];if(null!=t)for(var n in Object(t))e.push(n);return e};var fn=Object.prototype.hasOwnProperty;const kn=function(t){if(!j(t))return pn(t);var e=cn(t),n=[];for(var o in t)("constructor"!=o||!e&&fn.call(t,o))&&n.push(o);return n};const bn=function(t){return un(t)?sn(t,!0):kn(t)};const wn=function(t,e){return t&&Re(e,bn(e),t)};var _n="object"==typeof exports&&exports&&!exports.nodeType&&exports,An=_n&&"object"==typeof module&&module&&!module.nodeType&&module,Cn=An&&An.exports===_n?ct.Buffer:void 0,vn=Cn?Cn.allocUnsafe:void 0;const yn=function(t,e){if(e)return t.slice();var n=t.length,o=vn?vn(n):new t.constructor(n);return t.copy(o),o};const xn=function(t,e){var n=-1,o=t.length;for(e||(e=Array(o));++n{this._setToTarget(t,o,e[o],n)}))}}function So(t){return Do(t,Io)}function Io(t){return Bo(t)||"function"==typeof t?t:void 0}function Po(t){if(t){if(t.defaultView)return t instanceof t.defaultView.Document;if(t.ownerDocument&&t.ownerDocument.defaultView)return t instanceof t.ownerDocument.defaultView.Node}return!1}function zo(t){const e=Object.prototype.toString.apply(t);return"[object Window]"==e||"[object global]"==e}const Ro=Lo(L());function Lo(t){if(!t)return Ro;return class extends t{listenTo(t,e,n,o={}){if(Po(t)||zo(t)){const i={capture:!!o.useCapture,passive:!!o.usePassive},r=this._getProxyEmitter(t,i)||new Fo(t,i);this.listenTo(r,e,n,o)}else super.listenTo(t,e,n,o)}stopListening(t,e,n){if(Po(t)||zo(t)){const o=this._getAllProxyEmitters(t);for(const t of o)this.stopListening(t,e,n)}else super.stopListening(t,e,n)}_getProxyEmitter(t,e){return function(t,e){const n=t[I];return n&&n[e]?n[e].emitter:null}(this,Mo(t,e))}_getAllProxyEmitters(t){return[{capture:!1,passive:!1},{capture:!1,passive:!0},{capture:!0,passive:!1},{capture:!0,passive:!0}].map((e=>this._getProxyEmitter(t,e))).filter((t=>!!t))}}}["_getProxyEmitter","_getAllProxyEmitters","on","once","off","listenTo","stopListening","fire","delegate","stopDelegating","_addEventListener","_removeEventListener"].forEach((t=>{Lo[t]=Ro.prototype[t]}));class Fo extends(L()){_domNode;_options;constructor(t,e){super(),F(this,Mo(t,e)),this._domNode=t,this._options=e}_domListeners;attach(t){if(this._domListeners&&this._domListeners[t])return;const e=this._createDomListener(t);this._domNode.addEventListener(t,e,this._options),this._domListeners||(this._domListeners={}),this._domListeners[t]=e}detach(t){let e;!this._domListeners[t]||(e=this._events[t])&&e.callbacks.length||this._domListeners[t].removeListener()}_addEventListener(t,e,n){this.attach(t),L().prototype._addEventListener.call(this,t,e,n)}_removeEventListener(t,e){L().prototype._removeEventListener.call(this,t,e),this.detach(t)}_createDomListener(t){const e=e=>{this.fire(t,e)};return e.removeListener=()=>{this._domNode.removeEventListener(t,e,this._options),delete this._domListeners[t]},e}}function Mo(t,e){let n=function(t){return t["data-ck-expando"]||(t["data-ck-expando"]=A())}(t);for(const t of Object.keys(e).sort())e[t]&&(n+="-"+t);return n}let Vo;try{Vo={window,document}}catch(t){Vo={window:{},document:{}}}const Oo=Vo;function No(t){return t instanceof HTMLTextAreaElement?t.value:t.innerHTML}function Ho(t){const e=t.ownerDocument.defaultView.getComputedStyle(t);return{top:parseInt(e.borderTopWidth,10),right:parseInt(e.borderRightWidth,10),bottom:parseInt(e.borderBottomWidth,10),left:parseInt(e.borderLeftWidth,10)}}function qo(t){return"[object Text]"==Object.prototype.toString.call(t)}function jo(t){return"[object Range]"==Object.prototype.toString.apply(t)}function Wo(t){return t&&t.parentNode?t.offsetParent===Oo.document.body?null:t.offsetParent:null}const Go=["top","right","bottom","left","width","height"];class Ko{top;right;bottom;left;width;height;_source;constructor(t){const e=jo(t);if(Object.defineProperty(this,"_source",{value:t._source||t,writable:!0,enumerable:!1}),Zo(t)||e)if(e){const e=Ko.getDomRangeRects(t);Uo(this,Ko.getBoundingRect(e))}else Uo(this,t.getBoundingClientRect());else if(zo(t)){const{innerWidth:e,innerHeight:n}=t;Uo(this,{top:0,right:e,bottom:n,left:0,width:e,height:n})}else Uo(this,t)}clone(){return new Ko(this)}moveTo(t,e){return this.top=e,this.right=t+this.width,this.bottom=e+this.height,this.left=t,this}moveBy(t,e){return this.top+=e,this.right+=t,this.left+=t,this.bottom+=e,this}getIntersection(t){const e={top:Math.max(this.top,t.top),right:Math.min(this.right,t.right),bottom:Math.min(this.bottom,t.bottom),left:Math.max(this.left,t.left),width:0,height:0};if(e.width=e.right-e.left,e.height=e.bottom-e.top,e.width<0||e.height<0)return null;{const t=new Ko(e);return t._source=this._source,t}}getIntersectionArea(t){const e=this.getIntersection(t);return e?e.getArea():0}getArea(){return this.width*this.height}getVisible(){const t=this._source;let e=this.clone();if($o(t))return e;let n,o=t,i=t.parentNode||t.commonAncestorContainer;for(;i&&!$o(i);){const t="visible"===((r=i)instanceof HTMLElement?r.ownerDocument.defaultView.getComputedStyle(r).overflow:"visible");o instanceof HTMLElement&&"absolute"===Jo(o)&&(n=o);const s=Jo(i);if(t||n&&("relative"===s&&t||"relative"!==s)){o=i,i=i.parentNode;continue}const a=new Ko(i),c=e.getIntersection(a);if(!c)return null;c.getArea(){for(const e of t){const t=Yo._getElementCallbacks(e.target);if(t)for(const n of t)n(e)}}))}}function Qo(t,e){t instanceof HTMLTextAreaElement&&(t.value=e),t.innerHTML=e}function Xo(t){return e=>e+t}function ti(t){let e=0;for(;t.previousSibling;)t=t.previousSibling,e++;return e}function ei(t,e,n){t.insertBefore(n,t.childNodes[e]||null)}function ni(t){return t&&t.nodeType===Node.COMMENT_NODE}function oi(t){return!!(t&&t.getClientRects&&t.getClientRects().length)}function ii({element:t,target:e,positions:n,limiter:o,fitInViewport:i,viewportOffsetConfig:r}){Gt(e)&&(e=e()),Gt(o)&&(o=o());const s=Wo(t),a=function(t){t=Object.assign({top:0,bottom:0,left:0,right:0},t);const e=new Ko(Oo.window);return e.top+=t.top,e.height-=t.top,e.bottom-=t.bottom,e.height-=t.bottom,e}(r),c=new Ko(t),l=ri(e,a);let d;if(!l||!a.getIntersection(l))return null;const h={targetRect:l,elementRect:c,positionedElementAncestor:s,viewportRect:a};if(o||i){if(o){const t=ri(o,a);t&&(h.limiterRect=t)}d=function(t,e){const{elementRect:n}=e,o=n.getArea(),i=t.map((t=>new si(t,e))).filter((t=>!!t.name));let r=0,s=null;for(const t of i){const{limiterIntersectionArea:e,viewportIntersectionArea:n}=t;if(e===o)return t;const i=n**2+e**2;i>r&&(r=i,s=t)}return s}(n,h)}else d=new si(n[0],h);return d}function ri(t,e){const n=new Ko(t).getVisible();return n?n.getIntersection(e):null}class si{name;config;_positioningFunctionCoordinates;_options;_cachedRect;_cachedAbsoluteRect;constructor(t,e){const n=t(e.targetRect,e.elementRect,e.viewportRect,e.limiterRect);if(!n)return;const{left:o,top:i,name:r,config:s}=n;this.name=r,this.config=s,this._positioningFunctionCoordinates={left:o,top:i},this._options=e}get left(){return this._absoluteRect.left}get top(){return this._absoluteRect.top}get limiterIntersectionArea(){const t=this._options.limiterRect;return t?t.getIntersectionArea(this._rect):0}get viewportIntersectionArea(){return this._options.viewportRect.getIntersectionArea(this._rect)}get _rect(){return this._cachedRect||(this._cachedRect=this._options.elementRect.clone().moveTo(this._positioningFunctionCoordinates.left,this._positioningFunctionCoordinates.top)),this._cachedRect}get _absoluteRect(){return this._cachedAbsoluteRect||(this._cachedAbsoluteRect=this._rect.toAbsoluteRect()),this._cachedAbsoluteRect}}function ai(t){const e=t.parentNode;e&&e.removeChild(t)}function ci({window:t,rect:e,alignToTop:n,forceScroll:o,viewportOffset:i}){const r=e.clone().moveBy(0,i.bottom),s=e.clone().moveBy(0,-i.top),a=new Ko(t).excludeScrollbarsAndBorders(),c=n&&o,l=[s,r].every((t=>a.contains(t)));let{scrollX:d,scrollY:h}=t;const u=d,m=h;c?h-=a.top-e.top+i.top:l||(hi(s,a)?h-=a.top-e.top+i.top:di(r,a)&&(h+=n?e.top-a.top-i.top:e.bottom-a.bottom+i.bottom)),l||(ui(e,a)?d-=a.left-e.left+i.left:mi(e,a)&&(d+=e.right-a.right+i.right)),d==u&&h===m||t.scrollTo(d,h)}function li({parent:t,getRect:e,alignToTop:n,forceScroll:o,ancestorOffset:i=0,limiterElement:r}){const s=gi(t),a=n&&o;let c,l,d;const h=r||s.document.body;for(;t!=h;)l=e(),c=new Ko(t).excludeScrollbarsAndBorders(),d=c.contains(l),a?t.scrollTop-=c.top-l.top+i:d||(hi(l,c)?t.scrollTop-=c.top-l.top+i:di(l,c)&&(t.scrollTop+=n?l.top-c.top-i:l.bottom-c.bottom+i)),d||(ui(l,c)?t.scrollLeft-=c.left-l.left+i:mi(l,c)&&(t.scrollLeft+=l.right-c.right+i)),t=t.parentNode}function di(t,e){return t.bottom>e.bottom}function hi(t,e){return t.tope.right}function gi(t){return jo(t)?t.startContainer.ownerDocument.defaultView:t.ownerDocument.defaultView}function pi(t){if(jo(t)){let e=t.commonAncestorContainer;return qo(e)&&(e=e.parentNode),e}return t.parentNode}function fi(t,e){const n=gi(t),o=new Ko(t);if(n===e)return o;{let t=n;for(;t!=e;){const e=t.frameElement,n=new Ko(e).excludeScrollbarsAndBorders();o.moveBy(n.left,n.top),t=t.parent}}return o}const ki={ctrl:"⌃",cmd:"⌘",alt:"⌥",shift:"⇧"},bi={ctrl:"Ctrl+",alt:"Alt+",shift:"Shift+"},wi={37:"←",38:"↑",39:"→",40:"↓",9:"⇥",33:"Page Up",34:"Page Down"},_i=Ei(),Ai=Object.fromEntries(Object.entries(_i).map((([t,e])=>{let n;return n=e in wi?wi[e]:t.charAt(0).toUpperCase()+t.slice(1),[e,n]})));function Ci(t){let e;if("string"==typeof t){if(e=_i[t.toLowerCase()],!e)throw new x("keyboard-unknown-key",null,{key:t})}else e=t.keyCode+(t.altKey?_i.alt:0)+(t.ctrlKey?_i.ctrl:0)+(t.shiftKey?_i.shift:0)+(t.metaKey?_i.cmd:0);return e}function vi(t){return"string"==typeof t&&(t=function(t){return t.split("+").map((t=>t.trim()))}(t)),t.map((t=>"string"==typeof t?function(t){if(t.endsWith("!"))return Ci(t.slice(0,-1));const e=Ci(t);return(i.isMac||i.isiOS)&&e==_i.ctrl?_i.cmd:e}(t):t)).reduce(((t,e)=>e+t),0)}function yi(t){let e=vi(t);return Object.entries(i.isMac||i.isiOS?ki:bi).reduce(((t,[n,o])=>(e&_i[n]&&(e&=~_i[n],t+=o),t)),"")+(e?Ai[e]:"")}function xi(t,e){const n="ltr"===e;switch(t){case _i.arrowleft:return n?"left":"right";case _i.arrowright:return n?"right":"left";case _i.arrowup:return"up";case _i.arrowdown:return"down"}}function Ei(){const t={pageup:33,pagedown:34,arrowleft:37,arrowup:38,arrowright:39,arrowdown:40,backspace:8,delete:46,enter:13,space:32,esc:27,tab:9,ctrl:1114112,shift:2228224,alt:4456448,cmd:8912896};for(let e=65;e<=90;e++){t[String.fromCharCode(e).toLowerCase()]=e}for(let e=48;e<=57;e++)t[e-48]=e;for(let e=112;e<=123;e++)t["f"+(e-111)]=e;return Object.assign(t,{"'":222,",":108,"-":109,".":110,"/":111,";":186,"=":187,"[":219,"\\":220,"]":221,"`":223}),t}function Di(t){return Array.isArray(t)?t:[t]}const Bi=function(t,e,n){(void 0!==n&&!Pt(t[e],n)||void 0===n&&!(e in t))&&Ie(t,e,n)};const Ti=function(t){return function(e,n,o){for(var i=-1,r=Object(e),s=o(e),a=s.length;a--;){var c=s[t?a:++i];if(!1===n(r[c],c,r))break}return e}}();const Si=function(t){return _t(t)&&un(t)};const Ii=function(t,e){if(("constructor"!==e||"function"!=typeof t[e])&&"__proto__"!=e)return t[e]};const Pi=function(t){return Re(t,bn(t))};const zi=function(t,e,n,o,i,r,s){var a=Ii(t,n),c=Ii(e,n),l=s.get(c);if(l)Bi(t,n,l);else{var d=r?r(a,c,n+"",t,e,s):void 0,h=void 0===d;if(h){var u=wt(c),m=!u&&Ge(c),g=!u&&!m&&on(c);d=c,u||m||g?wt(a)?d=a:Si(a)?d=xn(a):m?(h=!1,d=yn(c,!0)):g?(h=!1,d=ho(c,!0)):d=[]:St(c)||Ne(c)?(d=a,Ne(a)?d=Pi(a):j(a)&&!Gt(a)||(d=po(c))):h=!1}h&&(s.set(c,d),i(d,c,o,r,s),s.delete(c)),Bi(t,n,d)}};const Ri=function t(e,n,o,i,r){e!==n&&Ti(n,(function(s,a){if(r||(r=new Be),j(s))zi(e,n,a,o,t,i,r);else{var c=i?i(Ii(e,a),s,a+"",e,n,r):void 0;void 0===c&&(c=s),Bi(e,a,c)}}),bn)};const Li=function(t){return t};const Fi=function(t,e,n){switch(n.length){case 0:return t.call(e);case 1:return t.call(e,n[0]);case 2:return t.call(e,n[0],n[1]);case 3:return t.call(e,n[0],n[1],n[2])}return t.apply(e,n)};var Mi=Math.max;const Vi=function(t,e,n){return e=Mi(void 0===e?t.length-1:e,0),function(){for(var o=arguments,i=-1,r=Mi(o.length-e,0),s=Array(r);++i0){if(++e>=800)return arguments[0]}else e=0;return t.apply(void 0,arguments)}};const ji=qi(Ni);const Wi=function(t,e){return ji(Vi(t,e,Li),t+"")};const Gi=function(t,e,n){if(!j(n))return!1;var o=typeof e;return!!("number"==o?un(n)&&Ue(e,n.length):"string"==o&&e in n)&&Pt(n[e],t)};const Ki=function(t){return Wi((function(e,n){var o=-1,i=n.length,r=i>1?n[i-1]:void 0,s=i>2?n[2]:void 0;for(r=t.length>3&&"function"==typeof r?(i--,r):void 0,s&&Gi(n[0],n[1],s)&&(r=i<3?void 0:r,i=1),e=Object(e);++o1===t?0:1),l=a[s];if("string"==typeof l)return l;return l[Number(c(n))]}Oo.window.CKEDITOR_TRANSLATIONS||(Oo.window.CKEDITOR_TRANSLATIONS={});const Zi=["ar","ara","dv","div","fa","per","fas","he","heb","ku","kur","ug","uig"];function Ji(t){return Zi.includes(t)?"rtl":"ltr"}class Yi{uiLanguage;uiLanguageDirection;contentLanguage;contentLanguageDirection;t;translations;constructor({uiLanguage:t="en",contentLanguage:e,translations:n}={}){this.uiLanguage=t,this.contentLanguage=e||this.uiLanguage,this.uiLanguageDirection=Ji(this.uiLanguage),this.contentLanguageDirection=Ji(this.contentLanguage),this.translations=function(t){return Array.isArray(t)?t.reduce(((t,e)=>Ui(t,e))):t}(n),this.t=(t,e)=>this._t(t,e)}get language(){return console.warn("locale-deprecated-language-property: The Locale#language property has been deprecated and will be removed in the near future. Please use #uiLanguage and #contentLanguage properties instead."),this.uiLanguage}_t(t,e=[]){e=Di(e),"string"==typeof t&&(t={string:t});const n=!!t.plural?e[0]:1;return function(t,e){return t.replace(/%(\d+)/g,((t,n)=>nthis._items.length||e<0)throw new x("collection-add-item-invalid-index",this);let n=0;for(const o of t){const t=this._getItemIdBeforeAdding(o),i=e+n;this._items.splice(i,0,o),this._itemMap.set(t,o),this.fire("add",o,i),n++}return this.fire("change",{added:t,removed:[],index:e}),this}get(t){let e;if("string"==typeof t)e=this._itemMap.get(t);else{if("number"!=typeof t)throw new x("collection-get-invalid-arg",this);e=this._items[t]}return e||null}has(t){if("string"==typeof t)return this._itemMap.has(t);{const e=t[this._idProperty];return e&&this._itemMap.has(e)}}getIndex(t){let e;return e="string"==typeof t?this._itemMap.get(t):t,e?this._items.indexOf(e):-1}remove(t){const[e,n]=this._remove(t);return this.fire("change",{added:[],removed:[e],index:n}),e}map(t,e){return this._items.map(t,e)}forEach(t,e){this._items.forEach(t,e)}find(t,e){return this._items.find(t,e)}filter(t,e){return this._items.filter(t,e)}clear(){this._bindToCollection&&(this.stopListening(this._bindToCollection),this._bindToCollection=null);const t=Array.from(this._items);for(;this.length;)this._remove(0);this.fire("change",{added:[],removed:t,index:0})}bindTo(t){if(this._bindToCollection)throw new x("collection-bind-to-rebind",this);return this._bindToCollection=t,{as:t=>{this._setUpBindToBinding((e=>new t(e)))},using:t=>{"function"==typeof t?this._setUpBindToBinding(t):this._setUpBindToBinding((e=>e[t]))}}}_setUpBindToBinding(t){const e=this._bindToCollection,n=(n,o,i)=>{const r=e._bindToCollection==this,s=e._bindToInternalToExternalMap.get(o);if(r&&s)this._bindToExternalToInternalMap.set(o,s),this._bindToInternalToExternalMap.set(s,o);else{const n=t(o);if(!n)return void this._skippedIndexesFromExternal.push(i);let r=i;for(const t of this._skippedIndexesFromExternal)i>t&&r--;for(const t of e._skippedIndexesFromExternal)r>=t&&r++;this._bindToExternalToInternalMap.set(o,n),this._bindToInternalToExternalMap.set(n,o),this.add(n,r);for(let t=0;t{const o=this._bindToExternalToInternalMap.get(e);o&&this.remove(o),this._skippedIndexesFromExternal=this._skippedIndexesFromExternal.reduce(((t,e)=>(ne&&t.push(e),t)),[])}))}_getItemIdBeforeAdding(t){const e=this._idProperty;let n;if(e in t){if(n=t[e],"string"!=typeof n)throw new x("collection-add-invalid-id",this);if(this.get(n))throw new x("collection-add-item-already-exists",this)}else t[e]=n=A();return n}_remove(t){let e,n,o,i=!1;const r=this._idProperty;if("string"==typeof t?(n=t,o=this._itemMap.get(n),i=!o,o&&(e=this._items.indexOf(o))):"number"==typeof t?(e=t,o=this._items[e],i=!o,o&&(n=o[r])):(o=t,n=o[r],e=this._items.indexOf(o),i=-1==e||!this._itemMap.get(n)),i)throw new x("collection-remove-404",this);this._items.splice(e,1),this._itemMap.delete(n);const s=this._bindToInternalToExternalMap.get(o);return this._bindToInternalToExternalMap.delete(o),this._bindToExternalToInternalMap.delete(s),this.fire("remove",o,e),[o,e]}[Symbol.iterator](){return this._items[Symbol.iterator]()}}function Xi(t){const e=t.next();return e.done?null:e.value}class tr extends(Lo(J())){_elements=new Set;_nextEventLoopTimeout=null;constructor(){super(),this.set("isFocused",!1),this.set("focusedElement",null)}add(t){if(this._elements.has(t))throw new x("focustracker-add-element-already-exist",this);this.listenTo(t,"focus",(()=>this._focus(t)),{useCapture:!0}),this.listenTo(t,"blur",(()=>this._blur()),{useCapture:!0}),this._elements.add(t)}remove(t){t===this.focusedElement&&this._blur(),this._elements.has(t)&&(this.stopListening(t),this._elements.delete(t))}destroy(){this.stopListening()}_focus(t){clearTimeout(this._nextEventLoopTimeout),this.focusedElement=t,this.isFocused=!0}_blur(){clearTimeout(this._nextEventLoopTimeout),this._nextEventLoopTimeout=setTimeout((()=>{this.focusedElement=null,this.isFocused=!1}),0)}}class er{_listener;constructor(){this._listener=new(Lo())}listenTo(t){this._listener.listenTo(t,"keydown",((t,e)=>{this._listener.fire("_keydown:"+Ci(e),e)}))}set(t,e,n={}){const o=vi(t),i=n.priority;this._listener.listenTo(this._listener,"_keydown:"+o,((t,n)=>{e(n,(()=>{n.preventDefault(),n.stopPropagation(),t.stop()})),t.return=!0}),{priority:i})}press(t){return!!this._listener.fire("_keydown:"+Ci(t),t)}stopListening(t){this._listener.stopListening(t)}destroy(){this.stopListening()}}function nr(t){return rt(t)?new Map(t):function(t){const e=new Map;for(const n in t)e.set(n,t[n]);return e}(t)}function or(t,e){let n;function o(...i){o.cancel(),n=setTimeout((()=>t(...i)),e)}return o.cancel=()=>{clearTimeout(n)},o}function ir(t,e){return!!(n=t.charAt(e-1))&&1==n.length&&/[\ud800-\udbff]/.test(n)&&function(t){return!!t&&1==t.length&&/[\udc00-\udfff]/.test(t)}(t.charAt(e));var n}function rr(t,e){return!!(n=t.charAt(e))&&1==n.length&&/[\u0300-\u036f\u1ab0-\u1aff\u1dc0-\u1dff\u20d0-\u20ff\ufe20-\ufe2f]/.test(n);var n}const sr=cr();function ar(t,e){const n=String(t).matchAll(sr);return Array.from(n).some((t=>t.indext.source)).join("|")+")";return new RegExp(`${t}|${e}(?:${e})*`,"ug")}class lr extends Qi{_parentElement;constructor(t=[]){super(t,{idProperty:"viewUid"}),this.on("add",((t,e,n)=>{this._renderViewIntoCollectionParent(e,n)})),this.on("remove",((t,e)=>{e.element&&this._parentElement&&e.element.remove()})),this._parentElement=null}destroy(){this.map((t=>t.destroy()))}setParent(t){this._parentElement=t;for(const t of this)this._renderViewIntoCollectionParent(t)}delegate(...t){if(!t.length||!t.every((t=>"string"==typeof t)))throw new x("ui-viewcollection-delegate-wrong-events",this);return{to:e=>{for(const n of this)for(const o of t)n.delegate(o).to(e);this.on("add",((n,o)=>{for(const n of t)o.delegate(n).to(e)})),this.on("remove",((n,o)=>{for(const n of t)o.stopDelegating(n,e)}))}}}_renderViewIntoCollectionParent(t,e){t.isRendered||t.render(),t.element&&this._parentElement&&this._parentElement.insertBefore(t.element,this._parentElement.children[e])}remove(t){return super.remove(t)}}class dr extends(L()){ns;tag;text;attributes;children;eventListeners;_isRendered;_revertData;constructor(t){super(),Object.assign(this,_r(wr(t))),this._isRendered=!1,this._revertData=null}render(){const t=this._renderNode({intoFragment:!0});return this._isRendered=!0,t}apply(t){return this._revertData={children:[],bindings:[],attributes:{}},this._renderNode({node:t,intoFragment:!1,isApplying:!0,revertData:this._revertData}),t}revert(t){if(!this._revertData)throw new x("ui-template-revert-not-applied",[this,t]);this._revertTemplateFromNode(t,this._revertData)}*getViews(){yield*function*t(e){if(e.children)for(const n of e.children)Er(n)?yield n:Dr(n)&&(yield*t(n))}(this)}static bind(t,e){return{to:(n,o)=>new ur({eventNameOrFunction:n,attribute:n,observable:t,emitter:e,callback:o}),if:(n,o,i)=>new mr({observable:t,emitter:e,attribute:n,valueIfTrue:o,callback:i})}}static extend(t,e){if(t._isRendered)throw new x("template-extend-render",[this,t]);yr(t,_r(wr(e)))}_renderNode(t){let e;if(e=t.node?this.tag&&this.text:this.tag?this.text:!this.text,e)throw new x("ui-template-wrong-syntax",this);return this.text?this._renderText(t):this._renderElement(t)}_renderElement(t){let e=t.node;return e||(e=t.node=document.createElementNS(this.ns||"http://www.w3.org/1999/xhtml",this.tag)),this._renderAttributes(t),this._renderElementChildren(t),this._setUpListeners(t),e}_renderText(t){let e=t.node;return e?t.revertData.text=e.textContent:e=t.node=document.createTextNode(""),gr(this.text)?this._bindToObservable({schema:this.text,updater:fr(e),data:t}):e.textContent=this.text.join(""),e}_renderAttributes(t){if(!this.attributes)return;const e=t.node,n=t.revertData;for(const o in this.attributes){const i=e.getAttribute(o),r=this.attributes[o];n&&(n.attributes[o]=i);const s=Tr(r)?r[0].ns:null;if(gr(r)){const a=Tr(r)?r[0].value:r;n&&Sr(o)&&a.unshift(i),this._bindToObservable({schema:a,updater:kr(e,o,s),data:t})}else if("style"==o&&"string"!=typeof r[0])this._renderStyleAttribute(r[0],t);else{n&&i&&Sr(o)&&r.unshift(i);const t=r.map((t=>t&&t.value||t)).reduce(((t,e)=>t.concat(e)),[]).reduce(Cr,"");xr(t)||e.setAttributeNS(s,o,t)}}}_renderStyleAttribute(t,e){const n=e.node;for(const o in t){const i=t[o];gr(i)?this._bindToObservable({schema:[i],updater:br(n,o),data:e}):n.style[o]=i}}_renderElementChildren(t){const e=t.node,n=t.intoFragment?document.createDocumentFragment():e,o=t.isApplying;let i=0;for(const r of this.children)if(Br(r)){if(!o){r.setParent(e);for(const t of r)n.appendChild(t.element)}}else if(Er(r))o||(r.isRendered||r.render(),n.appendChild(r.element));else if(Po(r))n.appendChild(r);else if(o){const e={children:[],bindings:[],attributes:{}};t.revertData.children.push(e),r._renderNode({intoFragment:!1,node:n.childNodes[i++],isApplying:!0,revertData:e})}else n.appendChild(r.render());t.intoFragment&&e.appendChild(n)}_setUpListeners(t){if(this.eventListeners)for(const e in this.eventListeners){const n=this.eventListeners[e].map((n=>{const[o,i]=e.split("@");return n.activateDomEventListener(o,i,t)}));t.revertData&&t.revertData.bindings.push(n)}}_bindToObservable({schema:t,updater:e,data:n}){const o=n.revertData;pr(t,e,n);const i=t.filter((t=>!xr(t))).filter((t=>t.observable)).map((o=>o.activateAttributeListener(t,e,n)));o&&o.bindings.push(i)}_revertTemplateFromNode(t,e){for(const t of e.bindings)for(const e of t)e();if(e.text)return void(t.textContent=e.text);const n=t;for(const t in e.attributes){const o=e.attributes[t];null===o?n.removeAttribute(t):n.setAttribute(t,o)}for(let t=0;tpr(t,e,n);return this.emitter.listenTo(this.observable,`change:${this.attribute}`,o),()=>{this.emitter.stopListening(this.observable,`change:${this.attribute}`,o)}}}class ur extends hr{eventNameOrFunction;constructor(t){super(t),this.eventNameOrFunction=t.eventNameOrFunction}activateDomEventListener(t,e,n){const o=(t,n)=>{e&&!n.target.matches(e)||("function"==typeof this.eventNameOrFunction?this.eventNameOrFunction(n):this.observable.fire(this.eventNameOrFunction,n))};return this.emitter.listenTo(n.node,t,o),()=>{this.emitter.stopListening(n.node,t,o)}}}class mr extends hr{valueIfTrue;constructor(t){super(t),this.valueIfTrue=t.valueIfTrue}getValue(t){return!xr(super.getValue(t))&&(this.valueIfTrue||!0)}}function gr(t){return!!t&&(t.value&&(t=t.value),Array.isArray(t)?t.some(gr):t instanceof hr)}function pr(t,e,{node:n}){const o=function(t,e){return t.map((t=>t instanceof hr?t.getValue(e):t))}(t,n);let i;i=1==t.length&&t[0]instanceof mr?o[0]:o.reduce(Cr,""),xr(i)?e.remove():e.set(i)}function fr(t){return{set(e){t.textContent=e},remove(){t.textContent=""}}}function kr(t,e,n){return{set(o){t.setAttributeNS(n,e,o)},remove(){t.removeAttributeNS(n,e)}}}function br(t,e){return{set(n){t.style[e]=n},remove(){t.style[e]=null}}}function wr(t){return Do(t,(t=>{if(t&&(t instanceof hr||Dr(t)||Er(t)||Br(t)))return t}))}function _r(t){if("string"==typeof t?t=function(t){return{text:[t]}}(t):t.text&&function(t){t.text=Di(t.text)}(t),t.on&&(t.eventListeners=function(t){for(const e in t)Ar(t,e);return t}(t.on),delete t.on),!t.text){t.attributes&&function(t){for(const e in t)t[e].value&&(t[e].value=Di(t[e].value)),Ar(t,e)}(t.attributes);const e=[];if(t.children)if(Br(t.children))e.push(t.children);else for(const n of t.children)Dr(n)||Er(n)||Po(n)?e.push(n):e.push(new dr(n));t.children=e}return t}function Ar(t,e){t[e]=Di(t[e])}function Cr(t,e){return xr(e)?t:xr(t)?e:`${t} ${e}`}function vr(t,e){for(const n in e)t[n]?t[n].push(...e[n]):t[n]=e[n]}function yr(t,e){if(e.attributes&&(t.attributes||(t.attributes={}),vr(t.attributes,e.attributes)),e.eventListeners&&(t.eventListeners||(t.eventListeners={}),vr(t.eventListeners,e.eventListeners)),e.text&&t.text.push(...e.text),e.children&&e.children.length){if(t.children.length!=e.children.length)throw new x("ui-template-extend-children-mismatch",t);let n=0;for(const o of e.children)yr(t.children[n++],o)}}function xr(t){return!t&&0!==t}function Er(t){return t instanceof Lr}function Dr(t){return t instanceof dr}function Br(t){return t instanceof lr}function Tr(t){return j(t[0])&&t[0].ns}function Sr(t){return"class"==t||"style"==t}var Ir=n(2591),Pr=n.n(Ir),zr=n(7676),Rr={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Pr()(zr.A,Rr);zr.A.locals;class Lr extends(Lo(J())){element;isRendered;locale;t;template;_viewCollections;_unboundChildren;_bindTemplate;constructor(t){super(),this.element=null,this.isRendered=!1,this.locale=t,this.t=t&&t.t,this._viewCollections=new Qi,this._unboundChildren=this.createCollection(),this._viewCollections.on("add",((e,n)=>{n.locale=t,n.t=t&&t.t})),this.decorate("render")}get bindTemplate(){return this._bindTemplate?this._bindTemplate:this._bindTemplate=dr.bind(this,this)}createCollection(t){const e=new lr(t);return this._viewCollections.add(e),e}registerChild(t){rt(t)||(t=[t]);for(const e of t)this._unboundChildren.add(e)}deregisterChild(t){rt(t)||(t=[t]);for(const e of t)this._unboundChildren.remove(e)}setTemplate(t){this.template=new dr(t)}extendTemplate(t){dr.extend(this.template,t)}render(){if(this.isRendered)throw new x("ui-view-render-already-rendered",this);this.template&&(this.element=this.template.render(),this.registerChild(this.template.getViews())),this.isRendered=!0}destroy(){this.stopListening(),this._viewCollections.map((t=>t.destroy())),this.template&&this.template._revertData&&this.template.revert(this.element)}}function Fr({emitter:t,activator:e,callback:n,contextElements:o}){t.listenTo(document,"mousedown",((t,i)=>{if(!e())return;const r="function"==typeof i.composedPath?i.composedPath():[],s="function"==typeof o?o():o;for(const t of s)if(t.contains(i.target)||r.includes(t))return;n()}))}function Mr(t){return class extends t{disableCssTransitions(){this._isCssTransitionsDisabled=!0}enableCssTransitions(){this._isCssTransitionsDisabled=!1}constructor(...t){super(...t),this.set("_isCssTransitionsDisabled",!1),this.initializeCssTransitionDisablerMixin()}initializeCssTransitionDisablerMixin(){this.extendTemplate({attributes:{class:[this.bindTemplate.if("_isCssTransitionsDisabled","ck-transitions-disabled")]}})}}}function Vr({view:t}){t.listenTo(t.element,"submit",((e,n)=>{n.preventDefault(),t.fire("submit")}),{useCapture:!0})}function Or({keystrokeHandler:t,focusTracker:e,gridItems:n,numberOfColumns:o,uiLanguageDirection:i}){const r="number"==typeof o?()=>o:o;function s(t){return o=>{const i=n.find((t=>t.element===e.focusedElement)),r=n.getIndex(i),s=t(r,n);n.get(s).focus(),o.stopPropagation(),o.preventDefault()}}function a(t,e){return t===e-1?0:t+1}function c(t,e){return 0===t?e-1:t-1}t.set("arrowright",s(((t,e)=>"rtl"===i?c(t,e.length):a(t,e.length)))),t.set("arrowleft",s(((t,e)=>"rtl"===i?a(t,e.length):c(t,e.length)))),t.set("arrowup",s(((t,e)=>{let n=t-r();return n<0&&(n=t+r()*Math.floor(e.length/r()),n>e.length-1&&(n-=r())),n}))),t.set("arrowdown",s(((t,e)=>{let n=t+r();return n>e.length-1&&(n=t%r()),n})))}class Nr extends(J()){editor;_disableStack=new Set;constructor(t){super(),this.editor=t,this.set("isEnabled",!0)}forceDisabled(t){this._disableStack.add(t),1==this._disableStack.size&&(this.on("set:isEnabled",Hr,{priority:"highest"}),this.isEnabled=!1)}clearForceDisabled(t){this._disableStack.delete(t),0==this._disableStack.size&&(this.off("set:isEnabled",Hr),this.isEnabled=!0)}destroy(){this.stopListening()}static get isContextPlugin(){return!1}}function Hr(t){t.return=!1,t.stop()}class qr extends(J()){editor;_isEnabledBasedOnSelection;_affectsData;_disableStack;constructor(t){super(),this.editor=t,this.set("value",void 0),this.set("isEnabled",!1),this._affectsData=!0,this._isEnabledBasedOnSelection=!0,this._disableStack=new Set,this.decorate("execute"),this.listenTo(this.editor.model.document,"change",(()=>{this.refresh()})),this.listenTo(t,"change:isReadOnly",(()=>{this.refresh()})),this.on("set:isEnabled",(e=>{if(!this.affectsData)return;const n=t.model.document.selection,o=!("$graveyard"==n.getFirstPosition().root.rootName)&&t.model.canEditAt(n);(t.isReadOnly||this._isEnabledBasedOnSelection&&!o)&&(e.return=!1,e.stop())}),{priority:"highest"}),this.on("execute",(t=>{this.isEnabled||t.stop()}),{priority:"high"})}get affectsData(){return this._affectsData}set affectsData(t){this._affectsData=t}refresh(){this.isEnabled=!0}forceDisabled(t){this._disableStack.add(t),1==this._disableStack.size&&(this.on("set:isEnabled",jr,{priority:"highest"}),this.isEnabled=!1)}clearForceDisabled(t){this._disableStack.delete(t),0==this._disableStack.size&&(this.off("set:isEnabled",jr),this.refresh())}execute(...t){}destroy(){this.stopListening()}}function jr(t){t.return=!1,t.stop()}class Wr extends qr{_childCommandsDefinitions=[];refresh(){}execute(...t){const e=this._getFirstEnabledCommand();return!!e&&e.execute(t)}registerChildCommand(t,e={}){v(this._childCommandsDefinitions,{command:t,priority:e.priority||"normal"}),t.on("change:isEnabled",(()=>this._checkEnabled())),this._checkEnabled()}_checkEnabled(){this.isEnabled=!!this._getFirstEnabledCommand()}_getFirstEnabledCommand(){const t=this._childCommandsDefinitions.find((({command:t})=>t.isEnabled));return t&&t.command}}class Gr extends(L()){_context;_plugins=new Map;_availablePlugins;_contextPlugins;constructor(t,e=[],n=[]){super(),this._context=t,this._availablePlugins=new Map;for(const t of e)t.pluginName&&this._availablePlugins.set(t.pluginName,t);this._contextPlugins=new Map;for(const[t,e]of n)this._contextPlugins.set(t,e),this._contextPlugins.set(e,t),t.pluginName&&this._availablePlugins.set(t.pluginName,t)}*[Symbol.iterator](){for(const t of this._plugins)"function"==typeof t[0]&&(yield t)}get(t){const e=this._plugins.get(t);if(!e){let e=t;throw"function"==typeof t&&(e=t.pluginName||t.name),new x("plugincollection-plugin-not-loaded",this._context,{plugin:e})}return e}has(t){return this._plugins.has(t)}init(t,e=[],n=[]){const o=this,i=this._context;!function t(e,n=new Set){e.forEach((e=>{a(e)&&(n.has(e)||(n.add(e),e.pluginName&&!o._availablePlugins.has(e.pluginName)&&o._availablePlugins.set(e.pluginName,e),e.requires&&t(e.requires,n)))}))}(t),h(t);const r=[...function t(e,n=new Set){return e.map((t=>a(t)?t:o._availablePlugins.get(t))).reduce(((e,o)=>n.has(o)?e:(n.add(o),o.requires&&(h(o.requires,o),t(o.requires,n).forEach((t=>e.add(t)))),e.add(o))),new Set)}(t.filter((t=>!l(t,e))))];!function(t,e){for(const n of e){if("function"!=typeof n)throw new x("plugincollection-replace-plugin-invalid-type",null,{pluginItem:n});const e=n.pluginName;if(!e)throw new x("plugincollection-replace-plugin-missing-name",null,{pluginItem:n});if(n.requires&&n.requires.length)throw new x("plugincollection-plugin-for-replacing-cannot-have-dependencies",null,{pluginName:e});const i=o._availablePlugins.get(e);if(!i)throw new x("plugincollection-plugin-for-replacing-not-exist",null,{pluginName:e});const r=t.indexOf(i);if(-1===r){if(o._contextPlugins.has(i))return;throw new x("plugincollection-plugin-for-replacing-not-loaded",null,{pluginName:e})}if(i.requires&&i.requires.length)throw new x("plugincollection-replaced-plugin-cannot-have-dependencies",null,{pluginName:e});t.splice(r,1,n),o._availablePlugins.set(e,n)}}(r,n);const s=r.map((t=>{let e=o._contextPlugins.get(t);return e=e||new t(i),o._add(t,e),e}));return u(s,"init").then((()=>u(s,"afterInit"))).then((()=>s));function a(t){return"function"==typeof t}function c(t){return a(t)&&!!t.isContextPlugin}function l(t,e){return e.some((e=>e===t||(d(t)===e||d(e)===t)))}function d(t){return a(t)?t.pluginName||t.name:t}function h(t,n=null){t.map((t=>a(t)?t:o._availablePlugins.get(t)||t)).forEach((t=>{!function(t,e){if(a(t))return;if(e)throw new x("plugincollection-soft-required",i,{missingPlugin:t,requiredBy:d(e)});throw new x("plugincollection-plugin-not-found",i,{plugin:t})}(t,n),function(t,e){if(!c(e))return;if(c(t))return;throw new x("plugincollection-context-required",i,{plugin:d(t),requiredBy:d(e)})}(t,n),function(t,n){if(!n)return;if(!l(t,e))return;throw new x("plugincollection-required",i,{plugin:d(t),requiredBy:d(n)})}(t,n)}))}function u(t,e){return t.reduce(((t,n)=>n[e]?o._contextPlugins.has(n)?t:t.then(n[e].bind(n)):t),Promise.resolve())}}destroy(){const t=[];for(const[,e]of this)"function"!=typeof e.destroy||this._contextPlugins.has(e)||t.push(e.destroy());return Promise.all(t)}_add(t,e){this._plugins.set(t,e);const n=t.pluginName;if(n){if(this._plugins.has(n))throw new x("plugincollection-plugin-name-conflict",null,{pluginName:n,plugin1:this._plugins.get(n).constructor,plugin2:t});this._plugins.set(n,e)}}}class Kr{config;plugins;locale;t;editors;static defaultConfig;static builtinPlugins;_contextOwner=null;constructor(t){const{translations:e,...n}=t||{};this.config=new To(n,this.constructor.defaultConfig);const o=this.constructor.builtinPlugins;this.config.define("plugins",o),this.plugins=new Gr(this,o);const i=this.config.get("language")||{};this.locale=new Yi({uiLanguage:"string"==typeof i?i:i.ui,contentLanguage:this.config.get("language.content"),translations:e}),this.t=this.locale.t,this.editors=new Qi}initPlugins(){const t=this.config.get("plugins")||[],e=this.config.get("substitutePlugins")||[];for(const n of t.concat(e)){if("function"!=typeof n)throw new x("context-initplugins-constructor-only",null,{Plugin:n});if(!0!==n.isContextPlugin)throw new x("context-initplugins-invalid-plugin",null,{Plugin:n})}return this.plugins.init(t,[],e)}destroy(){return Promise.all(Array.from(this.editors,(t=>t.destroy()))).then((()=>this.plugins.destroy()))}_addEditor(t,e){if(this._contextOwner)throw new x("context-addeditor-private-context");this.editors.add(t),e&&(this._contextOwner=t)}_removeEditor(t){return this.editors.has(t)&&this.editors.remove(t),this._contextOwner===t?this.destroy():Promise.resolve()}_getEditorConfig(){const t={};for(const e of this.config.names())["plugins","removePlugins","extraPlugins"].includes(e)||(t[e]=this.config.get(e));return t}static create(t){return new Promise((e=>{const n=new this(t);e(n.initPlugins().then((()=>n)))}))}}class Ur extends(J()){context;constructor(t){super(),this.context=t}destroy(){this.stopListening()}static get isContextPlugin(){return!0}}class $r extends er{editor;constructor(t){super(),this.editor=t}set(t,e,n={}){if("string"==typeof e){const t=e;e=(e,n)=>{this.editor.execute(t),n()}}super.set(t,e,n)}}var Zr=n(4098),Jr={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Pr()(Zr.A,Jr);Zr.A.locals;const Yr=new WeakMap;let Qr=!1;function Xr({view:t,element:e,text:n,isDirectHost:o=!0,keepOnFocus:i=!1}){const r=t.document;function s(n){Yr.get(r).set(e,{text:n,isDirectHost:o,keepOnFocus:i,hostElement:o?e:null}),t.change((t=>es(r,t)))}Yr.has(r)||(Yr.set(r,new Map),r.registerPostFixer((t=>es(r,t))),r.on("change:isComposing",(()=>{t.change((t=>es(r,t)))}),{priority:"high"})),e.is("editableElement")&&e.on("change:placeholder",((t,e,n)=>{s(n)})),e.placeholder?s(e.placeholder):n&&s(n),n&&function(){Qr||E("enableplaceholder-deprecated-text-option");Qr=!0}()}function ts(t,e){return!!e.hasClass("ck-placeholder")&&(t.removeClass("ck-placeholder",e),!0)}function es(t,e){const n=Yr.get(t),o=[];let i=!1;for(const[t,r]of n)r.isDirectHost&&(o.push(t),ns(e,t,r)&&(i=!0));for(const[t,r]of n){if(r.isDirectHost)continue;const n=os(t);n&&(o.includes(n)||(r.hostElement=n,ns(e,t,r)&&(i=!0)))}return i}function ns(t,e,n){const{text:o,isDirectHost:i,hostElement:r}=n;let s=!1;r.getAttribute("data-placeholder")!==o&&(t.setAttribute("data-placeholder",o,r),s=!0);return(i||1==e.childCount)&&function(t,e){if(!t.isAttached())return!1;if(Array.from(t.getChildren()).some((t=>!t.is("uiElement"))))return!1;const n=t.document,o=n.selection.anchor;return!(n.isComposing&&o&&o.parent===t||!e&&n.isFocused&&(!o||o.parent===t))}(r,n.keepOnFocus)?function(t,e){return!e.hasClass("ck-placeholder")&&(t.addClass("ck-placeholder",e),!0)}(t,r)&&(s=!0):ts(t,r)&&(s=!0),s}function os(t){if(t.childCount){const e=t.getChild(0);if(e.is("element")&&!e.is("uiElement")&&!e.is("attributeElement"))return e}return null}class is{is(){throw new Error("is() method is abstract")}}const rs=function(t){return Eo(t,4)};class ss extends(L(is)){document;parent;constructor(t){super(),this.document=t,this.parent=null}get index(){let t;if(!this.parent)return null;if(-1==(t=this.parent.getChildIndex(this)))throw new x("view-node-not-found-in-parent",this);return t}get nextSibling(){const t=this.index;return null!==t&&this.parent.getChild(t+1)||null}get previousSibling(){const t=this.index;return null!==t&&this.parent.getChild(t-1)||null}get root(){let t=this;for(;t.parent;)t=t.parent;return t}isAttached(){return this.root.is("rootElement")}getPath(){const t=[];let e=this;for(;e.parent;)t.unshift(e.index),e=e.parent;return t}getAncestors(t={}){const e=[];let n=t.includeSelf?this:this.parent;for(;n;)e[t.parentFirst?"push":"unshift"](n),n=n.parent;return e}getCommonAncestor(t,e={}){const n=this.getAncestors(e),o=t.getAncestors(e);let i=0;for(;n[i]==o[i]&&n[i];)i++;return 0===i?null:n[i-1]}isBefore(t){if(this==t)return!1;if(this.root!==t.root)return!1;const e=this.getPath(),n=t.getPath(),o=it(e,n);switch(o){case"prefix":return!0;case"extension":return!1;default:return e[o]t.data.length)throw new x("view-textproxy-wrong-offsetintext",this);if(n<0||e+n>t.data.length)throw new x("view-textproxy-wrong-length",this);this.data=t.data.substring(e,e+n),this.offsetInText=e}get offsetSize(){return this.data.length}get isPartial(){return this.data.length!==this.textNode.data.length}get parent(){return this.textNode.parent}get root(){return this.textNode.root}get document(){return this.textNode.document}getAncestors(t={}){const e=[];let n=t.includeSelf?this.textNode:this.parent;for(;null!==n;)e[t.parentFirst?"push":"unshift"](n),n=n.parent;return e}}cs.prototype.is=function(t){return"$textProxy"===t||"view:$textProxy"===t||"textProxy"===t||"view:textProxy"===t};class ls{_patterns=[];constructor(...t){this.add(...t)}add(...t){for(let e of t)("string"==typeof e||e instanceof RegExp)&&(e={name:e}),this._patterns.push(e)}match(...t){for(const e of t)for(const t of this._patterns){const n=ds(e,t);if(n)return{element:e,pattern:t,match:n}}return null}matchAll(...t){const e=[];for(const n of t)for(const t of this._patterns){const o=ds(n,t);o&&e.push({element:n,pattern:t,match:o})}return e.length>0?e:null}getElementName(){if(1!==this._patterns.length)return null;const t=this._patterns[0],e=t.name;return"function"==typeof t||!e||e instanceof RegExp?null:e}}function ds(t,e){if("function"==typeof e)return e(t);const n={};return e.name&&(n.name=function(t,e){if(t instanceof RegExp)return!!e.match(t);return t===e}(e.name,t.name),!n.name)||e.attributes&&(n.attributes=function(t,e){const n=new Set(e.getAttributeKeys());St(t)?(void 0!==t.style&&E("matcher-pattern-deprecated-attributes-style-key",t),void 0!==t.class&&E("matcher-pattern-deprecated-attributes-class-key",t)):(n.delete("style"),n.delete("class"));return hs(t,n,(t=>e.getAttribute(t)))}(e.attributes,t),!n.attributes)||e.classes&&(n.classes=function(t,e){return hs(t,e.getClassNames(),(()=>{}))}(e.classes,t),!n.classes)||e.styles&&(n.styles=function(t,e){return hs(t,e.getStyleNames(!0),(t=>e.getStyle(t)))}(e.styles,t),!n.styles)?null:n}function hs(t,e,n){const o=function(t){if(Array.isArray(t))return t.map((t=>St(t)?(void 0!==t.key&&void 0!==t.value||E("matcher-pattern-missing-key-or-value",t),[t.key,t.value]):[t,!0]));if(St(t))return Object.entries(t);return[[t,!0]]}(t),i=Array.from(e),r=[];if(o.forEach((([t,e])=>{i.forEach((o=>{(function(t,e){return!0===t||t===e||t instanceof RegExp&&e.match(t)})(t,o)&&function(t,e,n){if(!0===t)return!0;const o=n(e);return t===o||t instanceof RegExp&&!!String(o).match(t)}(e,o,n)&&r.push(o)}))})),o.length&&!(r.lengthi?0:i+e),(n=n>i?i:n)<0&&(n+=i),i=e>n?0:n-e>>>0,e>>>=0;for(var r=Array(i);++oe===t));return Array.isArray(e)}set(t,e){if(j(t))for(const[e,n]of Object.entries(t))this._styleProcessor.toNormalizedForm(e,n,this._styles);else this._styleProcessor.toNormalizedForm(t,e,this._styles)}remove(t){const e=Hs(t);Ls(this._styles,e),delete this._styles[t],this._cleanEmptyObjectsOnPath(e)}getNormalized(t){return this._styleProcessor.getNormalized(t,this._styles)}toString(){return this.isEmpty?"":this.getStylesEntries().map((t=>t.join(":"))).sort().join(";")+";"}getAsString(t){if(this.isEmpty)return;if(this._styles[t]&&!j(this._styles[t]))return this._styles[t];const e=this._styleProcessor.getReducedForm(t,this._styles).find((([e])=>e===t));return Array.isArray(e)?e[1]:void 0}getStyleNames(t=!1){if(this.isEmpty)return[];if(t)return this._styleProcessor.getStyleNames(this._styles);return this.getStylesEntries().map((([t])=>t))}clear(){this._styles={}}getStylesEntries(){const t=[],e=Object.keys(this._styles);for(const n of e)t.push(...this._styleProcessor.getReducedForm(n,this._styles));return t}_cleanEmptyObjectsOnPath(t){const e=t.split(".");if(!(e.length>1))return;const n=e.splice(0,e.length-1).join("."),o=Fs(this._styles,n);if(!o)return;!Object.keys(o).length&&this.remove(n)}}class Ns{_normalizers;_extractors;_reducers;_consumables;constructor(){this._normalizers=new Map,this._extractors=new Map,this._reducers=new Map,this._consumables=new Map}toNormalizedForm(t,e,n){if(j(e))qs(n,Hs(t),e);else if(this._normalizers.has(t)){const o=this._normalizers.get(t),{path:i,value:r}=o(e);qs(n,i,r)}else qs(n,t,e)}getNormalized(t,e){if(!t)return Ui({},e);if(void 0!==e[t])return e[t];if(this._extractors.has(t)){const n=this._extractors.get(t);if("string"==typeof n)return Fs(e,n);const o=n(t,e);if(o)return o}return Fs(e,Hs(t))}getReducedForm(t,e){const n=this.getNormalized(t,e);if(void 0===n)return[];if(this._reducers.has(t)){return this._reducers.get(t)(n)}return[[t,n]]}getStyleNames(t){const e=Array.from(this._consumables.keys()).filter((e=>{const n=this.getNormalized(e,t);return n&&"object"==typeof n?Object.keys(n).length:n})),n=new Set([...e,...Object.keys(t)]);return Array.from(n)}getRelatedStyles(t){return this._consumables.get(t)||[]}setNormalizer(t,e){this._normalizers.set(t,e)}setExtractor(t,e){this._extractors.set(t,e)}setReducer(t,e){this._reducers.set(t,e)}setStyleRelation(t,e){this._mapStyleNames(t,e);for(const n of e)this._mapStyleNames(n,[t])}_mapStyleNames(t,e){this._consumables.has(t)||this._consumables.set(t,[]),this._consumables.get(t).push(...e)}}function Hs(t){return t.replace("-",".")}function qs(t,e,n){let o=n;j(n)&&(o=Ui({},Fs(t,e),n)),Vs(t,e,o)}class js extends ss{name;_unsafeAttributesToRender=[];_attrs;_children;_classes;_styles;_customProperties=new Map;constructor(t,e,n,o){if(super(t),this.name=e,this._attrs=function(t){const e=nr(t);for(const[t,n]of e)null===n?e.delete(t):"string"!=typeof n&&e.set(t,String(n));return e}(n),this._children=[],o&&this._insertChild(0,o),this._classes=new Set,this._attrs.has("class")){const t=this._attrs.get("class");Ws(this._classes,t),this._attrs.delete("class")}this._styles=new Os(this.document.stylesProcessor),this._attrs.has("style")&&(this._styles.setTo(this._attrs.get("style")),this._attrs.delete("style"))}get childCount(){return this._children.length}get isEmpty(){return 0===this._children.length}getChild(t){return this._children[t]}getChildIndex(t){return this._children.indexOf(t)}getChildren(){return this._children[Symbol.iterator]()}*getAttributeKeys(){this._classes.size>0&&(yield"class"),this._styles.isEmpty||(yield"style"),yield*this._attrs.keys()}*getAttributes(){yield*this._attrs.entries(),this._classes.size>0&&(yield["class",this.getAttribute("class")]),this._styles.isEmpty||(yield["style",this.getAttribute("style")])}getAttribute(t){if("class"==t)return this._classes.size>0?[...this._classes].join(" "):void 0;if("style"==t){const t=this._styles.toString();return""==t?void 0:t}return this._attrs.get(t)}hasAttribute(t){return"class"==t?this._classes.size>0:"style"==t?!this._styles.isEmpty:this._attrs.has(t)}isSimilar(t){if(!(t instanceof js))return!1;if(this===t)return!0;if(this.name!=t.name)return!1;if(this._attrs.size!==t._attrs.size||this._classes.size!==t._classes.size||this._styles.size!==t._styles.size)return!1;for(const[e,n]of this._attrs)if(!t._attrs.has(e)||t._attrs.get(e)!==n)return!1;for(const e of this._classes)if(!t._classes.has(e))return!1;for(const e of this._styles.getStyleNames())if(!t._styles.has(e)||t._styles.getAsString(e)!==this._styles.getAsString(e))return!1;return!0}hasClass(...t){for(const e of t)if(!this._classes.has(e))return!1;return!0}getClassNames(){return this._classes.keys()}getStyle(t){return this._styles.getAsString(t)}getNormalizedStyle(t){return this._styles.getNormalized(t)}getStyleNames(t){return this._styles.getStyleNames(t)}hasStyle(...t){for(const e of t)if(!this._styles.has(e))return!1;return!0}findAncestor(...t){const e=new ls(...t);let n=this.parent;for(;n&&!n.is("documentFragment");){if(e.match(n))return n;n=n.parent}return null}getCustomProperty(t){return this._customProperties.get(t)}*getCustomProperties(){yield*this._customProperties.entries()}getIdentity(){const t=Array.from(this._classes).sort().join(","),e=this._styles.toString(),n=Array.from(this._attrs).map((t=>`${t[0]}="${t[1]}"`)).sort().join(" ");return this.name+(""==t?"":` class="${t}"`)+(e?` style="${e}"`:"")+(""==n?"":` ${n}`)}shouldRenderUnsafeAttribute(t){return this._unsafeAttributesToRender.includes(t)}_clone(t=!1){const e=[];if(t)for(const n of this.getChildren())e.push(n._clone(t));const n=new this.constructor(this.document,this.name,this._attrs,e);return n._classes=new Set(this._classes),n._styles.set(this._styles.getNormalized()),n._customProperties=new Map(this._customProperties),n.getFillerOffset=this.getFillerOffset,n._unsafeAttributesToRender=this._unsafeAttributesToRender,n}_appendChild(t){return this._insertChild(this.childCount,t)}_insertChild(t,e){this._fireChange("children",this);let n=0;const o=function(t,e){if("string"==typeof e)return[new as(t,e)];rt(e)||(e=[e]);return Array.from(e).map((e=>"string"==typeof e?new as(t,e):e instanceof cs?new as(t,e.data):e))}(this.document,e);for(const e of o)null!==e.parent&&e._remove(),e.parent=this,e.document=this.document,this._children.splice(t,0,e),t++,n++;return n}_removeChildren(t,e=1){this._fireChange("children",this);for(let n=t;n0&&(this._classes.clear(),!0):"style"==t?!this._styles.isEmpty&&(this._styles.clear(),!0):this._attrs.delete(t)}_addClass(t){this._fireChange("attributes",this);for(const e of Di(t))this._classes.add(e)}_removeClass(t){this._fireChange("attributes",this);for(const e of Di(t))this._classes.delete(e)}_setStyle(t,e){this._fireChange("attributes",this),"string"!=typeof t?this._styles.set(t):this._styles.set(t,e)}_removeStyle(t){this._fireChange("attributes",this);for(const e of Di(t))this._styles.remove(e)}_setCustomProperty(t,e){this._customProperties.set(t,e)}_removeCustomProperty(t){return this._customProperties.delete(t)}}function Ws(t,e){const n=e.split(/\s+/);t.clear(),n.forEach((e=>t.add(e)))}js.prototype.is=function(t,e){return e?e===this.name&&("element"===t||"view:element"===t):"element"===t||"view:element"===t||"node"===t||"view:node"===t};class Gs extends js{constructor(t,e,n,o){super(t,e,n,o),this.getFillerOffset=Ks}}function Ks(){const t=[...this.getChildren()],e=t[this.childCount-1];if(e&&e.is("element","br"))return this.childCount;for(const e of t)if(!e.is("uiElement"))return null;return this.childCount}Gs.prototype.is=function(t,e){return e?e===this.name&&("containerElement"===t||"view:containerElement"===t||"element"===t||"view:element"===t):"containerElement"===t||"view:containerElement"===t||"element"===t||"view:element"===t||"node"===t||"view:node"===t};class Us extends(J(Gs)){constructor(t,e,n,o){super(t,e,n,o),this.set("isReadOnly",!1),this.set("isFocused",!1),this.set("placeholder",void 0),this.bind("isReadOnly").to(t),this.bind("isFocused").to(t,"isFocused",(e=>e&&t.selection.editableElement==this)),this.listenTo(t.selection,"change",(()=>{this.isFocused=t.isFocused&&t.selection.editableElement==this}))}destroy(){this.stopListening()}}Us.prototype.is=function(t,e){return e?e===this.name&&("editableElement"===t||"view:editableElement"===t||"containerElement"===t||"view:containerElement"===t||"element"===t||"view:element"===t):"editableElement"===t||"view:editableElement"===t||"containerElement"===t||"view:containerElement"===t||"element"===t||"view:element"===t||"node"===t||"view:node"===t};const $s=Symbol("rootName");class Zs extends Us{constructor(t,e){super(t,e),this.rootName="main"}get rootName(){return this.getCustomProperty($s)}set rootName(t){this._setCustomProperty($s,t)}set _name(t){this.name=t}}Zs.prototype.is=function(t,e){return e?e===this.name&&("rootElement"===t||"view:rootElement"===t||"editableElement"===t||"view:editableElement"===t||"containerElement"===t||"view:containerElement"===t||"element"===t||"view:element"===t):"rootElement"===t||"view:rootElement"===t||"editableElement"===t||"view:editableElement"===t||"containerElement"===t||"view:containerElement"===t||"element"===t||"view:element"===t||"node"===t||"view:node"===t};class Js{direction;boundaries;singleCharacters;shallow;ignoreElementEnd;_position;_boundaryStartParent;_boundaryEndParent;constructor(t={}){if(!t.boundaries&&!t.startPosition)throw new x("view-tree-walker-no-start-position",null);if(t.direction&&"forward"!=t.direction&&"backward"!=t.direction)throw new x("view-tree-walker-unknown-direction",t.startPosition,{direction:t.direction});this.boundaries=t.boundaries||null,t.startPosition?this._position=Ys._createAt(t.startPosition):this._position=Ys._createAt(t.boundaries["backward"==t.direction?"end":"start"]),this.direction=t.direction||"forward",this.singleCharacters=!!t.singleCharacters,this.shallow=!!t.shallow,this.ignoreElementEnd=!!t.ignoreElementEnd,this._boundaryStartParent=this.boundaries?this.boundaries.start.parent:null,this._boundaryEndParent=this.boundaries?this.boundaries.end.parent:null}[Symbol.iterator](){return this}get position(){return this._position}skip(t){let e,n;do{n=this.position,e=this.next()}while(!e.done&&t(e.value));e.done||(this._position=n)}next(){return"forward"==this.direction?this._next():this._previous()}_next(){let t=this.position.clone();const e=this.position,n=t.parent;if(null===n.parent&&t.offset===n.childCount)return{done:!0,value:void 0};if(n===this._boundaryEndParent&&t.offset==this.boundaries.end.offset)return{done:!0,value:void 0};let o;if(n instanceof as){if(t.isAtEnd)return this._position=Ys._createAfter(n),this._next();o=n.data[t.offset]}else o=n.getChild(t.offset);if(o instanceof js){if(this.shallow){if(this.boundaries&&this.boundaries.end.isBefore(t))return{done:!0,value:void 0};t.offset++}else t=new Ys(o,0);return this._position=t,this._formatReturnValue("elementStart",o,e,t,1)}if(o instanceof as){if(this.singleCharacters)return t=new Ys(o,0),this._position=t,this._next();let n,i=o.data.length;return o==this._boundaryEndParent?(i=this.boundaries.end.offset,n=new cs(o,0,i),t=Ys._createAfter(n)):(n=new cs(o,0,o.data.length),t.offset++),this._position=t,this._formatReturnValue("text",n,e,t,i)}if("string"==typeof o){let o;if(this.singleCharacters)o=1;else{o=(n===this._boundaryEndParent?this.boundaries.end.offset:n.data.length)-t.offset}const i=new cs(n,t.offset,o);return t.offset+=o,this._position=t,this._formatReturnValue("text",i,e,t,o)}return t=Ys._createAfter(n),this._position=t,this.ignoreElementEnd?this._next():this._formatReturnValue("elementEnd",n,e,t)}_previous(){let t=this.position.clone();const e=this.position,n=t.parent;if(null===n.parent&&0===t.offset)return{done:!0,value:void 0};if(n==this._boundaryStartParent&&t.offset==this.boundaries.start.offset)return{done:!0,value:void 0};let o;if(n instanceof as){if(t.isAtStart)return this._position=Ys._createBefore(n),this._previous();o=n.data[t.offset-1]}else o=n.getChild(t.offset-1);if(o instanceof js)return this.shallow?(t.offset--,this._position=t,this._formatReturnValue("elementStart",o,e,t,1)):(t=new Ys(o,o.childCount),this._position=t,this.ignoreElementEnd?this._previous():this._formatReturnValue("elementEnd",o,e,t));if(o instanceof as){if(this.singleCharacters)return t=new Ys(o,o.data.length),this._position=t,this._previous();let n,i=o.data.length;if(o==this._boundaryStartParent){const e=this.boundaries.start.offset;n=new cs(o,e,o.data.length-e),i=n.data.length,t=Ys._createBefore(n)}else n=new cs(o,0,o.data.length),t.offset--;return this._position=t,this._formatReturnValue("text",n,e,t,i)}if("string"==typeof o){let o;if(this.singleCharacters)o=1;else{const e=n===this._boundaryStartParent?this.boundaries.start.offset:0;o=t.offset-e}t.offset-=o;const i=new cs(n,t.offset,o);return this._position=t,this._formatReturnValue("text",i,e,t,o)}return t=Ys._createBefore(n),this._position=t,this._formatReturnValue("elementStart",n,e,t,1)}_formatReturnValue(t,e,n,o,i){return e instanceof cs&&(e.offsetInText+e.data.length==e.textNode.data.length&&("forward"!=this.direction||this.boundaries&&this.boundaries.end.isEqual(this.position)?n=Ys._createAfter(e.textNode):(o=Ys._createAfter(e.textNode),this._position=o)),0===e.offsetInText&&("backward"!=this.direction||this.boundaries&&this.boundaries.start.isEqual(this.position)?n=Ys._createBefore(e.textNode):(o=Ys._createBefore(e.textNode),this._position=o))),{done:!1,value:{type:t,item:e,previousPosition:n,nextPosition:o,length:i}}}}class Ys extends is{parent;offset;constructor(t,e){super(),this.parent=t,this.offset=e}get nodeAfter(){return this.parent.is("$text")?null:this.parent.getChild(this.offset)||null}get nodeBefore(){return this.parent.is("$text")?null:this.parent.getChild(this.offset-1)||null}get isAtStart(){return 0===this.offset}get isAtEnd(){const t=this.parent.is("$text")?this.parent.data.length:this.parent.childCount;return this.offset===t}get root(){return this.parent.root}get editableElement(){let t=this.parent;for(;!(t instanceof Us);){if(!t.parent)return null;t=t.parent}return t}getShiftedBy(t){const e=Ys._createAt(this),n=e.offset+t;return e.offset=n<0?0:n,e}getLastMatchingPosition(t,e={}){e.startPosition=this;const n=new Js(e);return n.skip(t),n.position}getAncestors(){return this.parent.is("documentFragment")?[this.parent]:this.parent.getAncestors({includeSelf:!0})}getCommonAncestor(t){const e=this.getAncestors(),n=t.getAncestors();let o=0;for(;e[o]==n[o]&&e[o];)o++;return 0===o?null:e[o-1]}isEqual(t){return this.parent==t.parent&&this.offset==t.offset}isBefore(t){return"before"==this.compareWith(t)}isAfter(t){return"after"==this.compareWith(t)}compareWith(t){if(this.root!==t.root)return"different";if(this.isEqual(t))return"same";const e=this.parent.is("node")?this.parent.getPath():[],n=t.parent.is("node")?t.parent.getPath():[];e.push(this.offset),n.push(t.offset);const o=it(e,n);switch(o){case"prefix":return"before";case"extension":return"after";default:return e[o]0?new this(n,o):new this(o,n)}static _createIn(t){return this._createFromParentsAndOffsets(t,0,t,t.childCount)}static _createOn(t){const e=t.is("$textProxy")?t.offsetSize:1;return this._createFromPositionAndShift(Ys._createBefore(t),e)}}function Xs(t){return!(!t.item.is("attributeElement")&&!t.item.is("uiElement"))}Qs.prototype.is=function(t){return"range"===t||"view:range"===t};class ta extends(L(is)){_ranges;_lastRangeBackward;_isFake;_fakeSelectionLabel;constructor(...t){super(),this._ranges=[],this._lastRangeBackward=!1,this._isFake=!1,this._fakeSelectionLabel="",t.length&&this.setTo(...t)}get isFake(){return this._isFake}get fakeSelectionLabel(){return this._fakeSelectionLabel}get anchor(){if(!this._ranges.length)return null;const t=this._ranges[this._ranges.length-1];return(this._lastRangeBackward?t.end:t.start).clone()}get focus(){if(!this._ranges.length)return null;const t=this._ranges[this._ranges.length-1];return(this._lastRangeBackward?t.start:t.end).clone()}get isCollapsed(){return 1===this.rangeCount&&this._ranges[0].isCollapsed}get rangeCount(){return this._ranges.length}get isBackward(){return!this.isCollapsed&&this._lastRangeBackward}get editableElement(){return this.anchor?this.anchor.editableElement:null}*getRanges(){for(const t of this._ranges)yield t.clone()}getFirstRange(){let t=null;for(const e of this._ranges)t&&!e.start.isBefore(t.start)||(t=e);return t?t.clone():null}getLastRange(){let t=null;for(const e of this._ranges)t&&!e.end.isAfter(t.end)||(t=e);return t?t.clone():null}getFirstPosition(){const t=this.getFirstRange();return t?t.start.clone():null}getLastPosition(){const t=this.getLastRange();return t?t.end.clone():null}isEqual(t){if(this.isFake!=t.isFake)return!1;if(this.isFake&&this.fakeSelectionLabel!=t.fakeSelectionLabel)return!1;if(this.rangeCount!=t.rangeCount)return!1;if(0===this.rangeCount)return!0;if(!this.anchor.isEqual(t.anchor)||!this.focus.isEqual(t.focus))return!1;for(const e of this._ranges){let n=!1;for(const o of t._ranges)if(e.isEqual(o)){n=!0;break}if(!n)return!1}return!0}isSimilar(t){if(this.isBackward!=t.isBackward)return!1;const e=ot(this.getRanges());if(e!=ot(t.getRanges()))return!1;if(0==e)return!0;for(let e of this.getRanges()){e=e.getTrimmed();let n=!1;for(let o of t.getRanges())if(o=o.getTrimmed(),e.start.isEqual(o.start)&&e.end.isEqual(o.end)){n=!0;break}if(!n)return!1}return!0}getSelectedElement(){return 1!==this.rangeCount?null:this.getFirstRange().getContainedElement()}setTo(...t){let[e,n,o]=t;if("object"==typeof n&&(o=n,n=void 0),null===e)this._setRanges([]),this._setFakeOptions(o);else if(e instanceof ta||e instanceof ea)this._setRanges(e.getRanges(),e.isBackward),this._setFakeOptions({fake:e.isFake,label:e.fakeSelectionLabel});else if(e instanceof Qs)this._setRanges([e],o&&o.backward),this._setFakeOptions(o);else if(e instanceof Ys)this._setRanges([new Qs(e)]),this._setFakeOptions(o);else if(e instanceof ss){const t=!!o&&!!o.backward;let i;if(void 0===n)throw new x("view-selection-setto-required-second-parameter",this);i="in"==n?Qs._createIn(e):"on"==n?Qs._createOn(e):new Qs(Ys._createAt(e,n)),this._setRanges([i],t),this._setFakeOptions(o)}else{if(!rt(e))throw new x("view-selection-setto-not-selectable",this);this._setRanges(e,o&&o.backward),this._setFakeOptions(o)}this.fire("change")}setFocus(t,e){if(null===this.anchor)throw new x("view-selection-setfocus-no-ranges",this);const n=Ys._createAt(t,e);if("same"==n.compareWith(this.focus))return;const o=this.anchor;this._ranges.pop(),"before"==n.compareWith(o)?this._addRange(new Qs(n,o),!0):this._addRange(new Qs(o,n)),this.fire("change")}_setRanges(t,e=!1){t=Array.from(t),this._ranges=[];for(const e of t)this._addRange(e);this._lastRangeBackward=!!e}_setFakeOptions(t={}){this._isFake=!!t.fake,this._fakeSelectionLabel=t.fake&&t.label||""}_addRange(t,e=!1){if(!(t instanceof Qs))throw new x("view-selection-add-range-not-range",this);this._pushRange(t),this._lastRangeBackward=!!e}_pushRange(t){for(const e of this._ranges)if(t.isIntersecting(e))throw new x("view-selection-range-intersects",this,{addedRange:t,intersectingRange:e});this._ranges.push(new Qs(t.start,t.end))}}ta.prototype.is=function(t){return"selection"===t||"view:selection"===t};class ea extends(L(is)){_selection;constructor(...t){super(),this._selection=new ta,this._selection.delegate("change").to(this),t.length&&this._selection.setTo(...t)}get isFake(){return this._selection.isFake}get fakeSelectionLabel(){return this._selection.fakeSelectionLabel}get anchor(){return this._selection.anchor}get focus(){return this._selection.focus}get isCollapsed(){return this._selection.isCollapsed}get rangeCount(){return this._selection.rangeCount}get isBackward(){return this._selection.isBackward}get editableElement(){return this._selection.editableElement}get _ranges(){return this._selection._ranges}*getRanges(){yield*this._selection.getRanges()}getFirstRange(){return this._selection.getFirstRange()}getLastRange(){return this._selection.getLastRange()}getFirstPosition(){return this._selection.getFirstPosition()}getLastPosition(){return this._selection.getLastPosition()}getSelectedElement(){return this._selection.getSelectedElement()}isEqual(t){return this._selection.isEqual(t)}isSimilar(t){return this._selection.isSimilar(t)}_setTo(...t){this._selection.setTo(...t)}_setFocus(t,e){this._selection.setFocus(t,e)}}ea.prototype.is=function(t){return"selection"===t||"documentSelection"==t||"view:selection"==t||"view:documentSelection"==t};class na extends w{startRange;_eventPhase;_currentTarget;constructor(t,e,n){super(t,e),this.startRange=n,this._eventPhase="none",this._currentTarget=null}get eventPhase(){return this._eventPhase}get currentTarget(){return this._currentTarget}}const oa=Symbol("bubbling contexts");function ia(t){return class extends t{fire(t,...e){try{const n=t instanceof w?t:new w(this,t),o=ca(this);if(!o.size)return;if(ra(n,"capturing",this),sa(o,"$capture",n,...e))return n.return;const i=n.startRange||this.selection.getFirstRange(),r=i?i.getContainedElement():null,s=!!r&&Boolean(aa(o,r));let a=r||function(t){if(!t)return null;const e=t.start.parent,n=t.end.parent,o=e.getPath(),i=n.getPath();return o.length>i.length?e:n}(i);if(ra(n,"atTarget",a),!s){if(sa(o,"$text",n,...e))return n.return;ra(n,"bubbling",a)}for(;a;){if(a.is("rootElement")){if(sa(o,"$root",n,...e))return n.return}else if(a.is("element")&&sa(o,a.name,n,...e))return n.return;if(sa(o,a,n,...e))return n.return;a=a.parent,ra(n,"bubbling",a)}return ra(n,"bubbling",this),sa(o,"$document",n,...e),n.return}catch(t){x.rethrowUnexpectedError(t,this)}}_addEventListener(t,e,n){const o=Di(n.context||"$document"),i=ca(this);for(const r of o){let o=i.get(r);o||(o=new(L()),i.set(r,o)),this.listenTo(o,t,e,n)}}_removeEventListener(t,e){const n=ca(this);for(const o of n.values())this.stopListening(o,t,e)}}}{const t=ia(Object);["fire","_addEventListener","_removeEventListener"].forEach((e=>{ia[e]=t.prototype[e]}))}function ra(t,e,n){t instanceof na&&(t._eventPhase=e,t._currentTarget=n)}function sa(t,e,n,...o){const i="string"==typeof e?t.get(e):aa(t,e);return!!i&&(i.fire(n,...o),n.stop.called)}function aa(t,e){for(const[n,o]of t)if("function"==typeof n&&n(e))return o;return null}function ca(t){return t[oa]||(t[oa]=new Map),t[oa]}class la extends(ia(J())){selection;roots;stylesProcessor;_postFixers=new Set;constructor(t){super(),this.selection=new ea,this.roots=new Qi({idProperty:"rootName"}),this.stylesProcessor=t,this.set("isReadOnly",!1),this.set("isFocused",!1),this.set("isSelecting",!1),this.set("isComposing",!1)}getRoot(t="main"){return this.roots.get(t)}registerPostFixer(t){this._postFixers.add(t)}destroy(){this.roots.forEach((t=>t.destroy())),this.stopListening()}_callPostFixers(t){let e=!1;do{for(const n of this._postFixers)if(e=n(t),e)break}while(e)}}class da extends js{static DEFAULT_PRIORITY=10;_priority=10;_id=null;_clonesGroup=null;constructor(t,e,n,o){super(t,e,n,o),this.getFillerOffset=ha}get priority(){return this._priority}get id(){return this._id}getElementsWithSameId(){if(null===this.id)throw new x("attribute-element-get-elements-with-same-id-no-id",this);return new Set(this._clonesGroup)}isSimilar(t){return null!==this.id||null!==t.id?this.id===t.id:super.isSimilar(t)&&this.priority==t.priority}_clone(t=!1){const e=super._clone(t);return e._priority=this._priority,e._id=this._id,e}}function ha(){if(ua(this))return null;let t=this.parent;for(;t&&t.is("attributeElement");){if(ua(t)>1)return null;t=t.parent}return!t||ua(t)>1?null:this.childCount}function ua(t){return Array.from(t.getChildren()).filter((t=>!t.is("uiElement"))).length}da.prototype.is=function(t,e){return e?e===this.name&&("attributeElement"===t||"view:attributeElement"===t||"element"===t||"view:element"===t):"attributeElement"===t||"view:attributeElement"===t||"element"===t||"view:element"===t||"node"===t||"view:node"===t};class ma extends js{constructor(t,e,n,o){super(t,e,n,o),this.getFillerOffset=ga}_insertChild(t,e){if(e&&(e instanceof ss||Array.from(e).length>0))throw new x("view-emptyelement-cannot-add",[this,e]);return 0}}function ga(){return null}ma.prototype.is=function(t,e){return e?e===this.name&&("emptyElement"===t||"view:emptyElement"===t||"element"===t||"view:element"===t):"emptyElement"===t||"view:emptyElement"===t||"element"===t||"view:element"===t||"node"===t||"view:node"===t};class pa extends js{constructor(t,e,n,o){super(t,e,n,o),this.getFillerOffset=ka}_insertChild(t,e){if(e&&(e instanceof ss||Array.from(e).length>0))throw new x("view-uielement-cannot-add",[this,e]);return 0}render(t,e){return this.toDomElement(t)}toDomElement(t){const e=t.createElement(this.name);for(const t of this.getAttributeKeys())e.setAttribute(t,this.getAttribute(t));return e}}function fa(t){t.document.on("arrowKey",((e,n)=>function(t,e,n){if(e.keyCode==_i.arrowright){const t=e.domTarget.ownerDocument.defaultView.getSelection(),o=1==t.rangeCount&&t.getRangeAt(0).collapsed;if(o||e.shiftKey){const e=t.focusNode,i=t.focusOffset,r=n.domPositionToView(e,i);if(null===r)return;let s=!1;const a=r.getLastMatchingPosition((t=>(t.item.is("uiElement")&&(s=!0),!(!t.item.is("uiElement")&&!t.item.is("attributeElement")))));if(s){const e=n.viewPositionToDom(a);o?t.collapse(e.parent,e.offset):t.extend(e.parent,e.offset)}}}}(0,n,t.domConverter)),{priority:"low"})}function ka(){return null}pa.prototype.is=function(t,e){return e?e===this.name&&("uiElement"===t||"view:uiElement"===t||"element"===t||"view:element"===t):"uiElement"===t||"view:uiElement"===t||"element"===t||"view:element"===t||"node"===t||"view:node"===t};class ba extends js{constructor(t,e,n,o){super(t,e,n,o),this.getFillerOffset=wa}_insertChild(t,e){if(e&&(e instanceof ss||Array.from(e).length>0))throw new x("view-rawelement-cannot-add",[this,e]);return 0}render(t,e){}}function wa(){return null}ba.prototype.is=function(t,e){return e?e===this.name&&("rawElement"===t||"view:rawElement"===t||"element"===t||"view:element"===t):"rawElement"===t||"view:rawElement"===t||t===this.name||t==="view:"+this.name||"element"===t||"view:element"===t||"node"===t||"view:node"===t};class _a extends(L(is)){document;_children=[];_customProperties=new Map;constructor(t,e){super(),this.document=t,e&&this._insertChild(0,e)}[Symbol.iterator](){return this._children[Symbol.iterator]()}get childCount(){return this._children.length}get isEmpty(){return 0===this.childCount}get root(){return this}get parent(){return null}get name(){}get getFillerOffset(){}getCustomProperty(t){return this._customProperties.get(t)}*getCustomProperties(){yield*this._customProperties.entries()}_appendChild(t){return this._insertChild(this.childCount,t)}getChild(t){return this._children[t]}getChildIndex(t){return this._children.indexOf(t)}getChildren(){return this._children[Symbol.iterator]()}_insertChild(t,e){this._fireChange("children",this);let n=0;const o=function(t,e){if("string"==typeof e)return[new as(t,e)];rt(e)||(e=[e]);return Array.from(e).map((e=>"string"==typeof e?new as(t,e):e instanceof cs?new as(t,e.data):e))}(this.document,e);for(const e of o)null!==e.parent&&e._remove(),e.parent=this,this._children.splice(t,0,e),t++,n++;return n}_removeChildren(t,e=1){this._fireChange("children",this);for(let n=t;n{const n=t[t.length-1],o=!e.is("uiElement");return n&&n.breakAttributes==o?n.nodes.push(e):t.push({breakAttributes:o,nodes:[e]}),t}),[]);let o=null,i=t;for(const{nodes:t,breakAttributes:e}of n){const n=this._insertNodes(i,t,e);o||(o=n.start),i=n.end}return o?new Qs(o,i):new Qs(t)}remove(t){const e=t instanceof Qs?t:Qs._createOn(t);if(Sa(e,this.document),e.isCollapsed)return new _a(this.document);const{start:n,end:o}=this._breakAttributesRange(e,!0),i=n.parent,r=o.offset-n.offset,s=i._removeChildren(n.offset,r);for(const t of s)this._removeFromClonedElementsGroup(t);const a=this.mergeAttributes(n);return e.start=a,e.end=a.clone(),new _a(this.document,s)}clear(t,e){Sa(t,this.document);const n=t.getWalker({direction:"backward",ignoreElementEnd:!0});for(const o of n){const n=o.item;let i;if(n.is("element")&&e.isSimilar(n))i=Qs._createOn(n);else if(!o.nextPosition.isAfter(t.start)&&n.is("$textProxy")){const t=n.getAncestors().find((t=>t.is("element")&&e.isSimilar(t)));t&&(i=Qs._createIn(t))}i&&(i.end.isAfter(t.end)&&(i.end=t.end),i.start.isBefore(t.start)&&(i.start=t.start),this.remove(i))}}move(t,e){let n;if(e.isAfter(t.end)){const o=(e=this._breakAttributes(e,!0)).parent,i=o.childCount;t=this._breakAttributesRange(t,!0),n=this.remove(t),e.offset+=o.childCount-i}else n=this.remove(t);return this.insert(e,n)}wrap(t,e){if(!(e instanceof da))throw new x("view-writer-wrap-invalid-attribute",this.document);if(Sa(t,this.document),t.isCollapsed){let o=t.start;o.parent.is("element")&&(n=o.parent,!Array.from(n.getChildren()).some((t=>!t.is("uiElement"))))&&(o=o.getLastMatchingPosition((t=>t.item.is("uiElement")))),o=this._wrapPosition(o,e);const i=this.document.selection;return i.isCollapsed&&i.getFirstPosition().isEqual(t.start)&&this.setSelection(o),new Qs(o)}return this._wrapRange(t,e);var n}unwrap(t,e){if(!(e instanceof da))throw new x("view-writer-unwrap-invalid-attribute",this.document);if(Sa(t,this.document),t.isCollapsed)return t;const{start:n,end:o}=this._breakAttributesRange(t,!0),i=n.parent,r=this._unwrapChildren(i,n.offset,o.offset,e),s=this.mergeAttributes(r.start);s.isEqual(r.start)||r.end.offset--;const a=this.mergeAttributes(r.end);return new Qs(s,a)}rename(t,e){const n=new Gs(this.document,t,e.getAttributes());return this.insert(Ys._createAfter(e),n),this.move(Qs._createIn(e),Ys._createAt(n,0)),this.remove(Qs._createOn(e)),n}clearClonedElementsGroup(t){this._cloneGroups.delete(t)}createPositionAt(t,e){return Ys._createAt(t,e)}createPositionAfter(t){return Ys._createAfter(t)}createPositionBefore(t){return Ys._createBefore(t)}createRange(t,e){return new Qs(t,e)}createRangeOn(t){return Qs._createOn(t)}createRangeIn(t){return Qs._createIn(t)}createSelection(...t){return new ta(...t)}createSlot(t="children"){if(!this._slotFactory)throw new x("view-writer-invalid-create-slot-context",this.document);return this._slotFactory(this,t)}_registerSlotFactory(t){this._slotFactory=t}_clearSlotFactory(){this._slotFactory=null}_insertNodes(t,e,n){let o,i;if(o=n?Ca(t):t.parent.is("$text")?t.parent.parent:t.parent,!o)throw new x("view-writer-invalid-position-container",this.document);i=n?this._breakAttributes(t,!0):t.parent.is("$text")?xa(t):t;const r=o._insertChild(i.offset,e);for(const t of e)this._addToClonedElementsGroup(t);const s=i.getShiftedBy(r),a=this.mergeAttributes(i);a.isEqual(i)||s.offset--;const c=this.mergeAttributes(s);return new Qs(a,c)}_wrapChildren(t,e,n,o){let i=e;const r=[];for(;i!1,t.parent._insertChild(t.offset,n);const o=new Qs(t,t.getShiftedBy(1));this.wrap(o,e);const i=new Ys(n.parent,n.index);n._remove();const r=i.nodeBefore,s=i.nodeAfter;return r instanceof as&&s instanceof as?Ea(r,s):ya(i)}_wrapAttributeElement(t,e){if(!Ia(t,e))return!1;if(t.name!==e.name||t.priority!==e.priority)return!1;for(const n of t.getAttributeKeys())if("class"!==n&&"style"!==n&&e.hasAttribute(n)&&e.getAttribute(n)!==t.getAttribute(n))return!1;for(const n of t.getStyleNames())if(e.hasStyle(n)&&e.getStyle(n)!==t.getStyle(n))return!1;for(const n of t.getAttributeKeys())"class"!==n&&"style"!==n&&(e.hasAttribute(n)||this.setAttribute(n,t.getAttribute(n),e));for(const n of t.getStyleNames())e.hasStyle(n)||this.setStyle(n,t.getStyle(n),e);for(const n of t.getClassNames())e.hasClass(n)||this.addClass(n,e);return!0}_unwrapAttributeElement(t,e){if(!Ia(t,e))return!1;if(t.name!==e.name||t.priority!==e.priority)return!1;for(const n of t.getAttributeKeys())if("class"!==n&&"style"!==n&&(!e.hasAttribute(n)||e.getAttribute(n)!==t.getAttribute(n)))return!1;if(!e.hasClass(...t.getClassNames()))return!1;for(const n of t.getStyleNames())if(!e.hasStyle(n)||e.getStyle(n)!==t.getStyle(n))return!1;for(const n of t.getAttributeKeys())"class"!==n&&"style"!==n&&this.removeAttribute(n,e);return this.removeClass(Array.from(t.getClassNames()),e),this.removeStyle(Array.from(t.getStyleNames()),e),!0}_breakAttributesRange(t,e=!1){const n=t.start,o=t.end;if(Sa(t,this.document),t.isCollapsed){const n=this._breakAttributes(t.start,e);return new Qs(n,n)}const i=this._breakAttributes(o,e),r=i.parent.childCount,s=this._breakAttributes(n,e);return i.offset+=i.parent.childCount-r,new Qs(s,i)}_breakAttributes(t,e=!1){const n=t.offset,o=t.parent;if(t.parent.is("emptyElement"))throw new x("view-writer-cannot-break-empty-element",this.document);if(t.parent.is("uiElement"))throw new x("view-writer-cannot-break-ui-element",this.document);if(t.parent.is("rawElement"))throw new x("view-writer-cannot-break-raw-element",this.document);if(!e&&o.is("$text")&&Ta(o.parent))return t.clone();if(Ta(o))return t.clone();if(o.is("$text"))return this._breakAttributes(xa(t),e);if(n==o.childCount){const t=new Ys(o.parent,o.index+1);return this._breakAttributes(t,e)}if(0===n){const t=new Ys(o.parent,o.index);return this._breakAttributes(t,e)}{const t=o.index+1,i=o._clone();o.parent._insertChild(t,i),this._addToClonedElementsGroup(i);const r=o.childCount-n,s=o._removeChildren(n,r);i._appendChild(s);const a=new Ys(o.parent,t);return this._breakAttributes(a,e)}}_addToClonedElementsGroup(t){if(!t.root.is("rootElement"))return;if(t.is("element"))for(const e of t.getChildren())this._addToClonedElementsGroup(e);const e=t.id;if(!e)return;let n=this._cloneGroups.get(e);n||(n=new Set,this._cloneGroups.set(e,n)),n.add(t),t._clonesGroup=n}_removeFromClonedElementsGroup(t){if(t.is("element"))for(const e of t.getChildren())this._removeFromClonedElementsGroup(e);const e=t.id;if(!e)return;const n=this._cloneGroups.get(e);n&&n.delete(t)}}function Ca(t){let e=t.parent;for(;!Ta(e);){if(!e)return;e=e.parent}return e}function va(t,e){return t.prioritye.priority)&&t.getIdentity()n instanceof t)))throw new x("view-writer-insert-invalid-node-type",e);n.is("$text")||Ba(n.getChildren(),e)}}function Ta(t){return t&&(t.is("containerElement")||t.is("documentFragment"))}function Sa(t,e){const n=Ca(t.start),o=Ca(t.end);if(!n||!o||n!==o)throw new x("view-writer-invalid-range-container",e)}function Ia(t,e){return null===t.id&&null===e.id}const Pa=t=>t.createTextNode(" "),za=t=>{const e=t.createElement("span");return e.dataset.ckeFiller="true",e.innerText=" ",e},Ra=t=>{const e=t.createElement("br");return e.dataset.ckeFiller="true",e},La=7,Fa="".repeat(La);function Ma(t){return"string"==typeof t?t.substr(0,La)===Fa:qo(t)&&t.data.substr(0,La)===Fa}function Va(t){return t.data.length==La&&Ma(t)}function Oa(t){const e="string"==typeof t?t:t.data;return Ma(t)?e.slice(La):e}function Na(t,e){if(e.keyCode==_i.arrowleft){const t=e.domTarget.ownerDocument.defaultView.getSelection();if(1==t.rangeCount&&t.getRangeAt(0).collapsed){const e=t.getRangeAt(0).startContainer,n=t.getRangeAt(0).startOffset;Ma(e)&&n<=La&&t.collapse(e,0)}}}var Ha=n(8264),qa={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Pr()(Ha.A,qa);Ha.A.locals;class ja extends(J()){domDocuments=new Set;domConverter;markedAttributes=new Set;markedChildren=new Set;markedTexts=new Set;selection;_inlineFiller=null;_fakeSelectionContainer=null;constructor(t,e){super(),this.domConverter=t,this.selection=e,this.set("isFocused",!1),this.set("isSelecting",!1),i.isBlink&&!i.isAndroid&&this.on("change:isSelecting",(()=>{this.isSelecting||this.render()})),this.set("isComposing",!1),this.on("change:isComposing",(()=>{this.isComposing||this.render()}))}markToSync(t,e){if("text"===t)this.domConverter.mapViewToDom(e.parent)&&this.markedTexts.add(e);else{if(!this.domConverter.mapViewToDom(e))return;if("attributes"===t)this.markedAttributes.add(e);else{if("children"!==t){throw new x("view-renderer-unknown-type",this)}this.markedChildren.add(e)}}}render(){if(this.isComposing&&!i.isAndroid)return;let t=null;const e=!(i.isBlink&&!i.isAndroid)||!this.isSelecting;for(const t of this.markedChildren)this._updateChildrenMappings(t);e?(this._inlineFiller&&!this._isSelectionInInlineFiller()&&this._removeInlineFiller(),this._inlineFiller?t=this._getInlineFillerPosition():this._needsInlineFillerAtSelection()&&(t=this.selection.getFirstPosition(),this.markedChildren.add(t.parent))):this._inlineFiller&&this._inlineFiller.parentNode&&(t=this.domConverter.domPositionToView(this._inlineFiller),t&&t.parent.is("$text")&&(t=Ys._createBefore(t.parent)));for(const t of this.markedAttributes)this._updateAttrs(t);for(const e of this.markedChildren)this._updateChildren(e,{inlineFillerPosition:t});for(const e of this.markedTexts)!this.markedChildren.has(e.parent)&&this.domConverter.mapViewToDom(e.parent)&&this._updateText(e,{inlineFillerPosition:t});if(e)if(t){const e=this.domConverter.viewPositionToDom(t),n=e.parent.ownerDocument;Ma(e.parent)?this._inlineFiller=e.parent:this._inlineFiller=Wa(n,e.parent,e.offset)}else this._inlineFiller=null;this._updateFocus(),this._updateSelection(),this.domConverter._clearTemporaryCustomProperties(),this.markedTexts.clear(),this.markedAttributes.clear(),this.markedChildren.clear()}_updateChildrenMappings(t){const e=this.domConverter.mapViewToDom(t);if(!e)return;const n=Array.from(e.childNodes),o=Array.from(this.domConverter.viewChildrenToDom(t,{withChildren:!1})),i=this._diffNodeLists(n,o),r=this._findUpdateActions(i,n,o,Ga);if(-1!==r.indexOf("update")){const e={equal:0,insert:0,delete:0};for(const i of r)if("update"===i){const i=e.equal+e.insert,r=e.equal+e.delete,s=t.getChild(i);!s||s.is("uiElement")||s.is("rawElement")||this._updateElementMappings(s,n[r]),ai(o[i]),e.equal++}else e[i]++}}_updateElementMappings(t,e){this.domConverter.unbindDomElement(e),this.domConverter.bindElements(e,t),this.markedChildren.add(t),this.markedAttributes.add(t)}_getInlineFillerPosition(){const t=this.selection.getFirstPosition();return t.parent.is("$text")?Ys._createBefore(t.parent):t}_isSelectionInInlineFiller(){if(1!=this.selection.rangeCount||!this.selection.isCollapsed)return!1;const t=this.selection.getFirstPosition(),e=this.domConverter.viewPositionToDom(t);return!!(e&&qo(e.parent)&&Ma(e.parent))}_removeInlineFiller(){const t=this._inlineFiller;if(!Ma(t))throw new x("view-renderer-filler-was-lost",this);Va(t)?t.remove():t.data=t.data.substr(La),this._inlineFiller=null}_needsInlineFillerAtSelection(){if(1!=this.selection.rangeCount||!this.selection.isCollapsed)return!1;const t=this.selection.getFirstPosition(),e=t.parent,n=t.offset;if(!this.domConverter.mapViewToDom(e.root))return!1;if(!e.is("element"))return!1;if(!function(t){if("false"==t.getAttribute("contenteditable"))return!1;const e=t.findAncestor((t=>t.hasAttribute("contenteditable")));return!e||"true"==e.getAttribute("contenteditable")}(e))return!1;const o=t.nodeBefore,r=t.nodeAfter;return!(o instanceof as||r instanceof as)&&(!!(n!==e.getFillerOffset()||o&&o.is("element","br"))&&(!i.isAndroid||!o&&!r))}_updateText(t,e){const n=this.domConverter.findCorrespondingDomText(t);let o=this.domConverter.viewToDom(t).data;const i=e.inlineFillerPosition;i&&i.parent==t.parent&&i.offset==t.index&&(o=Fa+o),$a(n,o)}_updateAttrs(t){const e=this.domConverter.mapViewToDom(t);if(!e)return;const n=Array.from(e.attributes).map((t=>t.name)),o=t.getAttributeKeys();for(const n of o)this.domConverter.setDomElementAttribute(e,n,t.getAttribute(n),t);for(const o of n)t.hasAttribute(o)||this.domConverter.removeDomElementAttribute(e,o)}_updateChildren(t,e){const n=this.domConverter.mapViewToDom(t);if(!n)return;if(i.isAndroid){let t=null;for(const e of Array.from(n.childNodes)){if(t&&qo(t)&&qo(e)){n.normalize();break}t=e}}const o=e.inlineFillerPosition,r=n.childNodes,s=Array.from(this.domConverter.viewChildrenToDom(t,{bind:!0}));o&&o.parent===t&&Wa(n.ownerDocument,s,o.offset);const a=this._diffNodeLists(r,s),c=this._findUpdateActions(a,r,s,Ka);let l=0;const d=new Set;for(const t of c)"delete"===t?(d.add(r[l]),ai(r[l])):"equal"!==t&&"update"!==t||l++;l=0;for(const t of c)"insert"===t?(ei(n,l,s[l]),l++):"update"===t?($a(r[l],s[l].data),l++):"equal"===t&&(this._markDescendantTextToSync(this.domConverter.domToView(s[l])),l++);for(const t of d)t.parentNode||this.domConverter.unbindDomElement(t)}_diffNodeLists(t,e){return t=function(t,e){const n=Array.from(t);if(0==n.length||!e)return n;const o=n[n.length-1];o==e&&n.pop();return n}(t,this._fakeSelectionContainer),k(t,e,Ua.bind(null,this.domConverter))}_findUpdateActions(t,e,n,o){if(-1===t.indexOf("insert")||-1===t.indexOf("delete"))return t;let i=[],r=[],s=[];const a={equal:0,insert:0,delete:0};for(const c of t)"insert"===c?s.push(n[a.equal+a.insert]):"delete"===c?r.push(e[a.equal+a.delete]):(i=i.concat(k(r,s,o).map((t=>"equal"===t?"update":t))),i.push("equal"),r=[],s=[]),a[c]++;return i.concat(k(r,s,o).map((t=>"equal"===t?"update":t)))}_markDescendantTextToSync(t){if(t)if(t.is("$text"))this.markedTexts.add(t);else if(t.is("element"))for(const e of t.getChildren())this._markDescendantTextToSync(e)}_updateSelection(){if(i.isBlink&&!i.isAndroid&&this.isSelecting&&!this.markedChildren.size)return;if(0===this.selection.rangeCount)return this._removeDomSelection(),void this._removeFakeSelection();const t=this.domConverter.mapViewToDom(this.selection.editableElement);this.isFocused&&t&&(this.selection.isFake?this._updateFakeSelection(t):this._fakeSelectionContainer&&this._fakeSelectionContainer.isConnected?(this._removeFakeSelection(),this._updateDomSelection(t)):this.isComposing&&i.isAndroid||this._updateDomSelection(t))}_updateFakeSelection(t){const e=t.ownerDocument;this._fakeSelectionContainer||(this._fakeSelectionContainer=function(t){const e=t.createElement("div");return e.className="ck-fake-selection-container",Object.assign(e.style,{position:"fixed",top:0,left:"-9999px",width:"42px"}),e.textContent=" ",e}(e));const n=this._fakeSelectionContainer;if(this.domConverter.bindFakeSelection(n,this.selection),!this._fakeSelectionNeedsUpdate(t))return;n.parentElement&&n.parentElement==t||t.appendChild(n),n.textContent=this.selection.fakeSelectionLabel||" ";const o=e.getSelection(),i=e.createRange();o.removeAllRanges(),i.selectNodeContents(n),o.addRange(i)}_updateDomSelection(t){const e=t.ownerDocument.defaultView.getSelection();if(!this._domSelectionNeedsUpdate(e))return;const n=this.domConverter.viewPositionToDom(this.selection.anchor),o=this.domConverter.viewPositionToDom(this.selection.focus);e.setBaseAndExtent(n.parent,n.offset,o.parent,o.offset),i.isGecko&&function(t,e){let n=t.parent,o=t.offset;qo(n)&&Va(n)&&(o=ti(n)+1,n=n.parentNode);if(n.nodeType!=Node.ELEMENT_NODE||o!=n.childNodes.length-1)return;const i=n.childNodes[o];i&&"BR"==i.tagName&&e.addRange(e.getRangeAt(0))}(o,e)}_domSelectionNeedsUpdate(t){if(!this.domConverter.isDomSelectionCorrect(t))return!0;const e=t&&this.domConverter.domSelectionToView(t);return(!e||!this.selection.isEqual(e))&&!(!this.selection.isCollapsed&&this.selection.isSimilar(e))}_fakeSelectionNeedsUpdate(t){const e=this._fakeSelectionContainer,n=t.ownerDocument.getSelection();return!e||e.parentElement!==t||(n.anchorNode!==e&&!e.contains(n.anchorNode)||e.textContent!==this.selection.fakeSelectionLabel)}_removeDomSelection(){for(const t of this.domDocuments){const e=t.getSelection();if(e.rangeCount){const n=t.activeElement,o=this.domConverter.mapDomToView(n);n&&o&&e.removeAllRanges()}}}_removeFakeSelection(){const t=this._fakeSelectionContainer;t&&t.remove()}_updateFocus(){if(this.isFocused){const t=this.selection.editableElement;t&&this.domConverter.focus(t)}}}function Wa(t,e,n){const o=e instanceof Array?e:e.childNodes,i=o[n];if(qo(i))return i.data=Fa+i.data,i;{const i=t.createTextNode(Fa);return Array.isArray(e)?o.splice(n,0,i):ei(e,n,i),i}}function Ga(t,e){return Po(t)&&Po(e)&&!qo(t)&&!qo(e)&&!ni(t)&&!ni(e)&&t.tagName.toLowerCase()===e.tagName.toLowerCase()}function Ka(t,e){return Po(t)&&Po(e)&&qo(t)&&qo(e)}function Ua(t,e,n){return e===n||(qo(e)&&qo(n)?e.data===n.data:!(!t.isBlockFiller(e)||!t.isBlockFiller(n)))}function $a(t,e){const n=t.data;if(n==e)return;const o=g(n,e);for(const e of o)"insert"===e.type?t.insertData(e.index,e.values.join("")):t.deleteData(e.index,e.howMany)}const Za=Ra(Oo.document),Ja=Pa(Oo.document),Ya=za(Oo.document),Qa="data-ck-unsafe-attribute-",Xa="data-ck-unsafe-element";class tc{document;renderingMode;blockFillerMode;preElements;blockElements;inlineObjectElements;unsafeElements;_domDocument;_domToViewMapping=new WeakMap;_viewToDomMapping=new WeakMap;_fakeSelectionMapping=new WeakMap;_rawContentElementMatcher=new ls;_inlineObjectElementMatcher=new ls;_elementsWithTemporaryCustomProperties=new Set;constructor(t,{blockFillerMode:e,renderingMode:n="editing"}={}){this.document=t,this.renderingMode=n,this.blockFillerMode=e||("editing"===n?"br":"nbsp"),this.preElements=["pre"],this.blockElements=["address","article","aside","blockquote","caption","center","dd","details","dir","div","dl","dt","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","legend","li","main","menu","nav","ol","p","pre","section","summary","table","tbody","td","tfoot","th","thead","tr","ul"],this.inlineObjectElements=["object","iframe","input","button","textarea","select","option","video","embed","audio","img","canvas"],this.unsafeElements=["script","style"],this._domDocument="editing"===this.renderingMode?Oo.document:Oo.document.implementation.createHTMLDocument("")}bindFakeSelection(t,e){this._fakeSelectionMapping.set(t,new ta(e))}fakeSelectionToView(t){return this._fakeSelectionMapping.get(t)}bindElements(t,e){this._domToViewMapping.set(t,e),this._viewToDomMapping.set(e,t)}unbindDomElement(t){const e=this._domToViewMapping.get(t);if(e){this._domToViewMapping.delete(t),this._viewToDomMapping.delete(e);for(const e of Array.from(t.children))this.unbindDomElement(e)}}bindDocumentFragments(t,e){this._domToViewMapping.set(t,e),this._viewToDomMapping.set(e,t)}shouldRenderAttribute(t,e,n){return"data"===this.renderingMode||!(t=t.toLowerCase()).startsWith("on")&&(("srcdoc"!==t||!e.match(/\bon\S+\s*=|javascript:|<\s*\/*script/i))&&("img"===n&&("src"===t||"srcset"===t)||("source"===n&&"srcset"===t||!e.match(/^\s*(javascript:|data:(image\/svg|text\/x?html))/i))))}setContentOf(t,e){if("data"===this.renderingMode)return void(t.innerHTML=e);const n=(new DOMParser).parseFromString(e,"text/html"),o=n.createDocumentFragment(),i=n.body.childNodes;for(;i.length>0;)o.appendChild(i[0]);const r=n.createTreeWalker(o,NodeFilter.SHOW_ELEMENT),s=[];let a;for(;a=r.nextNode();)s.push(a);for(const t of s){for(const e of t.getAttributeNames())this.setDomElementAttribute(t,e,t.getAttribute(e));const e=t.tagName.toLowerCase();this._shouldRenameElement(e)&&(ic(e),t.replaceWith(this._createReplacementDomElement(e,t)))}for(;t.firstChild;)t.firstChild.remove();t.append(o)}viewToDom(t,e={}){if(t.is("$text")){const e=this._processDataFromViewText(t);return this._domDocument.createTextNode(e)}{const n=t;if(this.mapViewToDom(n)){if(!n.getCustomProperty("editingPipeline:doNotReuseOnce"))return this.mapViewToDom(n);this._elementsWithTemporaryCustomProperties.add(n)}let o;if(n.is("documentFragment"))o=this._domDocument.createDocumentFragment(),e.bind&&this.bindDocumentFragments(o,n);else{if(n.is("uiElement"))return o="$comment"===n.name?this._domDocument.createComment(n.getCustomProperty("$rawContent")):n.render(this._domDocument,this),e.bind&&this.bindElements(o,n),o;this._shouldRenameElement(n.name)?(ic(n.name),o=this._createReplacementDomElement(n.name)):o=n.hasAttribute("xmlns")?this._domDocument.createElementNS(n.getAttribute("xmlns"),n.name):this._domDocument.createElement(n.name),n.is("rawElement")&&n.render(o,this),e.bind&&this.bindElements(o,n);for(const t of n.getAttributeKeys())this.setDomElementAttribute(o,t,n.getAttribute(t),n)}if(!1!==e.withChildren)for(const t of this.viewChildrenToDom(n,e))o instanceof HTMLTemplateElement?o.content.appendChild(t):o.appendChild(t);return o}}setDomElementAttribute(t,e,n,o){const i=this.shouldRenderAttribute(e,n,t.tagName.toLowerCase())||o&&o.shouldRenderUnsafeAttribute(e);i||E("domconverter-unsafe-attribute-detected",{domElement:t,key:e,value:n}),function(t){try{Oo.document.createAttribute(t)}catch(t){return!1}return!0}(e)?(t.hasAttribute(e)&&!i?t.removeAttribute(e):t.hasAttribute(Qa+e)&&i&&t.removeAttribute(Qa+e),t.setAttribute(i?e:Qa+e,n)):E("domconverter-invalid-attribute-detected",{domElement:t,key:e,value:n})}removeDomElementAttribute(t,e){e!=Xa&&(t.removeAttribute(e),t.removeAttribute(Qa+e))}*viewChildrenToDom(t,e={}){const n=t.getFillerOffset&&t.getFillerOffset();let o=0;for(const i of t.getChildren()){n===o&&(yield this._getBlockFiller());const t=i.is("element")&&!!i.getCustomProperty("dataPipeline:transparentRendering")&&!Xi(i.getAttributes());t&&"data"==this.renderingMode?yield*this.viewChildrenToDom(i,e):(t&&E("domconverter-transparent-rendering-unsupported-in-editing-pipeline",{viewElement:i}),yield this.viewToDom(i,e)),o++}n===o&&(yield this._getBlockFiller())}viewRangeToDom(t){const e=this.viewPositionToDom(t.start),n=this.viewPositionToDom(t.end),o=this._domDocument.createRange();return o.setStart(e.parent,e.offset),o.setEnd(n.parent,n.offset),o}viewPositionToDom(t){const e=t.parent;if(e.is("$text")){const n=this.findCorrespondingDomText(e);if(!n)return null;let o=t.offset;return Ma(n)&&(o+=La),{parent:n,offset:o}}{let n,o,i;if(0===t.offset){if(n=this.mapViewToDom(e),!n)return null;i=n.childNodes[0]}else{const e=t.nodeBefore;if(o=e.is("$text")?this.findCorrespondingDomText(e):this.mapViewToDom(e),!o)return null;n=o.parentNode,i=o.nextSibling}if(qo(i)&&Ma(i))return{parent:i,offset:La};return{parent:n,offset:o?ti(o)+1:0}}}domToView(t,e={}){const n=[],o=this._domToView(t,e,n),i=o.next().value;return i?(o.next(),this._processDomInlineNodes(null,n,e),i.is("$text")&&0==i.data.length?null:i):null}*domChildrenToView(t,e={},n=[]){let o=[];o=t instanceof HTMLTemplateElement?[...t.content.childNodes]:[...t.childNodes];for(let i=0;i{const{scrollLeft:e,scrollTop:n}=t;o.push([e,n])})),e.focus(),nc(e,(t=>{const[e,n]=o.shift();t.scrollLeft=e,t.scrollTop=n})),Oo.window.scrollTo(t,n)}}_clearDomSelection(){const t=this.mapViewToDom(this.document.selection.editableElement);if(!t)return;const e=t.ownerDocument.defaultView.getSelection(),n=this.domSelectionToView(e);n&&n.rangeCount>0&&e.removeAllRanges()}isElement(t){return t&&t.nodeType==Node.ELEMENT_NODE}isDocumentFragment(t){return t&&t.nodeType==Node.DOCUMENT_FRAGMENT_NODE}isBlockFiller(t){return"br"==this.blockFillerMode?t.isEqualNode(Za):!("BR"!==t.tagName||!oc(t,this.blockElements)||1!==t.parentNode.childNodes.length)||(t.isEqualNode(Ya)||function(t,e){const n=t.isEqualNode(Ja);return n&&oc(t,e)&&1===t.parentNode.childNodes.length}(t,this.blockElements))}isDomSelectionBackward(t){if(t.isCollapsed)return!1;const e=this._domDocument.createRange();try{e.setStart(t.anchorNode,t.anchorOffset),e.setEnd(t.focusNode,t.focusOffset)}catch(t){return!1}const n=e.collapsed;return e.detach(),n}getHostViewElement(t){const e=function(t){const e=[];let n=t;for(;n&&n.nodeType!=Node.DOCUMENT_NODE;)e.unshift(n),n=n.parentNode;return e}(t);for(e.pop();e.length;){const t=e.pop(),n=this._domToViewMapping.get(t);if(n&&(n.is("uiElement")||n.is("rawElement")))return n}return null}isDomSelectionCorrect(t){return this._isDomSelectionPositionCorrect(t.anchorNode,t.anchorOffset)&&this._isDomSelectionPositionCorrect(t.focusNode,t.focusOffset)}registerRawContentMatcher(t){this._rawContentElementMatcher.add(t)}registerInlineObjectMatcher(t){this._inlineObjectElementMatcher.add(t)}_clearTemporaryCustomProperties(){for(const t of this._elementsWithTemporaryCustomProperties)t._removeCustomProperty("editingPipeline:doNotReuseOnce");this._elementsWithTemporaryCustomProperties.clear()}_getBlockFiller(){switch(this.blockFillerMode){case"nbsp":return Pa(this._domDocument);case"markedNbsp":return za(this._domDocument);case"br":return Ra(this._domDocument)}}_isDomSelectionPositionCorrect(t,e){if(qo(t)&&Ma(t)&&e0?e[t-1]:null,c=t+1this.preElements.includes(t.name))))return e;if(" "==e.charAt(0)){const n=this._getTouchingInlineViewNode(t,!1);!(n&&n.is("$textProxy")&&this._nodeEndsWithSpace(n))&&n||(e=" "+e.substr(1))}if(" "==e.charAt(e.length-1)){const n=this._getTouchingInlineViewNode(t,!0),o=n&&n.is("$textProxy")&&" "==n.data.charAt(0);" "!=e.charAt(e.length-2)&&n&&!o||(e=e.substr(0,e.length-1)+" ")}return e.replace(/ {2}/g," ")}_nodeEndsWithSpace(t){if(t.getAncestors().some((t=>this.preElements.includes(t.name))))return!1;const e=this._processDataFromViewText(t);return" "==e.charAt(e.length-1)}_getTouchingInlineViewNode(t,e){const n=new Js({startPosition:e?Ys._createAfter(t):Ys._createBefore(t),direction:e?"forward":"backward"});for(const t of n){if(t.item.is("element","br"))return null;if(this._isInlineObjectElement(t.item))return t.item;if(t.item.is("containerElement"))return null;if(t.item.is("$textProxy"))return t.item}return null}_isBlockDomElement(t){return this.isElement(t)&&this.blockElements.includes(t.tagName.toLowerCase())}_isBlockViewElement(t){return t.is("element")&&this.blockElements.includes(t.name)}_isInlineObjectElement(t){return!!t.is("element")&&("br"==t.name||this.inlineObjectElements.includes(t.name)||!!this._inlineObjectElementMatcher.match(t))}_createViewElement(t,e){if(ni(t))return new pa(this.document,"$comment");const n=e.keepOriginalCase?t.tagName:t.tagName.toLowerCase();return new js(this.document,n)}_isViewElementWithRawContent(t,e){return!1!==e.withChildren&&t.is("element")&&!!this._rawContentElementMatcher.match(t)}_shouldRenameElement(t){const e=t.toLowerCase();return"editing"===this.renderingMode&&this.unsafeElements.includes(e)}_createReplacementDomElement(t,e){const n=this._domDocument.createElement("span");if(n.setAttribute(Xa,t),e){for(;e.firstChild;)n.appendChild(e.firstChild);for(const t of e.getAttributeNames())n.setAttribute(t,e.getAttribute(t))}return n}}function ec(t,e){return t.getAncestors().some((t=>t.is("element")&&e.includes(t.name)))}function nc(t,e){let n=t;for(;n;)e(n),n=n.parentElement}function oc(t,e){const n=t.parentNode;return!!n&&!!n.tagName&&e.includes(n.tagName.toLowerCase())}function ic(t){"script"===t&&E("domconverter-unsafe-script-element-detected"),"style"===t&&E("domconverter-unsafe-style-element-detected")}class rc extends(Lo()){view;document;_isEnabled=!1;constructor(t){super(),this.view=t,this.document=t.document}get isEnabled(){return this._isEnabled}enable(){this._isEnabled=!0}disable(){this._isEnabled=!1}destroy(){this.disable(),this.stopListening()}checkShouldIgnoreEventFromTarget(t){return t&&3===t.nodeType&&(t=t.parentNode),!(!t||1!==t.nodeType)&&t.matches("[data-cke-ignore-events], [data-cke-ignore-events] *")}}const sc=Ki((function(t,e){Re(e,bn(e),t)}));class ac{view;document;domEvent;domTarget;constructor(t,e,n){this.view=t,this.document=t.document,this.domEvent=e,this.domTarget=e.target,sc(this,n)}get target(){return this.view.domConverter.mapDomToView(this.domTarget)}preventDefault(){this.domEvent.preventDefault()}stopPropagation(){this.domEvent.stopPropagation()}}class cc extends rc{useCapture=!1;observe(t){("string"==typeof this.domEventType?[this.domEventType]:this.domEventType).forEach((e=>{this.listenTo(t,e,((t,e)=>{this.isEnabled&&!this.checkShouldIgnoreEventFromTarget(e.target)&&this.onDomEvent(e)}),{useCapture:this.useCapture})}))}stopObserving(t){this.stopListening(t)}fire(t,e,n){this.isEnabled&&this.document.fire(t,new ac(this.view,e,n))}}class lc extends cc{domEventType=["keydown","keyup"];onDomEvent(t){const e={keyCode:t.keyCode,altKey:t.altKey,ctrlKey:t.ctrlKey,shiftKey:t.shiftKey,metaKey:t.metaKey,get keystroke(){return Ci(this)}};this.fire(t.type,t,e)}}const dc=function(){return ct.Date.now()};var hc=/\s/;const uc=function(t){for(var e=t.length;e--&&hc.test(t.charAt(e)););return e};var mc=/^\s+/;const gc=function(t){return t?t.slice(0,uc(t)+1).replace(mc,""):t};var pc=/^[-+]0x[0-9a-f]+$/i,fc=/^0b[01]+$/i,kc=/^0o[0-7]+$/i,bc=parseInt;const wc=function(t){if("number"==typeof t)return t;if(us(t))return NaN;if(j(t)){var e="function"==typeof t.valueOf?t.valueOf():t;t=j(e)?e+"":e}if("string"!=typeof t)return 0===t?t:+t;t=gc(t);var n=fc.test(t);return n||kc.test(t)?bc(t.slice(2),n?2:8):pc.test(t)?NaN:+t};var _c=Math.max,Ac=Math.min;const Cc=function(t,e,n){var o,i,r,s,a,c,l=0,d=!1,h=!1,u=!0;if("function"!=typeof t)throw new TypeError("Expected a function");function m(e){var n=o,r=i;return o=i=void 0,l=e,s=t.apply(r,n)}function g(t){var n=t-c;return void 0===c||n>=e||n<0||h&&t-l>=r}function p(){var t=dc();if(g(t))return f(t);a=setTimeout(p,function(t){var n=e-(t-c);return h?Ac(n,r-(t-l)):n}(t))}function f(t){return a=void 0,u&&o?m(t):(o=i=void 0,s)}function k(){var t=dc(),n=g(t);if(o=arguments,i=this,c=t,n){if(void 0===a)return function(t){return l=t,a=setTimeout(p,e),d?m(t):s}(c);if(h)return clearTimeout(a),a=setTimeout(p,e),m(c)}return void 0===a&&(a=setTimeout(p,e)),s}return e=wc(e)||0,j(n)&&(d=!!n.leading,r=(h="maxWait"in n)?_c(wc(n.maxWait)||0,e):r,u="trailing"in n?!!n.trailing:u),k.cancel=function(){void 0!==a&&clearTimeout(a),l=0,o=c=i=a=void 0},k.flush=function(){return void 0===a?s:f(dc())},k};class vc extends rc{_fireSelectionChangeDoneDebounced;constructor(t){super(t),this._fireSelectionChangeDoneDebounced=Cc((t=>{this.document.fire("selectionChangeDone",t)}),200)}observe(){const t=this.document;t.on("arrowKey",((e,n)=>{t.selection.isFake&&this.isEnabled&&n.preventDefault()}),{context:"$capture"}),t.on("arrowKey",((e,n)=>{t.selection.isFake&&this.isEnabled&&this._handleSelectionMove(n.keyCode)}),{priority:"lowest"})}stopObserving(){}destroy(){super.destroy(),this._fireSelectionChangeDoneDebounced.cancel()}_handleSelectionMove(t){const e=this.document.selection,n=new ta(e.getRanges(),{backward:e.isBackward,fake:!1});t!=_i.arrowleft&&t!=_i.arrowup||n.setTo(n.getFirstPosition()),t!=_i.arrowright&&t!=_i.arrowdown||n.setTo(n.getLastPosition());const o={oldSelection:e,newSelection:n,domSelection:null};this.document.fire("selectionChange",o),this._fireSelectionChangeDoneDebounced(o)}}const yc=function(t){return this.__data__.set(t,"__lodash_hash_undefined__"),this};const xc=function(t){return this.__data__.has(t)};function Ec(t){var e=-1,n=null==t?0:t.length;for(this.__data__=new xe;++ea))return!1;var l=r.get(t),d=r.get(e);if(l&&d)return l==e&&d==t;var h=-1,u=!0,m=2&n?new Dc:void 0;for(r.set(t,e),r.set(e,t);++h{this._isFocusChanging=!0,this._renderTimeoutId=setTimeout((()=>{this.flush(),t.change((()=>{}))}),50)})),e.on("blur",((n,o)=>{const i=e.selection.editableElement;null!==i&&i!==o.target||(e.isFocused=!1,this._isFocusChanging=!1,t.change((()=>{})))}))}flush(){this._isFocusChanging&&(this._isFocusChanging=!1,this.document.isFocused=!0)}onDomEvent(t){this.fire(t.type,t)}destroy(){this._renderTimeoutId&&clearTimeout(this._renderTimeoutId),super.destroy()}}class $c extends rc{mutationObserver;focusObserver;selection;domConverter;_documents;_fireSelectionChangeDoneDebounced;_clearInfiniteLoopInterval;_documentIsSelectingInactivityTimeoutDebounced;_loopbackCounter;constructor(t){super(t),this.mutationObserver=t.getObserver(Gc),this.focusObserver=t.getObserver(Uc),this.selection=this.document.selection,this.domConverter=t.domConverter,this._documents=new WeakSet,this._fireSelectionChangeDoneDebounced=Cc((t=>{this.document.fire("selectionChangeDone",t)}),200),this._clearInfiniteLoopInterval=setInterval((()=>this._clearInfiniteLoop()),1e3),this._documentIsSelectingInactivityTimeoutDebounced=Cc((()=>this.document.isSelecting=!1),5e3),this._loopbackCounter=0}observe(t){const e=t.ownerDocument,n=()=>{this.document.isSelecting&&(this._handleSelectionChange(null,e),this.document.isSelecting=!1,this._documentIsSelectingInactivityTimeoutDebounced.cancel())};this.listenTo(t,"selectstart",(()=>{this.document.isSelecting=!0,this._documentIsSelectingInactivityTimeoutDebounced()}),{priority:"highest"}),this.listenTo(t,"keydown",n,{priority:"highest",useCapture:!0}),this.listenTo(t,"keyup",n,{priority:"highest",useCapture:!0}),this._documents.has(e)||(this.listenTo(e,"mouseup",n,{priority:"highest",useCapture:!0}),this.listenTo(e,"selectionchange",((t,n)=>{this.document.isComposing&&!i.isAndroid||(this._handleSelectionChange(n,e),this._documentIsSelectingInactivityTimeoutDebounced())})),this._documents.add(e))}stopObserving(t){this.stopListening(t)}destroy(){super.destroy(),clearInterval(this._clearInfiniteLoopInterval),this._fireSelectionChangeDoneDebounced.cancel(),this._documentIsSelectingInactivityTimeoutDebounced.cancel()}_reportInfiniteLoop(){}_handleSelectionChange(t,e){if(!this.isEnabled)return;const n=e.defaultView.getSelection();if(this.checkShouldIgnoreEventFromTarget(n.anchorNode))return;this.mutationObserver.flush();const o=this.domConverter.domSelectionToView(n);if(0!=o.rangeCount){if(this.view.hasDomSelection=!0,this.focusObserver.flush(),!this.selection.isEqual(o)||!this.domConverter.isDomSelectionCorrect(n))if(++this._loopbackCounter>60)this._reportInfiniteLoop();else if(this.selection.isSimilar(o))this.view.forceRender();else{const t={oldSelection:this.selection,newSelection:o,domSelection:n};this.document.fire("selectionChange",t),this._fireSelectionChangeDoneDebounced(t)}}else this.view.hasDomSelection=!1}_clearInfiniteLoop(){this._loopbackCounter=0}}class Zc extends cc{domEventType=["compositionstart","compositionupdate","compositionend"];constructor(t){super(t);const e=this.document;e.on("compositionstart",(()=>{e.isComposing=!0}),{priority:"low"}),e.on("compositionend",(()=>{e.isComposing=!1}),{priority:"low"})}onDomEvent(t){this.fire(t.type,t,{data:t.data})}}class Jc{_files;_native;constructor(t,e={}){this._files=e.cacheFiles?Yc(t):null,this._native=t}get files(){return this._files||(this._files=Yc(this._native)),this._files}get types(){return this._native.types}getData(t){return this._native.getData(t)}setData(t,e){this._native.setData(t,e)}set effectAllowed(t){this._native.effectAllowed=t}get effectAllowed(){return this._native.effectAllowed}set dropEffect(t){this._native.dropEffect=t}get dropEffect(){return this._native.dropEffect}setDragImage(t,e,n){this._native.setDragImage(t,e,n)}get isCanceled(){return"none"==this._native.dropEffect||!!this._native.mozUserCancelled}}function Yc(t){const e=Array.from(t.files||[]),n=Array.from(t.items||[]);return e.length?e:n.filter((t=>"file"===t.kind)).map((t=>t.getAsFile()))}class Qc extends cc{domEventType="beforeinput";onDomEvent(t){const e=t.getTargetRanges(),n=this.view,o=n.document;let r=null,s=null,a=[];if(t.dataTransfer&&(r=new Jc(t.dataTransfer)),null!==t.data?s=t.data:r&&(s=r.getData("text/plain")),o.selection.isFake)a=Array.from(o.selection.getRanges());else if(e.length)a=e.map((t=>{const e=n.domConverter.domPositionToView(t.startContainer,t.startOffset),o=n.domConverter.domPositionToView(t.endContainer,t.endOffset);return e?n.createRange(e,o):o?n.createRange(o):void 0})).filter((t=>!!t));else if(i.isAndroid){const e=t.target.ownerDocument.defaultView.getSelection();a=Array.from(n.domConverter.domSelectionToView(e).getRanges())}if(i.isAndroid&&"insertCompositionText"==t.inputType&&s&&s.endsWith("\n"))this.fire(t.type,t,{inputType:"insertParagraph",targetRanges:[n.createRange(a[0].end)]});else if("insertText"==t.inputType&&s&&s.includes("\n")){const e=s.split(/\n{1,2}/g);let n=a;for(let i=0;i{if(this.isEnabled&&((n=e.keyCode)==_i.arrowright||n==_i.arrowleft||n==_i.arrowup||n==_i.arrowdown)){const n=new na(this.document,"arrowKey",this.document.selection.getFirstRange());this.document.fire(n,e),n.stop.called&&t.stop()}var n}))}observe(){}stopObserving(){}}class tl extends rc{constructor(t){super(t);const e=this.document;e.on("keydown",((t,n)=>{if(!this.isEnabled||n.keyCode!=_i.tab||n.ctrlKey)return;const o=new na(e,"tab",e.selection.getFirstRange());e.fire(o,n),o.stop.called&&t.stop()}))}observe(){}stopObserving(){}}const el=function(t){return Eo(t,5)};class nl extends(J()){document;domConverter;domRoots=new Map;_renderer;_initialDomRootAttributes=new WeakMap;_observers=new Map;_writer;_ongoingChange=!1;_postFixersInProgress=!1;_renderingDisabled=!1;_hasChangedSinceTheLastRendering=!1;constructor(t){super(),this.document=new la(t),this.domConverter=new tc(this.document),this.set("isRenderingInProgress",!1),this.set("hasDomSelection",!1),this._renderer=new ja(this.domConverter,this.document.selection),this._renderer.bind("isFocused","isSelecting","isComposing").to(this.document,"isFocused","isSelecting","isComposing"),this._writer=new Aa(this.document),this.addObserver(Gc),this.addObserver(Uc),this.addObserver($c),this.addObserver(lc),this.addObserver(vc),this.addObserver(Zc),this.addObserver(Xc),this.addObserver(Qc),this.addObserver(tl),this.document.on("arrowKey",Na,{priority:"low"}),fa(this),this.on("render",(()=>{this._render(),this.document.fire("layoutChanged"),this._hasChangedSinceTheLastRendering=!1})),this.listenTo(this.document.selection,"change",(()=>{this._hasChangedSinceTheLastRendering=!0})),this.listenTo(this.document,"change:isFocused",(()=>{this._hasChangedSinceTheLastRendering=!0})),i.isiOS&&this.listenTo(this.document,"blur",((t,e)=>{this.domConverter.mapDomToView(e.domEvent.relatedTarget)||this.domConverter._clearDomSelection()}))}attachDomRoot(t,e="main"){const n=this.document.getRoot(e);n._name=t.tagName.toLowerCase();const o={};for(const{name:e,value:i}of Array.from(t.attributes))o[e]=i,"class"===e?this._writer.addClass(i.split(" "),n):this._writer.setAttribute(e,i,n);this._initialDomRootAttributes.set(t,o);const i=()=>{this._writer.setAttribute("contenteditable",(!n.isReadOnly).toString(),n),n.isReadOnly?this._writer.addClass("ck-read-only",n):this._writer.removeClass("ck-read-only",n)};i(),this.domRoots.set(e,t),this.domConverter.bindElements(t,n),this._renderer.markToSync("children",n),this._renderer.markToSync("attributes",n),this._renderer.domDocuments.add(t.ownerDocument),n.on("change:children",((t,e)=>this._renderer.markToSync("children",e))),n.on("change:attributes",((t,e)=>this._renderer.markToSync("attributes",e))),n.on("change:text",((t,e)=>this._renderer.markToSync("text",e))),n.on("change:isReadOnly",(()=>this.change(i))),n.on("change",(()=>{this._hasChangedSinceTheLastRendering=!0}));for(const n of this._observers.values())n.observe(t,e)}detachDomRoot(t){const e=this.domRoots.get(t);Array.from(e.attributes).forEach((({name:t})=>e.removeAttribute(t)));const n=this._initialDomRootAttributes.get(e);for(const t in n)e.setAttribute(t,n[t]);this.domRoots.delete(t),this.domConverter.unbindDomElement(e);for(const t of this._observers.values())t.stopObserving(e)}getDomRoot(t="main"){return this.domRoots.get(t)}addObserver(t){let e=this._observers.get(t);if(e)return e;e=new t(this),this._observers.set(t,e);for(const[t,n]of this.domRoots)e.observe(n,t);return e.enable(),e}getObserver(t){return this._observers.get(t)}disableObservers(){for(const t of this._observers.values())t.disable()}enableObservers(){for(const t of this._observers.values())t.enable()}scrollToTheSelection({alignToTop:t,forceScroll:e,viewportOffset:n=20,ancestorOffset:o=20}={}){const i=this.document.selection.getFirstRange();if(!i)return;const r=el({alignToTop:t,forceScroll:e,viewportOffset:n,ancestorOffset:o});"number"==typeof n&&(n={top:n,bottom:n,left:n,right:n});const s={target:this.domConverter.viewRangeToDom(i),viewportOffset:n,ancestorOffset:o,alignToTop:t,forceScroll:e};this.fire("scrollToTheSelection",s,r),function({target:t,viewportOffset:e=0,ancestorOffset:n=0,alignToTop:o,forceScroll:i}){const r=gi(t);let s=r,a=null;for(e=function(t){return"number"==typeof t?{top:t,bottom:t,left:t,right:t}:t}(e);s;){let c;c=pi(s==r?t:a),li({parent:c,getRect:()=>fi(t,s),alignToTop:o,ancestorOffset:n,forceScroll:i});const l=fi(t,s);if(ci({window:s,rect:l,viewportOffset:e,alignToTop:o,forceScroll:i}),s.parent!=s){if(a=s.frameElement,s=s.parent,!a)return}else s=null}}(s)}focus(){if(!this.document.isFocused){const t=this.document.selection.editableElement;t&&(this.domConverter.focus(t),this.forceRender())}}change(t){if(this.isRenderingInProgress||this._postFixersInProgress)throw new x("cannot-change-view-tree",this);try{if(this._ongoingChange)return t(this._writer);this._ongoingChange=!0;const e=t(this._writer);return this._ongoingChange=!1,!this._renderingDisabled&&this._hasChangedSinceTheLastRendering&&(this._postFixersInProgress=!0,this.document._callPostFixers(this._writer),this._postFixersInProgress=!1,this.fire("render")),e}catch(t){x.rethrowUnexpectedError(t,this)}}forceRender(){this._hasChangedSinceTheLastRendering=!0,this.getObserver(Uc).flush(),this.change((()=>{}))}destroy(){for(const t of this._observers.values())t.destroy();this.document.destroy(),this.stopListening()}createPositionAt(t,e){return Ys._createAt(t,e)}createPositionAfter(t){return Ys._createAfter(t)}createPositionBefore(t){return Ys._createBefore(t)}createRange(t,e){return new Qs(t,e)}createRangeOn(t){return Qs._createOn(t)}createRangeIn(t){return Qs._createIn(t)}createSelection(...t){return new ta(...t)}_disableRendering(t){this._renderingDisabled=t,0==t&&this.change((()=>{}))}_render(){this.isRenderingInProgress=!0,this.disableObservers(),this._renderer.render(),this.enableObservers(),this.isRenderingInProgress=!1}}class ol{is(){throw new Error("is() method is abstract")}}class il extends ol{parent=null;_attrs;constructor(t){super(),this._attrs=nr(t)}get document(){return null}get index(){let t;if(!this.parent)return null;if(null===(t=this.parent.getChildIndex(this)))throw new x("model-node-not-found-in-parent",this);return t}get startOffset(){let t;if(!this.parent)return null;if(null===(t=this.parent.getChildStartOffset(this)))throw new x("model-node-not-found-in-parent",this);return t}get offsetSize(){return 1}get endOffset(){return this.parent?this.startOffset+this.offsetSize:null}get nextSibling(){const t=this.index;return null!==t&&this.parent.getChild(t+1)||null}get previousSibling(){const t=this.index;return null!==t&&this.parent.getChild(t-1)||null}get root(){let t=this;for(;t.parent;)t=t.parent;return t}isAttached(){return null!==this.parent&&this.root.isAttached()}getPath(){const t=[];let e=this;for(;e.parent;)t.unshift(e.startOffset),e=e.parent;return t}getAncestors(t={}){const e=[];let n=t.includeSelf?this:this.parent;for(;n;)e[t.parentFirst?"push":"unshift"](n),n=n.parent;return e}getCommonAncestor(t,e={}){const n=this.getAncestors(e),o=t.getAncestors(e);let i=0;for(;n[i]==o[i]&&n[i];)i++;return 0===i?null:n[i-1]}isBefore(t){if(this==t)return!1;if(this.root!==t.root)return!1;const e=this.getPath(),n=t.getPath(),o=it(e,n);switch(o){case"prefix":return!0;case"extension":return!1;default:return e[o](t[e[0]]=e[1],t)),{})),t}_clone(t){return new this.constructor(this._attrs)}_remove(){this.parent._removeChildren(this.index)}_setAttribute(t,e){this._attrs.set(t,e)}_setAttributesTo(t){this._attrs=nr(t)}_removeAttribute(t){return this._attrs.delete(t)}_clearAttributes(){this._attrs.clear()}}il.prototype.is=function(t){return"node"===t||"model:node"===t};class rl{_nodes=[];constructor(t){t&&this._insertNodes(0,t)}[Symbol.iterator](){return this._nodes[Symbol.iterator]()}get length(){return this._nodes.length}get maxOffset(){return this._nodes.reduce(((t,e)=>t+e.offsetSize),0)}getNode(t){return this._nodes[t]||null}getNodeIndex(t){const e=this._nodes.indexOf(t);return-1==e?null:e}getNodeStartOffset(t){const e=this.getNodeIndex(t);return null===e?null:this._nodes.slice(0,e).reduce(((t,e)=>t+e.offsetSize),0)}indexToOffset(t){if(t==this._nodes.length)return this.maxOffset;const e=this._nodes[t];if(!e)throw new x("model-nodelist-index-out-of-bounds",this);return this.getNodeStartOffset(e)}offsetToIndex(t){let e=0;for(const n of this._nodes){if(t>=e&&t1e4)return t.slice(0,n).concat(e).concat(t.slice(n+o,t.length));{const i=Array.from(t);return i.splice(n,o,...e),i}}(this._nodes,Array.from(e),t,0)}_removeNodes(t,e=1){return this._nodes.splice(t,e)}toJSON(){return this._nodes.map((t=>t.toJSON()))}}class sl extends il{_data;constructor(t,e){super(e),this._data=t||""}get offsetSize(){return this.data.length}get data(){return this._data}toJSON(){const t=super.toJSON();return t.data=this.data,t}_clone(){return new sl(this.data,this.getAttributes())}static fromJSON(t){return new sl(t.data,t.attributes)}}sl.prototype.is=function(t){return"$text"===t||"model:$text"===t||"text"===t||"model:text"===t||"node"===t||"model:node"===t};class al extends ol{textNode;data;offsetInText;constructor(t,e,n){if(super(),this.textNode=t,e<0||e>t.offsetSize)throw new x("model-textproxy-wrong-offsetintext",this);if(n<0||e+n>t.offsetSize)throw new x("model-textproxy-wrong-length",this);this.data=t.data.substring(e,e+n),this.offsetInText=e}get startOffset(){return null!==this.textNode.startOffset?this.textNode.startOffset+this.offsetInText:null}get offsetSize(){return this.data.length}get endOffset(){return null!==this.startOffset?this.startOffset+this.offsetSize:null}get isPartial(){return this.offsetSize!==this.textNode.offsetSize}get parent(){return this.textNode.parent}get root(){return this.textNode.root}getPath(){const t=this.textNode.getPath();return t.length>0&&(t[t.length-1]+=this.offsetInText),t}getAncestors(t={}){const e=[];let n=t.includeSelf?this:this.parent;for(;n;)e[t.parentFirst?"push":"unshift"](n),n=n.parent;return e}hasAttribute(t){return this.textNode.hasAttribute(t)}getAttribute(t){return this.textNode.getAttribute(t)}getAttributes(){return this.textNode.getAttributes()}getAttributeKeys(){return this.textNode.getAttributeKeys()}}al.prototype.is=function(t){return"$textProxy"===t||"model:$textProxy"===t||"textProxy"===t||"model:textProxy"===t};class cl extends il{name;_children=new rl;constructor(t,e,n){super(e),this.name=t,n&&this._insertChild(0,n)}get childCount(){return this._children.length}get maxOffset(){return this._children.maxOffset}get isEmpty(){return 0===this.childCount}getChild(t){return this._children.getNode(t)}getChildren(){return this._children[Symbol.iterator]()}getChildIndex(t){return this._children.getNodeIndex(t)}getChildStartOffset(t){return this._children.getNodeStartOffset(t)}offsetToIndex(t){return this._children.offsetToIndex(t)}getNodeByPath(t){let e=this;for(const n of t)e=e.getChild(e.offsetToIndex(n));return e}findAncestor(t,e={}){let n=e.includeSelf?this:this.parent;for(;n;){if(n.name===t)return n;n=n.parent}return null}toJSON(){const t=super.toJSON();if(t.name=this.name,this._children.length>0){t.children=[];for(const e of this._children)t.children.push(e.toJSON())}return t}_clone(t=!1){const e=t?Array.from(this._children).map((t=>t._clone(!0))):void 0;return new cl(this.name,this.getAttributes(),e)}_appendChild(t){this._insertChild(this.childCount,t)}_insertChild(t,e){const n=function(t){if("string"==typeof t)return[new sl(t)];rt(t)||(t=[t]);return Array.from(t).map((t=>"string"==typeof t?new sl(t):t instanceof al?new sl(t.data,t.getAttributes()):t))}(e);for(const t of n)null!==t.parent&&t._remove(),t.parent=this;this._children._insertNodes(t,n)}_removeChildren(t,e=1){const n=this._children._removeNodes(t,e);for(const t of n)t.parent=null;return n}static fromJSON(t){let e;if(t.children){e=[];for(const n of t.children)n.name?e.push(cl.fromJSON(n)):e.push(sl.fromJSON(n))}return new cl(t.name,t.attributes,e)}}cl.prototype.is=function(t,e){return e?e===this.name&&("element"===t||"model:element"===t):"element"===t||"model:element"===t||"node"===t||"model:node"===t};class ll{direction;boundaries;singleCharacters;shallow;ignoreElementEnd;_position;_boundaryStartParent;_boundaryEndParent;_visitedParent;constructor(t){if(!t||!t.boundaries&&!t.startPosition)throw new x("model-tree-walker-no-start-position",null);const e=t.direction||"forward";if("forward"!=e&&"backward"!=e)throw new x("model-tree-walker-unknown-direction",t,{direction:e});this.direction=e,this.boundaries=t.boundaries||null,t.startPosition?this._position=t.startPosition.clone():this._position=hl._createAt(this.boundaries["backward"==this.direction?"end":"start"]),this.position.stickiness="toNone",this.singleCharacters=!!t.singleCharacters,this.shallow=!!t.shallow,this.ignoreElementEnd=!!t.ignoreElementEnd,this._boundaryStartParent=this.boundaries?this.boundaries.start.parent:null,this._boundaryEndParent=this.boundaries?this.boundaries.end.parent:null,this._visitedParent=this.position.parent}[Symbol.iterator](){return this}get position(){return this._position}skip(t){let e,n,o,i;do{o=this.position,i=this._visitedParent,({done:e,value:n}=this.next())}while(!e&&t(n));e||(this._position=o,this._visitedParent=i)}next(){return"forward"==this.direction?this._next():this._previous()}_next(){const t=this.position,e=this.position.clone(),n=this._visitedParent;if(null===n.parent&&e.offset===n.maxOffset)return{done:!0,value:void 0};if(n===this._boundaryEndParent&&e.offset==this.boundaries.end.offset)return{done:!0,value:void 0};const o=ul(e,n),i=o||ml(e,n,o);if(i instanceof cl){if(this.shallow){if(this.boundaries&&this.boundaries.end.isBefore(e))return{done:!0,value:void 0};e.offset++}else e.path.push(0),this._visitedParent=i;return this._position=e,dl("elementStart",i,t,e,1)}if(i instanceof sl){let o;if(this.singleCharacters)o=1;else{let t=i.endOffset;this._boundaryEndParent==n&&this.boundaries.end.offsett&&(t=this.boundaries.start.offset),o=e.offset-t}const i=e.offset-r.startOffset,s=new al(r,i-o,o);return e.offset-=o,this._position=e,dl("text",s,t,e,o)}return e.path.pop(),this._position=e,this._visitedParent=n.parent,dl("elementStart",n,t,e,1)}}function dl(t,e,n,o,i){return{done:!1,value:{type:t,item:e,previousPosition:n,nextPosition:o,length:i}}}class hl extends ol{root;path;stickiness;constructor(t,e,n="toNone"){if(super(),!t.is("element")&&!t.is("documentFragment"))throw new x("model-position-root-invalid",t);if(!(e instanceof Array)||0===e.length)throw new x("model-position-path-incorrect-format",t,{path:e});t.is("rootElement")?e=e.slice():(e=[...t.getPath(),...e],t=t.root),this.root=t,this.path=e,this.stickiness=n}get offset(){return this.path[this.path.length-1]}set offset(t){this.path[this.path.length-1]=t}get parent(){let t=this.root;for(let e=0;e1)return!1;if(1===e)return pl(t,this,n);if(-1===e)return pl(this,t,n)}return this.path.length===t.path.length||(this.path.length>t.path.length?fl(this.path,e):fl(t.path,e))}hasSameParentAs(t){if(this.root!==t.root)return!1;return"same"==it(this.getParentPath(),t.getParentPath())}getTransformedByOperation(t){let e;switch(t.type){case"insert":e=this._getTransformedByInsertOperation(t);break;case"move":case"remove":case"reinsert":e=this._getTransformedByMoveOperation(t);break;case"split":e=this._getTransformedBySplitOperation(t);break;case"merge":e=this._getTransformedByMergeOperation(t);break;default:e=hl._createAt(this)}return e}_getTransformedByInsertOperation(t){return this._getTransformedByInsertion(t.position,t.howMany)}_getTransformedByMoveOperation(t){return this._getTransformedByMove(t.sourcePosition,t.targetPosition,t.howMany)}_getTransformedBySplitOperation(t){const e=t.movedRange;return e.containsPosition(this)||e.start.isEqual(this)&&"toNext"==this.stickiness?this._getCombined(t.splitPosition,t.moveTargetPosition):t.graveyardPosition?this._getTransformedByMove(t.graveyardPosition,t.insertionPosition,1):this._getTransformedByInsertion(t.insertionPosition,1)}_getTransformedByMergeOperation(t){const e=t.movedRange;let n;return e.containsPosition(this)||e.start.isEqual(this)?(n=this._getCombined(t.sourcePosition,t.targetPosition),t.sourcePosition.isBefore(t.targetPosition)&&(n=n._getTransformedByDeletion(t.deletionPosition,1))):n=this.isEqual(t.deletionPosition)?hl._createAt(t.deletionPosition):this._getTransformedByMove(t.deletionPosition,t.graveyardPosition,1),n}_getTransformedByDeletion(t,e){const n=hl._createAt(this);if(this.root!=t.root)return n;if("same"==it(t.getParentPath(),this.getParentPath())){if(t.offsetthis.offset)return null;n.offset-=e}}else if("prefix"==it(t.getParentPath(),this.getParentPath())){const o=t.path.length-1;if(t.offset<=this.path[o]){if(t.offset+e>this.path[o])return null;n.path[o]-=e}}return n}_getTransformedByInsertion(t,e){const n=hl._createAt(this);if(this.root!=t.root)return n;if("same"==it(t.getParentPath(),this.getParentPath()))(t.offset=e;){if(t.path[o]+i!==n.maxOffset)return!1;i=1,o--,n=n.parent}return!0}(t,n+1))}function fl(t,e){for(;ee+1;){const e=o.maxOffset-n.offset;0!==e&&t.push(new kl(n,n.getShiftedBy(e))),n.path=n.path.slice(0,-1),n.offset++,o=o.parent}for(;n.path.length<=this.end.path.length;){const e=this.end.path[n.path.length-1],o=e-n.offset;0!==o&&t.push(new kl(n,n.getShiftedBy(o))),n.offset=e,n.path.push(0)}return t}getWalker(t={}){return t.boundaries=this,new ll(t)}*getItems(t={}){t.boundaries=this,t.ignoreElementEnd=!0;const e=new ll(t);for(const t of e)yield t.item}*getPositions(t={}){t.boundaries=this;const e=new ll(t);yield e.position;for(const t of e)yield t.nextPosition}getTransformedByOperation(t){switch(t.type){case"insert":return this._getTransformedByInsertOperation(t);case"move":case"remove":case"reinsert":return this._getTransformedByMoveOperation(t);case"split":return[this._getTransformedBySplitOperation(t)];case"merge":return[this._getTransformedByMergeOperation(t)]}return[new kl(this.start,this.end)]}getTransformedByOperations(t){const e=[new kl(this.start,this.end)];for(const n of t)for(let t=0;t0?new this(n,o):new this(o,n)}static _createIn(t){return new this(hl._createAt(t,0),hl._createAt(t,t.maxOffset))}static _createOn(t){return this._createFromPositionAndShift(hl._createBefore(t),t.offsetSize)}static _createFromRanges(t){if(0===t.length)throw new x("range-create-from-ranges-empty-array",null);if(1==t.length)return t[0].clone();const e=t[0];t.sort(((t,e)=>t.start.isAfter(e.start)?1:-1));const n=t.indexOf(e),o=new this(e.start,e.end);if(n>0)for(let e=n-1;t[e].end.isEqual(o.start);e++)o.start=hl._createAt(t[e].start);for(let e=n+1;e{if(e.viewPosition)return;const n=this._modelToViewMapping.get(e.modelPosition.parent);if(!n)throw new x("mapping-model-position-view-parent-not-found",this,{modelPosition:e.modelPosition});e.viewPosition=this.findPositionIn(n,e.modelPosition.offset)}),{priority:"low"}),this.on("viewToModelPosition",((t,e)=>{if(e.modelPosition)return;const n=this.findMappedViewAncestor(e.viewPosition),o=this._viewToModelMapping.get(n),i=this._toModelOffset(e.viewPosition.parent,e.viewPosition.offset,n);e.modelPosition=hl._createAt(o,i)}),{priority:"low"})}bindElements(t,e){this._modelToViewMapping.set(t,e),this._viewToModelMapping.set(e,t)}unbindViewElement(t,e={}){const n=this.toModelElement(t);if(this._elementToMarkerNames.has(t))for(const e of this._elementToMarkerNames.get(t))this._unboundMarkerNames.add(e);e.defer?this._deferredBindingRemovals.set(t,t.root):(this._viewToModelMapping.delete(t),this._modelToViewMapping.get(n)==t&&this._modelToViewMapping.delete(n))}unbindModelElement(t){const e=this.toViewElement(t);this._modelToViewMapping.delete(t),this._viewToModelMapping.get(e)==t&&this._viewToModelMapping.delete(e)}bindElementToMarker(t,e){const n=this._markerNameToElements.get(e)||new Set;n.add(t);const o=this._elementToMarkerNames.get(t)||new Set;o.add(e),this._markerNameToElements.set(e,n),this._elementToMarkerNames.set(t,o)}unbindElementFromMarkerName(t,e){const n=this._markerNameToElements.get(e);n&&(n.delete(t),0==n.size&&this._markerNameToElements.delete(e));const o=this._elementToMarkerNames.get(t);o&&(o.delete(e),0==o.size&&this._elementToMarkerNames.delete(t))}flushUnboundMarkerNames(){const t=Array.from(this._unboundMarkerNames);return this._unboundMarkerNames.clear(),t}flushDeferredBindings(){for(const[t,e]of this._deferredBindingRemovals)t.root==e&&this.unbindViewElement(t);this._deferredBindingRemovals=new Map}clearBindings(){this._modelToViewMapping=new WeakMap,this._viewToModelMapping=new WeakMap,this._markerNameToElements=new Map,this._elementToMarkerNames=new Map,this._unboundMarkerNames=new Set,this._deferredBindingRemovals=new Map}toModelElement(t){return this._viewToModelMapping.get(t)}toViewElement(t){return this._modelToViewMapping.get(t)}toModelRange(t){return new kl(this.toModelPosition(t.start),this.toModelPosition(t.end))}toViewRange(t){return new Qs(this.toViewPosition(t.start),this.toViewPosition(t.end))}toModelPosition(t){const e={viewPosition:t,mapper:this};return this.fire("viewToModelPosition",e),e.modelPosition}toViewPosition(t,e={}){const n={modelPosition:t,mapper:this,isPhantom:e.isPhantom};return this.fire("modelToViewPosition",n),n.viewPosition}markerNameToElements(t){const e=this._markerNameToElements.get(t);if(!e)return null;const n=new Set;for(const t of e)if(t.is("attributeElement"))for(const e of t.getElementsWithSameId())n.add(e);else n.add(t);return n}registerViewToModelLength(t,e){this._viewToModelLengthCallbacks.set(t,e)}findMappedViewAncestor(t){let e=t.parent;for(;!this._viewToModelMapping.has(e);)e=e.parent;return e}_toModelOffset(t,e,n){if(n!=t){return this._toModelOffset(t.parent,t.index,n)+this._toModelOffset(t,e,t)}if(t.is("$text"))return e;let o=0;for(let n=0;n1?e[0]+":"+e[1]:e[0]}class Al extends(L()){_conversionApi;_firedEventsMap;constructor(t){super(),this._conversionApi={dispatcher:this,...t},this._firedEventsMap=new WeakMap}convertChanges(t,e,n){const o=this._createConversionApi(n,t.getRefreshedItems());for(const e of t.getMarkersToRemove())this._convertMarkerRemove(e.name,e.range,o);const i=this._reduceChanges(t.getChanges());for(const t of i)"insert"===t.type?this._convertInsert(kl._createFromPositionAndShift(t.position,t.length),o):"reinsert"===t.type?this._convertReinsert(kl._createFromPositionAndShift(t.position,t.length),o):"remove"===t.type?this._convertRemove(t.position,t.length,t.name,o):this._convertAttribute(t.range,t.attributeKey,t.attributeOldValue,t.attributeNewValue,o);o.mapper.flushDeferredBindings();for(const t of o.mapper.flushUnboundMarkerNames()){const n=e.get(t).getRange();this._convertMarkerRemove(t,n,o),this._convertMarkerAdd(t,n,o)}for(const e of t.getMarkersToAdd())this._convertMarkerAdd(e.name,e.range,o);o.consumable.verifyAllConsumed("insert")}convert(t,e,n,o={}){const i=this._createConversionApi(n,void 0,o);this._convertInsert(t,i);for(const[t,n]of e)this._convertMarkerAdd(t,n,i);i.consumable.verifyAllConsumed("insert")}convertSelection(t,e,n){const o=this._createConversionApi(n);this.fire("cleanSelection",{selection:t},o);const i=t.getFirstPosition().root;if(!o.mapper.toViewElement(i))return;const r=Array.from(e.getMarkersAtPosition(t.getFirstPosition()));if(this._addConsumablesForSelection(o.consumable,t,r),this.fire("selection",{selection:t},o),t.isCollapsed){for(const e of r)if(o.consumable.test(t,"addMarker:"+e.name)){const n=e.getRange();if(!Cl(t.getFirstPosition(),e,o.mapper))continue;const i={item:t,markerName:e.name,markerRange:n};this.fire(`addMarker:${e.name}`,i,o)}for(const e of t.getAttributeKeys())if(o.consumable.test(t,"attribute:"+e)){const n={item:t,range:t.getFirstRange(),attributeKey:e,attributeOldValue:null,attributeNewValue:t.getAttribute(e)};this.fire(`attribute:${e}:$text`,n,o)}}}_convertInsert(t,e,n={}){n.doNotAddConsumables||this._addConsumablesForInsert(e.consumable,t);for(const n of Array.from(t.getWalker({shallow:!0})).map(vl))this._testAndFire("insert",n,e)}_convertRemove(t,e,n,o){this.fire(`remove:${n}`,{position:t,length:e},o)}_convertAttribute(t,e,n,o,i){this._addConsumablesForRange(i.consumable,t,`attribute:${e}`);for(const r of t){const t={item:r.item,range:kl._createFromPositionAndShift(r.previousPosition,r.length),attributeKey:e,attributeOldValue:n,attributeNewValue:o};this._testAndFire(`attribute:${e}`,t,i)}}_convertReinsert(t,e){const n=Array.from(t.getWalker({shallow:!0}));this._addConsumablesForInsert(e.consumable,n);for(const t of n.map(vl))this._testAndFire("insert",{...t,reconversion:!0},e)}_convertMarkerAdd(t,e,n){if("$graveyard"==e.root.rootName)return;const o=`addMarker:${t}`;if(n.consumable.add(e,o),this.fire(o,{markerName:t,markerRange:e},n),n.consumable.consume(e,o)){this._addConsumablesForRange(n.consumable,e,o);for(const i of e.getItems()){if(!n.consumable.test(i,o))continue;const r={item:i,range:kl._createOn(i),markerName:t,markerRange:e};this.fire(o,r,n)}}}_convertMarkerRemove(t,e,n){"$graveyard"!=e.root.rootName&&this.fire(`removeMarker:${t}`,{markerName:t,markerRange:e},n)}_reduceChanges(t){const e={changes:t};return this.fire("reduceChanges",e),e.changes}_addConsumablesForInsert(t,e){for(const n of e){const e=n.item;if(null===t.test(e,"insert")){t.add(e,"insert");for(const n of e.getAttributeKeys())t.add(e,"attribute:"+n)}}return t}_addConsumablesForRange(t,e,n){for(const o of e.getItems())t.add(o,n);return t}_addConsumablesForSelection(t,e,n){t.add(e,"selection");for(const o of n)t.add(e,"addMarker:"+o.name);for(const n of e.getAttributeKeys())t.add(e,"attribute:"+n);return t}_testAndFire(t,e,n){const o=function(t,e){const n=e.item.is("element")?e.item.name:"$text";return`${t}:${n}`}(t,e),i=e.item.is("$textProxy")?n.consumable._getSymbolForTextProxy(e.item):e.item,r=this._firedEventsMap.get(n),s=r.get(i);if(s){if(s.has(o))return;s.add(o)}else r.set(i,new Set([o]));this.fire(o,e,n)}_testAndFireAddAttributes(t,e){const n={item:t,range:kl._createOn(t)};for(const t of n.item.getAttributeKeys())n.attributeKey=t,n.attributeOldValue=null,n.attributeNewValue=n.item.getAttribute(t),this._testAndFire(`attribute:${t}`,n,e)}_createConversionApi(t,e=new Set,n={}){const o={...this._conversionApi,consumable:new wl,writer:t,options:n,convertItem:t=>this._convertInsert(kl._createOn(t),o),convertChildren:t=>this._convertInsert(kl._createIn(t),o,{doNotAddConsumables:!0}),convertAttributes:t=>this._testAndFireAddAttributes(t,o),canReuseView:t=>!e.has(o.mapper.toModelElement(t))};return this._firedEventsMap.set(o,new Map),o}}function Cl(t,e,n){const o=e.getRange(),i=Array.from(t.getAncestors());i.shift(),i.reverse();return!i.some((t=>{if(o.containsItem(t)){return!!n.toViewElement(t).getCustomProperty("addHighlight")}}))}function vl(t){return{item:t.item,range:kl._createFromPositionAndShift(t.previousPosition,t.length)}}class yl extends(L(ol)){_lastRangeBackward=!1;_attrs=new Map;_ranges=[];constructor(...t){super(),t.length&&this.setTo(...t)}get anchor(){if(this._ranges.length>0){const t=this._ranges[this._ranges.length-1];return this._lastRangeBackward?t.end:t.start}return null}get focus(){if(this._ranges.length>0){const t=this._ranges[this._ranges.length-1];return this._lastRangeBackward?t.start:t.end}return null}get isCollapsed(){return 1===this._ranges.length&&this._ranges[0].isCollapsed}get rangeCount(){return this._ranges.length}get isBackward(){return!this.isCollapsed&&this._lastRangeBackward}isEqual(t){if(this.rangeCount!=t.rangeCount)return!1;if(0===this.rangeCount)return!0;if(!this.anchor.isEqual(t.anchor)||!this.focus.isEqual(t.focus))return!1;for(const e of this._ranges){let n=!1;for(const o of t._ranges)if(e.isEqual(o)){n=!0;break}if(!n)return!1}return!0}*getRanges(){for(const t of this._ranges)yield new kl(t.start,t.end)}getFirstRange(){let t=null;for(const e of this._ranges)t&&!e.start.isBefore(t.start)||(t=e);return t?new kl(t.start,t.end):null}getLastRange(){let t=null;for(const e of this._ranges)t&&!e.end.isAfter(t.end)||(t=e);return t?new kl(t.start,t.end):null}getFirstPosition(){const t=this.getFirstRange();return t?t.start.clone():null}getLastPosition(){const t=this.getLastRange();return t?t.end.clone():null}setTo(...t){let[e,n,o]=t;if("object"==typeof n&&(o=n,n=void 0),null===e)this._setRanges([]);else if(e instanceof yl)this._setRanges(e.getRanges(),e.isBackward);else if(e&&"function"==typeof e.getRanges)this._setRanges(e.getRanges(),e.isBackward);else if(e instanceof kl)this._setRanges([e],!!o&&!!o.backward);else if(e instanceof hl)this._setRanges([new kl(e)]);else if(e instanceof il){const t=!!o&&!!o.backward;let i;if("in"==n)i=kl._createIn(e);else if("on"==n)i=kl._createOn(e);else{if(void 0===n)throw new x("model-selection-setto-required-second-parameter",[this,e]);i=new kl(hl._createAt(e,n))}this._setRanges([i],t)}else{if(!rt(e))throw new x("model-selection-setto-not-selectable",[this,e]);this._setRanges(e,o&&!!o.backward)}}_setRanges(t,e=!1){const n=Array.from(t),o=n.some((e=>{if(!(e instanceof kl))throw new x("model-selection-set-ranges-not-range",[this,t]);return this._ranges.every((t=>!t.isEqual(e)))}));(n.length!==this._ranges.length||o)&&(this._replaceAllRanges(n),this._lastRangeBackward=!!e,this.fire("change:range",{directChange:!0}))}setFocus(t,e){if(null===this.anchor)throw new x("model-selection-setfocus-no-ranges",[this,t]);const n=hl._createAt(t,e);if("same"==n.compareWith(this.focus))return;const o=this.anchor;this._ranges.length&&this._popRange(),"before"==n.compareWith(o)?(this._pushRange(new kl(n,o)),this._lastRangeBackward=!0):(this._pushRange(new kl(o,n)),this._lastRangeBackward=!1),this.fire("change:range",{directChange:!0})}getAttribute(t){return this._attrs.get(t)}getAttributes(){return this._attrs.entries()}getAttributeKeys(){return this._attrs.keys()}hasAttribute(t){return this._attrs.has(t)}removeAttribute(t){this.hasAttribute(t)&&(this._attrs.delete(t),this.fire("change:attribute",{attributeKeys:[t],directChange:!0}))}setAttribute(t,e){this.getAttribute(t)!==e&&(this._attrs.set(t,e),this.fire("change:attribute",{attributeKeys:[t],directChange:!0}))}getSelectedElement(){return 1!==this.rangeCount?null:this.getFirstRange().getContainedElement()}*getSelectedBlocks(){const t=new WeakSet;for(const e of this.getRanges()){const n=Dl(e.start,t);Tl(n,e)&&(yield n);for(const n of e.getWalker()){const o=n.item;"elementEnd"==n.type&&El(o,t,e)&&(yield o)}const o=Dl(e.end,t);Sl(o,e)&&(yield o)}}containsEntireContent(t=this.anchor.root){const e=hl._createAt(t,0),n=hl._createAt(t,"end");return e.isTouching(this.getFirstPosition())&&n.isTouching(this.getLastPosition())}_pushRange(t){this._checkRange(t),this._ranges.push(new kl(t.start,t.end))}_checkRange(t){for(let e=0;e0;)this._popRange()}_popRange(){this._ranges.pop()}}function xl(t,e){return!e.has(t)&&(e.add(t),t.root.document.model.schema.isBlock(t)&&!!t.parent)}function El(t,e,n){return xl(t,e)&&Bl(t,n)}function Dl(t,e){const n=t.parent.root.document.model.schema,o=t.parent.getAncestors({parentFirst:!0,includeSelf:!0});let i=!1;const r=o.find((t=>!i&&(i=n.isLimit(t),!i&&xl(t,e))));return o.forEach((t=>e.add(t))),r}function Bl(t,e){const n=function(t){const e=t.root.document.model.schema;let n=t.parent;for(;n;){if(e.isBlock(n))return n;n=n.parent}}(t);if(!n)return!0;return!e.containsRange(kl._createOn(n),!0)}function Tl(t,e){return!!t&&(!(!e.isCollapsed&&!t.isEmpty)||!e.start.isTouching(hl._createAt(t,t.maxOffset))&&Bl(t,e))}function Sl(t,e){return!!t&&(!(!e.isCollapsed&&!t.isEmpty)||!e.end.isTouching(hl._createAt(t,0))&&Bl(t,e))}yl.prototype.is=function(t){return"selection"===t||"model:selection"===t};class Il extends(L(kl)){constructor(t,e){super(t,e),Pl.call(this)}detach(){this.stopListening()}toRange(){return new kl(this.start,this.end)}static fromRange(t){return new Il(t.start,t.end)}}function Pl(){this.listenTo(this.root.document.model,"applyOperation",((t,e)=>{const n=e[0];n.isDocumentOperation&&zl.call(this,n)}),{priority:"low"})}function zl(t){const e=this.getTransformedByOperation(t),n=kl._createFromRanges(e),o=!n.isEqual(this),i=function(t,e){switch(e.type){case"insert":return t.containsPosition(e.position);case"move":case"remove":case"reinsert":case"merge":return t.containsPosition(e.sourcePosition)||t.start.isEqual(e.sourcePosition)||t.containsPosition(e.targetPosition);case"split":return t.containsPosition(e.splitPosition)||t.containsPosition(e.insertionPosition)}return!1}(this,t);let r=null;if(o){"$graveyard"==n.root.rootName&&(r="remove"==t.type?t.sourcePosition:t.deletionPosition);const e=this.toRange();this.start=n.start,this.end=n.end,this.fire("change:range",e,{deletionPosition:r})}else i&&this.fire("change:content",this.toRange(),{deletionPosition:r})}Il.prototype.is=function(t){return"liveRange"===t||"model:liveRange"===t||"range"==t||"model:range"===t};const Rl="selection:";class Ll extends(L(ol)){_selection;constructor(t){super(),this._selection=new Fl(t),this._selection.delegate("change:range").to(this),this._selection.delegate("change:attribute").to(this),this._selection.delegate("change:marker").to(this)}get isCollapsed(){return this._selection.isCollapsed}get anchor(){return this._selection.anchor}get focus(){return this._selection.focus}get rangeCount(){return this._selection.rangeCount}get hasOwnRange(){return this._selection.hasOwnRange}get isBackward(){return this._selection.isBackward}get isGravityOverridden(){return this._selection.isGravityOverridden}get markers(){return this._selection.markers}get _ranges(){return this._selection._ranges}getRanges(){return this._selection.getRanges()}getFirstPosition(){return this._selection.getFirstPosition()}getLastPosition(){return this._selection.getLastPosition()}getFirstRange(){return this._selection.getFirstRange()}getLastRange(){return this._selection.getLastRange()}getSelectedBlocks(){return this._selection.getSelectedBlocks()}getSelectedElement(){return this._selection.getSelectedElement()}containsEntireContent(t){return this._selection.containsEntireContent(t)}destroy(){this._selection.destroy()}getAttributeKeys(){return this._selection.getAttributeKeys()}getAttributes(){return this._selection.getAttributes()}getAttribute(t){return this._selection.getAttribute(t)}hasAttribute(t){return this._selection.hasAttribute(t)}refresh(){this._selection.updateMarkers(),this._selection._updateAttributes(!1)}observeMarkers(t){this._selection.observeMarkers(t)}_setFocus(t,e){this._selection.setFocus(t,e)}_setTo(...t){this._selection.setTo(...t)}_setAttribute(t,e){this._selection.setAttribute(t,e)}_removeAttribute(t){this._selection.removeAttribute(t)}_getStoredAttributes(){return this._selection.getStoredAttributes()}_overrideGravity(){return this._selection.overrideGravity()}_restoreGravity(t){this._selection.restoreGravity(t)}static _getStoreAttributeKey(t){return Rl+t}static _isStoreAttributeKey(t){return t.startsWith(Rl)}}Ll.prototype.is=function(t){return"selection"===t||"model:selection"==t||"documentSelection"==t||"model:documentSelection"==t};class Fl extends yl{markers=new Qi({idProperty:"name"});_model;_document;_attributePriority=new Map;_selectionRestorePosition=null;_hasChangedRange=!1;_overriddenGravityRegister=new Set;_observedMarkers=new Set;constructor(t){super(),this._model=t.model,this._document=t,this.listenTo(this._model,"applyOperation",((t,e)=>{const n=e[0];n.isDocumentOperation&&"marker"!=n.type&&"rename"!=n.type&&"noop"!=n.type&&(0==this._ranges.length&&this._selectionRestorePosition&&this._fixGraveyardSelection(this._selectionRestorePosition),this._selectionRestorePosition=null,this._hasChangedRange&&(this._hasChangedRange=!1,this.fire("change:range",{directChange:!1})))}),{priority:"lowest"}),this.on("change:range",(()=>{this._validateSelectionRanges(this.getRanges())})),this.listenTo(this._model.markers,"update",((t,e,n,o)=>{this._updateMarker(e,o)})),this.listenTo(this._document,"change",((t,e)=>{!function(t,e){const n=t.document.differ;for(const o of n.getChanges()){if("insert"!=o.type)continue;const n=o.position.parent;o.length===n.maxOffset&&t.enqueueChange(e,(t=>{const e=Array.from(n.getAttributeKeys()).filter((t=>t.startsWith(Rl)));for(const o of e)t.removeAttribute(o,n)}))}}(this._model,e)}))}get isCollapsed(){return 0===this._ranges.length?this._document._getDefaultRange().isCollapsed:super.isCollapsed}get anchor(){return super.anchor||this._document._getDefaultRange().start}get focus(){return super.focus||this._document._getDefaultRange().end}get rangeCount(){return this._ranges.length?this._ranges.length:1}get hasOwnRange(){return this._ranges.length>0}get isGravityOverridden(){return!!this._overriddenGravityRegister.size}destroy(){for(let t=0;t{if(this._hasChangedRange=!0,e.root==this._document.graveyard){this._selectionRestorePosition=o.deletionPosition;const t=this._ranges.indexOf(e);this._ranges.splice(t,1),e.detach()}})),e}updateMarkers(){if(!this._observedMarkers.size)return;const t=[];let e=!1;for(const e of this._model.markers){const n=e.name.split(":",1)[0];if(!this._observedMarkers.has(n))continue;const o=e.getRange();for(const n of this.getRanges())o.containsRange(n,!n.isCollapsed)&&t.push(e)}const n=Array.from(this.markers);for(const n of t)this.markers.has(n)||(this.markers.add(n),e=!0);for(const n of Array.from(this.markers))t.includes(n)||(this.markers.remove(n),e=!0);e&&this.fire("change:marker",{oldMarkers:n,directChange:!1})}_updateMarker(t,e){const n=t.name.split(":",1)[0];if(!this._observedMarkers.has(n))return;let o=!1;const i=Array.from(this.markers),r=this.markers.has(t);if(e){let n=!1;for(const t of this.getRanges())if(e.containsRange(t,!t.isCollapsed)){n=!0;break}n&&!r?(this.markers.add(t),o=!0):!n&&r&&(this.markers.remove(t),o=!0)}else r&&(this.markers.remove(t),o=!0);o&&this.fire("change:marker",{oldMarkers:i,directChange:!1})}_updateAttributes(t){const e=nr(this._getSurroundingAttributes()),n=nr(this.getAttributes());if(t)this._attributePriority=new Map,this._attrs=new Map;else for(const[t,e]of this._attributePriority)"low"==e&&(this._attrs.delete(t),this._attributePriority.delete(t));this._setAttributesTo(e);const o=[];for(const[t,e]of this.getAttributes())n.has(t)&&n.get(t)===e||o.push(t);for(const[t]of n)this.hasAttribute(t)||o.push(t);o.length>0&&this.fire("change:attribute",{attributeKeys:o,directChange:!1})}_setAttribute(t,e,n=!0){const o=n?"normal":"low";if("low"==o&&"normal"==this._attributePriority.get(t))return!1;return super.getAttribute(t)!==e&&(this._attrs.set(t,e),this._attributePriority.set(t,o),!0)}_removeAttribute(t,e=!0){const n=e?"normal":"low";return("low"!=n||"normal"!=this._attributePriority.get(t))&&(this._attributePriority.set(t,n),!!super.hasAttribute(t)&&(this._attrs.delete(t),!0))}_setAttributesTo(t){const e=new Set;for(const[e,n]of this.getAttributes())t.get(e)!==n&&this._removeAttribute(e,!1);for(const[n,o]of t){this._setAttribute(n,o,!1)&&e.add(n)}return e}*getStoredAttributes(){const t=this.getFirstPosition().parent;if(this.isCollapsed&&t.isEmpty)for(const e of t.getAttributeKeys())if(e.startsWith(Rl)){const n=e.substr(10);yield[n,t.getAttribute(e)]}}_getSurroundingAttributes(){const t=this.getFirstPosition(),e=this._model.schema;if("$graveyard"==t.root.rootName)return null;let n=null;if(this.isCollapsed){const o=t.textNode?t.textNode:t.nodeBefore,i=t.textNode?t.textNode:t.nodeAfter;if(this.isGravityOverridden||(n=Ml(o,e)),n||(n=Ml(i,e)),!this.isGravityOverridden&&!n){let t=o;for(;t&&!n;)t=t.previousSibling,n=Ml(t,e)}if(!n){let t=i;for(;t&&!n;)t=t.nextSibling,n=Ml(t,e)}n||(n=this.getStoredAttributes())}else{const t=this.getFirstRange();for(const o of t){if(o.item.is("element")&&e.isObject(o.item)){n=Ml(o.item,e);break}if("text"==o.type){n=o.item.getAttributes();break}}}return n}_fixGraveyardSelection(t){const e=this._model.schema.getNearestSelectionRange(t);e&&this._pushRange(e)}}function Ml(t,e){if(!t)return null;if(t instanceof al||t instanceof sl)return t.getAttributes();if(!e.isInline(t))return null;if(!e.isObject(t))return[];const n=[];for(const[o,i]of t.getAttributes())e.checkAttribute("$text",o)&&!1!==e.getAttributeProperties(o).copyFromObject&&n.push([o,i]);return n}class Vl{_dispatchers;constructor(t){this._dispatchers=t}add(t){for(const e of this._dispatchers)t(e);return this}}class Ol extends Vl{elementToElement(t){return this.add(function(t){const e=Gl(t.model),n=Kl(t.view,"container");e.attributes.length&&(e.children=!0);return o=>{o.on(`insert:${e.name}`,ql(n,Yl(e)),{priority:t.converterPriority||"normal"}),(e.children||e.attributes.length)&&o.on("reduceChanges",Jl(e),{priority:"low"})}}(t))}elementToStructure(t){return this.add(function(t){const e=Gl(t.model),n=Kl(t.view,"container");return e.children=!0,o=>{if(o._conversionApi.schema.checkChild(e.name,"$text"))throw new x("conversion-element-to-structure-disallowed-text",o,{elementName:e.name});var i,r;o.on(`insert:${e.name}`,(i=n,r=Yl(e),(t,e,n)=>{if(!r(e.item,n.consumable,{preflight:!0}))return;const o=new Map;n.writer._registerSlotFactory(function(t,e,n){return(o,i)=>{const r=o.createContainerElement("$slot");let s=null;if("children"===i)s=Array.from(t.getChildren());else{if("function"!=typeof i)throw new x("conversion-slot-mode-unknown",n.dispatcher,{modeOrFilter:i});s=Array.from(t.getChildren()).filter((t=>i(t)))}return e.set(r,s),r}}(e.item,o,n));const s=i(e.item,n,e);if(n.writer._clearSlotFactory(),!s)return;!function(t,e,n){const o=Array.from(e.values()).flat(),i=new Set(o);if(i.size!=o.length)throw new x("conversion-slot-filter-overlap",n.dispatcher,{element:t});if(i.size!=t.childCount)throw new x("conversion-slot-filter-incomplete",n.dispatcher,{element:t})}(e.item,o,n),r(e.item,n.consumable);const a=n.mapper.toViewPosition(e.range.start);n.mapper.bindElements(e.item,s),n.writer.insert(a,s),n.convertAttributes(e.item),function(t,e,n,o){n.mapper.on("modelToViewPosition",s,{priority:"highest"});let i=null,r=null;for([i,r]of e)Ql(t,r,n,o),n.writer.move(n.writer.createRangeIn(i),n.writer.createPositionBefore(i)),n.writer.remove(i);function s(t,e){const n=e.modelPosition.nodeAfter,o=r.indexOf(n);o<0||(e.viewPosition=e.mapper.findPositionIn(i,o))}n.mapper.off("modelToViewPosition",s)}(s,o,n,{reconversion:e.reconversion})}),{priority:t.converterPriority||"normal"}),o.on("reduceChanges",Jl(e),{priority:"low"})}}(t))}attributeToElement(t){return this.add(function(t){t=el(t);let e=t.model;"string"==typeof e&&(e={key:e});let n=`attribute:${e.key}`;e.name&&(n+=":"+e.name);if(e.values)for(const n of e.values)t.view[n]=Kl(t.view[n],"attribute");else t.view=Kl(t.view,"attribute");const o=Ul(t);return e=>{e.on(n,Hl(o),{priority:t.converterPriority||"normal"})}}(t))}attributeToAttribute(t){return this.add(function(t){t=el(t);let e=t.model;"string"==typeof e&&(e={key:e});let n=`attribute:${e.key}`;e.name&&(n+=":"+e.name);if(e.values)for(const n of e.values)t.view[n]=$l(t.view[n]);else t.view=$l(t.view);const o=Ul(t);return e=>{var i;e.on(n,(i=o,(t,e,n)=>{if(!n.consumable.test(e.item,t.name))return;const o=i(e.attributeOldValue,n,e),r=i(e.attributeNewValue,n,e);if(!o&&!r)return;n.consumable.consume(e.item,t.name);const s=n.mapper.toViewElement(e.item),a=n.writer;if(!s)throw new x("conversion-attribute-to-attribute-on-text",n.dispatcher,e);if(null!==e.attributeOldValue&&o)if("class"==o.key){const t="string"==typeof o.value?o.value.split(/\s+/):o.value;for(const e of t)a.removeClass(e,s)}else if("style"==o.key)if("string"==typeof o.value){const t=new Os(a.document.stylesProcessor);t.setTo(o.value);for(const[e]of t.getStylesEntries())a.removeStyle(e,s)}else{const t=Object.keys(o.value);for(const e of t)a.removeStyle(e,s)}else a.removeAttribute(o.key,s);if(null!==e.attributeNewValue&&r)if("class"==r.key){const t="string"==typeof r.value?r.value.split(/\s+/):r.value;for(const e of t)a.addClass(e,s)}else if("style"==r.key)if("string"==typeof r.value){const t=new Os(a.document.stylesProcessor);t.setTo(r.value);for(const[e,n]of t.getStylesEntries())a.setStyle(e,n,s)}else{const t=Object.keys(r.value);for(const e of t)a.setStyle(e,r.value[e],s)}else a.setAttribute(r.key,r.value,s)}),{priority:t.converterPriority||"normal"})}}(t))}markerToElement(t){return this.add(function(t){const e=Kl(t.view,"ui");return n=>{n.on(`addMarker:${t.model}`,jl(e),{priority:t.converterPriority||"normal"}),n.on(`removeMarker:${t.model}`,((t,e,n)=>{const o=n.mapper.markerNameToElements(e.markerName);if(o){for(const t of o)n.mapper.unbindElementFromMarkerName(t,e.markerName),n.writer.clear(n.writer.createRangeOn(t),t);n.writer.clearClonedElementsGroup(e.markerName),t.stop()}}),{priority:t.converterPriority||"normal"})}}(t))}markerToHighlight(t){return this.add(function(t){return e=>{var n;e.on(`addMarker:${t.model}`,(n=t.view,(t,e,o)=>{if(!e.item)return;if(!(e.item instanceof yl||e.item instanceof Ll||e.item.is("$textProxy")))return;const i=Zl(n,e,o);if(!i)return;if(!o.consumable.consume(e.item,t.name))return;const r=o.writer,s=Nl(r,i),a=r.document.selection;if(e.item instanceof yl||e.item instanceof Ll)r.wrap(a.getFirstRange(),s);else{const t=o.mapper.toViewRange(e.range),n=r.wrap(t,s);for(const t of n.getItems())if(t.is("attributeElement")&&t.isSimilar(s)){o.mapper.bindElementToMarker(t,e.markerName);break}}}),{priority:t.converterPriority||"normal"}),e.on(`addMarker:${t.model}`,function(t){return(e,n,o)=>{if(!n.item)return;if(!(n.item instanceof cl))return;const i=Zl(t,n,o);if(!i)return;if(!o.consumable.test(n.item,e.name))return;const r=o.mapper.toViewElement(n.item);if(r&&r.getCustomProperty("addHighlight")){o.consumable.consume(n.item,e.name);for(const t of kl._createIn(n.item))o.consumable.consume(t.item,e.name);r.getCustomProperty("addHighlight")(r,i,o.writer),o.mapper.bindElementToMarker(r,n.markerName)}}}(t.view),{priority:t.converterPriority||"normal"}),e.on(`removeMarker:${t.model}`,function(t){return(e,n,o)=>{if(n.markerRange.isCollapsed)return;const i=Zl(t,n,o);if(!i)return;const r=Nl(o.writer,i),s=o.mapper.markerNameToElements(n.markerName);if(s){for(const t of s)if(o.mapper.unbindElementFromMarkerName(t,n.markerName),t.is("attributeElement"))o.writer.unwrap(o.writer.createRangeOn(t),r);else{t.getCustomProperty("removeHighlight")(t,i.id,o.writer)}o.writer.clearClonedElementsGroup(n.markerName),e.stop()}}}(t.view),{priority:t.converterPriority||"normal"})}}(t))}markerToData(t){return this.add(function(t){t=el(t);const e=t.model;let n=t.view;n||(n=n=>({group:e,name:n.substr(t.model.length+1)}));return o=>{var i;o.on(`addMarker:${e}`,(i=n,(t,e,n)=>{const o=i(e.markerName,n);if(!o)return;const r=e.markerRange;n.consumable.consume(r,t.name)&&(Wl(r,!1,n,e,o),Wl(r,!0,n,e,o),t.stop())}),{priority:t.converterPriority||"normal"}),o.on(`removeMarker:${e}`,function(t){return(e,n,o)=>{const i=t(n.markerName,o);if(!i)return;const r=o.mapper.markerNameToElements(n.markerName);if(r){for(const t of r)o.mapper.unbindElementFromMarkerName(t,n.markerName),t.is("containerElement")?(s(`data-${i.group}-start-before`,t),s(`data-${i.group}-start-after`,t),s(`data-${i.group}-end-before`,t),s(`data-${i.group}-end-after`,t)):o.writer.clear(o.writer.createRangeOn(t),t);o.writer.clearClonedElementsGroup(n.markerName),e.stop()}function s(t,e){if(e.hasAttribute(t)){const n=new Set(e.getAttribute(t).split(","));n.delete(i.name),0==n.size?o.writer.removeAttribute(t,e):o.writer.setAttribute(t,Array.from(n).join(","),e)}}}}(n),{priority:t.converterPriority||"normal"})}}(t))}}function Nl(t,e){const n=t.createAttributeElement("span",e.attributes);return e.classes&&n._addClass(e.classes),"number"==typeof e.priority&&(n._priority=e.priority),n._id=e.id,n}function Hl(t){return(e,n,o)=>{if(!o.consumable.test(n.item,e.name))return;const i=t(n.attributeOldValue,o,n),r=t(n.attributeNewValue,o,n);if(!i&&!r)return;o.consumable.consume(n.item,e.name);const s=o.writer,a=s.document.selection;if(n.item instanceof yl||n.item instanceof Ll)s.wrap(a.getFirstRange(),r);else{let t=o.mapper.toViewRange(n.range);null!==n.attributeOldValue&&i&&(t=s.unwrap(t,i)),null!==n.attributeNewValue&&r&&s.wrap(t,r)}}}function ql(t,e=td){return(n,o,i)=>{if(!e(o.item,i.consumable,{preflight:!0}))return;const r=t(o.item,i,o);if(!r)return;e(o.item,i.consumable);const s=i.mapper.toViewPosition(o.range.start);i.mapper.bindElements(o.item,r),i.writer.insert(s,r),i.convertAttributes(o.item),Ql(r,o.item.getChildren(),i,{reconversion:o.reconversion})}}function jl(t){return(e,n,o)=>{n.isOpening=!0;const i=t(n,o);n.isOpening=!1;const r=t(n,o);if(!i||!r)return;const s=n.markerRange;if(s.isCollapsed&&!o.consumable.consume(s,e.name))return;for(const t of s)if(!o.consumable.consume(t.item,e.name))return;const a=o.mapper,c=o.writer;c.insert(a.toViewPosition(s.start),i),o.mapper.bindElementToMarker(i,n.markerName),s.isCollapsed||(c.insert(a.toViewPosition(s.end),r),o.mapper.bindElementToMarker(r,n.markerName)),e.stop()}}function Wl(t,e,n,o,i){const r=e?t.start:t.end,s=r.nodeAfter&&r.nodeAfter.is("element")?r.nodeAfter:null,a=r.nodeBefore&&r.nodeBefore.is("element")?r.nodeBefore:null;if(s||a){let t,r;e&&s||!e&&!a?(t=s,r=!0):(t=a,r=!1);const c=n.mapper.toViewElement(t);if(c)return void function(t,e,n,o,i,r){const s=`data-${r.group}-${e?"start":"end"}-${n?"before":"after"}`,a=t.hasAttribute(s)?t.getAttribute(s).split(","):[];a.unshift(r.name),o.writer.setAttribute(s,a.join(","),t),o.mapper.bindElementToMarker(t,i.markerName)}(c,e,r,n,o,i)}!function(t,e,n,o,i){const r=`${i.group}-${e?"start":"end"}`,s=i.name?{name:i.name}:null,a=n.writer.createUIElement(r,s);n.writer.insert(t,a),n.mapper.bindElementToMarker(a,o.markerName)}(n.mapper.toViewPosition(r),e,n,o,i)}function Gl(t){return"string"==typeof t&&(t={name:t}),{name:t.name,attributes:t.attributes?Di(t.attributes):[],children:!!t.children}}function Kl(t,e){return"function"==typeof t?t:(n,o)=>function(t,e,n){"string"==typeof t&&(t={name:t});let o;const i=e.writer,r=Object.assign({},t.attributes);if("container"==n)o=i.createContainerElement(t.name,r);else if("attribute"==n){const e={priority:t.priority||da.DEFAULT_PRIORITY};o=i.createAttributeElement(t.name,r,e)}else o=i.createUIElement(t.name,r);if(t.styles){const e=Object.keys(t.styles);for(const n of e)i.setStyle(n,t.styles[n],o)}if(t.classes){const e=t.classes;if("string"==typeof e)i.addClass(e,o);else for(const t of e)i.addClass(t,o)}return o}(t,o,e)}function Ul(t){return t.model.values?(e,n,o)=>{const i=t.view[e];return i?i(e,n,o):null}:t.view}function $l(t){return"string"==typeof t?e=>({key:t,value:e}):"object"==typeof t?t.value?()=>t:e=>({key:t.key,value:e}):t}function Zl(t,e,n){const o="function"==typeof t?t(e,n):t;return o?(o.priority||(o.priority=10),o.id||(o.id=e.markerName),o):null}function Jl(t){const e=function(t){return(e,n)=>{if(!e.is("element",t.name))return!1;if("attribute"==n.type){if(t.attributes.includes(n.attributeKey))return!0}else if(t.children)return!0;return!1}}(t);return(t,n)=>{const o=[];n.reconvertedElements||(n.reconvertedElements=new Set);for(const t of n.changes){const i="attribute"==t.type?t.range.start.nodeAfter:t.position.parent;if(i&&e(i,t)){if(!n.reconvertedElements.has(i)){n.reconvertedElements.add(i);const t=hl._createBefore(i);let e=o.length;for(let n=o.length-1;n>=0;n--){const i=o[n],r=("attribute"==i.type?i.range.start:i.position).compareWith(t);if("before"==r||"remove"==i.type&&"same"==r)break;e=n}o.splice(e,0,{type:"remove",name:i.name,position:t,length:1},{type:"reinsert",name:i.name,position:t,length:1})}}else o.push(t)}n.changes=o}}function Yl(t){return(e,n,o={})=>{const i=["insert"];for(const n of t.attributes)e.hasAttribute(n)&&i.push(`attribute:${n}`);return!!i.every((t=>n.test(e,t)))&&(o.preflight||i.forEach((t=>n.consume(e,t))),!0)}}function Ql(t,e,n,o){for(const i of e)Xl(t.root,i,n,o)||n.convertItem(i)}function Xl(t,e,n,o){const{writer:i,mapper:r}=n;if(!o.reconversion)return!1;const s=r.toViewElement(e);return!(!s||s.root==t)&&(!!n.canReuseView(s)&&(i.move(i.createRangeOn(s),r.toViewPosition(hl._createBefore(e))),!0))}function td(t,e,{preflight:n}={}){return n?e.test(t,"insert"):e.consume(t,"insert")}function ed(t){const{schema:e,document:n}=t.model;for(const o of n.getRoots())if(o.isEmpty&&!e.checkChild(o,"$text")&&e.checkChild(o,"paragraph"))return t.insertElement("paragraph",o),!0;return!1}function nd(t,e,n){const o=n.createContext(t);return!!n.checkChild(o,"paragraph")&&!!n.checkChild(o.push("paragraph"),e)}function od(t,e){const n=e.createElement("paragraph");return e.insert(n,t),e.createPositionAt(n,0)}class id extends Vl{elementToElement(t){return this.add(rd(t))}elementToAttribute(t){return this.add(function(t){t=el(t),cd(t);const e=ld(t,!1),n=sd(t.view),o=n?`element:${n}`:"element";return n=>{n.on(o,e,{priority:t.converterPriority||"low"})}}(t))}attributeToAttribute(t){return this.add(function(t){t=el(t);let e=null;("string"==typeof t.view||t.view.key)&&(e=function(t){"string"==typeof t.view&&(t.view={key:t.view});const e=t.view.key,n=void 0===t.view.value?/[\s\S]*/:t.view.value;let o;if("class"==e||"style"==e){const t="class"==e?"classes":"styles";o={[t]:n}}else o={attributes:{[e]:n}};t.view.name&&(o.name=t.view.name);return t.view=o,e}(t));cd(t,e);const n=ld(t,!0);return e=>{e.on("element",n,{priority:t.converterPriority||"low"})}}(t))}elementToMarker(t){return this.add(function(t){const e=function(t){return(e,n)=>{const o="string"==typeof t?t:t(e,n);return n.writer.createElement("$marker",{"data-name":o})}}(t.model);return rd({...t,model:e})}(t))}dataToMarker(t){return this.add(function(t){t=el(t),t.model||(t.model=e=>e?t.view+":"+e:t.view);const e={view:t.view,model:t.model},n=ad(dd(e,"start")),o=ad(dd(e,"end"));return i=>{i.on(`element:${t.view}-start`,n,{priority:t.converterPriority||"normal"}),i.on(`element:${t.view}-end`,o,{priority:t.converterPriority||"normal"});const r=C.low,s=C.highest,a=C.get(t.converterPriority)/s;i.on("element",function(t){return(e,n,o)=>{const i=`data-${t.view}`;function r(e,i){for(const r of i){const i=t.model(r,o),s=o.writer.createElement("$marker",{"data-name":i});o.writer.insert(s,e),n.modelCursor.isEqual(e)?n.modelCursor=n.modelCursor.getShiftedBy(1):n.modelCursor=n.modelCursor._getTransformedByInsertion(e,1),n.modelRange=n.modelRange._getTransformedByInsertion(e,1)[0]}}(o.consumable.test(n.viewItem,{attributes:i+"-end-after"})||o.consumable.test(n.viewItem,{attributes:i+"-start-after"})||o.consumable.test(n.viewItem,{attributes:i+"-end-before"})||o.consumable.test(n.viewItem,{attributes:i+"-start-before"}))&&(n.modelRange||Object.assign(n,o.convertChildren(n.viewItem,n.modelCursor)),o.consumable.consume(n.viewItem,{attributes:i+"-end-after"})&&r(n.modelRange.end,n.viewItem.getAttribute(i+"-end-after").split(",")),o.consumable.consume(n.viewItem,{attributes:i+"-start-after"})&&r(n.modelRange.end,n.viewItem.getAttribute(i+"-start-after").split(",")),o.consumable.consume(n.viewItem,{attributes:i+"-end-before"})&&r(n.modelRange.start,n.viewItem.getAttribute(i+"-end-before").split(",")),o.consumable.consume(n.viewItem,{attributes:i+"-start-before"})&&r(n.modelRange.start,n.viewItem.getAttribute(i+"-start-before").split(",")))}}(e),{priority:r+a})}}(t))}}function rd(t){const e=ad(t=el(t)),n=sd(t.view),o=n?`element:${n}`:"element";return n=>{n.on(o,e,{priority:t.converterPriority||"normal"})}}function sd(t){return"string"==typeof t?t:"object"==typeof t&&"string"==typeof t.name?t.name:null}function ad(t){const e=new ls(t.view);return(n,o,i)=>{const r=e.match(o.viewItem);if(!r)return;const s=r.match;if(s.name=!0,!i.consumable.test(o.viewItem,s))return;const a=function(t,e,n){return t instanceof Function?t(e,n):n.writer.createElement(t)}(t.model,o.viewItem,i);a&&i.safeInsert(a,o.modelCursor)&&(i.consumable.consume(o.viewItem,s),i.convertChildren(o.viewItem,a),i.updateConversionResult(a,o))}}function cd(t,e=null){const n=null===e||(t=>t.getAttribute(e)),o="object"!=typeof t.model?t.model:t.model.key,i="object"!=typeof t.model||void 0===t.model.value?n:t.model.value;t.model={key:o,value:i}}function ld(t,e){const n=new ls(t.view);return(o,i,r)=>{if(!i.modelRange&&e)return;const s=n.match(i.viewItem);if(!s)return;if(!function(t,e){const n="function"==typeof t?t(e):t;if("object"==typeof n&&!sd(n))return!1;return!n.classes&&!n.attributes&&!n.styles}(t.view,i.viewItem)?delete s.match.name:s.match.name=!0,!r.consumable.test(i.viewItem,s.match))return;const a=t.model.key,c="function"==typeof t.model.value?t.model.value(i.viewItem,r):t.model.value;if(null===c)return;i.modelRange||Object.assign(i,r.convertChildren(i.viewItem,i.modelCursor));const l=function(t,e,n,o){let i=!1;for(const r of Array.from(t.getItems({shallow:n})))o.schema.checkAttribute(r,e.key)&&(i=!0,r.hasAttribute(e.key)||o.writer.setAttribute(e.key,e.value,r));return i}(i.modelRange,{key:a,value:c},e,r);l&&(r.consumable.test(i.viewItem,{name:!0})&&(s.match.name=!0),r.consumable.consume(i.viewItem,s.match))}}function dd(t,e){return{view:`${t.view}-${e}`,model:(e,n)=>{const o=e.getAttribute("name"),i=t.model(o,n);return n.writer.createElement("$marker",{"data-name":i})}}}function hd(t){t.document.registerPostFixer((e=>function(t,e){const n=e.document.selection,o=e.schema,i=[];let r=!1;for(const t of n.getRanges()){const e=ud(t,o);e&&!e.isEqual(t)?(i.push(e),r=!0):i.push(t)}r&&t.setSelection(function(t){const e=[...t],n=new Set;let o=1;for(;o!n.has(e)))}(i),{backward:n.isBackward});return!1}(e,t)))}function ud(t,e){return t.isCollapsed?function(t,e){const n=t.start,o=e.getNearestSelectionRange(n);if(!o){const t=n.getAncestors().reverse().find((t=>e.isObject(t)));return t?kl._createOn(t):null}if(!o.isCollapsed)return o;const i=o.start;if(n.isEqual(i))return null;return new kl(i)}(t,e):function(t,e){const{start:n,end:o}=t,i=e.checkChild(n,"$text"),r=e.checkChild(o,"$text"),s=e.getLimitElement(n),a=e.getLimitElement(o);if(s===a){if(i&&r)return null;if(function(t,e,n){const o=t.nodeAfter&&!n.isLimit(t.nodeAfter)||n.checkChild(t,"$text"),i=e.nodeBefore&&!n.isLimit(e.nodeBefore)||n.checkChild(e,"$text");return o||i}(n,o,e)){const t=n.nodeAfter&&e.isSelectable(n.nodeAfter)?null:e.getNearestSelectionRange(n,"forward"),i=o.nodeBefore&&e.isSelectable(o.nodeBefore)?null:e.getNearestSelectionRange(o,"backward"),r=t?t.start:n,s=i?i.end:o;return new kl(r,s)}}const c=s&&!s.is("rootElement"),l=a&&!a.is("rootElement");if(c||l){const t=n.nodeAfter&&o.nodeBefore&&n.nodeAfter.parent===o.nodeBefore.parent,i=c&&(!t||!gd(n.nodeAfter,e)),r=l&&(!t||!gd(o.nodeBefore,e));let d=n,h=o;return i&&(d=hl._createBefore(md(s,e))),r&&(h=hl._createAfter(md(a,e))),new kl(d,h)}return null}(t,e)}function md(t,e){let n=t,o=n;for(;e.isLimit(o)&&o.parent;)n=o,o=o.parent;return n}function gd(t,e){return t&&e.isSelectable(t)}class pd extends(J()){model;view;mapper;downcastDispatcher;constructor(t,e){super(),this.model=t,this.view=new nl(e),this.mapper=new bl,this.downcastDispatcher=new Al({mapper:this.mapper,schema:t.schema});const n=this.model.document,o=n.selection,r=this.model.markers;var s,a,c;this.listenTo(this.model,"_beforeChanges",(()=>{this.view._disableRendering(!0)}),{priority:"highest"}),this.listenTo(this.model,"_afterChanges",(()=>{this.view._disableRendering(!1)}),{priority:"lowest"}),this.listenTo(n,"change",(()=>{this.view.change((t=>{this.downcastDispatcher.convertChanges(n.differ,r,t),this.downcastDispatcher.convertSelection(o,r,t)}))}),{priority:"low"}),this.listenTo(this.view.document,"selectionChange",function(t,e){return(n,o)=>{const i=o.newSelection,r=[];for(const t of i.getRanges())r.push(e.toModelRange(t));const s=t.createSelection(r,{backward:i.isBackward});s.isEqual(t.document.selection)||t.change((t=>{t.setSelection(s)}))}}(this.model,this.mapper)),this.listenTo(this.view.document,"beforeinput",(s=this.mapper,a=this.model.schema,c=this.view,(t,e)=>{if(!c.document.isComposing||i.isAndroid)for(let t=0;t{if(!n.consumable.consume(e.item,t.name))return;const o=n.writer,i=n.mapper.toViewPosition(e.range.start),r=o.createText(e.item.data);o.insert(i,r)}),{priority:"lowest"}),this.downcastDispatcher.on("insert",((t,e,n)=>{n.convertAttributes(e.item),e.reconversion||!e.item.is("element")||e.item.isEmpty||n.convertChildren(e.item)}),{priority:"lowest"}),this.downcastDispatcher.on("remove",((t,e,n)=>{const o=n.mapper.toViewPosition(e.position),i=e.position.getShiftedBy(e.length),r=n.mapper.toViewPosition(i,{isPhantom:!0}),s=n.writer.createRange(o,r),a=n.writer.remove(s.getTrimmed());for(const t of n.writer.createRangeIn(a).getItems())n.mapper.unbindViewElement(t,{defer:!0})}),{priority:"low"}),this.downcastDispatcher.on("cleanSelection",((t,e,n)=>{const o=n.writer,i=o.document.selection;for(const t of i.getRanges())t.isCollapsed&&t.end.parent.isAttached()&&n.writer.mergeAttributes(t.start);o.setSelection(null)})),this.downcastDispatcher.on("selection",((t,e,n)=>{const o=e.selection;if(o.isCollapsed)return;if(!n.consumable.consume(o,"selection"))return;const i=[];for(const t of o.getRanges())i.push(n.mapper.toViewRange(t));n.writer.setSelection(i,{backward:o.isBackward})}),{priority:"low"}),this.downcastDispatcher.on("selection",((t,e,n)=>{const o=e.selection;if(!o.isCollapsed)return;if(!n.consumable.consume(o,"selection"))return;const i=n.writer,r=o.getFirstPosition(),s=n.mapper.toViewPosition(r),a=i.breakAttributes(s);i.setSelection(a)}),{priority:"low"}),this.view.document.roots.bindTo(this.model.document.roots).using((t=>{if("$graveyard"==t.rootName)return null;const e=new Zs(this.view.document,t.name);return e.rootName=t.rootName,this.mapper.bindElements(t,e),e}))}destroy(){this.view.destroy(),this.stopListening()}reconvertMarker(t){const e="string"==typeof t?t:t.name,n=this.model.markers.get(e);if(!n)throw new x("editingcontroller-reconvertmarker-marker-not-exist",this,{markerName:e});this.model.change((()=>{this.model.markers._refresh(n)}))}reconvertItem(t){this.model.change((()=>{this.model.document.differ._refreshItem(t)}))}}class fd{_consumables=new Map;add(t,e){let n;t.is("$text")||t.is("documentFragment")?this._consumables.set(t,!0):(this._consumables.has(t)?n=this._consumables.get(t):(n=new bd(t),this._consumables.set(t,n)),n.add(e))}test(t,e){const n=this._consumables.get(t);return void 0===n?null:t.is("$text")||t.is("documentFragment")?n:n.test(e)}consume(t,e){return!!this.test(t,e)&&(t.is("$text")||t.is("documentFragment")?this._consumables.set(t,!1):this._consumables.get(t).consume(e),!0)}revert(t,e){const n=this._consumables.get(t);void 0!==n&&(t.is("$text")||t.is("documentFragment")?this._consumables.set(t,!0):n.revert(e))}static consumablesFromElement(t){const e={element:t,name:!0,attributes:[],classes:[],styles:[]},n=t.getAttributeKeys();for(const t of n)"style"!=t&&"class"!=t&&e.attributes.push(t);const o=t.getClassNames();for(const t of o)e.classes.push(t);const i=t.getStyleNames();for(const t of i)e.styles.push(t);return e}static createFrom(t,e){if(e||(e=new fd),t.is("$text"))return e.add(t),e;t.is("element")&&e.add(t,fd.consumablesFromElement(t)),t.is("documentFragment")&&e.add(t);for(const n of t.getChildren())e=fd.createFrom(n,e);return e}}const kd=["attributes","classes","styles"];class bd{element;_canConsumeName;_consumables;constructor(t){this.element=t,this._canConsumeName=null,this._consumables={attributes:new Map,styles:new Map,classes:new Map}}add(t){t.name&&(this._canConsumeName=!0);for(const e of kd)e in t&&this._add(e,t[e])}test(t){if(t.name&&!this._canConsumeName)return this._canConsumeName;for(const e of kd)if(e in t){const n=this._test(e,t[e]);if(!0!==n)return n}return!0}consume(t){t.name&&(this._canConsumeName=!1);for(const e of kd)e in t&&this._consume(e,t[e])}revert(t){t.name&&(this._canConsumeName=!0);for(const e of kd)e in t&&this._revert(e,t[e])}_add(t,e){const n=Di(e),o=this._consumables[t];for(const e of n){if("attributes"===t&&("class"===e||"style"===e))throw new x("viewconsumable-invalid-attribute",this);if(o.set(e,!0),"styles"===t)for(const t of this.element.document.stylesProcessor.getRelatedStyles(e))o.set(t,!0)}}_test(t,e){const n=Di(e),o=this._consumables[t];for(const e of n)if("attributes"!==t||"class"!==e&&"style"!==e){const t=o.get(e);if(void 0===t)return null;if(!t)return!1}else{const t="class"==e?"classes":"styles",n=this._test(t,[...this._consumables[t].keys()]);if(!0!==n)return n}return!0}_consume(t,e){const n=Di(e),o=this._consumables[t];for(const e of n)if("attributes"!==t||"class"!==e&&"style"!==e){if(o.set(e,!1),"styles"==t)for(const t of this.element.document.stylesProcessor.getRelatedStyles(e))o.set(t,!1)}else{const t="class"==e?"classes":"styles";this._consume(t,[...this._consumables[t].keys()])}}_revert(t,e){const n=Di(e),o=this._consumables[t];for(const e of n)if("attributes"!==t||"class"!==e&&"style"!==e){!1===o.get(e)&&o.set(e,!0)}else{const t="class"==e?"classes":"styles";this._revert(t,[...this._consumables[t].keys()])}}}class wd extends(J()){_sourceDefinitions={};_attributeProperties={};_compiledDefinitions;constructor(){super(),this.decorate("checkChild"),this.decorate("checkAttribute"),this.on("checkAttribute",((t,e)=>{e[0]=new _d(e[0])}),{priority:"highest"}),this.on("checkChild",((t,e)=>{e[0]=new _d(e[0]),e[1]=this.getDefinition(e[1])}),{priority:"highest"})}register(t,e){if(this._sourceDefinitions[t])throw new x("schema-cannot-register-item-twice",this,{itemName:t});this._sourceDefinitions[t]=[Object.assign({},e)],this._clearCache()}extend(t,e){if(!this._sourceDefinitions[t])throw new x("schema-cannot-extend-missing-item",this,{itemName:t});this._sourceDefinitions[t].push(Object.assign({},e)),this._clearCache()}getDefinitions(){return this._compiledDefinitions||this._compile(),this._compiledDefinitions}getDefinition(t){let e;return e="string"==typeof t?t:"is"in t&&(t.is("$text")||t.is("$textProxy"))?"$text":t.name,this.getDefinitions()[e]}isRegistered(t){return!!this.getDefinition(t)}isBlock(t){const e=this.getDefinition(t);return!(!e||!e.isBlock)}isLimit(t){const e=this.getDefinition(t);return!!e&&!(!e.isLimit&&!e.isObject)}isObject(t){const e=this.getDefinition(t);return!!e&&!!(e.isObject||e.isLimit&&e.isSelectable&&e.isContent)}isInline(t){const e=this.getDefinition(t);return!(!e||!e.isInline)}isSelectable(t){const e=this.getDefinition(t);return!!e&&!(!e.isSelectable&&!e.isObject)}isContent(t){const e=this.getDefinition(t);return!!e&&!(!e.isContent&&!e.isObject)}checkChild(t,e){return!!e&&this._checkContextMatch(e,t)}checkAttribute(t,e){const n=this.getDefinition(t.last);return!!n&&n.allowAttributes.includes(e)}checkMerge(t,e){if(t instanceof hl){const e=t.nodeBefore,n=t.nodeAfter;if(!(e instanceof cl))throw new x("schema-check-merge-no-element-before",this);if(!(n instanceof cl))throw new x("schema-check-merge-no-element-after",this);return this.checkMerge(e,n)}for(const n of e.getChildren())if(!this.checkChild(t,n))return!1;return!0}addChildCheck(t){this.on("checkChild",((e,[n,o])=>{if(!o)return;const i=t(n,o);"boolean"==typeof i&&(e.stop(),e.return=i)}),{priority:"high"})}addAttributeCheck(t){this.on("checkAttribute",((e,[n,o])=>{const i=t(n,o);"boolean"==typeof i&&(e.stop(),e.return=i)}),{priority:"high"})}setAttributeProperties(t,e){this._attributeProperties[t]=Object.assign(this.getAttributeProperties(t),e)}getAttributeProperties(t){return this._attributeProperties[t]||{}}getLimitElement(t){let e;if(t instanceof hl)e=t.parent;else{e=(t instanceof kl?[t]:Array.from(t.getRanges())).reduce(((t,e)=>{const n=e.getCommonAncestor();return t?t.getCommonAncestor(n,{includeSelf:!0}):n}),null)}for(;!this.isLimit(e)&&e.parent;)e=e.parent;return e}checkAttributeInSelection(t,e){if(t.isCollapsed){const n=[...t.getFirstPosition().getAncestors(),new sl("",t.getAttributes())];return this.checkAttribute(n,e)}{const n=t.getRanges();for(const t of n)for(const n of t)if(this.checkAttribute(n.item,e))return!0}return!1}*getValidRanges(t,e){t=function*(t){for(const e of t)yield*e.getMinimalFlatRanges()}(t);for(const n of t)yield*this._getValidRangesForRange(n,e)}getNearestSelectionRange(t,e="both"){if("$graveyard"==t.root.rootName)return null;if(this.checkChild(t,"$text"))return new kl(t);let n,o;const i=t.getAncestors().reverse().find((t=>this.isLimit(t)))||t.root;"both"!=e&&"backward"!=e||(n=new ll({boundaries:kl._createIn(i),startPosition:t,direction:"backward"})),"both"!=e&&"forward"!=e||(o=new ll({boundaries:kl._createIn(i),startPosition:t}));for(const t of function*(t,e){let n=!1;for(;!n;){if(n=!0,t){const e=t.next();e.done||(n=!1,yield{walker:t,value:e.value})}if(e){const t=e.next();t.done||(n=!1,yield{walker:e,value:t.value})}}}(n,o)){const e=t.walker==n?"elementEnd":"elementStart",o=t.value;if(o.type==e&&this.isObject(o.item))return kl._createOn(o.item);if(this.checkChild(o.nextPosition,"$text"))return new kl(o.nextPosition)}return null}findAllowedParent(t,e){let n=t.parent;for(;n;){if(this.checkChild(n,e))return n;if(this.isLimit(n))return null;n=n.parent}return null}setAllowedAttributes(t,e,n){const o=n.model;for(const[i,r]of Object.entries(e))o.schema.checkAttribute(t,i)&&n.setAttribute(i,r,t)}removeDisallowedAttributes(t,e){for(const n of t)if(n.is("$text"))zd(this,n,e);else{const t=kl._createIn(n).getPositions();for(const n of t){zd(this,n.nodeBefore||n.parent,e)}}}getAttributesWithProperty(t,e,n){const o={};for(const[i,r]of t.getAttributes()){const t=this.getAttributeProperties(i);void 0!==t[e]&&(void 0!==n&&n!==t[e]||(o[i]=r))}return o}createContext(t){return new _d(t)}_clearCache(){this._compiledDefinitions=null}_compile(){const t={},e=this._sourceDefinitions,n=Object.keys(e);for(const o of n)t[o]=Ad(e[o],o);for(const e of n)Cd(t,e);for(const e of n)vd(t,e);for(const e of n)yd(t,e);for(const e of n)xd(t,e),Ed(t,e);for(const e of n)Dd(t,e),Bd(t,e),Td(t,e);this._compiledDefinitions=t}_checkContextMatch(t,e,n=e.length-1){const o=e.getItem(n);if(t.allowIn.includes(o.name)){if(0==n)return!0;{const t=this.getDefinition(o);return this._checkContextMatch(t,e,n-1)}}return!1}*_getValidRangesForRange(t,e){let n=t.start,o=t.start;for(const i of t.getItems({shallow:!0}))i.is("element")&&(yield*this._getValidRangesForRange(kl._createIn(i),e)),this.checkAttribute(i,e)||(n.isEqual(o)||(yield new kl(n,o)),n=hl._createAfter(i)),o=hl._createAfter(i);n.isEqual(o)||(yield new kl(n,o))}findOptimalInsertionRange(t,e){const n=t.getSelectedElement();if(n&&this.isObject(n)&&!this.isInline(n))return"before"==e||"after"==e?new kl(hl._createAt(n,e)):kl._createOn(n);const o=Xi(t.getSelectedBlocks());if(!o)return new kl(t.focus);if(o.isEmpty)return new kl(hl._createAt(o,0));const i=hl._createAfter(o);return t.focus.isTouching(i)?new kl(i):new kl(hl._createBefore(o))}}class _d{_items;constructor(t){if(t instanceof _d)return t;let e;e="string"==typeof t?[t]:Array.isArray(t)?t:t.getAncestors({includeSelf:!0}),this._items=e.map(Pd)}get length(){return this._items.length}get last(){return this._items[this._items.length-1]}[Symbol.iterator](){return this._items[Symbol.iterator]()}push(t){const e=new _d([t]);return e._items=[...this._items,...e._items],e}getItem(t){return this._items[t]}*getNames(){yield*this._items.map((t=>t.name))}endsWith(t){return Array.from(this.getNames()).join(" ").endsWith(t)}startsWith(t){return Array.from(this.getNames()).join(" ").startsWith(t)}}function Ad(t,e){const n={name:e,allowIn:[],allowContentOf:[],allowWhere:[],allowAttributes:[],allowAttributesOf:[],allowChildren:[],inheritTypesFrom:[]};return function(t,e){for(const n of t){const t=Object.keys(n).filter((t=>t.startsWith("is")));for(const o of t)e[o]=!!n[o]}}(t,n),Sd(t,n,"allowIn"),Sd(t,n,"allowContentOf"),Sd(t,n,"allowWhere"),Sd(t,n,"allowAttributes"),Sd(t,n,"allowAttributesOf"),Sd(t,n,"allowChildren"),Sd(t,n,"inheritTypesFrom"),function(t,e){for(const n of t){const t=n.inheritAllFrom;t&&(e.allowContentOf.push(t),e.allowWhere.push(t),e.allowAttributesOf.push(t),e.inheritTypesFrom.push(t))}}(t,n),n}function Cd(t,e){const n=t[e];for(const o of n.allowChildren){const n=t[o];n&&n.allowIn.push(e)}n.allowChildren.length=0}function vd(t,e){for(const n of t[e].allowContentOf)if(t[n]){Id(t,n).forEach((t=>{t.allowIn.push(e)}))}delete t[e].allowContentOf}function yd(t,e){for(const n of t[e].allowWhere){const o=t[n];if(o){const n=o.allowIn;t[e].allowIn.push(...n)}}delete t[e].allowWhere}function xd(t,e){for(const n of t[e].allowAttributesOf){const o=t[n];if(o){const n=o.allowAttributes;t[e].allowAttributes.push(...n)}}delete t[e].allowAttributesOf}function Ed(t,e){const n=t[e];for(const e of n.inheritTypesFrom){const o=t[e];if(o){const t=Object.keys(o).filter((t=>t.startsWith("is")));for(const e of t)e in n||(n[e]=o[e])}}delete n.inheritTypesFrom}function Dd(t,e){const n=t[e],o=n.allowIn.filter((e=>t[e]));n.allowIn=Array.from(new Set(o))}function Bd(t,e){const n=t[e];for(const o of n.allowIn){t[o].allowChildren.push(e)}}function Td(t,e){const n=t[e];n.allowAttributes=Array.from(new Set(n.allowAttributes))}function Sd(t,e,n){for(const o of t){const t=o[n];"string"==typeof t?e[n].push(t):Array.isArray(t)&&e[n].push(...t)}}function Id(t,e){const n=t[e];return(o=t,Object.keys(o).map((t=>o[t]))).filter((t=>t.allowIn.includes(n.name)));var o}function Pd(t){return"string"==typeof t||t.is("documentFragment")?{name:"string"==typeof t?t:"$documentFragment",*getAttributeKeys(){},getAttribute(){}}:{name:t.is("element")?t.name:"$text",*getAttributeKeys(){yield*t.getAttributeKeys()},getAttribute:e=>t.getAttribute(e)}}function zd(t,e,n){for(const o of e.getAttributeKeys())t.checkAttribute(e,o)||n.removeAttribute(o,e)}class Rd extends(L()){conversionApi;_splitParts=new Map;_cursorParents=new Map;_modelCursor=null;_emptyElementsToKeep=new Set;constructor(t){super(),this.conversionApi={...t,consumable:null,writer:null,store:null,convertItem:(t,e)=>this._convertItem(t,e),convertChildren:(t,e)=>this._convertChildren(t,e),safeInsert:(t,e)=>this._safeInsert(t,e),updateConversionResult:(t,e)=>this._updateConversionResult(t,e),splitToAllowedParent:(t,e)=>this._splitToAllowedParent(t,e),getSplitParts:t=>this._getSplitParts(t),keepEmptyElement:t=>this._keepEmptyElement(t)}}convert(t,e,n=["$root"]){this.fire("viewCleanup",t),this._modelCursor=function(t,e){let n;for(const o of new _d(t)){const t={};for(const e of o.getAttributeKeys())t[e]=o.getAttribute(e);const i=e.createElement(o.name,t);n&&e.insert(i,n),n=hl._createAt(i,0)}return n}(n,e),this.conversionApi.writer=e,this.conversionApi.consumable=fd.createFrom(t),this.conversionApi.store={};const{modelRange:o}=this._convertItem(t,this._modelCursor),i=e.createDocumentFragment();if(o){this._removeEmptyElements();for(const t of Array.from(this._modelCursor.parent.getChildren()))e.append(t,i);i.markers=function(t,e){const n=new Set,o=new Map,i=kl._createIn(t).getItems();for(const t of i)t.is("element","$marker")&&n.add(t);for(const t of n){const n=t.getAttribute("data-name"),i=e.createPositionBefore(t);o.has(n)?o.get(n).end=i.clone():o.set(n,new kl(i.clone())),e.remove(t)}return o}(i,e)}return this._modelCursor=null,this._splitParts.clear(),this._cursorParents.clear(),this._emptyElementsToKeep.clear(),this.conversionApi.writer=null,this.conversionApi.store=null,i}_convertItem(t,e){const n={viewItem:t,modelCursor:e,modelRange:null};if(t.is("element")?this.fire(`element:${t.name}`,n,this.conversionApi):t.is("$text")?this.fire("text",n,this.conversionApi):this.fire("documentFragment",n,this.conversionApi),n.modelRange&&!(n.modelRange instanceof kl))throw new x("view-conversion-dispatcher-incorrect-result",this);return{modelRange:n.modelRange,modelCursor:n.modelCursor}}_convertChildren(t,e){let n=e.is("position")?e:hl._createAt(e,0);const o=new kl(n);for(const e of Array.from(t.getChildren())){const t=this._convertItem(e,n);t.modelRange instanceof kl&&(o.end=t.modelRange.end,n=t.modelCursor)}return{modelRange:o,modelCursor:n}}_safeInsert(t,e){const n=this._splitToAllowedParent(t,e);return!!n&&(this.conversionApi.writer.insert(t,n.position),!0)}_updateConversionResult(t,e){const n=this._getSplitParts(t),o=this.conversionApi.writer;e.modelRange||(e.modelRange=o.createRange(o.createPositionBefore(t),o.createPositionAfter(n[n.length-1])));const i=this._cursorParents.get(t);e.modelCursor=i?o.createPositionAt(i,0):e.modelRange.end}_splitToAllowedParent(t,e){const{schema:n,writer:o}=this.conversionApi;let i=n.findAllowedParent(e,t);if(i){if(i===e.parent)return{position:e};this._modelCursor.parent.getAncestors().includes(i)&&(i=null)}if(!i)return nd(e,t,n)?{position:od(e,o)}:null;const r=this.conversionApi.writer.split(e,i),s=[];for(const t of r.range.getWalker())if("elementEnd"==t.type)s.push(t.item);else{const e=s.pop(),n=t.item;this._registerSplitPair(e,n)}const a=r.range.end.parent;return this._cursorParents.set(t,a),{position:r.position,cursorParent:a}}_registerSplitPair(t,e){this._splitParts.has(t)||this._splitParts.set(t,[t]);const n=this._splitParts.get(t);this._splitParts.set(e,n),n.push(e)}_getSplitParts(t){let e;return e=this._splitParts.has(t)?this._splitParts.get(t):[t],e}_keepEmptyElement(t){this._emptyElementsToKeep.add(t)}_removeEmptyElements(){let t=!1;for(const e of this._splitParts.keys())e.isEmpty&&!this._emptyElementsToKeep.has(e)&&(this.conversionApi.writer.remove(e),this._splitParts.delete(e),t=!0);t&&this._removeEmptyElements()}}class Ld{getHtml(t){const e=Oo.document.implementation.createHTMLDocument("").createElement("div");return e.appendChild(t),e.innerHTML}}class Fd{domParser;domConverter;htmlWriter;skipComments=!0;constructor(t){this.domParser=new DOMParser,this.domConverter=new tc(t,{renderingMode:"data"}),this.htmlWriter=new Ld}toData(t){const e=this.domConverter.viewToDom(t);return this.htmlWriter.getHtml(e)}toView(t){const e=this._toDom(t);return this.domConverter.domToView(e,{skipComments:this.skipComments})}registerRawContentMatcher(t){this.domConverter.registerRawContentMatcher(t)}useFillerType(t){this.domConverter.blockFillerMode="marked"==t?"markedNbsp":"nbsp"}_toDom(t){t.match(/<(?:html|body|head|meta)(?:\s[^>]*)?>/i)||(t=`${t}`);const e=this.domParser.parseFromString(t,"text/html"),n=e.createDocumentFragment(),o=e.body.childNodes;for(;o.length>0;)n.appendChild(o[0]);return n}}class Md extends(L()){model;mapper;downcastDispatcher;upcastDispatcher;viewDocument;stylesProcessor;htmlProcessor;processor;_viewWriter;constructor(t,e){super(),this.model=t,this.mapper=new bl,this.downcastDispatcher=new Al({mapper:this.mapper,schema:t.schema}),this.downcastDispatcher.on("insert:$text",((t,e,n)=>{if(!n.consumable.consume(e.item,t.name))return;const o=n.writer,i=n.mapper.toViewPosition(e.range.start),r=o.createText(e.item.data);o.insert(i,r)}),{priority:"lowest"}),this.downcastDispatcher.on("insert",((t,e,n)=>{n.convertAttributes(e.item),e.reconversion||!e.item.is("element")||e.item.isEmpty||n.convertChildren(e.item)}),{priority:"lowest"}),this.upcastDispatcher=new Rd({schema:t.schema}),this.viewDocument=new la(e),this.stylesProcessor=e,this.htmlProcessor=new Fd(this.viewDocument),this.processor=this.htmlProcessor,this._viewWriter=new Aa(this.viewDocument),this.upcastDispatcher.on("text",((t,e,{schema:n,consumable:o,writer:i})=>{let r=e.modelCursor;if(!o.test(e.viewItem))return;if(!n.checkChild(r,"$text")){if(!nd(r,"$text",n))return;if(0==e.viewItem.data.trim().length)return;const t=r.nodeBefore;r=od(r,i),t&&t.is("element","$marker")&&(i.move(i.createRangeOn(t),r),r=i.createPositionAfter(t))}o.consume(e.viewItem);const s=i.createText(e.viewItem.data);i.insert(s,r),e.modelRange=i.createRange(r,r.getShiftedBy(s.offsetSize)),e.modelCursor=e.modelRange.end}),{priority:"lowest"}),this.upcastDispatcher.on("element",((t,e,n)=>{if(!e.modelRange&&n.consumable.consume(e.viewItem,{name:!0})){const{modelRange:t,modelCursor:o}=n.convertChildren(e.viewItem,e.modelCursor);e.modelRange=t,e.modelCursor=o}}),{priority:"lowest"}),this.upcastDispatcher.on("documentFragment",((t,e,n)=>{if(!e.modelRange&&n.consumable.consume(e.viewItem,{name:!0})){const{modelRange:t,modelCursor:o}=n.convertChildren(e.viewItem,e.modelCursor);e.modelRange=t,e.modelCursor=o}}),{priority:"lowest"}),J().prototype.decorate.call(this,"init"),J().prototype.decorate.call(this,"set"),J().prototype.decorate.call(this,"get"),J().prototype.decorate.call(this,"toView"),J().prototype.decorate.call(this,"toModel"),this.on("init",(()=>{this.fire("ready")}),{priority:"lowest"}),this.on("ready",(()=>{this.model.enqueueChange({isUndoable:!1},ed)}),{priority:"lowest"})}get(t={}){const{rootName:e="main",trim:n="empty"}=t;if(!this._checkIfRootsExists([e]))throw new x("datacontroller-get-non-existent-root",this);const o=this.model.document.getRoot(e);return o.isAttached()||E("datacontroller-get-detached-root",this),"empty"!==n||this.model.hasContent(o,{ignoreWhitespaces:!0})?this.stringify(o,t):""}stringify(t,e={}){const n=this.toView(t,e);return this.processor.toData(n)}toView(t,e={}){const n=this.viewDocument,o=this._viewWriter;this.mapper.clearBindings();const i=kl._createIn(t),r=new _a(n);this.mapper.bindElements(t,r);const s=t.is("documentFragment")?t.markers:function(t){const e=[],n=t.root.document;if(!n)return new Map;const o=kl._createIn(t);for(const t of n.model.markers){const n=t.getRange(),i=n.isCollapsed,r=n.start.isEqual(o.start)||n.end.isEqual(o.end);if(i&&r)e.push([t.name,n]);else{const i=o.getIntersection(n);i&&e.push([t.name,i])}}return e.sort((([t,e],[n,o])=>{if("after"!==e.end.compareWith(o.start))return 1;if("before"!==e.start.compareWith(o.end))return-1;switch(e.start.compareWith(o.start)){case"before":return 1;case"after":return-1;default:switch(e.end.compareWith(o.end)){case"before":return 1;case"after":return-1;default:return n.localeCompare(t)}}})),new Map(e)}(t);return this.downcastDispatcher.convert(i,s,o,e),r}init(t){if(this.model.document.version)throw new x("datacontroller-init-document-not-empty",this);let e={};if("string"==typeof t?e.main=t:e=t,!this._checkIfRootsExists(Object.keys(e)))throw new x("datacontroller-init-non-existent-root",this);return this.model.enqueueChange({isUndoable:!1},(t=>{for(const n of Object.keys(e)){const o=this.model.document.getRoot(n);t.insert(this.parse(e[n],o),o,0)}})),Promise.resolve()}set(t,e={}){let n={};if("string"==typeof t?n.main=t:n=t,!this._checkIfRootsExists(Object.keys(n)))throw new x("datacontroller-set-non-existent-root",this);this.model.enqueueChange(e.batchType||{},(t=>{t.setSelection(null),t.removeSelectionAttribute(this.model.document.selection.getAttributeKeys());for(const e of Object.keys(n)){const o=this.model.document.getRoot(e);t.remove(t.createRangeIn(o)),t.insert(this.parse(n[e],o),o,0)}}))}parse(t,e="$root"){const n=this.processor.toView(t);return this.toModel(n,e)}toModel(t,e="$root"){return this.model.change((n=>this.upcastDispatcher.convert(t,n,e)))}addStyleProcessorRules(t){t(this.stylesProcessor)}registerRawContentMatcher(t){this.processor&&this.processor!==this.htmlProcessor&&this.processor.registerRawContentMatcher(t),this.htmlProcessor.registerRawContentMatcher(t)}destroy(){this.stopListening()}_checkIfRootsExists(t){for(const e of t)if(!this.model.document.getRoot(e))return!1;return!0}}class Vd{_helpers=new Map;_downcast;_upcast;constructor(t,e){this._downcast=Di(t),this._createConversionHelpers({name:"downcast",dispatchers:this._downcast,isDowncast:!0}),this._upcast=Di(e),this._createConversionHelpers({name:"upcast",dispatchers:this._upcast,isDowncast:!1})}addAlias(t,e){const n=this._downcast.includes(e);if(!this._upcast.includes(e)&&!n)throw new x("conversion-add-alias-dispatcher-not-registered",this);this._createConversionHelpers({name:t,dispatchers:[e],isDowncast:n})}for(t){if(!this._helpers.has(t))throw new x("conversion-for-unknown-group",this);return this._helpers.get(t)}elementToElement(t){this.for("downcast").elementToElement(t);for(const{model:e,view:n}of Od(t))this.for("upcast").elementToElement({model:e,view:n,converterPriority:t.converterPriority})}attributeToElement(t){this.for("downcast").attributeToElement(t);for(const{model:e,view:n}of Od(t))this.for("upcast").elementToAttribute({view:n,model:e,converterPriority:t.converterPriority})}attributeToAttribute(t){this.for("downcast").attributeToAttribute(t);for(const{model:e,view:n}of Od(t))this.for("upcast").attributeToAttribute({view:n,model:e})}_createConversionHelpers({name:t,dispatchers:e,isDowncast:n}){if(this._helpers.has(t))throw new x("conversion-group-exists",this);const o=n?new Ol(e):new id(e);this._helpers.set(t,o)}}function*Od(t){if(t.model.values)for(const e of t.model.values){const n={key:t.model.key,value:e},o=t.view[e],i=t.upcastAlso?t.upcastAlso[e]:void 0;yield*Nd(n,o,i)}else yield*Nd(t.model,t.view,t.upcastAlso)}function*Nd(t,e,n){if(yield{model:t,view:e},n)for(const e of Di(n))yield{model:t,view:e}}class Hd{baseVersion;isDocumentOperation;batch;constructor(t){this.baseVersion=t,this.isDocumentOperation=null!==this.baseVersion,this.batch=null}_validate(){}toJSON(){const t=Object.assign({},this);return t.__className=this.constructor.className,delete t.batch,delete t.isDocumentOperation,t}static get className(){return"Operation"}static fromJSON(t,e){return new this(t.baseVersion)}}function qd(t,e){const n=Gd(e),o=n.reduce(((t,e)=>t+e.offsetSize),0),i=t.parent;Ud(t);const r=t.index;return i._insertChild(r,n),Kd(i,r+n.length),Kd(i,r),new kl(t,t.getShiftedBy(o))}function jd(t){if(!t.isFlat)throw new x("operation-utils-remove-range-not-flat",this);const e=t.start.parent;Ud(t.start),Ud(t.end);const n=e._removeChildren(t.start.index,t.end.index-t.start.index);return Kd(e,t.start.index),n}function Wd(t,e){if(!t.isFlat)throw new x("operation-utils-move-range-not-flat",this);const n=jd(t);return qd(e=e._getTransformedByDeletion(t.start,t.end.offset-t.start.offset),n)}function Gd(t){const e=[];!function t(n){if("string"==typeof n)e.push(new sl(n));else if(n instanceof al)e.push(new sl(n.data,n.getAttributes()));else if(n instanceof il)e.push(n);else if(rt(n))for(const e of n)t(e);else{}}(t);for(let t=1;tt.maxOffset)throw new x("move-operation-nodes-do-not-exist",this);if(t===e&&n=n&&this.targetPosition.path[t]t._clone(!0)))),e=new Jd(this.position,t,this.baseVersion);return e.shouldReceiveAttributes=this.shouldReceiveAttributes,e}getReversed(){const t=this.position.root.document.graveyard,e=new hl(t,[0]);return new Zd(this.position,this.nodes.maxOffset,e,this.baseVersion+1)}_validate(){const t=this.position.parent;if(!t||t.maxOffsett._clone(!0)))),qd(this.position,t)}toJSON(){const t=super.toJSON();return t.position=this.position.toJSON(),t.nodes=this.nodes.toJSON(),t}static get className(){return"InsertOperation"}static fromJSON(t,e){const n=[];for(const e of t.nodes)e.name?n.push(cl.fromJSON(e)):n.push(sl.fromJSON(e));const o=new Jd(hl.fromJSON(t.position,e),n,t.baseVersion);return o.shouldReceiveAttributes=t.shouldReceiveAttributes,o}}class Yd extends Hd{splitPosition;howMany;insertionPosition;graveyardPosition;constructor(t,e,n,o,i){super(i),this.splitPosition=t.clone(),this.splitPosition.stickiness="toNext",this.howMany=e,this.insertionPosition=n,this.graveyardPosition=o?o.clone():null,this.graveyardPosition&&(this.graveyardPosition.stickiness="toNext")}get type(){return"split"}get moveTargetPosition(){const t=this.insertionPosition.path.slice();return t.push(0),new hl(this.insertionPosition.root,t)}get movedRange(){const t=this.splitPosition.getShiftedBy(Number.POSITIVE_INFINITY);return new kl(this.splitPosition,t)}get affectedSelectable(){const t=[kl._createFromPositionAndShift(this.splitPosition,0),kl._createFromPositionAndShift(this.insertionPosition,0)];return this.graveyardPosition&&t.push(kl._createFromPositionAndShift(this.graveyardPosition,0)),t}clone(){return new Yd(this.splitPosition,this.howMany,this.insertionPosition,this.graveyardPosition,this.baseVersion)}getReversed(){const t=this.splitPosition.root.document.graveyard,e=new hl(t,[0]);return new Qd(this.moveTargetPosition,this.howMany,this.splitPosition,e,this.baseVersion+1)}_validate(){const t=this.splitPosition.parent,e=this.splitPosition.offset;if(!t||t.maxOffset0&&(t.sourcePosition.isEqual(e.sourcePosition.getShiftedBy(e.howMany))&&this._setRelation(t,e,"mergeSourceAffected"),t.targetPosition.isEqual(e.sourcePosition)&&this._setRelation(t,e,"mergeTargetWasBefore"));else if(t instanceof Xd){const n=t.newRange;if(!n)return;if(e instanceof Zd){const o=kl._createFromPositionAndShift(e.sourcePosition,e.howMany),i=o.containsPosition(n.start)||o.start.isEqual(n.start),r=o.containsPosition(n.end)||o.end.isEqual(n.end);!i&&!r||o.containsRange(n)||this._setRelation(t,e,{side:i?"left":"right",path:i?n.start.path.slice():n.end.path.slice()})}else if(e instanceof Qd){const o=n.start.isEqual(e.targetPosition),i=n.start.isEqual(e.deletionPosition),r=n.end.isEqual(e.deletionPosition),s=n.end.isEqual(e.sourcePosition);(o||i||r||s)&&this._setRelation(t,e,{wasInLeftElement:o,wasStartBeforeMergedElement:i,wasEndBeforeMergedElement:r,wasInRightElement:s})}}}getContext(t,e,n){return{aIsStrong:n,aWasUndone:this._wasUndone(t),bWasUndone:this._wasUndone(e),abRelation:this._useRelations?this._getRelation(t,e):null,baRelation:this._useRelations?this._getRelation(e,t):null,forceWeakRemove:this._forceWeakRemove}}_wasUndone(t){const e=this.originalOperations.get(t);return e.wasUndone||this._history.isUndoneOperation(e)}_getRelation(t,e){const n=this.originalOperations.get(e),o=this._history.getUndoneOperation(n);if(!o)return null;const i=this.originalOperations.get(t),r=this._relations.get(i);return r&&r.get(o)||null}_setRelation(t,e,n){const o=this.originalOperations.get(t),i=this.originalOperations.get(e);let r=this._relations.get(o);r||(r=new Map,this._relations.set(o,r)),r.set(i,n)}}function gh(t,e){for(const n of t)n.baseVersion=e++}function ph(t,e){for(let n=0;n{if(t.key===e.key&&t.range.start.hasSameParentAs(e.range.start)){const o=t.range.getDifference(e.range).map((e=>new eh(e,t.key,t.oldValue,t.newValue,0))),i=t.range.getIntersection(e.range);return i&&n.aIsStrong&&o.push(new eh(i,e.key,e.newValue,t.newValue,0)),0==o.length?[new nh(0)]:o}return[t]})),lh(eh,Jd,((t,e)=>{if(t.range.start.hasSameParentAs(e.position)&&t.range.containsPosition(e.position)){const n=t.range._getTransformedByInsertion(e.position,e.howMany,!e.shouldReceiveAttributes).map((e=>new eh(e,t.key,t.oldValue,t.newValue,t.baseVersion)));if(e.shouldReceiveAttributes){const o=fh(e,t.key,t.oldValue);o&&n.unshift(o)}return n}return t.range=t.range._getTransformedByInsertion(e.position,e.howMany,!1)[0],[t]})),lh(eh,Qd,((t,e)=>{const n=[];t.range.start.hasSameParentAs(e.deletionPosition)&&(t.range.containsPosition(e.deletionPosition)||t.range.start.isEqual(e.deletionPosition))&&n.push(kl._createFromPositionAndShift(e.graveyardPosition,1));const o=t.range._getTransformedByMergeOperation(e);return o.isCollapsed||n.push(o),n.map((e=>new eh(e,t.key,t.oldValue,t.newValue,t.baseVersion)))})),lh(eh,Zd,((t,e)=>{const n=function(t,e){const n=kl._createFromPositionAndShift(e.sourcePosition,e.howMany);let o=null,i=[];n.containsRange(t,!0)?o=t:t.start.hasSameParentAs(n.start)?(i=t.getDifference(n),o=t.getIntersection(n)):i=[t];const r=[];for(let t of i){t=t._getTransformedByDeletion(e.sourcePosition,e.howMany);const n=e.getMovedRangeStart(),o=t.start.hasSameParentAs(n),i=t._getTransformedByInsertion(n,e.howMany,o);r.push(...i)}o&&r.push(o._getTransformedByMove(e.sourcePosition,e.targetPosition,e.howMany,!1)[0]);return r}(t.range,e);return n.map((e=>new eh(e,t.key,t.oldValue,t.newValue,t.baseVersion)))})),lh(eh,Yd,((t,e)=>{if(t.range.end.isEqual(e.insertionPosition))return e.graveyardPosition||t.range.end.offset++,[t];if(t.range.start.hasSameParentAs(e.splitPosition)&&t.range.containsPosition(e.splitPosition)){const n=t.clone();return n.range=new kl(e.moveTargetPosition.clone(),t.range.end._getCombined(e.splitPosition,e.moveTargetPosition)),t.range.end=e.splitPosition.clone(),t.range.end.stickiness="toPrevious",[t,n]}return t.range=t.range._getTransformedBySplitOperation(e),[t]})),lh(Jd,eh,((t,e)=>{const n=[t];if(t.shouldReceiveAttributes&&t.position.hasSameParentAs(e.range.start)&&e.range.containsPosition(t.position)){const o=fh(t,e.key,e.newValue);o&&n.push(o)}return n})),lh(Jd,Jd,((t,e,n)=>(t.position.isEqual(e.position)&&n.aIsStrong||(t.position=t.position._getTransformedByInsertOperation(e)),[t]))),lh(Jd,Zd,((t,e)=>(t.position=t.position._getTransformedByMoveOperation(e),[t]))),lh(Jd,Yd,((t,e)=>(t.position=t.position._getTransformedBySplitOperation(e),[t]))),lh(Jd,Qd,((t,e)=>(t.position=t.position._getTransformedByMergeOperation(e),[t]))),lh(Xd,Jd,((t,e)=>(t.oldRange&&(t.oldRange=t.oldRange._getTransformedByInsertOperation(e)[0]),t.newRange&&(t.newRange=t.newRange._getTransformedByInsertOperation(e)[0]),[t]))),lh(Xd,Xd,((t,e,n)=>{if(t.name==e.name){if(!n.aIsStrong)return[new nh(0)];t.oldRange=e.newRange?e.newRange.clone():null}return[t]})),lh(Xd,Qd,((t,e)=>(t.oldRange&&(t.oldRange=t.oldRange._getTransformedByMergeOperation(e)),t.newRange&&(t.newRange=t.newRange._getTransformedByMergeOperation(e)),[t]))),lh(Xd,Zd,((t,e,n)=>{if(t.oldRange&&(t.oldRange=kl._createFromRanges(t.oldRange._getTransformedByMoveOperation(e))),t.newRange){if(n.abRelation){const o=kl._createFromRanges(t.newRange._getTransformedByMoveOperation(e));if("left"==n.abRelation.side&&e.targetPosition.isEqual(t.newRange.start))return t.newRange.end=o.end,t.newRange.start.path=n.abRelation.path,[t];if("right"==n.abRelation.side&&e.targetPosition.isEqual(t.newRange.end))return t.newRange.start=o.start,t.newRange.end.path=n.abRelation.path,[t]}t.newRange=kl._createFromRanges(t.newRange._getTransformedByMoveOperation(e))}return[t]})),lh(Xd,Yd,((t,e,n)=>{if(t.oldRange&&(t.oldRange=t.oldRange._getTransformedBySplitOperation(e)),t.newRange){if(n.abRelation){const o=t.newRange._getTransformedBySplitOperation(e);return t.newRange.start.isEqual(e.splitPosition)&&n.abRelation.wasStartBeforeMergedElement?t.newRange.start=hl._createAt(e.insertionPosition):t.newRange.start.isEqual(e.splitPosition)&&!n.abRelation.wasInLeftElement&&(t.newRange.start=hl._createAt(e.moveTargetPosition)),t.newRange.end.isEqual(e.splitPosition)&&n.abRelation.wasInRightElement?t.newRange.end=hl._createAt(e.moveTargetPosition):t.newRange.end.isEqual(e.splitPosition)&&n.abRelation.wasEndBeforeMergedElement?t.newRange.end=hl._createAt(e.insertionPosition):t.newRange.end=o.end,[t]}t.newRange=t.newRange._getTransformedBySplitOperation(e)}return[t]})),lh(Qd,Jd,((t,e)=>(t.sourcePosition.hasSameParentAs(e.position)&&(t.howMany+=e.howMany),t.sourcePosition=t.sourcePosition._getTransformedByInsertOperation(e),t.targetPosition=t.targetPosition._getTransformedByInsertOperation(e),[t]))),lh(Qd,Qd,((t,e,n)=>{if(t.sourcePosition.isEqual(e.sourcePosition)&&t.targetPosition.isEqual(e.targetPosition)){if(n.bWasUndone){const n=e.graveyardPosition.path.slice();return n.push(0),t.sourcePosition=new hl(e.graveyardPosition.root,n),t.howMany=0,[t]}return[new nh(0)]}if(t.sourcePosition.isEqual(e.sourcePosition)&&!t.targetPosition.isEqual(e.targetPosition)&&!n.bWasUndone&&"splitAtSource"!=n.abRelation){const o="$graveyard"==t.targetPosition.root.rootName,i="$graveyard"==e.targetPosition.root.rootName;if(i&&!o||!(o&&!i)&&n.aIsStrong){const n=e.targetPosition._getTransformedByMergeOperation(e),o=t.targetPosition._getTransformedByMergeOperation(e);return[new Zd(n,t.howMany,o,0)]}return[new nh(0)]}return t.sourcePosition.hasSameParentAs(e.targetPosition)&&(t.howMany+=e.howMany),t.sourcePosition=t.sourcePosition._getTransformedByMergeOperation(e),t.targetPosition=t.targetPosition._getTransformedByMergeOperation(e),t.graveyardPosition.isEqual(e.graveyardPosition)&&n.aIsStrong||(t.graveyardPosition=t.graveyardPosition._getTransformedByMergeOperation(e)),[t]})),lh(Qd,Zd,((t,e,n)=>{const o=kl._createFromPositionAndShift(e.sourcePosition,e.howMany);return"remove"==e.type&&!n.bWasUndone&&!n.forceWeakRemove&&t.deletionPosition.hasSameParentAs(e.sourcePosition)&&o.containsPosition(t.sourcePosition)?[new nh(0)]:(e.sourcePosition.getShiftedBy(e.howMany).isEqual(t.sourcePosition)?t.sourcePosition.stickiness="toNone":e.targetPosition.isEqual(t.sourcePosition)&&"mergeSourceAffected"==n.abRelation?t.sourcePosition.stickiness="toNext":e.sourcePosition.isEqual(t.targetPosition)?(t.targetPosition.stickiness="toNone",t.howMany-=e.howMany):e.targetPosition.isEqual(t.targetPosition)&&"mergeTargetWasBefore"==n.abRelation?(t.targetPosition.stickiness="toPrevious",t.howMany+=e.howMany):(t.sourcePosition.hasSameParentAs(e.targetPosition)&&(t.howMany+=e.howMany),t.sourcePosition.hasSameParentAs(e.sourcePosition)&&(t.howMany-=e.howMany)),t.sourcePosition=t.sourcePosition._getTransformedByMoveOperation(e),t.targetPosition=t.targetPosition._getTransformedByMoveOperation(e),t.sourcePosition.stickiness="toPrevious",t.targetPosition.stickiness="toNext",t.graveyardPosition.isEqual(e.targetPosition)||(t.graveyardPosition=t.graveyardPosition._getTransformedByMoveOperation(e)),[t])})),lh(Qd,Yd,((t,e,n)=>{if(e.graveyardPosition&&(t.graveyardPosition=t.graveyardPosition._getTransformedByDeletion(e.graveyardPosition,1),t.deletionPosition.isEqual(e.graveyardPosition)&&(t.howMany=e.howMany)),t.targetPosition.isEqual(e.splitPosition)){const o=0!=e.howMany,i=e.graveyardPosition&&t.deletionPosition.isEqual(e.graveyardPosition);if(o||i||"mergeTargetNotMoved"==n.abRelation)return t.sourcePosition=t.sourcePosition._getTransformedBySplitOperation(e),[t]}if(t.sourcePosition.isEqual(e.splitPosition)){if("mergeSourceNotMoved"==n.abRelation)return t.howMany=0,t.targetPosition=t.targetPosition._getTransformedBySplitOperation(e),[t];if("mergeSameElement"==n.abRelation||t.sourcePosition.offset>0)return t.sourcePosition=e.moveTargetPosition.clone(),t.targetPosition=t.targetPosition._getTransformedBySplitOperation(e),[t]}return t.sourcePosition.hasSameParentAs(e.splitPosition)&&(t.howMany=e.splitPosition.offset),t.sourcePosition=t.sourcePosition._getTransformedBySplitOperation(e),t.targetPosition=t.targetPosition._getTransformedBySplitOperation(e),[t]})),lh(Zd,Jd,((t,e)=>{const n=kl._createFromPositionAndShift(t.sourcePosition,t.howMany)._getTransformedByInsertOperation(e,!1)[0];return t.sourcePosition=n.start,t.howMany=n.end.offset-n.start.offset,t.targetPosition.isEqual(e.position)||(t.targetPosition=t.targetPosition._getTransformedByInsertOperation(e)),[t]})),lh(Zd,Zd,((t,e,n)=>{const o=kl._createFromPositionAndShift(t.sourcePosition,t.howMany),i=kl._createFromPositionAndShift(e.sourcePosition,e.howMany);let r,s=n.aIsStrong,a=!n.aIsStrong;if("insertBefore"==n.abRelation||"insertAfter"==n.baRelation?a=!0:"insertAfter"!=n.abRelation&&"insertBefore"!=n.baRelation||(a=!1),r=t.targetPosition.isEqual(e.targetPosition)&&a?t.targetPosition._getTransformedByDeletion(e.sourcePosition,e.howMany):t.targetPosition._getTransformedByMove(e.sourcePosition,e.targetPosition,e.howMany),kh(t,e)&&kh(e,t))return[e.getReversed()];if(o.containsPosition(e.targetPosition)&&o.containsRange(i,!0))return o.start=o.start._getTransformedByMove(e.sourcePosition,e.targetPosition,e.howMany),o.end=o.end._getTransformedByMove(e.sourcePosition,e.targetPosition,e.howMany),bh([o],r);if(i.containsPosition(t.targetPosition)&&i.containsRange(o,!0))return o.start=o.start._getCombined(e.sourcePosition,e.getMovedRangeStart()),o.end=o.end._getCombined(e.sourcePosition,e.getMovedRangeStart()),bh([o],r);const c=it(t.sourcePosition.getParentPath(),e.sourcePosition.getParentPath());if("prefix"==c||"extension"==c)return o.start=o.start._getTransformedByMove(e.sourcePosition,e.targetPosition,e.howMany),o.end=o.end._getTransformedByMove(e.sourcePosition,e.targetPosition,e.howMany),bh([o],r);"remove"!=t.type||"remove"==e.type||n.aWasUndone||n.forceWeakRemove?"remove"==t.type||"remove"!=e.type||n.bWasUndone||n.forceWeakRemove||(s=!1):s=!0;const l=[],d=o.getDifference(i);for(const t of d){t.start=t.start._getTransformedByDeletion(e.sourcePosition,e.howMany),t.end=t.end._getTransformedByDeletion(e.sourcePosition,e.howMany);const n="same"==it(t.start.getParentPath(),e.getMovedRangeStart().getParentPath()),o=t._getTransformedByInsertion(e.getMovedRangeStart(),e.howMany,n);l.push(...o)}const h=o.getIntersection(i);return null!==h&&s&&(h.start=h.start._getCombined(e.sourcePosition,e.getMovedRangeStart()),h.end=h.end._getCombined(e.sourcePosition,e.getMovedRangeStart()),0===l.length?l.push(h):1==l.length?i.start.isBefore(o.start)||i.start.isEqual(o.start)?l.unshift(h):l.push(h):l.splice(1,0,h)),0===l.length?[new nh(t.baseVersion)]:bh(l,r)})),lh(Zd,Yd,((t,e,n)=>{let o=t.targetPosition.clone();t.targetPosition.isEqual(e.insertionPosition)&&e.graveyardPosition&&"moveTargetAfter"!=n.abRelation||(o=t.targetPosition._getTransformedBySplitOperation(e));const i=kl._createFromPositionAndShift(t.sourcePosition,t.howMany);if(i.end.isEqual(e.insertionPosition))return e.graveyardPosition||t.howMany++,t.targetPosition=o,[t];if(i.start.hasSameParentAs(e.splitPosition)&&i.containsPosition(e.splitPosition)){let t=new kl(e.splitPosition,i.end);t=t._getTransformedBySplitOperation(e);return bh([new kl(i.start,e.splitPosition),t],o)}t.targetPosition.isEqual(e.splitPosition)&&"insertAtSource"==n.abRelation&&(o=e.moveTargetPosition),t.targetPosition.isEqual(e.insertionPosition)&&"insertBetween"==n.abRelation&&(o=t.targetPosition);const r=[i._getTransformedBySplitOperation(e)];if(e.graveyardPosition){const o=i.start.isEqual(e.graveyardPosition)||i.containsPosition(e.graveyardPosition);t.howMany>1&&o&&!n.aWasUndone&&r.push(kl._createFromPositionAndShift(e.insertionPosition,1))}return bh(r,o)})),lh(Zd,Qd,((t,e,n)=>{const o=kl._createFromPositionAndShift(t.sourcePosition,t.howMany);if(e.deletionPosition.hasSameParentAs(t.sourcePosition)&&o.containsPosition(e.sourcePosition))if("remove"!=t.type||n.forceWeakRemove){if(1==t.howMany)return n.bWasUndone?(t.sourcePosition=e.graveyardPosition.clone(),t.targetPosition=t.targetPosition._getTransformedByMergeOperation(e),[t]):[new nh(0)]}else if(!n.aWasUndone){const n=[];let o=e.graveyardPosition.clone(),i=e.targetPosition._getTransformedByMergeOperation(e);t.howMany>1&&(n.push(new Zd(t.sourcePosition,t.howMany-1,t.targetPosition,0)),o=o._getTransformedByMove(t.sourcePosition,t.targetPosition,t.howMany-1),i=i._getTransformedByMove(t.sourcePosition,t.targetPosition,t.howMany-1));const r=e.deletionPosition._getCombined(t.sourcePosition,t.targetPosition),s=new Zd(o,1,r,0),a=s.getMovedRangeStart().path.slice();a.push(0);const c=new hl(s.targetPosition.root,a);i=i._getTransformedByMove(o,r,1);const l=new Zd(i,e.howMany,c,0);return n.push(s),n.push(l),n}const i=kl._createFromPositionAndShift(t.sourcePosition,t.howMany)._getTransformedByMergeOperation(e);return t.sourcePosition=i.start,t.howMany=i.end.offset-i.start.offset,t.targetPosition=t.targetPosition._getTransformedByMergeOperation(e),[t]})),lh(oh,Jd,((t,e)=>(t.position=t.position._getTransformedByInsertOperation(e),[t]))),lh(oh,Qd,((t,e)=>t.position.isEqual(e.deletionPosition)?(t.position=e.graveyardPosition.clone(),t.position.stickiness="toNext",[t]):(t.position=t.position._getTransformedByMergeOperation(e),[t]))),lh(oh,Zd,((t,e)=>(t.position=t.position._getTransformedByMoveOperation(e),[t]))),lh(oh,oh,((t,e,n)=>{if(t.position.isEqual(e.position)){if(!n.aIsStrong)return[new nh(0)];t.oldName=e.newName}return[t]})),lh(oh,Yd,((t,e)=>{if("same"==it(t.position.path,e.splitPosition.getParentPath())&&!e.graveyardPosition){const e=new oh(t.position.getShiftedBy(1),t.oldName,t.newName,0);return[t,e]}return t.position=t.position._getTransformedBySplitOperation(e),[t]})),lh(ih,ih,((t,e,n)=>{if(t.root===e.root&&t.key===e.key){if(!n.aIsStrong||t.newValue===e.newValue)return[new nh(0)];t.oldValue=e.newValue}return[t]})),lh(rh,rh,((t,e)=>t.rootName===e.rootName&&t.isAdd===e.isAdd?[new nh(0)]:[t])),lh(Yd,Jd,((t,e)=>(t.splitPosition.hasSameParentAs(e.position)&&t.splitPosition.offset{if(!t.graveyardPosition&&!n.bWasUndone&&t.splitPosition.hasSameParentAs(e.sourcePosition)){const n=e.graveyardPosition.path.slice();n.push(0);const o=new hl(e.graveyardPosition.root,n),i=Yd.getInsertionPosition(new hl(e.graveyardPosition.root,n)),r=new Yd(o,0,i,null,0);return t.splitPosition=t.splitPosition._getTransformedByMergeOperation(e),t.insertionPosition=Yd.getInsertionPosition(t.splitPosition),t.graveyardPosition=r.insertionPosition.clone(),t.graveyardPosition.stickiness="toNext",[r,t]}return t.splitPosition.hasSameParentAs(e.deletionPosition)&&!t.splitPosition.isAfter(e.deletionPosition)&&t.howMany--,t.splitPosition.hasSameParentAs(e.targetPosition)&&(t.howMany+=e.howMany),t.splitPosition=t.splitPosition._getTransformedByMergeOperation(e),t.insertionPosition=Yd.getInsertionPosition(t.splitPosition),t.graveyardPosition&&(t.graveyardPosition=t.graveyardPosition._getTransformedByMergeOperation(e)),[t]})),lh(Yd,Zd,((t,e,n)=>{const o=kl._createFromPositionAndShift(e.sourcePosition,e.howMany);if(t.graveyardPosition){const i=o.start.isEqual(t.graveyardPosition)||o.containsPosition(t.graveyardPosition);if(!n.bWasUndone&&i){const n=t.splitPosition._getTransformedByMoveOperation(e),o=t.graveyardPosition._getTransformedByMoveOperation(e),i=o.path.slice();i.push(0);const r=new hl(o.root,i);return[new Zd(n,t.howMany,r,0)]}t.graveyardPosition=t.graveyardPosition._getTransformedByMoveOperation(e)}const i=t.splitPosition.isEqual(e.targetPosition);if(i&&("insertAtSource"==n.baRelation||"splitBefore"==n.abRelation))return t.howMany+=e.howMany,t.splitPosition=t.splitPosition._getTransformedByDeletion(e.sourcePosition,e.howMany),t.insertionPosition=Yd.getInsertionPosition(t.splitPosition),[t];if(i&&n.abRelation&&n.abRelation.howMany){const{howMany:e,offset:o}=n.abRelation;return t.howMany+=e,t.splitPosition=t.splitPosition.getShiftedBy(o),[t]}if(t.splitPosition.hasSameParentAs(e.sourcePosition)&&o.containsPosition(t.splitPosition)){const n=e.howMany-(t.splitPosition.offset-e.sourcePosition.offset);return t.howMany-=n,t.splitPosition.hasSameParentAs(e.targetPosition)&&t.splitPosition.offset{if(t.splitPosition.isEqual(e.splitPosition)){if(!t.graveyardPosition&&!e.graveyardPosition)return[new nh(0)];if(t.graveyardPosition&&e.graveyardPosition&&t.graveyardPosition.isEqual(e.graveyardPosition))return[new nh(0)];if("splitBefore"==n.abRelation)return t.howMany=0,t.graveyardPosition=t.graveyardPosition._getTransformedBySplitOperation(e),[t]}if(t.graveyardPosition&&e.graveyardPosition&&t.graveyardPosition.isEqual(e.graveyardPosition)){const o="$graveyard"==t.splitPosition.root.rootName,i="$graveyard"==e.splitPosition.root.rootName;if(i&&!o||!(o&&!i)&&n.aIsStrong){const n=[];return e.howMany&&n.push(new Zd(e.moveTargetPosition,e.howMany,e.splitPosition,0)),t.howMany&&n.push(new Zd(t.splitPosition,t.howMany,t.moveTargetPosition,0)),n}return[new nh(0)]}if(t.graveyardPosition&&(t.graveyardPosition=t.graveyardPosition._getTransformedBySplitOperation(e)),t.splitPosition.isEqual(e.insertionPosition)&&"splitBefore"==n.abRelation)return t.howMany++,[t];if(e.splitPosition.isEqual(t.insertionPosition)&&"splitBefore"==n.baRelation){const n=e.insertionPosition.path.slice();n.push(0);const o=new hl(e.insertionPosition.root,n);return[t,new Zd(t.insertionPosition,1,o,0)]}return t.splitPosition.hasSameParentAs(e.splitPosition)&&t.splitPosition.offset{const n=e[0];n.isDocumentOperation&&Ah.call(this,n)}),{priority:"low"})}function Ah(t){const e=this.getTransformedByOperation(t);if(!this.isEqual(e)){const t=this.toPosition();this.path=e.path,this.root=e.root,this.fire("change",t)}}wh.prototype.is=function(t){return"livePosition"===t||"model:livePosition"===t||"position"==t||"model:position"===t};class Ch{operations;isUndoable;isLocal;isUndo;isTyping;constructor(t={}){"string"==typeof t&&(t="transparent"===t?{isUndoable:!1}:{},E("batch-constructor-deprecated-string-type"));const{isUndoable:e=!0,isLocal:n=!0,isUndo:o=!1,isTyping:i=!1}=t;this.operations=[],this.isUndoable=e,this.isLocal=n,this.isUndo=o,this.isTyping=i}get type(){return E("batch-type-deprecated"),"default"}get baseVersion(){for(const t of this.operations)if(null!==t.baseVersion)return t.baseVersion;return null}addOperation(t){return t.batch=this,this.operations.push(t),t}}class vh{_markerCollection;_changesInElement=new Map;_elementSnapshots=new Map;_changedMarkers=new Map;_changedRoots=new Map;_changeCount=0;_cachedChanges=null;_cachedChangesWithGraveyard=null;_refreshedItems=new Set;constructor(t){this._markerCollection=t}get isEmpty(){return 0==this._changesInElement.size&&0==this._changedMarkers.size&&0==this._changedRoots.size}bufferOperation(t){const e=t;switch(e.type){case"insert":if(this._isInInsertedElement(e.position.parent))return;this._markInsert(e.position.parent,e.position.offset,e.nodes.maxOffset);break;case"addAttribute":case"removeAttribute":case"changeAttribute":for(const t of e.range.getItems({shallow:!0}))this._isInInsertedElement(t.parent)||this._markAttribute(t);break;case"remove":case"move":case"reinsert":{if(e.sourcePosition.isEqual(e.targetPosition)||e.sourcePosition.getShiftedBy(e.howMany).isEqual(e.targetPosition))return;const t=this._isInInsertedElement(e.sourcePosition.parent),n=this._isInInsertedElement(e.targetPosition.parent);t||this._markRemove(e.sourcePosition.parent,e.sourcePosition.offset,e.howMany),n||this._markInsert(e.targetPosition.parent,e.getMovedRangeStart().offset,e.howMany);break}case"rename":{if(this._isInInsertedElement(e.position.parent))return;this._markRemove(e.position.parent,e.position.offset,1),this._markInsert(e.position.parent,e.position.offset,1);const t=kl._createFromPositionAndShift(e.position,1);for(const e of this._markerCollection.getMarkersIntersectingRange(t)){const t=e.getData();this.bufferMarkerChange(e.name,t,t)}break}case"split":{const t=e.splitPosition.parent;this._isInInsertedElement(t)||this._markRemove(t,e.splitPosition.offset,e.howMany),this._isInInsertedElement(e.insertionPosition.parent)||this._markInsert(e.insertionPosition.parent,e.insertionPosition.offset,1),e.graveyardPosition&&this._markRemove(e.graveyardPosition.parent,e.graveyardPosition.offset,1);break}case"merge":{const t=e.sourcePosition.parent;this._isInInsertedElement(t.parent)||this._markRemove(t.parent,t.startOffset,1);const n=e.graveyardPosition.parent;this._markInsert(n,e.graveyardPosition.offset,1);const o=e.targetPosition.parent;this._isInInsertedElement(o)||this._markInsert(o,e.targetPosition.offset,t.maxOffset);break}case"detachRoot":case"addRoot":{const t=e.affectedSelectable;if(!t._isLoaded)return;if(t.isAttached()==e.isAdd)return;this._bufferRootStateChange(e.rootName,e.isAdd);break}case"addRootAttribute":case"removeRootAttribute":case"changeRootAttribute":{if(!e.root._isLoaded)return;const t=e.root.rootName;this._bufferRootAttributeChange(t,e.key,e.oldValue,e.newValue);break}}this._cachedChanges=null}bufferMarkerChange(t,e,n){e.range&&e.range.root.is("rootElement")&&!e.range.root._isLoaded&&(e.range=null),n.range&&n.range.root.is("rootElement")&&!n.range.root._isLoaded&&(n.range=null);let o=this._changedMarkers.get(t);o?o.newMarkerData=n:(o={newMarkerData:n,oldMarkerData:e},this._changedMarkers.set(t,o)),null==o.oldMarkerData.range&&null==n.range&&this._changedMarkers.delete(t)}getMarkersToRemove(){const t=[];for(const[e,n]of this._changedMarkers)null!=n.oldMarkerData.range&&t.push({name:e,range:n.oldMarkerData.range});return t}getMarkersToAdd(){const t=[];for(const[e,n]of this._changedMarkers)null!=n.newMarkerData.range&&t.push({name:e,range:n.newMarkerData.range});return t}getChangedMarkers(){return Array.from(this._changedMarkers).map((([t,e])=>({name:t,data:{oldRange:e.oldMarkerData.range,newRange:e.newMarkerData.range}})))}hasDataChanges(){if(this.getChanges().length)return!0;if(this._changedRoots.size>0)return!0;for(const{newMarkerData:t,oldMarkerData:e}of this._changedMarkers.values()){if(t.affectsData!==e.affectsData)return!0;if(t.affectsData){const n=t.range&&!e.range,o=!t.range&&e.range,i=t.range&&e.range&&!t.range.isEqual(e.range);if(n||o||i)return!0}}return!1}getChanges(t={}){if(this._cachedChanges)return t.includeChangesInGraveyard?this._cachedChangesWithGraveyard.slice():this._cachedChanges.slice();let e=[];for(const t of this._changesInElement.keys()){const n=this._changesInElement.get(t).sort(((t,e)=>t.offset===e.offset?t.type!=e.type?"remove"==t.type?-1:1:0:t.offsett.position.root!=e.position.root?t.position.root.rootNamet));for(const t of e)delete t.changeCount,"attribute"==t.type&&(delete t.position,delete t.length);return this._changeCount=0,this._cachedChangesWithGraveyard=e,this._cachedChanges=e.filter(Eh),t.includeChangesInGraveyard?this._cachedChangesWithGraveyard.slice():this._cachedChanges.slice()}getChangedRoots(){return Array.from(this._changedRoots.values()).map((t=>{const e={...t};return void 0!==e.state&&delete e.attributes,e}))}getRefreshedItems(){return new Set(this._refreshedItems)}reset(){this._changesInElement.clear(),this._elementSnapshots.clear(),this._changedMarkers.clear(),this._changedRoots.clear(),this._refreshedItems=new Set,this._cachedChanges=null}_bufferRootStateChange(t,e){if(!this._changedRoots.has(t))return void this._changedRoots.set(t,{name:t,state:e?"attached":"detached"});const n=this._changedRoots.get(t);void 0!==n.state?(delete n.state,void 0===n.attributes&&this._changedRoots.delete(t)):n.state=e?"attached":"detached"}_bufferRootAttributeChange(t,e,n,o){const i=this._changedRoots.get(t)||{name:t},r=i.attributes||{};if(r[e]){const t=r[e];o===t.oldValue?delete r[e]:t.newValue=o}else r[e]={oldValue:n,newValue:o};0===Object.entries(r).length?(delete i.attributes,void 0===i.state&&this._changedRoots.delete(t)):(i.attributes=r,this._changedRoots.set(t,i))}_refreshItem(t){if(this._isInInsertedElement(t.parent))return;this._markRemove(t.parent,t.startOffset,t.offsetSize),this._markInsert(t.parent,t.startOffset,t.offsetSize),this._refreshedItems.add(t);const e=kl._createOn(t);for(const t of this._markerCollection.getMarkersIntersectingRange(e)){const e=t.getData();this.bufferMarkerChange(t.name,e,e)}this._cachedChanges=null}_bufferRootLoad(t){if(t.isAttached()){this._bufferRootStateChange(t.rootName,!0),this._markInsert(t,0,t.maxOffset);for(const e of t.getAttributeKeys())this._bufferRootAttributeChange(t.rootName,e,null,t.getAttribute(e));for(const e of this._markerCollection)if(e.getRange().root==t){const t=e.getData();this.bufferMarkerChange(e.name,{...t,range:null},t)}}}_markInsert(t,e,n){if(t.root.is("rootElement")&&!t.root._isLoaded)return;const o={type:"insert",offset:e,howMany:n,count:this._changeCount++};this._markChange(t,o)}_markRemove(t,e,n){if(t.root.is("rootElement")&&!t.root._isLoaded)return;const o={type:"remove",offset:e,howMany:n,count:this._changeCount++};this._markChange(t,o),this._removeAllNestedChanges(t,e,n)}_markAttribute(t){if(t.root.is("rootElement")&&!t.root._isLoaded)return;const e={type:"attribute",offset:t.startOffset,howMany:t.offsetSize,count:this._changeCount++};this._markChange(t.parent,e)}_markChange(t,e){this._makeSnapshot(t);const n=this._getChangesForElement(t);this._handleChange(e,n),n.push(e);for(let t=0;tn.offset){if(o>i){const t={type:"attribute",offset:i,howMany:o-i,count:this._changeCount++};this._handleChange(t,e),e.push(t)}t.nodesToHandle=n.offset-t.offset,t.howMany=t.nodesToHandle}else t.offset>=n.offset&&t.offseti?(t.nodesToHandle=o-i,t.offset=i):t.nodesToHandle=0);if("remove"==n.type&&t.offsetn.offset){const i={type:"attribute",offset:n.offset,howMany:o-n.offset,count:this._changeCount++};this._handleChange(i,e),e.push(i),t.nodesToHandle=n.offset-t.offset,t.howMany=t.nodesToHandle}"attribute"==n.type&&(t.offset>=n.offset&&o<=i?(t.nodesToHandle=0,t.howMany=0,t.offset=0):t.offset<=n.offset&&o>=i&&(n.howMany=0))}}t.howMany=t.nodesToHandle,delete t.nodesToHandle}_getInsertDiff(t,e,n){return{type:"insert",position:hl._createAt(t,e),name:n.name,attributes:new Map(n.attributes),length:1,changeCount:this._changeCount++,_element:n.element}}_getRemoveDiff(t,e,n){return{type:"remove",position:hl._createAt(t,e),name:n.name,attributes:new Map(n.attributes),length:1,changeCount:this._changeCount++,_element:n.element}}_getAttributesDiff(t,e,n){const o=[];n=new Map(n);for(const[i,r]of e){const e=n.has(i)?n.get(i):null;e!==r&&o.push({type:"attribute",position:t.start,range:t.clone(),length:1,attributeKey:i,attributeOldValue:r,attributeNewValue:e,changeCount:this._changeCount++}),n.delete(i)}for(const[e,i]of n)o.push({type:"attribute",position:t.start,range:t.clone(),length:1,attributeKey:e,attributeOldValue:null,attributeNewValue:i,changeCount:this._changeCount++});return o}_isInInsertedElement(t){const e=t.parent;if(!e)return!1;const n=this._changesInElement.get(e),o=t.startOffset;if(n)for(const t of n)if("insert"==t.type&&o>=t.offset&&oo){for(let e=0;ethis._version+1&&this._gaps.set(this._version,t),this._version=t}get lastOperation(){return this._operations[this._operations.length-1]}addOperation(t){if(t.baseVersion!==this.version)throw new x("model-document-history-addoperation-incorrect-version",this,{operation:t,historyVersion:this.version});this._operations.push(t),this._version++,this._baseVersionToOperationIndex.set(t.baseVersion,this._operations.length-1)}getOperations(t,e=this.version){if(!this._operations.length)return[];const n=this._operations[0];void 0===t&&(t=n.baseVersion);let o=e-1;for(const[e,n]of this._gaps)t>e&&te&&othis.lastOperation.baseVersion)return[];let i=this._baseVersionToOperationIndex.get(t);void 0===i&&(i=0);let r=this._baseVersionToOperationIndex.get(o);return void 0===r&&(r=this._operations.length-1),this._operations.slice(i,r+1)}getOperation(t){const e=this._baseVersionToOperationIndex.get(t);if(void 0!==e)return this._operations[e]}setOperationAsUndone(t,e){this._undoPairs.set(e,t),this._undoneOperations.add(t)}isUndoingOperation(t){return this._undoPairs.has(t)}isUndoneOperation(t){return this._undoneOperations.has(t)}getUndoneOperation(t){return this._undoPairs.get(t)}reset(){this._version=0,this._undoPairs=new Map,this._operations=[],this._undoneOperations=new Set,this._gaps=new Map,this._baseVersionToOperationIndex=new Map}}class Bh extends cl{rootName;_document;_isAttached=!0;_isLoaded=!0;constructor(t,e,n="main"){super(e),this._document=t,this.rootName=n}get document(){return this._document}isAttached(){return this._isAttached}toJSON(){return this.rootName}}Bh.prototype.is=function(t,e){return e?e===this.name&&("rootElement"===t||"model:rootElement"===t||"element"===t||"model:element"===t):"rootElement"===t||"model:rootElement"===t||"element"===t||"model:element"===t||"node"===t||"model:node"===t};const Th="$graveyard";class Sh extends(L()){model;history;selection;roots;differ;isReadOnly;_postFixers;_hasSelectionChangedFromTheLastChangeBlock;constructor(t){super(),this.model=t,this.history=new Dh,this.selection=new Ll(this),this.roots=new Qi({idProperty:"rootName"}),this.differ=new vh(t.markers),this.isReadOnly=!1,this._postFixers=new Set,this._hasSelectionChangedFromTheLastChangeBlock=!1,this.createRoot("$root",Th),this.listenTo(t,"applyOperation",((t,e)=>{const n=e[0];n.isDocumentOperation&&this.differ.bufferOperation(n)}),{priority:"high"}),this.listenTo(t,"applyOperation",((t,e)=>{const n=e[0];n.isDocumentOperation&&this.history.addOperation(n)}),{priority:"low"}),this.listenTo(this.selection,"change",(()=>{this._hasSelectionChangedFromTheLastChangeBlock=!0})),this.listenTo(t.markers,"update",((t,e,n,o,i)=>{const r={...e.getData(),range:o};this.differ.bufferMarkerChange(e.name,i,r),null===n&&e.on("change",((t,n)=>{const o=e.getData();this.differ.bufferMarkerChange(e.name,{...o,range:n},o)}))})),this.registerPostFixer((t=>{let e=!1;for(const n of this.roots)n.isAttached()||n.isEmpty||(t.remove(t.createRangeIn(n)),e=!0);for(const n of this.model.markers)n.getRange().root.isAttached()||(t.removeMarker(n),e=!0);return e}))}get version(){return this.history.version}set version(t){this.history.version=t}get graveyard(){return this.getRoot(Th)}createRoot(t="$root",e="main"){if(this.roots.get(e))throw new x("model-document-createroot-name-exists",this,{name:e});const n=new Bh(this,t,e);return this.roots.add(n),n}destroy(){this.selection.destroy(),this.stopListening()}getRoot(t="main"){return this.roots.get(t)}getRootNames(t=!1){return this.getRoots(t).map((t=>t.rootName))}getRoots(t=!1){return this.roots.filter((e=>e!=this.graveyard&&(t||e.isAttached())&&e._isLoaded))}registerPostFixer(t){this._postFixers.add(t)}toJSON(){const t=rs(this);return t.selection="[engine.model.DocumentSelection]",t.model="[engine.model.Model]",t}_handleChangeBlock(t){this._hasDocumentChangedFromTheLastChangeBlock()&&(this._callPostFixers(t),this.selection.refresh(),this.differ.hasDataChanges()?this.fire("change:data",t.batch):this.fire("change",t.batch),this.selection.refresh(),this.differ.reset()),this._hasSelectionChangedFromTheLastChangeBlock=!1}_hasDocumentChangedFromTheLastChangeBlock(){return!this.differ.isEmpty||this._hasSelectionChangedFromTheLastChangeBlock}_getDefaultRoot(){const t=this.getRoots();return t.length?t[0]:this.graveyard}_getDefaultRange(){const t=this._getDefaultRoot(),e=this.model,n=e.schema,o=e.createPositionFromPath(t,[0]);return n.getNearestSelectionRange(o)||e.createRange(o)}_validateSelectionRange(t){return Ih(t.start)&&Ih(t.end)}_callPostFixers(t){let e=!1;do{for(const n of this._postFixers)if(this.selection.refresh(),e=n(t),e)break}while(e)}}function Ih(t){const e=t.textNode;if(e){const n=e.data,o=t.offset-e.startOffset;return!ir(n,o)&&!rr(n,o)}return!0}class Ph extends(L()){_markers=new Map;[Symbol.iterator](){return this._markers.values()}has(t){const e=t instanceof zh?t.name:t;return this._markers.has(e)}get(t){return this._markers.get(t)||null}_set(t,e,n=!1,o=!1){const i=t instanceof zh?t.name:t;if(i.includes(","))throw new x("markercollection-incorrect-marker-name",this);const r=this._markers.get(i);if(r){const t=r.getData(),s=r.getRange();let a=!1;return s.isEqual(e)||(r._attachLiveRange(Il.fromRange(e)),a=!0),n!=r.managedUsingOperations&&(r._managedUsingOperations=n,a=!0),"boolean"==typeof o&&o!=r.affectsData&&(r._affectsData=o,a=!0),a&&this.fire(`update:${i}`,r,s,e,t),r}const s=Il.fromRange(e),a=new zh(i,s,n,o);return this._markers.set(i,a),this.fire(`update:${i}`,a,null,e,{...a.getData(),range:null}),a}_remove(t){const e=t instanceof zh?t.name:t,n=this._markers.get(e);return!!n&&(this._markers.delete(e),this.fire(`update:${e}`,n,n.getRange(),null,n.getData()),this._destroyMarker(n),!0)}_refresh(t){const e=t instanceof zh?t.name:t,n=this._markers.get(e);if(!n)throw new x("markercollection-refresh-marker-not-exists",this);const o=n.getRange();this.fire(`update:${e}`,n,o,o,n.getData())}*getMarkersAtPosition(t){for(const e of this)e.getRange().containsPosition(t)&&(yield e)}*getMarkersIntersectingRange(t){for(const e of this)null!==e.getRange().getIntersection(t)&&(yield e)}destroy(){for(const t of this._markers.values())this._destroyMarker(t);this._markers=null,this.stopListening()}*getMarkersGroup(t){for(const e of this._markers.values())e.name.startsWith(t+":")&&(yield e)}_destroyMarker(t){t.stopListening(),t._detachLiveRange()}}class zh extends(L(ol)){name;_managedUsingOperations;_affectsData;_liveRange;constructor(t,e,n,o){super(),this.name=t,this._liveRange=this._attachLiveRange(e),this._managedUsingOperations=n,this._affectsData=o}get managedUsingOperations(){if(!this._liveRange)throw new x("marker-destroyed",this);return this._managedUsingOperations}get affectsData(){if(!this._liveRange)throw new x("marker-destroyed",this);return this._affectsData}getData(){return{range:this.getRange(),affectsData:this.affectsData,managedUsingOperations:this.managedUsingOperations}}getStart(){if(!this._liveRange)throw new x("marker-destroyed",this);return this._liveRange.start.clone()}getEnd(){if(!this._liveRange)throw new x("marker-destroyed",this);return this._liveRange.end.clone()}getRange(){if(!this._liveRange)throw new x("marker-destroyed",this);return this._liveRange.toRange()}_attachLiveRange(t){return this._liveRange&&this._detachLiveRange(),t.delegate("change:range").to(this),t.delegate("change:content").to(this),this._liveRange=t,t}_detachLiveRange(){this._liveRange.stopDelegating("change:range",this),this._liveRange.stopDelegating("change:content",this),this._liveRange.detach(),this._liveRange=null}}zh.prototype.is=function(t){return"marker"===t||"model:marker"===t};class Rh extends Hd{sourcePosition;howMany;constructor(t,e){super(null),this.sourcePosition=t.clone(),this.howMany=e}get type(){return"detach"}get affectedSelectable(){return null}toJSON(){const t=super.toJSON();return t.sourcePosition=this.sourcePosition.toJSON(),t}_validate(){if(this.sourcePosition.root.document)throw new x("detach-operation-on-document-node",this)}_execute(){jd(kl._createFromPositionAndShift(this.sourcePosition,this.howMany))}static get className(){return"DetachOperation"}}class Lh extends ol{markers=new Map;_children=new rl;constructor(t){super(),t&&this._insertChild(0,t)}[Symbol.iterator](){return this.getChildren()}get childCount(){return this._children.length}get maxOffset(){return this._children.maxOffset}get isEmpty(){return 0===this.childCount}get nextSibling(){return null}get previousSibling(){return null}get root(){return this}get parent(){return null}get document(){return null}isAttached(){return!1}getAncestors(){return[]}getChild(t){return this._children.getNode(t)}getChildren(){return this._children[Symbol.iterator]()}getChildIndex(t){return this._children.getNodeIndex(t)}getChildStartOffset(t){return this._children.getNodeStartOffset(t)}getPath(){return[]}getNodeByPath(t){let e=this;for(const n of t)e=e.getChild(e.offsetToIndex(n));return e}offsetToIndex(t){return this._children.offsetToIndex(t)}toJSON(){const t=[];for(const e of this._children)t.push(e.toJSON());return t}static fromJSON(t){const e=[];for(const n of t)n.name?e.push(cl.fromJSON(n)):e.push(sl.fromJSON(n));return new Lh(e)}_appendChild(t){this._insertChild(this.childCount,t)}_insertChild(t,e){const n=function(t){if("string"==typeof t)return[new sl(t)];rt(t)||(t=[t]);return Array.from(t).map((t=>"string"==typeof t?new sl(t):t instanceof al?new sl(t.data,t.getAttributes()):t))}(e);for(const t of n)null!==t.parent&&t._remove(),t.parent=this;this._children._insertNodes(t,n)}_removeChildren(t,e=1){const n=this._children._removeNodes(t,e);for(const t of n)t.parent=null;return n}}Lh.prototype.is=function(t){return"documentFragment"===t||"model:documentFragment"===t};class Fh{model;batch;constructor(t,e){this.model=t,this.batch=e}createText(t,e){return new sl(t,e)}createElement(t,e){return new cl(t,e)}createDocumentFragment(){return new Lh}cloneElement(t,e=!0){return t._clone(e)}insert(t,e,n=0){if(this._assertWriterUsedCorrectly(),t instanceof sl&&""==t.data)return;const o=hl._createAt(e,n);if(t.parent){if(Hh(t.root,o.root))return void this.move(kl._createOn(t),o);if(t.root.document)throw new x("model-writer-insert-forbidden-move",this);this.remove(t)}const i=o.root.document?o.root.document.version:null,r=new Jd(o,t,i);if(t instanceof sl&&(r.shouldReceiveAttributes=!0),this.batch.addOperation(r),this.model.applyOperation(r),t instanceof Lh)for(const[e,n]of t.markers){const t=hl._createAt(n.root,0),i={range:new kl(n.start._getCombined(t,o),n.end._getCombined(t,o)),usingOperation:!0,affectsData:!0};this.model.markers.has(e)?this.updateMarker(e,i):this.addMarker(e,i)}}insertText(t,e,n,o){e instanceof Lh||e instanceof cl||e instanceof hl?this.insert(this.createText(t),e,n):this.insert(this.createText(t,e),n,o)}insertElement(t,e,n,o){e instanceof Lh||e instanceof cl||e instanceof hl?this.insert(this.createElement(t),e,n):this.insert(this.createElement(t,e),n,o)}append(t,e){this.insert(t,e,"end")}appendText(t,e,n){e instanceof Lh||e instanceof cl?this.insert(this.createText(t),e,"end"):this.insert(this.createText(t,e),n,"end")}appendElement(t,e,n){e instanceof Lh||e instanceof cl?this.insert(this.createElement(t),e,"end"):this.insert(this.createElement(t,e),n,"end")}setAttribute(t,e,n){if(this._assertWriterUsedCorrectly(),n instanceof kl){const o=n.getMinimalFlatRanges();for(const n of o)Mh(this,t,e,n)}else Vh(this,t,e,n)}setAttributes(t,e){for(const[n,o]of nr(t))this.setAttribute(n,o,e)}removeAttribute(t,e){if(this._assertWriterUsedCorrectly(),e instanceof kl){const n=e.getMinimalFlatRanges();for(const e of n)Mh(this,t,null,e)}else Vh(this,t,null,e)}clearAttributes(t){this._assertWriterUsedCorrectly();const e=t=>{for(const e of t.getAttributeKeys())this.removeAttribute(e,t)};if(t instanceof kl)for(const n of t.getItems())e(n);else e(t)}move(t,e,n){if(this._assertWriterUsedCorrectly(),!(t instanceof kl))throw new x("writer-move-invalid-range",this);if(!t.isFlat)throw new x("writer-move-range-not-flat",this);const o=hl._createAt(e,n);if(o.isEqual(t.start))return;if(this._addOperationForAffectedMarkers("move",t),!Hh(t.root,o.root))throw new x("writer-move-different-document",this);const i=t.root.document?t.root.document.version:null,r=new Zd(t.start,t.end.offset-t.start.offset,o,i);this.batch.addOperation(r),this.model.applyOperation(r)}remove(t){this._assertWriterUsedCorrectly();const e=(t instanceof kl?t:kl._createOn(t)).getMinimalFlatRanges().reverse();for(const t of e)this._addOperationForAffectedMarkers("move",t),Nh(t.start,t.end.offset-t.start.offset,this.batch,this.model)}merge(t){this._assertWriterUsedCorrectly();const e=t.nodeBefore,n=t.nodeAfter;if(this._addOperationForAffectedMarkers("merge",t),!(e instanceof cl))throw new x("writer-merge-no-element-before",this);if(!(n instanceof cl))throw new x("writer-merge-no-element-after",this);t.root.document?this._merge(t):this._mergeDetached(t)}createPositionFromPath(t,e,n){return this.model.createPositionFromPath(t,e,n)}createPositionAt(t,e){return this.model.createPositionAt(t,e)}createPositionAfter(t){return this.model.createPositionAfter(t)}createPositionBefore(t){return this.model.createPositionBefore(t)}createRange(t,e){return this.model.createRange(t,e)}createRangeIn(t){return this.model.createRangeIn(t)}createRangeOn(t){return this.model.createRangeOn(t)}createSelection(...t){return this.model.createSelection(...t)}_mergeDetached(t){const e=t.nodeBefore,n=t.nodeAfter;this.move(kl._createIn(n),hl._createAt(e,"end")),this.remove(n)}_merge(t){const e=hl._createAt(t.nodeBefore,"end"),n=hl._createAt(t.nodeAfter,0),o=t.root.document.graveyard,i=new hl(o,[0]),r=t.root.document.version,s=new Qd(n,t.nodeAfter.maxOffset,e,i,r);this.batch.addOperation(s),this.model.applyOperation(s)}rename(t,e){if(this._assertWriterUsedCorrectly(),!(t instanceof cl))throw new x("writer-rename-not-element-instance",this);const n=t.root.document?t.root.document.version:null,o=new oh(hl._createBefore(t),t.name,e,n);this.batch.addOperation(o),this.model.applyOperation(o)}split(t,e){this._assertWriterUsedCorrectly();let n,o,i=t.parent;if(!i.parent)throw new x("writer-split-element-no-parent",this);if(e||(e=i.parent),!t.parent.getAncestors({includeSelf:!0}).includes(e))throw new x("writer-split-invalid-limit-element",this);do{const e=i.root.document?i.root.document.version:null,r=i.maxOffset-t.offset,s=Yd.getInsertionPosition(t),a=new Yd(t,r,s,null,e);this.batch.addOperation(a),this.model.applyOperation(a),n||o||(n=i,o=t.parent.nextSibling),i=(t=this.createPositionAfter(t.parent)).parent}while(i!==e);return{position:t,range:new kl(hl._createAt(n,"end"),hl._createAt(o,0))}}wrap(t,e){if(this._assertWriterUsedCorrectly(),!t.isFlat)throw new x("writer-wrap-range-not-flat",this);const n=e instanceof cl?e:new cl(e);if(n.childCount>0)throw new x("writer-wrap-element-not-empty",this);if(null!==n.parent)throw new x("writer-wrap-element-attached",this);this.insert(n,t.start);const o=new kl(t.start.getShiftedBy(1),t.end.getShiftedBy(1));this.move(o,hl._createAt(n,0))}unwrap(t){if(this._assertWriterUsedCorrectly(),null===t.parent)throw new x("writer-unwrap-element-no-parent",this);this.move(kl._createIn(t),this.createPositionAfter(t)),this.remove(t)}addMarker(t,e){if(this._assertWriterUsedCorrectly(),!e||"boolean"!=typeof e.usingOperation)throw new x("writer-addmarker-no-usingoperation",this);const n=e.usingOperation,o=e.range,i=void 0!==e.affectsData&&e.affectsData;if(this.model.markers.has(t))throw new x("writer-addmarker-marker-exists",this);if(!o)throw new x("writer-addmarker-no-range",this);return n?(Oh(this,t,null,o,i),this.model.markers.get(t)):this.model.markers._set(t,o,n,i)}updateMarker(t,e){this._assertWriterUsedCorrectly();const n="string"==typeof t?t:t.name,o=this.model.markers.get(n);if(!o)throw new x("writer-updatemarker-marker-not-exists",this);if(!e)return E("writer-updatemarker-reconvert-using-editingcontroller",{markerName:n}),void this.model.markers._refresh(o);const i="boolean"==typeof e.usingOperation,r="boolean"==typeof e.affectsData,s=r?e.affectsData:o.affectsData;if(!i&&!e.range&&!r)throw new x("writer-updatemarker-wrong-options",this);const a=o.getRange(),c=e.range?e.range:a;i&&e.usingOperation!==o.managedUsingOperations?e.usingOperation?Oh(this,n,null,c,s):(Oh(this,n,a,null,s),this.model.markers._set(n,c,void 0,s)):o.managedUsingOperations?Oh(this,n,a,c,s):this.model.markers._set(n,c,void 0,s)}removeMarker(t){this._assertWriterUsedCorrectly();const e="string"==typeof t?t:t.name;if(!this.model.markers.has(e))throw new x("writer-removemarker-no-marker",this);const n=this.model.markers.get(e);if(!n.managedUsingOperations)return void this.model.markers._remove(e);Oh(this,e,n.getRange(),null,n.affectsData)}addRoot(t,e="$root"){this._assertWriterUsedCorrectly();const n=this.model.document.getRoot(t);if(n&&n.isAttached())throw new x("writer-addroot-root-exists",this);const o=this.model.document,i=new rh(t,e,!0,o,o.version);return this.batch.addOperation(i),this.model.applyOperation(i),this.model.document.getRoot(t)}detachRoot(t){this._assertWriterUsedCorrectly();const e="string"==typeof t?this.model.document.getRoot(t):t;if(!e||!e.isAttached())throw new x("writer-detachroot-no-root",this);for(const t of this.model.markers)t.getRange().root===e&&this.removeMarker(t);for(const t of e.getAttributeKeys())this.removeAttribute(t,e);this.remove(this.createRangeIn(e));const n=this.model.document,o=new rh(e.rootName,e.name,!1,n,n.version);this.batch.addOperation(o),this.model.applyOperation(o)}setSelection(...t){this._assertWriterUsedCorrectly(),this.model.document.selection._setTo(...t)}setSelectionFocus(t,e){this._assertWriterUsedCorrectly(),this.model.document.selection._setFocus(t,e)}setSelectionAttribute(t,e){if(this._assertWriterUsedCorrectly(),"string"==typeof t)this._setSelectionAttribute(t,e);else for(const[e,n]of nr(t))this._setSelectionAttribute(e,n)}removeSelectionAttribute(t){if(this._assertWriterUsedCorrectly(),"string"==typeof t)this._removeSelectionAttribute(t);else for(const e of t)this._removeSelectionAttribute(e)}overrideSelectionGravity(){return this.model.document.selection._overrideGravity()}restoreSelectionGravity(t){this.model.document.selection._restoreGravity(t)}_setSelectionAttribute(t,e){const n=this.model.document.selection;if(n.isCollapsed&&n.anchor.parent.isEmpty){const o=Ll._getStoreAttributeKey(t);this.setAttribute(o,e,n.anchor.parent)}n._setAttribute(t,e)}_removeSelectionAttribute(t){const e=this.model.document.selection;if(e.isCollapsed&&e.anchor.parent.isEmpty){const n=Ll._getStoreAttributeKey(t);this.removeAttribute(n,e.anchor.parent)}e._removeAttribute(t)}_assertWriterUsedCorrectly(){if(this.model._currentWriter!==this)throw new x("writer-incorrect-use",this)}_addOperationForAffectedMarkers(t,e){for(const n of this.model.markers){if(!n.managedUsingOperations)continue;const o=n.getRange();let i=!1;if("move"===t){const t=e;i=t.containsPosition(o.start)||t.start.isEqual(o.start)||t.containsPosition(o.end)||t.end.isEqual(o.end)}else{const t=e,n=t.nodeBefore,r=t.nodeAfter,s=o.start.parent==n&&o.start.isAtEnd,a=o.end.parent==r&&0==o.end.offset,c=o.end.nodeAfter==r,l=o.start.nodeAfter==r;i=s||a||c||l}i&&this.updateMarker(n.name,{range:o})}}}function Mh(t,e,n,o){const i=t.model,r=i.document;let s,a,c,l=o.start;for(const t of o.getWalker({shallow:!0}))c=t.item.getAttribute(e),s&&a!=c&&(a!=n&&d(),l=s),s=t.nextPosition,a=c;function d(){const o=new kl(l,s),c=o.root.document?r.version:null,d=new eh(o,e,a,n,c);t.batch.addOperation(d),i.applyOperation(d)}s instanceof hl&&s!=l&&a!=n&&d()}function Vh(t,e,n,o){const i=t.model,r=i.document,s=o.getAttribute(e);let a,c;if(s!=n){if(o.root===o){const t=o.document?r.version:null;c=new ih(o,e,s,n,t)}else{a=new kl(hl._createBefore(o),t.createPositionAfter(o));const i=a.root.document?r.version:null;c=new eh(a,e,s,n,i)}t.batch.addOperation(c),i.applyOperation(c)}}function Oh(t,e,n,o,i){const r=t.model,s=r.document,a=new Xd(e,n,o,r.markers,!!i,s.version);t.batch.addOperation(a),r.applyOperation(a)}function Nh(t,e,n,o){let i;if(t.root.document){const n=o.document,r=new hl(n.graveyard,[0]);i=new Zd(t,e,r,n.version)}else i=new Rh(t,e);n.addOperation(i),o.applyOperation(i)}function Hh(t,e){return t===e||t instanceof Bh&&e instanceof Bh}function qh(t,e,n={}){if(e.isCollapsed)return;const o=e.getFirstRange();if("$graveyard"==o.root.rootName)return;const i=t.schema;t.change((t=>{if(!n.doNotResetEntireContent&&function(t,e){const n=t.getLimitElement(e);if(!e.containsEntireContent(n))return!1;const o=e.getFirstRange();if(o.start.parent==o.end.parent)return!1;return t.checkChild(n,"paragraph")}(i,e))return void function(t,e){const n=t.model.schema.getLimitElement(e);t.remove(t.createRangeIn(n)),Kh(t,t.createPositionAt(n,0),e)}(t,e);const r={};if(!n.doNotAutoparagraph){const t=e.getSelectedElement();t&&Object.assign(r,i.getAttributesWithProperty(t,"copyOnReplace",!0))}const[s,a]=function(t){const e=t.root.document.model,n=t.start;let o=t.end;if(e.hasContent(t,{ignoreMarkers:!0})){const n=function(t){const e=t.parent,n=e.root.document.model.schema,o=e.getAncestors({parentFirst:!0,includeSelf:!0});for(const t of o){if(n.isLimit(t))return null;if(n.isBlock(t))return t}}(o);if(n&&o.isTouching(e.createPositionAt(n,0))){const n=e.createSelection(t);e.modifySelection(n,{direction:"backward"});const i=n.getLastPosition(),r=e.createRange(i,o);e.hasContent(r,{ignoreMarkers:!0})||(o=i)}}return[wh.fromPosition(n,"toPrevious"),wh.fromPosition(o,"toNext")]}(o);s.isTouching(a)||t.remove(t.createRange(s,a)),n.leaveUnmerged||(!function(t,e,n){const o=t.model;if(!Gh(t.model.schema,e,n))return;const[i,r]=function(t,e){const n=t.getAncestors(),o=e.getAncestors();let i=0;for(;n[i]&&n[i]==o[i];)i++;return[n[i],o[i]]}(e,n);if(!i||!r)return;!o.hasContent(i,{ignoreMarkers:!0})&&o.hasContent(r,{ignoreMarkers:!0})?Wh(t,e,n,i.parent):jh(t,e,n,i.parent)}(t,s,a),i.removeDisallowedAttributes(s.parent.getChildren(),t)),Uh(t,e,s),!n.doNotAutoparagraph&&function(t,e){const n=t.checkChild(e,"$text"),o=t.checkChild(e,"paragraph");return!n&&o}(i,s)&&Kh(t,s,e,r),s.detach(),a.detach()}))}function jh(t,e,n,o){const i=e.parent,r=n.parent;if(i!=o&&r!=o){for(e=t.createPositionAfter(i),(n=t.createPositionBefore(r)).isEqual(e)||t.insert(r,e),t.merge(e);n.parent.isEmpty;){const e=n.parent;n=t.createPositionBefore(e),t.remove(e)}Gh(t.model.schema,e,n)&&jh(t,e,n,o)}}function Wh(t,e,n,o){const i=e.parent,r=n.parent;if(i!=o&&r!=o){for(e=t.createPositionAfter(i),(n=t.createPositionBefore(r)).isEqual(e)||t.insert(i,n);e.parent.isEmpty;){const n=e.parent;e=t.createPositionBefore(n),t.remove(n)}n=t.createPositionBefore(r),function(t,e){const n=e.nodeBefore,o=e.nodeAfter;n.name!=o.name&&t.rename(n,o.name);t.clearAttributes(n),t.setAttributes(Object.fromEntries(o.getAttributes()),n),t.merge(e)}(t,n),Gh(t.model.schema,e,n)&&Wh(t,e,n,o)}}function Gh(t,e,n){const o=e.parent,i=n.parent;return o!=i&&(!t.isLimit(o)&&!t.isLimit(i)&&function(t,e,n){const o=new kl(t,e);for(const t of o.getWalker())if(n.isLimit(t.item))return!1;return!0}(e,n,t))}function Kh(t,e,n,o={}){const i=t.createElement("paragraph");t.model.schema.setAllowedAttributes(i,o,t),t.insert(i,e),Uh(t,n,t.createPositionAt(i,0))}function Uh(t,e,n){e instanceof Ll?t.setSelection(n):e.setTo(n)}function $h(t,e){const n=[];Array.from(t.getItems({direction:"backward"})).map((t=>e.createRangeOn(t))).filter((e=>(e.start.isAfter(t.start)||e.start.isEqual(t.start))&&(e.end.isBefore(t.end)||e.end.isEqual(t.end)))).forEach((t=>{n.push(t.start.parent),e.remove(t)})),n.forEach((t=>{let n=t;for(;n.parent&&n.isEmpty;){const t=e.createRangeOn(n);n=n.parent,e.remove(t)}}))}class Zh{model;writer;position;canMergeWith;schema;_documentFragment;_documentFragmentPosition;_firstNode=null;_lastNode=null;_lastAutoParagraph=null;_filterAttributesOf=[];_affectedStart=null;_affectedEnd=null;_nodeToSelect=null;constructor(t,e,n){this.model=t,this.writer=e,this.position=n,this.canMergeWith=new Set([this.position.parent]),this.schema=t.schema,this._documentFragment=e.createDocumentFragment(),this._documentFragmentPosition=e.createPositionAt(this._documentFragment,0)}handleNodes(t){for(const e of Array.from(t))this._handleNode(e);this._insertPartialFragment(),this._lastAutoParagraph&&this._updateLastNodeFromAutoParagraph(this._lastAutoParagraph),this._mergeOnRight(),this.schema.removeDisallowedAttributes(this._filterAttributesOf,this.writer),this._filterAttributesOf=[]}_updateLastNodeFromAutoParagraph(t){const e=this.writer.createPositionAfter(this._lastNode),n=this.writer.createPositionAfter(t);if(n.isAfter(e)){if(this._lastNode=t,this.position.parent!=t||!this.position.isAtEnd)throw new x("insertcontent-invalid-insertion-position",this);this.position=n,this._setAffectedBoundaries(this.position)}}getSelectionRange(){return this._nodeToSelect?kl._createOn(this._nodeToSelect):this.model.schema.getNearestSelectionRange(this.position)}getAffectedRange(){return this._affectedStart?new kl(this._affectedStart,this._affectedEnd):null}destroy(){this._affectedStart&&this._affectedStart.detach(),this._affectedEnd&&this._affectedEnd.detach()}_handleNode(t){if(this.schema.isObject(t))return void this._handleObject(t);let e=this._checkAndAutoParagraphToAllowedPosition(t);e||(e=this._checkAndSplitToAllowedPosition(t),e)?(this._appendToFragment(t),this._firstNode||(this._firstNode=t),this._lastNode=t):this._handleDisallowedNode(t)}_insertPartialFragment(){if(this._documentFragment.isEmpty)return;const t=wh.fromPosition(this.position,"toNext");this._setAffectedBoundaries(this.position),this._documentFragment.getChild(0)==this._firstNode&&(this.writer.insert(this._firstNode,this.position),this._mergeOnLeft(),this.position=t.toPosition()),this._documentFragment.isEmpty||this.writer.insert(this._documentFragment,this.position),this._documentFragmentPosition=this.writer.createPositionAt(this._documentFragment,0),this.position=t.toPosition(),t.detach()}_handleObject(t){this._checkAndSplitToAllowedPosition(t)?this._appendToFragment(t):this._tryAutoparagraphing(t)}_handleDisallowedNode(t){t.is("element")?this.handleNodes(t.getChildren()):this._tryAutoparagraphing(t)}_appendToFragment(t){if(!this.schema.checkChild(this.position,t))throw new x("insertcontent-wrong-position",this,{node:t,position:this.position});this.writer.insert(t,this._documentFragmentPosition),this._documentFragmentPosition=this._documentFragmentPosition.getShiftedBy(t.offsetSize),this.schema.isObject(t)&&!this.schema.checkChild(this.position,"$text")?this._nodeToSelect=t:this._nodeToSelect=null,this._filterAttributesOf.push(t)}_setAffectedBoundaries(t){this._affectedStart||(this._affectedStart=wh.fromPosition(t,"toPrevious")),this._affectedEnd&&!this._affectedEnd.isBefore(t)||(this._affectedEnd&&this._affectedEnd.detach(),this._affectedEnd=wh.fromPosition(t,"toNext"))}_mergeOnLeft(){const t=this._firstNode;if(!(t instanceof cl))return;if(!this._canMergeLeft(t))return;const e=wh._createBefore(t);e.stickiness="toNext";const n=wh.fromPosition(this.position,"toNext");this._affectedStart.isEqual(e)&&(this._affectedStart.detach(),this._affectedStart=wh._createAt(e.nodeBefore,"end","toPrevious")),this._firstNode===this._lastNode&&(this._firstNode=e.nodeBefore,this._lastNode=e.nodeBefore),this.writer.merge(e),e.isEqual(this._affectedEnd)&&this._firstNode===this._lastNode&&(this._affectedEnd.detach(),this._affectedEnd=wh._createAt(e.nodeBefore,"end","toNext")),this.position=n.toPosition(),n.detach(),this._filterAttributesOf.push(this.position.parent),e.detach()}_mergeOnRight(){const t=this._lastNode;if(!(t instanceof cl))return;if(!this._canMergeRight(t))return;const e=wh._createAfter(t);if(e.stickiness="toNext",!this.position.isEqual(e))throw new x("insertcontent-invalid-insertion-position",this);this.position=hl._createAt(e.nodeBefore,"end");const n=wh.fromPosition(this.position,"toPrevious");this._affectedEnd.isEqual(e)&&(this._affectedEnd.detach(),this._affectedEnd=wh._createAt(e.nodeBefore,"end","toNext")),this._firstNode===this._lastNode&&(this._firstNode=e.nodeBefore,this._lastNode=e.nodeBefore),this.writer.merge(e),e.getShiftedBy(-1).isEqual(this._affectedStart)&&this._firstNode===this._lastNode&&(this._affectedStart.detach(),this._affectedStart=wh._createAt(e.nodeBefore,0,"toPrevious")),this.position=n.toPosition(),n.detach(),this._filterAttributesOf.push(this.position.parent),e.detach()}_canMergeLeft(t){const e=t.previousSibling;return e instanceof cl&&this.canMergeWith.has(e)&&this.model.schema.checkMerge(e,t)}_canMergeRight(t){const e=t.nextSibling;return e instanceof cl&&this.canMergeWith.has(e)&&this.model.schema.checkMerge(t,e)}_tryAutoparagraphing(t){const e=this.writer.createElement("paragraph");this._getAllowedIn(this.position.parent,e)&&this.schema.checkChild(e,t)&&(e._appendChild(t),this._handleNode(e))}_checkAndAutoParagraphToAllowedPosition(t){if(this.schema.checkChild(this.position.parent,t))return!0;if(!this.schema.checkChild(this.position.parent,"paragraph")||!this.schema.checkChild("paragraph",t))return!1;this._insertPartialFragment();const e=this.writer.createElement("paragraph");return this.writer.insert(e,this.position),this._setAffectedBoundaries(this.position),this._lastAutoParagraph=e,this.position=this.writer.createPositionAt(e,0),!0}_checkAndSplitToAllowedPosition(t){const e=this._getAllowedIn(this.position.parent,t);if(!e)return!1;for(e!=this.position.parent&&this._insertPartialFragment();e!=this.position.parent;)if(this.position.isAtStart){const t=this.position.parent;this.position=this.writer.createPositionBefore(t),t.isEmpty&&t.parent===e&&this.writer.remove(t)}else if(this.position.isAtEnd)this.position=this.writer.createPositionAfter(this.position.parent);else{const t=this.writer.createPositionAfter(this.position.parent);this._setAffectedBoundaries(this.position),this.writer.split(this.position),this.position=t,this.canMergeWith.add(this.position.nodeAfter)}return!0}_getAllowedIn(t,e){return this.schema.checkChild(t,e)?t:this.schema.isLimit(t)?null:this._getAllowedIn(t.parent,e)}}function Jh(t,e,n,o={}){if(!t.schema.isObject(e))throw new x("insertobject-element-not-an-object",t,{object:e});const i=n||t.document.selection;let r=i;o.findOptimalPosition&&t.schema.isBlock(e)&&(r=t.createSelection(t.schema.findOptimalInsertionRange(i,o.findOptimalPosition)));const s=Xi(i.getSelectedBlocks()),a={};return s&&Object.assign(a,t.schema.getAttributesWithProperty(s,"copyOnReplace",!0)),t.change((n=>{r.isCollapsed||t.deleteContent(r,{doNotAutoparagraph:!0});let i=e;const s=r.anchor.parent;!t.schema.checkChild(s,e)&&t.schema.checkChild(s,"paragraph")&&t.schema.checkChild("paragraph",e)&&(i=n.createElement("paragraph"),n.insert(e,i)),t.schema.setAllowedAttributes(i,a,n);const c=t.insertContent(i,r);return c.isCollapsed||o.setSelection&&function(t,e,n,o){const i=t.model;if("on"==n)return void t.setSelection(e,"on");if("after"!=n)throw new x("insertobject-invalid-place-parameter-value",i);let r=e.nextSibling;if(i.schema.isInline(e))return void t.setSelection(e,"after");const s=r&&i.schema.checkChild(r,"$text");!s&&i.schema.checkChild(e.parent,"paragraph")&&(r=t.createElement("paragraph"),i.schema.setAllowedAttributes(r,o,t),i.insertContent(r,t.createPositionAfter(e)));r&&t.setSelection(r,0)}(n,e,o.setSelection,a),c}))}const Yh=' ,.?!:;"-()';function Qh(t,e){const{isForward:n,walker:o,unit:i,schema:r,treatEmojiAsSingleUnit:s}=t,{type:a,item:c,nextPosition:l}=e;if("text"==a)return"word"===t.unit?function(t,e){let n=t.position.textNode;n||(n=e?t.position.nodeAfter:t.position.nodeBefore);for(;n&&n.is("$text");){const o=t.position.offset-n.startOffset;if(eu(n,o,e))n=e?t.position.nodeAfter:t.position.nodeBefore;else{if(tu(n.data,o,e))break;t.next()}}return t.position}(o,n):function(t,e,n){const o=t.position.textNode;if(o){const i=o.data;let r=t.position.offset-o.startOffset;for(;ir(i,r)||"character"==e&&rr(i,r)||n&&ar(i,r);)t.next(),r=t.position.offset-o.startOffset}return t.position}(o,i,s);if(a==(n?"elementStart":"elementEnd")){if(r.isSelectable(c))return hl._createAt(c,n?"after":"before");if(r.checkChild(l,"$text"))return l}else{if(r.isLimit(c))return void o.skip((()=>!0));if(r.checkChild(l,"$text"))return l}}function Xh(t,e){const n=t.root,o=hl._createAt(n,e?"end":0);return e?new kl(t,o):new kl(o,t)}function tu(t,e,n){const o=e+(n?0:-1);return Yh.includes(t.charAt(o))}function eu(t,e,n){return e===(n?t.offsetSize:0)}class nu extends(J()){markers;document;schema;_pendingChanges;_currentWriter;constructor(){super(),this.markers=new Ph,this.document=new Sh(this),this.schema=new wd,this._pendingChanges=[],this._currentWriter=null,["deleteContent","modifySelection","getSelectedContent","applyOperation"].forEach((t=>this.decorate(t))),this.on("applyOperation",((t,e)=>{e[0]._validate()}),{priority:"highest"}),this.schema.register("$root",{isLimit:!0}),this.schema.register("$container",{allowIn:["$root","$container"]}),this.schema.register("$block",{allowIn:["$root","$container"],isBlock:!0}),this.schema.register("$blockObject",{allowWhere:"$block",isBlock:!0,isObject:!0}),this.schema.register("$inlineObject",{allowWhere:"$text",allowAttributesOf:"$text",isInline:!0,isObject:!0}),this.schema.register("$text",{allowIn:"$block",isInline:!0,isContent:!0}),this.schema.register("$clipboardHolder",{allowContentOf:"$root",allowChildren:"$text",isLimit:!0}),this.schema.register("$documentFragment",{allowContentOf:"$root",allowChildren:"$text",isLimit:!0}),this.schema.register("$marker"),this.schema.addChildCheck(((t,e)=>{if("$marker"===e.name)return!0})),hd(this),this.document.registerPostFixer(ed),this.on("insertContent",((t,[e,n])=>{t.return=function(t,e,n){return t.change((o=>{const i=n||t.document.selection;i.isCollapsed||t.deleteContent(i,{doNotAutoparagraph:!0});const r=new Zh(t,o,i.anchor),s=[];let a;if(e.is("documentFragment")){if(e.markers.size){const t=[];for(const[n,o]of e.markers){const{start:e,end:i}=o,r=e.isEqual(i);t.push({position:e,name:n,isCollapsed:r},{position:i,name:n,isCollapsed:r})}t.sort((({position:t},{position:e})=>t.isBefore(e)?1:-1));for(const{position:n,name:i,isCollapsed:r}of t){let t=null,a=null;const c=n.parent===e&&n.isAtStart,l=n.parent===e&&n.isAtEnd;c||l?r&&(a=c?"start":"end"):(t=o.createElement("$marker"),o.insert(t,n)),s.push({name:i,element:t,collapsed:a})}}a=e.getChildren()}else a=[e];r.handleNodes(a);let c=r.getSelectionRange();if(e.is("documentFragment")&&s.length){const t=c?Il.fromRange(c):null,e={};for(let t=s.length-1;t>=0;t--){const{name:n,element:i,collapsed:a}=s[t],c=!e[n];if(c&&(e[n]=[]),i){const t=o.createPositionAt(i,"before");e[n].push(t),o.remove(i)}else{const t=r.getAffectedRange();if(!t){a&&e[n].push(r.position);continue}a?e[n].push(t[a]):e[n].push(c?t.start:t.end)}}for(const[t,[n,i]]of Object.entries(e))n&&i&&n.root===i.root&&n.root.document&&!o.model.markers.has(t)&&o.addMarker(t,{usingOperation:!0,affectsData:!0,range:new kl(n,i)});t&&(c=t.toRange(),t.detach())}c&&(i instanceof Ll?o.setSelection(c):i.setTo(c));const l=r.getAffectedRange()||t.createRange(i.anchor);return r.destroy(),l}))}(this,e,n)})),this.on("insertObject",((t,[e,n,o])=>{t.return=Jh(this,e,n,o)})),this.on("canEditAt",(t=>{const e=!this.document.isReadOnly;t.return=e,e||t.stop()}))}change(t){try{return 0===this._pendingChanges.length?(this._pendingChanges.push({batch:new Ch,callback:t}),this._runPendingChanges()[0]):t(this._currentWriter)}catch(t){x.rethrowUnexpectedError(t,this)}}enqueueChange(t,e){try{t?"function"==typeof t?(e=t,t=new Ch):t instanceof Ch||(t=new Ch(t)):t=new Ch,this._pendingChanges.push({batch:t,callback:e}),1==this._pendingChanges.length&&this._runPendingChanges()}catch(t){x.rethrowUnexpectedError(t,this)}}applyOperation(t){t._execute()}insertContent(t,e,n,...o){const i=ou(e,n);return this.fire("insertContent",[t,i,n,...o])}insertObject(t,e,n,o,...i){const r=ou(e,n);return this.fire("insertObject",[t,r,o,o,...i])}deleteContent(t,e){qh(this,t,e)}modifySelection(t,e){!function(t,e,n={}){const o=t.schema,i="backward"!=n.direction,r=n.unit?n.unit:"character",s=!!n.treatEmojiAsSingleUnit,a=e.focus,c=new ll({boundaries:Xh(a,i),singleCharacters:!0,direction:i?"forward":"backward"}),l={walker:c,schema:o,isForward:i,unit:r,treatEmojiAsSingleUnit:s};let d;for(;d=c.next();){if(d.done)return;const n=Qh(l,d.value);if(n)return void(e instanceof Ll?t.change((t=>{t.setSelectionFocus(n)})):e.setFocus(n))}}(this,t,e)}getSelectedContent(t){return function(t,e){return t.change((t=>{const n=t.createDocumentFragment(),o=e.getFirstRange();if(!o||o.isCollapsed)return n;const i=o.start.root,r=o.start.getCommonPath(o.end),s=i.getNodeByPath(r);let a;a=o.start.parent==o.end.parent?o:t.createRange(t.createPositionAt(s,o.start.path[r.length]),t.createPositionAt(s,o.end.path[r.length]+1));const c=a.end.offset-a.start.offset;for(const e of a.getItems({shallow:!0}))e.is("$textProxy")?t.appendText(e.data,e.getAttributes(),n):t.append(t.cloneElement(e,!0),n);if(a!=o){const e=o._getTransformedByMove(a.start,t.createPositionAt(n,0),c)[0],i=t.createRange(t.createPositionAt(n,0),e.start);$h(t.createRange(e.end,t.createPositionAt(n,"end")),t),$h(i,t)}return n}))}(this,t)}hasContent(t,e={}){const n=t instanceof kl?t:kl._createIn(t);if(n.isCollapsed)return!1;const{ignoreWhitespaces:o=!1,ignoreMarkers:i=!1}=e;if(!i)for(const t of this.markers.getMarkersIntersectingRange(n))if(t.affectsData)return!0;for(const t of n.getItems())if(this.schema.isContent(t)){if(!t.is("$textProxy"))return!0;if(!o)return!0;if(-1!==t.data.search(/\S/))return!0}return!1}canEditAt(t){const e=ou(t);return this.fire("canEditAt",[e])}createPositionFromPath(t,e,n){return new hl(t,e,n)}createPositionAt(t,e){return hl._createAt(t,e)}createPositionAfter(t){return hl._createAfter(t)}createPositionBefore(t){return hl._createBefore(t)}createRange(t,e){return new kl(t,e)}createRangeIn(t){return kl._createIn(t)}createRangeOn(t){return kl._createOn(t)}createSelection(...t){return new yl(...t)}createBatch(t){return new Ch(t)}createOperationFromJSON(t){return ah.fromJSON(t,this.document)}destroy(){this.document.destroy(),this.stopListening()}_runPendingChanges(){const t=[];this.fire("_beforeChanges");try{for(;this._pendingChanges.length;){const e=this._pendingChanges[0].batch;this._currentWriter=new Fh(this,e);const n=this._pendingChanges[0].callback(this._currentWriter);t.push(n),this.document._handleChangeBlock(this._currentWriter),this._pendingChanges.shift(),this._currentWriter=null}}finally{this._pendingChanges.length=0,this._currentWriter=null,this.fire("_afterChanges")}return t}}function ou(t,e){if(t)return t instanceof yl||t instanceof Ll?t:t instanceof il?e||0===e?new yl(t,e):t.is("rootElement")?new yl(t,"in"):new yl(t,"on"):new yl(t)}class iu extends cc{domEventType=["mousedown","mouseup","mouseover","mouseout"];onDomEvent(t){this.fire(t.type,t)}}class ru{document;constructor(t){this.document=t}createDocumentFragment(t){return new _a(this.document,t)}createElement(t,e,n){return new js(this.document,t,e,n)}createText(t){return new as(this.document,t)}clone(t,e=!1){return t._clone(e)}appendChild(t,e){return e._appendChild(t)}insertChild(t,e,n){return n._insertChild(t,e)}removeChildren(t,e,n){return n._removeChildren(t,e)}remove(t){const e=t.parent;return e?this.removeChildren(e.getChildIndex(t),1,e):[]}replace(t,e){const n=t.parent;if(n){const o=n.getChildIndex(t);return this.removeChildren(o,1,n),this.insertChild(o,e,n),!0}return!1}unwrapElement(t){const e=t.parent;if(e){const n=e.getChildIndex(t);this.remove(t),this.insertChild(n,t.getChildren(),e)}}rename(t,e){const n=new js(this.document,t,e.getAttributes(),e.getChildren());return this.replace(e,n)?n:null}setAttribute(t,e,n){n._setAttribute(t,e)}removeAttribute(t,e){e._removeAttribute(t)}addClass(t,e){e._addClass(t)}removeClass(t,e){e._removeClass(t)}setStyle(t,e,n){St(t)&&void 0===n?e._setStyle(t):n._setStyle(t,e)}removeStyle(t,e){e._removeStyle(t)}setCustomProperty(t,e,n){n._setCustomProperty(t,e)}removeCustomProperty(t,e){return e._removeCustomProperty(t)}createPositionAt(t,e){return Ys._createAt(t,e)}createPositionAfter(t){return Ys._createAfter(t)}createPositionBefore(t){return Ys._createBefore(t)}createRange(t,e){return new Qs(t,e)}createRangeOn(t){return Qs._createOn(t)}createRangeIn(t){return Qs._createIn(t)}createSelection(...t){return new ta(...t)}}const su=/^#([0-9a-f]{3,4}|[0-9a-f]{6}|[0-9a-f]{8})$/i,au=/^rgb\([ ]?([0-9]{1,3}[ %]?,[ ]?){2,3}[0-9]{1,3}[ %]?\)$/i,cu=/^rgba\([ ]?([0-9]{1,3}[ %]?,[ ]?){3}(1|[0-9]+%|[0]?\.?[0-9]+)\)$/i,lu=/^hsl\([ ]?([0-9]{1,3}[ %]?[,]?[ ]*){3}(1|[0-9]+%|[0]?\.?[0-9]+)?\)$/i,du=/^hsla\([ ]?([0-9]{1,3}[ %]?,[ ]?){2,3}(1|[0-9]+%|[0]?\.?[0-9]+)\)$/i,hu=/\w+\((?:[^()]|\([^()]*\))*\)|\S+/gi,uu=new Set(["black","silver","gray","white","maroon","red","purple","fuchsia","green","lime","olive","yellow","navy","blue","teal","aqua","orange","aliceblue","antiquewhite","aquamarine","azure","beige","bisque","blanchedalmond","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","gainsboro","ghostwhite","gold","goldenrod","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","limegreen","linen","magenta","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","oldlace","olivedrab","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","thistle","tomato","turquoise","violet","wheat","whitesmoke","yellowgreen","activeborder","activecaption","appworkspace","background","buttonface","buttonhighlight","buttonshadow","buttontext","captiontext","graytext","highlight","highlighttext","inactiveborder","inactivecaption","inactivecaptiontext","infobackground","infotext","menu","menutext","scrollbar","threeddarkshadow","threedface","threedhighlight","threedlightshadow","threedshadow","window","windowframe","windowtext","rebeccapurple","currentcolor","transparent"]);function mu(t){return t.startsWith("#")?su.test(t):t.startsWith("rgb")?au.test(t)||cu.test(t):t.startsWith("hsl")?lu.test(t)||du.test(t):uu.has(t.toLowerCase())}const gu=["none","hidden","dotted","dashed","solid","double","groove","ridge","inset","outset"];function pu(t){return gu.includes(t)}const fu=/^([+-]?[0-9]*([.][0-9]+)?(px|cm|mm|in|pc|pt|ch|em|ex|rem|vh|vw|vmin|vmax)|0)$/;function ku(t){return fu.test(t)}const bu=/^[+-]?[0-9]*([.][0-9]+)?%$/;function wu(t){return bu.test(t)}const _u=["repeat-x","repeat-y","repeat","space","round","no-repeat"];function Au(t){return _u.includes(t)}const Cu=["center","top","bottom","left","right"];function vu(t){return Cu.includes(t)}const yu=["fixed","scroll","local"];function xu(t){return yu.includes(t)}const Eu=/^url\(/;function Du(t){return Eu.test(t)}function Bu(t=""){if(""===t)return{top:void 0,right:void 0,bottom:void 0,left:void 0};const e=Iu(t),n=e[0],o=e[2]||n,i=e[1]||n;return{top:n,bottom:o,right:i,left:e[3]||i}}function Tu(t){return e=>{const{top:n,right:o,bottom:i,left:r}=e,s=[];return[n,o,r,i].every((t=>!!t))?s.push([t,Su(e)]):(n&&s.push([t+"-top",n]),o&&s.push([t+"-right",o]),i&&s.push([t+"-bottom",i]),r&&s.push([t+"-left",r])),s}}function Su({top:t,right:e,bottom:n,left:o}){const i=[];return o!==e?i.push(t,e,n,o):n!==t?i.push(t,e,n):e!==t?i.push(t,e):i.push(t),i.join(" ")}function Iu(t){const e=t.matchAll(hu);return Array.from(e).map((t=>t[0]))}function Pu(t){t.setNormalizer("background",(t=>{const e={},n=Iu(t);for(const t of n)Au(t)?(e.repeat=e.repeat||[],e.repeat.push(t)):vu(t)?(e.position=e.position||[],e.position.push(t)):xu(t)?e.attachment=t:mu(t)?e.color=t:Du(t)&&(e.image=t);return{path:"background",value:e}})),t.setNormalizer("background-color",(t=>({path:"background.color",value:t}))),t.setReducer("background",(t=>{const e=[];return e.push(["background-color",t.color]),e})),t.setStyleRelation("background",["background-color"])}function zu(t){t.setNormalizer("border",(t=>{const{color:e,style:n,width:o}=Nu(t);return{path:"border",value:{color:Bu(e),style:Bu(n),width:Bu(o)}}})),t.setNormalizer("border-top",Ru("top")),t.setNormalizer("border-right",Ru("right")),t.setNormalizer("border-bottom",Ru("bottom")),t.setNormalizer("border-left",Ru("left")),t.setNormalizer("border-color",Lu("color")),t.setNormalizer("border-width",Lu("width")),t.setNormalizer("border-style",Lu("style")),t.setNormalizer("border-top-color",Mu("color","top")),t.setNormalizer("border-top-style",Mu("style","top")),t.setNormalizer("border-top-width",Mu("width","top")),t.setNormalizer("border-right-color",Mu("color","right")),t.setNormalizer("border-right-style",Mu("style","right")),t.setNormalizer("border-right-width",Mu("width","right")),t.setNormalizer("border-bottom-color",Mu("color","bottom")),t.setNormalizer("border-bottom-style",Mu("style","bottom")),t.setNormalizer("border-bottom-width",Mu("width","bottom")),t.setNormalizer("border-left-color",Mu("color","left")),t.setNormalizer("border-left-style",Mu("style","left")),t.setNormalizer("border-left-width",Mu("width","left")),t.setExtractor("border-top",Vu("top")),t.setExtractor("border-right",Vu("right")),t.setExtractor("border-bottom",Vu("bottom")),t.setExtractor("border-left",Vu("left")),t.setExtractor("border-top-color","border.color.top"),t.setExtractor("border-right-color","border.color.right"),t.setExtractor("border-bottom-color","border.color.bottom"),t.setExtractor("border-left-color","border.color.left"),t.setExtractor("border-top-width","border.width.top"),t.setExtractor("border-right-width","border.width.right"),t.setExtractor("border-bottom-width","border.width.bottom"),t.setExtractor("border-left-width","border.width.left"),t.setExtractor("border-top-style","border.style.top"),t.setExtractor("border-right-style","border.style.right"),t.setExtractor("border-bottom-style","border.style.bottom"),t.setExtractor("border-left-style","border.style.left"),t.setReducer("border-color",Tu("border-color")),t.setReducer("border-style",Tu("border-style")),t.setReducer("border-width",Tu("border-width")),t.setReducer("border-top",Hu("top")),t.setReducer("border-right",Hu("right")),t.setReducer("border-bottom",Hu("bottom")),t.setReducer("border-left",Hu("left")),t.setReducer("border",function(){return e=>{const n=Ou(e,"top"),o=Ou(e,"right"),i=Ou(e,"bottom"),r=Ou(e,"left"),s=[n,o,i,r],a={width:t(s,"width"),style:t(s,"style"),color:t(s,"color")},c=qu(a,"all");if(c.length)return c;return[...Object.entries(a).reduce(((t,[e,n])=>(n&&(t.push([`border-${e}`,n]),s.forEach((t=>delete t[e]))),t)),[]),...qu(n,"top"),...qu(o,"right"),...qu(i,"bottom"),...qu(r,"left")]};function t(t,e){return t.map((t=>t[e])).reduce(((t,e)=>t==e?t:null))}}()),t.setStyleRelation("border",["border-color","border-style","border-width","border-top","border-right","border-bottom","border-left","border-top-color","border-right-color","border-bottom-color","border-left-color","border-top-style","border-right-style","border-bottom-style","border-left-style","border-top-width","border-right-width","border-bottom-width","border-left-width"]),t.setStyleRelation("border-color",["border-top-color","border-right-color","border-bottom-color","border-left-color"]),t.setStyleRelation("border-style",["border-top-style","border-right-style","border-bottom-style","border-left-style"]),t.setStyleRelation("border-width",["border-top-width","border-right-width","border-bottom-width","border-left-width"]),t.setStyleRelation("border-top",["border-top-color","border-top-style","border-top-width"]),t.setStyleRelation("border-right",["border-right-color","border-right-style","border-right-width"]),t.setStyleRelation("border-bottom",["border-bottom-color","border-bottom-style","border-bottom-width"]),t.setStyleRelation("border-left",["border-left-color","border-left-style","border-left-width"])}function Ru(t){return e=>{const{color:n,style:o,width:i}=Nu(e),r={};return void 0!==n&&(r.color={[t]:n}),void 0!==o&&(r.style={[t]:o}),void 0!==i&&(r.width={[t]:i}),{path:"border",value:r}}}function Lu(t){return e=>({path:"border",value:Fu(e,t)})}function Fu(t,e){return{[e]:Bu(t)}}function Mu(t,e){return n=>({path:"border",value:{[t]:{[e]:n}}})}function Vu(t){return(e,n)=>{if(n.border)return Ou(n.border,t)}}function Ou(t,e){const n={};return t.width&&t.width[e]&&(n.width=t.width[e]),t.style&&t.style[e]&&(n.style=t.style[e]),t.color&&t.color[e]&&(n.color=t.color[e]),n}function Nu(t){const e={},n=Iu(t);for(const t of n)ku(t)||/thin|medium|thick/.test(t)?e.width=t:pu(t)?e.style=t:e.color=t;return e}function Hu(t){return e=>qu(e,t)}function qu(t,e){const n=[];if(t&&t.width&&n.push("width"),t&&t.style&&n.push("style"),t&&t.color&&n.push("color"),3==n.length){const o=n.map((e=>t[e])).join(" ");return["all"==e?["border",o]:[`border-${e}`,o]]}return"all"==e?[]:n.map((n=>[`border-${e}-${n}`,t[n]]))}class ju{_commands;constructor(){this._commands=new Map}add(t,e){this._commands.set(t,e)}get(t){return this._commands.get(t)}execute(t,...e){const n=this.get(t);if(!n)throw new x("commandcollection-command-not-found",this,{commandName:t});return n.execute(...e)}*names(){yield*this._commands.keys()}*commands(){yield*this._commands.values()}[Symbol.iterator](){return this._commands[Symbol.iterator]()}destroy(){for(const t of this.commands())t.destroy()}}const Wu="contentEditing",Gu="common";class Ku{keystrokeInfos=new Map;_editor;constructor(t){this._editor=t;const e=t.config.get("menuBar.isVisible"),n=t.locale.t;this.addKeystrokeInfoCategory({id:Wu,label:n("Content editing keystrokes"),description:n("These keyboard shortcuts allow for quick access to content editing features.")});const o=[{label:n("Close contextual balloons, dropdowns, and dialogs"),keystroke:"Esc"},{label:n("Open the accessibility help dialog"),keystroke:"Alt+0"},{label:n("Move focus between form fields (inputs, buttons, etc.)"),keystroke:[["Tab"],["Shift+Tab"]]},{label:n("Move focus to the toolbar, navigate between toolbars"),keystroke:"Alt+F10",mayRequireFn:!0},{label:n("Navigate through the toolbar or menu bar"),keystroke:[["arrowup"],["arrowright"],["arrowdown"],["arrowleft"]]},{label:n("Execute the currently focused button. Executing buttons that interact with the editor content moves the focus back to the content."),keystroke:[["Enter"],["Space"]]}];e&&o.push({label:n("Move focus to the menu bar, navigate between menu bars"),keystroke:"Alt+F9",mayRequireFn:!0}),this.addKeystrokeInfoCategory({id:"navigation",label:n("User interface and content navigation keystrokes"),description:n("Use the following keystrokes for more efficient navigation in the CKEditor 5 user interface."),groups:[{id:"common",keystrokes:o}]})}addKeystrokeInfoCategory({id:t,label:e,description:n,groups:o}){this.keystrokeInfos.set(t,{id:t,label:e,description:n,groups:new Map}),this.addKeystrokeInfoGroup({categoryId:t,id:Gu}),o&&o.forEach((e=>{this.addKeystrokeInfoGroup({categoryId:t,...e})}))}addKeystrokeInfoGroup({categoryId:t=Wu,id:e,label:n,keystrokes:o}){const i=this.keystrokeInfos.get(t);if(!i)throw new x("accessibility-unknown-keystroke-info-category",this._editor,{groupId:e,categoryId:t});i.groups.set(e,{id:e,label:n,keystrokes:o||[]})}addKeystrokeInfos({categoryId:t=Wu,groupId:e=Gu,keystrokes:n}){if(!this.keystrokeInfos.has(t))throw new x("accessibility-unknown-keystroke-info-category",this._editor,{categoryId:t,keystrokes:n});const o=this.keystrokeInfos.get(t);if(!o.groups.has(e))throw new x("accessibility-unknown-keystroke-info-group",this._editor,{groupId:e,categoryId:t,keystrokes:n});o.groups.get(e).keystrokes.push(...n)}}class Uu extends(J()){accessibility;commands;config;conversion;data;editing;locale;model;plugins;keystrokes;t;static defaultConfig;static builtinPlugins;_context;_readOnlyLocks;constructor(t={}){super();const e=this.constructor,{translations:n,...o}=e.defaultConfig||{},{translations:i=n,...r}=t,s=t.language||o.language;this._context=t.context||new Kr({language:s,translations:i}),this._context._addEditor(this,!t.context);const a=Array.from(e.builtinPlugins||[]);this.config=new To(r,o),this.config.define("plugins",a),this.config.define(this._context._getEditorConfig()),this.plugins=new Gr(this,a,this._context.plugins),this.locale=this._context.locale,this.t=this.locale.t,this._readOnlyLocks=new Set,this.commands=new ju,this.set("state","initializing"),this.once("ready",(()=>this.state="ready"),{priority:"high"}),this.once("destroy",(()=>this.state="destroyed"),{priority:"high"}),this.model=new nu,this.on("change:isReadOnly",(()=>{this.model.document.isReadOnly=this.isReadOnly}));const c=new Ns;this.data=new Md(this.model,c),this.editing=new pd(this.model,c),this.editing.view.document.bind("isReadOnly").to(this),this.conversion=new Vd([this.editing.downcastDispatcher,this.data.downcastDispatcher],this.data.upcastDispatcher),this.conversion.addAlias("dataDowncast",this.data.downcastDispatcher),this.conversion.addAlias("editingDowncast",this.editing.downcastDispatcher),this.keystrokes=new $r(this),this.keystrokes.listenTo(this.editing.view.document),this.accessibility=new Ku(this)}get isReadOnly(){return this._readOnlyLocks.size>0}set isReadOnly(t){throw new x("editor-isreadonly-has-no-setter")}enableReadOnlyMode(t){if("string"!=typeof t&&"symbol"!=typeof t)throw new x("editor-read-only-lock-id-invalid",null,{lockId:t});this._readOnlyLocks.has(t)||(this._readOnlyLocks.add(t),1===this._readOnlyLocks.size&&this.fire("change:isReadOnly","isReadOnly",!0,!1))}disableReadOnlyMode(t){if("string"!=typeof t&&"symbol"!=typeof t)throw new x("editor-read-only-lock-id-invalid",null,{lockId:t});this._readOnlyLocks.has(t)&&(this._readOnlyLocks.delete(t),0===this._readOnlyLocks.size&&this.fire("change:isReadOnly","isReadOnly",!1,!0))}setData(t){this.data.set(t)}getData(t){return this.data.get(t)}initPlugins(){const t=this.config,e=t.get("plugins"),n=t.get("removePlugins")||[],o=t.get("extraPlugins")||[],i=t.get("substitutePlugins")||[];return this.plugins.init(e.concat(o),n,i)}destroy(){let t=Promise.resolve();return"initializing"==this.state&&(t=new Promise((t=>this.once("ready",t)))),t.then((()=>{this.fire("destroy"),this.stopListening(),this.commands.destroy()})).then((()=>this.plugins.destroy())).then((()=>{this.model.destroy(),this.data.destroy(),this.editing.destroy(),this.keystrokes.destroy()})).then((()=>this._context._removeEditor(this)))}execute(t,...e){try{return this.commands.execute(t,...e)}catch(t){x.rethrowUnexpectedError(t,this)}}focus(){this.editing.view.focus()}static create(...t){throw new Error("This is an abstract method.")}}function $u(t){if(!Gt(t.updateSourceElement))throw new x("attachtoform-missing-elementapi-interface",t);const e=t.sourceElement;if(function(t){return!!t&&"textarea"===t.tagName.toLowerCase()}(e)&&e.form){let n;const o=e.form,i=()=>t.updateSourceElement();Gt(o.submit)&&(n=o.submit,o.submit=()=>{i(),n.apply(o)}),o.addEventListener("submit",i),t.on("destroy",(()=>{o.removeEventListener("submit",i),n&&(o.submit=n)}))}}function Zu(t){return class extends t{sourceElement;updateSourceElement(t){if(!this.sourceElement)throw new x("editor-missing-sourceelement",this);const e=this.config.get("updateSourceElementOnDestroy"),n=this.sourceElement instanceof HTMLTextAreaElement;if(!e&&!n)return void Qo(this.sourceElement,"");const o="string"==typeof t?t:this.data.get();Qo(this.sourceElement,o)}}}Zu.updateSourceElement=Zu(Object).prototype.updateSourceElement;Symbol.iterator;const Ju={bold:' ',cancel:' ',caption:' ',check:' ',cog:' ',colorPalette:' ',eraser:' ',history:' ',image:' ',imageUpload:' ',imageAssetManager:' ',imageUrl:' ',lowVision:' ',textAlternative:' ',loupe:' ',previousArrow:' ',nextArrow:' ',importExport:' ',paragraph:' ',plus:' ',text:' ',alignBottom:' ',alignMiddle:' ',alignTop:' ',alignLeft:' ',alignCenter:' ',alignRight:' ',alignJustify:' ',objectLeft:' ',objectCenter:' ',objectRight:' ',objectFullWidth:' ',objectInline:' ',objectBlockLeft:' ',objectBlockRight:' ',objectSizeCustom:' ',objectSizeFull:' ',objectSizeLarge:' ',objectSizeSmall:' ',objectSizeMedium:' ',pencil:' ',pilcrow:' ',quote:' ',threeVerticalDots:' ',dragIndicator:' ',redo:' ',undo:' ',bulletedList:' ',numberedList:' ',todoList:' ',codeBlock:' ',browseFiles:' ',heading1:' ',heading2:' ',heading3:' ',heading4:' ',heading5:' ',heading6:' ',horizontalLine:' ',html:' ',indent:' ',outdent:' ',table:' '};var Yu=n(7621),Qu={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Pr()(Yu.A,Qu);Yu.A.locals;class Xu extends Lr{static presentationalAttributeNames=["alignment-baseline","baseline-shift","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-rendering","cursor","direction","display","dominant-baseline","fill","fill-opacity","fill-rule","filter","flood-color","flood-opacity","font-family","font-size","font-size-adjust","font-stretch","font-style","font-variant","font-weight","image-rendering","letter-spacing","lighting-color","marker-end","marker-mid","marker-start","mask","opacity","overflow","paint-order","pointer-events","shape-rendering","stop-color","stop-opacity","stroke","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","text-anchor","text-decoration","text-overflow","text-rendering","transform","unicode-bidi","vector-effect","visibility","white-space","word-spacing","writing-mode"];constructor(){super();const t=this.bindTemplate;this.set("content",""),this.set("viewBox","0 0 20 20"),this.set("fillColor",""),this.set("isColorInherited",!0),this.set("isVisible",!0),this.setTemplate({tag:"svg",ns:"http://www.w3.org/2000/svg",attributes:{class:["ck","ck-icon",t.if("isVisible","ck-hidden",(t=>!t)),"ck-reset_all-excluded",t.if("isColorInherited","ck-icon_inherit-color")],viewBox:t.to("viewBox")}})}render(){super.render(),this._updateXMLContent(),this._colorFillPaths(),this.on("change:content",(()=>{this._updateXMLContent(),this._colorFillPaths()})),this.on("change:fillColor",(()=>{this._colorFillPaths()}))}_updateXMLContent(){if(this.content){const t=(new DOMParser).parseFromString(this.content.trim(),"image/svg+xml").querySelector("svg"),e=t.getAttribute("viewBox");e&&(this.viewBox=e);for(const{name:e,value:n}of Array.from(t.attributes))Xu.presentationalAttributeNames.includes(e)&&this.element.setAttribute(e,n);for(;this.element.firstChild;)this.element.removeChild(this.element.firstChild);for(;t.childNodes.length>0;)this.element.appendChild(t.childNodes[0])}}_colorFillPaths(){this.fillColor&&this.element.querySelectorAll(".ck-icon__fill").forEach((t=>{t.style.fill=this.fillColor}))}}class tm extends Lr{constructor(){super(),this.set({style:void 0,text:void 0,id:void 0});const t=this.bindTemplate;this.setTemplate({tag:"span",attributes:{class:["ck","ck-button__label"],style:t.to("style"),id:t.to("id")},children:[{text:t.to("text")}]})}}var em=n(9715),nm={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Pr()(em.A,nm);em.A.locals;class om extends Lr{children;labelView;iconView;keystrokeView;_focusDelayed=null;constructor(t,e=new tm){super(t);const n=this.bindTemplate,o=A();this.set("ariaLabel",void 0),this.set("ariaLabelledBy",`ck-editor__aria-label_${o}`),this.set("class",void 0),this.set("labelStyle",void 0),this.set("icon",void 0),this.set("isEnabled",!0),this.set("isOn",!1),this.set("isVisible",!0),this.set("isToggleable",!1),this.set("keystroke",void 0),this.set("label",void 0),this.set("role",void 0),this.set("tabindex",-1),this.set("tooltip",!1),this.set("tooltipPosition","s"),this.set("type","button"),this.set("withText",!1),this.set("withKeystroke",!1),this.children=this.createCollection(),this.labelView=this._setupLabelView(e),this.iconView=new Xu,this.iconView.extendTemplate({attributes:{class:"ck-button__icon"}}),this.keystrokeView=this._createKeystrokeView(),this.bind("_tooltipString").to(this,"tooltip",this,"label",this,"keystroke",this._getTooltipString.bind(this));const r={tag:"button",attributes:{class:["ck","ck-button",n.to("class"),n.if("isEnabled","ck-disabled",(t=>!t)),n.if("isVisible","ck-hidden",(t=>!t)),n.to("isOn",(t=>t?"ck-on":"ck-off")),n.if("withText","ck-button_with-text"),n.if("withKeystroke","ck-button_with-keystroke")],role:n.to("role"),type:n.to("type",(t=>t||"button")),tabindex:n.to("tabindex"),"aria-checked":n.to("ariaChecked"),"aria-label":n.to("ariaLabel"),"aria-labelledby":n.to("ariaLabelledBy"),"aria-disabled":n.if("isEnabled",!0,(t=>!t)),"aria-pressed":n.to("isOn",(t=>!!this.isToggleable&&String(!!t))),"data-cke-tooltip-text":n.to("_tooltipString"),"data-cke-tooltip-position":n.to("tooltipPosition")},children:this.children,on:{click:n.to((t=>{this.isEnabled?this.fire("execute"):t.preventDefault()}))}};i.isSafari&&(this._focusDelayed||(this._focusDelayed=or((()=>this.focus()),0)),r.on.mousedown=n.to((()=>{this._focusDelayed()})),r.on.mouseup=n.to((()=>{this._focusDelayed.cancel()}))),this.setTemplate(r)}render(){super.render(),this.icon&&(this.iconView.bind("content").to(this,"icon"),this.children.add(this.iconView)),this.children.add(this.labelView),this.withKeystroke&&this.keystroke&&this.children.add(this.keystrokeView)}focus(){this.element.focus()}destroy(){this._focusDelayed&&this._focusDelayed.cancel(),super.destroy()}_setupLabelView(t){return t.bind("text","style","id").to(this,"label","labelStyle","ariaLabelledBy"),t}_createKeystrokeView(){const t=new Lr;return t.setTemplate({tag:"span",attributes:{class:["ck","ck-button__keystroke"]},children:[{text:this.bindTemplate.to("keystroke",(t=>yi(t)))}]}),t}_getTooltipString(t,e,n){return t?"string"==typeof t?t:(n&&(n=yi(n)),t instanceof Function?t(e,n):`${e}${n?` (${n})`:""}`):""}}var im=n(7913),rm={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Pr()(im.A,rm);im.A.locals;class sm extends Lr{children;iconView;constructor(t,e={}){super(t);const n=this.bindTemplate;this.set("label",e.label||""),this.set("class",e.class||null),this.children=this.createCollection(),this.setTemplate({tag:"div",attributes:{class:["ck","ck-form__header",n.to("class")]},children:this.children}),e.icon&&(this.iconView=new Xu,this.iconView.content=e.icon,this.children.add(this.iconView));const o=new Lr(t);o.setTemplate({tag:"h2",attributes:{class:["ck","ck-form__header__label"],role:"presentation"},children:[{text:n.to("label")}]}),this.children.add(o)}}class am extends(L()){focusables;focusTracker;keystrokeHandler;actions;constructor(t){if(super(),this.focusables=t.focusables,this.focusTracker=t.focusTracker,this.keystrokeHandler=t.keystrokeHandler,this.actions=t.actions,t.actions&&t.keystrokeHandler)for(const e in t.actions){let n=t.actions[e];"string"==typeof n&&(n=[n]);for(const o of n)t.keystrokeHandler.set(o,((t,n)=>{this[e](),n()}))}this.on("forwardCycle",(()=>this.focusFirst()),{priority:"low"}),this.on("backwardCycle",(()=>this.focusLast()),{priority:"low"})}get first(){return this.focusables.find(cm)||null}get last(){return this.focusables.filter(cm).slice(-1)[0]||null}get next(){return this._getDomFocusableItem(1)}get previous(){return this._getDomFocusableItem(-1)}get current(){let t=null;return null===this.focusTracker.focusedElement?null:(this.focusables.find(((e,n)=>{const o=e.element===this.focusTracker.focusedElement;return o&&(t=n),o})),t)}focusFirst(){this._focus(this.first,1)}focusLast(){this._focus(this.last,-1)}focusNext(){const t=this.next;t&&this.focusables.getIndex(t)===this.current||t===this.first?this.fire("forwardCycle"):this._focus(t,1)}focusPrevious(){const t=this.previous;t&&this.focusables.getIndex(t)===this.current||t===this.last?this.fire("backwardCycle"):this._focus(t,-1)}_focus(t,e){t&&this.focusTracker.focusedElement!==t.element&&t.focus(e)}_getDomFocusableItem(t){const e=this.focusables.length;if(!e)return null;const n=this.current;if(null===n)return this[1===t?"first":"last"];let o=this.focusables.get(n),i=(n+e+t)%e;do{const n=this.focusables.get(i);if(cm(n)){o=n;break}i=(i+e+t)%e}while(i!==n);return o}}function cm(t){return lm(t)&&oi(t.element)}function lm(t){return!(!("focus"in t)||"function"!=typeof t.focus)}function dm(t){return class extends t{_onDragBound=this._onDrag.bind(this);_onDragEndBound=this._onDragEnd.bind(this);_lastDraggingCoordinates={x:0,y:0};constructor(...t){super(...t),this.on("render",(()=>{this._attachListeners()})),this.set("isDragging",!1)}_attachListeners(){this.listenTo(this.element,"mousedown",this._onDragStart.bind(this)),this.listenTo(this.element,"touchstart",this._onDragStart.bind(this))}_attachDragListeners(){this.listenTo(Oo.document,"mouseup",this._onDragEndBound),this.listenTo(Oo.document,"touchend",this._onDragEndBound),this.listenTo(Oo.document,"mousemove",this._onDragBound),this.listenTo(Oo.document,"touchmove",this._onDragBound)}_detachDragListeners(){this.stopListening(Oo.document,"mouseup",this._onDragEndBound),this.stopListening(Oo.document,"touchend",this._onDragEndBound),this.stopListening(Oo.document,"mousemove",this._onDragBound),this.stopListening(Oo.document,"touchmove",this._onDragBound)}_onDragStart(t,e){if(!this._isHandleElementPressed(e))return;this._attachDragListeners();let n=0,o=0;e instanceof MouseEvent?(n=e.clientX,o=e.clientY):(n=e.touches[0].clientX,o=e.touches[0].clientY),this._lastDraggingCoordinates={x:n,y:o},this.isDragging=!0}_onDrag(t,e){if(!this.isDragging)return void this._detachDragListeners();let n=0,o=0;e instanceof MouseEvent?(n=e.clientX,o=e.clientY):(n=e.touches[0].clientX,o=e.touches[0].clientY),e.preventDefault(),this.fire("drag",{deltaX:Math.round(n-this._lastDraggingCoordinates.x),deltaY:Math.round(o-this._lastDraggingCoordinates.y)}),this._lastDraggingCoordinates={x:n,y:o}}_onDragEnd(){this._detachDragListeners(),this.isDragging=!1}_isHandleElementPressed(t){return!!this.dragHandleElement&&(this.dragHandleElement===t.target||t.target instanceof HTMLElement&&this.dragHandleElement.contains(t.target))}}}var hm=n(9822),um={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Pr()(hm.A,um);hm.A.locals;class mm extends Lr{children;keystrokes;focusCycler;_focusTracker;_focusables;constructor(t){super(t),this.children=this.createCollection(),this.keystrokes=new er,this._focusTracker=new tr,this._focusables=new lr,this.focusCycler=new am({focusables:this._focusables,focusTracker:this._focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"shift + tab",focusNext:"tab"}}),this.setTemplate({tag:"div",attributes:{class:["ck","ck-dialog__actions"]},children:this.children})}render(){super.render(),this.keystrokes.listenTo(this.element)}setButtons(t){for(const e of t){const t=new om(this.locale);let n;for(n in t.on("execute",(()=>e.onExecute())),e.onCreate&&e.onCreate(t),e)"onExecute"!=n&&"onCreate"!=n&&t.set(n,e[n]);this.children.add(t)}this._updateFocusCyclableItems()}focus(t){-1===t?this.focusCycler.focusLast():this.focusCycler.focusFirst()}_updateFocusCyclableItems(){Array.from(this.children).forEach((t=>{this._focusables.add(t),this._focusTracker.add(t.element)}))}}class gm extends Lr{children;constructor(t){super(t),this.children=this.createCollection(),this.setTemplate({tag:"div",attributes:{class:["ck","ck-dialog__content"]},children:this.children})}reset(){for(;this.children.length;)this.children.remove(0)}}var pm=n(9819),fm={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Pr()(pm.A,fm);pm.A.locals;const km="screen-center",bm="editor-center",wm="editor-top-side",_m="editor-top-center",Am="editor-bottom-center",Cm="editor-above-center",vm="editor-below-center",ym=Xo("px");class xm extends(dm(Lr)){parts;headerView;closeButtonView;actionsView;static defaultOffset=15;contentView;keystrokes;focusTracker;wasMoved=!1;_getCurrentDomRoot;_getViewportOffset;_focusables;_focusCycler;constructor(t,{getCurrentDomRoot:e,getViewportOffset:n}){super(t);const o=this.bindTemplate,i=t.t;this.set("className",""),this.set("ariaLabel",i("Editor dialog")),this.set("isModal",!1),this.set("position",km),this.set("_isVisible",!1),this.set("_isTransparent",!1),this.set("_top",0),this.set("_left",0),this._getCurrentDomRoot=e,this._getViewportOffset=n,this.decorate("moveTo"),this.parts=this.createCollection(),this.keystrokes=new er,this.focusTracker=new tr,this._focusables=new lr,this._focusCycler=new am({focusables:this._focusables,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"shift + tab",focusNext:"tab"}}),this.setTemplate({tag:"div",attributes:{class:["ck","ck-dialog-overlay",o.if("isModal","ck-dialog-overlay__transparent",(t=>!t)),o.if("_isVisible","ck-hidden",(t=>!t))],tabindex:"-1"},children:[{tag:"div",attributes:{tabindex:"-1",class:["ck","ck-dialog",o.to("className")],role:"dialog","aria-label":o.to("ariaLabel"),style:{top:o.to("_top",(t=>ym(t))),left:o.to("_left",(t=>ym(t))),visibility:o.if("_isTransparent","hidden")}},children:this.parts}]})}render(){super.render(),this.keystrokes.set("Esc",((t,e)=>{this.fire("close",{source:"escKeyPress"}),e()})),this.on("drag",((t,{deltaX:e,deltaY:n})=>{this.wasMoved=!0,this.moveBy(e,n)})),this.listenTo(Oo.window,"resize",(()=>{this._isVisible&&!this.wasMoved&&this.updatePosition()})),this.listenTo(Oo.document,"scroll",(()=>{this._isVisible&&!this.wasMoved&&this.updatePosition()})),this.on("change:_isVisible",((t,e,n)=>{n&&(this._isTransparent=!0,setTimeout((()=>{this.updatePosition(),this._isTransparent=!1,this.focus()}),10))})),this.keystrokes.listenTo(this.element)}get dragHandleElement(){return this.headerView?this.headerView.element:null}setupParts({icon:t,title:e,hasCloseButton:n=!0,content:o,actionButtons:i}){e&&(this.headerView=new sm(this.locale,{icon:t}),n&&(this.closeButtonView=this._createCloseButton(),this.headerView.children.add(this.closeButtonView)),this.headerView.label=e,this.ariaLabel=e,this.parts.add(this.headerView,0)),o&&(o instanceof Lr&&(o=[o]),this.contentView=new gm(this.locale),this.contentView.children.addMany(o),this.parts.add(this.contentView)),i&&(this.actionsView=new mm(this.locale),this.actionsView.setButtons(i),this.parts.add(this.actionsView)),this._updateFocusCyclableItems()}focus(){this._focusCycler.focusFirst()}moveTo(t,e){const n=this._getViewportRect(),o=this._getDialogRect();t+o.width>n.right&&(t=n.right-o.width),t{var e;this._focusables.add(t),this.focusTracker.add(t.element),lm(e=t)&&"focusCycler"in e&&e.focusCycler instanceof am&&(this.listenTo(t.focusCycler,"forwardCycle",(t=>{this._focusCycler.focusNext(),this._focusCycler.next!==this._focusCycler.focusables.get(this._focusCycler.current)&&t.stop()})),this.listenTo(t.focusCycler,"backwardCycle",(t=>{this._focusCycler.focusPrevious(),this._focusCycler.previous!==this._focusCycler.focusables.get(this._focusCycler.current)&&t.stop()})))}))}_createCloseButton(){const t=new om(this.locale),e=this.locale.t;return t.set({label:e("Close"),tooltip:!0,icon:Ju.cancel}),t.on("execute",(()=>this.fire("close",{source:"closeButton"}))),t}}class Em extends Nr{view;static _visibleDialogPlugin;_onHide;static get pluginName(){return"Dialog"}constructor(t){super(t);const e=t.t;this._initShowHideListeners(),this._initFocusToggler(),this._initMultiRootIntegration(),this.set("id",null),t.accessibility.addKeystrokeInfos({categoryId:"navigation",keystrokes:[{label:e("Move focus in and out of an active dialog window"),keystroke:"Ctrl+F6",mayRequireFn:!0}]})}_initShowHideListeners(){this.on("show",((t,e)=>{this._show(e)})),this.on("show",((t,e)=>{e.onShow&&e.onShow(this)}),{priority:"low"}),this.on("hide",(()=>{Em._visibleDialogPlugin&&Em._visibleDialogPlugin._hide()})),this.on("hide",(()=>{this._onHide&&(this._onHide(this),this._onHide=void 0)}),{priority:"low"})}_initFocusToggler(){const t=this.editor;t.keystrokes.set("Ctrl+F6",((e,n)=>{this.isOpen&&!this.view.isModal&&(this.view.focusTracker.isFocused?t.editing.view.focus():this.view.focus(),n())}))}_initMultiRootIntegration(){const t=this.editor.model;t.document.on("change:data",(()=>{if(!this.view)return;const e=t.document.differ.getChangedRoots();for(const t of e)t.state&&this.view.updatePosition()}))}show(t){this.hide(),this.fire(`show:${t.id}`,t)}_show({id:t,icon:e,title:n,hasCloseButton:o=!0,content:i,actionButtons:r,className:s,isModal:a,position:c,onHide:l}){const d=this.editor;this.view=new xm(d.locale,{getCurrentDomRoot:()=>d.editing.view.getDomRoot(d.model.document.selection.anchor.root.rootName),getViewportOffset:()=>d.ui.viewportOffset});const h=this.view;h.on("close",(()=>{this.hide()})),d.ui.view.body.add(h),d.ui.focusTracker.add(h.element),d.keystrokes.listenTo(h.element),c||(c=a?km:bm),h.set({position:c,_isVisible:!0,className:s,isModal:a}),h.setupParts({icon:e,title:n,hasCloseButton:o,content:i,actionButtons:r}),this.id=t,l&&(this._onHide=l),this.isOpen=!0,Em._visibleDialogPlugin=this}hide(){Em._visibleDialogPlugin&&Em._visibleDialogPlugin.fire(`hide:${Em._visibleDialogPlugin.id}`)}_hide(){if(!this.view)return;const t=this.editor,e=this.view;e.contentView&&e.contentView.reset(),t.ui.view.body.remove(e),t.ui.focusTracker.remove(e.element),t.keystrokes.stopListening(e.element),e.destroy(),t.editing.view.focus(),this.id=null,this.isOpen=!1,Em._visibleDialogPlugin=null}}var Dm=n(977),Bm={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Pr()(Dm.A,Bm);Dm.A.locals;class Tm extends om{constructor(t){super(t),this.set({withText:!0,withKeystroke:!0,tooltip:!1,role:"menuitem"}),this.extendTemplate({attributes:{class:["ck-menu-bar__menu__item__button"]}})}}var Sm=n(7801),Im={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Pr()(Sm.A,Im);Sm.A.locals;class Pm extends Lr{id;constructor(t){super(t),this.set("text",void 0),this.set("for",void 0),this.id=`ck-editor__label_${A()}`;const e=this.bindTemplate;this.setTemplate({tag:"label",attributes:{class:["ck","ck-label"],id:this.id,for:e.to("for")},children:[{text:e.to("text")}]})}}class zm extends Lr{constructor(t,e){super(t);const n=t.t,o=new Pm;o.text=n("Help Contents. To close this dialog press ESC."),this.setTemplate({tag:"div",attributes:{class:["ck","ck-accessibility-help-dialog__content"],"aria-labelledby":o.id,role:"document",tabindex:-1},children:[Ct(document,"p",{},n("Below, you can find a list of keyboard shortcuts that can be used in the editor.")),...this._createCategories(Array.from(e.values())),o]})}focus(){this.element.focus()}_createCategories(t){return t.map((t=>{const e=[Ct(document,"h3",{},t.label),...Array.from(t.groups.values()).map((t=>this._createGroup(t))).flat()];return t.description&&e.splice(1,0,Ct(document,"p",{},t.description)),Ct(document,"section",{},e)}))}_createGroup(t){const e=t.keystrokes.sort(((t,e)=>t.label.localeCompare(e.label))).map((t=>this._createGroupRow(t))).flat(),n=[Ct(document,"dl",{},e)];return t.label&&n.unshift(Ct(document,"h4",{},t.label)),n}_createGroupRow(t){const e=this.locale.t,n=Ct(document,"dt"),o=Ct(document,"dd"),r=function(t){if("string"==typeof t)return[[t]];if("string"==typeof t[0])return[t];return t}(t.keystroke),s=[];for(const t of r)s.push(t.map(Rm).join(""));return n.innerHTML=t.label,o.innerHTML=s.join(", ")+(t.mayRequireFn&&i.isMac?` ${e("(may require Fn )")}`:""),[n,o]}}function Rm(t){return yi(t).split("+").map((t=>`${t} `)).join("+")}const Lm=' ';var Fm=n(8527),Mm={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Pr()(Fm.A,Mm);Fm.A.locals;class Vm extends Nr{contentView=null;static get requires(){return[Em]}static get pluginName(){return"AccessibilityHelp"}init(){const t=this.editor,e=t.locale.t;t.ui.componentFactory.add("accessibilityHelp",(()=>{const t=this._createButton(om);return t.set({tooltip:!0,withText:!1,label:e("Accessibility help")}),t})),t.ui.componentFactory.add("menuBar:accessibilityHelp",(()=>{const t=this._createButton(Tm);return t.label=e("Accessibility"),t})),t.keystrokes.set("Alt+0",((t,e)=>{this._showDialog(),e()})),this._setupRootLabels()}_createButton(t){const e=new t(this.editor.locale);return e.set({keystroke:"Alt+0",icon:Lm}),e.on("execute",(()=>this._showDialog())),e}_setupRootLabels(){const t=this.editor,e=t.editing.view,n=t.t;function o(t,e){const o=`${e.getAttribute("aria-label")}. ${n("Press %0 for help.",[yi("Alt+0")])}`;t.setAttribute("aria-label",o,e)}t.ui.on("ready",(()=>{e.change((t=>{for(const n of e.document.roots)o(t,n)})),t.on("addRoot",((n,i)=>{const r=t.editing.view.document.getRoot(i.rootName);e.change((t=>o(t,r)))}),{priority:"low"})}))}_showDialog(){const t=this.editor,e=t.plugins.get("Dialog"),n=t.locale.t;this.contentView||(this.contentView=new zm(t.locale,t.accessibility.keystrokeInfos)),e.show({id:"accessibilityHelp",className:"ck-accessibility-help-dialog",title:n("Accessibility help"),icon:Lm,hasCloseButton:!0,content:this.contentView})}}class Om extends lr{locale;_bodyCollectionContainer;constructor(t,e=[]){super(e),this.locale=t}get bodyCollectionContainer(){return this._bodyCollectionContainer}attachToDom(){this._bodyCollectionContainer=new dr({tag:"div",attributes:{class:["ck","ck-reset_all","ck-body","ck-rounded-corners"],dir:this.locale.uiLanguageDirection},children:this}).render();let t=document.querySelector(".ck-body-wrapper");t||(t=Ct(document,"div",{class:"ck-body-wrapper"}),document.body.appendChild(t)),t.appendChild(this._bodyCollectionContainer)}detachFromDom(){super.destroy(),this._bodyCollectionContainer&&this._bodyCollectionContainer.remove();const t=document.querySelector(".ck-body-wrapper");t&&0==t.childElementCount&&t.remove()}}var Nm=n(4391),Hm={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Pr()(Nm.A,Hm);Nm.A.locals;class qm extends om{toggleSwitchView;constructor(t){super(t),this.isToggleable=!0,this.toggleSwitchView=this._createToggleView(),this.extendTemplate({attributes:{class:"ck-switchbutton"}})}render(){super.render(),this.children.add(this.toggleSwitchView)}_createToggleView(){const t=new Lr;return t.setTemplate({tag:"span",attributes:{class:["ck","ck-button__toggle"]},children:[{tag:"span",attributes:{class:["ck","ck-button__toggle__inner"]}}]}),t}}class jm extends om{buttonView;_fileInputView;constructor(t){super(t),this.buttonView=this,this._fileInputView=new Wm(t),this._fileInputView.bind("acceptedType").to(this),this._fileInputView.bind("allowMultipleFiles").to(this),this._fileInputView.delegate("done").to(this),this.on("execute",(()=>{this._fileInputView.open()})),this.extendTemplate({attributes:{class:"ck-file-dialog-button"}})}render(){super.render(),this.children.add(this._fileInputView)}}class Wm extends Lr{constructor(t){super(t),this.set("acceptedType",void 0),this.set("allowMultipleFiles",!1);const e=this.bindTemplate;this.setTemplate({tag:"input",attributes:{class:["ck-hidden"],type:"file",tabindex:"-1",accept:e.to("acceptedType"),multiple:e.to("allowMultipleFiles")},on:{change:e.to((()=>{this.element&&this.element.files&&this.element.files.length&&this.fire("done",this.element.files),this.element.value=""}))}})}open(){this.element.click()}}const Gm=' ';var Km=n(25),Um={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Pr()(Km.A,Um);Km.A.locals;class $m extends Lr{buttonView;children;constructor(t,e){super(t);const n=this.bindTemplate;this.set("isCollapsed",!1),this.set("label",""),this.buttonView=this._createButtonView(),this.children=this.createCollection(),this.set("_collapsibleAriaLabelUid",void 0),e&&this.children.addMany(e),this.setTemplate({tag:"div",attributes:{class:["ck","ck-collapsible",n.if("isCollapsed","ck-collapsible_collapsed")]},children:[this.buttonView,{tag:"div",attributes:{class:["ck","ck-collapsible__children"],role:"region",hidden:n.if("isCollapsed","hidden"),"aria-labelledby":n.to("_collapsibleAriaLabelUid")},children:this.children}]})}render(){super.render(),this._collapsibleAriaLabelUid=this.buttonView.labelView.element.id}focus(){this.buttonView.focus()}_createButtonView(){const t=new om(this.locale),e=t.bindTemplate;return t.set({withText:!0,icon:Gm}),t.extendTemplate({attributes:{"aria-expanded":e.to("isOn",(t=>String(t)))}}),t.bind("label").to(this),t.bind("isOn").to(this,"isCollapsed",(t=>!t)),t.on("execute",(()=>{this.isCollapsed=!this.isCollapsed})),t}}function Zm(t,e){const n=t.t,o={Black:n("Black"),"Dim grey":n("Dim grey"),Grey:n("Grey"),"Light grey":n("Light grey"),White:n("White"),Red:n("Red"),Orange:n("Orange"),Yellow:n("Yellow"),"Light green":n("Light green"),Green:n("Green"),Aquamarine:n("Aquamarine"),Turquoise:n("Turquoise"),"Light blue":n("Light blue"),Blue:n("Blue"),Purple:n("Purple")};return e.map((t=>{const e=o[t.label];return e&&e!=t.label&&(t.label=e),t}))}function Jm(t){return t.map(Ym).filter((t=>!!t))}function Ym(t){return"string"==typeof t?{model:t,label:t,hasBorder:!1,view:{name:"span",styles:{color:t}}}:{model:t.color,label:t.label||t.color,hasBorder:void 0!==t.hasBorder&&t.hasBorder,view:{name:"span",styles:{color:`${t.color}`}}}}class Qm extends om{constructor(t){super(t);const e=this.bindTemplate;this.set("color",void 0),this.set("hasBorder",!1),this.icon=' ',this.extendTemplate({attributes:{style:{backgroundColor:e.to("color",(t=>i.isMediaForcedColors?null:t))},class:["ck","ck-color-grid__tile",e.if("hasBorder","ck-color-selector__color-tile_bordered")]}})}render(){super.render(),this.iconView.fillColor="hsl(0, 0%, 100%)"}}var Xm=n(7317),tg={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Pr()(Xm.A,tg);Xm.A.locals;class eg extends Lr{columns;items;focusTracker;keystrokes;constructor(t,e){super(t);const n=e&&e.colorDefinitions?e.colorDefinitions:[];this.columns=e&&e.columns?e.columns:5;const o={gridTemplateColumns:`repeat( ${this.columns}, 1fr)`};this.set("selectedColor",void 0),this.items=this.createCollection(),this.focusTracker=new tr,this.keystrokes=new er,this.items.on("add",((t,e)=>{e.isOn=e.color===this.selectedColor})),n.forEach((t=>{const e=new Qm;e.set({color:t.color,label:t.label,tooltip:!0,hasBorder:t.options.hasBorder}),e.on("execute",(()=>{this.fire("execute",{value:t.color,hasBorder:t.options.hasBorder,label:t.label})})),this.items.add(e)})),this.setTemplate({tag:"div",children:this.items,attributes:{class:["ck","ck-color-grid"],style:o}}),this.on("change:selectedColor",((t,e,n)=>{for(const t of this.items)t.isOn=t.color===n}))}focus(){this.items.length&&this.items.first.focus()}focusLast(){this.items.length&&this.items.last.focus()}render(){super.render();for(const t of this.items)this.focusTracker.add(t.element);this.items.on("add",((t,e)=>{this.focusTracker.add(e.element)})),this.items.on("remove",((t,e)=>{this.focusTracker.remove(e.element)})),this.keystrokes.listenTo(this.element),Or({keystrokeHandler:this.keystrokes,focusTracker:this.focusTracker,gridItems:this.items,numberOfColumns:this.columns,uiLanguageDirection:this.locale&&this.locale.uiLanguageDirection})}destroy(){super.destroy(),this.focusTracker.destroy(),this.keystrokes.destroy()}}var ng=n(6931);const og=function(t){var e,n,o=[],i=1;if("string"==typeof t)if(ng[t])o=ng[t].slice(),n="rgb";else if("transparent"===t)i=0,n="rgb",o=[0,0,0];else if(/^#[A-Fa-f0-9]+$/.test(t)){var r=t.slice(1);i=1,(c=r.length)<=4?(o=[parseInt(r[0]+r[0],16),parseInt(r[1]+r[1],16),parseInt(r[2]+r[2],16)],4===c&&(i=parseInt(r[3]+r[3],16)/255)):(o=[parseInt(r[0]+r[1],16),parseInt(r[2]+r[3],16),parseInt(r[4]+r[5],16)],8===c&&(i=parseInt(r[6]+r[7],16)/255)),o[0]||(o[0]=0),o[1]||(o[1]=0),o[2]||(o[2]=0),n="rgb"}else if(e=/^((?:rgb|hs[lvb]|hwb|cmyk?|xy[zy]|gray|lab|lchu?v?|[ly]uv|lms)a?)\s*\(([^\)]*)\)/.exec(t)){var s=e[1],a="rgb"===s;n=r=s.replace(/a$/,"");var c="cmyk"===r?4:"gray"===r?1:3;o=e[2].trim().split(/\s*[,\/]\s*|\s+/).map((function(t,e){if(/%$/.test(t))return e===c?parseFloat(t)/100:"rgb"===r?255*parseFloat(t)/100:parseFloat(t);if("h"===r[e]){if(/deg$/.test(t))return parseFloat(t);if(void 0!==ig[t])return ig[t]}return parseFloat(t)})),s===r&&o.push(1),i=a||void 0===o[c]?1:o[c],o=o.slice(0,c)}else t.length>10&&/[0-9](?:\s|\/)/.test(t)&&(o=t.match(/([0-9]+)/g).map((function(t){return parseFloat(t)})),n=t.match(/([a-z])/gi).join("").toLowerCase());else isNaN(t)?Array.isArray(t)||t.length?(o=[t[0],t[1],t[2]],n="rgb",i=4===t.length?t[3]:1):t instanceof Object&&(null!=t.r||null!=t.red||null!=t.R?(n="rgb",o=[t.r||t.red||t.R||0,t.g||t.green||t.G||0,t.b||t.blue||t.B||0]):(n="hsl",o=[t.h||t.hue||t.H||0,t.s||t.saturation||t.S||0,t.l||t.lightness||t.L||t.b||t.brightness]),i=t.a||t.alpha||t.opacity||1,null!=t.opacity&&(i/=100)):(n="rgb",o=[t>>>16,(65280&t)>>>8,255&t]);return{space:n,values:o,alpha:i}};var ig={red:0,orange:60,yellow:120,green:180,blue:240,purple:300};var rg=n(9047);function sg(t,e){if(!t)return"";const n=ag(t);if(!n)return"";if(n.space===e)return t;if(o=n,!Object.keys(rg).includes(o.space))return"";var o;const i=rg[n.space][e];if(!i)return"";return function(t,e){switch(e){case"hex":return`#${t}`;case"rgb":return`rgb( ${t[0]}, ${t[1]}, ${t[2]} )`;case"hsl":return`hsl( ${t[0]}, ${t[1]}%, ${t[2]}% )`;case"hwb":return`hwb( ${t[0]}, ${t[1]}, ${t[2]} )`;case"lab":return`lab( ${t[0]}% ${t[1]} ${t[2]} )`;case"lch":return`lch( ${t[0]}% ${t[1]} ${t[2]} )`;default:return""}}(i("hex"===n.space?n.hexValue:n.values),e)}function ag(t){if(t.startsWith("#")){const e=og(t);return{space:"hex",values:e.values,hexValue:t,alpha:e.alpha}}const e=og(t);return e.space?e:null}var cg=n(4962),lg={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Pr()(cg.A,lg);cg.A.locals;class dg extends Lr{fieldView;labelView;statusView;fieldWrapperChildren;constructor(t,e){super(t);const n=`ck-labeled-field-view-${A()}`,o=`ck-labeled-field-view-status-${A()}`;this.fieldView=e(this,n,o),this.set("label",void 0),this.set("isEnabled",!0),this.set("isEmpty",!0),this.set("isFocused",!1),this.set("errorText",null),this.set("infoText",null),this.set("class",void 0),this.set("placeholder",void 0),this.labelView=this._createLabelView(n),this.statusView=this._createStatusView(o),this.fieldWrapperChildren=this.createCollection([this.fieldView,this.labelView]),this.bind("_statusText").to(this,"errorText",this,"infoText",((t,e)=>t||e));const i=this.bindTemplate;this.setTemplate({tag:"div",attributes:{class:["ck","ck-labeled-field-view",i.to("class"),i.if("isEnabled","ck-disabled",(t=>!t)),i.if("isEmpty","ck-labeled-field-view_empty"),i.if("isFocused","ck-labeled-field-view_focused"),i.if("placeholder","ck-labeled-field-view_placeholder"),i.if("errorText","ck-error")]},children:[{tag:"div",attributes:{class:["ck","ck-labeled-field-view__input-wrapper"]},children:this.fieldWrapperChildren},this.statusView]})}_createLabelView(t){const e=new Pm(this.locale);return e.for=t,e.bind("text").to(this,"label"),e}_createStatusView(t){const e=new Lr(this.locale),n=this.bindTemplate;return e.setTemplate({tag:"div",attributes:{class:["ck","ck-labeled-field-view__status",n.if("errorText","ck-labeled-field-view__status_error"),n.if("_statusText","ck-hidden",(t=>!t))],id:t,role:n.if("errorText","alert")},children:[{text:n.to("_statusText")}]}),e}focus(t){this.fieldView.focus(t)}}class hg extends Lr{focusTracker;constructor(t){super(t),this.set("value",void 0),this.set("id",void 0),this.set("placeholder",void 0),this.set("tabIndex",void 0),this.set("isReadOnly",!1),this.set("hasError",!1),this.set("ariaDescribedById",void 0),this.set("ariaLabel",void 0),this.focusTracker=new tr,this.bind("isFocused").to(this.focusTracker),this.set("isEmpty",!0);const e=this.bindTemplate;this.setTemplate({tag:"input",attributes:{class:["ck","ck-input",e.if("isFocused","ck-input_focused"),e.if("isEmpty","ck-input-text_empty"),e.if("hasError","ck-error")],id:e.to("id"),placeholder:e.to("placeholder"),tabindex:e.to("tabIndex"),readonly:e.to("isReadOnly"),"aria-invalid":e.if("hasError",!0),"aria-describedby":e.to("ariaDescribedById"),"aria-label":e.to("ariaLabel")},on:{input:e.to(((...t)=>{this.fire("input",...t),this._updateIsEmpty()})),change:e.to(this._updateIsEmpty.bind(this))}})}render(){super.render(),this.focusTracker.add(this.element),this._setDomElementValue(this.value),this._updateIsEmpty(),this.on("change:value",((t,e,n)=>{this._setDomElementValue(n),this._updateIsEmpty()}))}destroy(){super.destroy(),this.focusTracker.destroy()}select(){this.element.select()}focus(){this.element.focus()}reset(){this.value=this.element.value="",this._updateIsEmpty()}_updateIsEmpty(){this.isEmpty=!this.element.value}_setDomElementValue(t){this.element.value=t||0===t?t:""}}var ug=n(253),mg={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Pr()(ug.A,mg);ug.A.locals;class gg extends hg{constructor(t){super(t),this.set("inputMode","text");const e=this.bindTemplate;this.extendTemplate({attributes:{inputmode:e.to("inputMode")}})}}class pg extends gg{constructor(t){super(t),this.extendTemplate({attributes:{type:"text",class:["ck-input-text"]}})}}class fg extends gg{constructor(t,{min:e,max:n,step:o}={}){super(t);const i=this.bindTemplate;this.set("min",e),this.set("max",n),this.set("step",o),this.extendTemplate({attributes:{type:"number",class:["ck-input-number"],min:i.to("min"),max:i.to("max"),step:i.to("step")}})}}var kg=n(1671),bg={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Pr()(kg.A,bg);kg.A.locals;class wg extends Lr{children;constructor(t){super(t);const e=this.bindTemplate;this.set("isVisible",!1),this.set("position","se"),this.children=this.createCollection(),this.setTemplate({tag:"div",attributes:{class:["ck","ck-reset","ck-dropdown__panel",e.to("position",(t=>`ck-dropdown__panel_${t}`)),e.if("isVisible","ck-dropdown__panel-visible")],tabindex:"-1"},children:this.children,on:{selectstart:e.to((t=>{"input"!==t.target.tagName.toLocaleLowerCase()&&t.preventDefault()}))}})}focus(){if(this.children.length){const t=this.children.first;"function"==typeof t.focus?t.focus():E("ui-dropdown-panel-focus-child-missing-focus",{childView:this.children.first,dropdownPanel:this})}}focusLast(){if(this.children.length){const t=this.children.last;"function"==typeof t.focusLast?t.focusLast():t.focus()}}}var _g=n(8149),Ag={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Pr()(_g.A,Ag);_g.A.locals;class Cg extends Lr{buttonView;panelView;focusTracker;keystrokes;listView;toolbarView;constructor(t,e,n){super(t);const o=this.bindTemplate;this.buttonView=e,this.panelView=n,this.set("isOpen",!1),this.set("isEnabled",!0),this.set("class",void 0),this.set("id",void 0),this.set("panelPosition","auto"),this.panelView.bind("isVisible").to(this,"isOpen"),this.keystrokes=new er,this.focusTracker=new tr,this.setTemplate({tag:"div",attributes:{class:["ck","ck-dropdown",o.to("class"),o.if("isEnabled","ck-disabled",(t=>!t))],id:o.to("id"),"aria-describedby":o.to("ariaDescribedById")},children:[e,n]}),e.extendTemplate({attributes:{class:["ck-dropdown__button"],"data-cke-tooltip-disabled":o.to("isOpen")}})}render(){super.render(),this.focusTracker.add(this.buttonView.element),this.focusTracker.add(this.panelView.element),this.listenTo(this.buttonView,"open",(()=>{this.isOpen=!this.isOpen})),this.on("change:isOpen",((t,e,n)=>{if(n)if("auto"===this.panelPosition){const t=Cg._getOptimalPosition({element:this.panelView.element,target:this.buttonView.element,fitInViewport:!0,positions:this._panelPositions});this.panelView.position=t?t.name:this._panelPositions[0].name}else this.panelView.position=this.panelPosition})),this.keystrokes.listenTo(this.element);const t=(t,e)=>{this.isOpen&&(this.isOpen=!1,e())};this.keystrokes.set("arrowdown",((t,e)=>{this.buttonView.isEnabled&&!this.isOpen&&(this.isOpen=!0,e())})),this.keystrokes.set("arrowright",((t,e)=>{this.isOpen&&e()})),this.keystrokes.set("arrowleft",t),this.keystrokes.set("esc",t)}focus(){this.buttonView.focus()}get _panelPositions(){const{south:t,north:e,southEast:n,southWest:o,northEast:i,northWest:r,southMiddleEast:s,southMiddleWest:a,northMiddleEast:c,northMiddleWest:l}=Cg.defaultPanelPositions;return"rtl"!==this.locale.uiLanguageDirection?[n,o,s,a,t,i,r,c,l,e]:[o,n,a,s,t,r,i,l,c,e]}static defaultPanelPositions={south:(t,e)=>({top:t.bottom,left:t.left-(e.width-t.width)/2,name:"s"}),southEast:t=>({top:t.bottom,left:t.left,name:"se"}),southWest:(t,e)=>({top:t.bottom,left:t.left-e.width+t.width,name:"sw"}),southMiddleEast:(t,e)=>({top:t.bottom,left:t.left-(e.width-t.width)/4,name:"sme"}),southMiddleWest:(t,e)=>({top:t.bottom,left:t.left-3*(e.width-t.width)/4,name:"smw"}),north:(t,e)=>({top:t.top-e.height,left:t.left-(e.width-t.width)/2,name:"n"}),northEast:(t,e)=>({top:t.top-e.height,left:t.left,name:"ne"}),northWest:(t,e)=>({top:t.top-e.height,left:t.left-e.width+t.width,name:"nw"}),northMiddleEast:(t,e)=>({top:t.top-e.height,left:t.left-(e.width-t.width)/4,name:"nme"}),northMiddleWest:(t,e)=>({top:t.top-e.height,left:t.left-3*(e.width-t.width)/4,name:"nmw"})};static _getOptimalPosition=ii}class vg extends om{arrowView;constructor(t){super(t),this.arrowView=this._createArrowView(),this.extendTemplate({attributes:{"aria-haspopup":!0,"aria-expanded":this.bindTemplate.to("isOn",(t=>String(t)))}}),this.delegate("execute").to(this,"open")}render(){super.render(),this.children.add(this.arrowView)}_createArrowView(){const t=new Xu;return t.content=Gm,t.extendTemplate({attributes:{class:"ck-dropdown__arrow"}}),t}}class yg extends Lr{constructor(t){super(t),this.setTemplate({tag:"span",attributes:{class:["ck","ck-toolbar__separator"]}})}}class xg extends Lr{constructor(t){super(t),this.setTemplate({tag:"span",attributes:{class:["ck","ck-toolbar__line-break"]}})}}function Eg(t){if(Array.isArray(t))return{items:t,removeItems:[]};const e={items:[],removeItems:[]};return t?{...e,...t}:e}var Dg=n(9677),Bg={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Pr()(Dg.A,Bg);Dg.A.locals;const Tg={alignLeft:Ju.alignLeft,bold:Ju.bold,importExport:Ju.importExport,paragraph:Ju.paragraph,plus:Ju.plus,text:Ju.text,threeVerticalDots:Ju.threeVerticalDots,pilcrow:Ju.pilcrow,dragIndicator:Ju.dragIndicator};class Sg extends Lr{options;items;focusTracker;keystrokes;itemsView;children;focusables;_focusCycler;_behavior;constructor(t,e){super(t);const n=this.bindTemplate,o=this.t;this.options=e||{},this.set("ariaLabel",o("Editor toolbar")),this.set("maxWidth","auto"),this.items=this.createCollection(),this.focusTracker=new tr,this.keystrokes=new er,this.set("class",void 0),this.set("isCompact",!1),this.itemsView=new Ig(t),this.children=this.createCollection(),this.children.add(this.itemsView),this.focusables=this.createCollection();const i="rtl"===t.uiLanguageDirection;this._focusCycler=new am({focusables:this.focusables,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:[i?"arrowright":"arrowleft","arrowup"],focusNext:[i?"arrowleft":"arrowright","arrowdown"]}});const r=["ck","ck-toolbar",n.to("class"),n.if("isCompact","ck-toolbar_compact")];var s;this.options.shouldGroupWhenFull&&this.options.isFloating&&r.push("ck-toolbar_floating"),this.setTemplate({tag:"div",attributes:{class:r,role:"toolbar","aria-label":n.to("ariaLabel"),style:{maxWidth:n.to("maxWidth")},tabindex:-1},children:this.children,on:{mousedown:(s=this,s.bindTemplate.to((t=>{t.target===s.element&&t.preventDefault()})))}}),this._behavior=this.options.shouldGroupWhenFull?new zg(this):new Pg(this)}render(){super.render(),this.focusTracker.add(this.element);for(const t of this.items)this.focusTracker.add(t.element);this.items.on("add",((t,e)=>{this.focusTracker.add(e.element)})),this.items.on("remove",((t,e)=>{this.focusTracker.remove(e.element)})),this.keystrokes.listenTo(this.element),this._behavior.render(this)}destroy(){return this._behavior.destroy(),this.focusTracker.destroy(),this.keystrokes.destroy(),super.destroy()}focus(){this._focusCycler.focusFirst()}focusLast(){this._focusCycler.focusLast()}fillFromConfig(t,e,n){this.items.addMany(this._buildItemsFromConfig(t,e,n))}_buildItemsFromConfig(t,e,n){const o=Eg(t),i=n||o.removeItems;return this._cleanItemsConfiguration(o.items,e,i).map((t=>j(t)?this._createNestedToolbarDropdown(t,e,i):"|"===t?new yg:"-"===t?new xg:e.create(t))).filter((t=>!!t))}_cleanItemsConfiguration(t,e,n){const o=t.filter(((t,o,i)=>"|"===t||-1===n.indexOf(t)&&("-"===t?!this.options.shouldGroupWhenFull||(E("toolbarview-line-break-ignored-when-grouping-items",i),!1):!(!j(t)&&!e.has(t))||(E("toolbarview-item-unavailable",{item:t}),!1))));return this._cleanSeparatorsAndLineBreaks(o)}_cleanSeparatorsAndLineBreaks(t){const e=t=>"-"!==t&&"|"!==t,n=t.length,o=t.findIndex(e);if(-1===o)return[];const i=n-t.slice().reverse().findIndex(e);return t.slice(o,i).filter(((t,n,o)=>{if(e(t))return!0;return!(n>0&&o[n-1]===t)}))}_createNestedToolbarDropdown(t,e,n){let{label:o,icon:i,items:r,tooltip:s=!0,withText:a=!1}=t;if(r=this._cleanItemsConfiguration(r,e,n),!r.length)return null;const c=Ug(this.locale);return o||E("toolbarview-nested-toolbar-dropdown-missing-label",t),c.class="ck-toolbar__nested-toolbar-dropdown",c.buttonView.set({label:o,tooltip:s,withText:!!a}),!1!==i?c.buttonView.icon=Tg[i]||i||Ju.threeVerticalDots:c.buttonView.withText=!0,$g(c,(()=>c.toolbarView._buildItemsFromConfig(r,e,n))),c}}class Ig extends Lr{children;constructor(t){super(t),this.children=this.createCollection(),this.setTemplate({tag:"div",attributes:{class:["ck","ck-toolbar__items"]},children:this.children})}}class Pg{constructor(t){const e=t.bindTemplate;t.set("isVertical",!1),t.itemsView.children.bindTo(t.items).using((t=>t)),t.focusables.bindTo(t.items).using((t=>lm(t)?t:null)),t.extendTemplate({attributes:{class:[e.if("isVertical","ck-toolbar_vertical")]}})}render(){}destroy(){}}class zg{view;viewChildren;viewFocusables;viewItemsView;viewFocusTracker;viewLocale;ungroupedItems;groupedItems;groupedItemsDropdown;resizeObserver=null;cachedPadding=null;shouldUpdateGroupingOnNextResize=!1;viewElement;constructor(t){this.view=t,this.viewChildren=t.children,this.viewFocusables=t.focusables,this.viewItemsView=t.itemsView,this.viewFocusTracker=t.focusTracker,this.viewLocale=t.locale,this.ungroupedItems=t.createCollection(),this.groupedItems=t.createCollection(),this.groupedItemsDropdown=this._createGroupedItemsDropdown(),t.itemsView.children.bindTo(this.ungroupedItems).using((t=>t)),this.ungroupedItems.on("change",this._updateFocusCyclableItems.bind(this)),t.children.on("change",this._updateFocusCyclableItems.bind(this)),t.items.on("change",((t,e)=>{const n=e.index,o=Array.from(e.added);for(const t of e.removed)n>=this.ungroupedItems.length?this.groupedItems.remove(t):this.ungroupedItems.remove(t);for(let t=n;tthis.ungroupedItems.length?this.groupedItems.add(e,t-this.ungroupedItems.length):this.ungroupedItems.add(e,t)}this._updateGrouping()})),t.extendTemplate({attributes:{class:["ck-toolbar_grouping"]}})}render(t){this.viewElement=t.element,this._enableGroupingOnResize(),this._enableGroupingOnMaxWidthChange(t)}destroy(){this.groupedItemsDropdown.destroy(),this.resizeObserver.destroy()}_updateGrouping(){if(!this.viewElement.ownerDocument.body.contains(this.viewElement))return;if(!oi(this.viewElement))return void(this.shouldUpdateGroupingOnNextResize=!0);const t=this.groupedItems.length;let e;for(;this._areItemsOverflowing;)this._groupLastItem(),e=!0;if(!e&&this.groupedItems.length){for(;this.groupedItems.length&&!this._areItemsOverflowing;)this._ungroupFirstItem();this._areItemsOverflowing&&this._groupLastItem()}this.groupedItems.length!==t&&this.view.fire("groupedItemsUpdate")}get _areItemsOverflowing(){if(!this.ungroupedItems.length)return!1;const t=this.viewElement,e=this.viewLocale.uiLanguageDirection,n=new Ko(t.lastChild),o=new Ko(t);if(!this.cachedPadding){const n=Oo.window.getComputedStyle(t),o="ltr"===e?"paddingRight":"paddingLeft";this.cachedPadding=Number.parseInt(n[o])}return"ltr"===e?n.right>o.right-this.cachedPadding:n.left{t&&t===e.contentRect.width&&!this.shouldUpdateGroupingOnNextResize||(this.shouldUpdateGroupingOnNextResize=!1,this._updateGrouping(),t=e.contentRect.width)})),this._updateGrouping()}_enableGroupingOnMaxWidthChange(t){t.on("change:maxWidth",(()=>{this._updateGrouping()}))}_groupLastItem(){this.groupedItems.length||(this.viewChildren.add(new yg),this.viewChildren.add(this.groupedItemsDropdown),this.viewFocusTracker.add(this.groupedItemsDropdown.element)),this.groupedItems.add(this.ungroupedItems.remove(this.ungroupedItems.last),0)}_ungroupFirstItem(){this.ungroupedItems.add(this.groupedItems.remove(this.groupedItems.first)),this.groupedItems.length||(this.viewChildren.remove(this.groupedItemsDropdown),this.viewChildren.remove(this.viewChildren.last),this.viewFocusTracker.remove(this.groupedItemsDropdown.element))}_createGroupedItemsDropdown(){const t=this.viewLocale,e=t.t,n=Ug(t);return n.class="ck-toolbar__grouped-dropdown",n.panelPosition="ltr"===t.uiLanguageDirection?"sw":"se",$g(n,this.groupedItems),n.buttonView.set({label:e("Show more items"),tooltip:!0,tooltipPosition:"rtl"===t.uiLanguageDirection?"se":"sw",icon:Ju.threeVerticalDots}),n}_updateFocusCyclableItems(){this.viewFocusables.clear(),this.ungroupedItems.map((t=>{lm(t)&&this.viewFocusables.add(t)})),this.groupedItems.length&&this.viewFocusables.add(this.groupedItemsDropdown)}}class Rg extends Lr{children;constructor(t){super(t);const e=this.bindTemplate;this.set("isVisible",!0),this.children=this.createCollection(),this.setTemplate({tag:"li",attributes:{class:["ck","ck-list__item",e.if("isVisible","ck-hidden",(t=>!t))],role:"presentation"},children:this.children})}focus(){this.children.first&&this.children.first.focus()}}class Lg extends Lr{constructor(t){super(t),this.setTemplate({tag:"li",attributes:{class:["ck","ck-list__separator"]}})}}class Fg extends Lr{labelView;items;children;constructor(t,e=new Pm){super(t);const n=this.bindTemplate,o=new Og(t);this.set({label:"",isVisible:!0}),this.labelView=e,this.labelView.bind("text").to(this,"label"),this.children=this.createCollection(),this.children.addMany([this.labelView,o]),o.set({role:"group",ariaLabelledBy:e.id}),o.focusTracker.destroy(),o.keystrokes.destroy(),this.items=o.items,this.setTemplate({tag:"li",attributes:{role:"presentation",class:["ck","ck-list__group",n.if("isVisible","ck-hidden",(t=>!t))]},children:this.children})}focus(){if(this.items){const t=this.items.find((t=>!(t instanceof Lg)));t&&t.focus()}}}var Mg=n(5199),Vg={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Pr()(Mg.A,Vg);Mg.A.locals;class Og extends Lr{focusables;items;focusTracker;keystrokes;_focusCycler;_listItemGroupToChangeListeners=new WeakMap;constructor(t){super(t);const e=this.bindTemplate;this.focusables=new lr,this.items=this.createCollection(),this.focusTracker=new tr,this.keystrokes=new er,this._focusCycler=new am({focusables:this.focusables,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"arrowup",focusNext:"arrowdown"}}),this.set("ariaLabel",void 0),this.set("ariaLabelledBy",void 0),this.set("role",void 0),this.setTemplate({tag:"ul",attributes:{class:["ck","ck-reset","ck-list"],role:e.to("role"),"aria-label":e.to("ariaLabel"),"aria-labelledby":e.to("ariaLabelledBy")},children:this.items})}render(){super.render();for(const t of this.items)t instanceof Fg?this._registerFocusableItemsGroup(t):t instanceof Rg&&this._registerFocusableListItem(t);this.items.on("change",((t,e)=>{for(const t of e.removed)t instanceof Fg?this._deregisterFocusableItemsGroup(t):t instanceof Rg&&this._deregisterFocusableListItem(t);for(const t of Array.from(e.added).reverse())t instanceof Fg?this._registerFocusableItemsGroup(t,e.index):this._registerFocusableListItem(t,e.index)})),this.keystrokes.listenTo(this.element)}destroy(){super.destroy(),this.focusTracker.destroy(),this.keystrokes.destroy()}focus(){this._focusCycler.focusFirst()}focusFirst(){this._focusCycler.focusFirst()}focusLast(){this._focusCycler.focusLast()}_registerFocusableListItem(t,e){this.focusTracker.add(t.element),this.focusables.add(t,e)}_deregisterFocusableListItem(t){this.focusTracker.remove(t.element),this.focusables.remove(t)}_getOnGroupItemsChangeCallback(t){return(e,n)=>{for(const t of n.removed)this._deregisterFocusableListItem(t);for(const e of Array.from(n.added).reverse())this._registerFocusableListItem(e,this.items.getIndex(t)+n.index)}}_registerFocusableItemsGroup(t,e){Array.from(t.items).forEach(((t,n)=>{const o=void 0!==e?e+n:void 0;this._registerFocusableListItem(t,o)}));const n=this._getOnGroupItemsChangeCallback(t);this._listItemGroupToChangeListeners.set(t,n),t.items.on("change",n)}_deregisterFocusableItemsGroup(t){for(const e of t.items)this._deregisterFocusableListItem(e);t.items.off("change",this._listItemGroupToChangeListeners.get(t)),this._listItemGroupToChangeListeners.delete(t)}}var Ng=n(1792),Hg={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Pr()(Ng.A,Hg);Ng.A.locals;class qg extends Lr{children;actionView;arrowView;keystrokes;focusTracker;constructor(t,e){super(t);const n=this.bindTemplate;this.set("class",void 0),this.set("labelStyle",void 0),this.set("icon",void 0),this.set("isEnabled",!0),this.set("isOn",!1),this.set("isToggleable",!1),this.set("isVisible",!0),this.set("keystroke",void 0),this.set("withKeystroke",!1),this.set("label",void 0),this.set("tabindex",-1),this.set("tooltip",!1),this.set("tooltipPosition","s"),this.set("type","button"),this.set("withText",!1),this.children=this.createCollection(),this.actionView=this._createActionView(e),this.arrowView=this._createArrowView(),this.keystrokes=new er,this.focusTracker=new tr,this.setTemplate({tag:"div",attributes:{class:["ck","ck-splitbutton",n.to("class"),n.if("isVisible","ck-hidden",(t=>!t)),this.arrowView.bindTemplate.if("isOn","ck-splitbutton_open")]},children:this.children})}render(){super.render(),this.children.add(this.actionView),this.children.add(this.arrowView),this.focusTracker.add(this.actionView.element),this.focusTracker.add(this.arrowView.element),this.keystrokes.listenTo(this.element),this.keystrokes.set("arrowright",((t,e)=>{this.focusTracker.focusedElement===this.actionView.element&&(this.arrowView.focus(),e())})),this.keystrokes.set("arrowleft",((t,e)=>{this.focusTracker.focusedElement===this.arrowView.element&&(this.actionView.focus(),e())}))}destroy(){super.destroy(),this.focusTracker.destroy(),this.keystrokes.destroy()}focus(){this.actionView.focus()}_createActionView(t){const e=t||new om;return t||e.bind("icon","isEnabled","isOn","isToggleable","keystroke","label","tabindex","tooltip","tooltipPosition","type","withText").to(this),e.extendTemplate({attributes:{class:"ck-splitbutton__action"}}),e.delegate("execute").to(this),e}_createArrowView(){const t=new om,e=t.bindTemplate;return t.icon=Gm,t.extendTemplate({attributes:{class:["ck-splitbutton__arrow"],"data-cke-tooltip-disabled":e.to("isOn"),"aria-haspopup":!0,"aria-expanded":e.to("isOn",(t=>String(t)))}}),t.bind("isEnabled").to(this),t.bind("label").to(this),t.bind("tooltip").to(this),t.delegate("execute").to(this,"open"),t}}var jg=n(1666),Wg={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Pr()(jg.A,Wg);jg.A.locals;var Gg=n(3629),Kg={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Pr()(Gg.A,Kg);Gg.A.locals;function Ug(t,e=vg){const n="function"==typeof e?new e(t):e,o=new wg(t),i=new Cg(t,n,o);return n.bind("isEnabled").to(i),n instanceof qg?n.arrowView.bind("isOn").to(i,"isOpen"):n.bind("isOn").to(i,"isOpen"),function(t){(function(t){t.on("render",(()=>{Fr({emitter:t,activator:()=>t.isOpen,callback:()=>{t.isOpen=!1},contextElements:()=>[t.element,...t.focusTracker._elements]})}))})(t),function(t){t.on("execute",(e=>{e.source instanceof qm||(t.isOpen=!1)}))}(t),function(t){t.focusTracker.on("change:isFocused",((e,n,o)=>{t.isOpen&&!o&&(t.isOpen=!1)}))}(t),function(t){t.keystrokes.set("arrowdown",((e,n)=>{t.isOpen&&(t.panelView.focus(),n())})),t.keystrokes.set("arrowup",((e,n)=>{t.isOpen&&(t.panelView.focusLast(),n())}))}(t),function(t){t.on("change:isOpen",((e,n,o)=>{if(o)return;const i=t.panelView.element;i&&i.contains(Oo.document.activeElement)&&t.buttonView.focus()}))}(t),function(t){t.on("change:isOpen",((e,n,o)=>{o&&t.panelView.focus()}),{priority:"low"})}(t)}(i),i}function $g(t,e,n={}){t.extendTemplate({attributes:{class:["ck-toolbar-dropdown"]}}),t.isOpen?Zg(t,e,n):t.once("change:isOpen",(()=>Zg(t,e,n)),{priority:"highest"}),n.enableActiveItemFocusOnDropdownOpen&&Qg(t,(()=>t.toolbarView.items.find((t=>t.isOn))))}function Zg(t,e,n){const o=t.locale,i=o.t,r=t.toolbarView=new Sg(o),s="function"==typeof e?e():e;r.ariaLabel=n.ariaLabel||i("Dropdown toolbar"),n.maxWidth&&(r.maxWidth=n.maxWidth),n.class&&(r.class=n.class),n.isCompact&&(r.isCompact=n.isCompact),n.isVertical&&(r.isVertical=!0),s instanceof lr?r.items.bindTo(s).using((t=>t)):r.items.addMany(s),t.panelView.children.add(r),r.items.delegate("execute").to(t)}function Jg(t,e,n={}){t.isOpen?Yg(t,e,n):t.once("change:isOpen",(()=>Yg(t,e,n)),{priority:"highest"}),Qg(t,(()=>t.listView.items.find((t=>t instanceof Rg&&t.children.first.isOn))))}function Yg(t,e,n){const o=t.locale,i=t.listView=new Og(o),r="function"==typeof e?e():e;i.ariaLabel=n.ariaLabel,i.role=n.role,Xg(t,i.items,r,o),t.panelView.children.add(i),i.items.delegate("execute").to(t)}function Qg(t,e){t.on("change:isOpen",(()=>{if(!t.isOpen)return;const n=e();n&&("function"==typeof n.focus?n.focus():E("ui-dropdown-focus-child-on-open-child-missing-focus",{view:n}))}),{priority:C.low-10})}function Xg(t,e,n,o){e.bindTo(n).using((e=>{if("separator"===e.type)return new Lg(o);if("group"===e.type){const n=new Fg(o);return n.set({label:e.label}),Xg(t,n.items,e.items,o),n.items.delegate("execute").to(t),n}if("button"===e.type||"switchbutton"===e.type){const t=new Rg(o);let n;return"button"===e.type?(n=new om(o),n.bind("ariaChecked").to(n,"isOn")):n=new qm(o),n.bind(...Object.keys(e.model)).to(e.model),n.delegate("execute").to(t),t.children.add(n),t}return null}))}const tp=(t,e,n)=>{const o=new pg(t.locale);return o.set({id:e,ariaDescribedById:n}),o.bind("isReadOnly").to(t,"isEnabled",(t=>!t)),o.bind("hasError").to(t,"errorText",(t=>!!t)),o.on("input",(()=>{t.errorText=null})),t.bind("isEmpty","isFocused","placeholder").to(o),o},ep=(t,e,n)=>{const o=new fg(t.locale);return o.set({id:e,ariaDescribedById:n,inputMode:"numeric"}),o.bind("isReadOnly").to(t,"isEnabled",(t=>!t)),o.bind("hasError").to(t,"errorText",(t=>!!t)),o.on("input",(()=>{t.errorText=null})),t.bind("isEmpty","isFocused","placeholder").to(o),o},np=(t,e,n)=>{const o=Ug(t.locale);return o.set({id:e,ariaDescribedById:n}),o.bind("isEnabled").to(t),o},op=(t,e=0,n=1)=>t>n?n:tMath.round(n*t)/n,rp=(Math.PI,t=>("#"===t[0]&&(t=t.substring(1)),t.length<6?{r:parseInt(t[0]+t[0],16),g:parseInt(t[1]+t[1],16),b:parseInt(t[2]+t[2],16),a:4===t.length?ip(parseInt(t[3]+t[3],16)/255,2):1}:{r:parseInt(t.substring(0,2),16),g:parseInt(t.substring(2,4),16),b:parseInt(t.substring(4,6),16),a:8===t.length?ip(parseInt(t.substring(6,8),16)/255,2):1})),sp=({h:t,s:e,v:n,a:o})=>{const i=(200-e)*n/100;return{h:ip(t),s:ip(i>0&&i<200?e*n/100/(i<=100?i:200-i)*100:0),l:ip(i/2),a:ip(o,2)}},ap=t=>{const{h:e,s:n,l:o}=sp(t);return`hsl(${e}, ${n}%, ${o}%)`},cp=({h:t,s:e,v:n,a:o})=>{t=t/360*6,e/=100,n/=100;const i=Math.floor(t),r=n*(1-e),s=n*(1-(t-i)*e),a=n*(1-(1-t+i)*e),c=i%6;return{r:ip(255*[n,s,r,r,a,n][c]),g:ip(255*[a,n,n,s,r,r][c]),b:ip(255*[r,r,a,n,n,s][c]),a:ip(o,2)}},lp=t=>{const e=t.toString(16);return e.length<2?"0"+e:e},dp=({r:t,g:e,b:n,a:o})=>{const i=o<1?lp(ip(255*o)):"";return"#"+lp(t)+lp(e)+lp(n)+i},hp=({r:t,g:e,b:n,a:o})=>{const i=Math.max(t,e,n),r=i-Math.min(t,e,n),s=r?i===t?(e-n)/r:i===e?2+(n-t)/r:4+(t-e)/r:0;return{h:ip(60*(s<0?s+6:s)),s:ip(i?r/i*100:0),v:ip(i/255*100),a:o}},up=(t,e)=>{if(t===e)return!0;for(const n in t)if(t[n]!==e[n])return!1;return!0},mp={},gp=t=>{let e=mp[t];return e||(e=document.createElement("template"),e.innerHTML=t,mp[t]=e),e},pp=(t,e,n)=>{t.dispatchEvent(new CustomEvent(e,{bubbles:!0,detail:n}))};let fp=!1;const kp=t=>"touches"in t,bp=(t,e)=>{const n=kp(e)?e.touches[0]:e,o=t.el.getBoundingClientRect();pp(t.el,"move",t.getMove({x:op((n.pageX-(o.left+window.pageXOffset))/o.width),y:op((n.pageY-(o.top+window.pageYOffset))/o.height)}))};class wp{constructor(t,e,n,o){const i=gp(``);t.appendChild(i.content.cloneNode(!0));const r=t.querySelector(`[part=${e}]`);r.addEventListener("mousedown",this),r.addEventListener("touchstart",this),r.addEventListener("keydown",this),this.el=r,this.xy=o,this.nodes=[r.firstChild,r]}set dragging(t){const e=t?document.addEventListener:document.removeEventListener;e(fp?"touchmove":"mousemove",this),e(fp?"touchend":"mouseup",this)}handleEvent(t){switch(t.type){case"mousedown":case"touchstart":if(t.preventDefault(),!(t=>!(fp&&!kp(t)||(fp||(fp=kp(t)),0)))(t)||!fp&&0!=t.button)return;this.el.focus(),bp(this,t),this.dragging=!0;break;case"mousemove":case"touchmove":t.preventDefault(),bp(this,t);break;case"mouseup":case"touchend":this.dragging=!1;break;case"keydown":((t,e)=>{const n=e.keyCode;n>40||t.xy&&n<37||n<33||(e.preventDefault(),pp(t.el,"move",t.getMove({x:39===n?.01:37===n?-.01:34===n?.05:33===n?-.05:35===n?1:36===n?-1:0,y:40===n?.01:38===n?-.01:0},!0)))})(this,t)}}style(t){t.forEach(((t,e)=>{for(const n in t)this.nodes[e].style.setProperty(n,t[n])}))}}class _p extends wp{constructor(t){super(t,"hue",'aria-label="Hue" aria-valuemin="0" aria-valuemax="360"',!1)}update({h:t}){this.h=t,this.style([{left:t/360*100+"%",color:ap({h:t,s:100,v:100,a:1})}]),this.el.setAttribute("aria-valuenow",`${ip(t)}`)}getMove(t,e){return{h:e?op(this.h+360*t.x,0,360):360*t.x}}}class Ap extends wp{constructor(t){super(t,"saturation",'aria-label="Color"',!0)}update(t){this.hsva=t,this.style([{top:100-t.v+"%",left:`${t.s}%`,color:ap(t)},{"background-color":ap({h:t.h,s:100,v:100,a:1})}]),this.el.setAttribute("aria-valuetext",`Saturation ${ip(t.s)}%, Brightness ${ip(t.v)}%`)}getMove(t,e){return{s:e?op(this.hsva.s+100*t.x,0,100):100*t.x,v:e?op(this.hsva.v-100*t.y,0,100):Math.round(100-100*t.y)}}}const Cp=Symbol("same"),vp=Symbol("color"),yp=Symbol("hsva"),xp=Symbol("update"),Ep=Symbol("parts"),Dp=Symbol("css"),Bp=Symbol("sliders");class Tp extends HTMLElement{static get observedAttributes(){return["color"]}get[Dp](){return[':host{display:flex;flex-direction:column;position:relative;width:200px;height:200px;user-select:none;-webkit-user-select:none;cursor:default}:host([hidden]){display:none!important}[role=slider]{position:relative;touch-action:none;user-select:none;-webkit-user-select:none;outline:0}[role=slider]:last-child{border-radius:0 0 8px 8px}[part$=pointer]{position:absolute;z-index:1;box-sizing:border-box;width:28px;height:28px;display:flex;place-content:center center;transform:translate(-50%,-50%);background-color:#fff;border:2px solid #fff;border-radius:50%;box-shadow:0 2px 4px rgba(0,0,0,.2)}[part$=pointer]::after{content:"";width:100%;height:100%;border-radius:inherit;background-color:currentColor}[role=slider]:focus [part$=pointer]{transform:translate(-50%,-50%) scale(1.1)}',"[part=hue]{flex:0 0 24px;background:linear-gradient(to right,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red 100%)}[part=hue-pointer]{top:50%;z-index:2}","[part=saturation]{flex-grow:1;border-color:transparent;border-bottom:12px solid #000;border-radius:8px 8px 0 0;background-image:linear-gradient(to top,#000,transparent),linear-gradient(to right,#fff,rgba(255,255,255,0));box-shadow:inset 0 0 0 1px rgba(0,0,0,.05)}[part=saturation-pointer]{z-index:3}"]}get[Bp](){return[Ap,_p]}get color(){return this[vp]}set color(t){if(!this[Cp](t)){const e=this.colorModel.toHsva(t);this[xp](e),this[vp]=t}}constructor(){super();const t=gp(``),e=this.attachShadow({mode:"open"});e.appendChild(t.content.cloneNode(!0)),e.addEventListener("move",this),this[Ep]=this[Bp].map((t=>new t(e)))}connectedCallback(){if(this.hasOwnProperty("color")){const t=this.color;delete this.color,this.color=t}else this.color||(this.color=this.colorModel.defaultColor)}attributeChangedCallback(t,e,n){const o=this.colorModel.fromAttr(n);this[Cp](o)||(this.color=o)}handleEvent(t){const e=this[yp],n={...e,...t.detail};let o;this[xp](n),up(n,e)||this[Cp](o=this.colorModel.fromHsva(n))||(this[vp]=o,pp(this,"color-changed",{value:o}))}[Cp](t){return this.color&&this.colorModel.equal(t,this.color)}[xp](t){this[yp]=t,this[Ep].forEach((e=>e.update(t)))}}const Sp={defaultColor:"#000",toHsva:t=>hp(rp(t)),fromHsva:({h:t,s:e,v:n})=>dp(cp({h:t,s:e,v:n,a:1})),equal:(t,e)=>t.toLowerCase()===e.toLowerCase()||up(rp(t),rp(e)),fromAttr:t=>t};class Ip extends Tp{get colorModel(){return Sp}}var Pp=n(1905),zp={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Pr()(Pp.A,zp);Pp.A.locals;class Rp extends Lr{hexInputRow;_debounceColorPickerEvent;_config;constructor(t,e={}){super(t),this.set({color:"",_hexColor:""}),this.hexInputRow=this._createInputRow();const n=this.createCollection();e.hideInput||n.add(this.hexInputRow),this.setTemplate({tag:"div",attributes:{class:["ck","ck-color-picker"],tabindex:-1},children:n}),this._config=e,this._debounceColorPickerEvent=Cc((t=>{this.set("color",t),this.fire("colorSelected",{color:this.color})}),150,{leading:!0}),this.on("set:color",((t,e,n)=>{t.return=sg(n,this._config.format||"hsl")})),this.on("change:color",(()=>{this._hexColor=Lp(this.color)})),this.on("change:_hexColor",(()=>{document.activeElement!==this.picker&&this.picker.setAttribute("color",this._hexColor),Lp(this.color)!=Lp(this._hexColor)&&(this.color=this._hexColor)}))}render(){var t,e;if(super.render(),t="hex-color-picker",e=Ip,void 0===customElements.get(t)&&customElements.define(t,e),this.picker=Oo.document.createElement("hex-color-picker"),this.picker.setAttribute("class","hex-color-picker"),this.picker.setAttribute("tabindex","-1"),this._createSlidersView(),this.element){this.hexInputRow.element?this.element.insertBefore(this.picker,this.hexInputRow.element):this.element.appendChild(this.picker);const t=document.createElement("style");t.textContent='[role="slider"]:focus [part$="pointer"] {border: 1px solid #fff;outline: 1px solid var(--ck-color-focus-border);box-shadow: 0 0 0 2px #fff;}',this.picker.shadowRoot.appendChild(t)}this.picker.addEventListener("color-changed",(t=>{const e=t.detail.value;this._debounceColorPickerEvent(e)}))}focus(){if(!this._config.hideInput&&(i.isGecko||i.isiOS||i.isSafari)){this.hexInputRow.children.get(1).focus()}this.slidersView.first.focus()}_createSlidersView(){const t=[...this.picker.shadowRoot.children].filter((t=>"slider"===t.getAttribute("role"))).map((t=>new Fp(t)));this.slidersView=this.createCollection(),t.forEach((t=>{this.slidersView.add(t)}))}_createInputRow(){const t=this._createColorInput();return new Vp(this.locale,t)}_createColorInput(){const t=new dg(this.locale,tp),{t:e}=this.locale;return t.set({label:e("HEX"),class:"color-picker-hex-input"}),t.fieldView.bind("value").to(this,"_hexColor",(e=>t.isFocused?t.fieldView.value:e.startsWith("#")?e.substring(1):e)),t.fieldView.on("input",(()=>{const e=t.fieldView.element.value;if(e){const t=Op(e);t&&this._debounceColorPickerEvent(t)}})),t}isValid(){const{t}=this.locale;return this.resetValidationStatus(),!!this.hexInputRow.getParsedColor()||(this.hexInputRow.inputView.errorText=t('Please enter a valid color (e.g. "ff0000").'),!1)}resetValidationStatus(){this.hexInputRow.inputView.errorText=null}}function Lp(t){let e=function(t){if(!t)return"";const e=ag(t);return e?"hex"===e.space?e.hexValue:sg(t,"hex"):"#000"}(t);return e||(e="#000"),4===e.length&&(e="#"+[e[1],e[1],e[2],e[2],e[3],e[3]].join("")),e.toLowerCase()}class Fp extends Lr{constructor(t){super(),this.element=t}focus(){this.element.focus()}}class Mp extends Lr{constructor(t){super(t),this.setTemplate({tag:"div",attributes:{class:["ck","ck-color-picker__hash-view"]},children:"#"})}}class Vp extends Lr{children;inputView;constructor(t,e){super(t),this.inputView=e,this.children=this.createCollection([new Mp,this.inputView]),this.setTemplate({tag:"div",attributes:{class:["ck","ck-color-picker__row"]},children:this.children})}getParsedColor(){return Op(this.inputView.fieldView.element.value)}}function Op(t){if(!t)return null;const e=t.trim().replace(/^#/,"");return[3,4,6,8].includes(e.length)&&/^(([0-9a-fA-F]{2}){3,4}|([0-9a-fA-F]){3,4})$/.test(e)?`#${e}`:null}class Np extends(J(Qi)){constructor(t){super(t),this.set("isEmpty",!0),this.on("change",(()=>{this.set("isEmpty",0===this.length)}))}add(t,e){return this.find((e=>e.color===t.color))?this:super.add(t,e)}hasColor(t){return!!this.find((e=>e.color===t))}}const{eraser:Hp,colorPalette:qp}=Ju;class jp extends Lr{items;colorDefinitions;focusTracker;columns;documentColors;documentColorsCount;staticColorsGrid;documentColorsGrid;colorPickerButtonView;removeColorButtonView;_focusables;_documentColorsLabel;_removeButtonLabel;_colorPickerLabel;constructor(t,{colors:e,columns:n,removeButtonLabel:o,documentColorsLabel:i,documentColorsCount:r,colorPickerLabel:s,focusTracker:a,focusables:c}){super(t);const l=this.bindTemplate;this.set("isVisible",!0),this.focusTracker=a,this.items=this.createCollection(),this.colorDefinitions=e,this.columns=n,this.documentColors=new Np,this.documentColorsCount=r,this._focusables=c,this._removeButtonLabel=o,this._colorPickerLabel=s,this._documentColorsLabel=i,this.setTemplate({tag:"div",attributes:{class:["ck-color-grids-fragment",l.if("isVisible","ck-hidden",(t=>!t))]},children:this.items}),this.removeColorButtonView=this._createRemoveColorButton(),this.items.add(this.removeColorButtonView)}updateDocumentColors(t,e){const n=t.document,o=this.documentColorsCount;this.documentColors.clear();for(const i of n.getRoots()){const n=t.createRangeIn(i);for(const t of n.getItems())if(t.is("$textProxy")&&t.hasAttribute(e)&&(this._addColorToDocumentColors(t.getAttribute(e)),this.documentColors.length>=o))return}}updateSelectedColors(){const t=this.documentColorsGrid,e=this.staticColorsGrid,n=this.selectedColor;e.selectedColor=n,t&&(t.selectedColor=n)}render(){if(super.render(),this.staticColorsGrid=this._createStaticColorsGrid(),this.items.add(this.staticColorsGrid),this.documentColorsCount){const t=dr.bind(this.documentColors,this.documentColors),e=new Pm(this.locale);e.text=this._documentColorsLabel,e.extendTemplate({attributes:{class:["ck","ck-color-grid__label",t.if("isEmpty","ck-hidden")]}}),this.items.add(e),this.documentColorsGrid=this._createDocumentColorsGrid(),this.items.add(this.documentColorsGrid)}this._createColorPickerButton(),this._addColorSelectorElementsToFocusTracker()}focus(){this.removeColorButtonView.focus()}destroy(){super.destroy()}addColorPickerButton(){this.colorPickerButtonView&&(this.items.add(this.colorPickerButtonView),this.focusTracker.add(this.colorPickerButtonView.element),this._focusables.add(this.colorPickerButtonView))}_addColorSelectorElementsToFocusTracker(){this.focusTracker.add(this.removeColorButtonView.element),this._focusables.add(this.removeColorButtonView),this.staticColorsGrid&&(this.focusTracker.add(this.staticColorsGrid.element),this._focusables.add(this.staticColorsGrid)),this.documentColorsGrid&&(this.focusTracker.add(this.documentColorsGrid.element),this._focusables.add(this.documentColorsGrid))}_createColorPickerButton(){this.colorPickerButtonView=new om,this.colorPickerButtonView.set({label:this._colorPickerLabel,withText:!0,icon:qp,class:"ck-color-selector__color-picker"}),this.colorPickerButtonView.on("execute",(()=>{this.fire("colorPicker:show")}))}_createRemoveColorButton(){const t=new om;return t.set({withText:!0,icon:Hp,label:this._removeButtonLabel}),t.class="ck-color-selector__remove-color",t.on("execute",(()=>{this.fire("execute",{value:null,source:"removeColorButton"})})),t.render(),t}_createStaticColorsGrid(){const t=new eg(this.locale,{colorDefinitions:this.colorDefinitions,columns:this.columns});return t.on("execute",((t,e)=>{this.fire("execute",{value:e.value,source:"staticColorsGrid"})})),t}_createDocumentColorsGrid(){const t=dr.bind(this.documentColors,this.documentColors),e=new eg(this.locale,{columns:this.columns});return e.extendTemplate({attributes:{class:t.if("isEmpty","ck-hidden")}}),e.items.bindTo(this.documentColors).using((t=>{const e=new Qm;return e.set({color:t.color,hasBorder:t.options&&t.options.hasBorder}),t.label&&e.set({label:t.label,tooltip:!0}),e.on("execute",(()=>{this.fire("execute",{value:t.color,source:"documentColorsGrid"})})),e})),this.documentColors.on("change:isEmpty",((t,n,o)=>{o&&(e.selectedColor=null)})),e}_addColorToDocumentColors(t){const e=this.colorDefinitions.find((e=>e.color===t));e?this.documentColors.add(Object.assign({},e)):this.documentColors.add({color:t,label:t,options:{hasBorder:!1}})}}class Wp extends Lr{items;colorPickerView;saveButtonView;cancelButtonView;actionBarView;focusTracker;keystrokes;_focusables;_colorPickerViewConfig;constructor(t,{focusTracker:e,focusables:n,keystrokes:o,colorPickerViewConfig:i}){super(t),this.items=this.createCollection(),this.focusTracker=e,this.keystrokes=o,this.set("isVisible",!1),this.set("selectedColor",void 0),this._focusables=n,this._colorPickerViewConfig=i;const r=this.bindTemplate,{saveButtonView:s,cancelButtonView:a}=this._createActionButtons();this.saveButtonView=s,this.cancelButtonView=a,this.actionBarView=this._createActionBarView({saveButtonView:s,cancelButtonView:a}),this.setTemplate({tag:"div",attributes:{class:["ck-color-picker-fragment",r.if("isVisible","ck-hidden",(t=>!t))]},children:this.items})}render(){super.render();const t=new Rp(this.locale,{...this._colorPickerViewConfig});this.colorPickerView=t,this.colorPickerView.render(),this.selectedColor&&(t.color=this.selectedColor),this.listenTo(this,"change:selectedColor",((e,n,o)=>{t.color=o})),this.items.add(this.colorPickerView),this.items.add(this.actionBarView),this._addColorPickersElementsToFocusTracker(),this._stopPropagationOnArrowsKeys(),this._executeOnEnterPress(),this._executeUponColorChange()}destroy(){super.destroy()}focus(){this.colorPickerView.focus()}resetValidationStatus(){this.colorPickerView.resetValidationStatus()}_executeOnEnterPress(){this.keystrokes.set("enter",(t=>{this.isVisible&&this.focusTracker.focusedElement!==this.cancelButtonView.element&&this.colorPickerView.isValid()&&(this.fire("execute",{value:this.selectedColor}),t.stopPropagation(),t.preventDefault())}))}_stopPropagationOnArrowsKeys(){const t=t=>t.stopPropagation();this.keystrokes.set("arrowright",t),this.keystrokes.set("arrowleft",t),this.keystrokes.set("arrowup",t),this.keystrokes.set("arrowdown",t)}_addColorPickersElementsToFocusTracker(){for(const t of this.colorPickerView.slidersView)this.focusTracker.add(t.element),this._focusables.add(t);const t=this.colorPickerView.hexInputRow.children.get(1);t.element&&(this.focusTracker.add(t.element),this._focusables.add(t)),this.focusTracker.add(this.saveButtonView.element),this._focusables.add(this.saveButtonView),this.focusTracker.add(this.cancelButtonView.element),this._focusables.add(this.cancelButtonView)}_createActionBarView({saveButtonView:t,cancelButtonView:e}){const n=new Lr,o=this.createCollection();return o.add(t),o.add(e),n.setTemplate({tag:"div",attributes:{class:["ck","ck-color-selector_action-bar"]},children:o}),n}_createActionButtons(){const t=this.locale,e=t.t,n=new om(t),o=new om(t);return n.set({icon:Ju.check,class:"ck-button-save",type:"button",withText:!1,label:e("Accept")}),o.set({icon:Ju.cancel,class:"ck-button-cancel",type:"button",withText:!1,label:e("Cancel")}),n.on("execute",(()=>{this.colorPickerView.isValid()&&this.fire("execute",{source:"colorPickerSaveButton",value:this.selectedColor})})),o.on("execute",(()=>{this.fire("colorPicker:cancel")})),{saveButtonView:n,cancelButtonView:o}}_executeUponColorChange(){this.colorPickerView.on("colorSelected",((t,e)=>{this.fire("execute",{value:e.color,source:"colorPicker"}),this.set("selectedColor",e.color)}))}}var Gp=n(6309),Kp={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Pr()(Gp.A,Kp);Gp.A.locals;class Up extends Lr{focusTracker;keystrokes;items;colorGridsFragmentView;colorPickerFragmentView;_focusCycler;_focusables;_colorPickerViewConfig;constructor(t,{colors:e,columns:n,removeButtonLabel:o,documentColorsLabel:i,documentColorsCount:r,colorPickerLabel:s,colorPickerViewConfig:a}){super(t),this.items=this.createCollection(),this.focusTracker=new tr,this.keystrokes=new er,this._focusables=new lr,this._colorPickerViewConfig=a,this._focusCycler=new am({focusables:this._focusables,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"shift + tab",focusNext:"tab"}}),this.colorGridsFragmentView=new jp(t,{colors:e,columns:n,removeButtonLabel:o,documentColorsLabel:i,documentColorsCount:r,colorPickerLabel:s,focusTracker:this.focusTracker,focusables:this._focusables}),this.colorPickerFragmentView=new Wp(t,{focusables:this._focusables,focusTracker:this.focusTracker,keystrokes:this.keystrokes,colorPickerViewConfig:a}),this.set("_isColorGridsFragmentVisible",!0),this.set("_isColorPickerFragmentVisible",!1),this.set("selectedColor",void 0),this.colorGridsFragmentView.bind("isVisible").to(this,"_isColorGridsFragmentVisible"),this.colorPickerFragmentView.bind("isVisible").to(this,"_isColorPickerFragmentVisible"),this.on("change:selectedColor",((t,e,n)=>{this.colorGridsFragmentView.set("selectedColor",n),this.colorPickerFragmentView.set("selectedColor",n)})),this.colorGridsFragmentView.on("change:selectedColor",((t,e,n)=>{this.set("selectedColor",n)})),this.colorPickerFragmentView.on("change:selectedColor",((t,e,n)=>{this.set("selectedColor",n)})),this.setTemplate({tag:"div",attributes:{class:["ck","ck-color-selector"]},children:this.items})}render(){super.render(),this.keystrokes.listenTo(this.element)}destroy(){super.destroy(),this.focusTracker.destroy(),this.keystrokes.destroy()}appendUI(){this._appendColorGridsFragment(),this._colorPickerViewConfig&&this._appendColorPickerFragment()}showColorPickerFragment(){this.colorPickerFragmentView.colorPickerView&&!this._isColorPickerFragmentVisible&&(this._isColorPickerFragmentVisible=!0,this.colorPickerFragmentView.focus(),this.colorPickerFragmentView.resetValidationStatus(),this._isColorGridsFragmentVisible=!1)}showColorGridsFragment(){this._isColorGridsFragmentVisible||(this._isColorGridsFragmentVisible=!0,this.colorGridsFragmentView.focus(),this._isColorPickerFragmentVisible=!1)}focus(){this._focusCycler.focusFirst()}focusLast(){this._focusCycler.focusLast()}updateDocumentColors(t,e){this.colorGridsFragmentView.updateDocumentColors(t,e)}updateSelectedColors(){this.colorGridsFragmentView.updateSelectedColors()}_appendColorGridsFragment(){this.items.length||(this.items.add(this.colorGridsFragmentView),this.colorGridsFragmentView.delegate("execute").to(this),this.colorGridsFragmentView.delegate("colorPicker:show").to(this))}_appendColorPickerFragment(){2!==this.items.length&&(this.items.add(this.colorPickerFragmentView),this.colorGridsFragmentView.colorPickerButtonView&&this.colorGridsFragmentView.colorPickerButtonView.on("execute",(()=>{this.showColorPickerFragment()})),this.colorGridsFragmentView.addColorPickerButton(),this.colorPickerFragmentView.delegate("execute").to(this),this.colorPickerFragmentView.delegate("colorPicker:cancel").to(this))}}class $p{editor;_components=new Map;constructor(t){this.editor=t}*names(){for(const t of this._components.values())yield t.originalName}add(t,e){this._components.set(Zp(t),{callback:e,originalName:t})}create(t){if(!this.has(t))throw new x("componentfactory-item-missing",this,{name:t});return this._components.get(Zp(t)).callback(this.editor.locale)}has(t){return this._components.has(Zp(t))}}function Zp(t){return String(t).toLowerCase()}var Jp=n(3710),Yp={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Pr()(Jp.A,Yp);Jp.A.locals;const Qp=Xo("px"),Xp={top:-99999,left:-99999,name:"arrowless",config:{withArrow:!1}};class tf extends Lr{content;_pinWhenIsVisibleCallback;constructor(t){super(t);const e=this.bindTemplate;this.set("top",0),this.set("left",0),this.set("position","arrow_nw"),this.set("isVisible",!1),this.set("withArrow",!0),this.set("class",void 0),this._pinWhenIsVisibleCallback=null,this.content=this.createCollection(),this.setTemplate({tag:"div",attributes:{class:["ck","ck-balloon-panel",e.to("position",(t=>`ck-balloon-panel_${t}`)),e.if("isVisible","ck-balloon-panel_visible"),e.if("withArrow","ck-balloon-panel_with-arrow"),e.to("class")],style:{top:e.to("top",Qp),left:e.to("left",Qp)}},children:this.content})}show(){this.isVisible=!0}hide(){this.isVisible=!1}attachTo(t){this.show();const e=tf.defaultPositions,n=Object.assign({},{element:this.element,positions:[e.southArrowNorth,e.southArrowNorthMiddleWest,e.southArrowNorthMiddleEast,e.southArrowNorthWest,e.southArrowNorthEast,e.northArrowSouth,e.northArrowSouthMiddleWest,e.northArrowSouthMiddleEast,e.northArrowSouthWest,e.northArrowSouthEast,e.viewportStickyNorth],limiter:Oo.document.body,fitInViewport:!0},t),o=tf._getOptimalPosition(n)||Xp,i=parseInt(o.left),r=parseInt(o.top),s=o.name,a=o.config||{},{withArrow:c=!0}=a;this.top=r,this.left=i,this.position=s,this.withArrow=c}pin(t){this.unpin(),this._pinWhenIsVisibleCallback=()=>{this.isVisible?this._startPinning(t):this._stopPinning()},this._startPinning(t),this.listenTo(this,"change:isVisible",this._pinWhenIsVisibleCallback)}unpin(){this._pinWhenIsVisibleCallback&&(this._stopPinning(),this.stopListening(this,"change:isVisible",this._pinWhenIsVisibleCallback),this._pinWhenIsVisibleCallback=null,this.hide())}_startPinning(t){this.attachTo(t);const e=ef(t.target),n=t.limiter?ef(t.limiter):Oo.document.body;this.listenTo(Oo.document,"scroll",((o,i)=>{const r=i.target,s=e&&r.contains(e),a=n&&r.contains(n);!s&&!a&&e&&n||this.attachTo(t)}),{useCapture:!0}),this.listenTo(Oo.window,"resize",(()=>{this.attachTo(t)}))}_stopPinning(){this.stopListening(Oo.document,"scroll"),this.stopListening(Oo.window,"resize")}static generatePositions(t={}){const{sideOffset:e=tf.arrowSideOffset,heightOffset:n=tf.arrowHeightOffset,stickyVerticalOffset:o=tf.stickyVerticalOffset,config:i}=t;return{northWestArrowSouthWest:(t,n)=>({top:r(t,n),left:t.left-e,name:"arrow_sw",...i&&{config:i}}),northWestArrowSouthMiddleWest:(t,n)=>({top:r(t,n),left:t.left-.25*n.width-e,name:"arrow_smw",...i&&{config:i}}),northWestArrowSouth:(t,e)=>({top:r(t,e),left:t.left-e.width/2,name:"arrow_s",...i&&{config:i}}),northWestArrowSouthMiddleEast:(t,n)=>({top:r(t,n),left:t.left-.75*n.width+e,name:"arrow_sme",...i&&{config:i}}),northWestArrowSouthEast:(t,n)=>({top:r(t,n),left:t.left-n.width+e,name:"arrow_se",...i&&{config:i}}),northArrowSouthWest:(t,n)=>({top:r(t,n),left:t.left+t.width/2-e,name:"arrow_sw",...i&&{config:i}}),northArrowSouthMiddleWest:(t,n)=>({top:r(t,n),left:t.left+t.width/2-.25*n.width-e,name:"arrow_smw",...i&&{config:i}}),northArrowSouth:(t,e)=>({top:r(t,e),left:t.left+t.width/2-e.width/2,name:"arrow_s",...i&&{config:i}}),northArrowSouthMiddleEast:(t,n)=>({top:r(t,n),left:t.left+t.width/2-.75*n.width+e,name:"arrow_sme",...i&&{config:i}}),northArrowSouthEast:(t,n)=>({top:r(t,n),left:t.left+t.width/2-n.width+e,name:"arrow_se",...i&&{config:i}}),northEastArrowSouthWest:(t,n)=>({top:r(t,n),left:t.right-e,name:"arrow_sw",...i&&{config:i}}),northEastArrowSouthMiddleWest:(t,n)=>({top:r(t,n),left:t.right-.25*n.width-e,name:"arrow_smw",...i&&{config:i}}),northEastArrowSouth:(t,e)=>({top:r(t,e),left:t.right-e.width/2,name:"arrow_s",...i&&{config:i}}),northEastArrowSouthMiddleEast:(t,n)=>({top:r(t,n),left:t.right-.75*n.width+e,name:"arrow_sme",...i&&{config:i}}),northEastArrowSouthEast:(t,n)=>({top:r(t,n),left:t.right-n.width+e,name:"arrow_se",...i&&{config:i}}),southWestArrowNorthWest:t=>({top:s(t),left:t.left-e,name:"arrow_nw",...i&&{config:i}}),southWestArrowNorthMiddleWest:(t,n)=>({top:s(t),left:t.left-.25*n.width-e,name:"arrow_nmw",...i&&{config:i}}),southWestArrowNorth:(t,e)=>({top:s(t),left:t.left-e.width/2,name:"arrow_n",...i&&{config:i}}),southWestArrowNorthMiddleEast:(t,n)=>({top:s(t),left:t.left-.75*n.width+e,name:"arrow_nme",...i&&{config:i}}),southWestArrowNorthEast:(t,n)=>({top:s(t),left:t.left-n.width+e,name:"arrow_ne",...i&&{config:i}}),southArrowNorthWest:t=>({top:s(t),left:t.left+t.width/2-e,name:"arrow_nw",...i&&{config:i}}),southArrowNorthMiddleWest:(t,n)=>({top:s(t),left:t.left+t.width/2-.25*n.width-e,name:"arrow_nmw",...i&&{config:i}}),southArrowNorth:(t,e)=>({top:s(t),left:t.left+t.width/2-e.width/2,name:"arrow_n",...i&&{config:i}}),southArrowNorthMiddleEast:(t,n)=>({top:s(t),left:t.left+t.width/2-.75*n.width+e,name:"arrow_nme",...i&&{config:i}}),southArrowNorthEast:(t,n)=>({top:s(t),left:t.left+t.width/2-n.width+e,name:"arrow_ne",...i&&{config:i}}),southEastArrowNorthWest:t=>({top:s(t),left:t.right-e,name:"arrow_nw",...i&&{config:i}}),southEastArrowNorthMiddleWest:(t,n)=>({top:s(t),left:t.right-.25*n.width-e,name:"arrow_nmw",...i&&{config:i}}),southEastArrowNorth:(t,e)=>({top:s(t),left:t.right-e.width/2,name:"arrow_n",...i&&{config:i}}),southEastArrowNorthMiddleEast:(t,n)=>({top:s(t),left:t.right-.75*n.width+e,name:"arrow_nme",...i&&{config:i}}),southEastArrowNorthEast:(t,n)=>({top:s(t),left:t.right-n.width+e,name:"arrow_ne",...i&&{config:i}}),westArrowEast:(t,e)=>({top:t.top+t.height/2-e.height/2,left:t.left-e.width-n,name:"arrow_e",...i&&{config:i}}),eastArrowWest:(t,e)=>({top:t.top+t.height/2-e.height/2,left:t.right+n,name:"arrow_w",...i&&{config:i}}),viewportStickyNorth:(t,e,n,r)=>{const s=r||n;return t.getIntersection(s)?s.height-t.height>o?null:{top:s.top+o,left:t.left+t.width/2-e.width/2,name:"arrowless",config:{withArrow:!1,...i}}:null}};function r(t,e){return t.top-e.height-n}function s(t){return t.bottom+n}}static arrowSideOffset=25;static arrowHeightOffset=10;static stickyVerticalOffset=20;static _getOptimalPosition=ii;static defaultPositions=tf.generatePositions()}function ef(t){return Bo(t)?t:jo(t)?t.commonAncestorContainer:"function"==typeof t?ef(t()):null}var nf=n(9205),of={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Pr()(nf.A,of);nf.A.locals;const rf="ck-tooltip";class sf extends(Lo()){tooltipTextView;balloonPanelView;static defaultBalloonPositions=tf.generatePositions({heightOffset:5,sideOffset:13});_currentElementWithTooltip=null;_currentTooltipPosition=null;_resizeObserver=null;_mutationObserver=null;_pinTooltipDebounced;_unpinTooltipDebounced;_watchdogExcluded;static _editors=new Set;static _instance=null;constructor(t){if(super(),sf._editors.add(t),sf._instance)return sf._instance;sf._instance=this,this.tooltipTextView=new Lr(t.locale),this.tooltipTextView.set("text",""),this.tooltipTextView.setTemplate({tag:"span",attributes:{class:["ck","ck-tooltip__text"]},children:[{text:this.tooltipTextView.bindTemplate.to("text")}]}),this.balloonPanelView=new tf(t.locale),this.balloonPanelView.class=rf,this.balloonPanelView.content.add(this.tooltipTextView),this._mutationObserver=function(t){const e=new MutationObserver((()=>{t()}));return{attach(t){e.observe(t,{attributes:!0,attributeFilter:["data-cke-tooltip-text","data-cke-tooltip-position"]})},detach(){e.disconnect()}}}((()=>{this._updateTooltipPosition()})),this._pinTooltipDebounced=Cc(this._pinTooltip,600),this._unpinTooltipDebounced=Cc(this._unpinTooltip,400),this.listenTo(Oo.document,"keydown",this._onKeyDown.bind(this),{useCapture:!0}),this.listenTo(Oo.document,"mouseenter",this._onEnterOrFocus.bind(this),{useCapture:!0}),this.listenTo(Oo.document,"mouseleave",this._onLeaveOrBlur.bind(this),{useCapture:!0}),this.listenTo(Oo.document,"focus",this._onEnterOrFocus.bind(this),{useCapture:!0}),this.listenTo(Oo.document,"blur",this._onLeaveOrBlur.bind(this),{useCapture:!0}),this.listenTo(Oo.document,"scroll",this._onScroll.bind(this),{useCapture:!0}),this._watchdogExcluded=!0}destroy(t){const e=t.ui.view&&t.ui.view.body;sf._editors.delete(t),this.stopListening(t.ui),e&&e.has(this.balloonPanelView)&&e.remove(this.balloonPanelView),sf._editors.size||(this._unpinTooltip(),this.balloonPanelView.destroy(),this.stopListening(),sf._instance=null)}static getPositioningFunctions(t){const e=sf.defaultBalloonPositions;return{s:[e.southArrowNorth,e.southArrowNorthEast,e.southArrowNorthWest],n:[e.northArrowSouth],e:[e.eastArrowWest],w:[e.westArrowEast],sw:[e.southArrowNorthEast],se:[e.southArrowNorthWest]}[t]}_onKeyDown(t,e){"Escape"===e.key&&this._currentElementWithTooltip&&(this._unpinTooltip(),e.stopPropagation())}_onEnterOrFocus(t,{target:e}){const n=af(e);n?n!==this._currentElementWithTooltip&&(this._unpinTooltip(),"focus"===t.name?this._pinTooltip(n,cf(n)):this._pinTooltipDebounced(n,cf(n))):"focus"===t.name&&this._unpinTooltip()}_onLeaveOrBlur(t,{target:e,relatedTarget:n}){if("mouseleave"===t.name){if(!Bo(e))return;const t=this.balloonPanelView.element,o=t&&(t===n||t.contains(n)),i=!o&&e===t;if(o)return void this._unpinTooltipDebounced.cancel();if(!i&&this._currentElementWithTooltip&&e!==this._currentElementWithTooltip)return;const r=af(e),s=af(n);(i||r&&r!==s)&&this._unpinTooltipDebounced()}else{if(this._currentElementWithTooltip&&e!==this._currentElementWithTooltip)return;this._unpinTooltipDebounced()}}_onScroll(t,{target:e}){this._currentElementWithTooltip&&(e.contains(this.balloonPanelView.element)&&e.contains(this._currentElementWithTooltip)||this._unpinTooltip())}_pinTooltip(t,{text:e,position:n,cssClass:o}){this._unpinTooltip();const i=Xi(sf._editors.values()).ui.view.body;i.has(this.balloonPanelView)||i.add(this.balloonPanelView),this.tooltipTextView.text=e,this.balloonPanelView.pin({target:t,positions:sf.getPositioningFunctions(n)}),this._resizeObserver=new Yo(t,(()=>{oi(t)||this._unpinTooltip()})),this._mutationObserver.attach(t),this.balloonPanelView.class=[rf,o].filter((t=>t)).join(" ");for(const t of sf._editors)this.listenTo(t.ui,"update",this._updateTooltipPosition.bind(this),{priority:"low"});this._currentElementWithTooltip=t,this._currentTooltipPosition=n}_unpinTooltip(){this._unpinTooltipDebounced.cancel(),this._pinTooltipDebounced.cancel(),this.balloonPanelView.unpin();for(const t of sf._editors)this.stopListening(t.ui,"update");this._currentElementWithTooltip=null,this._currentTooltipPosition=null,this.tooltipTextView.text="",this._resizeObserver&&this._resizeObserver.destroy(),this._mutationObserver.detach()}_updateTooltipPosition(){const t=cf(this._currentElementWithTooltip);oi(this._currentElementWithTooltip)&&t.text?this.balloonPanelView.pin({target:this._currentElementWithTooltip,positions:sf.getPositioningFunctions(t.position)}):this._unpinTooltip()}}function af(t){return Bo(t)?t.closest("[data-cke-tooltip-text]:not([data-cke-tooltip-disabled])"):null}function cf(t){return{text:t.dataset.ckeTooltipText,position:t.dataset.ckeTooltipPosition||"s",cssClass:t.dataset.ckeTooltipClass||""}}const lf=function(t,e,n){var o=!0,i=!0;if("function"!=typeof t)throw new TypeError("Expected a function");return j(n)&&(o="leading"in n?!!n.leading:o,i="trailing"in n?!!n.trailing:i),Cc(t,e,{leading:o,maxWait:e,trailing:i})},df=50,hf=350,uf="Powered by";class mf extends(Lo()){editor;_balloonView;_showBalloonThrottled;_lastFocusedEditableElement;constructor(t){super(),this.editor=t,this._balloonView=null,this._lastFocusedEditableElement=null,this._showBalloonThrottled=lf(this._showBalloon.bind(this),50,{leading:!0}),t.on("ready",this._handleEditorReady.bind(this))}destroy(){const t=this._balloonView;t&&(t.unpin(),this._balloonView=null),this._showBalloonThrottled.cancel(),this.stopListening()}_handleEditorReady(){const t=this.editor;(!!t.config.get("ui.poweredBy.forceVisible")||"VALID"!==function(t){function e(t){return t.length>=40&&t.length<=255?"VALID":"INVALID"}if(!t)return"INVALID";let n="";try{n=atob(t)}catch(t){return"INVALID"}const o=n.split("-"),i=o[0],r=o[1];if(!r)return e(t);try{atob(r)}catch(n){try{if(atob(i),!atob(i).length)return e(t)}catch(n){return e(t)}}if(i.length<40||i.length>255)return"INVALID";let s="";try{atob(i),s=atob(r)}catch(t){return"INVALID"}if(8!==s.length)return"INVALID";const a=Number(s.substring(0,4)),c=Number(s.substring(4,6))-1,l=Number(s.substring(6,8)),d=new Date(a,c,l);return d{this._updateLastFocusedEditableElement(),n?this._showBalloon():this._hideBalloon()})),t.ui.focusTracker.on("change:focusedElement",((t,e,n)=>{this._updateLastFocusedEditableElement(),n&&this._showBalloon()})),t.ui.on("update",(()=>{this._showBalloonThrottled()})))}_createBalloonView(){const t=this.editor,e=this._balloonView=new tf,n=ff(t),o=new gf(t.locale,n.label);e.content.add(o),e.set({class:"ck-powered-by-balloon"}),t.ui.view.body.add(e),t.ui.focusTracker.add(e.element),this._balloonView=e}_showBalloon(){if(!this._lastFocusedEditableElement)return;const t=function(t,e){const n=ff(t),o="right"===n.side?function(t,e){return pf(t,e,((t,n)=>t.left+t.width-n.width-e.horizontalOffset))}(e,n):function(t,e){return pf(t,e,(t=>t.left+e.horizontalOffset))}(e,n);return{target:e,positions:[o]}}(this.editor,this._lastFocusedEditableElement);t&&(this._balloonView||this._createBalloonView(),this._balloonView.pin(t))}_hideBalloon(){this._balloonView&&this._balloonView.unpin()}_updateLastFocusedEditableElement(){const t=this.editor,e=t.ui.focusTracker.isFocused,n=t.ui.focusTracker.focusedElement;if(!e||!n)return void(this._lastFocusedEditableElement=null);const o=Array.from(t.ui.getEditableElementsNames()).map((e=>t.ui.getEditableElement(e)));o.includes(n)?this._lastFocusedEditableElement=n:this._lastFocusedEditableElement=o[0]}}class gf extends Lr{constructor(t,e){super(t);const n=new Xu,o=this.bindTemplate;n.set({content:' \n',isColorInherited:!1}),n.extendTemplate({attributes:{style:{width:"53px",height:"10px"}}}),this.setTemplate({tag:"div",attributes:{class:["ck","ck-powered-by"],"aria-hidden":!0},children:[{tag:"a",attributes:{href:"https://ckeditor.com/?utm_source=ckeditor&utm_medium=referral&utm_campaign=701Dn000000hVgmIAE_powered_by_ckeditor_logo",target:"_blank",tabindex:"-1"},children:[...e?[{tag:"span",attributes:{class:["ck","ck-powered-by__label"]},children:[e]}]:[],n],on:{dragstart:o.to((t=>t.preventDefault()))}}]})}}function pf(t,e,n){return(o,i)=>{const r=new Ko(t);if(r.width{for(const t of Object.values(wf))this.announce("",t)}))}announce(t,e=wf.POLITE){const n=this.editor;if(!n.ui.view)return;this.view||(this.view=new Af(n.locale),n.ui.view.body.add(this.view));const{politeness:o,isUnsafeHTML:i}="string"==typeof e?{politeness:e}:e;let r=this.view.regionViews.find((t=>t.politeness===o));r||(r=new Cf(n,o),this.view.regionViews.add(r)),r.announce({announcement:t,isUnsafeHTML:i})}}class Af extends Lr{regionViews;constructor(t){super(t),this.regionViews=this.createCollection(),this.setTemplate({tag:"div",attributes:{class:["ck","ck-aria-live-announcer"]},children:this.regionViews})}}class Cf extends Lr{politeness;_domConverter;_pruneAnnouncementsInterval;constructor(t,e){super(t.locale),this.setTemplate({tag:"div",attributes:{role:"region","aria-live":e,"aria-relevant":"additions"},children:[{tag:"ul",attributes:{class:["ck","ck-aria-live-region-list"]}}]}),t.on("destroy",(()=>{null!==this._pruneAnnouncementsInterval&&(clearInterval(this._pruneAnnouncementsInterval),this._pruneAnnouncementsInterval=null)})),this.politeness=e,this._domConverter=t.data.htmlProcessor.domConverter,this._pruneAnnouncementsInterval=setInterval((()=>{this.element&&this._listElement.firstChild&&this._listElement.firstChild.remove()}),5e3)}announce({announcement:t,isUnsafeHTML:e}){if(!t.trim().length)return;const n=document.createElement("li");e?this._domConverter.setContentOf(n,t):n.innerText=t,this._listElement.appendChild(n)}get _listElement(){return this.element.querySelector("ul")}}class vf extends(J()){editor;componentFactory;focusTracker;tooltipManager;poweredBy;ariaLiveAnnouncer;isReady=!1;_editableElementsMap=new Map;_focusableToolbarDefinitions=[];constructor(t){super();const e=t.editing.view;this.editor=t,this.componentFactory=new $p(t),this.focusTracker=new tr,this.tooltipManager=new sf(t),this.poweredBy=new mf(t),this.ariaLiveAnnouncer=new _f(t),this.set("viewportOffset",this._readViewportOffsetFromConfig()),this.once("ready",(()=>{this.isReady=!0})),this.listenTo(e.document,"layoutChanged",this.update.bind(this)),this.listenTo(e,"scrollToTheSelection",this._handleScrollToTheSelection.bind(this)),this._initFocusTracking()}get element(){return null}update(){this.fire("update")}destroy(){this.stopListening(),this.focusTracker.destroy(),this.tooltipManager.destroy(this.editor),this.poweredBy.destroy();for(const t of this._editableElementsMap.values())t.ckeditorInstance=null,this.editor.keystrokes.stopListening(t);this._editableElementsMap=new Map,this._focusableToolbarDefinitions=[]}setEditableElement(t,e){this._editableElementsMap.set(t,e),e.ckeditorInstance||(e.ckeditorInstance=this.editor),this.focusTracker.add(e);const n=()=>{this.editor.editing.view.getDomRoot(t)||this.editor.keystrokes.listenTo(e)};this.isReady?n():this.once("ready",n)}removeEditableElement(t){const e=this._editableElementsMap.get(t);e&&(this._editableElementsMap.delete(t),this.editor.keystrokes.stopListening(e),this.focusTracker.remove(e),e.ckeditorInstance=null)}getEditableElement(t="main"){return this._editableElementsMap.get(t)}getEditableElementsNames(){return this._editableElementsMap.keys()}addToolbar(t,e={}){t.isRendered?(this.focusTracker.add(t.element),this.editor.keystrokes.listenTo(t.element)):t.once("render",(()=>{this.focusTracker.add(t.element),this.editor.keystrokes.listenTo(t.element)})),this._focusableToolbarDefinitions.push({toolbarView:t,options:e})}get _editableElements(){return console.warn("editor-ui-deprecated-editable-elements: The EditorUI#_editableElements property has been deprecated and will be removed in the near future.",{editorUI:this}),this._editableElementsMap}_readViewportOffsetFromConfig(){const t=this.editor,e=t.config.get("ui.viewportOffset");if(e)return e;const n=t.config.get("toolbar.viewportTopOffset");return n?(console.warn("editor-ui-deprecated-viewport-offset-config: The `toolbar.vieportTopOffset` configuration option is deprecated. It will be removed from future CKEditor versions. Use `ui.viewportOffset.top` instead."),{top:n}):{top:0}}_initFocusTracking(){const t=this.editor,e=t.editing.view;let n,o;t.keystrokes.set("Alt+F10",((t,i)=>{const r=this.focusTracker.focusedElement;Array.from(this._editableElementsMap.values()).includes(r)&&!Array.from(e.domRoots.values()).includes(r)&&(n=r);const s=this._getCurrentFocusedToolbarDefinition();s&&o||(o=this._getFocusableCandidateToolbarDefinitions());for(let t=0;t{const i=this._getCurrentFocusedToolbarDefinition();i&&(n?(n.focus(),n=null):t.editing.view.focus(),i.options.afterBlur&&i.options.afterBlur(),o())}))}_getFocusableCandidateToolbarDefinitions(){const t=[];for(const e of this._focusableToolbarDefinitions){const{toolbarView:n,options:o}=e;(oi(n.element)||o.beforeFocus)&&t.push(e)}return t.sort(((t,e)=>yf(t)-yf(e))),t}_getCurrentFocusedToolbarDefinition(){for(const t of this._focusableToolbarDefinitions)if(t.toolbarView.element&&t.toolbarView.element.contains(this.focusTracker.focusedElement))return t;return null}_focusFocusableCandidateToolbar(t){const{toolbarView:e,options:{beforeFocus:n}}=t;return n&&n(),!!oi(e.element)&&(e.focus(),!0)}_handleScrollToTheSelection(t,e){const n={top:0,bottom:0,left:0,right:0,...this.viewportOffset};e.viewportOffset.top+=n.top,e.viewportOffset.bottom+=n.bottom,e.viewportOffset.left+=n.left,e.viewportOffset.right+=n.right}}function yf(t){const{toolbarView:e,options:n}=t;let o=10;return oi(e.element)&&o--,n.isContextual&&o--,o}var xf=n(1185),Ef={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Pr()(xf.A,Ef);xf.A.locals;class Df extends Lr{body;constructor(t){super(t),this.body=new Om(t)}render(){super.render(),this.body.attachToDom()}destroy(){return this.body.detachFromDom(),super.destroy()}}class Bf extends Df{top;main;_voiceLabelView;constructor(t){super(t),this.top=this.createCollection(),this.main=this.createCollection(),this._voiceLabelView=this._createVoiceLabel(),this.setTemplate({tag:"div",attributes:{class:["ck","ck-reset","ck-editor","ck-rounded-corners"],role:"application",dir:t.uiLanguageDirection,lang:t.uiLanguage,"aria-labelledby":this._voiceLabelView.id},children:[this._voiceLabelView,{tag:"div",attributes:{class:["ck","ck-editor__top","ck-reset_all"],role:"presentation"},children:this.top},{tag:"div",attributes:{class:["ck","ck-editor__main"],role:"presentation"},children:this.main}]})}_createVoiceLabel(){const t=this.t,e=new Pm;return e.text=t("Rich Text Editor"),e.extendTemplate({attributes:{class:"ck-voice-label"}}),e}}class Tf extends Lr{name=null;_editingView;_editableElement;_hasExternalElement;constructor(t,e,n){super(t),this.setTemplate({tag:"div",attributes:{class:["ck","ck-content","ck-editor__editable","ck-rounded-corners"],lang:t.contentLanguage,dir:t.contentLanguageDirection}}),this.set("isFocused",!1),this._editableElement=n,this._hasExternalElement=!!this._editableElement,this._editingView=e}render(){super.render(),this._hasExternalElement?this.template.apply(this.element=this._editableElement):this._editableElement=this.element,this.on("change:isFocused",(()=>this._updateIsFocusedClasses())),this._updateIsFocusedClasses()}destroy(){this._hasExternalElement&&this.template.revert(this._editableElement),super.destroy()}get hasExternalElement(){return this._hasExternalElement}_updateIsFocusedClasses(){const t=this._editingView;function e(e){t.change((n=>{const o=t.document.getRoot(e.name);n.addClass(e.isFocused?"ck-focused":"ck-blurred",o),n.removeClass(e.isFocused?"ck-blurred":"ck-focused",o)}))}t.isRenderingInProgress?function n(o){t.once("change:isRenderingInProgress",((t,i,r)=>{r?n(o):e(o)}))}(this):e(this)}}class Sf extends Tf{_generateLabel;constructor(t,e,n,o={}){super(t,e,n);const i=t.t;this.extendTemplate({attributes:{role:"textbox",class:"ck-editor__editable_inline"}}),this._generateLabel=o.label||(()=>i("Editor editing area: %0",this.name))}render(){super.render();const t=this._editingView;t.change((e=>{const n=t.document.getRoot(this.name);e.setAttribute("aria-label",this._generateLabel(this),n)}))}}class If extends(J()){constructor(t,e){super(),e&&sc(this,e),t&&this.set(t)}}var Pf=n(991),zf={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Pr()(Pf.A,zf);Pf.A.locals;var Rf=n(5380),Lf={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Pr()(Rf.A,Lf);Rf.A.locals;const Ff=Xo("px");class Mf extends Nr{positionLimiter;visibleStack;_viewToStack=new Map;_idToStack=new Map;_view=null;_rotatorView=null;_fakePanelsView=null;static get pluginName(){return"ContextualBalloon"}constructor(t){super(t),this.positionLimiter=()=>{const t=this.editor.editing.view,e=t.document.selection.editableElement;return e?t.domConverter.mapViewToDom(e.root):null},this.set("visibleView",null),this.set("_numberOfStacks",0),this.set("_singleViewMode",!1)}destroy(){super.destroy(),this._view&&this._view.destroy(),this._rotatorView&&this._rotatorView.destroy(),this._fakePanelsView&&this._fakePanelsView.destroy()}get view(){return this._view||this._createPanelView(),this._view}hasView(t){return Array.from(this._viewToStack.keys()).includes(t)}add(t){if(this._view||this._createPanelView(),this.hasView(t.view))throw new x("contextualballoon-add-view-exist",[this,t]);const e=t.stackId||"main";if(!this._idToStack.has(e))return this._idToStack.set(e,new Map([[t.view,t]])),this._viewToStack.set(t.view,this._idToStack.get(e)),this._numberOfStacks=this._idToStack.size,void(this._visibleStack&&!t.singleViewMode||this.showStack(e));const n=this._idToStack.get(e);t.singleViewMode&&this.showStack(e),n.set(t.view,t),this._viewToStack.set(t.view,n),n===this._visibleStack&&this._showView(t)}remove(t){if(!this.hasView(t))throw new x("contextualballoon-remove-view-not-exist",[this,t]);const e=this._viewToStack.get(t);this._singleViewMode&&this.visibleView===t&&(this._singleViewMode=!1),this.visibleView===t&&(1===e.size?this._idToStack.size>1?this._showNextStack():(this.view.hide(),this.visibleView=null,this._rotatorView.hideView()):this._showView(Array.from(e.values())[e.size-2])),1===e.size?(this._idToStack.delete(this._getStackId(e)),this._numberOfStacks=this._idToStack.size):e.delete(t),this._viewToStack.delete(t)}updatePosition(t){t&&(this._visibleStack.get(this.visibleView).position=t),this.view.pin(this._getBalloonPosition()),this._fakePanelsView.updatePosition()}showStack(t){this.visibleStack=t;const e=this._idToStack.get(t);if(!e)throw new x("contextualballoon-showstack-stack-not-exist",this);this._visibleStack!==e&&this._showView(Array.from(e.values()).pop())}_createPanelView(){this._view=new tf(this.editor.locale),this.editor.ui.view.body.add(this._view),this.editor.ui.focusTracker.add(this._view.element),this._rotatorView=this._createRotatorView(),this._fakePanelsView=this._createFakePanelsView()}get _visibleStack(){return this._viewToStack.get(this.visibleView)}_getStackId(t){return Array.from(this._idToStack.entries()).find((e=>e[1]===t))[0]}_showNextStack(){const t=Array.from(this._idToStack.values());let e=t.indexOf(this._visibleStack)+1;t[e]||(e=0),this.showStack(this._getStackId(t[e]))}_showPrevStack(){const t=Array.from(this._idToStack.values());let e=t.indexOf(this._visibleStack)-1;t[e]||(e=t.length-1),this.showStack(this._getStackId(t[e]))}_createRotatorView(){const t=new Vf(this.editor.locale),e=this.editor.locale.t;return this.view.content.add(t),t.bind("isNavigationVisible").to(this,"_numberOfStacks",this,"_singleViewMode",((t,e)=>!e&&t>1)),t.on("change:isNavigationVisible",(()=>this.updatePosition()),{priority:"low"}),t.bind("counter").to(this,"visibleView",this,"_numberOfStacks",((t,n)=>{if(n<2)return"";const o=Array.from(this._idToStack.values()).indexOf(this._visibleStack)+1;return e("%0 of %1",[o,n])})),t.buttonNextView.on("execute",(()=>{t.focusTracker.isFocused&&this.editor.editing.view.focus(),this._showNextStack()})),t.buttonPrevView.on("execute",(()=>{t.focusTracker.isFocused&&this.editor.editing.view.focus(),this._showPrevStack()})),t}_createFakePanelsView(){const t=new Of(this.editor.locale,this.view);return t.bind("numberOfPanels").to(this,"_numberOfStacks",this,"_singleViewMode",((t,e)=>!e&&t>=2?Math.min(t-1,2):0)),t.listenTo(this.view,"change:top",(()=>t.updatePosition())),t.listenTo(this.view,"change:left",(()=>t.updatePosition())),this.editor.ui.view.body.add(t),t}_showView({view:t,balloonClassName:e="",withArrow:n=!0,singleViewMode:o=!1}){this.view.class=e,this.view.withArrow=n,this._rotatorView.showView(t),this.visibleView=t,this.view.pin(this._getBalloonPosition()),this._fakePanelsView.updatePosition(),o&&(this._singleViewMode=!0)}_getBalloonPosition(){let t=Array.from(this._visibleStack.values()).pop().position;return t&&(t.limiter||(t=Object.assign({},t,{limiter:this.positionLimiter})),t=Object.assign({},t,{viewportOffsetConfig:this.editor.ui.viewportOffset})),t}}class Vf extends Lr{focusTracker;buttonPrevView;buttonNextView;content;constructor(t){super(t);const e=t.t,n=this.bindTemplate;this.set("isNavigationVisible",!0),this.focusTracker=new tr,this.buttonPrevView=this._createButtonView(e("Previous"),Ju.previousArrow),this.buttonNextView=this._createButtonView(e("Next"),Ju.nextArrow),this.content=this.createCollection(),this.setTemplate({tag:"div",attributes:{class:["ck","ck-balloon-rotator"],"z-index":"-1"},children:[{tag:"div",attributes:{class:["ck-balloon-rotator__navigation",n.to("isNavigationVisible",(t=>t?"":"ck-hidden"))]},children:[this.buttonPrevView,{tag:"span",attributes:{class:["ck-balloon-rotator__counter"]},children:[{text:n.to("counter")}]},this.buttonNextView]},{tag:"div",attributes:{class:"ck-balloon-rotator__content"},children:this.content}]})}render(){super.render(),this.focusTracker.add(this.element)}destroy(){super.destroy(),this.focusTracker.destroy()}showView(t){this.hideView(),this.content.add(t)}hideView(){this.content.clear()}_createButtonView(t,e){const n=new om(this.locale);return n.set({label:t,icon:e,tooltip:!0}),n}}class Of extends Lr{content;_balloonPanelView;constructor(t,e){super(t);const n=this.bindTemplate;this.set("top",0),this.set("left",0),this.set("height",0),this.set("width",0),this.set("numberOfPanels",0),this.content=this.createCollection(),this._balloonPanelView=e,this.setTemplate({tag:"div",attributes:{class:["ck-fake-panel",n.to("numberOfPanels",(t=>t?"":"ck-hidden"))],style:{top:n.to("top",Ff),left:n.to("left",Ff),width:n.to("width",Ff),height:n.to("height",Ff)}},children:this.content}),this.on("change:numberOfPanels",((t,e,n,o)=>{n>o?this._addPanels(n-o):this._removePanels(o-n),this.updatePosition()}))}_addPanels(t){for(;t--;){const t=new Lr;t.setTemplate({tag:"div"}),this.content.add(t),this.registerChild(t)}}_removePanels(t){for(;t--;){const t=this.content.last;this.content.remove(t),this.deregisterChild(t),t.destroy()}}updatePosition(){if(this.numberOfPanels){const{top:t,left:e}=this._balloonPanelView,{width:n,height:o}=new Ko(this._balloonPanelView.element);Object.assign(this,{top:t,left:e,width:n,height:o})}}}var Nf=n(8298),Hf={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Pr()(Nf.A,Hf);Nf.A.locals;const qf=Xo("px");class jf extends Lr{content;contentPanelElement;_contentPanelPlaceholder;constructor(t){super(t);const e=this.bindTemplate;this.set("isActive",!1),this.set("isSticky",!1),this.set("limiterElement",null),this.set("limiterBottomOffset",50),this.set("viewportTopOffset",0),this.set("_marginLeft",null),this.set("_isStickyToTheBottomOfLimiter",!1),this.set("_stickyTopOffset",null),this.set("_stickyBottomOffset",null),this.content=this.createCollection(),this._contentPanelPlaceholder=new dr({tag:"div",attributes:{class:["ck","ck-sticky-panel__placeholder"],style:{display:e.to("isSticky",(t=>t?"block":"none")),height:e.to("isSticky",(t=>t?qf(this._contentPanelRect.height):null))}}}).render(),this.contentPanelElement=new dr({tag:"div",attributes:{class:["ck","ck-sticky-panel__content",e.if("isSticky","ck-sticky-panel__content_sticky"),e.if("_isStickyToTheBottomOfLimiter","ck-sticky-panel__content_sticky_bottom-limit")],style:{width:e.to("isSticky",(t=>t?qf(this._contentPanelPlaceholder.getBoundingClientRect().width):null)),top:e.to("_stickyTopOffset",(t=>t?qf(t):t)),bottom:e.to("_stickyBottomOffset",(t=>t?qf(t):t)),marginLeft:e.to("_marginLeft")}},children:this.content}).render(),this.setTemplate({tag:"div",attributes:{class:["ck","ck-sticky-panel"]},children:[this._contentPanelPlaceholder,this.contentPanelElement]})}render(){super.render(),this.checkIfShouldBeSticky(),this.listenTo(Oo.document,"scroll",(()=>{this.checkIfShouldBeSticky()}),{useCapture:!0}),this.listenTo(this,"change:isActive",(()=>{this.checkIfShouldBeSticky()}))}checkIfShouldBeSticky(){if(!this.limiterElement||!this.isActive)return void this._unstick();const t=new Ko(this.limiterElement);let e=t.getVisible();if(e){const t=new Ko(Oo.window);t.top+=this.viewportTopOffset,t.height-=this.viewportTopOffset,e=e.getIntersection(t)}if(e&&t.tope.bottom){const n=Math.max(t.bottom-e.bottom,0)+this.limiterBottomOffset;t.bottom-n>t.top+this._contentPanelRect.height?this._stickToBottomOfLimiter(n):this._unstick()}else this._contentPanelRect.height+this.limiterBottomOffset":">",'"':""","'":"'"};var Yf;var Qf=/[&<>"']/g;RegExp(Qf.source);var Xf=n(9529),tk={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Pr()(Xf.A,tk);Xf.A.locals;var ek=n(109),nk={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Pr()(ek.A,nk);ek.A.locals;var ok=n(2710),ik={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Pr()(ok.A,ik);ok.A.locals;var rk=n(3344),sk={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Pr()(rk.A,sk);rk.A.locals;class ak extends om{arrowView;constructor(t){super(t);const e=this.bindTemplate;this.set({withText:!0,role:"menuitem"}),this.arrowView=this._createArrowView(),this.extendTemplate({attributes:{class:["ck-menu-bar__menu__button"],"aria-haspopup":!0,"aria-expanded":this.bindTemplate.to("isOn",(t=>String(t))),"data-cke-tooltip-disabled":e.to("isOn")},on:{mouseenter:e.to("mouseenter")}})}render(){super.render(),this.children.add(this.arrowView)}_createArrowView(){const t=new Xu;return t.content=Gm,t.extendTemplate({attributes:{class:"ck-menu-bar__menu__button__arrow"}}),t}}var ck=n(9481),lk={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Pr()(ck.A,lk);ck.A.locals;class dk extends Rg{constructor(t,e){super(t);const n=this.bindTemplate;this.extendTemplate({attributes:{class:["ck-menu-bar__menu__item"]},on:{mouseenter:n.to("mouseenter")}}),this.delegate("mouseenter").to(e)}}const hk={toggleMenusAndFocusItemsOnHover(t){t.on("menu:mouseenter",(e=>{if(t.isOpen){for(const n of t.menus){const t=e.path[0],o=t instanceof dk&&t.children.first===n;n.isOpen=(e.path.includes(n)||o)&&n.isEnabled}e.source.focus()}}))},focusCycleMenusOnArrows(t){const e="rtl"===t.locale.uiLanguageDirection;function n(e,n){const o=t.children.getIndex(e),i=e.isOpen,r=t.children.length,s=t.children.get((o+r+n)%r);e.isOpen=!1,i&&(s.isOpen=!0),s.buttonView.focus()}t.on("menu:arrowright",(t=>{n(t.source,e?-1:1)})),t.on("menu:arrowleft",(t=>{n(t.source,e?1:-1)}))},closeMenusWhenTheBarCloses(t){t.on("change:isOpen",(()=>{t.isOpen||t.menus.forEach((t=>{t.isOpen=!1}))}))},closeMenuWhenAnotherOnTheSameLevelOpens(t){t.on("menu:change:isOpen",((e,n,o)=>{o&&t.menus.filter((t=>e.source.parentMenuView===t.parentMenuView&&e.source!==t&&t.isOpen)).forEach((t=>{t.isOpen=!1}))}))},closeOnClickOutside(t){Fr({emitter:t,activator:()=>t.isOpen,callback:()=>t.close(),contextElements:()=>t.children.map((t=>t.element))})}},uk={openAndFocusPanelOnArrowDownKey(t){t.keystrokes.set("arrowdown",((e,n)=>{t.focusTracker.focusedElement===t.buttonView.element&&(t.isOpen||(t.isOpen=!0),t.panelView.focus(),n())}))},openOnArrowRightKey(t){const e="rtl"===t.locale.uiLanguageDirection?"arrowleft":"arrowright";t.keystrokes.set(e,((e,n)=>{t.focusTracker.focusedElement===t.buttonView.element&&t.isEnabled&&(t.isOpen||(t.isOpen=!0),t.panelView.focus(),n())}))},openOnButtonClick(t){t.buttonView.on("execute",(()=>{t.isOpen=!0,t.panelView.focus()}))},toggleOnButtonClick(t){t.buttonView.on("execute",(()=>{t.isOpen=!t.isOpen,t.isOpen&&t.panelView.focus()}))},closeOnArrowLeftKey(t){const e="rtl"===t.locale.uiLanguageDirection?"arrowright":"arrowleft";t.keystrokes.set(e,((e,n)=>{t.isOpen&&(t.isOpen=!1,t.focus(),n())}))},closeOnEscKey(t){t.keystrokes.set("esc",((e,n)=>{t.isOpen&&(t.isOpen=!1,t.focus(),n())}))},closeOnParentClose(t){t.parentMenuView.on("change:isOpen",((e,n,o)=>{o||e.source!==t.parentMenuView||(t.isOpen=!1)}))}},mk={southEast:t=>({top:t.bottom,left:t.left,name:"se"}),southWest:(t,e)=>({top:t.bottom,left:t.left-e.width+t.width,name:"sw"}),northEast:(t,e)=>({top:t.top-e.height,left:t.left,name:"ne"}),northWest:(t,e)=>({top:t.top-e.height,left:t.left-e.width+t.width,name:"nw"}),eastSouth:t=>({top:t.top,left:t.right-5,name:"es"}),eastNorth:(t,e)=>({top:t.top-e.height,left:t.right-5,name:"en"}),westSouth:(t,e)=>({top:t.top,left:t.left-e.width+5,name:"ws"}),westNorth:(t,e)=>({top:t.top-e.height,left:t.left-e.width+5,name:"wn"})},gk=[{menuId:"file",label:"File",groups:[{groupId:"export",items:["menuBar:exportPdf","menuBar:exportWord"]},{groupId:"import",items:["menuBar:importWord"]},{groupId:"revisionHistory",items:["menuBar:revisionHistory"]}]},{menuId:"edit",label:"Edit",groups:[{groupId:"undo",items:["menuBar:undo","menuBar:redo"]},{groupId:"selectAll",items:["menuBar:selectAll"]},{groupId:"findAndReplace",items:["menuBar:findAndReplace"]}]},{menuId:"view",label:"View",groups:[{groupId:"sourceEditing",items:["menuBar:sourceEditing"]},{groupId:"showBlocks",items:["menuBar:showBlocks"]},{groupId:"restrictedEditingException",items:["menuBar:restrictedEditingException"]}]},{menuId:"insert",label:"Insert",groups:[{groupId:"insertMainWidgets",items:["menuBar:uploadImage","menuBar:ckbox","menuBar:ckfinder","menuBar:insertTable"]},{groupId:"insertInline",items:["menuBar:link","menuBar:comment"]},{groupId:"insertMinorWidgets",items:["menuBar:insertTemplate","menuBar:blockQuote","menuBar:codeBlock","menuBar:htmlEmbed"]},{groupId:"insertStructureWidgets",items:["menuBar:horizontalLine","menuBar:pageBreak","menuBar:tableOfContents"]},{groupId:"restrictedEditing",items:["menuBar:restrictedEditing"]}]},{menuId:"format",label:"Format",groups:[{groupId:"textAndFont",items:[{menuId:"text",label:"Text",groups:[{groupId:"basicStyles",items:["menuBar:bold","menuBar:italic","menuBar:underline","menuBar:strikethrough","menuBar:superscript","menuBar:subscript","menuBar:code"]},{groupId:"textPartLanguage",items:["menuBar:textPartLanguage"]}]},{menuId:"font",label:"Font",groups:[{groupId:"fontProperties",items:["menuBar:fontSize","menuBar:fontFamily"]},{groupId:"fontColors",items:["menuBar:fontColor","menuBar:fontBackgroundColor"]},{groupId:"highlight",items:["menuBar:highlight"]}]},"menuBar:heading"]},{groupId:"list",items:["menuBar:bulletedList","menuBar:numberedList","menuBar:todoList"]},{groupId:"indent",items:["menuBar:alignment","menuBar:indent","menuBar:outdent"]},{groupId:"caseChange",items:["menuBar:caseChange"]},{groupId:"removeFormat",items:["menuBar:removeFormat"]}]},{menuId:"tools",label:"Tools",groups:[{groupId:"aiTools",items:["menuBar:aiAssistant","menuBar:aiCommands"]},{groupId:"tools",items:["menuBar:trackChanges","menuBar:commentsArchive"]}]},{menuId:"help",label:"Help",groups:[{groupId:"help",items:["menuBar:accessibilityHelp"]}]}];function pk({normalizedConfig:t,locale:e,componentFactory:n}){const o=el(t);return function(t,e){const n=e.removeItems,o=[];e.items=e.items.filter((({menuId:t})=>!n.includes(t)||(o.push(t),!1))),wk(e.items,(t=>{t.groups=t.groups.filter((({groupId:t})=>!n.includes(t)||(o.push(t),!1)));for(const e of t.groups)e.items=e.items.filter((t=>{const e=yk(t);return!n.includes(e)||(o.push(e),!1)}))}));for(const e of n)o.includes(e)||E("menu-bar-item-could-not-be-removed",{menuBarConfig:t,itemName:e})}(t,o),function(t,e){const n=e.addItems,o=[];for(const t of n){const n=Ck(t.position),i=vk(t.position);if(_k(t))if(i){const r=e.items.findIndex((t=>t.menuId===i));if(-1!=r)"before"===n?(e.items.splice(r,0,t.menu),o.push(t)):"after"===n&&(e.items.splice(r+1,0,t.menu),o.push(t));else{fk(e,t.menu,i,n)&&o.push(t)}}else"start"===n?(e.items.unshift(t.menu),o.push(t)):"end"===n&&(e.items.push(t.menu),o.push(t));else if(Ak(t))wk(e.items,(e=>{if(e.menuId===i)"start"===n?(e.groups.unshift(t.group),o.push(t)):"end"===n&&(e.groups.push(t.group),o.push(t));else{const r=e.groups.findIndex((t=>t.groupId===i));-1!==r&&("before"===n?(e.groups.splice(r,0,t.group),o.push(t)):"after"===n&&(e.groups.splice(r+1,0,t.group),o.push(t)))}}));else{fk(e,t.item,i,n)&&o.push(t)}}for(const e of n)o.includes(e)||E("menu-bar-item-could-not-be-added",{menuBarConfig:t,addedItemConfig:e})}(t,o),function(t,e,n){wk(e.items,(o=>{for(const i of o.groups)i.items=i.items.filter((i=>{const r="string"==typeof i&&!n.has(i);return r&&!e.isUsingDefaultConfig&&E("menu-bar-item-unavailable",{menuBarConfig:t,parentMenuConfig:el(o),componentName:i}),!r}))}))}(t,o,n),kk(t,o),function(t,e){const n=e.t,o={File:n({string:"File",id:"MENU_BAR_MENU_FILE"}),Edit:n({string:"Edit",id:"MENU_BAR_MENU_EDIT"}),View:n({string:"View",id:"MENU_BAR_MENU_VIEW"}),Insert:n({string:"Insert",id:"MENU_BAR_MENU_INSERT"}),Format:n({string:"Format",id:"MENU_BAR_MENU_FORMAT"}),Tools:n({string:"Tools",id:"MENU_BAR_MENU_TOOLS"}),Help:n({string:"Help",id:"MENU_BAR_MENU_HELP"}),Text:n({string:"Text",id:"MENU_BAR_MENU_TEXT"}),Font:n({string:"Font",id:"MENU_BAR_MENU_FONT"})};wk(t.items,(t=>{t.label in o&&(t.label=o[t.label])}))}(o,e),o}function fk(t,e,n,o){let i=!1;return wk(t.items,(t=>{for(const{groupId:r,items:s}of t.groups){if(i)return;if(r===n)"start"===o?(s.unshift(e),i=!0):"end"===o&&(s.push(e),i=!0);else{const t=s.findIndex((t=>yk(t)===n));-1!==t&&("before"===o?(s.splice(t,0,e),i=!0):"after"===o&&(s.splice(t+1,0,e),i=!0))}}})),i}function kk(t,e){const n=e.isUsingDefaultConfig;let o=!1;e.items=e.items.filter((e=>!!e.groups.length||(bk(t,e,n),!1))),e.items.length?(wk(e.items,(e=>{e.groups=e.groups.filter((t=>!!t.items.length||(o=!0,!1)));for(const i of e.groups)i.items=i.items.filter((e=>!(xk(e)&&!e.groups.length)||(bk(t,e,n),o=!0,!1)))})),o&&kk(t,e)):bk(t,t,n)}function bk(t,e,n){n||E("menu-bar-menu-empty",{menuBarConfig:t,emptyMenuConfig:e})}function wk(t,e){if(Array.isArray(t))for(const e of t)n(e);function n(t){e(t);for(const e of t.groups)for(const t of e.items)xk(t)&&n(t)}}function _k(t){return"object"==typeof t&&"menu"in t}function Ak(t){return"object"==typeof t&&"group"in t}function Ck(t){return t.startsWith("start")?"start":t.startsWith("end")?"end":t.startsWith("after")?"after":"before"}function vk(t){const e=t.match(/^[^:]+:(.+)/);return e?e[1]:null}function yk(t){return"string"==typeof t?t:t.menuId}function xk(t){return"object"==typeof t&&"menuId"in t}function Ek(t,e){const n=e.element;t.ui.focusTracker.add(n),t.keystrokes.listenTo(n);const o=function(t){let e;return e="items"in t&&t.items?{items:t.items,removeItems:[],addItems:[],isVisible:!0,isUsingDefaultConfig:!1,...t}:{items:el(gk),addItems:[],removeItems:[],isVisible:!0,isUsingDefaultConfig:!0,...t},e}(t.config.get("menuBar")||{});e.fillFromConfig(o,t.ui.componentFactory),t.keystrokes.set("Esc",((e,o)=>{n.contains(t.ui.focusTracker.focusedElement)&&(t.editing.view.focus(),o())})),t.keystrokes.set("Alt+F9",((o,i)=>{n.contains(t.ui.focusTracker.focusedElement)||(e.focus(),i())}))}var Dk=n(9108),Bk={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Pr()(Dk.A,Bk);Dk.A.locals;class Tk extends Lr{children;constructor(t){super(t);const e=this.bindTemplate;this.set("isVisible",!1),this.set("position","se"),this.children=this.createCollection(),this.setTemplate({tag:"div",attributes:{class:["ck","ck-reset","ck-menu-bar__menu__panel",e.to("position",(t=>`ck-menu-bar__menu__panel_position_${t}`)),e.if("isVisible","ck-hidden",(t=>!t))],tabindex:"-1"},children:this.children,on:{selectstart:e.to((t=>{"input"!==t.target.tagName.toLocaleLowerCase()&&t.preventDefault()}))}})}focus(t=1){this.children.length&&(1===t?this.children.first.focus():this.children.last.focus())}}var Sk=n(4),Ik={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Pr()(Sk.A,Ik);Sk.A.locals;class Pk extends Lr{buttonView;panelView;focusTracker;keystrokes;constructor(t){super(t);const e=this.bindTemplate;this.buttonView=new ak(t),this.buttonView.delegate("mouseenter").to(this),this.buttonView.bind("isOn","isEnabled").to(this,"isOpen","isEnabled"),this.panelView=new Tk(t),this.panelView.bind("isVisible").to(this,"isOpen"),this.keystrokes=new er,this.focusTracker=new tr,this.set("isOpen",!1),this.set("isEnabled",!0),this.set("panelPosition","w"),this.set("class",void 0),this.set("parentMenuView",null),this.setTemplate({tag:"div",attributes:{class:["ck","ck-menu-bar__menu",e.to("class"),e.if("isEnabled","ck-disabled",(t=>!t)),e.if("parentMenuView","ck-menu-bar__menu_top-level",(t=>!t))]},children:[this.buttonView,this.panelView]})}render(){super.render(),this.focusTracker.add(this.buttonView.element),this.focusTracker.add(this.panelView.element),this.keystrokes.listenTo(this.element),uk.closeOnEscKey(this),this._repositionPanelOnOpen()}_attachBehaviors(){this.parentMenuView?(uk.openOnButtonClick(this),uk.openOnArrowRightKey(this),uk.closeOnArrowLeftKey(this),uk.closeOnParentClose(this)):(this._propagateArrowKeystrokeEvents(),uk.openAndFocusPanelOnArrowDownKey(this),uk.toggleOnButtonClick(this))}_propagateArrowKeystrokeEvents(){this.keystrokes.set("arrowright",((t,e)=>{this.fire("arrowright"),e()})),this.keystrokes.set("arrowleft",((t,e)=>{this.fire("arrowleft"),e()}))}_repositionPanelOnOpen(){this.on("change:isOpen",((t,e,n)=>{if(!n)return;const o=Pk._getOptimalPosition({element:this.panelView.element,target:this.buttonView.element,fitInViewport:!0,positions:this._panelPositions});this.panelView.position=o?o.name:this._panelPositions[0].name}))}focus(){this.buttonView.focus()}get _panelPositions(){const{southEast:t,southWest:e,northEast:n,northWest:o,westSouth:i,eastSouth:r,westNorth:s,eastNorth:a}=mk;return"ltr"===this.locale.uiLanguageDirection?this.parentMenuView?[r,a,i,s]:[t,e,n,o]:this.parentMenuView?[i,s,r,a]:[e,t,o,n]}static _getOptimalPosition=ii}class zk extends Og{constructor(t){super(t),this.role="menu"}}class Rk extends jm{constructor(t){super(t),this.set({withText:!0,withKeystroke:!0,tooltip:!1,role:"menuitem"}),this.extendTemplate({attributes:{class:["ck-menu-bar__menu__item__button"]}})}}var Lk=n(497),Fk={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Pr()(Lk.A,Fk);Lk.A.locals;const Mk=["mouseenter","arrowleft","arrowright","change:isOpen"];class Vk extends Lr{children;menus=[];constructor(t){super(t);const e=t.t;this.set("isOpen",!1),this._setupIsOpenUpdater(),this.children=this.createCollection(),this.setTemplate({tag:"div",attributes:{class:["ck","ck-menu-bar"],"aria-label":e("Editor menu bar"),role:"menubar"},children:this.children})}fillFromConfig(t,e){const n=pk({normalizedConfig:t,locale:this.locale,componentFactory:e}).items.map((t=>this._createMenu({componentFactory:e,menuDefinition:t})));this.children.addMany(n)}render(){super.render(),hk.toggleMenusAndFocusItemsOnHover(this),hk.closeMenusWhenTheBarCloses(this),hk.closeMenuWhenAnotherOnTheSameLevelOpens(this),hk.focusCycleMenusOnArrows(this),hk.closeOnClickOutside(this)}focus(){this.children.first&&this.children.first.focus()}close(){for(const t of this.children)t.isOpen=!1}registerMenu(t,e=null){e?(t.delegate(...Mk).to(e),t.parentMenuView=e):t.delegate(...Mk).to(this,(t=>"menu:"+t)),t._attachBehaviors(),this.menus.push(t)}_createMenu({componentFactory:t,menuDefinition:e,parentMenuView:n}){const o=this.locale,i=new Pk(o);return this.registerMenu(i,n),i.buttonView.set({label:e.label}),i.once("change:isOpen",(()=>{const n=new zk(o);n.ariaLabel=e.label,i.panelView.children.add(n),n.items.addMany(this._createMenuItems({menuDefinition:e,parentMenuView:i,componentFactory:t}))})),i}_createMenuItems({menuDefinition:t,parentMenuView:e,componentFactory:n}){const o=this.locale,i=[];for(const r of t.groups){for(const t of r.items){const r=new dk(o,e);if(j(t))r.children.add(this._createMenu({componentFactory:n,menuDefinition:t,parentMenuView:e}));else{const o=this._createMenuItemContentFromFactory({componentName:t,componentFactory:n,parentMenuView:e});if(!o)continue;r.children.add(o)}i.push(r)}r!==t.groups[t.groups.length-1]&&i.push(new Lg(o))}return i}_createMenuItemContentFromFactory({componentName:t,parentMenuView:e,componentFactory:n}){const o=n.create(t);return o instanceof Pk||o instanceof Tm||o instanceof Rk?(this._registerMenuTree(o,e),o.on("execute",(()=>{this.close()})),o):(E("menu-bar-component-unsupported",{componentName:t,componentView:o}),null)}_registerMenuTree(t,e){if(!(t instanceof Pk))return void t.delegate("mouseenter").to(e);this.registerMenu(t,e);const n=t.panelView.children.filter((t=>t instanceof zk))[0];if(!n)return void t.delegate("mouseenter").to(e);const o=n.items.filter((t=>t instanceof Rg));for(const e of o)this._registerMenuTree(e.children.get(0),t)}_setupIsOpenUpdater(){let t;this.on("menu:change:isOpen",((e,n,o)=>{clearTimeout(t),o?this.isOpen=!0:t=setTimeout((()=>{this.isOpen=Array.from(this.children).some((t=>t.isOpen))}),0)}))}}class Ok extends vf{view;_toolbarConfig;_elementReplacer;constructor(t,e){super(t),this.view=e,this._toolbarConfig=Eg(t.config.get("toolbar")),this._elementReplacer=new nt,this.listenTo(t.editing.view,"scrollToTheSelection",this._handleScrollToTheSelectionWithStickyPanel.bind(this))}get element(){return this.view.element}init(t){const e=this.editor,n=this.view,o=e.editing.view,i=n.editable,r=o.document.getRoot();i.name=r.rootName,n.render();const s=i.element;this.setEditableElement(i.name,s),n.editable.bind("isFocused").to(this.focusTracker),o.attachDomRoot(s),t&&this._elementReplacer.replace(t,this.element),this._initPlaceholder(),this._initToolbar(),n.menuBarView&&Ek(e,n.menuBarView),this._initDialogPluginIntegration(),this.fire("ready")}destroy(){super.destroy();const t=this.view,e=this.editor.editing.view;this._elementReplacer.restore(),e.detachDomRoot(t.editable.name),t.destroy()}_initToolbar(){const t=this.view;t.stickyPanel.bind("isActive").to(this.focusTracker,"isFocused"),t.stickyPanel.limiterElement=t.element,t.stickyPanel.bind("viewportTopOffset").to(this,"viewportOffset",(({top:t})=>t||0)),t.toolbar.fillFromConfig(this._toolbarConfig,this.componentFactory),this.addToolbar(t.toolbar)}_initPlaceholder(){const t=this.editor,e=t.editing.view,n=e.document.getRoot(),o=t.sourceElement;let i;const r=t.config.get("placeholder");r&&(i="string"==typeof r?r:r[this.view.editable.name]),!i&&o&&"textarea"===o.tagName.toLowerCase()&&(i=o.getAttribute("placeholder")),i&&(n.placeholder=i),Xr({view:e,element:n,isDirectHost:!1,keepOnFocus:!0})}_handleScrollToTheSelectionWithStickyPanel(t,e,n){const o=this.view.stickyPanel;if(o.isSticky){const t=new Ko(o.element).height;e.viewportOffset.top+=t}else{const t=()=>{this.editor.editing.view.scrollToTheSelection(n)};this.listenTo(o,"change:isSticky",t),setTimeout((()=>{this.stopListening(o,"change:isSticky",t)}),20)}}_initDialogPluginIntegration(){if(!this.editor.plugins.has("Dialog"))return;const t=this.view.stickyPanel,e=this.editor.plugins.get("Dialog");e.on("show",(()=>{const n=e.view;n.on("moveTo",((e,o)=>{if(!t.isSticky||n.wasMoved)return;const i=new Ko(t.contentPanelElement);o[1]{const e="error"in t?t.error:t.reason;e instanceof Error&&this._handleError(e,t)},this._listeners={},!this._restart)throw new Error("The Watchdog class was split into the abstract `Watchdog` class and the `EditorWatchdog` class. Please, use `EditorWatchdog` if you have used the `Watchdog` class previously.")}destroy(){this._stopErrorHandling(),this._listeners={}}on(t,e){this._listeners[t]||(this._listeners[t]=[]),this._listeners[t].push(e)}off(t,e){this._listeners[t]=this._listeners[t].filter((t=>t!==e))}_fire(t,...e){const n=this._listeners[t]||[];for(const t of n)t.apply(this,[null,...e])}_startErrorHandling(){window.addEventListener("error",this._boundErrorHandler),window.addEventListener("unhandledrejection",this._boundErrorHandler)}_stopErrorHandling(){window.removeEventListener("error",this._boundErrorHandler),window.removeEventListener("unhandledrejection",this._boundErrorHandler)}_handleError(t,e){if(this._shouldReactToError(t)){this.crashes.push({message:t.message,stack:t.stack,filename:e instanceof ErrorEvent?e.filename:void 0,lineno:e instanceof ErrorEvent?e.lineno:void 0,colno:e instanceof ErrorEvent?e.colno:void 0,date:this._now()});const n=this._shouldRestart();this.state="crashed",this._fire("stateChange"),this._fire("error",{error:t,causesRestart:n}),n?this._restart():(this.state="crashedPermanently",this._fire("stateChange"))}}_shouldReactToError(t){return t.is&&t.is("CKEditorError")&&void 0!==t.context&&null!==t.context&&"ready"===this.state&&this._isErrorComingFromThisItem(t)}_shouldRestart(){if(this.crashes.length<=this._crashNumberLimit)return!0;return(this.crashes[this.crashes.length-1].date-this.crashes[this.crashes.length-1-this._crashNumberLimit].date)/this._crashNumberLimit>this._minimumNonErrorTimePeriod}}function Wk(t,e=new Set){const n=[t],o=new Set;let i=0;for(;n.length>i;){const t=n[i++];if(!o.has(t)&&Gk(t)&&!e.has(t))if(o.add(t),Symbol.iterator in t)try{for(const e of t)n.push(e)}catch(t){}else for(const e in t)"defaultValue"!==e&&n.push(t[e])}return o}function Gk(t){const e=Object.prototype.toString.call(t),n=typeof t;return!("number"===n||"boolean"===n||"string"===n||"symbol"===n||"function"===n||"[object Date]"===e||"[object RegExp]"===e||"[object Module]"===e||null==t||t._watchdogExcluded||t instanceof EventTarget||t instanceof Event)}function Kk(t,e,n=new Set){if(t===e&&("object"==typeof(o=t)&&null!==o))return!0;var o;const i=Wk(t,n),r=Wk(e,n);for(const t of i)if(r.has(t))return!0;return!1}class Uk extends jk{_editor=null;_lifecyclePromise=null;_throttledSave;_data;_lastDocumentVersion;_elementOrData;_initUsingData=!0;_editables={};_config;_excludedProps;constructor(t,e={}){super(e),this._throttledSave=lf(this._save.bind(this),"number"==typeof e.saveInterval?e.saveInterval:5e3),t&&(this._creator=(e,n)=>t.create(e,n)),this._destructor=t=>t.destroy()}get editor(){return this._editor}get _item(){return this._editor}setCreator(t){this._creator=t}setDestructor(t){this._destructor=t}_restart(){return Promise.resolve().then((()=>(this.state="initializing",this._fire("stateChange"),this._destroy()))).catch((t=>{console.error("An error happened during the editor destroying.",t)})).then((()=>{const t={},e=[],n=this._config.rootsAttributes||{},o={};for(const[i,r]of Object.entries(this._data.roots))r.isLoaded?(t[i]="",o[i]=n[i]||{}):e.push(i);const i={...this._config,extraPlugins:this._config.extraPlugins||[],lazyRoots:e,rootsAttributes:o,_watchdogInitialData:this._data};return delete i.initialData,i.extraPlugins.push($k),this._initUsingData?this.create(t,i,i.context):Bo(this._elementOrData)?this.create(this._elementOrData,i,i.context):this.create(this._editables,i,i.context)})).then((()=>{this._fire("restart")}))}create(t=this._elementOrData,e=this._config,n){return this._lifecyclePromise=Promise.resolve(this._lifecyclePromise).then((()=>(super._startErrorHandling(),this._elementOrData=t,this._initUsingData="string"==typeof t||Object.keys(t).length>0&&"string"==typeof Object.values(t)[0],this._config=this._cloneEditorConfiguration(e)||{},this._config.context=n,this._creator(t,this._config)))).then((t=>{this._editor=t,t.model.document.on("change:data",this._throttledSave),this._lastDocumentVersion=t.model.document.version,this._data=this._getData(),this._initUsingData||(this._editables=this._getEditables()),this.state="ready",this._fire("stateChange")})).finally((()=>{this._lifecyclePromise=null})),this._lifecyclePromise}destroy(){return this._lifecyclePromise=Promise.resolve(this._lifecyclePromise).then((()=>(this.state="destroyed",this._fire("stateChange"),super.destroy(),this._destroy()))).finally((()=>{this._lifecyclePromise=null})),this._lifecyclePromise}_destroy(){return Promise.resolve().then((()=>{this._stopErrorHandling(),this._throttledSave.cancel();const t=this._editor;return this._editor=null,t.model.document.off("change:data",this._throttledSave),this._destructor(t)}))}_save(){const t=this._editor.model.document.version;try{this._data=this._getData(),this._initUsingData||(this._editables=this._getEditables()),this._lastDocumentVersion=t}catch(t){console.error(t,"An error happened during restoring editor data. Editor will be restored from the previously saved data.")}}_setExcludedProperties(t){this._excludedProps=t}_getData(){const t=this._editor,e=t.model.document.roots.filter((t=>t.isAttached()&&"$graveyard"!=t.rootName)),{plugins:n}=t,o=n.has("CommentsRepository")&&n.get("CommentsRepository"),i=n.has("TrackChanges")&&n.get("TrackChanges"),r={roots:{},markers:{},commentThreads:JSON.stringify([]),suggestions:JSON.stringify([])};e.forEach((t=>{r.roots[t.rootName]={content:JSON.stringify(Array.from(t.getChildren())),attributes:JSON.stringify(Array.from(t.getAttributes())),isLoaded:t._isLoaded}}));for(const e of t.model.markers)e._affectsData&&(r.markers[e.name]={rangeJSON:e.getRange().toJSON(),usingOperation:e._managedUsingOperations,affectsData:e._affectsData});return o&&(r.commentThreads=JSON.stringify(o.getCommentThreads({toJSON:!0,skipNotAttached:!0}))),i&&(r.suggestions=JSON.stringify(i.getSuggestions({toJSON:!0,skipNotAttached:!0}))),r}_getEditables(){const t={};for(const e of this.editor.model.document.getRootNames()){const n=this.editor.ui.getEditableElement(e);n&&(t[e]=n)}return t}_isErrorComingFromThisItem(t){return Kk(this._editor,t.context,this._excludedProps)}_cloneEditorConfiguration(t){return Do(t,((t,e)=>Bo(t)||"context"===e?t:void 0))}}class $k{editor;_data;constructor(t){this.editor=t,this._data=t.config.get("_watchdogInitialData")}init(){this.editor.data.on("init",(t=>{t.stop(),this.editor.model.enqueueChange({isUndoable:!1},(t=>{this._restoreCollaborationData(),this._restoreEditorData(t)})),this.editor.data.fire("ready")}),{priority:999})}_createNode(t,e){if("name"in e){const n=t.createElement(e.name,e.attributes);if(e.children)for(const o of e.children)n._appendChild(this._createNode(t,o));return n}return t.createText(e.data,e.attributes)}_restoreEditorData(t){const e=this.editor;Object.entries(this._data.roots).forEach((([n,{content:o,attributes:i}])=>{const r=JSON.parse(o),s=JSON.parse(i),a=e.model.document.getRoot(n);for(const[e,n]of s)t.setAttribute(e,n,a);for(const e of r){const n=this._createNode(t,e);t.insert(n,a,"end")}})),Object.entries(this._data.markers).forEach((([n,o])=>{const{document:i}=e.model,{rangeJSON:{start:r,end:s},...a}=o,c=i.getRoot(r.root),l=t.createPositionFromPath(c,r.path,r.stickiness),d=t.createPositionFromPath(c,s.path,s.stickiness),h=t.createRange(l,d);t.addMarker(n,{range:h,...a})}))}_restoreCollaborationData(){const t=JSON.parse(this._data.commentThreads),e=JSON.parse(this._data.suggestions);t.forEach((t=>{const e=this.editor.config.get("collaboration.channelId"),n=this.editor.plugins.get("CommentsRepository");if(n.hasCommentThread(t.threadId)){n.getCommentThread(t.threadId).remove()}n.addCommentThread({channelId:e,...t})})),e.forEach((t=>{const e=this.editor.plugins.get("TrackChangesEditing");if(e.hasSuggestion(t.id)){e.getSuggestion(t.id).attributes=t.attributes}else e.addSuggestionData(t)}))}}const Zk=Symbol("MainQueueId");class Jk extends jk{_watchdogs=new Map;_watchdogConfig;_context=null;_contextProps=new Set;_actionQueues=new Yk;_contextConfig;_item;constructor(t,e={}){super(e),this._watchdogConfig=e,this._creator=e=>t.create(e),this._destructor=t=>t.destroy(),this._actionQueues.onEmpty((()=>{"initializing"===this.state&&(this.state="ready",this._fire("stateChange"))}))}setCreator(t){this._creator=t}setDestructor(t){this._destructor=t}get context(){return this._context}create(t={}){return this._actionQueues.enqueue(Zk,(()=>(this._contextConfig=t,this._create())))}getItem(t){return this._getWatchdog(t)._item}getItemState(t){return this._getWatchdog(t).state}add(t){const e=Qk(t);return Promise.all(e.map((t=>this._actionQueues.enqueue(t.id,(()=>{if("destroyed"===this.state)throw new Error("Cannot add items to destroyed watchdog.");if(!this._context)throw new Error("Context was not created yet. You should call the `ContextWatchdog#create()` method first.");let e;if(this._watchdogs.has(t.id))throw new Error(`Item with the given id is already added: '${t.id}'.`);if("editor"===t.type)return e=new Uk(null,this._watchdogConfig),e.setCreator(t.creator),e._setExcludedProperties(this._contextProps),t.destructor&&e.setDestructor(t.destructor),this._watchdogs.set(t.id,e),e.on("error",((n,{error:o,causesRestart:i})=>{this._fire("itemError",{itemId:t.id,error:o}),i&&this._actionQueues.enqueue(t.id,(()=>new Promise((n=>{const o=()=>{e.off("restart",o),this._fire("itemRestart",{itemId:t.id}),n()};e.on("restart",o)}))))})),e.create(t.sourceElementOrData,t.config,this._context);throw new Error(`Not supported item type: '${t.type}'.`)})))))}remove(t){const e=Qk(t);return Promise.all(e.map((t=>this._actionQueues.enqueue(t,(()=>{const e=this._getWatchdog(t);return this._watchdogs.delete(t),e.destroy()})))))}destroy(){return this._actionQueues.enqueue(Zk,(()=>(this.state="destroyed",this._fire("stateChange"),super.destroy(),this._destroy())))}_restart(){return this._actionQueues.enqueue(Zk,(()=>(this.state="initializing",this._fire("stateChange"),this._destroy().catch((t=>{console.error("An error happened during destroying the context or items.",t)})).then((()=>this._create())).then((()=>this._fire("restart"))))))}_create(){return Promise.resolve().then((()=>(this._startErrorHandling(),this._creator(this._contextConfig)))).then((t=>(this._context=t,this._contextProps=Wk(this._context),Promise.all(Array.from(this._watchdogs.values()).map((t=>(t._setExcludedProperties(this._contextProps),t.create(void 0,void 0,this._context))))))))}_destroy(){return Promise.resolve().then((()=>{this._stopErrorHandling();const t=this._context;return this._context=null,this._contextProps=new Set,Promise.all(Array.from(this._watchdogs.values()).map((t=>t.destroy()))).then((()=>this._destructor(t)))}))}_getWatchdog(t){const e=this._watchdogs.get(t);if(!e)throw new Error(`Item with the given id was not registered: ${t}.`);return e}_isErrorComingFromThisItem(t){for(const e of this._watchdogs.values())if(e._isErrorComingFromThisItem(t))return!1;return Kk(this._context,t.context)}}class Yk{_onEmptyCallbacks=[];_queues=new Map;_activeActions=0;onEmpty(t){this._onEmptyCallbacks.push(t)}enqueue(t,e){const n=t===Zk;this._activeActions++,this._queues.get(t)||this._queues.set(t,Promise.resolve());const o=(n?Promise.all(this._queues.values()):Promise.all([this._queues.get(Zk),this._queues.get(t)])).then(e),i=o.catch((()=>{}));return this._queues.set(t,i),o.finally((()=>{this._activeActions--,this._queues.get(t)===i&&0===this._activeActions&&this._onEmptyCallbacks.forEach((t=>t()))}))}}function Qk(t){return Array.isArray(t)?t:[t]}class Xk extends(Zu(Uu)){ui;constructor(t,e={}){if(!tb(t)&&void 0!==e.initialData)throw new x("editor-create-initial-data",null);super(e),this.config.define("menuBar.isVisible",!1),void 0===this.config.get("initialData")&&this.config.set("initialData",function(t){return tb(t)?No(t):t}(t)),tb(t)&&(this.sourceElement=t),this.model.document.createRoot();const n=!this.config.get("toolbar.shouldNotGroupWhenFull"),o=this.config.get("menuBar"),i=new qk(this.locale,this.editing.view,{shouldToolbarGroupWhenFull:n,useMenuBar:o.isVisible});this.ui=new Ok(this,i),$u(this)}destroy(){return this.sourceElement&&this.updateSourceElement(),this.ui.destroy(),super.destroy()}static create(t,e={}){return new Promise((n=>{const o=new this(t,e);n(o.initPlugins().then((()=>o.ui.init(tb(t)?t:null))).then((()=>o.data.init(o.config.get("initialData")))).then((()=>o.fire("ready"))).then((()=>o)))}))}static Context=Kr;static EditorWatchdog=Uk;static ContextWatchdog=Jk}function tb(t){return Bo(t)}class eb extends vf{view;_toolbarConfig;constructor(t,e){super(t),this.view=e,this._toolbarConfig=Eg(t.config.get("toolbar"))}get element(){return this.view.editable.element}init(){const t=this.editor,e=this.view,n=t.editing.view,o=e.editable,i=n.document.getRoot();o.name=i.rootName,e.render();const r=o.element;this.setEditableElement(o.name,r),o.bind("isFocused").to(this.focusTracker),n.attachDomRoot(r),this._initPlaceholder(),this._initToolbar(),this.fire("ready")}destroy(){super.destroy();const t=this.view;this.editor.editing.view.detachDomRoot(t.editable.name),t.destroy()}_initToolbar(){const t=this.editor,e=this.view,n=e.editable.element,o=e.toolbar;e.panel.bind("isVisible").to(this.focusTracker,"isFocused"),e.bind("viewportTopOffset").to(this,"viewportOffset",(({top:t})=>t||0)),e.listenTo(t.ui,"update",(()=>{e.panel.isVisible&&e.panel.pin({target:n,positions:e.panelPositions})})),o.fillFromConfig(this._toolbarConfig,this.componentFactory),this.addToolbar(o)}_initPlaceholder(){const t=this.editor,e=t.editing.view,n=e.document.getRoot(),o=t.config.get("placeholder");if(o){const t="string"==typeof o?o:o[n.rootName];t&&(n.placeholder=t)}Xr({view:e,element:n,isDirectHost:!1,keepOnFocus:!0})}}const nb=Xo("px");class ob extends Df{toolbar;panel;panelPositions;editable;_resizeObserver;constructor(t,e,n,o={}){super(t);const i=t.t;this.toolbar=new Sg(t,{shouldGroupWhenFull:o.shouldToolbarGroupWhenFull,isFloating:!0}),this.set("viewportTopOffset",0),this.panel=new tf(t),this.panelPositions=this._getPanelPositions(),this.panel.extendTemplate({attributes:{class:"ck-toolbar-container"}}),this.editable=new Sf(t,e,n,{label:t=>i("Rich Text Editor. Editing area: %0",t.name)}),this._resizeObserver=null}render(){super.render(),this.body.add(this.panel),this.registerChild(this.editable),this.panel.content.add(this.toolbar);if(this.toolbar.options.shouldGroupWhenFull){const t=this.editable.element;this._resizeObserver=new Yo(t,(()=>{this.toolbar.maxWidth=nb(new Ko(t).width)}))}}destroy(){super.destroy(),this._resizeObserver&&this._resizeObserver.destroy()}_getPanelPositionTop(t,e){let n;return n=t.top>e.height+this.viewportTopOffset?t.top-e.height:t.bottom>e.height+this.viewportTopOffset+50?this.viewportTopOffset:t.bottom,n}_getPanelPositions(){const t=[(t,e)=>({top:this._getPanelPositionTop(t,e),left:t.left,name:"toolbar_west",config:{withArrow:!1}}),(t,e)=>({top:this._getPanelPositionTop(t,e),left:t.left+t.width-e.width,name:"toolbar_east",config:{withArrow:!1}})];return"ltr"===this.locale.uiLanguageDirection?t:t.reverse()}}class ib extends(Zu(Uu)){ui;constructor(t,e={}){if(!rb(t)&&void 0!==e.initialData)throw new x("editor-create-initial-data",null);super(e),void 0===this.config.get("initialData")&&this.config.set("initialData",function(t){return rb(t)?No(t):t}(t)),this.model.document.createRoot(),rb(t)&&(this.sourceElement=t,function(t,e){if(e.ckeditorInstance)throw new x("editor-source-element-already-used",t);e.ckeditorInstance=t,t.once("destroy",(()=>{delete e.ckeditorInstance}))}(this,t));const n=!this.config.get("toolbar.shouldNotGroupWhenFull"),o=new ob(this.locale,this.editing.view,this.sourceElement,{shouldToolbarGroupWhenFull:n});this.ui=new eb(this,o),$u(this)}destroy(){const t=this.getData();return this.ui.destroy(),super.destroy().then((()=>{this.sourceElement&&this.updateSourceElement(t)}))}static create(t,e={}){return new Promise((n=>{if(rb(t)&&"TEXTAREA"===t.tagName)throw new x("editor-wrong-element",null);const o=new this(t,e);n(o.initPlugins().then((()=>o.ui.init())).then((()=>o.data.init(o.config.get("initialData")))).then((()=>o.fire("ready"))).then((()=>o)))}))}static Context=Kr;static EditorWatchdog=Uk;static ContextWatchdog=Jk}function rb(t){return Bo(t)}const sb=["left","right","center","justify"];function ab(t){return sb.includes(t)}function cb(t,e){return"rtl"==e.contentLanguageDirection?"right"===t:"left"===t}function lb(t){const e=t.map((t=>{let e;return e="string"==typeof t?{name:t}:t,e})).filter((t=>{const e=sb.includes(t.name);return e||E("alignment-config-name-not-recognized",{option:t}),e})),n=e.filter((t=>Boolean(t.className))).length;if(n&&n{const i=o.slice(n+1);if(i.some((t=>t.name==e.name)))throw new x("alignment-config-name-already-defined",{option:e,configuredOptions:t});if(e.className){if(i.some((t=>t.className==e.className)))throw new x("alignment-config-classname-already-defined",{option:e,configuredOptions:t})}})),e}const db="alignment";class hb extends qr{refresh(){const t=this.editor.locale,e=Xi(this.editor.model.document.selection.getSelectedBlocks());this.isEnabled=Boolean(e)&&this._canBeAligned(e),this.isEnabled&&e.hasAttribute("alignment")?this.value=e.getAttribute("alignment"):this.value="rtl"===t.contentLanguageDirection?"right":"left"}execute(t={}){const e=this.editor,n=e.locale,o=e.model,i=o.document,r=t.value;o.change((t=>{const e=Array.from(i.selection.getSelectedBlocks()).filter((t=>this._canBeAligned(t))),o=e[0].getAttribute("alignment");cb(r,n)||o===r||!r?function(t,e){for(const n of t)e.removeAttribute(db,n)}(e,t):function(t,e,n){for(const o of t)e.setAttribute(db,n,o)}(e,t,r)}))}_canBeAligned(t){return this.editor.model.schema.checkAttribute(t,db)}}class ub extends Nr{static get pluginName(){return"AlignmentEditing"}constructor(t){super(t),t.config.define("alignment",{options:sb.map((t=>({name:t})))})}init(){const t=this.editor,e=t.locale,n=t.model.schema,o=lb(t.config.get("alignment.options")).filter((t=>ab(t.name)&&!cb(t.name,e))),i=o.some((t=>!!t.className));n.extend("$block",{allowAttributes:"alignment"}),t.model.schema.setAttributeProperties("alignment",{isFormatting:!0}),i?t.conversion.attributeToAttribute(function(t){const e={};for(const n of t)e[n.name]={key:"class",value:n.className};const n={model:{key:"alignment",values:t.map((t=>t.name))},view:e};return n}(o)):t.conversion.for("downcast").attributeToAttribute(function(t){const e={};for(const{name:n}of t)e[n]={key:"style",value:{"text-align":n}};const n={model:{key:"alignment",values:t.map((t=>t.name))},view:e};return n}(o));const r=function(t){const e=[];for(const{name:n}of t)e.push({view:{key:"style",value:{"text-align":n}},model:{key:"alignment",value:n}});return e}(o);for(const e of r)t.conversion.for("upcast").attributeToAttribute(e);const s=function(t){const e=[];for(const{name:n}of t)e.push({view:{key:"align",value:n},model:{key:"alignment",value:n}});return e}(o);for(const e of s)t.conversion.for("upcast").attributeToAttribute(e);t.commands.add("alignment",new hb(t))}}const mb=new Map([["left",Ju.alignLeft],["right",Ju.alignRight],["center",Ju.alignCenter],["justify",Ju.alignJustify]]);class gb extends Nr{get localizedOptionTitles(){const t=this.editor.t;return{left:t("Align left"),right:t("Align right"),center:t("Align center"),justify:t("Justify")}}static get pluginName(){return"AlignmentUI"}init(){const t=lb(this.editor.config.get("alignment.options"));t.map((t=>t.name)).filter(ab).forEach((t=>this._addButton(t))),this._addToolbarDropdown(t),this._addMenuBarMenu(t)}_addButton(t){this.editor.ui.componentFactory.add(`alignment:${t}`,(e=>this._createButton(e,t)))}_createButton(t,e,n={}){const o=this.editor,i=o.commands.get("alignment"),r=new om(t);return r.set({label:this.localizedOptionTitles[e],icon:mb.get(e),tooltip:!0,isToggleable:!0,...n}),r.bind("isEnabled").to(i),r.bind("isOn").to(i,"value",(t=>t===e)),this.listenTo(r,"execute",(()=>{o.execute("alignment",{value:e}),o.editing.view.focus()})),r}_addToolbarDropdown(t){const e=this.editor;e.ui.componentFactory.add("alignment",(n=>{const o=Ug(n),i="rtl"===n.uiLanguageDirection?"w":"e",r=n.t;$g(o,(()=>t.map((t=>this._createButton(n,t.name,{tooltipPosition:i})))),{enableActiveItemFocusOnDropdownOpen:!0,isVertical:!0,ariaLabel:r("Text alignment toolbar")}),o.buttonView.set({label:r("Text alignment"),tooltip:!0}),o.extendTemplate({attributes:{class:"ck-alignment-dropdown"}});const s="rtl"===n.contentLanguageDirection?mb.get("right"):mb.get("left"),a=e.commands.get("alignment");return o.buttonView.bind("icon").to(a,"value",(t=>mb.get(t)||s)),o.bind("isEnabled").to(a,"isEnabled"),this.listenTo(o,"execute",(()=>{e.editing.view.focus()})),o}))}_addMenuBarMenu(t){const e=this.editor;e.ui.componentFactory.add("menuBar:alignment",(n=>{const o=e.commands.get("alignment"),i=n.t,r=new Pk(n),s=new zk(n);r.bind("isEnabled").to(o),s.set({ariaLabel:i("Text alignment"),role:"menu"}),r.buttonView.set({label:i("Text alignment")});for(const i of t){const t=new dk(n,r),a=new Tm(n);a.extendTemplate({attributes:{"aria-checked":a.bindTemplate.to("isOn")}}),a.delegate("execute").to(r),a.set({label:this.localizedOptionTitles[i.name],icon:mb.get(i.name)}),a.on("execute",(()=>{e.execute("alignment",{value:i.name}),e.editing.view.focus()})),a.bind("isOn").to(o,"value",(t=>t===i.name)),a.bind("isEnabled").to(o,"isEnabled"),t.children.add(a),s.items.add(t)}return r.panelView.children.add(s),r}))}}class pb{model;limit;_isLocked;_size;_batch=null;_changeCallback;_selectionChangeCallback;constructor(t,e=20){this.model=t,this._size=0,this.limit=e,this._isLocked=!1,this._changeCallback=(t,e)=>{e.isLocal&&e.isUndoable&&e!==this._batch&&this._reset(!0)},this._selectionChangeCallback=()=>{this._reset()},this.model.document.on("change",this._changeCallback),this.model.document.selection.on("change:range",this._selectionChangeCallback),this.model.document.selection.on("change:attribute",this._selectionChangeCallback)}get batch(){return this._batch||(this._batch=this.model.createBatch({isTyping:!0})),this._batch}get size(){return this._size}input(t){this._size+=t,this._size>=this.limit&&this._reset(!0)}get isLocked(){return this._isLocked}lock(){this._isLocked=!0}unlock(){this._isLocked=!1}destroy(){this.model.document.off("change",this._changeCallback),this.model.document.selection.off("change:range",this._selectionChangeCallback),this.model.document.selection.off("change:attribute",this._selectionChangeCallback)}_reset(t=!1){this.isLocked&&!t||(this._batch=null,this._size=0)}}class fb extends qr{_buffer;constructor(t,e){super(t),this._buffer=new pb(t.model,e),this._isEnabledBasedOnSelection=!1}get buffer(){return this._buffer}destroy(){super.destroy(),this._buffer.destroy()}execute(t={}){const e=this.editor.model,n=e.document,o=t.text||"",i=o.length;let r=n.selection;if(t.selection?r=t.selection:t.range&&(r=e.createSelection(t.range)),!e.canEditAt(r))return;const s=t.resultRange;e.enqueueChange(this._buffer.batch,(t=>{this._buffer.lock();const a=Array.from(n.selection.getAttributes());e.deleteContent(r),o&&e.insertContent(t.createText(o,a),r),s?t.setSelection(s):r.is("documentSelection")||t.setSelection(r),this._buffer.unlock(),this._buffer.input(i)}))}}const kb=["insertText","insertReplacementText"];class bb extends rc{focusObserver;constructor(t){super(t),this.focusObserver=t.getObserver(Uc),i.isAndroid&&kb.push("insertCompositionText");const e=t.document;e.on("beforeinput",((n,o)=>{if(!this.isEnabled)return;const{data:i,targetRanges:r,inputType:s,domEvent:a}=o;if(!kb.includes(s))return;this.focusObserver.flush();const c=new w(e,"insertText");e.fire(c,new ac(t,a,{text:i,selection:t.createSelection(r)})),c.stop.called&&n.stop()})),e.on("compositionend",((n,{data:o,domEvent:r})=>{this.isEnabled&&!i.isAndroid&&o&&e.fire("insertText",new ac(t,r,{text:o,selection:e.selection}))}),{priority:"lowest"})}observe(){}stopObserving(){}}class wb extends Nr{static get pluginName(){return"Input"}init(){const t=this.editor,e=t.model,n=t.editing.view,o=e.document.selection;n.addObserver(bb);const r=new fb(t,t.config.get("typing.undoStep")||20);t.commands.add("insertText",r),t.commands.add("input",r),this.listenTo(n.document,"insertText",((o,r)=>{n.document.isComposing||r.preventDefault();const{text:s,selection:a,resultRange:c}=r,l=Array.from(a.getRanges()).map((e=>t.editing.mapper.toModelRange(e)));let d=s;if(i.isAndroid){const t=Array.from(l[0].getItems()).reduce(((t,e)=>t+(e.is("$textProxy")?e.data:"")),"");t&&(t.length<=d.length?d.startsWith(t)&&(d=d.substring(t.length),l[0].start=l[0].start.getShiftedBy(t.length)):t.startsWith(d)&&(l[0].start=l[0].start.getShiftedBy(d.length),d=""))}const h={text:d,selection:e.createSelection(l)};c&&(h.resultRange=t.editing.mapper.toModelRange(c)),t.execute("insertText",h),n.scrollToTheSelection()})),i.isAndroid?this.listenTo(n.document,"keydown",((t,i)=>{!o.isCollapsed&&229==i.keyCode&&n.document.isComposing&&_b(e,r)})):this.listenTo(n.document,"compositionstart",(()=>{o.isCollapsed||_b(e,r)}))}}function _b(t,e){if(!e.isEnabled)return;const n=e.buffer;n.lock(),t.enqueueChange(n.batch,(()=>{t.deleteContent(t.document.selection)})),n.unlock()}class Ab extends qr{direction;_buffer;constructor(t,e){super(t),this.direction=e,this._buffer=new pb(t.model,t.config.get("typing.undoStep")),this._isEnabledBasedOnSelection=!1}get buffer(){return this._buffer}execute(t={}){const e=this.editor.model,n=e.document;e.enqueueChange(this._buffer.batch,(o=>{this._buffer.lock();const i=o.createSelection(t.selection||n.selection);if(!e.canEditAt(i))return;const r=t.sequence||1,s=i.isCollapsed;if(i.isCollapsed&&e.modifySelection(i,{direction:this.direction,unit:t.unit,treatEmojiAsSingleUnit:!0}),this._shouldEntireContentBeReplacedWithParagraph(r))return void this._replaceEntireContentWithParagraph(o);if(this._shouldReplaceFirstBlockWithParagraph(i,r))return void this.editor.execute("paragraph",{selection:i});if(i.isCollapsed)return;let a=0;i.getFirstRange().getMinimalFlatRanges().forEach((t=>{a+=ot(t.getWalker({singleCharacters:!0,ignoreElementEnd:!0,shallow:!0}))})),e.deleteContent(i,{doNotResetEntireContent:s,direction:this.direction}),this._buffer.input(a),o.setSelection(i),this._buffer.unlock()}))}_shouldEntireContentBeReplacedWithParagraph(t){if(t>1)return!1;const e=this.editor.model,n=e.document.selection,o=e.schema.getLimitElement(n);if(!(n.isCollapsed&&n.containsEntireContent(o)))return!1;if(!e.schema.checkChild(o,"paragraph"))return!1;const i=o.getChild(0);return!i||!i.is("element","paragraph")}_replaceEntireContentWithParagraph(t){const e=this.editor.model,n=e.document.selection,o=e.schema.getLimitElement(n),i=t.createElement("paragraph");t.remove(t.createRangeIn(o)),t.insert(i,o),t.setSelection(i,0)}_shouldReplaceFirstBlockWithParagraph(t,e){const n=this.editor.model;if(e>1||"backward"!=this.direction)return!1;if(!t.isCollapsed)return!1;const o=t.getFirstPosition(),i=n.schema.getLimitElement(o),r=i.getChild(0);return o.parent==r&&(!!t.containsEntireContent(r)&&(!!n.schema.checkChild(i,"paragraph")&&"paragraph"!=r.name))}}const Cb="word",vb="selection",yb="backward",xb="forward",Eb={deleteContent:{unit:vb,direction:yb},deleteContentBackward:{unit:"codePoint",direction:yb},deleteWordBackward:{unit:Cb,direction:yb},deleteHardLineBackward:{unit:vb,direction:yb},deleteSoftLineBackward:{unit:vb,direction:yb},deleteContentForward:{unit:"character",direction:xb},deleteWordForward:{unit:Cb,direction:xb},deleteHardLineForward:{unit:vb,direction:xb},deleteSoftLineForward:{unit:vb,direction:xb}};class Db extends rc{constructor(t){super(t);const e=t.document;let n=0;e.on("keydown",(()=>{n++})),e.on("keyup",(()=>{n=0})),e.on("beforeinput",((o,r)=>{if(!this.isEnabled)return;const{targetRanges:s,domEvent:a,inputType:c}=r,l=Eb[c];if(!l)return;const d={direction:l.direction,unit:l.unit,sequence:n};d.unit==vb&&(d.selectionToRemove=t.createSelection(s[0])),"deleteContentBackward"===c&&(i.isAndroid&&(d.sequence=1),function(t){if(1!=t.length||t[0].isCollapsed)return!1;const e=t[0].getWalker({direction:"backward",singleCharacters:!0,ignoreElementEnd:!0});let n=0;for(const{nextPosition:t,item:o}of e){if(t.parent.is("$text")){const e=t.parent.data,o=t.offset;if(ir(e,o)||rr(e,o)||ar(e,o))continue;n++}else(o.is("containerElement")||o.is("emptyElement"))&&n++;if(n>1)return!0}return!1}(s)&&(d.unit=vb,d.selectionToRemove=t.createSelection(s)));const h=new na(e,"delete",s[0]);e.fire(h,new ac(t,a,d)),h.stop.called&&o.stop()})),i.isBlink&&function(t){const e=t.view,n=e.document;let o=null,i=!1;function r(t){return t==_i.backspace||t==_i.delete}function s(t){return t==_i.backspace?yb:xb}n.on("keydown",((t,{keyCode:e})=>{o=e,i=!1})),n.on("keyup",((a,{keyCode:c,domEvent:l})=>{const d=n.selection,h=t.isEnabled&&c==o&&r(c)&&!d.isCollapsed&&!i;if(o=null,h){const t=d.getFirstRange(),o=new na(n,"delete",t),i={unit:vb,direction:s(c),selectionToRemove:d};n.fire(o,new ac(e,l,i))}})),n.on("beforeinput",((t,{inputType:e})=>{const n=Eb[e];r(o)&&n&&n.direction==s(o)&&(i=!0)}),{priority:"high"}),n.on("beforeinput",((t,{inputType:e,data:n})=>{o==_i.delete&&"insertText"==e&&""==n&&t.stop()}),{priority:"high"})}(this)}observe(){}stopObserving(){}}class Bb extends Nr{_undoOnBackspace;static get pluginName(){return"Delete"}init(){const t=this.editor,e=t.editing.view,n=e.document,o=t.model.document;e.addObserver(Db),this._undoOnBackspace=!1;const i=new Ab(t,"forward");t.commands.add("deleteForward",i),t.commands.add("forwardDelete",i),t.commands.add("delete",new Ab(t,"backward")),this.listenTo(n,"delete",((o,i)=>{n.isComposing||i.preventDefault();const{direction:r,sequence:s,selectionToRemove:a,unit:c}=i,l="forward"===r?"deleteForward":"delete",d={sequence:s};if("selection"==c){const e=Array.from(a.getRanges()).map((e=>t.editing.mapper.toModelRange(e)));d.selection=t.model.createSelection(e)}else d.unit=c;t.execute(l,d),e.scrollToTheSelection()}),{priority:"low"}),this.editor.plugins.has("UndoEditing")&&(this.listenTo(n,"delete",((e,n)=>{this._undoOnBackspace&&"backward"==n.direction&&1==n.sequence&&"codePoint"==n.unit&&(this._undoOnBackspace=!1,t.execute("undo"),n.preventDefault(),e.stop())}),{context:"$capture"}),this.listenTo(o,"change",(()=>{this._undoOnBackspace=!1})))}requestUndoOnBackspace(){this.editor.plugins.has("UndoEditing")&&(this._undoOnBackspace=!0)}}class Tb extends Nr{static get requires(){return[wb,Bb]}static get pluginName(){return"Typing"}}class Sb extends(J()){model;testCallback;_hasMatch;constructor(t,e){super(),this.model=t,this.testCallback=e,this._hasMatch=!1,this.set("isEnabled",!0),this.on("change:isEnabled",(()=>{this.isEnabled?this._startListening():(this.stopListening(t.document.selection),this.stopListening(t.document))})),this._startListening()}get hasMatch(){return this._hasMatch}_startListening(){const t=this.model.document;this.listenTo(t.selection,"change:range",((e,{directChange:n})=>{n&&(t.selection.isCollapsed?this._evaluateTextBeforeSelection("selection"):this.hasMatch&&(this.fire("unmatched"),this._hasMatch=!1))})),this.listenTo(t,"change:data",((t,e)=>{!e.isUndo&&e.isLocal&&this._evaluateTextBeforeSelection("data",{batch:e})}))}_evaluateTextBeforeSelection(t,e={}){const n=this.model,o=n.document.selection,i=n.createRange(n.createPositionAt(o.focus.parent,0),o.focus),{text:r,range:s}=function(t,e){let n=t.start;return{text:Array.from(t.getWalker({ignoreElementEnd:!1})).reduce(((t,{item:o})=>o.is("$text")||o.is("$textProxy")?t+o.data:(n=e.createPositionAfter(o),"")),""),range:e.createRange(n,t.end)}}(i,n),a=this.testCallback(r);if(!a&&this.hasMatch&&this.fire("unmatched"),this._hasMatch=!!a,a){const n=Object.assign(e,{text:r,range:s});"object"==typeof a&&Object.assign(n,a),this.fire(`matched:${t}`,n)}}}const Ib={copyright:{from:"(c)",to:"©"},registeredTrademark:{from:"(r)",to:"®"},trademark:{from:"(tm)",to:"™"},oneHalf:{from:/(^|[^/a-z0-9])(1\/2)([^/a-z0-9])$/i,to:[null,"½",null]},oneThird:{from:/(^|[^/a-z0-9])(1\/3)([^/a-z0-9])$/i,to:[null,"⅓",null]},twoThirds:{from:/(^|[^/a-z0-9])(2\/3)([^/a-z0-9])$/i,to:[null,"⅔",null]},oneForth:{from:/(^|[^/a-z0-9])(1\/4)([^/a-z0-9])$/i,to:[null,"¼",null]},threeQuarters:{from:/(^|[^/a-z0-9])(3\/4)([^/a-z0-9])$/i,to:[null,"¾",null]},lessThanOrEqual:{from:"<=",to:"≤"},greaterThanOrEqual:{from:">=",to:"≥"},notEqual:{from:"!=",to:"≠"},arrowLeft:{from:"<-",to:"←"},arrowRight:{from:"->",to:"→"},horizontalEllipsis:{from:"...",to:"…"},enDash:{from:/(^| )(--)( )$/,to:[null,"–",null]},emDash:{from:/(^| )(---)( )$/,to:[null,"—",null]},quotesPrimary:{from:Mb('"'),to:[null,"“",null,"”"]},quotesSecondary:{from:Mb("'"),to:[null,"‘",null,"’"]},quotesPrimaryEnGb:{from:Mb("'"),to:[null,"‘",null,"’"]},quotesSecondaryEnGb:{from:Mb('"'),to:[null,"“",null,"”"]},quotesPrimaryPl:{from:Mb('"'),to:[null,"„",null,"”"]},quotesSecondaryPl:{from:Mb("'"),to:[null,"‚",null,"’"]}},Pb={symbols:["copyright","registeredTrademark","trademark"],mathematical:["oneHalf","oneThird","twoThirds","oneForth","threeQuarters","lessThanOrEqual","greaterThanOrEqual","notEqual","arrowLeft","arrowRight"],typography:["horizontalEllipsis","enDash","emDash"],quotes:["quotesPrimary","quotesSecondary"]},zb=["symbols","mathematical","typography","quotes"];function Rb(t){return"string"==typeof t?new RegExp(`(${Kf(t)})$`):t}function Lb(t){return"string"==typeof t?()=>[t]:t instanceof Array?()=>t:t}function Fb(t){return(t.textNode?t.textNode:t.nodeAfter).getAttributes()}function Mb(t){return new RegExp(`(^|\\s)(${t})([^${t}]*)(${t})$`)}function Vb(t,e,n,o){let i,r=null;"function"==typeof o?i=o:(r=t.commands.get(o),i=()=>{t.execute(o)}),t.model.document.on("change:data",((s,a)=>{if(r&&!r.isEnabled||!e.isEnabled)return;const c=Xi(t.model.document.selection.getRanges());if(!c.isCollapsed)return;if(a.isUndo||!a.isLocal)return;const l=Array.from(t.model.document.differ.getChanges()),d=l[0];if(1!=l.length||"insert"!==d.type||"$text"!=d.name||1!=d.length)return;const h=d.position.parent;if(h.is("element","codeBlock"))return;if(h.is("element","listItem")&&"function"!=typeof o&&!["numberedList","bulletedList","todoList"].includes(o))return;if(r&&!0===r.value)return;const u=h.getChild(0),m=t.model.createRangeOn(u);if(!m.containsRange(c)&&!c.end.isEqual(m.end))return;const g=n.exec(u.data.substr(0,c.end.offset));g&&t.model.enqueueChange((e=>{const n=e.createPositionAt(h,0),o=e.createPositionAt(h,g[0].length),r=new Il(n,o);if(!1!==i({match:g})){e.remove(r);const n=t.model.document.selection.getFirstRange(),o=e.createRangeIn(h);!h.isEmpty||o.isEqual(n)||o.containsRange(n,!0)||e.remove(h)}r.detach(),t.model.enqueueChange((()=>{t.plugins.get("Delete").requestUndoOnBackspace()}))}))}))}function Ob(t,e,n,o){let i,r;n instanceof RegExp?i=n:r=n,r=r||(t=>{let e;const n=[],o=[];for(;null!==(e=i.exec(t))&&!(e&&e.length<4);){let{index:t,1:i,2:r,3:s}=e;const a=i+r+s;t+=e[0].length-a.length;const c=[t,t+i.length],l=[t+i.length+r.length,t+i.length+r.length+s.length];n.push(c),n.push(l),o.push([t+i.length,t+i.length+r.length])}return{remove:n,format:o}}),t.model.document.on("change:data",((n,i)=>{if(i.isUndo||!i.isLocal||!e.isEnabled)return;const s=t.model,a=s.document.selection;if(!a.isCollapsed)return;const c=Array.from(s.document.differ.getChanges()),l=c[0];if(1!=c.length||"insert"!==l.type||"$text"!=l.name||1!=l.length)return;const d=a.focus,h=d.parent,{text:u,range:m}=function(t,e){let n=t.start;const o=Array.from(t.getItems()).reduce(((t,o)=>!o.is("$text")&&!o.is("$textProxy")||o.getAttribute("code")?(n=e.createPositionAfter(o),""):t+o.data),"");return{text:o,range:e.createRange(n,t.end)}}(s.createRange(s.createPositionAt(h,0),d),s),g=r(u),p=Nb(m.start,g.format,s),f=Nb(m.start,g.remove,s);p.length&&f.length&&s.enqueueChange((e=>{if(!1!==o(e,p)){for(const t of f.reverse())e.remove(t);s.enqueueChange((()=>{t.plugins.get("Delete").requestUndoOnBackspace()}))}}))}))}function Nb(t,e,n){return e.filter((t=>void 0!==t[0]&&void 0!==t[1])).map((e=>n.createRange(t.getShiftedBy(e[0]),t.getShiftedBy(e[1]))))}function Hb(t,e){return(n,o)=>{if(!t.commands.get(e).isEnabled)return!1;const i=t.model.schema.getValidRanges(o,e);for(const t of i)n.setAttribute(e,!0,t);n.removeSelectionAttribute(e)}}class qb extends qr{attributeKey;constructor(t,e){super(t),this.attributeKey=e}refresh(){const t=this.editor.model,e=t.document;this.value=this._getValueFromFirstAllowedNode(),this.isEnabled=t.schema.checkAttributeInSelection(e.selection,this.attributeKey)}execute(t={}){const e=this.editor.model,n=e.document.selection,o=void 0===t.forceValue?!this.value:t.forceValue;e.change((t=>{if(n.isCollapsed)o?t.setSelectionAttribute(this.attributeKey,!0):t.removeSelectionAttribute(this.attributeKey);else{const i=e.schema.getValidRanges(n.getRanges(),this.attributeKey);for(const e of i)o?t.setAttribute(this.attributeKey,o,e):t.removeAttribute(this.attributeKey,e)}}))}_getValueFromFirstAllowedNode(){const t=this.editor.model,e=t.schema,n=t.document.selection;if(n.isCollapsed)return n.hasAttribute(this.attributeKey);for(const t of n.getRanges())for(const n of t.getItems())if(e.checkAttribute(n,this.attributeKey))return n.hasAttribute(this.attributeKey);return!1}}const jb="bold";class Wb extends Nr{static get pluginName(){return"BoldEditing"}init(){const t=this.editor,e=this.editor.t;t.model.schema.extend("$text",{allowAttributes:jb}),t.model.schema.setAttributeProperties(jb,{isFormatting:!0,copyOnEnter:!0}),t.conversion.attributeToElement({model:jb,view:"strong",upcastAlso:["b",t=>{const e=t.getStyle("font-weight");return e&&("bold"==e||Number(e)>=600)?{name:!0,styles:["font-weight"]}:null}]}),t.commands.add(jb,new qb(t,jb)),t.keystrokes.set("CTRL+B",jb),t.accessibility.addKeystrokeInfos({keystrokes:[{label:e("Bold text"),keystroke:"CTRL+B"}]})}}function Gb({editor:t,commandName:e,plugin:n,icon:o,label:i,keystroke:r}){return s=>{const a=t.commands.get(e),c=new s(t.locale);return c.set({label:i,icon:o,keystroke:r,isToggleable:!0}),c.bind("isEnabled").to(a,"isEnabled"),n.listenTo(c,"execute",(()=>{t.execute(e),t.editing.view.focus()})),c}}const Kb="bold";class Ub extends Nr{static get pluginName(){return"BoldUI"}init(){const t=this.editor,e=t.locale.t,n=t.commands.get(Kb),o=Gb({editor:t,commandName:Kb,plugin:this,icon:Ju.bold,label:e("Bold"),keystroke:"CTRL+B"});t.ui.componentFactory.add(Kb,(()=>{const t=o(om);return t.set({tooltip:!0}),t.bind("isOn").to(n,"value"),t})),t.ui.componentFactory.add("menuBar:"+Kb,(()=>o(Tm)))}}var $b=n(4199),Zb={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Pr()($b.A,Zb);$b.A.locals;const Jb="italic";class Yb extends Nr{static get pluginName(){return"ItalicEditing"}init(){const t=this.editor,e=this.editor.t;t.model.schema.extend("$text",{allowAttributes:Jb}),t.model.schema.setAttributeProperties(Jb,{isFormatting:!0,copyOnEnter:!0}),t.conversion.attributeToElement({model:Jb,view:"i",upcastAlso:["em",{styles:{"font-style":"italic"}}]}),t.commands.add(Jb,new qb(t,Jb)),t.keystrokes.set("CTRL+I",Jb),t.accessibility.addKeystrokeInfos({keystrokes:[{label:e("Italic text"),keystroke:"CTRL+I"}]})}}const Qb="italic";class Xb extends Nr{static get pluginName(){return"ItalicUI"}init(){const t=this.editor,e=t.commands.get(Qb),n=t.locale.t,o=Gb({editor:t,commandName:Qb,plugin:this,icon:' ',keystroke:"CTRL+I",label:n("Italic")});t.ui.componentFactory.add(Qb,(()=>{const t=o(om);return t.set({tooltip:!0}),t.bind("isOn").to(e,"value"),t})),t.ui.componentFactory.add("menuBar:"+Qb,(()=>o(Tm)))}}const tw="strikethrough";class ew extends Nr{static get pluginName(){return"StrikethroughEditing"}init(){const t=this.editor,e=this.editor.t;t.model.schema.extend("$text",{allowAttributes:tw}),t.model.schema.setAttributeProperties(tw,{isFormatting:!0,copyOnEnter:!0}),t.conversion.attributeToElement({model:tw,view:"s",upcastAlso:["del","strike",{styles:{"text-decoration":"line-through"}}]}),t.commands.add(tw,new qb(t,tw)),t.keystrokes.set("CTRL+SHIFT+X","strikethrough"),t.accessibility.addKeystrokeInfos({keystrokes:[{label:e("Strikethrough text"),keystroke:"CTRL+SHIFT+X"}]})}}const nw="strikethrough";class ow extends Nr{static get pluginName(){return"StrikethroughUI"}init(){const t=this.editor,e=t.locale.t,n=Gb({editor:t,commandName:nw,plugin:this,icon:' ',keystroke:"CTRL+SHIFT+X",label:e("Strikethrough")});t.ui.componentFactory.add(nw,(()=>{const e=n(om),o=t.commands.get(nw);return e.set({tooltip:!0}),e.bind("isOn").to(o,"value"),e})),t.ui.componentFactory.add("menuBar:"+nw,(()=>n(Tm)))}}const iw="subscript";class rw extends Nr{static get pluginName(){return"SubscriptEditing"}init(){const t=this.editor;t.model.schema.extend("$text",{allowAttributes:iw}),t.model.schema.setAttributeProperties(iw,{isFormatting:!0,copyOnEnter:!0}),t.conversion.attributeToElement({model:iw,view:"sub",upcastAlso:[{styles:{"vertical-align":"sub"}}]}),t.commands.add(iw,new qb(t,iw))}}const sw="subscript";class aw extends Nr{static get pluginName(){return"SubscriptUI"}init(){const t=this.editor,e=t.locale.t,n=Gb({editor:t,commandName:sw,plugin:this,icon:' ',label:e("Subscript")});t.ui.componentFactory.add(sw,(()=>{const e=n(om),o=t.commands.get(sw);return e.set({tooltip:!0}),e.bind("isOn").to(o,"value"),e})),t.ui.componentFactory.add("menuBar:"+sw,(()=>n(Tm)))}}const cw="superscript";class lw extends Nr{static get pluginName(){return"SuperscriptEditing"}init(){const t=this.editor;t.model.schema.extend("$text",{allowAttributes:cw}),t.model.schema.setAttributeProperties(cw,{isFormatting:!0,copyOnEnter:!0}),t.conversion.attributeToElement({model:cw,view:"sup",upcastAlso:[{styles:{"vertical-align":"super"}}]}),t.commands.add(cw,new qb(t,cw))}}const dw="superscript";class hw extends Nr{static get pluginName(){return"SuperscriptUI"}init(){const t=this.editor,e=t.locale.t,n=Gb({editor:t,commandName:dw,plugin:this,icon:' ',label:e("Superscript")});t.ui.componentFactory.add(dw,(()=>{const e=n(om),o=t.commands.get(dw);return e.set({tooltip:!0}),e.bind("isOn").to(o,"value"),e})),t.ui.componentFactory.add("menuBar:"+dw,(()=>n(Tm)))}}const uw="underline";class mw extends Nr{static get pluginName(){return"UnderlineEditing"}init(){const t=this.editor,e=this.editor.t;t.model.schema.extend("$text",{allowAttributes:uw}),t.model.schema.setAttributeProperties(uw,{isFormatting:!0,copyOnEnter:!0}),t.conversion.attributeToElement({model:uw,view:"u",upcastAlso:{styles:{"text-decoration":"underline"}}}),t.commands.add(uw,new qb(t,uw)),t.keystrokes.set("CTRL+U","underline"),t.accessibility.addKeystrokeInfos({keystrokes:[{label:e("Underline text"),keystroke:"CTRL+U"}]})}}const gw="underline";class pw extends Nr{static get pluginName(){return"UnderlineUI"}init(){const t=this.editor,e=t.commands.get(gw),n=t.locale.t,o=Gb({editor:t,commandName:gw,plugin:this,icon:' ',label:n("Underline"),keystroke:"CTRL+U"});t.ui.componentFactory.add(gw,(()=>{const t=o(om);return t.set({tooltip:!0}),t.bind("isOn").to(e,"value"),t})),t.ui.componentFactory.add("menuBar:"+gw,(()=>o(Tm)))}}function*fw(t,e){for(const n of e)n&&t.getAttributeProperties(n[0]).copyOnEnter&&(yield n)}class kw extends qr{execute(){this.editor.model.change((t=>{this.enterBlock(t),this.fire("afterExecute",{writer:t})}))}enterBlock(t){const e=this.editor.model,n=e.document.selection,o=e.schema,i=n.isCollapsed,r=n.getFirstRange(),s=r.start.parent,a=r.end.parent;if(o.isLimit(s)||o.isLimit(a))return i||s!=a||e.deleteContent(n),!1;if(i){const e=fw(t.model.schema,n.getAttributes());return bw(t,r.start),t.setSelectionAttribute(e),!0}{const o=!(r.start.isAtStart&&r.end.isAtEnd),i=s==a;if(e.deleteContent(n,{leaveUnmerged:o}),o){if(i)return bw(t,n.focus),!0;t.setSelection(a,0)}}return!1}}function bw(t,e){t.split(e),t.setSelection(e.parent.nextSibling,0)}const ww={insertParagraph:{isSoft:!1},insertLineBreak:{isSoft:!0}};class _w extends rc{constructor(t){super(t);const e=this.document;let n=!1;e.on("keydown",((t,e)=>{n=e.shiftKey})),e.on("beforeinput",((o,r)=>{if(!this.isEnabled)return;let s=r.inputType;i.isSafari&&n&&"insertParagraph"==s&&(s="insertLineBreak");const a=r.domEvent,c=ww[s];if(!c)return;const l=new na(e,"enter",r.targetRanges[0]);e.fire(l,new ac(t,a,{isSoft:c.isSoft})),l.stop.called&&o.stop()}))}observe(){}stopObserving(){}}class Aw extends Nr{static get pluginName(){return"Enter"}init(){const t=this.editor,e=t.editing.view,n=e.document,o=this.editor.t;e.addObserver(_w),t.commands.add("enter",new kw(t)),this.listenTo(n,"enter",((o,i)=>{n.isComposing||i.preventDefault(),i.isSoft||(t.execute("enter"),e.scrollToTheSelection())}),{priority:"low"}),t.accessibility.addKeystrokeInfos({keystrokes:[{label:o("Insert a hard break (a new paragraph)"),keystroke:"Enter"}]})}}class Cw extends qr{execute(){const t=this.editor.model,e=t.document;t.change((n=>{!function(t,e,n){const o=n.isCollapsed,i=n.getFirstRange(),r=i.start.parent,s=i.end.parent,a=r==s;if(o){const o=fw(t.schema,n.getAttributes());vw(t,e,i.end),e.removeSelectionAttribute(n.getAttributeKeys()),e.setSelectionAttribute(o)}else{const o=!(i.start.isAtStart&&i.end.isAtEnd);t.deleteContent(n,{leaveUnmerged:o}),a?vw(t,e,n.focus):o&&e.setSelection(s,0)}}(t,n,e.selection),this.fire("afterExecute",{writer:n})}))}refresh(){const t=this.editor.model,e=t.document;this.isEnabled=function(t,e){if(e.rangeCount>1)return!1;const n=e.anchor;if(!n||!t.checkChild(n,"softBreak"))return!1;const o=e.getFirstRange(),i=o.start.parent,r=o.end.parent;if((yw(i,t)||yw(r,t))&&i!==r)return!1;return!0}(t.schema,e.selection)}}function vw(t,e,n){const o=e.createElement("softBreak");t.insertContent(o,n),e.setSelection(o,"after")}function yw(t,e){return!t.is("rootElement")&&(e.isLimit(t)||yw(t.parent,e))}class xw extends Nr{static get pluginName(){return"ShiftEnter"}init(){const t=this.editor,e=t.model.schema,n=t.conversion,o=t.editing.view,i=o.document,r=this.editor.t;e.register("softBreak",{allowWhere:"$text",isInline:!0}),n.for("upcast").elementToElement({model:"softBreak",view:"br"}),n.for("downcast").elementToElement({model:"softBreak",view:(t,{writer:e})=>e.createEmptyElement("br")}),o.addObserver(_w),t.commands.add("shiftEnter",new Cw(t)),this.listenTo(i,"enter",((e,n)=>{i.isComposing||n.preventDefault(),n.isSoft&&(t.execute("shiftEnter"),o.scrollToTheSelection())}),{priority:"low"}),t.accessibility.addKeystrokeInfos({keystrokes:[{label:r("Insert a soft break (a <br>
element)"),keystroke:"Shift+Enter"}]})}}class Ew extends qr{refresh(){this.value=this._getValue(),this.isEnabled=this._checkEnabled()}execute(t={}){const e=this.editor.model,n=e.schema,o=e.document.selection,i=Array.from(o.getSelectedBlocks()),r=void 0===t.forceValue?!this.value:t.forceValue;e.change((t=>{if(r){const e=i.filter((t=>Dw(t)||Tw(n,t)));this._applyQuote(t,e)}else this._removeQuote(t,i.filter(Dw))}))}_getValue(){const t=Xi(this.editor.model.document.selection.getSelectedBlocks());return!(!t||!Dw(t))}_checkEnabled(){if(this.value)return!0;const t=this.editor.model.document.selection,e=this.editor.model.schema,n=Xi(t.getSelectedBlocks());return!!n&&Tw(e,n)}_removeQuote(t,e){Bw(t,e).reverse().forEach((e=>{if(e.start.isAtStart&&e.end.isAtEnd)return void t.unwrap(e.start.parent);if(e.start.isAtStart){const n=t.createPositionBefore(e.start.parent);return void t.move(e,n)}e.end.isAtEnd||t.split(e.end);const n=t.createPositionAfter(e.end.parent);t.move(e,n)}))}_applyQuote(t,e){const n=[];Bw(t,e).reverse().forEach((e=>{let o=Dw(e.start);o||(o=t.createElement("blockQuote"),t.wrap(e,o)),n.push(o)})),n.reverse().reduce(((e,n)=>e.nextSibling==n?(t.merge(t.createPositionAfter(e)),e):n))}}function Dw(t){return"blockQuote"==t.parent.name?t.parent:null}function Bw(t,e){let n,o=0;const i=[];for(;o{const o=t.model.document.differ.getChanges();for(const t of o)if("insert"==t.type){const o=t.position.nodeAfter;if(!o)continue;if(o.is("element","blockQuote")&&o.isEmpty)return n.remove(o),!0;if(o.is("element","blockQuote")&&!e.checkChild(t.position,o))return n.unwrap(o),!0;if(o.is("element")){const t=n.createRangeIn(o);for(const o of t.getItems())if(o.is("element","blockQuote")&&!e.checkChild(n.createPositionBefore(o),o))return n.unwrap(o),!0}}else if("remove"==t.type){const e=t.position.parent;if(e.is("element","blockQuote")&&e.isEmpty)return n.remove(e),!0}return!1}));const n=this.editor.editing.view.document,o=t.model.document.selection,i=t.commands.get("blockQuote");this.listenTo(n,"enter",((e,n)=>{if(!o.isCollapsed||!i.value)return;o.getLastPosition().parent.isEmpty&&(t.execute("blockQuote"),t.editing.view.scrollToTheSelection(),n.preventDefault(),e.stop())}),{context:"blockquote"}),this.listenTo(n,"delete",((e,n)=>{if("backward"!=n.direction||!o.isCollapsed||!i.value)return;const r=o.getLastPosition().parent;r.isEmpty&&!r.previousSibling&&(t.execute("blockQuote"),t.editing.view.scrollToTheSelection(),n.preventDefault(),e.stop())}),{context:"blockquote"})}}var Iw=n(8708),Pw={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Pr()(Iw.A,Pw);Iw.A.locals;class zw extends Nr{static get pluginName(){return"BlockQuoteUI"}init(){const t=this.editor,e=t.commands.get("blockQuote");t.ui.componentFactory.add("blockQuote",(()=>{const t=this._createButton(om);return t.set({tooltip:!0}),t.bind("isOn").to(e,"value"),t})),t.ui.componentFactory.add("menuBar:blockQuote",(()=>this._createButton(Tm)))}_createButton(t){const e=this.editor,n=e.locale,o=e.commands.get("blockQuote"),i=new t(e.locale),r=n.t;return i.set({label:r("Block quote"),icon:Ju.quote,isToggleable:!0}),i.bind("isEnabled").to(o,"isEnabled"),this.listenTo(i,"execute",(()=>{e.execute("blockQuote"),e.editing.view.focus()})),i}}const Rw={autoRefresh:!0},Lw=36e5;class Fw extends(J()){_refresh;_options;_tokenRefreshTimeout;constructor(t,e={}){if(super(),!t)throw new x("token-missing-token-url",this);e.initValue&&this._validateTokenValue(e.initValue),this.set("value",e.initValue),this._refresh="function"==typeof t?t:()=>{return e=t,new Promise(((t,n)=>{const o=new XMLHttpRequest;o.open("GET",e),o.addEventListener("load",(()=>{const e=o.status,i=o.response;return e<200||e>299?n(new x("token-cannot-download-new-token",null)):t(i)})),o.addEventListener("error",(()=>n(new Error("Network Error")))),o.addEventListener("abort",(()=>n(new Error("Abort")))),o.send()}));var e},this._options={...Rw,...e}}init(){return new Promise(((t,e)=>{this.value?(this._options.autoRefresh&&this._registerRefreshTokenTimeout(),t(this)):this.refreshToken().then(t).catch(e)}))}refreshToken(){return this._refresh().then((t=>(this._validateTokenValue(t),this.set("value",t),this._options.autoRefresh&&this._registerRefreshTokenTimeout(),this)))}destroy(){clearTimeout(this._tokenRefreshTimeout)}_validateTokenValue(t){const e="string"==typeof t,n=!/^".*"$/.test(t),o=e&&3===t.split(".").length;if(!n||!o)throw new x("token-not-in-jwt-format",this)}_registerRefreshTokenTimeout(){const t=this._getTokenRefreshTimeoutTime();clearTimeout(this._tokenRefreshTimeout),this._tokenRefreshTimeout=setTimeout((()=>{this.refreshToken()}),t)}_getTokenRefreshTimeoutTime(){try{const[,t]=this.value.split("."),{exp:e}=JSON.parse(atob(t));if(!e)return Lw;return Math.floor((1e3*e-Date.now())/2)}catch(t){return Lw}}static create(t,e={}){return new Fw(t,e).init()}}const Mw=/^data:(\S*?);base64,/;class Vw extends(L()){file;xhr;_token;_apiAddress;constructor(t,e,n){if(super(),!t)throw new x("fileuploader-missing-file",null);if(!e)throw new x("fileuploader-missing-token",null);if(!n)throw new x("fileuploader-missing-api-address",null);this.file=function(t){if("string"!=typeof t)return!1;const e=t.match(Mw);return!(!e||!e.length)}(t)?function(t,e=512){try{const n=t.match(Mw)[1],o=atob(t.replace(Mw,"")),i=[];for(let t=0;tt(n))),this}onError(t){return this.once("error",((e,n)=>t(n))),this}abort(){this.xhr.abort()}send(){return this._prepareRequest(),this._attachXHRListeners(),this._sendRequest()}_prepareRequest(){const t=new XMLHttpRequest;t.open("POST",this._apiAddress),t.setRequestHeader("Authorization",this._token.value),t.responseType="json",this.xhr=t}_attachXHRListeners(){const t=this.xhr,e=t=>()=>this.fire("error",t);t.addEventListener("error",e("Network Error")),t.addEventListener("abort",e("Abort")),t.upload&&t.upload.addEventListener("progress",(t=>{t.lengthComputable&&this.fire("progress",{total:t.total,uploaded:t.loaded})})),t.addEventListener("load",(()=>{const e=t.status,n=t.response;if(e<200||e>299)return this.fire("error",n.message||n.error)}))}_sendRequest(){const t=new FormData,e=this.xhr;return t.append("file",this.file),new Promise(((n,o)=>{e.addEventListener("load",(()=>{const t=e.status,i=e.response;return t<200||t>299?i.message?o(new x("fileuploader-uploading-data-failed",this,{message:i.message})):o(i.error):n(i)})),e.addEventListener("error",(()=>o(new Error("Network Error")))),e.addEventListener("abort",(()=>o(new Error("Abort")))),e.send(t)}))}}class Ow{_token;_apiAddress;constructor(t,e){if(!t)throw new x("uploadgateway-missing-token",null);if(!e)throw new x("uploadgateway-missing-api-address",null);this._token=t,this._apiAddress=e}upload(t){return new Vw(t,this._token,this._apiAddress)}}class Nw extends Ur{static get pluginName(){return"CloudServicesCore"}createToken(t,e){return new Fw(t,e)}createUploadGateway(t,e){return new Ow(t,e)}}class Hw extends cc{domEventType=["paste","copy","cut","drop","dragover","dragstart","dragend","dragenter","dragleave"];constructor(t){super(t);const e=this.document;function n(t){return(n,o)=>{o.preventDefault();const i=o.dropRange?[o.dropRange]:null,r=new w(e,t);e.fire(r,{dataTransfer:o.dataTransfer,method:n.name,targetRanges:i,target:o.target,domEvent:o.domEvent}),r.stop.called&&o.stopPropagation()}}this.listenTo(e,"paste",n("clipboardInput"),{priority:"low"}),this.listenTo(e,"drop",n("clipboardInput"),{priority:"low"}),this.listenTo(e,"dragover",n("dragging"),{priority:"low"})}onDomEvent(t){const e="clipboardData"in t?t.clipboardData:t.dataTransfer,n="drop"==t.type||"paste"==t.type,o={dataTransfer:new Jc(e,{cacheFiles:n})};"drop"!=t.type&&"dragover"!=t.type||(o.dropRange=function(t,e){const n=e.target.ownerDocument,o=e.clientX,i=e.clientY;let r;n.caretRangeFromPoint&&n.caretRangeFromPoint(o,i)?r=n.caretRangeFromPoint(o,i):e.rangeParent&&(r=n.createRange(),r.setStart(e.rangeParent,e.rangeOffset),r.collapse(!0));if(r)return t.domConverter.domRangeToView(r);return null}(this.view,t)),this.fire(t.type,t,o)}}const qw=["figcaption","li"],jw=["ol","ul"];function Ww(t){if(t.is("$text")||t.is("$textProxy"))return t.data;if(t.is("element","img")&&t.hasAttribute("alt"))return t.getAttribute("alt");if(t.is("element","br"))return"\n";let e="",n=null;for(const o of t.getChildren())e+=Gw(o,n)+Ww(o),n=o;return e}function Gw(t,e){return e?t.is("element","li")&&!t.isEmpty&&t.getChild(0).is("containerElement")||jw.includes(t.name)&&jw.includes(e.name)?"\n\n":t.is("containerElement")||e.is("containerElement")?qw.includes(t.name)||qw.includes(e.name)?"\n":"\n\n":"":""}const Kw=function(t,e){return t&&Ti(t,e,mn)};const Uw=function(t,e,n,o){var i=n.length,r=i,s=!o;if(null==t)return!r;for(t=Object(t);i--;){var a=n[i];if(s&&a[2]?a[1]!==t[a[0]]:!(a[0]in t))return!1}for(;++it.model.getSelectedContent(t.model.document.selection))){return this.editor.model.change((o=>{const i=o.model.document.selection;o.setSelection(e);const r=this._insertFakeMarkersIntoSelection(o,o.model.document.selection,t),s=n(o),a=this._removeFakeMarkersInsideElement(o,s);for(const[t,e]of Object.entries(r)){a[t]||=o.createRangeIn(s);for(const t of e)o.remove(t)}s.markers.clear();for(const[t,e]of Object.entries(a))s.markers.set(t,e);return o.setSelection(i),s}))}_pasteMarkersIntoTransformedElement(t,e){const n=this._getPasteMarkersFromRangeMap(t);return this.editor.model.change((t=>{const o=this._insertFakeMarkersElements(t,n),i=e(t),r=this._removeFakeMarkersInsideElement(t,i);for(const e of Object.values(o).flat())t.remove(e);for(const[e,n]of Object.entries(r))t.model.markers.has(e)||t.addMarker(e,{usingOperation:!0,affectsData:!0,range:n});return i}))}_pasteFragmentWithMarkers(t){const e=this._getPasteMarkersFromRangeMap(t.markers);t.markers.clear();for(const n of e)t.markers.set(n.name,n.range);return this.editor.model.insertContent(t)}_forceMarkersCopy(t,e,n={allowedActions:"all",copyPartiallySelected:!0,duplicateOnPaste:!0}){const o=this._markersToCopy.get(t);this._markersToCopy.set(t,n),e(),o?this._markersToCopy.set(t,o):this._markersToCopy.delete(t)}_isMarkerCopyable(t,e){const n=this._getMarkerClipboardConfig(t);if(!n)return!1;if(!e)return!0;const{allowedActions:o}=n;return"all"===o||o.includes(e)}_hasMarkerConfiguration(t){return!!this._getMarkerClipboardConfig(t)}_getMarkerClipboardConfig(t){const[e]=t.split(":");return this._markersToCopy.get(e)||null}_insertFakeMarkersIntoSelection(t,e,n){const o=this._getCopyableMarkersFromSelection(t,e,n);return this._insertFakeMarkersElements(t,o)}_getCopyableMarkersFromSelection(t,e,n){const o=Array.from(e.getRanges()),i=new Set(o.flatMap((e=>Array.from(t.model.markers.getMarkersIntersectingRange(e)))));return Array.from(i).filter((t=>{if(!this._isMarkerCopyable(t.name,n))return!1;const{copyPartiallySelected:e}=this._getMarkerClipboardConfig(t.name);if(!e){const e=t.getRange();return o.some((t=>t.containsRange(e,!0)))}return!0})).map((t=>({name:"dragstart"===n?this._getUniqueMarkerName(t.name):t.name,range:t.getRange()})))}_getPasteMarkersFromRangeMap(t,e=null){const{model:n}=this.editor;return(t instanceof Map?Array.from(t.entries()):Object.entries(t)).flatMap((([t,o])=>{if(!this._hasMarkerConfiguration(t))return[{name:t,range:o}];if(this._isMarkerCopyable(t,e)){const e=this._getMarkerClipboardConfig(t),i=n.markers.has(t)&&"$graveyard"===n.markers.get(t).getRange().root.rootName;return(e.duplicateOnPaste||i)&&(t=this._getUniqueMarkerName(t)),[{name:t,range:o}]}return[]}))}_insertFakeMarkersElements(t,e){const n={},o=e.flatMap((t=>{const{start:e,end:n}=t.range;return[{position:e,marker:t,type:"start"},{position:n,marker:t,type:"end"}]})).sort((({position:t},{position:e})=>t.isBefore(e)?1:-1));for(const{position:e,marker:i,type:r}of o){const o=t.createElement("$marker",{"data-name":i.name,"data-type":r});n[i.name]||(n[i.name]=[]),n[i.name].push(o),t.insert(o,e)}return n}_removeFakeMarkersInsideElement(t,e){const n=this._getAllFakeMarkersFromElement(t,e).reduce(((e,n)=>{const o=n.markerElement&&t.createPositionBefore(n.markerElement);let i=e[n.name],r=!1;if(i&&i.start&&i.end){this._getMarkerClipboardConfig(n.name).duplicateOnPaste?e[this._getUniqueMarkerName(n.name)]=e[n.name]:r=!0,i=null}return r||(e[n.name]={...i,[n.type]:o}),n.markerElement&&t.remove(n.markerElement),e}),{});return s_(n,(n=>new kl(n.start||t.createPositionFromPath(e,[0]),n.end||t.createPositionAt(e,"end"))))}_getAllFakeMarkersFromElement(t,e){const n=Array.from(t.createRangeIn(e)).flatMap((({item:t})=>{if(!t.is("element","$marker"))return[];const e=t.getAttribute("data-name"),n=t.getAttribute("data-type");return[{markerElement:t,name:e,type:n}]})),o=[],i=[];for(const t of n){if("end"===t.type){n.some((e=>e.name===t.name&&"start"===e.type))||o.push({markerElement:null,name:t.name,type:"start"})}if("start"===t.type){n.some((e=>e.name===t.name&&"end"===e.type))||i.unshift({markerElement:null,name:t.name,type:"end"})}}return[...o,...n,...i]}_getUniqueMarkerName(t){const e=t.split(":"),n=A().substring(1,6);return 3===e.length?`${e.slice(0,2).join(":")}:${n}`:`${e.join(":")}:${n}`}}class c_ extends Nr{static get pluginName(){return"ClipboardPipeline"}static get requires(){return[a_]}init(){this.editor.editing.view.addObserver(Hw),this._setupPasteDrop(),this._setupCopyCut()}_fireOutputTransformationEvent(t,e,n){const o=this.editor.plugins.get("ClipboardMarkersUtils");this.editor.model.enqueueChange({isUndoable:"cut"===n},(()=>{const i=o._copySelectedFragmentWithMarkers(n,e);this.fire("outputTransformation",{dataTransfer:t,content:i,method:n})}))}_setupPasteDrop(){const t=this.editor,e=t.model,n=t.editing.view,o=n.document,i=this.editor.plugins.get("ClipboardMarkersUtils");this.listenTo(o,"clipboardInput",((e,n)=>{"paste"!=n.method||t.model.canEditAt(t.model.document.selection)||e.stop()}),{priority:"highest"}),this.listenTo(o,"clipboardInput",((t,e)=>{const o=e.dataTransfer;let i;if(e.content)i=e.content;else{let t="";o.getData("text/html")?t=function(t){return t.replace(/(\s+)<\/span>/g,((t,e)=>1==e.length?" ":e)).replace(//g,"")}(o.getData("text/html")):o.getData("text/plain")&&(((r=(r=o.getData("text/plain")).replace(/&/g,"&").replace(//g,">").replace(/\r?\n\r?\n/g,"
").replace(/\r?\n/g," ").replace(/\t/g," ").replace(/^\s/," ").replace(/\s$/," ").replace(/\s\s/g," ")).includes("
")||r.includes(" "))&&(r=`
${r}
`),t=r),i=this.editor.data.htmlProcessor.toView(t)}var r;const s=new w(this,"inputTransformation");this.fire(s,{content:i,dataTransfer:o,targetRanges:e.targetRanges,method:e.method}),s.stop.called&&t.stop(),n.scrollToTheSelection()}),{priority:"low"}),this.listenTo(this,"inputTransformation",((t,n)=>{if(n.content.isEmpty)return;const o=this.editor.data.toModel(n.content,"$clipboardHolder");0!=o.childCount&&(t.stop(),e.change((()=>{this.fire("contentInsertion",{content:o,method:n.method,dataTransfer:n.dataTransfer,targetRanges:n.targetRanges})})))}),{priority:"low"}),this.listenTo(this,"contentInsertion",((t,e)=>{e.resultRange=i._pasteFragmentWithMarkers(e.content)}),{priority:"low"})}_setupCopyCut(){const t=this.editor,e=t.model.document,n=t.editing.view.document,o=(t,n)=>{const o=n.dataTransfer;n.preventDefault(),this._fireOutputTransformationEvent(o,e.selection,t.name)};this.listenTo(n,"copy",o,{priority:"low"}),this.listenTo(n,"cut",((e,n)=>{t.model.canEditAt(t.model.document.selection)?o(e,n):n.preventDefault()}),{priority:"low"}),this.listenTo(this,"outputTransformation",((e,o)=>{const i=t.data.toView(o.content);n.fire("clipboardOutput",{dataTransfer:o.dataTransfer,content:i,method:o.method})}),{priority:"low"}),this.listenTo(n,"clipboardOutput",((n,o)=>{o.content.isEmpty||(o.dataTransfer.setData("text/html",this.editor.data.htmlProcessor.toData(o.content)),o.dataTransfer.setData("text/plain",Ww(o.content))),"cut"==o.method&&t.model.deleteContent(e.selection)}),{priority:"low"})}}class l_ extends(L()){_stack=[];add(t,e){const n=this._stack,o=n[0];this._insertDescriptor(t);const i=n[0];o===i||d_(o,i)||this.fire("change:top",{oldDescriptor:o,newDescriptor:i,writer:e})}remove(t,e){const n=this._stack,o=n[0];this._removeDescriptor(t);const i=n[0];o===i||d_(o,i)||this.fire("change:top",{oldDescriptor:o,newDescriptor:i,writer:e})}_insertDescriptor(t){const e=this._stack,n=e.findIndex((e=>e.id===t.id));if(d_(t,e[n]))return;n>-1&&e.splice(n,1);let o=0;for(;e[o]&&h_(e[o],t);)o++;e.splice(o,0,t)}_removeDescriptor(t){const e=this._stack,n=e.findIndex((e=>e.id===t));n>-1&&e.splice(n,1)}}function d_(t,e){return t&&e&&t.priority==e.priority&&u_(t.classes)==u_(e.classes)}function h_(t,e){return t.priority>e.priority||!(t.priorityu_(e.classes)}function u_(t){return Array.isArray(t)?t.sort().join(","):t}const m_=' ',g_="ck-widget",p_="ck-widget_selected";function f_(t){return!!t.is("element")&&!!t.getCustomProperty("widget")}function k_(t,e,n={}){if(!t.is("containerElement"))throw new x("widget-to-widget-wrong-element-type",null,{element:t});return e.setAttribute("contenteditable","false",t),e.addClass(g_,t),e.setCustomProperty("widget",!0,t),t.getFillerOffset=v_,e.setCustomProperty("widgetLabel",[],t),n.label&&function(t,e){const n=t.getCustomProperty("widgetLabel");n.push(e)}(t,n.label),n.hasSelectionHandle&&function(t,e){const n=e.createUIElement("div",{class:"ck ck-widget__selection-handle"},(function(t){const e=this.toDomElement(t),n=new Xu;return n.set("content",m_),n.render(),e.appendChild(n.element),e}));e.insert(e.createPositionAt(t,0),n),e.addClass(["ck-widget_with-selection-handle"],t)}(t,e),__(t,e),t}function b_(t,e,n){if(e.classes&&n.addClass(Di(e.classes),t),e.attributes)for(const o in e.attributes)n.setAttribute(o,e.attributes[o],t)}function w_(t,e,n){if(e.classes&&n.removeClass(Di(e.classes),t),e.attributes)for(const o in e.attributes)n.removeAttribute(o,t)}function __(t,e,n=b_,o=w_){const i=new l_;i.on("change:top",((e,i)=>{i.oldDescriptor&&o(t,i.oldDescriptor,i.writer),i.newDescriptor&&n(t,i.newDescriptor,i.writer)}));e.setCustomProperty("addHighlight",((t,e,n)=>i.add(e,n)),t),e.setCustomProperty("removeHighlight",((t,e,n)=>i.remove(e,n)),t)}function A_(t,e,n={}){return e.addClass(["ck-editor__editable","ck-editor__nested-editable"],t),e.setAttribute("role","textbox",t),e.setAttribute("tabindex","-1",t),n.label&&e.setAttribute("aria-label",n.label,t),e.setAttribute("contenteditable",t.isReadOnly?"false":"true",t),t.on("change:isReadOnly",((n,o,i)=>{e.setAttribute("contenteditable",i?"false":"true",t)})),t.on("change:isFocused",((n,o,i)=>{i?e.addClass("ck-editor__nested-editable_focused",t):e.removeClass("ck-editor__nested-editable_focused",t)})),__(t,e),t}function C_(t,e){const n=t.getSelectedElement();if(n){const o=D_(t);if(o)return e.createRange(e.createPositionAt(n,o))}return e.schema.findOptimalInsertionRange(t)}function v_(){return null}function y_(t){const e=t=>{const{width:e,paddingLeft:n,paddingRight:o}=t.ownerDocument.defaultView.getComputedStyle(t);return parseFloat(e)-(parseFloat(n)||0)-(parseFloat(o)||0)},n=t.parentElement;if(!n)return 0;let o=e(n);let i=0,r=n;for(;isNaN(o);){if(r=r.parentElement,++i>5)return 0;o=e(r)}return o}const x_="widget-type-around";function E_(t,e,n){return!!t&&f_(t)&&!n.isInline(e)}function D_(t){return t.getAttribute(x_)}var B_=n(8508),T_={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Pr()(B_.A,T_);B_.A.locals;const S_=["before","after"],I_=(new DOMParser).parseFromString(' ',"image/svg+xml").firstChild,P_="ck-widget__type-around_disabled";class z_ extends Nr{_currentFakeCaretModelElement=null;static get pluginName(){return"WidgetTypeAround"}static get requires(){return[Aw,Bb]}init(){const t=this.editor,e=t.editing.view;this.on("change:isEnabled",((n,o,i)=>{e.change((t=>{for(const n of e.document.roots)i?t.removeClass(P_,n):t.addClass(P_,n)})),i||t.model.change((t=>{t.removeSelectionAttribute(x_)}))})),this._enableTypeAroundUIInjection(),this._enableInsertingParagraphsOnButtonClick(),this._enableInsertingParagraphsOnEnterKeypress(),this._enableInsertingParagraphsOnTypingKeystroke(),this._enableTypeAroundFakeCaretActivationUsingKeyboardArrows(),this._enableDeleteIntegration(),this._enableInsertContentIntegration(),this._enableInsertObjectIntegration(),this._enableDeleteContentIntegration()}destroy(){super.destroy(),this._currentFakeCaretModelElement=null}_insertParagraph(t,e){const n=this.editor,o=n.editing.view,i=n.model.schema.getAttributesWithProperty(t,"copyOnReplace",!0);n.execute("insertParagraph",{position:n.model.createPositionAt(t,e),attributes:i}),o.focus(),o.scrollToTheSelection()}_listenToIfEnabled(t,e,n,o){this.listenTo(t,e,((...t)=>{this.isEnabled&&n(...t)}),o)}_insertParagraphAccordingToFakeCaretPosition(){const t=this.editor.model.document.selection,e=D_(t);if(!e)return!1;const n=t.getSelectedElement();return this._insertParagraph(n,e),!0}_enableTypeAroundUIInjection(){const t=this.editor,e=t.model.schema,n=t.locale.t,o={before:n("Insert paragraph before block"),after:n("Insert paragraph after block")};t.editing.downcastDispatcher.on("insert",((t,i,r)=>{const s=r.mapper.toViewElement(i.item);if(s&&E_(s,i.item,e)){!function(t,e,n){const o=t.createUIElement("div",{class:"ck ck-reset_all ck-widget__type-around"},(function(t){const n=this.toDomElement(t);return function(t,e){for(const n of S_){const o=new dr({tag:"div",attributes:{class:["ck","ck-widget__type-around__button",`ck-widget__type-around__button_${n}`],title:e[n],"aria-hidden":"true"},children:[t.ownerDocument.importNode(I_,!0)]});t.appendChild(o.render())}}(n,e),function(t){const e=new dr({tag:"div",attributes:{class:["ck","ck-widget__type-around__fake-caret"]}});t.appendChild(e.render())}(n),n}));t.insert(t.createPositionAt(n,"end"),o)}(r.writer,o,s);s.getCustomProperty("widgetLabel").push((()=>this.isEnabled?n("Press Enter to type after or press Shift + Enter to type before the widget"):""))}}),{priority:"low"})}_enableTypeAroundFakeCaretActivationUsingKeyboardArrows(){const t=this.editor,e=t.model,n=e.document.selection,o=e.schema,i=t.editing.view;function r(t){return`ck-widget_type-around_show-fake-caret_${t}`}this._listenToIfEnabled(i.document,"arrowKey",((t,e)=>{this._handleArrowKeyPress(t,e)}),{context:[f_,"$text"],priority:"high"}),this._listenToIfEnabled(n,"change:range",((e,n)=>{n.directChange&&t.model.change((t=>{t.removeSelectionAttribute(x_)}))})),this._listenToIfEnabled(e.document,"change:data",(()=>{const e=n.getSelectedElement();if(e){if(E_(t.editing.mapper.toViewElement(e),e,o))return}t.model.change((t=>{t.removeSelectionAttribute(x_)}))})),this._listenToIfEnabled(t.editing.downcastDispatcher,"selection",((t,e,n)=>{const i=n.writer;if(this._currentFakeCaretModelElement){const t=n.mapper.toViewElement(this._currentFakeCaretModelElement);t&&(i.removeClass(S_.map(r),t),this._currentFakeCaretModelElement=null)}const s=e.selection.getSelectedElement();if(!s)return;const a=n.mapper.toViewElement(s);if(!E_(a,s,o))return;const c=D_(e.selection);c&&(i.addClass(r(c),a),this._currentFakeCaretModelElement=s)})),this._listenToIfEnabled(t.ui.focusTracker,"change:isFocused",((e,n,o)=>{o||t.model.change((t=>{t.removeSelectionAttribute(x_)}))}))}_handleArrowKeyPress(t,e){const n=this.editor,o=n.model,i=o.document.selection,r=o.schema,s=n.editing.view,a=function(t,e){const n=xi(t,e);return"down"===n||"right"===n}(e.keyCode,n.locale.contentLanguageDirection),c=s.document.selection.getSelectedElement();let l;E_(c,n.editing.mapper.toModelElement(c),r)?l=this._handleArrowKeyPressOnSelectedWidget(a):i.isCollapsed?l=this._handleArrowKeyPressWhenSelectionNextToAWidget(a):e.shiftKey||(l=this._handleArrowKeyPressWhenNonCollapsedSelection(a)),l&&(e.preventDefault(),t.stop())}_handleArrowKeyPressOnSelectedWidget(t){const e=this.editor.model,n=D_(e.document.selection);return e.change((e=>{if(!n)return e.setSelectionAttribute(x_,t?"after":"before"),!0;if(!(n===(t?"after":"before")))return e.removeSelectionAttribute(x_),!0;return!1}))}_handleArrowKeyPressWhenSelectionNextToAWidget(t){const e=this.editor,n=e.model,o=n.schema,i=e.plugins.get("Widget"),r=i._getObjectElementNextToSelection(t);return!!E_(e.editing.mapper.toViewElement(r),r,o)&&(n.change((e=>{i._setSelectionOverElement(r),e.setSelectionAttribute(x_,t?"before":"after")})),!0)}_handleArrowKeyPressWhenNonCollapsedSelection(t){const e=this.editor,n=e.model,o=n.schema,i=e.editing.mapper,r=n.document.selection,s=t?r.getLastPosition().nodeBefore:r.getFirstPosition().nodeAfter;return!!E_(i.toViewElement(s),s,o)&&(n.change((e=>{e.setSelection(s,"on"),e.setSelectionAttribute(x_,t?"after":"before")})),!0)}_enableInsertingParagraphsOnButtonClick(){const t=this.editor,e=t.editing.view;this._listenToIfEnabled(e.document,"mousedown",((n,o)=>{const i=o.domTarget.closest(".ck-widget__type-around__button");if(!i)return;const r=function(t){return t.classList.contains("ck-widget__type-around__button_before")?"before":"after"}(i),s=function(t,e){const n=t.closest(".ck-widget");return e.mapDomToView(n)}(i,e.domConverter),a=t.editing.mapper.toModelElement(s);this._insertParagraph(a,r),o.preventDefault(),n.stop()}))}_enableInsertingParagraphsOnEnterKeypress(){const t=this.editor,e=t.model.document.selection,n=t.editing.view;this._listenToIfEnabled(n.document,"enter",((n,o)=>{if("atTarget"!=n.eventPhase)return;const i=e.getSelectedElement(),r=t.editing.mapper.toViewElement(i),s=t.model.schema;let a;this._insertParagraphAccordingToFakeCaretPosition()?a=!0:E_(r,i,s)&&(this._insertParagraph(i,o.isSoft?"before":"after"),a=!0),a&&(o.preventDefault(),n.stop())}),{context:f_})}_enableInsertingParagraphsOnTypingKeystroke(){const t=this.editor.editing.view.document;this._listenToIfEnabled(t,"insertText",((e,n)=>{this._insertParagraphAccordingToFakeCaretPosition()&&(n.selection=t.selection)}),{priority:"high"}),i.isAndroid?this._listenToIfEnabled(t,"keydown",((t,e)=>{229==e.keyCode&&this._insertParagraphAccordingToFakeCaretPosition()})):this._listenToIfEnabled(t,"compositionstart",(()=>{this._insertParagraphAccordingToFakeCaretPosition()}),{priority:"high"})}_enableDeleteIntegration(){const t=this.editor,e=t.editing.view,n=t.model,o=n.schema;this._listenToIfEnabled(e.document,"delete",((e,i)=>{if("atTarget"!=e.eventPhase)return;const r=D_(n.document.selection);if(!r)return;const s=i.direction,a=n.document.selection.getSelectedElement(),c="forward"==s;if("before"===r===c)t.execute("delete",{selection:n.createSelection(a,"on")});else{const e=o.getNearestSelectionRange(n.createPositionAt(a,r),s);if(e)if(e.isCollapsed){const i=n.createSelection(e.start);if(n.modifySelection(i,{direction:s}),i.focus.isEqual(e.start)){const t=function(t,e){let n=e;for(const o of e.getAncestors({parentFirst:!0})){if(o.childCount>1||t.isLimit(o))break;n=o}return n}(o,e.start.parent);n.deleteContent(n.createSelection(t,"on"),{doNotAutoparagraph:!0})}else n.change((n=>{n.setSelection(e),t.execute(c?"deleteForward":"delete")}))}else n.change((n=>{n.setSelection(e),t.execute(c?"deleteForward":"delete")}))}i.preventDefault(),e.stop()}),{context:f_})}_enableInsertContentIntegration(){const t=this.editor,e=this.editor.model,n=e.document.selection;this._listenToIfEnabled(t.model,"insertContent",((t,[o,i])=>{if(i&&!i.is("documentSelection"))return;const r=D_(n);return r?(t.stop(),e.change((t=>{const i=n.getSelectedElement(),s=e.createPositionAt(i,r),a=t.createSelection(s),c=e.insertContent(o,a);return t.setSelection(a),c}))):void 0}),{priority:"high"})}_enableInsertObjectIntegration(){const t=this.editor,e=this.editor.model.document.selection;this._listenToIfEnabled(t.model,"insertObject",((t,n)=>{const[,o,i={}]=n;if(o&&!o.is("documentSelection"))return;const r=D_(e);r&&(i.findOptimalPosition=r,n[3]=i)}),{priority:"high"})}_enableDeleteContentIntegration(){const t=this.editor,e=this.editor.model.document.selection;this._listenToIfEnabled(t.model,"deleteContent",((t,[n])=>{if(n&&!n.is("documentSelection"))return;D_(e)&&t.stop()}),{priority:"high"})}}function R_(t){const e=t.model;return(n,o)=>{const i=o.keyCode==_i.arrowup,r=o.keyCode==_i.arrowdown,s=o.shiftKey,a=e.document.selection;if(!i&&!r)return;const c=r;if(s&&function(t,e){return!t.isCollapsed&&t.isBackward==e}(a,c))return;const l=function(t,e,n){const o=t.model;if(n){const t=e.isCollapsed?e.focus:e.getLastPosition(),n=L_(o,t,"forward");if(!n)return null;const i=o.createRange(t,n),r=F_(o.schema,i,"backward");return r?o.createRange(t,r):null}{const t=e.isCollapsed?e.focus:e.getFirstPosition(),n=L_(o,t,"backward");if(!n)return null;const i=o.createRange(n,t),r=F_(o.schema,i,"forward");return r?o.createRange(r,t):null}}(t,a,c);if(l){if(l.isCollapsed){if(a.isCollapsed)return;if(s)return}(l.isCollapsed||function(t,e,n){const o=t.model,i=t.view.domConverter;if(n){const t=o.createSelection(e.start);o.modifySelection(t),t.focus.isAtEnd||e.start.isEqual(t.focus)||(e=o.createRange(t.focus,e.end))}const r=t.mapper.toViewRange(e),s=i.viewRangeToDom(r),a=Ko.getDomRangeRects(s);let c;for(const t of a)if(void 0!==c){if(Math.round(t.top)>=c)return!1;c=Math.max(c,Math.round(t.bottom))}else c=Math.round(t.bottom);return!0}(t,l,c))&&(e.change((t=>{const n=c?l.end:l.start;if(s){const o=e.createSelection(a.anchor);o.setFocus(n),t.setSelection(o)}else t.setSelection(n)})),n.stop(),o.preventDefault(),o.stopPropagation())}}}function L_(t,e,n){const o=t.schema,i=t.createRangeIn(e.root),r="forward"==n?"elementStart":"elementEnd";for(const{previousPosition:t,item:s,type:a}of i.getWalker({startPosition:e,direction:n})){if(o.isLimit(s)&&!o.isInline(s))return t;if(a==r&&o.isBlock(s))return null}return null}function F_(t,e,n){const o="backward"==n?e.end:e.start;if(t.checkChild(o,"$text"))return o;for(const{nextPosition:o}of e.getWalker({direction:n}))if(t.checkChild(o,"$text"))return o;return null}var M_=n(695),V_={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Pr()(M_.A,V_);M_.A.locals;class O_ extends Nr{_previouslySelected=new Set;static get pluginName(){return"Widget"}static get requires(){return[z_,Bb]}init(){const t=this.editor,e=t.editing.view,n=e.document,o=t.t;this.editor.editing.downcastDispatcher.on("selection",((e,n,o)=>{const i=o.writer,r=n.selection;if(r.isCollapsed)return;const s=r.getSelectedElement();if(!s)return;const a=t.editing.mapper.toViewElement(s);var c;f_(a)&&(o.consumable.consume(r,"selection")&&i.setSelection(i.createRangeOn(a),{fake:!0,label:(c=a,c.getCustomProperty("widgetLabel").reduce(((t,e)=>"function"==typeof e?t?t+". "+e():e():t?t+". "+e:e),""))}))})),this.editor.editing.downcastDispatcher.on("selection",((t,e,n)=>{this._clearPreviouslySelectedWidgets(n.writer);const o=n.writer,i=o.document.selection;let r=null;for(const t of i.getRanges())for(const e of t){const t=e.item;f_(t)&&!N_(t,r)&&(o.addClass(p_,t),this._previouslySelected.add(t),r=t)}}),{priority:"low"}),e.addObserver(iu),this.listenTo(n,"mousedown",((...t)=>this._onMousedown(...t))),this.listenTo(n,"arrowKey",((...t)=>{this._handleSelectionChangeOnArrowKeyPress(...t)}),{context:[f_,"$text"]}),this.listenTo(n,"arrowKey",((...t)=>{this._preventDefaultOnArrowKeyPress(...t)}),{context:"$root"}),this.listenTo(n,"arrowKey",R_(this.editor.editing),{context:"$text"}),this.listenTo(n,"delete",((t,e)=>{this._handleDelete("forward"==e.direction)&&(e.preventDefault(),t.stop())}),{context:"$root"}),this.listenTo(n,"tab",((t,e)=>{"atTarget"==t.eventPhase&&(e.shiftKey||this._selectFirstNestedEditable()&&(e.preventDefault(),t.stop()))}),{context:f_,priority:"low"}),this.listenTo(n,"tab",((t,e)=>{e.shiftKey&&this._selectAncestorWidget()&&(e.preventDefault(),t.stop())}),{priority:"low"}),this.listenTo(n,"keydown",((t,e)=>{e.keystroke==_i.esc&&this._selectAncestorWidget()&&(e.preventDefault(),t.stop())}),{priority:"low"}),t.accessibility.addKeystrokeInfoGroup({id:"widget",label:o("Keystrokes that can be used when a widget is selected (for example: image, table, etc.)"),keystrokes:[{label:o("Move focus from an editable area back to the parent widget"),keystroke:"Esc"},{label:o("Insert a new paragraph directly after a widget"),keystroke:"Enter"},{label:o("Insert a new paragraph directly before a widget"),keystroke:"Shift+Enter"},{label:o("Move the caret to allow typing directly before a widget"),keystroke:[["arrowup"],["arrowleft"]]},{label:o("Move the caret to allow typing directly after a widget"),keystroke:[["arrowdown"],["arrowright"]]}]})}_onMousedown(t,e){const n=this.editor,o=n.editing.view,r=o.document;let s=e.target;if(e.domEvent.detail>=3)return void(this._selectBlockContent(s)&&e.preventDefault());if(function(t){let e=t;for(;e;){if(e.is("editableElement")&&!e.is("rootElement"))return!0;if(f_(e))return!1;e=e.parent}return!1}(s))return;if(!f_(s)&&(s=s.findAncestor(f_),!s))return;i.isAndroid&&e.preventDefault(),r.isFocused||o.focus();const a=n.editing.mapper.toModelElement(s);this._setSelectionOverElement(a)}_selectBlockContent(t){const e=this.editor,n=e.model,o=e.editing.mapper,i=n.schema,r=o.findMappedViewAncestor(this.editor.editing.view.createPositionAt(t,0)),s=function(t,e){for(const n of t.getAncestors({includeSelf:!0,parentFirst:!0})){if(e.checkChild(n,"$text"))return n;if(e.isLimit(n)&&!e.isObject(n))break}return null}(o.toModelElement(r),n.schema);return!!s&&(n.change((t=>{const e=i.isLimit(s)?null:function(t,e){const n=new ll({startPosition:t});for(const{item:t}of n){if(e.isLimit(t)||!t.is("element"))return null;if(e.checkChild(t,"$text"))return t}return null}(t.createPositionAfter(s),i),n=t.createPositionAt(s,0),o=e?t.createPositionAt(e,0):t.createPositionAt(s,"end");t.setSelection(t.createRange(n,o))})),!0)}_handleSelectionChangeOnArrowKeyPress(t,e){const n=e.keyCode,o=this.editor.model,i=o.schema,r=o.document.selection,s=r.getSelectedElement(),a=xi(n,this.editor.locale.contentLanguageDirection),c="down"==a||"right"==a,l="up"==a||"down"==a;if(s&&i.isObject(s)){const n=c?r.getLastPosition():r.getFirstPosition(),s=i.getNearestSelectionRange(n,c?"forward":"backward");return void(s&&(o.change((t=>{t.setSelection(s)})),e.preventDefault(),t.stop()))}if(!r.isCollapsed&&!e.shiftKey){const n=r.getFirstPosition(),s=r.getLastPosition(),a=n.nodeAfter,l=s.nodeBefore;return void((a&&i.isObject(a)||l&&i.isObject(l))&&(o.change((t=>{t.setSelection(c?s:n)})),e.preventDefault(),t.stop()))}if(!r.isCollapsed)return;const d=this._getObjectElementNextToSelection(c);if(d&&i.isObject(d)){if(i.isInline(d)&&l)return;this._setSelectionOverElement(d),e.preventDefault(),t.stop()}}_preventDefaultOnArrowKeyPress(t,e){const n=this.editor.model,o=n.schema,i=n.document.selection.getSelectedElement();i&&o.isObject(i)&&(e.preventDefault(),t.stop())}_handleDelete(t){const e=this.editor.model.document.selection;if(!this.editor.model.canEditAt(e))return;if(!e.isCollapsed)return;const n=this._getObjectElementNextToSelection(t);return n?(this.editor.model.change((t=>{let o=e.anchor.parent;for(;o.isEmpty;){const e=o;o=e.parent,t.remove(e)}this._setSelectionOverElement(n)})),!0):void 0}_setSelectionOverElement(t){this.editor.model.change((e=>{e.setSelection(e.createRangeOn(t))}))}_getObjectElementNextToSelection(t){const e=this.editor.model,n=e.schema,o=e.document.selection,i=e.createSelection(o);if(e.modifySelection(i,{direction:t?"forward":"backward"}),i.isEqual(o))return null;const r=t?i.focus.nodeBefore:i.focus.nodeAfter;return r&&n.isObject(r)?r:null}_clearPreviouslySelectedWidgets(t){for(const e of this._previouslySelected)t.removeClass(p_,e);this._previouslySelected.clear()}_selectFirstNestedEditable(){const t=this.editor,e=this.editor.editing.view.document;for(const n of e.selection.getFirstRange().getItems())if(n.is("editableElement")){const e=t.editing.mapper.toModelElement(n);if(!e)continue;const o=t.model.createPositionAt(e,0),i=t.model.schema.getNearestSelectionRange(o,"forward");return t.model.change((t=>{t.setSelection(i)})),!0}return!1}_selectAncestorWidget(){const t=this.editor,e=t.editing.mapper,n=t.editing.view.document.selection.getFirstPosition().parent,o=(n.is("$text")?n.parent:n).findAncestor(f_);if(!o)return!1;const i=e.toModelElement(o);return!!i&&(t.model.change((t=>{t.setSelection(i,"on")})),!0)}}function N_(t,e){return!!e&&Array.from(t.getAncestors()).includes(e)}class H_ extends Nr{_toolbarDefinitions=new Map;_balloon;static get requires(){return[Mf]}static get pluginName(){return"WidgetToolbarRepository"}init(){const t=this.editor;if(t.plugins.has("BalloonToolbar")){const e=t.plugins.get("BalloonToolbar");this.listenTo(e,"show",(e=>{(function(t){const e=t.getSelectedElement();return!(!e||!f_(e))})(t.editing.view.document.selection)&&e.stop()}),{priority:"high"})}this._balloon=this.editor.plugins.get("ContextualBalloon"),this.on("change:isEnabled",(()=>{this._updateToolbarsVisibility()})),this.listenTo(t.ui,"update",(()=>{this._updateToolbarsVisibility()})),this.listenTo(t.ui.focusTracker,"change:isFocused",(()=>{this._updateToolbarsVisibility()}),{priority:"low"})}destroy(){super.destroy();for(const t of this._toolbarDefinitions.values())t.view.destroy()}register(t,{ariaLabel:e,items:n,getRelatedElement:o,balloonClassName:i="ck-toolbar-container"}){if(!n.length)return void E("widget-toolbar-no-items",{toolbarId:t});const r=this.editor,s=r.t,a=new Sg(r.locale);if(a.ariaLabel=e||s("Widget toolbar"),this._toolbarDefinitions.has(t))throw new x("widget-toolbar-duplicated",this,{toolbarId:t});const c={view:a,getRelatedElement:o,balloonClassName:i,itemsConfig:n,initialized:!1};r.ui.addToolbar(a,{isContextual:!0,beforeFocus:()=>{const t=o(r.editing.view.document.selection);t&&this._showToolbar(c,t)},afterBlur:()=>{this._hideToolbar(c)}}),this._toolbarDefinitions.set(t,c)}_updateToolbarsVisibility(){let t=0,e=null,n=null;for(const o of this._toolbarDefinitions.values()){const i=o.getRelatedElement(this.editor.editing.view.document.selection);if(this.isEnabled&&i)if(this.editor.ui.focusTracker.isFocused){const r=i.getAncestors().length;r>t&&(t=r,e=i,n=o)}else this._isToolbarVisible(o)&&this._hideToolbar(o);else this._isToolbarInBalloon(o)&&this._hideToolbar(o)}n&&this._showToolbar(n,e)}_hideToolbar(t){this._balloon.remove(t.view),this.stopListening(this._balloon,"change:visibleView")}_showToolbar(t,e){this._isToolbarVisible(t)?q_(this.editor,e):this._isToolbarInBalloon(t)||(t.initialized||(t.initialized=!0,t.view.fillFromConfig(t.itemsConfig,this.editor.ui.componentFactory)),this._balloon.add({view:t.view,position:j_(this.editor,e),balloonClassName:t.balloonClassName}),this.listenTo(this._balloon,"change:visibleView",(()=>{for(const t of this._toolbarDefinitions.values())if(this._isToolbarVisible(t)){const e=t.getRelatedElement(this.editor.editing.view.document.selection);q_(this.editor,e)}})))}_isToolbarVisible(t){return this._balloon.visibleView===t.view}_isToolbarInBalloon(t){return this._balloon.hasView(t.view)}}function q_(t,e){const n=t.plugins.get("ContextualBalloon"),o=j_(t,e);n.updatePosition(o)}function j_(t,e){const n=t.editing.view,o=tf.defaultPositions;return{target:n.domConverter.mapViewToDom(e),positions:[o.northArrowSouth,o.northArrowSouthWest,o.northArrowSouthEast,o.southArrowNorth,o.southArrowNorthWest,o.southArrowNorthEast,o.viewportStickyNorth]}}class W_ extends(J()){_referenceCoordinates;_options;_originalWidth;_originalHeight;_originalWidthPercents;_aspectRatio;constructor(t){super(),this.set("activeHandlePosition",null),this.set("proposedWidthPercents",null),this.set("proposedWidth",null),this.set("proposedHeight",null),this.set("proposedHandleHostWidth",null),this.set("proposedHandleHostHeight",null),this._options=t,this._referenceCoordinates=null}get originalWidth(){return this._originalWidth}get originalHeight(){return this._originalHeight}get originalWidthPercents(){return this._originalWidthPercents}get aspectRatio(){return this._aspectRatio}begin(t,e,n){const o=new Ko(e);this.activeHandlePosition=function(t){const e=["top-left","top-right","bottom-right","bottom-left"];for(const n of e)if(t.classList.contains(G_(n)))return n}(t),this._referenceCoordinates=function(t,e){const n=new Ko(t),o=e.split("-"),i={x:"right"==o[1]?n.right:n.left,y:"bottom"==o[0]?n.bottom:n.top};return i.x+=t.ownerDocument.defaultView.scrollX,i.y+=t.ownerDocument.defaultView.scrollY,i}(e,function(t){const e=t.split("-"),n={top:"bottom",bottom:"top",left:"right",right:"left"};return`${n[e[0]]}-${n[e[1]]}`}(this.activeHandlePosition)),this._originalWidth=o.width,this._originalHeight=o.height,this._aspectRatio=o.width/o.height;const i=n.style.width;i&&i.match(/^\d+(\.\d*)?%$/)?this._originalWidthPercents=parseFloat(i):this._originalWidthPercents=function(t,e=new Ko(t)){const n=y_(t);return n?e.width/n*100:0}(n,o)}update(t){this.proposedWidth=t.width,this.proposedHeight=t.height,this.proposedWidthPercents=t.widthPercents,this.proposedHandleHostWidth=t.handleHostWidth,this.proposedHandleHostHeight=t.handleHostHeight}}function G_(t){return`ck-widget__resizer__handle-${t}`}class K_ extends Lr{constructor(){super();const t=this.bindTemplate;this.setTemplate({tag:"div",attributes:{class:["ck","ck-size-view",t.to("_viewPosition",(t=>t?`ck-orientation-${t}`:""))],style:{display:t.if("_isVisible","none",(t=>!t))}},children:[{text:t.to("_label")}]})}_bindToState(t,e){this.bind("_isVisible").to(e,"proposedWidth",e,"proposedHeight",((t,e)=>null!==t&&null!==e)),this.bind("_label").to(e,"proposedHandleHostWidth",e,"proposedHandleHostHeight",e,"proposedWidthPercents",((e,n,o)=>"px"===t.unit?`${e}×${n}`:`${o}%`)),this.bind("_viewPosition").to(e,"activeHandlePosition",e,"proposedHandleHostWidth",e,"proposedHandleHostHeight",((t,e,n)=>e<50||n<50?"above-center":t))}_dismiss(){this.unbind(),this._isVisible=!1}}class U_ extends(J()){_state;_sizeView;_options;_viewResizerWrapper=null;_initialViewWidth;constructor(t){super(),this._options=t,this.set("isEnabled",!0),this.set("isSelected",!1),this.bind("isVisible").to(this,"isEnabled",this,"isSelected",((t,e)=>t&&e)),this.decorate("begin"),this.decorate("cancel"),this.decorate("commit"),this.decorate("updateSize"),this.on("commit",(t=>{this.state.proposedWidth||this.state.proposedWidthPercents||(this._cleanup(),t.stop())}),{priority:"high"})}get state(){return this._state}show(){this._options.editor.editing.view.change((t=>{t.removeClass("ck-hidden",this._viewResizerWrapper)}))}hide(){this._options.editor.editing.view.change((t=>{t.addClass("ck-hidden",this._viewResizerWrapper)}))}attach(){const t=this,e=this._options.viewElement;this._options.editor.editing.view.change((n=>{const o=n.createUIElement("div",{class:"ck ck-reset_all ck-widget__resizer"},(function(e){const n=this.toDomElement(e);return t._appendHandles(n),t._appendSizeUI(n),n}));n.insert(n.createPositionAt(e,"end"),o),n.addClass("ck-widget_with-resizer",e),this._viewResizerWrapper=o,this.isVisible||this.hide()})),this.on("change:isVisible",(()=>{this.isVisible?(this.show(),this.redraw()):this.hide()}))}begin(t){this._state=new W_(this._options),this._sizeView._bindToState(this._options,this.state),this._initialViewWidth=this._options.viewElement.getStyle("width"),this.state.begin(t,this._getHandleHost(),this._getResizeHost())}updateSize(t){const e=this._proposeNewSize(t);this._options.editor.editing.view.change((t=>{const n=this._options.unit||"%",o=("%"===n?e.widthPercents:e.width)+n;t.setStyle("width",o,this._options.viewElement)}));const n=this._getHandleHost(),o=new Ko(n),i=Math.round(o.width),r=Math.round(o.height),s=new Ko(n);e.width=Math.round(s.width),e.height=Math.round(s.height),this.redraw(o),this.state.update({...e,handleHostWidth:i,handleHostHeight:r})}commit(){const t=this._options.unit||"%",e=("%"===t?this.state.proposedWidthPercents:this.state.proposedWidth)+t;this._options.editor.editing.view.change((()=>{this._cleanup(),this._options.onCommit(e)}))}cancel(){this._cleanup()}destroy(){this.cancel()}redraw(t){const e=this._domResizerWrapper;if(!((n=e)&&n.ownerDocument&&n.ownerDocument.contains(n)))return;var n;const o=e.parentElement,i=this._getHandleHost(),r=this._viewResizerWrapper,s=[r.getStyle("width"),r.getStyle("height"),r.getStyle("left"),r.getStyle("top")];let a;if(o.isSameNode(i)){const e=t||new Ko(i);a=[e.width+"px",e.height+"px",void 0,void 0]}else a=[i.offsetWidth+"px",i.offsetHeight+"px",i.offsetLeft+"px",i.offsetTop+"px"];"same"!==it(s,a)&&this._options.editor.editing.view.change((t=>{t.setStyle({width:a[0],height:a[1],left:a[2],top:a[3]},r)}))}containsHandle(t){return this._domResizerWrapper.contains(t)}static isResizeHandle(t){return t.classList.contains("ck-widget__resizer__handle")}_cleanup(){this._sizeView._dismiss();this._options.editor.editing.view.change((t=>{t.setStyle("width",this._initialViewWidth,this._options.viewElement)}))}_proposeNewSize(t){const e=this.state,n={x:(o=t).pageX,y:o.pageY};var o;const i=!this._options.isCentered||this._options.isCentered(this),r={x:e._referenceCoordinates.x-(n.x+e.originalWidth),y:n.y-e.originalHeight-e._referenceCoordinates.y};i&&e.activeHandlePosition.endsWith("-right")&&(r.x=n.x-(e._referenceCoordinates.x+e.originalWidth)),i&&(r.x*=2);let s=Math.abs(e.originalWidth+r.x),a=Math.abs(e.originalHeight+r.y);return"width"==(s/e.aspectRatio>a?"width":"height")?a=s/e.aspectRatio:s=a*e.aspectRatio,{width:Math.round(s),height:Math.round(a),widthPercents:Math.min(Math.round(e.originalWidthPercents/e.originalWidth*s*100)/100,100)}}_getResizeHost(){const t=this._domResizerWrapper.parentElement;return this._options.getResizeHost(t)}_getHandleHost(){const t=this._domResizerWrapper.parentElement;return this._options.getHandleHost(t)}get _domResizerWrapper(){return this._options.editor.editing.view.domConverter.mapViewToDom(this._viewResizerWrapper)}_appendHandles(t){const e=["top-left","top-right","bottom-right","bottom-left"];for(const o of e)t.appendChild(new dr({tag:"div",attributes:{class:"ck-widget__resizer__handle "+(n=o,`ck-widget__resizer__handle-${n}`)}}).render());var n}_appendSizeUI(t){this._sizeView=new K_,this._sizeView.render(),t.appendChild(this._sizeView.element)}}var $_=n(4095),Z_={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Pr()($_.A,Z_);$_.A.locals;class J_ extends Nr{_resizers=new Map;_observer;_redrawSelectedResizerThrottled;static get pluginName(){return"WidgetResize"}init(){const t=this.editor.editing,e=Oo.window.document;this.set("selectedResizer",null),this.set("_activeResizer",null),t.view.addObserver(iu),this._observer=new(Lo()),this.listenTo(t.view.document,"mousedown",this._mouseDownListener.bind(this),{priority:"high"}),this._observer.listenTo(e,"mousemove",this._mouseMoveListener.bind(this)),this._observer.listenTo(e,"mouseup",this._mouseUpListener.bind(this)),this._redrawSelectedResizerThrottled=lf((()=>this.redrawSelectedResizer()),200),this.editor.ui.on("update",this._redrawSelectedResizerThrottled),this.editor.model.document.on("change",(()=>{for(const[t,e]of this._resizers)t.isAttached()||(this._resizers.delete(t),e.destroy())}),{priority:"lowest"}),this._observer.listenTo(Oo.window,"resize",this._redrawSelectedResizerThrottled);const n=this.editor.editing.view.document.selection;n.on("change",(()=>{const t=n.getSelectedElement(),e=this.getResizerByViewElement(t)||null;e?this.select(e):this.deselect()}))}redrawSelectedResizer(){this.selectedResizer&&this.selectedResizer.isVisible&&this.selectedResizer.redraw()}destroy(){super.destroy(),this._observer.stopListening();for(const t of this._resizers.values())t.destroy();this._redrawSelectedResizerThrottled.cancel()}select(t){this.deselect(),this.selectedResizer=t,this.selectedResizer.isSelected=!0}deselect(){this.selectedResizer&&(this.selectedResizer.isSelected=!1),this.selectedResizer=null}attachTo(t){const e=new U_(t),n=this.editor.plugins;if(e.attach(),n.has("WidgetToolbarRepository")){const t=n.get("WidgetToolbarRepository");e.on("begin",(()=>{t.forceDisabled("resize")}),{priority:"lowest"}),e.on("cancel",(()=>{t.clearForceDisabled("resize")}),{priority:"highest"}),e.on("commit",(()=>{t.clearForceDisabled("resize")}),{priority:"highest"})}this._resizers.set(t.viewElement,e);const o=this.editor.editing.view.document.selection.getSelectedElement();return this.getResizerByViewElement(o)==e&&this.select(e),e}getResizerByViewElement(t){return this._resizers.get(t)}_getResizerByHandle(t){for(const e of this._resizers.values())if(e.containsHandle(t))return e}_mouseDownListener(t,e){const n=e.domTarget;U_.isResizeHandle(n)&&(this._activeResizer=this._getResizerByHandle(n)||null,this._activeResizer&&(this._activeResizer.begin(n),t.stop(),e.preventDefault()))}_mouseMoveListener(t,e){this._activeResizer&&this._activeResizer.updateSize(e)}_mouseUpListener(){this._activeResizer&&(this._activeResizer.commit(),this._activeResizer=null)}}const Y_=Xo("px");class Q_ extends Lr{constructor(){super();const t=this.bindTemplate;this.set({isVisible:!1,left:null,top:null,width:null}),this.setTemplate({tag:"div",attributes:{class:["ck","ck-clipboard-drop-target-line",t.if("isVisible","ck-hidden",(t=>!t))],style:{left:t.to("left",(t=>Y_(t))),top:t.to("top",(t=>Y_(t))),width:t.to("width",(t=>Y_(t)))}}})}}class X_ extends Nr{removeDropMarkerDelayed=or((()=>this.removeDropMarker()),40);_updateDropMarkerThrottled=lf((t=>this._updateDropMarker(t)),40);_reconvertMarkerThrottled=lf((()=>{this.editor.model.markers.has("drop-target")&&this.editor.editing.reconvertMarker("drop-target")}),0);_dropTargetLineView=new Q_;_domEmitter=new(Lo());_scrollables=new Map;static get pluginName(){return"DragDropTarget"}init(){this._setupDropMarker()}destroy(){this._domEmitter.stopListening();for(const{resizeObserver:t}of this._scrollables.values())t.destroy();return this._updateDropMarkerThrottled.cancel(),this.removeDropMarkerDelayed.cancel(),this._reconvertMarkerThrottled.cancel(),super.destroy()}updateDropMarker(t,e,n,o,i,r){this.removeDropMarkerDelayed.cancel();const s=tA(this.editor,t,e,n,o,i,r);if(s)return r&&r.containsRange(s)?this.removeDropMarker():void this._updateDropMarkerThrottled(s)}getFinalDropRange(t,e,n,o,i,r){const s=tA(this.editor,t,e,n,o,i,r);return this.removeDropMarker(),s}removeDropMarker(){const t=this.editor.model;this.removeDropMarkerDelayed.cancel(),this._updateDropMarkerThrottled.cancel(),this._dropTargetLineView.isVisible=!1,t.markers.has("drop-target")&&t.change((t=>{t.removeMarker("drop-target")}))}_setupDropMarker(){const t=this.editor;t.ui.view.body.add(this._dropTargetLineView),t.conversion.for("editingDowncast").markerToHighlight({model:"drop-target",view:{classes:["ck-clipboard-drop-target-range"]}}),t.conversion.for("editingDowncast").markerToElement({model:"drop-target",view:(e,{writer:n})=>{if(t.model.schema.checkChild(e.markerRange.start,"$text"))return this._dropTargetLineView.isVisible=!1,this._createDropTargetPosition(n);e.markerRange.isCollapsed?this._updateDropTargetLine(e.markerRange):this._dropTargetLineView.isVisible=!1}})}_updateDropMarker(t){const e=this.editor,n=e.model.markers;e.model.change((e=>{n.has("drop-target")?n.get("drop-target").getRange().isEqual(t)||e.updateMarker("drop-target",{range:t}):e.addMarker("drop-target",{range:t,usingOperation:!1,affectsData:!1})}))}_createDropTargetPosition(t){return t.createUIElement("span",{class:"ck ck-clipboard-drop-target-position"},(function(t){const e=this.toDomElement(t);return e.append("",t.createElement("span"),""),e}))}_updateDropTargetLine(t){const e=this.editor.editing,n=t.start.nodeBefore,o=t.start.nodeAfter,i=t.start.parent,r=n?e.mapper.toViewElement(n):null,s=r?e.view.domConverter.mapViewToDom(r):null,a=o?e.mapper.toViewElement(o):null,c=a?e.view.domConverter.mapViewToDom(a):null,l=e.mapper.toViewElement(i);if(!l)return;const d=e.view.domConverter.mapViewToDom(l),h=this._getScrollableRect(l),{scrollX:u,scrollY:m}=Oo.window,g=s?new Ko(s):null,p=c?new Ko(c):null,f=new Ko(d).excludeScrollbarsAndBorders(),k=g?g.bottom:f.top,b=p?p.top:f.bottom,w=Oo.window.getComputedStyle(d),_=k<=b?(k+b)/2:b;if(h.top<_&&_a.schema.checkChild(r,t)))){if(a.schema.checkChild(r,"$text"))return a.createRange(r);if(e)return nA(t,iA(t,e.parent),o,i)}}}else if(a.schema.isInline(l))return nA(t,l,o,i);if(a.schema.isBlock(l))return nA(t,l,o,i);if(a.schema.checkChild(l,"$block")){const e=Array.from(l.getChildren()).filter((e=>e.is("element")&&!eA(t,e)));let n=0,r=e.length;if(0==r)return a.createRange(a.createPositionAt(l,"end"));for(;n{n?(this.forceDisabled("readOnlyMode"),this._isBlockDragging=!1):this.clearForceDisabled("readOnlyMode")})),i.isAndroid&&this.forceDisabled("noAndroidSupport"),t.plugins.has("BlockToolbar")){const e=t.plugins.get("BlockToolbar").buttonView.element;this._domEmitter.listenTo(e,"dragstart",((t,e)=>this._handleBlockDragStart(e))),this._domEmitter.listenTo(Oo.document,"dragover",((t,e)=>this._handleBlockDragging(e))),this._domEmitter.listenTo(Oo.document,"drop",((t,e)=>this._handleBlockDragging(e))),this._domEmitter.listenTo(Oo.document,"dragend",(()=>this._handleBlockDragEnd()),{useCapture:!0}),this.isEnabled&&e.setAttribute("draggable","true"),this.on("change:isEnabled",((t,n,o)=>{e.setAttribute("draggable",o?"true":"false")}))}}destroy(){return this._domEmitter.stopListening(),super.destroy()}_handleBlockDragStart(t){if(!this.isEnabled)return;const e=this.editor.model,n=e.document.selection,o=this.editor.editing.view,i=Array.from(n.getSelectedBlocks()),r=e.createRange(e.createPositionBefore(i[0]),e.createPositionAfter(i[i.length-1]));e.change((t=>t.setSelection(r))),this._isBlockDragging=!0,o.focus(),o.getObserver(Hw).onDomEvent(t)}_handleBlockDragging(t){if(!this.isEnabled||!this._isBlockDragging)return;const e=t.clientX+("ltr"==this.editor.locale.contentLanguageDirection?100:-100),n=t.clientY,o=document.elementFromPoint(e,n),i=this.editor.editing.view;o&&o.closest(".ck-editor__editable")&&i.getObserver(Hw).onDomEvent({...t,type:t.type,dataTransfer:t.dataTransfer,target:o,clientX:e,clientY:n,preventDefault:()=>t.preventDefault(),stopPropagation:()=>t.stopPropagation()})}_handleBlockDragEnd(){this._isBlockDragging=!1}}var sA=n(7793),aA={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Pr()(sA.A,aA);sA.A.locals;class cA extends Nr{_draggedRange;_draggingUid;_draggableElement;_clearDraggableAttributesDelayed=or((()=>this._clearDraggableAttributes()),40);_blockMode=!1;_domEmitter=new(Lo());_previewContainer;static get pluginName(){return"DragDrop"}static get requires(){return[c_,O_,X_,rA]}init(){const t=this.editor,e=t.editing.view;this._draggedRange=null,this._draggingUid="",this._draggableElement=null,e.addObserver(Hw),e.addObserver(iu),this._setupDragging(),this._setupContentInsertionIntegration(),this._setupClipboardInputIntegration(),this._setupDraggableAttributeHandling(),this.listenTo(t,"change:isReadOnly",((t,e,n)=>{n?this.forceDisabled("readOnlyMode"):this.clearForceDisabled("readOnlyMode")})),this.on("change:isEnabled",((t,e,n)=>{n||this._finalizeDragging(!1)})),i.isAndroid&&this.forceDisabled("noAndroidSupport")}destroy(){return this._draggedRange&&(this._draggedRange.detach(),this._draggedRange=null),this._previewContainer&&this._previewContainer.remove(),this._domEmitter.stopListening(),this._clearDraggableAttributesDelayed.cancel(),super.destroy()}_setupDragging(){const t=this.editor,e=t.model,n=t.editing.view,o=n.document,r=t.plugins.get(X_);this.listenTo(o,"dragstart",((t,n)=>{if(n.target&&n.target.is("editableElement"))return void n.preventDefault();if(this._prepareDraggedRange(n.target),!this._draggedRange)return void n.preventDefault();this._draggingUid=A(),n.dataTransfer.effectAllowed=this.isEnabled?"copyMove":"copy",n.dataTransfer.setData("application/ckeditor5-dragging-uid",this._draggingUid);const o=e.createSelection(this._draggedRange.toRange());this.editor.plugins.get("ClipboardPipeline")._fireOutputTransformationEvent(n.dataTransfer,o,"dragstart");const{dataTransfer:i,domTarget:r,domEvent:s}=n,{clientX:a}=s;this._updatePreview({dataTransfer:i,domTarget:r,clientX:a}),n.stopPropagation(),this.isEnabled||(this._draggedRange.detach(),this._draggedRange=null,this._draggingUid="")}),{priority:"low"}),this.listenTo(o,"dragend",((t,e)=>{this._finalizeDragging(!e.dataTransfer.isCanceled&&"move"==e.dataTransfer.dropEffect)}),{priority:"low"}),this._domEmitter.listenTo(Oo.document,"dragend",(()=>{this._blockMode=!1}),{useCapture:!0}),this.listenTo(o,"dragenter",(()=>{this.isEnabled&&n.focus()})),this.listenTo(o,"dragleave",(()=>{r.removeDropMarkerDelayed()})),this.listenTo(o,"dragging",((t,e)=>{if(!this.isEnabled)return void(e.dataTransfer.dropEffect="none");const{clientX:n,clientY:o}=e.domEvent;r.updateDropMarker(e.target,e.targetRanges,n,o,this._blockMode,this._draggedRange),this._draggedRange||(e.dataTransfer.dropEffect="copy"),i.isGecko||("copy"==e.dataTransfer.effectAllowed?e.dataTransfer.dropEffect="copy":["all","copyMove"].includes(e.dataTransfer.effectAllowed)&&(e.dataTransfer.dropEffect="move")),t.stop()}),{priority:"low"})}_setupClipboardInputIntegration(){const t=this.editor,e=t.editing.view.document,n=t.plugins.get(X_);this.listenTo(e,"clipboardInput",((e,o)=>{if("drop"!=o.method)return;const{clientX:i,clientY:r}=o.domEvent,s=n.getFinalDropRange(o.target,o.targetRanges,i,r,this._blockMode,this._draggedRange);if(!s)return this._finalizeDragging(!1),void e.stop();this._draggedRange&&this._draggingUid!=o.dataTransfer.getData("application/ckeditor5-dragging-uid")&&(this._draggedRange.detach(),this._draggedRange=null,this._draggingUid="");if("move"==lA(o.dataTransfer)&&this._draggedRange&&this._draggedRange.containsRange(s,!0))return this._finalizeDragging(!1),void e.stop();o.targetRanges=[t.editing.mapper.toViewRange(s)]}),{priority:"high"})}_setupContentInsertionIntegration(){const t=this.editor.plugins.get(c_);t.on("contentInsertion",((t,e)=>{if(!this.isEnabled||"drop"!==e.method)return;const n=e.targetRanges.map((t=>this.editor.editing.mapper.toModelRange(t)));this.editor.model.change((t=>t.setSelection(n)))}),{priority:"high"}),t.on("contentInsertion",((t,e)=>{if(!this.isEnabled||"drop"!==e.method)return;const n="move"==lA(e.dataTransfer),o=!e.resultRange||!e.resultRange.isCollapsed;this._finalizeDragging(o&&n)}),{priority:"lowest"})}_setupDraggableAttributeHandling(){const t=this.editor,e=t.editing.view,n=e.document;this.listenTo(n,"mousedown",((o,r)=>{if(i.isAndroid||!r)return;this._clearDraggableAttributesDelayed.cancel();let s=dA(r.target);if(i.isBlink&&!t.isReadOnly&&!s&&!n.selection.isCollapsed){const t=n.selection.getSelectedElement();t&&f_(t)||(s=n.selection.editableElement)}s&&(e.change((t=>{t.setAttribute("draggable","true",s)})),this._draggableElement=t.editing.mapper.toModelElement(s))})),this.listenTo(n,"mouseup",(()=>{i.isAndroid||this._clearDraggableAttributesDelayed()}))}_clearDraggableAttributes(){const t=this.editor.editing;t.view.change((e=>{this._draggableElement&&"$graveyard"!=this._draggableElement.root.rootName&&e.removeAttribute("draggable",t.mapper.toViewElement(this._draggableElement)),this._draggableElement=null}))}_finalizeDragging(t){const e=this.editor,n=e.model;if(e.plugins.get(X_).removeDropMarker(),this._clearDraggableAttributes(),e.plugins.has("WidgetToolbarRepository")){e.plugins.get("WidgetToolbarRepository").clearForceDisabled("dragDrop")}this._draggingUid="",this._previewContainer&&(this._previewContainer.remove(),this._previewContainer=void 0),this._draggedRange&&(t&&this.isEnabled&&n.change((t=>{const e=n.createSelection(this._draggedRange);n.deleteContent(e,{doNotAutoparagraph:!0});const o=e.getFirstPosition().parent;o.isEmpty&&!n.schema.checkChild(o,"$text")&&n.schema.checkChild(o,"paragraph")&&t.insertElement("paragraph",o,0)})),this._draggedRange.detach(),this._draggedRange=null)}_prepareDraggedRange(t){const e=this.editor,n=e.model,o=n.document.selection,i=t?dA(t):null;if(i){const t=e.editing.mapper.toModelElement(i);if(this._draggedRange=Il.fromRange(n.createRangeOn(t)),this._blockMode=n.schema.isBlock(t),e.plugins.has("WidgetToolbarRepository")){e.plugins.get("WidgetToolbarRepository").forceDisabled("dragDrop")}return}if(o.isCollapsed&&!o.getFirstPosition().parent.isEmpty)return;const r=Array.from(o.getSelectedBlocks()),s=o.getFirstRange();if(0==r.length)return void(this._draggedRange=Il.fromRange(s));const a=hA(n,r);if(r.length>1)this._draggedRange=Il.fromRange(a),this._blockMode=!0;else if(1==r.length){const t=s.start.isTouching(a.start)&&s.end.isTouching(a.end);this._draggedRange=Il.fromRange(t?a:s),this._blockMode=t}n.change((t=>t.setSelection(this._draggedRange.toRange())))}_updatePreview({dataTransfer:t,domTarget:e,clientX:n}){const o=this.editor.editing.view,r=o.document.selection.editableElement,s=o.domConverter.mapViewToDom(r),a=Oo.window.getComputedStyle(s);this._previewContainer?this._previewContainer.firstElementChild&&this._previewContainer.removeChild(this._previewContainer.firstElementChild):(this._previewContainer=Ct(Oo.document,"div",{style:"position: fixed; left: -999999px;"}),Oo.document.body.appendChild(this._previewContainer));const c=new Ko(s);if(s.contains(e))return;const l=parseFloat(a.paddingLeft),d=Ct(Oo.document,"div");d.className="ck ck-content",d.style.width=a.width,d.style.paddingLeft=`${c.left-n+l}px`,i.isiOS&&(d.style.backgroundColor="white"),d.innerHTML=t.getData("text/html"),t.setDragImage(d,0,0),this._previewContainer.appendChild(d)}}function lA(t){return i.isGecko?t.dropEffect:["all","copyMove"].includes(t.effectAllowed)?"move":"copy"}function dA(t){if(t.is("editableElement"))return null;if(t.hasClass("ck-widget__selection-handle"))return t.findAncestor(f_);if(f_(t))return t;const e=t.findAncestor((t=>f_(t)||t.is("editableElement")));return f_(e)?e:null}function hA(t,e){const n=e[0],o=e[e.length-1],i=n.getCommonAncestor(o),r=t.createPositionBefore(n),s=t.createPositionAfter(o);if(i&&i.is("element")&&!t.schema.isLimit(i)){const e=t.createRangeOn(i),n=r.isTouching(e.start),o=s.isTouching(e.end);if(n&&o)return hA(t,[i])}return t.createRange(r,s)}class uA extends Nr{static get pluginName(){return"PastePlainText"}static get requires(){return[c_]}init(){const t=this.editor,e=t.model,n=t.editing.view,o=n.document,i=e.document.selection;let r=!1;n.addObserver(Hw),this.listenTo(o,"keydown",((t,e)=>{r=e.shiftKey})),t.plugins.get(c_).on("contentInsertion",((t,n)=>{(r||function(t,e){if(t.childCount>1)return!1;const n=t.getChild(0);if(e.isObject(n))return!1;return 0==Array.from(n.getAttributeKeys()).length}(n.content,e.schema))&&e.change((t=>{const o=Array.from(i.getAttributes()).filter((([t])=>e.schema.getAttributeProperties(t).isFormatting));i.isCollapsed||e.deleteContent(i,{doNotAutoparagraph:!0}),o.push(...i.getAttributes());const r=t.createRangeIn(n.content);for(const e of r.getItems())e.is("$textProxy")&&t.setAttributes(o,e)}))}))}}class mA extends Nr{static get pluginName(){return"Clipboard"}static get requires(){return[a_,c_,cA,uA]}init(){const t=this.editor,e=this.editor.t;t.accessibility.addKeystrokeInfos({keystrokes:[{label:e("Copy selected content"),keystroke:"CTRL+C"},{label:e("Paste content"),keystroke:"CTRL+V"},{label:e("Paste content as plain text"),keystroke:"CTRL+SHIFT+V"}]})}}class gA extends qr{constructor(t){super(t),this.affectsData=!1}execute(){const t=this.editor.model,e=t.document.selection;let n=t.schema.getLimitElement(e);if(e.containsEntireContent(n)||!pA(t.schema,n))do{if(n=n.parent,!n)return}while(!pA(t.schema,n));t.change((t=>{t.setSelection(n,"in")}))}}function pA(t,e){return t.isLimit(e)&&(t.checkChild(e,"$text")||t.checkChild(e,"paragraph"))}const fA=vi("Ctrl+A");class kA extends Nr{static get pluginName(){return"SelectAllEditing"}init(){const t=this.editor,e=t.t,n=t.editing.view.document;t.commands.add("selectAll",new gA(t)),this.listenTo(n,"keydown",((e,n)=>{Ci(n)===fA&&(t.execute("selectAll"),n.preventDefault())})),t.accessibility.addKeystrokeInfos({keystrokes:[{label:e("Select all"),keystroke:"CTRL+A"}]})}}class bA extends Nr{static get pluginName(){return"SelectAllUI"}init(){const t=this.editor;t.ui.componentFactory.add("selectAll",(()=>{const t=this._createButton(om);return t.set({tooltip:!0}),t})),t.ui.componentFactory.add("menuBar:selectAll",(()=>this._createButton(Tm)))}_createButton(t){const e=this.editor,n=e.locale,o=e.commands.get("selectAll"),i=new t(e.locale),r=n.t;return i.set({label:r("Select all"),icon:' ',keystroke:"Ctrl+A"}),i.bind("isEnabled").to(o,"isEnabled"),this.listenTo(i,"execute",(()=>{e.execute("selectAll"),e.editing.view.focus()})),i}}class wA extends Nr{static get requires(){return[kA,bA]}static get pluginName(){return"SelectAll"}}class _A extends qr{_stack=[];_createdBatches=new WeakSet;constructor(t){super(t),this.refresh(),this._isEnabledBasedOnSelection=!1,this.listenTo(t.data,"set",((t,e)=>{e[1]={...e[1]};const n=e[1];n.batchType||(n.batchType={isUndoable:!1})}),{priority:"high"}),this.listenTo(t.data,"set",((t,e)=>{e[1].batchType.isUndoable||this.clearStack()}))}refresh(){this.isEnabled=this._stack.length>0}get createdBatches(){return this._createdBatches}addBatch(t){const e=this.editor.model.document.selection,n={ranges:e.hasOwnRange?Array.from(e.getRanges()):[],isBackward:e.isBackward};this._stack.push({batch:t,selection:n}),this.refresh()}clearStack(){this._stack=[],this.refresh()}_restoreSelection(t,e,n){const o=this.editor.model,i=o.document,r=[],s=t.map((t=>t.getTransformedByOperations(n))),a=s.flat();for(const t of s){const e=t.filter((t=>t.root!=i.graveyard)).filter((t=>!CA(t,a)));e.length&&(AA(e),r.push(e[0]))}r.length&&o.change((t=>{t.setSelection(r,{backward:e})}))}_undo(t,e){const n=this.editor.model,o=n.document;this._createdBatches.add(e);const i=t.operations.slice().filter((t=>t.isDocumentOperation));i.reverse();for(const t of i){const i=t.baseVersion+1,r=Array.from(o.history.getOperations(i)),s=uh([t.getReversed()],r,{useRelations:!0,document:this.editor.model.document,padWithNoOps:!1,forceWeakRemove:!0}).operationsA;for(let i of s){const r=i.affectedSelectable;r&&!n.canEditAt(r)&&(i=new nh(i.baseVersion)),e.addOperation(i),n.applyOperation(i),o.history.setOperationAsUndone(t,i)}}}}function AA(t){t.sort(((t,e)=>t.start.isBefore(e.start)?-1:1));for(let e=1;ee!==t&&e.containsRange(t,!0)))}class vA extends _A{execute(t=null){const e=t?this._stack.findIndex((e=>e.batch==t)):this._stack.length-1,n=this._stack.splice(e,1)[0],o=this.editor.model.createBatch({isUndo:!0});this.editor.model.enqueueChange(o,(()=>{this._undo(n.batch,o);const t=this.editor.model.document.history.getOperations(n.batch.baseVersion);this._restoreSelection(n.selection.ranges,n.selection.isBackward,t)})),this.fire("revert",n.batch,o),this.refresh()}}class yA extends _A{execute(){const t=this._stack.pop(),e=this.editor.model.createBatch({isUndo:!0});this.editor.model.enqueueChange(e,(()=>{const n=t.batch.operations[t.batch.operations.length-1].baseVersion+1,o=this.editor.model.document.history.getOperations(n);this._restoreSelection(t.selection.ranges,t.selection.isBackward,o),this._undo(t.batch,e)})),this.refresh()}}class xA extends Nr{_undoCommand;_redoCommand;_batchRegistry=new WeakSet;static get pluginName(){return"UndoEditing"}init(){const t=this.editor,e=t.t;this._undoCommand=new vA(t),this._redoCommand=new yA(t),t.commands.add("undo",this._undoCommand),t.commands.add("redo",this._redoCommand),this.listenTo(t.model,"applyOperation",((t,e)=>{const n=e[0];if(!n.isDocumentOperation)return;const o=n.batch,i=this._redoCommand.createdBatches.has(o),r=this._undoCommand.createdBatches.has(o);this._batchRegistry.has(o)||(this._batchRegistry.add(o),o.isUndoable&&(i?this._undoCommand.addBatch(o):r||(this._undoCommand.addBatch(o),this._redoCommand.clearStack())))}),{priority:"highest"}),this.listenTo(this._undoCommand,"revert",((t,e,n)=>{this._redoCommand.addBatch(n)})),t.keystrokes.set("CTRL+Z","undo"),t.keystrokes.set("CTRL+Y","redo"),t.keystrokes.set("CTRL+SHIFT+Z","redo"),t.accessibility.addKeystrokeInfos({keystrokes:[{label:e("Undo"),keystroke:"CTRL+Z"},{label:e("Redo"),keystroke:[["CTRL+Y"],["CTRL+SHIFT+Z"]]}]})}}class EA extends Nr{static get pluginName(){return"UndoUI"}init(){const t=this.editor,e=t.locale,n=t.t,o="ltr"==e.uiLanguageDirection?Ju.undo:Ju.redo,i="ltr"==e.uiLanguageDirection?Ju.redo:Ju.undo;this._addButtonsToFactory("undo",n("Undo"),"CTRL+Z",o),this._addButtonsToFactory("redo",n("Redo"),"CTRL+Y",i)}_addButtonsToFactory(t,e,n,o){const i=this.editor;i.ui.componentFactory.add(t,(()=>{const i=this._createButton(om,t,e,n,o);return i.set({tooltip:!0}),i})),i.ui.componentFactory.add("menuBar:"+t,(()=>this._createButton(Tm,t,e,n,o)))}_createButton(t,e,n,o,i){const r=this.editor,s=r.locale,a=r.commands.get(e),c=new t(s);return c.set({label:n,icon:i,keystroke:o}),c.bind("isEnabled").to(a,"isEnabled"),this.listenTo(c,"execute",(()=>{r.execute(e),r.editing.view.focus()})),c}}class DA extends Nr{static get requires(){return[xA,EA]}static get pluginName(){return"Undo"}}class BA extends qr{attributeKey;constructor(t,e){super(t),this.attributeKey=e}refresh(){const t=this.editor.model,e=t.document;this.value=e.selection.getAttribute(this.attributeKey),this.isEnabled=t.schema.checkAttributeInSelection(e.selection,this.attributeKey)}execute(t={}){const e=this.editor.model,n=e.document.selection,o=t.value,i=t.batch,r=t=>{if(n.isCollapsed)o?t.setSelectionAttribute(this.attributeKey,o):t.removeSelectionAttribute(this.attributeKey);else{const i=e.schema.getValidRanges(n.getRanges(),this.attributeKey);for(const e of i)o?t.setAttribute(this.attributeKey,o,e):t.removeAttribute(this.attributeKey,e)}};i?e.enqueueChange(i,(t=>{r(t)})):e.change((t=>{r(t)}))}}const TA="fontSize",SA="fontFamily",IA="fontColor",PA="fontBackgroundColor";function zA(t,e){const n={model:{key:t,values:[]},view:{},upcastAlso:{}};for(const t of e)n.model.values.push(t.model),n.view[t.model]=t.view,t.upcastAlso&&(n.upcastAlso[t.model]=t.upcastAlso);return n}function RA(t){return e=>e.getStyle(t).replace(/\s/g,"")}function LA(t){return(e,{writer:n})=>n.createAttributeElement("span",{style:`${t}:${e}`},{priority:7})}class FA extends BA{constructor(t){super(t,SA)}}function MA(t){return t.map(VA).filter((t=>void 0!==t))}function VA(t){return"object"==typeof t?t:"default"===t?{title:"Default",model:void 0}:"string"==typeof t?function(t){const e=t.replace(/"|'/g,"").split(","),n=e[0],o=e.map(OA).join(", ");return{title:n,model:o,view:{name:"span",styles:{"font-family":o},priority:7}}}(t):void 0}function OA(t){return(t=t.trim()).indexOf(" ")>0&&(t=`'${t}'`),t}class NA extends Nr{static get pluginName(){return"FontFamilyEditing"}constructor(t){super(t),t.config.define(SA,{options:["default","Arial, Helvetica, sans-serif","Courier New, Courier, monospace","Georgia, serif","Lucida Sans Unicode, Lucida Grande, sans-serif","Tahoma, Geneva, sans-serif","Times New Roman, Times, serif","Trebuchet MS, Helvetica, sans-serif","Verdana, Geneva, sans-serif"],supportAllValues:!1})}init(){const t=this.editor;t.model.schema.extend("$text",{allowAttributes:SA}),t.model.schema.setAttributeProperties(SA,{isFormatting:!0,copyOnEnter:!0});const e=MA(t.config.get("fontFamily.options")).filter((t=>t.model)),n=zA(SA,e);t.config.get("fontFamily.supportAllValues")?(this._prepareAnyValueConverters(),this._prepareCompatibilityConverter()):t.conversion.attributeToElement(n),t.commands.add(SA,new FA(t))}_prepareAnyValueConverters(){const t=this.editor;t.conversion.for("downcast").attributeToElement({model:SA,view:(t,{writer:e})=>e.createAttributeElement("span",{style:"font-family:"+t},{priority:7})}),t.conversion.for("upcast").elementToAttribute({model:{key:SA,value:t=>t.getStyle("font-family")},view:{name:"span",styles:{"font-family":/.*/}}})}_prepareCompatibilityConverter(){this.editor.conversion.for("upcast").elementToAttribute({view:{name:"font",attributes:{face:/.*/}},model:{key:SA,value:t=>t.getAttribute("face")}})}}const HA=' ';class qA extends Nr{static get pluginName(){return"FontFamilyUI"}init(){const t=this.editor,e=t.t,n=this._getLocalizedOptions(),o=t.commands.get(SA),i=e("Font Family"),r=function(t,e){const n=new Qi;for(const o of t){const t={type:"button",model:new If({commandName:SA,commandParam:o.model,label:o.title,role:"menuitemradio",withText:!0})};t.model.bind("isOn").to(e,"value",(t=>t===o.model||!(!t||!o.model)&&t.split(",")[0].replace(/'/g,"").toLowerCase()===o.model.toLowerCase())),o.view&&"string"!=typeof o.view&&o.view.styles&&t.model.set("labelStyle",`font-family: ${o.view.styles["font-family"]}`),n.add(t)}return n}(n,o);t.ui.componentFactory.add(SA,(e=>{const n=Ug(e);return Jg(n,r,{role:"menu",ariaLabel:i}),n.buttonView.set({label:i,icon:HA,tooltip:!0}),n.extendTemplate({attributes:{class:"ck-font-family-dropdown"}}),n.bind("isEnabled").to(o),this.listenTo(n,"execute",(e=>{t.execute(e.source.commandName,{value:e.source.commandParam}),t.editing.view.focus()})),n})),t.ui.componentFactory.add(`menuBar:${SA}`,(e=>{const n=new Pk(e);n.buttonView.set({label:i,icon:HA}),n.bind("isEnabled").to(o);const s=new zk(e);for(const o of r){const i=new dk(e,n),r=new Tm(e);r.bind(...Object.keys(o.model)).to(o.model),r.bind("ariaChecked").to(r,"isOn"),r.delegate("execute").to(n),r.on("execute",(()=>{t.execute(o.model.commandName,{value:o.model.commandParam}),t.editing.view.focus()})),i.children.add(r),s.items.add(i)}return n.panelView.children.add(s),n}))}_getLocalizedOptions(){const t=this.editor,e=t.t;return MA(t.config.get(SA).options).map((t=>("Default"===t.title&&(t.title=e("Default")),t)))}}class jA extends BA{constructor(t){super(t,TA)}}function WA(t){return t.map((t=>function(t){"number"==typeof t&&(t=String(t));if("object"==typeof t&&(e=t,e.title&&e.model&&e.view))return KA(t);var e;const n=function(t){return"string"==typeof t?GA[t]:GA[t.model]}(t);if(n)return KA(n);if("default"===t)return{model:void 0,title:"Default"};if(function(t){let e;if("object"==typeof t){if(!t.model)throw new x("font-size-invalid-definition",null,t);e=parseFloat(t.model)}else e=parseFloat(t);return isNaN(e)}(t))return;return function(t){"string"==typeof t&&(t={title:t,model:`${parseFloat(t)}px`});return t.view={name:"span",styles:{"font-size":t.model}},KA(t)}(t)}(t))).filter((t=>void 0!==t))}const GA={get tiny(){return{title:"Tiny",model:"tiny",view:{name:"span",classes:"text-tiny",priority:7}}},get small(){return{title:"Small",model:"small",view:{name:"span",classes:"text-small",priority:7}}},get big(){return{title:"Big",model:"big",view:{name:"span",classes:"text-big",priority:7}}},get huge(){return{title:"Huge",model:"huge",view:{name:"span",classes:"text-huge",priority:7}}}};function KA(t){return t.view&&"string"!=typeof t.view&&!t.view.priority&&(t.view.priority=7),t}const UA=["x-small","x-small","small","medium","large","x-large","xx-large","xxx-large"];class $A extends Nr{static get pluginName(){return"FontSizeEditing"}constructor(t){super(t),t.config.define(TA,{options:["tiny","small","default","big","huge"],supportAllValues:!1})}init(){const t=this.editor;t.model.schema.extend("$text",{allowAttributes:TA}),t.model.schema.setAttributeProperties(TA,{isFormatting:!0,copyOnEnter:!0});const e=t.config.get("fontSize.supportAllValues"),n=WA(this.editor.config.get("fontSize.options")).filter((t=>t.model)),o=zA(TA,n);e?(this._prepareAnyValueConverters(o),this._prepareCompatibilityConverter()):t.conversion.attributeToElement(o),t.commands.add(TA,new jA(t))}_prepareAnyValueConverters(t){const e=this.editor,n=t.model.values.filter((t=>!ku(String(t))&&!wu(String(t))));if(n.length)throw new x("font-size-invalid-use-of-named-presets",null,{presets:n});e.conversion.for("downcast").attributeToElement({model:TA,view:(t,{writer:e})=>{if(t)return e.createAttributeElement("span",{style:"font-size:"+t},{priority:7})}}),e.conversion.for("upcast").elementToAttribute({model:{key:TA,value:t=>t.getStyle("font-size")},view:{name:"span",styles:{"font-size":/.*/}}})}_prepareCompatibilityConverter(){this.editor.conversion.for("upcast").elementToAttribute({view:{name:"font",attributes:{size:/^[+-]?\d{1,3}$/}},model:{key:TA,value:t=>{const e=t.getAttribute("size"),n="-"===e[0]||"+"===e[0];let o=parseInt(e,10);n&&(o=3+o);const i=UA.length-1,r=Math.min(Math.max(o,0),i);return UA[r]}}})}}var ZA=n(1058),JA={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Pr()(ZA.A,JA);ZA.A.locals;const YA=' ';class QA extends Nr{static get pluginName(){return"FontSizeUI"}init(){const t=this.editor,e=t.t,n=this._getLocalizedOptions(),o=t.commands.get(TA),i=e("Font Size"),r=function(t,e){const n=new Qi;for(const o of t){const t={type:"button",model:new If({commandName:TA,commandParam:o.model,label:o.title,class:"ck-fontsize-option",role:"menuitemradio",withText:!0})};o.view&&"string"!=typeof o.view&&(o.view.styles&&t.model.set("labelStyle",`font-size:${o.view.styles["font-size"]}`),o.view.classes&&t.model.set("class",`${t.model.class} ${o.view.classes}`)),t.model.bind("isOn").to(e,"value",(t=>t===o.model)),n.add(t)}return n}(n,o);t.ui.componentFactory.add(TA,(e=>{const n=Ug(e);return Jg(n,r,{role:"menu",ariaLabel:i}),n.buttonView.set({label:i,icon:YA,tooltip:!0}),n.extendTemplate({attributes:{class:["ck-font-size-dropdown"]}}),n.bind("isEnabled").to(o),this.listenTo(n,"execute",(e=>{t.execute(e.source.commandName,{value:e.source.commandParam}),t.editing.view.focus()})),n})),t.ui.componentFactory.add(`menuBar:${TA}`,(e=>{const n=new Pk(e);n.buttonView.set({label:i,icon:YA}),n.bind("isEnabled").to(o);const s=new zk(e);for(const o of r){const i=new dk(e,n),r=new Tm(e);r.bind(...Object.keys(o.model)).to(o.model),r.bind("ariaChecked").to(r,"isOn"),r.delegate("execute").to(n),r.on("execute",(()=>{t.execute(o.model.commandName,{value:o.model.commandParam}),t.editing.view.focus()})),i.children.add(r),s.items.add(i)}return n.panelView.children.add(s),n}))}_getLocalizedOptions(){const t=this.editor,e=t.t,n={Default:e("Default"),Tiny:e("Tiny"),Small:e("Small"),Big:e("Big"),Huge:e("Huge")};return WA(t.config.get(TA).options).map((t=>{const e=n[t.title];return e&&e!=t.title&&(t=Object.assign({},t,{title:e})),t}))}}class XA extends BA{constructor(t){super(t,IA)}}class tC extends Nr{static get pluginName(){return"FontColorEditing"}constructor(t){super(t),t.config.define(IA,{colors:[{color:"hsl(0, 0%, 0%)",label:"Black"},{color:"hsl(0, 0%, 30%)",label:"Dim grey"},{color:"hsl(0, 0%, 60%)",label:"Grey"},{color:"hsl(0, 0%, 90%)",label:"Light grey"},{color:"hsl(0, 0%, 100%)",label:"White",hasBorder:!0},{color:"hsl(0, 75%, 60%)",label:"Red"},{color:"hsl(30, 75%, 60%)",label:"Orange"},{color:"hsl(60, 75%, 60%)",label:"Yellow"},{color:"hsl(90, 75%, 60%)",label:"Light green"},{color:"hsl(120, 75%, 60%)",label:"Green"},{color:"hsl(150, 75%, 60%)",label:"Aquamarine"},{color:"hsl(180, 75%, 60%)",label:"Turquoise"},{color:"hsl(210, 75%, 60%)",label:"Light blue"},{color:"hsl(240, 75%, 60%)",label:"Blue"},{color:"hsl(270, 75%, 60%)",label:"Purple"}],columns:5}),t.conversion.for("upcast").elementToAttribute({view:{name:"span",styles:{color:/[\s\S]+/}},model:{key:IA,value:RA("color")}}),t.conversion.for("upcast").elementToAttribute({view:{name:"font",attributes:{color:/^#?\w+$/}},model:{key:IA,value:t=>t.getAttribute("color")}}),t.conversion.for("downcast").attributeToElement({model:IA,view:LA("color")}),t.commands.add(IA,new XA(t)),t.model.schema.extend("$text",{allowAttributes:IA}),t.model.schema.setAttributeProperties(IA,{isFormatting:!0,copyOnEnter:!0})}}class eC extends Nr{commandName;componentName;icon;dropdownLabel;columns;constructor(t,{commandName:e,componentName:n,icon:o,dropdownLabel:i}){super(t),this.commandName=e,this.componentName=n,this.icon=o,this.dropdownLabel=i,this.columns=t.config.get(`${this.componentName}.columns`)}init(){const t=this.editor,e=t.locale,n=e.t,o=t.commands.get(this.commandName),i=t.config.get(this.componentName),r=Zm(e,Jm(i.colors)),s=i.documentColors,a=!1!==i.colorPicker;t.ui.componentFactory.add(this.componentName,(e=>{const c=Ug(e);let l=!1;const d=function({dropdownView:t,colors:e,columns:n,removeButtonLabel:o,colorPickerLabel:i,documentColorsLabel:r,documentColorsCount:s,colorPickerViewConfig:a}){const c=t.locale,l=new Up(c,{colors:e,columns:n,removeButtonLabel:o,colorPickerLabel:i,documentColorsLabel:r,documentColorsCount:s,colorPickerViewConfig:a});return t.colorSelectorView=l,t.panelView.children.add(l),l}({dropdownView:c,colors:r.map((t=>({label:t.label,color:t.model,options:{hasBorder:t.hasBorder}}))),columns:this.columns,removeButtonLabel:n("Remove color"),colorPickerLabel:n("Color picker"),documentColorsLabel:0!==s?n("Document colors"):"",documentColorsCount:void 0===s?this.columns:s,colorPickerViewConfig:!!a&&(i.colorPicker||{})});return d.bind("selectedColor").to(o,"value"),c.buttonView.set({label:this.dropdownLabel,icon:this.icon,tooltip:!0}),c.extendTemplate({attributes:{class:"ck-color-ui-dropdown"}}),c.bind("isEnabled").to(o),d.on("execute",((e,n)=>{c.isOpen&&t.execute(this.commandName,{value:n.value,batch:this._undoStepBatch}),"colorPicker"!==n.source&&t.editing.view.focus(),"colorPickerSaveButton"===n.source&&(c.isOpen=!1)})),d.on("colorPicker:show",(()=>{this._undoStepBatch=t.model.createBatch()})),d.on("colorPicker:cancel",(()=>{this._undoStepBatch.operations.length&&(c.isOpen=!1,t.execute("undo",this._undoStepBatch)),t.editing.view.focus()})),c.on("change:isOpen",((e,n,o)=>{l||(l=!0,c.colorSelectorView.appendUI()),o&&(0!==s&&d.updateDocumentColors(t.model,this.componentName),d.updateSelectedColors(),d.showColorGridsFragment())})),Qg(c,(()=>c.colorSelectorView.colorGridsFragmentView.staticColorsGrid.items.find((t=>t.isOn)))),c})),t.ui.componentFactory.add(`menuBar:${this.componentName}`,(e=>{const i=new Pk(e);i.buttonView.set({label:this.dropdownLabel,icon:this.icon}),i.bind("isEnabled").to(o);let a=!1;const c=new Up(e,{colors:r.map((t=>({label:t.label,color:t.model,options:{hasBorder:t.hasBorder}}))),columns:this.columns,removeButtonLabel:n("Remove color"),colorPickerLabel:n("Color picker"),documentColorsLabel:0!==s?n("Document colors"):"",documentColorsCount:void 0===s?this.columns:s,colorPickerViewConfig:!1});return c.bind("selectedColor").to(o,"value"),c.delegate("execute").to(i),c.on("execute",((e,n)=>{t.execute(this.commandName,{value:n.value,batch:this._undoStepBatch}),t.editing.view.focus()})),i.on("change:isOpen",((e,n,o)=>{a||(a=!0,c.appendUI()),o&&(0!==s&&c.updateDocumentColors(t.model,this.componentName),c.updateSelectedColors(),c.showColorGridsFragment())})),i.panelView.children.add(c),i}))}}class nC extends eC{constructor(t){const e=t.locale.t;super(t,{commandName:IA,componentName:IA,icon:' ',dropdownLabel:e("Font Color")})}static get pluginName(){return"FontColorUI"}}class oC extends BA{constructor(t){super(t,PA)}}class iC extends Nr{static get pluginName(){return"FontBackgroundColorEditing"}constructor(t){super(t),t.config.define(PA,{colors:[{color:"hsl(0, 0%, 0%)",label:"Black"},{color:"hsl(0, 0%, 30%)",label:"Dim grey"},{color:"hsl(0, 0%, 60%)",label:"Grey"},{color:"hsl(0, 0%, 90%)",label:"Light grey"},{color:"hsl(0, 0%, 100%)",label:"White",hasBorder:!0},{color:"hsl(0, 75%, 60%)",label:"Red"},{color:"hsl(30, 75%, 60%)",label:"Orange"},{color:"hsl(60, 75%, 60%)",label:"Yellow"},{color:"hsl(90, 75%, 60%)",label:"Light green"},{color:"hsl(120, 75%, 60%)",label:"Green"},{color:"hsl(150, 75%, 60%)",label:"Aquamarine"},{color:"hsl(180, 75%, 60%)",label:"Turquoise"},{color:"hsl(210, 75%, 60%)",label:"Light blue"},{color:"hsl(240, 75%, 60%)",label:"Blue"},{color:"hsl(270, 75%, 60%)",label:"Purple"}],columns:5}),t.data.addStyleProcessorRules(Pu),t.conversion.for("upcast").elementToAttribute({view:{name:"span",styles:{"background-color":/[\s\S]+/}},model:{key:PA,value:RA("background-color")}}),t.conversion.for("downcast").attributeToElement({model:PA,view:LA("background-color")}),t.commands.add(PA,new oC(t)),t.model.schema.extend("$text",{allowAttributes:PA}),t.model.schema.setAttributeProperties(PA,{isFormatting:!0,copyOnEnter:!0})}}class rC extends eC{constructor(t){const e=t.locale.t;super(t,{commandName:PA,componentName:PA,icon:' ',dropdownLabel:e("Font Background Color")})}static get pluginName(){return"FontBackgroundColorUI"}}class sC extends qr{constructor(t){super(t),this._isEnabledBasedOnSelection=!1}refresh(){const t=this.editor.model,e=Xi(t.document.selection.getSelectedBlocks());this.value=!!e&&e.is("element","paragraph"),this.isEnabled=!!e&&aC(e,t.schema)}execute(t={}){const e=this.editor.model,n=e.document,o=t.selection||n.selection;e.canEditAt(o)&&e.change((t=>{const n=o.getSelectedBlocks();for(const o of n)!o.is("element","paragraph")&&aC(o,e.schema)&&t.rename(o,"paragraph")}))}}function aC(t,e){return e.checkChild(t.parent,"paragraph")&&!e.isObject(t)}class cC extends qr{constructor(t){super(t),this._isEnabledBasedOnSelection=!1}execute(t){const e=this.editor.model,n=t.attributes;let o=t.position;e.canEditAt(o)&&e.change((t=>{if(o=this._findPositionToInsertParagraph(o,t),!o)return;const i=t.createElement("paragraph");n&&e.schema.setAllowedAttributes(i,n,t),e.insertContent(i,o),t.setSelection(i,"in")}))}_findPositionToInsertParagraph(t,e){const n=this.editor.model;if(n.schema.checkChild(t,"paragraph"))return t;const o=n.schema.findAllowedParent(t,"paragraph");if(!o)return null;const i=t.parent,r=n.schema.checkChild(i,"$text");return i.isEmpty||r&&t.isAtEnd?n.createPositionAfter(i):!i.isEmpty&&r&&t.isAtStart?n.createPositionBefore(i):e.split(t,o).position}}class lC extends Nr{static get pluginName(){return"Paragraph"}init(){const t=this.editor,e=t.model;t.commands.add("paragraph",new sC(t)),t.commands.add("insertParagraph",new cC(t)),e.schema.register("paragraph",{inheritAllFrom:"$block"}),t.conversion.elementToElement({model:"paragraph",view:"p"}),t.conversion.for("upcast").elementToElement({model:(t,{writer:e})=>lC.paragraphLikeElements.has(t.name)?t.isEmpty?null:e.createElement("paragraph"):null,view:/.+/,converterPriority:"low"})}static paragraphLikeElements=new Set(["blockquote","dd","div","dt","h1","h2","h3","h4","h5","h6","li","p","td","th"])}class dC extends qr{modelElements;constructor(t,e){super(t),this.modelElements=e}refresh(){const t=Xi(this.editor.model.document.selection.getSelectedBlocks());this.value=!!t&&this.modelElements.includes(t.name)&&t.name,this.isEnabled=!!t&&this.modelElements.some((e=>hC(t,e,this.editor.model.schema)))}execute(t){const e=this.editor.model,n=e.document,o=t.value;e.change((t=>{const i=Array.from(n.selection.getSelectedBlocks()).filter((t=>hC(t,o,e.schema)));for(const e of i)e.is("element",o)||t.rename(e,o)}))}}function hC(t,e,n){return n.checkChild(t.parent,e)&&!n.isObject(t)}const uC="paragraph";class mC extends Nr{static get pluginName(){return"HeadingEditing"}constructor(t){super(t),t.config.define("heading",{options:[{model:"paragraph",title:"Paragraph",class:"ck-heading_paragraph"},{model:"heading1",view:"h2",title:"Heading 1",class:"ck-heading_heading1"},{model:"heading2",view:"h3",title:"Heading 2",class:"ck-heading_heading2"},{model:"heading3",view:"h4",title:"Heading 3",class:"ck-heading_heading3"}]})}static get requires(){return[lC]}init(){const t=this.editor,e=t.config.get("heading.options"),n=[];for(const o of e)"paragraph"!==o.model&&(t.model.schema.register(o.model,{inheritAllFrom:"$block"}),t.conversion.elementToElement(o),n.push(o.model));this._addDefaultH1Conversion(t),t.commands.add("heading",new dC(t,n))}afterInit(){const t=this.editor,e=t.commands.get("enter"),n=t.config.get("heading.options");e&&this.listenTo(e,"afterExecute",((e,o)=>{const i=t.model.document.selection.getFirstPosition().parent;n.some((t=>i.is("element",t.model)))&&!i.is("element",uC)&&0===i.childCount&&o.writer.rename(i,uC)}))}_addDefaultH1Conversion(t){t.conversion.for("upcast").elementToElement({model:"heading1",view:"h1",converterPriority:C.low+1})}}var gC=n(6269),pC={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Pr()(gC.A,pC);gC.A.locals;class fC extends Nr{static get pluginName(){return"HeadingUI"}init(){const t=this.editor,e=t.t,n=function(t){const e=t.t,n={Paragraph:e("Paragraph"),"Heading 1":e("Heading 1"),"Heading 2":e("Heading 2"),"Heading 3":e("Heading 3"),"Heading 4":e("Heading 4"),"Heading 5":e("Heading 5"),"Heading 6":e("Heading 6")};return t.config.get("heading.options").map((t=>{const e=n[t.title];return e&&e!=t.title&&(t.title=e),t}))}(t),o=e("Choose heading"),i=e("Heading");t.ui.componentFactory.add("heading",(e=>{const r={},s=new Qi,a=t.commands.get("heading"),c=t.commands.get("paragraph"),l=[a];for(const t of n){const e={type:"button",model:new If({label:t.title,class:t.class,role:"menuitemradio",withText:!0})};"paragraph"===t.model?(e.model.bind("isOn").to(c,"value"),e.model.set("commandName","paragraph"),l.push(c)):(e.model.bind("isOn").to(a,"value",(e=>e===t.model)),e.model.set({commandName:"heading",commandValue:t.model})),s.add(e),r[t.model]=t.title}const d=Ug(e);return Jg(d,s,{ariaLabel:i,role:"menu"}),d.buttonView.set({ariaLabel:i,ariaLabelledBy:void 0,isOn:!1,withText:!0,tooltip:i}),d.extendTemplate({attributes:{class:["ck-heading-dropdown"]}}),d.bind("isEnabled").toMany(l,"isEnabled",((...t)=>t.some((t=>t)))),d.buttonView.bind("label").to(a,"value",c,"value",((t,e)=>{const n=e?"paragraph":t;return"boolean"==typeof n?o:r[n]?r[n]:o})),d.buttonView.bind("ariaLabel").to(a,"value",c,"value",((t,e)=>{const n=e?"paragraph":t;return"boolean"==typeof n?i:r[n]?`${r[n]}, ${i}`:i})),this.listenTo(d,"execute",(e=>{const{commandName:n,commandValue:o}=e.source;t.execute(n,o?{value:o}:void 0),t.editing.view.focus()})),d})),t.ui.componentFactory.add("menuBar:heading",(o=>{const i=new Pk(o),r=t.commands.get("heading"),s=t.commands.get("paragraph"),a=[r],c=new zk(o);i.set({class:"ck-heading-dropdown"}),c.set({ariaLabel:e("Heading"),role:"menu"}),i.buttonView.set({label:e("Heading")}),i.panelView.children.add(c);for(const e of n){const n=new dk(o,i),l=new Tm(o);n.children.add(l),c.items.add(n),l.set({label:e.title,role:"menuitemradio",class:e.class}),l.bind("ariaChecked").to(l,"isOn"),l.delegate("execute").to(i),l.on("execute",(()=>{const n="paragraph"===e.model?"paragraph":"heading";t.execute(n,{value:e.model}),t.editing.view.focus()})),"paragraph"===e.model?(l.bind("isOn").to(s,"value"),a.push(s)):l.bind("isOn").to(r,"value",(t=>t===e.model))}return i.bind("isEnabled").toMany(a,"isEnabled",((...t)=>t.some((t=>t)))),i}))}}class kC extends qr{refresh(){const t=this.editor.model,e=t.schema,n=t.document.selection;this.isEnabled=function(t,e,n){const o=function(t,e){const n=C_(t,e),o=n.start.parent;if(o.isEmpty&&!o.is("element","$root"))return o.parent;return o}(t,n);return e.checkChild(o,"horizontalLine")}(n,e,t)}execute(){const t=this.editor.model;t.change((e=>{const n=e.createElement("horizontalLine");t.insertObject(n,null,null,{setSelection:"after"})}))}}var bC=n(2626),wC={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Pr()(bC.A,wC);bC.A.locals;class _C extends Nr{static get pluginName(){return"HorizontalLineEditing"}init(){const t=this.editor,e=t.model.schema,n=t.t,o=t.conversion;e.register("horizontalLine",{inheritAllFrom:"$blockObject"}),o.for("dataDowncast").elementToElement({model:"horizontalLine",view:(t,{writer:e})=>e.createEmptyElement("hr")}),o.for("editingDowncast").elementToStructure({model:"horizontalLine",view:(t,{writer:e})=>{const o=n("Horizontal line"),i=e.createContainerElement("div",null,e.createEmptyElement("hr"));return e.addClass("ck-horizontal-line",i),e.setCustomProperty("hr",!0,i),function(t,e,n){return e.setCustomProperty("horizontalLine",!0,t),k_(t,e,{label:n})}(i,e,o)}}),o.for("upcast").elementToElement({view:"hr",model:"horizontalLine"}),t.commands.add("horizontalLine",new kC(t))}}class AC extends Nr{static get pluginName(){return"HorizontalLineUI"}init(){const t=this.editor;t.ui.componentFactory.add("horizontalLine",(()=>{const t=this._createButton(om);return t.set({tooltip:!0}),t})),t.ui.componentFactory.add("menuBar:horizontalLine",(()=>this._createButton(Tm)))}_createButton(t){const e=this.editor,n=e.locale,o=e.commands.get("horizontalLine"),i=new t(e.locale),r=n.t;return i.set({label:r("Horizontal line"),icon:Ju.horizontalLine}),i.bind("isEnabled").to(o,"isEnabled"),this.listenTo(i,"execute",(()=>{e.execute("horizontalLine"),e.editing.view.focus()})),i}}function CC(t){return t.createContainerElement("figure",{class:"image"},[t.createEmptyElement("img"),t.createSlot("children")])}function vC(t,e){const n=t.plugins.get("ImageUtils"),o=t.plugins.has("ImageInlineEditing")&&t.plugins.has("ImageBlockEditing");return t=>{if(!n.isInlineImageView(t))return null;if(!o)return i(t);return("block"==t.getStyle("display")||t.findAncestor(n.isBlockImageView)?"imageBlock":"imageInline")!==e?null:i(t)};function i(t){const e={name:!0};return t.hasAttribute("src")&&(e.attributes=["src"]),e}}function yC(t,e){const n=Xi(e.getSelectedBlocks());return!n||t.isObject(n)||n.isEmpty&&"listItem"!=n.name?"imageBlock":"imageInline"}function xC(t){return t&&t.endsWith("px")?parseInt(t):null}function EC(t){const e=xC(t.getStyle("width")),n=xC(t.getStyle("height"));return!(!e||!n)}const DC=/^(image|image-inline)$/;class BC extends Nr{_domEmitter=new(Lo());static get pluginName(){return"ImageUtils"}isImage(t){return this.isInlineImage(t)||this.isBlockImage(t)}isInlineImageView(t){return!!t&&t.is("element","img")}isBlockImageView(t){return!!t&&t.is("element","figure")&&t.hasClass("image")}insertImage(t={},e=null,n=null,o={}){const i=this.editor,r=i.model,s=r.document.selection,a=TC(i,e||s,n);t={...Object.fromEntries(s.getAttributes()),...t};for(const e in t)r.schema.checkAttribute(a,e)||delete t[e];return r.change((n=>{const{setImageSizes:i=!0}=o,s=n.createElement(a,t);return r.insertObject(s,e,null,{setSelection:"on",findOptimalPosition:e||"imageInline"==a?void 0:"auto"}),s.parent?(i&&this.setImageNaturalSizeAttributes(s),s):null}))}setImageNaturalSizeAttributes(t){const e=t.getAttribute("src");e&&(t.getAttribute("width")||t.getAttribute("height")||this.editor.model.change((n=>{const o=new Oo.window.Image;this._domEmitter.listenTo(o,"load",(()=>{t.getAttribute("width")||t.getAttribute("height")||this.editor.model.enqueueChange(n.batch,(e=>{e.setAttribute("width",o.naturalWidth,t),e.setAttribute("height",o.naturalHeight,t)})),this._domEmitter.stopListening(o,"load")})),o.src=e})))}getClosestSelectedImageWidget(t){const e=t.getFirstPosition();if(!e)return null;const n=t.getSelectedElement();if(n&&this.isImageWidget(n))return n;let o=e.parent;for(;o;){if(o.is("element")&&this.isImageWidget(o))return o;o=o.parent}return null}getClosestSelectedImageElement(t){const e=t.getSelectedElement();return this.isImage(e)?e:t.getFirstPosition().findAncestor("imageBlock")}getImageWidgetFromImageView(t){return t.findAncestor({classes:DC})}isImageAllowed(){const t=this.editor.model.document.selection;return function(t,e){const n=TC(t,e,null);if("imageBlock"==n){const n=function(t,e){const n=C_(t,e),o=n.start.parent;if(o.isEmpty&&!o.is("element","$root"))return o.parent;return o}(e,t.model);if(t.model.schema.checkChild(n,"imageBlock"))return!0}else if(t.model.schema.checkChild(e.focus,"imageInline"))return!0;return!1}(this.editor,t)&&function(t){return[...t.focus.getAncestors()].every((t=>!t.is("element","imageBlock")))}(t)}toImageWidget(t,e,n){e.setCustomProperty("image",!0,t);return k_(t,e,{label:()=>{const e=this.findViewImgElement(t).getAttribute("alt");return e?`${e} ${n}`:n}})}isImageWidget(t){return!!t.getCustomProperty("image")&&f_(t)}isBlockImage(t){return!!t&&t.is("element","imageBlock")}isInlineImage(t){return!!t&&t.is("element","imageInline")}findViewImgElement(t){if(this.isInlineImageView(t))return t;const e=this.editor.editing.view;for(const{item:n}of e.createRangeIn(t))if(this.isInlineImageView(n))return n}destroy(){return this._domEmitter.stopListening(),super.destroy()}}function TC(t,e,n){const o=t.model.schema,i=t.config.get("image.insert.type");return t.plugins.has("ImageBlockEditing")?t.plugins.has("ImageInlineEditing")?n||("inline"===i?"imageInline":"auto"!==i?"imageBlock":e.is("selection")?yC(o,e):o.checkChild(e,"imageInline")?"imageInline":"imageBlock"):"imageBlock":"imageInline"}new RegExp(String(/^(http(s)?:\/\/)?[\w-]+\.[\w.~:/[\]@!$&'()*+,;=%-]+/.source+/\.(jpg|jpeg|png|gif|ico|webp|JPG|JPEG|PNG|GIF|ICO|WEBP)/.source+/(\?[\w.~:/[\]@!$&'()*+,;=%-]*)?/.source+/(#[\w.~:/[\]@!$&'()*+,;=%-]*)?$/.source));class SC extends qr{refresh(){const t=this.editor.plugins.get("ImageUtils").getClosestSelectedImageElement(this.editor.model.document.selection);this.isEnabled=!!t,this.isEnabled&&t.hasAttribute("alt")?this.value=t.getAttribute("alt"):this.value=!1}execute(t){const e=this.editor,n=e.plugins.get("ImageUtils"),o=e.model,i=n.getClosestSelectedImageElement(o.document.selection);o.change((e=>{e.setAttribute("alt",t.newValue,i)}))}}class IC extends Nr{static get requires(){return[BC]}static get pluginName(){return"ImageTextAlternativeEditing"}init(){this.editor.commands.add("imageTextAlternative",new SC(this.editor))}}var PC=n(4062),zC={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Pr()(PC.A,zC);PC.A.locals;var RC=n(2722),LC={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Pr()(RC.A,LC);RC.A.locals;class FC extends Lr{focusTracker;keystrokes;labeledInput;saveButtonView;cancelButtonView;_focusables;_focusCycler;constructor(t){super(t);const e=this.locale.t;this.focusTracker=new tr,this.keystrokes=new er,this.labeledInput=this._createLabeledInputView(),this.saveButtonView=this._createButton(e("Save"),Ju.check,"ck-button-save"),this.saveButtonView.type="submit",this.cancelButtonView=this._createButton(e("Cancel"),Ju.cancel,"ck-button-cancel","cancel"),this._focusables=new lr,this._focusCycler=new am({focusables:this._focusables,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"shift + tab",focusNext:"tab"}}),this.setTemplate({tag:"form",attributes:{class:["ck","ck-text-alternative-form","ck-responsive-form"],tabindex:"-1"},children:[this.labeledInput,this.saveButtonView,this.cancelButtonView]})}render(){super.render(),this.keystrokes.listenTo(this.element),Vr({view:this}),[this.labeledInput,this.saveButtonView,this.cancelButtonView].forEach((t=>{this._focusables.add(t),this.focusTracker.add(t.element)}))}destroy(){super.destroy(),this.focusTracker.destroy(),this.keystrokes.destroy()}_createButton(t,e,n,o){const i=new om(this.locale);return i.set({label:t,icon:e,tooltip:!0}),i.extendTemplate({attributes:{class:n}}),o&&i.delegate("execute").to(this,o),i}_createLabeledInputView(){const t=this.locale.t,e=new dg(this.locale,tp);return e.label=t("Text alternative"),e}}function MC(t){const e=t.editing.view,n=tf.defaultPositions,o=t.plugins.get("ImageUtils");return{target:e.domConverter.mapViewToDom(o.getClosestSelectedImageWidget(e.document.selection)),positions:[n.northArrowSouth,n.northArrowSouthWest,n.northArrowSouthEast,n.southArrowNorth,n.southArrowNorthWest,n.southArrowNorthEast,n.viewportStickyNorth]}}class VC extends Nr{_balloon;_form;static get requires(){return[Mf]}static get pluginName(){return"ImageTextAlternativeUI"}init(){this._createButton()}destroy(){super.destroy(),this._form&&this._form.destroy()}_createButton(){const t=this.editor,e=t.t;t.ui.componentFactory.add("imageTextAlternative",(n=>{const o=t.commands.get("imageTextAlternative"),i=new om(n);return i.set({label:e("Change image text alternative"),icon:Ju.textAlternative,tooltip:!0}),i.bind("isEnabled").to(o,"isEnabled"),i.bind("isOn").to(o,"value",(t=>!!t)),this.listenTo(i,"execute",(()=>{this._showForm()})),i}))}_createForm(){const t=this.editor,e=t.editing.view.document,n=t.plugins.get("ImageUtils");this._balloon=this.editor.plugins.get("ContextualBalloon"),this._form=new(Mr(FC))(t.locale),this._form.render(),this.listenTo(this._form,"submit",(()=>{t.execute("imageTextAlternative",{newValue:this._form.labeledInput.fieldView.element.value}),this._hideForm(!0)})),this.listenTo(this._form,"cancel",(()=>{this._hideForm(!0)})),this._form.keystrokes.set("Esc",((t,e)=>{this._hideForm(!0),e()})),this.listenTo(t.ui,"update",(()=>{n.getClosestSelectedImageWidget(e.selection)?this._isVisible&&function(t){const e=t.plugins.get("ContextualBalloon");if(t.plugins.get("ImageUtils").getClosestSelectedImageWidget(t.editing.view.document.selection)){const n=MC(t);e.updatePosition(n)}}(t):this._hideForm(!0)})),Fr({emitter:this._form,activator:()=>this._isVisible,contextElements:()=>[this._balloon.view.element],callback:()=>this._hideForm()})}_showForm(){if(this._isVisible)return;this._form||this._createForm();const t=this.editor,e=t.commands.get("imageTextAlternative"),n=this._form.labeledInput;this._form.disableCssTransitions(),this._isInBalloon||this._balloon.add({view:this._form,position:MC(t)}),n.fieldView.value=n.fieldView.element.value=e.value||"",this._form.labeledInput.fieldView.select(),this._form.enableCssTransitions()}_hideForm(t=!1){this._isInBalloon&&(this._form.focusTracker.isFocused&&this._form.saveButtonView.focus(),this._balloon.remove(this._form),t&&this.editor.editing.view.focus())}get _isVisible(){return!!this._balloon&&this._balloon.visibleView===this._form}get _isInBalloon(){return!!this._balloon&&this._balloon.hasView(this._form)}}class OC extends Nr{static get requires(){return[IC,VC]}static get pluginName(){return"ImageTextAlternative"}}function NC(t,e){const n=(e,n,o)=>{if(!o.consumable.consume(n.item,e.name))return;const i=o.writer,r=o.mapper.toViewElement(n.item),s=t.findViewImgElement(r);null===n.attributeNewValue?(i.removeAttribute("srcset",s),i.removeAttribute("sizes",s)):n.attributeNewValue&&(i.setAttribute("srcset",n.attributeNewValue,s),i.setAttribute("sizes","100vw",s))};return t=>{t.on(`attribute:srcset:${e}`,n)}}function HC(t,e,n){const o=(e,n,o)=>{if(!o.consumable.consume(n.item,e.name))return;const i=o.writer,r=o.mapper.toViewElement(n.item),s=t.findViewImgElement(r);i.setAttribute(n.attributeKey,n.attributeNewValue||"",s)};return t=>{t.on(`attribute:${n}:${e}`,o)}}class qC extends rc{observe(t){this.listenTo(t,"load",((t,e)=>{const n=e.target;this.checkShouldIgnoreEventFromTarget(n)||"IMG"==n.tagName&&this._fireEvents(e)}),{useCapture:!0})}stopObserving(t){this.stopListening(t)}_fireEvents(t){this.isEnabled&&(this.document.fire("layoutChanged"),this.document.fire("imageLoaded",t))}}class jC extends qr{constructor(t){super(t);const e=t.config.get("image.insert.type");t.plugins.has("ImageBlockEditing")||"block"===e&&E("image-block-plugin-required"),t.plugins.has("ImageInlineEditing")||"inline"===e&&E("image-inline-plugin-required")}refresh(){const t=this.editor.plugins.get("ImageUtils");this.isEnabled=t.isImageAllowed()}execute(t){const e=Di(t.source),n=this.editor.model.document.selection,o=this.editor.plugins.get("ImageUtils"),i=Object.fromEntries(n.getAttributes());e.forEach(((t,e)=>{const r=n.getSelectedElement();if("string"==typeof t&&(t={src:t}),e&&r&&o.isImage(r)){const e=this.editor.model.createPositionAfter(r);o.insertImage({...t,...i},e)}else o.insertImage({...t,...i})}))}}class WC extends qr{constructor(t){super(t),this.decorate("cleanupImage")}refresh(){const t=this.editor.plugins.get("ImageUtils"),e=this.editor.model.document.selection.getSelectedElement();this.isEnabled=t.isImage(e),this.value=this.isEnabled?e.getAttribute("src"):null}execute(t){const e=this.editor.model.document.selection.getSelectedElement(),n=this.editor.plugins.get("ImageUtils");this.editor.model.change((o=>{o.setAttribute("src",t.source,e),this.cleanupImage(o,e),n.setImageNaturalSizeAttributes(e)}))}cleanupImage(t,e){t.removeAttribute("srcset",e),t.removeAttribute("sizes",e),t.removeAttribute("sources",e),t.removeAttribute("width",e),t.removeAttribute("height",e),t.removeAttribute("alt",e)}}class GC extends Nr{static get requires(){return[BC]}static get pluginName(){return"ImageEditing"}init(){const t=this.editor,e=t.conversion;t.editing.view.addObserver(qC),e.for("upcast").attributeToAttribute({view:{name:"img",key:"alt"},model:"alt"}).attributeToAttribute({view:{name:"img",key:"srcset"},model:"srcset"});const n=new jC(t),o=new WC(t);t.commands.add("insertImage",n),t.commands.add("replaceImageSource",o),t.commands.add("imageInsert",n)}}class KC extends Nr{static get requires(){return[BC]}static get pluginName(){return"ImageSizeAttributes"}afterInit(){this._registerSchema(),this._registerConverters("imageBlock"),this._registerConverters("imageInline")}_registerSchema(){this.editor.plugins.has("ImageBlockEditing")&&this.editor.model.schema.extend("imageBlock",{allowAttributes:["width","height"]}),this.editor.plugins.has("ImageInlineEditing")&&this.editor.model.schema.extend("imageInline",{allowAttributes:["width","height"]})}_registerConverters(t){const e=this.editor,n=e.plugins.get("ImageUtils"),o="imageBlock"===t?"figure":"img";function i(e,o,i,r){e.on(`attribute:${o}:${t}`,((e,o,s)=>{if(!s.consumable.consume(o.item,e.name))return;const a=s.writer,c=s.mapper.toViewElement(o.item),l=n.findViewImgElement(c);if(null!==o.attributeNewValue?a.setAttribute(i,o.attributeNewValue,l):a.removeAttribute(i,l),o.item.hasAttribute("sources"))return;const d=o.item.hasAttribute("resizedWidth");if("imageInline"===t&&!d&&!r)return;const h=o.item.getAttribute("width"),u=o.item.getAttribute("height");h&&u&&a.setStyle("aspect-ratio",`${h}/${u}`,l)}))}e.conversion.for("upcast").attributeToAttribute({view:{name:o,styles:{width:/.+/}},model:{key:"width",value:t=>EC(t)?xC(t.getStyle("width")):null}}).attributeToAttribute({view:{name:o,key:"width"},model:"width"}).attributeToAttribute({view:{name:o,styles:{height:/.+/}},model:{key:"height",value:t=>EC(t)?xC(t.getStyle("height")):null}}).attributeToAttribute({view:{name:o,key:"height"},model:"height"}),e.conversion.for("editingDowncast").add((t=>{i(t,"width","width",!0),i(t,"height","height",!0)})),e.conversion.for("dataDowncast").add((t=>{i(t,"width","width",!1),i(t,"height","height",!1)}))}}class UC extends qr{_modelElementName;constructor(t,e){super(t),this._modelElementName=e}refresh(){const t=this.editor.plugins.get("ImageUtils"),e=t.getClosestSelectedImageElement(this.editor.model.document.selection);"imageBlock"===this._modelElementName?this.isEnabled=t.isInlineImage(e):this.isEnabled=t.isBlockImage(e)}execute(t={}){const e=this.editor,n=this.editor.model,o=e.plugins.get("ImageUtils"),i=o.getClosestSelectedImageElement(n.document.selection),r=Object.fromEntries(i.getAttributes());return r.src||r.uploadId?n.change((e=>{const{setImageSizes:s=!0}=t,a=Array.from(n.markers).filter((t=>t.getRange().containsItem(i))),c=o.insertImage(r,n.createSelection(i,"on"),this._modelElementName,{setImageSizes:s});if(!c)return null;const l=e.createRangeOn(c);for(const t of a){const n=t.getRange(),o="$graveyard"!=n.root.rootName?n.getJoined(l,!0):l;e.updateMarker(t,{range:o})}return{oldElement:i,newElement:c}})):null}}var $C=n(7378),ZC={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Pr()($C.A,ZC);$C.A.locals;class JC extends Nr{static get requires(){return[BC]}static get pluginName(){return"ImagePlaceholder"}afterInit(){this._setupSchema(),this._setupConversion(),this._setupLoadListener()}_setupSchema(){const t=this.editor.model.schema;t.isRegistered("imageBlock")&&t.extend("imageBlock",{allowAttributes:["placeholder"]}),t.isRegistered("imageInline")&&t.extend("imageInline",{allowAttributes:["placeholder"]})}_setupConversion(){const t=this.editor,e=t.conversion,n=t.plugins.get("ImageUtils");e.for("editingDowncast").add((t=>{t.on("attribute:placeholder",((t,e,o)=>{if(!o.consumable.test(e.item,t.name))return;if(!e.item.is("element","imageBlock")&&!e.item.is("element","imageInline"))return;o.consumable.consume(e.item,t.name);const i=o.writer,r=o.mapper.toViewElement(e.item),s=n.findViewImgElement(r);e.attributeNewValue?(i.addClass("image_placeholder",s),i.setStyle("background-image",`url(${e.attributeNewValue})`,s),i.setCustomProperty("editingPipeline:doNotReuseOnce",!0,s)):(i.removeClass("image_placeholder",s),i.removeStyle("background-image",s))}))}))}_setupLoadListener(){const t=this.editor,e=t.model,n=t.editing,o=n.view,i=t.plugins.get("ImageUtils");o.addObserver(qC),this.listenTo(o.document,"imageLoaded",((t,r)=>{const s=o.domConverter.mapDomToView(r.target);if(!s)return;const a=i.getImageWidgetFromImageView(s);if(!a)return;const c=n.mapper.toModelElement(a);c&&c.hasAttribute("placeholder")&&e.enqueueChange({isUndoable:!1},(t=>{t.removeAttribute("placeholder",c)}))}))}}class YC extends Nr{static get requires(){return[GC,KC,BC,JC,c_]}static get pluginName(){return"ImageBlockEditing"}init(){const t=this.editor;t.model.schema.register("imageBlock",{inheritAllFrom:"$blockObject",allowAttributes:["alt","src","srcset"]}),this._setupConversion(),t.plugins.has("ImageInlineEditing")&&(t.commands.add("imageTypeBlock",new UC(this.editor,"imageBlock")),this._setupClipboardIntegration())}_setupConversion(){const t=this.editor,e=t.t,n=t.conversion,o=t.plugins.get("ImageUtils");n.for("dataDowncast").elementToStructure({model:"imageBlock",view:(t,{writer:e})=>CC(e)}),n.for("editingDowncast").elementToStructure({model:"imageBlock",view:(t,{writer:n})=>o.toImageWidget(CC(n),n,e("image widget"))}),n.for("downcast").add(HC(o,"imageBlock","src")).add(HC(o,"imageBlock","alt")).add(NC(o,"imageBlock")),n.for("upcast").elementToElement({view:vC(t,"imageBlock"),model:(t,{writer:e})=>e.createElement("imageBlock",t.hasAttribute("src")?{src:t.getAttribute("src")}:void 0)}).add(function(t){const e=(e,n,o)=>{if(!o.consumable.test(n.viewItem,{name:!0,classes:"image"}))return;const i=t.findViewImgElement(n.viewItem);if(!i||!o.consumable.test(i,{name:!0}))return;o.consumable.consume(n.viewItem,{name:!0,classes:"image"});const r=Xi(o.convertItem(i,n.modelCursor).modelRange.getItems());r?(o.convertChildren(n.viewItem,r),o.updateConversionResult(r,n)):o.consumable.revert(n.viewItem,{name:!0,classes:"image"})};return t=>{t.on("element:figure",e)}}(o))}_setupClipboardIntegration(){const t=this.editor,e=t.model,n=t.editing.view,o=t.plugins.get("ImageUtils"),i=t.plugins.get("ClipboardPipeline");this.listenTo(i,"inputTransformation",((i,r)=>{const s=Array.from(r.content.getChildren());let a;if(!s.every(o.isInlineImageView))return;a=r.targetRanges?t.editing.mapper.toModelRange(r.targetRanges[0]):e.document.selection.getFirstRange();const c=e.createSelection(a);if("imageBlock"===yC(e.schema,c)){const t=new ru(n.document),e=s.map((e=>t.createElement("figure",{class:"image"},e)));r.content=t.createDocumentFragment(e)}})),this.listenTo(i,"contentInsertion",((t,n)=>{"paste"===n.method&&e.change((t=>{const e=t.createRangeIn(n.content);for(const t of e.getItems())t.is("element","imageBlock")&&o.setImageNaturalSizeAttributes(t)}))}))}}var QC=n(3350),XC={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Pr()(QC.A,XC);QC.A.locals;class tv extends Lr{focusTracker;keystrokes;_focusables;_focusCycler;children;constructor(t,e=[]){super(t),this.focusTracker=new tr,this.keystrokes=new er,this._focusables=new lr,this.children=this.createCollection(),this._focusCycler=new am({focusables:this._focusables,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"shift + tab",focusNext:"tab"}});for(const t of e)this.children.add(t),this._focusables.add(t),t instanceof $m&&this._focusables.addMany(t.children);if(this._focusables.length>1)for(const t of this._focusables)ev(t)&&(t.focusCycler.on("forwardCycle",(t=>{this._focusCycler.focusNext(),t.stop()})),t.focusCycler.on("backwardCycle",(t=>{this._focusCycler.focusPrevious(),t.stop()})));this.setTemplate({tag:"form",attributes:{class:["ck","ck-image-insert-form"],tabindex:-1},children:this.children})}render(){super.render(),Vr({view:this});for(const t of this._focusables)this.focusTracker.add(t.element);this.keystrokes.listenTo(this.element);const t=t=>t.stopPropagation();this.keystrokes.set("arrowright",t),this.keystrokes.set("arrowleft",t),this.keystrokes.set("arrowup",t),this.keystrokes.set("arrowdown",t)}destroy(){super.destroy(),this.focusTracker.destroy(),this.keystrokes.destroy()}focus(){this._focusCycler.focusFirst()}}function ev(t){return"focusCycler"in t}class nv extends Nr{static get pluginName(){return"ImageInsertUI"}static get requires(){return[BC]}dropdownView;_integrations=new Map;constructor(t){super(t),t.config.define("image.insert.integrations",["upload","assetManager","url"])}init(){const t=this.editor,e=t.model.document.selection,n=t.plugins.get("ImageUtils");this.set("isImageSelected",!1),this.listenTo(t.model.document,"change",(()=>{this.isImageSelected=n.isImage(e.getSelectedElement())}));const o=t=>this._createToolbarComponent(t);t.ui.componentFactory.add("insertImage",o),t.ui.componentFactory.add("imageInsert",o)}registerIntegration({name:t,observable:e,buttonViewCreator:n,formViewCreator:o,requiresForm:i}){this._integrations.has(t)&&E("image-insert-integration-exists",{name:t}),this._integrations.set(t,{observable:e,buttonViewCreator:n,formViewCreator:o,requiresForm:!!i})}_createToolbarComponent(t){const e=this.editor,n=t.t,o=this._prepareIntegrations();if(!o.length)return null;let i;const r=o[0];if(1==o.length){if(!r.requiresForm)return r.buttonViewCreator(!0);i=r.buttonViewCreator(!0)}else{const e=r.buttonViewCreator(!1);i=new qg(t,e),i.tooltip=!0,i.bind("label").to(this,"isImageSelected",(t=>n(t?"Replace image":"Insert image")))}const s=this.dropdownView=Ug(t,i),a=o.map((({observable:t})=>"function"==typeof t?t():t));return s.bind("isEnabled").toMany(a,"isEnabled",((...t)=>t.some((t=>t)))),s.once("change:isOpen",(()=>{const t=o.map((({formViewCreator:t})=>t(1==o.length))),n=new tv(e.locale,t);s.panelView.children.add(n)})),s}_prepareIntegrations(){const t=this.editor.config.get("image.insert.integrations"),e=[];if(!t.length)return E("image-insert-integrations-not-specified"),e;for(const n of t)this._integrations.has(n)?e.push(this._integrations.get(n)):["upload","assetManager","url"].includes(n)||E("image-insert-unknown-integration",{item:n});return e.length||E("image-insert-integrations-not-registered"),e}}var ov=n(265),iv={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Pr()(ov.A,iv);ov.A.locals;class rv extends Nr{static get requires(){return[YC,O_,OC,nv]}static get pluginName(){return"ImageBlock"}}class sv extends Nr{static get requires(){return[GC,KC,BC,JC,c_]}static get pluginName(){return"ImageInlineEditing"}init(){const t=this.editor,e=t.model.schema;e.register("imageInline",{inheritAllFrom:"$inlineObject",allowAttributes:["alt","src","srcset"]}),e.addChildCheck(((t,e)=>{if(t.endsWith("caption")&&"imageInline"===e.name)return!1})),this._setupConversion(),t.plugins.has("ImageBlockEditing")&&(t.commands.add("imageTypeInline",new UC(this.editor,"imageInline")),this._setupClipboardIntegration())}_setupConversion(){const t=this.editor,e=t.t,n=t.conversion,o=t.plugins.get("ImageUtils");n.for("dataDowncast").elementToElement({model:"imageInline",view:(t,{writer:e})=>e.createEmptyElement("img")}),n.for("editingDowncast").elementToStructure({model:"imageInline",view:(t,{writer:n})=>o.toImageWidget(function(t){return t.createContainerElement("span",{class:"image-inline"},t.createEmptyElement("img"))}(n),n,e("image widget"))}),n.for("downcast").add(HC(o,"imageInline","src")).add(HC(o,"imageInline","alt")).add(NC(o,"imageInline")),n.for("upcast").elementToElement({view:vC(t,"imageInline"),model:(t,{writer:e})=>e.createElement("imageInline",t.hasAttribute("src")?{src:t.getAttribute("src")}:void 0)})}_setupClipboardIntegration(){const t=this.editor,e=t.model,n=t.editing.view,o=t.plugins.get("ImageUtils"),i=t.plugins.get("ClipboardPipeline");this.listenTo(i,"inputTransformation",((i,r)=>{const s=Array.from(r.content.getChildren());let a;if(!s.every(o.isBlockImageView))return;a=r.targetRanges?t.editing.mapper.toModelRange(r.targetRanges[0]):e.document.selection.getFirstRange();const c=e.createSelection(a);if("imageInline"===yC(e.schema,c)){const t=new ru(n.document),e=s.map((e=>1===e.childCount?(Array.from(e.getAttributes()).forEach((n=>t.setAttribute(...n,o.findViewImgElement(e)))),e.getChild(0)):e));r.content=t.createDocumentFragment(e)}})),this.listenTo(i,"contentInsertion",((t,n)=>{"paste"===n.method&&e.change((t=>{const e=t.createRangeIn(n.content);for(const t of e.getItems())t.is("element","imageInline")&&o.setImageNaturalSizeAttributes(t)}))}))}}class av extends Nr{static get requires(){return[sv,O_,OC,nv]}static get pluginName(){return"ImageInline"}}class cv extends Nr{static get pluginName(){return"ImageCaptionUtils"}static get requires(){return[BC]}getCaptionFromImageModelElement(t){for(const e of t.getChildren())if(e&&e.is("element","caption"))return e;return null}getCaptionFromModelSelection(t){const e=this.editor.plugins.get("ImageUtils"),n=t.getFirstPosition().findAncestor("caption");return n&&e.isBlockImage(n.parent)?n:null}matchImageCaptionViewElement(t){const e=this.editor.plugins.get("ImageUtils");return"figcaption"==t.name&&e.isBlockImageView(t.parent)?{name:!0}:null}}class lv extends qr{refresh(){const t=this.editor,e=t.plugins.get("ImageCaptionUtils"),n=t.plugins.get("ImageUtils");if(!t.plugins.has(YC))return this.isEnabled=!1,void(this.value=!1);const o=t.model.document.selection,i=o.getSelectedElement();if(!i){const t=e.getCaptionFromModelSelection(o);return this.isEnabled=!!t,void(this.value=!!t)}this.isEnabled=n.isImage(i),this.isEnabled?this.value=!!e.getCaptionFromImageModelElement(i):this.value=!1}execute(t={}){const{focusCaptionOnShow:e}=t;this.editor.model.change((t=>{this.value?this._hideImageCaption(t):this._showImageCaption(t,e)}))}_showImageCaption(t,e){const n=this.editor.model.document.selection,o=this.editor.plugins.get("ImageCaptionEditing"),i=this.editor.plugins.get("ImageUtils");let r=n.getSelectedElement();const s=o._getSavedCaption(r);i.isInlineImage(r)&&(this.editor.execute("imageTypeBlock"),r=n.getSelectedElement());const a=s||t.createElement("caption");t.append(a,r),e&&t.setSelection(a,"in")}_hideImageCaption(t){const e=this.editor,n=e.model.document.selection,o=e.plugins.get("ImageCaptionEditing"),i=e.plugins.get("ImageCaptionUtils");let r,s=n.getSelectedElement();s?r=i.getCaptionFromImageModelElement(s):(r=i.getCaptionFromModelSelection(n),s=r.parent),o._saveCaption(s,r),t.setSelection(s,"on"),t.remove(r)}}class dv extends Nr{static get requires(){return[BC,cv]}static get pluginName(){return"ImageCaptionEditing"}_savedCaptionsMap;constructor(t){super(t),this._savedCaptionsMap=new WeakMap}init(){const t=this.editor,e=t.model.schema;e.isRegistered("caption")?e.extend("caption",{allowIn:"imageBlock"}):e.register("caption",{allowIn:"imageBlock",allowContentOf:"$block",isLimit:!0}),t.commands.add("toggleImageCaption",new lv(this.editor)),this._setupConversion(),this._setupImageTypeCommandsIntegration(),this._registerCaptionReconversion()}_setupConversion(){const t=this.editor,e=t.editing.view,n=t.plugins.get("ImageUtils"),o=t.plugins.get("ImageCaptionUtils"),i=t.t;t.conversion.for("upcast").elementToElement({view:t=>o.matchImageCaptionViewElement(t),model:"caption"}),t.conversion.for("dataDowncast").elementToElement({model:"caption",view:(t,{writer:e})=>n.isBlockImage(t.parent)?e.createContainerElement("figcaption"):null}),t.conversion.for("editingDowncast").elementToElement({model:"caption",view:(t,{writer:o})=>{if(!n.isBlockImage(t.parent))return null;const r=o.createEditableElement("figcaption");o.setCustomProperty("imageCaption",!0,r),r.placeholder=i("Enter image caption"),Xr({view:e,element:r,keepOnFocus:!0});const s=t.parent.getAttribute("alt");return A_(r,o,{label:s?i("Caption for image: %0",[s]):i("Caption for the image")})}})}_setupImageTypeCommandsIntegration(){const t=this.editor,e=t.plugins.get("ImageUtils"),n=t.plugins.get("ImageCaptionUtils"),o=t.commands.get("imageTypeInline"),i=t.commands.get("imageTypeBlock"),r=t=>{if(!t.return)return;const{oldElement:o,newElement:i}=t.return;if(!o)return;if(e.isBlockImage(o)){const t=n.getCaptionFromImageModelElement(o);if(t)return void this._saveCaption(i,t)}const r=this._getSavedCaption(o);r&&this._saveCaption(i,r)};o&&this.listenTo(o,"execute",r,{priority:"low"}),i&&this.listenTo(i,"execute",r,{priority:"low"})}_getSavedCaption(t){const e=this._savedCaptionsMap.get(t);return e?cl.fromJSON(e):null}_saveCaption(t,e){this._savedCaptionsMap.set(t,e.toJSON())}_registerCaptionReconversion(){const t=this.editor,e=t.model,n=t.plugins.get("ImageUtils"),o=t.plugins.get("ImageCaptionUtils");e.document.on("change:data",(()=>{const i=e.document.differ.getChanges();for(const e of i){if("alt"!==e.attributeKey)continue;const i=e.range.start.nodeAfter;if(n.isBlockImage(i)){const e=o.getCaptionFromImageModelElement(i);if(!e)return;t.editing.reconvertItem(e)}}}))}}class hv extends Nr{static get requires(){return[cv]}static get pluginName(){return"ImageCaptionUI"}init(){const t=this.editor,e=t.editing.view,n=t.plugins.get("ImageCaptionUtils"),o=t.t;t.ui.componentFactory.add("toggleImageCaption",(i=>{const r=t.commands.get("toggleImageCaption"),s=new om(i);return s.set({icon:Ju.caption,tooltip:!0,isToggleable:!0}),s.bind("isOn","isEnabled").to(r,"value","isEnabled"),s.bind("label").to(r,"value",(t=>o(t?"Toggle caption off":"Toggle caption on"))),this.listenTo(s,"execute",(()=>{t.execute("toggleImageCaption",{focusCaptionOnShow:!0});const o=n.getCaptionFromModelSelection(t.model.document.selection);if(o){const n=t.editing.mapper.toViewElement(o);e.scrollToTheSelection(),e.change((t=>{t.addClass("image__caption_highlighted",n)}))}t.editing.view.focus()})),s}))}}var uv=n(5247),mv={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Pr()(uv.A,mv);uv.A.locals;var gv=n(2267),pv={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Pr()(gv.A,pv);gv.A.locals;var fv=n(7693),kv={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Pr()(fv.A,kv);fv.A.locals;var bv=n(1559),wv={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Pr()(bv.A,wv);bv.A.locals;const _v=function(t,e){return function(n,o){if(null==n)return n;if(!un(n))return t(n,o);for(var i=n.length,r=e?i:-1,s=Object(n);(e?r--:++r{e.setAttribute("resizedWidth",t.width,i),e.removeAttribute("resizedHeight",i),o.setImageNaturalSizeAttributes(i)}))}}class yv extends Nr{static get requires(){return[BC]}static get pluginName(){return"ImageResizeEditing"}constructor(t){super(t),t.config.define("image",{resizeUnit:"%",resizeOptions:[{name:"resizeImage:original",value:null,icon:"original"},{name:"resizeImage:custom",value:"custom",icon:"custom"},{name:"resizeImage:25",value:"25",icon:"small"},{name:"resizeImage:50",value:"50",icon:"medium"},{name:"resizeImage:75",value:"75",icon:"large"}]})}init(){const t=this.editor,e=new vv(t);this._registerConverters("imageBlock"),this._registerConverters("imageInline"),t.commands.add("resizeImage",e),t.commands.add("imageResize",e)}afterInit(){this._registerSchema()}_registerSchema(){this.editor.plugins.has("ImageBlockEditing")&&this.editor.model.schema.extend("imageBlock",{allowAttributes:["resizedWidth","resizedHeight"]}),this.editor.plugins.has("ImageInlineEditing")&&this.editor.model.schema.extend("imageInline",{allowAttributes:["resizedWidth","resizedHeight"]})}_registerConverters(t){const e=this.editor,n=e.plugins.get("ImageUtils");e.conversion.for("downcast").add((e=>e.on(`attribute:resizedWidth:${t}`,((t,e,n)=>{if(!n.consumable.consume(e.item,t.name))return;const o=n.writer,i=n.mapper.toViewElement(e.item);null!==e.attributeNewValue?(o.setStyle("width",e.attributeNewValue,i),o.addClass("image_resized",i)):(o.removeStyle("width",i),o.removeClass("image_resized",i))})))),e.conversion.for("dataDowncast").attributeToAttribute({model:{name:t,key:"resizedHeight"},view:t=>({key:"style",value:{height:t}})}),e.conversion.for("editingDowncast").add((e=>e.on(`attribute:resizedHeight:${t}`,((e,o,i)=>{if(!i.consumable.consume(o.item,e.name))return;const r=i.writer,s=i.mapper.toViewElement(o.item),a="imageInline"===t?n.findViewImgElement(s):s;null!==o.attributeNewValue?r.setStyle("height",o.attributeNewValue,a):r.removeStyle("height",a)})))),e.conversion.for("upcast").attributeToAttribute({view:{name:"imageBlock"===t?"figure":"img",styles:{width:/.+/}},model:{key:"resizedWidth",value:t=>EC(t)?null:t.getStyle("width")}}),e.conversion.for("upcast").attributeToAttribute({view:{name:"imageBlock"===t?"figure":"img",styles:{height:/.+/}},model:{key:"resizedHeight",value:t=>EC(t)?null:t.getStyle("height")}})}}const xv={small:Ju.objectSizeSmall,medium:Ju.objectSizeMedium,large:Ju.objectSizeLarge,custom:Ju.objectSizeCustom,original:Ju.objectSizeFull};class Ev extends Nr{static get requires(){return[yv]}static get pluginName(){return"ImageResizeButtons"}_resizeUnit;constructor(t){super(t),this._resizeUnit=t.config.get("image.resizeUnit")}init(){const t=this.editor,e=t.config.get("image.resizeOptions"),n=t.commands.get("resizeImage");this.bind("isEnabled").to(n);for(const t of e)this._registerImageResizeButton(t);this._registerImageResizeDropdown(e)}_registerImageResizeButton(t){const e=this.editor,{name:n,value:o,icon:i}=t;e.ui.componentFactory.add(n,(n=>{const r=new om(n),s=e.commands.get("resizeImage"),a=this._getOptionLabelValue(t,!0);if(!xv[i])throw new x("imageresizebuttons-missing-icon",e,t);if(r.set({label:a,icon:xv[i],tooltip:a,isToggleable:!0}),r.bind("isEnabled").to(this),e.plugins.has("ImageCustomResizeUI")&&Dv(t)){const t=e.plugins.get("ImageCustomResizeUI");this.listenTo(r,"execute",(()=>{t._showForm(this._resizeUnit)}))}else{const t=o?o+this._resizeUnit:null;r.bind("isOn").to(s,"value",Bv(t)),this.listenTo(r,"execute",(()=>{e.execute("resizeImage",{width:t})}))}return r}))}_registerImageResizeDropdown(t){const e=this.editor,n=e.t,o=t.find((t=>!t.value)),i=i=>{const r=e.commands.get("resizeImage"),s=Ug(i,vg),a=s.buttonView,c=n("Resize image");return a.set({tooltip:c,commandValue:o.value,icon:xv.medium,isToggleable:!0,label:this._getOptionLabelValue(o),withText:!0,class:"ck-resize-image-button",ariaLabel:c,ariaLabelledBy:void 0}),a.bind("label").to(r,"value",(t=>t&&t.width?t.width:this._getOptionLabelValue(o))),s.bind("isEnabled").to(this),Jg(s,(()=>this._getResizeDropdownListItemDefinitions(t,r)),{ariaLabel:n("Image resize list"),role:"menu"}),this.listenTo(s,"execute",(t=>{"onClick"in t.source?t.source.onClick():(e.execute(t.source.commandName,{width:t.source.commandValue}),e.editing.view.focus())})),s};e.ui.componentFactory.add("resizeImage",i),e.ui.componentFactory.add("imageResize",i)}_getOptionLabelValue(t,e=!1){const n=this.editor.t;return t.label?t.label:e?Dv(t)?n("Custom image size"):t.value?n("Resize image to %0",t.value+this._resizeUnit):n("Resize image to the original size"):Dv(t)?n("Custom"):t.value?t.value+this._resizeUnit:n("Original")}_getResizeDropdownListItemDefinitions(t,e){const{editor:n}=this,o=new Qi,i=t.map((t=>Dv(t)?{...t,valueWithUnits:"custom"}:t.value?{...t,valueWithUnits:`${t.value}${this._resizeUnit}`}:{...t,valueWithUnits:null}));for(const t of i){let r=null;if(n.plugins.has("ImageCustomResizeUI")&&Dv(t)){const o=n.plugins.get("ImageCustomResizeUI");r={type:"button",model:new If({label:this._getOptionLabelValue(t),role:"menuitemradio",withText:!0,icon:null,onClick:()=>{o._showForm(this._resizeUnit)}})};const s=Cv(i,"valueWithUnits");r.model.bind("isOn").to(e,"value",Tv(s))}else r={type:"button",model:new If({commandName:"resizeImage",commandValue:t.valueWithUnits,label:this._getOptionLabelValue(t),role:"menuitemradio",withText:!0,icon:null})},r.model.bind("isOn").to(e,"value",Bv(t.valueWithUnits));r.model.bind("isEnabled").to(e,"isEnabled"),o.add(r)}return o}}function Dv(t){return"custom"===t.value}function Bv(t){return e=>null===t&&e===t||null!==e&&e.width===t}function Tv(t){return e=>!t.some((t=>Bv(t)(e)))}const Sv="image_resized";class Iv extends Nr{static get requires(){return[J_,BC]}static get pluginName(){return"ImageResizeHandles"}init(){const t=this.editor.commands.get("resizeImage");this.bind("isEnabled").to(t),this._setupResizerCreator()}_setupResizerCreator(){const t=this.editor,e=t.editing.view,n=t.plugins.get("ImageUtils");e.addObserver(qC),this.listenTo(e.document,"imageLoaded",((o,i)=>{if(!i.target.matches("figure.image.ck-widget > img,figure.image.ck-widget > picture > img,figure.image.ck-widget > a > img,figure.image.ck-widget > a > picture > img,span.image-inline.ck-widget > img,span.image-inline.ck-widget > picture > img"))return;const r=t.editing.view.domConverter,s=r.domToView(i.target),a=n.getImageWidgetFromImageView(s);let c=this.editor.plugins.get(J_).getResizerByViewElement(a);if(c)return void c.redraw();const l=t.editing.mapper,d=l.toModelElement(a);c=t.plugins.get(J_).attachTo({unit:t.config.get("image.resizeUnit"),modelElement:d,viewElement:a,editor:t,getHandleHost:t=>t.querySelector("img"),getResizeHost:()=>r.mapViewToDom(l.toViewElement(d)),isCentered:()=>"alignCenter"==d.getAttribute("imageStyle"),onCommit(n){e.change((t=>{t.removeClass(Sv,a)})),t.execute("resizeImage",{width:n})}}),c.on("updateSize",(()=>{a.hasClass(Sv)||e.change((t=>{t.addClass(Sv,a)}));const t="imageInline"===d.name?s:a;t.getStyle("height")&&e.change((e=>{e.removeStyle("height",t)}))})),c.bind("isEnabled").to(this)}))}}function Pv(t){if(!t)return null;const[,e,n]=t.trim().match(/([.,\d]+)(%|px)$/)||[],o=Number.parseFloat(e);return Number.isNaN(o)?null:{value:o,unit:n}}function zv(t,e,n){return"px"===n?{value:e.value,unit:"px"}:{value:e.value/t*100,unit:"%"}}function Rv(t){const{editing:e}=t,n=t.plugins.get("ImageUtils").getClosestSelectedImageElement(t.model.document.selection);if(!n)return null;const o=e.mapper.toViewElement(n);return{model:n,view:o,dom:e.view.domConverter.mapViewToDom(o)}}var Lv=n(4642),Fv={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Pr()(Lv.A,Fv);Lv.A.locals;class Mv extends Lr{focusTracker;keystrokes;unit;labeledInput;saveButtonView;cancelButtonView;_focusables;_focusCycler;_validators;constructor(t,e,n){super(t);const o=this.locale.t;this.focusTracker=new tr,this.keystrokes=new er,this.unit=e,this.labeledInput=this._createLabeledInputView(),this.saveButtonView=this._createButton(o("Save"),Ju.check,"ck-button-save"),this.saveButtonView.type="submit",this.cancelButtonView=this._createButton(o("Cancel"),Ju.cancel,"ck-button-cancel","cancel"),this._focusables=new lr,this._validators=n,this._focusCycler=new am({focusables:this._focusables,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"shift + tab",focusNext:"tab"}}),this.setTemplate({tag:"form",attributes:{class:["ck","ck-image-custom-resize-form","ck-responsive-form"],tabindex:"-1"},children:[this.labeledInput,this.saveButtonView,this.cancelButtonView]})}render(){super.render(),this.keystrokes.listenTo(this.element),Vr({view:this}),[this.labeledInput,this.saveButtonView,this.cancelButtonView].forEach((t=>{this._focusables.add(t),this.focusTracker.add(t.element)}))}destroy(){super.destroy(),this.focusTracker.destroy(),this.keystrokes.destroy()}_createButton(t,e,n,o){const i=new om(this.locale);return i.set({label:t,icon:e,tooltip:!0}),i.extendTemplate({attributes:{class:n}}),o&&i.delegate("execute").to(this,o),i}_createLabeledInputView(){const t=this.locale.t,e=new dg(this.locale,ep);return e.label=t("Resize image (in %0)",this.unit),e.fieldView.set({step:.1}),e}isValid(){this.resetFormStatus();for(const t of this._validators){const e=t(this);if(e)return this.labeledInput.errorText=e,!1}return!0}resetFormStatus(){this.labeledInput.errorText=null}get rawSize(){const{element:t}=this.labeledInput.fieldView;return t?t.value:null}get parsedSize(){const{rawSize:t}=this;if(null===t)return null;const e=Number.parseFloat(t);return Number.isNaN(e)?null:e}get sizeWithUnits(){const{parsedSize:t,unit:e}=this;return null===t?null:`${t}${e}`}}class Vv extends Nr{_balloon;_form;static get requires(){return[Mf]}static get pluginName(){return"ImageCustomResizeUI"}destroy(){super.destroy(),this._form&&this._form.destroy()}_createForm(t){const e=this.editor;this._balloon=this.editor.plugins.get("ContextualBalloon"),this._form=new(Mr(Mv))(e.locale,t,function(t){const e=t.t;return[t=>""===t.rawSize.trim()?e("The value must not be empty."):null===t.parsedSize?e("The value should be a plain number."):void 0]}(e)),this._form.render(),this.listenTo(this._form,"submit",(()=>{this._form.isValid()&&(e.execute("resizeImage",{width:this._form.sizeWithUnits}),this._hideForm(!0))})),this.listenTo(this._form.labeledInput,"change:errorText",(()=>{e.ui.update()})),this.listenTo(this._form,"cancel",(()=>{this._hideForm(!0)})),this._form.keystrokes.set("Esc",((t,e)=>{this._hideForm(!0),e()})),Fr({emitter:this._form,activator:()=>this._isVisible,contextElements:()=>[this._balloon.view.element],callback:()=>this._hideForm()})}_showForm(t){if(this._isVisible)return;this._form||this._createForm(t);const e=this.editor,n=this._form.labeledInput;this._form.disableCssTransitions(),this._form.resetFormStatus(),this._isInBalloon||this._balloon.add({view:this._form,position:MC(e)});const o=function(t,e){const n=Rv(t);if(!n)return null;const o=Pv(n.model.getAttribute("resizedWidth")||null);return o?o.unit===e?o:zv(y_(n.dom),{unit:"px",value:new Ko(n.dom).width},e):null}(e,t),i=o?o.value.toFixed(1):"",r=function(t,e){const n=Rv(t);if(!n)return null;const o=y_(n.dom),i=Pv(window.getComputedStyle(n.dom).minWidth)||{value:1,unit:"px"};return{unit:e,lower:Math.max(.1,zv(o,i,e).value),upper:"px"===e?o:100}}(e,t);n.fieldView.value=n.fieldView.element.value=i,r&&Object.assign(n.fieldView,{min:r.lower.toFixed(1),max:Math.ceil(r.upper).toFixed(1)}),this._form.labeledInput.fieldView.select(),this._form.enableCssTransitions()}_hideForm(t=!1){this._isInBalloon&&(this._form.focusTracker.isFocused&&this._form.saveButtonView.focus(),this._balloon.remove(this._form),t&&this.editor.editing.view.focus())}get _isVisible(){return!!this._balloon&&this._balloon.visibleView===this._form}get _isInBalloon(){return!!this._balloon&&this._balloon.hasView(this._form)}}var Ov=n(3469),Nv={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Pr()(Ov.A,Nv);Ov.A.locals;class Hv extends qr{_defaultStyles;_styles;constructor(t,e){super(t),this._defaultStyles={imageBlock:!1,imageInline:!1},this._styles=new Map(e.map((t=>{if(t.isDefault)for(const e of t.modelElements)this._defaultStyles[e]=t.name;return[t.name,t]})))}refresh(){const t=this.editor.plugins.get("ImageUtils").getClosestSelectedImageElement(this.editor.model.document.selection);this.isEnabled=!!t,this.isEnabled?t.hasAttribute("imageStyle")?this.value=t.getAttribute("imageStyle"):this.value=this._defaultStyles[t.name]:this.value=!1}execute(t={}){const e=this.editor,n=e.model,o=e.plugins.get("ImageUtils");n.change((e=>{const i=t.value,{setImageSizes:r=!0}=t;let s=o.getClosestSelectedImageElement(n.document.selection);i&&this.shouldConvertImageType(i,s)&&(this.editor.execute(o.isBlockImage(s)?"imageTypeInline":"imageTypeBlock",{setImageSizes:r}),s=o.getClosestSelectedImageElement(n.document.selection)),!i||this._styles.get(i).isDefault?e.removeAttribute("imageStyle",s):e.setAttribute("imageStyle",i,s),r&&o.setImageNaturalSizeAttributes(s)}))}shouldConvertImageType(t,e){return!this._styles.get(t).modelElements.includes(e.name)}}const{objectFullWidth:qv,objectInline:jv,objectLeft:Wv,objectRight:Gv,objectCenter:Kv,objectBlockLeft:Uv,objectBlockRight:$v}=Ju,Zv={get inline(){return{name:"inline",title:"In line",icon:jv,modelElements:["imageInline"],isDefault:!0}},get alignLeft(){return{name:"alignLeft",title:"Left aligned image",icon:Wv,modelElements:["imageBlock","imageInline"],className:"image-style-align-left"}},get alignBlockLeft(){return{name:"alignBlockLeft",title:"Left aligned image",icon:Uv,modelElements:["imageBlock"],className:"image-style-block-align-left"}},get alignCenter(){return{name:"alignCenter",title:"Centered image",icon:Kv,modelElements:["imageBlock"],className:"image-style-align-center"}},get alignRight(){return{name:"alignRight",title:"Right aligned image",icon:Gv,modelElements:["imageBlock","imageInline"],className:"image-style-align-right"}},get alignBlockRight(){return{name:"alignBlockRight",title:"Right aligned image",icon:$v,modelElements:["imageBlock"],className:"image-style-block-align-right"}},get block(){return{name:"block",title:"Centered image",icon:Kv,modelElements:["imageBlock"],isDefault:!0}},get side(){return{name:"side",title:"Side image",icon:Gv,modelElements:["imageBlock"],className:"image-style-side"}}},Jv={full:qv,left:Uv,right:$v,center:Kv,inlineLeft:Wv,inlineRight:Gv,inline:jv},Yv=[{name:"imageStyle:wrapText",title:"Wrap text",defaultItem:"imageStyle:alignLeft",items:["imageStyle:alignLeft","imageStyle:alignRight"]},{name:"imageStyle:breakText",title:"Break text",defaultItem:"imageStyle:block",items:["imageStyle:alignBlockLeft","imageStyle:block","imageStyle:alignBlockRight"]}];function Qv(t){E("image-style-configuration-definition-invalid",t)}const Xv={normalizeStyles:function(t){return(t.configuredStyles.options||[]).map((t=>function(t){t="string"==typeof t?Zv[t]?{...Zv[t]}:{name:t}:function(t,e){const n={...e};for(const o in t)Object.prototype.hasOwnProperty.call(e,o)||(n[o]=t[o]);return n}(Zv[t.name],t);"string"==typeof t.icon&&(t.icon=Jv[t.icon]||t.icon);return t}(t))).filter((e=>function(t,{isBlockPluginLoaded:e,isInlinePluginLoaded:n}){const{modelElements:o,name:i}=t;if(!(o&&o.length&&i))return Qv({style:t}),!1;{const i=[e?"imageBlock":null,n?"imageInline":null];if(!o.some((t=>i.includes(t))))return E("image-style-missing-dependency",{style:t,missingPlugins:o.map((t=>"imageBlock"===t?"ImageBlockEditing":"ImageInlineEditing"))}),!1}return!0}(e,t)))},getDefaultStylesConfiguration:function(t,e){return t&&e?{options:["inline","alignLeft","alignRight","alignCenter","alignBlockLeft","alignBlockRight","block","side"]}:t?{options:["block","side"]}:e?{options:["inline","alignLeft","alignRight"]}:{}},getDefaultDropdownDefinitions:function(t){return t.has("ImageBlockEditing")&&t.has("ImageInlineEditing")?[...Yv]:[]},warnInvalidStyle:Qv,DEFAULT_OPTIONS:Zv,DEFAULT_ICONS:Jv,DEFAULT_DROPDOWN_DEFINITIONS:Yv};function ty(t,e){for(const n of e)if(n.name===t)return n}class ey extends Nr{static get pluginName(){return"ImageStyleEditing"}static get requires(){return[BC]}normalizedStyles;init(){const{normalizeStyles:t,getDefaultStylesConfiguration:e}=Xv,n=this.editor,o=n.plugins.has("ImageBlockEditing"),i=n.plugins.has("ImageInlineEditing");n.config.define("image.styles",e(o,i)),this.normalizedStyles=t({configuredStyles:n.config.get("image.styles"),isBlockPluginLoaded:o,isInlinePluginLoaded:i}),this._setupConversion(o,i),this._setupPostFixer(),n.commands.add("imageStyle",new Hv(n,this.normalizedStyles))}_setupConversion(t,e){const n=this.editor,o=n.model.schema,i=(r=this.normalizedStyles,(t,e,n)=>{if(!n.consumable.consume(e.item,t.name))return;const o=ty(e.attributeNewValue,r),i=ty(e.attributeOldValue,r),s=n.mapper.toViewElement(e.item),a=n.writer;i&&a.removeClass(i.className,s),o&&a.addClass(o.className,s)});var r;const s=function(t){const e={imageInline:t.filter((t=>!t.isDefault&&t.modelElements.includes("imageInline"))),imageBlock:t.filter((t=>!t.isDefault&&t.modelElements.includes("imageBlock")))};return(t,n,o)=>{if(!n.modelRange)return;const i=n.viewItem,r=Xi(n.modelRange.getItems());if(r&&o.schema.checkAttribute(r,"imageStyle"))for(const t of e[r.name])o.consumable.consume(i,{classes:t.className})&&o.writer.setAttribute("imageStyle",t.name,r)}}(this.normalizedStyles);n.editing.downcastDispatcher.on("attribute:imageStyle",i),n.data.downcastDispatcher.on("attribute:imageStyle",i),t&&(o.extend("imageBlock",{allowAttributes:"imageStyle"}),n.data.upcastDispatcher.on("element:figure",s,{priority:"low"})),e&&(o.extend("imageInline",{allowAttributes:"imageStyle"}),n.data.upcastDispatcher.on("element:img",s,{priority:"low"}))}_setupPostFixer(){const t=this.editor,e=t.model.document,n=t.plugins.get(BC),o=new Map(this.normalizedStyles.map((t=>[t.name,t])));e.registerPostFixer((t=>{let i=!1;for(const r of e.differ.getChanges())if("insert"==r.type||"attribute"==r.type&&"imageStyle"==r.attributeKey){let e="insert"==r.type?r.position.nodeAfter:r.range.start.nodeAfter;if(e&&e.is("element","paragraph")&&e.childCount>0&&(e=e.getChild(0)),!n.isImage(e))continue;const s=e.getAttribute("imageStyle");if(!s)continue;const a=o.get(s);a&&a.modelElements.includes(e.name)||(t.removeAttribute("imageStyle",e),i=!0)}return i}))}}var ny=n(6386),oy={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Pr()(ny.A,oy);ny.A.locals;class iy extends Nr{static get requires(){return[ey]}static get pluginName(){return"ImageStyleUI"}get localizedDefaultStylesTitles(){const t=this.editor.t;return{"Wrap text":t("Wrap text"),"Break text":t("Break text"),"In line":t("In line"),"Full size image":t("Full size image"),"Side image":t("Side image"),"Left aligned image":t("Left aligned image"),"Centered image":t("Centered image"),"Right aligned image":t("Right aligned image")}}init(){const t=this.editor.plugins,e=this.editor.config.get("image.toolbar")||[],n=ry(t.get("ImageStyleEditing").normalizedStyles,this.localizedDefaultStylesTitles);for(const t of n)this._createButton(t);const o=ry([...e.filter(j),...Xv.getDefaultDropdownDefinitions(t)],this.localizedDefaultStylesTitles);for(const t of o)this._createDropdown(t,n)}_createDropdown(t,e){const n=this.editor.ui.componentFactory;n.add(t.name,(o=>{let i;const{defaultItem:r,items:s,title:a}=t,c=s.filter((t=>e.find((({name:e})=>sy(e)===t)))).map((t=>{const e=n.create(t);return t===r&&(i=e),e}));s.length!==c.length&&Xv.warnInvalidStyle({dropdown:t});const l=Ug(o,qg),d=l.buttonView,h=d.arrowView;return $g(l,c,{enableActiveItemFocusOnDropdownOpen:!0}),d.set({label:ay(a,i.label),class:null,tooltip:!0}),h.unbind("label"),h.set({label:a}),d.bind("icon").toMany(c,"isOn",((...t)=>{const e=t.findIndex(Li);return e<0?i.icon:c[e].icon})),d.bind("label").toMany(c,"isOn",((...t)=>{const e=t.findIndex(Li);return ay(a,e<0?i.label:c[e].label)})),d.bind("isOn").toMany(c,"isOn",((...t)=>t.some(Li))),d.bind("class").toMany(c,"isOn",((...t)=>t.some(Li)?"ck-splitbutton_flatten":void 0)),d.on("execute",(()=>{c.some((({isOn:t})=>t))?l.isOpen=!l.isOpen:i.fire("execute")})),l.bind("isEnabled").toMany(c,"isEnabled",((...t)=>t.some(Li))),this.listenTo(l,"execute",(()=>{this.editor.editing.view.focus()})),l}))}_createButton(t){const e=t.name;this.editor.ui.componentFactory.add(sy(e),(n=>{const o=this.editor.commands.get("imageStyle"),i=new om(n);return i.set({label:t.title,icon:t.icon,tooltip:!0,isToggleable:!0}),i.bind("isEnabled").to(o,"isEnabled"),i.bind("isOn").to(o,"value",(t=>t===e)),i.on("execute",this._executeCommand.bind(this,e)),i}))}_executeCommand(t){this.editor.execute("imageStyle",{value:t}),this.editor.editing.view.focus()}}function ry(t,e){for(const n of t)e[n.title]&&(n.title=e[n.title]);return t}function sy(t){return`imageStyle:${t}`}function ay(t,e){return(t?t+": ":"")+e}function cy(t){return t.map((t=>j(t)?t.name:t))}class ly extends Nr{static get pluginName(){return"IndentEditing"}init(){const t=this.editor;t.commands.add("indent",new Wr(t)),t.commands.add("outdent",new Wr(t))}}class dy extends Nr{static get pluginName(){return"IndentUI"}init(){const t=this.editor,e=t.locale,n=t.t,o="ltr"==e.uiLanguageDirection?Ju.indent:Ju.outdent,i="ltr"==e.uiLanguageDirection?Ju.outdent:Ju.indent;this._defineButton("indent",n("Increase indent"),o),this._defineButton("outdent",n("Decrease indent"),i)}_defineButton(t,e,n){const o=this.editor;o.ui.componentFactory.add(t,(()=>{const o=this._createButton(om,t,e,n);return o.set({tooltip:!0}),o})),o.ui.componentFactory.add("menuBar:"+t,(()=>this._createButton(Tm,t,e,n)))}_createButton(t,e,n,o){const i=this.editor,r=i.commands.get(e),s=new t(i.locale);return s.set({label:n,icon:o}),s.bind("isEnabled").to(r,"isEnabled"),this.listenTo(s,"execute",(()=>{i.execute(e),i.editing.view.focus()})),s}}class hy{_startElement;_referenceIndent;_isForward;_includeSelf;_sameAttributes;_sameIndent;_lowerIndent;_higherIndent;constructor(t,e){this._startElement=t,this._referenceIndent=t.getAttribute("listIndent"),this._isForward="forward"==e.direction,this._includeSelf=!!e.includeSelf,this._sameAttributes=Di(e.sameAttributes||[]),this._sameIndent=!!e.sameIndent,this._lowerIndent=!!e.lowerIndent,this._higherIndent=!!e.higherIndent}static first(t,e){return Xi(new this(t,e)[Symbol.iterator]())}*[Symbol.iterator](){const t=[];for(const{node:e}of uy(this._getStartNode(),this._isForward?"forward":"backward")){const n=e.getAttribute("listIndent");if(nthis._referenceIndent){if(!this._higherIndent)continue;if(!this._isForward){t.push(e);continue}}else{if(!this._sameIndent){if(this._higherIndent){t.length&&(yield*t,t.length=0);break}continue}if(this._sameAttributes.some((t=>e.getAttribute(t)!==this._startElement.getAttribute(t))))break}t.length&&(yield*t,t.length=0),yield e}}_getStartNode(){return this._includeSelf?this._startElement:this._isForward?this._startElement.nextSibling:this._startElement.previousSibling}}function*uy(t,e="forward"){const n="forward"==e,o=[];let i=null;for(;py(t);){let e=null;if(i){const n=t.getAttribute("listIndent"),r=i.getAttribute("listIndent");n>r?o[r]=i:nt.getAttribute("listItemId")!=e))}function By(t){return Array.from(t).filter((t=>"$graveyard"!==t.root.rootName)).sort(((t,e)=>t.index-e.index))}function Ty(t){const e=t.document.selection.getSelectedElement();return e&&t.schema.isObject(e)&&t.schema.isBlock(e)?e:null}function Sy(t,e){return e.checkChild(t.parent,"listItem")&&e.checkChild(t,"$text")&&!e.isObject(t)}function Iy(t){return"numbered"==t||"customNumbered"==t}function Py(t,e,n){return ky(e,{direction:"forward"}).pop().index>t.index?yy(t,e,n):[]}class zy extends qr{_direction;constructor(t,e){super(t),this._direction=e}refresh(){this.isEnabled=this._checkEnabled()}execute(){const t=this.editor.model,e=Ry(t.document.selection);t.change((t=>{const n=[];Dy(e)&&!wy(e[0])?("forward"==this._direction&&n.push(...xy(e,t)),n.push(...vy(e[0],t))):"forward"==this._direction?n.push(...xy(e,t,{expand:!0})):n.push(...function(t,e){const n=Ay(t=Di(t)),o=new Set,i=Math.min(...n.map((t=>t.getAttribute("listIndent")))),r=new Map;for(const t of n)r.set(t,hy.first(t,{lowerIndent:!0}));for(const t of n){if(o.has(t))continue;o.add(t);const n=t.getAttribute("listIndent")-1;if(n<0)Ey(t,e);else{if(t.getAttribute("listIndent")==i){const n=Py(t,r.get(t),e);for(const t of n)o.add(t);if(n.length)continue}e.setAttribute("listIndent",n,t)}}return By(o)}(e,t));for(const e of n){if(!e.hasAttribute("listType"))continue;const n=hy.first(e,{sameIndent:!0});n&&t.setAttribute("listType",n.getAttribute("listType"),e)}this._fireAfterExecute(n)}))}_fireAfterExecute(t){this.fire("afterExecute",By(new Set(t)))}_checkEnabled(){let t=Ry(this.editor.model.document.selection),e=t[0];if(!e)return!1;if("backward"==this._direction)return!0;if(Dy(t)&&!wy(t[0]))return!0;t=Ay(t),e=t[0];const n=hy.first(e,{sameIndent:!0});return!!n&&n.getAttribute("listType")==e.getAttribute("listType")}}function Ry(t){const e=Array.from(t.getSelectedBlocks()),n=e.findIndex((t=>!py(t)));return-1!=n&&(e.length=n),e}class Ly extends qr{type;_listWalkerOptions;constructor(t,e,n={}){super(t),this.type=e,this._listWalkerOptions=n.multiLevel?{higherIndent:!0,lowerIndent:!0,sameAttributes:[]}:void 0}refresh(){this.value=this._getValue(),this.isEnabled=this._checkEnabled()}execute(t={}){const e=this.editor.model,n=e.document,o=Ty(e),i=Array.from(n.selection.getSelectedBlocks()).filter((t=>e.schema.checkAttribute(t,"listType")||Sy(t,e.schema))),r=void 0!==t.forceValue?!t.forceValue:this.value;e.change((s=>{if(r){const t=i[i.length-1],e=ky(t,{direction:"forward"}),n=[];e.length>1&&n.push(...vy(e[1],s)),n.push(...Ey(i,s)),n.push(...function(t,e){const n=[];let o=Number.POSITIVE_INFINITY;for(const{node:i}of uy(t.nextSibling,"forward")){const t=i.getAttribute("listIndent");if(0==t)break;t{const{firstElement:r,lastElement:s}=this._getMergeSubjectElements(n,t),a=r.getAttribute("listIndent")||0,c=s.getAttribute("listIndent"),l=s.getAttribute("listItemId");if(a!=c){const t=(d=s,Array.from(new hy(d,{direction:"forward",higherIndent:!0})));o.push(...xy([s,...t],i,{indentBy:a-c,expand:a{const e=vy(this._getStartBlock(),t);this._fireAfterExecute(e)}))}_fireAfterExecute(t){this.fire("afterExecute",By(new Set(t)))}_checkEnabled(){const t=this.editor.model.document.selection,e=this._getStartBlock();return t.isCollapsed&&py(e)&&!wy(e)}_getStartBlock(){const t=this.editor.model.document.selection.getFirstPosition().parent;return"before"==this._direction?t:t.nextSibling}}class Vy extends Nr{static get pluginName(){return"ListUtils"}expandListBlocksToCompleteList(t){return Cy(t)}isFirstBlockOfListItem(t){return wy(t)}isListItemBlock(t){return py(t)}expandListBlocksToCompleteItems(t,e={}){return Ay(t,e)}isNumberedListType(t){return Iy(t)}}function Oy(t){return t.is("element","ol")||t.is("element","ul")}function Ny(t){return t.is("element","li")}function Hy(t,e,n,o=Wy(n,e)){return t.createAttributeElement(jy(n),null,{priority:2*e/100-100,id:o})}function qy(t,e,n){return t.createAttributeElement("li",null,{priority:(2*e+1)/100-100,id:n})}function jy(t){return"numbered"==t||"customNumbered"==t?"ol":"ul"}function Wy(t,e){return`list-${t}-${e}`}function Gy(t,e){const n=t.nodeBefore;if(py(n)){let t=n;for(const{node:n}of uy(t,"backward"))if(t=n,e.has(t))return;e.set(n,t)}else{const n=t.nodeAfter;py(n)&&e.set(n,n)}}function Ky(){return(t,e,n)=>{const{writer:o,schema:i}=n;if(!e.modelRange)return;const r=Array.from(e.modelRange.getItems({shallow:!0})).filter((t=>i.checkAttribute(t,"listItemId")));if(!r.length)return;const s=gy.next(),a=function(t){let e=0,n=t.parent;for(;n;){if(Ny(n))e++;else{const t=n.previousSibling;t&&Ny(t)&&e++}n=n.parent}return e}(e.viewItem);let c=e.viewItem.parent&&e.viewItem.parent.is("element","ol")?"numbered":"bulleted";const l=r[0].getAttribute("listType");l&&(c=l);const d={listItemId:s,listIndent:a,listType:c};for(const t of r)t.hasAttribute("listItemId")||o.setAttributes(d,t);r.length>1&&r[1].getAttribute("listItemId")!=d.listItemId&&n.keepEmptyElement(r[0])}}function Uy(){return(t,e,n)=>{if(!n.consumable.test(e.viewItem,{name:!0}))return;const o=new ru(e.viewItem.document);for(const t of Array.from(e.viewItem.getChildren()))Ny(t)||Oy(t)||o.remove(t)}}function $y(t,e,n,{dataPipeline:o}={}){const i=function(t){return(e,n)=>{const o=[];for(const n of t)e.hasAttribute(n)&&o.push(`attribute:${n}`);return!!o.every((t=>!1!==n.test(e,t)))&&(o.forEach((t=>n.consume(e,t))),!0)}}(t);return(r,s,a)=>{const{writer:c,mapper:l,consumable:d}=a,h=s.item;if(!t.includes(s.attributeKey))return;if(!i(h,d))return;const u=function(t,e,n){const o=n.createRangeOn(t),i=e.toViewRange(o).getTrimmed();return i.end.nodeBefore}(h,l,n);Jy(u,c,l),function(t,e){let n=t.parent;for(;n.is("attributeElement")&&["ul","ol","li"].includes(n.name);){const o=n.parent;e.unwrap(e.createRangeOn(t),n),n=o}}(u,c);const m=function(t,e,n,o,{dataPipeline:i}){let r=o.createRangeOn(e);if(!wy(t))return r;for(const s of n){if("itemMarker"!=s.scope)continue;const n=s.createElement(o,t,{dataPipeline:i});if(!n)continue;if(o.setCustomProperty("listItemMarker",!0,n),s.canInjectMarkerIntoElement&&s.canInjectMarkerIntoElement(t)?o.insert(o.createPositionAt(e,0),n):(o.insert(r.start,n),r=o.createRange(o.createPositionBefore(n),o.createPositionAfter(e))),!s.createWrapperElement||!s.canWrapElement)continue;const a=s.createWrapperElement(o,t,{dataPipeline:i});o.setCustomProperty("listItemWrapper",!0,a),s.canWrapElement(t)?r=o.wrap(r,a):(r=o.wrap(o.createRangeOn(n),a),r=o.createRange(r.start,o.createPositionAfter(e)))}return r}(h,u,e,c,{dataPipeline:o});!function(t,e,n,o){if(!t.hasAttribute("listIndent"))return;const i=t.getAttribute("listIndent");let r=t;for(let t=i;t>=0;t--){const i=qy(o,t,r.getAttribute("listItemId")),s=Hy(o,t,r.getAttribute("listType"));for(const t of n)"list"!=t.scope&&"item"!=t.scope||!r.hasAttribute(t.attributeName)||t.setAttributeOnDowncast(o,r.getAttribute(t.attributeName),"list"==t.scope?s:i);if(e=o.wrap(e,i),e=o.wrap(e,s),0==t)break;if(r=hy.first(r,{lowerIndent:!0}),!r)break}}(h,m,e,c)}}function Zy(t,{dataPipeline:e}={}){return(n,{writer:o})=>{if(!Yy(n,t))return null;if(!e)return o.createContainerElement("span",{class:"ck-list-bogus-paragraph"});const i=o.createContainerElement("p");return o.setCustomProperty("dataPipeline:transparentRendering",!0,i),i}}function Jy(t,e,n){for(;t.parent.is("attributeElement")&&t.parent.getCustomProperty("listItemWrapper");)e.unwrap(e.createRangeOn(t),t.parent);const o=[];i(e.createPositionBefore(t).getWalker({direction:"backward"})),i(e.createRangeIn(t).getWalker());for(const t of o)e.remove(t);function i(t){for(const{item:e}of t){if(e.is("element")&&n.toModelElement(e))break;e.is("element")&&e.getCustomProperty("listItemMarker")&&o.push(e)}}}function Yy(t,e,n=fy(t)){if(!py(t))return!1;for(const n of t.getAttributeKeys())if(!n.startsWith("selection:")&&!e.includes(n))return!1;return n.length<2}var Qy=n(1232),Xy={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Pr()(Qy.A,Xy);Qy.A.locals;var tx=n(6903),ex={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Pr()(tx.A,ex);tx.A.locals;const nx=["listType","listIndent","listItemId"];class ox extends Nr{_downcastStrategies=[];static get pluginName(){return"ListEditing"}static get requires(){return[Aw,Bb,Vy,c_]}constructor(t){super(t),t.config.define("list.multiBlock",!0)}init(){const t=this.editor,e=t.model,n=t.config.get("list.multiBlock");if(t.plugins.has("LegacyListEditing"))throw new x("list-feature-conflict",this,{conflictPlugin:"LegacyListEditing"});e.schema.register("$listItem",{allowAttributes:nx}),n?(e.schema.extend("$container",{allowAttributesOf:"$listItem"}),e.schema.extend("$block",{allowAttributesOf:"$listItem"}),e.schema.extend("$blockObject",{allowAttributesOf:"$listItem"})):e.schema.register("listItem",{inheritAllFrom:"$block",allowAttributesOf:"$listItem"});for(const t of nx)e.schema.setAttributeProperties(t,{copyOnReplace:!0});t.commands.add("numberedList",new Ly(t,"numbered")),t.commands.add("bulletedList",new Ly(t,"bulleted")),t.commands.add("customNumberedList",new Ly(t,"customNumbered",{multiLevel:!0})),t.commands.add("customBulletedList",new Ly(t,"customBulleted",{multiLevel:!0})),t.commands.add("indentList",new zy(t,"forward")),t.commands.add("outdentList",new zy(t,"backward")),t.commands.add("splitListItemBefore",new My(t,"before")),t.commands.add("splitListItemAfter",new My(t,"after")),n&&(t.commands.add("mergeListItemBackward",new Fy(t,"backward")),t.commands.add("mergeListItemForward",new Fy(t,"forward"))),this._setupDeleteIntegration(),this._setupEnterIntegration(),this._setupTabIntegration(),this._setupClipboardIntegration(),this._setupAccessibilityIntegration()}afterInit(){const t=this.editor.commands,e=t.get("indent"),n=t.get("outdent");e&&e.registerChildCommand(t.get("indentList"),{priority:"high"}),n&&n.registerChildCommand(t.get("outdentList"),{priority:"lowest"}),this._setupModelPostFixing(),this._setupConversion()}registerDowncastStrategy(t){this._downcastStrategies.push(t)}getListAttributeNames(){return[...nx,...this._downcastStrategies.map((t=>t.attributeName))]}_setupDeleteIntegration(){const t=this.editor,e=t.commands.get("mergeListItemBackward"),n=t.commands.get("mergeListItemForward");this.listenTo(t.editing.view.document,"delete",((o,i)=>{const r=t.model.document.selection;Ty(t.model)||t.model.change((()=>{const s=r.getFirstPosition();if(r.isCollapsed&&"backward"==i.direction){if(!s.isAtStart)return;const n=s.parent;if(!py(n))return;if(hy.first(n,{sameAttributes:"listType",sameIndent:!0})||0!==n.getAttribute("listIndent")){if(!e||!e.isEnabled)return;e.execute({shouldMergeOnBlocksContentLevel:ix(t.model,"backward")})}else _y(n)||t.execute("splitListItemAfter"),t.execute("outdentList");i.preventDefault(),o.stop()}else{if(r.isCollapsed&&!r.getLastPosition().isAtEnd)return;if(!n||!n.isEnabled)return;n.execute({shouldMergeOnBlocksContentLevel:ix(t.model,"forward")}),i.preventDefault(),o.stop()}}))}),{context:"li"})}_setupEnterIntegration(){const t=this.editor,e=t.model,n=t.commands,o=n.get("enter");this.listenTo(t.editing.view.document,"enter",((n,o)=>{const i=e.document,r=i.selection.getFirstPosition().parent;if(i.selection.isCollapsed&&py(r)&&r.isEmpty&&!o.isSoft){const e=wy(r),i=_y(r);e&&i?(t.execute("outdentList"),o.preventDefault(),n.stop()):e&&!i?(t.execute("splitListItemAfter"),o.preventDefault(),n.stop()):i&&(t.execute("splitListItemBefore"),o.preventDefault(),n.stop())}}),{context:"li"}),this.listenTo(o,"afterExecute",(()=>{const e=n.get("splitListItemBefore");if(e.refresh(),!e.isEnabled)return;2===fy(t.model.document.selection.getLastPosition().parent).length&&e.execute()}))}_setupTabIntegration(){const t=this.editor;this.listenTo(t.editing.view.document,"tab",((e,n)=>{const o=n.shiftKey?"outdentList":"indentList";this.editor.commands.get(o).isEnabled&&(t.execute(o),n.stopPropagation(),n.preventDefault(),e.stop())}),{context:"li"})}_setupConversion(){const t=this.editor,e=t.model,n=this.getListAttributeNames(),o=t.config.get("list.multiBlock"),i=o?"paragraph":"listItem";t.conversion.for("upcast").elementToElement({view:"li",model:(t,{writer:e})=>e.createElement(i,{listType:""})}).elementToElement({view:"p",model:(t,{writer:e})=>t.parent&&t.parent.is("element","li")?e.createElement(i,{listType:""}):null,converterPriority:"high"}).add((t=>{t.on("element:li",Ky()),t.on("element:ul",Uy(),{priority:"high"}),t.on("element:ol",Uy(),{priority:"high"})})),o||t.conversion.for("downcast").elementToElement({model:"listItem",view:"p"}),t.conversion.for("editingDowncast").elementToElement({model:i,view:Zy(n),converterPriority:"high"}).add((t=>{var o;t.on("attribute",$y(n,this._downcastStrategies,e)),t.on("remove",(o=e.schema,(t,e,n)=>{const{writer:i,mapper:r}=n,s=t.name.split(":")[1];if(!o.checkAttribute(s,"listItemId"))return;const a=r.toViewPosition(e.position),c=e.position.getShiftedBy(e.length),l=r.toViewPosition(c,{isPhantom:!0}),d=i.createRange(a,l).getTrimmed().end.nodeBefore;d&&Jy(d,i,r)}))})),t.conversion.for("dataDowncast").elementToElement({model:i,view:Zy(n,{dataPipeline:!0}),converterPriority:"high"}).add((t=>{t.on("attribute",$y(n,this._downcastStrategies,e,{dataPipeline:!0}))}));const r=(s=this._downcastStrategies,a=t.editing.view,(t,e)=>{if(e.modelPosition.offset>0)return;const n=e.modelPosition.parent;if(!py(n))return;if(!s.some((t=>"itemMarker"==t.scope&&t.canInjectMarkerIntoElement&&t.canInjectMarkerIntoElement(n))))return;const o=e.mapper.toViewElement(n),i=a.createRangeIn(o),r=i.getWalker();let c=i.start;for(const{item:t}of r){if(t.is("element")&&e.mapper.toModelElement(t)||t.is("$textProxy"))break;t.is("element")&&t.getCustomProperty("listItemMarker")&&(c=a.createPositionAfter(t),r.skip((({previousPosition:t})=>!t.isEqual(c))))}e.viewPosition=c});var s,a;t.editing.mapper.on("modelToViewPosition",r),t.data.mapper.on("modelToViewPosition",r),this.listenTo(e.document,"change:data",function(t,e,n,o){return()=>{const o=t.document.differ.getChanges(),s=[],a=new Map,c=new Set;for(const t of o)if("insert"==t.type&&"$text"!=t.name)Gy(t.position,a),t.attributes.has("listItemId")?c.add(t.position.nodeAfter):Gy(t.position.getShiftedBy(t.length),a);else if("remove"==t.type&&t.attributes.has("listItemId"))Gy(t.position,a);else if("attribute"==t.type){const e=t.range.start.nodeAfter;n.includes(t.attributeKey)?(Gy(t.range.start,a),null===t.attributeNewValue?(Gy(t.range.start.getShiftedBy(1),a),r(e)&&s.push(e)):c.add(e)):py(e)&&r(e)&&s.push(e)}for(const t of a.values())s.push(...i(t,c));for(const t of new Set(s))e.reconvertItem(t)};function i(t,e){const o=[],i=new Set,a=[];for(const{node:c,previous:l}of uy(t,"forward")){if(i.has(c))continue;const t=c.getAttribute("listIndent");l&&tn.includes(t))));const d=ky(c,{direction:"forward"});for(const t of d)i.add(t),(r(t,d)||s(t,a,e))&&o.push(t)}return o}function r(t,i){const r=e.mapper.toViewElement(t);if(!r)return!1;if(o.fire("checkElement",{modelElement:t,viewElement:r}))return!0;if(!t.is("element","paragraph")&&!t.is("element","listItem"))return!1;const s=Yy(t,n,i);return!(!s||!r.is("element","p"))||!(s||!r.is("element","span"))}function s(t,n,i){if(i.has(t))return!1;const r=e.mapper.toViewElement(t);let s=n.length-1;for(let t=r.parent;!t.is("editableElement");t=t.parent){const e=Ny(t),i=Oy(t);if(!i&&!e)continue;const r="checkAttributes:"+(e?"item":"list");if(o.fire(r,{viewElement:t,modelAttributes:n[s]}))break;if(i&&(s--,s<0))return!1}return!0}}(e,t.editing,n,this),{priority:"high"}),this.on("checkAttributes:item",((t,{viewElement:e,modelAttributes:n})=>{e.id!=n.listItemId&&(t.return=!0,t.stop())})),this.on("checkAttributes:list",((t,{viewElement:e,modelAttributes:n})=>{e.name==jy(n.listType)&&e.id==Wy(n.listType,n.listIndent)||(t.return=!0,t.stop())}))}_setupModelPostFixing(){const t=this.editor.model,e=this.getListAttributeNames();t.document.registerPostFixer((n=>function(t,e,n,o){const i=t.document.differ.getChanges(),r=new Map,s=o.editor.config.get("list.multiBlock");let a=!1;for(const o of i){if("insert"==o.type&&"$text"!=o.name){const i=o.position.nodeAfter;if(!t.schema.checkAttribute(i,"listItemId"))for(const t of Array.from(i.getAttributeKeys()))n.includes(t)&&(e.removeAttribute(t,i),a=!0);Gy(o.position,r),o.attributes.has("listItemId")||Gy(o.position.getShiftedBy(o.length),r);for(const{item:e,previousPosition:n}of t.createRangeIn(i))py(e)&&Gy(n,r)}else"remove"==o.type?Gy(o.position,r):"attribute"==o.type&&n.includes(o.attributeKey)&&(Gy(o.range.start,r),null===o.attributeNewValue&&Gy(o.range.start.getShiftedBy(1),r));if(!s&&"attribute"==o.type&&nx.includes(o.attributeKey)){const t=o.range.start.nodeAfter;null===o.attributeNewValue&&t&&t.is("element","listItem")?(e.rename(t,"paragraph"),a=!0):null===o.attributeOldValue&&t&&t.is("element")&&"listItem"!=t.name&&(e.rename(t,"listItem"),a=!0)}}const c=new Set;for(const t of r.values())a=o.fire("postFixer",{listNodes:new my(t),listHead:t,writer:e,seenIds:c})||a;return a}(t,n,e,this))),this.on("postFixer",((t,{listNodes:e,writer:n})=>{t.return=function(t,e){let n=0,o=-1,i=null,r=!1;for(const{node:s}of t){const t=s.getAttribute("listIndent");if(t>n){let a;null===i?(i=t-n,a=n):(i>t&&(i=t),a=t-i),a>o+1&&(a=o+1),e.setAttribute("listIndent",a,s),r=!0,o=a}else i=null,n=t+1,o=t}return r}(e,n)||t.return}),{priority:"high"}),this.on("postFixer",((t,{listNodes:e,writer:n,seenIds:o})=>{t.return=function(t,e,n){const o=new Set;let i=!1;for(const{node:r}of t){if(o.has(r))continue;let t=r.getAttribute("listType"),s=r.getAttribute("listItemId");if(e.has(s)&&(s=gy.next()),e.add(s),r.is("element","listItem"))r.getAttribute("listItemId")!=s&&(n.setAttribute("listItemId",s,r),i=!0);else for(const e of ky(r,{direction:"forward"}))o.add(e),e.getAttribute("listType")!=t&&(s=gy.next(),t=e.getAttribute("listType")),e.getAttribute("listItemId")!=s&&(n.setAttribute("listItemId",s,e),i=!0)}return i}(e,o,n)||t.return}),{priority:"high"})}_setupClipboardIntegration(){const t=this.editor.model,e=this.editor.plugins.get("ClipboardPipeline");this.listenTo(t,"insertContent",function(t){return(e,[n,o])=>{const i=n.is("documentFragment")?Array.from(n.getChildren()):[n];if(!i.length)return;const r=(o?t.createSelection(o):t.document.selection).getFirstPosition();let s;if(py(r.parent))s=r.parent;else{if(!py(r.nodeBefore))return;s=r.nodeBefore}t.change((t=>{const e=s.getAttribute("listType"),n=s.getAttribute("listIndent"),o=i[0].getAttribute("listIndent")||0,r=Math.max(n-o,0);for(const n of i){const o=py(n);s.is("element","listItem")&&n.is("element","paragraph")&&t.rename(n,"listItem"),t.setAttributes({listIndent:(o?n.getAttribute("listIndent"):0)+r,listItemId:o?n.getAttribute("listItemId"):gy.next(),listType:e},n)}}))}}(t),{priority:"high"}),this.listenTo(e,"outputTransformation",((e,n)=>{t.change((t=>{const e=Array.from(n.content.getChildren()),o=e[e.length-1];if(e.length>1&&o.is("element")&&o.isEmpty){e.slice(0,-1).every(py)&&t.remove(o)}if("copy"==n.method||"cut"==n.method){const e=Array.from(n.content.getChildren());Dy(e)&&Ey(e,t)}}))}))}_setupAccessibilityIntegration(){const t=this.editor,e=t.t;t.accessibility.addKeystrokeInfoGroup({id:"list",label:e("Keystrokes that can be used in a list"),keystrokes:[{label:e("Increase list item indent"),keystroke:"Tab"},{label:e("Decrease list item indent"),keystroke:"Shift+Tab"}]})}}function ix(t,e){const n=t.document.selection;if(!n.isCollapsed)return!Ty(t);if("forward"===e)return!0;const o=n.getFirstPosition().parent,i=o.previousSibling;return!t.schema.isObject(i)&&(!!i.isEmpty||Dy([o,i]))}function rx(t,e,n,o){t.ui.componentFactory.add(e,(()=>{const i=sx(om,t,e,n,o);return i.set({tooltip:!0,isToggleable:!0}),i})),t.ui.componentFactory.add(`menuBar:${e}`,(()=>sx(Tm,t,e,n,o)))}function sx(t,e,n,o,i){const r=e.commands.get(n),s=new t(e.locale);return s.set({label:o,icon:i}),s.bind("isOn","isEnabled").to(r,"value","isEnabled"),s.on("execute",(()=>{e.execute(n),e.editing.view.focus()})),s}class ax extends Nr{static get pluginName(){return"ListUI"}init(){const t=this.editor.t;this.editor.ui.componentFactory.has("numberedList")||rx(this.editor,"numberedList",t("Numbered List"),Ju.numberedList),this.editor.ui.componentFactory.has("bulletedList")||rx(this.editor,"bulletedList",t("Bulleted List"),Ju.bulletedList)}}class cx extends Nr{static get requires(){return[ox,ax]}static get pluginName(){return"List"}}class lx extends qr{refresh(){const t=this._getValue();this.value=t,this.isEnabled=null!=t}execute({startIndex:t=1}={}){const e=this.editor.model,n=e.document;let o=Array.from(n.selection.getSelectedBlocks()).filter((t=>py(t)&&Iy(t.getAttribute("listType"))));o=Cy(o),e.change((e=>{for(const n of o)e.setAttribute("listStart",t>=0?t:1,n)}))}_getValue(){const t=Xi(this.editor.model.document.selection.getSelectedBlocks());return t&&py(t)&&Iy(t.getAttribute("listType"))?t.getAttribute("listStart"):null}}const dx={},hx={},ux={},mx=[{listStyle:"disc",typeAttribute:"disc",listType:"bulleted"},{listStyle:"circle",typeAttribute:"circle",listType:"bulleted"},{listStyle:"square",typeAttribute:"square",listType:"bulleted"},{listStyle:"decimal",typeAttribute:"1",listType:"numbered"},{listStyle:"decimal-leading-zero",typeAttribute:null,listType:"numbered"},{listStyle:"lower-roman",typeAttribute:"i",listType:"numbered"},{listStyle:"upper-roman",typeAttribute:"I",listType:"numbered"},{listStyle:"lower-alpha",typeAttribute:"a",listType:"numbered"},{listStyle:"upper-alpha",typeAttribute:"A",listType:"numbered"},{listStyle:"lower-latin",typeAttribute:"a",listType:"numbered"},{listStyle:"upper-latin",typeAttribute:"A",listType:"numbered"}];for(const{listStyle:t,typeAttribute:e,listType:n}of mx)dx[t]=n,hx[t]=e,e&&(ux[e]=t);function gx(){return mx.map((t=>t.listStyle))}function px(t){return dx[t]||null}function fx(t){return ux[t]||null}function kx(t){return hx[t]||null}class bx extends qr{defaultType;_supportedTypes;constructor(t,e,n){super(t),this.defaultType=e,this._supportedTypes=n}refresh(){this.value=this._getValue(),this.isEnabled=this._checkEnabled()}execute(t={}){const e=this.editor.model,n=e.document;e.change((e=>{this._tryToConvertItemsToList(t);let o=Array.from(n.selection.getSelectedBlocks()).filter((t=>t.hasAttribute("listType")));if(o.length){o=Cy(o);for(const n of o)e.setAttribute("listStyle",t.type||this.defaultType,n)}}))}isStyleTypeSupported(t){return!this._supportedTypes||this._supportedTypes.includes(t)}_getValue(){const t=Xi(this.editor.model.document.selection.getSelectedBlocks());return py(t)?t.getAttribute("listStyle"):null}_checkEnabled(){const t=this.editor,e=t.commands.get("numberedList"),n=t.commands.get("bulletedList");return e.isEnabled||n.isEnabled}_tryToConvertItemsToList(t){if(!t.type)return;const e=px(t.type);if(!e)return;const n=this.editor,o=`${e}List`;n.commands.get(o).value||n.execute(o)}}class wx extends qr{refresh(){const t=this._getValue();this.value=t,this.isEnabled=null!=t}execute(t={}){const e=this.editor.model,n=e.document;let o=Array.from(n.selection.getSelectedBlocks()).filter((t=>py(t)&&"numbered"==t.getAttribute("listType")));o=Cy(o),e.change((e=>{for(const n of o)e.setAttribute("listReversed",!!t.reversed,n)}))}_getValue(){const t=Xi(this.editor.model.document.selection.getSelectedBlocks());return py(t)&&"numbered"==t.getAttribute("listType")?t.getAttribute("listReversed"):null}}function _x(t){return(e,n,o)=>{const{writer:i,schema:r,consumable:s}=o;if(!1===s.test(n.viewItem,t.viewConsumables))return;n.modelRange||Object.assign(n,o.convertChildren(n.viewItem,n.modelCursor));let a=!1;for(const e of n.modelRange.getItems({shallow:!0}))r.checkAttribute(e,t.attributeName)&&t.appliesToListItem(e)&&(e.hasAttribute(t.attributeName)||(i.setAttribute(t.attributeName,t.getAttributeOnUpcast(n.viewItem),e),a=!0));a&&s.consume(n.viewItem,t.viewConsumables)}}class Ax extends Nr{static get pluginName(){return"ListPropertiesUtils"}getAllSupportedStyleTypes(){return gx()}getListTypeFromListStyleType(t){return px(t)}getListStyleTypeFromTypeAttribute(t){return fx(t)}getTypeAttributeFromListStyleType(t){return kx(t)}}const Cx="default";class vx extends Nr{static get requires(){return[ox,Ax]}static get pluginName(){return"ListPropertiesEditing"}constructor(t){super(t),t.config.define("list.properties",{styles:!0,startIndex:!1,reversed:!1})}init(){const t=this.editor,e=t.model,n=t.plugins.get(ox),o=function(t){const e=[];if(t.styles){const n="object"==typeof t.styles&&t.styles.useAttribute;e.push({attributeName:"listStyle",defaultValue:Cx,viewConsumables:{styles:"list-style-type"},addCommand(t){let e=gx();n&&(e=e.filter((t=>!!kx(t)))),t.commands.add("listStyle",new bx(t,Cx,e))},appliesToListItem:t=>"numbered"==t.getAttribute("listType")||"bulleted"==t.getAttribute("listType"),hasValidAttribute(t){if(!this.appliesToListItem(t))return!t.hasAttribute("listStyle");if(!t.hasAttribute("listStyle"))return!1;const e=t.getAttribute("listStyle");return e==Cx||px(e)==t.getAttribute("listType")},setAttributeOnDowncast(t,e,o){if(e&&e!==Cx){if(!n)return void t.setStyle("list-style-type",e,o);{const n=kx(e);if(n)return void t.setAttribute("type",n,o)}}t.removeStyle("list-style-type",o),t.removeAttribute("type",o)},getAttributeOnUpcast(t){const e=t.getStyle("list-style-type");if(e)return e;const n=t.getAttribute("type");return n?fx(n):Cx}})}t.reversed&&e.push({attributeName:"listReversed",defaultValue:!1,viewConsumables:{attributes:"reversed"},addCommand(t){t.commands.add("listReversed",new wx(t))},appliesToListItem:t=>"numbered"==t.getAttribute("listType"),hasValidAttribute(t){return this.appliesToListItem(t)==t.hasAttribute("listReversed")},setAttributeOnDowncast(t,e,n){e?t.setAttribute("reversed","reversed",n):t.removeAttribute("reversed",n)},getAttributeOnUpcast:t=>t.hasAttribute("reversed")});t.startIndex&&e.push({attributeName:"listStart",defaultValue:1,viewConsumables:{attributes:"start"},addCommand(t){t.commands.add("listStart",new lx(t))},appliesToListItem:t=>Iy(t.getAttribute("listType")),hasValidAttribute(t){return this.appliesToListItem(t)==t.hasAttribute("listStart")},setAttributeOnDowncast(t,e,n){0==e||e>1?t.setAttribute("start",e,n):t.removeAttribute("start",n)},getAttributeOnUpcast(t){const e=t.getAttribute("start");return e>=0?e:1}});return e}(t.config.get("list.properties"));for(const i of o)i.addCommand(t),e.schema.extend("$listItem",{allowAttributes:i.attributeName}),n.registerDowncastStrategy({scope:"list",attributeName:i.attributeName,setAttributeOnDowncast(t,e,n){i.setAttributeOnDowncast(t,e,n)}});t.conversion.for("upcast").add((t=>{for(const e of o)t.on("element:ol",_x(e)),t.on("element:ul",_x(e))})),n.on("checkAttributes:list",((t,{viewElement:e,modelAttributes:n})=>{for(const i of o)i.getAttributeOnUpcast(e)!=n[i.attributeName]&&(t.return=!0,t.stop())})),this.listenTo(t.commands.get("indentList"),"afterExecute",((t,n)=>{e.change((t=>{for(const e of n)for(const n of o)n.appliesToListItem(e)&&t.setAttribute(n.attributeName,n.defaultValue,e)}))})),n.on("postFixer",((t,{listNodes:e,writer:n})=>{for(const{node:i}of e)for(const e of o)e.hasValidAttribute(i)||(e.appliesToListItem(i)?n.setAttribute(e.attributeName,e.defaultValue,i):n.removeAttribute(e.attributeName,i),t.return=!0)})),n.on("postFixer",((t,{listNodes:e,writer:n})=>{for(const{node:i,previousNodeInList:r}of e)if(r&&r.getAttribute("listType")==i.getAttribute("listType"))for(const e of o){const{attributeName:o}=e;if(!e.appliesToListItem(i))continue;const s=r.getAttribute(o);i.getAttribute(o)!=s&&(n.setAttribute(o,s,i),t.return=!0)}}))}}var yx=n(9968),xx={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Pr()(yx.A,xx);yx.A.locals;class Ex extends Lr{children;stylesView=null;additionalPropertiesCollapsibleView=null;startIndexFieldView=null;reversedSwitchButtonView=null;focusTracker=new tr;keystrokes=new er;focusables=new lr;focusCycler;constructor(t,{enabledProperties:e,styleButtonViews:n,styleGridAriaLabel:o}){super(t);const i=["ck","ck-list-properties"];this.children=this.createCollection(),this.focusCycler=new am({focusables:this.focusables,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"shift + tab",focusNext:"tab"}}),e.styles?(this.stylesView=this._createStylesView(n,o),this.children.add(this.stylesView)):i.push("ck-list-properties_without-styles"),(e.startIndex||e.reversed)&&(this._addNumberedListPropertyViews(e),i.push("ck-list-properties_with-numbered-properties")),this.setTemplate({tag:"div",attributes:{class:i},children:this.children})}render(){if(super.render(),this.stylesView){this.focusables.add(this.stylesView),this.focusTracker.add(this.stylesView.element),(this.startIndexFieldView||this.reversedSwitchButtonView)&&(this.focusables.add(this.children.last.buttonView),this.focusTracker.add(this.children.last.buttonView.element));for(const t of this.stylesView.children)this.stylesView.focusTracker.add(t.element);Or({keystrokeHandler:this.stylesView.keystrokes,focusTracker:this.stylesView.focusTracker,gridItems:this.stylesView.children,numberOfColumns:()=>Oo.window.getComputedStyle(this.stylesView.element).getPropertyValue("grid-template-columns").split(" ").length,uiLanguageDirection:this.locale&&this.locale.uiLanguageDirection})}if(this.startIndexFieldView){this.focusables.add(this.startIndexFieldView),this.focusTracker.add(this.startIndexFieldView.element);const t=t=>t.stopPropagation();this.keystrokes.set("arrowright",t),this.keystrokes.set("arrowleft",t),this.keystrokes.set("arrowup",t),this.keystrokes.set("arrowdown",t)}this.reversedSwitchButtonView&&(this.focusables.add(this.reversedSwitchButtonView),this.focusTracker.add(this.reversedSwitchButtonView.element)),this.keystrokes.listenTo(this.element)}focus(){this.focusCycler.focusFirst()}focusLast(){this.focusCycler.focusLast()}destroy(){super.destroy(),this.focusTracker.destroy(),this.keystrokes.destroy()}_createStylesView(t,e){const n=new Lr(this.locale);return n.children=n.createCollection(),n.children.addMany(t),n.setTemplate({tag:"div",attributes:{"aria-label":e,class:["ck","ck-list-styles-list"]},children:n.children}),n.children.delegate("execute").to(this),n.focus=function(){this.children.first.focus()},n.focusTracker=new tr,n.keystrokes=new er,n.render(),n.keystrokes.listenTo(n.element),n}_addNumberedListPropertyViews(t){const e=this.locale.t,n=[];t.startIndex&&(this.startIndexFieldView=this._createStartIndexField(),n.push(this.startIndexFieldView)),t.reversed&&(this.reversedSwitchButtonView=this._createReversedSwitchButton(),n.push(this.reversedSwitchButtonView)),t.styles?(this.additionalPropertiesCollapsibleView=new $m(this.locale,n),this.additionalPropertiesCollapsibleView.set({label:e("List properties"),isCollapsed:!0}),this.additionalPropertiesCollapsibleView.buttonView.bind("isEnabled").toMany(n,"isEnabled",((...t)=>t.some((t=>t)))),this.additionalPropertiesCollapsibleView.buttonView.on("change:isEnabled",((t,e,n)=>{n||(this.additionalPropertiesCollapsibleView.isCollapsed=!0)})),this.children.add(this.additionalPropertiesCollapsibleView)):this.children.addMany(n)}_createStartIndexField(){const t=this.locale.t,e=new dg(this.locale,ep);return e.set({label:t("Start at"),class:"ck-numbered-list-properties__start-index"}),e.fieldView.set({min:0,step:1,value:1,inputMode:"numeric"}),e.fieldView.on("input",(()=>{const n=e.fieldView.element,o=n.valueAsNumber;Number.isNaN(o)?e.errorText=t("Invalid start index value."):n.checkValidity()?this.fire("listStart",{startIndex:o}):e.errorText=t("Start index must be greater than 0.")})),e}_createReversedSwitchButton(){const t=this.locale.t,e=new qm(this.locale);return e.set({withText:!0,label:t("Reversed order"),class:"ck-numbered-list-properties__reversed-order"}),e.delegate("execute").to(this,"listReversed"),e}}var Dx=n(7141),Bx={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Pr()(Dx.A,Bx);Dx.A.locals;class Tx extends Nr{static get pluginName(){return"ListPropertiesUI"}init(){const t=this.editor,e=t.locale.t,n=t.config.get("list.properties");if(n.styles){const o=[{label:e("Toggle the disc list style"),tooltip:e("Disc"),type:"disc",icon:' '},{label:e("Toggle the circle list style"),tooltip:e("Circle"),type:"circle",icon:' '},{label:e("Toggle the square list style"),tooltip:e("Square"),type:"square",icon:' '}],i=e("Bulleted List"),r=e("Bulleted list styles toolbar"),s="bulletedList";t.ui.componentFactory.add(s,Sx({editor:t,propertiesConfig:n,parentCommandName:s,buttonLabel:i,buttonIcon:Ju.bulletedList,styleGridAriaLabel:r,styleDefinitions:o})),t.ui.componentFactory.add(`menuBar:${s}`,Px({editor:t,propertiesConfig:n,parentCommandName:s,buttonLabel:i,styleGridAriaLabel:r,styleDefinitions:o}))}if(n.styles||n.startIndex||n.reversed){const o=[{label:e("Toggle the decimal list style"),tooltip:e("Decimal"),type:"decimal",icon:' '},{label:e("Toggle the decimal with leading zero list style"),tooltip:e("Decimal with leading zero"),type:"decimal-leading-zero",icon:' '},{label:e("Toggle the lower–roman list style"),tooltip:e("Lower–roman"),type:"lower-roman",icon:' '},{label:e("Toggle the upper–roman list style"),tooltip:e("Upper-roman"),type:"upper-roman",icon:' '},{label:e("Toggle the lower–latin list style"),tooltip:e("Lower-latin"),type:"lower-latin",icon:' '},{label:e("Toggle the upper–latin list style"),tooltip:e("Upper-latin"),type:"upper-latin",icon:' '}],i=e("Numbered List"),r=e("Numbered list styles toolbar"),s="numberedList";t.ui.componentFactory.add(s,Sx({editor:t,propertiesConfig:n,parentCommandName:s,buttonLabel:i,buttonIcon:Ju.numberedList,styleGridAriaLabel:r,styleDefinitions:o})),n.styles&&t.ui.componentFactory.add(`menuBar:${s}`,Px({editor:t,propertiesConfig:n,parentCommandName:s,buttonLabel:i,styleGridAriaLabel:r,styleDefinitions:o}))}}}function Sx({editor:t,propertiesConfig:e,parentCommandName:n,buttonLabel:o,buttonIcon:i,styleGridAriaLabel:r,styleDefinitions:s}){const a=t.commands.get(n);return c=>{const l=Ug(c,qg),d=l.buttonView;return l.bind("isEnabled").to(a),l.class="ck-list-styles-dropdown",d.on("execute",(()=>{t.execute(n),t.editing.view.focus()})),d.set({label:o,icon:i,tooltip:!0,isToggleable:!0}),d.bind("isOn").to(a,"value",(t=>!!t)),l.once("change:isOpen",(()=>{const o=function({editor:t,propertiesConfig:e,dropdownView:n,parentCommandName:o,styleDefinitions:i,styleGridAriaLabel:r}){const s=t.locale,a={...e};"numberedList"!=o&&(a.startIndex=!1,a.reversed=!1);let c=null;if(a.styles){const e=t.commands.get("listStyle"),n=Ix({editor:t,parentCommandName:o,listStyleCommand:e}),r=zx(e);c=i.filter(r).map(n)}const l=new Ex(s,{styleGridAriaLabel:r,enabledProperties:a,styleButtonViews:c});a.styles&&Qg(n,(()=>l.stylesView.children.find((t=>t.isOn))));if(a.startIndex){const e=t.commands.get("listStart");l.startIndexFieldView.bind("isEnabled").to(e),l.startIndexFieldView.fieldView.bind("value").to(e),l.on("listStart",((e,n)=>t.execute("listStart",n)))}if(a.reversed){const e=t.commands.get("listReversed");l.reversedSwitchButtonView.bind("isEnabled").to(e),l.reversedSwitchButtonView.bind("isOn").to(e,"value",(t=>!!t)),l.on("listReversed",(()=>{const n=e.value;t.execute("listReversed",{reversed:!n})}))}return l.delegate("execute").to(n),l}({editor:t,propertiesConfig:e,dropdownView:l,parentCommandName:n,styleGridAriaLabel:r,styleDefinitions:s});l.panelView.children.add(o)})),l.on("execute",(()=>{t.editing.view.focus()})),l}}function Ix({editor:t,listStyleCommand:e,parentCommandName:n}){const o=t.locale,i=t.commands.get(n);return({label:r,type:s,icon:a,tooltip:c})=>{const l=new om(o);return l.set({label:r,icon:a,tooltip:c}),e.on("change:value",(()=>{l.isOn=e.value===s})),l.on("execute",(()=>{i.value?e.value===s?t.execute(n):e.value!==s&&t.execute("listStyle",{type:s}):t.model.change((()=>{t.execute("listStyle",{type:s})}))})),l}}function Px({editor:t,propertiesConfig:e,parentCommandName:n,buttonLabel:o,styleGridAriaLabel:i,styleDefinitions:r}){return s=>{const a=new Pk(s),c=t.commands.get(n),l=t.commands.get("listStyle"),d=zx(l),h=Ix({editor:t,parentCommandName:n,listStyleCommand:l}),u=r.filter(d).map(h),m=new Ex(s,{styleGridAriaLabel:i,enabledProperties:{...e,startIndex:!1,reversed:!1},styleButtonViews:u});return m.delegate("execute").to(a),a.buttonView.set({label:o,icon:Ju[n]}),a.panelView.children.add(m),a.bind("isEnabled").to(c,"isEnabled"),a.on("execute",(()=>{t.editing.view.focus()})),a}}function zx(t){return"function"==typeof t.isStyleTypeSupported?e=>t.isStyleTypeSupported(e.type):()=>!0}class Rx extends Nr{static get requires(){return[vx,Tx]}static get pluginName(){return"ListProperties"}}var Lx=n(8991),Fx={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Pr()(Lx.A,Fx);Lx.A.locals;class Mx extends sm{groupDropdownView;constructor(t,e){super(t);const n=t.t;this.set("class","ck-special-characters-navigation"),this.groupDropdownView=this._createGroupDropdown(e),this.groupDropdownView.panelPosition="rtl"===t.uiLanguageDirection?"se":"sw",this.label=n("Special characters"),this.children.add(this.groupDropdownView)}get currentGroupName(){return this.groupDropdownView.value}focus(){this.groupDropdownView.focus()}_createGroupDropdown(t){const e=this.locale,n=e.t,o=Ug(e),i=this._getCharacterGroupListItemDefinitions(o,t),r=n("Character categories");return o.set("value",i.first.model.name),o.buttonView.bind("label").to(o,"value",(e=>t.get(e))),o.buttonView.set({isOn:!1,withText:!0,tooltip:r,class:["ck-dropdown__button_label-width_auto"],ariaLabel:r,ariaLabelledBy:void 0}),o.on("execute",(t=>{o.value=t.source.name})),o.delegate("execute").to(this),Jg(o,i,{ariaLabel:r,role:"menu"}),o}_getCharacterGroupListItemDefinitions(t,e){const n=new Qi;for(const[o,i]of e){const e=new If({name:o,label:i,withText:!0,role:"menuitemradio"});e.bind("isOn").to(t,"value",(t=>t===e.name)),n.add({type:"button",model:e})}return n}}var Vx=n(8868),Ox={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Pr()(Vx.A,Ox);Vx.A.locals;class Nx extends Lr{tiles;focusTracker;keystrokes;constructor(t){super(t),this.tiles=this.createCollection(),this.setTemplate({tag:"div",children:[{tag:"div",attributes:{class:["ck","ck-character-grid__tiles"]},children:this.tiles}],attributes:{class:["ck","ck-character-grid"]}}),this.focusTracker=new tr,this.keystrokes=new er,Or({keystrokeHandler:this.keystrokes,focusTracker:this.focusTracker,gridItems:this.tiles,numberOfColumns:()=>Oo.window.getComputedStyle(this.element.firstChild).getPropertyValue("grid-template-columns").split(" ").length,uiLanguageDirection:this.locale&&this.locale.uiLanguageDirection})}createTile(t,e){const n=new om(this.locale);return n.set({label:t,withText:!0,class:"ck-character-grid__tile"}),n.extendTemplate({attributes:{title:e},on:{mouseover:n.bindTemplate.to("mouseover"),focus:n.bindTemplate.to("focus")}}),n.on("mouseover",(()=>{this.fire("tileHover",{name:e,character:t})})),n.on("focus",(()=>{this.fire("tileFocus",{name:e,character:t})})),n.on("execute",(()=>{this.fire("execute",{name:e,character:t})})),n}render(){super.render();for(const t of this.tiles)this.focusTracker.add(t.element);this.tiles.on("change",((t,{added:e,removed:n})=>{if(e.length>0)for(const t of e)this.focusTracker.add(t.element);if(n.length>0)for(const t of n)this.focusTracker.remove(t.element)})),this.keystrokes.listenTo(this.element)}destroy(){super.destroy(),this.keystrokes.destroy()}focus(){this.tiles.first.focus()}}var Hx=n(128),qx={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Pr()(Hx.A,qx);Hx.A.locals;class jx extends Lr{constructor(t){super(t);const e=this.bindTemplate;this.set("character",null),this.set("name",null),this.bind("code").to(this,"character",Wx),this.setTemplate({tag:"div",children:[{tag:"span",attributes:{class:["ck-character-info__name"]},children:[{text:e.to("name",(t=>t||""))}]},{tag:"span",attributes:{class:["ck-character-info__code"]},children:[{text:e.to("code")}]}],attributes:{class:["ck","ck-character-info"]}})}}function Wx(t){if(null===t)return"";return"U+"+("0000"+t.codePointAt(0).toString(16)).slice(-4)}class Gx extends Lr{items;focusTracker;keystrokes;_focusCycler;navigationView;gridView;infoView;constructor(t,e,n,o){super(t),this.navigationView=e,this.gridView=n,this.infoView=o,this.items=this.createCollection(),this.focusTracker=new tr,this.keystrokes=new er,this._focusCycler=new am({focusables:this.items,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"shift + tab",focusNext:"tab"}}),this.setTemplate({tag:"div",children:[this.navigationView,this.gridView,this.infoView],attributes:{tabindex:"-1"}}),this.items.add(this.navigationView.groupDropdownView.buttonView),this.items.add(this.gridView)}render(){super.render(),this.focusTracker.add(this.navigationView.groupDropdownView.buttonView.element),this.focusTracker.add(this.gridView.element),this.keystrokes.listenTo(this.element)}destroy(){super.destroy(),this.focusTracker.destroy(),this.keystrokes.destroy()}focus(){this.navigationView.focus()}}var Kx=n(4272),Ux={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Pr()(Kx.A,Ux);Kx.A.locals;const $x="All";class Zx extends Nr{static get pluginName(){return"SpecialCharactersArrows"}init(){const t=this.editor,e=t.t;t.plugins.get("SpecialCharacters").addItems("Arrows",[{title:e("leftwards simple arrow"),character:"←"},{title:e("rightwards simple arrow"),character:"→"},{title:e("upwards simple arrow"),character:"↑"},{title:e("downwards simple arrow"),character:"↓"},{title:e("leftwards double arrow"),character:"⇐"},{title:e("rightwards double arrow"),character:"⇒"},{title:e("upwards double arrow"),character:"⇑"},{title:e("downwards double arrow"),character:"⇓"},{title:e("leftwards dashed arrow"),character:"⇠"},{title:e("rightwards dashed arrow"),character:"⇢"},{title:e("upwards dashed arrow"),character:"⇡"},{title:e("downwards dashed arrow"),character:"⇣"},{title:e("leftwards arrow to bar"),character:"⇤"},{title:e("rightwards arrow to bar"),character:"⇥"},{title:e("upwards arrow to bar"),character:"⤒"},{title:e("downwards arrow to bar"),character:"⤓"},{title:e("up down arrow with base"),character:"↨"},{title:e("back with leftwards arrow above"),character:"🔙"},{title:e("end with leftwards arrow above"),character:"🔚"},{title:e("on with exclamation mark with left right arrow above"),character:"🔛"},{title:e("soon with rightwards arrow above"),character:"🔜"},{title:e("top with upwards arrow above"),character:"🔝"}],{label:e("Arrows")})}}class Jx extends Nr{static get pluginName(){return"SpecialCharactersText"}init(){const t=this.editor,e=t.t;t.plugins.get("SpecialCharacters").addItems("Text",[{character:"‹",title:e("Single left-pointing angle quotation mark")},{character:"›",title:e("Single right-pointing angle quotation mark")},{character:"«",title:e("Left-pointing double angle quotation mark")},{character:"»",title:e("Right-pointing double angle quotation mark")},{character:"‘",title:e("Left single quotation mark")},{character:"’",title:e("Right single quotation mark")},{character:"“",title:e("Left double quotation mark")},{character:"”",title:e("Right double quotation mark")},{character:"‚",title:e("Single low-9 quotation mark")},{character:"„",title:e("Double low-9 quotation mark")},{character:"¡",title:e("Inverted exclamation mark")},{character:"¿",title:e("Inverted question mark")},{character:"‥",title:e("Two dot leader")},{character:"…",title:e("Horizontal ellipsis")},{character:"‡",title:e("Double dagger")},{character:"‰",title:e("Per mille sign")},{character:"‱",title:e("Per ten thousand sign")},{character:"‼",title:e("Double exclamation mark")},{character:"⁈",title:e("Question exclamation mark")},{character:"⁉",title:e("Exclamation question mark")},{character:"⁇",title:e("Double question mark")},{character:"©",title:e("Copyright sign")},{character:"®",title:e("Registered sign")},{character:"™",title:e("Trade mark sign")},{character:"§",title:e("Section sign")},{character:"¶",title:e("Paragraph sign")},{character:"⁋",title:e("Reversed paragraph sign")}],{label:e("Text")})}}class Yx extends Nr{static get pluginName(){return"SpecialCharactersMathematical"}init(){const t=this.editor,e=t.t;t.plugins.get("SpecialCharacters").addItems("Mathematical",[{character:"<",title:e("Less-than sign")},{character:">",title:e("Greater-than sign")},{character:"≤",title:e("Less-than or equal to")},{character:"≥",title:e("Greater-than or equal to")},{character:"–",title:e("En dash")},{character:"—",title:e("Em dash")},{character:"¯",title:e("Macron")},{character:"‾",title:e("Overline")},{character:"°",title:e("Degree sign")},{character:"−",title:e("Minus sign")},{character:"±",title:e("Plus-minus sign")},{character:"÷",title:e("Division sign")},{character:"⁄",title:e("Fraction slash")},{character:"×",title:e("Multiplication sign")},{character:"ƒ",title:e("Latin small letter f with hook")},{character:"∫",title:e("Integral")},{character:"∑",title:e("N-ary summation")},{character:"∞",title:e("Infinity")},{character:"√",title:e("Square root")},{character:"∼",title:e("Tilde operator")},{character:"≅",title:e("Approximately equal to")},{character:"≈",title:e("Almost equal to")},{character:"≠",title:e("Not equal to")},{character:"≡",title:e("Identical to")},{character:"∈",title:e("Element of")},{character:"∉",title:e("Not an element of")},{character:"∋",title:e("Contains as member")},{character:"∏",title:e("N-ary product")},{character:"∧",title:e("Logical and")},{character:"∨",title:e("Logical or")},{character:"¬",title:e("Not sign")},{character:"∩",title:e("Intersection")},{character:"∪",title:e("Union")},{character:"∂",title:e("Partial differential")},{character:"∀",title:e("For all")},{character:"∃",title:e("There exists")},{character:"∅",title:e("Empty set")},{character:"∇",title:e("Nabla")},{character:"∗",title:e("Asterisk operator")},{character:"∝",title:e("Proportional to")},{character:"∠",title:e("Angle")},{character:"¼",title:e("Vulgar fraction one quarter")},{character:"½",title:e("Vulgar fraction one half")},{character:"¾",title:e("Vulgar fraction three quarters")}],{label:e("Mathematical")})}}class Qx extends Nr{static get pluginName(){return"SpecialCharactersLatin"}init(){const t=this.editor,e=t.t;t.plugins.get("SpecialCharacters").addItems("Latin",[{character:"Ā",title:e("Latin capital letter a with macron")},{character:"ā",title:e("Latin small letter a with macron")},{character:"Ă",title:e("Latin capital letter a with breve")},{character:"ă",title:e("Latin small letter a with breve")},{character:"Ą",title:e("Latin capital letter a with ogonek")},{character:"ą",title:e("Latin small letter a with ogonek")},{character:"Ć",title:e("Latin capital letter c with acute")},{character:"ć",title:e("Latin small letter c with acute")},{character:"Ĉ",title:e("Latin capital letter c with circumflex")},{character:"ĉ",title:e("Latin small letter c with circumflex")},{character:"Ċ",title:e("Latin capital letter c with dot above")},{character:"ċ",title:e("Latin small letter c with dot above")},{character:"Č",title:e("Latin capital letter c with caron")},{character:"č",title:e("Latin small letter c with caron")},{character:"Ď",title:e("Latin capital letter d with caron")},{character:"ď",title:e("Latin small letter d with caron")},{character:"Đ",title:e("Latin capital letter d with stroke")},{character:"đ",title:e("Latin small letter d with stroke")},{character:"Ē",title:e("Latin capital letter e with macron")},{character:"ē",title:e("Latin small letter e with macron")},{character:"Ĕ",title:e("Latin capital letter e with breve")},{character:"ĕ",title:e("Latin small letter e with breve")},{character:"Ė",title:e("Latin capital letter e with dot above")},{character:"ė",title:e("Latin small letter e with dot above")},{character:"Ę",title:e("Latin capital letter e with ogonek")},{character:"ę",title:e("Latin small letter e with ogonek")},{character:"Ě",title:e("Latin capital letter e with caron")},{character:"ě",title:e("Latin small letter e with caron")},{character:"Ĝ",title:e("Latin capital letter g with circumflex")},{character:"ĝ",title:e("Latin small letter g with circumflex")},{character:"Ğ",title:e("Latin capital letter g with breve")},{character:"ğ",title:e("Latin small letter g with breve")},{character:"Ġ",title:e("Latin capital letter g with dot above")},{character:"ġ",title:e("Latin small letter g with dot above")},{character:"Ģ",title:e("Latin capital letter g with cedilla")},{character:"ģ",title:e("Latin small letter g with cedilla")},{character:"Ĥ",title:e("Latin capital letter h with circumflex")},{character:"ĥ",title:e("Latin small letter h with circumflex")},{character:"Ħ",title:e("Latin capital letter h with stroke")},{character:"ħ",title:e("Latin small letter h with stroke")},{character:"Ĩ",title:e("Latin capital letter i with tilde")},{character:"ĩ",title:e("Latin small letter i with tilde")},{character:"Ī",title:e("Latin capital letter i with macron")},{character:"ī",title:e("Latin small letter i with macron")},{character:"Ĭ",title:e("Latin capital letter i with breve")},{character:"ĭ",title:e("Latin small letter i with breve")},{character:"Į",title:e("Latin capital letter i with ogonek")},{character:"į",title:e("Latin small letter i with ogonek")},{character:"İ",title:e("Latin capital letter i with dot above")},{character:"ı",title:e("Latin small letter dotless i")},{character:"IJ",title:e("Latin capital ligature ij")},{character:"ij",title:e("Latin small ligature ij")},{character:"Ĵ",title:e("Latin capital letter j with circumflex")},{character:"ĵ",title:e("Latin small letter j with circumflex")},{character:"Ķ",title:e("Latin capital letter k with cedilla")},{character:"ķ",title:e("Latin small letter k with cedilla")},{character:"ĸ",title:e("Latin small letter kra")},{character:"Ĺ",title:e("Latin capital letter l with acute")},{character:"ĺ",title:e("Latin small letter l with acute")},{character:"Ļ",title:e("Latin capital letter l with cedilla")},{character:"ļ",title:e("Latin small letter l with cedilla")},{character:"Ľ",title:e("Latin capital letter l with caron")},{character:"ľ",title:e("Latin small letter l with caron")},{character:"Ŀ",title:e("Latin capital letter l with middle dot")},{character:"ŀ",title:e("Latin small letter l with middle dot")},{character:"Ł",title:e("Latin capital letter l with stroke")},{character:"ł",title:e("Latin small letter l with stroke")},{character:"Ń",title:e("Latin capital letter n with acute")},{character:"ń",title:e("Latin small letter n with acute")},{character:"Ņ",title:e("Latin capital letter n with cedilla")},{character:"ņ",title:e("Latin small letter n with cedilla")},{character:"Ň",title:e("Latin capital letter n with caron")},{character:"ň",title:e("Latin small letter n with caron")},{character:"ʼn",title:e("Latin small letter n preceded by apostrophe")},{character:"Ŋ",title:e("Latin capital letter eng")},{character:"ŋ",title:e("Latin small letter eng")},{character:"Ō",title:e("Latin capital letter o with macron")},{character:"ō",title:e("Latin small letter o with macron")},{character:"Ŏ",title:e("Latin capital letter o with breve")},{character:"ŏ",title:e("Latin small letter o with breve")},{character:"Ő",title:e("Latin capital letter o with double acute")},{character:"ő",title:e("Latin small letter o with double acute")},{character:"Œ",title:e("Latin capital ligature oe")},{character:"œ",title:e("Latin small ligature oe")},{character:"Ŕ",title:e("Latin capital letter r with acute")},{character:"ŕ",title:e("Latin small letter r with acute")},{character:"Ŗ",title:e("Latin capital letter r with cedilla")},{character:"ŗ",title:e("Latin small letter r with cedilla")},{character:"Ř",title:e("Latin capital letter r with caron")},{character:"ř",title:e("Latin small letter r with caron")},{character:"Ś",title:e("Latin capital letter s with acute")},{character:"ś",title:e("Latin small letter s with acute")},{character:"Ŝ",title:e("Latin capital letter s with circumflex")},{character:"ŝ",title:e("Latin small letter s with circumflex")},{character:"Ş",title:e("Latin capital letter s with cedilla")},{character:"ş",title:e("Latin small letter s with cedilla")},{character:"Š",title:e("Latin capital letter s with caron")},{character:"š",title:e("Latin small letter s with caron")},{character:"Ţ",title:e("Latin capital letter t with cedilla")},{character:"ţ",title:e("Latin small letter t with cedilla")},{character:"Ť",title:e("Latin capital letter t with caron")},{character:"ť",title:e("Latin small letter t with caron")},{character:"Ŧ",title:e("Latin capital letter t with stroke")},{character:"ŧ",title:e("Latin small letter t with stroke")},{character:"Ũ",title:e("Latin capital letter u with tilde")},{character:"ũ",title:e("Latin small letter u with tilde")},{character:"Ū",title:e("Latin capital letter u with macron")},{character:"ū",title:e("Latin small letter u with macron")},{character:"Ŭ",title:e("Latin capital letter u with breve")},{character:"ŭ",title:e("Latin small letter u with breve")},{character:"Ů",title:e("Latin capital letter u with ring above")},{character:"ů",title:e("Latin small letter u with ring above")},{character:"Ű",title:e("Latin capital letter u with double acute")},{character:"ű",title:e("Latin small letter u with double acute")},{character:"Ų",title:e("Latin capital letter u with ogonek")},{character:"ų",title:e("Latin small letter u with ogonek")},{character:"Ŵ",title:e("Latin capital letter w with circumflex")},{character:"ŵ",title:e("Latin small letter w with circumflex")},{character:"Ŷ",title:e("Latin capital letter y with circumflex")},{character:"ŷ",title:e("Latin small letter y with circumflex")},{character:"Ÿ",title:e("Latin capital letter y with diaeresis")},{character:"Ź",title:e("Latin capital letter z with acute")},{character:"ź",title:e("Latin small letter z with acute")},{character:"Ż",title:e("Latin capital letter z with dot above")},{character:"ż",title:e("Latin small letter z with dot above")},{character:"Ž",title:e("Latin capital letter z with caron")},{character:"ž",title:e("Latin small letter z with caron")},{character:"ſ",title:e("Latin small letter long s")}],{label:e("Latin")})}}class Xx extends Nr{static get pluginName(){return"SpecialCharactersCurrency"}init(){const t=this.editor,e=t.t;t.plugins.get("SpecialCharacters").addItems("Currency",[{character:"$",title:e("Dollar sign")},{character:"€",title:e("Euro sign")},{character:"¥",title:e("Yen sign")},{character:"£",title:e("Pound sign")},{character:"¢",title:e("Cent sign")},{character:"₠",title:e("Euro-currency sign")},{character:"₡",title:e("Colon sign")},{character:"₢",title:e("Cruzeiro sign")},{character:"₣",title:e("French franc sign")},{character:"₤",title:e("Lira sign")},{character:"¤",title:e("Currency sign")},{character:"₿",title:e("Bitcoin sign")},{character:"₥",title:e("Mill sign")},{character:"₦",title:e("Naira sign")},{character:"₧",title:e("Peseta sign")},{character:"₨",title:e("Rupee sign")},{character:"₩",title:e("Won sign")},{character:"₪",title:e("New sheqel sign")},{character:"₫",title:e("Dong sign")},{character:"₭",title:e("Kip sign")},{character:"₮",title:e("Tugrik sign")},{character:"₯",title:e("Drachma sign")},{character:"₰",title:e("German penny sign")},{character:"₱",title:e("Peso sign")},{character:"₲",title:e("Guarani sign")},{character:"₳",title:e("Austral sign")},{character:"₴",title:e("Hryvnia sign")},{character:"₵",title:e("Cedi sign")},{character:"₶",title:e("Livre tournois sign")},{character:"₷",title:e("Spesmilo sign")},{character:"₸",title:e("Tenge sign")},{character:"₹",title:e("Indian rupee sign")},{character:"₺",title:e("Turkish lira sign")},{character:"₻",title:e("Nordic mark sign")},{character:"₼",title:e("Manat sign")},{character:"₽",title:e("Ruble sign")}],{label:e("Currency")})}}function tE(t,e,n,o,i=1){null!=e&&null!=i&&e>i?o.setAttribute(t,e,n):o.removeAttribute(t,n)}function eE(t,e,n={}){const o=t.createElement("tableCell",n);return t.insertElement("paragraph",o),t.insert(o,e),o}function nE(t,e){const n=e.parent.parent,o=parseInt(n.getAttribute("headingColumns")||"0"),{column:i}=t.getCellLocation(e);return!!o&&i{t.on("element:table",((t,e,n)=>{const o=e.viewItem;if(!n.consumable.test(o,{name:!0}))return;const{rows:i,headingRows:r,headingColumns:s}=function(t){let e,n=0;const o=[],i=[];let r;for(const s of Array.from(t.getChildren())){if("tbody"!==s.name&&"thead"!==s.name&&"tfoot"!==s.name)continue;"thead"!==s.name||r||(r=s);const t=Array.from(s.getChildren()).filter((t=>t.is("element","tr")));for(const a of t)if(r&&s===r||"tbody"===s.name&&Array.from(a.getChildren()).length&&Array.from(a.getChildren()).every((t=>t.is("element","th"))))n++,o.push(a);else{i.push(a);const t=sE(a);(!e||tn.convertItem(t,n.writer.createPositionAt(c,"end")))),n.convertChildren(o,n.writer.createPositionAt(c,"end")),c.isEmpty){const t=n.writer.createElement("tableRow");n.writer.insert(t,n.writer.createPositionAt(c,"end")),eE(n.writer,n.writer.createPositionAt(t,"end"))}n.updateConversionResult(c,e)}}))}}function rE(t){return e=>{e.on(`element:${t}`,((t,e,{writer:n})=>{if(!e.modelRange)return;const o=e.modelRange.start.nodeAfter,i=n.createPositionAt(o,0);if(e.viewItem.isEmpty)return void n.insertElement("paragraph",i);const r=Array.from(o.getChildren());if(r.every((t=>t.is("element","$marker")))){const t=n.createElement("paragraph");n.insert(t,n.createPositionAt(o,0));for(const e of r)n.move(n.createRangeOn(e),n.createPositionAt(t,"end"))}}),{priority:"low"})}}function sE(t){let e=0,n=0;const o=Array.from(t.getChildren()).filter((t=>"th"===t.name||"td"===t.name));for(;n1||i>1)&&this._recordSpans(n,i,o),this._shouldSkipSlot()||(e=this._formatOutValue(n)),this._nextCellAtColumn=this._column+o}return this._column++,this._column==this._nextCellAtColumn&&this._cellIndex++,e||this.next()}skipRow(t){this._skipRows.add(t)}_advanceToNextRow(){return this._row++,this._rowIndex++,this._column=0,this._cellIndex=0,this._nextCellAtColumn=-1,this.next()}_isOverEndRow(){return void 0!==this._endRow&&this._row>this._endRow}_isOverEndColumn(){return void 0!==this._endColumn&&this._column>this._endColumn}_formatOutValue(t,e=this._row,n=this._column){return{done:!1,value:new cE(this,t,e,n)}}_shouldSkipSlot(){const t=this._skipRows.has(this._row),e=this._rowthis._endColumn;return t||e||n||o}_getSpanned(){const t=this._spannedCells.get(this._row);return t&&t.get(this._column)||null}_recordSpans(t,e,n){const o={cell:t,row:this._row,column:this._column};for(let t=this._row;t0&&!this._jumpedToStartRow}_jumpToNonSpannedRowClosestToStartRow(){const t=this._getRowLength(0);for(let e=this._startRow;!this._jumpedToStartRow;e--)t===this._getRowLength(e)&&(this._row=e,this._rowIndex=e,this._jumpedToStartRow=!0)}_getRowLength(t){return[...this._table.getChild(t).getChildren()].reduce(((t,e)=>t+parseInt(e.getAttribute("colspan")||"1")),0)}}class cE{cell;row;column;cellAnchorRow;cellAnchorColumn;_cellIndex;_rowIndex;_table;constructor(t,e,n,o){this.cell=e,this.row=t._row,this.column=t._column,this.cellAnchorRow=n,this.cellAnchorColumn=o,this._cellIndex=t._cellIndex,this._rowIndex=t._rowIndex,this._table=t._table}get isAnchor(){return this.row===this.cellAnchorRow&&this.column===this.cellAnchorColumn}get cellWidth(){return parseInt(this.cell.getAttribute("colspan")||"1")}get cellHeight(){return parseInt(this.cell.getAttribute("rowspan")||"1")}get rowIndex(){return this._rowIndex}getPositionBefore(){return this._table.root.document.model.createPositionAt(this._table.getChild(this.row),this._cellIndex)}}function lE(t,e){return(n,{writer:o})=>{const i=n.getAttribute("headingRows")||0,r=o.createContainerElement("table",null,[]),s=o.createContainerElement("figure",{class:"table"},r);i>0&&o.insert(o.createPositionAt(r,"end"),o.createContainerElement("thead",null,o.createSlot((t=>t.is("element","tableRow")&&t.indext.is("element","tableRow")&&t.index>=i))));for(const{positionOffset:t,filter:n}of e.additionalSlots)o.insert(o.createPositionAt(r,t),o.createSlot(n));return o.insert(o.createPositionAt(r,"after"),o.createSlot((t=>!t.is("element","tableRow")&&!e.additionalSlots.some((({filter:e})=>e(t)))))),e.asWidget?function(t,e){return e.setCustomProperty("table",!0,t),k_(t,e,{hasSelectionHandle:!0})}(s,o):s}}function dE(t={}){return(e,{writer:n})=>{const o=e.parent,i=o.parent,r=i.getChildIndex(o),s=new aE(i,{row:r}),a=i.getAttribute("headingRows")||0,c=i.getAttribute("headingColumns")||0;let l=null;for(const o of s)if(o.cell==e){const e=o.row{if(!e.parent.is("element","tableCell"))return null;if(!uE(e))return null;if(t.asWidget)return n.createContainerElement("span",{class:"ck-table-bogus-paragraph"});{const t=n.createContainerElement("p");return n.setCustomProperty("dataPipeline:transparentRendering",!0,t),t}}}function uE(t){return 1==t.parent.childCount&&!!t.getAttributeKeys().next().done}class mE extends qr{refresh(){const t=this.editor.model,e=t.document.selection,n=t.schema;this.isEnabled=function(t,e){const n=t.getFirstPosition().parent,o=n===n.root?n:n.parent;return e.checkChild(o,"table")}(e,n)}execute(t={}){const e=this.editor,n=e.model,o=e.plugins.get("TableUtils"),i=e.config.get("table.defaultHeadings.rows"),r=e.config.get("table.defaultHeadings.columns");void 0===t.headingRows&&i&&(t.headingRows=i),void 0===t.headingColumns&&r&&(t.headingColumns=r),n.change((e=>{const i=o.createTable(e,t);n.insertObject(i,null,null,{findOptimalPosition:"auto"}),e.setSelection(e.createPositionAt(i.getNodeByPath([0,0,0]),0))}))}}class gE extends qr{order;constructor(t,e={}){super(t),this.order=e.order||"below"}refresh(){const t=this.editor.model.document.selection,e=!!this.editor.plugins.get("TableUtils").getSelectionAffectedTableCells(t).length;this.isEnabled=e}execute(){const t=this.editor,e=t.model.document.selection,n=t.plugins.get("TableUtils"),o="above"===this.order,i=n.getSelectionAffectedTableCells(e),r=n.getRowIndexes(i),s=o?r.first:r.last,a=i[0].findAncestor("table");n.insertRows(a,{at:o?s:s+1,copyStructureFromAbove:!o})}}class pE extends qr{order;constructor(t,e={}){super(t),this.order=e.order||"right"}refresh(){const t=this.editor.model.document.selection,e=!!this.editor.plugins.get("TableUtils").getSelectionAffectedTableCells(t).length;this.isEnabled=e}execute(){const t=this.editor,e=t.model.document.selection,n=t.plugins.get("TableUtils"),o="left"===this.order,i=n.getSelectionAffectedTableCells(e),r=n.getColumnIndexes(i),s=o?r.first:r.last,a=i[0].findAncestor("table");n.insertColumns(a,{columns:1,at:o?s:s+1})}}class fE extends qr{direction;constructor(t,e={}){super(t),this.direction=e.direction||"horizontally"}refresh(){const t=this.editor.plugins.get("TableUtils").getSelectionAffectedTableCells(this.editor.model.document.selection);this.isEnabled=1===t.length}execute(){const t=this.editor.plugins.get("TableUtils"),e=t.getSelectionAffectedTableCells(this.editor.model.document.selection)[0];"horizontally"===this.direction?t.splitCellHorizontally(e,2):t.splitCellVertically(e,2)}}function kE(t,e,n){const{startRow:o,startColumn:i,endRow:r,endColumn:s}=e,a=n.createElement("table"),c=r-o+1;for(let t=0;t0){tE("headingRows",r-n,t,i,0)}const s=parseInt(e.getAttribute("headingColumns")||"0");if(s>0){tE("headingColumns",s-o,t,i,0)}}(a,t,o,i,n),a}function bE(t,e,n=0){const o=[],i=new aE(t,{startRow:n,endRow:e-1});for(const t of i){const{row:n,cellHeight:i}=t;n1&&(a.rowspan=c);const l=parseInt(t.getAttribute("colspan")||"1");l>1&&(a.colspan=l);const d=r+s,h=[...new aE(i,{startRow:r,endRow:d,includeAllSlots:!0})];let u,m=null;for(const e of h){const{row:o,column:i,cell:r}=e;r===t&&void 0===u&&(u=i),void 0!==u&&u===i&&o===d&&(m=eE(n,e.getPositionBefore(),a))}return tE("rowspan",s,t,n),m}function _E(t,e){const n=[],o=new aE(t);for(const t of o){const{column:o,cellWidth:i}=t;o1&&(r.colspan=s);const a=parseInt(t.getAttribute("rowspan")||"1");a>1&&(r.rowspan=a);const c=eE(o,o.createPositionAfter(t),r);return tE("colspan",i,t,o),c}function CE(t,e,n,o,i,r){const s=parseInt(t.getAttribute("colspan")||"1"),a=parseInt(t.getAttribute("rowspan")||"1");if(n+s-1>i){tE("colspan",i-n+1,t,r,1)}if(e+a-1>o){tE("rowspan",o-e+1,t,r,1)}}function vE(t,e){const n=e.getColumns(t),o=new Array(n).fill(0);for(const{column:e}of new aE(t))o[e]++;const i=o.reduce(((t,e,n)=>e?t:[...t,n]),[]);if(i.length>0){const n=i[i.length-1];return e.removeColumns(t,{at:n}),!0}return!1}function yE(t,e){const n=[],o=e.getRows(t);for(let e=0;e0){const o=n[n.length-1];return e.removeRows(t,{at:o}),!0}return!1}function xE(t,e){vE(t,e)||yE(t,e)}function EE(t,e){const n=Array.from(new aE(t,{startColumn:e.firstColumn,endColumn:e.lastColumn,row:e.lastRow}));if(n.every((({cellHeight:t})=>1===t)))return e.lastRow;const o=n[0].cellHeight-1;return e.lastRow+o}function DE(t,e){const n=Array.from(new aE(t,{startRow:e.firstRow,endRow:e.lastRow,column:e.lastColumn}));if(n.every((({cellWidth:t})=>1===t)))return e.lastColumn;const o=n[0].cellWidth-1;return e.lastColumn+o}class BE extends qr{direction;isHorizontal;constructor(t,e){super(t),this.direction=e.direction,this.isHorizontal="right"==this.direction||"left"==this.direction}refresh(){const t=this._getMergeableCell();this.value=t,this.isEnabled=!!t}execute(){const t=this.editor.model,e=t.document,n=this.editor.plugins.get("TableUtils").getTableCellsContainingSelection(e.selection)[0],o=this.value,i=this.direction;t.change((t=>{const e="right"==i||"down"==i,r=e?n:o,s=e?o:n,a=s.parent;!function(t,e,n){TE(t)||(TE(e)&&n.remove(n.createRangeIn(e)),n.move(n.createRangeIn(t),n.createPositionAt(e,"end")));n.remove(t)}(s,r,t);const c=this.isHorizontal?"colspan":"rowspan",l=parseInt(n.getAttribute(c)||"1"),d=parseInt(o.getAttribute(c)||"1");t.setAttribute(c,l+d,r),t.setSelection(t.createRangeIn(r));const h=this.editor.plugins.get("TableUtils");xE(a.findAncestor("table"),h)}))}_getMergeableCell(){const t=this.editor.model.document,e=this.editor.plugins.get("TableUtils"),n=e.getTableCellsContainingSelection(t.selection)[0];if(!n)return;const o=this.isHorizontal?function(t,e,n){const o=t.parent,i=o.parent,r="right"==e?t.nextSibling:t.previousSibling,s=(i.getAttribute("headingColumns")||0)>0;if(!r)return;const a="right"==e?t:r,c="right"==e?r:t,{column:l}=n.getCellLocation(a),{column:d}=n.getCellLocation(c),h=parseInt(a.getAttribute("colspan")||"1"),u=nE(n,a),m=nE(n,c);if(s&&u!=m)return;return l+h===d?r:void 0}(n,this.direction,e):function(t,e,n){const o=t.parent,i=o.parent,r=i.getChildIndex(o);if("down"==e&&r===n.getRows(i)-1||"up"==e&&0===r)return null;const s=parseInt(t.getAttribute("rowspan")||"1"),a=i.getAttribute("headingRows")||0,c="down"==e&&r+s===a,l="up"==e&&r===a;if(a&&(c||l))return null;const d=parseInt(t.getAttribute("rowspan")||"1"),h="down"==e?r+d:r,u=[...new aE(i,{endRow:h})],m=u.find((e=>e.cell===t)),g=m.column,p=u.find((({row:t,cellHeight:n,column:o})=>o===g&&("down"==e?t===h:h===t+n)));return p&&p.cell?p.cell:null}(n,this.direction,e);if(!o)return;const i=this.isHorizontal?"rowspan":"colspan",r=parseInt(n.getAttribute(i)||"1");return parseInt(o.getAttribute(i)||"1")===r?o:void 0}}function TE(t){const e=t.getChild(0);return 1==t.childCount&&e.is("element","paragraph")&&e.isEmpty}class SE extends qr{refresh(){const t=this.editor.plugins.get("TableUtils"),e=t.getSelectionAffectedTableCells(this.editor.model.document.selection),n=e[0];if(n){const o=n.findAncestor("table"),i=t.getRows(o)-1,r=t.getRowIndexes(e),s=0===r.first&&r.last===i;this.isEnabled=!s}else this.isEnabled=!1}execute(){const t=this.editor.model,e=this.editor.plugins.get("TableUtils"),n=e.getSelectionAffectedTableCells(t.document.selection),o=e.getRowIndexes(n),i=n[0],r=i.findAncestor("table"),s=e.getCellLocation(i).column;t.change((t=>{const n=o.last-o.first+1;e.removeRows(r,{at:o.first,rows:n});const i=function(t,e,n,o){const i=t.getChild(Math.min(e,o-1));let r=i.getChild(0),s=0;for(const t of i.getChildren()){if(s>n)return r;r=t,s+=parseInt(t.getAttribute("colspan")||"1")}return r}(r,o.first,s,e.getRows(r));t.setSelection(t.createPositionAt(i,0))}))}}class IE extends qr{refresh(){const t=this.editor.plugins.get("TableUtils"),e=t.getSelectionAffectedTableCells(this.editor.model.document.selection),n=e[0];if(n){const o=n.findAncestor("table"),i=t.getColumns(o),{first:r,last:s}=t.getColumnIndexes(e);this.isEnabled=s-rt.cell===e)).column,last:i.find((t=>t.cell===n)).column},s=function(t,e,n,o){const i=parseInt(n.getAttribute("colspan")||"1");return i>1?n:e.previousSibling||n.nextSibling?n.nextSibling||e.previousSibling:o.first?t.reverse().find((({column:t})=>tt>o.last)).cell}(i,e,n,r);this.editor.model.change((e=>{const n=r.last-r.first+1;t.removeColumns(o,{at:r.first,columns:n}),e.setSelection(e.createPositionAt(s,0))}))}}class PE extends qr{refresh(){const t=this.editor.plugins.get("TableUtils"),e=this.editor.model,n=t.getSelectionAffectedTableCells(e.document.selection),o=n.length>0;this.isEnabled=o,this.value=o&&n.every((t=>this._isInHeading(t,t.parent.parent)))}execute(t={}){if(t.forceValue===this.value)return;const e=this.editor.plugins.get("TableUtils"),n=this.editor.model,o=e.getSelectionAffectedTableCells(n.document.selection),i=o[0].findAncestor("table"),{first:r,last:s}=e.getRowIndexes(o),a=this.value?r:s+1,c=i.getAttribute("headingRows")||0;n.change((t=>{if(a){const e=bE(i,a,a>c?c:0);for(const{cell:n}of e)wE(n,a,t)}tE("headingRows",a,i,t,0)}))}_isInHeading(t,e){const n=parseInt(e.getAttribute("headingRows")||"0");return!!n&&t.parent.index0;this.isEnabled=o,this.value=o&&n.every((t=>nE(e,t)))}execute(t={}){if(t.forceValue===this.value)return;const e=this.editor.plugins.get("TableUtils"),n=this.editor.model,o=e.getSelectionAffectedTableCells(n.document.selection),i=o[0].findAncestor("table"),{first:r,last:s}=e.getColumnIndexes(o),a=this.value?r:s+1;n.change((t=>{if(a){const e=_E(i,a);for(const{cell:n,column:o}of e)AE(n,o,a,t)}tE("headingColumns",a,i,t,0)}))}}function RE(t){if(t.is("element","tableColumnGroup"))return t;const e=t.getChildren();return Array.from(e).find((t=>t.is("element","tableColumnGroup")))}function LE(t){const e=RE(t);return e?Array.from(e.getChildren()):[]}class FE extends Nr{static get pluginName(){return"TableUtils"}init(){this.decorate("insertColumns"),this.decorate("insertRows")}getCellLocation(t){const e=t.parent,n=e.parent,o=n.getChildIndex(e),i=new aE(n,{row:o});for(const{cell:e,row:n,column:o}of i)if(e===t)return{row:n,column:o}}createTable(t,e){const n=t.createElement("table"),o=e.rows||2,i=e.columns||2;return ME(t,n,0,o,i),e.headingRows&&tE("headingRows",Math.min(e.headingRows,o),n,t,0),e.headingColumns&&tE("headingColumns",Math.min(e.headingColumns,i),n,t,0),n}insertRows(t,e={}){const n=this.editor.model,o=e.at||0,i=e.rows||1,r=void 0!==e.copyStructureFromAbove,s=e.copyStructureFromAbove?o-1:o,a=this.getRows(t),c=this.getColumns(t);if(o>a)throw new x("tableutils-insertrows-insert-out-of-range",this,{options:e});n.change((e=>{const n=t.getAttribute("headingRows")||0;if(n>o&&tE("headingRows",n+i,t,e,0),!r&&(0===o||o===a))return void ME(e,t,o,i,c);const l=r?Math.max(o,s):o,d=new aE(t,{endRow:l}),h=new Array(c).fill(1);for(const{row:t,column:n,cellHeight:a,cellWidth:c,cell:l}of d){const d=t+a-1,u=t<=s&&s<=d;t0&&eE(e,i,o>1?{colspan:o}:void 0),t+=Math.abs(o)-1}}}))}insertColumns(t,e={}){const n=this.editor.model,o=e.at||0,i=e.columns||1;n.change((e=>{const n=t.getAttribute("headingColumns");oi-1)throw new x("tableutils-removerows-row-index-out-of-range",this,{table:t,options:e});n.change((e=>{const n={first:r,last:s},{cellsToMove:o,cellsToTrim:i}=function(t,{first:e,last:n}){const o=new Map,i=[];for(const{row:r,column:s,cellHeight:a,cell:c}of new aE(t,{endRow:n})){const t=r+a-1;if(r>=e&&r<=n&&t>n){const t=a-(n-r+1);o.set(s,{cell:c,rowspan:t})}if(r=e){let o;o=t>=n?n-e+1:t-e+1,i.push({cell:c,rowspan:a-o})}}return{cellsToMove:o,cellsToTrim:i}}(t,n);if(o.size){!function(t,e,n,o){const i=new aE(t,{includeAllSlots:!0,row:e}),r=[...i],s=t.getChild(e);let a;for(const{column:t,cell:e,isAnchor:i}of r)if(n.has(t)){const{cell:e,rowspan:i}=n.get(t),r=a?o.createPositionAfter(a):o.createPositionAt(s,0);o.move(o.createRangeOn(e),r),tE("rowspan",i,e,o),a=e}else i&&(a=e)}(t,s+1,o,e)}for(let n=s;n>=r;n--)e.remove(t.getChild(n));for(const{rowspan:t,cell:n}of i)tE("rowspan",t,n,e);!function(t,{first:e,last:n},o){const i=t.getAttribute("headingRows")||0;if(e{!function(t,e,n){const o=t.getAttribute("headingColumns")||0;if(o&&e.first=o;i--){for(const{cell:n,column:o,cellWidth:r}of[...new aE(t)])o<=i&&r>1&&o+r>i?tE("colspan",r-1,n,e):o===i&&e.remove(n);if(n[i]){const t=0===i?n[1]:n[i-1],o=parseFloat(n[i].getAttribute("columnWidth")),r=parseFloat(t.getAttribute("columnWidth"));e.remove(n[i]),e.setAttribute("columnWidth",o+r+"%",t)}}yE(t,this)||vE(t,this)}))}splitCellVertically(t,e=2){const n=this.editor.model,o=t.parent.parent,i=parseInt(t.getAttribute("rowspan")||"1"),r=parseInt(t.getAttribute("colspan")||"1");n.change((n=>{if(r>1){const{newCellsSpan:o,updatedSpan:s}=OE(r,e);tE("colspan",s,t,n);const a={};o>1&&(a.colspan=o),i>1&&(a.rowspan=i);VE(r>e?e-1:r-1,n,n.createPositionAfter(t),a)}if(re===t)),l=a.filter((({cell:e,cellWidth:n,column:o})=>e!==t&&o===c||oc));for(const{cell:t,cellWidth:e}of l)n.setAttribute("colspan",e+s,t);const d={};i>1&&(d.rowspan=i),VE(s,n,n.createPositionAfter(t),d);const h=o.getAttribute("headingColumns")||0;h>c&&tE("headingColumns",h+s,o,n)}}))}splitCellHorizontally(t,e=2){const n=this.editor.model,o=t.parent,i=o.parent,r=i.getChildIndex(o),s=parseInt(t.getAttribute("rowspan")||"1"),a=parseInt(t.getAttribute("colspan")||"1");n.change((n=>{if(s>1){const o=[...new aE(i,{startRow:r,endRow:r+s-1,includeAllSlots:!0})],{newCellsSpan:c,updatedSpan:l}=OE(s,e);tE("rowspan",l,t,n);const{column:d}=o.find((({cell:e})=>e===t)),h={};c>1&&(h.rowspan=c),a>1&&(h.colspan=a);for(const t of o){const{column:e,row:o}=t;o>=r+l&&e===d&&(o+r+l)%c==0&&VE(1,n,t.getPositionBefore(),h)}}if(sr){const t=i+o;n.setAttribute("rowspan",t,e)}const l={};a>1&&(l.colspan=a),ME(n,i,r+1,o,1,l);const d=i.getAttribute("headingRows")||0;d>r&&tE("headingRows",d+o,i,n)}}))}getColumns(t){return[...t.getChild(0).getChildren()].filter((t=>t.is("element","tableCell"))).reduce(((t,e)=>t+parseInt(e.getAttribute("colspan")||"1")),0)}getRows(t){return Array.from(t.getChildren()).reduce(((t,e)=>e.is("element","tableRow")?t+1:t),0)}createTableWalker(t,e={}){return new aE(t,e)}getSelectedTableCells(t){const e=[];for(const n of this.sortRanges(t.getRanges())){const t=n.getContainedElement();t&&t.is("element","tableCell")&&e.push(t)}return e}getTableCellsContainingSelection(t){const e=[];for(const n of t.getRanges()){const t=n.start.findAncestor("tableCell");t&&e.push(t)}return e}getSelectionAffectedTableCells(t){const e=this.getSelectedTableCells(t);return e.length?e:this.getTableCellsContainingSelection(t)}getRowIndexes(t){const e=t.map((t=>t.parent.index));return this._getFirstLastIndexesObject(e)}getColumnIndexes(t){const e=t[0].findAncestor("table"),n=[...new aE(e)].filter((e=>t.includes(e.cell))).map((t=>t.column));return this._getFirstLastIndexesObject(n)}isSelectionRectangular(t){if(t.length<2||!this._areCellInTheSameTableSection(t))return!1;const e=new Set,n=new Set;let o=0;for(const i of t){const{row:t,column:r}=this.getCellLocation(i),s=parseInt(i.getAttribute("rowspan"))||1,a=parseInt(i.getAttribute("colspan"))||1;e.add(t),n.add(r),s>1&&e.add(t+s-1),a>1&&n.add(r+a-1),o+=s*a}const i=function(t,e){const n=Array.from(t.values()),o=Array.from(e.values()),i=Math.max(...n),r=Math.min(...n),s=Math.max(...o),a=Math.min(...o);return(i-r+1)*(s-a+1)}(e,n);return i==o}sortRanges(t){return Array.from(t).sort(NE)}_getFirstLastIndexesObject(t){const e=t.sort(((t,e)=>t-e));return{first:e[0],last:e[e.length-1]}}_areCellInTheSameTableSection(t){const e=t[0].findAncestor("table"),n=this.getRowIndexes(t),o=parseInt(e.getAttribute("headingRows"))||0;if(!this._areIndexesInSameSection(n,o))return!1;const i=this.getColumnIndexes(t),r=parseInt(e.getAttribute("headingColumns"))||0;return this._areIndexesInSameSection(i,r)}_areIndexesInSameSection({first:t,last:e},n){return t{const o=e.getSelectedTableCells(t.document.selection),i=o.shift(),{mergeWidth:r,mergeHeight:s}=function(t,e,n){let o=0,i=0;for(const t of e){const{row:e,column:r}=n.getCellLocation(t);o=WE(t,r,o,"colspan"),i=WE(t,e,i,"rowspan")}const{row:r,column:s}=n.getCellLocation(t),a=o-s,c=i-r;return{mergeWidth:a,mergeHeight:c}}(i,o,e);tE("colspan",r,i,n),tE("rowspan",s,i,n);for(const t of o)qE(t,i,n);xE(i.findAncestor("table"),e),n.setSelection(i,"in")}))}}function qE(t,e,n){jE(t)||(jE(e)&&n.remove(n.createRangeIn(e)),n.move(n.createRangeIn(t),n.createPositionAt(e,"end"))),n.remove(t)}function jE(t){const e=t.getChild(0);return 1==t.childCount&&e.is("element","paragraph")&&e.isEmpty}function WE(t,e,n,o){const i=parseInt(t.getAttribute(o)||"1");return Math.max(n,e+i)}class GE extends qr{constructor(t){super(t),this.affectsData=!1}refresh(){const t=this.editor.plugins.get("TableUtils").getSelectionAffectedTableCells(this.editor.model.document.selection);this.isEnabled=t.length>0}execute(){const t=this.editor.model,e=this.editor.plugins.get("TableUtils"),n=e.getSelectionAffectedTableCells(t.document.selection),o=e.getRowIndexes(n),i=n[0].findAncestor("table"),r=[];for(let e=o.first;e<=o.last;e++)for(const n of i.getChild(e).getChildren())r.push(t.createRangeOn(n));t.change((t=>{t.setSelection(r)}))}}class KE extends qr{constructor(t){super(t),this.affectsData=!1}refresh(){const t=this.editor.plugins.get("TableUtils").getSelectionAffectedTableCells(this.editor.model.document.selection);this.isEnabled=t.length>0}execute(){const t=this.editor.plugins.get("TableUtils"),e=this.editor.model,n=t.getSelectionAffectedTableCells(e.document.selection),o=n[0],i=n.pop(),r=o.findAncestor("table"),s=t.getCellLocation(o),a=t.getCellLocation(i),c=Math.min(s.column,a.column),l=Math.max(s.column,a.column),d=[];for(const t of new aE(r,{startColumn:c,endColumn:l}))d.push(e.createRangeOn(t.cell));e.change((t=>{t.setSelection(d)}))}}function UE(t){t.document.registerPostFixer((e=>function(t,e){const n=e.document.differ.getChanges();let o=!1;const i=new Set;for(const e of n){let n=null;"insert"==e.type&&"table"==e.name&&(n=e.position.nodeAfter),"insert"!=e.type&&"remove"!=e.type||"tableRow"!=e.name&&"tableCell"!=e.name||(n=e.position.findAncestor("table")),JE(e)&&(n=e.range.start.findAncestor("table")),n&&!i.has(n)&&(o=$E(n,t)||o,o=ZE(n,t)||o,i.add(n))}return o}(e,t)))}function $E(t,e){let n=!1;const o=function(t){const e=parseInt(t.getAttribute("headingRows")||"0"),n=Array.from(t.getChildren()).reduce(((t,e)=>e.is("element","tableRow")?t+1:t),0),o=[];for(const{row:i,cell:r,cellHeight:s}of new aE(t)){if(s<2)continue;const t=it){const e=t-i;o.push({cell:r,rowspan:e})}}return o}(t);if(o.length){n=!0;for(const t of o)tE("rowspan",t.rowspan,t.cell,e,1)}return n}function ZE(t,e){let n=!1;const o=function(t){const e=new Array(t.childCount).fill(0);for(const{rowIndex:n}of new aE(t,{includeAllSlots:!0}))e[n]++;return e}(t),i=[];for(const[e,n]of o.entries())!n&&t.getChild(e).is("element","tableRow")&&i.push(e);if(i.length){n=!0;for(const n of i.reverse())e.remove(t.getChild(n)),o.splice(n,1)}const r=o.filter(((e,n)=>t.getChild(n).is("element","tableRow"))),s=r[0];if(!r.every((t=>t===s))){const o=r.reduce(((t,e)=>e>t?e:t),0);for(const[i,s]of r.entries()){const r=o-s;if(r){for(let n=0;nfunction(t,e){const n=e.document.differ.getChanges();let o=!1;for(const e of n)"insert"==e.type&&"table"==e.name&&(o=QE(e.position.nodeAfter,t)||o),"insert"==e.type&&"tableRow"==e.name&&(o=XE(e.position.nodeAfter,t)||o),"insert"==e.type&&"tableCell"==e.name&&(o=tD(e.position.nodeAfter,t)||o),"remove"!=e.type&&"insert"!=e.type||!eD(e)||(o=tD(e.position.parent,t)||o);return o}(e,t)))}function QE(t,e){let n=!1;for(const o of t.getChildren())o.is("element","tableRow")&&(n=XE(o,e)||n);return n}function XE(t,e){let n=!1;for(const o of t.getChildren())n=tD(o,e)||n;return n}function tD(t,e){if(0==t.childCount)return e.insertElement("paragraph",t),!0;const n=Array.from(t.getChildren()).filter((t=>t.is("$text")));for(const t of n)e.wrap(e.createRangeOn(t),"paragraph");return!!n.length}function eD(t){return!!t.position.parent.is("element","tableCell")&&("insert"==t.type&&"$text"==t.name||"remove"==t.type)}function nD(t,e){if(!t.is("element","paragraph"))return!1;const n=e.toViewElement(t);return!!n&&uE(t)!==n.is("element","span")}var oD=n(8137),iD={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Pr()(oD.A,iD);oD.A.locals;class rD extends Nr{_additionalSlots;static get pluginName(){return"TableEditing"}static get requires(){return[FE]}constructor(t){super(t),this._additionalSlots=[]}init(){const t=this.editor,e=t.model,n=e.schema,o=t.conversion,i=t.plugins.get(FE);n.register("table",{inheritAllFrom:"$blockObject",allowAttributes:["headingRows","headingColumns"]}),n.register("tableRow",{allowIn:"table",isLimit:!0}),n.register("tableCell",{allowContentOf:"$container",allowIn:"tableRow",allowAttributes:["colspan","rowspan"],isLimit:!0,isSelectable:!0}),o.for("upcast").add((t=>{t.on("element:figure",((t,e,n)=>{if(!n.consumable.test(e.viewItem,{name:!0,classes:"table"}))return;const o=function(t){for(const e of t.getChildren())if(e.is("element","table"))return e}(e.viewItem);if(!o||!n.consumable.test(o,{name:!0}))return;n.consumable.consume(e.viewItem,{name:!0,classes:"table"});const i=Xi(n.convertItem(o,e.modelCursor).modelRange.getItems());i?(n.convertChildren(e.viewItem,n.writer.createPositionAt(i,"end")),n.updateConversionResult(i,e)):n.consumable.revert(e.viewItem,{name:!0,classes:"table"})}))})),o.for("upcast").add(iE()),o.for("editingDowncast").elementToStructure({model:{name:"table",attributes:["headingRows"]},view:lE(i,{asWidget:!0,additionalSlots:this._additionalSlots})}),o.for("dataDowncast").elementToStructure({model:{name:"table",attributes:["headingRows"]},view:lE(i,{additionalSlots:this._additionalSlots})}),o.for("upcast").elementToElement({model:"tableRow",view:"tr"}),o.for("upcast").add((t=>{t.on("element:tr",((t,e)=>{e.viewItem.isEmpty&&0==e.modelCursor.index&&t.stop()}),{priority:"high"})})),o.for("downcast").elementToElement({model:"tableRow",view:(t,{writer:e})=>t.isEmpty?e.createEmptyElement("tr"):e.createContainerElement("tr")}),o.for("upcast").elementToElement({model:"tableCell",view:"td"}),o.for("upcast").elementToElement({model:"tableCell",view:"th"}),o.for("upcast").add(rE("td")),o.for("upcast").add(rE("th")),o.for("editingDowncast").elementToElement({model:"tableCell",view:dE({asWidget:!0})}),o.for("dataDowncast").elementToElement({model:"tableCell",view:dE()}),o.for("editingDowncast").elementToElement({model:"paragraph",view:hE({asWidget:!0}),converterPriority:"high"}),o.for("dataDowncast").elementToElement({model:"paragraph",view:hE(),converterPriority:"high"}),o.for("downcast").attributeToAttribute({model:"colspan",view:"colspan"}),o.for("upcast").attributeToAttribute({model:{key:"colspan",value:sD("colspan")},view:"colspan"}),o.for("downcast").attributeToAttribute({model:"rowspan",view:"rowspan"}),o.for("upcast").attributeToAttribute({model:{key:"rowspan",value:sD("rowspan")},view:"rowspan"}),t.config.define("table.defaultHeadings.rows",0),t.config.define("table.defaultHeadings.columns",0),t.commands.add("insertTable",new mE(t)),t.commands.add("insertTableRowAbove",new gE(t,{order:"above"})),t.commands.add("insertTableRowBelow",new gE(t,{order:"below"})),t.commands.add("insertTableColumnLeft",new pE(t,{order:"left"})),t.commands.add("insertTableColumnRight",new pE(t,{order:"right"})),t.commands.add("removeTableRow",new SE(t)),t.commands.add("removeTableColumn",new IE(t)),t.commands.add("splitTableCellVertically",new fE(t,{direction:"vertically"})),t.commands.add("splitTableCellHorizontally",new fE(t,{direction:"horizontally"})),t.commands.add("mergeTableCells",new HE(t)),t.commands.add("mergeTableCellRight",new BE(t,{direction:"right"})),t.commands.add("mergeTableCellLeft",new BE(t,{direction:"left"})),t.commands.add("mergeTableCellDown",new BE(t,{direction:"down"})),t.commands.add("mergeTableCellUp",new BE(t,{direction:"up"})),t.commands.add("setTableColumnHeader",new zE(t)),t.commands.add("setTableRowHeader",new PE(t)),t.commands.add("selectTableRow",new GE(t)),t.commands.add("selectTableColumn",new KE(t)),UE(e),YE(e),this.listenTo(e.document,"change:data",(()=>{!function(t,e){const n=t.document.differ;for(const t of n.getChanges()){let n,o=!1;if("attribute"==t.type){const e=t.range.start.nodeAfter;if(!e||!e.is("element","table"))continue;if("headingRows"!=t.attributeKey&&"headingColumns"!=t.attributeKey)continue;n=e,o="headingRows"==t.attributeKey}else"tableRow"!=t.name&&"tableCell"!=t.name||(n=t.position.findAncestor("table"),o="tableRow"==t.name);if(!n)continue;const i=n.getAttribute("headingRows")||0,r=n.getAttribute("headingColumns")||0,s=new aE(n);for(const t of s){const n=t.rownD(t,e.mapper)));for(const t of n)e.reconvertItem(t)}}(e,t.editing)}))}registerAdditionalSlot(t){this._additionalSlots.push(t)}}function sD(t){return e=>{const n=parseInt(e.getAttribute(t));return Number.isNaN(n)||n<=0?null:n}}var aD=n(5032),cD={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Pr()(aD.A,cD);aD.A.locals;class lD extends Lr{items;keystrokes;focusTracker;constructor(t){super(t);const e=this.bindTemplate;this.items=this._createGridCollection(),this.keystrokes=new er,this.focusTracker=new tr,this.set("rows",0),this.set("columns",0),this.bind("label").to(this,"columns",this,"rows",((t,e)=>`${e} × ${t}`)),this.setTemplate({tag:"div",attributes:{class:["ck"]},children:[{tag:"div",attributes:{class:["ck-insert-table-dropdown__grid"]},on:{"mouseover@.ck-insert-table-dropdown-grid-box":e.to("boxover")},children:this.items},{tag:"div",attributes:{class:["ck","ck-insert-table-dropdown__label"],"aria-hidden":!0},children:[{text:e.to("label")}]}],on:{mousedown:e.to((t=>{t.preventDefault()})),click:e.to((()=>{this.fire("execute")}))}}),this.on("boxover",((t,e)=>{const{row:n,column:o}=e.target.dataset;this.items.get(10*(parseInt(n,10)-1)+(parseInt(o,10)-1)).focus()})),this.focusTracker.on("change:focusedElement",((t,e,n)=>{if(!n)return;const{row:o,column:i}=n.dataset;this.set({rows:parseInt(o),columns:parseInt(i)})})),this.on("change:columns",(()=>this._highlightGridBoxes())),this.on("change:rows",(()=>this._highlightGridBoxes()))}render(){super.render(),Or({keystrokeHandler:this.keystrokes,focusTracker:this.focusTracker,gridItems:this.items,numberOfColumns:10,uiLanguageDirection:this.locale&&this.locale.uiLanguageDirection});for(const t of this.items)this.focusTracker.add(t.element);this.keystrokes.listenTo(this.element)}reset(){this.set({rows:1,columns:1})}focus(){this.items.get(0).focus()}focusLast(){this.items.get(0).focus()}_highlightGridBoxes(){const t=this.rows,e=this.columns;this.items.map(((n,o)=>{const i=Math.floor(o/10){const o=t.commands.get("insertTable"),i=Ug(n);let r;return i.bind("isEnabled").to(o),i.buttonView.set({icon:Ju.table,label:e("Insert table"),tooltip:!0}),i.on("change:isOpen",(()=>{r||(r=new lD(n),i.panelView.children.add(r),r.delegate("execute").to(i),i.on("execute",(()=>{t.execute("insertTable",{rows:r.rows,columns:r.columns}),t.editing.view.focus()})))})),i})),t.ui.componentFactory.add("menuBar:insertTable",(n=>{const o=t.commands.get("insertTable"),i=new Pk(n),r=new lD(n);return r.delegate("execute").to(i),i.on("change:isOpen",((t,e,n)=>{n||r.reset()})),r.on("execute",(()=>{t.execute("insertTable",{rows:r.rows,columns:r.columns}),t.editing.view.focus()})),i.buttonView.set({label:e("Table"),icon:Ju.table}),i.panelView.children.add(r),i.bind("isEnabled").to(o),i})),t.ui.componentFactory.add("tableColumn",(t=>{const o=[{type:"switchbutton",model:{commandName:"setTableColumnHeader",label:e("Header column"),bindIsOn:!0}},{type:"separator"},{type:"button",model:{commandName:n?"insertTableColumnLeft":"insertTableColumnRight",label:e("Insert column left")}},{type:"button",model:{commandName:n?"insertTableColumnRight":"insertTableColumnLeft",label:e("Insert column right")}},{type:"button",model:{commandName:"removeTableColumn",label:e("Delete column")}},{type:"button",model:{commandName:"selectTableColumn",label:e("Select column")}}];return this._prepareDropdown(e("Column"),' ',o,t)})),t.ui.componentFactory.add("tableRow",(t=>{const n=[{type:"switchbutton",model:{commandName:"setTableRowHeader",label:e("Header row"),bindIsOn:!0}},{type:"separator"},{type:"button",model:{commandName:"insertTableRowAbove",label:e("Insert row above")}},{type:"button",model:{commandName:"insertTableRowBelow",label:e("Insert row below")}},{type:"button",model:{commandName:"removeTableRow",label:e("Delete row")}},{type:"button",model:{commandName:"selectTableRow",label:e("Select row")}}];return this._prepareDropdown(e("Row"),' ',n,t)})),t.ui.componentFactory.add("mergeTableCells",(t=>{const o=[{type:"button",model:{commandName:"mergeTableCellUp",label:e("Merge cell up")}},{type:"button",model:{commandName:n?"mergeTableCellRight":"mergeTableCellLeft",label:e("Merge cell right")}},{type:"button",model:{commandName:"mergeTableCellDown",label:e("Merge cell down")}},{type:"button",model:{commandName:n?"mergeTableCellLeft":"mergeTableCellRight",label:e("Merge cell left")}},{type:"separator"},{type:"button",model:{commandName:"splitTableCellVertically",label:e("Split cell vertically")}},{type:"button",model:{commandName:"splitTableCellHorizontally",label:e("Split cell horizontally")}}];return this._prepareMergeSplitButtonDropdown(e("Merge cells"),' ',o,t)}))}_prepareDropdown(t,e,n,o){const i=this.editor,r=Ug(o),s=this._fillDropdownWithListOptions(r,n);return r.buttonView.set({label:t,icon:e,tooltip:!0}),r.bind("isEnabled").toMany(s,"isEnabled",((...t)=>t.some((t=>t)))),this.listenTo(r,"execute",(t=>{i.execute(t.source.commandName),t.source instanceof qm||i.editing.view.focus()})),r}_prepareMergeSplitButtonDropdown(t,e,n,o){const i=this.editor,r=Ug(o,qg),s="mergeTableCells",a=i.commands.get(s),c=this._fillDropdownWithListOptions(r,n);return r.buttonView.set({label:t,icon:e,tooltip:!0,isEnabled:!0}),r.bind("isEnabled").toMany([a,...c],"isEnabled",((...t)=>t.some((t=>t)))),this.listenTo(r.buttonView,"execute",(()=>{i.execute(s),i.editing.view.focus()})),this.listenTo(r,"execute",(t=>{i.execute(t.source.commandName),i.editing.view.focus()})),r}_fillDropdownWithListOptions(t,e){const n=this.editor,o=[],i=new Qi;for(const t of e)hD(t,n,o,i);return Jg(t,i),o}}function hD(t,e,n,o){if("button"===t.type||"switchbutton"===t.type){const o=t.model=new If(t.model),{commandName:i,bindIsOn:r}=t.model,s=e.commands.get(i);n.push(s),o.set({commandName:i}),o.bind("isEnabled").to(s),r&&o.bind("isOn").to(s,"value"),o.set({withText:!0})}o.add(t)}var uD=n(8423),mD={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Pr()(uD.A,mD);uD.A.locals;class gD extends Nr{static get pluginName(){return"TableSelection"}static get requires(){return[FE,FE]}init(){const t=this.editor,e=t.model,n=t.editing.view;this.listenTo(e,"deleteContent",((t,e)=>this._handleDeleteContent(t,e)),{priority:"high"}),this.listenTo(n.document,"insertText",((t,e)=>this._handleInsertTextEvent(t,e)),{priority:"high"}),this._defineSelectionConverter(),this._enablePluginDisabling()}getSelectedTableCells(){const t=this.editor.plugins.get(FE),e=this.editor.model.document.selection,n=t.getSelectedTableCells(e);return 0==n.length?null:n}getSelectionAsFragment(){const t=this.editor.plugins.get(FE),e=this.getSelectedTableCells();return e?this.editor.model.change((n=>{const o=n.createDocumentFragment(),{first:i,last:r}=t.getColumnIndexes(e),{first:s,last:a}=t.getRowIndexes(e),c=e[0].findAncestor("table");let l=a,d=r;if(t.isSelectionRectangular(e)){const t={firstColumn:i,lastColumn:r,firstRow:s,lastRow:a};l=EE(c,t),d=DE(c,t)}const h=kE(c,{startRow:s,startColumn:i,endRow:l,endColumn:d},n);return n.insert(h,o,0),o})):null}setCellSelection(t,e){const n=this._getCellsToSelect(t,e);this.editor.model.change((t=>{t.setSelection(n.cells.map((e=>t.createRangeOn(e))),{backward:n.backward})}))}getFocusCell(){const t=[...this.editor.model.document.selection.getRanges()].pop().getContainedElement();return t&&t.is("element","tableCell")?t:null}getAnchorCell(){const t=Xi(this.editor.model.document.selection.getRanges()).getContainedElement();return t&&t.is("element","tableCell")?t:null}_defineSelectionConverter(){const t=this.editor,e=new Set;t.conversion.for("editingDowncast").add((t=>t.on("selection",((t,n,o)=>{const i=o.writer;!function(t){for(const n of e)t.removeClass("ck-editor__editable_selected",n);e.clear()}(i);const r=this.getSelectedTableCells();if(!r)return;for(const t of r){const n=o.mapper.toViewElement(t);i.addClass("ck-editor__editable_selected",n),e.add(n)}const s=o.mapper.toViewElement(r[r.length-1]);i.setSelection(s,0)}),{priority:"lowest"})))}_enablePluginDisabling(){const t=this.editor;this.on("change:isEnabled",(()=>{if(!this.isEnabled){const e=this.getSelectedTableCells();if(!e)return;t.model.change((n=>{const o=n.createPositionAt(e[0],0),i=t.model.schema.getNearestSelectionRange(o);n.setSelection(i)}))}}))}_handleDeleteContent(t,e){const n=this.editor.plugins.get(FE),o=e[0],i=e[1],r=this.editor.model,s=!i||"backward"==i.direction,a=n.getSelectedTableCells(o);a.length&&(t.stop(),r.change((t=>{const e=a[s?a.length-1:0];r.change((t=>{for(const e of a)r.deleteContent(t.createSelection(e,"in"))}));const n=r.schema.getNearestSelectionRange(t.createPositionAt(e,0));o.is("documentSelection")?t.setSelection(n):o.setTo(n)})))}_handleInsertTextEvent(t,e){const n=this.editor,o=this.getSelectedTableCells();if(!o)return;const i=n.editing.view,r=n.editing.mapper,s=o.map((t=>i.createRangeOn(r.toViewElement(t))));e.selection=i.createSelection(s)}_getCellsToSelect(t,e){const n=this.editor.plugins.get("TableUtils"),o=n.getCellLocation(t),i=n.getCellLocation(e),r=Math.min(o.row,i.row),s=Math.max(o.row,i.row),a=Math.min(o.column,i.column),c=Math.max(o.column,i.column),l=new Array(s-r+1).fill(null).map((()=>[])),d={startRow:r,endRow:s,startColumn:a,endColumn:c};for(const{row:e,cell:n}of new aE(t.findAncestor("table"),d))l[e-r].push(n);const h=i.rowt.reverse())),{cells:l.flat(),backward:h||u}}}class pD extends Nr{static get pluginName(){return"TableClipboard"}static get requires(){return[a_,c_,gD,FE]}init(){const t=this.editor,e=t.editing.view.document;this.listenTo(e,"copy",((t,e)=>this._onCopyCut(t,e))),this.listenTo(e,"cut",((t,e)=>this._onCopyCut(t,e))),this.listenTo(t.model,"insertContent",((t,[e,n])=>this._onInsertContent(t,e,n)),{priority:"high"}),this.decorate("_replaceTableSlotCell")}_onCopyCut(t,e){const n=this.editor.editing.view,o=this.editor.plugins.get(gD),i=this.editor.plugins.get(a_);o.getSelectedTableCells()&&("cut"!=t.name||this.editor.model.canEditAt(this.editor.model.document.selection))&&(e.preventDefault(),t.stop(),this.editor.model.enqueueChange({isUndoable:"cut"===t.name},(()=>{const r=i._copySelectedFragmentWithMarkers(t.name,this.editor.model.document.selection,(()=>o.getSelectionAsFragment()));n.document.fire("clipboardOutput",{dataTransfer:e.dataTransfer,content:this.editor.data.toView(r),method:t.name})})))}_onInsertContent(t,e,n){if(n&&!n.is("documentSelection"))return;const o=this.editor.model,i=this.editor.plugins.get(FE),r=this.editor.plugins.get(a_),s=this.getTableIfOnlyTableInContent(e,o);if(!s)return;const a=i.getSelectionAffectedTableCells(o.document.selection);a.length?(t.stop(),e.is("documentFragment")?r._pasteMarkersIntoTransformedElement(e.markers,(t=>this._replaceSelectedCells(s,a,t))):this.editor.model.change((t=>{this._replaceSelectedCells(s,a,t)}))):xE(s,i)}_replaceSelectedCells(t,e,n){const o=this.editor.plugins.get(FE),i={width:o.getColumns(t),height:o.getRows(t)},r=function(t,e,n,o){const i=t[0].findAncestor("table"),r=o.getColumnIndexes(t),s=o.getRowIndexes(t),a={firstColumn:r.first,lastColumn:r.last,firstRow:s.first,lastRow:s.last},c=1===t.length;c&&(a.lastRow+=e.height-1,a.lastColumn+=e.width-1,function(t,e,n,o){const i=o.getColumns(t),r=o.getRows(t);n>i&&o.insertColumns(t,{at:i,columns:n-i});e>r&&o.insertRows(t,{at:r,rows:e-r})}(i,a.lastRow+1,a.lastColumn+1,o));c||!o.isSelectionRectangular(t)?function(t,e,n){const{firstRow:o,lastRow:i,firstColumn:r,lastColumn:s}=e,a={first:o,last:i},c={first:r,last:s};kD(t,r,a,n),kD(t,s+1,a,n),fD(t,o,c,n),fD(t,i+1,c,n,o)}(i,a,n):(a.lastRow=EE(i,a),a.lastColumn=DE(i,a));return a}(e,i,n,o),s=r.lastRow-r.firstRow+1,a=r.lastColumn-r.firstColumn+1;t=kE(t,{startRow:0,startColumn:0,endRow:Math.min(s,i.height)-1,endColumn:Math.min(a,i.width)-1},n);const c=e[0].findAncestor("table"),l=this._replaceSelectedCellsWithPasted(t,i,c,r,n);if(this.editor.plugins.get("TableSelection").isEnabled){const t=o.sortRanges(l.map((t=>n.createRangeOn(t))));n.setSelection(t)}else n.setSelection(l[0],0);return c}_replaceSelectedCellsWithPasted(t,e,n,o,i){const{width:r,height:s}=e,a=function(t,e,n){const o=new Array(n).fill(null).map((()=>new Array(e).fill(null)));for(const{column:e,row:n,cell:i}of new aE(t))o[n][e]=i;return o}(t,r,s),c=[...new aE(n,{startRow:o.firstRow,endRow:o.lastRow,startColumn:o.firstColumn,endColumn:o.lastColumn,includeAllSlots:!0})],l=[];let d;for(const t of c){const{row:e,column:n}=t;n===o.firstColumn&&(d=t.getPositionBefore());const c=e-o.firstRow,h=n-o.firstColumn,u=a[c%s][h%r],m=u?i.cloneElement(u):null,g=this._replaceTableSlotCell(t,m,d,i);g&&(CE(g,e,n,o.lastRow,o.lastColumn,i),l.push(g),d=i.createPositionAfter(g))}const h=parseInt(n.getAttribute("headingRows")||"0"),u=parseInt(n.getAttribute("headingColumns")||"0"),m=o.firstRowbD(t,e,n))).map((({cell:t})=>wE(t,e,o)))}function kD(t,e,n,o){if(e<1)return;return _E(t,e).filter((({row:t,cellHeight:e})=>bD(t,e,n))).map((({cell:t,column:n})=>AE(t,n,e,o)))}function bD(t,e,n){const o=t+e-1,{first:i,last:r}=n;return t>=i&&t<=r||t=i}class wD extends Nr{static get pluginName(){return"TableKeyboard"}static get requires(){return[gD,FE]}init(){const t=this.editor,e=t.editing.view.document,n=t.t;this.listenTo(e,"arrowKey",((...t)=>this._onArrowKey(...t)),{context:"table"}),this.listenTo(e,"tab",((...t)=>this._handleTabOnSelectedTable(...t)),{context:"figure"}),this.listenTo(e,"tab",((...t)=>this._handleTab(...t)),{context:["th","td"]}),t.accessibility.addKeystrokeInfoGroup({id:"table",label:n("Keystrokes that can be used in a table cell"),keystrokes:[{label:n("Move the selection to the next cell"),keystroke:"Tab"},{label:n("Move the selection to the previous cell"),keystroke:"Shift+Tab"},{label:n("Insert a new table row (when in the last cell of a table)"),keystroke:"Tab"},{label:n("Navigate through the table"),keystroke:[["arrowup"],["arrowright"],["arrowdown"],["arrowleft"]]}]})}_handleTabOnSelectedTable(t,e){const n=this.editor,o=n.model.document.selection.getSelectedElement();o&&o.is("element","table")&&(e.preventDefault(),e.stopPropagation(),t.stop(),n.model.change((t=>{t.setSelection(t.createRangeIn(o.getChild(0).getChild(0)))})))}_handleTab(t,e){const n=this.editor,o=this.editor.plugins.get(FE),i=this.editor.plugins.get("TableSelection"),r=n.model.document.selection,s=!e.shiftKey;let a=o.getTableCellsContainingSelection(r)[0];if(a||(a=i.getFocusCell()),!a)return;e.preventDefault(),e.stopPropagation(),t.stop();const c=a.parent,l=c.parent,d=l.getChildIndex(c),h=c.getChildIndex(a),u=0===h;if(!s&&u&&0===d)return void n.model.change((t=>{t.setSelection(t.createRangeOn(l))}));const m=h===c.childCount-1,g=d===o.getRows(l)-1;if(s&&g&&m&&(n.execute("insertTableRowBelow"),d===o.getRows(l)-1))return void n.model.change((t=>{t.setSelection(t.createRangeOn(l))}));let p;if(s&&m){const t=l.getChild(d+1);p=t.getChild(0)}else if(!s&&u){const t=l.getChild(d-1);p=t.getChild(t.childCount-1)}else p=c.getChild(h+(s?1:-1));n.model.change((t=>{t.setSelection(t.createRangeIn(p))}))}_onArrowKey(t,e){const n=this.editor,o=xi(e.keyCode,n.locale.contentLanguageDirection);this._handleArrowKeys(o,e.shiftKey)&&(e.preventDefault(),e.stopPropagation(),t.stop())}_handleArrowKeys(t,e){const n=this.editor.plugins.get(FE),o=this.editor.plugins.get("TableSelection"),i=this.editor.model,r=i.document.selection,s=["right","down"].includes(t),a=n.getSelectedTableCells(r);if(a.length){let n;return n=e?o.getFocusCell():s?a[a.length-1]:a[0],this._navigateFromCellInDirection(n,t,e),!0}const c=r.focus.findAncestor("tableCell");if(!c)return!1;if(!r.isCollapsed)if(e){if(r.isBackward==s&&!r.containsEntireContent(c))return!1}else{const t=r.getSelectedElement();if(!t||!i.schema.isObject(t))return!1}return!!this._isSelectionAtCellEdge(r,c,s)&&(this._navigateFromCellInDirection(c,t,e),!0)}_isSelectionAtCellEdge(t,e,n){const o=this.editor.model,i=this.editor.model.schema,r=n?t.getLastPosition():t.getFirstPosition();if(!i.getLimitElement(r).is("element","tableCell")){return o.createPositionAt(e,n?"end":0).isTouching(r)}const s=o.createSelection(r);return o.modifySelection(s,{direction:n?"forward":"backward"}),r.isEqual(s.focus)}_navigateFromCellInDirection(t,e,n=!1){const o=this.editor.model,i=t.findAncestor("table"),r=[...new aE(i,{includeAllSlots:!0})],{row:s,column:a}=r[r.length-1],c=r.find((({cell:e})=>e==t));let{row:l,column:d}=c;switch(e){case"left":d--;break;case"up":l--;break;case"right":d+=c.cellWidth;break;case"down":l+=c.cellHeight}if(l<0||l>s||d<0&&l<=0||d>a&&l>=s)return void o.change((t=>{t.setSelection(t.createRangeOn(i))}));d<0?(d=n?0:a,l--):d>a&&(d=n?a:0,l++);const h=r.find((t=>t.row==l&&t.column==d)).cell,u=["right","down"].includes(e),m=this.editor.plugins.get("TableSelection");if(n&&m.isEnabled){const e=m.getAnchorCell()||t;m.setCellSelection(e,h)}else{const t=o.createPositionAt(h,u?0:"end");o.change((e=>{e.setSelection(t)}))}}}class _D extends cc{domEventType=["mousemove","mouseleave"];onDomEvent(t){this.fire(t.type,t)}}class AD extends Nr{static get pluginName(){return"TableMouse"}static get requires(){return[gD,FE]}init(){this.editor.editing.view.addObserver(_D),this._enableShiftClickSelection(),this._enableMouseDragSelection()}_enableShiftClickSelection(){const t=this.editor,e=t.plugins.get(FE);let n=!1;const o=t.plugins.get(gD);this.listenTo(t.editing.view.document,"mousedown",((i,r)=>{const s=t.model.document.selection;if(!this.isEnabled||!o.isEnabled)return;if(!r.domEvent.shiftKey)return;const a=o.getAnchorCell()||e.getTableCellsContainingSelection(s)[0];if(!a)return;const c=this._getModelTableCellFromDomEvent(r);c&&CD(a,c)&&(n=!0,o.setCellSelection(a,c),r.preventDefault())})),this.listenTo(t.editing.view.document,"mouseup",(()=>{n=!1})),this.listenTo(t.editing.view.document,"selectionChange",(t=>{n&&t.stop()}),{priority:"highest"})}_enableMouseDragSelection(){const t=this.editor;let e,n,o=!1,i=!1;const r=t.plugins.get(gD);this.listenTo(t.editing.view.document,"mousedown",((t,n)=>{this.isEnabled&&r.isEnabled&&(n.domEvent.shiftKey||n.domEvent.ctrlKey||n.domEvent.altKey||(e=this._getModelTableCellFromDomEvent(n)))})),this.listenTo(t.editing.view.document,"mousemove",((t,s)=>{if(!s.domEvent.buttons)return;if(!e)return;const a=this._getModelTableCellFromDomEvent(s);a&&CD(e,a)&&(n=a,o||n==e||(o=!0)),o&&(i=!0,r.setCellSelection(e,n),s.preventDefault())})),this.listenTo(t.editing.view.document,"mouseup",(()=>{o=!1,i=!1,e=null,n=null})),this.listenTo(t.editing.view.document,"selectionChange",(t=>{i&&t.stop()}),{priority:"highest"})}_getModelTableCellFromDomEvent(t){const e=t.target,n=this.editor.editing.view.createPositionAt(e,0);return this.editor.editing.mapper.toModelPosition(n).parent.findAncestor("tableCell",{includeSelf:!0})}}function CD(t,e){return t.parent.parent==e.parent.parent}var vD=n(2329),yD={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Pr()(vD.A,yD);vD.A.locals;function xD(t){const e=ED(t);return e||DD(t)}function ED(t){const e=t.getSelectedElement();return e&&BD(e)?e:null}function DD(t){const e=t.getFirstPosition();if(!e)return null;let n=e.parent;for(;n;){if(n.is("element")&&BD(n))return n;n=n.parent}return null}function BD(t){return!!t.getCustomProperty("table")&&f_(t)}var TD=n(5506),SD={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Pr()(TD.A,SD);TD.A.locals;class ID extends Lr{options;focusTracker;focusCycler;_focusables;dropdownView;inputView;keystrokes;_stillTyping;constructor(t,e){super(t),this.set("value",""),this.set("isReadOnly",!1),this.set("isFocused",!1),this.set("isEmpty",!0),this.options=e,this.focusTracker=new tr,this._focusables=new lr,this.dropdownView=this._createDropdownView(),this.inputView=this._createInputTextView(),this.keystrokes=new er,this._stillTyping=!1,this.focusCycler=new am({focusables:this._focusables,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"shift + tab",focusNext:"tab"}}),this.setTemplate({tag:"div",attributes:{class:["ck","ck-input-color"]},children:[this.dropdownView,this.inputView]}),this.on("change:value",((t,e,n)=>this._setInputValue(n)))}render(){super.render(),[this.inputView,this.dropdownView.buttonView].forEach((t=>{this.focusTracker.add(t.element),this._focusables.add(t)})),this.keystrokes.listenTo(this.element)}focus(t){-1===t?this.focusCycler.focusLast():this.focusCycler.focusFirst()}destroy(){super.destroy(),this.focusTracker.destroy(),this.keystrokes.destroy()}_createDropdownView(){const t=this.locale,e=t.t,n=this.bindTemplate,o=this._createColorSelector(t),i=Ug(t),r=new Lr;return r.setTemplate({tag:"span",attributes:{class:["ck","ck-input-color__button__preview"],style:{backgroundColor:n.to("value")}},children:[{tag:"span",attributes:{class:["ck","ck-input-color__button__preview__no-color-indicator",n.if("value","ck-hidden",(t=>""!=t))]}}]}),i.buttonView.extendTemplate({attributes:{class:"ck-input-color__button"}}),i.buttonView.children.add(r),i.buttonView.label=e("Color picker"),i.buttonView.tooltip=!0,i.panelPosition="rtl"===t.uiLanguageDirection?"se":"sw",i.panelView.children.add(o),i.bind("isEnabled").to(this,"isReadOnly",(t=>!t)),i.on("change:isOpen",((t,e,n)=>{n&&(o.updateSelectedColors(),o.showColorGridsFragment())})),i}_createInputTextView(){const t=this.locale,e=new pg(t);return e.extendTemplate({on:{blur:e.bindTemplate.to("blur")}}),e.value=this.value,e.bind("isReadOnly","hasError").to(this),this.bind("isFocused","isEmpty").to(e),e.on("input",(()=>{const t=e.element.value,n=this.options.colorDefinitions.find((e=>t===e.label));this._stillTyping=!0,this.value=n&&n.color||t})),e.on("blur",(()=>{this._stillTyping=!1,this._setInputValue(e.element.value)})),e.delegate("input").to(this),e}_createColorSelector(t){const e=t.t,n=this.options.defaultColorValue||"",o=e(n?"Restore default":"Remove color"),i=new Up(t,{colors:this.options.colorDefinitions,columns:this.options.columns,removeButtonLabel:o,colorPickerLabel:e("Color picker"),colorPickerViewConfig:!1!==this.options.colorPickerConfig&&{...this.options.colorPickerConfig,hideInput:!0}});i.appendUI(),i.on("execute",((t,e)=>{"colorPickerSaveButton"!==e.source?(this.value=e.value||n,this.fire("input"),"colorPicker"!==e.source&&(this.dropdownView.isOpen=!1)):this.dropdownView.isOpen=!1}));let r=this.value;return i.on("colorPicker:cancel",(()=>{this.value=r,this.fire("input"),this.dropdownView.isOpen=!1})),i.colorGridsFragmentView.colorPickerButtonView.on("execute",(()=>{r=this.value})),i.bind("selectedColor").to(this,"value"),i}_setInputValue(t){if(!this._stillTyping){const e=PD(t),n=this.options.colorDefinitions.find((t=>e===PD(t.color)));this.inputView.value=n?n.label:t||""}}}function PD(t){return t.replace(/([(,])\s+/g,"$1").replace(/^\s+|\s+(?=[),\s]|$)/g,"").replace(/,|\s/g," ")}const zD=t=>""===t;function RD(t){return{none:t("None"),solid:t("Solid"),dotted:t("Dotted"),dashed:t("Dashed"),double:t("Double"),groove:t("Groove"),ridge:t("Ridge"),inset:t("Inset"),outset:t("Outset")}}function LD(t){return t('The color is invalid. Try "#FF0000" or "rgb(255,0,0)" or "red".')}function FD(t){return t('The value is invalid. Try "10px" or "2em" or simply "2".')}function MD(t){return t=t.trim().toLowerCase(),zD(t)||mu(t)}function VD(t){return t=t.trim(),zD(t)||WD(t)||ku(t)||wu(t)}function OD(t){return t=t.trim(),zD(t)||WD(t)||ku(t)}function ND(t,e){const n=new Qi,o=RD(t.t);for(const i in o){const r={type:"button",model:new If({_borderStyleValue:i,label:o[i],role:"menuitemradio",withText:!0})};"none"===i?r.model.bind("isOn").to(t,"borderStyle",(t=>"none"===e?!t:t===i)):r.model.bind("isOn").to(t,"borderStyle",(t=>t===i)),n.add(r)}return n}function HD(t){const{view:e,icons:n,toolbar:o,labels:i,propertyName:r,nameToValue:s,defaultValue:a}=t;for(const t in i){const c=new om(e.locale);c.set({label:i[t],icon:n[t],tooltip:i[t]});const l=s?s(t):t;c.bind("isOn").to(e,r,(t=>{let e=t;return""===t&&a&&(e=a),l===e})),c.on("execute",(()=>{e[r]=l})),o.items.add(c)}}const qD=[{color:"hsl(0, 0%, 0%)",label:"Black"},{color:"hsl(0, 0%, 30%)",label:"Dim grey"},{color:"hsl(0, 0%, 60%)",label:"Grey"},{color:"hsl(0, 0%, 90%)",label:"Light grey"},{color:"hsl(0, 0%, 100%)",label:"White",hasBorder:!0},{color:"hsl(0, 75%, 60%)",label:"Red"},{color:"hsl(30, 75%, 60%)",label:"Orange"},{color:"hsl(60, 75%, 60%)",label:"Yellow"},{color:"hsl(90, 75%, 60%)",label:"Light green"},{color:"hsl(120, 75%, 60%)",label:"Green"},{color:"hsl(150, 75%, 60%)",label:"Aquamarine"},{color:"hsl(180, 75%, 60%)",label:"Turquoise"},{color:"hsl(210, 75%, 60%)",label:"Light blue"},{color:"hsl(240, 75%, 60%)",label:"Blue"},{color:"hsl(270, 75%, 60%)",label:"Purple"}];function jD(t){return(e,n,o)=>{const i=new ID(e.locale,{colorDefinitions:(r=t.colorConfig,r.map((t=>({color:t.model,label:t.label,options:{hasBorder:t.hasBorder}})))),columns:t.columns,defaultColorValue:t.defaultColorValue,colorPickerConfig:t.colorPickerConfig});var r;return i.inputView.set({id:n,ariaDescribedById:o}),i.bind("isReadOnly").to(e,"isEnabled",(t=>!t)),i.bind("hasError").to(e,"errorText",(t=>!!t)),i.on("input",(()=>{e.errorText=null})),e.bind("isEmpty","isFocused").to(i),i}}function WD(t){const e=parseFloat(t);return!Number.isNaN(e)&&t===String(e)}var GD=n(2655),KD={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Pr()(GD.A,KD);GD.A.locals;class UD extends Lr{children;constructor(t,e={}){super(t);const n=this.bindTemplate;this.set("class",e.class||null),this.children=this.createCollection(),e.children&&e.children.forEach((t=>this.children.add(t))),this.set("_role",null),this.set("_ariaLabelledBy",null),e.labelView&&this.set({_role:"group",_ariaLabelledBy:e.labelView.id}),this.setTemplate({tag:"div",attributes:{class:["ck","ck-form__row",n.to("class")],role:n.to("_role"),"aria-labelledby":n.to("_ariaLabelledBy")},children:this.children})}}var $D=n(4043),ZD={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Pr()($D.A,ZD);$D.A.locals;var JD=n(1623),YD={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Pr()(JD.A,YD);JD.A.locals;var QD=n(8986),XD={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Pr()(QD.A,XD);QD.A.locals;const tB=tf.defaultPositions,eB=[tB.northArrowSouth,tB.northArrowSouthWest,tB.northArrowSouthEast,tB.southArrowNorth,tB.southArrowNorthWest,tB.southArrowNorthEast,tB.viewportStickyNorth];function nB(t,e){const n=t.plugins.get("ContextualBalloon"),o=t.editing.view.document.selection;let i;"cell"===e?DD(o)&&(i=iB(t)):xD(o)&&(i=oB(t)),i&&n.updatePosition(i)}function oB(t){const e=oE(t.model.document.selection),n=t.editing.mapper.toViewElement(e);return{target:t.editing.view.domConverter.mapViewToDom(n),positions:eB}}function iB(t){const e=t.editing.mapper,n=t.editing.view.domConverter,o=t.model.document.selection;if(o.rangeCount>1)return{target:()=>function(t,e){const n=e.editing.mapper,o=e.editing.view.domConverter,i=Array.from(t).map((t=>{const e=rB(t.start),i=n.toViewElement(e);return new Ko(o.mapViewToDom(i))}));return Ko.getBoundingRect(i)}(o.getRanges(),t),positions:eB};const i=rB(o.getFirstPosition()),r=e.toViewElement(i);return{target:n.mapViewToDom(r),positions:eB}}function rB(t){return t.nodeAfter&&t.nodeAfter.is("element","tableCell")?t.nodeAfter:t.findAncestor("tableCell")}function sB(t){if(!t||!j(t))return t;const{top:e,right:n,bottom:o,left:i}=t;return e==n&&n==o&&o==i?e:void 0}function aB(t,e){const n=parseFloat(t);return Number.isNaN(n)||String(n)!==String(t)?t:`${n}${e}`}function cB(t,e={}){const n={borderStyle:"none",borderWidth:"",borderColor:"",backgroundColor:"",width:"",height:"",...t};return e.includeAlignmentProperty&&!n.alignment&&(n.alignment="center"),e.includePaddingProperty&&!n.padding&&(n.padding=""),e.includeVerticalAlignmentProperty&&!n.verticalAlignment&&(n.verticalAlignment="middle"),e.includeHorizontalAlignmentProperty&&!n.horizontalAlignment&&(n.horizontalAlignment=e.isRightToLeftContent?"right":"left"),n}function lB(t,e){const{modelAttribute:n,styleName:o,viewElement:i,defaultValue:r,reduceBoxSides:s=!1,shouldUpcast:a=(()=>!0)}=e;t.for("upcast").attributeToAttribute({view:{name:i,styles:{[o]:/[\s\S]+/}},model:{key:n,value:t=>{if(!a(t))return;const e=t.getNormalizedStyle(o),n=s?hB(e):e;return r!==n?n:void 0}}})}function dB(t,e){const{modelAttribute:n,styleName:o}=e;t.for("downcast").add((t=>t.on(`attribute:${n}:table`,((t,e,n)=>{const{item:i,attributeNewValue:r}=e,{mapper:s,writer:a}=n;if(!n.consumable.consume(e.item,t.name))return;const c=[...s.toViewElement(i).getChildren()].find((t=>t.is("element","table")));r?a.setStyle(o,r,c):a.removeStyle(o,c)}))))}function hB(t){if(!t)return;const e=["top","right","bottom","left"];if(!e.every((e=>t[e])))return t;const n=t.top;return e.every((e=>t[e]===n))?n:t}class uB extends qr{attributeName;_defaultValue;constructor(t,e,n){super(t),this.attributeName=e,this._defaultValue=n}refresh(){const t=oE(this.editor.model.document.selection);this.isEnabled=!!t,this.value=this._getValue(t)}execute(t={}){const e=this.editor.model,n=e.document.selection,{value:o,batch:i}=t,r=oE(n),s=this._getValueToSet(o);e.enqueueChange(i,(t=>{s?t.setAttribute(this.attributeName,s,r):t.removeAttribute(this.attributeName,r)}))}_getValue(t){if(!t)return;const e=t.getAttribute(this.attributeName);return e!==this._defaultValue?e:void 0}_getValueToSet(t){if(t!==this._defaultValue)return t}}class mB extends uB{constructor(t,e){super(t,"tableBackgroundColor",e)}}class gB extends uB{constructor(t,e){super(t,"tableBorderColor",e)}_getValue(t){if(!t)return;const e=sB(t.getAttribute(this.attributeName));return e!==this._defaultValue?e:void 0}}class pB extends uB{constructor(t,e){super(t,"tableBorderStyle",e)}_getValue(t){if(!t)return;const e=sB(t.getAttribute(this.attributeName));return e!==this._defaultValue?e:void 0}}class fB extends uB{constructor(t,e){super(t,"tableBorderWidth",e)}_getValue(t){if(!t)return;const e=sB(t.getAttribute(this.attributeName));return e!==this._defaultValue?e:void 0}_getValueToSet(t){const e=aB(t,"px");if(e!==this._defaultValue)return e}}class kB extends uB{constructor(t,e){super(t,"tableWidth",e)}_getValueToSet(t){if((t=aB(t,"px"))!==this._defaultValue)return t}}class bB extends uB{constructor(t,e){super(t,"tableHeight",e)}_getValueToSet(t){if((t=aB(t,"px"))!==this._defaultValue)return t}}class wB extends uB{constructor(t,e){super(t,"tableAlignment",e)}}const _B=/^(left|center|right)$/,AB=/^(left|none|right)$/;class CB extends Nr{static get pluginName(){return"TablePropertiesEditing"}static get requires(){return[rD]}init(){const t=this.editor,e=t.model.schema,n=t.conversion;t.config.define("table.tableProperties.defaultProperties",{});const o=cB(t.config.get("table.tableProperties.defaultProperties"),{includeAlignmentProperty:!0});t.data.addStyleProcessorRules(zu),function(t,e,n){const o={width:"tableBorderWidth",color:"tableBorderColor",style:"tableBorderStyle"};t.extend("table",{allowAttributes:Object.values(o)}),function(t,e,n,o){t.for("upcast").add((t=>t.on("element:"+e,((t,e,i)=>{if(!e.modelRange)return;const r=["border-top-width","border-top-color","border-top-style","border-bottom-width","border-bottom-color","border-bottom-style","border-right-width","border-right-color","border-right-style","border-left-width","border-left-color","border-left-style"].filter((t=>e.viewItem.hasStyle(t)));if(!r.length)return;const s={styles:r};if(!i.consumable.test(e.viewItem,s))return;const a=[...e.modelRange.getItems({shallow:!0})].pop();i.consumable.consume(e.viewItem,s);const c={style:e.viewItem.getNormalizedStyle("border-style"),color:e.viewItem.getNormalizedStyle("border-color"),width:e.viewItem.getNormalizedStyle("border-width")},l={style:hB(c.style),color:hB(c.color),width:hB(c.width)};l.style!==o.style&&i.writer.setAttribute(n.style,l.style,a),l.color!==o.color&&i.writer.setAttribute(n.color,l.color,a),l.width!==o.width&&i.writer.setAttribute(n.width,l.width,a)}))))}(e,"table",o,n),dB(e,{modelAttribute:o.color,styleName:"border-color"}),dB(e,{modelAttribute:o.style,styleName:"border-style"}),dB(e,{modelAttribute:o.width,styleName:"border-width"})}(e,n,{color:o.borderColor,style:o.borderStyle,width:o.borderWidth}),t.commands.add("tableBorderColor",new gB(t,o.borderColor)),t.commands.add("tableBorderStyle",new pB(t,o.borderStyle)),t.commands.add("tableBorderWidth",new fB(t,o.borderWidth)),function(t,e,n){t.extend("table",{allowAttributes:["tableAlignment"]}),e.for("downcast").attributeToAttribute({model:{name:"table",key:"tableAlignment"},view:t=>({key:"style",value:{float:"center"===t?"none":t}}),converterPriority:"high"}),e.for("upcast").attributeToAttribute({view:{name:/^(table|figure)$/,styles:{float:AB}},model:{key:"tableAlignment",value:t=>{let e=t.getStyle("float");return"none"===e&&(e="center"),e===n?null:e}}}).attributeToAttribute({view:{attributes:{align:_B}},model:{name:"table",key:"tableAlignment",value:t=>{const e=t.getAttribute("align");return e===n?null:e}}})}(e,n,o.alignment),t.commands.add("tableAlignment",new wB(t,o.alignment)),vB(e,n,{modelAttribute:"tableWidth",styleName:"width",defaultValue:o.width}),t.commands.add("tableWidth",new kB(t,o.width)),vB(e,n,{modelAttribute:"tableHeight",styleName:"height",defaultValue:o.height}),t.commands.add("tableHeight",new bB(t,o.height)),t.data.addStyleProcessorRules(Pu),function(t,e,n){const{modelAttribute:o}=n;t.extend("table",{allowAttributes:[o]}),lB(e,{viewElement:"table",...n}),dB(e,n)}(e,n,{modelAttribute:"tableBackgroundColor",styleName:"background-color",defaultValue:o.backgroundColor}),t.commands.add("tableBackgroundColor",new mB(t,o.backgroundColor))}}function vB(t,e,n){const{modelAttribute:o}=n;t.extend("table",{allowAttributes:[o]}),lB(e,{viewElement:/^(table|figure)$/,shouldUpcast:t=>!("table"==t.name&&"figure"==t.parent.name),...n}),function(t,e){const{modelElement:n,modelAttribute:o,styleName:i}=e;t.for("downcast").attributeToAttribute({model:{name:n,key:o},view:t=>({key:"style",value:{[i]:t}})})}(e,{modelElement:"table",...n})}var yB=n(5562),xB={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Pr()(yB.A,xB);yB.A.locals;const EB={left:Ju.objectLeft,center:Ju.objectCenter,right:Ju.objectRight};class DB extends Lr{options;focusTracker;keystrokes;children;borderStyleDropdown;borderWidthInput;borderColorInput;backgroundInput;widthInput;heightInput;alignmentToolbar;saveButtonView;cancelButtonView;_focusables;_focusCycler;constructor(t,e){super(t),this.set({borderStyle:"",borderWidth:"",borderColor:"",backgroundColor:"",width:"",height:"",alignment:""}),this.options=e;const{borderStyleDropdown:n,borderWidthInput:o,borderColorInput:i,borderRowLabel:r}=this._createBorderFields(),{backgroundRowLabel:s,backgroundInput:a}=this._createBackgroundFields(),{widthInput:c,operatorLabel:l,heightInput:d,dimensionsLabel:h}=this._createDimensionFields(),{alignmentToolbar:u,alignmentLabel:m}=this._createAlignmentFields();this.focusTracker=new tr,this.keystrokes=new er,this.children=this.createCollection(),this.borderStyleDropdown=n,this.borderWidthInput=o,this.borderColorInput=i,this.backgroundInput=a,this.widthInput=c,this.heightInput=d,this.alignmentToolbar=u;const{saveButtonView:g,cancelButtonView:p}=this._createActionButtons();this.saveButtonView=g,this.cancelButtonView=p,this._focusables=new lr,this._focusCycler=new am({focusables:this._focusables,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"shift + tab",focusNext:"tab"}}),this.children.add(new sm(t,{label:this.t("Table properties")})),this.children.add(new UD(t,{labelView:r,children:[r,n,i,o],class:"ck-table-form__border-row"})),this.children.add(new UD(t,{labelView:s,children:[s,a],class:"ck-table-form__background-row"})),this.children.add(new UD(t,{children:[new UD(t,{labelView:h,children:[h,c,l,d],class:"ck-table-form__dimensions-row"}),new UD(t,{labelView:m,children:[m,u],class:"ck-table-properties-form__alignment-row"})]})),this.children.add(new UD(t,{children:[this.saveButtonView,this.cancelButtonView],class:"ck-table-form__action-row"})),this.setTemplate({tag:"form",attributes:{class:["ck","ck-form","ck-table-form","ck-table-properties-form"],tabindex:"-1"},children:this.children})}render(){super.render(),Vr({view:this}),[this.borderColorInput,this.backgroundInput].forEach((t=>{t.fieldView.focusCycler.on("forwardCycle",(t=>{this._focusCycler.focusNext(),t.stop()})),t.fieldView.focusCycler.on("backwardCycle",(t=>{this._focusCycler.focusPrevious(),t.stop()}))})),[this.borderStyleDropdown,this.borderColorInput,this.borderWidthInput,this.backgroundInput,this.widthInput,this.heightInput,this.alignmentToolbar,this.saveButtonView,this.cancelButtonView].forEach((t=>{this._focusables.add(t),this.focusTracker.add(t.element)})),this.keystrokes.listenTo(this.element)}destroy(){super.destroy(),this.focusTracker.destroy(),this.keystrokes.destroy()}focus(){this._focusCycler.focusFirst()}_createBorderFields(){const t=this.options.defaultTableProperties,e={style:t.borderStyle,width:t.borderWidth,color:t.borderColor},n=jD({colorConfig:this.options.borderColors,columns:5,defaultColorValue:e.color,colorPickerConfig:this.options.colorPickerConfig}),o=this.locale,i=this.t,r=i("Style"),s=new Pm(o);s.text=i("Border");const a=RD(i),c=new dg(o,np);c.set({label:r,class:"ck-table-form__border-style"}),c.fieldView.buttonView.set({ariaLabel:r,ariaLabelledBy:void 0,isOn:!1,withText:!0,tooltip:r}),c.fieldView.buttonView.bind("label").to(this,"borderStyle",(t=>a[t||"none"])),c.fieldView.on("execute",(t=>{this.borderStyle=t.source._borderStyleValue})),c.bind("isEmpty").to(this,"borderStyle",(t=>!t)),Jg(c.fieldView,ND(this,e.style),{role:"menu",ariaLabel:r});const l=new dg(o,tp);l.set({label:i("Width"),class:"ck-table-form__border-width"}),l.fieldView.bind("value").to(this,"borderWidth"),l.bind("isEnabled").to(this,"borderStyle",BB),l.fieldView.on("input",(()=>{this.borderWidth=l.fieldView.element.value}));const d=new dg(o,n);return d.set({label:i("Color"),class:"ck-table-form__border-color"}),d.fieldView.bind("value").to(this,"borderColor"),d.bind("isEnabled").to(this,"borderStyle",BB),d.fieldView.on("input",(()=>{this.borderColor=d.fieldView.value})),this.on("change:borderStyle",((t,n,o,i)=>{BB(o)||(this.borderColor="",this.borderWidth=""),BB(i)||(this.borderColor=e.color,this.borderWidth=e.width)})),{borderRowLabel:s,borderStyleDropdown:c,borderColorInput:d,borderWidthInput:l}}_createBackgroundFields(){const t=this.locale,e=this.t,n=new Pm(t);n.text=e("Background");const o=jD({colorConfig:this.options.backgroundColors,columns:5,defaultColorValue:this.options.defaultTableProperties.backgroundColor,colorPickerConfig:this.options.colorPickerConfig}),i=new dg(t,o);return i.set({label:e("Color"),class:"ck-table-properties-form__background"}),i.fieldView.bind("value").to(this,"backgroundColor"),i.fieldView.on("input",(()=>{this.backgroundColor=i.fieldView.value})),{backgroundRowLabel:n,backgroundInput:i}}_createDimensionFields(){const t=this.locale,e=this.t,n=new Pm(t);n.text=e("Dimensions");const o=new dg(t,tp);o.set({label:e("Width"),class:"ck-table-form__dimensions-row__width"}),o.fieldView.bind("value").to(this,"width"),o.fieldView.on("input",(()=>{this.width=o.fieldView.element.value}));const i=new Lr(t);i.setTemplate({tag:"span",attributes:{class:["ck-table-form__dimension-operator"]},children:[{text:"×"}]});const r=new dg(t,tp);return r.set({label:e("Height"),class:"ck-table-form__dimensions-row__height"}),r.fieldView.bind("value").to(this,"height"),r.fieldView.on("input",(()=>{this.height=r.fieldView.element.value})),{dimensionsLabel:n,widthInput:o,operatorLabel:i,heightInput:r}}_createAlignmentFields(){const t=this.locale,e=this.t,n=new Pm(t);n.text=e("Alignment");const o=new Sg(t);return o.set({isCompact:!0,ariaLabel:e("Table alignment toolbar")}),HD({view:this,icons:EB,toolbar:o,labels:this._alignmentLabels,propertyName:"alignment",defaultValue:this.options.defaultTableProperties.alignment}),{alignmentLabel:n,alignmentToolbar:o}}_createActionButtons(){const t=this.locale,e=this.t,n=new om(t),o=new om(t),i=[this.borderWidthInput,this.borderColorInput,this.backgroundInput,this.widthInput,this.heightInput];return n.set({label:e("Save"),icon:Ju.check,class:"ck-button-save",type:"submit",withText:!0}),n.bind("isEnabled").toMany(i,"errorText",((...t)=>t.every((t=>!t)))),o.set({label:e("Cancel"),icon:Ju.cancel,class:"ck-button-cancel",withText:!0}),o.delegate("execute").to(this,"cancel"),{saveButtonView:n,cancelButtonView:o}}get _alignmentLabels(){const t=this.locale,e=this.t,n=e("Align table to the left"),o=e("Center table"),i=e("Align table to the right");return"rtl"===t.uiLanguageDirection?{right:i,center:o,left:n}:{left:n,center:o,right:i}}}function BB(t){return"none"!==t}const TB={borderStyle:"tableBorderStyle",borderColor:"tableBorderColor",borderWidth:"tableBorderWidth",backgroundColor:"tableBackgroundColor",width:"tableWidth",height:"tableHeight",alignment:"tableAlignment"};class SB extends Nr{_defaultTableProperties;_balloon;view=null;_undoStepBatch;_isReady;static get requires(){return[Mf]}static get pluginName(){return"TablePropertiesUI"}constructor(t){super(t),t.config.define("table.tableProperties",{borderColors:qD,backgroundColors:qD})}init(){const t=this.editor,e=t.t;this._defaultTableProperties=cB(t.config.get("table.tableProperties.defaultProperties"),{includeAlignmentProperty:!0}),this._balloon=t.plugins.get(Mf),t.ui.componentFactory.add("tableProperties",(n=>{const o=new om(n);o.set({label:e("Table properties"),icon:' ',tooltip:!0}),this.listenTo(o,"execute",(()=>this._showView()));const i=Object.values(TB).map((e=>t.commands.get(e)));return o.bind("isEnabled").toMany(i,"isEnabled",((...t)=>t.some((t=>t)))),o}))}destroy(){super.destroy(),this.view&&this.view.destroy()}_createPropertiesView(){const t=this.editor,e=t.config.get("table.tableProperties"),n=Jm(e.borderColors),o=Zm(t.locale,n),i=Jm(e.backgroundColors),r=Zm(t.locale,i),s=!1!==e.colorPicker,a=new DB(t.locale,{borderColors:o,backgroundColors:r,defaultTableProperties:this._defaultTableProperties,colorPickerConfig:!!s&&(e.colorPicker||{})}),c=t.t;a.render(),this.listenTo(a,"submit",(()=>{this._hideView()})),this.listenTo(a,"cancel",(()=>{this._undoStepBatch.operations.length&&t.execute("undo",this._undoStepBatch),this._hideView()})),a.keystrokes.set("Esc",((t,e)=>{this._hideView(),e()})),Fr({emitter:a,activator:()=>this._isViewInBalloon,contextElements:[this._balloon.view.element],callback:()=>this._hideView()});const l=LD(c),d=FD(c);return a.on("change:borderStyle",this._getPropertyChangeCallback("tableBorderStyle")),a.on("change:borderColor",this._getValidatedPropertyChangeCallback({viewField:a.borderColorInput,commandName:"tableBorderColor",errorText:l,validator:MD})),a.on("change:borderWidth",this._getValidatedPropertyChangeCallback({viewField:a.borderWidthInput,commandName:"tableBorderWidth",errorText:d,validator:OD})),a.on("change:backgroundColor",this._getValidatedPropertyChangeCallback({viewField:a.backgroundInput,commandName:"tableBackgroundColor",errorText:l,validator:MD})),a.on("change:width",this._getValidatedPropertyChangeCallback({viewField:a.widthInput,commandName:"tableWidth",errorText:d,validator:VD})),a.on("change:height",this._getValidatedPropertyChangeCallback({viewField:a.heightInput,commandName:"tableHeight",errorText:d,validator:VD})),a.on("change:alignment",this._getPropertyChangeCallback("tableAlignment")),a}_fillViewFormFromCommandValues(){const t=this.editor.commands,e=t.get("tableBorderStyle");Object.entries(TB).map((([e,n])=>{const o=e,i=this._defaultTableProperties[o]||"";return[o,t.get(n).value||i]})).forEach((([t,n])=>{("borderColor"!==t&&"borderWidth"!==t||"none"!==e.value)&&this.view.set(t,n)})),this._isReady=!0}_showView(){const t=this.editor;this.view||(this.view=this._createPropertiesView()),this.listenTo(t.ui,"update",(()=>{this._updateView()})),this._fillViewFormFromCommandValues(),this._balloon.add({view:this.view,position:oB(t)}),this._undoStepBatch=t.model.createBatch(),this.view.focus()}_hideView(){const t=this.editor;this.stopListening(t.ui,"update"),this._isReady=!1,this.view.saveButtonView.focus(),this._balloon.remove(this.view),this.editor.editing.view.focus()}_updateView(){const t=this.editor;xD(t.editing.view.document.selection)?this._isViewVisible&&nB(t,"table"):this._hideView()}get _isViewVisible(){return!!this.view&&this._balloon.visibleView===this.view}get _isViewInBalloon(){return!!this.view&&this._balloon.hasView(this.view)}_getPropertyChangeCallback(t){return(e,n,o)=>{this._isReady&&this.editor.execute(t,{value:o,batch:this._undoStepBatch})}}_getValidatedPropertyChangeCallback(t){const{commandName:e,viewField:n,validator:o,errorText:i}=t,r=Cc((()=>{n.errorText=i}),500);return(t,i,s)=>{r.cancel(),this._isReady&&(o(s)?(this.editor.execute(e,{value:s,batch:this._undoStepBatch}),n.errorText=null):r())}}}var IB=n(4143),PB={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Pr()(IB.A,PB);IB.A.locals;var zB=n(8795),RB={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Pr()(zB.A,RB);zB.A.locals;class LB extends Xk{}class FB extends ib{}const MB=[class extends Nr{static get requires(){return[ub,gb]}static get pluginName(){return"Alignment"}},class extends Nr{static get requires(){return[Bb]}static get pluginName(){return"Autoformat"}afterInit(){const t=this.editor,e=this.editor.t;this._addListAutoformats(),this._addBasicStylesAutoformats(),this._addHeadingAutoformats(),this._addBlockQuoteAutoformats(),this._addCodeBlockAutoformats(),this._addHorizontalLineAutoformats(),t.accessibility.addKeystrokeInfos({keystrokes:[{label:e("Revert autoformatting action"),keystroke:"Backspace"}]})}_addListAutoformats(){const t=this.editor.commands;t.get("bulletedList")&&Vb(this.editor,this,/^[*-]\s$/,"bulletedList"),t.get("numberedList")&&Vb(this.editor,this,/^1[.|)]\s$/,"numberedList"),t.get("todoList")&&Vb(this.editor,this,/^\[\s?\]\s$/,"todoList"),t.get("checkTodoList")&&Vb(this.editor,this,/^\[\s?x\s?\]\s$/,(()=>{this.editor.execute("todoList"),this.editor.execute("checkTodoList")}))}_addBasicStylesAutoformats(){const t=this.editor.commands;if(t.get("bold")){const t=Hb(this.editor,"bold");Ob(this.editor,this,/(?:^|\s)(\*\*)([^*]+)(\*\*)$/g,t),Ob(this.editor,this,/(?:^|\s)(__)([^_]+)(__)$/g,t)}if(t.get("italic")){const t=Hb(this.editor,"italic");Ob(this.editor,this,/(?:^|\s)(\*)([^*_]+)(\*)$/g,t),Ob(this.editor,this,/(?:^|\s)(_)([^_]+)(_)$/g,t)}if(t.get("code")){const t=Hb(this.editor,"code");Ob(this.editor,this,/(`)([^`]+)(`)$/g,t)}if(t.get("strikethrough")){const t=Hb(this.editor,"strikethrough");Ob(this.editor,this,/(~~)([^~]+)(~~)$/g,t)}}_addHeadingAutoformats(){const t=this.editor.commands.get("heading");t&&t.modelElements.filter((t=>t.match(/^heading[1-6]$/))).forEach((e=>{const n=e[7],o=new RegExp(`^(#{${n}})\\s$`);Vb(this.editor,this,o,(()=>{if(!t.isEnabled||t.value===e)return!1;this.editor.execute("heading",{value:e})}))}))}_addBlockQuoteAutoformats(){this.editor.commands.get("blockQuote")&&Vb(this.editor,this,/^>\s$/,"blockQuote")}_addCodeBlockAutoformats(){const t=this.editor,e=t.model.document.selection;t.commands.get("codeBlock")&&Vb(t,this,/^```$/,(()=>{if(e.getFirstPosition().parent.is("element","listItem"))return!1;this.editor.execute("codeBlock",{usePreviousLanguageChoice:!0})}))}_addHorizontalLineAutoformats(){this.editor.commands.get("horizontalLine")&&Vb(this.editor,this,/^---$/,"horizontalLine")}},class extends Nr{static get requires(){return[Sw,zw]}static get pluginName(){return"BlockQuote"}},class extends Nr{static get requires(){return[Wb,Ub]}static get pluginName(){return"Bold"}},class extends Ur{tokenUrl;uploadUrl;webSocketUrl;bundleVersion;token=null;_tokens=new Map;static get pluginName(){return"CloudServices"}static get requires(){return[Nw]}async init(){const t=this.context.config.get("cloudServices")||{};for(const[e,n]of Object.entries(t))this[e]=n;if(!this.tokenUrl)return void(this.token=null);const e=this.context.plugins.get("CloudServicesCore");this.token=await e.createToken(this.tokenUrl).init(),this._tokens.set(this.tokenUrl,this.token)}async registerTokenUrl(t){if(this._tokens.has(t))return this.getTokenFor(t);const e=this.context.plugins.get("CloudServicesCore"),n=await e.createToken(t).init();return this._tokens.set(t,n),n}getTokenFor(t){const e=this._tokens.get(t);if(!e)throw new x("cloudservices-token-not-registered",this);return e}destroy(){super.destroy();for(const t of this._tokens.values())t.destroy()}},class extends Nr{static get requires(){return[Vm,mA,Aw,wA,xw,Tb,DA]}static get pluginName(){return"Essentials"}},class extends Nr{static get requires(){return[iC,rC]}static get pluginName(){return"FontBackgroundColor"}},class extends Nr{static get requires(){return[tC,nC]}static get pluginName(){return"FontColor"}},class extends Nr{static get requires(){return[NA,qA]}static get pluginName(){return"FontFamily"}},class extends Nr{static get requires(){return[$A,QA]}static get pluginName(){return"FontSize"}normalizeSizeOptions(t){return WA(t)}},class extends Nr{static get requires(){return[mC,fC]}static get pluginName(){return"Heading"}},class extends Nr{static get requires(){return[_C,AC,O_]}static get pluginName(){return"HorizontalLine"}},class extends Nr{static get requires(){return[rv,av]}static get pluginName(){return"Image"}},class extends Nr{static get requires(){return[dv,hv]}static get pluginName(){return"ImageCaption"}},class extends Nr{static get requires(){return[yv,Iv,Vv,Ev]}static get pluginName(){return"ImageResize"}},class extends Nr{static get requires(){return[ey,iy]}static get pluginName(){return"ImageStyle"}},class extends Nr{static get requires(){return[H_,BC]}static get pluginName(){return"ImageToolbar"}afterInit(){const t=this.editor,e=t.t,n=t.plugins.get(H_),o=t.plugins.get("ImageUtils");n.register("image",{ariaLabel:e("Image toolbar"),items:cy(t.config.get("image.toolbar")||[]),getRelatedElement:t=>o.getClosestSelectedImageWidget(t)})}},class extends Nr{static get pluginName(){return"Indent"}static get requires(){return[ly,dy]}},class extends Nr{static get requires(){return[Yb,Xb]}static get pluginName(){return"Italic"}},cx,Rx,lC,class extends Nr{_characters;_groups;_allSpecialCharactersGroupLabel;static get requires(){return[Tb]}static get pluginName(){return"SpecialCharacters"}constructor(t){super(t);const e=t.t;this._characters=new Map,this._groups=new Map,this._allSpecialCharactersGroupLabel=e("All")}init(){const t=this.editor,e=t.t,n=t.commands.get("insertText");t.ui.componentFactory.add("specialCharacters",(o=>{const i=Ug(o);let r;return i.buttonView.set({label:e("Special characters"),icon:' ',tooltip:!0}),i.bind("isEnabled").to(n),i.on("execute",((e,n)=>{t.execute("insertText",{text:n.character}),t.editing.view.focus()})),i.on("change:isOpen",(()=>{if(!r){r=this._createDropdownPanelContent(o,i);const t=new Gx(o,r.navigationView,r.gridView,r.infoView);i.panelView.children.add(t)}r.infoView.set({character:null,name:null})})),i}))}addItems(t,e,n={label:t}){if(t===$x)throw new x("special-character-invalid-group-name",null);const o=this._getGroup(t,n.label);for(const t of e)o.items.add(t.title),this._characters.set(t.title,t.character)}getGroups(){const t=Array.from(this._groups.keys()),e=this.editor.config.get("specialCharacters.order")||[],n=e.find((e=>!t.includes(e)));if(n)throw new x("special-character-invalid-order-group-name",null,{invalidGroup:n});return new Set([...e,...t])}getCharactersForGroup(t){if(t===$x)return new Set(this._characters.keys());const e=this._groups.get(t);return e?e.items:void 0}getCharacter(t){return this._characters.get(t)}_getGroup(t,e){return this._groups.has(t)||this._groups.set(t,{items:new Set,label:e}),this._groups.get(t)}_updateGrid(t,e){e.tiles.clear();const n=this.getCharactersForGroup(t);for(const t of n){const n=this.getCharacter(t);e.tiles.add(e.createTile(n,t))}}_createDropdownPanelContent(t,e){const n=Array.from(this.getGroups()).map((t=>[t,this._groups.get(t).label])),o=new Map([[$x,this._allSpecialCharactersGroupLabel],...n]),i=new Mx(t,o),r=new Nx(t),s=new jx(t);return r.delegate("execute").to(e),r.on("tileHover",((t,e)=>{s.set(e)})),r.on("tileFocus",((t,e)=>{s.set(e)})),i.on("execute",(()=>{this._updateGrid(i.currentGroupName,r)})),this._updateGrid(i.currentGroupName,r),{navigationView:i,gridView:r,infoView:s}}},Xx,class extends Nr{static get pluginName(){return"SpecialCharactersEssentials"}static get requires(){return[Xx,Jx,Yx,Zx,Qx]}},Qx,Jx,class extends Nr{static get requires(){return[ew,ow]}static get pluginName(){return"Strikethrough"}},class extends Nr{static get requires(){return[rw,aw]}static get pluginName(){return"Subscript"}},class extends Nr{static get requires(){return[lw,hw]}static get pluginName(){return"Superscript"}},class extends Nr{static get requires(){return[rD,dD,gD,AD,wD,pD,O_]}static get pluginName(){return"Table"}},class extends Nr{static get pluginName(){return"TableProperties"}static get requires(){return[CB,SB]}},class extends Nr{static get requires(){return[H_]}static get pluginName(){return"TableToolbar"}afterInit(){const t=this.editor,e=t.t,n=t.plugins.get(H_),o=t.config.get("table.contentToolbar"),i=t.config.get("table.tableToolbar");o&&n.register("tableContent",{ariaLabel:e("Table toolbar"),items:o,getRelatedElement:DD}),i&&n.register("table",{ariaLabel:e("Table toolbar"),items:i,getRelatedElement:ED})}},class extends Nr{static get requires(){return["Delete","Input"]}static get pluginName(){return"TextTransformation"}constructor(t){super(t),t.config.define("typing",{transformations:{include:zb}})}init(){const t=this.editor.model.document.selection;t.on("change:range",(()=>{this.isEnabled=!t.anchor.parent.is("element","codeBlock")})),this._enableTransformationWatchers()}_enableTransformationWatchers(){const t=this.editor,e=t.model,n=t.plugins.get("Delete"),o=function(t){const e=t.extra||[],n=t.remove||[],o=t=>!n.includes(t),i=t.include.concat(e).filter(o);return function(t){const e=new Set;for(const n of t)if("string"==typeof n&&Pb[n])for(const t of Pb[n])e.add(t);else e.add(n);return Array.from(e)}(i).filter(o).map((t=>"string"==typeof t&&Ib[t]?Ib[t]:t)).filter((t=>"object"==typeof t)).map((t=>({from:Rb(t.from),to:Lb(t.to)})))}(t.config.get("typing.transformations")),i=new Sb(t.model,(t=>{for(const e of o){if(e.from.test(t))return{normalizedTransformation:e}}}));i.on("matched:data",((t,o)=>{if(!o.batch.isTyping)return;const{from:i,to:r}=o.normalizedTransformation,s=i.exec(o.text),a=r(s.slice(1)),c=o.range;let l=s.index;e.enqueueChange((t=>{for(let n=1;n{n.requestUndoOnBackspace()}))}))})),i.bind("isEnabled").to(this)}},class extends Nr{static get requires(){return[mw,pw]}static get pluginName(){return"Underline"}},DA],VB={toolbar:{items:["undo","redo","fontFamily","fontSize","fontColor","fontBackgroundColor","alignment","outdent","indent","|","bold","italic","underline","strikethrough","subscript","superscript","|","bulletedList","numberedList","blockQuote","insertTable","horizontalLine","specialCharacters","|","heading"],shouldNotGroupWhenFull:!0},language:"en-gb",image:{toolbar:["imageTextAlternative","toggleImageCaption","imageStyle:inline","imageStyle:block","imageStyle:side"]},table:{contentToolbar:["tableColumn","tableRow","mergeTableCells","tableProperties"]}};LB.builtinPlugins=MB,LB.defaultConfig=VB,FB.builtinPlugins=MB,FB.defaultConfig=VB;const OB={ClassicEditor:LB,InlineEditor:FB}})(),o=o.default})()));
+//# sourceMappingURL=ckeditor.js.map
\ No newline at end of file
diff --git a/ui/src/vendor/ckeditor/build/ckeditor.js.map b/ui/src/vendor/ckeditor/build/ckeditor.js.map
new file mode 100644
index 0000000000..724a955197
--- /dev/null
+++ b/ui/src/vendor/ckeditor/build/ckeditor.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"ckeditor.js","mappings":"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","sources":["webpack://CKEDITOR/webpack/universalModuleDefinition","webpack://CKEDITOR/../node_modules/color-convert/conversions.js","webpack://CKEDITOR/../node_modules/color-convert/index.js","webpack://CKEDITOR/../node_modules/color-convert/route.js","webpack://CKEDITOR/../node_modules/color-name/index.js","webpack://CKEDITOR/../ckeditor5-basic-styles/theme/code.css","webpack://CKEDITOR/../ckeditor5-block-quote/theme/blockquote.css","webpack://CKEDITOR/../ckeditor5-clipboard/theme/clipboard.css","webpack://CKEDITOR/../ckeditor5-editor-classic/theme/classiceditor.css","webpack://CKEDITOR/../ckeditor5-engine/theme/placeholder.css","webpack://CKEDITOR/../ckeditor5-engine/theme/renderer.css","webpack://CKEDITOR/../ckeditor5-font/theme/fontsize.css","webpack://CKEDITOR/../ckeditor5-heading/theme/heading.css","webpack://CKEDITOR/../ckeditor5-horizontal-line/theme/horizontalline.css","webpack://CKEDITOR/../ckeditor5-image/theme/image.css","webpack://CKEDITOR/../ckeditor5-image/theme/imagecaption.css","webpack://CKEDITOR/../ckeditor5-image/theme/imagecustomresizeform.css","webpack://CKEDITOR/../ckeditor5-image/theme/imageinsert.css","webpack://CKEDITOR/../ckeditor5-image/theme/imageplaceholder.css","webpack://CKEDITOR/../ckeditor5-image/theme/imageresize.css","webpack://CKEDITOR/../ckeditor5-image/theme/imagestyle.css","webpack://CKEDITOR/../ckeditor5-image/theme/imageuploadicon.css","webpack://CKEDITOR/../ckeditor5-image/theme/imageuploadloader.css","webpack://CKEDITOR/../ckeditor5-image/theme/imageuploadprogress.css","webpack://CKEDITOR/../ckeditor5-image/theme/textalternativeform.css","webpack://CKEDITOR/../ckeditor5-list/theme/documentlist.css","webpack://CKEDITOR/../ckeditor5-list/theme/list.css","webpack://CKEDITOR/../ckeditor5-list/theme/listproperties.css","webpack://CKEDITOR/../ckeditor5-list/theme/liststyles.css","webpack://CKEDITOR/../ckeditor5-list/theme/todolist.css","webpack://CKEDITOR/../ckeditor5-special-characters/theme/charactergrid.css","webpack://CKEDITOR/../ckeditor5-special-characters/theme/characterinfo.css","webpack://CKEDITOR/../ckeditor5-special-characters/theme/specialcharacters.css","webpack://CKEDITOR/../ckeditor5-table/theme/colorinput.css","webpack://CKEDITOR/../ckeditor5-table/theme/form.css","webpack://CKEDITOR/../ckeditor5-table/theme/formrow.css","webpack://CKEDITOR/../ckeditor5-table/theme/inserttable.css","webpack://CKEDITOR/../ckeditor5-table/theme/table.css","webpack://CKEDITOR/../ckeditor5-table/theme/tablecaption.css","webpack://CKEDITOR/../ckeditor5-table/theme/tablecellproperties.css","webpack://CKEDITOR/../ckeditor5-table/theme/tablecolumnresize.css","webpack://CKEDITOR/../ckeditor5-table/theme/tableediting.css","webpack://CKEDITOR/../ckeditor5-table/theme/tableform.css","webpack://CKEDITOR/../ckeditor5-table/theme/tableproperties.css","webpack://CKEDITOR/../ckeditor5-table/theme/tableselection.css","webpack://CKEDITOR/../ckeditor5-ui/theme/components/arialiveannouncer/arialiveannouncer.css","webpack://CKEDITOR/../ckeditor5-ui/theme/components/autocomplete/autocomplete.css","webpack://CKEDITOR/../ckeditor5-ui/theme/components/button/button.css","webpack://CKEDITOR/../ckeditor5-ui/theme/components/button/switchbutton.css","webpack://CKEDITOR/../ckeditor5-ui/theme/components/collapsible/collapsible.css","webpack://CKEDITOR/../ckeditor5-ui/theme/components/colorgrid/colorgrid.css","webpack://CKEDITOR/../ckeditor5-ui/theme/components/colorpicker/colorpicker.css","webpack://CKEDITOR/../ckeditor5-ui/theme/components/colorselector/colorselector.css","webpack://CKEDITOR/../ckeditor5-ui/theme/components/dialog/dialog.css","webpack://CKEDITOR/../ckeditor5-ui/theme/components/dialog/dialogactions.css","webpack://CKEDITOR/../ckeditor5-ui/theme/components/dropdown/dropdown.css","webpack://CKEDITOR/../ckeditor5-ui/theme/components/dropdown/listdropdown.css","webpack://CKEDITOR/../ckeditor5-ui/theme/components/dropdown/splitbutton.css","webpack://CKEDITOR/../ckeditor5-ui/theme/components/dropdown/toolbardropdown.css","webpack://CKEDITOR/../ckeditor5-ui/theme/components/editorui/accessibilityhelp.css","webpack://CKEDITOR/../ckeditor5-ui/theme/components/editorui/editorui.css","webpack://CKEDITOR/../ckeditor5-ui/theme/components/formheader/formheader.css","webpack://CKEDITOR/../ckeditor5-ui/theme/components/highlightedtext/highlightedtext.css","webpack://CKEDITOR/../ckeditor5-ui/theme/components/icon/icon.css","webpack://CKEDITOR/../ckeditor5-ui/theme/components/input/input.css","webpack://CKEDITOR/../ckeditor5-ui/theme/components/label/label.css","webpack://CKEDITOR/../ckeditor5-ui/theme/components/labeledfield/labeledfieldview.css","webpack://CKEDITOR/../ckeditor5-ui/theme/components/list/list.css","webpack://CKEDITOR/../ckeditor5-ui/theme/components/menubar/menubar.css","webpack://CKEDITOR/../ckeditor5-ui/theme/components/menubar/menubarmenu.css","webpack://CKEDITOR/../ckeditor5-ui/theme/components/menubar/menubarmenubutton.css","webpack://CKEDITOR/../ckeditor5-ui/theme/components/menubar/menubarmenulistitem.css","webpack://CKEDITOR/../ckeditor5-ui/theme/components/menubar/menubarmenulistitembutton.css","webpack://CKEDITOR/../ckeditor5-ui/theme/components/menubar/menubarmenupanel.css","webpack://CKEDITOR/../ckeditor5-ui/theme/components/panel/balloonpanel.css","webpack://CKEDITOR/../ckeditor5-ui/theme/components/panel/balloonrotator.css","webpack://CKEDITOR/../ckeditor5-ui/theme/components/panel/fakepanel.css","webpack://CKEDITOR/../ckeditor5-ui/theme/components/panel/stickypanel.css","webpack://CKEDITOR/../ckeditor5-ui/theme/components/responsive-form/responsiveform.css","webpack://CKEDITOR/../ckeditor5-ui/theme/components/search/search.css","webpack://CKEDITOR/../ckeditor5-ui/theme/components/spinner/spinner.css","webpack://CKEDITOR/../ckeditor5-ui/theme/components/textarea/textarea.css","webpack://CKEDITOR/../ckeditor5-ui/theme/components/toolbar/blocktoolbar.css","webpack://CKEDITOR/../ckeditor5-ui/theme/components/toolbar/toolbar.css","webpack://CKEDITOR/../ckeditor5-ui/theme/components/tooltip/tooltip.css","webpack://CKEDITOR/../ckeditor5-ui/theme/globals/globals.css","webpack://CKEDITOR/../ckeditor5-widget/theme/widget.css","webpack://CKEDITOR/../ckeditor5-widget/theme/widgetresize.css","webpack://CKEDITOR/../ckeditor5-widget/theme/widgettypearound.css","webpack://CKEDITOR/../node_modules/css-loader/dist/runtime/api.js","webpack://CKEDITOR/../node_modules/css-loader/dist/runtime/cssWithMappingToString.js","webpack://CKEDITOR/../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js","webpack://CKEDITOR/webpack/bootstrap","webpack://CKEDITOR/webpack/runtime/compat get default export","webpack://CKEDITOR/webpack/runtime/define property getters","webpack://CKEDITOR/webpack/runtime/hasOwnProperty shorthand","webpack://CKEDITOR/webpack/runtime/nonce","webpack://CKEDITOR/../ckeditor5-utils/src/env.ts","webpack://CKEDITOR/../ckeditor5-utils/src/fastdiff.ts","webpack://CKEDITOR/../ckeditor5-utils/src/diff.ts","webpack://CKEDITOR/../ckeditor5-utils/src/spy.ts","webpack://CKEDITOR/../ckeditor5-utils/src/eventinfo.ts","webpack://CKEDITOR/../ckeditor5-utils/src/uid.ts","webpack://CKEDITOR/../ckeditor5-utils/src/priorities.ts","webpack://CKEDITOR/../ckeditor5-utils/src/inserttopriorityarray.ts","webpack://CKEDITOR/../ckeditor5-utils/src/ckeditorerror.ts","webpack://CKEDITOR/../ckeditor5-utils/src/version.ts","webpack://CKEDITOR/../ckeditor5-utils/src/emittermixin.ts","webpack://CKEDITOR/javascript/node_modules/lodash-es/isObject.js","webpack://CKEDITOR/../ckeditor5-utils/src/observablemixin.ts","webpack://CKEDITOR/../ckeditor5-utils/src/elementreplacer.ts","webpack://CKEDITOR/../ckeditor5-utils/src/count.ts","webpack://CKEDITOR/../ckeditor5-utils/src/comparearrays.ts","webpack://CKEDITOR/../ckeditor5-utils/src/isiterable.ts","webpack://CKEDITOR/javascript/node_modules/lodash-es/_freeGlobal.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_root.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_Symbol.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_getRawTag.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_objectToString.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_baseGetTag.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/isArray.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/isObjectLike.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/isString.js","webpack://CKEDITOR/../ckeditor5-utils/src/dom/createelement.ts","webpack://CKEDITOR/javascript/node_modules/lodash-es/_overArg.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_getPrototype.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/isPlainObject.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_listCacheClear.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/eq.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_assocIndexOf.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_listCacheDelete.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_listCacheGet.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_listCacheHas.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_listCacheSet.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_ListCache.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_stackClear.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_stackDelete.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_stackGet.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_stackHas.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/isFunction.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_coreJsData.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_isMasked.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_toSource.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_baseIsNative.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_getValue.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_getNative.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_Map.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_nativeCreate.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_hashClear.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_hashDelete.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_hashGet.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_hashHas.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_hashSet.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_Hash.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_mapCacheClear.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_isKeyable.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_getMapData.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_mapCacheDelete.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_mapCacheGet.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_mapCacheHas.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_mapCacheSet.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_MapCache.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_stackSet.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_Stack.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_arrayEach.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_defineProperty.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_baseAssignValue.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_assignValue.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_copyObject.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_baseTimes.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_baseIsArguments.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/isArguments.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/stubFalse.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/isBuffer.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_isIndex.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/isLength.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_baseIsTypedArray.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_baseUnary.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_nodeUtil.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/isTypedArray.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_arrayLikeKeys.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_isPrototype.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_nativeKeys.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_baseKeys.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/isArrayLike.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/keys.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_baseAssign.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_nativeKeysIn.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_baseKeysIn.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/keysIn.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_baseAssignIn.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_cloneBuffer.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_copyArray.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_arrayFilter.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/stubArray.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_getSymbols.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_copySymbols.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_arrayPush.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_getSymbolsIn.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_copySymbolsIn.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_baseGetAllKeys.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_getAllKeys.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_getAllKeysIn.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_DataView.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_Promise.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_Set.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_WeakMap.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_getTag.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_initCloneArray.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_Uint8Array.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_cloneArrayBuffer.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_cloneDataView.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_cloneRegExp.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_cloneSymbol.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_cloneTypedArray.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_initCloneByTag.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_baseCreate.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_initCloneObject.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_baseIsMap.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/isMap.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_baseIsSet.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/isSet.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_baseClone.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/cloneDeepWith.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/isElement.js","webpack://CKEDITOR/../ckeditor5-utils/src/config.ts","webpack://CKEDITOR/../ckeditor5-utils/src/dom/isnode.ts","webpack://CKEDITOR/../ckeditor5-utils/src/dom/iswindow.ts","webpack://CKEDITOR/../ckeditor5-utils/src/dom/emittermixin.ts","webpack://CKEDITOR/../ckeditor5-utils/src/dom/global.ts","webpack://CKEDITOR/../ckeditor5-utils/src/dom/getdatafromelement.ts","webpack://CKEDITOR/../ckeditor5-utils/src/dom/getborderwidths.ts","webpack://CKEDITOR/../ckeditor5-utils/src/dom/istext.ts","webpack://CKEDITOR/../ckeditor5-utils/src/dom/isrange.ts","webpack://CKEDITOR/../ckeditor5-utils/src/dom/getpositionedancestor.ts","webpack://CKEDITOR/../ckeditor5-utils/src/dom/rect.ts","webpack://CKEDITOR/../ckeditor5-utils/src/dom/resizeobserver.ts","webpack://CKEDITOR/../ckeditor5-utils/src/dom/setdatainelement.ts","webpack://CKEDITOR/../ckeditor5-utils/src/dom/tounit.ts","webpack://CKEDITOR/../ckeditor5-utils/src/dom/indexof.ts","webpack://CKEDITOR/../ckeditor5-utils/src/dom/insertat.ts","webpack://CKEDITOR/../ckeditor5-utils/src/dom/iscomment.ts","webpack://CKEDITOR/../ckeditor5-utils/src/dom/isvisible.ts","webpack://CKEDITOR/../ckeditor5-utils/src/dom/position.ts","webpack://CKEDITOR/../ckeditor5-utils/src/dom/remove.ts","webpack://CKEDITOR/../ckeditor5-utils/src/dom/scroll.ts","webpack://CKEDITOR/../ckeditor5-utils/src/keyboard.ts","webpack://CKEDITOR/../ckeditor5-utils/src/toarray.ts","webpack://CKEDITOR/javascript/node_modules/lodash-es/_assignMergeValue.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_baseFor.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_createBaseFor.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/isArrayLikeObject.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_safeGet.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/toPlainObject.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_baseMergeDeep.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_baseMerge.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/identity.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_apply.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_overRest.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/constant.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_baseSetToString.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_shortOut.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_setToString.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_baseRest.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_isIterateeCall.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_createAssigner.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/merge.js","webpack://CKEDITOR/../ckeditor5-utils/src/translation-service.ts","webpack://CKEDITOR/../ckeditor5-utils/src/language.ts","webpack://CKEDITOR/../ckeditor5-utils/src/locale.ts","webpack://CKEDITOR/../ckeditor5-utils/src/collection.ts","webpack://CKEDITOR/../ckeditor5-utils/src/first.ts","webpack://CKEDITOR/../ckeditor5-utils/src/focustracker.ts","webpack://CKEDITOR/../ckeditor5-utils/src/keystrokehandler.ts","webpack://CKEDITOR/../ckeditor5-utils/src/tomap.ts","webpack://CKEDITOR/../ckeditor5-utils/src/objecttomap.ts","webpack://CKEDITOR/../ckeditor5-utils/src/delay.ts","webpack://CKEDITOR/../ckeditor5-utils/src/unicode.ts","webpack://CKEDITOR/../ckeditor5-ui/src/viewcollection.ts","webpack://CKEDITOR/../ckeditor5-ui/src/template.ts","webpack://CKEDITOR/../ckeditor5-ui/theme/globals/globals.css?236e","webpack://CKEDITOR/../ckeditor5-ui/src/view.ts","webpack://CKEDITOR/../ckeditor5-ui/src/bindings/clickoutsidehandler.ts","webpack://CKEDITOR/../ckeditor5-ui/src/bindings/csstransitiondisablermixin.ts","webpack://CKEDITOR/../ckeditor5-ui/src/bindings/submithandler.ts","webpack://CKEDITOR/../ckeditor5-ui/src/bindings/addkeyboardhandlingforgrid.ts","webpack://CKEDITOR/../ckeditor5-core/src/plugin.ts","webpack://CKEDITOR/../ckeditor5-core/src/command.ts","webpack://CKEDITOR/../ckeditor5-core/src/multicommand.ts","webpack://CKEDITOR/../ckeditor5-core/src/plugincollection.ts","webpack://CKEDITOR/../ckeditor5-core/src/context.ts","webpack://CKEDITOR/../ckeditor5-core/src/contextplugin.ts","webpack://CKEDITOR/../ckeditor5-core/src/editingkeystrokehandler.ts","webpack://CKEDITOR/../ckeditor5-engine/theme/placeholder.css?e2af","webpack://CKEDITOR/../ckeditor5-engine/src/view/placeholder.ts","webpack://CKEDITOR/../ckeditor5-engine/src/view/typecheckable.ts","webpack://CKEDITOR/javascript/node_modules/lodash-es/clone.js","webpack://CKEDITOR/../ckeditor5-engine/src/view/node.ts","webpack://CKEDITOR/../ckeditor5-engine/src/view/text.ts","webpack://CKEDITOR/../ckeditor5-engine/src/view/textproxy.ts","webpack://CKEDITOR/../ckeditor5-engine/src/view/matcher.ts","webpack://CKEDITOR/javascript/node_modules/lodash-es/isSymbol.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_isKey.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/memoize.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_memoizeCapped.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_stringToPath.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_arrayMap.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_baseToString.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/toString.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_castPath.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/last.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_toKey.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_baseGet.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_baseSlice.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_parent.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_baseUnset.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/unset.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/get.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_baseSet.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/set.js","webpack://CKEDITOR/../ckeditor5-engine/src/view/stylesmap.ts","webpack://CKEDITOR/../ckeditor5-engine/src/view/element.ts","webpack://CKEDITOR/../ckeditor5-engine/src/view/containerelement.ts","webpack://CKEDITOR/../ckeditor5-engine/src/view/editableelement.ts","webpack://CKEDITOR/../ckeditor5-engine/src/view/rooteditableelement.ts","webpack://CKEDITOR/../ckeditor5-engine/src/view/treewalker.ts","webpack://CKEDITOR/../ckeditor5-engine/src/view/position.ts","webpack://CKEDITOR/../ckeditor5-engine/src/view/range.ts","webpack://CKEDITOR/../ckeditor5-engine/src/view/selection.ts","webpack://CKEDITOR/../ckeditor5-engine/src/view/documentselection.ts","webpack://CKEDITOR/../ckeditor5-engine/src/view/observer/bubblingeventinfo.ts","webpack://CKEDITOR/../ckeditor5-engine/src/view/observer/bubblingemittermixin.ts","webpack://CKEDITOR/../ckeditor5-engine/src/view/document.ts","webpack://CKEDITOR/../ckeditor5-engine/src/view/attributeelement.ts","webpack://CKEDITOR/../ckeditor5-engine/src/view/emptyelement.ts","webpack://CKEDITOR/../ckeditor5-engine/src/view/uielement.ts","webpack://CKEDITOR/../ckeditor5-engine/src/view/rawelement.ts","webpack://CKEDITOR/../ckeditor5-engine/src/view/documentfragment.ts","webpack://CKEDITOR/../ckeditor5-engine/src/view/downcastwriter.ts","webpack://CKEDITOR/../ckeditor5-engine/src/view/filler.ts","webpack://CKEDITOR/../ckeditor5-engine/theme/renderer.css?dd62","webpack://CKEDITOR/../ckeditor5-engine/src/view/renderer.ts","webpack://CKEDITOR/../ckeditor5-engine/src/view/domconverter.ts","webpack://CKEDITOR/../ckeditor5-utils/src/dom/isvalidattributename.ts","webpack://CKEDITOR/../ckeditor5-utils/src/dom/getancestors.ts","webpack://CKEDITOR/../ckeditor5-engine/src/view/observer/observer.ts","webpack://CKEDITOR/javascript/node_modules/lodash-es/assignIn.js","webpack://CKEDITOR/../ckeditor5-engine/src/view/observer/domeventdata.ts","webpack://CKEDITOR/../ckeditor5-engine/src/view/observer/domeventobserver.ts","webpack://CKEDITOR/../ckeditor5-engine/src/view/observer/keyobserver.ts","webpack://CKEDITOR/javascript/node_modules/lodash-es/now.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_trimmedEndIndex.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_baseTrim.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/toNumber.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/debounce.js","webpack://CKEDITOR/../ckeditor5-engine/src/view/observer/fakeselectionobserver.ts","webpack://CKEDITOR/javascript/node_modules/lodash-es/_setCacheAdd.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_setCacheHas.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_SetCache.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_arraySome.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_cacheHas.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_equalArrays.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_mapToArray.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_setToArray.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_equalByTag.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_equalObjects.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_baseIsEqualDeep.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_baseIsEqual.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/isEqualWith.js","webpack://CKEDITOR/../ckeditor5-engine/src/view/observer/mutationobserver.ts","webpack://CKEDITOR/../ckeditor5-engine/src/view/observer/focusobserver.ts","webpack://CKEDITOR/../ckeditor5-engine/src/view/observer/selectionobserver.ts","webpack://CKEDITOR/../ckeditor5-engine/src/view/observer/compositionobserver.ts","webpack://CKEDITOR/../ckeditor5-engine/src/view/datatransfer.ts","webpack://CKEDITOR/../ckeditor5-engine/src/view/observer/inputobserver.ts","webpack://CKEDITOR/../ckeditor5-engine/src/view/observer/arrowkeysobserver.ts","webpack://CKEDITOR/../ckeditor5-engine/src/view/observer/tabobserver.ts","webpack://CKEDITOR/javascript/node_modules/lodash-es/cloneDeep.js","webpack://CKEDITOR/../ckeditor5-engine/src/view/view.ts","webpack://CKEDITOR/../ckeditor5-engine/src/model/typecheckable.ts","webpack://CKEDITOR/../ckeditor5-engine/src/model/node.ts","webpack://CKEDITOR/../ckeditor5-engine/src/model/nodelist.ts","webpack://CKEDITOR/../ckeditor5-utils/src/splicearray.ts","webpack://CKEDITOR/../ckeditor5-engine/src/model/text.ts","webpack://CKEDITOR/../ckeditor5-engine/src/model/textproxy.ts","webpack://CKEDITOR/../ckeditor5-engine/src/model/element.ts","webpack://CKEDITOR/../ckeditor5-engine/src/model/treewalker.ts","webpack://CKEDITOR/../ckeditor5-engine/src/model/position.ts","webpack://CKEDITOR/../ckeditor5-engine/src/model/range.ts","webpack://CKEDITOR/../ckeditor5-engine/src/conversion/mapper.ts","webpack://CKEDITOR/../ckeditor5-engine/src/conversion/modelconsumable.ts","webpack://CKEDITOR/../ckeditor5-engine/src/conversion/downcastdispatcher.ts","webpack://CKEDITOR/../ckeditor5-engine/src/model/selection.ts","webpack://CKEDITOR/../ckeditor5-engine/src/model/liverange.ts","webpack://CKEDITOR/../ckeditor5-engine/src/model/documentselection.ts","webpack://CKEDITOR/../ckeditor5-engine/src/conversion/conversionhelpers.ts","webpack://CKEDITOR/../ckeditor5-engine/src/conversion/downcasthelpers.ts","webpack://CKEDITOR/../ckeditor5-engine/src/model/utils/autoparagraphing.ts","webpack://CKEDITOR/../ckeditor5-engine/src/conversion/upcasthelpers.ts","webpack://CKEDITOR/../ckeditor5-engine/src/model/utils/selection-post-fixer.ts","webpack://CKEDITOR/../ckeditor5-engine/src/controller/editingcontroller.ts","webpack://CKEDITOR/../ckeditor5-engine/src/conversion/viewconsumable.ts","webpack://CKEDITOR/../ckeditor5-engine/src/model/schema.ts","webpack://CKEDITOR/../ckeditor5-engine/src/conversion/upcastdispatcher.ts","webpack://CKEDITOR/../ckeditor5-engine/src/dataprocessor/basichtmlwriter.ts","webpack://CKEDITOR/../ckeditor5-engine/src/dataprocessor/htmldataprocessor.ts","webpack://CKEDITOR/../ckeditor5-engine/src/controller/datacontroller.ts","webpack://CKEDITOR/../ckeditor5-engine/src/conversion/conversion.ts","webpack://CKEDITOR/../ckeditor5-engine/src/model/operation/operation.ts","webpack://CKEDITOR/../ckeditor5-engine/src/model/operation/utils.ts","webpack://CKEDITOR/../ckeditor5-engine/src/model/operation/moveoperation.ts","webpack://CKEDITOR/../ckeditor5-engine/src/model/operation/insertoperation.ts","webpack://CKEDITOR/../ckeditor5-engine/src/model/operation/splitoperation.ts","webpack://CKEDITOR/../ckeditor5-engine/src/model/operation/mergeoperation.ts","webpack://CKEDITOR/../ckeditor5-engine/src/model/operation/markeroperation.ts","webpack://CKEDITOR/javascript/node_modules/lodash-es/isEqual.js","webpack://CKEDITOR/../ckeditor5-engine/src/model/operation/attributeoperation.ts","webpack://CKEDITOR/../ckeditor5-engine/src/model/operation/nooperation.ts","webpack://CKEDITOR/../ckeditor5-engine/src/model/operation/renameoperation.ts","webpack://CKEDITOR/../ckeditor5-engine/src/model/operation/rootattributeoperation.ts","webpack://CKEDITOR/../ckeditor5-engine/src/model/operation/rootoperation.ts","webpack://CKEDITOR/../ckeditor5-engine/src/model/operation/operationfactory.ts","webpack://CKEDITOR/../ckeditor5-engine/src/model/operation/transform.ts","webpack://CKEDITOR/../ckeditor5-engine/src/model/liveposition.ts","webpack://CKEDITOR/../ckeditor5-engine/src/model/batch.ts","webpack://CKEDITOR/../ckeditor5-engine/src/model/differ.ts","webpack://CKEDITOR/../ckeditor5-engine/src/model/history.ts","webpack://CKEDITOR/../ckeditor5-engine/src/model/rootelement.ts","webpack://CKEDITOR/../ckeditor5-engine/src/model/document.ts","webpack://CKEDITOR/../ckeditor5-engine/src/model/markercollection.ts","webpack://CKEDITOR/../ckeditor5-engine/src/model/operation/detachoperation.ts","webpack://CKEDITOR/../ckeditor5-engine/src/model/documentfragment.ts","webpack://CKEDITOR/../ckeditor5-engine/src/model/writer.ts","webpack://CKEDITOR/../ckeditor5-engine/src/model/utils/deletecontent.ts","webpack://CKEDITOR/../ckeditor5-engine/src/model/utils/getselectedcontent.ts","webpack://CKEDITOR/../ckeditor5-engine/src/model/utils/insertcontent.ts","webpack://CKEDITOR/../ckeditor5-engine/src/model/utils/insertobject.ts","webpack://CKEDITOR/../ckeditor5-engine/src/model/utils/modifyselection.ts","webpack://CKEDITOR/../ckeditor5-engine/src/model/model.ts","webpack://CKEDITOR/../ckeditor5-engine/src/view/observer/mouseobserver.ts","webpack://CKEDITOR/../ckeditor5-engine/src/view/upcastwriter.ts","webpack://CKEDITOR/../ckeditor5-engine/src/view/styles/utils.ts","webpack://CKEDITOR/../ckeditor5-engine/src/view/styles/background.ts","webpack://CKEDITOR/../ckeditor5-engine/src/view/styles/border.ts","webpack://CKEDITOR/../ckeditor5-core/src/commandcollection.ts","webpack://CKEDITOR/../ckeditor5-core/src/accessibility.ts","webpack://CKEDITOR/../ckeditor5-core/src/editor/editor.ts","webpack://CKEDITOR/../ckeditor5-core/src/editor/utils/attachtoform.ts","webpack://CKEDITOR/../ckeditor5-core/src/editor/utils/elementapimixin.ts","webpack://CKEDITOR/../ckeditor5-core/src/pendingactions.ts","webpack://CKEDITOR/../ckeditor5-core/theme/icons/cancel.svg","webpack://CKEDITOR/../ckeditor5-core/src/index.ts","webpack://CKEDITOR/../ckeditor5-core/theme/icons/bold.svg","webpack://CKEDITOR/../ckeditor5-core/theme/icons/caption.svg","webpack://CKEDITOR/../ckeditor5-core/theme/icons/check.svg","webpack://CKEDITOR/../ckeditor5-core/theme/icons/cog.svg","webpack://CKEDITOR/../ckeditor5-core/theme/icons/color-palette.svg","webpack://CKEDITOR/../ckeditor5-core/theme/icons/eraser.svg","webpack://CKEDITOR/../ckeditor5-core/theme/icons/history.svg","webpack://CKEDITOR/../ckeditor5-core/theme/icons/image.svg","webpack://CKEDITOR/../ckeditor5-core/theme/icons/image-upload.svg","webpack://CKEDITOR/../ckeditor5-core/theme/icons/image-asset-manager.svg","webpack://CKEDITOR/../ckeditor5-core/theme/icons/image-url.svg","webpack://CKEDITOR/../ckeditor5-core/theme/icons/low-vision.svg","webpack://CKEDITOR/../ckeditor5-core/theme/icons/text-alternative.svg","webpack://CKEDITOR/../ckeditor5-core/theme/icons/loupe.svg","webpack://CKEDITOR/../ckeditor5-core/theme/icons/previous-arrow.svg","webpack://CKEDITOR/../ckeditor5-core/theme/icons/next-arrow.svg","webpack://CKEDITOR/../ckeditor5-core/theme/icons/importexport.svg","webpack://CKEDITOR/../ckeditor5-core/theme/icons/paragraph.svg","webpack://CKEDITOR/../ckeditor5-core/theme/icons/plus.svg","webpack://CKEDITOR/../ckeditor5-core/theme/icons/text.svg","webpack://CKEDITOR/../ckeditor5-core/theme/icons/align-bottom.svg","webpack://CKEDITOR/../ckeditor5-core/theme/icons/align-middle.svg","webpack://CKEDITOR/../ckeditor5-core/theme/icons/align-top.svg","webpack://CKEDITOR/../ckeditor5-core/theme/icons/align-left.svg","webpack://CKEDITOR/../ckeditor5-core/theme/icons/align-center.svg","webpack://CKEDITOR/../ckeditor5-core/theme/icons/align-right.svg","webpack://CKEDITOR/../ckeditor5-core/theme/icons/align-justify.svg","webpack://CKEDITOR/../ckeditor5-core/theme/icons/object-inline-left.svg","webpack://CKEDITOR/../ckeditor5-core/theme/icons/object-center.svg","webpack://CKEDITOR/../ckeditor5-core/theme/icons/object-inline-right.svg","webpack://CKEDITOR/../ckeditor5-core/theme/icons/object-full-width.svg","webpack://CKEDITOR/../ckeditor5-core/theme/icons/object-inline.svg","webpack://CKEDITOR/../ckeditor5-core/theme/icons/object-left.svg","webpack://CKEDITOR/../ckeditor5-core/theme/icons/object-right.svg","webpack://CKEDITOR/../ckeditor5-core/theme/icons/object-size-custom.svg","webpack://CKEDITOR/../ckeditor5-core/theme/icons/object-size-full.svg","webpack://CKEDITOR/../ckeditor5-core/theme/icons/object-size-large.svg","webpack://CKEDITOR/../ckeditor5-core/theme/icons/object-size-small.svg","webpack://CKEDITOR/../ckeditor5-core/theme/icons/object-size-medium.svg","webpack://CKEDITOR/../ckeditor5-core/theme/icons/pencil.svg","webpack://CKEDITOR/../ckeditor5-core/theme/icons/pilcrow.svg","webpack://CKEDITOR/../ckeditor5-core/theme/icons/quote.svg","webpack://CKEDITOR/../ckeditor5-core/theme/icons/three-vertical-dots.svg","webpack://CKEDITOR/../ckeditor5-core/theme/icons/drag-indicator.svg","webpack://CKEDITOR/../ckeditor5-core/theme/icons/redo.svg","webpack://CKEDITOR/../ckeditor5-core/theme/icons/undo.svg","webpack://CKEDITOR/../ckeditor5-core/theme/icons/bulletedlist.svg","webpack://CKEDITOR/../ckeditor5-core/theme/icons/numberedlist.svg","webpack://CKEDITOR/../ckeditor5-core/theme/icons/todolist.svg","webpack://CKEDITOR/../ckeditor5-core/theme/icons/codeblock.svg","webpack://CKEDITOR/../ckeditor5-core/theme/icons/browse-files.svg","webpack://CKEDITOR/../ckeditor5-core/theme/icons/heading1.svg","webpack://CKEDITOR/../ckeditor5-core/theme/icons/heading2.svg","webpack://CKEDITOR/../ckeditor5-core/theme/icons/heading3.svg","webpack://CKEDITOR/../ckeditor5-core/theme/icons/heading4.svg","webpack://CKEDITOR/../ckeditor5-core/theme/icons/heading5.svg","webpack://CKEDITOR/../ckeditor5-core/theme/icons/heading6.svg","webpack://CKEDITOR/../ckeditor5-core/theme/icons/horizontalline.svg","webpack://CKEDITOR/../ckeditor5-core/theme/icons/html.svg","webpack://CKEDITOR/../ckeditor5-core/theme/icons/indent.svg","webpack://CKEDITOR/../ckeditor5-core/theme/icons/outdent.svg","webpack://CKEDITOR/../ckeditor5-core/theme/icons/table.svg","webpack://CKEDITOR/../ckeditor5-ui/theme/components/icon/icon.css?00c8","webpack://CKEDITOR/../ckeditor5-ui/src/icon/iconview.ts","webpack://CKEDITOR/../ckeditor5-ui/src/button/buttonlabelview.ts","webpack://CKEDITOR/../ckeditor5-ui/theme/components/button/button.css?de94","webpack://CKEDITOR/../ckeditor5-ui/src/button/buttonview.ts","webpack://CKEDITOR/../ckeditor5-ui/theme/components/formheader/formheader.css?322e","webpack://CKEDITOR/../ckeditor5-ui/src/formheader/formheaderview.ts","webpack://CKEDITOR/../ckeditor5-ui/src/focuscycler.ts","webpack://CKEDITOR/../ckeditor5-ui/src/bindings/draggableviewmixin.ts","webpack://CKEDITOR/../ckeditor5-ui/theme/components/dialog/dialogactions.css?7a94","webpack://CKEDITOR/../ckeditor5-ui/src/dialog/dialogactionsview.ts","webpack://CKEDITOR/../ckeditor5-ui/src/dialog/dialogcontentview.ts","webpack://CKEDITOR/../ckeditor5-ui/theme/components/dialog/dialog.css?43db","webpack://CKEDITOR/../ckeditor5-ui/src/dialog/dialogview.ts","webpack://CKEDITOR/../ckeditor5-ui/src/dialog/dialog.ts","webpack://CKEDITOR/../ckeditor5-ui/theme/components/menubar/menubarmenulistitembutton.css?9055","webpack://CKEDITOR/../ckeditor5-ui/src/menubar/menubarmenulistitembuttonview.ts","webpack://CKEDITOR/../ckeditor5-ui/theme/components/label/label.css?fd5a","webpack://CKEDITOR/../ckeditor5-ui/src/label/labelview.ts","webpack://CKEDITOR/../ckeditor5-ui/src/editorui/accessibilityhelp/accessibilityhelpcontentview.ts","webpack://CKEDITOR/../ckeditor5-ui/theme/icons/accessibility.svg","webpack://CKEDITOR/../ckeditor5-ui/theme/components/editorui/accessibilityhelp.css?ceb8","webpack://CKEDITOR/../ckeditor5-ui/src/editorui/accessibilityhelp/accessibilityhelp.ts","webpack://CKEDITOR/../ckeditor5-ui/src/editorui/bodycollection.ts","webpack://CKEDITOR/../ckeditor5-ui/theme/components/button/switchbutton.css?7bcd","webpack://CKEDITOR/../ckeditor5-ui/src/button/switchbuttonview.ts","webpack://CKEDITOR/../ckeditor5-ui/src/button/filedialogbuttonview.ts","webpack://CKEDITOR/../ckeditor5-ui/theme/icons/dropdown-arrow.svg","webpack://CKEDITOR/../ckeditor5-ui/theme/components/collapsible/collapsible.css?ca4e","webpack://CKEDITOR/../ckeditor5-ui/src/collapsible/collapsibleview.ts","webpack://CKEDITOR/../ckeditor5-ui/src/colorgrid/utils.ts","webpack://CKEDITOR/../ckeditor5-ui/src/colorgrid/colortileview.ts","webpack://CKEDITOR/../ckeditor5-ui/theme/icons/color-tile-check.svg","webpack://CKEDITOR/../ckeditor5-ui/theme/components/colorgrid/colorgrid.css?94cc","webpack://CKEDITOR/../ckeditor5-ui/src/colorgrid/colorgridview.ts","webpack://CKEDITOR/javascript/node_modules/color-parse/index.mjs","webpack://CKEDITOR/../ckeditor5-ui/src/colorpicker/utils.ts","webpack://CKEDITOR/../ckeditor5-ui/theme/components/labeledfield/labeledfieldview.css?dcc2","webpack://CKEDITOR/../ckeditor5-ui/src/labeledfield/labeledfieldview.ts","webpack://CKEDITOR/../ckeditor5-ui/src/input/inputbase.ts","webpack://CKEDITOR/../ckeditor5-ui/theme/components/input/input.css?d15d","webpack://CKEDITOR/../ckeditor5-ui/src/input/inputview.ts","webpack://CKEDITOR/../ckeditor5-ui/src/inputtext/inputtextview.ts","webpack://CKEDITOR/../ckeditor5-ui/src/inputnumber/inputnumberview.ts","webpack://CKEDITOR/../ckeditor5-ui/theme/components/textarea/textarea.css?02c9","webpack://CKEDITOR/../ckeditor5-ui/src/dropdown/dropdownpanelview.ts","webpack://CKEDITOR/../ckeditor5-ui/theme/components/dropdown/dropdown.css?a927","webpack://CKEDITOR/../ckeditor5-ui/src/dropdown/dropdownview.ts","webpack://CKEDITOR/../ckeditor5-ui/src/dropdown/button/dropdownbuttonview.ts","webpack://CKEDITOR/../ckeditor5-ui/src/toolbar/toolbarseparatorview.ts","webpack://CKEDITOR/../ckeditor5-ui/src/toolbar/toolbarlinebreakview.ts","webpack://CKEDITOR/../ckeditor5-ui/src/toolbar/normalizetoolbarconfig.ts","webpack://CKEDITOR/../ckeditor5-ui/theme/components/toolbar/toolbar.css?10d7","webpack://CKEDITOR/../ckeditor5-ui/src/toolbar/toolbarview.ts","webpack://CKEDITOR/../ckeditor5-ui/src/bindings/preventdefault.ts","webpack://CKEDITOR/../ckeditor5-ui/src/list/listitemview.ts","webpack://CKEDITOR/../ckeditor5-ui/src/list/listseparatorview.ts","webpack://CKEDITOR/../ckeditor5-ui/src/list/listitemgroupview.ts","webpack://CKEDITOR/../ckeditor5-ui/theme/components/list/list.css?fdbc","webpack://CKEDITOR/../ckeditor5-ui/src/list/listview.ts","webpack://CKEDITOR/../ckeditor5-ui/theme/components/dropdown/splitbutton.css?a37f","webpack://CKEDITOR/../ckeditor5-ui/src/dropdown/button/splitbuttonview.ts","webpack://CKEDITOR/../ckeditor5-ui/theme/components/dropdown/toolbardropdown.css?31da","webpack://CKEDITOR/../ckeditor5-ui/theme/components/dropdown/listdropdown.css?ae60","webpack://CKEDITOR/../ckeditor5-ui/src/dropdown/utils.ts","webpack://CKEDITOR/../ckeditor5-ui/src/labeledfield/utils.ts","webpack://CKEDITOR/javascript/node_modules/vanilla-colorful/lib/utils/math.js","webpack://CKEDITOR/javascript/node_modules/vanilla-colorful/lib/utils/convert.js","webpack://CKEDITOR/javascript/node_modules/vanilla-colorful/lib/utils/compare.js","webpack://CKEDITOR/javascript/node_modules/vanilla-colorful/lib/utils/dom.js","webpack://CKEDITOR/javascript/node_modules/vanilla-colorful/lib/components/slider.js","webpack://CKEDITOR/javascript/node_modules/vanilla-colorful/lib/components/hue.js","webpack://CKEDITOR/javascript/node_modules/vanilla-colorful/lib/components/saturation.js","webpack://CKEDITOR/javascript/node_modules/vanilla-colorful/lib/styles/color-picker.js","webpack://CKEDITOR/javascript/node_modules/vanilla-colorful/lib/components/color-picker.js","webpack://CKEDITOR/javascript/node_modules/vanilla-colorful/lib/styles/hue.js","webpack://CKEDITOR/javascript/node_modules/vanilla-colorful/lib/styles/saturation.js","webpack://CKEDITOR/javascript/node_modules/vanilla-colorful/lib/entrypoints/hex.js","webpack://CKEDITOR/../ckeditor5-ui/theme/components/colorpicker/colorpicker.css?2b84","webpack://CKEDITOR/../ckeditor5-ui/src/colorpicker/colorpickerview.ts","webpack://CKEDITOR/../ckeditor5-ui/src/colorselector/documentcolorcollection.ts","webpack://CKEDITOR/../ckeditor5-ui/src/colorselector/colorgridsfragmentview.ts","webpack://CKEDITOR/../ckeditor5-ui/src/colorselector/colorpickerfragmentview.ts","webpack://CKEDITOR/../ckeditor5-ui/theme/components/colorselector/colorselector.css?c433","webpack://CKEDITOR/../ckeditor5-ui/src/colorselector/colorselectorview.ts","webpack://CKEDITOR/../ckeditor5-ui/src/componentfactory.ts","webpack://CKEDITOR/../ckeditor5-ui/theme/components/panel/balloonpanel.css?69dc","webpack://CKEDITOR/../ckeditor5-ui/src/panel/balloon/balloonpanelview.ts","webpack://CKEDITOR/../ckeditor5-ui/theme/components/tooltip/tooltip.css?c7bf","webpack://CKEDITOR/../ckeditor5-ui/src/tooltipmanager.ts","webpack://CKEDITOR/javascript/node_modules/lodash-es/throttle.js","webpack://CKEDITOR/../ckeditor5-ui/src/editorui/poweredby.ts","webpack://CKEDITOR/../ckeditor5-utils/src/verifylicense.ts","webpack://CKEDITOR/../ckeditor5-ui/theme/icons/project-logo.svg","webpack://CKEDITOR/../ckeditor5-ui/theme/components/arialiveannouncer/arialiveannouncer.css?47e8","webpack://CKEDITOR/../ckeditor5-ui/src/arialiveannouncer.ts","webpack://CKEDITOR/../ckeditor5-ui/src/editorui/editorui.ts","webpack://CKEDITOR/../ckeditor5-ui/theme/components/editorui/editorui.css?e51b","webpack://CKEDITOR/../ckeditor5-ui/src/editorui/editoruiview.ts","webpack://CKEDITOR/../ckeditor5-ui/src/editorui/boxed/boxededitoruiview.ts","webpack://CKEDITOR/../ckeditor5-ui/src/editableui/editableuiview.ts","webpack://CKEDITOR/../ckeditor5-ui/src/editableui/inline/inlineeditableuiview.ts","webpack://CKEDITOR/../ckeditor5-ui/src/model.ts","webpack://CKEDITOR/../ckeditor5-ui/theme/components/panel/balloonrotator.css?580a","webpack://CKEDITOR/../ckeditor5-ui/theme/components/panel/fakepanel.css?9740","webpack://CKEDITOR/../ckeditor5-ui/src/panel/balloon/contextualballoon.ts","webpack://CKEDITOR/../ckeditor5-ui/theme/components/panel/stickypanel.css?4553","webpack://CKEDITOR/../ckeditor5-ui/src/panel/sticky/stickypanelview.ts","webpack://CKEDITOR/javascript/node_modules/lodash-es/escapeRegExp.js","webpack://CKEDITOR/../ckeditor5-ui/theme/components/search/search.css?93f3","webpack://CKEDITOR/../ckeditor5-ui/theme/components/autocomplete/autocomplete.css?b060","webpack://CKEDITOR/javascript/node_modules/lodash-es/_basePropertyOf.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_escapeHtmlChar.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/escape.js","webpack://CKEDITOR/../ckeditor5-ui/theme/components/highlightedtext/highlightedtext.css?b1c1","webpack://CKEDITOR/../ckeditor5-ui/theme/components/spinner/spinner.css?ff66","webpack://CKEDITOR/../ckeditor5-ui/theme/components/toolbar/blocktoolbar.css?edd0","webpack://CKEDITOR/../ckeditor5-ui/theme/components/menubar/menubarmenubutton.css?2b09","webpack://CKEDITOR/../ckeditor5-ui/src/menubar/menubarmenubuttonview.ts","webpack://CKEDITOR/../ckeditor5-ui/theme/components/menubar/menubarmenulistitem.css?12e6","webpack://CKEDITOR/../ckeditor5-ui/src/menubar/menubarmenulistitemview.ts","webpack://CKEDITOR/../ckeditor5-ui/src/menubar/utils.ts","webpack://CKEDITOR/../ckeditor5-ui/theme/components/menubar/menubarmenupanel.css?7820","webpack://CKEDITOR/../ckeditor5-ui/src/menubar/menubarmenupanelview.ts","webpack://CKEDITOR/../ckeditor5-ui/theme/components/menubar/menubarmenu.css?44ed","webpack://CKEDITOR/../ckeditor5-ui/src/menubar/menubarmenuview.ts","webpack://CKEDITOR/../ckeditor5-ui/src/menubar/menubarmenulistview.ts","webpack://CKEDITOR/../ckeditor5-ui/src/menubar/menubarmenulistitemfiledialogbuttonview.ts","webpack://CKEDITOR/../ckeditor5-ui/theme/components/menubar/menubar.css?d889","webpack://CKEDITOR/../ckeditor5-ui/src/menubar/menubarview.ts","webpack://CKEDITOR/../ckeditor5-editor-classic/src/classiceditorui.ts","webpack://CKEDITOR/../ckeditor5-editor-classic/theme/classiceditor.css?1fa4","webpack://CKEDITOR/../ckeditor5-editor-classic/src/classiceditoruiview.ts","webpack://CKEDITOR/../ckeditor5-watchdog/src/watchdog.ts","webpack://CKEDITOR/../ckeditor5-watchdog/src/utils/getsubnodes.ts","webpack://CKEDITOR/../ckeditor5-watchdog/src/utils/areconnectedthroughproperties.ts","webpack://CKEDITOR/../ckeditor5-watchdog/src/editorwatchdog.ts","webpack://CKEDITOR/../ckeditor5-watchdog/src/contextwatchdog.ts","webpack://CKEDITOR/../ckeditor5-editor-classic/src/classiceditor.ts","webpack://CKEDITOR/../ckeditor5-editor-inline/src/inlineeditorui.ts","webpack://CKEDITOR/../ckeditor5-editor-inline/src/inlineeditoruiview.ts","webpack://CKEDITOR/../ckeditor5-editor-inline/src/inlineeditor.ts","webpack://CKEDITOR/../ckeditor5-core/src/editor/utils/securesourceelement.ts","webpack://CKEDITOR/../ckeditor5-alignment/src/utils.ts","webpack://CKEDITOR/../ckeditor5-alignment/src/alignmentcommand.ts","webpack://CKEDITOR/../ckeditor5-alignment/src/alignmentediting.ts","webpack://CKEDITOR/../ckeditor5-alignment/src/alignmentui.ts","webpack://CKEDITOR/../ckeditor5-typing/src/utils/changebuffer.ts","webpack://CKEDITOR/../ckeditor5-typing/src/inserttextcommand.ts","webpack://CKEDITOR/../ckeditor5-typing/src/inserttextobserver.ts","webpack://CKEDITOR/../ckeditor5-typing/src/input.ts","webpack://CKEDITOR/../ckeditor5-typing/src/deletecommand.ts","webpack://CKEDITOR/../ckeditor5-typing/src/deleteobserver.ts","webpack://CKEDITOR/../ckeditor5-typing/src/delete.ts","webpack://CKEDITOR/../ckeditor5-typing/src/typing.ts","webpack://CKEDITOR/../ckeditor5-typing/src/textwatcher.ts","webpack://CKEDITOR/../ckeditor5-typing/src/utils/getlasttextline.ts","webpack://CKEDITOR/../ckeditor5-typing/src/texttransformation.ts","webpack://CKEDITOR/../ckeditor5-autoformat/src/blockautoformatediting.ts","webpack://CKEDITOR/../ckeditor5-autoformat/src/inlineautoformatediting.ts","webpack://CKEDITOR/../ckeditor5-autoformat/src/autoformat.ts","webpack://CKEDITOR/../ckeditor5-basic-styles/src/attributecommand.ts","webpack://CKEDITOR/../ckeditor5-basic-styles/src/bold/boldediting.ts","webpack://CKEDITOR/../ckeditor5-basic-styles/src/utils.ts","webpack://CKEDITOR/../ckeditor5-basic-styles/src/bold/boldui.ts","webpack://CKEDITOR/../ckeditor5-basic-styles/theme/code.css?985e","webpack://CKEDITOR/../ckeditor5-basic-styles/src/italic/italicediting.ts","webpack://CKEDITOR/../ckeditor5-basic-styles/theme/icons/italic.svg","webpack://CKEDITOR/../ckeditor5-basic-styles/src/italic/italicui.ts","webpack://CKEDITOR/../ckeditor5-basic-styles/src/strikethrough/strikethroughediting.ts","webpack://CKEDITOR/../ckeditor5-basic-styles/theme/icons/strikethrough.svg","webpack://CKEDITOR/../ckeditor5-basic-styles/src/strikethrough/strikethroughui.ts","webpack://CKEDITOR/../ckeditor5-basic-styles/src/subscript/subscriptediting.ts","webpack://CKEDITOR/../ckeditor5-basic-styles/theme/icons/subscript.svg","webpack://CKEDITOR/../ckeditor5-basic-styles/src/subscript/subscriptui.ts","webpack://CKEDITOR/../ckeditor5-basic-styles/src/superscript/superscriptediting.ts","webpack://CKEDITOR/../ckeditor5-basic-styles/theme/icons/superscript.svg","webpack://CKEDITOR/../ckeditor5-basic-styles/src/superscript/superscriptui.ts","webpack://CKEDITOR/../ckeditor5-basic-styles/src/underline/underlineediting.ts","webpack://CKEDITOR/../ckeditor5-basic-styles/theme/icons/underline.svg","webpack://CKEDITOR/../ckeditor5-basic-styles/src/underline/underlineui.ts","webpack://CKEDITOR/../ckeditor5-enter/src/utils.ts","webpack://CKEDITOR/../ckeditor5-enter/src/entercommand.ts","webpack://CKEDITOR/../ckeditor5-enter/src/enterobserver.ts","webpack://CKEDITOR/../ckeditor5-enter/src/enter.ts","webpack://CKEDITOR/../ckeditor5-enter/src/shiftentercommand.ts","webpack://CKEDITOR/../ckeditor5-enter/src/shiftenter.ts","webpack://CKEDITOR/../ckeditor5-block-quote/src/blockquotecommand.ts","webpack://CKEDITOR/../ckeditor5-block-quote/src/blockquoteediting.ts","webpack://CKEDITOR/../ckeditor5-block-quote/theme/blockquote.css?5a6d","webpack://CKEDITOR/../ckeditor5-block-quote/src/blockquoteui.ts","webpack://CKEDITOR/../ckeditor5-cloud-services/src/token/token.ts","webpack://CKEDITOR/../ckeditor5-cloud-services/src/uploadgateway/fileuploader.ts","webpack://CKEDITOR/../ckeditor5-cloud-services/src/uploadgateway/uploadgateway.ts","webpack://CKEDITOR/../ckeditor5-cloud-services/src/cloudservicescore.ts","webpack://CKEDITOR/../ckeditor5-clipboard/src/clipboardobserver.ts","webpack://CKEDITOR/../ckeditor5-clipboard/src/utils/viewtoplaintext.ts","webpack://CKEDITOR/javascript/node_modules/lodash-es/_baseForOwn.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_baseIsMatch.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_isStrictComparable.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_getMatchData.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_matchesStrictComparable.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_baseMatches.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_baseHasIn.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_hasPath.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/hasIn.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_baseMatchesProperty.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_baseProperty.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_basePropertyDeep.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/property.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_baseIteratee.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/mapValues.js","webpack://CKEDITOR/../ckeditor5-clipboard/src/clipboardmarkersutils.ts","webpack://CKEDITOR/../ckeditor5-clipboard/src/clipboardpipeline.ts","webpack://CKEDITOR/../ckeditor5-clipboard/src/utils/normalizeclipboarddata.ts","webpack://CKEDITOR/../ckeditor5-clipboard/src/utils/plaintexttohtml.ts","webpack://CKEDITOR/../ckeditor5-widget/src/highlightstack.ts","webpack://CKEDITOR/../ckeditor5-widget/theme/icons/drag-handle.svg","webpack://CKEDITOR/../ckeditor5-widget/src/utils.ts","webpack://CKEDITOR/../ckeditor5-widget/src/widgettypearound/utils.ts","webpack://CKEDITOR/../ckeditor5-widget/theme/widgettypearound.css?6f95","webpack://CKEDITOR/../ckeditor5-widget/src/widgettypearound/widgettypearound.ts","webpack://CKEDITOR/../ckeditor5-widget/theme/icons/return-arrow.svg","webpack://CKEDITOR/../ckeditor5-widget/src/verticalnavigation.ts","webpack://CKEDITOR/../ckeditor5-widget/theme/widget.css?85b1","webpack://CKEDITOR/../ckeditor5-widget/src/widget.ts","webpack://CKEDITOR/../ckeditor5-widget/src/widgettoolbarrepository.ts","webpack://CKEDITOR/../ckeditor5-widget/src/widgetresize/resizerstate.ts","webpack://CKEDITOR/../ckeditor5-widget/src/widgetresize/sizeview.ts","webpack://CKEDITOR/../ckeditor5-widget/src/widgetresize/resizer.ts","webpack://CKEDITOR/../ckeditor5-widget/theme/widgetresize.css?8599","webpack://CKEDITOR/../ckeditor5-widget/src/widgetresize.ts","webpack://CKEDITOR/../ckeditor5-clipboard/src/lineview.ts","webpack://CKEDITOR/../ckeditor5-clipboard/src/dragdroptarget.ts","webpack://CKEDITOR/../ckeditor5-clipboard/src/dragdropblocktoolbar.ts","webpack://CKEDITOR/../ckeditor5-clipboard/theme/clipboard.css?ab7a","webpack://CKEDITOR/../ckeditor5-clipboard/src/dragdrop.ts","webpack://CKEDITOR/../ckeditor5-clipboard/src/pasteplaintext.ts","webpack://CKEDITOR/../ckeditor5-clipboard/src/clipboard.ts","webpack://CKEDITOR/../ckeditor5-select-all/src/selectallcommand.ts","webpack://CKEDITOR/../ckeditor5-select-all/src/selectallediting.ts","webpack://CKEDITOR/../ckeditor5-select-all/src/selectallui.ts","webpack://CKEDITOR/../ckeditor5-select-all/theme/icons/select-all.svg","webpack://CKEDITOR/../ckeditor5-select-all/src/selectall.ts","webpack://CKEDITOR/../ckeditor5-undo/src/basecommand.ts","webpack://CKEDITOR/../ckeditor5-undo/src/undocommand.ts","webpack://CKEDITOR/../ckeditor5-undo/src/redocommand.ts","webpack://CKEDITOR/../ckeditor5-undo/src/undoediting.ts","webpack://CKEDITOR/../ckeditor5-undo/src/undoui.ts","webpack://CKEDITOR/../ckeditor5-undo/src/undo.ts","webpack://CKEDITOR/../ckeditor5-font/src/fontcommand.ts","webpack://CKEDITOR/../ckeditor5-font/src/utils.ts","webpack://CKEDITOR/../ckeditor5-font/src/fontfamily/fontfamilycommand.ts","webpack://CKEDITOR/../ckeditor5-font/src/fontfamily/utils.ts","webpack://CKEDITOR/../ckeditor5-font/src/fontfamily/fontfamilyediting.ts","webpack://CKEDITOR/../ckeditor5-font/theme/icons/font-family.svg","webpack://CKEDITOR/../ckeditor5-font/src/fontfamily/fontfamilyui.ts","webpack://CKEDITOR/../ckeditor5-font/src/fontsize/fontsizecommand.ts","webpack://CKEDITOR/../ckeditor5-font/src/fontsize/utils.ts","webpack://CKEDITOR/../ckeditor5-font/src/fontsize/fontsizeediting.ts","webpack://CKEDITOR/../ckeditor5-font/theme/fontsize.css?2aea","webpack://CKEDITOR/../ckeditor5-font/theme/icons/font-size.svg","webpack://CKEDITOR/../ckeditor5-font/src/fontsize/fontsizeui.ts","webpack://CKEDITOR/../ckeditor5-font/src/fontcolor/fontcolorcommand.ts","webpack://CKEDITOR/../ckeditor5-font/src/fontcolor/fontcolorediting.ts","webpack://CKEDITOR/../ckeditor5-font/src/ui/colorui.ts","webpack://CKEDITOR/../ckeditor5-font/src/fontcolor/fontcolorui.ts","webpack://CKEDITOR/../ckeditor5-font/theme/icons/font-color.svg","webpack://CKEDITOR/../ckeditor5-font/src/fontbackgroundcolor/fontbackgroundcolorcommand.ts","webpack://CKEDITOR/../ckeditor5-font/src/fontbackgroundcolor/fontbackgroundcolorediting.ts","webpack://CKEDITOR/../ckeditor5-font/src/fontbackgroundcolor/fontbackgroundcolorui.ts","webpack://CKEDITOR/../ckeditor5-font/theme/icons/font-background.svg","webpack://CKEDITOR/../ckeditor5-paragraph/src/paragraphcommand.ts","webpack://CKEDITOR/../ckeditor5-paragraph/src/insertparagraphcommand.ts","webpack://CKEDITOR/../ckeditor5-paragraph/src/paragraph.ts","webpack://CKEDITOR/../ckeditor5-heading/src/headingcommand.ts","webpack://CKEDITOR/../ckeditor5-heading/src/headingediting.ts","webpack://CKEDITOR/../ckeditor5-heading/theme/heading.css?c486","webpack://CKEDITOR/../ckeditor5-heading/src/headingui.ts","webpack://CKEDITOR/../ckeditor5-heading/src/utils.ts","webpack://CKEDITOR/../ckeditor5-horizontal-line/src/horizontallinecommand.ts","webpack://CKEDITOR/../ckeditor5-horizontal-line/theme/horizontalline.css?12f5","webpack://CKEDITOR/../ckeditor5-horizontal-line/src/horizontallineediting.ts","webpack://CKEDITOR/../ckeditor5-horizontal-line/src/horizontallineui.ts","webpack://CKEDITOR/../ckeditor5-image/src/image/utils.ts","webpack://CKEDITOR/../ckeditor5-image/src/imageutils.ts","webpack://CKEDITOR/../ckeditor5-image/src/autoimage.ts","webpack://CKEDITOR/../ckeditor5-image/src/imagetextalternative/imagetextalternativecommand.ts","webpack://CKEDITOR/../ckeditor5-image/src/imagetextalternative/imagetextalternativeediting.ts","webpack://CKEDITOR/../ckeditor5-image/theme/textalternativeform.css?1540","webpack://CKEDITOR/../ckeditor5-ui/theme/components/responsive-form/responsiveform.css?643e","webpack://CKEDITOR/../ckeditor5-image/src/imagetextalternative/ui/textalternativeformview.ts","webpack://CKEDITOR/../ckeditor5-image/src/image/ui/utils.ts","webpack://CKEDITOR/../ckeditor5-image/src/imagetextalternative/imagetextalternativeui.ts","webpack://CKEDITOR/../ckeditor5-image/src/imagetextalternative.ts","webpack://CKEDITOR/../ckeditor5-image/src/image/converters.ts","webpack://CKEDITOR/../ckeditor5-image/src/image/imageloadobserver.ts","webpack://CKEDITOR/../ckeditor5-image/src/image/insertimagecommand.ts","webpack://CKEDITOR/../ckeditor5-image/src/image/replaceimagesourcecommand.ts","webpack://CKEDITOR/../ckeditor5-image/src/image/imageediting.ts","webpack://CKEDITOR/../ckeditor5-image/src/imagesizeattributes.ts","webpack://CKEDITOR/../ckeditor5-image/src/image/imagetypecommand.ts","webpack://CKEDITOR/../ckeditor5-image/theme/imageplaceholder.css?421f","webpack://CKEDITOR/../ckeditor5-image/src/image/imageplaceholder.ts","webpack://CKEDITOR/../ckeditor5-image/src/image/imageblockediting.ts","webpack://CKEDITOR/../ckeditor5-image/theme/imageinsert.css?2858","webpack://CKEDITOR/../ckeditor5-image/src/imageinsert/ui/imageinsertformview.ts","webpack://CKEDITOR/../ckeditor5-image/src/imageinsert/imageinsertui.ts","webpack://CKEDITOR/../ckeditor5-image/theme/image.css?c23e","webpack://CKEDITOR/../ckeditor5-image/src/imageblock.ts","webpack://CKEDITOR/../ckeditor5-image/src/image/imageinlineediting.ts","webpack://CKEDITOR/../ckeditor5-image/src/imageinline.ts","webpack://CKEDITOR/../ckeditor5-image/src/imagecaption/imagecaptionutils.ts","webpack://CKEDITOR/../ckeditor5-image/src/imagecaption/toggleimagecaptioncommand.ts","webpack://CKEDITOR/../ckeditor5-image/src/imagecaption/imagecaptionediting.ts","webpack://CKEDITOR/../ckeditor5-image/src/imagecaption/imagecaptionui.ts","webpack://CKEDITOR/../ckeditor5-image/theme/imagecaption.css?fbd1","webpack://CKEDITOR/../ckeditor5-image/theme/imageuploadprogress.css?3fdd","webpack://CKEDITOR/../ckeditor5-image/theme/imageuploadicon.css?e799","webpack://CKEDITOR/../ckeditor5-image/theme/imageuploadloader.css?4493","webpack://CKEDITOR/javascript/node_modules/lodash-es/_baseEach.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_createBaseEach.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_baseMap.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/map.js","webpack://CKEDITOR/../ckeditor5-image/src/imageresize/resizeimagecommand.ts","webpack://CKEDITOR/../ckeditor5-image/src/imageresize/imageresizeediting.ts","webpack://CKEDITOR/../ckeditor5-image/src/imageresize/imageresizebuttons.ts","webpack://CKEDITOR/../ckeditor5-image/src/imageresize/imageresizehandles.ts","webpack://CKEDITOR/../ckeditor5-image/src/imageresize/utils/tryparsedimensionwithunit.ts","webpack://CKEDITOR/../ckeditor5-image/src/imageresize/utils/getselectedimageeditornodes.ts","webpack://CKEDITOR/../ckeditor5-image/theme/imagecustomresizeform.css?0862","webpack://CKEDITOR/../ckeditor5-image/src/imageresize/ui/imagecustomresizeformview.ts","webpack://CKEDITOR/../ckeditor5-image/src/imageresize/imagecustomresizeui.ts","webpack://CKEDITOR/../ckeditor5-image/src/imageresize/utils/getselectedimagewidthinunits.ts","webpack://CKEDITOR/../ckeditor5-image/src/imageresize/utils/getselectedimagepossibleresizerange.ts","webpack://CKEDITOR/../ckeditor5-image/theme/imageresize.css?f537","webpack://CKEDITOR/../ckeditor5-image/src/imagestyle/imagestylecommand.ts","webpack://CKEDITOR/../ckeditor5-image/src/imagestyle/utils.ts","webpack://CKEDITOR/../ckeditor5-image/src/imagestyle/converters.ts","webpack://CKEDITOR/../ckeditor5-image/src/imagestyle/imagestyleediting.ts","webpack://CKEDITOR/../ckeditor5-image/theme/imagestyle.css?bc8e","webpack://CKEDITOR/../ckeditor5-image/src/imagestyle/imagestyleui.ts","webpack://CKEDITOR/../ckeditor5-image/src/imagetoolbar.ts","webpack://CKEDITOR/../ckeditor5-indent/src/indentediting.ts","webpack://CKEDITOR/../ckeditor5-indent/src/indentui.ts","webpack://CKEDITOR/../ckeditor5-list/src/list/utils/listwalker.ts","webpack://CKEDITOR/../ckeditor5-list/src/list/utils/model.ts","webpack://CKEDITOR/../ckeditor5-list/src/list/listindentcommand.ts","webpack://CKEDITOR/../ckeditor5-list/src/list/listcommand.ts","webpack://CKEDITOR/../ckeditor5-list/src/list/listmergecommand.ts","webpack://CKEDITOR/../ckeditor5-list/src/list/listsplitcommand.ts","webpack://CKEDITOR/../ckeditor5-list/src/list/listutils.ts","webpack://CKEDITOR/../ckeditor5-list/src/list/utils/view.ts","webpack://CKEDITOR/../ckeditor5-list/src/list/utils/postfixers.ts","webpack://CKEDITOR/../ckeditor5-list/src/list/converters.ts","webpack://CKEDITOR/../ckeditor5-list/theme/documentlist.css?2655","webpack://CKEDITOR/../ckeditor5-list/theme/list.css?89de","webpack://CKEDITOR/../ckeditor5-list/src/list/listediting.ts","webpack://CKEDITOR/../ckeditor5-list/src/list/utils.ts","webpack://CKEDITOR/../ckeditor5-list/src/list/listui.ts","webpack://CKEDITOR/../ckeditor5-list/src/list.ts","webpack://CKEDITOR/../ckeditor5-list/src/listproperties/liststartcommand.ts","webpack://CKEDITOR/../ckeditor5-list/src/listproperties/utils/style.ts","webpack://CKEDITOR/../ckeditor5-list/src/listproperties/liststylecommand.ts","webpack://CKEDITOR/../ckeditor5-list/src/listproperties/listreversedcommand.ts","webpack://CKEDITOR/../ckeditor5-list/src/listproperties/converters.ts","webpack://CKEDITOR/../ckeditor5-list/src/listproperties/listpropertiesutils.ts","webpack://CKEDITOR/../ckeditor5-list/src/listproperties/listpropertiesediting.ts","webpack://CKEDITOR/../ckeditor5-list/theme/listproperties.css?617f","webpack://CKEDITOR/../ckeditor5-list/src/listproperties/ui/listpropertiesview.ts","webpack://CKEDITOR/../ckeditor5-list/theme/liststyles.css?4e4d","webpack://CKEDITOR/../ckeditor5-list/src/listproperties/listpropertiesui.ts","webpack://CKEDITOR/../ckeditor5-list/theme/icons/liststyledisc.svg","webpack://CKEDITOR/../ckeditor5-list/theme/icons/liststylecircle.svg","webpack://CKEDITOR/../ckeditor5-list/theme/icons/liststylesquare.svg","webpack://CKEDITOR/../ckeditor5-list/theme/icons/liststyledecimal.svg","webpack://CKEDITOR/../ckeditor5-list/theme/icons/liststyledecimalleadingzero.svg","webpack://CKEDITOR/../ckeditor5-list/theme/icons/liststylelowerroman.svg","webpack://CKEDITOR/../ckeditor5-list/theme/icons/liststyleupperroman.svg","webpack://CKEDITOR/../ckeditor5-list/theme/icons/liststylelowerlatin.svg","webpack://CKEDITOR/../ckeditor5-list/theme/icons/liststyleupperlatin.svg","webpack://CKEDITOR/../ckeditor5-list/src/listproperties.ts","webpack://CKEDITOR/../ckeditor5-list/theme/todolist.css?b9a9","webpack://CKEDITOR/../ckeditor5-special-characters/src/ui/specialcharactersnavigationview.ts","webpack://CKEDITOR/../ckeditor5-special-characters/theme/charactergrid.css?417c","webpack://CKEDITOR/../ckeditor5-special-characters/src/ui/charactergridview.ts","webpack://CKEDITOR/../ckeditor5-special-characters/theme/characterinfo.css?3c91","webpack://CKEDITOR/../ckeditor5-special-characters/src/ui/characterinfoview.ts","webpack://CKEDITOR/../ckeditor5-special-characters/src/ui/specialcharactersview.ts","webpack://CKEDITOR/../ckeditor5-special-characters/theme/specialcharacters.css?82bf","webpack://CKEDITOR/../ckeditor5-special-characters/src/specialcharacters.ts","webpack://CKEDITOR/../ckeditor5-special-characters/src/specialcharactersarrows.ts","webpack://CKEDITOR/../ckeditor5-special-characters/src/specialcharacterstext.ts","webpack://CKEDITOR/../ckeditor5-special-characters/src/specialcharactersmathematical.ts","webpack://CKEDITOR/../ckeditor5-special-characters/src/specialcharacterslatin.ts","webpack://CKEDITOR/../ckeditor5-special-characters/src/specialcharacterscurrency.ts","webpack://CKEDITOR/../ckeditor5-table/src/utils/common.ts","webpack://CKEDITOR/../ckeditor5-table/src/converters/upcasttable.ts","webpack://CKEDITOR/../ckeditor5-table/src/tablewalker.ts","webpack://CKEDITOR/../ckeditor5-table/src/converters/downcast.ts","webpack://CKEDITOR/../ckeditor5-table/src/commands/inserttablecommand.ts","webpack://CKEDITOR/../ckeditor5-table/src/commands/insertrowcommand.ts","webpack://CKEDITOR/../ckeditor5-table/src/commands/insertcolumncommand.ts","webpack://CKEDITOR/../ckeditor5-table/src/commands/splitcellcommand.ts","webpack://CKEDITOR/../ckeditor5-table/src/utils/structure.ts","webpack://CKEDITOR/../ckeditor5-table/src/commands/mergecellcommand.ts","webpack://CKEDITOR/../ckeditor5-table/src/commands/removerowcommand.ts","webpack://CKEDITOR/../ckeditor5-table/src/commands/removecolumncommand.ts","webpack://CKEDITOR/../ckeditor5-table/src/commands/setheaderrowcommand.ts","webpack://CKEDITOR/../ckeditor5-table/src/commands/setheadercolumncommand.ts","webpack://CKEDITOR/../ckeditor5-table/src/tablecolumnresize/utils.ts","webpack://CKEDITOR/../ckeditor5-table/src/tableutils.ts","webpack://CKEDITOR/../ckeditor5-table/src/commands/mergecellscommand.ts","webpack://CKEDITOR/../ckeditor5-table/src/commands/selectrowcommand.ts","webpack://CKEDITOR/../ckeditor5-table/src/commands/selectcolumncommand.ts","webpack://CKEDITOR/../ckeditor5-table/src/converters/table-layout-post-fixer.ts","webpack://CKEDITOR/../ckeditor5-table/src/converters/table-cell-paragraph-post-fixer.ts","webpack://CKEDITOR/../ckeditor5-table/src/converters/table-cell-refresh-handler.ts","webpack://CKEDITOR/../ckeditor5-table/theme/tableediting.css?f65e","webpack://CKEDITOR/../ckeditor5-table/src/tableediting.ts","webpack://CKEDITOR/../ckeditor5-table/src/converters/table-headings-refresh-handler.ts","webpack://CKEDITOR/../ckeditor5-table/theme/inserttable.css?466f","webpack://CKEDITOR/../ckeditor5-table/src/ui/inserttableview.ts","webpack://CKEDITOR/../ckeditor5-table/src/tableui.ts","webpack://CKEDITOR/../ckeditor5-table/theme/icons/table-column.svg","webpack://CKEDITOR/../ckeditor5-table/theme/icons/table-row.svg","webpack://CKEDITOR/../ckeditor5-table/theme/icons/table-merge-cell.svg","webpack://CKEDITOR/../ckeditor5-table/theme/tableselection.css?ee02","webpack://CKEDITOR/../ckeditor5-table/src/tableselection.ts","webpack://CKEDITOR/../ckeditor5-table/src/tableclipboard.ts","webpack://CKEDITOR/../ckeditor5-table/src/tablekeyboard.ts","webpack://CKEDITOR/../ckeditor5-table/src/tablemouse/mouseeventsobserver.ts","webpack://CKEDITOR/../ckeditor5-table/src/tablemouse.ts","webpack://CKEDITOR/../ckeditor5-table/theme/table.css?fded","webpack://CKEDITOR/../ckeditor5-table/src/utils/ui/widget.ts","webpack://CKEDITOR/../ckeditor5-table/theme/colorinput.css?2edd","webpack://CKEDITOR/../ckeditor5-table/src/ui/colorinputview.ts","webpack://CKEDITOR/../ckeditor5-table/src/utils/ui/table-properties.ts","webpack://CKEDITOR/../ckeditor5-table/theme/formrow.css?813a","webpack://CKEDITOR/../ckeditor5-table/src/ui/formrowview.ts","webpack://CKEDITOR/../ckeditor5-table/theme/form.css?6b23","webpack://CKEDITOR/../ckeditor5-table/theme/tableform.css?6102","webpack://CKEDITOR/../ckeditor5-table/theme/tablecellproperties.css?e7e9","webpack://CKEDITOR/../ckeditor5-table/src/utils/ui/contextualballoon.ts","webpack://CKEDITOR/../ckeditor5-table/src/utils/table-properties.ts","webpack://CKEDITOR/../ckeditor5-table/src/converters/tableproperties.ts","webpack://CKEDITOR/../ckeditor5-table/src/tableproperties/commands/tablepropertycommand.ts","webpack://CKEDITOR/../ckeditor5-table/src/tableproperties/commands/tablebackgroundcolorcommand.ts","webpack://CKEDITOR/../ckeditor5-table/src/tableproperties/commands/tablebordercolorcommand.ts","webpack://CKEDITOR/../ckeditor5-table/src/tableproperties/commands/tableborderstylecommand.ts","webpack://CKEDITOR/../ckeditor5-table/src/tableproperties/commands/tableborderwidthcommand.ts","webpack://CKEDITOR/../ckeditor5-table/src/tableproperties/commands/tablewidthcommand.ts","webpack://CKEDITOR/../ckeditor5-table/src/tableproperties/commands/tableheightcommand.ts","webpack://CKEDITOR/../ckeditor5-table/src/tableproperties/commands/tablealignmentcommand.ts","webpack://CKEDITOR/../ckeditor5-table/src/tableproperties/tablepropertiesediting.ts","webpack://CKEDITOR/../ckeditor5-table/theme/tableproperties.css?fbdb","webpack://CKEDITOR/../ckeditor5-table/src/tableproperties/ui/tablepropertiesview.ts","webpack://CKEDITOR/../ckeditor5-table/theme/icons/table-properties.svg","webpack://CKEDITOR/../ckeditor5-table/src/tableproperties/tablepropertiesui.ts","webpack://CKEDITOR/../ckeditor5-table/theme/tablecaption.css?327b","webpack://CKEDITOR/../ckeditor5-table/theme/tablecolumnresize.css?00bf","webpack://CKEDITOR/./src/ckeditor.ts","webpack://CKEDITOR/../ckeditor5-alignment/src/alignment.ts","webpack://CKEDITOR/../ckeditor5-block-quote/src/blockquote.ts","webpack://CKEDITOR/../ckeditor5-basic-styles/src/bold.ts","webpack://CKEDITOR/../ckeditor5-cloud-services/src/cloudservices.ts","webpack://CKEDITOR/../ckeditor5-essentials/src/essentials.ts","webpack://CKEDITOR/../ckeditor5-font/src/fontbackgroundcolor.ts","webpack://CKEDITOR/../ckeditor5-font/src/fontcolor.ts","webpack://CKEDITOR/../ckeditor5-font/src/fontfamily.ts","webpack://CKEDITOR/../ckeditor5-font/src/fontsize.ts","webpack://CKEDITOR/../ckeditor5-heading/src/heading.ts","webpack://CKEDITOR/../ckeditor5-horizontal-line/src/horizontalline.ts","webpack://CKEDITOR/../ckeditor5-image/src/image.ts","webpack://CKEDITOR/../ckeditor5-image/src/imagecaption.ts","webpack://CKEDITOR/../ckeditor5-image/src/imageresize.ts","webpack://CKEDITOR/../ckeditor5-image/src/imagestyle.ts","webpack://CKEDITOR/../ckeditor5-indent/src/indent.ts","webpack://CKEDITOR/../ckeditor5-basic-styles/src/italic.ts","webpack://CKEDITOR/../ckeditor5-special-characters/theme/icons/specialcharacters.svg","webpack://CKEDITOR/../ckeditor5-special-characters/src/specialcharactersessentials.ts","webpack://CKEDITOR/../ckeditor5-basic-styles/src/strikethrough.ts","webpack://CKEDITOR/../ckeditor5-basic-styles/src/subscript.ts","webpack://CKEDITOR/../ckeditor5-basic-styles/src/superscript.ts","webpack://CKEDITOR/../ckeditor5-table/src/table.ts","webpack://CKEDITOR/../ckeditor5-table/src/tableproperties.ts","webpack://CKEDITOR/../ckeditor5-table/src/tabletoolbar.ts","webpack://CKEDITOR/../ckeditor5-basic-styles/src/underline.ts"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"CKEDITOR\"] = factory();\n\telse\n\t\troot[\"CKEDITOR\"] = factory();\n})(self, () => {\nreturn ","/* MIT license */\n/* eslint-disable no-mixed-operators */\nconst cssKeywords = require('color-name');\n\n// NOTE: conversions should only return primitive values (i.e. arrays, or\n// values that give correct `typeof` results).\n// do not use box values types (i.e. Number(), String(), etc.)\n\nconst reverseKeywords = {};\nfor (const key of Object.keys(cssKeywords)) {\n\treverseKeywords[cssKeywords[key]] = key;\n}\n\nconst convert = {\n\trgb: {channels: 3, labels: 'rgb'},\n\thsl: {channels: 3, labels: 'hsl'},\n\thsv: {channels: 3, labels: 'hsv'},\n\thwb: {channels: 3, labels: 'hwb'},\n\tcmyk: {channels: 4, labels: 'cmyk'},\n\txyz: {channels: 3, labels: 'xyz'},\n\tlab: {channels: 3, labels: 'lab'},\n\tlch: {channels: 3, labels: 'lch'},\n\thex: {channels: 1, labels: ['hex']},\n\tkeyword: {channels: 1, labels: ['keyword']},\n\tansi16: {channels: 1, labels: ['ansi16']},\n\tansi256: {channels: 1, labels: ['ansi256']},\n\thcg: {channels: 3, labels: ['h', 'c', 'g']},\n\tapple: {channels: 3, labels: ['r16', 'g16', 'b16']},\n\tgray: {channels: 1, labels: ['gray']}\n};\n\nmodule.exports = convert;\n\n// Hide .channels and .labels properties\nfor (const model of Object.keys(convert)) {\n\tif (!('channels' in convert[model])) {\n\t\tthrow new Error('missing channels property: ' + model);\n\t}\n\n\tif (!('labels' in convert[model])) {\n\t\tthrow new Error('missing channel labels property: ' + model);\n\t}\n\n\tif (convert[model].labels.length !== convert[model].channels) {\n\t\tthrow new Error('channel and label counts mismatch: ' + model);\n\t}\n\n\tconst {channels, labels} = convert[model];\n\tdelete convert[model].channels;\n\tdelete convert[model].labels;\n\tObject.defineProperty(convert[model], 'channels', {value: channels});\n\tObject.defineProperty(convert[model], 'labels', {value: labels});\n}\n\nconvert.rgb.hsl = function (rgb) {\n\tconst r = rgb[0] / 255;\n\tconst g = rgb[1] / 255;\n\tconst b = rgb[2] / 255;\n\tconst min = Math.min(r, g, b);\n\tconst max = Math.max(r, g, b);\n\tconst delta = max - min;\n\tlet h;\n\tlet s;\n\n\tif (max === min) {\n\t\th = 0;\n\t} else if (r === max) {\n\t\th = (g - b) / delta;\n\t} else if (g === max) {\n\t\th = 2 + (b - r) / delta;\n\t} else if (b === max) {\n\t\th = 4 + (r - g) / delta;\n\t}\n\n\th = Math.min(h * 60, 360);\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tconst l = (min + max) / 2;\n\n\tif (max === min) {\n\t\ts = 0;\n\t} else if (l <= 0.5) {\n\t\ts = delta / (max + min);\n\t} else {\n\t\ts = delta / (2 - max - min);\n\t}\n\n\treturn [h, s * 100, l * 100];\n};\n\nconvert.rgb.hsv = function (rgb) {\n\tlet rdif;\n\tlet gdif;\n\tlet bdif;\n\tlet h;\n\tlet s;\n\n\tconst r = rgb[0] / 255;\n\tconst g = rgb[1] / 255;\n\tconst b = rgb[2] / 255;\n\tconst v = Math.max(r, g, b);\n\tconst diff = v - Math.min(r, g, b);\n\tconst diffc = function (c) {\n\t\treturn (v - c) / 6 / diff + 1 / 2;\n\t};\n\n\tif (diff === 0) {\n\t\th = 0;\n\t\ts = 0;\n\t} else {\n\t\ts = diff / v;\n\t\trdif = diffc(r);\n\t\tgdif = diffc(g);\n\t\tbdif = diffc(b);\n\n\t\tif (r === v) {\n\t\t\th = bdif - gdif;\n\t\t} else if (g === v) {\n\t\t\th = (1 / 3) + rdif - bdif;\n\t\t} else if (b === v) {\n\t\t\th = (2 / 3) + gdif - rdif;\n\t\t}\n\n\t\tif (h < 0) {\n\t\t\th += 1;\n\t\t} else if (h > 1) {\n\t\t\th -= 1;\n\t\t}\n\t}\n\n\treturn [\n\t\th * 360,\n\t\ts * 100,\n\t\tv * 100\n\t];\n};\n\nconvert.rgb.hwb = function (rgb) {\n\tconst r = rgb[0];\n\tconst g = rgb[1];\n\tlet b = rgb[2];\n\tconst h = convert.rgb.hsl(rgb)[0];\n\tconst w = 1 / 255 * Math.min(r, Math.min(g, b));\n\n\tb = 1 - 1 / 255 * Math.max(r, Math.max(g, b));\n\n\treturn [h, w * 100, b * 100];\n};\n\nconvert.rgb.cmyk = function (rgb) {\n\tconst r = rgb[0] / 255;\n\tconst g = rgb[1] / 255;\n\tconst b = rgb[2] / 255;\n\n\tconst k = Math.min(1 - r, 1 - g, 1 - b);\n\tconst c = (1 - r - k) / (1 - k) || 0;\n\tconst m = (1 - g - k) / (1 - k) || 0;\n\tconst y = (1 - b - k) / (1 - k) || 0;\n\n\treturn [c * 100, m * 100, y * 100, k * 100];\n};\n\nfunction comparativeDistance(x, y) {\n\t/*\n\t\tSee https://en.m.wikipedia.org/wiki/Euclidean_distance#Squared_Euclidean_distance\n\t*/\n\treturn (\n\t\t((x[0] - y[0]) ** 2) +\n\t\t((x[1] - y[1]) ** 2) +\n\t\t((x[2] - y[2]) ** 2)\n\t);\n}\n\nconvert.rgb.keyword = function (rgb) {\n\tconst reversed = reverseKeywords[rgb];\n\tif (reversed) {\n\t\treturn reversed;\n\t}\n\n\tlet currentClosestDistance = Infinity;\n\tlet currentClosestKeyword;\n\n\tfor (const keyword of Object.keys(cssKeywords)) {\n\t\tconst value = cssKeywords[keyword];\n\n\t\t// Compute comparative distance\n\t\tconst distance = comparativeDistance(rgb, value);\n\n\t\t// Check if its less, if so set as closest\n\t\tif (distance < currentClosestDistance) {\n\t\t\tcurrentClosestDistance = distance;\n\t\t\tcurrentClosestKeyword = keyword;\n\t\t}\n\t}\n\n\treturn currentClosestKeyword;\n};\n\nconvert.keyword.rgb = function (keyword) {\n\treturn cssKeywords[keyword];\n};\n\nconvert.rgb.xyz = function (rgb) {\n\tlet r = rgb[0] / 255;\n\tlet g = rgb[1] / 255;\n\tlet b = rgb[2] / 255;\n\n\t// Assume sRGB\n\tr = r > 0.04045 ? (((r + 0.055) / 1.055) ** 2.4) : (r / 12.92);\n\tg = g > 0.04045 ? (((g + 0.055) / 1.055) ** 2.4) : (g / 12.92);\n\tb = b > 0.04045 ? (((b + 0.055) / 1.055) ** 2.4) : (b / 12.92);\n\n\tconst x = (r * 0.4124) + (g * 0.3576) + (b * 0.1805);\n\tconst y = (r * 0.2126) + (g * 0.7152) + (b * 0.0722);\n\tconst z = (r * 0.0193) + (g * 0.1192) + (b * 0.9505);\n\n\treturn [x * 100, y * 100, z * 100];\n};\n\nconvert.rgb.lab = function (rgb) {\n\tconst xyz = convert.rgb.xyz(rgb);\n\tlet x = xyz[0];\n\tlet y = xyz[1];\n\tlet z = xyz[2];\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > 0.008856 ? (x ** (1 / 3)) : (7.787 * x) + (16 / 116);\n\ty = y > 0.008856 ? (y ** (1 / 3)) : (7.787 * y) + (16 / 116);\n\tz = z > 0.008856 ? (z ** (1 / 3)) : (7.787 * z) + (16 / 116);\n\n\tconst l = (116 * y) - 16;\n\tconst a = 500 * (x - y);\n\tconst b = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.hsl.rgb = function (hsl) {\n\tconst h = hsl[0] / 360;\n\tconst s = hsl[1] / 100;\n\tconst l = hsl[2] / 100;\n\tlet t2;\n\tlet t3;\n\tlet val;\n\n\tif (s === 0) {\n\t\tval = l * 255;\n\t\treturn [val, val, val];\n\t}\n\n\tif (l < 0.5) {\n\t\tt2 = l * (1 + s);\n\t} else {\n\t\tt2 = l + s - l * s;\n\t}\n\n\tconst t1 = 2 * l - t2;\n\n\tconst rgb = [0, 0, 0];\n\tfor (let i = 0; i < 3; i++) {\n\t\tt3 = h + 1 / 3 * -(i - 1);\n\t\tif (t3 < 0) {\n\t\t\tt3++;\n\t\t}\n\n\t\tif (t3 > 1) {\n\t\t\tt3--;\n\t\t}\n\n\t\tif (6 * t3 < 1) {\n\t\t\tval = t1 + (t2 - t1) * 6 * t3;\n\t\t} else if (2 * t3 < 1) {\n\t\t\tval = t2;\n\t\t} else if (3 * t3 < 2) {\n\t\t\tval = t1 + (t2 - t1) * (2 / 3 - t3) * 6;\n\t\t} else {\n\t\t\tval = t1;\n\t\t}\n\n\t\trgb[i] = val * 255;\n\t}\n\n\treturn rgb;\n};\n\nconvert.hsl.hsv = function (hsl) {\n\tconst h = hsl[0];\n\tlet s = hsl[1] / 100;\n\tlet l = hsl[2] / 100;\n\tlet smin = s;\n\tconst lmin = Math.max(l, 0.01);\n\n\tl *= 2;\n\ts *= (l <= 1) ? l : 2 - l;\n\tsmin *= lmin <= 1 ? lmin : 2 - lmin;\n\tconst v = (l + s) / 2;\n\tconst sv = l === 0 ? (2 * smin) / (lmin + smin) : (2 * s) / (l + s);\n\n\treturn [h, sv * 100, v * 100];\n};\n\nconvert.hsv.rgb = function (hsv) {\n\tconst h = hsv[0] / 60;\n\tconst s = hsv[1] / 100;\n\tlet v = hsv[2] / 100;\n\tconst hi = Math.floor(h) % 6;\n\n\tconst f = h - Math.floor(h);\n\tconst p = 255 * v * (1 - s);\n\tconst q = 255 * v * (1 - (s * f));\n\tconst t = 255 * v * (1 - (s * (1 - f)));\n\tv *= 255;\n\n\tswitch (hi) {\n\t\tcase 0:\n\t\t\treturn [v, t, p];\n\t\tcase 1:\n\t\t\treturn [q, v, p];\n\t\tcase 2:\n\t\t\treturn [p, v, t];\n\t\tcase 3:\n\t\t\treturn [p, q, v];\n\t\tcase 4:\n\t\t\treturn [t, p, v];\n\t\tcase 5:\n\t\t\treturn [v, p, q];\n\t}\n};\n\nconvert.hsv.hsl = function (hsv) {\n\tconst h = hsv[0];\n\tconst s = hsv[1] / 100;\n\tconst v = hsv[2] / 100;\n\tconst vmin = Math.max(v, 0.01);\n\tlet sl;\n\tlet l;\n\n\tl = (2 - s) * v;\n\tconst lmin = (2 - s) * vmin;\n\tsl = s * vmin;\n\tsl /= (lmin <= 1) ? lmin : 2 - lmin;\n\tsl = sl || 0;\n\tl /= 2;\n\n\treturn [h, sl * 100, l * 100];\n};\n\n// http://dev.w3.org/csswg/css-color/#hwb-to-rgb\nconvert.hwb.rgb = function (hwb) {\n\tconst h = hwb[0] / 360;\n\tlet wh = hwb[1] / 100;\n\tlet bl = hwb[2] / 100;\n\tconst ratio = wh + bl;\n\tlet f;\n\n\t// Wh + bl cant be > 1\n\tif (ratio > 1) {\n\t\twh /= ratio;\n\t\tbl /= ratio;\n\t}\n\n\tconst i = Math.floor(6 * h);\n\tconst v = 1 - bl;\n\tf = 6 * h - i;\n\n\tif ((i & 0x01) !== 0) {\n\t\tf = 1 - f;\n\t}\n\n\tconst n = wh + f * (v - wh); // Linear interpolation\n\n\tlet r;\n\tlet g;\n\tlet b;\n\t/* eslint-disable max-statements-per-line,no-multi-spaces */\n\tswitch (i) {\n\t\tdefault:\n\t\tcase 6:\n\t\tcase 0: r = v; g = n; b = wh; break;\n\t\tcase 1: r = n; g = v; b = wh; break;\n\t\tcase 2: r = wh; g = v; b = n; break;\n\t\tcase 3: r = wh; g = n; b = v; break;\n\t\tcase 4: r = n; g = wh; b = v; break;\n\t\tcase 5: r = v; g = wh; b = n; break;\n\t}\n\t/* eslint-enable max-statements-per-line,no-multi-spaces */\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.cmyk.rgb = function (cmyk) {\n\tconst c = cmyk[0] / 100;\n\tconst m = cmyk[1] / 100;\n\tconst y = cmyk[2] / 100;\n\tconst k = cmyk[3] / 100;\n\n\tconst r = 1 - Math.min(1, c * (1 - k) + k);\n\tconst g = 1 - Math.min(1, m * (1 - k) + k);\n\tconst b = 1 - Math.min(1, y * (1 - k) + k);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.xyz.rgb = function (xyz) {\n\tconst x = xyz[0] / 100;\n\tconst y = xyz[1] / 100;\n\tconst z = xyz[2] / 100;\n\tlet r;\n\tlet g;\n\tlet b;\n\n\tr = (x * 3.2406) + (y * -1.5372) + (z * -0.4986);\n\tg = (x * -0.9689) + (y * 1.8758) + (z * 0.0415);\n\tb = (x * 0.0557) + (y * -0.2040) + (z * 1.0570);\n\n\t// Assume sRGB\n\tr = r > 0.0031308\n\t\t? ((1.055 * (r ** (1.0 / 2.4))) - 0.055)\n\t\t: r * 12.92;\n\n\tg = g > 0.0031308\n\t\t? ((1.055 * (g ** (1.0 / 2.4))) - 0.055)\n\t\t: g * 12.92;\n\n\tb = b > 0.0031308\n\t\t? ((1.055 * (b ** (1.0 / 2.4))) - 0.055)\n\t\t: b * 12.92;\n\n\tr = Math.min(Math.max(0, r), 1);\n\tg = Math.min(Math.max(0, g), 1);\n\tb = Math.min(Math.max(0, b), 1);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.xyz.lab = function (xyz) {\n\tlet x = xyz[0];\n\tlet y = xyz[1];\n\tlet z = xyz[2];\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > 0.008856 ? (x ** (1 / 3)) : (7.787 * x) + (16 / 116);\n\ty = y > 0.008856 ? (y ** (1 / 3)) : (7.787 * y) + (16 / 116);\n\tz = z > 0.008856 ? (z ** (1 / 3)) : (7.787 * z) + (16 / 116);\n\n\tconst l = (116 * y) - 16;\n\tconst a = 500 * (x - y);\n\tconst b = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.lab.xyz = function (lab) {\n\tconst l = lab[0];\n\tconst a = lab[1];\n\tconst b = lab[2];\n\tlet x;\n\tlet y;\n\tlet z;\n\n\ty = (l + 16) / 116;\n\tx = a / 500 + y;\n\tz = y - b / 200;\n\n\tconst y2 = y ** 3;\n\tconst x2 = x ** 3;\n\tconst z2 = z ** 3;\n\ty = y2 > 0.008856 ? y2 : (y - 16 / 116) / 7.787;\n\tx = x2 > 0.008856 ? x2 : (x - 16 / 116) / 7.787;\n\tz = z2 > 0.008856 ? z2 : (z - 16 / 116) / 7.787;\n\n\tx *= 95.047;\n\ty *= 100;\n\tz *= 108.883;\n\n\treturn [x, y, z];\n};\n\nconvert.lab.lch = function (lab) {\n\tconst l = lab[0];\n\tconst a = lab[1];\n\tconst b = lab[2];\n\tlet h;\n\n\tconst hr = Math.atan2(b, a);\n\th = hr * 360 / 2 / Math.PI;\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tconst c = Math.sqrt(a * a + b * b);\n\n\treturn [l, c, h];\n};\n\nconvert.lch.lab = function (lch) {\n\tconst l = lch[0];\n\tconst c = lch[1];\n\tconst h = lch[2];\n\n\tconst hr = h / 360 * 2 * Math.PI;\n\tconst a = c * Math.cos(hr);\n\tconst b = c * Math.sin(hr);\n\n\treturn [l, a, b];\n};\n\nconvert.rgb.ansi16 = function (args, saturation = null) {\n\tconst [r, g, b] = args;\n\tlet value = saturation === null ? convert.rgb.hsv(args)[2] : saturation; // Hsv -> ansi16 optimization\n\n\tvalue = Math.round(value / 50);\n\n\tif (value === 0) {\n\t\treturn 30;\n\t}\n\n\tlet ansi = 30\n\t\t+ ((Math.round(b / 255) << 2)\n\t\t| (Math.round(g / 255) << 1)\n\t\t| Math.round(r / 255));\n\n\tif (value === 2) {\n\t\tansi += 60;\n\t}\n\n\treturn ansi;\n};\n\nconvert.hsv.ansi16 = function (args) {\n\t// Optimization here; we already know the value and don't need to get\n\t// it converted for us.\n\treturn convert.rgb.ansi16(convert.hsv.rgb(args), args[2]);\n};\n\nconvert.rgb.ansi256 = function (args) {\n\tconst r = args[0];\n\tconst g = args[1];\n\tconst b = args[2];\n\n\t// We use the extended greyscale palette here, with the exception of\n\t// black and white. normal palette only has 4 greyscale shades.\n\tif (r === g && g === b) {\n\t\tif (r < 8) {\n\t\t\treturn 16;\n\t\t}\n\n\t\tif (r > 248) {\n\t\t\treturn 231;\n\t\t}\n\n\t\treturn Math.round(((r - 8) / 247) * 24) + 232;\n\t}\n\n\tconst ansi = 16\n\t\t+ (36 * Math.round(r / 255 * 5))\n\t\t+ (6 * Math.round(g / 255 * 5))\n\t\t+ Math.round(b / 255 * 5);\n\n\treturn ansi;\n};\n\nconvert.ansi16.rgb = function (args) {\n\tlet color = args % 10;\n\n\t// Handle greyscale\n\tif (color === 0 || color === 7) {\n\t\tif (args > 50) {\n\t\t\tcolor += 3.5;\n\t\t}\n\n\t\tcolor = color / 10.5 * 255;\n\n\t\treturn [color, color, color];\n\t}\n\n\tconst mult = (~~(args > 50) + 1) * 0.5;\n\tconst r = ((color & 1) * mult) * 255;\n\tconst g = (((color >> 1) & 1) * mult) * 255;\n\tconst b = (((color >> 2) & 1) * mult) * 255;\n\n\treturn [r, g, b];\n};\n\nconvert.ansi256.rgb = function (args) {\n\t// Handle greyscale\n\tif (args >= 232) {\n\t\tconst c = (args - 232) * 10 + 8;\n\t\treturn [c, c, c];\n\t}\n\n\targs -= 16;\n\n\tlet rem;\n\tconst r = Math.floor(args / 36) / 5 * 255;\n\tconst g = Math.floor((rem = args % 36) / 6) / 5 * 255;\n\tconst b = (rem % 6) / 5 * 255;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hex = function (args) {\n\tconst integer = ((Math.round(args[0]) & 0xFF) << 16)\n\t\t+ ((Math.round(args[1]) & 0xFF) << 8)\n\t\t+ (Math.round(args[2]) & 0xFF);\n\n\tconst string = integer.toString(16).toUpperCase();\n\treturn '000000'.substring(string.length) + string;\n};\n\nconvert.hex.rgb = function (args) {\n\tconst match = args.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);\n\tif (!match) {\n\t\treturn [0, 0, 0];\n\t}\n\n\tlet colorString = match[0];\n\n\tif (match[0].length === 3) {\n\t\tcolorString = colorString.split('').map(char => {\n\t\t\treturn char + char;\n\t\t}).join('');\n\t}\n\n\tconst integer = parseInt(colorString, 16);\n\tconst r = (integer >> 16) & 0xFF;\n\tconst g = (integer >> 8) & 0xFF;\n\tconst b = integer & 0xFF;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hcg = function (rgb) {\n\tconst r = rgb[0] / 255;\n\tconst g = rgb[1] / 255;\n\tconst b = rgb[2] / 255;\n\tconst max = Math.max(Math.max(r, g), b);\n\tconst min = Math.min(Math.min(r, g), b);\n\tconst chroma = (max - min);\n\tlet grayscale;\n\tlet hue;\n\n\tif (chroma < 1) {\n\t\tgrayscale = min / (1 - chroma);\n\t} else {\n\t\tgrayscale = 0;\n\t}\n\n\tif (chroma <= 0) {\n\t\thue = 0;\n\t} else\n\tif (max === r) {\n\t\thue = ((g - b) / chroma) % 6;\n\t} else\n\tif (max === g) {\n\t\thue = 2 + (b - r) / chroma;\n\t} else {\n\t\thue = 4 + (r - g) / chroma;\n\t}\n\n\thue /= 6;\n\thue %= 1;\n\n\treturn [hue * 360, chroma * 100, grayscale * 100];\n};\n\nconvert.hsl.hcg = function (hsl) {\n\tconst s = hsl[1] / 100;\n\tconst l = hsl[2] / 100;\n\n\tconst c = l < 0.5 ? (2.0 * s * l) : (2.0 * s * (1.0 - l));\n\n\tlet f = 0;\n\tif (c < 1.0) {\n\t\tf = (l - 0.5 * c) / (1.0 - c);\n\t}\n\n\treturn [hsl[0], c * 100, f * 100];\n};\n\nconvert.hsv.hcg = function (hsv) {\n\tconst s = hsv[1] / 100;\n\tconst v = hsv[2] / 100;\n\n\tconst c = s * v;\n\tlet f = 0;\n\n\tif (c < 1.0) {\n\t\tf = (v - c) / (1 - c);\n\t}\n\n\treturn [hsv[0], c * 100, f * 100];\n};\n\nconvert.hcg.rgb = function (hcg) {\n\tconst h = hcg[0] / 360;\n\tconst c = hcg[1] / 100;\n\tconst g = hcg[2] / 100;\n\n\tif (c === 0.0) {\n\t\treturn [g * 255, g * 255, g * 255];\n\t}\n\n\tconst pure = [0, 0, 0];\n\tconst hi = (h % 1) * 6;\n\tconst v = hi % 1;\n\tconst w = 1 - v;\n\tlet mg = 0;\n\n\t/* eslint-disable max-statements-per-line */\n\tswitch (Math.floor(hi)) {\n\t\tcase 0:\n\t\t\tpure[0] = 1; pure[1] = v; pure[2] = 0; break;\n\t\tcase 1:\n\t\t\tpure[0] = w; pure[1] = 1; pure[2] = 0; break;\n\t\tcase 2:\n\t\t\tpure[0] = 0; pure[1] = 1; pure[2] = v; break;\n\t\tcase 3:\n\t\t\tpure[0] = 0; pure[1] = w; pure[2] = 1; break;\n\t\tcase 4:\n\t\t\tpure[0] = v; pure[1] = 0; pure[2] = 1; break;\n\t\tdefault:\n\t\t\tpure[0] = 1; pure[1] = 0; pure[2] = w;\n\t}\n\t/* eslint-enable max-statements-per-line */\n\n\tmg = (1.0 - c) * g;\n\n\treturn [\n\t\t(c * pure[0] + mg) * 255,\n\t\t(c * pure[1] + mg) * 255,\n\t\t(c * pure[2] + mg) * 255\n\t];\n};\n\nconvert.hcg.hsv = function (hcg) {\n\tconst c = hcg[1] / 100;\n\tconst g = hcg[2] / 100;\n\n\tconst v = c + g * (1.0 - c);\n\tlet f = 0;\n\n\tif (v > 0.0) {\n\t\tf = c / v;\n\t}\n\n\treturn [hcg[0], f * 100, v * 100];\n};\n\nconvert.hcg.hsl = function (hcg) {\n\tconst c = hcg[1] / 100;\n\tconst g = hcg[2] / 100;\n\n\tconst l = g * (1.0 - c) + 0.5 * c;\n\tlet s = 0;\n\n\tif (l > 0.0 && l < 0.5) {\n\t\ts = c / (2 * l);\n\t} else\n\tif (l >= 0.5 && l < 1.0) {\n\t\ts = c / (2 * (1 - l));\n\t}\n\n\treturn [hcg[0], s * 100, l * 100];\n};\n\nconvert.hcg.hwb = function (hcg) {\n\tconst c = hcg[1] / 100;\n\tconst g = hcg[2] / 100;\n\tconst v = c + g * (1.0 - c);\n\treturn [hcg[0], (v - c) * 100, (1 - v) * 100];\n};\n\nconvert.hwb.hcg = function (hwb) {\n\tconst w = hwb[1] / 100;\n\tconst b = hwb[2] / 100;\n\tconst v = 1 - b;\n\tconst c = v - w;\n\tlet g = 0;\n\n\tif (c < 1) {\n\t\tg = (v - c) / (1 - c);\n\t}\n\n\treturn [hwb[0], c * 100, g * 100];\n};\n\nconvert.apple.rgb = function (apple) {\n\treturn [(apple[0] / 65535) * 255, (apple[1] / 65535) * 255, (apple[2] / 65535) * 255];\n};\n\nconvert.rgb.apple = function (rgb) {\n\treturn [(rgb[0] / 255) * 65535, (rgb[1] / 255) * 65535, (rgb[2] / 255) * 65535];\n};\n\nconvert.gray.rgb = function (args) {\n\treturn [args[0] / 100 * 255, args[0] / 100 * 255, args[0] / 100 * 255];\n};\n\nconvert.gray.hsl = function (args) {\n\treturn [0, 0, args[0]];\n};\n\nconvert.gray.hsv = convert.gray.hsl;\n\nconvert.gray.hwb = function (gray) {\n\treturn [0, 100, gray[0]];\n};\n\nconvert.gray.cmyk = function (gray) {\n\treturn [0, 0, 0, gray[0]];\n};\n\nconvert.gray.lab = function (gray) {\n\treturn [gray[0], 0, 0];\n};\n\nconvert.gray.hex = function (gray) {\n\tconst val = Math.round(gray[0] / 100 * 255) & 0xFF;\n\tconst integer = (val << 16) + (val << 8) + val;\n\n\tconst string = integer.toString(16).toUpperCase();\n\treturn '000000'.substring(string.length) + string;\n};\n\nconvert.rgb.gray = function (rgb) {\n\tconst val = (rgb[0] + rgb[1] + rgb[2]) / 3;\n\treturn [val / 255 * 100];\n};\n","const conversions = require('./conversions');\nconst route = require('./route');\n\nconst convert = {};\n\nconst models = Object.keys(conversions);\n\nfunction wrapRaw(fn) {\n\tconst wrappedFn = function (...args) {\n\t\tconst arg0 = args[0];\n\t\tif (arg0 === undefined || arg0 === null) {\n\t\t\treturn arg0;\n\t\t}\n\n\t\tif (arg0.length > 1) {\n\t\t\targs = arg0;\n\t\t}\n\n\t\treturn fn(args);\n\t};\n\n\t// Preserve .conversion property if there is one\n\tif ('conversion' in fn) {\n\t\twrappedFn.conversion = fn.conversion;\n\t}\n\n\treturn wrappedFn;\n}\n\nfunction wrapRounded(fn) {\n\tconst wrappedFn = function (...args) {\n\t\tconst arg0 = args[0];\n\n\t\tif (arg0 === undefined || arg0 === null) {\n\t\t\treturn arg0;\n\t\t}\n\n\t\tif (arg0.length > 1) {\n\t\t\targs = arg0;\n\t\t}\n\n\t\tconst result = fn(args);\n\n\t\t// We're assuming the result is an array here.\n\t\t// see notice in conversions.js; don't use box types\n\t\t// in conversion functions.\n\t\tif (typeof result === 'object') {\n\t\t\tfor (let len = result.length, i = 0; i < len; i++) {\n\t\t\t\tresult[i] = Math.round(result[i]);\n\t\t\t}\n\t\t}\n\n\t\treturn result;\n\t};\n\n\t// Preserve .conversion property if there is one\n\tif ('conversion' in fn) {\n\t\twrappedFn.conversion = fn.conversion;\n\t}\n\n\treturn wrappedFn;\n}\n\nmodels.forEach(fromModel => {\n\tconvert[fromModel] = {};\n\n\tObject.defineProperty(convert[fromModel], 'channels', {value: conversions[fromModel].channels});\n\tObject.defineProperty(convert[fromModel], 'labels', {value: conversions[fromModel].labels});\n\n\tconst routes = route(fromModel);\n\tconst routeModels = Object.keys(routes);\n\n\trouteModels.forEach(toModel => {\n\t\tconst fn = routes[toModel];\n\n\t\tconvert[fromModel][toModel] = wrapRounded(fn);\n\t\tconvert[fromModel][toModel].raw = wrapRaw(fn);\n\t});\n});\n\nmodule.exports = convert;\n","const conversions = require('./conversions');\n\n/*\n\tThis function routes a model to all other models.\n\n\tall functions that are routed have a property `.conversion` attached\n\tto the returned synthetic function. This property is an array\n\tof strings, each with the steps in between the 'from' and 'to'\n\tcolor models (inclusive).\n\n\tconversions that are not possible simply are not included.\n*/\n\nfunction buildGraph() {\n\tconst graph = {};\n\t// https://jsperf.com/object-keys-vs-for-in-with-closure/3\n\tconst models = Object.keys(conversions);\n\n\tfor (let len = models.length, i = 0; i < len; i++) {\n\t\tgraph[models[i]] = {\n\t\t\t// http://jsperf.com/1-vs-infinity\n\t\t\t// micro-opt, but this is simple.\n\t\t\tdistance: -1,\n\t\t\tparent: null\n\t\t};\n\t}\n\n\treturn graph;\n}\n\n// https://en.wikipedia.org/wiki/Breadth-first_search\nfunction deriveBFS(fromModel) {\n\tconst graph = buildGraph();\n\tconst queue = [fromModel]; // Unshift -> queue -> pop\n\n\tgraph[fromModel].distance = 0;\n\n\twhile (queue.length) {\n\t\tconst current = queue.pop();\n\t\tconst adjacents = Object.keys(conversions[current]);\n\n\t\tfor (let len = adjacents.length, i = 0; i < len; i++) {\n\t\t\tconst adjacent = adjacents[i];\n\t\t\tconst node = graph[adjacent];\n\n\t\t\tif (node.distance === -1) {\n\t\t\t\tnode.distance = graph[current].distance + 1;\n\t\t\t\tnode.parent = current;\n\t\t\t\tqueue.unshift(adjacent);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn graph;\n}\n\nfunction link(from, to) {\n\treturn function (args) {\n\t\treturn to(from(args));\n\t};\n}\n\nfunction wrapConversion(toModel, graph) {\n\tconst path = [graph[toModel].parent, toModel];\n\tlet fn = conversions[graph[toModel].parent][toModel];\n\n\tlet cur = graph[toModel].parent;\n\twhile (graph[cur].parent) {\n\t\tpath.unshift(graph[cur].parent);\n\t\tfn = link(conversions[graph[cur].parent][cur], fn);\n\t\tcur = graph[cur].parent;\n\t}\n\n\tfn.conversion = path;\n\treturn fn;\n}\n\nmodule.exports = function (fromModel) {\n\tconst graph = deriveBFS(fromModel);\n\tconst conversion = {};\n\n\tconst models = Object.keys(graph);\n\tfor (let len = models.length, i = 0; i < len; i++) {\n\t\tconst toModel = models[i];\n\t\tconst node = graph[toModel];\n\n\t\tif (node.parent === null) {\n\t\t\t// No possible conversion, or this node is the source model.\n\t\t\tcontinue;\n\t\t}\n\n\t\tconversion[toModel] = wrapConversion(toModel, graph);\n\t}\n\n\treturn conversion;\n};\n\n","'use strict'\r\n\r\nmodule.exports = {\r\n\t\"aliceblue\": [240, 248, 255],\r\n\t\"antiquewhite\": [250, 235, 215],\r\n\t\"aqua\": [0, 255, 255],\r\n\t\"aquamarine\": [127, 255, 212],\r\n\t\"azure\": [240, 255, 255],\r\n\t\"beige\": [245, 245, 220],\r\n\t\"bisque\": [255, 228, 196],\r\n\t\"black\": [0, 0, 0],\r\n\t\"blanchedalmond\": [255, 235, 205],\r\n\t\"blue\": [0, 0, 255],\r\n\t\"blueviolet\": [138, 43, 226],\r\n\t\"brown\": [165, 42, 42],\r\n\t\"burlywood\": [222, 184, 135],\r\n\t\"cadetblue\": [95, 158, 160],\r\n\t\"chartreuse\": [127, 255, 0],\r\n\t\"chocolate\": [210, 105, 30],\r\n\t\"coral\": [255, 127, 80],\r\n\t\"cornflowerblue\": [100, 149, 237],\r\n\t\"cornsilk\": [255, 248, 220],\r\n\t\"crimson\": [220, 20, 60],\r\n\t\"cyan\": [0, 255, 255],\r\n\t\"darkblue\": [0, 0, 139],\r\n\t\"darkcyan\": [0, 139, 139],\r\n\t\"darkgoldenrod\": [184, 134, 11],\r\n\t\"darkgray\": [169, 169, 169],\r\n\t\"darkgreen\": [0, 100, 0],\r\n\t\"darkgrey\": [169, 169, 169],\r\n\t\"darkkhaki\": [189, 183, 107],\r\n\t\"darkmagenta\": [139, 0, 139],\r\n\t\"darkolivegreen\": [85, 107, 47],\r\n\t\"darkorange\": [255, 140, 0],\r\n\t\"darkorchid\": [153, 50, 204],\r\n\t\"darkred\": [139, 0, 0],\r\n\t\"darksalmon\": [233, 150, 122],\r\n\t\"darkseagreen\": [143, 188, 143],\r\n\t\"darkslateblue\": [72, 61, 139],\r\n\t\"darkslategray\": [47, 79, 79],\r\n\t\"darkslategrey\": [47, 79, 79],\r\n\t\"darkturquoise\": [0, 206, 209],\r\n\t\"darkviolet\": [148, 0, 211],\r\n\t\"deeppink\": [255, 20, 147],\r\n\t\"deepskyblue\": [0, 191, 255],\r\n\t\"dimgray\": [105, 105, 105],\r\n\t\"dimgrey\": [105, 105, 105],\r\n\t\"dodgerblue\": [30, 144, 255],\r\n\t\"firebrick\": [178, 34, 34],\r\n\t\"floralwhite\": [255, 250, 240],\r\n\t\"forestgreen\": [34, 139, 34],\r\n\t\"fuchsia\": [255, 0, 255],\r\n\t\"gainsboro\": [220, 220, 220],\r\n\t\"ghostwhite\": [248, 248, 255],\r\n\t\"gold\": [255, 215, 0],\r\n\t\"goldenrod\": [218, 165, 32],\r\n\t\"gray\": [128, 128, 128],\r\n\t\"green\": [0, 128, 0],\r\n\t\"greenyellow\": [173, 255, 47],\r\n\t\"grey\": [128, 128, 128],\r\n\t\"honeydew\": [240, 255, 240],\r\n\t\"hotpink\": [255, 105, 180],\r\n\t\"indianred\": [205, 92, 92],\r\n\t\"indigo\": [75, 0, 130],\r\n\t\"ivory\": [255, 255, 240],\r\n\t\"khaki\": [240, 230, 140],\r\n\t\"lavender\": [230, 230, 250],\r\n\t\"lavenderblush\": [255, 240, 245],\r\n\t\"lawngreen\": [124, 252, 0],\r\n\t\"lemonchiffon\": [255, 250, 205],\r\n\t\"lightblue\": [173, 216, 230],\r\n\t\"lightcoral\": [240, 128, 128],\r\n\t\"lightcyan\": [224, 255, 255],\r\n\t\"lightgoldenrodyellow\": [250, 250, 210],\r\n\t\"lightgray\": [211, 211, 211],\r\n\t\"lightgreen\": [144, 238, 144],\r\n\t\"lightgrey\": [211, 211, 211],\r\n\t\"lightpink\": [255, 182, 193],\r\n\t\"lightsalmon\": [255, 160, 122],\r\n\t\"lightseagreen\": [32, 178, 170],\r\n\t\"lightskyblue\": [135, 206, 250],\r\n\t\"lightslategray\": [119, 136, 153],\r\n\t\"lightslategrey\": [119, 136, 153],\r\n\t\"lightsteelblue\": [176, 196, 222],\r\n\t\"lightyellow\": [255, 255, 224],\r\n\t\"lime\": [0, 255, 0],\r\n\t\"limegreen\": [50, 205, 50],\r\n\t\"linen\": [250, 240, 230],\r\n\t\"magenta\": [255, 0, 255],\r\n\t\"maroon\": [128, 0, 0],\r\n\t\"mediumaquamarine\": [102, 205, 170],\r\n\t\"mediumblue\": [0, 0, 205],\r\n\t\"mediumorchid\": [186, 85, 211],\r\n\t\"mediumpurple\": [147, 112, 219],\r\n\t\"mediumseagreen\": [60, 179, 113],\r\n\t\"mediumslateblue\": [123, 104, 238],\r\n\t\"mediumspringgreen\": [0, 250, 154],\r\n\t\"mediumturquoise\": [72, 209, 204],\r\n\t\"mediumvioletred\": [199, 21, 133],\r\n\t\"midnightblue\": [25, 25, 112],\r\n\t\"mintcream\": [245, 255, 250],\r\n\t\"mistyrose\": [255, 228, 225],\r\n\t\"moccasin\": [255, 228, 181],\r\n\t\"navajowhite\": [255, 222, 173],\r\n\t\"navy\": [0, 0, 128],\r\n\t\"oldlace\": [253, 245, 230],\r\n\t\"olive\": [128, 128, 0],\r\n\t\"olivedrab\": [107, 142, 35],\r\n\t\"orange\": [255, 165, 0],\r\n\t\"orangered\": [255, 69, 0],\r\n\t\"orchid\": [218, 112, 214],\r\n\t\"palegoldenrod\": [238, 232, 170],\r\n\t\"palegreen\": [152, 251, 152],\r\n\t\"paleturquoise\": [175, 238, 238],\r\n\t\"palevioletred\": [219, 112, 147],\r\n\t\"papayawhip\": [255, 239, 213],\r\n\t\"peachpuff\": [255, 218, 185],\r\n\t\"peru\": [205, 133, 63],\r\n\t\"pink\": [255, 192, 203],\r\n\t\"plum\": [221, 160, 221],\r\n\t\"powderblue\": [176, 224, 230],\r\n\t\"purple\": [128, 0, 128],\r\n\t\"rebeccapurple\": [102, 51, 153],\r\n\t\"red\": [255, 0, 0],\r\n\t\"rosybrown\": [188, 143, 143],\r\n\t\"royalblue\": [65, 105, 225],\r\n\t\"saddlebrown\": [139, 69, 19],\r\n\t\"salmon\": [250, 128, 114],\r\n\t\"sandybrown\": [244, 164, 96],\r\n\t\"seagreen\": [46, 139, 87],\r\n\t\"seashell\": [255, 245, 238],\r\n\t\"sienna\": [160, 82, 45],\r\n\t\"silver\": [192, 192, 192],\r\n\t\"skyblue\": [135, 206, 235],\r\n\t\"slateblue\": [106, 90, 205],\r\n\t\"slategray\": [112, 128, 144],\r\n\t\"slategrey\": [112, 128, 144],\r\n\t\"snow\": [255, 250, 250],\r\n\t\"springgreen\": [0, 255, 127],\r\n\t\"steelblue\": [70, 130, 180],\r\n\t\"tan\": [210, 180, 140],\r\n\t\"teal\": [0, 128, 128],\r\n\t\"thistle\": [216, 191, 216],\r\n\t\"tomato\": [255, 99, 71],\r\n\t\"turquoise\": [64, 224, 208],\r\n\t\"violet\": [238, 130, 238],\r\n\t\"wheat\": [245, 222, 179],\r\n\t\"white\": [255, 255, 255],\r\n\t\"whitesmoke\": [245, 245, 245],\r\n\t\"yellow\": [255, 255, 0],\r\n\t\"yellowgreen\": [154, 205, 50]\r\n};\r\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck-content code{background-color:hsla(0,0%,78%,.3);border-radius:2px;padding:.15em}.ck.ck-editor__editable .ck-code_selected{background-color:hsla(0,0%,78%,.5)}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../ckeditor5-basic-styles/theme/code.css\"],\"names\":[],\"mappings\":\"AAKA,iBACC,kCAAuC,CAEvC,iBAAkB,CADlB,aAED,CAEA,0CACC,kCACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.ck-content code {\\n\\tbackground-color: hsla(0, 0%, 78%, 0.3);\\n\\tpadding: .15em;\\n\\tborder-radius: 2px;\\n}\\n\\n.ck.ck-editor__editable .ck-code_selected {\\n\\tbackground-color: hsla(0, 0%, 78%, 0.5);\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck-content blockquote{border-left:5px solid #ccc;font-style:italic;margin-left:0;margin-right:0;overflow:hidden;padding-left:1.5em;padding-right:1.5em}.ck-content[dir=rtl] blockquote{border-left:0;border-right:5px solid #ccc}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../ckeditor5-block-quote/theme/blockquote.css\"],\"names\":[],\"mappings\":\"AAKA,uBAWC,0BAAsC,CADtC,iBAAkB,CAFlB,aAAc,CACd,cAAe,CAPf,eAAgB,CAIhB,kBAAmB,CADnB,mBAOD,CAEA,gCACC,aAAc,CACd,2BACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.ck-content blockquote {\\n\\t/* See #12 */\\n\\toverflow: hidden;\\n\\n\\t/* https://github.com/ckeditor/ckeditor5-block-quote/issues/15 */\\n\\tpadding-right: 1.5em;\\n\\tpadding-left: 1.5em;\\n\\n\\tmargin-left: 0;\\n\\tmargin-right: 0;\\n\\tfont-style: italic;\\n\\tborder-left: solid 5px hsl(0, 0%, 80%);\\n}\\n\\n.ck-content[dir=\\\"rtl\\\"] blockquote {\\n\\tborder-left: 0;\\n\\tborder-right: solid 5px hsl(0, 0%, 80%);\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck.ck-editor__editable .ck.ck-clipboard-drop-target-position{display:inline;pointer-events:none;position:relative}.ck.ck-editor__editable .ck.ck-clipboard-drop-target-position span{position:absolute;width:0}.ck.ck-editor__editable .ck-widget:-webkit-drag>.ck-widget__selection-handle,.ck.ck-editor__editable .ck-widget:-webkit-drag>.ck-widget__type-around{display:none}.ck.ck-clipboard-drop-target-line{pointer-events:none;position:absolute}:root{--ck-clipboard-drop-target-dot-width:12px;--ck-clipboard-drop-target-dot-height:8px;--ck-clipboard-drop-target-color:var(--ck-color-focus-border)}.ck.ck-editor__editable .ck.ck-clipboard-drop-target-position span{background:var(--ck-clipboard-drop-target-color);border:1px solid var(--ck-clipboard-drop-target-color);bottom:calc(var(--ck-clipboard-drop-target-dot-height)*-.5);margin-left:-1px;top:calc(var(--ck-clipboard-drop-target-dot-height)*-.5)}.ck.ck-editor__editable .ck.ck-clipboard-drop-target-position span:after{border-color:var(--ck-clipboard-drop-target-color) transparent transparent transparent;border-style:solid;border-width:calc(var(--ck-clipboard-drop-target-dot-height)) calc(var(--ck-clipboard-drop-target-dot-width)*.5) 0 calc(var(--ck-clipboard-drop-target-dot-width)*.5);content:\\\"\\\";display:block;height:0;left:50%;position:absolute;top:calc(var(--ck-clipboard-drop-target-dot-height)*-.5);transform:translateX(-50%);width:0}.ck.ck-editor__editable .ck-widget.ck-clipboard-drop-target-range{outline:var(--ck-widget-outline-thickness) solid var(--ck-clipboard-drop-target-color)!important}.ck.ck-editor__editable .ck-widget:-webkit-drag{zoom:.6;outline:none!important}.ck.ck-clipboard-drop-target-line{background:var(--ck-clipboard-drop-target-color);border:1px solid var(--ck-clipboard-drop-target-color);height:0;margin-top:-1px}.ck.ck-clipboard-drop-target-line:before{border-style:solid;content:\\\"\\\";height:0;position:absolute;top:calc(var(--ck-clipboard-drop-target-dot-width)*-.5);width:0}[dir=ltr] .ck.ck-clipboard-drop-target-line:before{border-color:transparent transparent transparent var(--ck-clipboard-drop-target-color);border-width:calc(var(--ck-clipboard-drop-target-dot-width)*.5) 0 calc(var(--ck-clipboard-drop-target-dot-width)*.5) var(--ck-clipboard-drop-target-dot-height);left:-1px}[dir=rtl] .ck.ck-clipboard-drop-target-line:before{border-color:transparent var(--ck-clipboard-drop-target-color) transparent transparent;border-width:calc(var(--ck-clipboard-drop-target-dot-width)*.5) var(--ck-clipboard-drop-target-dot-height) calc(var(--ck-clipboard-drop-target-dot-width)*.5) 0;right:-1px}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../ckeditor5-clipboard/theme/clipboard.css\",\"webpack://./../ckeditor5-theme-lark/theme/ckeditor5-clipboard/clipboard.css\"],\"names\":[],\"mappings\":\"AASC,8DACC,cAAe,CAEf,mBAAoB,CADpB,iBAOD,CAJC,mEACC,iBAAkB,CAClB,OACD,CAWA,qJACC,YACD,CAIF,kCAEC,mBAAoB,CADpB,iBAED,CC9BA,MACC,yCAA0C,CAC1C,yCAA0C,CAC1C,6DACD,CAOE,mEAIC,gDAAiD,CADjD,sDAAuD,CAFvD,2DAA8D,CAI9D,gBAAiB,CAHjB,wDAqBD,CAfC,yEAWC,sFAAuF,CAEvF,kBAAmB,CADnB,qKAA0K,CAX1K,UAAW,CAIX,aAAc,CAFd,QAAS,CAIT,QAAS,CADT,iBAAkB,CAElB,wDAA2D,CAE3D,0BAA2B,CAR3B,OAYD,CAOF,kEACC,gGACD,CAKA,gDACC,OAAS,CACT,sBACD,CAGD,kCAGC,gDAAiD,CADjD,sDAAuD,CADvD,QAAS,CAGT,eAwBD,CAtBC,yCAMC,kBAAmB,CALnB,UAAW,CAIX,QAAS,CAHT,iBAAkB,CAClB,uDAA0D,CAC1D,OAiBD,CArBA,mDAYE,sFAAuF,CADvF,+JAAoK,CAFpK,SAYF,CArBA,mDAmBE,sFAAuF,CADvF,+JAAmK,CAFnK,UAKF\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.ck.ck-editor__editable {\\n\\t/*\\n\\t * Vertical drop target (in text).\\n\\t */\\n\\t& .ck.ck-clipboard-drop-target-position {\\n\\t\\tdisplay: inline;\\n\\t\\tposition: relative;\\n\\t\\tpointer-events: none;\\n\\n\\t\\t& span {\\n\\t\\t\\tposition: absolute;\\n\\t\\t\\twidth: 0;\\n\\t\\t}\\n\\t}\\n\\n\\t/*\\n\\t * Styles of the widget being dragged (its preview).\\n\\t */\\n\\t& .ck-widget:-webkit-drag {\\n\\t\\t& > .ck-widget__selection-handle {\\n\\t\\t\\tdisplay: none;\\n\\t\\t}\\n\\n\\t\\t& > .ck-widget__type-around {\\n\\t\\t\\tdisplay: none;\\n\\t\\t}\\n\\t}\\n}\\n\\n.ck.ck-clipboard-drop-target-line {\\n\\tposition: absolute;\\n\\tpointer-events: none;\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n@import \\\"@ckeditor/ckeditor5-ui/theme/mixins/_dir.css\\\";\\n\\n:root {\\n\\t--ck-clipboard-drop-target-dot-width: 12px;\\n\\t--ck-clipboard-drop-target-dot-height: 8px;\\n\\t--ck-clipboard-drop-target-color: var(--ck-color-focus-border);\\n}\\n\\n.ck.ck-editor__editable {\\n\\t/*\\n\\t * Vertical drop target (in text).\\n\\t */\\n\\t& .ck.ck-clipboard-drop-target-position {\\n\\t\\t& span {\\n\\t\\t\\tbottom: calc(-.5 * var(--ck-clipboard-drop-target-dot-height));\\n\\t\\t\\ttop: calc(-.5 * var(--ck-clipboard-drop-target-dot-height));\\n\\t\\t\\tborder: 1px solid var(--ck-clipboard-drop-target-color);\\n\\t\\t\\tbackground: var(--ck-clipboard-drop-target-color);\\n\\t\\t\\tmargin-left: -1px;\\n\\n\\t\\t\\t/* The triangle above the marker */\\n\\t\\t\\t&::after {\\n\\t\\t\\t\\tcontent: '';\\n\\t\\t\\t\\twidth: 0;\\n\\t\\t\\t\\theight: 0;\\n\\n\\t\\t\\t\\tdisplay: block;\\n\\t\\t\\t\\tposition: absolute;\\n\\t\\t\\t\\tleft: 50%;\\n\\t\\t\\t\\ttop: calc(-.5 * var(--ck-clipboard-drop-target-dot-height));\\n\\n\\t\\t\\t\\ttransform: translateX(-50%);\\n\\t\\t\\t\\tborder-color: var(--ck-clipboard-drop-target-color) transparent transparent transparent;\\n\\t\\t\\t\\tborder-width: calc(var(--ck-clipboard-drop-target-dot-height)) calc(.5 * var(--ck-clipboard-drop-target-dot-width)) 0 calc(.5 * var(--ck-clipboard-drop-target-dot-width));\\n\\t\\t\\t\\tborder-style: solid;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t/*\\n\\t * Styles of the widget that it a drop target.\\n\\t */\\n\\t& .ck-widget.ck-clipboard-drop-target-range {\\n\\t\\toutline: var(--ck-widget-outline-thickness) solid var(--ck-clipboard-drop-target-color) !important;\\n\\t}\\n\\n\\t/*\\n\\t * Styles of the widget being dragged (its preview).\\n\\t */\\n\\t& .ck-widget:-webkit-drag {\\n\\t\\tzoom: 0.6;\\n\\t\\toutline: none !important;\\n\\t}\\n}\\n\\n.ck.ck-clipboard-drop-target-line {\\n\\theight: 0;\\n\\tborder: 1px solid var(--ck-clipboard-drop-target-color);\\n\\tbackground: var(--ck-clipboard-drop-target-color);\\n\\tmargin-top: -1px;\\n\\n\\t&::before {\\n\\t\\tcontent: '';\\n\\t\\tposition: absolute;\\n\\t\\ttop: calc(-.5 * var(--ck-clipboard-drop-target-dot-width));\\n\\t\\twidth: 0;\\n\\t\\theight: 0;\\n\\t\\tborder-style: solid;\\n\\n\\t\\t@mixin ck-dir ltr {\\n\\t\\t\\tleft: -1px;\\n\\n\\t\\t\\tborder-width: calc(.5 * var(--ck-clipboard-drop-target-dot-width)) 0 calc(.5 * var(--ck-clipboard-drop-target-dot-width)) var(--ck-clipboard-drop-target-dot-height);\\n\\t\\t\\tborder-color: transparent transparent transparent var(--ck-clipboard-drop-target-color);\\n\\t\\t}\\n\\n\\t\\t@mixin ck-dir rtl {\\n\\t\\t\\tright: -1px;\\n\\n\\t\\t\\tborder-width:calc(.5 * var(--ck-clipboard-drop-target-dot-width)) var(--ck-clipboard-drop-target-dot-height) calc(.5 * var(--ck-clipboard-drop-target-dot-width)) 0;\\n\\t\\t\\tborder-color: transparent var(--ck-clipboard-drop-target-color) transparent transparent;\\n\\t\\t}\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck.ck-editor{position:relative}.ck.ck-editor .ck-editor__top .ck-sticky-panel .ck-toolbar{z-index:var(--ck-z-panel)}.ck.ck-editor__top .ck-sticky-panel .ck-sticky-panel__content{border-radius:0}.ck-rounded-corners .ck.ck-editor__top .ck-sticky-panel .ck-sticky-panel__content,.ck.ck-editor__top .ck-sticky-panel .ck-sticky-panel__content.ck-rounded-corners{border-radius:var(--ck-border-radius);border-bottom-left-radius:0;border-bottom-right-radius:0}.ck.ck-editor__top .ck-sticky-panel .ck-sticky-panel__content{border:solid var(--ck-color-base-border);border-width:1px 1px 0}.ck.ck-editor__top .ck-sticky-panel .ck-sticky-panel__content.ck-sticky-panel__content_sticky{border-bottom-width:1px}.ck.ck-editor__top .ck-sticky-panel .ck-sticky-panel__content .ck-menu-bar,.ck.ck-editor__top .ck-sticky-panel .ck-sticky-panel__content .ck-toolbar{border:0}.ck.ck-editor__main>.ck-editor__editable{background:var(--ck-color-base-background);border-radius:0}.ck-rounded-corners .ck.ck-editor__main>.ck-editor__editable,.ck.ck-editor__main>.ck-editor__editable.ck-rounded-corners{border-radius:var(--ck-border-radius);border-top-left-radius:0;border-top-right-radius:0}.ck.ck-editor__main>.ck-editor__editable:not(.ck-focused){border-color:var(--ck-color-base-border)}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../ckeditor5-editor-classic/theme/classiceditor.css\",\"webpack://./../ckeditor5-theme-lark/theme/ckeditor5-editor-classic/classiceditor.css\",\"webpack://./../ckeditor5-theme-lark/theme/mixins/_rounded.css\"],\"names\":[],\"mappings\":\"AAKA,cAIC,iBAMD,CAJC,2DAEC,yBACD,CCLC,8DCED,eDeC,CAjBA,mKCMA,qCAAsC,CDJpC,2BAA4B,CAC5B,4BAcF,CAjBA,8DAOC,wCAAsB,CAAtB,sBAUD,CARC,8FACC,uBACD,CAEA,qJAEC,QACD,CAMH,yCAEC,0CAA2C,CCtB3C,eDgCD,CAZA,yHChBE,qCAAsC,CDqBtC,wBAAyB,CACzB,yBAMF,CAHC,0DACC,wCACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.ck.ck-editor {\\n\\t/* All the elements within `.ck-editor` are positioned relatively to it.\\n\\t If any element needs to be positioned with respect to the , etc.,\\n\\t it must land outside of the `.ck-editor` in DOM. */\\n\\tposition: relative;\\n\\n\\t& .ck-editor__top .ck-sticky-panel .ck-toolbar {\\n\\t\\t/* https://github.com/ckeditor/ckeditor5-editor-classic/issues/62 */\\n\\t\\tz-index: var(--ck-z-panel);\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n@import \\\"../mixins/_rounded.css\\\";\\n\\n.ck.ck-editor__top {\\n\\t& .ck-sticky-panel {\\n\\t\\t& .ck-sticky-panel__content {\\n\\t\\t\\t@mixin ck-rounded-corners {\\n\\t\\t\\t\\tborder-bottom-left-radius: 0;\\n\\t\\t\\t\\tborder-bottom-right-radius: 0;\\n\\t\\t\\t}\\n\\n\\t\\t\\tborder: 1px solid var(--ck-color-base-border);\\n\\t\\t\\tborder-bottom-width: 0;\\n\\n\\t\\t\\t&.ck-sticky-panel__content_sticky {\\n\\t\\t\\t\\tborder-bottom-width: 1px;\\n\\t\\t\\t}\\n\\n\\t\\t\\t& .ck-menu-bar,\\n\\t\\t\\t& .ck-toolbar {\\n\\t\\t\\t\\tborder: 0;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\\n/* Note: Use ck-editor__main to make sure these styles don't apply to other editor types */\\n.ck.ck-editor__main > .ck-editor__editable {\\n\\t/* https://github.com/ckeditor/ckeditor5-theme-lark/issues/113 */\\n\\tbackground: var(--ck-color-base-background);\\n\\n\\t@mixin ck-rounded-corners {\\n\\t\\tborder-top-left-radius: 0;\\n\\t\\tborder-top-right-radius: 0;\\n\\t}\\n\\n\\t&:not(.ck-focused) {\\n\\t\\tborder-color: var(--ck-color-base-border);\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n/**\\n * Implements rounded corner interface for .ck-rounded-corners class.\\n *\\n * @see $ck-border-radius\\n */\\n@define-mixin ck-rounded-corners {\\n\\tborder-radius: 0;\\n\\n\\t@nest .ck-rounded-corners &,\\n\\t&.ck-rounded-corners {\\n\\t\\tborder-radius: var(--ck-border-radius);\\n\\t\\t@mixin-content;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck .ck-placeholder,.ck.ck-placeholder{position:relative}.ck .ck-placeholder:before,.ck.ck-placeholder:before{content:attr(data-placeholder);left:0;pointer-events:none;position:absolute;right:0}.ck.ck-read-only .ck-placeholder:before{display:none}.ck.ck-reset_all .ck-placeholder{position:relative}@media (forced-colors:active){.ck .ck-placeholder,.ck.ck-placeholder{forced-color-adjust:preserve-parent-color}}.ck .ck-placeholder:before,.ck.ck-placeholder:before{cursor:text}@media (forced-colors:none){.ck .ck-placeholder:before,.ck.ck-placeholder:before{color:var(--ck-color-engine-placeholder-text)}}@media (forced-colors:active){.ck .ck-placeholder:before,.ck.ck-placeholder:before{font-style:italic;margin-left:1px}}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../ckeditor5-engine/theme/placeholder.css\",\"webpack://./../ckeditor5-ui/theme/mixins/_mediacolors.css\",\"webpack://./../ckeditor5-theme-lark/theme/ckeditor5-engine/placeholder.css\"],\"names\":[],\"mappings\":\"AAMA,uCAEC,iBAWD,CATC,qDAIC,8BAA+B,CAF/B,MAAO,CAKP,mBAAoB,CANpB,iBAAkB,CAElB,OAKD,CAKA,wCACC,YACD,CAQD,iCACC,iBACD,CC7BC,8BACC,uCCOA,yCDLA,CACD,CCOA,qDACC,WAmBD,CDvBA,4BACC,qDCMC,6CDJD,CACD,CAZA,8BACC,qDCsBC,iBAAkB,CAMlB,eD1BD,CACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n/* See ckeditor/ckeditor5#936. */\\n.ck.ck-placeholder,\\n.ck .ck-placeholder {\\n\\tposition: relative;\\n\\n\\t&::before {\\n\\t\\tposition: absolute;\\n\\t\\tleft: 0;\\n\\t\\tright: 0;\\n\\t\\tcontent: attr(data-placeholder);\\n\\n\\t\\t/* See ckeditor/ckeditor5#469. */\\n\\t\\tpointer-events: none;\\n\\t}\\n}\\n\\n/* See ckeditor/ckeditor5#1987. */\\n.ck.ck-read-only .ck-placeholder {\\n\\t&::before {\\n\\t\\tdisplay: none;\\n\\t}\\n}\\n\\n/*\\n * Rules for the `ck-placeholder` are loaded before the rules for `ck-reset_all` in the base CKEditor 5 DLL build.\\n * This fix overwrites the incorrectly set `position: static` from `ck-reset_all`.\\n * See https://github.com/ckeditor/ckeditor5/issues/11418.\\n */\\n.ck.ck-reset_all .ck-placeholder {\\n\\tposition: relative;\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n@define-mixin ck-media-forced-colors {\\n\\t@media (forced-colors: active) {\\n\\t\\t& {\\n\\t\\t\\t@mixin-content;\\n\\t\\t}\\n\\t}\\n}\\n\\n@define-mixin ck-media-default-colors {\\n\\t@media (forced-colors: none) {\\n\\t\\t& {\\n\\t\\t\\t@mixin-content;\\n\\t\\t}\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n@import \\\"@ckeditor/ckeditor5-ui/theme/mixins/_mediacolors.css\\\";\\n\\n/* See ckeditor/ckeditor5#936. */\\n.ck.ck-placeholder, .ck .ck-placeholder {\\n\\t@mixin ck-media-forced-colors {\\n\\t\\t/*\\n\\t\\t * This is needed for Edge on Windows to use the right color for the placeholder content (::before).\\n\\t\\t * See https://github.com/ckeditor/ckeditor5/issues/14907.\\n\\t\\t */\\n\\t\\tforced-color-adjust: preserve-parent-color;\\n\\t}\\n\\n\\t&::before {\\n\\t\\tcursor: text;\\n\\n\\t\\t@mixin ck-media-default-colors {\\n\\t\\t\\tcolor: var(--ck-color-engine-placeholder-text);\\n\\t\\t}\\n\\n\\t\\t@mixin ck-media-forced-colors {\\n\\t\\t\\t/*\\n\\t\\t\\t * In the high contrast mode there is no telling between regular and placeholder text. Using\\n\\t\\t\\t * italic text to address that issue. See https://github.com/ckeditor/ckeditor5/issues/14907.\\n\\t\\t\\t */\\n\\t\\t\\tfont-style: italic;\\n\\n\\t\\t\\t/*\\n\\t\\t\\t * Without this margin, the caret will not show up and blink when the user puts the selection\\n\\t\\t\\t * in the placeholder (Edge on Windows). See https://github.com/ckeditor/ckeditor5/issues/14907.\\n\\t\\t\\t */\\n\\t\\t\\tmargin-left: 1px;\\n\\t\\t}\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck.ck-editor__editable span[data-ck-unsafe-element]{display:none}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../ckeditor5-engine/theme/renderer.css\"],\"names\":[],\"mappings\":\"AAMA,qDACC,YACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n/* Elements marked by the Renderer as hidden should be invisible in the editor. */\\n.ck.ck-editor__editable span[data-ck-unsafe-element] {\\n\\tdisplay: none;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck-content .text-tiny{font-size:.7em}.ck-content .text-small{font-size:.85em}.ck-content .text-big{font-size:1.4em}.ck-content .text-huge{font-size:1.8em}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../ckeditor5-font/theme/fontsize.css\"],\"names\":[],\"mappings\":\"AAUC,uBACC,cACD,CAEA,wBACC,eACD,CAEA,sBACC,eACD,CAEA,uBACC,eACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n/* The values should be synchronized with the \\\"FONT_SIZE_PRESET_UNITS\\\" object in the \\\"/src/fontsize/utils.js\\\" file. */\\n\\n/* Styles should be prefixed with the `.ck-content` class.\\nSee https://github.com/ckeditor/ckeditor5/issues/6636 */\\n.ck-content {\\n\\t& .text-tiny {\\n\\t\\tfont-size: .7em;\\n\\t}\\n\\n\\t& .text-small {\\n\\t\\tfont-size: .85em;\\n\\t}\\n\\n\\t& .text-big {\\n\\t\\tfont-size: 1.4em;\\n\\t}\\n\\n\\t& .text-huge {\\n\\t\\tfont-size: 1.8em;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck.ck-heading_heading1{font-size:20px}.ck.ck-heading_heading2{font-size:17px}.ck.ck-heading_heading3{font-size:14px}.ck[class*=ck-heading_heading]{font-weight:700}.ck.ck-dropdown.ck-heading-dropdown .ck-dropdown__button .ck-button__label{width:8em}.ck.ck-dropdown.ck-heading-dropdown .ck-dropdown__panel .ck-list__item{min-width:18em}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../ckeditor5-heading/theme/heading.css\",\"webpack://./../ckeditor5-theme-lark/theme/ckeditor5-heading/heading.css\"],\"names\":[],\"mappings\":\"AAKA,wBACC,cACD,CAEA,wBACC,cACD,CAEA,wBACC,cACD,CAEA,+BACC,eACD,CCZC,2EACC,SACD,CAEA,uEACC,cACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.ck.ck-heading_heading1 {\\n\\tfont-size: 20px;\\n}\\n\\n.ck.ck-heading_heading2 {\\n\\tfont-size: 17px;\\n}\\n\\n.ck.ck-heading_heading3 {\\n\\tfont-size: 14px;\\n}\\n\\n.ck[class*=\\\"ck-heading_heading\\\"] {\\n\\tfont-weight: bold;\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n/* Resize dropdown's button label. */\\n.ck.ck-dropdown.ck-heading-dropdown {\\n\\t& .ck-dropdown__button .ck-button__label {\\n\\t\\twidth: 8em;\\n\\t}\\n\\n\\t& .ck-dropdown__panel .ck-list__item {\\n\\t\\tmin-width: 18em;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck-editor__editable .ck-horizontal-line{display:flow-root}.ck-content hr{background:#dedede;border:0;height:4px;margin:15px 0}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../ckeditor5-horizontal-line/theme/horizontalline.css\"],\"names\":[],\"mappings\":\"AAMA,yCAEC,iBACD,CAEA,eAGC,kBAA2B,CAC3B,QAAS,CAFT,UAAW,CADX,aAID\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n\\n.ck-editor__editable .ck-horizontal-line {\\n\\t/* Necessary to render properly next to floated objects, e.g. side image case. */\\n\\tdisplay: flow-root;\\n}\\n\\n.ck-content hr {\\n\\tmargin: 15px 0;\\n\\theight: 4px;\\n\\tbackground: hsl(0, 0%, 87%);\\n\\tborder: 0;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck-content .image{clear:both;display:table;margin:.9em auto;min-width:50px;text-align:center}.ck-content .image img{display:block;height:auto;margin:0 auto;max-width:100%;min-width:100%}.ck-content .image-inline{align-items:flex-start;display:inline-flex;max-width:100%}.ck-content .image-inline picture{display:flex}.ck-content .image-inline img,.ck-content .image-inline picture{flex-grow:1;flex-shrink:1;max-width:100%}.ck.ck-editor__editable .image>figcaption.ck-placeholder:before{overflow:hidden;padding-left:inherit;padding-right:inherit;text-overflow:ellipsis;white-space:nowrap}.ck.ck-editor__editable .image{z-index:1}.ck.ck-editor__editable .image.ck-widget_selected{z-index:2}.ck.ck-editor__editable .image-inline{z-index:1}.ck.ck-editor__editable .image-inline.ck-widget_selected{z-index:2}.ck.ck-editor__editable .image-inline.ck-widget_selected ::selection{display:none}.ck.ck-editor__editable .image-inline img{height:auto}.ck.ck-editor__editable td .image-inline img,.ck.ck-editor__editable th .image-inline img{max-width:none}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../ckeditor5-image/theme/image.css\"],\"names\":[],\"mappings\":\"AAMC,mBAEC,UAAW,CADX,aAAc,CAOd,gBAAkB,CAGlB,cAAe,CARf,iBA2BD,CAjBC,uBAEC,aAAc,CAad,WAAY,CAVZ,aAAc,CAGd,cAAe,CAGf,cAKD,CAGD,0BAYC,sBAAuB,CANvB,mBAAoB,CAGpB,cAoBD,CAdC,kCACC,YACD,CAGA,gEAGC,WAAY,CACZ,aAAc,CAGd,cACD,CAUD,gEASC,eAAgB,CARhB,oBAAqB,CACrB,qBAAsB,CAQtB,sBAAuB,CAFvB,kBAGD,CAKA,+BACC,SASD,CAHC,kDACC,SACD,CAMD,sCACC,SAkBD,CAZC,yDACC,SAUD,CAHC,qEACC,YACD,CAMF,0CACC,WACD,CAMC,0FACC,cACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.ck-content {\\n\\t& .image {\\n\\t\\tdisplay: table;\\n\\t\\tclear: both;\\n\\t\\ttext-align: center;\\n\\n\\t\\t/* Make sure there is some space between the content and the image. Center image by default. */\\n\\t\\t/* The first value should be equal to --ck-spacing-large variable if used in the editor context\\n\\t \\tto avoid the content jumping (See https://github.com/ckeditor/ckeditor5/issues/9825). */\\n\\t\\tmargin: 0.9em auto;\\n\\n\\t\\t/* Make sure the caption will be displayed properly (See: https://github.com/ckeditor/ckeditor5/issues/1870). */\\n\\t\\tmin-width: 50px;\\n\\n\\t\\t& img {\\n\\t\\t\\t/* Prevent unnecessary margins caused by line-height (see #44). */\\n\\t\\t\\tdisplay: block;\\n\\n\\t\\t\\t/* Center the image if its width is smaller than the content's width. */\\n\\t\\t\\tmargin: 0 auto;\\n\\n\\t\\t\\t/* Make sure the image never exceeds the size of the parent container (ckeditor/ckeditor5-ui#67). */\\n\\t\\t\\tmax-width: 100%;\\n\\n\\t\\t\\t/* Make sure the image is never smaller than the parent container (See: https://github.com/ckeditor/ckeditor5/issues/9300). */\\n\\t\\t\\tmin-width: 100%;\\n\\n\\t\\t\\t/* Keep proportions of the block image if the height is set and the image is wider than the editor width.\\n\\t\\t\\tSee https://github.com/ckeditor/ckeditor5/issues/14542. */\\n\\t\\t\\theight: auto;\\n\\t\\t}\\n\\t}\\n\\n\\t& .image-inline {\\n\\t\\t/*\\n\\t\\t * Normally, the .image-inline would have \\\"display: inline-block\\\" and \\\"img { width: 100% }\\\" (to follow the wrapper while resizing).\\n\\t\\t * Unfortunately, together with \\\"srcset\\\", it gets automatically stretched up to the width of the editing root.\\n\\t\\t * This strange behavior does not happen with inline-flex.\\n\\t\\t */\\n\\t\\tdisplay: inline-flex;\\n\\n\\t\\t/* While being resized, don't allow the image to exceed the width of the editing root. */\\n\\t\\tmax-width: 100%;\\n\\n\\t\\t/* This is required by Safari to resize images in a sensible way. Without this, the browser breaks the ratio. */\\n\\t\\talign-items: flex-start;\\n\\n\\t\\t/* When the picture is present it must act as a flex container to let the img resize properly */\\n\\t\\t& picture {\\n\\t\\t\\tdisplay: flex;\\n\\t\\t}\\n\\n\\t\\t/* When the picture is present, it must act like a resizable img. */\\n\\t\\t& picture,\\n\\t\\t& img {\\n\\t\\t\\t/* This is necessary for the img to span the entire .image-inline wrapper and to resize properly. */\\n\\t\\t\\tflex-grow: 1;\\n\\t\\t\\tflex-shrink: 1;\\n\\n\\t\\t\\t/* Prevents overflowing the editing root boundaries when an inline image is very wide. */\\n\\t\\t\\tmax-width: 100%;\\n\\t\\t}\\n\\t}\\n}\\n\\n.ck.ck-editor__editable {\\n\\t/*\\n\\t * Inhertit the content styles padding of the in case the integration overrides `text-align: center`\\n\\t * of `.image` (e.g. to the left/right). This ensures the placeholder stays at the padding just like the native\\n\\t * caret does, and not at the edge of .\\n\\t */\\n\\t& .image > figcaption.ck-placeholder::before {\\n\\t\\tpadding-left: inherit;\\n\\t\\tpadding-right: inherit;\\n\\n\\t\\t/*\\n\\t\\t * Make sure the image caption placeholder doesn't overflow the placeholder area.\\n\\t\\t * See https://github.com/ckeditor/ckeditor5/issues/9162.\\n\\t\\t */\\n\\t\\twhite-space: nowrap;\\n\\t\\toverflow: hidden;\\n\\t\\ttext-overflow: ellipsis;\\n\\t}\\n\\n\\t/*\\n\\t * See https://github.com/ckeditor/ckeditor5/issues/15115.\\n\\t */\\n\\t& .image {\\n\\t\\tz-index: 1;\\n\\n\\t\\t/*\\n\\t\\t * Make sure the selected image always stays on top of its siblings.\\n\\t\\t * See https://github.com/ckeditor/ckeditor5/issues/9108.\\n\\t\\t */\\n\\t\\t&.ck-widget_selected {\\n\\t\\t\\tz-index: 2;\\n\\t\\t}\\n\\t}\\n\\n\\t/*\\n\\t * See https://github.com/ckeditor/ckeditor5/issues/15115.\\n\\t */\\n\\t& .image-inline {\\n\\t\\tz-index: 1;\\n\\n\\t\\t/*\\n\\t\\t * Make sure the selected inline image always stays on top of its siblings.\\n\\t\\t * See https://github.com/ckeditor/ckeditor5/issues/9108.\\n\\t\\t */\\n\\t\\t&.ck-widget_selected {\\n\\t\\t\\tz-index: 2;\\n\\n\\t\\t\\t/*\\n\\t\\t\\t * Make sure the native browser selection style is not displayed.\\n\\t\\t\\t * Inline image widgets have their own styles for the selected state and\\n\\t\\t\\t * leaving this up to the browser is asking for a visual collision.\\n\\t\\t\\t */\\n\\t\\t\\t& ::selection {\\n\\t\\t\\t\\tdisplay: none;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t/* Keep proportions of the inline image if the height is set and the image is wider than the editor width.\\n\\tSee https://github.com/ckeditor/ckeditor5/issues/14542. */\\n\\t& .image-inline img {\\n\\t\\theight: auto;\\n\\t}\\n\\n\\t/* The inline image nested in the table should have its original size if not resized.\\n\\tSee https://github.com/ckeditor/ckeditor5/issues/9117. */\\n\\t& td,\\n\\t& th {\\n\\t\\t& .image-inline img {\\n\\t\\t\\tmax-width: none;\\n\\t\\t}\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \":root{--ck-color-image-caption-background:#f7f7f7;--ck-color-image-caption-text:#333;--ck-color-image-caption-highlighted-background:#fd0}.ck-content .image>figcaption{background-color:var(--ck-color-image-caption-background);caption-side:bottom;color:var(--ck-color-image-caption-text);display:table-caption;font-size:.75em;outline-offset:-1px;padding:.6em;word-break:break-word}@media (forced-colors:active){.ck-content .image>figcaption{background-color:unset;color:unset}}@media (forced-colors:none){.ck.ck-editor__editable .image>figcaption.image__caption_highlighted{animation:ck-image-caption-highlight .6s ease-out}}@media (prefers-reduced-motion:reduce){.ck.ck-editor__editable .image>figcaption.image__caption_highlighted{animation:none}}@keyframes ck-image-caption-highlight{0%{background-color:var(--ck-color-image-caption-highlighted-background)}to{background-color:var(--ck-color-image-caption-background)}}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../ckeditor5-image/theme/imagecaption.css\",\"webpack://./../ckeditor5-ui/theme/mixins/_mediacolors.css\"],\"names\":[],\"mappings\":\"AAOA,MACC,2CAAoD,CACpD,kCAA8C,CAC9C,oDACD,CAGA,8BAKC,yDAA0D,CAH1D,mBAAoB,CAEpB,wCAAyC,CAHzC,qBAAsB,CAMtB,eAAgB,CAChB,mBAAoB,CAFpB,YAAa,CAHb,qBAYD,CAJC,8BAXD,8BAYE,sBAAuB,CACvB,WAEF,CADC,CCdA,4BACC,qEDmBA,iDCjBA,CACD,CDmBA,uCALD,qEAME,cAEF,CADC,CAGD,sCACC,GACC,qEACD,CAEA,GACC,yDACD,CACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n@import \\\"@ckeditor/ckeditor5-ui/theme/mixins/_mediacolors.css\\\";\\n\\n:root {\\n\\t--ck-color-image-caption-background: hsl(0, 0%, 97%);\\n\\t--ck-color-image-caption-text: hsl(0, 0%, 20%);\\n\\t--ck-color-image-caption-highlighted-background: hsl(52deg 100% 50%);\\n}\\n\\n/* Content styles */\\n.ck-content .image > figcaption {\\n\\tdisplay: table-caption;\\n\\tcaption-side: bottom;\\n\\tword-break: break-word;\\n\\tcolor: var(--ck-color-image-caption-text);\\n\\tbackground-color: var(--ck-color-image-caption-background);\\n\\tpadding: .6em;\\n\\tfont-size: .75em;\\n\\toutline-offset: -1px;\\n\\n\\t/* Improve placeholder rendering in high-constrast mode (https://github.com/ckeditor/ckeditor5/issues/14907). */\\n\\t@media (forced-colors: active) {\\n\\t\\tbackground-color: unset;\\n\\t\\tcolor: unset;\\n\\t}\\n}\\n\\n/* Editing styles */\\n.ck.ck-editor__editable .image > figcaption.image__caption_highlighted {\\n\\t@mixin ck-media-default-colors {\\n\\t\\tanimation: ck-image-caption-highlight .6s ease-out;\\n\\t}\\n\\n\\t@media (prefers-reduced-motion: reduce) {\\n\\t\\tanimation: none;\\n\\t}\\n}\\n\\n@keyframes ck-image-caption-highlight {\\n\\t0% {\\n\\t\\tbackground-color: var(--ck-color-image-caption-highlighted-background);\\n\\t}\\n\\n\\t100% {\\n\\t\\tbackground-color: var(--ck-color-image-caption-background);\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n@define-mixin ck-media-forced-colors {\\n\\t@media (forced-colors: active) {\\n\\t\\t& {\\n\\t\\t\\t@mixin-content;\\n\\t\\t}\\n\\t}\\n}\\n\\n@define-mixin ck-media-default-colors {\\n\\t@media (forced-colors: none) {\\n\\t\\t& {\\n\\t\\t\\t@mixin-content;\\n\\t\\t}\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck.ck-image-custom-resize-form{align-items:flex-start;display:flex;flex-direction:row;flex-wrap:nowrap}.ck.ck-image-custom-resize-form .ck-labeled-field-view{display:inline-block}.ck.ck-image-custom-resize-form .ck-label{display:none}@media screen and (max-width:600px){.ck.ck-image-custom-resize-form{flex-wrap:wrap}.ck.ck-image-custom-resize-form .ck-labeled-field-view{flex-basis:100%}.ck.ck-image-custom-resize-form .ck-button{flex-basis:50%}}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../ckeditor5-image/theme/imagecustomresizeform.css\",\"webpack://./../ckeditor5-ui/theme/mixins/_rwd.css\"],\"names\":[],\"mappings\":\"AAOA,gCAIC,sBAAuB,CAHvB,YAAa,CACb,kBAAmB,CACnB,gBAsBD,CAnBC,uDACC,oBACD,CAEA,0CACC,YACD,CCbA,oCDCD,gCAeE,cAUF,CARE,uDACC,eACD,CAEA,2CACC,cACD,CCtBD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n@import \\\"@ckeditor/ckeditor5-ui/theme/mixins/_rwd.css\\\";\\n\\n.ck.ck-image-custom-resize-form {\\n\\tdisplay: flex;\\n\\tflex-direction: row;\\n\\tflex-wrap: nowrap;\\n\\talign-items: flex-start;\\n\\n\\t& .ck-labeled-field-view {\\n\\t\\tdisplay: inline-block;\\n\\t}\\n\\n\\t& .ck-label {\\n\\t\\tdisplay: none;\\n\\t}\\n\\n\\t@mixin ck-media-phone {\\n\\t\\tflex-wrap: wrap;\\n\\n\\t\\t& .ck-labeled-field-view {\\n\\t\\t\\tflex-basis: 100%;\\n\\t\\t}\\n\\n\\t\\t& .ck-button {\\n\\t\\t\\tflex-basis: 50%;\\n\\t\\t}\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n@define-mixin ck-media-phone {\\n\\t@media screen and (max-width: 600px) {\\n\\t\\t@mixin-content;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck.ck-image-insert-url .ck-image-insert-url__action-row{display:grid;grid-template-columns:repeat(2,1fr)}:root{--ck-image-insert-insert-by-url-width:250px}.ck.ck-image-insert-url{--ck-input-width:100%}.ck.ck-image-insert-url .ck-image-insert-url__action-row{grid-column-gap:var(--ck-spacing-large);margin-top:var(--ck-spacing-large)}.ck.ck-image-insert-url .ck-image-insert-url__action-row .ck-button-cancel,.ck.ck-image-insert-url .ck-image-insert-url__action-row .ck-button-save{justify-content:center;min-width:auto}.ck.ck-image-insert-url .ck-image-insert-url__action-row .ck-button .ck-button__label{color:var(--ck-color-text)}.ck.ck-image-insert-form>.ck.ck-button{display:block;padding:var(--ck-list-button-padding);width:100%}[dir=ltr] .ck.ck-image-insert-form>.ck.ck-button{text-align:left}[dir=rtl] .ck.ck-image-insert-form>.ck.ck-button{text-align:right}.ck.ck-image-insert-form>.ck.ck-collapsible:not(:first-child){border-top:1px solid var(--ck-color-base-border)}.ck.ck-image-insert-form>.ck.ck-collapsible:not(:last-child){border-bottom:1px solid var(--ck-color-base-border)}.ck.ck-image-insert-form>.ck.ck-collapsible,.ck.ck-image-insert-form>.ck.ck-image-insert-url{min-width:var(--ck-image-insert-insert-by-url-width)}.ck.ck-image-insert-form>.ck.ck-image-insert-url{padding:var(--ck-spacing-large)}.ck.ck-image-insert-form:focus{outline:none}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../ckeditor5-image/theme/imageinsert.css\",\"webpack://./../ckeditor5-theme-lark/theme/ckeditor5-image/imageinsert.css\"],\"names\":[],\"mappings\":\"AAMC,yDACC,YAAa,CACb,mCACD,CCFD,MACC,2CACD,CAEA,wBACC,qBAgBD,CAdC,yDACC,uCAAwC,CACxC,kCAWD,CATC,oJAEC,sBAAuB,CACvB,cACD,CAEA,sFACC,0BACD,CAKD,uCACC,aAAc,CAEd,qCAAsC,CADtC,UAUD,CAZA,iDAME,eAMF,CAZA,iDAUE,gBAEF,CAGC,8DACC,gDACD,CAEA,6DACC,mDACD,CAMD,6FAJC,oDAOD,CAHA,iDAEC,+BACD,CAEA,+BACC,YACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.ck.ck-image-insert-url {\\n\\t& .ck-image-insert-url__action-row {\\n\\t\\tdisplay: grid;\\n\\t\\tgrid-template-columns: repeat(2, 1fr);\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n@import \\\"@ckeditor/ckeditor5-ui/theme/mixins/_dir.css\\\";\\n\\n:root {\\n\\t--ck-image-insert-insert-by-url-width: 250px;\\n}\\n\\n.ck.ck-image-insert-url {\\n\\t--ck-input-width: 100%;\\n\\n\\t& .ck-image-insert-url__action-row {\\n\\t\\tgrid-column-gap: var(--ck-spacing-large);\\n\\t\\tmargin-top: var(--ck-spacing-large);\\n\\n\\t\\t& .ck-button-save,\\n\\t\\t& .ck-button-cancel {\\n\\t\\t\\tjustify-content: center;\\n\\t\\t\\tmin-width: auto;\\n\\t\\t}\\n\\n\\t\\t& .ck-button .ck-button__label {\\n\\t\\t\\tcolor: var(--ck-color-text);\\n\\t\\t}\\n\\t}\\n}\\n\\n.ck.ck-image-insert-form {\\n\\t& > .ck.ck-button {\\n\\t\\tdisplay: block;\\n\\t\\twidth: 100%;\\n\\t\\tpadding: var(--ck-list-button-padding);\\n\\n\\t\\t@mixin ck-dir ltr {\\n\\t\\t\\ttext-align: left;\\n\\t\\t}\\n\\n\\t\\t@mixin ck-dir rtl {\\n\\t\\t\\ttext-align: right;\\n\\t\\t}\\n\\t}\\n\\n\\t& > .ck.ck-collapsible {\\n\\t\\t&:not(:first-child) {\\n\\t\\t\\tborder-top: 1px solid var(--ck-color-base-border);\\n\\t\\t}\\n\\n\\t\\t&:not(:last-child) {\\n\\t\\t\\tborder-bottom: 1px solid var(--ck-color-base-border);\\n\\t\\t}\\n\\n\\t\\tmin-width: var(--ck-image-insert-insert-by-url-width);\\n\\t}\\n\\n\\t/* This is the case when there are no other integrations configured than insert by URL */\\n\\t& > .ck.ck-image-insert-url {\\n\\t\\tmin-width: var(--ck-image-insert-insert-by-url-width);\\n\\t\\tpadding: var(--ck-spacing-large);\\n\\t}\\n\\n\\t&:focus {\\n\\t\\toutline: none;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck.ck-editor__editable img.image_placeholder{background-size:100% 100%}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../ckeditor5-image/theme/imageplaceholder.css\"],\"names\":[],\"mappings\":\"AAMC,8CACC,yBACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.ck.ck-editor__editable {\\n\\t& img.image_placeholder {\\n\\t\\tbackground-size: 100% 100%;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck-content img.image_resized{height:auto}.ck-content .image.image_resized{box-sizing:border-box;display:block;max-width:100%}.ck-content .image.image_resized img{width:100%}.ck-content .image.image_resized>figcaption{display:block}.ck.ck-editor__editable td .image-inline.image_resized img,.ck.ck-editor__editable th .image-inline.image_resized img{max-width:100%}[dir=ltr] .ck.ck-button.ck-button_with-text.ck-resize-image-button .ck-button__icon{margin-right:var(--ck-spacing-standard)}[dir=rtl] .ck.ck-button.ck-button_with-text.ck-resize-image-button .ck-button__icon{margin-left:var(--ck-spacing-standard)}.ck.ck-dropdown .ck-button.ck-resize-image-button .ck-button__label{width:4em}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../ckeditor5-image/theme/imageresize.css\"],\"names\":[],\"mappings\":\"AAMA,8BACC,WACD,CAEA,iCAQC,qBAAsB,CADtB,aAAc,CANd,cAkBD,CATC,qCAEC,UACD,CAEA,4CAEC,aACD,CAQC,sHACC,cACD,CAIF,oFACC,uCACD,CAEA,oFACC,sCACD,CAEA,oEACC,SACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n/* Preserve aspect ratio of the resized image after introducing image height attribute. */\\n.ck-content img.image_resized {\\n\\theight: auto;\\n}\\n\\n.ck-content .image.image_resized {\\n\\tmax-width: 100%;\\n\\t/*\\n\\tThe `` element for resized images must not use `display:table` as browsers do not support `max-width` for it well.\\n\\tSee https://stackoverflow.com/questions/4019604/chrome-safari-ignoring-max-width-in-table/14420691#14420691 for more.\\n\\tFortunately, since we control the width, there is no risk that the image will look bad.\\n\\t*/\\n\\tdisplay: block;\\n\\tbox-sizing: border-box;\\n\\n\\t& img {\\n\\t\\t/* For resized images it is the `` element that determines the image width. */\\n\\t\\twidth: 100%;\\n\\t}\\n\\n\\t& > figcaption {\\n\\t\\t/* The `` element uses `display:block`, so `` also has to. */\\n\\t\\tdisplay: block;\\n\\t}\\n}\\n\\n.ck.ck-editor__editable {\\n\\t/* The resized inline image nested in the table should respect its parent size.\\n\\tSee https://github.com/ckeditor/ckeditor5/issues/9117. */\\n\\t& td,\\n\\t& th {\\n\\t\\t& .image-inline.image_resized img {\\n\\t\\t\\tmax-width: 100%;\\n\\t\\t}\\n\\t}\\n}\\n\\n[dir=\\\"ltr\\\"] .ck.ck-button.ck-button_with-text.ck-resize-image-button .ck-button__icon {\\n\\tmargin-right: var(--ck-spacing-standard);\\n}\\n\\n[dir=\\\"rtl\\\"] .ck.ck-button.ck-button_with-text.ck-resize-image-button .ck-button__icon {\\n\\tmargin-left: var(--ck-spacing-standard);\\n}\\n\\n.ck.ck-dropdown .ck-button.ck-resize-image-button .ck-button__label {\\n\\twidth: 4em;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \":root{--ck-image-style-spacing:1.5em;--ck-inline-image-style-spacing:calc(var(--ck-image-style-spacing)/2)}.ck-content .image-style-block-align-left,.ck-content .image-style-block-align-right{max-width:calc(100% - var(--ck-image-style-spacing))}.ck-content .image-style-align-left,.ck-content .image-style-align-right{clear:none}.ck-content .image-style-side{float:right;margin-left:var(--ck-image-style-spacing);max-width:50%}.ck-content .image-style-align-left{float:left;margin-right:var(--ck-image-style-spacing)}.ck-content .image-style-align-center{margin-left:auto;margin-right:auto}.ck-content .image-style-align-right{float:right;margin-left:var(--ck-image-style-spacing)}.ck-content .image-style-block-align-right{margin-left:auto;margin-right:0}.ck-content .image-style-block-align-left{margin-left:0;margin-right:auto}.ck-content p+.image-style-align-left,.ck-content p+.image-style-align-right,.ck-content p+.image-style-side{margin-top:0}.ck-content .image-inline.image-style-align-left,.ck-content .image-inline.image-style-align-right{margin-bottom:var(--ck-inline-image-style-spacing);margin-top:var(--ck-inline-image-style-spacing)}.ck-content .image-inline.image-style-align-left{margin-right:var(--ck-inline-image-style-spacing)}.ck-content .image-inline.image-style-align-right{margin-left:var(--ck-inline-image-style-spacing)}.ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open>.ck-splitbutton__action:not(.ck-disabled),.ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open>.ck-splitbutton__arrow:not(.ck-disabled),.ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open>.ck-splitbutton__arrow:not(.ck-disabled):not(:hover),.ck.ck-splitbutton.ck-splitbutton_flatten:hover>.ck-splitbutton__action:not(.ck-disabled),.ck.ck-splitbutton.ck-splitbutton_flatten:hover>.ck-splitbutton__arrow:not(.ck-disabled),.ck.ck-splitbutton.ck-splitbutton_flatten:hover>.ck-splitbutton__arrow:not(.ck-disabled):not(:hover){background-color:var(--ck-color-button-on-background)}.ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open>.ck-splitbutton__action:not(.ck-disabled):after,.ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open>.ck-splitbutton__arrow:not(.ck-disabled):after,.ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open>.ck-splitbutton__arrow:not(.ck-disabled):not(:hover):after,.ck.ck-splitbutton.ck-splitbutton_flatten:hover>.ck-splitbutton__action:not(.ck-disabled):after,.ck.ck-splitbutton.ck-splitbutton_flatten:hover>.ck-splitbutton__arrow:not(.ck-disabled):after,.ck.ck-splitbutton.ck-splitbutton_flatten:hover>.ck-splitbutton__arrow:not(.ck-disabled):not(:hover):after{display:none}.ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open:hover>.ck-splitbutton__action:not(.ck-disabled),.ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open:hover>.ck-splitbutton__arrow:not(.ck-disabled),.ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open:hover>.ck-splitbutton__arrow:not(.ck-disabled):not(:hover){background-color:var(--ck-color-button-on-hover-background)}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../ckeditor5-image/theme/imagestyle.css\"],\"names\":[],\"mappings\":\"AAKA,MACC,8BAA+B,CAC/B,qEACD,CAMC,qFAEC,oDACD,CAIA,yEAEC,UACD,CAEA,8BACC,WAAY,CACZ,yCAA0C,CAC1C,aACD,CAEA,oCACC,UAAW,CACX,0CACD,CAEA,sCACC,gBAAiB,CACjB,iBACD,CAEA,qCACC,WAAY,CACZ,yCACD,CAEA,2CAEC,gBAAiB,CADjB,cAED,CAEA,0CACC,aAAc,CACd,iBACD,CAGA,6GAGC,YACD,CAGC,mGAGC,kDAAmD,CADnD,+CAED,CAEA,iDACC,iDACD,CAEA,kDACC,gDACD,CAUC,0lBAGC,qDAKD,CAHC,8nBACC,YACD,CAKD,oVAGC,2DACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n:root {\\n\\t--ck-image-style-spacing: 1.5em;\\n\\t--ck-inline-image-style-spacing: calc(var(--ck-image-style-spacing) / 2);\\n}\\n\\n.ck-content {\\n\\t/* Provides a minimal side margin for the left and right aligned images, so that the user has a visual feedback\\n\\tconfirming successful application of the style if image width exceeds the editor's size.\\n\\tSee https://github.com/ckeditor/ckeditor5/issues/9342 */\\n\\t& .image-style-block-align-left,\\n\\t& .image-style-block-align-right {\\n\\t\\tmax-width: calc(100% - var(--ck-image-style-spacing));\\n\\t}\\n\\n\\t/* Allows displaying multiple floating images in the same line.\\n\\tSee https://github.com/ckeditor/ckeditor5/issues/9183#issuecomment-804988132 */\\n\\t& .image-style-align-left,\\n\\t& .image-style-align-right {\\n\\t\\tclear: none;\\n\\t}\\n\\n\\t& .image-style-side {\\n\\t\\tfloat: right;\\n\\t\\tmargin-left: var(--ck-image-style-spacing);\\n\\t\\tmax-width: 50%;\\n\\t}\\n\\n\\t& .image-style-align-left {\\n\\t\\tfloat: left;\\n\\t\\tmargin-right: var(--ck-image-style-spacing);\\n\\t}\\n\\n\\t& .image-style-align-center {\\n\\t\\tmargin-left: auto;\\n\\t\\tmargin-right: auto;\\n\\t}\\n\\n\\t& .image-style-align-right {\\n\\t\\tfloat: right;\\n\\t\\tmargin-left: var(--ck-image-style-spacing);\\n\\t}\\n\\n\\t& .image-style-block-align-right {\\n\\t\\tmargin-right: 0;\\n\\t\\tmargin-left: auto;\\n\\t}\\n\\n\\t& .image-style-block-align-left {\\n\\t\\tmargin-left: 0;\\n\\t\\tmargin-right: auto;\\n\\t}\\n\\n\\t/* Simulates margin collapsing with the preceding paragraph, which does not work for the floating elements. */\\n\\t& p + .image-style-align-left,\\n\\t& p + .image-style-align-right,\\n\\t& p + .image-style-side {\\n\\t\\tmargin-top: 0;\\n\\t}\\n\\n\\t& .image-inline {\\n\\t\\t&.image-style-align-left,\\n\\t\\t&.image-style-align-right {\\n\\t\\t\\tmargin-top: var(--ck-inline-image-style-spacing);\\n\\t\\t\\tmargin-bottom: var(--ck-inline-image-style-spacing);\\n\\t\\t}\\n\\n\\t\\t&.image-style-align-left {\\n\\t\\t\\tmargin-right: var(--ck-inline-image-style-spacing);\\n\\t\\t}\\n\\n\\t\\t&.image-style-align-right {\\n\\t\\t\\tmargin-left: var(--ck-inline-image-style-spacing);\\n\\t\\t}\\n\\t}\\n}\\n\\n.ck.ck-splitbutton {\\n\\t/* The button should display as a regular drop-down if the action button\\n\\tis forced to fire the same action as the arrow button. */\\n\\t&.ck-splitbutton_flatten {\\n\\t\\t&:hover,\\n\\t\\t&.ck-splitbutton_open {\\n\\t\\t\\t& > .ck-splitbutton__action:not(.ck-disabled),\\n\\t\\t\\t& > .ck-splitbutton__arrow:not(.ck-disabled),\\n\\t\\t\\t& > .ck-splitbutton__arrow:not(.ck-disabled):not(:hover) {\\n\\t\\t\\t\\tbackground-color: var(--ck-color-button-on-background);\\n\\n\\t\\t\\t\\t&::after {\\n\\t\\t\\t\\t\\tdisplay: none;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t&.ck-splitbutton_open:hover {\\n\\t\\t\\t& > .ck-splitbutton__action:not(.ck-disabled),\\n\\t\\t\\t& > .ck-splitbutton__arrow:not(.ck-disabled),\\n\\t\\t\\t& > .ck-splitbutton__arrow:not(.ck-disabled):not(:hover) {\\n\\t\\t\\t\\tbackground-color: var(--ck-color-button-on-hover-background);\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck-image-upload-complete-icon{border-radius:50%;display:block;position:absolute;right:min(var(--ck-spacing-medium),6%);top:min(var(--ck-spacing-medium),6%);z-index:1}.ck-image-upload-complete-icon:after{content:\\\"\\\";position:absolute}:root{--ck-color-image-upload-icon:#fff;--ck-color-image-upload-icon-background:#008a00;--ck-image-upload-icon-size:20;--ck-image-upload-icon-width:2px;--ck-image-upload-icon-is-visible:clamp(0px,100% - 50px,1px)}.ck-image-upload-complete-icon{animation-delay:0ms,3s;animation-duration:.5s,.5s;animation-fill-mode:forwards,forwards;animation-name:ck-upload-complete-icon-show,ck-upload-complete-icon-hide;background:var(--ck-color-image-upload-icon-background);font-size:calc(1px*var(--ck-image-upload-icon-size));height:calc(var(--ck-image-upload-icon-is-visible)*var(--ck-image-upload-icon-size));opacity:0;overflow:hidden;width:calc(var(--ck-image-upload-icon-is-visible)*var(--ck-image-upload-icon-size))}.ck-image-upload-complete-icon:after{animation-delay:.5s;animation-duration:.5s;animation-fill-mode:forwards;animation-name:ck-upload-complete-icon-check;border-right:var(--ck-image-upload-icon-width) solid var(--ck-color-image-upload-icon);border-top:var(--ck-image-upload-icon-width) solid var(--ck-color-image-upload-icon);box-sizing:border-box;height:0;left:25%;opacity:0;top:50%;transform:scaleX(-1) rotate(135deg);transform-origin:left top;width:0}@media (prefers-reduced-motion:reduce){.ck-image-upload-complete-icon{animation-duration:0ms}.ck-image-upload-complete-icon:after{animation:none;height:.45em;opacity:1;width:.3em}}@keyframes ck-upload-complete-icon-show{0%{opacity:0}to{opacity:1}}@keyframes ck-upload-complete-icon-hide{0%{opacity:1}to{opacity:0}}@keyframes ck-upload-complete-icon-check{0%{height:0;opacity:1;width:0}33%{height:0;width:.3em}to{height:.45em;opacity:1;width:.3em}}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../ckeditor5-image/theme/imageuploadicon.css\",\"webpack://./../ckeditor5-theme-lark/theme/ckeditor5-image/imageuploadicon.css\"],\"names\":[],\"mappings\":\"AAKA,+BAUC,iBAAkB,CATlB,aAAc,CACd,iBAAkB,CAOlB,sCAAwC,CADxC,oCAAsC,CAGtC,SAMD,CAJC,qCACC,UAAW,CACX,iBACD,CChBD,MACC,iCAA8C,CAC9C,+CAA4D,CAG5D,8BAA+B,CAC/B,gCAAiC,CACjC,4DACD,CAEA,+BAWC,sBAA4B,CAN5B,0BAAgC,CADhC,qCAAuC,CADvC,wEAA0E,CAD1E,uDAAwD,CAMxD,oDAAuD,CAWvD,oFAAuF,CAlBvF,SAAU,CAgBV,eAAgB,CAChB,mFAqCD,CAjCC,qCAgBC,mBAAsB,CADtB,sBAAyB,CAEzB,4BAA6B,CAH7B,4CAA6C,CAF7C,sFAAuF,CADvF,oFAAqF,CASrF,qBAAsB,CAdtB,QAAS,CAJT,QAAS,CAGT,SAAU,CADV,OAAQ,CAKR,mCAAoC,CACpC,yBAA0B,CAH1B,OAcD,CAEA,uCA7CD,+BA8CE,sBASF,CAPE,qCACC,cAAe,CAGf,YAAc,CAFd,SAAU,CACV,UAED,CACD,CAGD,wCACC,GACC,SACD,CAEA,GACC,SACD,CACD,CAEA,wCACC,GACC,SACD,CAEA,GACC,SACD,CACD,CAEA,yCACC,GAGC,QAAS,CAFT,SAAU,CACV,OAED,CACA,IAEC,QAAS,CADT,UAED,CACA,GAGC,YAAc,CAFd,SAAU,CACV,UAED,CACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.ck-image-upload-complete-icon {\\n\\tdisplay: block;\\n\\tposition: absolute;\\n\\n\\t/*\\n\\t * Smaller images should have the icon closer to the border.\\n\\t * Match the icon position with the linked image indicator brought by the link image feature.\\n\\t */\\n\\ttop: min(var(--ck-spacing-medium), 6%);\\n\\tright: min(var(--ck-spacing-medium), 6%);\\n\\tborder-radius: 50%;\\n\\tz-index: 1;\\n\\n\\t&::after {\\n\\t\\tcontent: \\\"\\\";\\n\\t\\tposition: absolute;\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n:root {\\n\\t--ck-color-image-upload-icon: hsl(0, 0%, 100%);\\n\\t--ck-color-image-upload-icon-background: hsl(120, 100%, 27%);\\n\\n\\t/* Match the icon size with the linked image indicator brought by the link image feature. */\\n\\t--ck-image-upload-icon-size: 20;\\n\\t--ck-image-upload-icon-width: 2px;\\n\\t--ck-image-upload-icon-is-visible: clamp(0px, 100% - 50px, 1px);\\n}\\n\\n.ck-image-upload-complete-icon {\\n\\topacity: 0;\\n\\tbackground: var(--ck-color-image-upload-icon-background);\\n\\tanimation-name: ck-upload-complete-icon-show, ck-upload-complete-icon-hide;\\n\\tanimation-fill-mode: forwards, forwards;\\n\\tanimation-duration: 500ms, 500ms;\\n\\n\\t/* To make animation scalable. */\\n\\tfont-size: calc(1px * var(--ck-image-upload-icon-size));\\n\\n\\t/* Hide completed upload icon after 3 seconds. */\\n\\tanimation-delay: 0ms, 3000ms;\\n\\n\\t/*\\n\\t * Use CSS math to simulate container queries.\\n\\t * https://css-tricks.com/the-raven-technique-one-step-closer-to-container-queries/#what-about-showing-and-hiding-things\\n\\t */\\n\\toverflow: hidden;\\n\\twidth: calc(var(--ck-image-upload-icon-is-visible) * var(--ck-image-upload-icon-size));\\n\\theight: calc(var(--ck-image-upload-icon-is-visible) * var(--ck-image-upload-icon-size));\\n\\n\\t/* This is check icon element made from border-width mixed with animations. */\\n\\t&::after {\\n\\t\\t/* Because of border transformation we need to \\\"hard code\\\" left position. */\\n\\t\\tleft: 25%;\\n\\n\\t\\ttop: 50%;\\n\\t\\topacity: 0;\\n\\t\\theight: 0;\\n\\t\\twidth: 0;\\n\\n\\t\\ttransform: scaleX(-1) rotate(135deg);\\n\\t\\ttransform-origin: left top;\\n\\t\\tborder-top: var(--ck-image-upload-icon-width) solid var(--ck-color-image-upload-icon);\\n\\t\\tborder-right: var(--ck-image-upload-icon-width) solid var(--ck-color-image-upload-icon);\\n\\n\\t\\tanimation-name: ck-upload-complete-icon-check;\\n\\t\\tanimation-duration: 500ms;\\n\\t\\tanimation-delay: 500ms;\\n\\t\\tanimation-fill-mode: forwards;\\n\\n\\t\\t/* #1095. While reset is not providing proper box-sizing for pseudoelements, we need to handle it. */\\n\\t\\tbox-sizing: border-box;\\n\\t}\\n\\n\\t@media (prefers-reduced-motion: reduce) {\\n\\t\\tanimation-duration: 0ms;\\n\\n\\t\\t&::after {\\n\\t\\t\\tanimation: none;\\n\\t\\t\\topacity: 1;\\n\\t\\t\\twidth: 0.3em;\\n\\t\\t\\theight: 0.45em;\\n\\t\\t}\\n\\t}\\n}\\n\\n@keyframes ck-upload-complete-icon-show {\\n\\tfrom {\\n\\t\\topacity: 0;\\n\\t}\\n\\n\\tto {\\n\\t\\topacity: 1;\\n\\t}\\n}\\n\\n@keyframes ck-upload-complete-icon-hide {\\n\\tfrom {\\n\\t\\topacity: 1;\\n\\t}\\n\\n\\tto {\\n\\t\\topacity: 0;\\n\\t}\\n}\\n\\n@keyframes ck-upload-complete-icon-check {\\n\\t0% {\\n\\t\\topacity: 1;\\n\\t\\twidth: 0;\\n\\t\\theight: 0;\\n\\t}\\n\\t33% {\\n\\t\\twidth: 0.3em;\\n\\t\\theight: 0;\\n\\t}\\n\\t100% {\\n\\t\\topacity: 1;\\n\\t\\twidth: 0.3em;\\n\\t\\theight: 0.45em;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck .ck-upload-placeholder-loader{align-items:center;display:flex;justify-content:center;left:0;position:absolute;top:0}.ck .ck-upload-placeholder-loader:before{content:\\\"\\\";position:relative}:root{--ck-color-upload-placeholder-loader:#b3b3b3;--ck-upload-placeholder-loader-size:32px;--ck-upload-placeholder-image-aspect-ratio:2.8}.ck .ck-image-upload-placeholder{margin:0;width:100%}.ck .ck-image-upload-placeholder.image-inline{width:calc(var(--ck-upload-placeholder-loader-size)*2*var(--ck-upload-placeholder-image-aspect-ratio))}.ck .ck-image-upload-placeholder img{aspect-ratio:var(--ck-upload-placeholder-image-aspect-ratio)}.ck .ck-upload-placeholder-loader{height:100%;width:100%}.ck .ck-upload-placeholder-loader:before{animation:ck-upload-placeholder-loader 1s linear infinite;border-radius:50%;border-right:2px solid transparent;border-top:3px solid var(--ck-color-upload-placeholder-loader);height:var(--ck-upload-placeholder-loader-size);width:var(--ck-upload-placeholder-loader-size)}@keyframes ck-upload-placeholder-loader{to{transform:rotate(1turn)}}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../ckeditor5-image/theme/imageuploadloader.css\",\"webpack://./../ckeditor5-theme-lark/theme/ckeditor5-image/imageuploadloader.css\"],\"names\":[],\"mappings\":\"AAKA,kCAGC,kBAAmB,CADnB,YAAa,CAEb,sBAAuB,CAEvB,MAAO,CALP,iBAAkB,CAIlB,KAOD,CAJC,yCACC,UAAW,CACX,iBACD,CCXD,MACC,4CAAqD,CACrD,wCAAyC,CACzC,8CACD,CAEA,iCAGC,QAAS,CADT,UAgBD,CAbC,8CACC,sGACD,CAEA,qCAOC,4DACD,CAGD,kCAEC,WAAY,CADZ,UAWD,CARC,yCAMC,yDAA0D,CAH1D,iBAAkB,CAElB,kCAAmC,CADnC,8DAA+D,CAF/D,+CAAgD,CADhD,8CAMD,CAGD,wCACC,GACC,uBACD,CACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.ck .ck-upload-placeholder-loader {\\n\\tposition: absolute;\\n\\tdisplay: flex;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n\\ttop: 0;\\n\\tleft: 0;\\n\\n\\t&::before {\\n\\t\\tcontent: '';\\n\\t\\tposition: relative;\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n:root {\\n\\t--ck-color-upload-placeholder-loader: hsl(0, 0%, 70%);\\n\\t--ck-upload-placeholder-loader-size: 32px;\\n\\t--ck-upload-placeholder-image-aspect-ratio: 2.8;\\n}\\n\\n.ck .ck-image-upload-placeholder {\\n\\t/* We need to control the full width of the SVG gray background. */\\n\\twidth: 100%;\\n\\tmargin: 0;\\n\\n\\t&.image-inline {\\n\\t\\twidth: calc( 2 * var(--ck-upload-placeholder-loader-size) * var(--ck-upload-placeholder-image-aspect-ratio) );\\n\\t}\\n\\n\\t& img {\\n\\t\\t/*\\n\\t\\t * This is an arbitrary aspect for a 1x1 px GIF to display to the user. Not too tall, not too short.\\n\\t\\t * There's nothing special about this number except that it should make the image placeholder look like\\n\\t\\t * a real image during this short period after the upload started and before the image was read from the\\n\\t\\t * file system (and a rich preview was loaded).\\n\\t\\t */\\n\\t\\taspect-ratio: var(--ck-upload-placeholder-image-aspect-ratio);\\n\\t}\\n}\\n\\n.ck .ck-upload-placeholder-loader {\\n\\twidth: 100%;\\n\\theight: 100%;\\n\\n\\t&::before {\\n\\t\\twidth: var(--ck-upload-placeholder-loader-size);\\n\\t\\theight: var(--ck-upload-placeholder-loader-size);\\n\\t\\tborder-radius: 50%;\\n\\t\\tborder-top: 3px solid var(--ck-color-upload-placeholder-loader);\\n\\t\\tborder-right: 2px solid transparent;\\n\\t\\tanimation: ck-upload-placeholder-loader 1s linear infinite;\\n\\t}\\n}\\n\\n@keyframes ck-upload-placeholder-loader {\\n\\tto {\\n\\t\\ttransform: rotate( 360deg );\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck.ck-editor__editable .image,.ck.ck-editor__editable .image-inline{position:relative}.ck.ck-editor__editable .image .ck-progress-bar,.ck.ck-editor__editable .image-inline .ck-progress-bar{left:0;position:absolute;top:0}.ck.ck-editor__editable .image-inline.ck-appear,.ck.ck-editor__editable .image.ck-appear{animation:fadeIn .7s}@media (prefers-reduced-motion:reduce){.ck.ck-editor__editable .image-inline.ck-appear,.ck.ck-editor__editable .image.ck-appear{animation:none;opacity:1}}.ck.ck-editor__editable .image .ck-progress-bar,.ck.ck-editor__editable .image-inline .ck-progress-bar{background:var(--ck-color-upload-bar-background);height:2px;transition:width .1s;width:0}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../ckeditor5-image/theme/imageuploadprogress.css\",\"webpack://./../ckeditor5-theme-lark/theme/ckeditor5-image/imageuploadprogress.css\"],\"names\":[],\"mappings\":\"AAMC,qEAEC,iBACD,CAGA,uGAIC,MAAO,CAFP,iBAAkB,CAClB,KAED,CCRC,yFACC,oBAMD,CAJC,uCAHD,yFAKE,cAAe,CADf,SAGF,CADC,CAKF,uGAIC,gDAAiD,CAFjD,UAAW,CAGX,oBAAuB,CAFvB,OAGD,CAGD,kBACC,GAAO,SAAY,CACnB,GAAO,SAAY,CACpB\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.ck.ck-editor__editable {\\n\\t& .image,\\n\\t& .image-inline {\\n\\t\\tposition: relative;\\n\\t}\\n\\n\\t/* Upload progress bar. */\\n\\t& .image .ck-progress-bar,\\n\\t& .image-inline .ck-progress-bar {\\n\\t\\tposition: absolute;\\n\\t\\ttop: 0;\\n\\t\\tleft: 0;\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.ck.ck-editor__editable {\\n\\t& .image,\\n\\t& .image-inline {\\n\\t\\t/* Showing animation. */\\n\\t\\t&.ck-appear {\\n\\t\\t\\tanimation: fadeIn 700ms;\\n\\n\\t\\t\\t@media (prefers-reduced-motion: reduce) {\\n\\t\\t\\t\\topacity: 1;\\n\\t\\t\\t\\tanimation: none;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t/* Upload progress bar. */\\n\\t& .image .ck-progress-bar,\\n\\t& .image-inline .ck-progress-bar {\\n\\t\\theight: 2px;\\n\\t\\twidth: 0;\\n\\t\\tbackground: var(--ck-color-upload-bar-background);\\n\\t\\ttransition: width 100ms;\\n\\t}\\n}\\n\\n@keyframes fadeIn {\\n\\tfrom { opacity: 0; }\\n\\tto { opacity: 1; }\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck.ck-text-alternative-form{display:flex;flex-direction:row;flex-wrap:nowrap}.ck.ck-text-alternative-form .ck-labeled-field-view{display:inline-block}.ck.ck-text-alternative-form .ck-label{display:none}@media screen and (max-width:600px){.ck.ck-text-alternative-form{flex-wrap:wrap}.ck.ck-text-alternative-form .ck-labeled-field-view{flex-basis:100%}.ck.ck-text-alternative-form .ck-button{flex-basis:50%}}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../ckeditor5-image/theme/textalternativeform.css\",\"webpack://./../ckeditor5-ui/theme/mixins/_rwd.css\"],\"names\":[],\"mappings\":\"AAOA,6BACC,YAAa,CACb,kBAAmB,CACnB,gBAqBD,CAnBC,oDACC,oBACD,CAEA,uCACC,YACD,CCZA,oCDCD,6BAcE,cAUF,CARE,oDACC,eACD,CAEA,wCACC,cACD,CCrBD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n@import \\\"@ckeditor/ckeditor5-ui/theme/mixins/_rwd.css\\\";\\n\\n.ck.ck-text-alternative-form {\\n\\tdisplay: flex;\\n\\tflex-direction: row;\\n\\tflex-wrap: nowrap;\\n\\n\\t& .ck-labeled-field-view {\\n\\t\\tdisplay: inline-block;\\n\\t}\\n\\n\\t& .ck-label {\\n\\t\\tdisplay: none;\\n\\t}\\n\\n\\t@mixin ck-media-phone {\\n\\t\\tflex-wrap: wrap;\\n\\n\\t\\t& .ck-labeled-field-view {\\n\\t\\t\\tflex-basis: 100%;\\n\\t\\t}\\n\\n\\t\\t& .ck-button {\\n\\t\\t\\tflex-basis: 50%;\\n\\t\\t}\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n@define-mixin ck-media-phone {\\n\\t@media screen and (max-width: 600px) {\\n\\t\\t@mixin-content;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck-editor__editable .ck-list-bogus-paragraph{display:block}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../ckeditor5-list/theme/documentlist.css\"],\"names\":[],\"mappings\":\"AAKA,8CACC,aACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.ck-editor__editable .ck-list-bogus-paragraph {\\n\\tdisplay: block;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck-content ol{list-style-type:decimal}.ck-content ol ol{list-style-type:lower-latin}.ck-content ol ol ol{list-style-type:lower-roman}.ck-content ol ol ol ol{list-style-type:upper-latin}.ck-content ol ol ol ol ol{list-style-type:upper-roman}.ck-content ul{list-style-type:disc}.ck-content ul ul{list-style-type:circle}.ck-content ul ul ul,.ck-content ul ul ul ul{list-style-type:square}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../ckeditor5-list/theme/list.css\"],\"names\":[],\"mappings\":\"AAKA,eACC,uBAiBD,CAfC,kBACC,2BAaD,CAXC,qBACC,2BASD,CAPC,wBACC,2BAKD,CAHC,2BACC,2BACD,CAMJ,eACC,oBAaD,CAXC,kBACC,sBASD,CAJE,6CACC,sBACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.ck-content ol {\\n\\tlist-style-type: decimal;\\n\\n\\t& ol {\\n\\t\\tlist-style-type: lower-latin;\\n\\n\\t\\t& ol {\\n\\t\\t\\tlist-style-type: lower-roman;\\n\\n\\t\\t\\t& ol {\\n\\t\\t\\t\\tlist-style-type: upper-latin;\\n\\n\\t\\t\\t\\t& ol {\\n\\t\\t\\t\\t\\tlist-style-type: upper-roman;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\\n.ck-content ul {\\n\\tlist-style-type: disc;\\n\\n\\t& ul {\\n\\t\\tlist-style-type: circle;\\n\\n\\t\\t& ul {\\n\\t\\t\\tlist-style-type: square;\\n\\n\\t\\t\\t& ul {\\n\\t\\t\\t\\tlist-style-type: square;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck.ck-list-properties.ck-list-properties_without-styles{padding:var(--ck-spacing-large)}.ck.ck-list-properties.ck-list-properties_without-styles>*{min-width:14em}.ck.ck-list-properties.ck-list-properties_without-styles>*+*{margin-top:var(--ck-spacing-standard)}.ck.ck-list-properties.ck-list-properties_with-numbered-properties>.ck-list-styles-list{grid-template-columns:repeat(4,auto)}.ck.ck-list-properties.ck-list-properties_with-numbered-properties>.ck-collapsible{border-top:1px solid var(--ck-color-base-border)}.ck.ck-list-properties.ck-list-properties_with-numbered-properties>.ck-collapsible>.ck-collapsible__children>*{width:100%}.ck.ck-list-properties.ck-list-properties_with-numbered-properties>.ck-collapsible>.ck-collapsible__children>*+*{margin-top:var(--ck-spacing-standard)}.ck.ck-list-properties .ck.ck-numbered-list-properties__start-index .ck-input{min-width:auto;width:100%}.ck.ck-list-properties .ck.ck-numbered-list-properties__reversed-order{background:transparent;margin-bottom:calc(var(--ck-spacing-tiny)*-1);padding-left:0;padding-right:0}.ck.ck-list-properties .ck.ck-numbered-list-properties__reversed-order:active,.ck.ck-list-properties .ck.ck-numbered-list-properties__reversed-order:hover{background:none;border-color:transparent;box-shadow:none}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../ckeditor5-theme-lark/theme/ckeditor5-list/listproperties.css\"],\"names\":[],\"mappings\":\"AAOC,yDACC,+BASD,CAPC,2DACC,cAKD,CAHC,6DACC,qCACD,CASD,wFACC,oCACD,CAGA,mFACC,gDAWD,CARE,+GACC,UAKD,CAHC,iHACC,qCACD,CAMJ,8EACC,cAAe,CACf,UACD,CAEA,uEACC,sBAAuB,CAGvB,6CAAgD,CAFhD,cAAe,CACf,eAQD,CALC,2JAGC,eAAgB,CADhB,wBAAyB,CADzB,eAGD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.ck.ck-list-properties {\\n\\t/* When there are no list styles and there is no collapsible. */\\n\\t&.ck-list-properties_without-styles {\\n\\t\\tpadding: var(--ck-spacing-large);\\n\\n\\t\\t& > * {\\n\\t\\t\\tmin-width: 14em;\\n\\n\\t\\t\\t& + * {\\n\\t\\t\\t\\tmargin-top: var(--ck-spacing-standard);\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t/*\\n\\t * When the numbered list property fields (start at, reversed) should be displayed,\\n\\t * more horizontal space is needed. Reconfigure the style grid to create that space.\\n\\t */\\n\\t&.ck-list-properties_with-numbered-properties {\\n\\t\\t& > .ck-list-styles-list {\\n\\t\\t\\tgrid-template-columns: repeat( 4, auto );\\n\\t\\t}\\n\\n\\t\\t/* When list styles are rendered and property fields are in a collapsible. */\\n\\t\\t& > .ck-collapsible {\\n\\t\\t\\tborder-top: 1px solid var(--ck-color-base-border);\\n\\n\\t\\t\\t& > .ck-collapsible__children {\\n\\t\\t\\t\\t& > * {\\n\\t\\t\\t\\t\\twidth: 100%;\\n\\n\\t\\t\\t\\t\\t& + * {\\n\\t\\t\\t\\t\\t\\tmargin-top: var(--ck-spacing-standard);\\n\\t\\t\\t\\t\\t}\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t& .ck.ck-numbered-list-properties__start-index .ck-input {\\n\\t\\tmin-width: auto;\\n\\t\\twidth: 100%;\\n\\t}\\n\\n\\t& .ck.ck-numbered-list-properties__reversed-order {\\n\\t\\tbackground: transparent;\\n\\t\\tpadding-left: 0;\\n\\t\\tpadding-right: 0;\\n\\t\\tmargin-bottom: calc(-1 * var(--ck-spacing-tiny));\\n\\n\\t\\t&:active, &:hover {\\n\\t\\t\\tbox-shadow: none;\\n\\t\\t\\tborder-color: transparent;\\n\\t\\t\\tbackground: none;\\n\\t\\t}\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck.ck-list-styles-list{display:grid}:root{--ck-list-style-button-size:44px}.ck.ck-list-styles-list{column-gap:var(--ck-spacing-medium);grid-template-columns:repeat(3,auto);padding:var(--ck-spacing-large);row-gap:var(--ck-spacing-medium)}.ck.ck-list-styles-list .ck-button{box-sizing:content-box;margin:0;padding:0}.ck.ck-list-styles-list .ck-button,.ck.ck-list-styles-list .ck-button .ck-icon{height:var(--ck-list-style-button-size);width:var(--ck-list-style-button-size)}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../ckeditor5-list/theme/liststyles.css\",\"webpack://./../ckeditor5-theme-lark/theme/ckeditor5-list/liststyles.css\"],\"names\":[],\"mappings\":\"AAKA,wBACC,YACD,CCFA,MACC,gCACD,CAEA,wBAGC,mCAAoC,CAFpC,oCAAwC,CAGxC,+BAAgC,CAFhC,gCA4BD,CAxBC,mCAiBC,sBAAuB,CAPvB,QAAS,CANT,SAmBD,CAJC,+EAhBA,uCAAwC,CADxC,sCAoBA\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.ck.ck-list-styles-list {\\n\\tdisplay: grid;\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n:root {\\n\\t--ck-list-style-button-size: 44px;\\n}\\n\\n.ck.ck-list-styles-list {\\n\\tgrid-template-columns: repeat( 3, auto );\\n\\trow-gap: var(--ck-spacing-medium);\\n\\tcolumn-gap: var(--ck-spacing-medium);\\n\\tpadding: var(--ck-spacing-large);\\n\\n\\t& .ck-button {\\n\\t\\t/* Make the button look like a thumbnail (the icon \\\"takes it all\\\"). */\\n\\t\\twidth: var(--ck-list-style-button-size);\\n\\t\\theight: var(--ck-list-style-button-size);\\n\\t\\tpadding: 0;\\n\\n\\t\\t/*\\n\\t\\t * Buttons are aligned by the grid so disable default button margins to not collide with the\\n\\t\\t * gaps in the grid.\\n\\t\\t */\\n\\t\\tmargin: 0;\\n\\n\\t\\t/*\\n\\t\\t * Make sure the button border (which is displayed on focus, BTW) does not steal pixels\\n\\t\\t * from the button dimensions and, as a result, decrease the size of the icon\\n\\t\\t * (which becomes blurry as it scales down).\\n\\t\\t */\\n\\t\\tbox-sizing: content-box;\\n\\n\\t\\t& .ck-icon {\\n\\t\\t\\twidth: var(--ck-list-style-button-size);\\n\\t\\t\\theight: var(--ck-list-style-button-size);\\n\\t\\t}\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \":root{--ck-todo-list-checkmark-size:16px}.ck-content .todo-list{list-style:none}.ck-content .todo-list li{margin-bottom:5px;position:relative}.ck-content .todo-list li .todo-list{margin-top:5px}.ck-content .todo-list .todo-list__label>input{-webkit-appearance:none;border:0;display:inline-block;height:var(--ck-todo-list-checkmark-size);left:-25px;margin-left:0;margin-right:-15px;position:relative;right:0;vertical-align:middle;width:var(--ck-todo-list-checkmark-size)}.ck-content[dir=rtl] .todo-list .todo-list__label>input{left:0;margin-left:-15px;margin-right:0;right:-25px}.ck-content .todo-list .todo-list__label>input:before{border:1px solid #333;border-radius:2px;box-sizing:border-box;content:\\\"\\\";display:block;height:100%;position:absolute;transition:box-shadow .25s ease-in-out;width:100%}@media (prefers-reduced-motion:reduce){.ck-content .todo-list .todo-list__label>input:before{transition:none}}.ck-content .todo-list .todo-list__label>input:after{border-color:transparent;border-style:solid;border-width:0 calc(var(--ck-todo-list-checkmark-size)/8) calc(var(--ck-todo-list-checkmark-size)/8) 0;box-sizing:content-box;content:\\\"\\\";display:block;height:calc(var(--ck-todo-list-checkmark-size)/2.6);left:calc(var(--ck-todo-list-checkmark-size)/3);pointer-events:none;position:absolute;top:calc(var(--ck-todo-list-checkmark-size)/5.3);transform:rotate(45deg);width:calc(var(--ck-todo-list-checkmark-size)/5.3)}.ck-content .todo-list .todo-list__label>input[checked]:before{background:#26ab33;border-color:#26ab33}.ck-content .todo-list .todo-list__label>input[checked]:after{border-color:#fff}.ck-content .todo-list .todo-list__label .todo-list__label__description{vertical-align:middle}.ck-content .todo-list .todo-list__label.todo-list__label_without-description input[type=checkbox]{position:absolute}.ck-editor__editable.ck-content .todo-list .todo-list__label>input,.ck-editor__editable.ck-content .todo-list .todo-list__label>span[contenteditable=false]>input{cursor:pointer}.ck-editor__editable.ck-content .todo-list .todo-list__label>input:hover:before,.ck-editor__editable.ck-content .todo-list .todo-list__label>span[contenteditable=false]>input:hover:before{box-shadow:0 0 0 5px rgba(0,0,0,.1)}.ck-editor__editable.ck-content .todo-list .todo-list__label>span[contenteditable=false]>input{-webkit-appearance:none;border:0;display:inline-block;height:var(--ck-todo-list-checkmark-size);left:-25px;margin-left:0;margin-right:-15px;position:relative;right:0;vertical-align:middle;width:var(--ck-todo-list-checkmark-size)}.ck-editor__editable.ck-content[dir=rtl] .todo-list .todo-list__label>span[contenteditable=false]>input{left:0;margin-left:-15px;margin-right:0;right:-25px}.ck-editor__editable.ck-content .todo-list .todo-list__label>span[contenteditable=false]>input:before{border:1px solid #333;border-radius:2px;box-sizing:border-box;content:\\\"\\\";display:block;height:100%;position:absolute;transition:box-shadow .25s ease-in-out;width:100%}@media (prefers-reduced-motion:reduce){.ck-editor__editable.ck-content .todo-list .todo-list__label>span[contenteditable=false]>input:before{transition:none}}.ck-editor__editable.ck-content .todo-list .todo-list__label>span[contenteditable=false]>input:after{border-color:transparent;border-style:solid;border-width:0 calc(var(--ck-todo-list-checkmark-size)/8) calc(var(--ck-todo-list-checkmark-size)/8) 0;box-sizing:content-box;content:\\\"\\\";display:block;height:calc(var(--ck-todo-list-checkmark-size)/2.6);left:calc(var(--ck-todo-list-checkmark-size)/3);pointer-events:none;position:absolute;top:calc(var(--ck-todo-list-checkmark-size)/5.3);transform:rotate(45deg);width:calc(var(--ck-todo-list-checkmark-size)/5.3)}.ck-editor__editable.ck-content .todo-list .todo-list__label>span[contenteditable=false]>input[checked]:before{background:#26ab33;border-color:#26ab33}.ck-editor__editable.ck-content .todo-list .todo-list__label>span[contenteditable=false]>input[checked]:after{border-color:#fff}.ck-editor__editable.ck-content .todo-list .todo-list__label.todo-list__label_without-description input[type=checkbox]{position:absolute}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../ckeditor5-list/theme/todolist.css\"],\"names\":[],\"mappings\":\"AAKA,MACC,kCACD,CA4EA,uBACC,eAwBD,CAtBC,0BAEC,iBAAkB,CADlB,iBAMD,CAHC,qCACC,cACD,CAIA,+CAtFD,uBAAwB,CAQxB,QAAS,CAPT,oBAAqB,CAGrB,yCAA0C,CAO1C,UAAW,CAGX,aAAc,CAFd,kBAAmB,CAVnB,iBAAkB,CAWlB,OAAQ,CARR,qBAAsB,CAFtB,wCAqFC,CAFA,wDApEA,MAAO,CAGP,iBAAkB,CAFlB,cAAe,CACf,WAoEA,CAhED,sDAOC,qBAAiC,CACjC,iBAAkB,CALlB,qBAAsB,CACtB,UAAW,CAHX,aAAc,CAKd,WAAY,CAJZ,iBAAkB,CAOlB,sCAAwC,CAJxC,UASD,CAHC,uCAXD,sDAYE,eAEF,CADC,CAGD,qDAaC,wBAAyB,CADzB,kBAAmB,CAEnB,sGAA+G,CAX/G,sBAAuB,CAEvB,UAAW,CAJX,aAAc,CAUd,mDAAwD,CAHxD,+CAAoD,CAJpD,mBAAoB,CAFpB,iBAAkB,CAOlB,gDAAqD,CAMrD,uBAAwB,CALxB,kDAMD,CAGC,+DACC,kBAA8B,CAC9B,oBACD,CAEA,8DACC,iBACD,CAwBA,wEACC,qBACD,CAEA,mGACC,iBACD,CAYD,kKAEC,cAKD,CAHC,4LACC,mCACD,CAMD,+FAxHA,uBAAwB,CAQxB,QAAS,CAPT,oBAAqB,CAGrB,yCAA0C,CAO1C,UAAW,CAGX,aAAc,CAFd,kBAAmB,CAVnB,iBAAkB,CAWlB,OAAQ,CARR,qBAAsB,CAFtB,wCAuHA,CAFA,wGAtGC,MAAO,CAGP,iBAAkB,CAFlB,cAAe,CACf,WAsGD,CAlGA,sGAOC,qBAAiC,CACjC,iBAAkB,CALlB,qBAAsB,CACtB,UAAW,CAHX,aAAc,CAKd,WAAY,CAJZ,iBAAkB,CAOlB,sCAAwC,CAJxC,UASD,CAHC,uCAXD,sGAYE,eAEF,CADC,CAGD,qGAaC,wBAAyB,CADzB,kBAAmB,CAEnB,sGAA+G,CAX/G,sBAAuB,CAEvB,UAAW,CAJX,aAAc,CAUd,mDAAwD,CAHxD,+CAAoD,CAJpD,mBAAoB,CAFpB,iBAAkB,CAOlB,gDAAqD,CAMrD,uBAAwB,CALxB,kDAMD,CAGC,+GACC,kBAA8B,CAC9B,oBACD,CAEA,8GACC,iBACD,CA2DA,uHACC,iBACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n:root {\\n\\t--ck-todo-list-checkmark-size: 16px;\\n}\\n\\n@define-mixin todo-list-checkbox {\\n\\t-webkit-appearance: none;\\n\\tdisplay: inline-block;\\n\\tposition: relative;\\n\\twidth: var(--ck-todo-list-checkmark-size);\\n\\theight: var(--ck-todo-list-checkmark-size);\\n\\tvertical-align: middle;\\n\\n\\t/* Needed on iOS */\\n\\tborder: 0;\\n\\n\\t/* LTR styles */\\n\\tleft: -25px;\\n\\tmargin-right: -15px;\\n\\tright: 0;\\n\\tmargin-left: 0;\\n\\n\\t/* RTL styles */\\n\\t@nest [dir=rtl]& {\\n\\t\\tleft: 0;\\n\\t\\tmargin-right: 0;\\n\\t\\tright: -25px;\\n\\t\\tmargin-left: -15px;\\n\\t}\\n\\n\\t&::before {\\n\\t\\tdisplay: block;\\n\\t\\tposition: absolute;\\n\\t\\tbox-sizing: border-box;\\n\\t\\tcontent: '';\\n\\t\\twidth: 100%;\\n\\t\\theight: 100%;\\n\\t\\tborder: 1px solid hsl(0, 0%, 20%);\\n\\t\\tborder-radius: 2px;\\n\\t\\ttransition: 250ms ease-in-out box-shadow;\\n\\n\\t\\t@media (prefers-reduced-motion: reduce) {\\n\\t\\t\\ttransition: none;\\n\\t\\t}\\n\\t}\\n\\n\\t&::after {\\n\\t\\tdisplay: block;\\n\\t\\tposition: absolute;\\n\\t\\tbox-sizing: content-box;\\n\\t\\tpointer-events: none;\\n\\t\\tcontent: '';\\n\\n\\t\\t/* Calculate tick position, size and border-width proportional to the checkmark size. */\\n\\t\\tleft: calc( var(--ck-todo-list-checkmark-size) / 3 );\\n\\t\\ttop: calc( var(--ck-todo-list-checkmark-size) / 5.3 );\\n\\t\\twidth: calc( var(--ck-todo-list-checkmark-size) / 5.3 );\\n\\t\\theight: calc( var(--ck-todo-list-checkmark-size) / 2.6 );\\n\\t\\tborder-style: solid;\\n\\t\\tborder-color: transparent;\\n\\t\\tborder-width: 0 calc( var(--ck-todo-list-checkmark-size) / 8 ) calc( var(--ck-todo-list-checkmark-size) / 8 ) 0;\\n\\t\\ttransform: rotate(45deg);\\n\\t}\\n\\n\\t&[checked] {\\n\\t\\t&::before {\\n\\t\\t\\tbackground: hsl(126, 64%, 41%);\\n\\t\\t\\tborder-color: hsl(126, 64%, 41%);\\n\\t\\t}\\n\\n\\t\\t&::after {\\n\\t\\t\\tborder-color: hsl(0, 0%, 100%);\\n\\t\\t}\\n\\t}\\n}\\n\\n/*\\n * To-do list content styles.\\n */\\n.ck-content .todo-list {\\n\\tlist-style: none;\\n\\n\\t& li {\\n\\t\\tposition: relative;\\n\\t\\tmargin-bottom: 5px;\\n\\n\\t\\t& .todo-list {\\n\\t\\t\\tmargin-top: 5px;\\n\\t\\t}\\n\\t}\\n\\n\\t& .todo-list__label {\\n\\t\\t& > input {\\n\\t\\t\\t@mixin todo-list-checkbox;\\n\\t\\t}\\n\\n\\t\\t& .todo-list__label__description {\\n\\t\\t\\tvertical-align: middle;\\n\\t\\t}\\n\\n\\t\\t&.todo-list__label_without-description input[type=checkbox] {\\n\\t\\t\\tposition: absolute;\\n\\t\\t}\\n\\t}\\n}\\n\\n/*\\n * To-do list editing view styles.\\n */\\n.ck-editor__editable.ck-content .todo-list .todo-list__label {\\n\\t/*\\n\\t * To-do list should be interactive only during the editing\\n\\t * (https://github.com/ckeditor/ckeditor5/issues/2090).\\n\\t */\\n\\t& > input,\\n\\t& > span[contenteditable=false] > input {\\n\\t\\tcursor: pointer;\\n\\n\\t\\t&:hover::before {\\n\\t\\t\\tbox-shadow: 0 0 0 5px hsla(0, 0%, 0%, 0.1);\\n\\t\\t}\\n\\t}\\n\\n\\t/*\\n\\t * Document Lists - editing view has an additional span around checkbox.\\n\\t */\\n\\t& > span[contenteditable=false] > input {\\n\\t\\t@mixin todo-list-checkbox;\\n\\t}\\n\\n\\t&.todo-list__label_without-description {\\n\\t\\t& input[type=checkbox] {\\n\\t\\t\\tposition: absolute;\\n\\t\\t}\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck.ck-character-grid{max-width:100%}.ck.ck-character-grid .ck-character-grid__tiles{display:grid}:root{--ck-character-grid-tile-size:24px}.ck.ck-character-grid{max-height:200px;overflow-x:hidden;overflow-y:auto;width:350px}@media screen and (max-width:600px){.ck.ck-character-grid{width:190px}}.ck.ck-character-grid .ck-character-grid__tiles{grid-template-columns:repeat(10,1fr);margin:var(--ck-spacing-standard) var(--ck-spacing-large);grid-gap:var(--ck-spacing-standard)}@media screen and (max-width:600px){.ck.ck-character-grid .ck-character-grid__tiles{grid-template-columns:repeat(5,1fr)}}.ck.ck-character-grid .ck-character-grid__tile{border:0;font-size:1.2em;height:var(--ck-character-grid-tile-size);min-height:var(--ck-character-grid-tile-size);min-width:var(--ck-character-grid-tile-size);padding:0;transition:box-shadow .2s ease;width:var(--ck-character-grid-tile-size)}@media (prefers-reduced-motion:reduce){.ck.ck-character-grid .ck-character-grid__tile{transition:none}}.ck.ck-character-grid .ck-character-grid__tile:focus:not(.ck-disabled),.ck.ck-character-grid .ck-character-grid__tile:hover:not(.ck-disabled){border:0;box-shadow:inset 0 0 0 1px var(--ck-color-base-background),0 0 0 2px var(--ck-color-focus-border)}.ck.ck-character-grid .ck-character-grid__tile .ck-button__label{line-height:var(--ck-character-grid-tile-size);text-align:center;width:100%}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../ckeditor5-special-characters/theme/charactergrid.css\",\"webpack://./../ckeditor5-theme-lark/theme/ckeditor5-special-characters/charactergrid.css\",\"webpack://./../ckeditor5-ui/theme/mixins/_rwd.css\"],\"names\":[],\"mappings\":\"AAKA,sBACC,cAKD,CAHC,gDACC,YACD,CCFD,MACC,kCACD,CAEA,sBAIC,gBAAiB,CAFjB,iBAAkB,CADlB,eAAgB,CAEhB,WA6CD,CCtDC,oCDMD,sBAOE,WAyCF,CCpDC,CDcA,gDACC,oCAAsC,CACtC,yDAA0D,CAC1D,mCAKD,CCxBA,oCDgBA,gDAME,mCAEF,CCtBA,CDwBA,+CAQC,QAAS,CAHT,eAAgB,CAHhB,yCAA0C,CAE1C,6CAA8C,CAD9C,4CAA6C,CAG7C,SAAU,CACV,8BAA+B,CAN/B,wCA0BD,CAjBC,uCAVD,+CAWE,eAgBF,CAfC,CAEA,8IAGC,QAAS,CACT,iGACD,CAGA,iEACC,8CAA+C,CAE/C,iBAAkB,CADlB,UAED\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.ck.ck-character-grid {\\n\\tmax-width: 100%;\\n\\n\\t& .ck-character-grid__tiles {\\n\\t\\tdisplay: grid;\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n@import \\\"@ckeditor/ckeditor5-ui/theme/mixins/_rwd.css\\\";\\n@import \\\"../mixins/_rounded.css\\\";\\n\\n:root {\\n\\t--ck-character-grid-tile-size: 24px;\\n}\\n\\n.ck.ck-character-grid {\\n\\toverflow-y: auto;\\n\\toverflow-x: hidden;\\n\\twidth: 350px;\\n\\tmax-height: 200px;\\n\\n\\t@mixin ck-media-phone {\\n\\t\\twidth: 190px;\\n\\t}\\n\\n\\t& .ck-character-grid__tiles {\\n\\t\\tgrid-template-columns: repeat(10, 1fr);\\n\\t\\tmargin: var(--ck-spacing-standard) var(--ck-spacing-large);\\n\\t\\tgrid-gap: var(--ck-spacing-standard);\\n\\n\\t\\t@mixin ck-media-phone {\\n\\t\\t\\tgrid-template-columns: repeat(5, 1fr);\\n\\t\\t}\\n\\t}\\n\\n\\t& .ck-character-grid__tile {\\n\\t\\twidth: var(--ck-character-grid-tile-size);\\n\\t\\theight: var(--ck-character-grid-tile-size);\\n\\t\\tmin-width: var(--ck-character-grid-tile-size);\\n\\t\\tmin-height: var(--ck-character-grid-tile-size);\\n\\t\\tfont-size: 1.2em;\\n\\t\\tpadding: 0;\\n\\t\\ttransition: .2s ease box-shadow;\\n\\t\\tborder: 0;\\n\\n\\t\\t@media (prefers-reduced-motion: reduce) {\\n\\t\\t\\ttransition: none;\\n\\t\\t}\\n\\n\\t\\t&:focus:not( .ck-disabled ),\\n\\t\\t&:hover:not( .ck-disabled ) {\\n\\t\\t\\t/* Disable the default .ck-button's border ring. */\\n\\t\\t\\tborder: 0;\\n\\t\\t\\tbox-shadow: inset 0 0 0 1px var(--ck-color-base-background), 0 0 0 2px var(--ck-color-focus-border);\\n\\t\\t}\\n\\n\\t\\t/* Make sure the glyph is rendered in the center of the button */\\n\\t\\t& .ck-button__label {\\n\\t\\t\\tline-height: var(--ck-character-grid-tile-size);\\n\\t\\t\\twidth: 100%;\\n\\t\\t\\ttext-align: center;\\n\\t\\t}\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n@define-mixin ck-media-phone {\\n\\t@media screen and (max-width: 600px) {\\n\\t\\t@mixin-content;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck.ck-character-info{border-top:1px solid var(--ck-color-base-border);display:flex;justify-content:space-between;padding:var(--ck-spacing-small) var(--ck-spacing-large)}.ck.ck-character-info>*{font-size:var(--ck-font-size-small);text-transform:uppercase}.ck.ck-character-info .ck-character-info__name{max-width:280px;overflow:hidden;text-overflow:ellipsis}.ck.ck-character-info .ck-character-info__code{opacity:.6}@media screen and (max-width:600px){.ck.ck-character-info{max-width:190px}}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../ckeditor5-special-characters/theme/characterinfo.css\",\"webpack://./../ckeditor5-theme-lark/theme/ckeditor5-special-characters/characterinfo.css\",\"webpack://./../ckeditor5-ui/theme/mixins/_rwd.css\"],\"names\":[],\"mappings\":\"AAKA,sBCIC,gDAAiD,CDHjD,YAAa,CACb,6BAA8B,CCC9B,uDDAD,CCGC,wBAEC,mCAAoC,CADpC,wBAED,CAEA,+CACC,eAAgB,CAEhB,eAAgB,CADhB,sBAED,CAEA,+CACC,UACD,CClBA,oCDCD,sBAoBE,eAEF,CCrBC\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.ck.ck-character-info {\\n\\tdisplay: flex;\\n\\tjustify-content: space-between;\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n@import \\\"@ckeditor/ckeditor5-ui/theme/mixins/_rwd.css\\\";\\n\\n.ck.ck-character-info {\\n\\tpadding: var(--ck-spacing-small) var(--ck-spacing-large);\\n\\tborder-top: 1px solid var(--ck-color-base-border);\\n\\n\\t& > * {\\n\\t\\ttext-transform: uppercase;\\n\\t\\tfont-size: var(--ck-font-size-small);\\n\\t}\\n\\n\\t& .ck-character-info__name {\\n\\t\\tmax-width: 280px;\\n\\t\\ttext-overflow: ellipsis;\\n\\t\\toverflow: hidden;\\n\\t}\\n\\n\\t& .ck-character-info__code {\\n\\t\\topacity: .6;\\n\\t}\\n\\n\\t@mixin ck-media-phone {\\n\\t\\tmax-width: 190px;\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n@define-mixin ck-media-phone {\\n\\t@media screen and (max-width: 600px) {\\n\\t\\t@mixin-content;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck.ck-special-characters-navigation>.ck-label{max-width:160px;overflow:hidden;text-overflow:ellipsis}.ck.ck-special-characters-navigation>.ck-dropdown .ck-dropdown__panel{max-height:250px;overflow-x:hidden;overflow-y:auto}@media screen and (max-width:600px){.ck.ck-special-characters-navigation{max-width:190px}.ck.ck-special-characters-navigation>.ck-form__header__label{overflow:hidden;text-overflow:ellipsis}}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../ckeditor5-theme-lark/theme/ckeditor5-special-characters/specialcharacters.css\",\"webpack://./../ckeditor5-ui/theme/mixins/_rwd.css\"],\"names\":[],\"mappings\":\"AAUC,+CACC,eAAgB,CAEhB,eAAgB,CADhB,sBAED,CAEA,sEAEC,gBAAiB,CAEjB,iBAAkB,CADlB,eAED,CCfA,oCDED,qCAgBE,eAOF,CALE,6DAEC,eAAgB,CADhB,sBAED,CCrBD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n@import \\\"@ckeditor/ckeditor5-ui/theme/mixins/_dir.css\\\";\\n@import \\\"@ckeditor/ckeditor5-ui/theme/mixins/_rwd.css\\\";\\n\\n.ck.ck-special-characters-navigation {\\n\\n\\t& > .ck-label {\\n\\t\\tmax-width: 160px;\\n\\t\\ttext-overflow: ellipsis;\\n\\t\\toverflow: hidden;\\n\\t}\\n\\n\\t& > .ck-dropdown .ck-dropdown__panel {\\n\\t\\t/* There could be dozens of categories available. Use scroll to prevent a 10e6px dropdown. */\\n\\t\\tmax-height: 250px;\\n\\t\\toverflow-y: auto;\\n\\t\\toverflow-x: hidden;\\n\\t}\\n\\n\\t@mixin ck-media-phone {\\n\\t\\tmax-width: 190px;\\n\\n\\t\\t& > .ck-form__header__label {\\n\\t\\t\\ttext-overflow: ellipsis;\\n\\t\\t\\toverflow: hidden;\\n\\t\\t}\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n@define-mixin ck-media-phone {\\n\\t@media screen and (max-width: 600px) {\\n\\t\\t@mixin-content;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck.ck-input-color{display:flex;flex-direction:row-reverse;width:100%}.ck.ck-input-color>input.ck.ck-input-text{flex-grow:1;min-width:auto}.ck.ck-input-color>div.ck.ck-dropdown{min-width:auto}.ck.ck-input-color>div.ck.ck-dropdown>.ck-input-color__button .ck-dropdown__arrow{display:none}.ck.ck-input-color .ck.ck-input-color__button{display:flex}.ck.ck-input-color .ck.ck-input-color__button .ck.ck-input-color__button__preview{overflow:hidden;position:relative}.ck.ck-input-color .ck.ck-input-color__button .ck.ck-input-color__button__preview>.ck.ck-input-color__button__preview__no-color-indicator{display:block;position:absolute}[dir=ltr] .ck.ck-input-color>.ck.ck-input-text{border-bottom-right-radius:0;border-top-right-radius:0}[dir=rtl] .ck.ck-input-color>.ck.ck-input-text{border-bottom-left-radius:0;border-top-left-radius:0}.ck.ck-input-color>.ck.ck-input-text:focus{z-index:0}.ck.ck-input-color>.ck.ck-dropdown>.ck.ck-button.ck-input-color__button{padding:0}[dir=ltr] .ck.ck-input-color>.ck.ck-dropdown>.ck.ck-button.ck-input-color__button{border-bottom-left-radius:0;border-top-left-radius:0}[dir=ltr] .ck.ck-input-color>.ck.ck-dropdown>.ck.ck-button.ck-input-color__button:not(:focus){border-left:1px solid transparent}[dir=rtl] .ck.ck-input-color>.ck.ck-dropdown>.ck.ck-button.ck-input-color__button{border-bottom-right-radius:0;border-top-right-radius:0}[dir=rtl] .ck.ck-input-color>.ck.ck-dropdown>.ck.ck-button.ck-input-color__button:not(:focus){border-right:1px solid transparent}.ck.ck-input-color>.ck.ck-dropdown>.ck.ck-button.ck-input-color__button.ck-disabled{background:var(--ck-color-input-disabled-background)}.ck.ck-input-color>.ck.ck-dropdown>.ck.ck-button.ck-input-color__button>.ck.ck-input-color__button__preview{border-radius:0}.ck-rounded-corners .ck.ck-input-color>.ck.ck-dropdown>.ck.ck-button.ck-input-color__button>.ck.ck-input-color__button__preview,.ck.ck-input-color>.ck.ck-dropdown>.ck.ck-button.ck-input-color__button>.ck.ck-input-color__button__preview.ck-rounded-corners{border-radius:var(--ck-border-radius)}.ck.ck-input-color>.ck.ck-dropdown>.ck.ck-button.ck-input-color__button>.ck.ck-input-color__button__preview{border:1px solid var(--ck-color-input-border);height:20px;width:20px}.ck.ck-input-color>.ck.ck-dropdown>.ck.ck-button.ck-input-color__button>.ck.ck-input-color__button__preview>.ck.ck-input-color__button__preview__no-color-indicator{background:red;border-radius:2px;height:150%;left:50%;top:-30%;transform:rotate(45deg);transform-origin:50%;width:8%}.ck.ck-input-color .ck.ck-input-color__remove-color{border-bottom-left-radius:0;border-bottom-right-radius:0;padding:calc(var(--ck-spacing-standard)/2) var(--ck-spacing-standard);width:100%}.ck.ck-input-color .ck.ck-input-color__remove-color:not(:focus){border-bottom:1px solid var(--ck-color-input-border)}[dir=ltr] .ck.ck-input-color .ck.ck-input-color__remove-color{border-top-right-radius:0}[dir=rtl] .ck.ck-input-color .ck.ck-input-color__remove-color{border-top-left-radius:0}.ck.ck-input-color .ck.ck-input-color__remove-color .ck.ck-icon{margin-right:var(--ck-spacing-standard)}[dir=rtl] .ck.ck-input-color .ck.ck-input-color__remove-color .ck.ck-icon{margin-left:var(--ck-spacing-standard);margin-right:0}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../ckeditor5-table/theme/colorinput.css\",\"webpack://./../ckeditor5-theme-lark/theme/ckeditor5-table/colorinput.css\",\"webpack://./../ckeditor5-theme-lark/theme/mixins/_rounded.css\"],\"names\":[],\"mappings\":\"AAKA,mBAEC,YAAa,CACb,0BAA2B,CAF3B,UAgCD,CA5BC,0CAEC,WAAY,CADZ,cAED,CAEA,sCACC,cAMD,CAHC,kFACC,YACD,CAGD,8CAEC,YAWD,CATC,kFAEC,eAAgB,CADhB,iBAOD,CAJC,0IAEC,aAAc,CADd,iBAED,CC1BF,+CAGE,4BAA6B,CAD7B,yBAcF,CAhBA,+CAQE,2BAA4B,CAD5B,wBASF,CAHC,2CACC,SACD,CAIA,wEACC,SA0CD,CA3CA,kFAKE,2BAA4B,CAD5B,wBAuCF,CApCE,8FACC,iCACD,CATF,kFAcE,4BAA6B,CAD7B,yBA8BF,CA3BE,8FACC,kCACD,CAGD,oFACC,oDACD,CAEA,4GC1CF,eD2DE,CAjBA,+PCtCD,qCDuDC,CAjBA,4GAKC,6CAA8C,CAD9C,WAAY,CADZ,UAcD,CAVC,oKAKC,cAA6B,CAC7B,iBAAkB,CAHlB,WAAY,CADZ,QAAS,CADT,QAAS,CAMT,uBAAwB,CACxB,oBAAqB,CAJrB,QAKD,CAKH,oDAIC,2BAA4B,CAC5B,4BAA6B,CAH7B,qEAAwE,CADxE,UA0BD,CApBC,gEACC,oDACD,CATD,8DAYE,yBAeF,CA3BA,8DAgBE,wBAWF,CARC,gEACC,uCAMD,CAPA,0EAKE,sCAAuC,CADvC,cAGF\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.ck.ck-input-color {\\n\\twidth: 100%;\\n\\tdisplay: flex;\\n\\tflex-direction: row-reverse;\\n\\n\\t& > input.ck.ck-input-text {\\n\\t\\tmin-width: auto;\\n\\t\\tflex-grow: 1;\\n\\t}\\n\\n\\t& > div.ck.ck-dropdown {\\n\\t\\tmin-width: auto;\\n\\n\\t\\t/* This dropdown has no arrow but a color preview instead. */\\n\\t\\t& > .ck-input-color__button .ck-dropdown__arrow {\\n\\t\\t\\tdisplay: none;\\n\\t\\t}\\n\\t}\\n\\n\\t& .ck.ck-input-color__button {\\n\\t\\t/* Resolving issue with misaligned buttons on Safari (see #10589) */\\n\\t\\tdisplay: flex;\\n\\n\\t\\t& .ck.ck-input-color__button__preview {\\n\\t\\t\\tposition: relative;\\n\\t\\t\\toverflow: hidden;\\n\\n\\t\\t\\t& > .ck.ck-input-color__button__preview__no-color-indicator {\\n\\t\\t\\t\\tposition: absolute;\\n\\t\\t\\t\\tdisplay: block;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n@import \\\"@ckeditor/ckeditor5-ui/theme/mixins/_dir.css\\\";\\n@import \\\"../mixins/_rounded.css\\\";\\n\\n.ck.ck-input-color {\\n\\t& > .ck.ck-input-text {\\n\\t\\t@mixin ck-dir ltr {\\n\\t\\t\\tborder-top-right-radius: 0;\\n\\t\\t\\tborder-bottom-right-radius: 0;\\n\\t\\t}\\n\\n\\t\\t@mixin ck-dir rtl {\\n\\t\\t\\tborder-top-left-radius: 0;\\n\\t\\t\\tborder-bottom-left-radius: 0;\\n\\t\\t}\\n\\n\\t\\t/* Make sure the focused input is always on top of the dropdown button so its\\n\\t\\t outline and border are never cropped (also when the input is read-only). */\\n\\t\\t&:focus {\\n\\t\\t\\tz-index: 0;\\n\\t\\t}\\n\\t}\\n\\n\\t& > .ck.ck-dropdown {\\n\\t\\t& > .ck.ck-button.ck-input-color__button {\\n\\t\\t\\tpadding: 0;\\n\\n\\t\\t\\t@mixin ck-dir ltr {\\n\\t\\t\\t\\tborder-top-left-radius: 0;\\n\\t\\t\\t\\tborder-bottom-left-radius: 0;\\n\\n\\t\\t\\t\\t&:not(:focus) {\\n\\t\\t\\t\\t\\tborder-left: 1px solid transparent;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\n\\t\\t\\t@mixin ck-dir rtl {\\n\\t\\t\\t\\tborder-top-right-radius: 0;\\n\\t\\t\\t\\tborder-bottom-right-radius: 0;\\n\\n\\t\\t\\t\\t&:not(:focus) {\\n\\t\\t\\t\\t\\tborder-right: 1px solid transparent;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\n\\t\\t\\t&.ck-disabled {\\n\\t\\t\\t\\tbackground: var(--ck-color-input-disabled-background);\\n\\t\\t\\t}\\n\\n\\t\\t\\t& > .ck.ck-input-color__button__preview {\\n\\t\\t\\t\\t@mixin ck-rounded-corners;\\n\\n\\t\\t\\t\\twidth: 20px;\\n\\t\\t\\t\\theight: 20px;\\n\\t\\t\\t\\tborder: 1px solid var(--ck-color-input-border);\\n\\n\\t\\t\\t\\t& > .ck.ck-input-color__button__preview__no-color-indicator {\\n\\t\\t\\t\\t\\ttop: -30%;\\n\\t\\t\\t\\t\\tleft: 50%;\\n\\t\\t\\t\\t\\theight: 150%;\\n\\t\\t\\t\\t\\twidth: 8%;\\n\\t\\t\\t\\t\\tbackground: hsl(0, 100%, 50%);\\n\\t\\t\\t\\t\\tborder-radius: 2px;\\n\\t\\t\\t\\t\\ttransform: rotate(45deg);\\n\\t\\t\\t\\t\\ttransform-origin: 50%;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t& .ck.ck-input-color__remove-color {\\n\\t\\twidth: 100%;\\n\\t\\tpadding: calc(var(--ck-spacing-standard) / 2) var(--ck-spacing-standard);\\n\\n\\t\\tborder-bottom-left-radius: 0;\\n\\t\\tborder-bottom-right-radius: 0;\\n\\n\\t\\t&:not(:focus) {\\n\\t\\t\\tborder-bottom: 1px solid var(--ck-color-input-border);\\n\\t\\t}\\n\\n\\t\\t@mixin ck-dir ltr {\\n\\t\\t\\tborder-top-right-radius: 0;\\n\\t\\t}\\n\\n\\t\\t@mixin ck-dir rtl {\\n\\t\\t\\tborder-top-left-radius: 0;\\n\\t\\t}\\n\\n\\t\\t& .ck.ck-icon {\\n\\t\\t\\tmargin-right: var(--ck-spacing-standard);\\n\\n\\t\\t\\t@mixin ck-dir rtl {\\n\\t\\t\\t\\tmargin-right: 0;\\n\\t\\t\\t\\tmargin-left: var(--ck-spacing-standard);\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n/**\\n * Implements rounded corner interface for .ck-rounded-corners class.\\n *\\n * @see $ck-border-radius\\n */\\n@define-mixin ck-rounded-corners {\\n\\tborder-radius: 0;\\n\\n\\t@nest .ck-rounded-corners &,\\n\\t&.ck-rounded-corners {\\n\\t\\tborder-radius: var(--ck-border-radius);\\n\\t\\t@mixin-content;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck.ck-form{padding:0 0 var(--ck-spacing-large)}.ck.ck-form:focus{outline:none}.ck.ck-form .ck.ck-input-text{min-width:100%;width:0}.ck.ck-form .ck.ck-dropdown{min-width:100%}.ck.ck-form .ck.ck-dropdown .ck-dropdown__button:not(:focus){border:1px solid var(--ck-color-base-border)}.ck.ck-form .ck.ck-dropdown .ck-dropdown__button .ck-button__label{width:100%}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../ckeditor5-theme-lark/theme/ckeditor5-table/form.css\"],\"names\":[],\"mappings\":\"AAKA,YACC,mCAyBD,CAvBC,kBAEC,YACD,CAEA,8BACC,cAAe,CACf,OACD,CAEA,4BACC,cAWD,CARE,6DACC,4CACD,CAEA,mEACC,UACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.ck.ck-form {\\n\\tpadding: 0 0 var(--ck-spacing-large);\\n\\n\\t&:focus {\\n\\t\\t/* See: https://github.com/ckeditor/ckeditor5/issues/4773 */\\n\\t\\toutline: none;\\n\\t}\\n\\n\\t& .ck.ck-input-text {\\n\\t\\tmin-width: 100%;\\n\\t\\twidth: 0;\\n\\t}\\n\\n\\t& .ck.ck-dropdown {\\n\\t\\tmin-width: 100%;\\n\\n\\t\\t& .ck-dropdown__button {\\n\\t\\t\\t&:not(:focus) {\\n\\t\\t\\t\\tborder: 1px solid var(--ck-color-base-border);\\n\\t\\t\\t}\\n\\n\\t\\t\\t& .ck-button__label {\\n\\t\\t\\t\\twidth: 100%;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck.ck-form__row{display:flex;flex-direction:row;flex-wrap:nowrap;justify-content:space-between}.ck.ck-form__row>:not(.ck-label){flex-grow:1}.ck.ck-form__row.ck-table-form__action-row .ck-button-cancel,.ck.ck-form__row.ck-table-form__action-row .ck-button-save{justify-content:center}.ck.ck-form__row{padding:var(--ck-spacing-standard) var(--ck-spacing-large) 0}[dir=ltr] .ck.ck-form__row>:not(.ck-label)+*{margin-left:var(--ck-spacing-large)}[dir=rtl] .ck.ck-form__row>:not(.ck-label)+*{margin-right:var(--ck-spacing-large)}.ck.ck-form__row>.ck-label{min-width:100%;width:100%}.ck.ck-form__row.ck-table-form__action-row{margin-top:var(--ck-spacing-large)}.ck.ck-form__row.ck-table-form__action-row .ck-button .ck-button__label{color:var(--ck-color-text)}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../ckeditor5-table/theme/formrow.css\",\"webpack://./../ckeditor5-theme-lark/theme/ckeditor5-table/formrow.css\"],\"names\":[],\"mappings\":\"AAKA,iBACC,YAAa,CACb,kBAAmB,CACnB,gBAAiB,CACjB,6BAaD,CAVC,iCACC,WACD,CAGC,wHAEC,sBACD,CCbF,iBACC,4DA2BD,CAvBE,6CAEE,mCAMF,CARA,6CAME,oCAEF,CAGD,2BAEC,cAAe,CADf,UAED,CAEA,2CACC,kCAKD,CAHC,wEACC,0BACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.ck.ck-form__row {\\n\\tdisplay: flex;\\n\\tflex-direction: row;\\n\\tflex-wrap: nowrap;\\n\\tjustify-content: space-between;\\n\\n\\t/* Ignore labels that work as fieldset legends */\\n\\t& > *:not(.ck-label) {\\n\\t\\tflex-grow: 1;\\n\\t}\\n\\n\\t&.ck-table-form__action-row {\\n\\t\\t& .ck-button-save,\\n\\t\\t& .ck-button-cancel {\\n\\t\\t\\tjustify-content: center;\\n\\t\\t}\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n@import \\\"@ckeditor/ckeditor5-ui/theme/mixins/_dir.css\\\";\\n\\n.ck.ck-form__row {\\n\\tpadding: var(--ck-spacing-standard) var(--ck-spacing-large) 0;\\n\\n\\t/* Ignore labels that work as fieldset legends */\\n\\t& > *:not(.ck-label) {\\n\\t\\t& + * {\\n\\t\\t\\t@mixin ck-dir ltr {\\n\\t\\t\\t\\tmargin-left: var(--ck-spacing-large);\\n\\t\\t\\t}\\n\\n\\t\\t\\t@mixin ck-dir rtl {\\n\\t\\t\\t\\tmargin-right: var(--ck-spacing-large);\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t& > .ck-label {\\n\\t\\twidth: 100%;\\n\\t\\tmin-width: 100%;\\n\\t}\\n\\n\\t&.ck-table-form__action-row {\\n\\t\\tmargin-top: var(--ck-spacing-large);\\n\\n\\t\\t& .ck-button .ck-button__label {\\n\\t\\t\\tcolor: var(--ck-color-text);\\n\\t\\t}\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck .ck-insert-table-dropdown__grid{display:flex;flex-direction:row;flex-wrap:wrap}:root{--ck-insert-table-dropdown-padding:10px;--ck-insert-table-dropdown-box-height:11px;--ck-insert-table-dropdown-box-width:12px;--ck-insert-table-dropdown-box-margin:1px}.ck .ck-insert-table-dropdown__grid{padding:var(--ck-insert-table-dropdown-padding) var(--ck-insert-table-dropdown-padding) 0;width:calc(var(--ck-insert-table-dropdown-box-width)*10 + var(--ck-insert-table-dropdown-box-margin)*20 + var(--ck-insert-table-dropdown-padding)*2)}.ck .ck-insert-table-dropdown__label,.ck[dir=rtl] .ck-insert-table-dropdown__label{text-align:center}.ck .ck-insert-table-dropdown-grid-box{border:1px solid var(--ck-color-base-border);border-radius:1px;margin:var(--ck-insert-table-dropdown-box-margin);min-height:var(--ck-insert-table-dropdown-box-height);min-width:var(--ck-insert-table-dropdown-box-width);outline:none;transition:none}@media (prefers-reduced-motion:reduce){.ck .ck-insert-table-dropdown-grid-box{transition:none}}.ck .ck-insert-table-dropdown-grid-box:focus{box-shadow:none}.ck .ck-insert-table-dropdown-grid-box.ck-on{background:var(--ck-color-focus-outer-shadow);border-color:var(--ck-color-focus-border)}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../ckeditor5-table/theme/inserttable.css\",\"webpack://./../ckeditor5-theme-lark/theme/ckeditor5-table/inserttable.css\"],\"names\":[],\"mappings\":\"AAKA,oCACC,YAAa,CACb,kBAAmB,CACnB,cACD,CCJA,MACC,uCAAwC,CACxC,0CAA2C,CAC3C,yCAA0C,CAC1C,yCACD,CAEA,oCAGC,yFAA0F,CAD1F,oJAED,CAEA,mFAEC,iBACD,CAEA,uCAIC,4CAA6C,CAC7C,iBAAkB,CAFlB,iDAAkD,CADlD,qDAAsD,CADtD,mDAAoD,CAKpD,YAAa,CACb,eAcD,CAZC,uCATD,uCAUE,eAWF,CAVC,CAEA,6CACC,eACD,CAEA,6CAEC,6CAA8C,CAD9C,yCAED\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.ck .ck-insert-table-dropdown__grid {\\n\\tdisplay: flex;\\n\\tflex-direction: row;\\n\\tflex-wrap: wrap;\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n:root {\\n\\t--ck-insert-table-dropdown-padding: 10px;\\n\\t--ck-insert-table-dropdown-box-height: 11px;\\n\\t--ck-insert-table-dropdown-box-width: 12px;\\n\\t--ck-insert-table-dropdown-box-margin: 1px;\\n}\\n\\n.ck .ck-insert-table-dropdown__grid {\\n\\t/* The width of a container should match 10 items in a row so there will be a 10x10 grid. */\\n\\twidth: calc(var(--ck-insert-table-dropdown-box-width) * 10 + var(--ck-insert-table-dropdown-box-margin) * 20 + var(--ck-insert-table-dropdown-padding) * 2);\\n\\tpadding: var(--ck-insert-table-dropdown-padding) var(--ck-insert-table-dropdown-padding) 0;\\n}\\n\\n.ck .ck-insert-table-dropdown__label,\\n.ck[dir=rtl] .ck-insert-table-dropdown__label {\\n\\ttext-align: center;\\n}\\n\\n.ck .ck-insert-table-dropdown-grid-box {\\n\\tmin-width: var(--ck-insert-table-dropdown-box-width);\\n\\tmin-height: var(--ck-insert-table-dropdown-box-height);\\n\\tmargin: var(--ck-insert-table-dropdown-box-margin);\\n\\tborder: 1px solid var(--ck-color-base-border);\\n\\tborder-radius: 1px;\\n\\toutline: none;\\n\\ttransition: none;\\n\\n\\t@media (prefers-reduced-motion: reduce) {\\n\\t\\ttransition: none;\\n\\t}\\n\\n\\t&:focus {\\n\\t\\tbox-shadow: none;\\n\\t}\\n\\n\\t&.ck-on {\\n\\t\\tborder-color: var(--ck-color-focus-border);\\n\\t\\tbackground: var(--ck-color-focus-outer-shadow);\\n\\t}\\n}\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck-content .table{display:table;margin:.9em auto}.ck-content .table table{border:1px double #b3b3b3;border-collapse:collapse;border-spacing:0;height:100%;width:100%}.ck-content .table table td,.ck-content .table table th{border:1px solid #bfbfbf;min-width:2em;padding:.4em}.ck-content .table table th{background:rgba(0,0,0,.05);font-weight:700}.ck-content[dir=rtl] .table th{text-align:right}.ck-content[dir=ltr] .table th{text-align:left}.ck-editor__editable .ck-table-bogus-paragraph{display:inline-block;width:100%}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../ckeditor5-table/theme/table.css\"],\"names\":[],\"mappings\":\"AAKA,mBAKC,aAAc,CADd,gBAiCD,CA9BC,yBAYC,yBAAkC,CAVlC,wBAAyB,CACzB,gBAAiB,CAKjB,WAAY,CADZ,UAsBD,CAfC,wDAQC,wBAAiC,CANjC,aAAc,CACd,YAMD,CAEA,4BAEC,0BAA+B,CAD/B,eAED,CAMF,+BACC,gBACD,CAEA,+BACC,eACD,CAEA,+CAKC,oBAAqB,CAMrB,UACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.ck-content .table {\\n\\t/* Give the table widget some air and center it horizontally */\\n\\t/* The first value should be equal to --ck-spacing-large variable if used in the editor context\\n\\tto avoid the content jumping (See https://github.com/ckeditor/ckeditor5/issues/9825). */\\n\\tmargin: 0.9em auto;\\n\\tdisplay: table;\\n\\n\\t& table {\\n\\t\\t/* The table cells should have slight borders */\\n\\t\\tborder-collapse: collapse;\\n\\t\\tborder-spacing: 0;\\n\\n\\t\\t/* Table width and height are set on the parent . Make sure the table inside stretches\\n\\t\\tto the full dimensions of the container (https://github.com/ckeditor/ckeditor5/issues/6186). */\\n\\t\\twidth: 100%;\\n\\t\\theight: 100%;\\n\\n\\t\\t/* The outer border of the table should be slightly darker than the inner lines.\\n\\t\\tAlso see https://github.com/ckeditor/ckeditor5-table/issues/50. */\\n\\t\\tborder: 1px double hsl(0, 0%, 70%);\\n\\n\\t\\t& td,\\n\\t\\t& th {\\n\\t\\t\\tmin-width: 2em;\\n\\t\\t\\tpadding: .4em;\\n\\n\\t\\t\\t/* The border is inherited from .ck-editor__nested-editable styles, so theoretically it's not necessary here.\\n\\t\\t\\tHowever, the border is a content style, so it should use .ck-content (so it works outside the editor).\\n\\t\\t\\tHence, the duplication. See https://github.com/ckeditor/ckeditor5/issues/6314 */\\n\\t\\t\\tborder: 1px solid hsl(0, 0%, 75%);\\n\\t\\t}\\n\\n\\t\\t& th {\\n\\t\\t\\tfont-weight: bold;\\n\\t\\t\\tbackground: hsla(0, 0%, 0%, 5%);\\n\\t\\t}\\n\\t}\\n}\\n\\n/* Text alignment of the table header should match the editor settings and override the native browser styling,\\nwhen content is available outside the editor. See https://github.com/ckeditor/ckeditor5/issues/6638 */\\n.ck-content[dir=\\\"rtl\\\"] .table th {\\n\\ttext-align: right;\\n}\\n\\n.ck-content[dir=\\\"ltr\\\"] .table th {\\n\\ttext-align: left;\\n}\\n\\n.ck-editor__editable .ck-table-bogus-paragraph {\\n\\t/*\\n\\t * Use display:inline-block to force Chrome/Safari to limit text mutations to this element.\\n\\t * See https://github.com/ckeditor/ckeditor5/issues/6062.\\n\\t */\\n\\tdisplay: inline-block;\\n\\n\\t/*\\n\\t * Inline HTML elements nested in the span should always be dimensioned in relation to the whole cell width.\\n\\t * See https://github.com/ckeditor/ckeditor5/issues/9117.\\n\\t */\\n\\twidth: 100%;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \":root{--ck-color-selector-caption-background:#f7f7f7;--ck-color-selector-caption-text:#333;--ck-color-selector-caption-highlighted-background:#fd0}.ck-content .table>figcaption{background-color:var(--ck-color-selector-caption-background);caption-side:top;color:var(--ck-color-selector-caption-text);display:table-caption;font-size:.75em;outline-offset:-1px;padding:.6em;text-align:center;word-break:break-word}@media (forced-colors:active){.ck-content .table>figcaption{background-color:unset;color:unset}}@media (forced-colors:none){.ck.ck-editor__editable .table>figcaption.table__caption_highlighted{animation:ck-table-caption-highlight .6s ease-out}}.ck.ck-editor__editable .table>figcaption.ck-placeholder:before{overflow:hidden;padding-left:inherit;padding-right:inherit;text-overflow:ellipsis;white-space:nowrap}@keyframes ck-table-caption-highlight{0%{background-color:var(--ck-color-selector-caption-highlighted-background)}to{background-color:var(--ck-color-selector-caption-background)}}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../ckeditor5-table/theme/tablecaption.css\",\"webpack://./../ckeditor5-ui/theme/mixins/_mediacolors.css\"],\"names\":[],\"mappings\":\"AAOA,MACC,8CAAuD,CACvD,qCAAiD,CACjD,uDACD,CAGA,8BAMC,4DAA6D,CAJ7D,gBAAiB,CAGjB,2CAA4C,CAJ5C,qBAAsB,CAOtB,eAAgB,CAChB,mBAAoB,CAFpB,YAAa,CAHb,iBAAkB,CADlB,qBAaD,CCxBC,8BACC,8BDoBA,sBAAuB,CACvB,WCnBA,CACD,CAIA,4BDqBC,qEACC,iDACD,CCnBD,CDsBA,gEASC,eAAgB,CARhB,oBAAqB,CACrB,qBAAsB,CAQtB,sBAAuB,CAFvB,kBAGD,CAGD,sCACC,GACC,wEACD,CAEA,GACC,4DACD,CACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n@import \\\"@ckeditor/ckeditor5-ui/theme/mixins/_mediacolors.css\\\";\\n\\n:root {\\n\\t--ck-color-selector-caption-background: hsl(0, 0%, 97%);\\n\\t--ck-color-selector-caption-text: hsl(0, 0%, 20%);\\n\\t--ck-color-selector-caption-highlighted-background: hsl(52deg 100% 50%);\\n}\\n\\n/* Content styles */\\n.ck-content .table > figcaption {\\n\\tdisplay: table-caption;\\n\\tcaption-side: top;\\n\\tword-break: break-word;\\n\\ttext-align: center;\\n\\tcolor: var(--ck-color-selector-caption-text);\\n\\tbackground-color: var(--ck-color-selector-caption-background);\\n\\tpadding: .6em;\\n\\tfont-size: .75em;\\n\\toutline-offset: -1px;\\n\\n\\t/* Improve placeholder rendering in high-constrast mode (https://github.com/ckeditor/ckeditor5/issues/14907). */\\n\\t@mixin ck-media-forced-colors {\\n\\t\\tbackground-color: unset;\\n\\t\\tcolor: unset;\\n\\t}\\n}\\n\\n/* Editing styles */\\n.ck.ck-editor__editable .table > figcaption {\\n\\t@mixin ck-media-default-colors {\\n\\t\\t&.table__caption_highlighted {\\n\\t\\t\\tanimation: ck-table-caption-highlight .6s ease-out;\\n\\t\\t}\\n\\t}\\n\\n\\t&.ck-placeholder::before {\\n\\t\\tpadding-left: inherit;\\n\\t\\tpadding-right: inherit;\\n\\n\\t\\t/*\\n\\t\\t * Make sure the table caption placeholder doesn't overflow the placeholder area.\\n\\t\\t * See https://github.com/ckeditor/ckeditor5/issues/9162.\\n\\t\\t */\\n\\t\\twhite-space: nowrap;\\n\\t\\toverflow: hidden;\\n\\t\\ttext-overflow: ellipsis;\\n\\t}\\n}\\n\\n@keyframes ck-table-caption-highlight {\\n\\t0% {\\n\\t\\tbackground-color: var(--ck-color-selector-caption-highlighted-background);\\n\\t}\\n\\n\\t100% {\\n\\t\\tbackground-color: var(--ck-color-selector-caption-background);\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n@define-mixin ck-media-forced-colors {\\n\\t@media (forced-colors: active) {\\n\\t\\t& {\\n\\t\\t\\t@mixin-content;\\n\\t\\t}\\n\\t}\\n}\\n\\n@define-mixin ck-media-default-colors {\\n\\t@media (forced-colors: none) {\\n\\t\\t& {\\n\\t\\t\\t@mixin-content;\\n\\t\\t}\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck.ck-table-cell-properties-form .ck-form__row.ck-table-cell-properties-form__alignment-row{flex-wrap:wrap}.ck.ck-table-cell-properties-form .ck-form__row.ck-table-cell-properties-form__alignment-row .ck.ck-toolbar:first-of-type{flex-grow:0.57}.ck.ck-table-cell-properties-form .ck-form__row.ck-table-cell-properties-form__alignment-row .ck.ck-toolbar:last-of-type{flex-grow:0.43}.ck.ck-table-cell-properties-form .ck-form__row.ck-table-cell-properties-form__alignment-row .ck.ck-toolbar .ck-button{flex-grow:1}.ck.ck-table-cell-properties-form{width:320px}.ck.ck-table-cell-properties-form .ck-form__row.ck-table-cell-properties-form__padding-row{align-self:flex-end;padding:0;width:25%}.ck.ck-table-cell-properties-form .ck-form__row.ck-table-cell-properties-form__alignment-row .ck.ck-toolbar{background:none;margin-top:var(--ck-spacing-standard)}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../ckeditor5-table/theme/tablecellproperties.css\",\"webpack://./../ckeditor5-theme-lark/theme/ckeditor5-table/tablecellproperties.css\"],\"names\":[],\"mappings\":\"AAOE,6FACC,cAiBD,CAdE,0HAEC,cACD,CAEA,yHAEC,cACD,CAEA,uHACC,WACD,CClBJ,kCACC,WAkBD,CAfE,2FACC,mBAAoB,CACpB,SAAU,CACV,SACD,CAGC,4GACC,eAAgB,CAGhB,qCACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.ck.ck-table-cell-properties-form {\\n\\t& .ck-form__row {\\n\\t\\t&.ck-table-cell-properties-form__alignment-row {\\n\\t\\t\\tflex-wrap: wrap;\\n\\n\\t\\t\\t& .ck.ck-toolbar {\\n\\t\\t\\t\\t&:first-of-type {\\n\\t\\t\\t\\t\\t/* 4 buttons out of 7 (h-alignment + v-alignment) = 0.57 */\\n\\t\\t\\t\\t\\tflex-grow: 0.57;\\n\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\t&:last-of-type {\\n\\t\\t\\t\\t\\t/* 3 buttons out of 7 (h-alignment + v-alignment) = 0.43 */\\n\\t\\t\\t\\t\\tflex-grow: 0.43;\\n\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\t& .ck-button {\\n\\t\\t\\t\\t\\tflex-grow: 1;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.ck.ck-table-cell-properties-form {\\n\\twidth: 320px;\\n\\n\\t& .ck-form__row {\\n\\t\\t&.ck-table-cell-properties-form__padding-row {\\n\\t\\t\\talign-self: flex-end;\\n\\t\\t\\tpadding: 0;\\n\\t\\t\\twidth: 25%;\\n\\t\\t}\\n\\n\\t\\t&.ck-table-cell-properties-form__alignment-row {\\n\\t\\t\\t& .ck.ck-toolbar {\\n\\t\\t\\t\\tbackground: none;\\n\\n\\t\\t\\t\\t/* Compensate for missing input label that would push the margin (toolbar has no inputs). */\\n\\t\\t\\t\\tmargin-top: var(--ck-spacing-standard);\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \":root{--ck-color-selector-column-resizer-hover:var(--ck-color-base-active);--ck-table-column-resizer-width:7px;--ck-table-column-resizer-position-offset:calc(var(--ck-table-column-resizer-width)*-0.5 - 0.5px)}.ck-content .table .ck-table-resized{table-layout:fixed}.ck-content .table table{overflow:hidden}.ck-content .table td,.ck-content .table th{overflow-wrap:break-word;position:relative}.ck.ck-editor__editable .table .ck-table-column-resizer{bottom:0;cursor:col-resize;position:absolute;right:var(--ck-table-column-resizer-position-offset);top:0;user-select:none;width:var(--ck-table-column-resizer-width);z-index:var(--ck-z-default)}.ck.ck-editor__editable .table[draggable] .ck-table-column-resizer,.ck.ck-editor__editable.ck-column-resize_disabled .table .ck-table-column-resizer{display:none}.ck.ck-editor__editable .table .ck-table-column-resizer:hover,.ck.ck-editor__editable .table .ck-table-column-resizer__active{background-color:var(--ck-color-selector-column-resizer-hover);bottom:-999999px;opacity:.25;top:-999999px}.ck.ck-editor__editable[dir=rtl] .table .ck-table-column-resizer{left:var(--ck-table-column-resizer-position-offset);right:unset}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../ckeditor5-table/theme/tablecolumnresize.css\"],\"names\":[],\"mappings\":\"AAKA,MACC,oEAAqE,CACrE,mCAAoC,CAIpC,iGACD,CAEA,qCACC,kBACD,CAEA,yBACC,eACD,CAEA,4CAIC,wBAAyB,CACzB,iBACD,CAEA,wDAGC,QAAS,CAGT,iBAAkB,CALlB,iBAAkB,CAGlB,oDAAqD,CAFrD,KAAM,CAKN,gBAAiB,CAFjB,0CAA2C,CAG3C,2BACD,CAQA,qJACC,YACD,CAEA,8HAEC,8DAA+D,CAO/D,gBAAiB,CANjB,WAAa,CAKb,aAED,CAEA,iEACC,mDAAoD,CACpD,WACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n:root {\\n\\t--ck-color-selector-column-resizer-hover: var(--ck-color-base-active);\\n\\t--ck-table-column-resizer-width: 7px;\\n\\n\\t/* The offset used for absolute positioning of the resizer element, so that it is placed exactly above the cell border.\\n\\t The value is: minus half the width of the resizer decreased additionaly by the half the width of the border (0.5px). */\\n\\t--ck-table-column-resizer-position-offset: calc(var(--ck-table-column-resizer-width) * -0.5 - 0.5px);\\n}\\n\\n.ck-content .table .ck-table-resized {\\n\\ttable-layout: fixed;\\n}\\n\\n.ck-content .table table {\\n\\toverflow: hidden;\\n}\\n\\n.ck-content .table td,\\n.ck-content .table th {\\n\\t/* To prevent text overflowing beyond its cell when columns are resized by resize handler\\n\\t(https://github.com/ckeditor/ckeditor5/pull/14379#issuecomment-1589460978). */\\n\\toverflow-wrap: break-word;\\n\\tposition: relative;\\n}\\n\\n.ck.ck-editor__editable .table .ck-table-column-resizer {\\n\\tposition: absolute;\\n\\ttop: 0;\\n\\tbottom: 0;\\n\\tright: var(--ck-table-column-resizer-position-offset);\\n\\twidth: var(--ck-table-column-resizer-width);\\n\\tcursor: col-resize;\\n\\tuser-select: none;\\n\\tz-index: var(--ck-z-default);\\n}\\n\\n.ck.ck-editor__editable.ck-column-resize_disabled .table .ck-table-column-resizer {\\n\\tdisplay: none;\\n}\\n\\n/* The resizer elements, which are extended to an extremely high height, break the drag & drop feature in Chrome. To make it work again,\\n all resizers must be hidden while the table is dragged. */\\n.ck.ck-editor__editable .table[draggable] .ck-table-column-resizer {\\n\\tdisplay: none;\\n}\\n\\n.ck.ck-editor__editable .table .ck-table-column-resizer:hover,\\n.ck.ck-editor__editable .table .ck-table-column-resizer__active {\\n\\tbackground-color: var(--ck-color-selector-column-resizer-hover);\\n\\topacity: 0.25;\\n\\t/* The resizer element resides in each cell so to occupy the entire height of the table, which is unknown from a CSS point of view,\\n\\t it is extended to an extremely high height. Even for screens with a very high pixel density, the resizer will fulfill its role as\\n\\t it should, i.e. for a screen of 476 ppi the total height of the resizer will take over 350 sheets of A4 format, which is totally\\n\\t unrealistic height for a single table. */\\n\\ttop: -999999px;\\n\\tbottom: -999999px;\\n}\\n\\n.ck.ck-editor__editable[dir=rtl] .table .ck-table-column-resizer {\\n\\tleft: var(--ck-table-column-resizer-position-offset);\\n\\tright: unset;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \":root{--ck-color-selector-focused-cell-background:rgba(158,201,250,.3)}.ck-widget.table td.ck-editor__nested-editable.ck-editor__nested-editable_focused,.ck-widget.table td.ck-editor__nested-editable:focus,.ck-widget.table th.ck-editor__nested-editable.ck-editor__nested-editable_focused,.ck-widget.table th.ck-editor__nested-editable:focus{background:var(--ck-color-selector-focused-cell-background);border-style:none;outline:1px solid var(--ck-color-focus-border);outline-offset:-1px}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../ckeditor5-theme-lark/theme/ckeditor5-table/tableediting.css\"],\"names\":[],\"mappings\":\"AAKA,MACC,gEACD,CAKE,8QAGC,2DAA4D,CAK5D,iBAAkB,CAClB,8CAA+C,CAC/C,mBACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n:root {\\n\\t--ck-color-selector-focused-cell-background: hsla(212, 90%, 80%, .3);\\n}\\n\\n.ck-widget.table {\\n\\t& td,\\n\\t& th {\\n\\t\\t&.ck-editor__nested-editable.ck-editor__nested-editable_focused,\\n\\t\\t&.ck-editor__nested-editable:focus {\\n\\t\\t\\t/* A very slight background to highlight the focused cell */\\n\\t\\t\\tbackground: var(--ck-color-selector-focused-cell-background);\\n\\n\\t\\t\\t/* Fixes the problem where surrounding cells cover the focused cell's border.\\n\\t\\t\\tIt does not fix the problem in all places but the UX is improved.\\n\\t\\t\\tSee https://github.com/ckeditor/ckeditor5-table/issues/29. */\\n\\t\\t\\tborder-style: none;\\n\\t\\t\\toutline: 1px solid var(--ck-color-focus-border);\\n\\t\\t\\toutline-offset: -1px; /* progressive enhancement - no IE support */\\n\\t\\t}\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck.ck-table-form .ck-form__row.ck-table-form__background-row,.ck.ck-table-form .ck-form__row.ck-table-form__border-row{flex-wrap:wrap}.ck.ck-table-form .ck-form__row.ck-table-form__dimensions-row{align-items:center;flex-wrap:wrap}.ck.ck-table-form .ck-form__row.ck-table-form__dimensions-row .ck-labeled-field-view{align-items:center;display:flex;flex-direction:column-reverse}.ck.ck-table-form .ck-form__row.ck-table-form__dimensions-row .ck-labeled-field-view .ck.ck-dropdown,.ck.ck-table-form .ck-form__row.ck-table-form__dimensions-row .ck-table-form__dimension-operator{flex-grow:0}.ck.ck-table-form .ck.ck-labeled-field-view{position:relative}.ck.ck-table-form .ck.ck-labeled-field-view .ck.ck-labeled-field-view__status{bottom:calc(var(--ck-table-properties-error-arrow-size)*-1);left:50%;position:absolute;transform:translate(-50%,100%);z-index:1}.ck.ck-table-form .ck.ck-labeled-field-view .ck.ck-labeled-field-view__status:after{content:\\\"\\\";left:50%;position:absolute;top:calc(var(--ck-table-properties-error-arrow-size)*-1);transform:translateX(-50%)}:root{--ck-table-properties-error-arrow-size:6px;--ck-table-properties-min-error-width:150px}.ck.ck-table-form .ck-form__row.ck-table-form__border-row .ck-labeled-field-view>.ck-label{font-size:var(--ck-font-size-tiny);text-align:center}.ck.ck-table-form .ck-form__row.ck-table-form__border-row .ck-table-form__border-style,.ck.ck-table-form .ck-form__row.ck-table-form__border-row .ck-table-form__border-width{max-width:80px;min-width:80px;width:80px}.ck.ck-table-form .ck-form__row.ck-table-form__dimensions-row{padding:0}.ck.ck-table-form .ck-form__row.ck-table-form__dimensions-row .ck-table-form__dimensions-row__height,.ck.ck-table-form .ck-form__row.ck-table-form__dimensions-row .ck-table-form__dimensions-row__width{margin:0}.ck.ck-table-form .ck-form__row.ck-table-form__dimensions-row .ck-table-form__dimension-operator{align-self:flex-end;display:inline-block;height:var(--ck-ui-component-min-height);line-height:var(--ck-ui-component-min-height);margin:0 var(--ck-spacing-small)}.ck.ck-table-form .ck.ck-labeled-field-view{padding-top:var(--ck-spacing-standard)}.ck.ck-table-form .ck.ck-labeled-field-view .ck.ck-labeled-field-view__status{border-radius:0}.ck-rounded-corners .ck.ck-table-form .ck.ck-labeled-field-view .ck.ck-labeled-field-view__status,.ck.ck-table-form .ck.ck-labeled-field-view .ck.ck-labeled-field-view__status.ck-rounded-corners{border-radius:var(--ck-border-radius)}.ck.ck-table-form .ck.ck-labeled-field-view .ck.ck-labeled-field-view__status{background:var(--ck-color-base-error);color:var(--ck-color-base-background);min-width:var(--ck-table-properties-min-error-width);padding:var(--ck-spacing-small) var(--ck-spacing-medium);text-align:center}.ck.ck-table-form .ck.ck-labeled-field-view .ck.ck-labeled-field-view__status:after{border-color:transparent transparent var(--ck-color-base-error) transparent;border-style:solid;border-width:0 var(--ck-table-properties-error-arrow-size) var(--ck-table-properties-error-arrow-size) var(--ck-table-properties-error-arrow-size)}.ck.ck-table-form .ck.ck-labeled-field-view .ck.ck-labeled-field-view__status{animation:ck-table-form-labeled-view-status-appear .15s ease both}@media (prefers-reduced-motion:reduce){.ck.ck-table-form .ck.ck-labeled-field-view .ck.ck-labeled-field-view__status{animation:none}}.ck.ck-table-form .ck.ck-labeled-field-view .ck-input.ck-error:not(:focus)+.ck.ck-labeled-field-view__status{display:none}@keyframes ck-table-form-labeled-view-status-appear{0%{opacity:0}to{opacity:1}}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../ckeditor5-table/theme/tableform.css\",\"webpack://./../ckeditor5-theme-lark/theme/ckeditor5-table/tableform.css\",\"webpack://./../ckeditor5-theme-lark/theme/mixins/_rounded.css\"],\"names\":[],\"mappings\":\"AAWE,wHACC,cACD,CAEA,8DAEC,kBAAmB,CADnB,cAgBD,CAbC,qFAGC,kBAAmB,CAFnB,YAAa,CACb,6BAMD,CAEA,sMACC,WACD,CAIF,4CAEC,iBAoBD,CAlBC,8EAGC,2DAAgE,CADhE,QAAS,CADT,iBAAkB,CAGlB,8BAA+B,CAG/B,SAUD,CAPC,oFACC,UAAW,CAGX,QAAS,CAFT,iBAAkB,CAClB,wDAA6D,CAE7D,0BACD,CChDH,MACC,0CAA2C,CAC3C,2CACD,CAMI,2FACC,kCAAmC,CACnC,iBACD,CAGD,8KAIC,cAAe,CADf,cAAe,CADf,UAGD,CAGD,8DACC,SAcD,CAZC,yMAEC,QACD,CAEA,iGACC,mBAAoB,CACpB,oBAAqB,CACrB,wCAAyC,CACzC,6CAA8C,CAC9C,gCACD,CAIF,4CACC,sCA6BD,CA3BC,8ECxCD,eD6DC,CArBA,mMCpCA,qCDyDA,CArBA,8EAGC,qCAAsC,CACtC,qCAAsC,CAEtC,oDAAqD,CADrD,wDAAyD,CAEzD,iBAcD,CAXC,oFACC,2EAA4E,CAE5E,kBAAmB,CADnB,kJAED,CAdD,8EAgBC,iEAKD,CAHC,uCAlBD,8EAmBE,cAEF,CADC,CAID,6GACC,YACD,CAIF,oDACC,GACC,SACD,CAEA,GACC,SACD,CACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.ck.ck-table-form {\\n\\t& .ck-form__row {\\n\\t\\t&.ck-table-form__border-row {\\n\\t\\t\\tflex-wrap: wrap;\\n\\t\\t}\\n\\n\\t\\t&.ck-table-form__background-row {\\n\\t\\t\\tflex-wrap: wrap;\\n\\t\\t}\\n\\n\\t\\t&.ck-table-form__dimensions-row {\\n\\t\\t\\tflex-wrap: wrap;\\n\\t\\t\\talign-items: center;\\n\\n\\t\\t\\t& .ck-labeled-field-view {\\n\\t\\t\\t\\tdisplay: flex;\\n\\t\\t\\t\\tflex-direction: column-reverse;\\n\\t\\t\\t\\talign-items: center;\\n\\n\\t\\t\\t\\t& .ck.ck-dropdown {\\n\\t\\t\\t\\t\\tflex-grow: 0;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\n\\t\\t\\t& .ck-table-form__dimension-operator {\\n\\t\\t\\t\\tflex-grow: 0;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t& .ck.ck-labeled-field-view {\\n\\t\\t/* Allow absolute positioning of the status (error) balloons. */\\n\\t\\tposition: relative;\\n\\n\\t\\t& .ck.ck-labeled-field-view__status {\\n\\t\\t\\tposition: absolute;\\n\\t\\t\\tleft: 50%;\\n\\t\\t\\tbottom: calc( -1 * var(--ck-table-properties-error-arrow-size) );\\n\\t\\t\\ttransform: translate(-50%,100%);\\n\\n\\t\\t\\t/* Make sure the balloon status stays on top of other form elements. */\\n\\t\\t\\tz-index: 1;\\n\\n\\t\\t\\t/* The arrow pointing towards the field. */\\n\\t\\t\\t&::after {\\n\\t\\t\\t\\tcontent: \\\"\\\";\\n\\t\\t\\t\\tposition: absolute;\\n\\t\\t\\t\\ttop: calc( -1 * var(--ck-table-properties-error-arrow-size) );\\n\\t\\t\\t\\tleft: 50%;\\n\\t\\t\\t\\ttransform: translateX( -50% );\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n@import \\\"../mixins/_rounded.css\\\";\\n\\n:root {\\n\\t--ck-table-properties-error-arrow-size: 6px;\\n\\t--ck-table-properties-min-error-width: 150px;\\n}\\n\\n.ck.ck-table-form {\\n\\t& .ck-form__row {\\n\\t\\t&.ck-table-form__border-row {\\n\\t\\t\\t& .ck-labeled-field-view {\\n\\t\\t\\t\\t& > .ck-label {\\n\\t\\t\\t\\t\\tfont-size: var(--ck-font-size-tiny);\\n\\t\\t\\t\\t\\ttext-align: center;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\n\\t\\t\\t& .ck-table-form__border-style,\\n\\t\\t\\t& .ck-table-form__border-width {\\n\\t\\t\\t\\twidth: 80px;\\n\\t\\t\\t\\tmin-width: 80px;\\n\\t\\t\\t\\tmax-width: 80px;\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t&.ck-table-form__dimensions-row {\\n\\t\\t\\tpadding: 0;\\n\\n\\t\\t\\t& .ck-table-form__dimensions-row__width,\\n\\t\\t\\t& .ck-table-form__dimensions-row__height {\\n\\t\\t\\t\\tmargin: 0\\n\\t\\t\\t}\\n\\n\\t\\t\\t& .ck-table-form__dimension-operator {\\n\\t\\t\\t\\talign-self: flex-end;\\n\\t\\t\\t\\tdisplay: inline-block;\\n\\t\\t\\t\\theight: var(--ck-ui-component-min-height);\\n\\t\\t\\t\\tline-height: var(--ck-ui-component-min-height);\\n\\t\\t\\t\\tmargin: 0 var(--ck-spacing-small);\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t& .ck.ck-labeled-field-view {\\n\\t\\tpadding-top: var(--ck-spacing-standard);\\n\\n\\t\\t& .ck.ck-labeled-field-view__status {\\n\\t\\t\\t@mixin ck-rounded-corners;\\n\\n\\t\\t\\tbackground: var(--ck-color-base-error);\\n\\t\\t\\tcolor: var(--ck-color-base-background);\\n\\t\\t\\tpadding: var(--ck-spacing-small) var(--ck-spacing-medium);\\n\\t\\t\\tmin-width: var(--ck-table-properties-min-error-width);\\n\\t\\t\\ttext-align: center;\\n\\n\\t\\t\\t/* The arrow pointing towards the field. */\\n\\t\\t\\t&::after {\\n\\t\\t\\t\\tborder-color: transparent transparent var(--ck-color-base-error) transparent;\\n\\t\\t\\t\\tborder-width: 0 var(--ck-table-properties-error-arrow-size) var(--ck-table-properties-error-arrow-size) var(--ck-table-properties-error-arrow-size);\\n\\t\\t\\t\\tborder-style: solid;\\n\\t\\t\\t}\\n\\n\\t\\t\\tanimation: ck-table-form-labeled-view-status-appear .15s ease both;\\n\\n\\t\\t\\t@media (prefers-reduced-motion: reduce) {\\n\\t\\t\\t\\tanimation: none;\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t/* Hide the error balloon when the field is blurred. Makes the experience much more clear. */\\n\\t\\t& .ck-input.ck-error:not(:focus) + .ck.ck-labeled-field-view__status {\\n\\t\\t\\tdisplay: none;\\n\\t\\t}\\n\\t}\\n}\\n\\n@keyframes ck-table-form-labeled-view-status-appear {\\n\\t0% {\\n\\t\\topacity: 0;\\n\\t}\\n\\n\\t100% {\\n\\t\\topacity: 1;\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n/**\\n * Implements rounded corner interface for .ck-rounded-corners class.\\n *\\n * @see $ck-border-radius\\n */\\n@define-mixin ck-rounded-corners {\\n\\tborder-radius: 0;\\n\\n\\t@nest .ck-rounded-corners &,\\n\\t&.ck-rounded-corners {\\n\\t\\tborder-radius: var(--ck-border-radius);\\n\\t\\t@mixin-content;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck.ck-table-properties-form .ck-form__row.ck-table-properties-form__alignment-row{align-content:baseline;flex-basis:0;flex-wrap:wrap}.ck.ck-table-properties-form .ck-form__row.ck-table-properties-form__alignment-row .ck.ck-toolbar .ck-toolbar__items{flex-wrap:nowrap}.ck.ck-table-properties-form{width:320px}.ck.ck-table-properties-form .ck-form__row.ck-table-properties-form__alignment-row{align-self:flex-end;padding:0}.ck.ck-table-properties-form .ck-form__row.ck-table-properties-form__alignment-row .ck.ck-toolbar{background:none;margin-top:var(--ck-spacing-standard)}.ck.ck-table-properties-form .ck-form__row.ck-table-properties-form__alignment-row .ck.ck-toolbar .ck-toolbar__items>*{width:40px}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../ckeditor5-table/theme/tableproperties.css\",\"webpack://./../ckeditor5-theme-lark/theme/ckeditor5-table/tableproperties.css\"],\"names\":[],\"mappings\":\"AAOE,mFAGC,sBAAuB,CADvB,YAAa,CADb,cAOD,CAHC,qHACC,gBACD,CCTH,6BACC,WAmBD,CAhBE,mFACC,mBAAoB,CACpB,SAYD,CAVC,kGACC,eAAgB,CAGhB,qCAKD,CAHC,uHACC,UACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.ck.ck-table-properties-form {\\n\\t& .ck-form__row {\\n\\t\\t&.ck-table-properties-form__alignment-row {\\n\\t\\t\\tflex-wrap: wrap;\\n\\t\\t\\tflex-basis: 0;\\n\\t\\t\\talign-content: baseline;\\n\\n\\t\\t\\t& .ck.ck-toolbar .ck-toolbar__items {\\n\\t\\t\\t\\tflex-wrap: nowrap;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.ck.ck-table-properties-form {\\n\\twidth: 320px;\\n\\n\\t& .ck-form__row {\\n\\t\\t&.ck-table-properties-form__alignment-row {\\n\\t\\t\\talign-self: flex-end;\\n\\t\\t\\tpadding: 0;\\n\\n\\t\\t\\t& .ck.ck-toolbar {\\n\\t\\t\\t\\tbackground: none;\\n\\n\\t\\t\\t\\t/* Compensate for missing input label that would push the margin (toolbar has no inputs). */\\n\\t\\t\\t\\tmargin-top: var(--ck-spacing-standard);\\n\\n\\t\\t\\t\\t& .ck-toolbar__items > * {\\n\\t\\t\\t\\t\\twidth: 40px;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \":root{--ck-table-selected-cell-background:rgba(158,207,250,.3)}.ck.ck-editor__editable .table table td.ck-editor__editable_selected,.ck.ck-editor__editable .table table th.ck-editor__editable_selected{box-shadow:unset;caret-color:transparent;outline:unset;position:relative}.ck.ck-editor__editable .table table td.ck-editor__editable_selected:after,.ck.ck-editor__editable .table table th.ck-editor__editable_selected:after{background-color:var(--ck-table-selected-cell-background);bottom:0;content:\\\"\\\";left:0;pointer-events:none;position:absolute;right:0;top:0}.ck.ck-editor__editable .table table td.ck-editor__editable_selected ::selection,.ck.ck-editor__editable .table table td.ck-editor__editable_selected:focus,.ck.ck-editor__editable .table table th.ck-editor__editable_selected ::selection,.ck.ck-editor__editable .table table th.ck-editor__editable_selected:focus{background-color:transparent}.ck.ck-editor__editable .table table td.ck-editor__editable_selected .ck-widget,.ck.ck-editor__editable .table table th.ck-editor__editable_selected .ck-widget{outline:unset}.ck.ck-editor__editable .table table td.ck-editor__editable_selected .ck-widget>.ck-widget__selection-handle,.ck.ck-editor__editable .table table th.ck-editor__editable_selected .ck-widget>.ck-widget__selection-handle{display:none}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../ckeditor5-theme-lark/theme/ckeditor5-table/tableselection.css\"],\"names\":[],\"mappings\":\"AAKA,MACC,wDACD,CAGC,0IAKC,gBAAiB,CAFjB,uBAAwB,CACxB,aAAc,CAFd,iBAiCD,CA3BC,sJAGC,yDAA0D,CAK1D,QAAS,CAPT,UAAW,CAKX,MAAO,CAJP,mBAAoB,CAEpB,iBAAkB,CAGlB,OAAQ,CAFR,KAID,CAEA,wTAEC,4BACD,CAMA,gKACC,aAKD,CAHC,0NACC,YACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n:root {\\n\\t--ck-table-selected-cell-background: hsla(208, 90%, 80%, .3);\\n}\\n\\n.ck.ck-editor__editable .table table {\\n\\t& td.ck-editor__editable_selected,\\n\\t& th.ck-editor__editable_selected {\\n\\t\\tposition: relative;\\n\\t\\tcaret-color: transparent;\\n\\t\\toutline: unset;\\n\\t\\tbox-shadow: unset;\\n\\n\\t\\t/* https://github.com/ckeditor/ckeditor5/issues/6446 */\\n\\t\\t&:after {\\n\\t\\t\\tcontent: '';\\n\\t\\t\\tpointer-events: none;\\n\\t\\t\\tbackground-color: var(--ck-table-selected-cell-background);\\n\\t\\t\\tposition: absolute;\\n\\t\\t\\ttop: 0;\\n\\t\\t\\tleft: 0;\\n\\t\\t\\tright: 0;\\n\\t\\t\\tbottom: 0;\\n\\t\\t}\\n\\n\\t\\t& ::selection,\\n\\t\\t&:focus {\\n\\t\\t\\tbackground-color: transparent;\\n\\t\\t}\\n\\n\\t\\t/*\\n\\t\\t * To reduce the amount of noise, all widgets in the table selection have no outline and no selection handle.\\n\\t\\t * See https://github.com/ckeditor/ckeditor5/issues/9491.\\n\\t\\t */\\n\\t\\t& .ck-widget {\\n\\t\\t\\toutline: unset;\\n\\n\\t\\t\\t& > .ck-widget__selection-handle {\\n\\t\\t\\t\\tdisplay: none;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck.ck-aria-live-announcer{left:-10000px;position:absolute;top:-10000px}.ck.ck-aria-live-region-list{list-style-type:none}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../ckeditor5-ui/theme/components/arialiveannouncer/arialiveannouncer.css\"],\"names\":[],\"mappings\":\"AAKA,2BAEC,aAAc,CADd,iBAAkB,CAElB,YACD,CAEA,6BACC,oBACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.ck.ck-aria-live-announcer {\\n\\tposition: absolute;\\n\\tleft: -10000px;\\n\\ttop: -10000px;\\n}\\n\\n.ck.ck-aria-live-region-list {\\n\\tlist-style-type: none;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck.ck-autocomplete{position:relative}.ck.ck-autocomplete>.ck-search__results{position:absolute;z-index:var(--ck-z-panel)}.ck.ck-autocomplete>.ck-search__results.ck-search__results_n{bottom:100%}.ck.ck-autocomplete>.ck-search__results.ck-search__results_s{bottom:auto;top:100%}.ck.ck-autocomplete>.ck-search__results{border-radius:0}.ck-rounded-corners .ck.ck-autocomplete>.ck-search__results,.ck.ck-autocomplete>.ck-search__results.ck-rounded-corners{border-radius:var(--ck-border-radius)}.ck.ck-autocomplete>.ck-search__results{background:var(--ck-color-base-background);border:1px solid var(--ck-color-dropdown-panel-border);box-shadow:var(--ck-drop-shadow),0 0;max-height:200px;min-width:auto;overflow-y:auto}.ck.ck-autocomplete>.ck-search__results.ck-search__results_n{border-bottom-left-radius:0;border-bottom-right-radius:0;margin-bottom:-1px}.ck.ck-autocomplete>.ck-search__results.ck-search__results_s{border-top-left-radius:0;border-top-right-radius:0;margin-top:-1px}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../ckeditor5-ui/theme/components/autocomplete/autocomplete.css\",\"webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/autocomplete/autocomplete.css\",\"webpack://./../ckeditor5-theme-lark/theme/mixins/_rounded.css\",\"webpack://./../ckeditor5-theme-lark/theme/mixins/_shadow.css\"],\"names\":[],\"mappings\":\"AAKA,oBACC,iBAeD,CAbC,wCACC,iBAAkB,CAClB,yBAUD,CARC,6DACC,WACD,CAEA,6DAEC,WAAY,CADZ,QAED,CCVD,wCCEA,eDuBA,CAzBA,uHCMC,qCDmBD,CAzBA,wCAMC,0CAA2C,CAC3C,sDAAuD,CEPxD,oCAA8B,CFI7B,gBAAiB,CAIjB,cAAe,CAHf,eAoBD,CAfC,6DACC,2BAA4B,CAC5B,4BAA6B,CAG7B,kBACD,CAEA,6DACC,wBAAyB,CACzB,yBAA0B,CAG1B,eACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.ck.ck-autocomplete {\\n\\tposition: relative;\\n\\n\\t& > .ck-search__results {\\n\\t\\tposition: absolute;\\n\\t\\tz-index: var(--ck-z-panel);\\n\\n\\t\\t&.ck-search__results_n {\\n\\t\\t\\tbottom: 100%;\\n\\t\\t}\\n\\n\\t\\t&.ck-search__results_s {\\n\\t\\t\\ttop: 100%;\\n\\t\\t\\tbottom: auto;\\n\\t\\t}\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n@import \\\"@ckeditor/ckeditor5-theme-lark/theme/mixins/_rounded.css\\\";\\n@import \\\"@ckeditor/ckeditor5-theme-lark/theme/mixins/_shadow.css\\\";\\n\\n.ck.ck-autocomplete {\\n\\t& > .ck-search__results {\\n\\t\\t@mixin ck-rounded-corners;\\n\\t\\t@mixin ck-drop-shadow;\\n\\n\\t\\tmax-height: 200px;\\n\\t\\toverflow-y: auto;\\n\\t\\tbackground: var(--ck-color-base-background);\\n\\t\\tborder: 1px solid var(--ck-color-dropdown-panel-border);\\n\\t\\tmin-width: auto;\\n\\n\\t\\t&.ck-search__results_n {\\n\\t\\t\\tborder-bottom-left-radius: 0;\\n\\t\\t\\tborder-bottom-right-radius: 0;\\n\\n\\t\\t\\t/* Prevent duplicated borders between the input and the results pane. */\\n\\t\\t\\tmargin-bottom: -1px;\\n\\t\\t}\\n\\n\\t\\t&.ck-search__results_s {\\n\\t\\t\\tborder-top-left-radius: 0;\\n\\t\\t\\tborder-top-right-radius: 0;\\n\\n\\t\\t\\t/* Prevent duplicated borders between the input and the results pane. */\\n\\t\\t\\tmargin-top: -1px;\\n\\t\\t}\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n/**\\n * Implements rounded corner interface for .ck-rounded-corners class.\\n *\\n * @see $ck-border-radius\\n */\\n@define-mixin ck-rounded-corners {\\n\\tborder-radius: 0;\\n\\n\\t@nest .ck-rounded-corners &,\\n\\t&.ck-rounded-corners {\\n\\t\\tborder-radius: var(--ck-border-radius);\\n\\t\\t@mixin-content;\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n/**\\n * A helper to combine multiple shadows.\\n */\\n@define-mixin ck-box-shadow $shadowA, $shadowB: 0 0 {\\n\\tbox-shadow: $shadowA, $shadowB;\\n}\\n\\n/**\\n * Gives an element a drop shadow so it looks like a floating panel.\\n */\\n@define-mixin ck-drop-shadow {\\n\\t@mixin ck-box-shadow var(--ck-drop-shadow);\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck.ck-button,a.ck.ck-button{align-items:center;display:inline-flex;position:relative;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none}[dir=ltr] .ck.ck-button,[dir=ltr] a.ck.ck-button{justify-content:left}[dir=rtl] .ck.ck-button,[dir=rtl] a.ck.ck-button{justify-content:right}.ck.ck-button .ck-button__label,a.ck.ck-button .ck-button__label{display:none}.ck.ck-button.ck-button_with-text .ck-button__label,a.ck.ck-button.ck-button_with-text .ck-button__label{display:inline-block}.ck.ck-button:not(.ck-button_with-text),a.ck.ck-button:not(.ck-button_with-text){justify-content:center}.ck.ck-button,a.ck.ck-button{background:var(--ck-color-button-default-background)}.ck.ck-button:not(.ck-disabled):hover,a.ck.ck-button:not(.ck-disabled):hover{background:var(--ck-color-button-default-hover-background)}.ck.ck-button:not(.ck-disabled):active,a.ck.ck-button:not(.ck-disabled):active{background:var(--ck-color-button-default-active-background)}.ck.ck-button.ck-disabled,a.ck.ck-button.ck-disabled{background:var(--ck-color-button-default-disabled-background)}.ck.ck-button,a.ck.ck-button{border-radius:0}.ck-rounded-corners .ck.ck-button,.ck-rounded-corners a.ck.ck-button,.ck.ck-button.ck-rounded-corners,a.ck.ck-button.ck-rounded-corners{border-radius:var(--ck-border-radius)}.ck.ck-button,a.ck.ck-button{-webkit-appearance:none;border:1px solid transparent;cursor:default;font-size:inherit;line-height:1;min-height:var(--ck-ui-component-min-height);min-width:var(--ck-ui-component-min-height);padding:var(--ck-spacing-tiny);text-align:center;transition:box-shadow .2s ease-in-out,border .2s ease-in-out;vertical-align:middle;white-space:nowrap}@media (prefers-reduced-motion:reduce){.ck.ck-button,a.ck.ck-button{transition:none}}.ck.ck-button:active,.ck.ck-button:focus,a.ck.ck-button:active,a.ck.ck-button:focus{border:var(--ck-focus-ring);box-shadow:var(--ck-focus-outer-shadow),0 0;outline:none}.ck.ck-button .ck-button__icon use,.ck.ck-button .ck-button__icon use *,a.ck.ck-button .ck-button__icon use,a.ck.ck-button .ck-button__icon use *{color:inherit}.ck.ck-button .ck-button__label,a.ck.ck-button .ck-button__label{color:inherit;cursor:inherit;font-size:inherit;font-weight:inherit;vertical-align:middle}[dir=ltr] .ck.ck-button .ck-button__label,[dir=ltr] a.ck.ck-button .ck-button__label{text-align:left}[dir=rtl] .ck.ck-button .ck-button__label,[dir=rtl] a.ck.ck-button .ck-button__label{text-align:right}.ck.ck-button .ck-button__keystroke,a.ck.ck-button .ck-button__keystroke{color:inherit}[dir=ltr] .ck.ck-button .ck-button__keystroke,[dir=ltr] a.ck.ck-button .ck-button__keystroke{margin-left:var(--ck-spacing-large)}[dir=rtl] .ck.ck-button .ck-button__keystroke,[dir=rtl] a.ck.ck-button .ck-button__keystroke{margin-right:var(--ck-spacing-large)}.ck.ck-button .ck-button__keystroke,a.ck.ck-button .ck-button__keystroke{opacity:.5}.ck.ck-button.ck-disabled:active,.ck.ck-button.ck-disabled:focus,a.ck.ck-button.ck-disabled:active,a.ck.ck-button.ck-disabled:focus{box-shadow:var(--ck-focus-disabled-outer-shadow),0 0}.ck.ck-button.ck-disabled .ck-button__icon,.ck.ck-button.ck-disabled .ck-button__label,a.ck.ck-button.ck-disabled .ck-button__icon,a.ck.ck-button.ck-disabled .ck-button__label{opacity:var(--ck-disabled-opacity)}.ck.ck-button.ck-disabled .ck-button__keystroke,a.ck.ck-button.ck-disabled .ck-button__keystroke{opacity:.3}.ck.ck-button.ck-button_with-text,a.ck.ck-button.ck-button_with-text{padding:var(--ck-spacing-tiny) var(--ck-spacing-standard)}[dir=ltr] .ck.ck-button.ck-button_with-text .ck-button__icon,[dir=ltr] a.ck.ck-button.ck-button_with-text .ck-button__icon{margin-left:calc(var(--ck-spacing-small)*-1);margin-right:var(--ck-spacing-small)}[dir=rtl] .ck.ck-button.ck-button_with-text .ck-button__icon,[dir=rtl] a.ck.ck-button.ck-button_with-text .ck-button__icon{margin-left:var(--ck-spacing-small);margin-right:calc(var(--ck-spacing-small)*-1)}.ck.ck-button.ck-button_with-keystroke .ck-button__label,a.ck.ck-button.ck-button_with-keystroke .ck-button__label{flex-grow:1}.ck.ck-button.ck-on,a.ck.ck-button.ck-on{background:var(--ck-color-button-on-background)}.ck.ck-button.ck-on:not(.ck-disabled):hover,a.ck.ck-button.ck-on:not(.ck-disabled):hover{background:var(--ck-color-button-on-hover-background)}.ck.ck-button.ck-on:not(.ck-disabled):active,a.ck.ck-button.ck-on:not(.ck-disabled):active{background:var(--ck-color-button-on-active-background)}.ck.ck-button.ck-on.ck-disabled,a.ck.ck-button.ck-on.ck-disabled{background:var(--ck-color-button-on-disabled-background)}.ck.ck-button.ck-on,a.ck.ck-button.ck-on{color:var(--ck-color-button-on-color)}.ck.ck-button.ck-button-save,a.ck.ck-button.ck-button-save{color:var(--ck-color-button-save)}.ck.ck-button.ck-button-cancel,a.ck.ck-button.ck-button-cancel{color:var(--ck-color-button-cancel)}.ck.ck-button-action,a.ck.ck-button-action{background:var(--ck-color-button-action-background)}.ck.ck-button-action:not(.ck-disabled):hover,a.ck.ck-button-action:not(.ck-disabled):hover{background:var(--ck-color-button-action-hover-background)}.ck.ck-button-action:not(.ck-disabled):active,a.ck.ck-button-action:not(.ck-disabled):active{background:var(--ck-color-button-action-active-background)}.ck.ck-button-action.ck-disabled,a.ck.ck-button-action.ck-disabled{background:var(--ck-color-button-action-disabled-background)}.ck.ck-button-action,a.ck.ck-button-action{color:var(--ck-color-button-action-text)}.ck.ck-button-bold,a.ck.ck-button-bold{font-weight:700}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../ckeditor5-ui/theme/components/button/button.css\",\"webpack://./../ckeditor5-ui/theme/mixins/_unselectable.css\",\"webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/button/button.css\",\"webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/mixins/_button.css\",\"webpack://./../ckeditor5-theme-lark/theme/mixins/_rounded.css\",\"webpack://./../ckeditor5-theme-lark/theme/mixins/_focus.css\",\"webpack://./../ckeditor5-theme-lark/theme/mixins/_shadow.css\",\"webpack://./../ckeditor5-theme-lark/theme/mixins/_disabled.css\"],\"names\":[],\"mappings\":\"AAQA,6BAMC,kBAAmB,CADnB,mBAAoB,CADpB,iBAAkB,CCHlB,qBAAsB,CACtB,wBAAyB,CACzB,oBAAqB,CACrB,gBD0BD,CA9BA,iDASE,oBAqBF,CA9BA,iDAaE,qBAiBF,CAdC,iEACC,YACD,CAGC,yGACC,oBACD,CAID,iFACC,sBACD,CEzBD,6BCAC,oDD+ID,CC5IE,6EACC,0DACD,CAEA,+EACC,2DACD,CAID,qDACC,6DACD,CDfD,6BEDC,eFgJD,CA/IA,wIEGE,qCF4IF,CA/IA,6BA6BC,uBAAwB,CANxB,4BAA6B,CAjB7B,cAAe,CAcf,iBAAkB,CAHlB,aAAc,CAJd,4CAA6C,CAD7C,2CAA4C,CAJ5C,8BAA+B,CAC/B,iBAAkB,CAiBlB,4DAA8D,CAnB9D,qBAAsB,CAFtB,kBA0ID,CAhHC,uCA/BD,6BAgCE,eA+GF,CA9GC,CAEA,oFGpCA,2BAA2B,CCF3B,2CAA8B,CDC9B,YHyCA,CAIC,kJAEC,aACD,CAGD,iEAIC,aAAc,CACd,cAAe,CAHf,iBAAkB,CAClB,mBAAoB,CAMpB,qBASD,CAlBA,qFAYE,eAMF,CAlBA,qFAgBE,gBAEF,CAEA,yEACC,aAWD,CAZA,6FAIE,mCAQF,CAZA,6FAQE,oCAIF,CAZA,yEAWC,UACD,CAIC,oIIxFD,oDJ4FC,CAOA,gLKnGD,kCLqGC,CAEA,iGACC,UACD,CAGD,qEACC,yDAcD,CAXC,2HAEE,4CAA+C,CAC/C,oCAOF,CAVA,2HAQE,mCAAoC,CADpC,6CAGF,CAKA,mHACC,WACD,CAID,yCClIA,+CDsIA,CCnIC,yFACC,qDACD,CAEA,2FACC,sDACD,CAID,iEACC,wDACD,CDmHA,yCAGC,qCACD,CAEA,2DACC,iCACD,CAEA,+DACC,mCACD,CAID,2CClJC,mDDuJD,CCpJE,2FACC,yDACD,CAEA,6FACC,0DACD,CAID,mEACC,4DACD,CDmID,2CAIC,wCACD,CAEA,uCAEC,eACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n@import \\\"../../mixins/_unselectable.css\\\";\\n@import \\\"../../mixins/_dir.css\\\";\\n\\n.ck.ck-button,\\na.ck.ck-button {\\n\\t@mixin ck-unselectable;\\n\\n\\tposition: relative;\\n\\tdisplay: inline-flex;\\n\\talign-items: center;\\n\\n\\t@mixin ck-dir ltr {\\n\\t\\tjustify-content: left;\\n\\t}\\n\\n\\t@mixin ck-dir rtl {\\n\\t\\tjustify-content: right;\\n\\t}\\n\\n\\t& .ck-button__label {\\n\\t\\tdisplay: none;\\n\\t}\\n\\n\\t&.ck-button_with-text {\\n\\t\\t& .ck-button__label {\\n\\t\\t\\tdisplay: inline-block;\\n\\t\\t}\\n\\t}\\n\\n\\t/* Center the icon horizontally in a button without text. */\\n\\t&:not(.ck-button_with-text) {\\n\\t\\tjustify-content: center;\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n/**\\n * Makes element unselectable.\\n */\\n@define-mixin ck-unselectable {\\n\\t-moz-user-select: none;\\n\\t-webkit-user-select: none;\\n\\t-ms-user-select: none;\\n\\tuser-select: none\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n@import \\\"../../../mixins/_focus.css\\\";\\n@import \\\"../../../mixins/_shadow.css\\\";\\n@import \\\"../../../mixins/_disabled.css\\\";\\n@import \\\"../../../mixins/_rounded.css\\\";\\n@import \\\"../../mixins/_button.css\\\";\\n@import \\\"@ckeditor/ckeditor5-ui/theme/mixins/_dir.css\\\";\\n\\n.ck.ck-button,\\na.ck.ck-button {\\n\\t@mixin ck-button-colors --ck-color-button-default;\\n\\t@mixin ck-rounded-corners;\\n\\n\\twhite-space: nowrap;\\n\\tcursor: default;\\n\\tvertical-align: middle;\\n\\tpadding: var(--ck-spacing-tiny);\\n\\ttext-align: center;\\n\\n\\t/* A very important piece of styling. Go to variable declaration to learn more. */\\n\\tmin-width: var(--ck-ui-component-min-height);\\n\\tmin-height: var(--ck-ui-component-min-height);\\n\\n\\t/* Normalize the height of the line. Removing this will break consistent height\\n\\tamong text and text-less buttons (with icons). */\\n\\tline-height: 1;\\n\\n\\t/* Enable font size inheritance, which allows fluid UI scaling. */\\n\\tfont-size: inherit;\\n\\n\\t/* Avoid flickering when the foucs border shows up. */\\n\\tborder: 1px solid transparent;\\n\\n\\t/* Apply some smooth transition to the box-shadow and border. */\\n\\ttransition: box-shadow .2s ease-in-out, border .2s ease-in-out;\\n\\n\\t/* https://github.com/ckeditor/ckeditor5-theme-lark/issues/189 */\\n\\t-webkit-appearance: none;\\n\\n\\t@media (prefers-reduced-motion: reduce) {\\n\\t\\ttransition: none;\\n\\t}\\n\\n\\t&:active,\\n\\t&:focus {\\n\\t\\t@mixin ck-focus-ring;\\n\\t\\t@mixin ck-box-shadow var(--ck-focus-outer-shadow);\\n\\t}\\n\\n\\t/* Allow icon coloring using the text \\\"color\\\" property. */\\n\\t& .ck-button__icon {\\n\\t\\t& use,\\n\\t\\t& use * {\\n\\t\\t\\tcolor: inherit;\\n\\t\\t}\\n\\t}\\n\\n\\t& .ck-button__label {\\n\\t\\t/* Enable font size inheritance, which allows fluid UI scaling. */\\n\\t\\tfont-size: inherit;\\n\\t\\tfont-weight: inherit;\\n\\t\\tcolor: inherit;\\n\\t\\tcursor: inherit;\\n\\n\\t\\t/* Must be consistent with .ck-icon's vertical align. Otherwise, buttons with and\\n\\t\\twithout labels (but with icons) have different sizes in Chrome */\\n\\t\\tvertical-align: middle;\\n\\n\\t\\t@mixin ck-dir ltr {\\n\\t\\t\\ttext-align: left;\\n\\t\\t}\\n\\n\\t\\t@mixin ck-dir rtl {\\n\\t\\t\\ttext-align: right;\\n\\t\\t}\\n\\t}\\n\\n\\t& .ck-button__keystroke {\\n\\t\\tcolor: inherit;\\n\\n\\t\\t@mixin ck-dir ltr {\\n\\t\\t\\tmargin-left: var(--ck-spacing-large);\\n\\t\\t}\\n\\n\\t\\t@mixin ck-dir rtl {\\n\\t\\t\\tmargin-right: var(--ck-spacing-large);\\n\\t\\t}\\n\\n\\t\\topacity: .5;\\n\\t}\\n\\n\\t/* https://github.com/ckeditor/ckeditor5-theme-lark/issues/70 */\\n\\t&.ck-disabled {\\n\\t\\t&:active,\\n\\t\\t&:focus {\\n\\t\\t\\t/* The disabled button should have a slightly less visible shadow when focused. */\\n\\t\\t\\t@mixin ck-box-shadow var(--ck-focus-disabled-outer-shadow);\\n\\t\\t}\\n\\n\\t\\t& .ck-button__icon {\\n\\t\\t\\t@mixin ck-disabled;\\n\\t\\t}\\n\\n\\t\\t/* https://github.com/ckeditor/ckeditor5-theme-lark/issues/98 */\\n\\t\\t& .ck-button__label {\\n\\t\\t\\t@mixin ck-disabled;\\n\\t\\t}\\n\\n\\t\\t& .ck-button__keystroke {\\n\\t\\t\\topacity: .3;\\n\\t\\t}\\n\\t}\\n\\n\\t&.ck-button_with-text {\\n\\t\\tpadding: var(--ck-spacing-tiny) var(--ck-spacing-standard);\\n\\n\\t\\t/* stylelint-disable-next-line no-descending-specificity */\\n\\t\\t& .ck-button__icon {\\n\\t\\t\\t@mixin ck-dir ltr {\\n\\t\\t\\t\\tmargin-left: calc(-1 * var(--ck-spacing-small));\\n\\t\\t\\t\\tmargin-right: var(--ck-spacing-small);\\n\\t\\t\\t}\\n\\n\\t\\t\\t@mixin ck-dir rtl {\\n\\t\\t\\t\\tmargin-right: calc(-1 * var(--ck-spacing-small));\\n\\t\\t\\t\\tmargin-left: var(--ck-spacing-small);\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t&.ck-button_with-keystroke {\\n\\t\\t/* stylelint-disable-next-line no-descending-specificity */\\n\\t\\t& .ck-button__label {\\n\\t\\t\\tflex-grow: 1;\\n\\t\\t}\\n\\t}\\n\\n\\t/* A style of the button which is currently on, e.g. its feature is active. */\\n\\t&.ck-on {\\n\\t\\t@mixin ck-button-colors --ck-color-button-on;\\n\\n\\t\\tcolor: var(--ck-color-button-on-color);\\n\\t}\\n\\n\\t&.ck-button-save {\\n\\t\\tcolor: var(--ck-color-button-save);\\n\\t}\\n\\n\\t&.ck-button-cancel {\\n\\t\\tcolor: var(--ck-color-button-cancel);\\n\\t}\\n}\\n\\n/* A style of the button which handles the primary action. */\\n.ck.ck-button-action,\\na.ck.ck-button-action {\\n\\t@mixin ck-button-colors --ck-color-button-action;\\n\\n\\tcolor: var(--ck-color-button-action-text);\\n}\\n\\n.ck.ck-button-bold,\\na.ck.ck-button-bold {\\n\\tfont-weight: bold;\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n/**\\n * Implements a button of given background color.\\n *\\n * @param {String} $background - Background color of the button.\\n * @param {String} $border - Border color of the button.\\n */\\n@define-mixin ck-button-colors $prefix {\\n\\tbackground: var($(prefix)-background);\\n\\n\\t&:not(.ck-disabled) {\\n\\t\\t&:hover {\\n\\t\\t\\tbackground: var($(prefix)-hover-background);\\n\\t\\t}\\n\\n\\t\\t&:active {\\n\\t\\t\\tbackground: var($(prefix)-active-background);\\n\\t\\t}\\n\\t}\\n\\n\\t/* https://github.com/ckeditor/ckeditor5-theme-lark/issues/98 */\\n\\t&.ck-disabled {\\n\\t\\tbackground: var($(prefix)-disabled-background);\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n/**\\n * Implements rounded corner interface for .ck-rounded-corners class.\\n *\\n * @see $ck-border-radius\\n */\\n@define-mixin ck-rounded-corners {\\n\\tborder-radius: 0;\\n\\n\\t@nest .ck-rounded-corners &,\\n\\t&.ck-rounded-corners {\\n\\t\\tborder-radius: var(--ck-border-radius);\\n\\t\\t@mixin-content;\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n/**\\n * A visual style of focused element's border.\\n */\\n@define-mixin ck-focus-ring {\\n\\t/* Disable native outline. */\\n\\toutline: none;\\n\\tborder: var(--ck-focus-ring)\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n/**\\n * A helper to combine multiple shadows.\\n */\\n@define-mixin ck-box-shadow $shadowA, $shadowB: 0 0 {\\n\\tbox-shadow: $shadowA, $shadowB;\\n}\\n\\n/**\\n * Gives an element a drop shadow so it looks like a floating panel.\\n */\\n@define-mixin ck-drop-shadow {\\n\\t@mixin ck-box-shadow var(--ck-drop-shadow);\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n/**\\n * A class which indicates that an element holding it is disabled.\\n */\\n@define-mixin ck-disabled {\\n\\topacity: var(--ck-disabled-opacity);\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck.ck-button.ck-switchbutton .ck-button__toggle,.ck.ck-button.ck-switchbutton .ck-button__toggle .ck-button__toggle__inner{display:block}:root{--ck-switch-button-toggle-width:2.6153846154em;--ck-switch-button-toggle-inner-size:calc(1.07692em + 1px);--ck-switch-button-translation:calc(var(--ck-switch-button-toggle-width) - var(--ck-switch-button-toggle-inner-size) - 2px);--ck-switch-button-inner-hover-shadow:0 0 0 5px var(--ck-color-switch-button-inner-shadow)}.ck.ck-button.ck-switchbutton,.ck.ck-button.ck-switchbutton.ck-on:active,.ck.ck-button.ck-switchbutton.ck-on:focus,.ck.ck-button.ck-switchbutton.ck-on:hover,.ck.ck-button.ck-switchbutton:active,.ck.ck-button.ck-switchbutton:focus,.ck.ck-button.ck-switchbutton:hover{background:transparent;color:inherit}[dir=ltr] .ck.ck-button.ck-switchbutton .ck-button__label{margin-right:calc(var(--ck-spacing-large)*2)}[dir=rtl] .ck.ck-button.ck-switchbutton .ck-button__label{margin-left:calc(var(--ck-spacing-large)*2)}.ck.ck-button.ck-switchbutton .ck-button__toggle{border-radius:0}.ck-rounded-corners .ck.ck-button.ck-switchbutton .ck-button__toggle,.ck.ck-button.ck-switchbutton .ck-button__toggle.ck-rounded-corners{border-radius:var(--ck-border-radius)}[dir=ltr] .ck.ck-button.ck-switchbutton .ck-button__toggle{margin-left:auto}[dir=rtl] .ck.ck-button.ck-switchbutton .ck-button__toggle{margin-right:auto}.ck.ck-button.ck-switchbutton .ck-button__toggle{background:var(--ck-color-switch-button-off-background);border:1px solid transparent;transition:background .4s ease,box-shadow .2s ease-in-out,outline .2s ease-in-out;width:var(--ck-switch-button-toggle-width)}.ck.ck-button.ck-switchbutton .ck-button__toggle .ck-button__toggle__inner{border-radius:0}.ck-rounded-corners .ck.ck-button.ck-switchbutton .ck-button__toggle .ck-button__toggle__inner,.ck.ck-button.ck-switchbutton .ck-button__toggle .ck-button__toggle__inner.ck-rounded-corners{border-radius:var(--ck-border-radius);border-radius:calc(var(--ck-border-radius)*.5)}.ck.ck-button.ck-switchbutton .ck-button__toggle .ck-button__toggle__inner{background:var(--ck-color-switch-button-inner-background);height:var(--ck-switch-button-toggle-inner-size);transition:all .3s ease;width:var(--ck-switch-button-toggle-inner-size)}@media (prefers-reduced-motion:reduce){.ck.ck-button.ck-switchbutton .ck-button__toggle .ck-button__toggle__inner{transition:none}}.ck.ck-button.ck-switchbutton .ck-button__toggle:hover{background:var(--ck-color-switch-button-off-hover-background)}.ck.ck-button.ck-switchbutton .ck-button__toggle:hover .ck-button__toggle__inner{box-shadow:var(--ck-switch-button-inner-hover-shadow)}.ck.ck-button.ck-switchbutton.ck-disabled .ck-button__toggle{opacity:var(--ck-disabled-opacity)}.ck.ck-button.ck-switchbutton:focus{border-color:transparent;box-shadow:none;outline:none}.ck.ck-button.ck-switchbutton:focus .ck-button__toggle{box-shadow:0 0 0 1px var(--ck-color-base-background),0 0 0 5px var(--ck-color-focus-outer-shadow);outline:var(--ck-focus-ring);outline-offset:1px}.ck.ck-button.ck-switchbutton.ck-on .ck-button__toggle{background:var(--ck-color-switch-button-on-background)}.ck.ck-button.ck-switchbutton.ck-on .ck-button__toggle:hover{background:var(--ck-color-switch-button-on-hover-background)}[dir=ltr] .ck.ck-button.ck-switchbutton.ck-on .ck-button__toggle .ck-button__toggle__inner{transform:translateX(var( --ck-switch-button-translation ))}[dir=rtl] .ck.ck-button.ck-switchbutton.ck-on .ck-button__toggle .ck-button__toggle__inner{transform:translateX(calc(var( --ck-switch-button-translation )*-1))}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../ckeditor5-ui/theme/components/button/switchbutton.css\",\"webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/button/switchbutton.css\",\"webpack://./../ckeditor5-theme-lark/theme/mixins/_rounded.css\",\"webpack://./../ckeditor5-theme-lark/theme/mixins/_disabled.css\"],\"names\":[],\"mappings\":\"AASE,4HACC,aACD,CCCF,MAEC,8CAA+C,CAE/C,0DAAgE,CAChE,2HAIC,CACD,0FACD,CAOC,0QAEC,sBAAuB,CADvB,aAED,CAEA,0DAGE,4CAOF,CAVA,0DAQE,2CAEF,CAEA,iDCpCA,eDgFA,CA5CA,yIChCC,qCD4ED,CA5CA,2DAKE,gBAuCF,CA5CA,2DAUE,iBAkCF,CA5CA,iDAkBC,uDAAwD,CAFxD,4BAA6B,CAD7B,iFAAsF,CAEtF,0CA2BD,CAxBC,2ECxDD,eDuEC,CAfA,6LCpDA,qCAAsC,CDsDpC,8CAaF,CAfA,2EAOC,yDAA0D,CAD1D,gDAAiD,CAIjD,uBAA0B,CAL1B,+CAUD,CAHC,uCAZD,2EAaE,eAEF,CADC,CAGD,uDACC,6DAKD,CAHC,iFACC,qDACD,CAIF,6DEpFA,kCFsFA,CAGA,oCACC,wBAAyB,CAEzB,eAAgB,CADhB,YAQD,CALC,uDACC,iGAAmG,CAEnG,4BAA6B,CAD7B,kBAED,CAKA,uDACC,sDAkBD,CAhBC,6DACC,4DACD,CAEA,2FAKE,2DAMF,CAXA,2FASE,oEAEF\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.ck.ck-button.ck-switchbutton {\\n\\t& .ck-button__toggle {\\n\\t\\tdisplay: block;\\n\\n\\t\\t& .ck-button__toggle__inner {\\n\\t\\t\\tdisplay: block;\\n\\t\\t}\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n@import \\\"../../../mixins/_rounded.css\\\";\\n@import \\\"../../../mixins/_disabled.css\\\";\\n@import \\\"@ckeditor/ckeditor5-ui/theme/mixins/_dir.css\\\";\\n\\n/* Note: To avoid rendering issues (aliasing) but to preserve the responsive nature\\nof the component, floating–point numbers have been used which, for the default font size\\n(see: --ck-font-size-base), will generate simple integers. */\\n:root {\\n\\t/* 34px at 13px font-size */\\n\\t--ck-switch-button-toggle-width: 2.6153846154em;\\n\\t/* 14px at 13px font-size */\\n\\t--ck-switch-button-toggle-inner-size: calc(1.0769230769em + 1px);\\n\\t--ck-switch-button-translation: calc(\\n\\t\\tvar(--ck-switch-button-toggle-width) -\\n\\t\\tvar(--ck-switch-button-toggle-inner-size) -\\n\\t\\t2px /* Border */\\n\\t);\\n\\t--ck-switch-button-inner-hover-shadow: 0 0 0 5px var(--ck-color-switch-button-inner-shadow);\\n}\\n\\n.ck.ck-button.ck-switchbutton {\\n\\t/* Unlike a regular button, the switch button text color and background should never change.\\n\\t * Changing toggle switch (background, outline) is enough to carry the information about the\\n\\t * state of the entire component (https://github.com/ckeditor/ckeditor5/issues/12519)\\n\\t */\\n\\t&, &:hover, &:focus, &:active, &.ck-on:hover, &.ck-on:focus, &.ck-on:active {\\n\\t\\tcolor: inherit;\\n\\t\\tbackground: transparent;\\n\\t}\\n\\n\\t& .ck-button__label {\\n\\t\\t@mixin ck-dir ltr {\\n\\t\\t\\t/* Separate the label from the switch */\\n\\t\\t\\tmargin-right: calc(2 * var(--ck-spacing-large));\\n\\t\\t}\\n\\n\\t\\t@mixin ck-dir rtl {\\n\\t\\t\\t/* Separate the label from the switch */\\n\\t\\t\\tmargin-left: calc(2 * var(--ck-spacing-large));\\n\\t\\t}\\n\\t}\\n\\n\\t& .ck-button__toggle {\\n\\t\\t@mixin ck-rounded-corners;\\n\\n\\t\\t@mixin ck-dir ltr {\\n\\t\\t\\t/* Make sure the toggle is always to the right as far as possible. */\\n\\t\\t\\tmargin-left: auto;\\n\\t\\t}\\n\\n\\t\\t@mixin ck-dir rtl {\\n\\t\\t\\t/* Make sure the toggle is always to the left as far as possible. */\\n\\t\\t\\tmargin-right: auto;\\n\\t\\t}\\n\\n\\t\\t/* Apply some smooth transition to the box-shadow and border. */\\n\\t\\t/* Gently animate the background color of the toggle switch */\\n\\t\\ttransition: background 400ms ease, box-shadow .2s ease-in-out, outline .2s ease-in-out;\\n\\t\\tborder: 1px solid transparent;\\n\\t\\twidth: var(--ck-switch-button-toggle-width);\\n\\t\\tbackground: var(--ck-color-switch-button-off-background);\\n\\n\\t\\t& .ck-button__toggle__inner {\\n\\t\\t\\t@mixin ck-rounded-corners {\\n\\t\\t\\t\\tborder-radius: calc(.5 * var(--ck-border-radius));\\n\\t\\t\\t}\\n\\n\\t\\t\\twidth: var(--ck-switch-button-toggle-inner-size);\\n\\t\\t\\theight: var(--ck-switch-button-toggle-inner-size);\\n\\t\\t\\tbackground: var(--ck-color-switch-button-inner-background);\\n\\n\\t\\t\\t/* Gently animate the inner part of the toggle switch */\\n\\t\\t\\ttransition: all 300ms ease;\\n\\n\\t\\t\\t@media (prefers-reduced-motion: reduce) {\\n\\t\\t\\t\\ttransition: none;\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t&:hover {\\n\\t\\t\\tbackground: var(--ck-color-switch-button-off-hover-background);\\n\\n\\t\\t\\t& .ck-button__toggle__inner {\\n\\t\\t\\t\\tbox-shadow: var(--ck-switch-button-inner-hover-shadow);\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t&.ck-disabled .ck-button__toggle {\\n\\t\\t@mixin ck-disabled;\\n\\t}\\n\\n\\t/* Overriding default .ck-button:focus styles + an outline around the toogle */\\n\\t&:focus {\\n\\t\\tborder-color: transparent;\\n\\t\\toutline: none;\\n\\t\\tbox-shadow: none;\\n\\n\\t\\t& .ck-button__toggle {\\n\\t\\t\\tbox-shadow: 0 0 0 1px var(--ck-color-base-background), 0 0 0 5px var(--ck-color-focus-outer-shadow);\\n\\t\\t\\toutline-offset: 1px;\\n\\t\\t\\toutline: var(--ck-focus-ring);\\n\\t\\t}\\n\\t}\\n\\n\\t/* stylelint-disable-next-line no-descending-specificity */\\n\\t&.ck-on {\\n\\t\\t& .ck-button__toggle {\\n\\t\\t\\tbackground: var(--ck-color-switch-button-on-background);\\n\\n\\t\\t\\t&:hover {\\n\\t\\t\\t\\tbackground: var(--ck-color-switch-button-on-hover-background);\\n\\t\\t\\t}\\n\\n\\t\\t\\t& .ck-button__toggle__inner {\\n\\t\\t\\t\\t/*\\n\\t\\t\\t\\t* Move the toggle switch to the right. It will be animated.\\n\\t\\t\\t\\t*/\\n\\t\\t\\t\\t@mixin ck-dir ltr {\\n\\t\\t\\t\\t\\ttransform: translateX( var( --ck-switch-button-translation ) );\\n\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\t@mixin ck-dir rtl {\\n\\t\\t\\t\\t\\ttransform: translateX( calc( -1 * var( --ck-switch-button-translation ) ) );\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n/**\\n * Implements rounded corner interface for .ck-rounded-corners class.\\n *\\n * @see $ck-border-radius\\n */\\n@define-mixin ck-rounded-corners {\\n\\tborder-radius: 0;\\n\\n\\t@nest .ck-rounded-corners &,\\n\\t&.ck-rounded-corners {\\n\\t\\tborder-radius: var(--ck-border-radius);\\n\\t\\t@mixin-content;\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n/**\\n * A class which indicates that an element holding it is disabled.\\n */\\n@define-mixin ck-disabled {\\n\\topacity: var(--ck-disabled-opacity);\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck.ck-collapsible.ck-collapsible_collapsed>.ck-collapsible__children{display:none}:root{--ck-collapsible-arrow-size:calc(var(--ck-icon-size)*0.5)}.ck.ck-collapsible>.ck.ck-button{border-radius:0;color:inherit;font-weight:700;padding:var(--ck-list-button-padding);width:100%}.ck.ck-collapsible>.ck.ck-button:focus{background:transparent}.ck.ck-collapsible>.ck.ck-button:active,.ck.ck-collapsible>.ck.ck-button:hover:not(:focus),.ck.ck-collapsible>.ck.ck-button:not(:focus){background:transparent;border-color:transparent;box-shadow:none}.ck.ck-collapsible>.ck.ck-button>.ck-icon{margin-right:var(--ck-spacing-medium);width:var(--ck-collapsible-arrow-size)}.ck.ck-collapsible>.ck-collapsible__children{padding:var(--ck-spacing-medium) var(--ck-spacing-large) var(--ck-spacing-large)}.ck.ck-collapsible.ck-collapsible_collapsed>.ck.ck-button .ck-icon{transform:rotate(-90deg)}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../ckeditor5-ui/theme/components/collapsible/collapsible.css\",\"webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/collapsible/collapsible.css\"],\"names\":[],\"mappings\":\"AAMC,sEACC,YACD,CCHD,MACC,yDACD,CAGC,iCAIC,eAAgB,CAChB,aAAc,CAHd,eAAiB,CACjB,qCAAsC,CAFtC,UAoBD,CAdC,uCACC,sBACD,CAEA,wIACC,sBAAuB,CACvB,wBAAyB,CACzB,eACD,CAEA,0CACC,qCAAsC,CACtC,sCACD,CAGD,6CACC,gFACD,CAGC,mEACC,wBACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.ck.ck-collapsible.ck-collapsible_collapsed {\\n\\t& > .ck-collapsible__children {\\n\\t\\tdisplay: none;\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n:root {\\n\\t--ck-collapsible-arrow-size: calc(0.5 * var(--ck-icon-size));\\n}\\n\\n.ck.ck-collapsible {\\n\\t& > .ck.ck-button {\\n\\t\\twidth: 100%;\\n\\t\\tfont-weight: bold;\\n\\t\\tpadding: var(--ck-list-button-padding);\\n\\t\\tborder-radius: 0;\\n\\t\\tcolor: inherit;\\n\\n\\t\\t&:focus {\\n\\t\\t\\tbackground: transparent;\\n\\t\\t}\\n\\n\\t\\t&:active, &:not(:focus), &:hover:not(:focus) {\\n\\t\\t\\tbackground: transparent;\\n\\t\\t\\tborder-color: transparent;\\n\\t\\t\\tbox-shadow: none;\\n\\t\\t}\\n\\n\\t\\t& > .ck-icon {\\n\\t\\t\\tmargin-right: var(--ck-spacing-medium);\\n\\t\\t\\twidth: var(--ck-collapsible-arrow-size);\\n\\t\\t}\\n\\t}\\n\\n\\t& > .ck-collapsible__children {\\n\\t\\tpadding: var(--ck-spacing-medium) var(--ck-spacing-large) var(--ck-spacing-large);\\n\\t}\\n\\n\\t&.ck-collapsible_collapsed {\\n\\t\\t& > .ck.ck-button .ck-icon {\\n\\t\\t\\ttransform: rotate(-90deg);\\n\\t\\t}\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck.ck-color-grid{display:grid}:root{--ck-color-grid-tile-size:24px;--ck-color-color-grid-check-icon:#166fd4}.ck.ck-color-grid{grid-gap:5px;padding:8px}.ck.ck-color-grid__tile{transition:box-shadow .2s ease}@media (forced-colors:none){.ck.ck-color-grid__tile{border:0;height:var(--ck-color-grid-tile-size);min-height:var(--ck-color-grid-tile-size);min-width:var(--ck-color-grid-tile-size);padding:0;width:var(--ck-color-grid-tile-size)}.ck.ck-color-grid__tile.ck-on,.ck.ck-color-grid__tile:focus:not(.ck-disabled),.ck.ck-color-grid__tile:hover:not(.ck-disabled){border:0}.ck.ck-color-grid__tile.ck-color-selector__color-tile_bordered{box-shadow:0 0 0 1px var(--ck-color-base-border)}.ck.ck-color-grid__tile.ck-on{box-shadow:inset 0 0 0 1px var(--ck-color-base-background),0 0 0 2px var(--ck-color-base-text)}.ck.ck-color-grid__tile:focus:not(.ck-disabled),.ck.ck-color-grid__tile:hover:not(.ck-disabled){box-shadow:inset 0 0 0 1px var(--ck-color-base-background),0 0 0 2px var(--ck-color-focus-border)}}@media (forced-colors:active){.ck.ck-color-grid__tile{height:unset;min-height:unset;min-width:unset;padding:0 var(--ck-spacing-small);width:unset}.ck.ck-color-grid__tile .ck-button__label{display:inline-block}}@media (prefers-reduced-motion:reduce){.ck.ck-color-grid__tile{transition:none}}.ck.ck-color-grid__tile.ck-disabled{cursor:unset;transition:unset}.ck.ck-color-grid__tile .ck.ck-icon{color:var(--ck-color-color-grid-check-icon);display:none}.ck.ck-color-grid__tile.ck-on .ck.ck-icon{display:block}.ck.ck-color-grid__label{padding:0 var(--ck-spacing-standard)}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../ckeditor5-ui/theme/components/colorgrid/colorgrid.css\",\"webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/colorgrid/colorgrid.css\",\"webpack://./../ckeditor5-ui/theme/mixins/_mediacolors.css\"],\"names\":[],\"mappings\":\"AAKA,kBACC,YACD,CCCA,MACC,8BAA+B,CAK/B,wCACD,CAEA,kBACC,YAAa,CACb,WACD,CAEA,wBACC,8BAkED,CC3EC,4BACC,wBDgBA,QAAS,CAJT,qCAAsC,CAEtC,yCAA0C,CAD1C,wCAAyC,CAEzC,SAAU,CAJV,oCCTA,CDgBA,8HAIC,QACD,CAEA,+DACC,gDACD,CAEA,8BACC,8FACD,CAEA,gGAEC,iGACD,CCjCD,CAZA,8BACC,wBDqDA,YAAa,CAEb,gBAAiB,CADjB,eAAgB,CAEhB,iCAAkC,CAJlC,WClDA,CDwDA,0CACC,oBACD,CCzDD,CD4DA,uCAhDD,wBAiDE,eAkBF,CAjBC,CAEA,oCACC,YAAa,CACb,gBACD,CAEA,oCAEC,2CAA4C,CAD5C,YAED,CAGC,0CACC,aACD,CAIF,yBACC,oCACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.ck.ck-color-grid {\\n\\tdisplay: grid;\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n@import \\\"../../../mixins/_rounded.css\\\";\\n@import \\\"@ckeditor/ckeditor5-ui/theme/mixins/_mediacolors.css\\\";\\n\\n:root {\\n\\t--ck-color-grid-tile-size: 24px;\\n\\n\\t/* Not using global colors here because these may change but some colors in a pallette\\n\\t * require special treatment. For instance, this ensures no matter what the UI text color is,\\n\\t * the check icon will look good on the black color tile. */\\n\\t--ck-color-color-grid-check-icon: hsl(212, 81%, 46%);\\n}\\n\\n.ck.ck-color-grid {\\n\\tgrid-gap: 5px;\\n\\tpadding: 8px;\\n}\\n\\n.ck.ck-color-grid__tile {\\n\\ttransition: .2s ease box-shadow;\\n\\n\\t@mixin ck-media-default-colors {\\n\\t\\twidth: var(--ck-color-grid-tile-size);\\n\\t\\theight: var(--ck-color-grid-tile-size);\\n\\t\\tmin-width: var(--ck-color-grid-tile-size);\\n\\t\\tmin-height: var(--ck-color-grid-tile-size);\\n\\t\\tpadding: 0;\\n\\t\\tborder: 0;\\n\\n\\t\\t&.ck-on,\\n\\t\\t&:focus:not( .ck-disabled ),\\n\\t\\t&:hover:not( .ck-disabled ) {\\n\\t\\t\\t/* Disable the default .ck-button's border ring. */\\n\\t\\t\\tborder: 0;\\n\\t\\t}\\n\\n\\t\\t&.ck-color-selector__color-tile_bordered {\\n\\t\\t\\tbox-shadow: 0 0 0 1px var(--ck-color-base-border);\\n\\t\\t}\\n\\n\\t\\t&.ck-on {\\n\\t\\t\\tbox-shadow: inset 0 0 0 1px var(--ck-color-base-background), 0 0 0 2px var(--ck-color-base-text);\\n\\t\\t}\\n\\n\\t\\t&:focus:not( .ck-disabled ),\\n\\t\\t&:hover:not( .ck-disabled ) {\\n\\t\\t\\tbox-shadow: inset 0 0 0 1px var(--ck-color-base-background), 0 0 0 2px var(--ck-color-focus-border);\\n\\t\\t}\\n\\t}\\n\\n\\t/*\\n\\t * In high contrast mode, the colors are replaced with text labels.\\n\\t * See https://github.com/ckeditor/ckeditor5/issues/14907.\\n\\t */\\n\\t@mixin ck-media-forced-colors {\\n\\t\\twidth: unset;\\n\\t\\theight: unset;\\n\\t\\tmin-width: unset;\\n\\t\\tmin-height: unset;\\n\\t\\tpadding: 0 var(--ck-spacing-small);\\n\\n\\t\\t& .ck-button__label {\\n\\t\\t\\tdisplay: inline-block;\\n\\t\\t}\\n\\t}\\n\\n\\t@media (prefers-reduced-motion: reduce) {\\n\\t\\ttransition: none;\\n\\t}\\n\\n\\t&.ck-disabled {\\n\\t\\tcursor: unset;\\n\\t\\ttransition: unset;\\n\\t}\\n\\n\\t& .ck.ck-icon {\\n\\t\\tdisplay: none;\\n\\t\\tcolor: var(--ck-color-color-grid-check-icon);\\n\\t}\\n\\n\\t&.ck-on {\\n\\t\\t& .ck.ck-icon {\\n\\t\\t\\tdisplay: block;\\n\\t\\t}\\n\\t}\\n}\\n\\n.ck.ck-color-grid__label {\\n\\tpadding: 0 var(--ck-spacing-standard);\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n@define-mixin ck-media-forced-colors {\\n\\t@media (forced-colors: active) {\\n\\t\\t& {\\n\\t\\t\\t@mixin-content;\\n\\t\\t}\\n\\t}\\n}\\n\\n@define-mixin ck-media-default-colors {\\n\\t@media (forced-colors: none) {\\n\\t\\t& {\\n\\t\\t\\t@mixin-content;\\n\\t\\t}\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".color-picker-hex-input{width:max-content}.color-picker-hex-input .ck.ck-input{min-width:unset}.ck.ck-color-picker__row{display:flex;flex-direction:row;flex-wrap:nowrap;justify-content:space-between;margin:var(--ck-spacing-large) 0 0;width:unset}.ck.ck-color-picker__row .ck.ck-labeled-field-view{padding-top:unset}.ck.ck-color-picker__row .ck.ck-input-text{width:unset}.ck.ck-color-picker__row .ck-color-picker__hash-view{padding-right:var(--ck-spacing-medium);padding-top:var(--ck-spacing-tiny)}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../ckeditor5-ui/theme/components/colorpicker/colorpicker.css\"],\"names\":[],\"mappings\":\"AAKA,wBACC,iBAKD,CAHC,qCACC,eACD,CAGD,yBACC,YAAa,CACb,kBAAmB,CACnB,gBAAiB,CACjB,6BAA8B,CAC9B,kCAAmC,CACnC,WAcD,CAZC,mDACC,iBACD,CAEA,2CACC,WACD,CAEA,qDAEC,sCAAuC,CADvC,kCAED\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.color-picker-hex-input {\\n\\twidth: max-content;\\n\\n\\t& .ck.ck-input {\\n\\t\\tmin-width: unset;\\n\\t}\\n}\\n\\n.ck.ck-color-picker__row {\\n\\tdisplay: flex;\\n\\tflex-direction: row;\\n\\tflex-wrap: nowrap;\\n\\tjustify-content: space-between;\\n\\tmargin: var(--ck-spacing-large) 0 0;\\n\\twidth: unset;\\n\\n\\t& .ck.ck-labeled-field-view {\\n\\t\\tpadding-top: unset;\\n\\t}\\n\\n\\t& .ck.ck-input-text {\\n\\t\\twidth: unset;\\n\\t}\\n\\n\\t& .ck-color-picker__hash-view {\\n\\t\\tpadding-top: var(--ck-spacing-tiny);\\n\\t\\tpadding-right: var(--ck-spacing-medium);\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck.ck-color-selector .ck-color-grids-fragment .ck-button.ck-color-selector__color-picker,.ck.ck-color-selector .ck-color-grids-fragment .ck-button.ck-color-selector__remove-color{align-items:center;display:flex}[dir=rtl] .ck.ck-color-selector .ck-color-grids-fragment .ck-button.ck-color-selector__color-picker,[dir=rtl] .ck.ck-color-selector .ck-color-grids-fragment .ck-button.ck-color-selector__remove-color{justify-content:flex-start}.ck.ck-color-selector .ck-color-picker-fragment .ck.ck-color-selector_action-bar{display:flex;flex-direction:row;justify-content:space-around}.ck.ck-color-selector .ck-color-picker-fragment .ck.ck-color-selector_action-bar .ck-button-cancel,.ck.ck-color-selector .ck-color-picker-fragment .ck.ck-color-selector_action-bar .ck-button-save{flex:1}.ck.ck-color-selector .ck-color-grids-fragment .ck-button.ck-color-selector__color-picker,.ck.ck-color-selector .ck-color-grids-fragment .ck-button.ck-color-selector__remove-color{width:100%}.ck.ck-color-selector .ck-color-grids-fragment .ck-button.ck-color-selector__color-picker{border-bottom-left-radius:0;border-bottom-right-radius:0;padding:calc(var(--ck-spacing-standard)/2) var(--ck-spacing-standard)}.ck.ck-color-selector .ck-color-grids-fragment .ck-button.ck-color-selector__color-picker:not(:focus){border-top:1px solid var(--ck-color-base-border)}[dir=ltr] .ck.ck-color-selector .ck-color-grids-fragment .ck-button.ck-color-selector__color-picker .ck.ck-icon{margin-right:var(--ck-spacing-standard)}[dir=rtl] .ck.ck-color-selector .ck-color-grids-fragment .ck-button.ck-color-selector__color-picker .ck.ck-icon{margin-left:var(--ck-spacing-standard)}.ck.ck-color-selector .ck-color-grids-fragment label.ck.ck-color-grid__label{font-weight:unset}.ck.ck-color-selector .ck-color-picker-fragment .ck.ck-color-picker{padding:8px}.ck.ck-color-selector .ck-color-picker-fragment .ck.ck-color-picker .hex-color-picker{height:100px;min-width:180px}.ck.ck-color-selector .ck-color-picker-fragment .ck.ck-color-picker .hex-color-picker::part(saturation){border-radius:var(--ck-border-radius) var(--ck-border-radius) 0 0}.ck.ck-color-selector .ck-color-picker-fragment .ck.ck-color-picker .hex-color-picker::part(hue){border-radius:0 0 var(--ck-border-radius) var(--ck-border-radius)}.ck.ck-color-selector .ck-color-picker-fragment .ck.ck-color-picker .hex-color-picker::part(hue-pointer),.ck.ck-color-selector .ck-color-picker-fragment .ck.ck-color-picker .hex-color-picker::part(saturation-pointer){height:15px;width:15px}.ck.ck-color-selector .ck-color-picker-fragment .ck.ck-color-selector_action-bar{padding:0 8px 8px}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../ckeditor5-ui/theme/components/colorselector/colorselector.css\",\"webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/colorselector/colorselector.css\"],\"names\":[],\"mappings\":\"AAUE,oLAGC,kBAAmB,CADnB,YAMD,CARA,wMAME,0BAEF,CAKA,iFACC,YAAa,CACb,kBAAmB,CACnB,4BAMD,CAJC,oMAEC,MACD,CCrBD,oLAEC,UACD,CAEA,0FAEC,2BAA4B,CAC5B,4BAA6B,CAF7B,qEAiBD,CAbC,sGACC,gDACD,CAEA,gHAEE,uCAMF,CARA,gHAME,sCAEF,CAGD,6EACC,iBACD,CAKA,oEACC,WAoBD,CAlBC,sFACC,YAAa,CACb,eAeD,CAbC,wGACC,iEACD,CAEA,iGACC,iEACD,CAEA,yNAGC,WAAY,CADZ,UAED,CAIF,iFACC,iBACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n@import \\\"@ckeditor/ckeditor5-ui/theme/mixins/_dir.css\\\";\\n\\n.ck.ck-color-selector {\\n\\t/* View fragment with color grids. */\\n\\t& .ck-color-grids-fragment {\\n\\t\\t& .ck-button.ck-color-selector__remove-color,\\n\\t\\t& .ck-button.ck-color-selector__color-picker {\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\talign-items: center;\\n\\n\\t\\t\\t@mixin ck-dir rtl {\\n\\t\\t\\t\\tjustify-content: flex-start;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t/* View fragment with a color picker. */\\n\\t& .ck-color-picker-fragment {\\n\\t\\t& .ck.ck-color-selector_action-bar {\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\tflex-direction: row;\\n\\t\\t\\tjustify-content: space-around;\\n\\n\\t\\t\\t& .ck-button-save,\\n\\t\\t\\t& .ck-button-cancel {\\n\\t\\t\\t\\tflex: 1\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n@import \\\"@ckeditor/ckeditor5-ui/theme/mixins/_dir.css\\\";\\n\\n.ck.ck-color-selector {\\n\\t/* View fragment with color grids. */\\n\\t& .ck-color-grids-fragment {\\n\\t\\t& .ck-button.ck-color-selector__remove-color,\\n\\t\\t& .ck-button.ck-color-selector__color-picker {\\n\\t\\t\\twidth: 100%;\\n\\t\\t}\\n\\n\\t\\t& .ck-button.ck-color-selector__color-picker {\\n\\t\\t\\tpadding: calc(var(--ck-spacing-standard) / 2) var(--ck-spacing-standard);\\n\\t\\t\\tborder-bottom-left-radius: 0;\\n\\t\\t\\tborder-bottom-right-radius: 0;\\n\\n\\t\\t\\t&:not(:focus) {\\n\\t\\t\\t\\tborder-top: 1px solid var(--ck-color-base-border);\\n\\t\\t\\t}\\n\\n\\t\\t\\t& .ck.ck-icon {\\n\\t\\t\\t\\t@mixin ck-dir ltr {\\n\\t\\t\\t\\t\\tmargin-right: var(--ck-spacing-standard);\\n\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\t@mixin ck-dir rtl {\\n\\t\\t\\t\\t\\tmargin-left: var(--ck-spacing-standard);\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t& label.ck.ck-color-grid__label {\\n\\t\\t\\tfont-weight: unset;\\n\\t\\t}\\n\\t}\\n\\n\\t/* View fragment with a color picker. */\\n\\t& .ck-color-picker-fragment {\\n\\t\\t& .ck.ck-color-picker {\\n\\t\\t\\tpadding: 8px;\\n\\n\\t\\t\\t& .hex-color-picker {\\n\\t\\t\\t\\theight: 100px;\\n\\t\\t\\t\\tmin-width: 180px;\\n\\n\\t\\t\\t\\t&::part(saturation) {\\n\\t\\t\\t\\t\\tborder-radius: var(--ck-border-radius) var(--ck-border-radius) 0 0;\\n\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\t&::part(hue) {\\n\\t\\t\\t\\t\\tborder-radius: 0 0 var(--ck-border-radius) var(--ck-border-radius);\\n\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\t&::part(saturation-pointer),\\n\\t\\t\\t\\t&::part(hue-pointer) {\\n\\t\\t\\t\\t\\twidth: 15px;\\n\\t\\t\\t\\t\\theight: 15px;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t& .ck.ck-color-selector_action-bar {\\n\\t\\t\\tpadding: 0 8px 8px;\\n\\t\\t}\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck.ck-dialog-overlay{bottom:0;left:0;overscroll-behavior:none;position:fixed;right:0;top:0;user-select:none}.ck.ck-dialog-overlay.ck-dialog-overlay__transparent{animation:none;background:none;pointer-events:none}.ck.ck-dialog{overscroll-behavior:none;position:absolute;width:fit-content}.ck.ck-dialog .ck.ck-form__header{flex-shrink:0}.ck.ck-dialog .ck.ck-form__header .ck-form__header__label{cursor:grab}.ck.ck-dialog-overlay.ck-dialog-overlay__transparent .ck.ck-dialog{pointer-events:all}:root{--ck-dialog-overlay-background-color:rgba(0,0,0,.5);--ck-dialog-drop-shadow:0px 0px 6px 2px rgba(0,0,0,.15);--ck-dialog-max-width:100vw;--ck-dialog-max-height:90vh;--ck-color-dialog-background:var(--ck-color-base-background);--ck-color-dialog-form-header-border:var(--ck-color-base-border)}.ck.ck-dialog-overlay{animation:ck-dialog-fade-in .3s;background:var(--ck-dialog-overlay-background-color);z-index:var(--ck-z-dialog)}.ck.ck-dialog{border-radius:0}.ck-rounded-corners .ck.ck-dialog,.ck.ck-dialog.ck-rounded-corners{border-radius:var(--ck-border-radius)}.ck.ck-dialog{box-shadow:var(--ck-drop-shadow),0 0;--ck-drop-shadow:var(--ck-dialog-drop-shadow);background:var(--ck-color-dialog-background);border:1px solid var(--ck-color-base-border);max-height:var(--ck-dialog-max-height);max-width:var(--ck-dialog-max-width)}.ck.ck-dialog .ck.ck-form__header{border-bottom:1px solid var(--ck-color-dialog-form-header-border)}@keyframes ck-dialog-fade-in{0%{background:transparent}to{background:var(--ck-dialog-overlay-background-color)}}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../ckeditor5-ui/theme/components/dialog/dialog.css\",\"webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/dialog/dialog.css\",\"webpack://./../ckeditor5-theme-lark/theme/mixins/_rounded.css\",\"webpack://./../ckeditor5-theme-lark/theme/mixins/_shadow.css\"],\"names\":[],\"mappings\":\"AAKA,sBAKC,QAAS,CACT,MAAO,CAJP,wBAAyB,CAEzB,cAAe,CAGf,OAAQ,CACR,KAAM,CAPN,gBAcD,CALC,qDAEC,cAAe,CACf,eAAgB,CAFhB,mBAGD,CAGD,cACC,wBAAyB,CAEzB,iBAAkB,CADlB,iBAcD,CAXC,kCACC,aAKD,CAHC,0DACC,WACD,CAVF,mEAcE,kBAEF,CC7BA,MACC,mDAA2D,CAC3D,uDAA8D,CAC9D,2BAA4B,CAC5B,2BAA4B,CAC5B,4DAA6D,CAC7D,gEACD,CAEA,sBACC,+BAAgC,CAChC,oDAAqD,CACrD,0BACD,CAEA,cCbC,eD2BD,CAdA,mECTE,qCDuBF,CAdA,cEfC,oCAA8B,CFmB9B,6CAA8C,CAE9C,4CAA6C,CAG7C,4CAA6C,CAF7C,sCAAuC,CACvC,oCAMD,CAHC,kCACC,iEACD,CAGD,6BACC,GACC,sBACD,CAEA,GACC,oDACD,CACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.ck.ck-dialog-overlay {\\n\\tuser-select: none;\\n\\toverscroll-behavior: none;\\n\\n\\tposition: fixed;\\n\\tbottom: 0;\\n\\tleft: 0;\\n\\tright: 0;\\n\\ttop: 0;\\n\\n\\t&.ck-dialog-overlay__transparent {\\n\\t\\tpointer-events: none;\\n\\t\\tanimation: none;\\n\\t\\tbackground: none;\\n\\t}\\n}\\n\\n.ck.ck-dialog {\\n\\toverscroll-behavior: none;\\n\\twidth: fit-content;\\n\\tposition: absolute;\\n\\n\\t& .ck.ck-form__header {\\n\\t\\tflex-shrink: 0;\\n\\n\\t\\t& .ck-form__header__label {\\n\\t\\t\\tcursor: grab;\\n\\t\\t}\\n\\t}\\n\\n\\t@nest .ck.ck-dialog-overlay.ck-dialog-overlay__transparent & {\\n\\t\\tpointer-events: all;\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n@import \\\"../../../mixins/_rounded.css\\\";\\n@import \\\"../../../mixins/_shadow.css\\\";\\n@import \\\"@ckeditor/ckeditor5-ui/theme/mixins/_rwd.css\\\";\\n\\n:root {\\n\\t--ck-dialog-overlay-background-color: hsla( 0, 0%, 0%, .5 );\\n\\t--ck-dialog-drop-shadow: 0px 0px 6px 2px hsl(0deg 0% 0% / 15%);\\n\\t--ck-dialog-max-width: 100vw;\\n\\t--ck-dialog-max-height: 90vh;\\n\\t--ck-color-dialog-background: var(--ck-color-base-background);\\n\\t--ck-color-dialog-form-header-border: var(--ck-color-base-border);\\n}\\n\\n.ck.ck-dialog-overlay {\\n\\tanimation: ck-dialog-fade-in .3s;\\n\\tbackground: var(--ck-dialog-overlay-background-color);\\n\\tz-index: var(--ck-z-dialog);\\n}\\n\\n.ck.ck-dialog {\\n\\t@mixin ck-rounded-corners;\\n\\t@mixin ck-drop-shadow;\\n\\n\\t--ck-drop-shadow: var(--ck-dialog-drop-shadow);\\n\\n\\tbackground: var(--ck-color-dialog-background);\\n\\tmax-height: var(--ck-dialog-max-height);\\n\\tmax-width: var(--ck-dialog-max-width);\\n\\tborder: 1px solid var(--ck-color-base-border);\\n\\n\\t& .ck.ck-form__header {\\n\\t\\tborder-bottom: 1px solid var(--ck-color-dialog-form-header-border);\\n\\t}\\n}\\n\\n@keyframes ck-dialog-fade-in {\\n\\t0% {\\n\\t\\tbackground: hsla( 0, 0%, 0%, 0 );\\n\\t}\\n\\n\\t100% {\\n\\t\\tbackground: var(--ck-dialog-overlay-background-color);\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n/**\\n * Implements rounded corner interface for .ck-rounded-corners class.\\n *\\n * @see $ck-border-radius\\n */\\n@define-mixin ck-rounded-corners {\\n\\tborder-radius: 0;\\n\\n\\t@nest .ck-rounded-corners &,\\n\\t&.ck-rounded-corners {\\n\\t\\tborder-radius: var(--ck-border-radius);\\n\\t\\t@mixin-content;\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n/**\\n * A helper to combine multiple shadows.\\n */\\n@define-mixin ck-box-shadow $shadowA, $shadowB: 0 0 {\\n\\tbox-shadow: $shadowA, $shadowB;\\n}\\n\\n/**\\n * Gives an element a drop shadow so it looks like a floating panel.\\n */\\n@define-mixin ck-drop-shadow {\\n\\t@mixin ck-box-shadow var(--ck-drop-shadow);\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck.ck-dialog .ck.ck-dialog__actions{display:flex;justify-content:flex-end;padding:var(--ck-spacing-large)}.ck.ck-dialog .ck.ck-dialog__actions>*+*{margin-left:var(--ck-spacing-large)}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../ckeditor5-ui/theme/components/dialog/dialogactions.css\",\"webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/dialog/dialogactions.css\"],\"names\":[],\"mappings\":\"AAMC,qCACC,YAAa,CACb,wBAAyB,CCDzB,+BDED,CCAC,yCACC,mCACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.ck.ck-dialog {\\n\\t& .ck.ck-dialog__actions {\\n\\t\\tdisplay: flex;\\n\\t\\tjustify-content: flex-end;\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.ck.ck-dialog {\\n\\t& .ck.ck-dialog__actions {\\n\\t\\tpadding: var(--ck-spacing-large);\\n\\n\\t\\t& > * + * {\\n\\t\\t\\tmargin-left: var(--ck-spacing-large);\\n\\t\\t}\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \":root{--ck-dropdown-max-width:75vw}.ck.ck-dropdown{display:inline-block;position:relative}.ck.ck-dropdown .ck-dropdown__arrow{pointer-events:none;z-index:var(--ck-z-default)}.ck.ck-dropdown .ck-button.ck-dropdown__button{width:100%}.ck.ck-dropdown .ck-dropdown__panel{display:none;max-width:var(--ck-dropdown-max-width);position:absolute;z-index:var(--ck-z-panel)}.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel-visible{display:inline-block}.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_n,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_ne,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_nme,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_nmw,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_nw{bottom:100%}.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_s,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_se,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_sme,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_smw,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_sw{bottom:auto;top:100%}.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_ne,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_se{left:0}.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_nw,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_sw{right:0}.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_n,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_s{left:50%;transform:translateX(-50%)}.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_nmw,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_smw{left:75%;transform:translateX(-75%)}.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_nme,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_sme{left:25%;transform:translateX(-25%)}.ck.ck-toolbar .ck-dropdown__panel{z-index:calc(var(--ck-z-panel) + 1)}:root{--ck-dropdown-arrow-size:calc(var(--ck-icon-size)*0.5)}.ck.ck-dropdown{font-size:inherit}.ck.ck-dropdown .ck-dropdown__arrow{width:var(--ck-dropdown-arrow-size)}[dir=ltr] .ck.ck-dropdown .ck-dropdown__arrow{margin-left:var(--ck-spacing-standard);right:var(--ck-spacing-standard)}[dir=rtl] .ck.ck-dropdown .ck-dropdown__arrow{left:var(--ck-spacing-standard);margin-right:var(--ck-spacing-small)}.ck.ck-dropdown.ck-disabled .ck-dropdown__arrow{opacity:var(--ck-disabled-opacity)}[dir=ltr] .ck.ck-dropdown .ck-button.ck-dropdown__button:not(.ck-button_with-text){padding-left:var(--ck-spacing-small)}[dir=rtl] .ck.ck-dropdown .ck-button.ck-dropdown__button:not(.ck-button_with-text){padding-right:var(--ck-spacing-small)}.ck.ck-dropdown .ck-button.ck-dropdown__button .ck-button__label{overflow:hidden;text-overflow:ellipsis;width:7em}.ck.ck-dropdown .ck-button.ck-dropdown__button.ck-disabled .ck-button__label{opacity:var(--ck-disabled-opacity)}.ck.ck-dropdown .ck-button.ck-dropdown__button.ck-on{border-bottom-left-radius:0;border-bottom-right-radius:0}.ck.ck-dropdown .ck-button.ck-dropdown__button.ck-dropdown__button_label-width_auto .ck-button__label{width:auto}.ck.ck-dropdown .ck-button.ck-dropdown__button.ck-off:active,.ck.ck-dropdown .ck-button.ck-dropdown__button.ck-on:active{box-shadow:none}.ck.ck-dropdown .ck-button.ck-dropdown__button.ck-off:active:focus,.ck.ck-dropdown .ck-button.ck-dropdown__button.ck-on:active:focus{box-shadow:var(--ck-focus-outer-shadow),0 0}.ck.ck-dropdown__panel{border-radius:0}.ck-rounded-corners .ck.ck-dropdown__panel,.ck.ck-dropdown__panel.ck-rounded-corners{border-radius:var(--ck-border-radius)}.ck.ck-dropdown__panel{background:var(--ck-color-dropdown-panel-background);border:1px solid var(--ck-color-dropdown-panel-border);bottom:0;box-shadow:var(--ck-drop-shadow),0 0;min-width:100%}.ck.ck-dropdown__panel.ck-dropdown__panel_se{border-top-left-radius:0}.ck.ck-dropdown__panel.ck-dropdown__panel_sw{border-top-right-radius:0}.ck.ck-dropdown__panel.ck-dropdown__panel_ne{border-bottom-left-radius:0}.ck.ck-dropdown__panel.ck-dropdown__panel_nw{border-bottom-right-radius:0}.ck.ck-dropdown__panel:focus{outline:none}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../ckeditor5-ui/theme/components/dropdown/dropdown.css\",\"webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/dropdown/dropdown.css\",\"webpack://./../ckeditor5-theme-lark/theme/mixins/_disabled.css\",\"webpack://./../ckeditor5-theme-lark/theme/mixins/_shadow.css\",\"webpack://./../ckeditor5-theme-lark/theme/mixins/_rounded.css\"],\"names\":[],\"mappings\":\"AAKA,MACC,4BACD,CAEA,gBACC,oBAAqB,CACrB,iBA2ED,CAzEC,oCACC,mBAAoB,CACpB,2BACD,CAGA,+CACC,UACD,CAEA,oCACC,YAAa,CAEb,sCAAuC,CAEvC,iBAAkB,CAHlB,yBA4DD,CAvDC,+DACC,oBACD,CAEA,mSAKC,WACD,CAEA,mSAUC,WAAY,CADZ,QAED,CAEA,oHAEC,MACD,CAEA,oHAEC,OACD,CAEA,kHAGC,QAAS,CACT,0BACD,CAEA,sHAGC,QAAS,CACT,0BACD,CAEA,sHAGC,QAAS,CACT,0BACD,CAQF,mCACC,mCACD,CCpFA,MACC,sDACD,CAEA,gBAEC,iBA2ED,CAzEC,oCACC,mCACD,CAGC,8CAIC,sCAAuC,CAHvC,gCAID,CAIA,8CACC,+BAAgC,CAGhC,oCACD,CAGD,gDC/BA,kCDiCA,CAIE,mFAEC,oCACD,CAIA,mFAEC,qCACD,CAID,iEAEC,eAAgB,CAChB,sBAAuB,CAFvB,SAGD,CAGA,6EC1DD,kCD4DC,CAGA,qDACC,2BAA4B,CAC5B,4BACD,CAEA,sGACC,UACD,CAGA,yHAEC,eAKD,CAHC,qIE7EF,2CF+EE,CAKH,uBGlFC,eHkHD,CAhCA,qFG9EE,qCH8GF,CAhCA,uBAIC,oDAAqD,CACrD,sDAAuD,CACvD,QAAS,CE1FT,oCAA8B,CF6F9B,cAuBD,CAnBC,6CACC,wBACD,CAEA,6CACC,yBACD,CAEA,6CACC,2BACD,CAEA,6CACC,4BACD,CAEA,6BACC,YACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n:root {\\n\\t--ck-dropdown-max-width: 75vw;\\n}\\n\\n.ck.ck-dropdown {\\n\\tdisplay: inline-block;\\n\\tposition: relative;\\n\\n\\t& .ck-dropdown__arrow {\\n\\t\\tpointer-events: none;\\n\\t\\tz-index: var(--ck-z-default);\\n\\t}\\n\\n\\t/* Dropdown button should span horizontally, e.g. in vertical toolbars */\\n\\t& .ck-button.ck-dropdown__button {\\n\\t\\twidth: 100%;\\n\\t}\\n\\n\\t& .ck-dropdown__panel {\\n\\t\\tdisplay: none;\\n\\t\\tz-index: var(--ck-z-panel);\\n\\t\\tmax-width: var(--ck-dropdown-max-width);\\n\\n\\t\\tposition: absolute;\\n\\n\\t\\t&.ck-dropdown__panel-visible {\\n\\t\\t\\tdisplay: inline-block;\\n\\t\\t}\\n\\n\\t\\t&.ck-dropdown__panel_ne,\\n\\t\\t&.ck-dropdown__panel_nw,\\n\\t\\t&.ck-dropdown__panel_n,\\n\\t\\t&.ck-dropdown__panel_nmw,\\n\\t\\t&.ck-dropdown__panel_nme {\\n\\t\\t\\tbottom: 100%;\\n\\t\\t}\\n\\n\\t\\t&.ck-dropdown__panel_se,\\n\\t\\t&.ck-dropdown__panel_sw,\\n\\t\\t&.ck-dropdown__panel_smw,\\n\\t\\t&.ck-dropdown__panel_sme,\\n\\t\\t&.ck-dropdown__panel_s {\\n\\t\\t\\t/*\\n\\t\\t\\t * Using transform: translate3d( 0, 100%, 0 ) causes blurry dropdown on Chrome 67-78+ on non-retina displays.\\n\\t\\t\\t * See https://github.com/ckeditor/ckeditor5/issues/1053.\\n\\t\\t\\t */\\n\\t\\t\\ttop: 100%;\\n\\t\\t\\tbottom: auto;\\n\\t\\t}\\n\\n\\t\\t&.ck-dropdown__panel_ne,\\n\\t\\t&.ck-dropdown__panel_se {\\n\\t\\t\\tleft: 0px;\\n\\t\\t}\\n\\n\\t\\t&.ck-dropdown__panel_nw,\\n\\t\\t&.ck-dropdown__panel_sw {\\n\\t\\t\\tright: 0px;\\n\\t\\t}\\n\\n\\t\\t&.ck-dropdown__panel_s,\\n\\t\\t&.ck-dropdown__panel_n {\\n\\t\\t\\t/* Positioning panels relative to the center of the button */\\n\\t\\t\\tleft: 50%;\\n\\t\\t\\ttransform: translateX(-50%);\\n\\t\\t}\\n\\n\\t\\t&.ck-dropdown__panel_nmw,\\n\\t\\t&.ck-dropdown__panel_smw {\\n\\t\\t\\t/* Positioning panels relative to the middle-west of the button */\\n\\t\\t\\tleft: 75%;\\n\\t\\t\\ttransform: translateX(-75%);\\n\\t\\t}\\n\\n\\t\\t&.ck-dropdown__panel_nme,\\n\\t\\t&.ck-dropdown__panel_sme {\\n\\t\\t\\t/* Positioning panels relative to the middle-east of the button */\\n\\t\\t\\tleft: 25%;\\n\\t\\t\\ttransform: translateX(-25%);\\n\\t\\t}\\n\\t}\\n}\\n\\n/*\\n * Toolbar dropdown panels should be always above the UI (eg. other dropdown panels) from the editor's content.\\n * See https://github.com/ckeditor/ckeditor5/issues/7874\\n */\\n.ck.ck-toolbar .ck-dropdown__panel {\\n\\tz-index: calc( var(--ck-z-panel) + 1 );\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n@import \\\"../../../mixins/_rounded.css\\\";\\n@import \\\"../../../mixins/_disabled.css\\\";\\n@import \\\"../../../mixins/_shadow.css\\\";\\n@import \\\"@ckeditor/ckeditor5-ui/theme/mixins/_dir.css\\\";\\n\\n:root {\\n\\t--ck-dropdown-arrow-size: calc(0.5 * var(--ck-icon-size));\\n}\\n\\n.ck.ck-dropdown {\\n\\t/* Enable font size inheritance, which allows fluid UI scaling. */\\n\\tfont-size: inherit;\\n\\n\\t& .ck-dropdown__arrow {\\n\\t\\twidth: var(--ck-dropdown-arrow-size);\\n\\t}\\n\\n\\t@mixin ck-dir ltr {\\n\\t\\t& .ck-dropdown__arrow {\\n\\t\\t\\tright: var(--ck-spacing-standard);\\n\\n\\t\\t\\t/* A space to accommodate the triangle. */\\n\\t\\t\\tmargin-left: var(--ck-spacing-standard);\\n\\t\\t}\\n\\t}\\n\\n\\t@mixin ck-dir rtl {\\n\\t\\t& .ck-dropdown__arrow {\\n\\t\\t\\tleft: var(--ck-spacing-standard);\\n\\n\\t\\t\\t/* A space to accommodate the triangle. */\\n\\t\\t\\tmargin-right: var(--ck-spacing-small);\\n\\t\\t}\\n\\t}\\n\\n\\t&.ck-disabled .ck-dropdown__arrow {\\n\\t\\t@mixin ck-disabled;\\n\\t}\\n\\n\\t& .ck-button.ck-dropdown__button {\\n\\t\\t@mixin ck-dir ltr {\\n\\t\\t\\t&:not(.ck-button_with-text) {\\n\\t\\t\\t\\t/* Make sure dropdowns with just an icon have the right inner spacing */\\n\\t\\t\\t\\tpadding-left: var(--ck-spacing-small);\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t@mixin ck-dir rtl {\\n\\t\\t\\t&:not(.ck-button_with-text) {\\n\\t\\t\\t\\t/* Make sure dropdowns with just an icon have the right inner spacing */\\n\\t\\t\\t\\tpadding-right: var(--ck-spacing-small);\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t/* #23 */\\n\\t\\t& .ck-button__label {\\n\\t\\t\\twidth: 7em;\\n\\t\\t\\toverflow: hidden;\\n\\t\\t\\ttext-overflow: ellipsis;\\n\\t\\t}\\n\\n\\t\\t/* https://github.com/ckeditor/ckeditor5-theme-lark/issues/70 */\\n\\t\\t&.ck-disabled .ck-button__label {\\n\\t\\t\\t@mixin ck-disabled;\\n\\t\\t}\\n\\n\\t\\t/* https://github.com/ckeditor/ckeditor5/issues/816 */\\n\\t\\t&.ck-on {\\n\\t\\t\\tborder-bottom-left-radius: 0;\\n\\t\\t\\tborder-bottom-right-radius: 0;\\n\\t\\t}\\n\\n\\t\\t&.ck-dropdown__button_label-width_auto .ck-button__label {\\n\\t\\t\\twidth: auto;\\n\\t\\t}\\n\\n\\t\\t/* https://github.com/ckeditor/ckeditor5/issues/8699 */\\n\\t\\t&.ck-off:active,\\n\\t\\t&.ck-on:active {\\n\\t\\t\\tbox-shadow: none;\\n\\n\\t\\t\\t&:focus {\\n\\t\\t\\t\\t@mixin ck-box-shadow var(--ck-focus-outer-shadow);\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\\n.ck.ck-dropdown__panel {\\n\\t@mixin ck-rounded-corners;\\n\\t@mixin ck-drop-shadow;\\n\\n\\tbackground: var(--ck-color-dropdown-panel-background);\\n\\tborder: 1px solid var(--ck-color-dropdown-panel-border);\\n\\tbottom: 0;\\n\\n\\t/* Make sure the panel is at least as wide as the drop-down's button. */\\n\\tmin-width: 100%;\\n\\n\\t/* Disabled corner border radius to be consistent with the .dropdown__button\\n\\thttps://github.com/ckeditor/ckeditor5/issues/816 */\\n\\t&.ck-dropdown__panel_se {\\n\\t\\tborder-top-left-radius: 0;\\n\\t}\\n\\n\\t&.ck-dropdown__panel_sw {\\n\\t\\tborder-top-right-radius: 0;\\n\\t}\\n\\n\\t&.ck-dropdown__panel_ne {\\n\\t\\tborder-bottom-left-radius: 0;\\n\\t}\\n\\n\\t&.ck-dropdown__panel_nw {\\n\\t\\tborder-bottom-right-radius: 0;\\n\\t}\\n\\n\\t&:focus {\\n\\t\\toutline: none;\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n/**\\n * A class which indicates that an element holding it is disabled.\\n */\\n@define-mixin ck-disabled {\\n\\topacity: var(--ck-disabled-opacity);\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n/**\\n * A helper to combine multiple shadows.\\n */\\n@define-mixin ck-box-shadow $shadowA, $shadowB: 0 0 {\\n\\tbox-shadow: $shadowA, $shadowB;\\n}\\n\\n/**\\n * Gives an element a drop shadow so it looks like a floating panel.\\n */\\n@define-mixin ck-drop-shadow {\\n\\t@mixin ck-box-shadow var(--ck-drop-shadow);\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n/**\\n * Implements rounded corner interface for .ck-rounded-corners class.\\n *\\n * @see $ck-border-radius\\n */\\n@define-mixin ck-rounded-corners {\\n\\tborder-radius: 0;\\n\\n\\t@nest .ck-rounded-corners &,\\n\\t&.ck-rounded-corners {\\n\\t\\tborder-radius: var(--ck-border-radius);\\n\\t\\t@mixin-content;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck.ck-dropdown>.ck-dropdown__panel>.ck-list{border-radius:0}.ck-rounded-corners .ck.ck-dropdown>.ck-dropdown__panel>.ck-list,.ck.ck-dropdown>.ck-dropdown__panel>.ck-list.ck-rounded-corners{border-radius:var(--ck-border-radius);border-top-left-radius:0}.ck.ck-dropdown>.ck-dropdown__panel>.ck-list .ck-list__item:first-child>.ck-button{border-radius:0}.ck-rounded-corners .ck.ck-dropdown>.ck-dropdown__panel>.ck-list .ck-list__item:first-child>.ck-button,.ck.ck-dropdown>.ck-dropdown__panel>.ck-list .ck-list__item:first-child>.ck-button.ck-rounded-corners{border-radius:var(--ck-border-radius);border-bottom-left-radius:0;border-bottom-right-radius:0;border-top-left-radius:0}.ck.ck-dropdown>.ck-dropdown__panel>.ck-list .ck-list__item:last-child>.ck-button{border-radius:0}.ck-rounded-corners .ck.ck-dropdown>.ck-dropdown__panel>.ck-list .ck-list__item:last-child>.ck-button,.ck.ck-dropdown>.ck-dropdown__panel>.ck-list .ck-list__item:last-child>.ck-button.ck-rounded-corners{border-radius:var(--ck-border-radius);border-top-left-radius:0;border-top-right-radius:0}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/dropdown/listdropdown.css\",\"webpack://./../ckeditor5-theme-lark/theme/mixins/_rounded.css\"],\"names\":[],\"mappings\":\"AAOA,6CCIC,eDqBD,CAzBA,iICQE,qCAAsC,CDJtC,wBAqBF,CAfE,mFCND,eDYC,CANA,6MCFA,qCAAsC,CDKpC,2BAA4B,CAC5B,4BAA6B,CAF7B,wBAIF,CAEA,kFCdD,eDmBC,CALA,2MCVA,qCAAsC,CDYpC,wBAAyB,CACzB,yBAEF\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n@import \\\"../../../mixins/_rounded.css\\\";\\n\\n.ck.ck-dropdown > .ck-dropdown__panel > .ck-list {\\n\\t/* Disabled radius of top-left border to be consistent with .dropdown__button\\n\\thttps://github.com/ckeditor/ckeditor5/issues/816 */\\n\\t@mixin ck-rounded-corners {\\n\\t\\tborder-top-left-radius: 0;\\n\\t}\\n\\n\\t/* Make sure the button belonging to the first/last child of the list goes well with the\\n\\tborder radius of the entire panel. */\\n\\t& .ck-list__item {\\n\\t\\t&:first-child > .ck-button {\\n\\t\\t\\t@mixin ck-rounded-corners {\\n\\t\\t\\t\\tborder-top-left-radius: 0;\\n\\t\\t\\t\\tborder-bottom-left-radius: 0;\\n\\t\\t\\t\\tborder-bottom-right-radius: 0;\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t&:last-child > .ck-button {\\n\\t\\t\\t@mixin ck-rounded-corners {\\n\\t\\t\\t\\tborder-top-left-radius: 0;\\n\\t\\t\\t\\tborder-top-right-radius: 0;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n/**\\n * Implements rounded corner interface for .ck-rounded-corners class.\\n *\\n * @see $ck-border-radius\\n */\\n@define-mixin ck-rounded-corners {\\n\\tborder-radius: 0;\\n\\n\\t@nest .ck-rounded-corners &,\\n\\t&.ck-rounded-corners {\\n\\t\\tborder-radius: var(--ck-border-radius);\\n\\t\\t@mixin-content;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck.ck-splitbutton{font-size:inherit}.ck.ck-splitbutton .ck-splitbutton__action:focus{z-index:calc(var(--ck-z-default) + 1)}:root{--ck-color-split-button-hover-background:#ebebeb;--ck-color-split-button-hover-border:#b3b3b3}[dir=ltr] .ck.ck-splitbutton.ck-splitbutton_open>.ck-splitbutton__action,[dir=ltr] .ck.ck-splitbutton:hover>.ck-splitbutton__action{border-bottom-right-radius:unset;border-top-right-radius:unset}[dir=rtl] .ck.ck-splitbutton.ck-splitbutton_open>.ck-splitbutton__action,[dir=rtl] .ck.ck-splitbutton:hover>.ck-splitbutton__action{border-bottom-left-radius:unset;border-top-left-radius:unset}.ck.ck-splitbutton>.ck-splitbutton__arrow{min-width:unset}[dir=ltr] .ck.ck-splitbutton>.ck-splitbutton__arrow{border-bottom-left-radius:unset;border-top-left-radius:unset}[dir=rtl] .ck.ck-splitbutton>.ck-splitbutton__arrow{border-bottom-right-radius:unset;border-top-right-radius:unset}.ck.ck-splitbutton>.ck-splitbutton__arrow svg{width:var(--ck-dropdown-arrow-size)}.ck.ck-splitbutton>.ck-splitbutton__arrow:not(:focus){border-bottom-width:0;border-top-width:0}.ck.ck-splitbutton.ck-splitbutton_open>.ck-button:not(.ck-on):not(.ck-disabled):not(:hover),.ck.ck-splitbutton:hover>.ck-button:not(.ck-on):not(.ck-disabled):not(:hover){background:var(--ck-color-split-button-hover-background)}.ck.ck-splitbutton.ck-splitbutton_open>.ck-splitbutton__arrow:not(.ck-disabled):after,.ck.ck-splitbutton:hover>.ck-splitbutton__arrow:not(.ck-disabled):after{background-color:var(--ck-color-split-button-hover-border);content:\\\"\\\";height:100%;position:absolute;width:1px}.ck.ck-splitbutton.ck-splitbutton_open>.ck-splitbutton__arrow:focus:after,.ck.ck-splitbutton:hover>.ck-splitbutton__arrow:focus:after{--ck-color-split-button-hover-border:var(--ck-color-focus-border)}[dir=ltr] .ck.ck-splitbutton.ck-splitbutton_open>.ck-splitbutton__arrow:not(.ck-disabled):after,[dir=ltr] .ck.ck-splitbutton:hover>.ck-splitbutton__arrow:not(.ck-disabled):after{left:-1px}[dir=rtl] .ck.ck-splitbutton.ck-splitbutton_open>.ck-splitbutton__arrow:not(.ck-disabled):after,[dir=rtl] .ck.ck-splitbutton:hover>.ck-splitbutton__arrow:not(.ck-disabled):after{right:-1px}.ck.ck-splitbutton.ck-splitbutton_open{border-radius:0}.ck-rounded-corners .ck.ck-splitbutton.ck-splitbutton_open,.ck.ck-splitbutton.ck-splitbutton_open.ck-rounded-corners{border-radius:var(--ck-border-radius)}.ck-rounded-corners .ck.ck-splitbutton.ck-splitbutton_open>.ck-splitbutton__action,.ck.ck-splitbutton.ck-splitbutton_open.ck-rounded-corners>.ck-splitbutton__action{border-bottom-left-radius:0}.ck-rounded-corners .ck.ck-splitbutton.ck-splitbutton_open>.ck-splitbutton__arrow,.ck.ck-splitbutton.ck-splitbutton_open.ck-rounded-corners>.ck-splitbutton__arrow{border-bottom-right-radius:0}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../ckeditor5-ui/theme/components/dropdown/splitbutton.css\",\"webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/dropdown/splitbutton.css\",\"webpack://./../ckeditor5-theme-lark/theme/mixins/_rounded.css\"],\"names\":[],\"mappings\":\"AAKA,mBAEC,iBAKD,CAHC,iDACC,qCACD,CCJD,MACC,gDAAyD,CACzD,4CACD,CAMC,oIAKE,gCAAiC,CADjC,6BASF,CAbA,oIAWE,+BAAgC,CADhC,4BAGF,CAEA,0CAGC,eAiBD,CApBA,oDAQE,+BAAgC,CADhC,4BAaF,CApBA,oDAcE,gCAAiC,CADjC,6BAOF,CAHC,8CACC,mCACD,CAKD,sDAEC,qBAAwB,CADxB,kBAED,CAQC,0KACC,wDACD,CAIA,8JAKC,0DAA2D,CAJ3D,UAAW,CAGX,WAAY,CAFZ,iBAAkB,CAClB,SAGD,CAGA,sIACC,iEACD,CAGC,kLACC,SACD,CAIA,kLACC,UACD,CAMF,uCCzFA,eDmGA,CAVA,qHCrFC,qCD+FD,CARE,qKACC,2BACD,CAEA,mKACC,4BACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.ck.ck-splitbutton {\\n\\t/* Enable font size inheritance, which allows fluid UI scaling. */\\n\\tfont-size: inherit;\\n\\n\\t& .ck-splitbutton__action:focus {\\n\\t\\tz-index: calc(var(--ck-z-default) + 1);\\n\\t}\\n}\\n\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n@import \\\"../../../mixins/_rounded.css\\\";\\n\\n:root {\\n\\t--ck-color-split-button-hover-background: hsl(0, 0%, 92%);\\n\\t--ck-color-split-button-hover-border: hsl(0, 0%, 70%);\\n}\\n\\n.ck.ck-splitbutton {\\n\\t/*\\n\\t * Note: ck-rounded and ck-dir mixins don't go together (because they both use @nest).\\n\\t */\\n\\t&:hover > .ck-splitbutton__action,\\n\\t&.ck-splitbutton_open > .ck-splitbutton__action {\\n\\t\\t@nest [dir=\\\"ltr\\\"] & {\\n\\t\\t\\t/* Don't round the action button on the right side */\\n\\t\\t\\tborder-top-right-radius: unset;\\n\\t\\t\\tborder-bottom-right-radius: unset;\\n\\t\\t}\\n\\n\\t\\t@nest [dir=\\\"rtl\\\"] & {\\n\\t\\t\\t/* Don't round the action button on the left side */\\n\\t\\t\\tborder-top-left-radius: unset;\\n\\t\\t\\tborder-bottom-left-radius: unset;\\n\\t\\t}\\n\\t}\\n\\n\\t& > .ck-splitbutton__arrow {\\n\\t\\t/* It's a text-less button and since the icon is positioned absolutely in such situation,\\n\\t\\tit must get some arbitrary min-width. */\\n\\t\\tmin-width: unset;\\n\\n\\t\\t@nest [dir=\\\"ltr\\\"] & {\\n\\t\\t\\t/* Don't round the arrow button on the left side */\\n\\t\\t\\tborder-top-left-radius: unset;\\n\\t\\t\\tborder-bottom-left-radius: unset;\\n\\t\\t}\\n\\n\\t\\t@nest [dir=\\\"rtl\\\"] & {\\n\\t\\t\\t/* Don't round the arrow button on the right side */\\n\\t\\t\\tborder-top-right-radius: unset;\\n\\t\\t\\tborder-bottom-right-radius: unset;\\n\\t\\t}\\n\\n\\t\\t& svg {\\n\\t\\t\\twidth: var(--ck-dropdown-arrow-size);\\n\\t\\t}\\n\\t}\\n\\n\\t/* Make sure the divider stretches 100% height of the button\\n\\thttps://github.com/ckeditor/ckeditor5/issues/10936 */\\n\\t& > .ck-splitbutton__arrow:not(:focus) {\\n\\t\\tborder-top-width: 0px;\\n\\t\\tborder-bottom-width: 0px;\\n\\t}\\n\\n\\t/* When the split button is \\\"open\\\" (the arrow is on) or being hovered, it should get some styling\\n\\tas a whole. The background of both buttons should stand out and there should be a visual\\n\\tseparation between both buttons. */\\n\\t&.ck-splitbutton_open,\\n\\t&:hover {\\n\\t\\t/* When the split button hovered as a whole, not as individual buttons. */\\n\\t\\t& > .ck-button:not(.ck-on):not(.ck-disabled):not(:hover) {\\n\\t\\t\\tbackground: var(--ck-color-split-button-hover-background);\\n\\t\\t}\\n\\n\\t\\t/* Splitbutton separator needs to be set with the ::after pseudoselector\\n\\t\\tto display properly the borders on focus */\\n\\t\\t& > .ck-splitbutton__arrow:not(.ck-disabled)::after {\\n\\t\\t\\tcontent: '';\\n\\t\\t\\tposition: absolute;\\n\\t\\t\\twidth: 1px;\\n\\t\\t\\theight: 100%;\\n\\t\\t\\tbackground-color: var(--ck-color-split-button-hover-border);\\n\\t\\t}\\n\\n\\t\\t/* Make sure the divider between the buttons looks fine when the button is focused */\\n\\t\\t& > .ck-splitbutton__arrow:focus::after {\\n\\t\\t\\t--ck-color-split-button-hover-border: var(--ck-color-focus-border);\\n\\t\\t}\\n\\n\\t\\t@nest [dir=\\\"ltr\\\"] & {\\n\\t\\t\\t& > .ck-splitbutton__arrow:not(.ck-disabled)::after {\\n\\t\\t\\t\\tleft: -1px;\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t@nest [dir=\\\"rtl\\\"] & {\\n\\t\\t\\t& > .ck-splitbutton__arrow:not(.ck-disabled)::after {\\n\\t\\t\\t\\tright: -1px;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t/* Don't round the bottom left and right corners of the buttons when \\\"open\\\"\\n\\thttps://github.com/ckeditor/ckeditor5/issues/816 */\\n\\t&.ck-splitbutton_open {\\n\\t\\t@mixin ck-rounded-corners {\\n\\t\\t\\t& > .ck-splitbutton__action {\\n\\t\\t\\t\\tborder-bottom-left-radius: 0;\\n\\t\\t\\t}\\n\\n\\t\\t\\t& > .ck-splitbutton__arrow {\\n\\t\\t\\t\\tborder-bottom-right-radius: 0;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n/**\\n * Implements rounded corner interface for .ck-rounded-corners class.\\n *\\n * @see $ck-border-radius\\n */\\n@define-mixin ck-rounded-corners {\\n\\tborder-radius: 0;\\n\\n\\t@nest .ck-rounded-corners &,\\n\\t&.ck-rounded-corners {\\n\\t\\tborder-radius: var(--ck-border-radius);\\n\\t\\t@mixin-content;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \":root{--ck-toolbar-dropdown-max-width:60vw}.ck.ck-toolbar-dropdown>.ck-dropdown__panel{max-width:var(--ck-toolbar-dropdown-max-width);width:max-content}.ck.ck-toolbar-dropdown>.ck-dropdown__panel .ck-button:focus{z-index:calc(var(--ck-z-default) + 1)}.ck.ck-toolbar-dropdown .ck-toolbar{border:0}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../ckeditor5-ui/theme/components/dropdown/toolbardropdown.css\",\"webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/dropdown/toolbardropdown.css\"],\"names\":[],\"mappings\":\"AAKA,MACC,oCACD,CAEA,4CAGC,8CAA+C,CAD/C,iBAQD,CAJE,6DACC,qCACD,CCZF,oCACC,QACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n:root {\\n\\t--ck-toolbar-dropdown-max-width: 60vw;\\n}\\n\\n.ck.ck-toolbar-dropdown > .ck-dropdown__panel {\\n\\t/* https://github.com/ckeditor/ckeditor5/issues/5586 */\\n\\twidth: max-content;\\n\\tmax-width: var(--ck-toolbar-dropdown-max-width);\\n\\n\\t& .ck-button {\\n\\t\\t&:focus {\\n\\t\\t\\tz-index: calc(var(--ck-z-default) + 1);\\n\\t\\t}\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.ck.ck-toolbar-dropdown .ck-toolbar {\\n\\tborder: 0;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \":root{--ck-accessibility-help-dialog-max-width:600px;--ck-accessibility-help-dialog-max-height:400px;--ck-accessibility-help-dialog-border-color:#ccced1;--ck-accessibility-help-dialog-code-background-color:#ededed;--ck-accessibility-help-dialog-kbd-shadow-color:#9c9c9c}.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content{border:1px solid transparent;max-height:var(--ck-accessibility-help-dialog-max-height);max-width:var(--ck-accessibility-help-dialog-max-width);overflow:auto;padding:var(--ck-spacing-large);user-select:text}.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content:focus{border:var(--ck-focus-ring);box-shadow:var(--ck-focus-outer-shadow),0 0;outline:none}.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content{*{white-space:normal}}.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content .ck-label{display:none}.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content h3{font-size:1.2em;font-weight:700}.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content h4{font-size:1em;font-weight:700}.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content h3,.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content h4,.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content p,.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content table{margin:1em 0}.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content dl{border-bottom:none;border-top:1px solid var(--ck-accessibility-help-dialog-border-color);display:grid;grid-template-columns:2fr 1fr}.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content dl dd,.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content dl dt{border-bottom:1px solid var(--ck-accessibility-help-dialog-border-color);padding:.4em 0}.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content dl dt{grid-column-start:1}.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content dl dd{grid-column-start:2;text-align:right}.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content code,.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content kbd{background:var(--ck-accessibility-help-dialog-code-background-color);border-radius:2px;display:inline-block;font-size:.9em;line-height:1;padding:.4em;text-align:center;vertical-align:middle}.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content code{font-family:monospace}.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content kbd{box-shadow:0 1px 1px var(--ck-accessibility-help-dialog-kbd-shadow-color);margin:0 1px;min-width:1.8em}.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content kbd+kbd{margin-left:2px}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/editorui/accessibilityhelp.css\",\"webpack://./../ckeditor5-theme-lark/theme/mixins/_focus.css\",\"webpack://./../ckeditor5-theme-lark/theme/mixins/_shadow.css\"],\"names\":[],\"mappings\":\"AAQA,MACC,8CAA+C,CAC/C,+CAAgD,CAChD,mDAA8D,CAC9D,4DAAyE,CACzE,uDACD,CAEA,wEAOC,4BAA6B,CAJ7B,yDAA0D,CAD1D,uDAAwD,CAExD,aAAc,CAHd,+BAAgC,CAIhC,gBAgFD,CA5EC,8ECdA,2BAA2B,CCF3B,2CAA8B,CDC9B,YDkBA,CAZD,wEAcC,EACC,kBACD,CAqED,CAlEC,kFACC,YACD,CAEA,2EAEC,eAAgB,CADhB,eAED,CAEA,2EAEC,aAAc,CADd,eAED,CAEA,8SAIC,YACD,CAEA,2EAIC,kBAAmB,CADnB,qEAAsE,CAFtE,YAAa,CACb,6BAiBD,CAbC,4JACC,wEAAyE,CACzE,cACD,CAEA,8EACC,mBACD,CAEA,8EACC,mBAAoB,CACpB,gBACD,CAGD,yJAEC,oEAAqE,CAIrE,iBAAkB,CALlB,oBAAqB,CAOrB,cAAe,CAHf,aAAc,CAFd,YAAa,CAIb,iBAAkB,CAHlB,qBAKD,CAEA,6EACC,qBACD,CAEA,4EAEC,yEAA4E,CAC5E,YAAa,CAFb,eAOD,CAHC,gFACC,eACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n@import \\\"../../../mixins/_focus.css\\\";\\n@import \\\"../../../mixins/_shadow.css\\\";\\n\\n:root {\\n\\t--ck-accessibility-help-dialog-max-width: 600px;\\n\\t--ck-accessibility-help-dialog-max-height: 400px;\\n\\t--ck-accessibility-help-dialog-border-color: hsl(220, 6%, 81%);\\n\\t--ck-accessibility-help-dialog-code-background-color: hsl(0deg 0% 92.94%);\\n\\t--ck-accessibility-help-dialog-kbd-shadow-color: hsl(0deg 0% 61%);\\n}\\n\\n.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content {\\n\\tpadding: var(--ck-spacing-large);\\n\\tmax-width: var(--ck-accessibility-help-dialog-max-width);\\n\\tmax-height: var(--ck-accessibility-help-dialog-max-height);\\n\\toverflow: auto;\\n\\tuser-select: text;\\n\\n\\tborder: 1px solid transparent;\\n\\n\\t&:focus {\\n\\t\\t@mixin ck-focus-ring;\\n\\t\\t@mixin ck-box-shadow var(--ck-focus-outer-shadow);\\n\\t}\\n\\n\\t* {\\n\\t\\twhite-space: normal;\\n\\t}\\n\\n\\t/* Hide the main label of the content container. */\\n\\t& .ck-label {\\n\\t\\tdisplay: none;\\n\\t}\\n\\n\\t& h3 {\\n\\t\\tfont-weight: bold;\\n\\t\\tfont-size: 1.2em;\\n\\t}\\n\\n\\t& h4 {\\n\\t\\tfont-weight: bold;\\n\\t\\tfont-size: 1em;\\n\\t}\\n\\n\\t& p,\\n\\t& h3,\\n\\t& h4,\\n\\t& table {\\n\\t\\tmargin: 1em 0;\\n\\t}\\n\\n\\t& dl {\\n\\t\\tdisplay: grid;\\n\\t\\tgrid-template-columns: 2fr 1fr;\\n\\t\\tborder-top: 1px solid var(--ck-accessibility-help-dialog-border-color);\\n\\t\\tborder-bottom: none;\\n\\n\\t\\t& dt, & dd {\\n\\t\\t\\tborder-bottom: 1px solid var(--ck-accessibility-help-dialog-border-color);\\n\\t\\t\\tpadding: .4em 0;\\n\\t\\t}\\n\\n\\t\\t& dt {\\n\\t\\t\\tgrid-column-start: 1;\\n\\t\\t}\\n\\n\\t\\t& dd {\\n\\t\\t\\tgrid-column-start: 2;\\n\\t\\t\\ttext-align: right;\\n\\t\\t}\\n\\t}\\n\\n\\t& kbd, & code {\\n\\t\\tdisplay: inline-block;\\n\\t\\tbackground: var(--ck-accessibility-help-dialog-code-background-color);\\n\\t\\tpadding: .4em;\\n\\t\\tvertical-align: middle;\\n\\t\\tline-height: 1;\\n\\t\\tborder-radius: 2px;\\n\\t\\ttext-align: center;\\n\\t\\tfont-size: .9em;\\n\\t}\\n\\n\\t& code {\\n\\t\\tfont-family: monospace;\\n\\t}\\n\\n\\t& kbd {\\n\\t\\tmin-width: 1.8em;\\n\\t\\tbox-shadow: 0px 1px 1px var(--ck-accessibility-help-dialog-kbd-shadow-color);\\n\\t\\tmargin: 0 1px;\\n\\n\\t\\t& + kbd {\\n\\t\\t\\tmargin-left: 2px;\\n\\t\\t}\\n\\t}\\n}\\n\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n/**\\n * A visual style of focused element's border.\\n */\\n@define-mixin ck-focus-ring {\\n\\t/* Disable native outline. */\\n\\toutline: none;\\n\\tborder: var(--ck-focus-ring)\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n/**\\n * A helper to combine multiple shadows.\\n */\\n@define-mixin ck-box-shadow $shadowA, $shadowB: 0 0 {\\n\\tbox-shadow: $shadowA, $shadowB;\\n}\\n\\n/**\\n * Gives an element a drop shadow so it looks like a floating panel.\\n */\\n@define-mixin ck-drop-shadow {\\n\\t@mixin ck-box-shadow var(--ck-drop-shadow);\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \":root{--ck-color-editable-blur-selection:#d9d9d9}.ck.ck-editor__editable:not(.ck-editor__nested-editable){border-radius:0}.ck-rounded-corners .ck.ck-editor__editable:not(.ck-editor__nested-editable),.ck.ck-editor__editable.ck-rounded-corners:not(.ck-editor__nested-editable){border-radius:var(--ck-border-radius)}.ck.ck-editor__editable.ck-focused:not(.ck-editor__nested-editable){border:var(--ck-focus-ring);box-shadow:var(--ck-inner-shadow),0 0;outline:none}.ck.ck-editor__editable_inline{border:1px solid transparent;overflow:auto;padding:0 var(--ck-spacing-standard)}.ck.ck-editor__editable_inline[dir=ltr]{text-align:left}.ck.ck-editor__editable_inline[dir=rtl]{text-align:right}.ck.ck-editor__editable_inline>:first-child{margin-top:var(--ck-spacing-large)}.ck.ck-editor__editable_inline>:last-child{margin-bottom:var(--ck-spacing-large)}.ck.ck-editor__editable_inline.ck-blurred ::selection{background:var(--ck-color-editable-blur-selection)}.ck.ck-balloon-panel.ck-toolbar-container[class*=arrow_n]:after{border-bottom-color:var(--ck-color-panel-background)}.ck.ck-balloon-panel.ck-toolbar-container[class*=arrow_s]:after{border-top-color:var(--ck-color-panel-background)}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/editorui/editorui.css\",\"webpack://./../ckeditor5-theme-lark/theme/mixins/_rounded.css\",\"webpack://./../ckeditor5-theme-lark/theme/mixins/_focus.css\",\"webpack://./../ckeditor5-theme-lark/theme/mixins/_shadow.css\"],\"names\":[],\"mappings\":\"AAWA,MACC,0CACD,CAEA,yDCJC,eDWD,CAPA,yJCAE,qCDOF,CAJC,oEEPA,2BAA2B,CCF3B,qCAA8B,CDC9B,YFWA,CAGD,+BAGC,4BAA6B,CAF7B,aAAc,CACd,oCA6BD,CA1BC,wCACC,eACD,CAEA,wCACC,gBACD,CAGA,4CACC,kCACD,CAGA,2CAKC,qCACD,CAGA,sDACC,kDACD,CAKA,gEACC,oDACD,CAIA,gEACC,iDACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n@import \\\"../../../mixins/_rounded.css\\\";\\n@import \\\"../../../mixins/_disabled.css\\\";\\n@import \\\"../../../mixins/_shadow.css\\\";\\n@import \\\"../../../mixins/_focus.css\\\";\\n@import \\\"../../mixins/_button.css\\\";\\n\\n:root {\\n\\t--ck-color-editable-blur-selection: hsl(0, 0%, 85%);\\n}\\n\\n.ck.ck-editor__editable:not(.ck-editor__nested-editable) {\\n\\t@mixin ck-rounded-corners;\\n\\n\\t&.ck-focused {\\n\\t\\t@mixin ck-focus-ring;\\n\\t\\t@mixin ck-box-shadow var(--ck-inner-shadow);\\n\\t}\\n}\\n\\n.ck.ck-editor__editable_inline {\\n\\toverflow: auto;\\n\\tpadding: 0 var(--ck-spacing-standard);\\n\\tborder: 1px solid transparent;\\n\\n\\t&[dir=\\\"ltr\\\"] {\\n\\t\\ttext-align: left;\\n\\t}\\n\\n\\t&[dir=\\\"rtl\\\"] {\\n\\t\\ttext-align: right;\\n\\t}\\n\\n\\t/* https://github.com/ckeditor/ckeditor5-theme-lark/issues/116 */\\n\\t& > *:first-child {\\n\\t\\tmargin-top: var(--ck-spacing-large);\\n\\t}\\n\\n\\t/* https://github.com/ckeditor/ckeditor5/issues/847 */\\n\\t& > *:last-child {\\n\\t\\t/*\\n\\t\\t * This value should match with the default margins of the block elements (like .media or .image)\\n\\t\\t * to avoid a content jumping when the fake selection container shows up (See https://github.com/ckeditor/ckeditor5/issues/9825).\\n\\t\\t */\\n\\t\\tmargin-bottom: var(--ck-spacing-large);\\n\\t}\\n\\n\\t/* https://github.com/ckeditor/ckeditor5/issues/6517 */\\n\\t&.ck-blurred ::selection {\\n\\t\\tbackground: var(--ck-color-editable-blur-selection);\\n\\t}\\n}\\n\\n/* https://github.com/ckeditor/ckeditor5-theme-lark/issues/111 */\\n.ck.ck-balloon-panel.ck-toolbar-container[class*=\\\"arrow_n\\\"] {\\n\\t&::after {\\n\\t\\tborder-bottom-color: var(--ck-color-panel-background);\\n\\t}\\n}\\n\\n.ck.ck-balloon-panel.ck-toolbar-container[class*=\\\"arrow_s\\\"] {\\n\\t&::after {\\n\\t\\tborder-top-color: var(--ck-color-panel-background);\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n/**\\n * Implements rounded corner interface for .ck-rounded-corners class.\\n *\\n * @see $ck-border-radius\\n */\\n@define-mixin ck-rounded-corners {\\n\\tborder-radius: 0;\\n\\n\\t@nest .ck-rounded-corners &,\\n\\t&.ck-rounded-corners {\\n\\t\\tborder-radius: var(--ck-border-radius);\\n\\t\\t@mixin-content;\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n/**\\n * A visual style of focused element's border.\\n */\\n@define-mixin ck-focus-ring {\\n\\t/* Disable native outline. */\\n\\toutline: none;\\n\\tborder: var(--ck-focus-ring)\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n/**\\n * A helper to combine multiple shadows.\\n */\\n@define-mixin ck-box-shadow $shadowA, $shadowB: 0 0 {\\n\\tbox-shadow: $shadowA, $shadowB;\\n}\\n\\n/**\\n * Gives an element a drop shadow so it looks like a floating panel.\\n */\\n@define-mixin ck-drop-shadow {\\n\\t@mixin ck-box-shadow var(--ck-drop-shadow);\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck.ck-form__header{align-items:center;display:flex;flex-direction:row;flex-wrap:nowrap;justify-content:space-between}.ck.ck-form__header h2.ck-form__header__label{flex-grow:1}:root{--ck-form-header-height:44px}.ck.ck-form__header{border-bottom:1px solid var(--ck-color-base-border);height:var(--ck-form-header-height);line-height:var(--ck-form-header-height);padding:var(--ck-spacing-small) var(--ck-spacing-large)}[dir=ltr] .ck.ck-form__header>.ck-icon{margin-right:var(--ck-spacing-medium)}[dir=rtl] .ck.ck-form__header>.ck-icon{margin-left:var(--ck-spacing-medium)}.ck.ck-form__header .ck-form__header__label{--ck-font-size-base:15px;font-weight:700}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../ckeditor5-ui/theme/components/formheader/formheader.css\",\"webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/formheader/formheader.css\"],\"names\":[],\"mappings\":\"AAKA,oBAIC,kBAAmB,CAHnB,YAAa,CACb,kBAAmB,CACnB,gBAAiB,CAEjB,6BAKD,CAHC,8CACC,WACD,CCPD,MACC,4BACD,CAEA,oBAIC,mDAAoD,CAFpD,mCAAoC,CACpC,wCAAyC,CAFzC,uDAmBD,CAdC,uCAEE,qCAMF,CARA,uCAME,oCAEF,CAEA,4CACC,wBAAyB,CACzB,eACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.ck.ck-form__header {\\n\\tdisplay: flex;\\n\\tflex-direction: row;\\n\\tflex-wrap: nowrap;\\n\\talign-items: center;\\n\\tjustify-content: space-between;\\n\\n\\t& h2.ck-form__header__label {\\n\\t\\tflex-grow: 1;\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n@import \\\"@ckeditor/ckeditor5-ui/theme/mixins/_dir.css\\\";\\n\\n:root {\\n\\t--ck-form-header-height: 44px;\\n}\\n\\n.ck.ck-form__header {\\n\\tpadding: var(--ck-spacing-small) var(--ck-spacing-large);\\n\\theight: var(--ck-form-header-height);\\n\\tline-height: var(--ck-form-header-height);\\n\\tborder-bottom: 1px solid var(--ck-color-base-border);\\n\\n\\t& > .ck-icon {\\n\\t\\t@mixin ck-dir ltr {\\n\\t\\t\\tmargin-right: var(--ck-spacing-medium);\\n\\t\\t}\\n\\n\\t\\t@mixin ck-dir rtl {\\n\\t\\t\\tmargin-left: var(--ck-spacing-medium);\\n\\t\\t}\\n\\t}\\n\\n\\t& .ck-form__header__label {\\n\\t\\t--ck-font-size-base: 15px;\\n\\t\\tfont-weight: bold;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck.ck-highlighted-text mark{background:var(--ck-color-highlight-background);font-size:inherit;font-weight:inherit;line-height:inherit;vertical-align:initial}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../ckeditor5-ui/theme/components/highlightedtext/highlightedtext.css\"],\"names\":[],\"mappings\":\"AAKA,6BACC,+CAAgD,CAIhD,iBAAkB,CAFlB,mBAAoB,CACpB,mBAAoB,CAFpB,sBAID\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.ck.ck-highlighted-text mark {\\n\\tbackground: var(--ck-color-highlight-background);\\n\\tvertical-align: initial;\\n\\tfont-weight: inherit;\\n\\tline-height: inherit;\\n\\tfont-size: inherit;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck.ck-icon{vertical-align:middle}:root{--ck-icon-size:calc(var(--ck-line-height-base)*var(--ck-font-size-normal))}.ck.ck-icon{font-size:.8333350694em;height:var(--ck-icon-size);width:var(--ck-icon-size);will-change:transform}.ck.ck-icon,.ck.ck-icon *{cursor:inherit}.ck.ck-icon.ck-icon_inherit-color,.ck.ck-icon.ck-icon_inherit-color *{color:inherit}.ck.ck-icon.ck-icon_inherit-color :not([fill]){fill:currentColor}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../ckeditor5-ui/theme/components/icon/icon.css\",\"webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/icon/icon.css\"],\"names\":[],\"mappings\":\"AAKA,YACC,qBACD,CCFA,MACC,0EACD,CAEA,YAKC,uBAAwB,CAHxB,0BAA2B,CAD3B,yBAA0B,CAU1B,qBAoBD,CAlBC,0BALA,cAQA,CAMC,sEACC,aAMD,CAJC,+CAEC,iBACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.ck.ck-icon {\\n\\tvertical-align: middle;\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n:root {\\n\\t--ck-icon-size: calc(var(--ck-line-height-base) * var(--ck-font-size-normal));\\n}\\n\\n.ck.ck-icon {\\n\\twidth: var(--ck-icon-size);\\n\\theight: var(--ck-icon-size);\\n\\n\\t/* Multiplied by the height of the line in \\\"px\\\" should give SVG \\\"viewport\\\" dimensions */\\n\\tfont-size: .8333350694em;\\n\\n\\t/* Inherit cursor style (#5). */\\n\\tcursor: inherit;\\n\\n\\t/* This will prevent blurry icons on Firefox. See #340. */\\n\\twill-change: transform;\\n\\n\\t& * {\\n\\t\\t/* Inherit cursor style (#5). */\\n\\t\\tcursor: inherit;\\n\\t}\\n\\n\\t/* Allows dynamic coloring of an icon by inheriting its color from the parent. */\\n\\t&.ck-icon_inherit-color {\\n\\t\\tcolor: inherit;\\n\\n\\t\\t& * {\\n\\t\\t\\tcolor: inherit;\\n\\n\\t\\t\\t&:not([fill]) {\\n\\t\\t\\t\\t/* Needed by FF. */\\n\\t\\t\\t\\tfill: currentColor;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \":root{--ck-input-width:18em;--ck-input-text-width:var(--ck-input-width)}.ck.ck-input{border-radius:0}.ck-rounded-corners .ck.ck-input,.ck.ck-input.ck-rounded-corners{border-radius:var(--ck-border-radius)}.ck.ck-input{background:var(--ck-color-input-background);border:1px solid var(--ck-color-input-border);min-height:var(--ck-ui-component-min-height);min-width:var(--ck-input-width);padding:var(--ck-spacing-extra-tiny) var(--ck-spacing-medium);transition:box-shadow .1s ease-in-out,border .1s ease-in-out}@media (prefers-reduced-motion:reduce){.ck.ck-input{transition:none}}.ck.ck-input:focus{border:var(--ck-focus-ring);box-shadow:var(--ck-focus-outer-shadow),0 0;outline:none}.ck.ck-input[readonly]{background:var(--ck-color-input-disabled-background);border:1px solid var(--ck-color-input-disabled-border);color:var(--ck-color-input-disabled-text)}.ck.ck-input[readonly]:focus{box-shadow:var(--ck-focus-disabled-outer-shadow),0 0}.ck.ck-input.ck-error{animation:ck-input-shake .3s ease both;border-color:var(--ck-color-input-error-border)}@media (prefers-reduced-motion:reduce){.ck.ck-input.ck-error{animation:none}}.ck.ck-input.ck-error:focus{box-shadow:var(--ck-focus-error-outer-shadow),0 0}@keyframes ck-input-shake{20%{transform:translateX(-2px)}40%{transform:translateX(2px)}60%{transform:translateX(-1px)}80%{transform:translateX(1px)}}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/input/input.css\",\"webpack://./../ckeditor5-theme-lark/theme/mixins/_rounded.css\",\"webpack://./../ckeditor5-theme-lark/theme/mixins/_focus.css\",\"webpack://./../ckeditor5-theme-lark/theme/mixins/_shadow.css\"],\"names\":[],\"mappings\":\"AASA,MACC,qBAAsB,CAGtB,2CACD,CAEA,aCLC,eDmDD,CA9CA,iECDE,qCD+CF,CA9CA,aAGC,2CAA4C,CAC5C,6CAA8C,CAK9C,4CAA6C,CAH7C,+BAAgC,CADhC,6DAA8D,CAO9D,4DAkCD,CAhCC,uCAdD,aAeE,eA+BF,CA9BC,CAEA,mBEvBA,2BAA2B,CCF3B,2CAA8B,CDC9B,YF2BA,CAEA,uBAEC,oDAAqD,CADrD,sDAAuD,CAEvD,yCAMD,CAJC,6BGnCD,oDHsCC,CAGD,sBAEC,sCAAuC,CADvC,+CAUD,CAPC,uCAJD,sBAKE,cAMF,CALC,CAEA,4BGjDD,iDHmDC,CAIF,0BACC,IACC,0BACD,CAEA,IACC,yBACD,CAEA,IACC,0BACD,CAEA,IACC,yBACD,CACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n@import \\\"../../../mixins/_rounded.css\\\";\\n@import \\\"../../../mixins/_focus.css\\\";\\n@import \\\"../../../mixins/_shadow.css\\\";\\n\\n:root {\\n\\t--ck-input-width: 18em;\\n\\n\\t/* Backward compatibility. */\\n\\t--ck-input-text-width: var(--ck-input-width);\\n}\\n\\n.ck.ck-input {\\n\\t@mixin ck-rounded-corners;\\n\\n\\tbackground: var(--ck-color-input-background);\\n\\tborder: 1px solid var(--ck-color-input-border);\\n\\tpadding: var(--ck-spacing-extra-tiny) var(--ck-spacing-medium);\\n\\tmin-width: var(--ck-input-width);\\n\\n\\t/* This is important to stay of the same height as surrounding buttons */\\n\\tmin-height: var(--ck-ui-component-min-height);\\n\\n\\t/* Apply some smooth transition to the box-shadow and border. */\\n\\ttransition: box-shadow .1s ease-in-out, border .1s ease-in-out;\\n\\n\\t@media (prefers-reduced-motion: reduce) {\\n\\t\\ttransition: none;\\n\\t}\\n\\n\\t&:focus {\\n\\t\\t@mixin ck-focus-ring;\\n\\t\\t@mixin ck-box-shadow var(--ck-focus-outer-shadow);\\n\\t}\\n\\n\\t&[readonly] {\\n\\t\\tborder: 1px solid var(--ck-color-input-disabled-border);\\n\\t\\tbackground: var(--ck-color-input-disabled-background);\\n\\t\\tcolor: var(--ck-color-input-disabled-text);\\n\\n\\t\\t&:focus {\\n\\t\\t\\t/* The read-only input should have a slightly less visible shadow when focused. */\\n\\t\\t\\t@mixin ck-box-shadow var(--ck-focus-disabled-outer-shadow);\\n\\t\\t}\\n\\t}\\n\\n\\t&.ck-error {\\n\\t\\tborder-color: var(--ck-color-input-error-border);\\n\\t\\tanimation: ck-input-shake .3s ease both;\\n\\n\\t\\t@media (prefers-reduced-motion: reduce) {\\n\\t\\t\\tanimation: none;\\n\\t\\t}\\n\\n\\t\\t&:focus {\\n\\t\\t\\t@mixin ck-box-shadow var(--ck-focus-error-outer-shadow);\\n\\t\\t}\\n\\t}\\n}\\n\\n@keyframes ck-input-shake {\\n\\t20% {\\n\\t\\ttransform: translateX(-2px);\\n\\t}\\n\\n\\t40% {\\n\\t\\ttransform: translateX(2px);\\n\\t}\\n\\n\\t60% {\\n\\t\\ttransform: translateX(-1px);\\n\\t}\\n\\n\\t80% {\\n\\t\\ttransform: translateX(1px);\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n/**\\n * Implements rounded corner interface for .ck-rounded-corners class.\\n *\\n * @see $ck-border-radius\\n */\\n@define-mixin ck-rounded-corners {\\n\\tborder-radius: 0;\\n\\n\\t@nest .ck-rounded-corners &,\\n\\t&.ck-rounded-corners {\\n\\t\\tborder-radius: var(--ck-border-radius);\\n\\t\\t@mixin-content;\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n/**\\n * A visual style of focused element's border.\\n */\\n@define-mixin ck-focus-ring {\\n\\t/* Disable native outline. */\\n\\toutline: none;\\n\\tborder: var(--ck-focus-ring)\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n/**\\n * A helper to combine multiple shadows.\\n */\\n@define-mixin ck-box-shadow $shadowA, $shadowB: 0 0 {\\n\\tbox-shadow: $shadowA, $shadowB;\\n}\\n\\n/**\\n * Gives an element a drop shadow so it looks like a floating panel.\\n */\\n@define-mixin ck-drop-shadow {\\n\\t@mixin ck-box-shadow var(--ck-drop-shadow);\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck.ck-label{display:block}.ck.ck-voice-label{display:none}.ck.ck-label{font-weight:700}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../ckeditor5-ui/theme/components/label/label.css\",\"webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/label/label.css\"],\"names\":[],\"mappings\":\"AAKA,aACC,aACD,CAEA,mBACC,YACD,CCNA,aACC,eACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.ck.ck-label {\\n\\tdisplay: block;\\n}\\n\\n.ck.ck-voice-label {\\n\\tdisplay: none;\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.ck.ck-label {\\n\\tfont-weight: bold;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck.ck-labeled-field-view>.ck.ck-labeled-field-view__input-wrapper{display:flex;position:relative}.ck.ck-labeled-field-view .ck.ck-label{display:block;position:absolute}:root{--ck-labeled-field-view-transition:.1s cubic-bezier(0,0,0.24,0.95);--ck-labeled-field-empty-unfocused-max-width:100% - 2 * var(--ck-spacing-medium);--ck-labeled-field-label-default-position-x:var(--ck-spacing-medium);--ck-labeled-field-label-default-position-y:calc(var(--ck-font-size-base)*0.6);--ck-color-labeled-field-label-background:var(--ck-color-base-background)}.ck.ck-labeled-field-view{border-radius:0}.ck-rounded-corners .ck.ck-labeled-field-view,.ck.ck-labeled-field-view.ck-rounded-corners{border-radius:var(--ck-border-radius)}.ck.ck-labeled-field-view>.ck.ck-labeled-field-view__input-wrapper{width:100%}.ck.ck-labeled-field-view>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label{top:0}[dir=ltr] .ck.ck-labeled-field-view>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label{left:0;transform:translate(var(--ck-spacing-medium),-6px) scale(.75);transform-origin:0 0}[dir=rtl] .ck.ck-labeled-field-view>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label{right:0;transform:translate(calc(var(--ck-spacing-medium)*-1),-6px) scale(.75);transform-origin:100% 0}.ck.ck-labeled-field-view>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label{background:var(--ck-color-labeled-field-label-background);font-weight:400;line-height:normal;max-width:100%;overflow:hidden;padding:0 calc(var(--ck-font-size-tiny)*.5);pointer-events:none;text-overflow:ellipsis;transition:transform var(--ck-labeled-field-view-transition),padding var(--ck-labeled-field-view-transition),background var(--ck-labeled-field-view-transition)}@media (prefers-reduced-motion:reduce){.ck.ck-labeled-field-view>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label{transition:none}}.ck.ck-labeled-field-view.ck-error .ck-input:not([readonly])+.ck.ck-label,.ck.ck-labeled-field-view.ck-error>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label{color:var(--ck-color-base-error)}.ck.ck-labeled-field-view .ck-labeled-field-view__status{font-size:var(--ck-font-size-small);margin-top:var(--ck-spacing-small);white-space:normal}.ck.ck-labeled-field-view .ck-labeled-field-view__status.ck-labeled-field-view__status_error{color:var(--ck-color-base-error)}.ck.ck-labeled-field-view.ck-disabled>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label,.ck.ck-labeled-field-view.ck-labeled-field-view_empty:not(.ck-labeled-field-view_focused)>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label{color:var(--ck-color-input-disabled-text)}[dir=ltr] .ck.ck-labeled-field-view.ck-disabled.ck-labeled-field-view_empty:not(.ck-labeled-field-view_placeholder)>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label,[dir=ltr] .ck.ck-labeled-field-view.ck-labeled-field-view_empty:not(.ck-labeled-field-view_focused):not(.ck-labeled-field-view_placeholder):not(.ck-error)>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label{transform:translate(var(--ck-labeled-field-label-default-position-x),var(--ck-labeled-field-label-default-position-y)) scale(1)}[dir=rtl] .ck.ck-labeled-field-view.ck-disabled.ck-labeled-field-view_empty:not(.ck-labeled-field-view_placeholder)>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label,[dir=rtl] .ck.ck-labeled-field-view.ck-labeled-field-view_empty:not(.ck-labeled-field-view_focused):not(.ck-labeled-field-view_placeholder):not(.ck-error)>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label{transform:translate(calc(var(--ck-labeled-field-label-default-position-x)*-1),var(--ck-labeled-field-label-default-position-y)) scale(1)}.ck.ck-labeled-field-view.ck-disabled.ck-labeled-field-view_empty:not(.ck-labeled-field-view_placeholder)>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label,.ck.ck-labeled-field-view.ck-labeled-field-view_empty:not(.ck-labeled-field-view_focused):not(.ck-labeled-field-view_placeholder):not(.ck-error)>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label{background:transparent;max-width:calc(var(--ck-labeled-field-empty-unfocused-max-width));padding:0}.ck.ck-labeled-field-view>.ck.ck-labeled-field-view__input-wrapper>.ck-dropdown>.ck.ck-button{background:transparent}.ck.ck-labeled-field-view.ck-labeled-field-view_empty>.ck.ck-labeled-field-view__input-wrapper>.ck-dropdown>.ck-button>.ck-button__label{opacity:0}.ck.ck-labeled-field-view.ck-labeled-field-view_empty:not(.ck-labeled-field-view_focused):not(.ck-labeled-field-view_placeholder)>.ck.ck-labeled-field-view__input-wrapper>.ck-dropdown+.ck-label{max-width:calc(var(--ck-labeled-field-empty-unfocused-max-width) - var(--ck-dropdown-arrow-size) - var(--ck-spacing-standard))}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../ckeditor5-ui/theme/components/labeledfield/labeledfieldview.css\",\"webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/labeledfield/labeledfieldview.css\",\"webpack://./../ckeditor5-theme-lark/theme/mixins/_rounded.css\"],\"names\":[],\"mappings\":\"AAMC,mEACC,YAAa,CACb,iBACD,CAEA,uCACC,aAAc,CACd,iBACD,CCND,MACC,kEAAsE,CACtE,gFAAiF,CACjF,oEAAqE,CACrE,8EAAiF,CACjF,yEACD,CAEA,0BCLC,eDmHD,CA9GA,2FCDE,qCD+GF,CA3GC,mEACC,UAwCD,CAtCC,gFACC,KAoCD,CArCA,0FAIE,MAAS,CAGT,6DAA+D,CAF/D,oBAgCF,CArCA,0FAWE,OAAU,CAEV,sEAA0E,CAD1E,uBAyBF,CArCA,gFAkBC,yDAA0D,CAG1D,eAAmB,CADnB,kBAAoB,CAOpB,cAAe,CAFf,eAAgB,CANhB,2CAA8C,CAH9C,mBAAoB,CAQpB,sBAAuB,CAKvB,+JAQD,CAHC,uCAlCD,gFAmCE,eAEF,CADC,CASD,mKACC,gCACD,CAGD,yDACC,mCAAoC,CACpC,kCAAmC,CAInC,kBAKD,CAHC,6FACC,gCACD,CAID,4OAEC,yCACD,CAIA,2XAGE,+HAYF,CAfA,2XAOE,wIAQF,CAfA,uWAaC,sBAAuB,CAFvB,iEAAkE,CAGlE,SACD,CAKA,8FACC,sBACD,CAGA,yIACC,SACD,CAGA,kMACC,8HACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.ck.ck-labeled-field-view {\\n\\t& > .ck.ck-labeled-field-view__input-wrapper {\\n\\t\\tdisplay: flex;\\n\\t\\tposition: relative;\\n\\t}\\n\\n\\t& .ck.ck-label {\\n\\t\\tdisplay: block;\\n\\t\\tposition: absolute;\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n@import \\\"@ckeditor/ckeditor5-ui/theme/mixins/_dir.css\\\";\\n@import \\\"../../../mixins/_rounded.css\\\";\\n\\n:root {\\n\\t--ck-labeled-field-view-transition: .1s cubic-bezier(0, 0, 0.24, 0.95);\\n\\t--ck-labeled-field-empty-unfocused-max-width: 100% - 2 * var(--ck-spacing-medium);\\n\\t--ck-labeled-field-label-default-position-x: var(--ck-spacing-medium);\\n\\t--ck-labeled-field-label-default-position-y: calc(0.6 * var(--ck-font-size-base));\\n\\t--ck-color-labeled-field-label-background: var(--ck-color-base-background);\\n}\\n\\n.ck.ck-labeled-field-view {\\n\\t@mixin ck-rounded-corners;\\n\\n\\t& > .ck.ck-labeled-field-view__input-wrapper {\\n\\t\\twidth: 100%;\\n\\n\\t\\t& > .ck.ck-label {\\n\\t\\t\\ttop: 0px;\\n\\n\\t\\t\\t@mixin ck-dir ltr {\\n\\t\\t\\t\\tleft: 0px;\\n\\t\\t\\t\\ttransform-origin: 0 0;\\n\\t\\t\\t\\t/* By default, display the label scaled down above the field. */\\n\\t\\t\\t\\ttransform: translate(var(--ck-spacing-medium), -6px) scale(.75);\\n\\t\\t\\t}\\n\\n\\t\\t\\t@mixin ck-dir rtl {\\n\\t\\t\\t\\tright: 0px;\\n\\t\\t\\t\\ttransform-origin: 100% 0;\\n\\t\\t\\t\\ttransform: translate(calc(-1 * var(--ck-spacing-medium)), -6px) scale(.75);\\n\\t\\t\\t}\\n\\n\\t\\t\\tpointer-events: none;\\n\\n\\t\\t\\tbackground: var(--ck-color-labeled-field-label-background);\\n\\t\\t\\tpadding: 0 calc(.5 * var(--ck-font-size-tiny));\\n\\t\\t\\tline-height: initial;\\n\\t\\t\\tfont-weight: normal;\\n\\n\\t\\t\\t/* Prevent overflow when the label is longer than the input */\\n\\t\\t\\ttext-overflow: ellipsis;\\n\\t\\t\\toverflow: hidden;\\n\\n\\t\\t\\tmax-width: 100%;\\n\\n\\t\\t\\ttransition:\\n\\t\\t\\t\\ttransform var(--ck-labeled-field-view-transition),\\n\\t\\t\\t\\tpadding var(--ck-labeled-field-view-transition),\\n\\t\\t\\t\\tbackground var(--ck-labeled-field-view-transition);\\n\\n\\t\\t\\t@media (prefers-reduced-motion: reduce) {\\n\\t\\t\\t\\ttransition: none;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t&.ck-error {\\n\\t\\t& > .ck.ck-labeled-field-view__input-wrapper > .ck.ck-label {\\n\\t\\t\\tcolor: var(--ck-color-base-error);\\n\\t\\t}\\n\\n\\t\\t& .ck-input:not([readonly]) + .ck.ck-label {\\n\\t\\t\\tcolor: var(--ck-color-base-error);\\n\\t\\t}\\n\\t}\\n\\n\\t& .ck-labeled-field-view__status {\\n\\t\\tfont-size: var(--ck-font-size-small);\\n\\t\\tmargin-top: var(--ck-spacing-small);\\n\\n\\t\\t/* Let the info wrap to the next line to avoid stretching the layout horizontally.\\n\\t\\tThe status could be very long. */\\n\\t\\twhite-space: normal;\\n\\n\\t\\t&.ck-labeled-field-view__status_error {\\n\\t\\t\\tcolor: var(--ck-color-base-error);\\n\\t\\t}\\n\\t}\\n\\n\\t/* Disabled fields and fields that have no focus should fade out. */\\n\\t&.ck-disabled > .ck.ck-labeled-field-view__input-wrapper > .ck.ck-label,\\n\\t&.ck-labeled-field-view_empty:not(.ck-labeled-field-view_focused) > .ck.ck-labeled-field-view__input-wrapper > .ck.ck-label {\\n\\t\\tcolor: var(--ck-color-input-disabled-text);\\n\\t}\\n\\n\\t/* Fields that are disabled or not focused and without a placeholder should have full-sized labels. */\\n\\t/* stylelint-disable-next-line no-descending-specificity */\\n\\t&.ck-disabled.ck-labeled-field-view_empty:not(.ck-labeled-field-view_placeholder) > .ck.ck-labeled-field-view__input-wrapper > .ck.ck-label,\\n\\t&.ck-labeled-field-view_empty:not(.ck-labeled-field-view_focused):not(.ck-labeled-field-view_placeholder):not(.ck-error) > .ck.ck-labeled-field-view__input-wrapper > .ck.ck-label {\\n\\t\\t@mixin ck-dir ltr {\\n\\t\\t\\ttransform: translate(var(--ck-labeled-field-label-default-position-x), var(--ck-labeled-field-label-default-position-y)) scale(1);\\n\\t\\t}\\n\\n\\t\\t@mixin ck-dir rtl {\\n\\t\\t\\ttransform: translate(calc(-1 * var(--ck-labeled-field-label-default-position-x)), var(--ck-labeled-field-label-default-position-y)) scale(1);\\n\\t\\t}\\n\\n\\t\\t/* Compensate for the default translate position. */\\n\\t\\tmax-width: calc(var(--ck-labeled-field-empty-unfocused-max-width));\\n\\n\\t\\tbackground: transparent;\\n\\t\\tpadding: 0;\\n\\t}\\n\\n\\t/*------ DropdownView integration ----------------------------------------------------------------------------------- */\\n\\n\\t/* Make sure dropdown' background color in any of dropdown's state does not collide with labeled field. */\\n\\t& > .ck.ck-labeled-field-view__input-wrapper > .ck-dropdown > .ck.ck-button {\\n\\t\\tbackground: transparent;\\n\\t}\\n\\n\\t/* When the dropdown is \\\"empty\\\", the labeled field label replaces its label. */\\n\\t&.ck-labeled-field-view_empty > .ck.ck-labeled-field-view__input-wrapper > .ck-dropdown > .ck-button > .ck-button__label {\\n\\t\\topacity: 0;\\n\\t}\\n\\n\\t/* Make sure the label of the empty, unfocused input does not cover the dropdown arrow. */\\n\\t&.ck-labeled-field-view_empty:not(.ck-labeled-field-view_focused):not(.ck-labeled-field-view_placeholder) > .ck.ck-labeled-field-view__input-wrapper > .ck-dropdown + .ck-label {\\n\\t\\tmax-width: calc(var(--ck-labeled-field-empty-unfocused-max-width) - var(--ck-dropdown-arrow-size) - var(--ck-spacing-standard));\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n/**\\n * Implements rounded corner interface for .ck-rounded-corners class.\\n *\\n * @see $ck-border-radius\\n */\\n@define-mixin ck-rounded-corners {\\n\\tborder-radius: 0;\\n\\n\\t@nest .ck-rounded-corners &,\\n\\t&.ck-rounded-corners {\\n\\t\\tborder-radius: var(--ck-border-radius);\\n\\t\\t@mixin-content;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck.ck-list{display:flex;flex-direction:column;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none}.ck.ck-list .ck-list__item,.ck.ck-list .ck-list__separator{display:block}.ck.ck-list .ck-list__item>:focus{position:relative;z-index:var(--ck-z-default)}:root{--ck-list-button-padding:calc(var(--ck-line-height-base)*0.11*var(--ck-font-size-base)) calc(var(--ck-line-height-base)*0.4*var(--ck-font-size-base))}.ck.ck-list{border-radius:0}.ck-rounded-corners .ck.ck-list,.ck.ck-list.ck-rounded-corners{border-radius:var(--ck-border-radius)}.ck.ck-list{background:var(--ck-color-list-background);list-style-type:none}.ck.ck-list__item{cursor:default;min-width:12em}.ck.ck-list__item>.ck-button{border-radius:0;min-height:unset;width:100%}[dir=ltr] .ck.ck-list__item>.ck-button{text-align:left}[dir=rtl] .ck.ck-list__item>.ck-button{text-align:right}.ck.ck-list__item>.ck-button{padding:var(--ck-list-button-padding)}.ck.ck-list__item>.ck-button:active{box-shadow:none}.ck.ck-list__item>.ck-button.ck-on{background:var(--ck-color-list-button-on-background);color:var(--ck-color-list-button-on-text)}.ck.ck-list__item>.ck-button.ck-on:active{box-shadow:none}.ck.ck-list__item>.ck-button.ck-on:hover:not(.ck-disabled){background:var(--ck-color-list-button-on-background-focus)}.ck.ck-list__item>.ck-button.ck-on:focus:not(.ck-switchbutton):not(.ck-disabled){border-color:var(--ck-color-base-background)}.ck.ck-list__item>.ck-button:hover:not(.ck-disabled){background:var(--ck-color-list-button-hover-background)}.ck.ck-list__item>.ck-switchbutton.ck-on{background:var(--ck-color-list-background);color:inherit}.ck.ck-list__item>.ck-switchbutton.ck-on:hover:not(.ck-disabled){background:var(--ck-color-list-button-hover-background);color:inherit}.ck-list .ck-list__group{padding-top:var(--ck-spacing-medium);:not(.ck-hidden)~&{border-top:1px solid var(--ck-color-base-border)}}.ck-list .ck-list__group>.ck-label{font-size:11px;font-weight:700;padding:var(--ck-spacing-medium) var(--ck-spacing-medium) 0 var(--ck-spacing-medium)}.ck.ck-list__separator{background:var(--ck-color-base-border);height:1px;width:100%}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../ckeditor5-ui/theme/components/list/list.css\",\"webpack://./../ckeditor5-ui/theme/mixins/_unselectable.css\",\"webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/list/list.css\",\"webpack://./../ckeditor5-theme-lark/theme/mixins/_rounded.css\"],\"names\":[],\"mappings\":\"AAOA,YAGC,YAAa,CACb,qBAAsB,CCFtB,qBAAsB,CACtB,wBAAyB,CACzB,oBAAqB,CACrB,gBDaD,CAZC,2DAEC,aACD,CAKA,kCACC,iBAAkB,CAClB,2BACD,CEdD,MACC,qJAGD,CAEA,YCLC,eDUD,CALA,+DCDE,qCDMF,CALA,YAIC,0CAA2C,CAD3C,oBAED,CAEA,kBACC,cAAe,CACf,cA2DD,CAzDC,6BAGC,eAAgB,CAFhB,gBAAiB,CACjB,UAwCD,CA1CA,uCAME,eAoCF,CA1CA,uCAUE,gBAgCF,CA1CA,6BAgBC,qCA0BD,CAxBC,oCACC,eACD,CAEA,mCACC,oDAAqD,CACrD,yCAaD,CAXC,0CACC,eACD,CAEA,2DACC,0DACD,CAEA,iFACC,4CACD,CAGD,qDACC,uDACD,CAMA,yCACC,0CAA2C,CAC3C,aAMD,CAJC,iEACC,uDAAwD,CACxD,aACD,CAKH,yBACC,oCAAqC,CAGrC,mBACC,gDACD,CAOD,CALC,mCACC,cAAe,CACf,eAAiB,CACjB,oFACD,CAGD,uBAGC,sCAAuC,CAFvC,UAAW,CACX,UAED\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n@import \\\"../../mixins/_unselectable.css\\\";\\n\\n.ck.ck-list {\\n\\t@mixin ck-unselectable;\\n\\n\\tdisplay: flex;\\n\\tflex-direction: column;\\n\\n\\t& .ck-list__item,\\n\\t& .ck-list__separator {\\n\\t\\tdisplay: block;\\n\\t}\\n\\n\\t/* Make sure that whatever child of the list item gets focus, it remains on the\\n\\ttop. Thanks to that, styles like box-shadow, outline, etc. are not masked by\\n\\tadjacent list items. */\\n\\t& .ck-list__item > *:focus {\\n\\t\\tposition: relative;\\n\\t\\tz-index: var(--ck-z-default);\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n/**\\n * Makes element unselectable.\\n */\\n@define-mixin ck-unselectable {\\n\\t-moz-user-select: none;\\n\\t-webkit-user-select: none;\\n\\t-ms-user-select: none;\\n\\tuser-select: none\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n@import \\\"../../../mixins/_disabled.css\\\";\\n@import \\\"../../../mixins/_rounded.css\\\";\\n@import \\\"../../../mixins/_shadow.css\\\";\\n@import \\\"@ckeditor/ckeditor5-ui/theme/mixins/_dir.css\\\";\\n\\n:root {\\n\\t--ck-list-button-padding:\\n\\t\\tcalc(.11 * var(--ck-line-height-base) * var(--ck-font-size-base))\\n\\t\\tcalc(.4 * var(--ck-line-height-base) * var(--ck-font-size-base));\\n}\\n\\n.ck.ck-list {\\n\\t@mixin ck-rounded-corners;\\n\\n\\tlist-style-type: none;\\n\\tbackground: var(--ck-color-list-background);\\n}\\n\\n.ck.ck-list__item {\\n\\tcursor: default;\\n\\tmin-width: 12em;\\n\\n\\t& > .ck-button {\\n\\t\\tmin-height: unset;\\n\\t\\twidth: 100%;\\n\\t\\tborder-radius: 0;\\n\\n\\t\\t@mixin ck-dir ltr {\\n\\t\\t\\ttext-align: left;\\n\\t\\t}\\n\\n\\t\\t@mixin ck-dir rtl {\\n\\t\\t\\ttext-align: right;\\n\\t\\t}\\n\\n\\t\\t/* List items should have the same height. Use absolute units to make sure it is so\\n\\t\\t because e.g. different heading styles may have different height\\n\\t\\t https://github.com/ckeditor/ckeditor5-heading/issues/63 */\\n\\t\\tpadding: var(--ck-list-button-padding);\\n\\n\\t\\t&:active {\\n\\t\\t\\tbox-shadow: none;\\n\\t\\t}\\n\\n\\t\\t&.ck-on {\\n\\t\\t\\tbackground: var(--ck-color-list-button-on-background);\\n\\t\\t\\tcolor: var(--ck-color-list-button-on-text);\\n\\n\\t\\t\\t&:active {\\n\\t\\t\\t\\tbox-shadow: none;\\n\\t\\t\\t}\\n\\n\\t\\t\\t&:hover:not(.ck-disabled) {\\n\\t\\t\\t\\tbackground: var(--ck-color-list-button-on-background-focus);\\n\\t\\t\\t}\\n\\n\\t\\t\\t&:focus:not(.ck-switchbutton):not(.ck-disabled) {\\n\\t\\t\\t\\tborder-color: var(--ck-color-base-background);\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t&:hover:not(.ck-disabled) {\\n\\t\\t\\tbackground: var(--ck-color-list-button-hover-background);\\n\\t\\t}\\n\\t}\\n\\n\\t/* It's unnecessary to change the background/text of a switch toggle; it has different ways\\n\\tof conveying its state (like the switcher) */\\n\\t& > .ck-switchbutton {\\n\\t\\t&.ck-on {\\n\\t\\t\\tbackground: var(--ck-color-list-background);\\n\\t\\t\\tcolor: inherit;\\n\\n\\t\\t\\t&:hover:not(.ck-disabled) {\\n\\t\\t\\t\\tbackground: var(--ck-color-list-button-hover-background);\\n\\t\\t\\t\\tcolor: inherit;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\\n.ck-list .ck-list__group {\\n\\tpadding-top: var(--ck-spacing-medium);\\n\\n\\t/* The group should have a border when it's not the first item. */\\n\\t*:not(.ck-hidden) ~ & {\\n\\t\\tborder-top: 1px solid var(--ck-color-base-border);\\n\\t}\\n\\n\\t& > .ck-label {\\n\\t\\tfont-size: 11px;\\n\\t\\tfont-weight: bold;\\n\\t\\tpadding: var(--ck-spacing-medium) var(--ck-spacing-medium) 0 var(--ck-spacing-medium);\\n\\t}\\n}\\n\\n.ck.ck-list__separator {\\n\\theight: 1px;\\n\\twidth: 100%;\\n\\tbackground: var(--ck-color-base-border);\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n/**\\n * Implements rounded corner interface for .ck-rounded-corners class.\\n *\\n * @see $ck-border-radius\\n */\\n@define-mixin ck-rounded-corners {\\n\\tborder-radius: 0;\\n\\n\\t@nest .ck-rounded-corners &,\\n\\t&.ck-rounded-corners {\\n\\t\\tborder-radius: var(--ck-border-radius);\\n\\t\\t@mixin-content;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck.ck-menu-bar{background:var(--ck-color-base-background);border:1px solid var(--ck-color-toolbar-border);display:flex;flex-wrap:wrap;gap:var(--ck-spacing-small);justify-content:flex-start;padding:var(--ck-spacing-small);width:100%}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/menubar/menubar.css\"],\"names\":[],\"mappings\":\"AAKA,gBAIC,0CAA2C,CAG3C,+CAAgD,CANhD,YAAa,CACb,cAAe,CAIf,2BAA4B,CAH5B,0BAA2B,CAE3B,+BAAgC,CAGhC,UACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.ck.ck-menu-bar {\\n\\tdisplay: flex;\\n\\tflex-wrap: wrap;\\n\\tjustify-content: flex-start;\\n\\tbackground: var(--ck-color-base-background);\\n\\tpadding: var(--ck-spacing-small);\\n\\tgap: var(--ck-spacing-small);\\n\\tborder: 1px solid var(--ck-color-toolbar-border);\\n\\twidth: 100%;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck.ck-menu-bar__menu{display:block;font-size:inherit;position:relative}.ck.ck-menu-bar__menu.ck-menu-bar__menu_top-level{max-width:100%}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../ckeditor5-ui/theme/components/menubar/menubarmenu.css\",\"webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/menubar/menubarmenu.css\"],\"names\":[],\"mappings\":\"AAKA,sBACC,aAAc,CCCd,iBAAkB,CDAlB,iBACD,CCCC,kDACC,cACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.ck.ck-menu-bar__menu {\\n\\tdisplay: block;\\n\\tposition: relative;\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.ck.ck-menu-bar__menu {\\n\\t/* Enable font size inheritance, which allows fluid UI scaling. */\\n\\tfont-size: inherit;\\n\\n\\t&.ck-menu-bar__menu_top-level {\\n\\t\\tmax-width: 100%;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck.ck-menu-bar__menu>.ck-menu-bar__menu__button>.ck-menu-bar__menu__button__arrow{pointer-events:none;z-index:var(--ck-z-default)}.ck.ck-menu-bar__menu>.ck-menu-bar__menu__button{padding:var(--ck-list-button-padding);width:100%}.ck.ck-menu-bar__menu>.ck-menu-bar__menu__button>.ck-button__label{flex-grow:1;overflow:hidden;text-overflow:ellipsis}.ck.ck-menu-bar__menu>.ck-menu-bar__menu__button.ck-disabled>.ck-button__label{opacity:var(--ck-disabled-opacity)}[dir=ltr] .ck.ck-menu-bar__menu>.ck-menu-bar__menu__button:not(.ck-button_with-text){padding-left:var(--ck-spacing-small)}[dir=rtl] .ck.ck-menu-bar__menu>.ck-menu-bar__menu__button:not(.ck-button_with-text){padding-right:var(--ck-spacing-small)}.ck.ck-menu-bar__menu.ck-menu-bar__menu_top-level>.ck-menu-bar__menu__button{min-height:unset;padding:var(--ck-spacing-small) var(--ck-spacing-medium)}.ck.ck-menu-bar__menu.ck-menu-bar__menu_top-level>.ck-menu-bar__menu__button .ck-button__label{line-height:unset;width:unset}.ck.ck-menu-bar__menu.ck-menu-bar__menu_top-level>.ck-menu-bar__menu__button.ck-on{border-bottom-left-radius:0;border-bottom-right-radius:0}.ck.ck-menu-bar__menu.ck-menu-bar__menu_top-level>.ck-menu-bar__menu__button .ck-icon{display:none}.ck.ck-menu-bar__menu:not(.ck-menu-bar__menu_top-level) .ck-menu-bar__menu__button{border-radius:0}.ck.ck-menu-bar__menu:not(.ck-menu-bar__menu_top-level) .ck-menu-bar__menu__button:focus{border-color:transparent;box-shadow:none}.ck.ck-menu-bar__menu:not(.ck-menu-bar__menu_top-level) .ck-menu-bar__menu__button:focus:not(.ck-on){background:var(--ck-color-button-default-hover-background)}.ck.ck-menu-bar__menu:not(.ck-menu-bar__menu_top-level) .ck-menu-bar__menu__button:not(:has(.ck-button__icon))>.ck-button__label{margin-left:calc(var(--ck-icon-size) - var(--ck-spacing-small))}.ck.ck-menu-bar__menu:not(.ck-menu-bar__menu_top-level) .ck-menu-bar__menu__button>.ck-menu-bar__menu__button__arrow{width:var(--ck-dropdown-arrow-size)}[dir=ltr] .ck.ck-menu-bar__menu:not(.ck-menu-bar__menu_top-level) .ck-menu-bar__menu__button>.ck-menu-bar__menu__button__arrow{transform:rotate(-90deg)}[dir=rtl] .ck.ck-menu-bar__menu:not(.ck-menu-bar__menu_top-level) .ck-menu-bar__menu__button>.ck-menu-bar__menu__button__arrow{transform:rotate(90deg)}.ck.ck-menu-bar__menu:not(.ck-menu-bar__menu_top-level) .ck-menu-bar__menu__button.ck-disabled>.ck-menu-bar__menu__button__arrow{opacity:var(--ck-disabled-opacity)}[dir=ltr] .ck.ck-menu-bar__menu:not(.ck-menu-bar__menu_top-level) .ck-menu-bar__menu__button>.ck-menu-bar__menu__button__arrow{margin-left:var(--ck-spacing-standard);right:var(--ck-spacing-standard)}[dir=rtl] .ck.ck-menu-bar__menu:not(.ck-menu-bar__menu_top-level) .ck-menu-bar__menu__button>.ck-menu-bar__menu__button__arrow{left:var(--ck-spacing-standard);margin-right:var(--ck-spacing-small)}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../ckeditor5-ui/theme/components/menubar/menubarmenubutton.css\",\"webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/menubar/menubarmenubutton.css\",\"webpack://./../ckeditor5-theme-lark/theme/mixins/_disabled.css\"],\"names\":[],\"mappings\":\"AAMC,mFACC,mBAAoB,CACpB,2BACD,CCIA,iDACC,qCAAsC,CACtC,UAuBD,CArBC,mEACC,WAAY,CACZ,eAAgB,CAChB,sBACD,CAEA,+ECdD,kCDgBC,CAGC,qFACC,oCACD,CAIA,qFACC,qCACD,CAOF,6EAEC,gBAAiB,CADjB,wDAgBD,CAbC,+FAEC,iBAAkB,CADlB,WAED,CAEA,mFACC,2BAA4B,CAC5B,4BACD,CAEA,sFACC,YACD,CAMD,mFACC,eAiDD,CA/CC,yFACC,wBAAyB,CACzB,eAKD,CAHC,qGACC,0DACD,CAID,iIACC,+DACD,CAEA,qHACC,mCASD,CAVA,+HAIE,wBAMF,CAVA,+HAQE,uBAEF,CAEA,iICrFD,kCDuFC,CAGC,+HAIC,sCAAuC,CAHvC,gCAID,CAIA,+HACC,+BAAgC,CAGhC,oCACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.ck.ck-menu-bar__menu {\\n\\t& > .ck-menu-bar__menu__button > .ck-menu-bar__menu__button__arrow {\\n\\t\\tpointer-events: none;\\n\\t\\tz-index: var(--ck-z-default);\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n@import \\\"../../../mixins/_disabled.css\\\";\\n@import \\\"../../mixins/_button.css\\\";\\n@import \\\"@ckeditor/ckeditor5-ui/theme/mixins/_dir.css\\\";\\n\\n.ck.ck-menu-bar__menu {\\n\\t/*\\n\\t * All menu buttons.\\n\\t */\\n\\t& > .ck-menu-bar__menu__button {\\n\\t\\tpadding: var(--ck-list-button-padding);\\n\\t\\twidth: 100%;\\n\\n\\t\\t& > .ck-button__label {\\n\\t\\t\\tflex-grow: 1;\\n\\t\\t\\toverflow: hidden;\\n\\t\\t\\ttext-overflow: ellipsis;\\n\\t\\t}\\n\\n\\t\\t&.ck-disabled > .ck-button__label {\\n\\t\\t\\t@mixin ck-disabled;\\n\\t\\t}\\n\\n\\t\\t@mixin ck-dir ltr {\\n\\t\\t\\t&:not(.ck-button_with-text) {\\n\\t\\t\\t\\tpadding-left: var(--ck-spacing-small);\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t@mixin ck-dir rtl {\\n\\t\\t\\t&:not(.ck-button_with-text) {\\n\\t\\t\\t\\tpadding-right: var(--ck-spacing-small);\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t/*\\n\\t * Top-level menu buttons only.\\n\\t */\\n\\t&.ck-menu-bar__menu_top-level > .ck-menu-bar__menu__button {\\n\\t\\tpadding: var(--ck-spacing-small) var(--ck-spacing-medium);\\n\\t\\tmin-height: unset;\\n\\n\\t\\t& .ck-button__label {\\n\\t\\t\\twidth: unset;\\n\\t\\t\\tline-height: unset;\\n\\t\\t}\\n\\n\\t\\t&.ck-on {\\n\\t\\t\\tborder-bottom-left-radius: 0;\\n\\t\\t\\tborder-bottom-right-radius: 0;\\n\\t\\t}\\n\\n\\t\\t& .ck-icon {\\n\\t\\t\\tdisplay: none;\\n\\t\\t}\\n\\t}\\n\\n\\t/*\\n\\t * Sub-menu buttons.\\n\\t */\\n\\t&:not(.ck-menu-bar__menu_top-level) .ck-menu-bar__menu__button {\\n\\t\\tborder-radius: 0;\\n\\n\\t\\t&:focus {\\n\\t\\t\\tborder-color: transparent;\\n\\t\\t\\tbox-shadow: none;\\n\\n\\t\\t\\t&:not(.ck-on) {\\n\\t\\t\\t\\tbackground: var(--ck-color-button-default-hover-background);\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t/* Spacing in buttons that miss the icon. */\\n\\t\\t&:not(:has(.ck-button__icon)) > .ck-button__label {\\n\\t\\t\\tmargin-left: calc(var(--ck-icon-size) - var(--ck-spacing-small));\\n\\t\\t}\\n\\n\\t\\t& > .ck-menu-bar__menu__button__arrow {\\n\\t\\t\\twidth: var(--ck-dropdown-arrow-size);\\n\\n\\t\\t\\t@mixin ck-dir ltr {\\n\\t\\t\\t\\ttransform: rotate(-90deg);\\n\\t\\t\\t}\\n\\n\\t\\t\\t@mixin ck-dir rtl {\\n\\t\\t\\t\\ttransform: rotate(90deg);\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t&.ck-disabled > .ck-menu-bar__menu__button__arrow {\\n\\t\\t\\t@mixin ck-disabled;\\n\\t\\t}\\n\\n\\t\\t@mixin ck-dir ltr {\\n\\t\\t\\t& > .ck-menu-bar__menu__button__arrow {\\n\\t\\t\\t\\tright: var(--ck-spacing-standard);\\n\\n\\t\\t\\t\\t/* A space to accommodate the triangle. */\\n\\t\\t\\t\\tmargin-left: var(--ck-spacing-standard);\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t@mixin ck-dir rtl {\\n\\t\\t\\t& > .ck-menu-bar__menu__button__arrow {\\n\\t\\t\\t\\tleft: var(--ck-spacing-standard);\\n\\n\\t\\t\\t\\t/* A space to accommodate the triangle. */\\n\\t\\t\\t\\tmargin-right: var(--ck-spacing-small);\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n/**\\n * A class which indicates that an element holding it is disabled.\\n */\\n@define-mixin ck-disabled {\\n\\topacity: var(--ck-disabled-opacity);\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \":root{--ck-menu-bar-menu-item-min-width:18em}.ck.ck-menu-bar__menu .ck.ck-menu-bar__menu__item{min-width:var(--ck-menu-bar-menu-item-min-width)}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/menubar/menubarmenulistitem.css\"],\"names\":[],\"mappings\":\"AAKA,MACC,sCACD,CAEA,kDACC,gDACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n:root {\\n\\t--ck-menu-bar-menu-item-min-width: 18em;\\n}\\n\\n.ck.ck-menu-bar__menu .ck.ck-menu-bar__menu__item {\\n\\tmin-width: var(--ck-menu-bar-menu-item-min-width);\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck.ck-menu-bar__menu .ck-button.ck-menu-bar__menu__item__button{border-radius:0}.ck.ck-menu-bar__menu .ck-button.ck-menu-bar__menu__item__button>.ck-spinner-container,.ck.ck-menu-bar__menu .ck-button.ck-menu-bar__menu__item__button>.ck-spinner-container .ck-spinner{--ck-toolbar-spinner-size:20px}.ck.ck-menu-bar__menu .ck-button.ck-menu-bar__menu__item__button>.ck-spinner-container{margin-left:calc(var(--ck-spacing-small)*-1);margin-right:var(--ck-spacing-small)}.ck.ck-menu-bar__menu .ck-button.ck-menu-bar__menu__item__button:focus{border-color:transparent;box-shadow:none}.ck.ck-menu-bar__menu .ck-button.ck-menu-bar__menu__item__button:focus:not(.ck-on){background:var(--ck-color-button-default-hover-background)}.ck.ck-menu-bar__menu.ck-menu-bar__menu_top-level>.ck-menu-bar__menu__panel>ul>.ck-menu-bar__menu__item>.ck-menu-bar__menu__item__button:not(:has(.ck-button__icon))>.ck-button__label{margin-left:calc(var(--ck-icon-size) - var(--ck-spacing-small))}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/menubar/menubarmenulistitembutton.css\"],\"names\":[],\"mappings\":\"AASC,iEACC,eA0BD,CAxBC,0LAGC,8BACD,CAEA,uFAEC,4CAA+C,CAC/C,oCACD,CAMA,uEACC,wBAAyB,CACzB,eAKD,CAHC,mFACC,0DACD,CASD,uLACC,+DACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.ck.ck-menu-bar__menu {\\n\\t/*\\n\\t * List item buttons.\\n\\t */\\n\\t& .ck-button.ck-menu-bar__menu__item__button {\\n\\t\\tborder-radius: 0;\\n\\n\\t\\t& > .ck-spinner-container,\\n\\t\\t& > .ck-spinner-container .ck-spinner {\\n\\t\\t\\t/* These styles correspond to .ck-icon so that the spinner seamlessly replaces the icon. */\\n\\t\\t\\t--ck-toolbar-spinner-size: 20px;\\n\\t\\t}\\n\\n\\t\\t& > .ck-spinner-container {\\n\\t\\t\\t/* These margins are the same as for .ck-icon. */\\n\\t\\t\\tmargin-left: calc(-1 * var(--ck-spacing-small));\\n\\t\\t\\tmargin-right: var(--ck-spacing-small);\\n\\t\\t}\\n\\n\\t\\t/*\\n\\t\\t * Hovered items automatically get focused. Default focus styles look odd\\n\\t\\t * while moving across a huge list of items so let's get rid of them\\n\\t\\t */\\n\\t\\t&:focus {\\n\\t\\t\\tborder-color: transparent;\\n\\t\\t\\tbox-shadow: none;\\n\\n\\t\\t\\t&:not(.ck-on) {\\n\\t\\t\\t\\tbackground: var(--ck-color-button-default-hover-background);\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t/*\\n\\t * First-level sub-menu item buttons.\\n\\t */\\n\\t&.ck-menu-bar__menu_top-level > .ck-menu-bar__menu__panel > ul > .ck-menu-bar__menu__item > .ck-menu-bar__menu__item__button {\\n\\t\\t/* Spacing in buttons that miss the icon. */\\n\\t\\t&:not(:has(.ck-button__icon)) > .ck-button__label {\\n\\t\\t\\tmargin-left: calc(var(--ck-icon-size) - var(--ck-spacing-small));\\n\\t\\t}\\n\\t}\\n}\\n\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \":root{--ck-menu-bar-menu-max-width:75vw;--ck-menu-bar-nested-menu-horizontal-offset:5px}.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel{max-width:var(--ck-menu-bar-menu-max-width);position:absolute;z-index:var(--ck-z-panel)}.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_ne,.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_nw{bottom:100%}.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_se,.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_sw{bottom:auto;top:100%}.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_ne,.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_se{left:0}.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_nw,.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_sw{right:0}.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_en,.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_es{left:calc(100% - var(--ck-menu-bar-nested-menu-horizontal-offset))}.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_es{top:0}.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_en{bottom:0}.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_wn,.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_ws{right:calc(100% - var(--ck-menu-bar-nested-menu-horizontal-offset))}.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_ws{top:0}.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_wn{bottom:0}:root{--ck-menu-bar-menu-panel-max-width:75vw}.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel{border-radius:0}.ck-rounded-corners .ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel,.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel.ck-rounded-corners{border-radius:var(--ck-border-radius)}.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel{background:var(--ck-color-dropdown-panel-background);border:1px solid var(--ck-color-dropdown-panel-border);bottom:0;box-shadow:var(--ck-drop-shadow),0 0;height:fit-content;max-width:var(--ck-menu-bar-menu-panel-max-width)}.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_es,.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_se{border-top-left-radius:0}.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_sw,.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_ws{border-top-right-radius:0}.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_en,.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_ne{border-bottom-left-radius:0}.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_nw,.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_wn{border-bottom-right-radius:0}.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel:focus{outline:none}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../ckeditor5-ui/theme/components/menubar/menubarmenupanel.css\",\"webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/menubar/menubarmenupanel.css\",\"webpack://./../ckeditor5-theme-lark/theme/mixins/_rounded.css\",\"webpack://./../ckeditor5-theme-lark/theme/mixins/_shadow.css\"],\"names\":[],\"mappings\":\"AAKA,MACC,iCAAkC,CAClC,+CACD,CAEA,mDAEC,2CAA4C,CAC5C,iBAAkB,CAFlB,yBAkDD,CA9CC,gLAEC,WACD,CAEA,gLAGC,WAAY,CADZ,QAED,CAEA,gLAEC,MACD,CAEA,gLAEC,OACD,CAEA,gLAEC,kEACD,CAEA,wFACC,KACD,CAEA,wFACC,QACD,CAEA,gLAEC,mEACD,CAEA,wFACC,KACD,CAEA,wFACC,QACD,CCpDD,MACC,uCACD,CAEA,mDCDC,eDmCD,CAlCA,6ICGE,qCD+BF,CAlCA,mDAIC,oDAAqD,CACrD,sDAAuD,CACvD,QAAS,CETT,oCAA8B,CFU9B,kBAAmB,CACnB,iDA0BD,CAvBC,gLAEC,wBACD,CAEA,gLAEC,yBACD,CAEA,gLAEC,2BACD,CAEA,gLAEC,4BACD,CAEA,yDACC,YACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n:root {\\n\\t--ck-menu-bar-menu-max-width: 75vw;\\n\\t--ck-menu-bar-nested-menu-horizontal-offset: 5px;\\n}\\n\\n.ck.ck-menu-bar__menu > .ck.ck-menu-bar__menu__panel {\\n\\tz-index: var(--ck-z-panel);\\n\\tmax-width: var(--ck-menu-bar-menu-max-width);\\n\\tposition: absolute;\\n\\n\\t&.ck-menu-bar__menu__panel_position_ne,\\n\\t&.ck-menu-bar__menu__panel_position_nw {\\n\\t\\tbottom: 100%;\\n\\t}\\n\\n\\t&.ck-menu-bar__menu__panel_position_se,\\n\\t&.ck-menu-bar__menu__panel_position_sw {\\n\\t\\ttop: 100%;\\n\\t\\tbottom: auto;\\n\\t}\\n\\n\\t&.ck-menu-bar__menu__panel_position_ne,\\n\\t&.ck-menu-bar__menu__panel_position_se {\\n\\t\\tleft: 0px;\\n\\t}\\n\\n\\t&.ck-menu-bar__menu__panel_position_nw,\\n\\t&.ck-menu-bar__menu__panel_position_sw {\\n\\t\\tright: 0px;\\n\\t}\\n\\n\\t&.ck-menu-bar__menu__panel_position_es,\\n\\t&.ck-menu-bar__menu__panel_position_en {\\n\\t\\tleft: calc( 100% - var(--ck-menu-bar-nested-menu-horizontal-offset) );\\n\\t}\\n\\n\\t&.ck-menu-bar__menu__panel_position_es {\\n\\t\\ttop: 0px;\\n\\t}\\n\\n\\t&.ck-menu-bar__menu__panel_position_en {\\n\\t\\tbottom: 0px;\\n\\t}\\n\\n\\t&.ck-menu-bar__menu__panel_position_ws,\\n\\t&.ck-menu-bar__menu__panel_position_wn {\\n\\t\\tright: calc( 100% - var(--ck-menu-bar-nested-menu-horizontal-offset) );\\n\\t}\\n\\n\\t&.ck-menu-bar__menu__panel_position_ws {\\n\\t\\ttop: 0px;\\n\\t}\\n\\n\\t&.ck-menu-bar__menu__panel_position_wn {\\n\\t\\tbottom: 0px;\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n@import \\\"../../../mixins/_rounded.css\\\";\\n@import \\\"../../../mixins/_shadow.css\\\";\\n\\n:root {\\n\\t--ck-menu-bar-menu-panel-max-width: 75vw;\\n}\\n\\n.ck.ck-menu-bar__menu > .ck.ck-menu-bar__menu__panel {\\n\\t@mixin ck-rounded-corners;\\n\\t@mixin ck-drop-shadow;\\n\\n\\tbackground: var(--ck-color-dropdown-panel-background);\\n\\tborder: 1px solid var(--ck-color-dropdown-panel-border);\\n\\tbottom: 0;\\n\\theight: fit-content;\\n\\tmax-width: var(--ck-menu-bar-menu-panel-max-width);\\n\\n\\t/* Corner border radius consistent with the button. */\\n\\t&.ck-menu-bar__menu__panel_position_es,\\n\\t&.ck-menu-bar__menu__panel_position_se {\\n\\t\\tborder-top-left-radius: 0;\\n\\t}\\n\\n\\t&.ck-menu-bar__menu__panel_position_ws,\\n\\t&.ck-menu-bar__menu__panel_position_sw {\\n\\t\\tborder-top-right-radius: 0;\\n\\t}\\n\\n\\t&.ck-menu-bar__menu__panel_position_en,\\n\\t&.ck-menu-bar__menu__panel_position_ne {\\n\\t\\tborder-bottom-left-radius: 0;\\n\\t}\\n\\n\\t&.ck-menu-bar__menu__panel_position_wn,\\n\\t&.ck-menu-bar__menu__panel_position_nw {\\n\\t\\tborder-bottom-right-radius: 0;\\n\\t}\\n\\n\\t&:focus {\\n\\t\\toutline: none;\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n/**\\n * Implements rounded corner interface for .ck-rounded-corners class.\\n *\\n * @see $ck-border-radius\\n */\\n@define-mixin ck-rounded-corners {\\n\\tborder-radius: 0;\\n\\n\\t@nest .ck-rounded-corners &,\\n\\t&.ck-rounded-corners {\\n\\t\\tborder-radius: var(--ck-border-radius);\\n\\t\\t@mixin-content;\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n/**\\n * A helper to combine multiple shadows.\\n */\\n@define-mixin ck-box-shadow $shadowA, $shadowB: 0 0 {\\n\\tbox-shadow: $shadowA, $shadowB;\\n}\\n\\n/**\\n * Gives an element a drop shadow so it looks like a floating panel.\\n */\\n@define-mixin ck-drop-shadow {\\n\\t@mixin ck-box-shadow var(--ck-drop-shadow);\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \":root{--ck-balloon-panel-arrow-z-index:calc(var(--ck-z-default) - 3)}.ck.ck-balloon-panel{display:none;position:absolute;z-index:var(--ck-z-panel)}.ck.ck-balloon-panel.ck-balloon-panel_with-arrow:after,.ck.ck-balloon-panel.ck-balloon-panel_with-arrow:before{content:\\\"\\\";position:absolute}.ck.ck-balloon-panel.ck-balloon-panel_with-arrow:before{z-index:var(--ck-balloon-panel-arrow-z-index)}.ck.ck-balloon-panel.ck-balloon-panel_with-arrow:after{z-index:calc(var(--ck-balloon-panel-arrow-z-index) + 1)}.ck.ck-balloon-panel[class*=arrow_n]:before{z-index:var(--ck-balloon-panel-arrow-z-index)}.ck.ck-balloon-panel[class*=arrow_n]:after{z-index:calc(var(--ck-balloon-panel-arrow-z-index) + 1)}.ck.ck-balloon-panel[class*=arrow_s]:before{z-index:var(--ck-balloon-panel-arrow-z-index)}.ck.ck-balloon-panel[class*=arrow_s]:after{z-index:calc(var(--ck-balloon-panel-arrow-z-index) + 1)}.ck.ck-balloon-panel.ck-balloon-panel_visible{display:block}:root{--ck-balloon-border-width:1px;--ck-balloon-arrow-offset:2px;--ck-balloon-arrow-height:10px;--ck-balloon-arrow-half-width:8px;--ck-balloon-arrow-drop-shadow:0 2px 2px var(--ck-color-shadow-drop)}.ck.ck-balloon-panel{border-radius:0}.ck-rounded-corners .ck.ck-balloon-panel,.ck.ck-balloon-panel.ck-rounded-corners{border-radius:var(--ck-border-radius)}.ck.ck-balloon-panel{background:var(--ck-color-panel-background);border:var(--ck-balloon-border-width) solid var(--ck-color-panel-border);box-shadow:var(--ck-drop-shadow),0 0;min-height:15px}.ck.ck-balloon-panel.ck-balloon-panel_with-arrow:after,.ck.ck-balloon-panel.ck-balloon-panel_with-arrow:before{border-style:solid;height:0;width:0}.ck.ck-balloon-panel[class*=arrow_n]:after,.ck.ck-balloon-panel[class*=arrow_n]:before{border-width:0 var(--ck-balloon-arrow-half-width) var(--ck-balloon-arrow-height) var(--ck-balloon-arrow-half-width)}.ck.ck-balloon-panel[class*=arrow_n]:before{border-color:transparent transparent var(--ck-color-panel-border) transparent;margin-top:calc(var(--ck-balloon-border-width)*-1)}.ck.ck-balloon-panel[class*=arrow_n]:after{border-color:transparent transparent var(--ck-color-panel-background) transparent;margin-top:calc(var(--ck-balloon-arrow-offset) - var(--ck-balloon-border-width))}.ck.ck-balloon-panel[class*=arrow_s]:after,.ck.ck-balloon-panel[class*=arrow_s]:before{border-width:var(--ck-balloon-arrow-height) var(--ck-balloon-arrow-half-width) 0 var(--ck-balloon-arrow-half-width)}.ck.ck-balloon-panel[class*=arrow_s]:before{border-color:var(--ck-color-panel-border) transparent transparent;filter:drop-shadow(var(--ck-balloon-arrow-drop-shadow));margin-bottom:calc(var(--ck-balloon-border-width)*-1)}.ck.ck-balloon-panel[class*=arrow_s]:after{border-color:var(--ck-color-panel-background) transparent transparent transparent;margin-bottom:calc(var(--ck-balloon-arrow-offset) - var(--ck-balloon-border-width))}.ck.ck-balloon-panel[class*=arrow_e]:after,.ck.ck-balloon-panel[class*=arrow_e]:before{border-width:var(--ck-balloon-arrow-half-width) 0 var(--ck-balloon-arrow-half-width) var(--ck-balloon-arrow-height)}.ck.ck-balloon-panel[class*=arrow_e]:before{border-color:transparent transparent transparent var(--ck-color-panel-border);margin-right:calc(var(--ck-balloon-border-width)*-1)}.ck.ck-balloon-panel[class*=arrow_e]:after{border-color:transparent transparent transparent var(--ck-color-panel-background);margin-right:calc(var(--ck-balloon-arrow-offset) - var(--ck-balloon-border-width))}.ck.ck-balloon-panel[class*=arrow_w]:after,.ck.ck-balloon-panel[class*=arrow_w]:before{border-width:var(--ck-balloon-arrow-half-width) var(--ck-balloon-arrow-height) var(--ck-balloon-arrow-half-width) 0}.ck.ck-balloon-panel[class*=arrow_w]:before{border-color:transparent var(--ck-color-panel-border) transparent transparent;margin-left:calc(var(--ck-balloon-border-width)*-1)}.ck.ck-balloon-panel[class*=arrow_w]:after{border-color:transparent var(--ck-color-panel-background) transparent transparent;margin-left:calc(var(--ck-balloon-arrow-offset) - var(--ck-balloon-border-width))}.ck.ck-balloon-panel.ck-balloon-panel_arrow_n:after,.ck.ck-balloon-panel.ck-balloon-panel_arrow_n:before{left:50%;margin-left:calc(var(--ck-balloon-arrow-half-width)*-1);top:calc(var(--ck-balloon-arrow-height)*-1)}.ck.ck-balloon-panel.ck-balloon-panel_arrow_nw:after,.ck.ck-balloon-panel.ck-balloon-panel_arrow_nw:before{left:calc(var(--ck-balloon-arrow-half-width)*2);top:calc(var(--ck-balloon-arrow-height)*-1)}.ck.ck-balloon-panel.ck-balloon-panel_arrow_ne:after,.ck.ck-balloon-panel.ck-balloon-panel_arrow_ne:before{right:calc(var(--ck-balloon-arrow-half-width)*2);top:calc(var(--ck-balloon-arrow-height)*-1)}.ck.ck-balloon-panel.ck-balloon-panel_arrow_s:after,.ck.ck-balloon-panel.ck-balloon-panel_arrow_s:before{bottom:calc(var(--ck-balloon-arrow-height)*-1);left:50%;margin-left:calc(var(--ck-balloon-arrow-half-width)*-1)}.ck.ck-balloon-panel.ck-balloon-panel_arrow_sw:after,.ck.ck-balloon-panel.ck-balloon-panel_arrow_sw:before{bottom:calc(var(--ck-balloon-arrow-height)*-1);left:calc(var(--ck-balloon-arrow-half-width)*2)}.ck.ck-balloon-panel.ck-balloon-panel_arrow_se:after,.ck.ck-balloon-panel.ck-balloon-panel_arrow_se:before{bottom:calc(var(--ck-balloon-arrow-height)*-1);right:calc(var(--ck-balloon-arrow-half-width)*2)}.ck.ck-balloon-panel.ck-balloon-panel_arrow_sme:after,.ck.ck-balloon-panel.ck-balloon-panel_arrow_sme:before{bottom:calc(var(--ck-balloon-arrow-height)*-1);margin-right:calc(var(--ck-balloon-arrow-half-width)*2);right:25%}.ck.ck-balloon-panel.ck-balloon-panel_arrow_smw:after,.ck.ck-balloon-panel.ck-balloon-panel_arrow_smw:before{bottom:calc(var(--ck-balloon-arrow-height)*-1);left:25%;margin-left:calc(var(--ck-balloon-arrow-half-width)*2)}.ck.ck-balloon-panel.ck-balloon-panel_arrow_nme:after,.ck.ck-balloon-panel.ck-balloon-panel_arrow_nme:before{margin-right:calc(var(--ck-balloon-arrow-half-width)*2);right:25%;top:calc(var(--ck-balloon-arrow-height)*-1)}.ck.ck-balloon-panel.ck-balloon-panel_arrow_nmw:after,.ck.ck-balloon-panel.ck-balloon-panel_arrow_nmw:before{left:25%;margin-left:calc(var(--ck-balloon-arrow-half-width)*2);top:calc(var(--ck-balloon-arrow-height)*-1)}.ck.ck-balloon-panel.ck-balloon-panel_arrow_e:after,.ck.ck-balloon-panel.ck-balloon-panel_arrow_e:before{margin-top:calc(var(--ck-balloon-arrow-half-width)*-1);right:calc(var(--ck-balloon-arrow-height)*-1);top:50%}.ck.ck-balloon-panel.ck-balloon-panel_arrow_w:after,.ck.ck-balloon-panel.ck-balloon-panel_arrow_w:before{left:calc(var(--ck-balloon-arrow-height)*-1);margin-top:calc(var(--ck-balloon-arrow-half-width)*-1);top:50%}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../ckeditor5-ui/theme/components/panel/balloonpanel.css\",\"webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/panel/balloonpanel.css\",\"webpack://./../ckeditor5-theme-lark/theme/mixins/_rounded.css\",\"webpack://./../ckeditor5-theme-lark/theme/mixins/_shadow.css\"],\"names\":[],\"mappings\":\"AAKA,MAEC,8DACD,CAEA,qBACC,YAAa,CACb,iBAAkB,CAElB,yBAyCD,CAtCE,+GAEC,UAAW,CACX,iBACD,CAEA,wDACC,6CACD,CAEA,uDACC,uDACD,CAIA,4CACC,6CACD,CAEA,2CACC,uDACD,CAIA,4CACC,6CACD,CAEA,2CACC,uDACD,CAGD,8CACC,aACD,CC9CD,MACC,6BAA8B,CAC9B,6BAA8B,CAC9B,8BAA+B,CAC/B,iCAAkC,CAClC,oEACD,CAEA,qBCLC,eDmMD,CA9LA,iFCDE,qCD+LF,CA9LA,qBAMC,2CAA4C,CAC5C,wEAAyE,CEdzE,oCAA8B,CFW9B,eA0LD,CApLE,+GAIC,kBAAmB,CADnB,QAAS,CADT,OAGD,CAIA,uFAEC,mHACD,CAEA,4CACC,6EAA8E,CAC9E,kDACD,CAEA,2CACC,iFAAkF,CAClF,gFACD,CAIA,uFAEC,mHACD,CAEA,4CACC,iEAAkE,CAClE,uDAAwD,CACxD,qDACD,CAEA,2CACC,iFAAkF,CAClF,mFACD,CAIA,uFAEC,mHACD,CAEA,4CACC,6EAA8E,CAC9E,oDACD,CAEA,2CACC,iFAAkF,CAClF,kFACD,CAIA,uFAEC,mHACD,CAEA,4CACC,6EAA8E,CAC9E,mDACD,CAEA,2CACC,iFAAkF,CAClF,iFACD,CAIA,yGAEC,QAAS,CACT,uDAA0D,CAC1D,2CACD,CAIA,2GAEC,+CAAkD,CAClD,2CACD,CAIA,2GAEC,gDAAmD,CACnD,2CACD,CAIA,yGAIC,8CAAiD,CAFjD,QAAS,CACT,uDAED,CAIA,2GAGC,8CAAiD,CADjD,+CAED,CAIA,2GAGC,8CAAiD,CADjD,gDAED,CAIA,6GAIC,8CAAiD,CADjD,uDAA0D,CAD1D,SAGD,CAIA,6GAIC,8CAAiD,CAFjD,QAAS,CACT,sDAED,CAIA,6GAGC,uDAA0D,CAD1D,SAAU,CAEV,2CACD,CAIA,6GAEC,QAAS,CACT,sDAAyD,CACzD,2CACD,CAIA,yGAGC,sDAAyD,CADzD,6CAAgD,CAEhD,OACD,CAIA,yGAEC,4CAA+C,CAC/C,sDAAyD,CACzD,OACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n:root {\\n\\t/* Make sure the balloon arrow does not float over its children. */\\n\\t--ck-balloon-panel-arrow-z-index: calc(var(--ck-z-default) - 3);\\n}\\n\\n.ck.ck-balloon-panel {\\n\\tdisplay: none;\\n\\tposition: absolute;\\n\\n\\tz-index: var(--ck-z-panel);\\n\\n\\t&.ck-balloon-panel_with-arrow {\\n\\t\\t&::before,\\n\\t\\t&::after {\\n\\t\\t\\tcontent: \\\"\\\";\\n\\t\\t\\tposition: absolute;\\n\\t\\t}\\n\\n\\t\\t&::before {\\n\\t\\t\\tz-index: var(--ck-balloon-panel-arrow-z-index);\\n\\t\\t}\\n\\n\\t\\t&::after {\\n\\t\\t\\tz-index: calc(var(--ck-balloon-panel-arrow-z-index) + 1);\\n\\t\\t}\\n\\t}\\n\\n\\t&[class*=\\\"arrow_n\\\"] {\\n\\t\\t&::before {\\n\\t\\t\\tz-index: var(--ck-balloon-panel-arrow-z-index);\\n\\t\\t}\\n\\n\\t\\t&::after {\\n\\t\\t\\tz-index: calc(var(--ck-balloon-panel-arrow-z-index) + 1);\\n\\t\\t}\\n\\t}\\n\\n\\t&[class*=\\\"arrow_s\\\"] {\\n\\t\\t&::before {\\n\\t\\t\\tz-index: var(--ck-balloon-panel-arrow-z-index);\\n\\t\\t}\\n\\n\\t\\t&::after {\\n\\t\\t\\tz-index: calc(var(--ck-balloon-panel-arrow-z-index) + 1);\\n\\t\\t}\\n\\t}\\n\\n\\t&.ck-balloon-panel_visible {\\n\\t\\tdisplay: block;\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n@import \\\"../../../mixins/_rounded.css\\\";\\n@import \\\"../../../mixins/_shadow.css\\\";\\n\\n:root {\\n\\t--ck-balloon-border-width: 1px;\\n\\t--ck-balloon-arrow-offset: 2px;\\n\\t--ck-balloon-arrow-height: 10px;\\n\\t--ck-balloon-arrow-half-width: 8px;\\n\\t--ck-balloon-arrow-drop-shadow: 0 2px 2px var(--ck-color-shadow-drop);\\n}\\n\\n.ck.ck-balloon-panel {\\n\\t@mixin ck-rounded-corners;\\n\\t@mixin ck-drop-shadow;\\n\\n\\tmin-height: 15px;\\n\\n\\tbackground: var(--ck-color-panel-background);\\n\\tborder: var(--ck-balloon-border-width) solid var(--ck-color-panel-border);\\n\\n\\t&.ck-balloon-panel_with-arrow {\\n\\t\\t&::before,\\n\\t\\t&::after {\\n\\t\\t\\twidth: 0;\\n\\t\\t\\theight: 0;\\n\\t\\t\\tborder-style: solid;\\n\\t\\t}\\n\\t}\\n\\n\\t&[class*=\\\"arrow_n\\\"] {\\n\\t\\t&::before,\\n\\t\\t&::after {\\n\\t\\t\\tborder-width: 0 var(--ck-balloon-arrow-half-width) var(--ck-balloon-arrow-height) var(--ck-balloon-arrow-half-width);\\n\\t\\t}\\n\\n\\t\\t&::before {\\n\\t\\t\\tborder-color: transparent transparent var(--ck-color-panel-border) transparent;\\n\\t\\t\\tmargin-top: calc( -1 * var(--ck-balloon-border-width) );\\n\\t\\t}\\n\\n\\t\\t&::after {\\n\\t\\t\\tborder-color: transparent transparent var(--ck-color-panel-background) transparent;\\n\\t\\t\\tmargin-top: calc( var(--ck-balloon-arrow-offset) - var(--ck-balloon-border-width) );\\n\\t\\t}\\n\\t}\\n\\n\\t&[class*=\\\"arrow_s\\\"] {\\n\\t\\t&::before,\\n\\t\\t&::after {\\n\\t\\t\\tborder-width: var(--ck-balloon-arrow-height) var(--ck-balloon-arrow-half-width) 0 var(--ck-balloon-arrow-half-width);\\n\\t\\t}\\n\\n\\t\\t&::before {\\n\\t\\t\\tborder-color: var(--ck-color-panel-border) transparent transparent;\\n\\t\\t\\tfilter: drop-shadow(var(--ck-balloon-arrow-drop-shadow));\\n\\t\\t\\tmargin-bottom: calc( -1 * var(--ck-balloon-border-width) );\\n\\t\\t}\\n\\n\\t\\t&::after {\\n\\t\\t\\tborder-color: var(--ck-color-panel-background) transparent transparent transparent;\\n\\t\\t\\tmargin-bottom: calc( var(--ck-balloon-arrow-offset) - var(--ck-balloon-border-width) );\\n\\t\\t}\\n\\t}\\n\\n\\t&[class*=\\\"arrow_e\\\"] {\\n\\t\\t&::before,\\n\\t\\t&::after {\\n\\t\\t\\tborder-width: var(--ck-balloon-arrow-half-width) 0 var(--ck-balloon-arrow-half-width) var(--ck-balloon-arrow-height);\\n\\t\\t}\\n\\n\\t\\t&::before {\\n\\t\\t\\tborder-color: transparent transparent transparent var(--ck-color-panel-border);\\n\\t\\t\\tmargin-right: calc( -1 * var(--ck-balloon-border-width) );\\n\\t\\t}\\n\\n\\t\\t&::after {\\n\\t\\t\\tborder-color: transparent transparent transparent var(--ck-color-panel-background);\\n\\t\\t\\tmargin-right: calc( var(--ck-balloon-arrow-offset) - var(--ck-balloon-border-width) );\\n\\t\\t}\\n\\t}\\n\\n\\t&[class*=\\\"arrow_w\\\"] {\\n\\t\\t&::before,\\n\\t\\t&::after {\\n\\t\\t\\tborder-width: var(--ck-balloon-arrow-half-width) var(--ck-balloon-arrow-height) var(--ck-balloon-arrow-half-width) 0;\\n\\t\\t}\\n\\n\\t\\t&::before {\\n\\t\\t\\tborder-color: transparent var(--ck-color-panel-border) transparent transparent;\\n\\t\\t\\tmargin-left: calc( -1 * var(--ck-balloon-border-width) );\\n\\t\\t}\\n\\n\\t\\t&::after {\\n\\t\\t\\tborder-color: transparent var(--ck-color-panel-background) transparent transparent;\\n\\t\\t\\tmargin-left: calc( var(--ck-balloon-arrow-offset) - var(--ck-balloon-border-width) );\\n\\t\\t}\\n\\t}\\n\\n\\t&.ck-balloon-panel_arrow_n {\\n\\t\\t&::before,\\n\\t\\t&::after {\\n\\t\\t\\tleft: 50%;\\n\\t\\t\\tmargin-left: calc(-1 * var(--ck-balloon-arrow-half-width));\\n\\t\\t\\ttop: calc(-1 * var(--ck-balloon-arrow-height));\\n\\t\\t}\\n\\t}\\n\\n\\t&.ck-balloon-panel_arrow_nw {\\n\\t\\t&::before,\\n\\t\\t&::after {\\n\\t\\t\\tleft: calc(2 * var(--ck-balloon-arrow-half-width));\\n\\t\\t\\ttop: calc(-1 * var(--ck-balloon-arrow-height));\\n\\t\\t}\\n\\t}\\n\\n\\t&.ck-balloon-panel_arrow_ne {\\n\\t\\t&::before,\\n\\t\\t&::after {\\n\\t\\t\\tright: calc(2 * var(--ck-balloon-arrow-half-width));\\n\\t\\t\\ttop: calc(-1 * var(--ck-balloon-arrow-height));\\n\\t\\t}\\n\\t}\\n\\n\\t&.ck-balloon-panel_arrow_s {\\n\\t\\t&::before,\\n\\t\\t&::after {\\n\\t\\t\\tleft: 50%;\\n\\t\\t\\tmargin-left: calc(-1 * var(--ck-balloon-arrow-half-width));\\n\\t\\t\\tbottom: calc(-1 * var(--ck-balloon-arrow-height));\\n\\t\\t}\\n\\t}\\n\\n\\t&.ck-balloon-panel_arrow_sw {\\n\\t\\t&::before,\\n\\t\\t&::after {\\n\\t\\t\\tleft: calc(2 * var(--ck-balloon-arrow-half-width));\\n\\t\\t\\tbottom: calc(-1 * var(--ck-balloon-arrow-height));\\n\\t\\t}\\n\\t}\\n\\n\\t&.ck-balloon-panel_arrow_se {\\n\\t\\t&::before,\\n\\t\\t&::after {\\n\\t\\t\\tright: calc(2 * var(--ck-balloon-arrow-half-width));\\n\\t\\t\\tbottom: calc(-1 * var(--ck-balloon-arrow-height));\\n\\t\\t}\\n\\t}\\n\\n\\t&.ck-balloon-panel_arrow_sme {\\n\\t\\t&::before,\\n\\t\\t&::after {\\n\\t\\t\\tright: 25%;\\n\\t\\t\\tmargin-right: calc(2 * var(--ck-balloon-arrow-half-width));\\n\\t\\t\\tbottom: calc(-1 * var(--ck-balloon-arrow-height));\\n\\t\\t}\\n\\t}\\n\\n\\t&.ck-balloon-panel_arrow_smw {\\n\\t\\t&::before,\\n\\t\\t&::after {\\n\\t\\t\\tleft: 25%;\\n\\t\\t\\tmargin-left: calc(2 * var(--ck-balloon-arrow-half-width));\\n\\t\\t\\tbottom: calc(-1 * var(--ck-balloon-arrow-height));\\n\\t\\t}\\n\\t}\\n\\n\\t&.ck-balloon-panel_arrow_nme {\\n\\t\\t&::before,\\n\\t\\t&::after {\\n\\t\\t\\tright: 25%;\\n\\t\\t\\tmargin-right: calc(2 * var(--ck-balloon-arrow-half-width));\\n\\t\\t\\ttop: calc(-1 * var(--ck-balloon-arrow-height));\\n\\t\\t}\\n\\t}\\n\\n\\t&.ck-balloon-panel_arrow_nmw {\\n\\t\\t&::before,\\n\\t\\t&::after {\\n\\t\\t\\tleft: 25%;\\n\\t\\t\\tmargin-left: calc(2 * var(--ck-balloon-arrow-half-width));\\n\\t\\t\\ttop: calc(-1 * var(--ck-balloon-arrow-height));\\n\\t\\t}\\n\\t}\\n\\n\\t&.ck-balloon-panel_arrow_e {\\n\\t\\t&::before,\\n\\t\\t&::after {\\n\\t\\t\\tright: calc(-1 * var(--ck-balloon-arrow-height));\\n\\t\\t\\tmargin-top: calc(-1 * var(--ck-balloon-arrow-half-width));\\n\\t\\t\\ttop: 50%;\\n\\t\\t}\\n\\t}\\n\\n\\t&.ck-balloon-panel_arrow_w {\\n\\t\\t&::before,\\n\\t\\t&::after {\\n\\t\\t\\tleft: calc(-1 * var(--ck-balloon-arrow-height));\\n\\t\\t\\tmargin-top: calc(-1 * var(--ck-balloon-arrow-half-width));\\n\\t\\t\\ttop: 50%;\\n\\t\\t}\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n/**\\n * Implements rounded corner interface for .ck-rounded-corners class.\\n *\\n * @see $ck-border-radius\\n */\\n@define-mixin ck-rounded-corners {\\n\\tborder-radius: 0;\\n\\n\\t@nest .ck-rounded-corners &,\\n\\t&.ck-rounded-corners {\\n\\t\\tborder-radius: var(--ck-border-radius);\\n\\t\\t@mixin-content;\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n/**\\n * A helper to combine multiple shadows.\\n */\\n@define-mixin ck-box-shadow $shadowA, $shadowB: 0 0 {\\n\\tbox-shadow: $shadowA, $shadowB;\\n}\\n\\n/**\\n * Gives an element a drop shadow so it looks like a floating panel.\\n */\\n@define-mixin ck-drop-shadow {\\n\\t@mixin ck-box-shadow var(--ck-drop-shadow);\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck .ck-balloon-rotator__navigation{align-items:center;display:flex;justify-content:center}.ck .ck-balloon-rotator__content .ck-toolbar{justify-content:center}.ck .ck-balloon-rotator__navigation{background:var(--ck-color-toolbar-background);border-bottom:1px solid var(--ck-color-toolbar-border);padding:0 var(--ck-spacing-small)}.ck .ck-balloon-rotator__navigation>*{margin-bottom:var(--ck-spacing-small);margin-right:var(--ck-spacing-small);margin-top:var(--ck-spacing-small)}.ck .ck-balloon-rotator__navigation .ck-balloon-rotator__counter{margin-left:var(--ck-spacing-small);margin-right:var(--ck-spacing-standard)}.ck .ck-balloon-rotator__content .ck.ck-annotation-wrapper{box-shadow:none}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../ckeditor5-ui/theme/components/panel/balloonrotator.css\",\"webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/panel/balloonrotator.css\"],\"names\":[],\"mappings\":\"AAKA,oCAEC,kBAAmB,CADnB,YAAa,CAEb,sBACD,CAKA,6CACC,sBACD,CCXA,oCACC,6CAA8C,CAC9C,sDAAuD,CACvD,iCAgBD,CAbC,sCAGC,qCAAsC,CAFtC,oCAAqC,CACrC,kCAED,CAGA,iEAIC,mCAAoC,CAHpC,uCAID,CAMA,2DACC,eACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.ck .ck-balloon-rotator__navigation {\\n\\tdisplay: flex;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\\n/* Buttons inside a toolbar should be centered when rotator bar is wider.\\n * See: https://github.com/ckeditor/ckeditor5-ui/issues/495\\n */\\n.ck .ck-balloon-rotator__content .ck-toolbar {\\n\\tjustify-content: center;\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.ck .ck-balloon-rotator__navigation {\\n\\tbackground: var(--ck-color-toolbar-background);\\n\\tborder-bottom: 1px solid var(--ck-color-toolbar-border);\\n\\tpadding: 0 var(--ck-spacing-small);\\n\\n\\t/* Let's keep similar appearance to `ck-toolbar`. */\\n\\t& > * {\\n\\t\\tmargin-right: var(--ck-spacing-small);\\n\\t\\tmargin-top: var(--ck-spacing-small);\\n\\t\\tmargin-bottom: var(--ck-spacing-small);\\n\\t}\\n\\n\\t/* Gives counter more breath than buttons. */\\n\\t& .ck-balloon-rotator__counter {\\n\\t\\tmargin-right: var(--ck-spacing-standard);\\n\\n\\t\\t/* We need to use smaller margin because of previous button's right margin. */\\n\\t\\tmargin-left: var(--ck-spacing-small);\\n\\t}\\n}\\n\\n.ck .ck-balloon-rotator__content {\\n\\n\\t/* Disable default annotation shadow inside rotator with fake panels. */\\n\\t& .ck.ck-annotation-wrapper {\\n\\t\\tbox-shadow: none;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck .ck-fake-panel{position:absolute;z-index:calc(var(--ck-z-panel) - 1)}.ck .ck-fake-panel div{position:absolute}.ck .ck-fake-panel div:first-child{z-index:2}.ck .ck-fake-panel div:nth-child(2){z-index:1}:root{--ck-balloon-fake-panel-offset-horizontal:6px;--ck-balloon-fake-panel-offset-vertical:6px}.ck .ck-fake-panel div{background:var(--ck-color-panel-background);border:1px solid var(--ck-color-panel-border);border-radius:var(--ck-border-radius);box-shadow:var(--ck-drop-shadow),0 0;height:100%;min-height:15px;width:100%}.ck .ck-fake-panel div:first-child{margin-left:var(--ck-balloon-fake-panel-offset-horizontal);margin-top:var(--ck-balloon-fake-panel-offset-vertical)}.ck .ck-fake-panel div:nth-child(2){margin-left:calc(var(--ck-balloon-fake-panel-offset-horizontal)*2);margin-top:calc(var(--ck-balloon-fake-panel-offset-vertical)*2)}.ck .ck-fake-panel div:nth-child(3){margin-left:calc(var(--ck-balloon-fake-panel-offset-horizontal)*3);margin-top:calc(var(--ck-balloon-fake-panel-offset-vertical)*3)}.ck .ck-balloon-panel_arrow_s+.ck-fake-panel,.ck .ck-balloon-panel_arrow_se+.ck-fake-panel,.ck .ck-balloon-panel_arrow_sw+.ck-fake-panel{--ck-balloon-fake-panel-offset-vertical:-6px}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../ckeditor5-ui/theme/components/panel/fakepanel.css\",\"webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/panel/fakepanel.css\",\"webpack://./../ckeditor5-theme-lark/theme/mixins/_shadow.css\"],\"names\":[],\"mappings\":\"AAKA,mBACC,iBAAkB,CAGlB,mCACD,CAEA,uBACC,iBACD,CAEA,mCACC,SACD,CAEA,oCACC,SACD,CCfA,MACC,6CAA8C,CAC9C,2CACD,CAGA,uBAKC,2CAA4C,CAC5C,6CAA8C,CAC9C,qCAAsC,CCXtC,oCAA8B,CDc9B,WAAY,CAPZ,eAAgB,CAMhB,UAED,CAEA,mCACC,0DAA2D,CAC3D,uDACD,CAEA,oCACC,kEAAqE,CACrE,+DACD,CACA,oCACC,kEAAqE,CACrE,+DACD,CAGA,yIAGC,4CACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.ck .ck-fake-panel {\\n\\tposition: absolute;\\n\\n\\t/* Fake panels should be placed under main balloon content. */\\n\\tz-index: calc(var(--ck-z-panel) - 1);\\n}\\n\\n.ck .ck-fake-panel div {\\n\\tposition: absolute;\\n}\\n\\n.ck .ck-fake-panel div:nth-child( 1 ) {\\n\\tz-index: 2;\\n}\\n\\n.ck .ck-fake-panel div:nth-child( 2 ) {\\n\\tz-index: 1;\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n@import \\\"../../../mixins/_shadow.css\\\";\\n\\n:root {\\n\\t--ck-balloon-fake-panel-offset-horizontal: 6px;\\n\\t--ck-balloon-fake-panel-offset-vertical: 6px;\\n}\\n\\n/* Let's use `.ck-balloon-panel` appearance. See: balloonpanel.css. */\\n.ck .ck-fake-panel div {\\n\\t@mixin ck-drop-shadow;\\n\\n\\tmin-height: 15px;\\n\\n\\tbackground: var(--ck-color-panel-background);\\n\\tborder: 1px solid var(--ck-color-panel-border);\\n\\tborder-radius: var(--ck-border-radius);\\n\\n\\twidth: 100%;\\n\\theight: 100%;\\n}\\n\\n.ck .ck-fake-panel div:nth-child( 1 ) {\\n\\tmargin-left: var(--ck-balloon-fake-panel-offset-horizontal);\\n\\tmargin-top: var(--ck-balloon-fake-panel-offset-vertical);\\n}\\n\\n.ck .ck-fake-panel div:nth-child( 2 ) {\\n\\tmargin-left: calc(var(--ck-balloon-fake-panel-offset-horizontal) * 2);\\n\\tmargin-top: calc(var(--ck-balloon-fake-panel-offset-vertical) * 2);\\n}\\n.ck .ck-fake-panel div:nth-child( 3 ) {\\n\\tmargin-left: calc(var(--ck-balloon-fake-panel-offset-horizontal) * 3);\\n\\tmargin-top: calc(var(--ck-balloon-fake-panel-offset-vertical) * 3);\\n}\\n\\n/* If balloon is positioned above element, we need to move fake panel to the top. */\\n.ck .ck-balloon-panel_arrow_s + .ck-fake-panel,\\n.ck .ck-balloon-panel_arrow_se + .ck-fake-panel,\\n.ck .ck-balloon-panel_arrow_sw + .ck-fake-panel {\\n\\t--ck-balloon-fake-panel-offset-vertical: -6px;\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n/**\\n * A helper to combine multiple shadows.\\n */\\n@define-mixin ck-box-shadow $shadowA, $shadowB: 0 0 {\\n\\tbox-shadow: $shadowA, $shadowB;\\n}\\n\\n/**\\n * Gives an element a drop shadow so it looks like a floating panel.\\n */\\n@define-mixin ck-drop-shadow {\\n\\t@mixin ck-box-shadow var(--ck-drop-shadow);\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck.ck-sticky-panel .ck-sticky-panel__content_sticky{position:fixed;top:0;z-index:var(--ck-z-panel)}.ck.ck-sticky-panel .ck-sticky-panel__content_sticky_bottom-limit{position:absolute;top:auto}.ck.ck-sticky-panel .ck-sticky-panel__content_sticky{border-top-left-radius:0;border-top-right-radius:0;border-width:0 1px 1px;box-shadow:var(--ck-drop-shadow),0 0}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../ckeditor5-ui/theme/components/panel/stickypanel.css\",\"webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/panel/stickypanel.css\",\"webpack://./../ckeditor5-theme-lark/theme/mixins/_shadow.css\"],\"names\":[],\"mappings\":\"AAMC,qDAEC,cAAe,CACf,KAAM,CAFN,yBAGD,CAEA,kEAEC,iBAAkB,CADlB,QAED,CCPA,qDAIC,wBAAyB,CACzB,yBAA0B,CAF1B,sBAAuB,CCFxB,oCDKA\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.ck.ck-sticky-panel {\\n\\t& .ck-sticky-panel__content_sticky {\\n\\t\\tz-index: var(--ck-z-panel); /* #315 */\\n\\t\\tposition: fixed;\\n\\t\\ttop: 0;\\n\\t}\\n\\n\\t& .ck-sticky-panel__content_sticky_bottom-limit {\\n\\t\\ttop: auto;\\n\\t\\tposition: absolute;\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n@import \\\"../../../mixins/_shadow.css\\\";\\n\\n.ck.ck-sticky-panel {\\n\\t& .ck-sticky-panel__content_sticky {\\n\\t\\t@mixin ck-drop-shadow;\\n\\n\\t\\tborder-width: 0 1px 1px;\\n\\t\\tborder-top-left-radius: 0;\\n\\t\\tborder-top-right-radius: 0;\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n/**\\n * A helper to combine multiple shadows.\\n */\\n@define-mixin ck-box-shadow $shadowA, $shadowB: 0 0 {\\n\\tbox-shadow: $shadowA, $shadowB;\\n}\\n\\n/**\\n * Gives an element a drop shadow so it looks like a floating panel.\\n */\\n@define-mixin ck-drop-shadow {\\n\\t@mixin ck-box-shadow var(--ck-drop-shadow);\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck-vertical-form .ck-button:after{bottom:-1px;content:\\\"\\\";position:absolute;right:-1px;top:-1px;width:0;z-index:1}.ck-vertical-form .ck-button:focus:after{display:none}@media screen and (max-width:600px){.ck.ck-responsive-form .ck-button:after{bottom:-1px;content:\\\"\\\";position:absolute;right:-1px;top:-1px;width:0;z-index:1}.ck.ck-responsive-form .ck-button:focus:after{display:none}}.ck-vertical-form>.ck-button:nth-last-child(2):after{border-right:1px solid var(--ck-color-base-border)}.ck.ck-responsive-form{padding:var(--ck-spacing-large)}.ck.ck-responsive-form:focus{outline:none}[dir=ltr] .ck.ck-responsive-form>:not(:first-child),[dir=rtl] .ck.ck-responsive-form>:not(:last-child){margin-left:var(--ck-spacing-standard)}@media screen and (max-width:600px){.ck.ck-responsive-form{padding:0;width:calc(var(--ck-input-width)*.8)}.ck.ck-responsive-form .ck-labeled-field-view{margin:var(--ck-spacing-large) var(--ck-spacing-large) 0}.ck.ck-responsive-form .ck-labeled-field-view .ck-input-number,.ck.ck-responsive-form .ck-labeled-field-view .ck-input-text{min-width:0;width:100%}.ck.ck-responsive-form .ck-labeled-field-view .ck-labeled-field-view__error{white-space:normal}.ck.ck-responsive-form>.ck-button:nth-last-child(2):after{border-right:1px solid var(--ck-color-base-border)}.ck.ck-responsive-form>.ck-button:last-child,.ck.ck-responsive-form>.ck-button:nth-last-child(2){border-radius:0;margin-top:var(--ck-spacing-large);padding:var(--ck-spacing-standard)}.ck.ck-responsive-form>.ck-button:last-child:not(:focus),.ck.ck-responsive-form>.ck-button:nth-last-child(2):not(:focus){border-top:1px solid var(--ck-color-base-border)}[dir=ltr] .ck.ck-responsive-form>.ck-button:last-child,[dir=ltr] .ck.ck-responsive-form>.ck-button:nth-last-child(2),[dir=rtl] .ck.ck-responsive-form>.ck-button:last-child,[dir=rtl] .ck.ck-responsive-form>.ck-button:nth-last-child(2){margin-left:0}[dir=rtl] .ck.ck-responsive-form>.ck-button:last-child:last-of-type,[dir=rtl] .ck.ck-responsive-form>.ck-button:nth-last-child(2):last-of-type{border-right:1px solid var(--ck-color-base-border)}}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../ckeditor5-ui/theme/components/responsive-form/responsiveform.css\",\"webpack://./../ckeditor5-ui/theme/mixins/_rwd.css\",\"webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/responsive-form/responsiveform.css\"],\"names\":[],\"mappings\":\"AAQC,mCAMC,WAAY,CALZ,UAAW,CAEX,iBAAkB,CAClB,UAAW,CACX,QAAS,CAHT,OAAQ,CAKR,SACD,CAEA,yCACC,YACD,CCdA,oCDoBE,wCAMC,WAAY,CALZ,UAAW,CAEX,iBAAkB,CAClB,UAAW,CACX,QAAS,CAHT,OAAQ,CAKR,SACD,CAEA,8CACC,YACD,CC9BF,CCAD,qDACC,kDACD,CAEA,uBACC,+BAoED,CAlEC,6BAEC,YACD,CASC,uGACC,sCACD,CDvBD,oCCMD,uBAqBE,SAAU,CACV,oCA+CF,CA7CE,8CACC,wDAYD,CAVC,4HAEC,WAAY,CACZ,UACD,CAGA,4EACC,kBACD,CAKA,0DACC,kDACD,CAGD,iGAIC,eAAgB,CADhB,kCAAmC,CADnC,kCAmBD,CAfC,yHACC,gDACD,CARD,0OAeE,aAMF,CAJE,+IACC,kDACD,CDrEH\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n@import \\\"@ckeditor/ckeditor5-ui/theme/mixins/_rwd.css\\\";\\n\\n.ck-vertical-form .ck-button {\\n\\t&::after {\\n\\t\\tcontent: \\\"\\\";\\n\\t\\twidth: 0;\\n\\t\\tposition: absolute;\\n\\t\\tright: -1px;\\n\\t\\ttop: -1px;\\n\\t\\tbottom: -1px;\\n\\t\\tz-index: 1;\\n\\t}\\n\\n\\t&:focus::after {\\n\\t\\tdisplay: none;\\n\\t}\\n}\\n\\n.ck.ck-responsive-form {\\n\\t@mixin ck-media-phone {\\n\\t\\t& .ck-button {\\n\\t\\t\\t&::after {\\n\\t\\t\\t\\tcontent: \\\"\\\";\\n\\t\\t\\t\\twidth: 0;\\n\\t\\t\\t\\tposition: absolute;\\n\\t\\t\\t\\tright: -1px;\\n\\t\\t\\t\\ttop: -1px;\\n\\t\\t\\t\\tbottom: -1px;\\n\\t\\t\\t\\tz-index: 1;\\n\\t\\t\\t}\\n\\n\\t\\t\\t&:focus::after {\\n\\t\\t\\t\\tdisplay: none;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n@define-mixin ck-media-phone {\\n\\t@media screen and (max-width: 600px) {\\n\\t\\t@mixin-content;\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n@import \\\"@ckeditor/ckeditor5-ui/theme/mixins/_rwd.css\\\";\\n@import \\\"@ckeditor/ckeditor5-ui/theme/mixins/_dir.css\\\";\\n\\n.ck-vertical-form > .ck-button:nth-last-child(2)::after {\\n\\tborder-right: 1px solid var(--ck-color-base-border);\\n}\\n\\n.ck.ck-responsive-form {\\n\\tpadding: var(--ck-spacing-large);\\n\\n\\t&:focus {\\n\\t\\t/* See: https://github.com/ckeditor/ckeditor5/issues/4773 */\\n\\t\\toutline: none;\\n\\t}\\n\\n\\t@mixin ck-dir ltr {\\n\\t\\t& > :not(:first-child) {\\n\\t\\t\\tmargin-left: var(--ck-spacing-standard);\\n\\t\\t}\\n\\t}\\n\\n\\t@mixin ck-dir rtl {\\n\\t\\t& > :not(:last-child) {\\n\\t\\t\\tmargin-left: var(--ck-spacing-standard);\\n\\t\\t}\\n\\t}\\n\\n\\t@mixin ck-media-phone {\\n\\t\\tpadding: 0;\\n\\t\\twidth: calc(.8 * var(--ck-input-width));\\n\\n\\t\\t& .ck-labeled-field-view {\\n\\t\\t\\tmargin: var(--ck-spacing-large) var(--ck-spacing-large) 0;\\n\\n\\t\\t\\t& .ck-input-text,\\n\\t\\t\\t& .ck-input-number {\\n\\t\\t\\t\\tmin-width: 0;\\n\\t\\t\\t\\twidth: 100%;\\n\\t\\t\\t}\\n\\n\\t\\t\\t/* Let the long error messages wrap in the narrow form. */\\n\\t\\t\\t& .ck-labeled-field-view__error {\\n\\t\\t\\t\\twhite-space: normal;\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t/* Styles for two last buttons in the form (save&cancel, edit&unlink, etc.). */\\n\\t\\t& > .ck-button:nth-last-child(2) {\\n\\t\\t\\t&::after {\\n\\t\\t\\t\\tborder-right: 1px solid var(--ck-color-base-border);\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t& > .ck-button:nth-last-child(1),\\n\\t\\t& > .ck-button:nth-last-child(2) {\\n\\t\\t\\tpadding: var(--ck-spacing-standard);\\n\\t\\t\\tmargin-top: var(--ck-spacing-large);\\n\\t\\t\\tborder-radius: 0;\\n\\n\\t\\t\\t&:not(:focus) {\\n\\t\\t\\t\\tborder-top: 1px solid var(--ck-color-base-border);\\n\\t\\t\\t}\\n\\n\\t\\t\\t@mixin ck-dir ltr {\\n\\t\\t\\t\\tmargin-left: 0;\\n\\t\\t\\t}\\n\\n\\t\\t\\t@mixin ck-dir rtl {\\n\\t\\t\\t\\tmargin-left: 0;\\n\\n\\t\\t\\t\\t&:last-of-type {\\n\\t\\t\\t\\t\\tborder-right: 1px solid var(--ck-color-base-border);\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck.ck-search>.ck-labeled-field-view>.ck-labeled-field-view__input-wrapper>.ck-icon{position:absolute;top:50%;transform:translateY(-50%)}[dir=ltr] .ck.ck-search>.ck-labeled-field-view>.ck-labeled-field-view__input-wrapper>.ck-icon{left:var(--ck-spacing-medium)}[dir=rtl] .ck.ck-search>.ck-labeled-field-view>.ck-labeled-field-view__input-wrapper>.ck-icon{right:var(--ck-spacing-medium)}.ck.ck-search>.ck-labeled-field-view .ck-search__reset{position:absolute;top:50%;transform:translateY(-50%)}.ck.ck-search>.ck-search__results>.ck-search__info>span:first-child{display:block}.ck.ck-search>.ck-search__results>.ck-search__info:not(.ck-hidden)~*{display:none}:root{--ck-search-field-view-horizontal-spacing:calc(var(--ck-icon-size) + var(--ck-spacing-medium))}.ck.ck-search>.ck-labeled-field-view .ck-input{width:100%}.ck.ck-search>.ck-labeled-field-view.ck-search__query_with-icon{--ck-labeled-field-label-default-position-x:var(--ck-search-field-view-horizontal-spacing)}.ck.ck-search>.ck-labeled-field-view.ck-search__query_with-icon>.ck-labeled-field-view__input-wrapper>.ck-icon{opacity:.5;pointer-events:none}.ck.ck-search>.ck-labeled-field-view.ck-search__query_with-icon .ck-input{width:100%}[dir=ltr] .ck.ck-search>.ck-labeled-field-view.ck-search__query_with-icon .ck-input,[dir=rtl] .ck.ck-search>.ck-labeled-field-view.ck-search__query_with-icon .ck-input:not(.ck-input-text_empty){padding-left:var(--ck-search-field-view-horizontal-spacing)}.ck.ck-search>.ck-labeled-field-view.ck-search__query_with-reset{--ck-labeled-field-empty-unfocused-max-width:100% - 2 * var(--ck-search-field-view-horizontal-spacing)}.ck.ck-search>.ck-labeled-field-view.ck-search__query_with-reset.ck-labeled-field-view_empty{--ck-labeled-field-empty-unfocused-max-width:100% - var(--ck-search-field-view-horizontal-spacing) - var(--ck-spacing-medium)}.ck.ck-search>.ck-labeled-field-view.ck-search__query_with-reset .ck-search__reset{background:none;min-height:auto;min-width:auto;opacity:.5;padding:0}[dir=ltr] .ck.ck-search>.ck-labeled-field-view.ck-search__query_with-reset .ck-search__reset{right:var(--ck-spacing-medium)}[dir=rtl] .ck.ck-search>.ck-labeled-field-view.ck-search__query_with-reset .ck-search__reset{left:var(--ck-spacing-medium)}.ck.ck-search>.ck-labeled-field-view.ck-search__query_with-reset .ck-search__reset:hover{opacity:1}.ck.ck-search>.ck-labeled-field-view.ck-search__query_with-reset .ck-input{width:100%}[dir=ltr] .ck.ck-search>.ck-labeled-field-view.ck-search__query_with-reset .ck-input:not(.ck-input-text_empty),[dir=rtl] .ck.ck-search>.ck-labeled-field-view.ck-search__query_with-reset .ck-input{padding-right:var(--ck-search-field-view-horizontal-spacing)}.ck.ck-search>.ck-search__results{min-width:100%}.ck.ck-search>.ck-search__results>.ck-search__info{padding:var(--ck-spacing-medium) var(--ck-spacing-large);width:100%}.ck.ck-search>.ck-search__results>.ck-search__info *{white-space:normal}.ck.ck-search>.ck-search__results>.ck-search__info>span:first-child{font-weight:700}.ck.ck-search>.ck-search__results>.ck-search__info>span:last-child{margin-top:var(--ck-spacing-medium)}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../ckeditor5-ui/theme/components/search/search.css\",\"webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/search/search.css\"],\"names\":[],\"mappings\":\"AASE,oFACC,iBAAkB,CAClB,OAAQ,CACR,0BASD,CAZA,8FAME,6BAMF,CAZA,8FAUE,8BAEF,CAEA,uDACC,iBAAkB,CAClB,OAAQ,CACR,0BACD,CAKC,oEACC,aACD,CAGA,qEACC,YACD,CChCH,MACC,8FACD,CAIE,+CACC,UACD,CAEA,gEACC,0FAoBD,CAlBC,+GACC,UAAW,CACX,mBACD,CAEA,0EACC,UAWD,CAJE,kMACC,2DACD,CAKH,iEACC,sGAwCD,CAtCC,6FACC,6HACD,CAEA,mFAIC,eAAgB,CAFhB,eAAgB,CADhB,cAAe,CAIf,UAAW,CACX,SAaD,CAnBA,6FASE,8BAUF,CAnBA,6FAaE,6BAMF,CAHC,yFACC,SACD,CAGD,2EACC,UAWD,CAZA,oMAUE,4DAEF,CAIF,kCACC,cAkBD,CAhBC,mDAEC,wDAAyD,CADzD,UAcD,CAXC,qDACC,kBACD,CAEA,oEACC,eACD,CAEA,mEACC,mCACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n@import \\\"@ckeditor/ckeditor5-ui/theme/mixins/_dir.css\\\";\\n\\n.ck.ck-search {\\n\\t& > .ck-labeled-field-view {\\n\\t\\t& > .ck-labeled-field-view__input-wrapper > .ck-icon {\\n\\t\\t\\tposition: absolute;\\n\\t\\t\\ttop: 50%;\\n\\t\\t\\ttransform: translateY(-50%);\\n\\n\\t\\t\\t@mixin ck-dir ltr {\\n\\t\\t\\t\\tleft: var(--ck-spacing-medium);\\n\\t\\t\\t}\\n\\n\\t\\t\\t@mixin ck-dir rtl {\\n\\t\\t\\t\\tright: var(--ck-spacing-medium);\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t& .ck-search__reset {\\n\\t\\t\\tposition: absolute;\\n\\t\\t\\ttop: 50%;\\n\\t\\t\\ttransform: translateY(-50%);\\n\\t\\t}\\n\\t}\\n\\n\\t& > .ck-search__results {\\n\\t\\t& > .ck-search__info {\\n\\t\\t\\t& > span:first-child {\\n\\t\\t\\t\\tdisplay: block;\\n\\t\\t\\t}\\n\\n\\t\\t\\t/* Hide the filtered view when nothing was found */\\n\\t\\t\\t&:not(.ck-hidden) ~ * {\\n\\t\\t\\t\\tdisplay: none;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n@import \\\"@ckeditor/ckeditor5-ui/theme/mixins/_dir.css\\\";\\n\\n:root {\\n\\t--ck-search-field-view-horizontal-spacing: calc(var(--ck-icon-size) + var(--ck-spacing-medium));\\n}\\n\\n.ck.ck-search {\\n\\t& > .ck-labeled-field-view {\\n\\t\\t& .ck-input {\\n\\t\\t\\twidth: 100%;\\n\\t\\t}\\n\\n\\t\\t&.ck-search__query_with-icon {\\n\\t\\t\\t--ck-labeled-field-label-default-position-x: var(--ck-search-field-view-horizontal-spacing);\\n\\n\\t\\t\\t& > .ck-labeled-field-view__input-wrapper > .ck-icon {\\n\\t\\t\\t\\topacity: .5;\\n\\t\\t\\t\\tpointer-events: none;\\n\\t\\t\\t}\\n\\n\\t\\t\\t& .ck-input {\\n\\t\\t\\t\\twidth: 100%;\\n\\n\\t\\t\\t\\t@mixin ck-dir ltr {\\n\\t\\t\\t\\t\\tpadding-left: var(--ck-search-field-view-horizontal-spacing);\\n\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\t@mixin ck-dir rtl {\\n\\t\\t\\t\\t\\t&:not(.ck-input-text_empty) {\\n\\t\\t\\t\\t\\t\\tpadding-left: var(--ck-search-field-view-horizontal-spacing);\\n\\t\\t\\t\\t\\t}\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t&.ck-search__query_with-reset {\\n\\t\\t\\t--ck-labeled-field-empty-unfocused-max-width: 100% - 2 * var(--ck-search-field-view-horizontal-spacing);\\n\\n\\t\\t\\t&.ck-labeled-field-view_empty {\\n\\t\\t\\t\\t--ck-labeled-field-empty-unfocused-max-width: 100% - var(--ck-search-field-view-horizontal-spacing) - var(--ck-spacing-medium);\\n\\t\\t\\t}\\n\\n\\t\\t\\t& .ck-search__reset {\\n\\t\\t\\t\\tmin-width: auto;\\n\\t\\t\\t\\tmin-height: auto;\\n\\n\\t\\t\\t\\tbackground: none;\\n\\t\\t\\t\\topacity: .5;\\n\\t\\t\\t\\tpadding: 0;\\n\\n\\t\\t\\t\\t@mixin ck-dir ltr {\\n\\t\\t\\t\\t\\tright: var(--ck-spacing-medium);\\n\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\t@mixin ck-dir rtl {\\n\\t\\t\\t\\t\\tleft: var(--ck-spacing-medium);\\n\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\t&:hover {\\n\\t\\t\\t\\t\\topacity: 1;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\n\\t\\t\\t& .ck-input {\\n\\t\\t\\t\\twidth: 100%;\\n\\n\\t\\t\\t\\t@mixin ck-dir ltr {\\n\\t\\t\\t\\t\\t&:not(.ck-input-text_empty) {\\n\\t\\t\\t\\t\\t\\tpadding-right: var(--ck-search-field-view-horizontal-spacing);\\n\\t\\t\\t\\t\\t}\\n\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\t@mixin ck-dir rtl {\\n\\t\\t\\t\\t\\tpadding-right: var(--ck-search-field-view-horizontal-spacing);\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t& > .ck-search__results {\\n\\t\\tmin-width: 100%;\\n\\n\\t\\t& > .ck-search__info {\\n\\t\\t\\twidth: 100%;\\n\\t\\t\\tpadding: var(--ck-spacing-medium) var(--ck-spacing-large);\\n\\n\\t\\t\\t& * {\\n\\t\\t\\t\\twhite-space: normal;\\n\\t\\t\\t}\\n\\n\\t\\t\\t& > span:first-child {\\n\\t\\t\\t\\tfont-weight: bold;\\n\\t\\t\\t}\\n\\n\\t\\t\\t& > span:last-child {\\n\\t\\t\\t\\tmargin-top: var(--ck-spacing-medium);\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck.ck-spinner-container{display:block;position:relative}.ck.ck-spinner{left:0;margin:0 auto;position:absolute;right:0;top:50%;transform:translateY(-50%);z-index:1}:root{--ck-toolbar-spinner-size:18px}.ck.ck-spinner-container{animation:rotate 1.5s linear infinite;height:var(--ck-toolbar-spinner-size);width:var(--ck-toolbar-spinner-size)}@media (prefers-reduced-motion:reduce){.ck.ck-spinner-container{animation-duration:3s}}.ck.ck-spinner{border:2px solid var(--ck-color-text);border-radius:50%;border-top:2px solid transparent;height:var(--ck-toolbar-spinner-size);width:var(--ck-toolbar-spinner-size)}@keyframes rotate{to{transform:rotate(1turn)}}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../ckeditor5-ui/theme/components/spinner/spinner.css\",\"webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/spinner/spinner.css\"],\"names\":[],\"mappings\":\"AASA,yBACC,aAAc,CACd,iBACD,CAEA,eAGC,MAAO,CAEP,aAAc,CAJd,iBAAkB,CAGlB,OAAQ,CAFR,OAAQ,CAIR,0BAA2B,CAC3B,SACD,CCjBA,MACC,8BACD,CAEA,yBAGC,qCAAsC,CADtC,qCAAsC,CADtC,oCAOD,CAHC,uCALD,yBAME,qBAEF,CADC,CAGD,eAKC,qCAA6B,CAF7B,iBAAkB,CAElB,gCAA6B,CAH7B,qCAAsC,CADtC,oCAKD,CAEA,kBACC,GACC,uBACD,CACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n:root {\\n\\t--ck-toolbar-spinner-size: 18px;\\n}\\n\\n.ck.ck-spinner-container {\\n\\tdisplay: block;\\n\\tposition: relative;\\n}\\n\\n.ck.ck-spinner {\\n\\tposition: absolute;\\n\\ttop: 50%;\\n\\tleft: 0;\\n\\tright: 0;\\n\\tmargin: 0 auto;\\n\\ttransform: translateY(-50%);\\n\\tz-index: 1;\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n:root {\\n\\t--ck-toolbar-spinner-size: 18px;\\n}\\n\\n.ck.ck-spinner-container {\\n\\twidth: var(--ck-toolbar-spinner-size);\\n\\theight: var(--ck-toolbar-spinner-size);\\n\\tanimation: 1.5s infinite rotate linear;\\n\\n\\t@media (prefers-reduced-motion: reduce) {\\n\\t\\tanimation-duration: 3s;\\n\\t}\\n}\\n\\n.ck.ck-spinner {\\n\\twidth: var(--ck-toolbar-spinner-size);\\n\\theight: var(--ck-toolbar-spinner-size);\\n\\tborder-radius: 50%;\\n\\tborder: 2px solid var(--ck-color-text);\\n\\tborder-top-color: transparent;\\n}\\n\\n@keyframes rotate {\\n\\tto {\\n\\t\\ttransform: rotate(360deg)\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck-textarea{overflow-x:hidden}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/textarea/textarea.css\"],\"names\":[],\"mappings\":\"AASA,aACC,iBACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n/*\\n * This fixes a problem in Firefox when the initial height of the complement does not match the number of rows.\\n * This bug is especially visible when rows=1.\\n */\\n.ck-textarea {\\n\\toverflow-x: hidden\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck.ck-block-toolbar-button{position:absolute;z-index:var(--ck-z-default)}:root{--ck-color-block-toolbar-button:var(--ck-color-text);--ck-block-toolbar-button-size:var(--ck-font-size-normal)}.ck.ck-block-toolbar-button{color:var(--ck-color-block-toolbar-button);font-size:var(--ck-block-toolbar-size)}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../ckeditor5-ui/theme/components/toolbar/blocktoolbar.css\",\"webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/toolbar/blocktoolbar.css\"],\"names\":[],\"mappings\":\"AAKA,4BACC,iBAAkB,CAClB,2BACD,CCHA,MACC,oDAAqD,CACrD,yDACD,CAEA,4BACC,0CAA2C,CAC3C,sCACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.ck.ck-block-toolbar-button {\\n\\tposition: absolute;\\n\\tz-index: var(--ck-z-default);\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n:root {\\n\\t--ck-color-block-toolbar-button: var(--ck-color-text);\\n\\t--ck-block-toolbar-button-size: var(--ck-font-size-normal);\\n}\\n\\n.ck.ck-block-toolbar-button {\\n\\tcolor: var(--ck-color-block-toolbar-button);\\n\\tfont-size: var(--ck-block-toolbar-size);\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck.ck-toolbar{align-items:center;display:flex;flex-flow:row nowrap;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none}.ck.ck-toolbar>.ck-toolbar__items{align-items:center;display:flex;flex-flow:row wrap;flex-grow:1}.ck.ck-toolbar .ck.ck-toolbar__separator{display:inline-block}.ck.ck-toolbar .ck.ck-toolbar__separator:first-child,.ck.ck-toolbar .ck.ck-toolbar__separator:last-child{display:none}.ck.ck-toolbar .ck-toolbar__line-break{flex-basis:100%}.ck.ck-toolbar.ck-toolbar_grouping>.ck-toolbar__items{flex-wrap:nowrap}.ck.ck-toolbar.ck-toolbar_vertical>.ck-toolbar__items{flex-direction:column}.ck.ck-toolbar.ck-toolbar_floating>.ck-toolbar__items{flex-wrap:nowrap}.ck.ck-toolbar>.ck.ck-toolbar__grouped-dropdown>.ck-dropdown__button .ck-dropdown__arrow{display:none}.ck.ck-toolbar{border-radius:0}.ck-rounded-corners .ck.ck-toolbar,.ck.ck-toolbar.ck-rounded-corners{border-radius:var(--ck-border-radius)}.ck.ck-toolbar{background:var(--ck-color-toolbar-background);border:1px solid var(--ck-color-toolbar-border);padding:0 var(--ck-spacing-small)}.ck.ck-toolbar .ck.ck-toolbar__separator{align-self:stretch;background:var(--ck-color-toolbar-border);margin-bottom:var(--ck-spacing-small);margin-top:var(--ck-spacing-small);min-width:1px;width:1px}.ck.ck-toolbar .ck-toolbar__line-break{height:0}.ck.ck-toolbar>.ck-toolbar__items>:not(.ck-toolbar__line-break){margin-right:var(--ck-spacing-small)}.ck.ck-toolbar>.ck-toolbar__items:empty+.ck.ck-toolbar__separator{display:none}.ck.ck-toolbar>.ck-toolbar__items>:not(.ck-toolbar__line-break),.ck.ck-toolbar>.ck.ck-toolbar__grouped-dropdown{margin-bottom:var(--ck-spacing-small);margin-top:var(--ck-spacing-small)}.ck.ck-toolbar.ck-toolbar_vertical{padding:0}.ck.ck-toolbar.ck-toolbar_vertical>.ck-toolbar__items>.ck{border-radius:0;margin:0;width:100%}.ck.ck-toolbar.ck-toolbar_compact{padding:0}.ck.ck-toolbar.ck-toolbar_compact>.ck-toolbar__items>*{margin:0}.ck.ck-toolbar.ck-toolbar_compact>.ck-toolbar__items>:not(:first-child):not(:last-child){border-radius:0}.ck.ck-toolbar>.ck.ck-toolbar__grouped-dropdown>.ck.ck-button.ck-dropdown__button{padding-left:var(--ck-spacing-tiny)}.ck.ck-toolbar .ck-toolbar__nested-toolbar-dropdown>.ck-dropdown__panel{min-width:auto}.ck.ck-toolbar .ck-toolbar__nested-toolbar-dropdown>.ck-button>.ck-button__label{max-width:7em;width:auto}.ck.ck-toolbar:focus{outline:none}.ck-toolbar-container .ck.ck-toolbar{border:0}.ck.ck-toolbar[dir=rtl]>.ck-toolbar__items>.ck,[dir=rtl] .ck.ck-toolbar>.ck-toolbar__items>.ck{margin-right:0}.ck.ck-toolbar[dir=rtl]:not(.ck-toolbar_compact)>.ck-toolbar__items>.ck,[dir=rtl] .ck.ck-toolbar:not(.ck-toolbar_compact)>.ck-toolbar__items>.ck{margin-left:var(--ck-spacing-small)}.ck.ck-toolbar[dir=rtl]>.ck-toolbar__items>.ck:last-child,[dir=rtl] .ck.ck-toolbar>.ck-toolbar__items>.ck:last-child{margin-left:0}.ck.ck-toolbar.ck-toolbar_compact[dir=rtl]>.ck-toolbar__items>.ck:first-child,[dir=rtl] .ck.ck-toolbar.ck-toolbar_compact>.ck-toolbar__items>.ck:first-child{border-bottom-left-radius:0;border-top-left-radius:0}.ck.ck-toolbar.ck-toolbar_compact[dir=rtl]>.ck-toolbar__items>.ck:last-child,[dir=rtl] .ck.ck-toolbar.ck-toolbar_compact>.ck-toolbar__items>.ck:last-child{border-bottom-right-radius:0;border-top-right-radius:0}.ck.ck-toolbar.ck-toolbar_grouping[dir=rtl]>.ck-toolbar__items:not(:empty):not(:only-child),.ck.ck-toolbar[dir=rtl]>.ck.ck-toolbar__separator,[dir=rtl] .ck.ck-toolbar.ck-toolbar_grouping>.ck-toolbar__items:not(:empty):not(:only-child),[dir=rtl] .ck.ck-toolbar>.ck.ck-toolbar__separator{margin-left:var(--ck-spacing-small)}.ck.ck-toolbar[dir=ltr]>.ck-toolbar__items>.ck:last-child,[dir=ltr] .ck.ck-toolbar>.ck-toolbar__items>.ck:last-child{margin-right:0}.ck.ck-toolbar.ck-toolbar_compact[dir=ltr]>.ck-toolbar__items>.ck:first-child,[dir=ltr] .ck.ck-toolbar.ck-toolbar_compact>.ck-toolbar__items>.ck:first-child{border-bottom-right-radius:0;border-top-right-radius:0}.ck.ck-toolbar.ck-toolbar_compact[dir=ltr]>.ck-toolbar__items>.ck:last-child,[dir=ltr] .ck.ck-toolbar.ck-toolbar_compact>.ck-toolbar__items>.ck:last-child{border-bottom-left-radius:0;border-top-left-radius:0}.ck.ck-toolbar.ck-toolbar_grouping[dir=ltr]>.ck-toolbar__items:not(:empty):not(:only-child),.ck.ck-toolbar[dir=ltr]>.ck.ck-toolbar__separator,[dir=ltr] .ck.ck-toolbar.ck-toolbar_grouping>.ck-toolbar__items:not(:empty):not(:only-child),[dir=ltr] .ck.ck-toolbar>.ck.ck-toolbar__separator{margin-right:var(--ck-spacing-small)}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../ckeditor5-ui/theme/components/toolbar/toolbar.css\",\"webpack://./../ckeditor5-ui/theme/mixins/_unselectable.css\",\"webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/toolbar/toolbar.css\",\"webpack://./../ckeditor5-theme-lark/theme/mixins/_rounded.css\"],\"names\":[],\"mappings\":\"AAOA,eAKC,kBAAmB,CAFnB,YAAa,CACb,oBAAqB,CCFrB,qBAAsB,CACtB,wBAAyB,CACzB,oBAAqB,CACrB,gBD6CD,CA3CC,kCAGC,kBAAmB,CAFnB,YAAa,CACb,kBAAmB,CAEnB,WAED,CAEA,yCACC,oBAWD,CAJC,yGAEC,YACD,CAGD,uCACC,eACD,CAEA,sDACC,gBACD,CAEA,sDACC,qBACD,CAEA,sDACC,gBACD,CAGC,yFACC,YACD,CE/CF,eCGC,eDwGD,CA3GA,qECOE,qCDoGF,CA3GA,eAGC,6CAA8C,CAE9C,+CAAgD,CADhD,iCAuGD,CApGC,yCACC,kBAAmB,CAGnB,yCAA0C,CAO1C,qCAAsC,CADtC,kCAAmC,CAPnC,aAAc,CADd,SAUD,CAEA,uCACC,QACD,CAGC,gEAEC,oCACD,CAIA,kEACC,YACD,CAGD,gHAIC,qCAAsC,CADtC,kCAED,CAEA,mCAEC,SAaD,CAVC,0DAQC,eAAgB,CAHhB,QAAS,CAHT,UAOD,CAGD,kCAEC,SAWD,CATC,uDAEC,QAMD,CAHC,yFACC,eACD,CASD,kFACC,mCACD,CAMA,wEACC,cACD,CAEA,iFACC,aAAc,CACd,UACD,CAGD,qBACC,YACD,CAtGD,qCAyGE,QAEF,CAYC,+FACC,cACD,CAEA,iJAEC,mCACD,CAEA,qHACC,aACD,CAIC,6JAEC,2BAA4B,CAD5B,wBAED,CAGA,2JAEC,4BAA6B,CAD7B,yBAED,CASD,8RACC,mCACD,CAWA,qHACC,cACD,CAIC,6JAEC,4BAA6B,CAD7B,yBAED,CAGA,2JAEC,2BAA4B,CAD5B,wBAED,CASD,8RACC,oCACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n@import \\\"../../mixins/_unselectable.css\\\";\\n\\n.ck.ck-toolbar {\\n\\t@mixin ck-unselectable;\\n\\n\\tdisplay: flex;\\n\\tflex-flow: row nowrap;\\n\\talign-items: center;\\n\\n\\t& > .ck-toolbar__items {\\n\\t\\tdisplay: flex;\\n\\t\\tflex-flow: row wrap;\\n\\t\\talign-items: center;\\n\\t\\tflex-grow: 1;\\n\\n\\t}\\n\\n\\t& .ck.ck-toolbar__separator {\\n\\t\\tdisplay: inline-block;\\n\\n\\t\\t/*\\n\\t\\t * A leading or trailing separator makes no sense (separates from nothing on one side).\\n\\t\\t * For instance, it can happen when toolbar items (also separators) are getting grouped one by one and\\n\\t\\t * moved to another toolbar in the dropdown.\\n\\t\\t */\\n\\t\\t&:first-child,\\n\\t\\t&:last-child {\\n\\t\\t\\tdisplay: none;\\n\\t\\t}\\n\\t}\\n\\n\\t& .ck-toolbar__line-break {\\n\\t\\tflex-basis: 100%;\\n\\t}\\n\\n\\t&.ck-toolbar_grouping > .ck-toolbar__items {\\n\\t\\tflex-wrap: nowrap;\\n\\t}\\n\\n\\t&.ck-toolbar_vertical > .ck-toolbar__items {\\n\\t\\tflex-direction: column;\\n\\t}\\n\\n\\t&.ck-toolbar_floating > .ck-toolbar__items {\\n\\t\\tflex-wrap: nowrap;\\n\\t}\\n\\n\\t& > .ck.ck-toolbar__grouped-dropdown {\\n\\t\\t& > .ck-dropdown__button .ck-dropdown__arrow {\\n\\t\\t\\tdisplay: none;\\n\\t\\t}\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n/**\\n * Makes element unselectable.\\n */\\n@define-mixin ck-unselectable {\\n\\t-moz-user-select: none;\\n\\t-webkit-user-select: none;\\n\\t-ms-user-select: none;\\n\\tuser-select: none\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n@import \\\"../../../mixins/_rounded.css\\\";\\n@import \\\"@ckeditor/ckeditor5-ui/theme/mixins/_dir.css\\\";\\n\\n.ck.ck-toolbar {\\n\\t@mixin ck-rounded-corners;\\n\\n\\tbackground: var(--ck-color-toolbar-background);\\n\\tpadding: 0 var(--ck-spacing-small);\\n\\tborder: 1px solid var(--ck-color-toolbar-border);\\n\\n\\t& .ck.ck-toolbar__separator {\\n\\t\\talign-self: stretch;\\n\\t\\twidth: 1px;\\n\\t\\tmin-width: 1px;\\n\\t\\tbackground: var(--ck-color-toolbar-border);\\n\\n\\t\\t/*\\n\\t\\t * These margins make the separators look better in balloon toolbars (when aligned with the \\\"tip\\\").\\n\\t\\t * See https://github.com/ckeditor/ckeditor5/issues/7493.\\n\\t\\t */\\n\\t\\tmargin-top: var(--ck-spacing-small);\\n\\t\\tmargin-bottom: var(--ck-spacing-small);\\n\\t}\\n\\n\\t& .ck-toolbar__line-break {\\n\\t\\theight: 0;\\n\\t}\\n\\n\\t& > .ck-toolbar__items {\\n\\t\\t& > *:not(.ck-toolbar__line-break) {\\n\\t\\t\\t/* (#11) Separate toolbar items. */\\n\\t\\t\\tmargin-right: var(--ck-spacing-small);\\n\\t\\t}\\n\\n\\t\\t/* Don't display a separator after an empty items container, for instance,\\n\\t\\twhen all items were grouped */\\n\\t\\t&:empty + .ck.ck-toolbar__separator {\\n\\t\\t\\tdisplay: none;\\n\\t\\t}\\n\\t}\\n\\n\\t& > .ck-toolbar__items > *:not(.ck-toolbar__line-break),\\n\\t& > .ck.ck-toolbar__grouped-dropdown {\\n\\t\\t/* Make sure items wrapped to the next line have v-spacing */\\n\\t\\tmargin-top: var(--ck-spacing-small);\\n\\t\\tmargin-bottom: var(--ck-spacing-small);\\n\\t}\\n\\n\\t&.ck-toolbar_vertical {\\n\\t\\t/* Items in a vertical toolbar span the entire width. */\\n\\t\\tpadding: 0;\\n\\n\\t\\t/* Specificity matters here. See https://github.com/ckeditor/ckeditor5-theme-lark/issues/168. */\\n\\t\\t& > .ck-toolbar__items > .ck {\\n\\t\\t\\t/* Items in a vertical toolbar should span the horizontal space. */\\n\\t\\t\\twidth: 100%;\\n\\n\\t\\t\\t/* Items in a vertical toolbar should have no margin. */\\n\\t\\t\\tmargin: 0;\\n\\n\\t\\t\\t/* Items in a vertical toolbar span the entire width so rounded corners are pointless. */\\n\\t\\t\\tborder-radius: 0;\\n\\t\\t}\\n\\t}\\n\\n\\t&.ck-toolbar_compact {\\n\\t\\t/* No spacing around items. */\\n\\t\\tpadding: 0;\\n\\n\\t\\t& > .ck-toolbar__items > * {\\n\\t\\t\\t/* Compact toolbar items have no spacing between them. */\\n\\t\\t\\tmargin: 0;\\n\\n\\t\\t\\t/* \\\"Middle\\\" children should have no rounded corners. */\\n\\t\\t\\t&:not(:first-child):not(:last-child) {\\n\\t\\t\\t\\tborder-radius: 0;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t& > .ck.ck-toolbar__grouped-dropdown {\\n\\t\\t/*\\n\\t\\t * Dropdown button has asymmetric padding to fit the arrow.\\n\\t\\t * This button has no arrow so let's revert that padding back to normal.\\n\\t\\t */\\n\\t\\t& > .ck.ck-button.ck-dropdown__button {\\n\\t\\t\\tpadding-left: var(--ck-spacing-tiny);\\n\\t\\t}\\n\\t}\\n\\n\\t/* A drop-down containing the nested toolbar with configured items. */\\n\\t& .ck-toolbar__nested-toolbar-dropdown {\\n\\t\\t/* Prevent empty space in the panel when the dropdown label is visible and long but the toolbar has few items. */\\n\\t\\t& > .ck-dropdown__panel {\\n\\t\\t\\tmin-width: auto;\\n\\t\\t}\\n\\n\\t\\t& > .ck-button > .ck-button__label {\\n\\t\\t\\tmax-width: 7em;\\n\\t\\t\\twidth: auto;\\n\\t\\t}\\n\\t}\\n\\n\\t&:focus {\\n\\t\\toutline: none;\\n\\t}\\n\\n\\t@nest .ck-toolbar-container & {\\n\\t\\tborder: 0;\\n\\t}\\n}\\n\\n/* stylelint-disable */\\n\\n/*\\n * Styles for RTL toolbars.\\n *\\n * Note: In some cases (e.g. a decoupled editor), the toolbar has its own \\\"dir\\\"\\n * because its parent is not controlled by the editor framework.\\n */\\n[dir=\\\"rtl\\\"] .ck.ck-toolbar,\\n.ck.ck-toolbar[dir=\\\"rtl\\\"] {\\n\\t& > .ck-toolbar__items > .ck {\\n\\t\\tmargin-right: 0;\\n\\t}\\n\\n\\t&:not(.ck-toolbar_compact) > .ck-toolbar__items > .ck {\\n\\t\\t/* (#11) Separate toolbar items. */\\n\\t\\tmargin-left: var(--ck-spacing-small);\\n\\t}\\n\\n\\t& > .ck-toolbar__items > .ck:last-child {\\n\\t\\tmargin-left: 0;\\n\\t}\\n\\n\\t&.ck-toolbar_compact > .ck-toolbar__items > .ck {\\n\\t\\t/* No rounded corners on the right side of the first child. */\\n\\t\\t&:first-child {\\n\\t\\t\\tborder-top-left-radius: 0;\\n\\t\\t\\tborder-bottom-left-radius: 0;\\n\\t\\t}\\n\\n\\t\\t/* No rounded corners on the left side of the last child. */\\n\\t\\t&:last-child {\\n\\t\\t\\tborder-top-right-radius: 0;\\n\\t\\t\\tborder-bottom-right-radius: 0;\\n\\t\\t}\\n\\t}\\n\\n\\t/* Separate the the separator form the grouping dropdown when some items are grouped. */\\n\\t& > .ck.ck-toolbar__separator {\\n\\t\\tmargin-left: var(--ck-spacing-small);\\n\\t}\\n\\n\\t/* Some spacing between the items and the separator before the grouped items dropdown. */\\n\\t&.ck-toolbar_grouping > .ck-toolbar__items:not(:empty):not(:only-child) {\\n\\t\\tmargin-left: var(--ck-spacing-small);\\n\\t}\\n}\\n\\n/*\\n * Styles for LTR toolbars.\\n *\\n * Note: In some cases (e.g. a decoupled editor), the toolbar has its own \\\"dir\\\"\\n * because its parent is not controlled by the editor framework.\\n */\\n[dir=\\\"ltr\\\"] .ck.ck-toolbar,\\n.ck.ck-toolbar[dir=\\\"ltr\\\"] {\\n\\t& > .ck-toolbar__items > .ck:last-child {\\n\\t\\tmargin-right: 0;\\n\\t}\\n\\n\\t&.ck-toolbar_compact > .ck-toolbar__items > .ck {\\n\\t\\t/* No rounded corners on the right side of the first child. */\\n\\t\\t&:first-child {\\n\\t\\t\\tborder-top-right-radius: 0;\\n\\t\\t\\tborder-bottom-right-radius: 0;\\n\\t\\t}\\n\\n\\t\\t/* No rounded corners on the left side of the last child. */\\n\\t\\t&:last-child {\\n\\t\\t\\tborder-top-left-radius: 0;\\n\\t\\t\\tborder-bottom-left-radius: 0;\\n\\t\\t}\\n\\t}\\n\\n\\t/* Separate the the separator form the grouping dropdown when some items are grouped. */\\n\\t& > .ck.ck-toolbar__separator {\\n\\t\\tmargin-right: var(--ck-spacing-small);\\n\\t}\\n\\n\\t/* Some spacing between the items and the separator before the grouped items dropdown. */\\n\\t&.ck-toolbar_grouping > .ck-toolbar__items:not(:empty):not(:only-child) {\\n\\t\\tmargin-right: var(--ck-spacing-small);\\n\\t}\\n}\\n\\n/* stylelint-enable */\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n/**\\n * Implements rounded corner interface for .ck-rounded-corners class.\\n *\\n * @see $ck-border-radius\\n */\\n@define-mixin ck-rounded-corners {\\n\\tborder-radius: 0;\\n\\n\\t@nest .ck-rounded-corners &,\\n\\t&.ck-rounded-corners {\\n\\t\\tborder-radius: var(--ck-border-radius);\\n\\t\\t@mixin-content;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck.ck-balloon-panel.ck-tooltip{-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none;z-index:calc(var(--ck-z-dialog) + 100);--ck-balloon-border-width:0px;--ck-balloon-arrow-offset:0px;--ck-balloon-arrow-half-width:4px;--ck-balloon-arrow-height:4px;--ck-tooltip-text-padding:4px;--ck-color-panel-background:var(--ck-color-tooltip-background);padding:0 var(--ck-spacing-medium)}.ck.ck-balloon-panel.ck-tooltip .ck-tooltip__text{color:var(--ck-color-tooltip-text);font-size:.9em;line-height:1.5}.ck.ck-balloon-panel.ck-tooltip.ck-tooltip_multi-line .ck-tooltip__text{display:inline-block;max-width:200px;padding:var(--ck-tooltip-text-padding) 0;white-space:break-spaces}.ck.ck-balloon-panel.ck-tooltip{box-shadow:none}.ck.ck-balloon-panel.ck-tooltip:before{display:none}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../ckeditor5-ui/theme/components/tooltip/tooltip.css\",\"webpack://./../ckeditor5-ui/theme/mixins/_unselectable.css\",\"webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/tooltip/tooltip.css\"],\"names\":[],\"mappings\":\"AAOA,gCCEC,qBAAsB,CACtB,wBAAyB,CACzB,oBAAqB,CACrB,gBAAgB,CDFhB,sCAAyC,CEFzC,6BAA8B,CAC9B,6BAA8B,CAC9B,iCAAkC,CAClC,6BAA8B,CAC9B,6BAA8B,CAC9B,8DAA+D,CAE/D,kCFJD,CEMC,kDAGC,kCAAmC,CAFnC,cAAe,CACf,eAED,CAEA,wEAEC,oBAAqB,CAErB,eAAgB,CADhB,wCAAyC,CAFzC,wBAID,CArBD,gCAwBC,eAMD,CAHC,uCACC,YACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n@import \\\"../../mixins/_unselectable.css\\\";\\n\\n.ck.ck-balloon-panel.ck-tooltip {\\n\\t@mixin ck-unselectable;\\n\\n\\tz-index: calc( var(--ck-z-dialog) + 100 );\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n/**\\n * Makes element unselectable.\\n */\\n@define-mixin ck-unselectable {\\n\\t-moz-user-select: none;\\n\\t-webkit-user-select: none;\\n\\t-ms-user-select: none;\\n\\tuser-select: none\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n@import \\\"../../../mixins/_rounded.css\\\";\\n\\n.ck.ck-balloon-panel.ck-tooltip {\\n\\t--ck-balloon-border-width: 0px;\\n\\t--ck-balloon-arrow-offset: 0px;\\n\\t--ck-balloon-arrow-half-width: 4px;\\n\\t--ck-balloon-arrow-height: 4px;\\n\\t--ck-tooltip-text-padding: 4px;\\n\\t--ck-color-panel-background: var(--ck-color-tooltip-background);\\n\\n\\tpadding: 0 var(--ck-spacing-medium);\\n\\n\\t& .ck-tooltip__text {\\n\\t\\tfont-size: .9em;\\n\\t\\tline-height: 1.5;\\n\\t\\tcolor: var(--ck-color-tooltip-text);\\n\\t}\\n\\n\\t&.ck-tooltip_multi-line .ck-tooltip__text {\\n\\t\\twhite-space: break-spaces;\\n\\t\\tdisplay: inline-block;\\n\\t\\tpadding: var(--ck-tooltip-text-padding) 0;\\n\\t\\tmax-width: 200px;\\n\\t}\\n\\n\\t/* Reset balloon panel styles */\\n\\tbox-shadow: none;\\n\\n\\t/* Hide the default shadow of the .ck-balloon-panel tip */\\n\\t&::before {\\n\\t\\tdisplay: none;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck-hidden{display:none!important}:root{--ck-z-default:1;--ck-z-panel:calc(var(--ck-z-default) + 999);--ck-z-dialog:9999}.ck-transitions-disabled,.ck-transitions-disabled *{transition:none!important}:root{--ck-powered-by-line-height:10px;--ck-powered-by-padding-vertical:2px;--ck-powered-by-padding-horizontal:4px;--ck-powered-by-text-color:#4f4f4f;--ck-powered-by-border-radius:var(--ck-border-radius);--ck-powered-by-background:#fff;--ck-powered-by-border-color:var(--ck-color-focus-border)}.ck.ck-balloon-panel.ck-powered-by-balloon{--ck-border-radius:var(--ck-powered-by-border-radius);background:var(--ck-powered-by-background);box-shadow:none;min-height:unset;z-index:calc(var(--ck-z-panel) - 1)}.ck.ck-balloon-panel.ck-powered-by-balloon .ck.ck-powered-by{line-height:var(--ck-powered-by-line-height)}.ck.ck-balloon-panel.ck-powered-by-balloon .ck.ck-powered-by a{align-items:center;cursor:pointer;display:flex;filter:grayscale(80%);line-height:var(--ck-powered-by-line-height);opacity:.66;padding:var(--ck-powered-by-padding-vertical) var(--ck-powered-by-padding-horizontal)}.ck.ck-balloon-panel.ck-powered-by-balloon .ck.ck-powered-by .ck-powered-by__label{color:var(--ck-powered-by-text-color);cursor:pointer;font-size:7.5px;font-weight:700;letter-spacing:-.2px;line-height:normal;margin-right:4px;padding-left:2px;text-transform:uppercase}.ck.ck-balloon-panel.ck-powered-by-balloon .ck.ck-powered-by .ck-icon{cursor:pointer;display:block}.ck.ck-balloon-panel.ck-powered-by-balloon .ck.ck-powered-by:hover a{filter:grayscale(0);opacity:1}.ck.ck-balloon-panel.ck-powered-by-balloon[class*=position_inside]{border-color:transparent}.ck.ck-balloon-panel.ck-powered-by-balloon[class*=position_border]{border:var(--ck-focus-ring);border-color:var(--ck-powered-by-border-color)}:root{--ck-color-base-foreground:#fafafa;--ck-color-base-background:#fff;--ck-color-base-border:#ccced1;--ck-color-base-action:#53a336;--ck-color-base-focus:#6cb5f9;--ck-color-base-text:#333;--ck-color-base-active:#2977ff;--ck-color-base-active-focus:#0d65ff;--ck-color-base-error:#db3700;--ck-color-focus-border-coordinates:218,81.8%,56.9%;--ck-color-focus-border:hsl(var(--ck-color-focus-border-coordinates));--ck-color-focus-outer-shadow:#cae1fc;--ck-color-focus-disabled-shadow:rgba(119,186,248,.3);--ck-color-focus-error-shadow:rgba(255,64,31,.3);--ck-color-text:var(--ck-color-base-text);--ck-color-shadow-drop:rgba(0,0,0,.15);--ck-color-shadow-drop-active:rgba(0,0,0,.2);--ck-color-shadow-inner:rgba(0,0,0,.1);--ck-color-button-default-background:transparent;--ck-color-button-default-hover-background:#f0f0f0;--ck-color-button-default-active-background:#f0f0f0;--ck-color-button-default-disabled-background:transparent;--ck-color-button-on-background:#f0f7ff;--ck-color-button-on-hover-background:#dbecff;--ck-color-button-on-active-background:#dbecff;--ck-color-button-on-disabled-background:#f0f2f4;--ck-color-button-on-color:#2977ff;--ck-color-button-action-background:var(--ck-color-base-action);--ck-color-button-action-hover-background:#4d9d30;--ck-color-button-action-active-background:#4d9d30;--ck-color-button-action-disabled-background:#7ec365;--ck-color-button-action-text:var(--ck-color-base-background);--ck-color-button-save:#008a00;--ck-color-button-cancel:#db3700;--ck-color-switch-button-off-background:#939393;--ck-color-switch-button-off-hover-background:#7d7d7d;--ck-color-switch-button-on-background:var(--ck-color-button-action-background);--ck-color-switch-button-on-hover-background:#4d9d30;--ck-color-switch-button-inner-background:var(--ck-color-base-background);--ck-color-switch-button-inner-shadow:rgba(0,0,0,.1);--ck-color-dropdown-panel-background:var(--ck-color-base-background);--ck-color-dropdown-panel-border:var(--ck-color-base-border);--ck-color-dialog-background:var(--ck-custom-background);--ck-color-dialog-form-header-border:var(--ck-custom-border);--ck-color-input-background:var(--ck-color-base-background);--ck-color-input-border:var(--ck-color-base-border);--ck-color-input-error-border:var(--ck-color-base-error);--ck-color-input-text:var(--ck-color-base-text);--ck-color-input-disabled-background:#f2f2f2;--ck-color-input-disabled-border:var(--ck-color-base-border);--ck-color-input-disabled-text:#757575;--ck-color-list-background:var(--ck-color-base-background);--ck-color-list-button-hover-background:var(--ck-color-button-default-hover-background);--ck-color-list-button-on-background:var(--ck-color-button-on-color);--ck-color-list-button-on-background-focus:var(--ck-color-button-on-color);--ck-color-list-button-on-text:var(--ck-color-base-background);--ck-color-panel-background:var(--ck-color-base-background);--ck-color-panel-border:var(--ck-color-base-border);--ck-color-toolbar-background:var(--ck-color-base-background);--ck-color-toolbar-border:var(--ck-color-base-border);--ck-color-tooltip-background:var(--ck-color-base-text);--ck-color-tooltip-text:var(--ck-color-base-background);--ck-color-engine-placeholder-text:#707070;--ck-color-upload-bar-background:#6cb5f9;--ck-color-link-default:#0000f0;--ck-color-link-selected-background:rgba(31,176,255,.1);--ck-color-link-fake-selection:rgba(31,176,255,.3);--ck-color-highlight-background:#ff0;--ck-color-light-red:#fcc;--ck-disabled-opacity:.5;--ck-focus-outer-shadow-geometry:0 0 0 3px;--ck-focus-outer-shadow:var(--ck-focus-outer-shadow-geometry) var(--ck-color-focus-outer-shadow);--ck-focus-disabled-outer-shadow:var(--ck-focus-outer-shadow-geometry) var(--ck-color-focus-disabled-shadow);--ck-focus-error-outer-shadow:var(--ck-focus-outer-shadow-geometry) var(--ck-color-focus-error-shadow);--ck-focus-ring:1px solid var(--ck-color-focus-border);--ck-font-size-base:13px;--ck-line-height-base:1.84615;--ck-font-face:Helvetica,Arial,Tahoma,Verdana,Sans-Serif;--ck-font-size-tiny:0.7em;--ck-font-size-small:0.75em;--ck-font-size-normal:1em;--ck-font-size-big:1.4em;--ck-font-size-large:1.8em;--ck-ui-component-min-height:2.3em}.ck-reset_all :not(.ck-reset_all-excluded *),.ck.ck-reset,.ck.ck-reset_all{background:transparent;border:0;box-sizing:border-box;height:auto;margin:0;padding:0;position:static;text-decoration:none;transition:none;vertical-align:middle;width:auto;word-wrap:break-word}.ck-reset_all :not(.ck-reset_all-excluded *),.ck.ck-reset_all{border-collapse:collapse;color:var(--ck-color-text);cursor:auto;float:none;font:normal normal normal var(--ck-font-size-base)/var(--ck-line-height-base) var(--ck-font-face);text-align:left;white-space:nowrap}.ck-reset_all .ck-rtl :not(.ck-reset_all-excluded *){text-align:right}.ck-reset_all iframe:not(.ck-reset_all-excluded *){vertical-align:inherit}.ck-reset_all textarea:not(.ck-reset_all-excluded *){white-space:pre-wrap}.ck-reset_all input[type=password]:not(.ck-reset_all-excluded *),.ck-reset_all input[type=text]:not(.ck-reset_all-excluded *),.ck-reset_all textarea:not(.ck-reset_all-excluded *){cursor:text}.ck-reset_all input[type=password][disabled]:not(.ck-reset_all-excluded *),.ck-reset_all input[type=text][disabled]:not(.ck-reset_all-excluded *),.ck-reset_all textarea[disabled]:not(.ck-reset_all-excluded *){cursor:default}.ck-reset_all fieldset:not(.ck-reset_all-excluded *){border:2px groove #dfdee3;padding:10px}.ck-reset_all button:not(.ck-reset_all-excluded *)::-moz-focus-inner{border:0;padding:0}.ck[dir=rtl],.ck[dir=rtl] .ck{text-align:right}:root{--ck-border-radius:2px;--ck-inner-shadow:2px 2px 3px var(--ck-color-shadow-inner) inset;--ck-drop-shadow:0 1px 2px 1px var(--ck-color-shadow-drop);--ck-drop-shadow-active:0 3px 6px 1px var(--ck-color-shadow-drop-active);--ck-spacing-unit:0.6em;--ck-spacing-large:calc(var(--ck-spacing-unit)*1.5);--ck-spacing-standard:var(--ck-spacing-unit);--ck-spacing-medium:calc(var(--ck-spacing-unit)*0.8);--ck-spacing-small:calc(var(--ck-spacing-unit)*0.5);--ck-spacing-tiny:calc(var(--ck-spacing-unit)*0.3);--ck-spacing-extra-tiny:calc(var(--ck-spacing-unit)*0.16)}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../ckeditor5-ui/theme/globals/_hidden.css\",\"webpack://./../ckeditor5-ui/theme/globals/_zindex.css\",\"webpack://./../ckeditor5-ui/theme/globals/_transition.css\",\"webpack://./../ckeditor5-ui/theme/globals/_poweredby.css\",\"webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/globals/_colors.css\",\"webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/globals/_disabled.css\",\"webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/globals/_focus.css\",\"webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/globals/_fonts.css\",\"webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/globals/_reset.css\",\"webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/globals/_rounded.css\",\"webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/globals/_shadow.css\",\"webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/globals/_spacing.css\"],\"names\":[],\"mappings\":\"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\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n/**\\n * A class which hides an element in DOM.\\n */\\n.ck-hidden {\\n\\t/* Override selector specificity. Otherwise, all elements with some display\\n\\tstyle defined will override this one, which is not a desired result. */\\n\\tdisplay: none !important;\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n:root {\\n\\t--ck-z-default: 1;\\n\\t--ck-z-panel: calc( var(--ck-z-default) + 999 );\\n\\t--ck-z-dialog: 9999;\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n/**\\n * A class that disables all transitions of the element and its children.\\n */\\n.ck-transitions-disabled,\\n.ck-transitions-disabled * {\\n\\ttransition: none !important;\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n:root {\\n\\t--ck-powered-by-line-height: 10px;\\n\\t--ck-powered-by-padding-vertical: 2px;\\n\\t--ck-powered-by-padding-horizontal: 4px;\\n\\t--ck-powered-by-text-color: hsl(0, 0%, 31%);\\n\\t--ck-powered-by-border-radius: var(--ck-border-radius);\\n\\t--ck-powered-by-background: hsl(0, 0%, 100%);\\n\\t--ck-powered-by-border-color: var(--ck-color-focus-border);\\n}\\n\\n.ck.ck-balloon-panel.ck-powered-by-balloon {\\n\\t--ck-border-radius: var(--ck-powered-by-border-radius);\\n\\n\\tbox-shadow: none;\\n\\tbackground: var(--ck-powered-by-background);\\n\\tmin-height: unset;\\n\\tz-index: calc( var(--ck-z-panel) - 1 );\\n\\n\\t& .ck.ck-powered-by {\\n\\t\\tline-height: var(--ck-powered-by-line-height);\\n\\n\\t\\t& a {\\n\\t\\t\\tcursor: pointer;\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\talign-items: center;\\n\\t\\t\\topacity: .66;\\n\\t\\t\\tfilter: grayscale(80%);\\n\\t\\t\\tline-height: var(--ck-powered-by-line-height);\\n\\t\\t\\tpadding: var(--ck-powered-by-padding-vertical) var(--ck-powered-by-padding-horizontal);\\n\\t\\t}\\n\\n\\t\\t& .ck-powered-by__label {\\n\\t\\t\\tfont-size: 7.5px;\\n\\t\\t\\tletter-spacing: -.2px;\\n\\t\\t\\tpadding-left: 2px;\\n\\t\\t\\ttext-transform: uppercase;\\n\\t\\t\\tfont-weight: bold;\\n\\t\\t\\tmargin-right: 4px;\\n\\t\\t\\tcursor: pointer;\\n\\t\\t\\tline-height: normal;\\n\\t\\t\\tcolor: var(--ck-powered-by-text-color);\\n\\n\\t\\t}\\n\\n\\t\\t& .ck-icon {\\n\\t\\t\\tdisplay: block;\\n\\t\\t\\tcursor: pointer;\\n\\t\\t}\\n\\n\\t\\t&:hover {\\n\\t\\t\\t& a {\\n\\t\\t\\t\\tfilter: grayscale(0%);\\n\\t\\t\\t\\topacity: 1;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t&[class*=\\\"position_inside\\\"] {\\n\\t\\tborder-color: transparent;\\n\\t}\\n\\n\\t&[class*=\\\"position_border\\\"] {\\n\\t\\tborder: var(--ck-focus-ring);\\n\\t\\tborder-color: var(--ck-powered-by-border-color);\\n\\t}\\n}\\n\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n:root {\\n\\t--ck-color-base-foreground: \\t\\t\\t\\t\\t\\t\\t\\thsl(0, 0%, 98%);\\n\\t--ck-color-base-background: \\t\\t\\t\\t\\t\\t\\t\\thsl(0, 0%, 100%);\\n\\t--ck-color-base-border: \\t\\t\\t\\t\\t\\t\\t\\t\\thsl(220, 6%, 81%);\\n\\t--ck-color-base-action: \\t\\t\\t\\t\\t\\t\\t\\t\\thsl(104, 50.2%, 42.5%);\\n\\t--ck-color-base-focus: \\t\\t\\t\\t\\t\\t\\t\\t\\t\\thsl(209, 92%, 70%);\\n\\t--ck-color-base-text: \\t\\t\\t\\t\\t\\t\\t\\t\\t\\thsl(0, 0%, 20%);\\n\\t--ck-color-base-active: \\t\\t\\t\\t\\t\\t\\t\\t\\thsl(218.1, 100%, 58%);\\n\\t--ck-color-base-active-focus:\\t\\t\\t\\t\\t\\t\\t\\thsl(218.2, 100%, 52.5%);\\n\\t--ck-color-base-error:\\t\\t\\t\\t\\t\\t\\t\\t\\t\\thsl(15, 100%, 43%);\\n\\n\\t/* -- Generic colors ------------------------------------------------------------------------ */\\n\\n\\t--ck-color-focus-border-coordinates: \\t\\t\\t\\t\\t\\t218, 81.8%, 56.9%;\\n\\t--ck-color-focus-border: \\t\\t\\t\\t\\t\\t\\t\\t\\thsl(var(--ck-color-focus-border-coordinates));\\n\\t--ck-color-focus-outer-shadow:\\t\\t\\t\\t\\t\\t\\t\\thsl(212.4, 89.3%, 89%);\\n\\t--ck-color-focus-disabled-shadow:\\t\\t\\t\\t\\t\\t\\thsla(209, 90%, 72%,.3);\\n\\t--ck-color-focus-error-shadow:\\t\\t\\t\\t\\t\\t\\t\\thsla(9,100%,56%,.3);\\n\\t--ck-color-text: \\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tvar(--ck-color-base-text);\\n\\t--ck-color-shadow-drop: \\t\\t\\t\\t\\t\\t\\t\\t\\thsla(0, 0%, 0%, 0.15);\\n\\t--ck-color-shadow-drop-active:\\t\\t\\t\\t\\t\\t\\t\\thsla(0, 0%, 0%, 0.2);\\n\\t--ck-color-shadow-inner: \\t\\t\\t\\t\\t\\t\\t\\t\\thsla(0, 0%, 0%, 0.1);\\n\\n\\t/* -- Buttons ------------------------------------------------------------------------------- */\\n\\n\\t--ck-color-button-default-background: \\t\\t\\t\\t\\t\\ttransparent;\\n\\t--ck-color-button-default-hover-background: \\t\\t\\t\\thsl(0, 0%, 94.1%);\\n\\t--ck-color-button-default-active-background: \\t\\t\\t\\thsl(0, 0%, 94.1%);\\n\\t--ck-color-button-default-disabled-background: \\t\\t\\t\\ttransparent;\\n\\n\\t--ck-color-button-on-background: \\t\\t\\t\\t\\t\\t\\thsl(212, 100%, 97.1%);\\n\\t--ck-color-button-on-hover-background: \\t\\t\\t\\t\\t\\thsl(211.7, 100%, 92.9%);\\n\\t--ck-color-button-on-active-background: \\t\\t\\t\\t\\thsl(211.7, 100%, 92.9%);\\n\\t--ck-color-button-on-disabled-background: \\t\\t\\t\\t\\thsl(211, 15%, 95%);\\n\\t--ck-color-button-on-color:\\t\\t\\t\\t\\t\\t\\t\\t\\thsl(218.1, 100%, 58%);\\n\\n\\n\\t--ck-color-button-action-background: \\t\\t\\t\\t\\t\\tvar(--ck-color-base-action);\\n\\t--ck-color-button-action-hover-background: \\t\\t\\t\\t\\thsl(104, 53.2%, 40.2%);\\n\\t--ck-color-button-action-active-background: \\t\\t\\t\\thsl(104, 53.2%, 40.2%);\\n\\t--ck-color-button-action-disabled-background: \\t\\t\\t\\thsl(104, 44%, 58%);\\n\\t--ck-color-button-action-text: \\t\\t\\t\\t\\t\\t\\t\\tvar(--ck-color-base-background);\\n\\n\\t--ck-color-button-save: \\t\\t\\t\\t\\t\\t\\t\\t\\thsl(120, 100%, 27%);\\n\\t--ck-color-button-cancel: \\t\\t\\t\\t\\t\\t\\t\\t\\thsl(15, 100%, 43%);\\n\\n\\t--ck-color-switch-button-off-background:\\t\\t\\t\\t\\thsl(0, 0%, 57.6%);\\n\\t--ck-color-switch-button-off-hover-background:\\t\\t\\t\\thsl(0, 0%, 49%);\\n\\t--ck-color-switch-button-on-background:\\t\\t\\t\\t\\t\\tvar(--ck-color-button-action-background);\\n\\t--ck-color-switch-button-on-hover-background:\\t\\t\\t\\thsl(104, 53.2%, 40.2%);\\n\\t--ck-color-switch-button-inner-background:\\t\\t\\t\\t\\tvar(--ck-color-base-background);\\n\\t--ck-color-switch-button-inner-shadow:\\t\\t\\t\\t\\t\\thsla(0, 0%, 0%, 0.1);\\n\\n\\t/* -- Dropdown ------------------------------------------------------------------------------ */\\n\\n\\t--ck-color-dropdown-panel-background: \\t\\t\\t\\t\\t\\tvar(--ck-color-base-background);\\n\\t--ck-color-dropdown-panel-border: \\t\\t\\t\\t\\t\\t\\tvar(--ck-color-base-border);\\n\\n\\t/* -- Dialog -------------------------------------------------------------------------------- */\\n\\n\\t--ck-color-dialog-background: \\t\\t\\t\\t\\t\\t\\t\\tvar(--ck-custom-background);\\n\\t--ck-color-dialog-form-header-border: \\t\\t\\t\\t\\t\\tvar(--ck-custom-border);\\n\\n\\t/* -- Input --------------------------------------------------------------------------------- */\\n\\n\\t--ck-color-input-background: \\t\\t\\t\\t\\t\\t\\t\\tvar(--ck-color-base-background);\\n\\t--ck-color-input-border: \\t\\t\\t\\t\\t\\t\\t\\t\\tvar(--ck-color-base-border);\\n\\t--ck-color-input-error-border:\\t\\t\\t\\t\\t\\t\\t\\tvar(--ck-color-base-error);\\n\\t--ck-color-input-text: \\t\\t\\t\\t\\t\\t\\t\\t\\t\\tvar(--ck-color-base-text);\\n\\t--ck-color-input-disabled-background: \\t\\t\\t\\t\\t\\thsl(0, 0%, 95%);\\n\\t--ck-color-input-disabled-border: \\t\\t\\t\\t\\t\\t\\tvar(--ck-color-base-border);\\n\\t--ck-color-input-disabled-text: \\t\\t\\t\\t\\t\\t\\thsl(0, 0%, 46%);\\n\\n\\t/* -- List ---------------------------------------------------------------------------------- */\\n\\n\\t--ck-color-list-background: \\t\\t\\t\\t\\t\\t\\t\\tvar(--ck-color-base-background);\\n\\t--ck-color-list-button-hover-background: \\t\\t\\t\\t\\tvar(--ck-color-button-default-hover-background);\\n\\t--ck-color-list-button-on-background: \\t\\t\\t\\t\\t\\tvar(--ck-color-button-on-color);\\n\\t--ck-color-list-button-on-background-focus: \\t\\t\\t\\tvar(--ck-color-button-on-color);\\n\\t--ck-color-list-button-on-text:\\t\\t\\t\\t\\t\\t\\t\\tvar(--ck-color-base-background);\\n\\n\\t/* -- Panel --------------------------------------------------------------------------------- */\\n\\n\\t--ck-color-panel-background: \\t\\t\\t\\t\\t\\t\\t\\tvar(--ck-color-base-background);\\n\\t--ck-color-panel-border: \\t\\t\\t\\t\\t\\t\\t\\t\\tvar(--ck-color-base-border);\\n\\n\\t/* -- Toolbar ------------------------------------------------------------------------------- */\\n\\n\\t--ck-color-toolbar-background: \\t\\t\\t\\t\\t\\t\\t\\tvar(--ck-color-base-background);\\n\\t--ck-color-toolbar-border: \\t\\t\\t\\t\\t\\t\\t\\t\\tvar(--ck-color-base-border);\\n\\n\\t/* -- Tooltip ------------------------------------------------------------------------------- */\\n\\n\\t--ck-color-tooltip-background: \\t\\t\\t\\t\\t\\t\\t\\tvar(--ck-color-base-text);\\n\\t--ck-color-tooltip-text: \\t\\t\\t\\t\\t\\t\\t\\t\\tvar(--ck-color-base-background);\\n\\n\\t/* -- Engine -------------------------------------------------------------------------------- */\\n\\n\\t--ck-color-engine-placeholder-text: \\t\\t\\t\\t\\t\\thsl(0, 0%, 44%);\\n\\n\\t/* -- Upload -------------------------------------------------------------------------------- */\\n\\n\\t--ck-color-upload-bar-background:\\t\\t \\t\\t\\t\\t\\thsl(209, 92%, 70%);\\n\\n\\t/* -- Link -------------------------------------------------------------------------------- */\\n\\n\\t--ck-color-link-default:\\t\\t\\t\\t\\t\\t\\t\\t\\thsl(240, 100%, 47%);\\n\\t--ck-color-link-selected-background:\\t\\t\\t\\t\\t\\thsla(201, 100%, 56%, 0.1);\\n\\t--ck-color-link-fake-selection:\\t\\t\\t\\t\\t\\t\\t\\thsla(201, 100%, 56%, 0.3);\\n\\n\\t/* -- Search result highlight ---------------------------------------------------------------- */\\n\\n\\t--ck-color-highlight-background:\\t\\t\\t\\t\\t\\t\\thsl(60, 100%, 50%);\\n\\n\\t/* -- Generic colors ------------------------------------------------------------------------- */\\n\\n\\t--ck-color-light-red:\\t\\t\\t\\t\\t\\t\\t\\t\\t\\thsl(0, 100%, 90%);\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n:root {\\n\\t/**\\n\\t * An opacity value of disabled UI item.\\n\\t */\\n\\t--ck-disabled-opacity: .5;\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n:root {\\n\\t/**\\n\\t * The geometry of the of focused element's outer shadow.\\n\\t */\\n\\t--ck-focus-outer-shadow-geometry: 0 0 0 3px;\\n\\n\\t/**\\n\\t * A visual style of focused element's outer shadow.\\n\\t */\\n\\t--ck-focus-outer-shadow: var(--ck-focus-outer-shadow-geometry) var(--ck-color-focus-outer-shadow);\\n\\n\\t/**\\n\\t * A visual style of focused element's outer shadow (when disabled).\\n\\t */\\n\\t--ck-focus-disabled-outer-shadow: var(--ck-focus-outer-shadow-geometry) var(--ck-color-focus-disabled-shadow);\\n\\n\\t/**\\n\\t * A visual style of focused element's outer shadow (when has errors).\\n\\t */\\n\\t--ck-focus-error-outer-shadow: var(--ck-focus-outer-shadow-geometry) var(--ck-color-focus-error-shadow);\\n\\n\\t/**\\n\\t * A visual style of focused element's border or outline.\\n\\t */\\n\\t--ck-focus-ring: 1px solid var(--ck-color-focus-border);\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n:root {\\n\\t--ck-font-size-base: 13px;\\n\\t--ck-line-height-base: 1.84615;\\n\\t--ck-font-face: Helvetica, Arial, Tahoma, Verdana, Sans-Serif;\\n\\n\\t--ck-font-size-tiny: 0.7em;\\n\\t--ck-font-size-small: 0.75em;\\n\\t--ck-font-size-normal: 1em;\\n\\t--ck-font-size-big: 1.4em;\\n\\t--ck-font-size-large: 1.8em;\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n:root {\\n\\t/* This is super-important. This is **manually** adjusted so a button without an icon\\n\\tis never smaller than a button with icon, additionally making sure that text-less buttons\\n\\tare perfect squares. The value is also shared by other components which should stay \\\"in-line\\\"\\n\\twith buttons. */\\n\\t--ck-ui-component-min-height: 2.3em;\\n}\\n\\n/**\\n * Resets an element, ignoring its children.\\n */\\n.ck.ck-reset,\\n.ck.ck-reset_all,\\n.ck-reset_all *:not(.ck-reset_all-excluded *) {\\n\\tbox-sizing: border-box;\\n\\twidth: auto;\\n\\theight: auto;\\n\\tposition: static;\\n\\n\\t/* Do not include inheritable rules here. */\\n\\tmargin: 0;\\n\\tpadding: 0;\\n\\tborder: 0;\\n\\tbackground: transparent;\\n\\ttext-decoration: none;\\n\\tvertical-align: middle;\\n\\ttransition: none;\\n\\n\\t/* https://github.com/ckeditor/ckeditor5-theme-lark/issues/105 */\\n\\tword-wrap: break-word;\\n}\\n\\n/**\\n * Resets an element AND its children.\\n */\\n.ck.ck-reset_all,\\n.ck-reset_all *:not(.ck-reset_all-excluded *) {\\n\\t/* These are rule inherited by all children elements. */\\n\\tborder-collapse: collapse;\\n\\tfont: normal normal normal var(--ck-font-size-base)/var(--ck-line-height-base) var(--ck-font-face);\\n\\tcolor: var(--ck-color-text);\\n\\ttext-align: left;\\n\\twhite-space: nowrap;\\n\\tcursor: auto;\\n\\tfloat: none;\\n}\\n\\n.ck-reset_all {\\n\\t& .ck-rtl *:not(.ck-reset_all-excluded *) {\\n\\t\\ttext-align: right;\\n\\t}\\n\\n\\t& iframe:not(.ck-reset_all-excluded *) {\\n\\t\\t/* For IE */\\n\\t\\tvertical-align: inherit;\\n\\t}\\n\\n\\t& textarea:not(.ck-reset_all-excluded *) {\\n\\t\\twhite-space: pre-wrap;\\n\\t}\\n\\n\\t& textarea:not(.ck-reset_all-excluded *),\\n\\t& input[type=\\\"text\\\"]:not(.ck-reset_all-excluded *),\\n\\t& input[type=\\\"password\\\"]:not(.ck-reset_all-excluded *) {\\n\\t\\tcursor: text;\\n\\t}\\n\\n\\t& textarea[disabled]:not(.ck-reset_all-excluded *),\\n\\t& input[type=\\\"text\\\"][disabled]:not(.ck-reset_all-excluded *),\\n\\t& input[type=\\\"password\\\"][disabled]:not(.ck-reset_all-excluded *) {\\n\\t\\tcursor: default;\\n\\t}\\n\\n\\t& fieldset:not(.ck-reset_all-excluded *) {\\n\\t\\tpadding: 10px;\\n\\t\\tborder: 2px groove hsl(255, 7%, 88%);\\n\\t}\\n\\n\\t& button:not(.ck-reset_all-excluded *)::-moz-focus-inner {\\n\\t\\t/* See http://stackoverflow.com/questions/5517744/remove-extra-button-spacing-padding-in-firefox */\\n\\t\\tpadding: 0;\\n\\t\\tborder: 0\\n\\t}\\n}\\n\\n/**\\n * Default UI rules for RTL languages.\\n */\\n.ck[dir=\\\"rtl\\\"],\\n.ck[dir=\\\"rtl\\\"] .ck {\\n\\ttext-align: right;\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n/**\\n * Default border-radius value.\\n */\\n:root{\\n\\t--ck-border-radius: 2px;\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n:root {\\n\\t/**\\n\\t * A visual style of element's inner shadow (i.e. input).\\n\\t */\\n\\t--ck-inner-shadow: 2px 2px 3px var(--ck-color-shadow-inner) inset;\\n\\n\\t/**\\n\\t * A visual style of element's drop shadow (i.e. panel).\\n\\t */\\n\\t--ck-drop-shadow: 0 1px 2px 1px var(--ck-color-shadow-drop);\\n\\n\\t/**\\n\\t * A visual style of element's active shadow (i.e. comment or suggestion).\\n\\t */\\n\\t--ck-drop-shadow-active: 0 3px 6px 1px var(--ck-color-shadow-drop-active);\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n:root {\\n\\t--ck-spacing-unit: \\t\\t\\t\\t\\t\\t0.6em;\\n\\t--ck-spacing-large: \\t\\t\\t\\t\\tcalc(var(--ck-spacing-unit) * 1.5);\\n\\t--ck-spacing-standard: \\t\\t\\t\\t\\tvar(--ck-spacing-unit);\\n\\t--ck-spacing-medium: \\t\\t\\t\\t\\tcalc(var(--ck-spacing-unit) * 0.8);\\n\\t--ck-spacing-small: \\t\\t\\t\\t\\tcalc(var(--ck-spacing-unit) * 0.5);\\n\\t--ck-spacing-tiny: \\t\\t\\t\\t\\t\\tcalc(var(--ck-spacing-unit) * 0.3);\\n\\t--ck-spacing-extra-tiny: \\t\\t\\t\\tcalc(var(--ck-spacing-unit) * 0.16);\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \":root{--ck-color-resizer:var(--ck-color-focus-border);--ck-color-resizer-tooltip-background:#262626;--ck-color-resizer-tooltip-text:#f2f2f2;--ck-resizer-border-radius:var(--ck-border-radius);--ck-resizer-tooltip-offset:10px;--ck-resizer-tooltip-height:calc(var(--ck-spacing-small)*2 + 10px)}.ck .ck-widget,.ck .ck-widget.ck-widget_with-selection-handle{position:relative}.ck .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle{position:absolute}.ck .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle .ck-icon{display:block}.ck .ck-widget.ck-widget_with-selection-handle.ck-widget_selected>.ck-widget__selection-handle,.ck .ck-widget.ck-widget_with-selection-handle:hover>.ck-widget__selection-handle{visibility:visible}.ck .ck-size-view{background:var(--ck-color-resizer-tooltip-background);border:1px solid var(--ck-color-resizer-tooltip-text);border-radius:var(--ck-resizer-border-radius);color:var(--ck-color-resizer-tooltip-text);display:block;font-size:var(--ck-font-size-tiny);height:var(--ck-resizer-tooltip-height);line-height:var(--ck-resizer-tooltip-height);padding:0 var(--ck-spacing-small)}.ck .ck-size-view.ck-orientation-above-center,.ck .ck-size-view.ck-orientation-bottom-left,.ck .ck-size-view.ck-orientation-bottom-right,.ck .ck-size-view.ck-orientation-top-left,.ck .ck-size-view.ck-orientation-top-right{position:absolute}.ck .ck-size-view.ck-orientation-top-left{left:var(--ck-resizer-tooltip-offset);top:var(--ck-resizer-tooltip-offset)}.ck .ck-size-view.ck-orientation-top-right{right:var(--ck-resizer-tooltip-offset);top:var(--ck-resizer-tooltip-offset)}.ck .ck-size-view.ck-orientation-bottom-right{bottom:var(--ck-resizer-tooltip-offset);right:var(--ck-resizer-tooltip-offset)}.ck .ck-size-view.ck-orientation-bottom-left{bottom:var(--ck-resizer-tooltip-offset);left:var(--ck-resizer-tooltip-offset)}.ck .ck-size-view.ck-orientation-above-center{left:50%;top:calc(var(--ck-resizer-tooltip-height)*-1);transform:translate(-50%)}:root{--ck-widget-outline-thickness:3px;--ck-widget-handler-icon-size:16px;--ck-widget-handler-animation-duration:200ms;--ck-widget-handler-animation-curve:ease;--ck-color-widget-blurred-border:#dedede;--ck-color-widget-hover-border:#ffc83d;--ck-color-widget-editable-focus-background:var(--ck-color-base-background);--ck-color-widget-drag-handler-icon-color:var(--ck-color-base-background)}.ck .ck-widget{outline-color:transparent;outline-style:solid;outline-width:var(--ck-widget-outline-thickness);transition:outline-color var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve)}@media (prefers-reduced-motion:reduce){.ck .ck-widget{transition:none}}.ck .ck-widget.ck-widget_selected,.ck .ck-widget.ck-widget_selected:hover{outline:var(--ck-widget-outline-thickness) solid var(--ck-color-focus-border)}.ck .ck-widget:hover{outline-color:var(--ck-color-widget-hover-border)}.ck .ck-editor__nested-editable{border:1px solid transparent}.ck .ck-editor__nested-editable.ck-editor__nested-editable_focused,.ck .ck-editor__nested-editable:focus{border:var(--ck-focus-ring);box-shadow:var(--ck-inner-shadow),0 0;outline:none}@media (forced-colors:none){.ck .ck-editor__nested-editable.ck-editor__nested-editable_focused,.ck .ck-editor__nested-editable:focus{background-color:var(--ck-color-widget-editable-focus-background)}}.ck .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle{background-color:transparent;border-radius:var(--ck-border-radius) var(--ck-border-radius) 0 0;box-sizing:border-box;left:calc(0px - var(--ck-widget-outline-thickness));opacity:0;padding:4px;top:0;transform:translateY(-100%);transition:background-color var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve),visibility var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve),opacity var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve)}@media (prefers-reduced-motion:reduce){.ck .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle{transition:none}}.ck .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle .ck-icon{color:var(--ck-color-widget-drag-handler-icon-color);height:var(--ck-widget-handler-icon-size);width:var(--ck-widget-handler-icon-size)}.ck .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle .ck-icon .ck-icon__selected-indicator{opacity:0;transition:opacity .3s var(--ck-widget-handler-animation-curve)}@media (prefers-reduced-motion:reduce){.ck .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle .ck-icon .ck-icon__selected-indicator{transition:none}}.ck .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle:hover .ck-icon .ck-icon__selected-indicator{opacity:1}.ck .ck-widget.ck-widget_with-selection-handle:hover>.ck-widget__selection-handle{background-color:var(--ck-color-widget-hover-border);opacity:1}.ck .ck-widget.ck-widget_with-selection-handle.ck-widget_selected:hover>.ck-widget__selection-handle,.ck .ck-widget.ck-widget_with-selection-handle.ck-widget_selected>.ck-widget__selection-handle{background-color:var(--ck-color-focus-border);opacity:1}.ck .ck-widget.ck-widget_with-selection-handle.ck-widget_selected:hover>.ck-widget__selection-handle .ck-icon .ck-icon__selected-indicator,.ck .ck-widget.ck-widget_with-selection-handle.ck-widget_selected>.ck-widget__selection-handle .ck-icon .ck-icon__selected-indicator{opacity:1}.ck[dir=rtl] .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle{left:auto;right:calc(0px - var(--ck-widget-outline-thickness))}.ck.ck-editor__editable.ck-read-only .ck-widget{transition:none}.ck.ck-editor__editable.ck-read-only .ck-widget:not(.ck-widget_selected){--ck-widget-outline-thickness:0px}.ck.ck-editor__editable.ck-read-only .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle,.ck.ck-editor__editable.ck-read-only .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle:hover{background:var(--ck-color-widget-blurred-border)}.ck.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected,.ck.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected:hover{outline-color:var(--ck-color-widget-blurred-border)}.ck.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected.ck-widget_with-selection-handle:hover>.ck-widget__selection-handle,.ck.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected.ck-widget_with-selection-handle:hover>.ck-widget__selection-handle:hover,.ck.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected.ck-widget_with-selection-handle>.ck-widget__selection-handle,.ck.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected.ck-widget_with-selection-handle>.ck-widget__selection-handle:hover{background:var(--ck-color-widget-blurred-border)}.ck.ck-editor__editable blockquote>.ck-widget.ck-widget_with-selection-handle:first-child,.ck.ck-editor__editable>.ck-widget.ck-widget_with-selection-handle:first-child{margin-top:calc(1em + var(--ck-widget-handler-icon-size))}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../ckeditor5-widget/theme/widget.css\",\"webpack://./../ckeditor5-theme-lark/theme/ckeditor5-widget/widget.css\",\"webpack://./../ckeditor5-theme-lark/theme/mixins/_focus.css\",\"webpack://./../ckeditor5-theme-lark/theme/mixins/_shadow.css\",\"webpack://./../ckeditor5-ui/theme/mixins/_mediacolors.css\"],\"names\":[],\"mappings\":\"AAKA,MACC,+CAAgD,CAChD,6CAAsD,CACtD,uCAAgD,CAEhD,kDAAmD,CACnD,gCAAiC,CACjC,kEACD,CAOA,8DAEC,iBAqBD,CAnBC,4EACC,iBAOD,CALC,qFAGC,aACD,CASD,iLACC,kBACD,CAGD,kBACC,qDAAsD,CAEtD,qDAAsD,CACtD,6CAA8C,CAF9C,0CAA2C,CAI3C,aAAc,CADd,kCAAmC,CAGnC,uCAAwC,CACxC,4CAA6C,CAF7C,iCAsCD,CAlCC,8NAKC,iBACD,CAEA,0CAEC,qCAAsC,CADtC,oCAED,CAEA,2CAEC,sCAAuC,CADvC,oCAED,CAEA,8CACC,uCAAwC,CACxC,sCACD,CAEA,6CACC,uCAAwC,CACxC,qCACD,CAGA,8CAEC,QAAS,CADT,6CAAgD,CAEhD,yBACD,CChFD,MACC,iCAAkC,CAClC,kCAAmC,CACnC,4CAA6C,CAC7C,wCAAyC,CAEzC,wCAAiD,CACjD,sCAAkD,CAClD,2EAA4E,CAC5E,yEACD,CAEA,eAGC,yBAA0B,CAD1B,mBAAoB,CADpB,gDAAiD,CAGjD,6GAcD,CAZC,uCAND,eAOE,eAWF,CAVC,CAEA,0EAEC,6EACD,CAEA,qBACC,iDACD,CAGD,gCACC,4BAYD,CARC,yGCnCA,2BAA2B,CCF3B,qCAA8B,CDC9B,YD2CA,CGvCA,4BACC,yGHoCC,iEGlCD,CACD,CHuCA,4EAKC,4BAA6B,CAa7B,iEAAkE,CAhBlE,qBAAsB,CAoBtB,mDAAoD,CAhBpD,SAAU,CALV,WAAY,CAsBZ,KAAM,CAFN,2BAA4B,CAT5B,6SAwCD,CA3BC,uCAzBD,4EA0BE,eA0BF,CAzBC,CAEA,qFAIC,oDAAqD,CADrD,yCAA0C,CAD1C,wCAeD,CAVC,kHACC,SAAU,CAGV,+DAKD,CAHC,uCAND,kHAOE,eAEF,CADC,CAKF,wHACC,SACD,CAID,kFAEC,oDAAqD,CADrD,SAED,CAKC,oMAEC,6CAA8C,CAD9C,SAOD,CAHC,gRACC,SACD,CAOH,qFACC,SAAU,CACV,oDACD,CAGA,gDAEC,eAkBD,CAhBC,yEAOC,iCACD,CAGC,gOAEC,gDACD,CAOD,wIAEC,mDAQD,CALE,ghBAEC,gDACD,CAKH,yKAOC,yDACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n:root {\\n\\t--ck-color-resizer: var(--ck-color-focus-border);\\n\\t--ck-color-resizer-tooltip-background: hsl(0, 0%, 15%);\\n\\t--ck-color-resizer-tooltip-text: hsl(0, 0%, 95%);\\n\\n\\t--ck-resizer-border-radius: var(--ck-border-radius);\\n\\t--ck-resizer-tooltip-offset: 10px;\\n\\t--ck-resizer-tooltip-height: calc(var(--ck-spacing-small) * 2 + 10px);\\n}\\n\\n.ck .ck-widget {\\n\\t/* This is neccessary for type around UI to be positioned properly. */\\n\\tposition: relative;\\n}\\n\\n.ck .ck-widget.ck-widget_with-selection-handle {\\n\\t/* Make the widget wrapper a relative positioning container for the drag handle. */\\n\\tposition: relative;\\n\\n\\t& .ck-widget__selection-handle {\\n\\t\\tposition: absolute;\\n\\n\\t\\t& .ck-icon {\\n\\t\\t\\t/* Make sure the icon in not a subject to font-size or line-height to avoid\\n\\t\\t\\tunnecessary spacing around it. */\\n\\t\\t\\tdisplay: block;\\n\\t\\t}\\n\\t}\\n\\n\\t/* Show the selection handle on mouse hover over the widget, but not for nested widgets. */\\n\\t&:hover > .ck-widget__selection-handle {\\n\\t\\tvisibility: visible;\\n\\t}\\n\\n\\t/* Show the selection handle when the widget is selected, but not for nested widgets. */\\n\\t&.ck-widget_selected > .ck-widget__selection-handle {\\n\\t\\tvisibility: visible;\\n\\t}\\n}\\n\\n.ck .ck-size-view {\\n\\tbackground: var(--ck-color-resizer-tooltip-background);\\n\\tcolor: var(--ck-color-resizer-tooltip-text);\\n\\tborder: 1px solid var(--ck-color-resizer-tooltip-text);\\n\\tborder-radius: var(--ck-resizer-border-radius);\\n\\tfont-size: var(--ck-font-size-tiny);\\n\\tdisplay: block;\\n\\tpadding: 0 var(--ck-spacing-small);\\n\\theight: var(--ck-resizer-tooltip-height);\\n\\tline-height: var(--ck-resizer-tooltip-height);\\n\\n\\t&.ck-orientation-top-left,\\n\\t&.ck-orientation-top-right,\\n\\t&.ck-orientation-bottom-right,\\n\\t&.ck-orientation-bottom-left,\\n\\t&.ck-orientation-above-center {\\n\\t\\tposition: absolute;\\n\\t}\\n\\n\\t&.ck-orientation-top-left {\\n\\t\\ttop: var(--ck-resizer-tooltip-offset);\\n\\t\\tleft: var(--ck-resizer-tooltip-offset);\\n\\t}\\n\\n\\t&.ck-orientation-top-right {\\n\\t\\ttop: var(--ck-resizer-tooltip-offset);\\n\\t\\tright: var(--ck-resizer-tooltip-offset);\\n\\t}\\n\\n\\t&.ck-orientation-bottom-right {\\n\\t\\tbottom: var(--ck-resizer-tooltip-offset);\\n\\t\\tright: var(--ck-resizer-tooltip-offset);\\n\\t}\\n\\n\\t&.ck-orientation-bottom-left {\\n\\t\\tbottom: var(--ck-resizer-tooltip-offset);\\n\\t\\tleft: var(--ck-resizer-tooltip-offset);\\n\\t}\\n\\n\\t/* Class applied if the widget is too small to contain the size label */\\n\\t&.ck-orientation-above-center {\\n\\t\\ttop: calc(var(--ck-resizer-tooltip-height) * -1);\\n\\t\\tleft: 50%;\\n\\t\\ttransform: translate(-50%);\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n@import \\\"../mixins/_focus.css\\\";\\n@import \\\"../mixins/_shadow.css\\\";\\n@import \\\"@ckeditor/ckeditor5-ui/theme/mixins/_mediacolors.css\\\";\\n\\n:root {\\n\\t--ck-widget-outline-thickness: 3px;\\n\\t--ck-widget-handler-icon-size: 16px;\\n\\t--ck-widget-handler-animation-duration: 200ms;\\n\\t--ck-widget-handler-animation-curve: ease;\\n\\n\\t--ck-color-widget-blurred-border: hsl(0, 0%, 87%);\\n\\t--ck-color-widget-hover-border: hsl(43, 100%, 62%);\\n\\t--ck-color-widget-editable-focus-background: var(--ck-color-base-background);\\n\\t--ck-color-widget-drag-handler-icon-color: var(--ck-color-base-background);\\n}\\n\\n.ck .ck-widget {\\n\\toutline-width: var(--ck-widget-outline-thickness);\\n\\toutline-style: solid;\\n\\toutline-color: transparent;\\n\\ttransition: outline-color var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve);\\n\\n\\t@media (prefers-reduced-motion: reduce) {\\n\\t\\ttransition: none;\\n\\t}\\n\\n\\t&.ck-widget_selected,\\n\\t&.ck-widget_selected:hover {\\n\\t\\toutline: var(--ck-widget-outline-thickness) solid var(--ck-color-focus-border);\\n\\t}\\n\\n\\t&:hover {\\n\\t\\toutline-color: var(--ck-color-widget-hover-border);\\n\\t}\\n}\\n\\n.ck .ck-editor__nested-editable {\\n\\tborder: 1px solid transparent;\\n\\n\\t/* The :focus style is applied before .ck-editor__nested-editable_focused class is rendered in the view.\\n\\tThese styles show a different border for a blink of an eye, so `:focus` need to have same styles applied. */\\n\\t&.ck-editor__nested-editable_focused,\\n\\t&:focus {\\n\\t\\t@mixin ck-focus-ring;\\n\\t\\t@mixin ck-box-shadow var(--ck-inner-shadow);\\n\\t\\t@mixin ck-media-default-colors {\\n\\t\\t\\tbackground-color: var(--ck-color-widget-editable-focus-background);\\n\\t\\t}\\n\\t}\\n}\\n\\n.ck .ck-widget.ck-widget_with-selection-handle {\\n\\t& .ck-widget__selection-handle {\\n\\t\\tpadding: 4px;\\n\\t\\tbox-sizing: border-box;\\n\\n\\t\\t/* Background and opacity will be animated as the handler shows up or the widget gets selected. */\\n\\t\\tbackground-color: transparent;\\n\\t\\topacity: 0;\\n\\n\\t\\t/* Transition:\\n\\t\\t * background-color for the .ck-widget_selected state change,\\n\\t\\t * visibility for hiding the handler,\\n\\t\\t * opacity for the proper look of the icon when the handler disappears. */\\n\\t\\ttransition:\\n\\t\\t\\tbackground-color var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve),\\n\\t\\t\\tvisibility var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve),\\n\\t\\t\\topacity var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve);\\n\\n\\t\\t/* Make only top corners round. */\\n\\t\\tborder-radius: var(--ck-border-radius) var(--ck-border-radius) 0 0;\\n\\n\\t\\t/* Place the drag handler outside the widget wrapper. */\\n\\t\\ttransform: translateY(-100%);\\n\\t\\tleft: calc(0px - var(--ck-widget-outline-thickness));\\n\\t\\ttop: 0;\\n\\n\\t\\t@media (prefers-reduced-motion: reduce) {\\n\\t\\t\\ttransition: none;\\n\\t\\t}\\n\\n\\t\\t& .ck-icon {\\n\\t\\t\\t/* Make sure the dimensions of the icon are independent of the fon-size of the content. */\\n\\t\\t\\twidth: var(--ck-widget-handler-icon-size);\\n\\t\\t\\theight: var(--ck-widget-handler-icon-size);\\n\\t\\t\\tcolor: var(--ck-color-widget-drag-handler-icon-color);\\n\\n\\t\\t\\t/* The \\\"selected\\\" part of the icon is invisible by default */\\n\\t\\t\\t& .ck-icon__selected-indicator {\\n\\t\\t\\t\\topacity: 0;\\n\\n\\t\\t\\t\\t/* Note: The animation is longer on purpose. Simply feels better. */\\n\\t\\t\\t\\ttransition: opacity 300ms var(--ck-widget-handler-animation-curve);\\n\\n\\t\\t\\t\\t@media (prefers-reduced-motion: reduce) {\\n\\t\\t\\t\\t\\ttransition: none;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t/* Advertise using the look of the icon that once clicked the handler, the widget will be selected. */\\n\\t\\t&:hover .ck-icon .ck-icon__selected-indicator {\\n\\t\\t\\topacity: 1;\\n\\t\\t}\\n\\t}\\n\\n\\t/* Show the selection handler on mouse hover over the widget, but not for nested widgets. */\\n\\t&:hover > .ck-widget__selection-handle {\\n\\t\\topacity: 1;\\n\\t\\tbackground-color: var(--ck-color-widget-hover-border);\\n\\t}\\n\\n\\t/* Show the selection handler when the widget is selected, but not for nested widgets. */\\n\\t&.ck-widget_selected,\\n\\t&.ck-widget_selected:hover {\\n\\t\\t& > .ck-widget__selection-handle {\\n\\t\\t\\topacity: 1;\\n\\t\\t\\tbackground-color: var(--ck-color-focus-border);\\n\\n\\t\\t\\t/* When the widget is selected, notify the user using the proper look of the icon. */\\n\\t\\t\\t& .ck-icon .ck-icon__selected-indicator {\\n\\t\\t\\t\\topacity: 1;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\\n/* In a RTL environment, align the selection handler to the right side of the widget */\\n/* stylelint-disable-next-line no-descending-specificity */\\n.ck[dir=\\\"rtl\\\"] .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle {\\n\\tleft: auto;\\n\\tright: calc(0px - var(--ck-widget-outline-thickness));\\n}\\n\\n/* https://github.com/ckeditor/ckeditor5/issues/6415 */\\n.ck.ck-editor__editable.ck-read-only .ck-widget {\\n\\t/* Prevent the :hover outline from showing up because of the used outline-color transition. */\\n\\ttransition: none;\\n\\n\\t&:not(.ck-widget_selected) {\\n\\t\\t/* Disable visual effects of hover/active widget when CKEditor is in readOnly mode.\\n\\t\\t * See: https://github.com/ckeditor/ckeditor5/issues/1261\\n\\t\\t *\\n\\t\\t * Leave the unit because this custom property is used in calc() by other features.\\n\\t\\t * See: https://github.com/ckeditor/ckeditor5/issues/6775\\n\\t\\t */\\n\\t\\t--ck-widget-outline-thickness: 0px;\\n\\t}\\n\\n\\t&.ck-widget_with-selection-handle {\\n\\t\\t& .ck-widget__selection-handle,\\n\\t\\t& .ck-widget__selection-handle:hover {\\n\\t\\t\\tbackground: var(--ck-color-widget-blurred-border);\\n\\t\\t}\\n\\t}\\n}\\n\\n/* Style the widget when it's selected but the editable it belongs to lost focus. */\\n/* stylelint-disable-next-line no-descending-specificity */\\n.ck.ck-editor__editable.ck-blurred .ck-widget {\\n\\t&.ck-widget_selected,\\n\\t&.ck-widget_selected:hover {\\n\\t\\toutline-color: var(--ck-color-widget-blurred-border);\\n\\n\\t\\t&.ck-widget_with-selection-handle {\\n\\t\\t\\t& > .ck-widget__selection-handle,\\n\\t\\t\\t& > .ck-widget__selection-handle:hover {\\n\\t\\t\\t\\tbackground: var(--ck-color-widget-blurred-border);\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\\n.ck.ck-editor__editable > .ck-widget.ck-widget_with-selection-handle:first-child,\\n.ck.ck-editor__editable blockquote > .ck-widget.ck-widget_with-selection-handle:first-child {\\n\\t/* Do not crop selection handler if a widget is a first-child in the blockquote or in the root editable.\\n\\tIn fact, anything with overflow: hidden.\\n\\thttps://github.com/ckeditor/ckeditor5-block-quote/issues/28\\n\\thttps://github.com/ckeditor/ckeditor5-widget/issues/44\\n\\thttps://github.com/ckeditor/ckeditor5-widget/issues/66 */\\n\\tmargin-top: calc(1em + var(--ck-widget-handler-icon-size));\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n/**\\n * A visual style of focused element's border.\\n */\\n@define-mixin ck-focus-ring {\\n\\t/* Disable native outline. */\\n\\toutline: none;\\n\\tborder: var(--ck-focus-ring)\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n/**\\n * A helper to combine multiple shadows.\\n */\\n@define-mixin ck-box-shadow $shadowA, $shadowB: 0 0 {\\n\\tbox-shadow: $shadowA, $shadowB;\\n}\\n\\n/**\\n * Gives an element a drop shadow so it looks like a floating panel.\\n */\\n@define-mixin ck-drop-shadow {\\n\\t@mixin ck-box-shadow var(--ck-drop-shadow);\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n@define-mixin ck-media-forced-colors {\\n\\t@media (forced-colors: active) {\\n\\t\\t& {\\n\\t\\t\\t@mixin-content;\\n\\t\\t}\\n\\t}\\n}\\n\\n@define-mixin ck-media-default-colors {\\n\\t@media (forced-colors: none) {\\n\\t\\t& {\\n\\t\\t\\t@mixin-content;\\n\\t\\t}\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck .ck-widget_with-resizer{position:relative}.ck .ck-widget__resizer{display:none;left:0;pointer-events:none;position:absolute;top:0}.ck-focused .ck-widget_with-resizer.ck-widget_selected>.ck-widget__resizer{display:block}.ck .ck-widget__resizer__handle{pointer-events:all;position:absolute}.ck .ck-widget__resizer__handle.ck-widget__resizer__handle-bottom-right,.ck .ck-widget__resizer__handle.ck-widget__resizer__handle-top-left{cursor:nwse-resize}.ck .ck-widget__resizer__handle.ck-widget__resizer__handle-bottom-left,.ck .ck-widget__resizer__handle.ck-widget__resizer__handle-top-right{cursor:nesw-resize}:root{--ck-resizer-size:10px;--ck-resizer-offset:calc(var(--ck-resizer-size)/-2 - 2px);--ck-resizer-border-width:1px}.ck .ck-widget__resizer{outline:1px solid var(--ck-color-resizer)}.ck .ck-widget__resizer__handle{background:var(--ck-color-focus-border);border:var(--ck-resizer-border-width) solid #fff;border-radius:var(--ck-resizer-border-radius);height:var(--ck-resizer-size);width:var(--ck-resizer-size)}.ck .ck-widget__resizer__handle.ck-widget__resizer__handle-top-left{left:var(--ck-resizer-offset);top:var(--ck-resizer-offset)}.ck .ck-widget__resizer__handle.ck-widget__resizer__handle-top-right{right:var(--ck-resizer-offset);top:var(--ck-resizer-offset)}.ck .ck-widget__resizer__handle.ck-widget__resizer__handle-bottom-right{bottom:var(--ck-resizer-offset);right:var(--ck-resizer-offset)}.ck .ck-widget__resizer__handle.ck-widget__resizer__handle-bottom-left{bottom:var(--ck-resizer-offset);left:var(--ck-resizer-offset)}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../ckeditor5-widget/theme/widgetresize.css\",\"webpack://./../ckeditor5-theme-lark/theme/ckeditor5-widget/widgetresize.css\"],\"names\":[],\"mappings\":\"AAKA,4BAEC,iBACD,CAEA,wBACC,YAAa,CAMb,MAAO,CAFP,mBAAoB,CAHpB,iBAAkB,CAMlB,KACD,CAGC,2EACC,aACD,CAGD,gCAIC,kBAAmB,CAHnB,iBAcD,CATC,4IAEC,kBACD,CAEA,4IAEC,kBACD,CCpCD,MACC,sBAAuB,CAGvB,yDAAiE,CACjE,6BACD,CAEA,wBACC,yCACD,CAEA,gCAGC,uCAAwC,CACxC,gDAA6D,CAC7D,6CAA8C,CAH9C,6BAA8B,CAD9B,4BAyBD,CAnBC,oEAEC,6BAA8B,CAD9B,4BAED,CAEA,qEAEC,8BAA+B,CAD/B,4BAED,CAEA,wEACC,+BAAgC,CAChC,8BACD,CAEA,uEACC,+BAAgC,CAChC,6BACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.ck .ck-widget_with-resizer {\\n\\t/* Make the widget wrapper a relative positioning container for the drag handle. */\\n\\tposition: relative;\\n}\\n\\n.ck .ck-widget__resizer {\\n\\tdisplay: none;\\n\\tposition: absolute;\\n\\n\\t/* The wrapper itself should not interfere with the pointer device, only the handles should. */\\n\\tpointer-events: none;\\n\\n\\tleft: 0;\\n\\ttop: 0;\\n}\\n\\n.ck-focused .ck-widget_with-resizer.ck-widget_selected {\\n\\t& > .ck-widget__resizer {\\n\\t\\tdisplay: block;\\n\\t}\\n}\\n\\n.ck .ck-widget__resizer__handle {\\n\\tposition: absolute;\\n\\n\\t/* Resizers are the only UI elements that should interfere with a pointer device. */\\n\\tpointer-events: all;\\n\\n\\t&.ck-widget__resizer__handle-top-left,\\n\\t&.ck-widget__resizer__handle-bottom-right {\\n\\t\\tcursor: nwse-resize;\\n\\t}\\n\\n\\t&.ck-widget__resizer__handle-top-right,\\n\\t&.ck-widget__resizer__handle-bottom-left {\\n\\t\\tcursor: nesw-resize;\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n:root {\\n\\t--ck-resizer-size: 10px;\\n\\n\\t/* Set the resizer with a 50% offset. */\\n\\t--ck-resizer-offset: calc( ( var(--ck-resizer-size) / -2 ) - 2px);\\n\\t--ck-resizer-border-width: 1px;\\n}\\n\\n.ck .ck-widget__resizer {\\n\\toutline: 1px solid var(--ck-color-resizer);\\n}\\n\\n.ck .ck-widget__resizer__handle {\\n\\twidth: var(--ck-resizer-size);\\n\\theight: var(--ck-resizer-size);\\n\\tbackground: var(--ck-color-focus-border);\\n\\tborder: var(--ck-resizer-border-width) solid hsl(0, 0%, 100%);\\n\\tborder-radius: var(--ck-resizer-border-radius);\\n\\n\\t&.ck-widget__resizer__handle-top-left {\\n\\t\\ttop: var(--ck-resizer-offset);\\n\\t\\tleft: var(--ck-resizer-offset);\\n\\t}\\n\\n\\t&.ck-widget__resizer__handle-top-right {\\n\\t\\ttop: var(--ck-resizer-offset);\\n\\t\\tright: var(--ck-resizer-offset);\\n\\t}\\n\\n\\t&.ck-widget__resizer__handle-bottom-right {\\n\\t\\tbottom: var(--ck-resizer-offset);\\n\\t\\tright: var(--ck-resizer-offset);\\n\\t}\\n\\n\\t&.ck-widget__resizer__handle-bottom-left {\\n\\t\\tbottom: var(--ck-resizer-offset);\\n\\t\\tleft: var(--ck-resizer-offset);\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck .ck-widget .ck-widget__type-around__button{display:block;overflow:hidden;position:absolute;z-index:var(--ck-z-default)}.ck .ck-widget .ck-widget__type-around__button svg{left:50%;position:absolute;top:50%;z-index:calc(var(--ck-z-default) + 2)}.ck .ck-widget .ck-widget__type-around__button.ck-widget__type-around__button_before{left:min(10%,30px);top:calc(var(--ck-widget-outline-thickness)*-.5);transform:translateY(-50%)}.ck .ck-widget .ck-widget__type-around__button.ck-widget__type-around__button_after{bottom:calc(var(--ck-widget-outline-thickness)*-.5);right:min(10%,30px);transform:translateY(50%)}.ck .ck-widget.ck-widget_selected>.ck-widget__type-around>.ck-widget__type-around__button:after,.ck .ck-widget>.ck-widget__type-around>.ck-widget__type-around__button:hover:after{content:\\\"\\\";display:block;left:1px;position:absolute;top:1px;z-index:calc(var(--ck-z-default) + 1)}.ck .ck-widget>.ck-widget__type-around>.ck-widget__type-around__fake-caret{display:none;left:0;position:absolute;right:0}.ck .ck-widget:hover>.ck-widget__type-around>.ck-widget__type-around__fake-caret{left:calc(var(--ck-widget-outline-thickness)*-1);right:calc(var(--ck-widget-outline-thickness)*-1)}.ck .ck-widget.ck-widget_type-around_show-fake-caret_before>.ck-widget__type-around>.ck-widget__type-around__fake-caret{display:block;top:calc(var(--ck-widget-outline-thickness)*-1 - 1px)}.ck .ck-widget.ck-widget_type-around_show-fake-caret_after>.ck-widget__type-around>.ck-widget__type-around__fake-caret{bottom:calc(var(--ck-widget-outline-thickness)*-1 - 1px);display:block}.ck.ck-editor__editable.ck-read-only .ck-widget__type-around,.ck.ck-editor__editable.ck-restricted-editing_mode_restricted .ck-widget__type-around,.ck.ck-editor__editable.ck-widget__type-around_disabled .ck-widget__type-around{display:none}:root{--ck-widget-type-around-button-size:20px;--ck-color-widget-type-around-button-active:var(--ck-color-focus-border);--ck-color-widget-type-around-button-hover:var(--ck-color-widget-hover-border);--ck-color-widget-type-around-button-blurred-editable:var(--ck-color-widget-blurred-border);--ck-color-widget-type-around-button-radar-start-alpha:0;--ck-color-widget-type-around-button-radar-end-alpha:.3;--ck-color-widget-type-around-button-icon:var(--ck-color-base-background)}.ck .ck-widget .ck-widget__type-around__button{background:var(--ck-color-widget-type-around-button);border-radius:100px;height:var(--ck-widget-type-around-button-size);opacity:0;pointer-events:none;transition:opacity var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve),background var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve);width:var(--ck-widget-type-around-button-size)}@media (prefers-reduced-motion:reduce){.ck .ck-widget .ck-widget__type-around__button{transition:none}}.ck .ck-widget .ck-widget__type-around__button svg{height:8px;margin-top:1px;transform:translate(-50%,-50%);transition:transform .5s ease;width:10px}@media (prefers-reduced-motion:reduce){.ck .ck-widget .ck-widget__type-around__button svg{transition:none}}.ck .ck-widget .ck-widget__type-around__button svg *{stroke-dasharray:10;stroke-dashoffset:0;fill:none;stroke:var(--ck-color-widget-type-around-button-icon);stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round}.ck .ck-widget .ck-widget__type-around__button svg line{stroke-dasharray:7}.ck .ck-widget .ck-widget__type-around__button:hover{animation:ck-widget-type-around-button-sonar 1s ease infinite}.ck .ck-widget .ck-widget__type-around__button:hover svg polyline{animation:ck-widget-type-around-arrow-dash 2s linear}.ck .ck-widget .ck-widget__type-around__button:hover svg line{animation:ck-widget-type-around-arrow-tip-dash 2s linear}@media (prefers-reduced-motion:reduce){.ck .ck-widget .ck-widget__type-around__button:hover,.ck .ck-widget .ck-widget__type-around__button:hover svg line,.ck .ck-widget .ck-widget__type-around__button:hover svg polyline{animation:none}}.ck .ck-widget.ck-widget_selected>.ck-widget__type-around>.ck-widget__type-around__button,.ck .ck-widget:hover>.ck-widget__type-around>.ck-widget__type-around__button{opacity:1;pointer-events:auto}.ck .ck-widget:not(.ck-widget_selected)>.ck-widget__type-around>.ck-widget__type-around__button{background:var(--ck-color-widget-type-around-button-hover)}.ck .ck-widget.ck-widget_selected>.ck-widget__type-around>.ck-widget__type-around__button,.ck .ck-widget>.ck-widget__type-around>.ck-widget__type-around__button:hover{background:var(--ck-color-widget-type-around-button-active)}.ck .ck-widget.ck-widget_selected>.ck-widget__type-around>.ck-widget__type-around__button:after,.ck .ck-widget>.ck-widget__type-around>.ck-widget__type-around__button:hover:after{background:linear-gradient(135deg,hsla(0,0%,100%,0),hsla(0,0%,100%,.3));border-radius:100px;height:calc(var(--ck-widget-type-around-button-size) - 2px);width:calc(var(--ck-widget-type-around-button-size) - 2px)}.ck .ck-widget.ck-widget_with-selection-handle>.ck-widget__type-around>.ck-widget__type-around__button_before{margin-left:20px}.ck .ck-widget .ck-widget__type-around__fake-caret{animation:ck-widget-type-around-fake-caret-pulse 1s linear infinite normal forwards;background:var(--ck-color-base-text);height:1px;outline:1px solid hsla(0,0%,100%,.5);pointer-events:none}.ck .ck-widget.ck-widget_selected.ck-widget_type-around_show-fake-caret_after,.ck .ck-widget.ck-widget_selected.ck-widget_type-around_show-fake-caret_before{outline-color:transparent}.ck .ck-widget.ck-widget_type-around_show-fake-caret_after.ck-widget_selected:hover,.ck .ck-widget.ck-widget_type-around_show-fake-caret_before.ck-widget_selected:hover{outline-color:var(--ck-color-widget-hover-border)}.ck .ck-widget.ck-widget_type-around_show-fake-caret_after>.ck-widget__type-around>.ck-widget__type-around__button,.ck .ck-widget.ck-widget_type-around_show-fake-caret_before>.ck-widget__type-around>.ck-widget__type-around__button{opacity:0;pointer-events:none}.ck .ck-widget.ck-widget_type-around_show-fake-caret_after.ck-widget_selected.ck-widget_with-resizer>.ck-widget__resizer,.ck .ck-widget.ck-widget_type-around_show-fake-caret_after.ck-widget_with-selection-handle.ck-widget_selected:hover>.ck-widget__selection-handle,.ck .ck-widget.ck-widget_type-around_show-fake-caret_after.ck-widget_with-selection-handle.ck-widget_selected>.ck-widget__selection-handle,.ck .ck-widget.ck-widget_type-around_show-fake-caret_before.ck-widget_selected.ck-widget_with-resizer>.ck-widget__resizer,.ck .ck-widget.ck-widget_type-around_show-fake-caret_before.ck-widget_with-selection-handle.ck-widget_selected:hover>.ck-widget__selection-handle,.ck .ck-widget.ck-widget_type-around_show-fake-caret_before.ck-widget_with-selection-handle.ck-widget_selected>.ck-widget__selection-handle{opacity:0}.ck[dir=rtl] .ck-widget.ck-widget_with-selection-handle .ck-widget__type-around>.ck-widget__type-around__button_before{margin-left:0;margin-right:20px}.ck-editor__nested-editable.ck-editor__editable_selected .ck-widget.ck-widget_selected>.ck-widget__type-around>.ck-widget__type-around__button,.ck-editor__nested-editable.ck-editor__editable_selected .ck-widget:hover>.ck-widget__type-around>.ck-widget__type-around__button{opacity:0;pointer-events:none}.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected>.ck-widget__type-around>.ck-widget__type-around__button:not(:hover){background:var(--ck-color-widget-type-around-button-blurred-editable)}.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected>.ck-widget__type-around>.ck-widget__type-around__button:not(:hover) svg *{stroke:#999}@keyframes ck-widget-type-around-arrow-dash{0%{stroke-dashoffset:10}20%,to{stroke-dashoffset:0}}@keyframes ck-widget-type-around-arrow-tip-dash{0%,20%{stroke-dashoffset:7}40%,to{stroke-dashoffset:0}}@keyframes ck-widget-type-around-button-sonar{0%{box-shadow:0 0 0 0 hsla(var(--ck-color-focus-border-coordinates),var(--ck-color-widget-type-around-button-radar-start-alpha))}50%{box-shadow:0 0 0 5px hsla(var(--ck-color-focus-border-coordinates),var(--ck-color-widget-type-around-button-radar-end-alpha))}to{box-shadow:0 0 0 5px hsla(var(--ck-color-focus-border-coordinates),var(--ck-color-widget-type-around-button-radar-start-alpha))}}@keyframes ck-widget-type-around-fake-caret-pulse{0%{opacity:1}49%{opacity:1}50%{opacity:0}99%{opacity:0}to{opacity:1}}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../ckeditor5-widget/theme/widgettypearound.css\",\"webpack://./../ckeditor5-theme-lark/theme/ckeditor5-widget/widgettypearound.css\"],\"names\":[],\"mappings\":\"AASC,+CACC,aAAc,CAEd,eAAgB,CADhB,iBAAkB,CAElB,2BAwBD,CAtBC,mDAGC,QAAS,CAFT,iBAAkB,CAClB,OAAQ,CAER,qCACD,CAEA,qFAGC,kBAAoB,CADpB,gDAAoD,CAGpD,0BACD,CAEA,oFAEC,mDAAuD,CACvD,mBAAqB,CAErB,yBACD,CAUA,mLACC,UAAW,CACX,aAAc,CAGd,QAAS,CAFT,iBAAkB,CAClB,OAAQ,CAER,qCACD,CAMD,2EACC,YAAa,CAEb,MAAO,CADP,iBAAkB,CAElB,OACD,CAOA,iFACC,gDAAqD,CACrD,iDACD,CAKA,wHAEC,aAAc,CADd,qDAED,CAKA,uHACC,wDAA6D,CAC7D,aACD,CAoBD,mOACC,YACD,CC3GA,MACC,wCAAyC,CACzC,wEAAyE,CACzE,8EAA+E,CAC/E,2FAA4F,CAC5F,wDAAyD,CACzD,uDAAwD,CACxD,yEACD,CAgBC,+CAGC,oDAAqD,CACrD,mBAAoB,CAFpB,+CAAgD,CAVjD,SAAU,CACV,mBAAoB,CAYnB,uMAAyM,CAJzM,8CAwED,CAhEC,uCATD,+CAUE,eA+DF,CA9DC,CAEA,mDAEC,UAAW,CAGX,cAAe,CAFf,8BAA+B,CAC/B,6BAA8B,CAH9B,UAwBD,CAlBC,uCAPD,mDAQE,eAiBF,CAhBC,CAEA,qDACC,mBAAoB,CACpB,mBAAoB,CAEpB,SAAU,CACV,qDAAsD,CACtD,kBAAmB,CACnB,oBAAqB,CACrB,qBACD,CAEA,wDACC,kBACD,CAGD,qDAIC,6DA4BD,CAtBE,kEACC,oDACD,CAEA,8DACC,wDACD,CAGD,uCAQE,qLACC,cACD,CAEF,CASD,uKA7FD,SAAU,CACV,mBA8FC,CAOD,gGACC,0DACD,CAOA,uKAEC,2DAQD,CANC,mLAIC,uEAAkF,CADlF,mBAAoB,CADpB,2DAA4D,CAD5D,0DAID,CAOD,8GACC,gBACD,CAKA,mDAGC,mFAAoF,CAOpF,oCAAqC,CARrC,UAAW,CAOX,oCAAwC,CARxC,mBAUD,CAOC,6JAEC,yBACD,CAUA,yKACC,iDACD,CAMA,uOAxKD,SAAU,CACV,mBAyKC,CAoBA,6yBACC,SACD,CASF,uHACC,aAAc,CACd,iBACD,CAYG,iRAxNF,SAAU,CACV,mBAyNE,CAQH,kIACC,qEAKD,CAHC,wIACC,WACD,CAGD,4CACC,GACC,oBACD,CACA,OACC,mBACD,CACD,CAEA,gDACC,OACC,mBACD,CACA,OACC,mBACD,CACD,CAEA,8CACC,GACC,6HACD,CACA,IACC,6HACD,CACA,GACC,+HACD,CACD,CAEA,kDACC,GACC,SACD,CACA,IACC,SACD,CACA,IACC,SACD,CACA,IACC,SACD,CACA,GACC,SACD,CACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.ck .ck-widget {\\n\\t/*\\n\\t * Styles of the type around buttons\\n\\t */\\n\\t& .ck-widget__type-around__button {\\n\\t\\tdisplay: block;\\n\\t\\tposition: absolute;\\n\\t\\toverflow: hidden;\\n\\t\\tz-index: var(--ck-z-default);\\n\\n\\t\\t& svg {\\n\\t\\t\\tposition: absolute;\\n\\t\\t\\ttop: 50%;\\n\\t\\t\\tleft: 50%;\\n\\t\\t\\tz-index: calc(var(--ck-z-default) + 2);\\n\\t\\t}\\n\\n\\t\\t&.ck-widget__type-around__button_before {\\n\\t\\t\\t/* Place it in the middle of the outline */\\n\\t\\t\\ttop: calc(-0.5 * var(--ck-widget-outline-thickness));\\n\\t\\t\\tleft: min(10%, 30px);\\n\\n\\t\\t\\ttransform: translateY(-50%);\\n\\t\\t}\\n\\n\\t\\t&.ck-widget__type-around__button_after {\\n\\t\\t\\t/* Place it in the middle of the outline */\\n\\t\\t\\tbottom: calc(-0.5 * var(--ck-widget-outline-thickness));\\n\\t\\t\\tright: min(10%, 30px);\\n\\n\\t\\t\\ttransform: translateY(50%);\\n\\t\\t}\\n\\t}\\n\\n\\t/*\\n\\t * Styles for the buttons when:\\n\\t * - the widget is selected,\\n\\t * - or the button is being hovered (regardless of the widget state).\\n\\t */\\n\\t&.ck-widget_selected > .ck-widget__type-around > .ck-widget__type-around__button,\\n\\t& > .ck-widget__type-around > .ck-widget__type-around__button:hover {\\n\\t\\t&::after {\\n\\t\\t\\tcontent: \\\"\\\";\\n\\t\\t\\tdisplay: block;\\n\\t\\t\\tposition: absolute;\\n\\t\\t\\ttop: 1px;\\n\\t\\t\\tleft: 1px;\\n\\t\\t\\tz-index: calc(var(--ck-z-default) + 1);\\n\\t\\t}\\n\\t}\\n\\n\\t/*\\n\\t * Styles for the horizontal \\\"fake caret\\\" which is displayed when the user navigates using the keyboard.\\n\\t */\\n\\t& > .ck-widget__type-around > .ck-widget__type-around__fake-caret {\\n\\t\\tdisplay: none;\\n\\t\\tposition: absolute;\\n\\t\\tleft: 0;\\n\\t\\tright: 0;\\n\\t}\\n\\n\\t/*\\n\\t * When the widget is hovered the \\\"fake caret\\\" would normally be narrower than the\\n\\t * extra outline displayed around the widget. Let's extend the \\\"fake caret\\\" to match\\n\\t * the full width of the widget.\\n\\t */\\n\\t&:hover > .ck-widget__type-around > .ck-widget__type-around__fake-caret {\\n\\t\\tleft: calc( -1 * var(--ck-widget-outline-thickness) );\\n\\t\\tright: calc( -1 * var(--ck-widget-outline-thickness) );\\n\\t}\\n\\n\\t/*\\n\\t * Styles for the horizontal \\\"fake caret\\\" when it should be displayed before the widget (backward keyboard navigation).\\n\\t */\\n\\t&.ck-widget_type-around_show-fake-caret_before > .ck-widget__type-around > .ck-widget__type-around__fake-caret {\\n\\t\\ttop: calc( -1 * var(--ck-widget-outline-thickness) - 1px );\\n\\t\\tdisplay: block;\\n\\t}\\n\\n\\t/*\\n\\t * Styles for the horizontal \\\"fake caret\\\" when it should be displayed after the widget (forward keyboard navigation).\\n\\t */\\n\\t&.ck-widget_type-around_show-fake-caret_after > .ck-widget__type-around > .ck-widget__type-around__fake-caret {\\n\\t\\tbottom: calc( -1 * var(--ck-widget-outline-thickness) - 1px );\\n\\t\\tdisplay: block;\\n\\t}\\n}\\n\\n/*\\n * Integration with the read-only mode of the editor.\\n */\\n.ck.ck-editor__editable.ck-read-only .ck-widget__type-around {\\n\\tdisplay: none;\\n}\\n\\n/*\\n * Integration with the restricted editing mode (feature) of the editor.\\n */\\n.ck.ck-editor__editable.ck-restricted-editing_mode_restricted .ck-widget__type-around {\\n\\tdisplay: none;\\n}\\n\\n/*\\n * Integration with the #isEnabled property of the WidgetTypeAround plugin.\\n */\\n.ck.ck-editor__editable.ck-widget__type-around_disabled .ck-widget__type-around {\\n\\tdisplay: none;\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n:root {\\n\\t--ck-widget-type-around-button-size: 20px;\\n\\t--ck-color-widget-type-around-button-active: var(--ck-color-focus-border);\\n\\t--ck-color-widget-type-around-button-hover: var(--ck-color-widget-hover-border);\\n\\t--ck-color-widget-type-around-button-blurred-editable: var(--ck-color-widget-blurred-border);\\n\\t--ck-color-widget-type-around-button-radar-start-alpha: 0;\\n\\t--ck-color-widget-type-around-button-radar-end-alpha: .3;\\n\\t--ck-color-widget-type-around-button-icon: var(--ck-color-base-background);\\n}\\n\\n@define-mixin ck-widget-type-around-button-visible {\\n\\topacity: 1;\\n\\tpointer-events: auto;\\n}\\n\\n@define-mixin ck-widget-type-around-button-hidden {\\n\\topacity: 0;\\n\\tpointer-events: none;\\n}\\n\\n.ck .ck-widget {\\n\\t/*\\n\\t * Styles of the type around buttons\\n\\t */\\n\\t& .ck-widget__type-around__button {\\n\\t\\twidth: var(--ck-widget-type-around-button-size);\\n\\t\\theight: var(--ck-widget-type-around-button-size);\\n\\t\\tbackground: var(--ck-color-widget-type-around-button);\\n\\t\\tborder-radius: 100px;\\n\\t\\ttransition: opacity var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve), background var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve);\\n\\n\\t\\t@mixin ck-widget-type-around-button-hidden;\\n\\n\\t\\t@media (prefers-reduced-motion: reduce) {\\n\\t\\t\\ttransition: none;\\n\\t\\t}\\n\\n\\t\\t& svg {\\n\\t\\t\\twidth: 10px;\\n\\t\\t\\theight: 8px;\\n\\t\\t\\ttransform: translate(-50%,-50%);\\n\\t\\t\\ttransition: transform .5s ease;\\n\\t\\t\\tmargin-top: 1px;\\n\\n\\t\\t\\t@media (prefers-reduced-motion: reduce) {\\n\\t\\t\\t\\ttransition: none;\\n\\t\\t\\t}\\n\\n\\t\\t\\t& * {\\n\\t\\t\\t\\tstroke-dasharray: 10;\\n\\t\\t\\t\\tstroke-dashoffset: 0;\\n\\n\\t\\t\\t\\tfill: none;\\n\\t\\t\\t\\tstroke: var(--ck-color-widget-type-around-button-icon);\\n\\t\\t\\t\\tstroke-width: 1.5px;\\n\\t\\t\\t\\tstroke-linecap: round;\\n\\t\\t\\t\\tstroke-linejoin: round;\\n\\t\\t\\t}\\n\\n\\t\\t\\t& line {\\n\\t\\t\\t\\tstroke-dasharray: 7;\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t&:hover {\\n\\t\\t\\t/*\\n\\t\\t\\t * Display the \\\"sonar\\\" around the button when hovered.\\n\\t\\t\\t */\\n\\t\\t\\tanimation: ck-widget-type-around-button-sonar 1s ease infinite;\\n\\n\\t\\t\\t/*\\n\\t\\t\\t * Animate active button's icon.\\n\\t\\t\\t */\\n\\t\\t\\t& svg {\\n\\t\\t\\t\\t& polyline {\\n\\t\\t\\t\\t\\tanimation: ck-widget-type-around-arrow-dash 2s linear;\\n\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\t& line {\\n\\t\\t\\t\\t\\tanimation: ck-widget-type-around-arrow-tip-dash 2s linear;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\n\\t\\t\\t@media (prefers-reduced-motion: reduce) {\\n\\t\\t\\t\\tanimation: none;\\n\\n\\t\\t\\t\\t& svg {\\n\\t\\t\\t\\t\\t& polyline {\\n\\t\\t\\t\\t\\t\\tanimation: none;\\n\\t\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\t\\t& line {\\n\\t\\t\\t\\t\\t\\tanimation: none;\\n\\t\\t\\t\\t\\t}\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t/*\\n\\t * Show type around buttons when the widget gets selected or being hovered.\\n\\t */\\n\\t&.ck-widget_selected,\\n\\t&:hover {\\n\\t\\t& > .ck-widget__type-around > .ck-widget__type-around__button {\\n\\t\\t\\t@mixin ck-widget-type-around-button-visible;\\n\\t\\t}\\n\\t}\\n\\n\\t/*\\n\\t * Styles for the buttons when the widget is NOT selected (but the buttons are visible\\n\\t * and still can be hovered).\\n\\t */\\n\\t&:not(.ck-widget_selected) > .ck-widget__type-around > .ck-widget__type-around__button {\\n\\t\\tbackground: var(--ck-color-widget-type-around-button-hover);\\n\\t}\\n\\n\\t/*\\n\\t * Styles for the buttons when:\\n\\t * - the widget is selected,\\n\\t * - or the button is being hovered (regardless of the widget state).\\n\\t */\\n\\t&.ck-widget_selected > .ck-widget__type-around > .ck-widget__type-around__button,\\n\\t& > .ck-widget__type-around > .ck-widget__type-around__button:hover {\\n\\t\\tbackground: var(--ck-color-widget-type-around-button-active);\\n\\n\\t\\t&::after {\\n\\t\\t\\twidth: calc(var(--ck-widget-type-around-button-size) - 2px);\\n\\t\\t\\theight: calc(var(--ck-widget-type-around-button-size) - 2px);\\n\\t\\t\\tborder-radius: 100px;\\n\\t\\t\\tbackground: linear-gradient(135deg, hsla(0,0%,100%,0) 0%, hsla(0,0%,100%,.3) 100%);\\n\\t\\t}\\n\\t}\\n\\n\\t/*\\n\\t * Styles for the \\\"before\\\" button when the widget has a selection handle. Because some space\\n\\t * is consumed by the handle, the button must be moved slightly to the right to let it breathe.\\n\\t */\\n\\t&.ck-widget_with-selection-handle > .ck-widget__type-around > .ck-widget__type-around__button_before {\\n\\t\\tmargin-left: 20px;\\n\\t}\\n\\n\\t/*\\n\\t * Styles for the horizontal \\\"fake caret\\\" which is displayed when the user navigates using the keyboard.\\n\\t */\\n\\t& .ck-widget__type-around__fake-caret {\\n\\t\\tpointer-events: none;\\n\\t\\theight: 1px;\\n\\t\\tanimation: ck-widget-type-around-fake-caret-pulse linear 1s infinite normal forwards;\\n\\n\\t\\t/*\\n\\t\\t * The semi-transparent-outline+background combo improves the contrast\\n\\t\\t * when the background underneath the fake caret is dark.\\n\\t\\t */\\n\\t\\toutline: solid 1px hsla(0, 0%, 100%, .5);\\n\\t\\tbackground: var(--ck-color-base-text);\\n\\t}\\n\\n\\t/*\\n\\t * Styles of the widget when the \\\"fake caret\\\" is blinking (e.g. upon keyboard navigation).\\n\\t * Despite the widget being physically selected in the model, its outline should disappear.\\n\\t */\\n\\t&.ck-widget_selected {\\n\\t\\t&.ck-widget_type-around_show-fake-caret_before,\\n\\t\\t&.ck-widget_type-around_show-fake-caret_after {\\n\\t\\t\\toutline-color: transparent;\\n\\t\\t}\\n\\t}\\n\\n\\t&.ck-widget_type-around_show-fake-caret_before,\\n\\t&.ck-widget_type-around_show-fake-caret_after {\\n\\t\\t/*\\n\\t\\t * When the \\\"fake caret\\\" is visible we simulate that the widget is not selected\\n\\t\\t * (despite being physically selected), so the outline color should be for the\\n\\t\\t * unselected widget.\\n\\t\\t */\\n\\t\\t&.ck-widget_selected:hover {\\n\\t\\t\\toutline-color: var(--ck-color-widget-hover-border);\\n\\t\\t}\\n\\n\\t\\t/*\\n\\t\\t * Styles of the type around buttons when the \\\"fake caret\\\" is blinking (e.g. upon keyboard navigation).\\n\\t\\t * In this state, the type around buttons would collide with the fake carets so they should disappear.\\n\\t\\t */\\n\\t\\t& > .ck-widget__type-around > .ck-widget__type-around__button {\\n\\t\\t\\t@mixin ck-widget-type-around-button-hidden;\\n\\t\\t}\\n\\n\\t\\t/*\\n\\t\\t * Fake horizontal caret integration with the selection handle. When the caret is visible, simply\\n\\t\\t * hide the handle because it intersects with the caret (and does not make much sense anyway).\\n\\t\\t */\\n\\t\\t&.ck-widget_with-selection-handle {\\n\\t\\t\\t&.ck-widget_selected,\\n\\t\\t\\t&.ck-widget_selected:hover {\\n\\t\\t\\t\\t& > .ck-widget__selection-handle {\\n\\t\\t\\t\\t\\topacity: 0\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t/*\\n\\t\\t * Fake horizontal caret integration with the resize UI. When the caret is visible, simply\\n\\t\\t * hide the resize UI because it creates too much noise. It can be visible when the user\\n\\t\\t * hovers the widget, though.\\n\\t\\t */\\n\\t\\t&.ck-widget_selected.ck-widget_with-resizer > .ck-widget__resizer {\\n\\t\\t\\topacity: 0\\n\\t\\t}\\n\\t}\\n}\\n\\n/*\\n * Styles for the \\\"before\\\" button when the widget has a selection handle in an RTL environment.\\n * The selection handler is aligned to the right side of the widget so there is no need to create\\n * additional space for it next to the \\\"before\\\" button.\\n */\\n.ck[dir=\\\"rtl\\\"] .ck-widget.ck-widget_with-selection-handle .ck-widget__type-around > .ck-widget__type-around__button_before {\\n\\tmargin-left: 0;\\n\\tmargin-right: 20px;\\n}\\n\\n/*\\n * Hide type around buttons when the widget is selected as a child of a selected\\n * nested editable (e.g. mulit-cell table selection).\\n *\\n * See https://github.com/ckeditor/ckeditor5/issues/7263.\\n */\\n.ck-editor__nested-editable.ck-editor__editable_selected {\\n\\t& .ck-widget {\\n\\t\\t&.ck-widget_selected,\\n\\t\\t&:hover {\\n\\t\\t\\t& > .ck-widget__type-around > .ck-widget__type-around__button {\\n\\t\\t\\t\\t@mixin ck-widget-type-around-button-hidden;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\\n/*\\n * Styles for the buttons when the widget is selected but the user clicked outside of the editor (blurred the editor).\\n */\\n.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected > .ck-widget__type-around > .ck-widget__type-around__button:not(:hover) {\\n\\tbackground: var(--ck-color-widget-type-around-button-blurred-editable);\\n\\n\\t& svg * {\\n\\t\\tstroke: hsl(0,0%,60%);\\n\\t}\\n}\\n\\n@keyframes ck-widget-type-around-arrow-dash {\\n\\t0% {\\n\\t\\tstroke-dashoffset: 10;\\n\\t}\\n\\t20%, 100% {\\n\\t\\tstroke-dashoffset: 0;\\n\\t}\\n}\\n\\n@keyframes ck-widget-type-around-arrow-tip-dash {\\n\\t0%, 20% {\\n\\t\\tstroke-dashoffset: 7;\\n\\t}\\n\\t40%, 100% {\\n\\t\\tstroke-dashoffset: 0;\\n\\t}\\n}\\n\\n@keyframes ck-widget-type-around-button-sonar {\\n\\t0% {\\n\\t\\tbox-shadow: 0 0 0 0 hsla(var(--ck-color-focus-border-coordinates), var(--ck-color-widget-type-around-button-radar-start-alpha));\\n\\t}\\n\\t50% {\\n\\t\\tbox-shadow: 0 0 0 5px hsla(var(--ck-color-focus-border-coordinates), var(--ck-color-widget-type-around-button-radar-end-alpha));\\n\\t}\\n\\t100% {\\n\\t\\tbox-shadow: 0 0 0 5px hsla(var(--ck-color-focus-border-coordinates), var(--ck-color-widget-type-around-button-radar-start-alpha));\\n\\t}\\n}\\n\\n@keyframes ck-widget-type-around-fake-caret-pulse {\\n\\t0% {\\n\\t\\topacity: 1;\\n\\t}\\n\\t49% {\\n\\t\\topacity: 1;\\n\\t}\\n\\t50% {\\n\\t\\topacity: 0;\\n\\t}\\n\\t99% {\\n\\t\\topacity: 0;\\n\\t}\\n\\t100% {\\n\\t\\topacity: 1;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","\"use strict\";\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\n// css base code, injected by the css-loader\n// eslint-disable-next-line func-names\nmodule.exports = function (cssWithMappingToString) {\n var list = []; // return the list of modules as css string\n\n list.toString = function toString() {\n return this.map(function (item) {\n var content = cssWithMappingToString(item);\n\n if (item[2]) {\n return \"@media \".concat(item[2], \" {\").concat(content, \"}\");\n }\n\n return content;\n }).join(\"\");\n }; // import a list of modules into the list\n // eslint-disable-next-line func-names\n\n\n list.i = function (modules, mediaQuery, dedupe) {\n if (typeof modules === \"string\") {\n // eslint-disable-next-line no-param-reassign\n modules = [[null, modules, \"\"]];\n }\n\n var alreadyImportedModules = {};\n\n if (dedupe) {\n for (var i = 0; i < this.length; i++) {\n // eslint-disable-next-line prefer-destructuring\n var id = this[i][0];\n\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n }\n\n for (var _i = 0; _i < modules.length; _i++) {\n var item = [].concat(modules[_i]);\n\n if (dedupe && alreadyImportedModules[item[0]]) {\n // eslint-disable-next-line no-continue\n continue;\n }\n\n if (mediaQuery) {\n if (!item[2]) {\n item[2] = mediaQuery;\n } else {\n item[2] = \"\".concat(mediaQuery, \" and \").concat(item[2]);\n }\n }\n\n list.push(item);\n }\n };\n\n return list;\n};","\"use strict\";\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr && (typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]); if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nmodule.exports = function cssWithMappingToString(item) {\n var _item = _slicedToArray(item, 4),\n content = _item[1],\n cssMapping = _item[3];\n\n if (!cssMapping) {\n return content;\n }\n\n if (typeof btoa === \"function\") {\n // eslint-disable-next-line no-undef\n var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(cssMapping))));\n var data = \"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(base64);\n var sourceMapping = \"/*# \".concat(data, \" */\");\n var sourceURLs = cssMapping.sources.map(function (source) {\n return \"/*# sourceURL=\".concat(cssMapping.sourceRoot || \"\").concat(source, \" */\");\n });\n return [content].concat(sourceURLs).concat([sourceMapping]).join(\"\\n\");\n }\n\n return [content].join(\"\\n\");\n};","\"use strict\";\n\nvar isOldIE = function isOldIE() {\n var memo;\n return function memorize() {\n if (typeof memo === 'undefined') {\n // Test for IE <= 9 as proposed by Browserhacks\n // @see http://browserhacks.com/#hack-e71d8692f65334173fee715c222cb805\n // Tests for existence of standard globals is to allow style-loader\n // to operate correctly into non-standard environments\n // @see https://github.com/webpack-contrib/style-loader/issues/177\n memo = Boolean(window && document && document.all && !window.atob);\n }\n\n return memo;\n };\n}();\n\nvar getTarget = function getTarget() {\n var memo = {};\n return function memorize(target) {\n if (typeof memo[target] === 'undefined') {\n var styleTarget = document.querySelector(target); // Special case to return head of iframe instead of iframe itself\n\n if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n try {\n // This will throw an exception if access to iframe is blocked\n // due to cross-origin restrictions\n styleTarget = styleTarget.contentDocument.head;\n } catch (e) {\n // istanbul ignore next\n styleTarget = null;\n }\n }\n\n memo[target] = styleTarget;\n }\n\n return memo[target];\n };\n}();\n\nvar stylesInDom = [];\n\nfunction getIndexByIdentifier(identifier) {\n var result = -1;\n\n for (var i = 0; i < stylesInDom.length; i++) {\n if (stylesInDom[i].identifier === identifier) {\n result = i;\n break;\n }\n }\n\n return result;\n}\n\nfunction modulesToDom(list, options) {\n var idCountMap = {};\n var identifiers = [];\n\n for (var i = 0; i < list.length; i++) {\n var item = list[i];\n var id = options.base ? item[0] + options.base : item[0];\n var count = idCountMap[id] || 0;\n var identifier = \"\".concat(id, \" \").concat(count);\n idCountMap[id] = count + 1;\n var index = getIndexByIdentifier(identifier);\n var obj = {\n css: item[1],\n media: item[2],\n sourceMap: item[3]\n };\n\n if (index !== -1) {\n stylesInDom[index].references++;\n stylesInDom[index].updater(obj);\n } else {\n stylesInDom.push({\n identifier: identifier,\n updater: addStyle(obj, options),\n references: 1\n });\n }\n\n identifiers.push(identifier);\n }\n\n return identifiers;\n}\n\nfunction insertStyleElement(options) {\n var style = document.createElement('style');\n var attributes = options.attributes || {};\n\n if (typeof attributes.nonce === 'undefined') {\n var nonce = typeof __webpack_nonce__ !== 'undefined' ? __webpack_nonce__ : null;\n\n if (nonce) {\n attributes.nonce = nonce;\n }\n }\n\n Object.keys(attributes).forEach(function (key) {\n style.setAttribute(key, attributes[key]);\n });\n\n if (typeof options.insert === 'function') {\n options.insert(style);\n } else {\n var target = getTarget(options.insert || 'head');\n\n if (!target) {\n throw new Error(\"Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.\");\n }\n\n target.appendChild(style);\n }\n\n return style;\n}\n\nfunction removeStyleElement(style) {\n // istanbul ignore if\n if (style.parentNode === null) {\n return false;\n }\n\n style.parentNode.removeChild(style);\n}\n/* istanbul ignore next */\n\n\nvar replaceText = function replaceText() {\n var textStore = [];\n return function replace(index, replacement) {\n textStore[index] = replacement;\n return textStore.filter(Boolean).join('\\n');\n };\n}();\n\nfunction applyToSingletonTag(style, index, remove, obj) {\n var css = remove ? '' : obj.media ? \"@media \".concat(obj.media, \" {\").concat(obj.css, \"}\") : obj.css; // For old IE\n\n /* istanbul ignore if */\n\n if (style.styleSheet) {\n style.styleSheet.cssText = replaceText(index, css);\n } else {\n var cssNode = document.createTextNode(css);\n var childNodes = style.childNodes;\n\n if (childNodes[index]) {\n style.removeChild(childNodes[index]);\n }\n\n if (childNodes.length) {\n style.insertBefore(cssNode, childNodes[index]);\n } else {\n style.appendChild(cssNode);\n }\n }\n}\n\nfunction applyToTag(style, options, obj) {\n var css = obj.css;\n var media = obj.media;\n var sourceMap = obj.sourceMap;\n\n if (media) {\n style.setAttribute('media', media);\n } else {\n style.removeAttribute('media');\n }\n\n if (sourceMap && typeof btoa !== 'undefined') {\n css += \"\\n/*# sourceMappingURL=data:application/json;base64,\".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), \" */\");\n } // For old IE\n\n /* istanbul ignore if */\n\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n while (style.firstChild) {\n style.removeChild(style.firstChild);\n }\n\n style.appendChild(document.createTextNode(css));\n }\n}\n\nvar singleton = null;\nvar singletonCounter = 0;\n\nfunction addStyle(obj, options) {\n var style;\n var update;\n var remove;\n\n if (options.singleton) {\n var styleIndex = singletonCounter++;\n style = singleton || (singleton = insertStyleElement(options));\n update = applyToSingletonTag.bind(null, style, styleIndex, false);\n remove = applyToSingletonTag.bind(null, style, styleIndex, true);\n } else {\n style = insertStyleElement(options);\n update = applyToTag.bind(null, style, options);\n\n remove = function remove() {\n removeStyleElement(style);\n };\n }\n\n update(obj);\n return function updateStyle(newObj) {\n if (newObj) {\n if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap) {\n return;\n }\n\n update(obj = newObj);\n } else {\n remove();\n }\n };\n}\n\nmodule.exports = function (list, options) {\n options = options || {}; // Force single-tag solution on IE6-9, which has a hard limit on the # of `);\n const root = this.attachShadow({ mode: 'open' });\n root.appendChild(template.content.cloneNode(true));\n root.addEventListener('move', this);\n this[$parts] = this[$sliders].map((slider) => new slider(root));\n }\n connectedCallback() {\n // A user may set a property on an _instance_ of an element,\n // before its prototype has been connected to this class.\n // If so, we need to run it through the proper class setter.\n if (this.hasOwnProperty('color')) {\n const value = this.color;\n delete this['color'];\n this.color = value;\n }\n else if (!this.color) {\n this.color = this.colorModel.defaultColor;\n }\n }\n attributeChangedCallback(_attr, _oldVal, newVal) {\n const color = this.colorModel.fromAttr(newVal);\n if (!this[$isSame](color)) {\n this.color = color;\n }\n }\n handleEvent(event) {\n // Merge the current HSV color object with updated params.\n const oldHsva = this[$hsva];\n const newHsva = { ...oldHsva, ...event.detail };\n this[$update](newHsva);\n let newColor;\n if (!equalColorObjects(newHsva, oldHsva) &&\n !this[$isSame]((newColor = this.colorModel.fromHsva(newHsva)))) {\n this[$color] = newColor;\n fire(this, 'color-changed', { value: newColor });\n }\n }\n [$isSame](color) {\n return this.color && this.colorModel.equal(color, this.color);\n }\n [$update](hsva) {\n this[$hsva] = hsva;\n this[$parts].forEach((part) => part.update(hsva));\n }\n}\n//# sourceMappingURL=color-picker.js.map","export default `[part=hue]{flex:0 0 24px;background:linear-gradient(to right,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red 100%)}[part=hue-pointer]{top:50%;z-index:2}`;\n//# sourceMappingURL=hue.js.map","export default `[part=saturation]{flex-grow:1;border-color:transparent;border-bottom:12px solid #000;border-radius:8px 8px 0 0;background-image:linear-gradient(to top,#000,transparent),linear-gradient(to right,#fff,rgba(255,255,255,0));box-shadow:inset 0 0 0 1px rgba(0,0,0,.05)}[part=saturation-pointer]{z-index:3}`;\n//# sourceMappingURL=saturation.js.map","import { ColorPicker } from '../components/color-picker.js';\nimport { hexToHsva, hsvaToHex } from '../utils/convert.js';\nimport { equalHex } from '../utils/compare.js';\nconst colorModel = {\n defaultColor: '#000',\n toHsva: hexToHsva,\n fromHsva: ({ h, s, v }) => hsvaToHex({ h, s, v, a: 1 }),\n equal: equalHex,\n fromAttr: (color) => color\n};\nexport class HexBase extends ColorPicker {\n get colorModel() {\n return colorModel;\n }\n}\n//# sourceMappingURL=hex.js.map","import api from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./colorpicker.css\";\n\nvar options = {\"injectType\":\"singletonStyleTag\",\"attributes\":{\"data-cke\":true}};\n\noptions.insert = \"head\";\noptions.singleton = true;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module ui/colorpicker/colorpickerview\n */\n\nimport { convertColor, convertToHex, registerCustomElement, type ColorPickerViewConfig } from './utils.js';\n\nimport type { HexColor } from '@ckeditor/ckeditor5-core';\nimport { type Locale, global, env } from '@ckeditor/ckeditor5-utils';\nimport { debounce, type DebouncedFunc } from 'lodash-es';\nimport View from '../view.js';\nimport type InputTextView from '../inputtext/inputtextview.js';\nimport type ViewCollection from '../viewcollection.js';\nimport LabeledFieldView from '../labeledfield/labeledfieldview.js';\nimport { createLabeledInputText } from '../labeledfield/utils.js';\n\n// Custom export due to https://github.com/ckeditor/ckeditor5/issues/15698.\nimport { HexBase } from 'vanilla-colorful/lib/entrypoints/hex';\nimport '../../theme/components/colorpicker/colorpicker.css';\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'hex-color-picker': HexBase;\n\t}\n}\n\nconst waitingTime = 150;\n\n/**\n * A class which represents a color picker with an input field for defining custom colors.\n */\nexport default class ColorPickerView extends View {\n\t/**\n\t * Element with saturation and hue sliders.\n\t */\n\tdeclare public picker: HexBase;\n\n\t/**\n\t * Container for a `#` sign prefix and an input for displaying and defining custom colors\n\t * in HEX format.\n\t */\n\tpublic hexInputRow: ColorPickerInputRowView;\n\n\t/**\n\t * Current color selected in the color picker. It can be set by the component itself\n\t * (through the palette or input) or from the outside (e.g. to reflect the current selection color).\n\t */\n\tdeclare public color: string;\n\n\t/**\n\t * List of slider views of the color picker.\n\t */\n\tdeclare public slidersView: ViewCollection;\n\n\t/**\n\t * An internal representation of a color.\n\t *\n\t * Since the picker uses a hex format, that's how we store it.\n\t *\n\t * Since this is unified color format it won't fire a change event if color is changed\n\t * from `#f00` to `#ff0000` (same value, different format).\n\t *\n\t * @observable\n\t * @private\n\t */\n\tdeclare public _hexColor: string;\n\n\t/**\n\t * Debounced function updating the `color` property in the component\n\t * and firing the `ColorPickerColorSelectedEvent`. Executed whenever color in component\n\t * is changed by the user interaction (through the palette or input).\n\t *\n\t * @private\n\t */\n\tprivate _debounceColorPickerEvent: DebouncedFunc<( arg: string ) => void>;\n\n\t/**\n\t * A reference to the configuration of the color picker specified in the constructor.\n\t *\n\t * @private\n\t */\n\tprivate _config: ColorPickerViewConfig;\n\n\t/**\n\t * Creates a view of color picker.\n\t *\n\t * @param locale\n\t * @param config\n\t */\n\tconstructor( locale: Locale | undefined, config: ColorPickerViewConfig = {} ) {\n\t\tsuper( locale );\n\n\t\tthis.set( {\n\t\t\tcolor: '',\n\t\t\t_hexColor: ''\n\t\t} );\n\n\t\tthis.hexInputRow = this._createInputRow();\n\t\tconst children = this.createCollection();\n\n\t\tif ( !config.hideInput ) {\n\t\t\tchildren.add( this.hexInputRow );\n\t\t}\n\n\t\tthis.setTemplate( {\n\t\t\ttag: 'div',\n\t\t\tattributes: {\n\t\t\t\tclass: [ 'ck', 'ck-color-picker' ],\n\t\t\t\ttabindex: -1\n\t\t\t},\n\t\t\tchildren\n\t\t} );\n\n\t\tthis._config = config;\n\n\t\tthis._debounceColorPickerEvent = debounce( ( color: string ) => {\n\t\t\t// At first, set the color internally in the component. It's converted to the configured output format.\n\t\t\tthis.set( 'color', color );\n\n\t\t\t// Then let the outside world know that the user changed the color.\n\t\t\tthis.fire( 'colorSelected', { color: this.color } );\n\t\t}, waitingTime, {\n\t\t\tleading: true\n\t\t} );\n\n\t\t// The `color` property holds the color in the configured output format.\n\t\t// Ensure it before actually setting the value.\n\t\tthis.on( 'set:color', ( evt, propertyName, newValue ) => {\n\t\t\tevt.return = convertColor( newValue, this._config.format || 'hsl' );\n\t\t} );\n\n\t\t// The `_hexColor` property is bound to the `color` one, but requires conversion.\n\t\tthis.on( 'change:color', () => {\n\t\t\tthis._hexColor = convertColorToCommonHexFormat( this.color );\n\t\t} );\n\n\t\tthis.on( 'change:_hexColor', () => {\n\t\t\t// Update the selected color in the color picker palette when it's not focused.\n\t\t\t// It means the user typed the color in the input.\n\t\t\tif ( document.activeElement !== this.picker ) {\n\t\t\t\tthis.picker.setAttribute( 'color', this._hexColor );\n\t\t\t}\n\n\t\t\t// There has to be two way binding between properties.\n\t\t\t// Extra precaution has to be taken to trigger change back only when the color really changes.\n\t\t\tif ( convertColorToCommonHexFormat( this.color ) != convertColorToCommonHexFormat( this._hexColor ) ) {\n\t\t\t\tthis.color = this._hexColor;\n\t\t\t}\n\t\t} );\n\t}\n\n\t/**\n\t * Renders color picker in the view.\n\t */\n\tpublic override render(): void {\n\t\tsuper.render();\n\n\t\t// Extracted to the helper to make it testable.\n\t\tregisterCustomElement( 'hex-color-picker', HexBase );\n\n\t\tthis.picker = global.document.createElement( 'hex-color-picker' );\n\t\tthis.picker.setAttribute( 'class', 'hex-color-picker' );\n\t\tthis.picker.setAttribute( 'tabindex', '-1' );\n\n\t\tthis._createSlidersView();\n\n\t\tif ( this.element ) {\n\t\t\tif ( this.hexInputRow.element ) {\n\t\t\t\tthis.element.insertBefore( this.picker, this.hexInputRow.element );\n\t\t\t} else {\n\t\t\t\tthis.element.appendChild( this.picker );\n\t\t\t}\n\n\t\t\t// Create custom stylesheet with a look of focused pointer in color picker and append it into the color picker shadowDom\n\t\t\tconst styleSheetForFocusedColorPicker = document.createElement( 'style' );\n\n\t\t\tstyleSheetForFocusedColorPicker.textContent = '[role=\"slider\"]:focus [part$=\"pointer\"] {' +\n\t\t\t\t'border: 1px solid #fff;' +\n\t\t\t\t'outline: 1px solid var(--ck-color-focus-border);' +\n\t\t\t\t'box-shadow: 0 0 0 2px #fff;' +\n\t\t\t\t'}';\n\t\t\tthis.picker.shadowRoot!.appendChild( styleSheetForFocusedColorPicker );\n\t\t}\n\n\t\tthis.picker.addEventListener( 'color-changed', event => {\n\t\t\tconst color = event.detail.value;\n\t\t\tthis._debounceColorPickerEvent( color );\n\t\t} );\n\t}\n\n\t/**\n\t * Focuses the first pointer in color picker.\n\t *\n\t */\n\tpublic focus(): void {\n\t\t// In some browsers we need to move the focus to the input first.\n\t\t// Otherwise, the color picker doesn't behave as expected.\n\t\t// In FF, after selecting the color via slider, it instantly moves back to the previous color.\n\t\t// In all iOS browsers and desktop Safari, once the saturation slider is moved for the first time,\n\t\t// editor collapses the selection and doesn't apply the color change.\n\t\t// See: https://github.com/cksource/ckeditor5-internal/issues/3245, https://github.com/ckeditor/ckeditor5/issues/14119,\n\t\t// https://github.com/cksource/ckeditor5-internal/issues/3268.\n\t\t/* istanbul ignore next -- @preserve */\n\t\tif ( !this._config.hideInput && ( env.isGecko || env.isiOS || env.isSafari ) ) {\n\t\t\tconst input: LabeledFieldView = this.hexInputRow!.children.get( 1 )! as LabeledFieldView;\n\n\t\t\tinput.focus();\n\t\t}\n\n\t\tconst firstSlider = this.slidersView.first!;\n\n\t\tfirstSlider.focus();\n\t}\n\n\t/**\n\t * Creates collection of sliders in color picker.\n\t *\n\t * @private\n\t */\n\tprivate _createSlidersView(): void {\n\t\tconst colorPickersChildren = [ ...this.picker.shadowRoot!.children ] as Array;\n\t\tconst sliders = colorPickersChildren.filter( item => item.getAttribute( 'role' ) === 'slider' );\n\n\t\tconst slidersView = sliders.map( slider => {\n\t\t\tconst view = new SliderView( slider );\n\n\t\t\treturn view;\n\t\t} );\n\n\t\tthis.slidersView = this.createCollection();\n\n\t\tslidersView.forEach( item => {\n\t\t\tthis.slidersView.add( item );\n\t\t} );\n\t}\n\n\t/**\n\t * Creates input row for defining custom colors in color picker.\n\t *\n\t * @private\n\t */\n\tprivate _createInputRow(): ColorPickerInputRowView {\n\t\tconst colorInput = this._createColorInput();\n\n\t\treturn new ColorPickerInputRowView( this.locale!, colorInput );\n\t}\n\n\t/**\n\t * Creates the input where user can type or paste the color in hex format.\n\t *\n\t * @private\n\t */\n\tprivate _createColorInput(): LabeledFieldView {\n\t\tconst labeledInput = new LabeledFieldView( this.locale, createLabeledInputText );\n\t\tconst { t } = this.locale!;\n\n\t\tlabeledInput.set( {\n\t\t\tlabel: t( 'HEX' ),\n\t\t\tclass: 'color-picker-hex-input'\n\t\t} );\n\n\t\tlabeledInput.fieldView.bind( 'value' ).to( this, '_hexColor', pickerColor => {\n\t\t\tif ( labeledInput.isFocused ) {\n\t\t\t\t// Text field shouldn't be updated with color change if the text field is focused.\n\t\t\t\t// Imagine user typing hex code and getting the value of field changed.\n\t\t\t\treturn labeledInput.fieldView.value;\n\t\t\t} else {\n\t\t\t\treturn pickerColor.startsWith( '#' ) ? pickerColor.substring( 1 ) : pickerColor;\n\t\t\t}\n\t\t} );\n\n\t\t// Only accept valid hex colors as input.\n\t\tlabeledInput.fieldView.on( 'input', () => {\n\t\t\tconst inputValue = labeledInput.fieldView.element!.value;\n\n\t\t\tif ( inputValue ) {\n\t\t\t\tconst maybeHexColor = tryParseHexColor( inputValue );\n\n\t\t\t\tif ( maybeHexColor ) {\n\t\t\t\t\t// If so, set the color.\n\t\t\t\t\t// Otherwise, do nothing.\n\t\t\t\t\tthis._debounceColorPickerEvent( maybeHexColor );\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\n\t\treturn labeledInput;\n\t}\n\n\t/**\n\t * Validates the view and returns `false` when some fields are invalid.\n\t */\n\tpublic isValid(): boolean {\n\t\tconst { t } = this.locale!;\n\n\t\tthis.resetValidationStatus();\n\n\t\t// One error per field is enough.\n\t\tif ( !this.hexInputRow.getParsedColor() ) {\n\t\t\t// Apply updated error.\n\t\t\tthis.hexInputRow.inputView.errorText = t( 'Please enter a valid color (e.g. \"ff0000\").' );\n\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t}\n\n\t/**\n\t * Cleans up the supplementary error and information text of input inside the {@link #hexInputRow}\n\t * bringing them back to the state when the form has been displayed for the first time.\n\t *\n\t * See {@link #isValid}.\n\t */\n\tpublic resetValidationStatus(): void {\n\t\tthis.hexInputRow.inputView.errorText = null;\n\t}\n}\n\n// Converts any color format to a unified hex format.\n//\n// @param inputColor\n// @returns An unified hex string.\nfunction convertColorToCommonHexFormat( inputColor: string ): string {\n\tlet ret = convertToHex( inputColor );\n\n\tif ( !ret ) {\n\t\tret = '#000';\n\t}\n\n\tif ( ret.length === 4 ) {\n\t\t// Unfold shortcut format.\n\t\tret = '#' + [ ret[ 1 ], ret[ 1 ], ret[ 2 ], ret[ 2 ], ret[ 3 ], ret[ 3 ] ].join( '' );\n\t}\n\n\treturn ret.toLowerCase();\n}\n\n// View abstraction over pointer in color picker.\nclass SliderView extends View {\n\t/**\n\t * @param element HTML element of slider in color picker.\n\t */\n\tconstructor( element: HTMLElement ) {\n\t\tsuper();\n\t\tthis.element = element;\n\t}\n\n\t/**\n\t * Focuses element.\n\t */\n\tpublic focus(): void {\n\t\tthis.element!.focus();\n\t}\n}\n\n// View abstraction over the `#` character before color input.\nclass HashView extends View {\n\tconstructor( locale?: Locale ) {\n\t\tsuper( locale );\n\n\t\tthis.setTemplate( {\n\t\t\ttag: 'div',\n\t\t\tattributes: {\n\t\t\t\tclass: [\n\t\t\t\t\t'ck',\n\t\t\t\t\t'ck-color-picker__hash-view'\n\t\t\t\t]\n\t\t\t},\n\t\t\tchildren: '#'\n\t\t} );\n\t}\n}\n\n// The class representing a row containing hex color input field.\n// **Note**: For now this class is private. When more use cases appear (beyond `ckeditor5-table` and `ckeditor5-image`),\n// it will become a component in `ckeditor5-ui`.\n//\n// @private\nclass ColorPickerInputRowView extends View {\n\t/**\n\t * A collection of row items (buttons, dropdowns, etc.).\n\t */\n\tpublic readonly children: ViewCollection;\n\n\t/**\n\t * Hex input view element.\n\t */\n\tpublic readonly inputView: LabeledFieldView;\n\n\t/**\n\t * Creates an instance of the form row class.\n\t *\n\t * @param locale The locale instance.\n\t * @param inputView Hex color input element.\n\t */\n\tconstructor( locale: Locale, inputView: LabeledFieldView ) {\n\t\tsuper( locale );\n\n\t\tthis.inputView = inputView;\n\t\tthis.children = this.createCollection( [\n\t\t\tnew HashView(),\n\t\t\tthis.inputView\n\t\t] );\n\n\t\tthis.setTemplate( {\n\t\t\ttag: 'div',\n\t\t\tattributes: {\n\t\t\t\tclass: [\n\t\t\t\t\t'ck',\n\t\t\t\t\t'ck-color-picker__row'\n\t\t\t\t]\n\t\t\t},\n\t\t\tchildren: this.children\n\t\t} );\n\t}\n\n\t/**\n\t * Returns false if color input value is not in hex format.\n\t */\n\tpublic getParsedColor(): HexColor | null {\n\t\treturn tryParseHexColor( this.inputView.fieldView.element!.value );\n\t}\n}\n\n/**\n * An event fired whenever the color was selected through the color picker palette\n * or the color picker input.\n *\n * This even fires only when the user changes the color. It does not fire when the color\n * is changed programmatically, e.g. via\n * {@link module:ui/colorpicker/colorpickerview~ColorPickerView#color}.\n *\n * @eventName ~ColorPickerView#colorSelected\n */\nexport type ColorPickerColorSelectedEvent = {\n\tname: 'colorSelected';\n\targs: [ {\n\t\tcolor: string;\n\t} ];\n};\n\n/**\n * Trim spaces from provided color and check if hex is valid.\n *\n * @param color Unsafe color string.\n * @returns Null if provided color is not hex value.\n * @export\n */\nexport function tryParseHexColor( color: S | null | undefined ): HexColor | null {\n\tif ( !color ) {\n\t\treturn null;\n\t}\n\n\tconst hashLessColor = color.trim().replace( /^#/, '' );\n\n\t// Incorrect length.\n\tif ( ![ 3, 4, 6, 8 ].includes( hashLessColor.length ) ) {\n\t\treturn null;\n\t}\n\n\t// Incorrect characters.\n\tif ( !/^(([0-9a-fA-F]{2}){3,4}|([0-9a-fA-F]){3,4})$/.test( hashLessColor ) ) {\n\t\treturn null;\n\t}\n\n\treturn `#${ hashLessColor }` as `#${ S }`;\n}\n","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module ui/colorselector/documentcolorcollection\n */\n\nimport type { ColorDefinition } from '../colorgrid/colorgridview.js';\nimport {\n\tCollection,\n\tObservableMixin,\n\ttype CollectionAddEvent,\n\ttype CollectionRemoveEvent,\n\ttype CollectionChangeEvent\n} from '@ckeditor/ckeditor5-utils';\n\n/**\n * A collection to store document colors. It enforces colors to be unique.\n */\nexport default class DocumentColorCollection extends /* #__PURE__ */ ObservableMixin( Collection ) {\n\t/**\n\t * Indicates whether the document color collection is empty.\n\t *\n\t * @observable\n\t */\n\tdeclare public readonly isEmpty: boolean;\n\n\tconstructor( options?: any ) {\n\t\tsuper( options );\n\n\t\tthis.set( 'isEmpty', true );\n\n\t\tthis.on( 'change', () => {\n\t\t\tthis.set( 'isEmpty', this.length === 0 );\n\t\t} );\n\t}\n\n\t/**\n\t * Adds a color to the document color collection.\n\t *\n\t * This method ensures that no color duplicates are inserted (compared using\n\t * the color value of the {@link module:ui/colorgrid/colorgridview~ColorDefinition}).\n\t *\n\t * If the item does not have an ID, it will be automatically generated and set on the item.\n\t *\n\t * @param index The position of the item in the collection. The item is pushed to the collection when `index` is not specified.\n\t * @fires add\n\t * @fires change\n\t */\n\tpublic override add( item: ColorDefinition, index?: number ): this {\n\t\tif ( this.find( element => element.color === item.color ) ) {\n\t\t\t// No duplicates are allowed.\n\t\t\treturn this;\n\t\t}\n\n\t\treturn super.add( item, index );\n\t}\n\n\t/**\n\t * Checks if an object with given colors is present in the document color collection.\n\t */\n\tpublic hasColor( color: string ): boolean {\n\t\treturn !!this.find( item => item.color === color );\n\t}\n}\n\n/**\n * Fired when the collection was changed due to adding or removing items.\n *\n * @eventName ~DocumentColorCollection#change\n * @param data Changed items.\n */\nexport type DocumentColorCollectionChangeEvent = CollectionChangeEvent;\n\n/**\n * Fired when an item is added to the collection.\n *\n * @eventName ~DocumentColorCollection#add\n * @param item The added item.\n * @param index An index where the addition occurred.\n */\nexport type DocumentColorCollectionAddEvent = CollectionAddEvent;\n\n/**\n * Fired when an item is removed from the collection.\n *\n * @eventName ~DocumentColorCollection#remove\n * @param item The removed item.\n * @param index Index from which item was removed.\n */\nexport type DocumentColorCollectionRemoveEvent = CollectionRemoveEvent;\n","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module ui/colorselector/colorgridsfragmentview\n */\n\nimport View from '../view.js';\nimport ButtonView from '../button/buttonview.js';\nimport ColorGridView, { type ColorDefinition } from '../colorgrid/colorgridview.js';\nimport ColorTileView from '../colorgrid/colortileview.js';\nimport LabelView from '../label/labelview.js';\nimport Template from '../template.js';\n\nimport DocumentColorCollection from './documentcolorcollection.js';\n\nimport type { Model } from '@ckeditor/ckeditor5-engine';\nimport type { FocusTracker, Locale } from '@ckeditor/ckeditor5-utils';\nimport type ViewCollection from '../viewcollection.js';\nimport type { FocusableView } from '../focuscycler.js';\nimport type { ColorSelectorExecuteEvent, ColorSelectorColorPickerShowEvent } from './colorselectorview.js';\nimport { icons } from '@ckeditor/ckeditor5-core';\n\nconst { eraser: removeButtonIcon, colorPalette: colorPaletteIcon } = icons;\n\n/**\n * One of the fragments of {@link module:ui/colorselector/colorselectorview~ColorSelectorView}.\n *\n * It provides a UI that allows users to select colors from the a predefined set and from existing document colors.\n *\n * It consists of the following sub–components:\n *\n * * A \"Remove color\" button,\n * * A static {@link module:ui/colorgrid/colorgridview~ColorGridView} of colors defined in the configuration,\n * * A dynamic {@link module:ui/colorgrid/colorgridview~ColorGridView} of colors used in the document.\n * * If color picker is configured, the \"Color Picker\" button is visible too.\n */\nexport default class ColorGridsFragmentView extends View {\n\t/**\n\t * A collection of the children of the table.\n\t */\n\tpublic readonly items: ViewCollection;\n\n\t/**\n\t * An array with objects representing colors to be displayed in the grid.\n\t */\n\tpublic colorDefinitions: Array;\n\n\t/**\n\t * Tracks information about the DOM focus in the list.\n\t */\n\tpublic readonly focusTracker: FocusTracker;\n\n\t/**\n\t * The number of columns in the color grid.\n\t */\n\tpublic columns: number;\n\n\t/**\n\t * Preserves the reference to {@link module:ui/colorselector/documentcolorcollection~DocumentColorCollection} used to collect\n\t * definitions that store the document colors.\n\t *\n\t * @readonly\n\t */\n\tpublic documentColors: DocumentColorCollection;\n\n\t/**\n\t * The maximum number of colors in the document colors section.\n\t * If it equals 0, the document colors section is not added.\n\t *\n\t * @readonly\n\t */\n\tpublic documentColorsCount?: number;\n\n\t/**\n\t * Keeps the value of the command associated with the table for the current selection.\n\t */\n\tdeclare public selectedColor: string;\n\n\t/**\n\t * Preserves the reference to {@link module:ui/colorgrid/colorgridview~ColorGridView} used to create\n\t * the default (static) color set.\n\t *\n\t * The property is loaded once the the parent dropdown is opened the first time.\n\t *\n\t * @readonly\n\t */\n\tpublic staticColorsGrid: ColorGridView | undefined;\n\n\t/**\n\t * Preserves the reference to {@link module:ui/colorgrid/colorgridview~ColorGridView} used to create\n\t * the document colors. It remains undefined if the document colors feature is disabled.\n\t *\n\t * The property is loaded once the the parent dropdown is opened the first time.\n\t *\n\t * @readonly\n\t */\n\tpublic documentColorsGrid: ColorGridView | undefined;\n\n\t/**\n\t * The \"Color picker\" button view.\n\t */\n\tpublic colorPickerButtonView?: ButtonView;\n\n\t/**\n\t * The \"Remove color\" button view.\n\t */\n\tpublic removeColorButtonView: ButtonView;\n\n\t/**\n\t * The property which is responsible for is component visible or not.\n\t */\n\tdeclare public isVisible: boolean;\n\n\t/**\n\t * A collection of views that can be focused in the view.\n\t *\n\t * @readonly\n\t */\n\tprotected _focusables: ViewCollection;\n\n\t/**\n\t * Document color section's label.\n\t *\n\t * @readonly\n\t */\n\tprivate _documentColorsLabel?: string;\n\n\t/**\n\t * The label of the button responsible for removing color attributes.\n\t */\n\tprivate _removeButtonLabel: string;\n\n\t/**\n\t * The label of the button responsible for switching to the color picker component.\n\t */\n\tprivate _colorPickerLabel: string;\n\n\t/**\n\t * Creates an instance of the view.\n\t *\n\t * @param locale The localization services instance.\n\t * @param colors An array with definitions of colors to be displayed in the table.\n\t * @param columns The number of columns in the color grid.\n\t * @param removeButtonLabel The label of the button responsible for removing the color.\n\t * @param colorPickerLabel The label of the button responsible for color picker appearing.\n\t * @param documentColorsLabel The label for the section with the document colors.\n\t * @param documentColorsCount The number of colors in the document colors section inside the color dropdown.\n\t * @param focusTracker Tracks information about the DOM focus in the list.\n\t * @param focusables A collection of views that can be focused in the view.\n\t */\n\tconstructor(\n\t\tlocale: Locale,\n\t\t{\n\t\t\tcolors, columns, removeButtonLabel, documentColorsLabel, documentColorsCount,\n\t\t\tcolorPickerLabel, focusTracker, focusables\n\t\t}: {\n\t\t\tcolors: Array;\n\t\t\tcolumns: number;\n\t\t\tremoveButtonLabel: string;\n\t\t\tcolorPickerLabel: string;\n\t\t\tdocumentColorsLabel?: string;\n\t\t\tdocumentColorsCount?: number;\n\t\t\tfocusTracker: FocusTracker;\n\t\t\tfocusables: ViewCollection;\n\t\t}\n\t) {\n\t\tsuper( locale );\n\n\t\tconst bind = this.bindTemplate;\n\n\t\tthis.set( 'isVisible', true );\n\n\t\tthis.focusTracker = focusTracker;\n\t\tthis.items = this.createCollection();\n\t\tthis.colorDefinitions = colors;\n\t\tthis.columns = columns;\n\t\tthis.documentColors = new DocumentColorCollection();\n\t\tthis.documentColorsCount = documentColorsCount;\n\n\t\tthis._focusables = focusables;\n\t\tthis._removeButtonLabel = removeButtonLabel;\n\t\tthis._colorPickerLabel = colorPickerLabel;\n\t\tthis._documentColorsLabel = documentColorsLabel;\n\n\t\tthis.setTemplate( {\n\t\t\ttag: 'div',\n\t\t\tattributes: {\n\t\t\t\tclass: [\n\t\t\t\t\t'ck-color-grids-fragment',\n\t\t\t\t\tbind.if( 'isVisible', 'ck-hidden', value => !value )\n\t\t\t\t]\n\t\t\t},\n\t\t\tchildren: this.items\n\t\t} );\n\n\t\tthis.removeColorButtonView = this._createRemoveColorButton();\n\n\t\tthis.items.add( this.removeColorButtonView );\n\t}\n\n\t/**\n\t * Scans through the editor model and searches for text node attributes with the given attribute name.\n\t * Found entries are set as document colors.\n\t *\n\t * All the previously stored document colors will be lost in the process.\n\t *\n\t * @param model The model used as a source to obtain the document colors.\n\t * @param attributeName Determines the name of the related model's attribute for a given dropdown.\n\t */\n\tpublic updateDocumentColors( model: Model, attributeName: string ): void {\n\t\tconst document = model.document;\n\t\tconst maxCount = this.documentColorsCount;\n\n\t\tthis.documentColors.clear();\n\n\t\tfor ( const root of document.getRoots() ) {\n\t\t\tconst range = model.createRangeIn( root );\n\n\t\t\tfor ( const node of range.getItems() ) {\n\t\t\t\tif ( node.is( '$textProxy' ) && node.hasAttribute( attributeName ) ) {\n\t\t\t\t\tthis._addColorToDocumentColors( node.getAttribute( attributeName ) as string );\n\n\t\t\t\t\tif ( this.documentColors.length >= maxCount! ) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Refreshes the state of the selected color in one or both {@link module:ui/colorgrid/colorgridview~ColorGridView}s\n\t * available in the {@link module:ui/colorselector/colorselectorview~ColorSelectorView}. It guarantees that the selection will\n\t * occur only in one of them.\n\t */\n\tpublic updateSelectedColors(): void {\n\t\tconst documentColorsGrid = this.documentColorsGrid;\n\t\tconst staticColorsGrid = this.staticColorsGrid!;\n\t\tconst selectedColor = this.selectedColor;\n\n\t\tstaticColorsGrid.selectedColor = selectedColor;\n\n\t\tif ( documentColorsGrid ) {\n\t\t\tdocumentColorsGrid.selectedColor = selectedColor;\n\t\t}\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic override render(): void {\n\t\tsuper.render();\n\n\t\tthis.staticColorsGrid = this._createStaticColorsGrid();\n\n\t\tthis.items.add( this.staticColorsGrid );\n\n\t\tif ( this.documentColorsCount ) {\n\t\t\t// Create a label for document colors.\n\t\t\tconst bind = Template.bind( this.documentColors, this.documentColors );\n\t\t\tconst label = new LabelView( this.locale );\n\t\t\tlabel.text = this._documentColorsLabel;\n\t\t\tlabel.extendTemplate( {\n\t\t\t\tattributes: {\n\t\t\t\t\tclass: [\n\t\t\t\t\t\t'ck',\n\t\t\t\t\t\t'ck-color-grid__label',\n\t\t\t\t\t\tbind.if( 'isEmpty', 'ck-hidden' )\n\t\t\t\t\t]\n\t\t\t\t}\n\t\t\t} );\n\t\t\tthis.items.add( label );\n\t\t\tthis.documentColorsGrid = this._createDocumentColorsGrid();\n\n\t\t\tthis.items.add( this.documentColorsGrid );\n\t\t}\n\t\tthis._createColorPickerButton();\n\n\t\tthis._addColorSelectorElementsToFocusTracker();\n\t}\n\n\t/**\n\t * Focuses the component.\n\t */\n\tpublic focus(): void {\n\t\tthis.removeColorButtonView.focus();\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic override destroy(): void {\n\t\tsuper.destroy();\n\t}\n\n\t/**\n\t * Handles displaying the color picker button (if it was previously created) and making it focusable.\n\t */\n\tpublic addColorPickerButton(): void {\n\t\tif ( this.colorPickerButtonView ) {\n\t\t\tthis.items.add( this.colorPickerButtonView );\n\t\t\tthis.focusTracker.add( this.colorPickerButtonView.element! );\n\t\t\tthis._focusables.add( this.colorPickerButtonView );\n\t\t}\n\t}\n\n\t/**\n\t * Adds color selector elements to focus tracker.\n\t */\n\tprivate _addColorSelectorElementsToFocusTracker(): void {\n\t\tthis.focusTracker.add( this.removeColorButtonView.element! );\n\t\tthis._focusables.add( this.removeColorButtonView );\n\n\t\tif ( this.staticColorsGrid ) {\n\t\t\tthis.focusTracker.add( this.staticColorsGrid.element! );\n\t\t\tthis._focusables.add( this.staticColorsGrid );\n\t\t}\n\n\t\tif ( this.documentColorsGrid ) {\n\t\t\tthis.focusTracker.add( this.documentColorsGrid.element! );\n\t\t\tthis._focusables.add( this.documentColorsGrid );\n\t\t}\n\t}\n\n\t/**\n\t * Creates the button responsible for displaying the color picker component.\n\t */\n\tprivate _createColorPickerButton(): void {\n\t\tthis.colorPickerButtonView = new ButtonView();\n\n\t\tthis.colorPickerButtonView.set( {\n\t\t\tlabel: this._colorPickerLabel,\n\t\t\twithText: true,\n\t\t\ticon: colorPaletteIcon,\n\t\t\tclass: 'ck-color-selector__color-picker'\n\t\t} );\n\n\t\tthis.colorPickerButtonView.on( 'execute', () => {\n\t\t\tthis.fire( 'colorPicker:show' );\n\t\t} );\n\t}\n\n\t/**\n\t * Adds the remove color button as a child of the current view.\n\t */\n\tprivate _createRemoveColorButton(): ButtonView {\n\t\tconst buttonView = new ButtonView();\n\n\t\tbuttonView.set( {\n\t\t\twithText: true,\n\t\t\ticon: removeButtonIcon,\n\t\t\tlabel: this._removeButtonLabel\n\t\t} );\n\n\t\tbuttonView.class = 'ck-color-selector__remove-color';\n\t\tbuttonView.on( 'execute', () => {\n\t\t\tthis.fire( 'execute', {\n\t\t\t\tvalue: null,\n\t\t\t\tsource: 'removeColorButton'\n\t\t\t} );\n\t\t} );\n\n\t\tbuttonView.render();\n\n\t\treturn buttonView;\n\t}\n\n\t/**\n\t * Creates a static color grid based on the editor configuration.\n\t */\n\tprivate _createStaticColorsGrid(): ColorGridView {\n\t\tconst colorGrid = new ColorGridView( this.locale, {\n\t\t\tcolorDefinitions: this.colorDefinitions,\n\t\t\tcolumns: this.columns\n\t\t} );\n\n\t\tcolorGrid.on( 'execute', ( evt, data ) => {\n\t\t\tthis.fire( 'execute', {\n\t\t\t\tvalue: data.value,\n\t\t\t\tsource: 'staticColorsGrid'\n\t\t\t} );\n\t\t} );\n\n\t\treturn colorGrid;\n\t}\n\n\t/**\n\t * Creates the document colors section view and binds it to {@link #documentColors}.\n\t */\n\tprivate _createDocumentColorsGrid(): ColorGridView {\n\t\tconst bind = Template.bind( this.documentColors, this.documentColors );\n\t\tconst documentColorsGrid = new ColorGridView( this.locale, {\n\t\t\tcolumns: this.columns\n\t\t} );\n\n\t\tdocumentColorsGrid.extendTemplate( {\n\t\t\tattributes: {\n\t\t\t\tclass: bind.if( 'isEmpty', 'ck-hidden' )\n\t\t\t}\n\t\t} );\n\n\t\tdocumentColorsGrid.items.bindTo( this.documentColors ).using(\n\t\t\tcolorObj => {\n\t\t\t\tconst colorTile = new ColorTileView();\n\n\t\t\t\tcolorTile.set( {\n\t\t\t\t\tcolor: colorObj.color,\n\t\t\t\t\thasBorder: colorObj.options && colorObj.options.hasBorder\n\t\t\t\t} );\n\n\t\t\t\tif ( colorObj.label ) {\n\t\t\t\t\tcolorTile.set( {\n\t\t\t\t\t\tlabel: colorObj.label,\n\t\t\t\t\t\ttooltip: true\n\t\t\t\t\t} );\n\t\t\t\t}\n\n\t\t\t\tcolorTile.on( 'execute', () => {\n\t\t\t\t\tthis.fire( 'execute', {\n\t\t\t\t\t\tvalue: colorObj.color,\n\t\t\t\t\t\tsource: 'documentColorsGrid'\n\t\t\t\t\t} );\n\t\t\t\t} );\n\n\t\t\t\treturn colorTile;\n\t\t\t}\n\t\t);\n\n\t\t// Selected color should be cleared when document colors became empty.\n\t\tthis.documentColors.on( 'change:isEmpty', ( evt, name, val ) => {\n\t\t\tif ( val ) {\n\t\t\t\tdocumentColorsGrid.selectedColor = null;\n\t\t\t}\n\t\t} );\n\n\t\treturn documentColorsGrid;\n\t}\n\n\t/**\n\t * Adds a given color to the document colors list. If possible, the method will attempt to use\n\t * data from the {@link #colorDefinitions} (label, color options).\n\t *\n\t * @param color A string that stores the value of the recently applied color.\n\t */\n\tprivate _addColorToDocumentColors( color: string ): void {\n\t\tconst predefinedColor = this.colorDefinitions\n\t\t\t.find( definition => definition.color === color );\n\n\t\tif ( !predefinedColor ) {\n\t\t\tthis.documentColors.add( {\n\t\t\t\tcolor,\n\t\t\t\tlabel: color,\n\t\t\t\toptions: {\n\t\t\t\t\thasBorder: false\n\t\t\t\t}\n\t\t\t} );\n\t\t} else {\n\t\t\tthis.documentColors.add( Object.assign( {}, predefinedColor ) );\n\t\t}\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module ui/colorselector/colorpickerfragmentview\n */\n\nimport View from '../view.js';\nimport ButtonView from '../button/buttonview.js';\nimport type ViewCollection from '../viewcollection.js';\nimport type { FocusableView } from '../focuscycler.js';\nimport type LabeledFieldView from '../labeledfield/labeledfieldview.js';\nimport type InputTextView from '../inputtext/inputtextview.js';\nimport {\n\tdefault as ColorPickerView,\n\ttype ColorPickerColorSelectedEvent\n} from '../colorpicker/colorpickerview.js';\n\nimport type { FocusTracker, KeystrokeHandler, Locale } from '@ckeditor/ckeditor5-utils';\nimport type { ColorPickerViewConfig } from '../colorpicker/utils.js';\nimport type { ColorSelectorColorPickerCancelEvent, ColorSelectorExecuteEvent } from './colorselectorview.js';\n\nimport { icons } from '@ckeditor/ckeditor5-core';\n\n/**\n * One of the fragments of {@link module:ui/colorselector/colorselectorview~ColorSelectorView}.\n *\n * It allows users to select a color from a color picker.\n *\n * It consists of the following sub–components:\n *\n * * A color picker saturation and hue sliders,\n * * A text input accepting colors in HEX format,\n * * \"Save\" and \"Cancel\" action buttons.\n */\nexport default class ColorPickerFragmentView extends View {\n\t/**\n\t * A collection of component's children.\n\t */\n\tpublic readonly items: ViewCollection;\n\n\t/**\n\t * A view with saturation and hue sliders and color input.\n\t */\n\tpublic colorPickerView?: ColorPickerView;\n\n\t/**\n\t * The \"Save\" button view.\n\t */\n\tpublic saveButtonView: ButtonView;\n\n\t/**\n\t * The \"Cancel\" button view.\n\t */\n\tpublic cancelButtonView: ButtonView;\n\n\t/**\n\t * The action bar where are \"Save\" button and \"Cancel\" button.\n\t */\n\tpublic actionBarView: View;\n\n\t/**\n\t * Tracks information about the DOM focus in the list.\n\t */\n\tpublic readonly focusTracker: FocusTracker;\n\n\t/**\n\t * An instance of the {@link module:utils/keystrokehandler~KeystrokeHandler}.\n\t */\n\tpublic readonly keystrokes: KeystrokeHandler;\n\n\t/**\n\t * Indicates whether the component is visible or not.\n\t */\n\tdeclare public isVisible: boolean;\n\n\t/**\n\t * Keeps the value of the command associated with the component for the current selection.\n\t */\n\tdeclare public selectedColor?: string;\n\n\t/**\n\t * A collection of views that can be focused in the view.\n\t *\n\t * @readonly\n\t */\n\tprotected _focusables: ViewCollection;\n\n\t/**\n\t * A reference to the configuration of {@link #colorPickerView}. `false` when the view was\n\t * configured without a color picker.\n\t *\n\t * @readonly\n\t */\n\tprivate _colorPickerViewConfig: ColorPickerViewConfig | false;\n\n\t/**\n\t * Creates an instance of the view.\n\t *\n\t * @param locale The localization services instance.\n\t * @param focusTracker Tracks information about the DOM focus in the list.\n\t * @param focusables A collection of views that can be focused in the view..\n\t * @param keystrokes An instance of the {@link module:utils/keystrokehandler~KeystrokeHandler}.\n\t * @param colorPickerViewConfig The configuration of color picker feature. If set to `false`, the color picker\n\t * will not be rendered.\n\t */\n\tconstructor(\n\t\tlocale: Locale,\n\t\t{\n\t\t\tfocusTracker,\n\t\t\tfocusables,\n\t\t\tkeystrokes,\n\t\t\tcolorPickerViewConfig\n\t\t}:\n\t\t{\n\t\t\tfocusTracker: FocusTracker;\n\t\t\tfocusables: ViewCollection;\n\t\t\tkeystrokes: KeystrokeHandler;\n\t\t\tcolorPickerViewConfig: ColorPickerViewConfig | false;\n\t\t}\n\t) {\n\t\tsuper( locale );\n\n\t\tthis.items = this.createCollection();\n\t\tthis.focusTracker = focusTracker;\n\t\tthis.keystrokes = keystrokes;\n\n\t\tthis.set( 'isVisible', false );\n\t\tthis.set( 'selectedColor', undefined );\n\n\t\tthis._focusables = focusables;\n\t\tthis._colorPickerViewConfig = colorPickerViewConfig;\n\n\t\tconst bind = this.bindTemplate;\n\t\tconst { saveButtonView, cancelButtonView } = this._createActionButtons();\n\n\t\tthis.saveButtonView = saveButtonView;\n\t\tthis.cancelButtonView = cancelButtonView;\n\t\tthis.actionBarView = this._createActionBarView( { saveButtonView, cancelButtonView } );\n\n\t\tthis.setTemplate( {\n\t\t\ttag: 'div',\n\t\t\tattributes: {\n\t\t\t\tclass: [\n\t\t\t\t\t'ck-color-picker-fragment',\n\t\t\t\t\tbind.if( 'isVisible', 'ck-hidden', value => !value )\n\t\t\t\t]\n\t\t\t},\n\t\t\tchildren: this.items\n\t\t} );\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic override render(): void {\n\t\tsuper.render();\n\n\t\tconst colorPickerView = new ColorPickerView( this.locale, {\n\t\t\t...this._colorPickerViewConfig\n\t\t} as ColorPickerViewConfig );\n\n\t\tthis.colorPickerView = colorPickerView;\n\t\tthis.colorPickerView.render();\n\n\t\tif ( this.selectedColor ) {\n\t\t\tcolorPickerView.color = this.selectedColor;\n\t\t}\n\n\t\tthis.listenTo( this, 'change:selectedColor', ( evt, name, value ) => {\n\t\t\tcolorPickerView.color = value;\n\t\t} );\n\n\t\tthis.items.add( this.colorPickerView );\n\t\tthis.items.add( this.actionBarView );\n\n\t\tthis._addColorPickersElementsToFocusTracker();\n\t\tthis._stopPropagationOnArrowsKeys();\n\t\tthis._executeOnEnterPress();\n\t\tthis._executeUponColorChange();\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic override destroy(): void {\n\t\tsuper.destroy();\n\t}\n\n\t/**\n\t * Focuses the color picker.\n\t */\n\tpublic focus(): void {\n\t\tthis.colorPickerView!.focus();\n\t}\n\n\t/**\n\t * Reset validation messages.\n\t */\n\tpublic resetValidationStatus(): void {\n\t\tthis.colorPickerView!.resetValidationStatus();\n\t}\n\n\t/**\n\t * When color picker is focused and \"enter\" is pressed it executes command.\n\t */\n\tprivate _executeOnEnterPress(): void {\n\t\tthis.keystrokes.set( 'enter', evt => {\n\t\t\tif ( this.isVisible && this.focusTracker.focusedElement !== this.cancelButtonView.element && this.colorPickerView!.isValid() ) {\n\t\t\t\tthis.fire( 'execute', {\n\t\t\t\t\tvalue: this.selectedColor!\n\t\t\t\t} );\n\n\t\t\t\tevt.stopPropagation();\n\t\t\t\tevt.preventDefault();\n\t\t\t}\n\t\t} );\n\t}\n\n\t/**\n\t * Removes default behavior of arrow keys in dropdown.\n\t */\n\tprivate _stopPropagationOnArrowsKeys(): void {\n\t\tconst stopPropagation = ( data: KeyboardEvent ) => data.stopPropagation();\n\n\t\tthis.keystrokes.set( 'arrowright', stopPropagation );\n\t\tthis.keystrokes.set( 'arrowleft', stopPropagation );\n\t\tthis.keystrokes.set( 'arrowup', stopPropagation );\n\t\tthis.keystrokes.set( 'arrowdown', stopPropagation );\n\t}\n\n\t/**\n\t * Adds color picker elements to focus tracker.\n\t */\n\tprivate _addColorPickersElementsToFocusTracker(): void {\n\t\tfor ( const slider of this.colorPickerView!.slidersView ) {\n\t\t\tthis.focusTracker.add( slider.element! );\n\t\t\tthis._focusables.add( slider );\n\t\t}\n\n\t\tconst input = this.colorPickerView!.hexInputRow.children.get( 1 ) as LabeledFieldView;\n\n\t\tif ( input.element! ) {\n\t\t\tthis.focusTracker.add( input.element );\n\t\t\tthis._focusables.add( input );\n\t\t}\n\n\t\tthis.focusTracker.add( this.saveButtonView.element! );\n\t\tthis._focusables.add( this.saveButtonView );\n\n\t\tthis.focusTracker.add( this.cancelButtonView.element! );\n\t\tthis._focusables.add( this.cancelButtonView );\n\t}\n\n\t/**\n\t * Creates bar containing \"Save\" and \"Cancel\" buttons.\n\t */\n\tprivate _createActionBarView( { saveButtonView, cancelButtonView }: {\n\t\tsaveButtonView: ButtonView;\n\t\tcancelButtonView: ButtonView;\n\t} ): View {\n\t\tconst actionBarRow = new View();\n\t\tconst children = this.createCollection();\n\n\t\tchildren.add( saveButtonView );\n\t\tchildren.add( cancelButtonView );\n\n\t\tactionBarRow.setTemplate( {\n\t\t\ttag: 'div',\n\t\t\tattributes: {\n\t\t\t\tclass: [\n\t\t\t\t\t'ck',\n\t\t\t\t\t'ck-color-selector_action-bar'\n\t\t\t\t]\n\t\t\t},\n\t\t\tchildren\n\t\t} );\n\n\t\treturn actionBarRow;\n\t}\n\n\t/**\n\t * Creates \"Save\" and \"Cancel\" buttons.\n\t */\n\tprivate _createActionButtons() {\n\t\tconst locale = this.locale;\n\t\tconst t = locale!.t;\n\t\tconst saveButtonView = new ButtonView( locale );\n\t\tconst cancelButtonView = new ButtonView( locale );\n\n\t\tsaveButtonView.set( {\n\t\t\ticon: icons.check,\n\t\t\tclass: 'ck-button-save',\n\t\t\ttype: 'button',\n\t\t\twithText: false,\n\t\t\tlabel: t( 'Accept' )\n\t\t} );\n\n\t\tcancelButtonView.set( {\n\t\t\ticon: icons.cancel,\n\t\t\tclass: 'ck-button-cancel',\n\t\t\ttype: 'button',\n\t\t\twithText: false,\n\t\t\tlabel: t( 'Cancel' )\n\t\t} );\n\n\t\tsaveButtonView.on( 'execute', () => {\n\t\t\tif ( this.colorPickerView!.isValid() ) {\n\t\t\t\tthis.fire( 'execute', {\n\t\t\t\t\tsource: 'colorPickerSaveButton',\n\t\t\t\t\tvalue: this.selectedColor!\n\t\t\t\t} );\n\t\t\t}\n\t\t} );\n\n\t\tcancelButtonView.on( 'execute', () => {\n\t\t\tthis.fire( 'colorPicker:cancel' );\n\t\t} );\n\n\t\treturn {\n\t\t\tsaveButtonView, cancelButtonView\n\t\t};\n\t}\n\n\t/**\n\t * Fires the `execute` event if color in color picker has been changed\n\t * by the user.\n\t */\n\tprivate _executeUponColorChange() {\n\t\tthis.colorPickerView!.on( 'colorSelected', ( evt, data ) => {\n\t\t\tthis.fire( 'execute', {\n\t\t\t\tvalue: data.color,\n\t\t\t\tsource: 'colorPicker'\n\t\t\t} );\n\t\t\tthis.set( 'selectedColor', data.color );\n\t\t} );\n\t}\n}\n","import api from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./colorselector.css\";\n\nvar options = {\"injectType\":\"singletonStyleTag\",\"attributes\":{\"data-cke\":true}};\n\noptions.insert = \"head\";\noptions.singleton = true;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module ui/colorselector/colorselectorview\n */\n\nimport FocusCycler, { type FocusableView } from '../focuscycler.js';\nimport View from '../view.js';\nimport ViewCollection from '../viewcollection.js';\nimport { FocusTracker, KeystrokeHandler, type Locale } from '@ckeditor/ckeditor5-utils';\n\nimport type { ColorPickerViewConfig } from '../colorpicker/utils.js';\nimport type { ColorDefinition } from '../colorgrid/colorgridview.js';\nimport type { Model } from '@ckeditor/ckeditor5-engine';\n\nimport ColorGridsFragmentView from './colorgridsfragmentview.js';\nimport ColorPickerFragmentView from './colorpickerfragmentview.js';\n\nimport '../../theme/components/colorselector/colorselector.css';\n\n/**\n * The configurable color selector view class. It allows users to select colors from a predefined set of colors as well as from\n * a color picker.\n *\n * This meta-view is is made of two components (fragments):\n *\n * * {@link module:ui/colorselector/colorselectorview~ColorSelectorView#colorGridsFragmentView},\n * * {@link module:ui/colorselector/colorselectorview~ColorSelectorView#colorPickerFragmentView}.\n *\n * ```ts\n * const colorDefinitions = [\n * \t{ color: '#000', label: 'Black', options: { hasBorder: false } },\n * \t{ color: 'rgb(255, 255, 255)', label: 'White', options: { hasBorder: true } },\n * \t{ color: 'red', label: 'Red', options: { hasBorder: false } }\n * ];\n *\n * const selectorView = new ColorSelectorView( locale, {\n * \tcolors: colorDefinitions,\n * \tcolumns: 5,\n * \tremoveButtonLabel: 'Remove color',\n * \tdocumentColorsLabel: 'Document colors',\n * \tdocumentColorsCount: 4,\n * \tcolorPickerViewConfig: {\n * \t\tformat: 'hsl'\n * \t}\n * } );\n *\n * selectorView.appendUI();\n * selectorView.selectedColor = 'red';\n * selectorView.updateSelectedColors();\n *\n * selectorView.on( 'execute', ( evt, data ) => {\n * \tconsole.log( 'Color changed', data.value, data.source );\n * } );\n *\n * selectorView.on( 'colorPicker:show', ( evt ) => {\n * \tconsole.log( 'Color picker showed up', evt );\n * } );\n *\n * selectorView.on( 'colorPicker:cancel', ( evt ) => {\n * \tconsole.log( 'Color picker cancel', evt );\n * } );\n *\n * selectorView.render();\n *\n * document.body.appendChild( selectorView.element );\n * ```\n */\nexport default class ColorSelectorView extends View {\n\t/**\n\t * Tracks information about the DOM focus in the list.\n\t */\n\tpublic readonly focusTracker: FocusTracker;\n\n\t/**\n\t * An instance of the {@link module:utils/keystrokehandler~KeystrokeHandler}.\n\t */\n\tpublic readonly keystrokes: KeystrokeHandler;\n\n\t/**\n\t * A collection of components.\n\t */\n\tpublic readonly items: ViewCollection;\n\n\t/**\n\t * A fragment that allows users to select colors from the a predefined set and from existing document colors.\n\t */\n\tpublic readonly colorGridsFragmentView: ColorGridsFragmentView;\n\n\t/**\n\t * A fragment that allows users to select a color from a color picker.\n\t */\n\tpublic readonly colorPickerFragmentView: ColorPickerFragmentView;\n\n\t/**\n\t * Keeps the value of the command associated with the component for the current selection.\n\t */\n\tdeclare public selectedColor?: string;\n\n\t/**\n\t * Reflects the visibility state of the color grids fragment.\n\t *\n\t * @internal\n\t */\n\tdeclare public _isColorGridsFragmentVisible: boolean;\n\n\t/**\n\t * Reflects the visibility state of the color picker fragment.\n\t *\n\t * @internal\n\t */\n\tdeclare public _isColorPickerFragmentVisible: boolean;\n\n\t/**\n\t * Helps cycling over focusable {@link #items} in the list.\n\t *\n\t * @readonly\n\t */\n\tprotected _focusCycler: FocusCycler;\n\n\t/**\n\t * A collection of views that can be focused in the view.\n\t *\n\t * @readonly\n\t */\n\tprotected _focusables: ViewCollection;\n\n\t/**\n\t * The configuration of color picker sub-component.\n\t */\n\tprivate _colorPickerViewConfig: ColorPickerViewConfig | false;\n\n\t/**\n\t * Creates a view to be inserted as a child of {@link module:ui/dropdown/dropdownview~DropdownView}.\n\t *\n\t * @param locale The localization services instance.\n\t * @param colors An array with definitions of colors to be displayed in the table.\n\t * @param columns The number of columns in the color grid.\n\t * @param removeButtonLabel The label of the button responsible for removing the color.\n\t * @param colorPickerLabel The label of the button responsible for color picker appearing.\n\t * @param documentColorsLabel The label for the section with the document colors.\n\t * @param documentColorsCount The number of colors in the document colors section inside the color dropdown.\n\t * @param colorPickerViewConfig The configuration of color picker feature. If set to `false`, the color picker will be hidden.\n\t */\n\tconstructor(\n\t\tlocale: Locale,\n\t\t{\n\t\t\tcolors,\n\t\t\tcolumns,\n\t\t\tremoveButtonLabel,\n\t\t\tdocumentColorsLabel,\n\t\t\tdocumentColorsCount,\n\t\t\tcolorPickerLabel,\n\t\t\tcolorPickerViewConfig\n\t\t}: {\n\t\t\tcolors: Array;\n\t\t\tcolumns: number;\n\t\t\tremoveButtonLabel: string;\n\t\t\tdocumentColorsLabel?: string;\n\t\t\tdocumentColorsCount?: number;\n\t\t\tcolorPickerLabel: string;\n\t\t\tcolorPickerViewConfig: ColorPickerViewConfig | false;\n\t\t}\n\t) {\n\t\tsuper( locale );\n\t\tthis.items = this.createCollection();\n\n\t\tthis.focusTracker = new FocusTracker();\n\t\tthis.keystrokes = new KeystrokeHandler();\n\n\t\tthis._focusables = new ViewCollection();\n\t\tthis._colorPickerViewConfig = colorPickerViewConfig;\n\t\tthis._focusCycler = new FocusCycler( {\n\t\t\tfocusables: this._focusables,\n\t\t\tfocusTracker: this.focusTracker,\n\t\t\tkeystrokeHandler: this.keystrokes,\n\t\t\tactions: {\n\t\t\t\t// Navigate list items backwards using the Shift + Tab keystroke.\n\t\t\t\tfocusPrevious: 'shift + tab',\n\n\t\t\t\t// Navigate list items forwards using the Tab key.\n\t\t\t\tfocusNext: 'tab'\n\t\t\t}\n\t\t} );\n\n\t\tthis.colorGridsFragmentView = new ColorGridsFragmentView( locale, {\n\t\t\tcolors, columns, removeButtonLabel, documentColorsLabel, documentColorsCount, colorPickerLabel,\n\t\t\tfocusTracker: this.focusTracker,\n\t\t\tfocusables: this._focusables\n\t\t} );\n\n\t\tthis.colorPickerFragmentView = new ColorPickerFragmentView( locale, {\n\t\t\tfocusables: this._focusables,\n\t\t\tfocusTracker: this.focusTracker,\n\t\t\tkeystrokes: this.keystrokes,\n\t\t\tcolorPickerViewConfig\n\t\t} );\n\n\t\tthis.set( '_isColorGridsFragmentVisible', true );\n\t\tthis.set( '_isColorPickerFragmentVisible', false );\n\n\t\tthis.set( 'selectedColor', undefined );\n\n\t\tthis.colorGridsFragmentView.bind( 'isVisible' ).to( this, '_isColorGridsFragmentVisible' );\n\t\tthis.colorPickerFragmentView.bind( 'isVisible' ).to( this, '_isColorPickerFragmentVisible' );\n\n\t\t/**\n\t\t * This is kind of bindings. Unfortunately we could not use this.bind() method because the same property\n\t\t * can not be bound twice. So this is work around how to bind 'selectedColor' property between components.\n\t\t */\n\t\tthis.on( 'change:selectedColor', ( evt, evtName, data ) => {\n\t\t\tthis.colorGridsFragmentView.set( 'selectedColor', data );\n\t\t\tthis.colorPickerFragmentView.set( 'selectedColor', data );\n\t\t} );\n\n\t\tthis.colorGridsFragmentView.on( 'change:selectedColor', ( evt, evtName, data ) => {\n\t\t\tthis.set( 'selectedColor', data );\n\t\t} );\n\n\t\tthis.colorPickerFragmentView.on( 'change:selectedColor', ( evt, evtName, data ) => {\n\t\t\tthis.set( 'selectedColor', data );\n\t\t} );\n\n\t\tthis.setTemplate( {\n\t\t\ttag: 'div',\n\t\t\tattributes: {\n\t\t\t\tclass: [\n\t\t\t\t\t'ck',\n\t\t\t\t\t'ck-color-selector'\n\t\t\t\t]\n\t\t\t},\n\t\t\tchildren: this.items\n\t\t} );\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic override render(): void {\n\t\tsuper.render();\n\n\t\t// Start listening for the keystrokes coming from #element.\n\t\tthis.keystrokes.listenTo( this.element! );\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic override destroy(): void {\n\t\tsuper.destroy();\n\n\t\tthis.focusTracker.destroy();\n\t\tthis.keystrokes.destroy();\n\t}\n\n\t/**\n\t * Renders the internals of the component on demand:\n\t * * {@link #colorPickerFragmentView},\n\t * * {@link #colorGridsFragmentView}.\n\t *\n\t * It allows for deferring component initialization to improve the performance.\n\t *\n\t * See {@link #showColorPickerFragment}, {@link #showColorGridsFragment}.\n\t */\n\tpublic appendUI(): void {\n\t\tthis._appendColorGridsFragment();\n\n\t\tif ( this._colorPickerViewConfig ) {\n\t\t\tthis._appendColorPickerFragment();\n\t\t}\n\t}\n\n\t/**\n\t * Shows the {@link #colorPickerFragmentView} and hides the {@link #colorGridsFragmentView}.\n\t *\n\t * **Note**: It requires {@link #appendUI} to be called first.\n\t *\n\t * See {@link #showColorGridsFragment}, {@link ~ColorSelectorView#event:colorPicker:show}.\n\t */\n\tpublic showColorPickerFragment(): void {\n\t\tif ( !this.colorPickerFragmentView.colorPickerView || this._isColorPickerFragmentVisible ) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._isColorPickerFragmentVisible = true;\n\t\tthis.colorPickerFragmentView.focus();\n\t\tthis.colorPickerFragmentView.resetValidationStatus();\n\t\tthis._isColorGridsFragmentVisible = false;\n\t}\n\n\t/**\n\t * Shows the {@link #colorGridsFragmentView} and hides the {@link #colorPickerFragmentView}.\n\t *\n\t * See {@link #showColorPickerFragment}.\n\t *\n\t * **Note**: It requires {@link #appendUI} to be called first.\n\t */\n\tpublic showColorGridsFragment(): void {\n\t\tif ( this._isColorGridsFragmentVisible ) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._isColorGridsFragmentVisible = true;\n\t\tthis.colorGridsFragmentView.focus();\n\t\tthis._isColorPickerFragmentVisible = false;\n\t}\n\n\t/**\n\t * Focuses the first focusable element in {@link #items}.\n\t */\n\tpublic focus(): void {\n\t\tthis._focusCycler.focusFirst();\n\t}\n\n\t/**\n\t * Focuses the last focusable element in {@link #items}.\n\t */\n\tpublic focusLast(): void {\n\t\tthis._focusCycler.focusLast();\n\t}\n\n\t/**\n\t * Scans through the editor model and searches for text node attributes with the given `attributeName`.\n\t * Found entries are set as document colors in {@link #colorGridsFragmentView}.\n\t *\n\t * All the previously stored document colors will be lost in the process.\n\t *\n\t * @param model The model used as a source to obtain the document colors.\n\t * @param attributeName Determines the name of the related model's attribute for a given dropdown.\n\t */\n\tpublic updateDocumentColors( model: Model, attributeName: string ): void {\n\t\tthis.colorGridsFragmentView.updateDocumentColors( model, attributeName );\n\t}\n\n\t/**\n\t * Refreshes the state of the selected color in one or both grids located in {@link #colorGridsFragmentView}.\n\t *\n\t * It guarantees that the selection will occur only in one of them.\n\t */\n\tpublic updateSelectedColors(): void {\n\t\tthis.colorGridsFragmentView.updateSelectedColors();\n\t}\n\n\t/**\n\t * Appends the view containing static and document color grid views.\n\t */\n\tprivate _appendColorGridsFragment(): void {\n\t\tif ( this.items.length ) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.items.add( this.colorGridsFragmentView );\n\t\tthis.colorGridsFragmentView.delegate( 'execute' ).to( this );\n\t\tthis.colorGridsFragmentView.delegate( 'colorPicker:show' ).to( this );\n\t}\n\n\t/**\n\t * Appends the view with the color picker.\n\t */\n\tprivate _appendColorPickerFragment(): void {\n\t\tif ( this.items.length === 2 ) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.items.add( this.colorPickerFragmentView );\n\n\t\tif ( this.colorGridsFragmentView.colorPickerButtonView ) {\n\t\t\tthis.colorGridsFragmentView.colorPickerButtonView.on( 'execute', () => {\n\t\t\t\tthis.showColorPickerFragment();\n\t\t\t} );\n\t\t}\n\n\t\tthis.colorGridsFragmentView.addColorPickerButton();\n\t\tthis.colorPickerFragmentView.delegate( 'execute' ).to( this );\n\t\tthis.colorPickerFragmentView.delegate( 'colorPicker:cancel' ).to( this );\n\t}\n}\n\n/**\n * Fired whenever the color was changed. There are multiple sources of this event and you can distinguish them\n * using the `source` property passed along this event.\n *\n * @eventName ~ColorSelectorView#execute\n */\nexport type ColorSelectorExecuteEvent = {\n\tname: 'execute';\n\targs: [ {\n\t\tvalue: string;\n\t\tsource: 'staticColorsGrid' | 'documentColorsGrid' | 'removeColorButton' | 'colorPicker' | 'colorPickerSaveButton';\n\t} ];\n};\n\n/**\n * Fired when the user pressed the \"Cancel\" button in the\n * {@link module:ui/colorselector/colorselectorview~ColorSelectorView#colorPickerFragmentView}.\n *\n * @eventName ~ColorSelectorView#colorPicker:cancel\n */\nexport type ColorSelectorColorPickerCancelEvent = {\n\tname: 'colorPicker:cancel';\n\targs: [];\n};\n\n/**\n * Fired whenever {@link module:ui/colorselector/colorselectorview~ColorSelectorView#colorPickerFragmentView} is shown.\n *\n * See {@link ~ColorSelectorView#showColorPickerFragment}.\n *\n * @eventName ~ColorSelectorView#colorPicker:show\n */\nexport type ColorSelectorColorPickerShowEvent = {\n\tname: 'colorPicker:show';\n\targs: [];\n};\n","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module ui/componentfactory\n */\n\nimport { CKEditorError, type Locale } from '@ckeditor/ckeditor5-utils';\nimport type { Editor } from '@ckeditor/ckeditor5-core';\n\nimport type View from './view.js';\n\n/**\n * A helper class implementing the UI component ({@link module:ui/view~View view}) factory.\n *\n * It allows functions producing specific UI components to be registered under their unique names\n * in the factory. A registered component can be then instantiated by providing its name.\n * Note that the names are case insensitive.\n *\n * ```ts\n * // The editor provides localization tools for the factory.\n * const factory = new ComponentFactory( editor );\n *\n * factory.add( 'foo', locale => new FooView( locale ) );\n * factory.add( 'bar', locale => new BarView( locale ) );\n *\n * // An instance of FooView.\n * const fooInstance = factory.create( 'foo' );\n *\n * // Names are case insensitive so this is also allowed:\n * const barInstance = factory.create( 'Bar' );\n * ```\n *\n * The {@link module:core/editor/editor~Editor#locale editor locale} is passed to the factory\n * function when {@link module:ui/componentfactory~ComponentFactory#create} is called.\n */\nexport default class ComponentFactory {\n\t/**\n\t * The editor instance that the factory belongs to.\n\t */\n\tpublic readonly editor: Editor;\n\n\t/**\n\t * Registered component factories.\n\t */\n\tprivate readonly _components = new Map View }>();\n\n\t/**\n\t * Creates an instance of the factory.\n\t *\n\t * @param editor The editor instance.\n\t */\n\tconstructor( editor: Editor ) {\n\t\tthis.editor = editor;\n\t}\n\n\t/**\n\t * Returns an iterator of registered component names. Names are returned in lower case.\n\t */\n\tpublic* names(): IterableIterator {\n\t\tfor ( const value of this._components.values() ) {\n\t\t\tyield value.originalName;\n\t\t}\n\t}\n\n\t/**\n\t * Registers a component factory function that will be used by the\n\t * {@link #create create} method and called with the\n\t * {@link module:core/editor/editor~Editor#locale editor locale} as an argument,\n\t * allowing localization of the {@link module:ui/view~View view}.\n\t *\n\t * @param name The name of the component.\n\t * @param callback The callback that returns the component.\n\t */\n\tpublic add( name: string, callback: ( locale: Locale ) => View ): void {\n\t\tthis._components.set( getNormalized( name ), { callback, originalName: name } );\n\t}\n\n\t/**\n\t * Creates an instance of a component registered in the factory under a specific name.\n\t *\n\t * When called, the {@link module:core/editor/editor~Editor#locale editor locale} is passed to\n\t * the previously {@link #add added} factory function, allowing localization of the\n\t * {@link module:ui/view~View view}.\n\t *\n\t * @param name The name of the component.\n\t * @returns The instantiated component view.\n\t */\n\tpublic create( name: string ): View {\n\t\tif ( !this.has( name ) ) {\n\t\t\t/**\n\t\t\t * The required component is not registered in the component factory. Please make sure\n\t\t\t * the provided name is correct and the component has been correctly\n\t\t\t * {@link module:ui/componentfactory~ComponentFactory#add added} to the factory.\n\t\t\t *\n\t\t\t * @error componentfactory-item-missing\n\t\t\t * @param name The name of the missing component.\n\t\t\t */\n\t\t\tthrow new CKEditorError(\n\t\t\t\t'componentfactory-item-missing',\n\t\t\t\tthis,\n\t\t\t\t{ name }\n\t\t\t);\n\t\t}\n\n\t\treturn this._components.get( getNormalized( name ) )!.callback( this.editor.locale );\n\t}\n\n\t/**\n\t * Checks if a component of a given name is registered in the factory.\n\t *\n\t * @param name The name of the component.\n\t */\n\tpublic has( name: string ): boolean {\n\t\treturn this._components.has( getNormalized( name ) );\n\t}\n}\n\n/**\n * Ensures that the component name used as the key in the internal map is in lower case.\n */\nfunction getNormalized( name: unknown ) {\n\treturn String( name ).toLowerCase();\n}\n","import api from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./balloonpanel.css\";\n\nvar options = {\"injectType\":\"singletonStyleTag\",\"attributes\":{\"data-cke\":true}};\n\noptions.insert = \"head\";\noptions.singleton = true;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module ui/panel/balloon/balloonpanelview\n */\n\nimport View from '../../view.js';\nimport type ViewCollection from '../../viewcollection.js';\n\nimport {\n\tgetOptimalPosition,\n\tglobal,\n\tisRange,\n\ttoUnit,\n\ttype Locale,\n\ttype ObservableChangeEvent,\n\ttype DomPoint,\n\ttype PositionOptions,\n\ttype PositioningFunction,\n\ttype Rect\n} from '@ckeditor/ckeditor5-utils';\n\nimport { isElement } from 'lodash-es';\nimport '../../../theme/components/panel/balloonpanel.css';\n\nconst toPx = /* #__PURE__ */ toUnit( 'px' );\n\n// A static balloon panel positioning function that moves the balloon far off the viewport.\n// It is used as a fallback when there is no way to position the balloon using provided\n// positioning functions (see: `getOptimalPosition()`), for instance, when the target the\n// balloon should be attached to gets obscured by scrollable containers or the viewport.\n//\n// It prevents the balloon from being attached to the void and possible degradation of the UX.\n// At the same time, it keeps the balloon physically visible in the DOM so the focus remains\n// uninterrupted.\nconst POSITION_OFF_SCREEN: DomPoint = {\n\ttop: -99999,\n\tleft: -99999,\n\tname: 'arrowless',\n\tconfig: {\n\t\twithArrow: false\n\t}\n};\n\n/**\n * The balloon panel view class.\n *\n * A floating container which can\n * {@link module:ui/panel/balloon/balloonpanelview~BalloonPanelView#pin pin} to any\n * {@link module:utils/dom/position~Options#target target} in the DOM and remain in that position\n * e.g. when the web page is scrolled.\n *\n * The balloon panel can be used to display contextual, non-blocking UI like forms, toolbars and\n * the like in its {@link module:ui/panel/balloon/balloonpanelview~BalloonPanelView#content} view\n * collection.\n *\n * There is a number of {@link module:ui/panel/balloon/balloonpanelview~BalloonPanelView.defaultPositions}\n * that the balloon can use, automatically switching from one to another when the viewport space becomes\n * scarce to keep the balloon visible to the user as long as it is possible. The balloon will also\n * accept any custom position set provided by the user compatible with the\n * {@link module:utils/dom/position~Options options}.\n *\n * ```ts\n * const panel = new BalloonPanelView( locale );\n * const childView = new ChildView();\n * const positions = BalloonPanelView.defaultPositions;\n *\n * panel.render();\n *\n * // Add a child view to the panel's content collection.\n * panel.content.add( childView );\n *\n * // Start pinning the panel to an element with the \"target\" id DOM.\n * // The balloon will remain pinned until unpin() is called.\n * panel.pin( {\n * \ttarget: document.querySelector( '#target' ),\n * \tpositions: [\n * \t\tpositions.northArrowSouth,\n * \t\tpositions.southArrowNorth\n * \t]\n * } );\n * ```\n */\nexport default class BalloonPanelView extends View {\n\t/**\n\t * A collection of the child views that creates the balloon panel contents.\n\t */\n\tpublic readonly content: ViewCollection;\n\n\t/**\n\t * The absolute top position of the balloon panel in pixels.\n\t *\n\t * @observable\n\t * @default 0\n\t */\n\tdeclare public top: number;\n\n\t/**\n\t * The absolute left position of the balloon panel in pixels.\n\t *\n\t * @observable\n\t * @default 0\n\t */\n\tdeclare public left: number;\n\n\t/**\n\t * The balloon panel's current position. The position name is reflected in the CSS class set\n\t * to the balloon, i.e. `.ck-balloon-panel_arrow_nw` for the \"arrow_nw\" position. The class\n\t * controls the minor aspects of the balloon's visual appearance like the placement\n\t * of an {@link #withArrow arrow}. To support a new position, an additional CSS must be created.\n\t *\n\t * Default position names correspond with\n\t * {@link module:ui/panel/balloon/balloonpanelview~BalloonPanelView.defaultPositions}.\n\t *\n\t * See the {@link #attachTo} and {@link #pin} methods to learn about custom balloon positions.\n\t *\n\t * @observable\n\t * @default 'arrow_nw'\n\t */\n\tdeclare public position: 'arrow_nw' | 'arrow_ne' | 'arrow_sw' | 'arrow_se';\n\n\t/**\n\t * Controls whether the balloon panel is visible or not.\n\t *\n\t * @observable\n\t * @default false\n\t */\n\tdeclare public isVisible: boolean;\n\n\t/**\n\t * Controls whether the balloon panel has an arrow. The presence of the arrow\n\t * is reflected in the `ck-balloon-panel_with-arrow` CSS class.\n\t *\n\t * @observable\n\t * @default true\n\t */\n\tdeclare public withArrow: boolean;\n\n\t/**\n\t * An additional CSS class added to the {@link #element}.\n\t *\n\t * @observable\n\t */\n\tdeclare public class: string | undefined;\n\n\t/**\n\t * A callback that starts pinning the panel when {@link #isVisible} gets\n\t * `true`. Used by {@link #pin}.\n\t *\n\t * @private\n\t */\n\tprivate _pinWhenIsVisibleCallback: ( () => void ) | null;\n\n\t/**\n\t * @inheritDoc\n\t */\n\tconstructor( locale?: Locale ) {\n\t\tsuper( locale );\n\n\t\tconst bind = this.bindTemplate;\n\n\t\tthis.set( 'top', 0 );\n\t\tthis.set( 'left', 0 );\n\t\tthis.set( 'position', 'arrow_nw' );\n\t\tthis.set( 'isVisible', false );\n\t\tthis.set( 'withArrow', true );\n\t\tthis.set( 'class', undefined );\n\n\t\tthis._pinWhenIsVisibleCallback = null;\n\t\tthis.content = this.createCollection();\n\n\t\tthis.setTemplate( {\n\t\t\ttag: 'div',\n\t\t\tattributes: {\n\t\t\t\tclass: [\n\t\t\t\t\t'ck',\n\t\t\t\t\t'ck-balloon-panel',\n\t\t\t\t\tbind.to( 'position', value => `ck-balloon-panel_${ value }` ),\n\t\t\t\t\tbind.if( 'isVisible', 'ck-balloon-panel_visible' ),\n\t\t\t\t\tbind.if( 'withArrow', 'ck-balloon-panel_with-arrow' ),\n\t\t\t\t\tbind.to( 'class' )\n\t\t\t\t],\n\n\t\t\t\tstyle: {\n\t\t\t\t\ttop: bind.to( 'top', toPx ),\n\t\t\t\t\tleft: bind.to( 'left', toPx )\n\t\t\t\t}\n\t\t\t},\n\n\t\t\tchildren: this.content\n\t\t} );\n\t}\n\n\t/**\n\t * Shows the panel.\n\t *\n\t * See {@link #isVisible}.\n\t */\n\tpublic show(): void {\n\t\tthis.isVisible = true;\n\t}\n\n\t/**\n\t * Hides the panel.\n\t *\n\t * See {@link #isVisible}.\n\t */\n\tpublic hide(): void {\n\t\tthis.isVisible = false;\n\t}\n\n\t/**\n\t * Attaches the panel to a specified {@link module:utils/dom/position~Options#target} with a\n\t * smart positioning heuristics that chooses from available positions to make sure the panel\n\t * is visible to the user i.e. within the limits of the viewport.\n\t *\n\t * This method accepts configuration {@link module:utils/dom/position~Options options}\n\t * to set the `target`, optional `limiter` and `positions` the balloon should choose from.\n\t *\n\t * ```ts\n\t * const panel = new BalloonPanelView( locale );\n\t * const positions = BalloonPanelView.defaultPositions;\n\t *\n\t * panel.render();\n\t *\n\t * // Attach the panel to an element with the \"target\" id DOM.\n\t * panel.attachTo( {\n\t * \ttarget: document.querySelector( '#target' ),\n\t * \tpositions: [\n\t * \t\tpositions.northArrowSouth,\n\t * \t\tpositions.southArrowNorth\n\t * \t]\n\t * } );\n\t * ```\n\t *\n\t * **Note**: Attaching the panel will also automatically {@link #show} it.\n\t *\n\t * **Note**: An attached panel will not follow its target when the window is scrolled or resized.\n\t * See the {@link #pin} method for a more permanent positioning strategy.\n\t *\n\t * @param options Positioning options compatible with {@link module:utils/dom/position~getOptimalPosition}.\n\t * Default `positions` array is {@link module:ui/panel/balloon/balloonpanelview~BalloonPanelView.defaultPositions}.\n\t */\n\tpublic attachTo( options: Partial ): void {\n\t\tthis.show();\n\n\t\tconst defaultPositions = BalloonPanelView.defaultPositions;\n\t\tconst positionOptions = Object.assign( {}, {\n\t\t\telement: this.element,\n\t\t\tpositions: [\n\t\t\t\tdefaultPositions.southArrowNorth,\n\t\t\t\tdefaultPositions.southArrowNorthMiddleWest,\n\t\t\t\tdefaultPositions.southArrowNorthMiddleEast,\n\t\t\t\tdefaultPositions.southArrowNorthWest,\n\t\t\t\tdefaultPositions.southArrowNorthEast,\n\t\t\t\tdefaultPositions.northArrowSouth,\n\t\t\t\tdefaultPositions.northArrowSouthMiddleWest,\n\t\t\t\tdefaultPositions.northArrowSouthMiddleEast,\n\t\t\t\tdefaultPositions.northArrowSouthWest,\n\t\t\t\tdefaultPositions.northArrowSouthEast,\n\t\t\t\tdefaultPositions.viewportStickyNorth\n\t\t\t],\n\t\t\tlimiter: global.document.body,\n\t\t\tfitInViewport: true\n\t\t}, options ) as PositionOptions;\n\n\t\tconst optimalPosition = BalloonPanelView._getOptimalPosition( positionOptions ) || POSITION_OFF_SCREEN;\n\n\t\t// Usually browsers make some problems with super accurate values like 104.345px\n\t\t// so it is better to use int values.\n\t\tconst left = parseInt( optimalPosition.left as any );\n\t\tconst top = parseInt( optimalPosition.top as any );\n\n\t\tconst position = optimalPosition.name as this[ 'position' ];\n\t\tconst config: { withArrow?: boolean } = optimalPosition.config || {};\n\t\tconst { withArrow = true } = config;\n\n\t\tthis.top = top;\n\t\tthis.left = left;\n\t\tthis.position = position;\n\t\tthis.withArrow = withArrow;\n\t}\n\n\t/**\n\t * Works the same way as the {@link #attachTo} method except that the position of the panel is\n\t * continuously updated when:\n\t *\n\t * * any ancestor of the {@link module:utils/dom/position~Options#target}\n\t * or {@link module:utils/dom/position~Options#limiter} is scrolled,\n\t * * the browser window gets resized or scrolled.\n\t *\n\t * Thanks to that, the panel always sticks to the {@link module:utils/dom/position~Options#target}\n\t * and is immune to the changing environment.\n\t *\n\t * ```ts\n\t * const panel = new BalloonPanelView( locale );\n\t * const positions = BalloonPanelView.defaultPositions;\n\t *\n\t * panel.render();\n\t *\n\t * // Pin the panel to an element with the \"target\" id DOM.\n\t * panel.pin( {\n\t * \ttarget: document.querySelector( '#target' ),\n\t * \tpositions: [\n\t * \t\tpositions.northArrowSouth,\n\t * \t\tpositions.southArrowNorth\n\t * \t]\n\t * } );\n\t * ```\n\t *\n\t * To leave the pinned state, use the {@link #unpin} method.\n\t *\n\t * **Note**: Pinning the panel will also automatically {@link #show} it.\n\t *\n\t * @param options Positioning options compatible with {@link module:utils/dom/position~getOptimalPosition}.\n\t * Default `positions` array is {@link module:ui/panel/balloon/balloonpanelview~BalloonPanelView.defaultPositions}.\n\t */\n\tpublic pin( options: Partial ): void {\n\t\tthis.unpin();\n\n\t\tthis._pinWhenIsVisibleCallback = () => {\n\t\t\tif ( this.isVisible ) {\n\t\t\t\tthis._startPinning( options );\n\t\t\t} else {\n\t\t\t\tthis._stopPinning();\n\t\t\t}\n\t\t};\n\n\t\tthis._startPinning( options );\n\n\t\t// Control the state of the listeners depending on whether the panel is visible\n\t\t// or not.\n\t\t// TODO: Use on() (https://github.com/ckeditor/ckeditor5-utils/issues/144).\n\t\tthis.listenTo( this, 'change:isVisible', this._pinWhenIsVisibleCallback );\n\t}\n\n\t/**\n\t * Stops pinning the panel, as set up by {@link #pin}.\n\t */\n\tpublic unpin(): void {\n\t\tif ( this._pinWhenIsVisibleCallback ) {\n\t\t\t// Deactivate listeners attached by pin().\n\t\t\tthis._stopPinning();\n\n\t\t\t// Deactivate the panel pin() control logic.\n\t\t\t// TODO: Use off() (https://github.com/ckeditor/ckeditor5-utils/issues/144).\n\t\t\tthis.stopListening( this, 'change:isVisible', this._pinWhenIsVisibleCallback );\n\n\t\t\tthis._pinWhenIsVisibleCallback = null;\n\n\t\t\tthis.hide();\n\t\t}\n\t}\n\n\t/**\n\t * Starts managing the pinned state of the panel. See {@link #pin}.\n\t *\n\t * @param options Positioning options compatible with {@link module:utils/dom/position~getOptimalPosition}.\n\t */\n\tprivate _startPinning( options: Partial ) {\n\t\tthis.attachTo( options );\n\n\t\tconst targetElement = getDomElement( options.target );\n\t\tconst limiterElement = options.limiter ? getDomElement( options.limiter ) : global.document.body;\n\n\t\t// Then we need to listen on scroll event of eny element in the document.\n\t\tthis.listenTo( global.document, 'scroll', ( evt, domEvt ) => {\n\t\t\tconst scrollTarget = domEvt.target as Element;\n\n\t\t\t// The position needs to be updated if the positioning target is within the scrolled element.\n\t\t\tconst isWithinScrollTarget = targetElement && scrollTarget.contains( targetElement );\n\n\t\t\t// The position needs to be updated if the positioning limiter is within the scrolled element.\n\t\t\tconst isLimiterWithinScrollTarget = limiterElement && scrollTarget.contains( limiterElement );\n\n\t\t\t// The positioning target and/or limiter can be a Rect, object etc..\n\t\t\t// There's no way to optimize the listener then.\n\t\t\tif ( isWithinScrollTarget || isLimiterWithinScrollTarget || !targetElement || !limiterElement ) {\n\t\t\t\tthis.attachTo( options );\n\t\t\t}\n\t\t}, { useCapture: true } );\n\n\t\t// We need to listen on window resize event and update position.\n\t\tthis.listenTo( global.window, 'resize', () => {\n\t\t\tthis.attachTo( options );\n\t\t} );\n\t}\n\n\t/**\n\t * Stops managing the pinned state of the panel. See {@link #pin}.\n\t */\n\tprivate _stopPinning(): void {\n\t\tthis.stopListening( global.document, 'scroll' );\n\t\tthis.stopListening( global.window, 'resize' );\n\t}\n\n\t/**\n\t * Returns available {@link module:ui/panel/balloon/balloonpanelview~BalloonPanelView}\n\t * {@link module:utils/dom/position~PositioningFunction positioning functions} adjusted by the specific offsets.\n\t *\n\t * @internal\n\t * @param options Options to generate positions. If not specified, this helper will simply return\n\t * {@link module:ui/panel/balloon/balloonpanelview~BalloonPanelView.defaultPositions}.\n\t * @param options.sideOffset A custom side offset (in pixels) of each position. If\n\t * not specified, {@link module:ui/panel/balloon/balloonpanelview~BalloonPanelView.arrowSideOffset the default value}\n\t * will be used.\n\t * @param options.heightOffset A custom height offset (in pixels) of each position. If\n\t * not specified, {@link module:ui/panel/balloon/balloonpanelview~BalloonPanelView.arrowHeightOffset the default value}\n\t * will be used.\n\t * @param options.stickyVerticalOffset A custom offset (in pixels) of the `viewportStickyNorth` positioning function.\n\t * If not specified, {@link module:ui/panel/balloon/balloonpanelview~BalloonPanelView.stickyVerticalOffset the default value}\n\t * will be used.\n\t * @param options.config Additional configuration of the balloon balloon panel view.\n\t * Currently only {@link module:ui/panel/balloon/balloonpanelview~BalloonPanelView#withArrow} is supported. Learn more\n\t * about {@link module:utils/dom/position~PositioningFunction positioning functions}.\n\t */\n\tpublic static generatePositions( options: {\n\t\tsideOffset?: number;\n\t\theightOffset?: number;\n\t\tstickyVerticalOffset?: number;\n\t\tconfig?: object;\n\t} = {} ): Record {\n\t\tconst {\n\t\t\tsideOffset = BalloonPanelView.arrowSideOffset,\n\t\t\theightOffset = BalloonPanelView.arrowHeightOffset,\n\t\t\tstickyVerticalOffset = BalloonPanelView.stickyVerticalOffset,\n\t\t\tconfig\n\t\t} = options;\n\n\t\treturn {\n\t\t\t// ------- North west\n\n\t\t\tnorthWestArrowSouthWest: ( targetRect, balloonRect ) => ( {\n\t\t\t\ttop: getNorthTop( targetRect, balloonRect ),\n\t\t\t\tleft: targetRect.left - sideOffset,\n\t\t\t\tname: 'arrow_sw',\n\t\t\t\t...( config && { config } )\n\t\t\t} ),\n\n\t\t\tnorthWestArrowSouthMiddleWest: ( targetRect, balloonRect ) => ( {\n\t\t\t\ttop: getNorthTop( targetRect, balloonRect ),\n\t\t\t\tleft: targetRect.left - ( balloonRect.width * .25 ) - sideOffset,\n\t\t\t\tname: 'arrow_smw',\n\t\t\t\t...( config && { config } )\n\t\t\t} ),\n\n\t\t\tnorthWestArrowSouth: ( targetRect, balloonRect ) => ( {\n\t\t\t\ttop: getNorthTop( targetRect, balloonRect ),\n\t\t\t\tleft: targetRect.left - balloonRect.width / 2,\n\t\t\t\tname: 'arrow_s',\n\t\t\t\t...( config && { config } )\n\t\t\t} ),\n\n\t\t\tnorthWestArrowSouthMiddleEast: ( targetRect, balloonRect ) => ( {\n\t\t\t\ttop: getNorthTop( targetRect, balloonRect ),\n\t\t\t\tleft: targetRect.left - ( balloonRect.width * .75 ) + sideOffset,\n\t\t\t\tname: 'arrow_sme',\n\t\t\t\t...( config && { config } )\n\t\t\t} ),\n\n\t\t\tnorthWestArrowSouthEast: ( targetRect, balloonRect ) => ( {\n\t\t\t\ttop: getNorthTop( targetRect, balloonRect ),\n\t\t\t\tleft: targetRect.left - balloonRect.width + sideOffset,\n\t\t\t\tname: 'arrow_se',\n\t\t\t\t...( config && { config } )\n\t\t\t} ),\n\n\t\t\t// ------- North\n\n\t\t\tnorthArrowSouthWest: ( targetRect, balloonRect ) => ( {\n\t\t\t\ttop: getNorthTop( targetRect, balloonRect ),\n\t\t\t\tleft: targetRect.left + targetRect.width / 2 - sideOffset,\n\t\t\t\tname: 'arrow_sw',\n\t\t\t\t...( config && { config } )\n\t\t\t} ),\n\n\t\t\tnorthArrowSouthMiddleWest: ( targetRect, balloonRect ) => ( {\n\t\t\t\ttop: getNorthTop( targetRect, balloonRect ),\n\t\t\t\tleft: targetRect.left + targetRect.width / 2 - ( balloonRect.width * .25 ) - sideOffset,\n\t\t\t\tname: 'arrow_smw',\n\t\t\t\t...( config && { config } )\n\t\t\t} ),\n\n\t\t\tnorthArrowSouth: ( targetRect, balloonRect ) => ( {\n\t\t\t\ttop: getNorthTop( targetRect, balloonRect ),\n\t\t\t\tleft: targetRect.left + targetRect.width / 2 - balloonRect.width / 2,\n\t\t\t\tname: 'arrow_s',\n\t\t\t\t...( config && { config } )\n\t\t\t} ),\n\n\t\t\tnorthArrowSouthMiddleEast: ( targetRect, balloonRect ) => ( {\n\t\t\t\ttop: getNorthTop( targetRect, balloonRect ),\n\t\t\t\tleft: targetRect.left + targetRect.width / 2 - ( balloonRect.width * .75 ) + sideOffset,\n\t\t\t\tname: 'arrow_sme',\n\t\t\t\t...( config && { config } )\n\t\t\t} ),\n\n\t\t\tnorthArrowSouthEast: ( targetRect, balloonRect ) => ( {\n\t\t\t\ttop: getNorthTop( targetRect, balloonRect ),\n\t\t\t\tleft: targetRect.left + targetRect.width / 2 - balloonRect.width + sideOffset,\n\t\t\t\tname: 'arrow_se',\n\t\t\t\t...( config && { config } )\n\t\t\t} ),\n\n\t\t\t// ------- North east\n\n\t\t\tnorthEastArrowSouthWest: ( targetRect, balloonRect ) => ( {\n\t\t\t\ttop: getNorthTop( targetRect, balloonRect ),\n\t\t\t\tleft: targetRect.right - sideOffset,\n\t\t\t\tname: 'arrow_sw',\n\t\t\t\t...( config && { config } )\n\t\t\t} ),\n\n\t\t\tnorthEastArrowSouthMiddleWest: ( targetRect, balloonRect ) => ( {\n\t\t\t\ttop: getNorthTop( targetRect, balloonRect ),\n\t\t\t\tleft: targetRect.right - ( balloonRect.width * .25 ) - sideOffset,\n\t\t\t\tname: 'arrow_smw',\n\t\t\t\t...( config && { config } )\n\t\t\t} ),\n\n\t\t\tnorthEastArrowSouth: ( targetRect, balloonRect ) => ( {\n\t\t\t\ttop: getNorthTop( targetRect, balloonRect ),\n\t\t\t\tleft: targetRect.right - balloonRect.width / 2,\n\t\t\t\tname: 'arrow_s',\n\t\t\t\t...( config && { config } )\n\t\t\t} ),\n\n\t\t\tnorthEastArrowSouthMiddleEast: ( targetRect, balloonRect ) => ( {\n\t\t\t\ttop: getNorthTop( targetRect, balloonRect ),\n\t\t\t\tleft: targetRect.right - ( balloonRect.width * .75 ) + sideOffset,\n\t\t\t\tname: 'arrow_sme',\n\t\t\t\t...( config && { config } )\n\t\t\t} ),\n\n\t\t\tnorthEastArrowSouthEast: ( targetRect, balloonRect ) => ( {\n\t\t\t\ttop: getNorthTop( targetRect, balloonRect ),\n\t\t\t\tleft: targetRect.right - balloonRect.width + sideOffset,\n\t\t\t\tname: 'arrow_se',\n\t\t\t\t...( config && { config } )\n\t\t\t} ),\n\n\t\t\t// ------- South west\n\n\t\t\tsouthWestArrowNorthWest: targetRect => ( {\n\t\t\t\ttop: getSouthTop( targetRect ),\n\t\t\t\tleft: targetRect.left - sideOffset,\n\t\t\t\tname: 'arrow_nw',\n\t\t\t\t...( config && { config } )\n\t\t\t} ),\n\n\t\t\tsouthWestArrowNorthMiddleWest: ( targetRect, balloonRect ) => ( {\n\t\t\t\ttop: getSouthTop( targetRect ),\n\t\t\t\tleft: targetRect.left - ( balloonRect.width * .25 ) - sideOffset,\n\t\t\t\tname: 'arrow_nmw',\n\t\t\t\t...( config && { config } )\n\t\t\t} ),\n\n\t\t\tsouthWestArrowNorth: ( targetRect, balloonRect ) => ( {\n\t\t\t\ttop: getSouthTop( targetRect ),\n\t\t\t\tleft: targetRect.left - balloonRect.width / 2,\n\t\t\t\tname: 'arrow_n',\n\t\t\t\t...( config && { config } )\n\t\t\t} ),\n\n\t\t\tsouthWestArrowNorthMiddleEast: ( targetRect, balloonRect ) => ( {\n\t\t\t\ttop: getSouthTop( targetRect ),\n\t\t\t\tleft: targetRect.left - ( balloonRect.width * .75 ) + sideOffset,\n\t\t\t\tname: 'arrow_nme',\n\t\t\t\t...( config && { config } )\n\t\t\t} ),\n\n\t\t\tsouthWestArrowNorthEast: ( targetRect, balloonRect ) => ( {\n\t\t\t\ttop: getSouthTop( targetRect ),\n\t\t\t\tleft: targetRect.left - balloonRect.width + sideOffset,\n\t\t\t\tname: 'arrow_ne',\n\t\t\t\t...( config && { config } )\n\t\t\t} ),\n\n\t\t\t// ------- South\n\n\t\t\tsouthArrowNorthWest: targetRect => ( {\n\t\t\t\ttop: getSouthTop( targetRect ),\n\t\t\t\tleft: targetRect.left + targetRect.width / 2 - sideOffset,\n\t\t\t\tname: 'arrow_nw',\n\t\t\t\t...( config && { config } )\n\t\t\t} ),\n\n\t\t\tsouthArrowNorthMiddleWest: ( targetRect, balloonRect ) => ( {\n\t\t\t\ttop: getSouthTop( targetRect ),\n\t\t\t\tleft: targetRect.left + targetRect.width / 2 - ( balloonRect.width * 0.25 ) - sideOffset,\n\t\t\t\tname: 'arrow_nmw',\n\t\t\t\t...( config && { config } )\n\t\t\t} ),\n\n\t\t\tsouthArrowNorth: ( targetRect, balloonRect ) => ( {\n\t\t\t\ttop: getSouthTop( targetRect ),\n\t\t\t\tleft: targetRect.left + targetRect.width / 2 - balloonRect.width / 2,\n\t\t\t\tname: 'arrow_n',\n\t\t\t\t...( config && { config } )\n\t\t\t} ),\n\n\t\t\tsouthArrowNorthMiddleEast: ( targetRect, balloonRect ) => ( {\n\t\t\t\ttop: getSouthTop( targetRect ),\n\t\t\t\tleft: targetRect.left + targetRect.width / 2 - ( balloonRect.width * 0.75 ) + sideOffset,\n\t\t\t\tname: 'arrow_nme',\n\t\t\t\t...( config && { config } )\n\t\t\t} ),\n\n\t\t\tsouthArrowNorthEast: ( targetRect, balloonRect ) => ( {\n\t\t\t\ttop: getSouthTop( targetRect ),\n\t\t\t\tleft: targetRect.left + targetRect.width / 2 - balloonRect.width + sideOffset,\n\t\t\t\tname: 'arrow_ne',\n\t\t\t\t...( config && { config } )\n\t\t\t} ),\n\n\t\t\t// ------- South east\n\n\t\t\tsouthEastArrowNorthWest: targetRect => ( {\n\t\t\t\ttop: getSouthTop( targetRect ),\n\t\t\t\tleft: targetRect.right - sideOffset,\n\t\t\t\tname: 'arrow_nw',\n\t\t\t\t...( config && { config } )\n\t\t\t} ),\n\n\t\t\tsouthEastArrowNorthMiddleWest: ( targetRect, balloonRect ) => ( {\n\t\t\t\ttop: getSouthTop( targetRect ),\n\t\t\t\tleft: targetRect.right - ( balloonRect.width * .25 ) - sideOffset,\n\t\t\t\tname: 'arrow_nmw',\n\t\t\t\t...( config && { config } )\n\t\t\t} ),\n\n\t\t\tsouthEastArrowNorth: ( targetRect, balloonRect ) => ( {\n\t\t\t\ttop: getSouthTop( targetRect ),\n\t\t\t\tleft: targetRect.right - balloonRect.width / 2,\n\t\t\t\tname: 'arrow_n',\n\t\t\t\t...( config && { config } )\n\t\t\t} ),\n\n\t\t\tsouthEastArrowNorthMiddleEast: ( targetRect, balloonRect ) => ( {\n\t\t\t\ttop: getSouthTop( targetRect ),\n\t\t\t\tleft: targetRect.right - ( balloonRect.width * .75 ) + sideOffset,\n\t\t\t\tname: 'arrow_nme',\n\t\t\t\t...( config && { config } )\n\t\t\t} ),\n\n\t\t\tsouthEastArrowNorthEast: ( targetRect, balloonRect ) => ( {\n\t\t\t\ttop: getSouthTop( targetRect ),\n\t\t\t\tleft: targetRect.right - balloonRect.width + sideOffset,\n\t\t\t\tname: 'arrow_ne',\n\t\t\t\t...( config && { config } )\n\t\t\t} ),\n\n\t\t\t// ------- West\n\n\t\t\twestArrowEast: ( targetRect, balloonRect ) => ( {\n\t\t\t\ttop: targetRect.top + targetRect.height / 2 - balloonRect.height / 2,\n\t\t\t\tleft: targetRect.left - balloonRect.width - heightOffset,\n\t\t\t\tname: 'arrow_e',\n\t\t\t\t...( config && { config } )\n\t\t\t} ),\n\n\t\t\t// ------- East\n\n\t\t\teastArrowWest: ( targetRect, balloonRect ) => ( {\n\t\t\t\ttop: targetRect.top + targetRect.height / 2 - balloonRect.height / 2,\n\t\t\t\tleft: targetRect.right + heightOffset,\n\t\t\t\tname: 'arrow_w',\n\t\t\t\t...( config && { config } )\n\t\t\t} ),\n\n\t\t\t// ------- Sticky\n\n\t\t\tviewportStickyNorth: ( targetRect, balloonRect, viewportRect, limiterRect ) => {\n\t\t\t\tconst boundaryRect = limiterRect || viewportRect;\n\n\t\t\t\tif ( !targetRect.getIntersection( boundaryRect ) ) {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\n\t\t\t\t// Engage when the target top and bottom edges are close or off the boundary.\n\t\t\t\t// By close, it means there's not enough space for the balloon arrow (offset).\n\t\t\t\tif ( boundaryRect.height - targetRect.height > stickyVerticalOffset ) {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\n\t\t\t\treturn {\n\t\t\t\t\ttop: boundaryRect.top + stickyVerticalOffset,\n\t\t\t\t\tleft: targetRect.left + targetRect.width / 2 - balloonRect.width / 2,\n\t\t\t\t\tname: 'arrowless',\n\t\t\t\t\tconfig: {\n\t\t\t\t\t\twithArrow: false,\n\t\t\t\t\t\t...config\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t}\n\t\t};\n\n\t\t/**\n\t\t * Returns the top coordinate for positions starting with `north*`.\n\t\t *\n\t\t * @param targetRect A rect of the target.\n\t\t * @param balloonRect A rect of the balloon.\n\t\t */\n\t\tfunction getNorthTop( targetRect: Rect, balloonRect: Rect ) {\n\t\t\treturn targetRect.top - balloonRect.height - heightOffset;\n\t\t}\n\n\t\t/**\n\t\t * Returns the top coordinate for positions starting with `south*`.\n\t\t *\n\t\t * @param targetRect A rect of the target.\n\t\t */\n\t\tfunction getSouthTop( targetRect: Rect ) {\n\t\t\treturn targetRect.bottom + heightOffset;\n\t\t}\n\t}\n\n\t/**\n\t * A side offset of the arrow tip from the edge of the balloon. Controlled by CSS.\n\t *\n\t * ```\n\t *\t\t ┌───────────────────────┐\n\t *\t\t │ │\n\t *\t\t │ Balloon │\n\t *\t\t │ Content │\n\t *\t\t │ │\n\t *\t\t └──+ +───────────────┘\n\t *\t\t | \\ /\n\t *\t\t | \\/\n\t *\t\t>┼─────┼< ─────────────────────── side offset\n\t *\n\t * ```\n\t *\n\t * @default 25\n\t */\n\tpublic static arrowSideOffset = 25;\n\n\t/**\n\t * A height offset of the arrow from the edge of the balloon. Controlled by CSS.\n\t *\n\t * ```\n\t *\t\t ┌───────────────────────┐\n\t *\t\t │ │\n\t *\t\t │ Balloon │\n\t *\t\t │ Content │ ╱-- arrow height offset\n\t *\t\t │ │ V\n\t *\t\t └──+ +───────────────┘ --- ─┼───────\n\t *\t\t \\ / │\n\t *\t\t \\/ │\n\t *\t\t────────────────────────────────┼───────\n\t *\t\t ^\n\t *\n\t *\n\t *\t\t>┼────┼< arrow height offset\n\t *\t\t │ │\n\t *\t\t │ ┌────────────────────────┐\n\t *\t\t │ │ │\n\t *\t\t │ ╱ │\n\t *\t\t │ ╱ Balloon │\n\t *\t\t │ ╲ Content │\n\t *\t\t │ ╲ │\n\t *\t\t │ │ │\n\t *\t\t │ └────────────────────────┘\n\t * ```\n\t *\n\t * @default 10\n\t*/\n\tpublic static arrowHeightOffset = 10;\n\n\t/**\n\t * A vertical offset of the balloon panel from the edge of the viewport if sticky.\n\t * It helps in accessing toolbar buttons underneath the balloon panel.\n\t *\n\t * ```\n\t *\t\t ┌───────────────────────────────────────────────────┐\n\t *\t\t │ Target │\n\t *\t\t │ │\n\t *\t\t │ /── vertical offset │\n\t *\t\t┌─────────────────────────────V─────────────────────────┐\n\t *\t\t│ Toolbar ┌─────────────┐ │\n\t *\t\t├────────────────────│ Balloon │────────────────────┤\n\t *\t\t│ │ └─────────────┘ │ │\n\t *\t\t│ │ │ │\n\t *\t\t│ │ │ │\n\t *\t\t│ │ │ │\n\t *\t\t│ └───────────────────────────────────────────────────┘ │\n\t *\t\t│ Viewport │\n\t *\t\t└───────────────────────────────────────────────────────┘\n\t * ```\n\t *\n\t * @default 20\n\t */\n\tpublic static stickyVerticalOffset = 20;\n\n\t/**\n\t * Function used to calculate the optimal position for the balloon.\n\t */\n\tprivate static _getOptimalPosition = getOptimalPosition;\n\n\t/**\n\t * A default set of positioning functions used by the balloon panel view\n\t * when attaching using the {@link module:ui/panel/balloon/balloonpanelview~BalloonPanelView#attachTo} method.\n\t *\n\t * The available positioning functions are as follows:\n\t *\n\t * **North west**\n\t *\n\t * * `northWestArrowSouthWest`\n\t *\n\t * ```\n\t *\t\t+-----------------+\n\t *\t\t| Balloon |\n\t *\t\t+-----------------+\n\t *\t\t V\n\t *\t\t [ Target ]\n\t * ```\n\t *\n\t * * `northWestArrowSouthMiddleWest`\n\t *\n\t * ```\n\t *\t\t+-----------------+\n\t *\t\t| Balloon |\n\t *\t\t+-----------------+\n\t *\t\t V\n\t *\t\t [ Target ]\n\t * ```\n\t *\n\t * * `northWestArrowSouth`\n\t *\n\t * ```\n\t *\t\t+-----------------+\n\t *\t\t| Balloon |\n\t *\t\t+-----------------+\n\t *\t\t V\n\t *\t\t [ Target ]\n\t * ```\n\t *\n\t * * `northWestArrowSouthMiddleEast`\n\t *\n\t * ```\n\t *\t\t+-----------------+\n\t *\t\t| Balloon |\n\t *\t\t+-----------------+\n\t *\t\t V\n\t *\t\t [ Target ]\n\t * ```\n\t *\n\t * * `northWestArrowSouthEast`\n\t *\n\t * ```\n\t *\t\t+-----------------+\n\t *\t\t| Balloon |\n\t *\t\t+-----------------+\n\t *\t\t V\n\t *\t\t [ Target ]\n\t * ```\n\t *\n\t * **North**\n\t *\n\t * * `northArrowSouthWest`\n\t *\n\t * ```\n\t *\t\t +-----------------+\n\t *\t\t | Balloon |\n\t *\t\t +-----------------+\n\t *\t\t V\n\t *\t\t[ Target ]\n\t * ```\n\t *\n\t * * `northArrowSouthMiddleWest`\n\t *\n\t * ```\n\t *\t\t +-----------------+\n\t *\t\t | Balloon |\n\t *\t\t +-----------------+\n\t *\t\t V\n\t *\t\t[ Target ]\n\t * ```\n\t * * `northArrowSouth`\n\t *\n\t * ```\n\t *\t\t+-----------------+\n\t *\t\t| Balloon |\n\t *\t\t+-----------------+\n\t *\t\t V\n\t *\t\t [ Target ]\n\t * ```\n\t *\n\t * * `northArrowSouthMiddleEast`\n\t *\n\t * ```\n\t *\t\t+-----------------+\n\t *\t\t| Balloon |\n\t *\t\t+-----------------+\n\t *\t\t V\n\t *\t\t [ Target ]\n\t * ```\n\t *\n\t * * `northArrowSouthEast`\n\t *\n\t * ```\n\t *\t\t+-----------------+\n\t *\t\t| Balloon |\n\t *\t\t+-----------------+\n\t *\t\t V\n\t *\t\t [ Target ]\n\t * ```\n\t *\n\t * **North east**\n\t *\n\t * * `northEastArrowSouthWest`\n\t *\n\t * ```\n\t *\t\t +-----------------+\n\t *\t\t | Balloon |\n\t *\t\t +-----------------+\n\t *\t\t V\n\t *\t\t[ Target ]\n\t * ```\n\t *\n\t * * `northEastArrowSouthMiddleWest`\n\t *\n\t * ```\n\t *\t\t +-----------------+\n\t *\t\t | Balloon |\n\t *\t\t +-----------------+\n\t *\t\t V\n\t *\t\t[ Target ]\n\t * ```\n\t *\n\t * * `northEastArrowSouth`\n\t *\n\t * ```\n\t *\t\t+-----------------+\n\t *\t\t| Balloon |\n\t *\t\t+-----------------+\n\t *\t\t V\n\t *\t\t[ Target ]\n\t * ```\n\t *\n\t * * `northEastArrowSouthMiddleEast`\n\t *\n\t * ```\n\t *\t\t+-----------------+\n\t *\t\t| Balloon |\n\t *\t\t+-----------------+\n\t *\t\t V\n\t *\t\t [ Target ]\n\t * ```\n\t *\n\t * * `northEastArrowSouthEast`\n\t *\n\t * ```\n\t *\t\t+-----------------+\n\t *\t\t| Balloon |\n\t *\t\t+-----------------+\n\t *\t\t V\n\t *\t\t [ Target ]\n\t * ```\n\t *\n\t * **South**\n\t *\n\t * * `southArrowNorthWest`\n\t *\n\t * ```\n\t *\t\t[ Target ]\n\t *\t\t ^\n\t *\t\t +-----------------+\n\t *\t\t | Balloon |\n\t *\t\t +-----------------+\n\t * ```\n\t *\n\t * * `southArrowNorthMiddleWest`\n\t *\n\t * ```\n\t *\t\t [ Target ]\n\t *\t\t ^\n\t *\t\t +-----------------+\n\t *\t\t | Balloon |\n\t *\t\t +-----------------+\n\t * ```\n\t *\n\t * * `southArrowNorth`\n\t *\n\t * ```\n\t *\t\t [ Target ]\n\t *\t\t ^\n\t *\t\t+-----------------+\n\t *\t\t| Balloon |\n\t *\t\t+-----------------+\n\t * ```\n\t *\n\t * * `southArrowNorthMiddleEast`\n\t *\n\t * ```\n\t *\t\t [ Target ]\n\t *\t\t ^\n\t *\t\t +-----------------+\n\t *\t\t | Balloon |\n\t *\t\t +-----------------+\n\t * ```\n\t *\n\t * * `southArrowNorthEast`\n\t *\n\t * ```\n\t *\t\t [ Target ]\n\t *\t\t ^\n\t *\t\t+-----------------+\n\t *\t\t| Balloon |\n\t *\t\t+-----------------+\n\t * ```\n\t *\n\t * **South west**\n\t *\n\t * * `southWestArrowNorthWest`\n\t *\n\t *\n\t * ```\n\t *\t\t [ Target ]\n\t *\t\t ^\n\t *\t\t+-----------------+\n\t *\t\t| Balloon |\n\t *\t\t+-----------------+\n\t * ```\n\t *\n\t * * `southWestArrowNorthMiddleWest`\n\t *\n\t * ```\n\t *\t\t [ Target ]\n\t *\t\t ^\n\t *\t\t +-----------------+\n\t *\t\t | Balloon |\n\t *\t\t +-----------------+\n\t * ```\n\t *\n\t * * `southWestArrowNorth`\n\t *\n\t * ```\n\t *\t\t [ Target ]\n\t *\t\t ^\n\t *\t\t+-----------------+\n\t *\t\t| Balloon |\n\t *\t\t+-----------------+\n\t * ```\n\t *\n\t * * `southWestArrowNorthMiddleEast`\n\t *\n\t * ```\n\t *\t\t [ Target ]\n\t *\t\t ^\n\t *\t\t+-----------------+\n\t *\t\t| Balloon |\n\t *\t\t+-----------------+\n\t * ```\n\t *\n\t * * `southWestArrowNorthEast`\n\t *\n\t * ```\n\t *\t\t [ Target ]\n\t *\t\t ^\n\t *\t\t+-----------------+\n\t *\t\t| Balloon |\n\t *\t\t+-----------------+\n\t * ```\n\t *\n\t * **South east**\n\t *\n\t * * `southEastArrowNorthWest`\n\t *\n\t * ```\n\t *\t\t[ Target ]\n\t *\t\t ^\n\t *\t\t +-----------------+\n\t *\t\t | Balloon |\n\t *\t\t +-----------------+\n\t * ```\n\t *\n\t * * `southEastArrowNorthMiddleWest`\n\t *\n\t * ```\n\t *\t\t [ Target ]\n\t *\t\t ^\n\t *\t\t +-----------------+\n\t *\t\t | Balloon |\n\t *\t\t +-----------------+\n\t * ```\n\t *\n\t * * `southEastArrowNorth`\n\t *\n\t * ```\n\t *\t\t[ Target ]\n\t *\t\t ^\n\t *\t\t+-----------------+\n\t *\t\t| Balloon |\n\t *\t\t+-----------------+\n\t * ```\n\t *\n\t * * `southEastArrowNorthMiddleEast`\n\t *\n\t * ```\n\t *\t\t [ Target ]\n\t *\t\t ^\n\t *\t\t+-----------------+\n\t *\t\t| Balloon |\n\t *\t\t+-----------------+\n\t * ```\n\t *\n\t * * `southEastArrowNorthEast`\n\t *\n\t * ```\n\t *\t\t [ Target ]\n\t *\t\t ^\n\t *\t\t+-----------------+\n\t *\t\t| Balloon |\n\t *\t\t+-----------------+\n\t * ```\n\t *\n\t * **West**\n\t *\n\t * * `westArrowEast`\n\t *\n\t * ```\n\t *\t\t+-----------------+\n\t *\t\t| Balloon |>[ Target ]\n\t *\t\t+-----------------+\n\t * ```\n\t *\n\t * **East**\n\t *\n\t * * `eastArrowWest`\n\t *\n\t * ```\n\t *\t\t +-----------------+\n\t *\t\t[ Target ]<| Balloon |\n\t *\t\t +-----------------+\n\t * ```\n\t *\n\t * **Sticky**\n\t *\n\t * * `viewportStickyNorth`\n\t *\n\t * ```\n\t *\t\t +---------------------------+\n\t *\t\t | [ Target ] |\n\t *\t\t | |\n\t *\t\t+-----------------------------------+\n\t *\t\t| | +-----------------+ | |\n\t *\t\t| | | Balloon | | |\n\t *\t\t| | +-----------------+ | |\n\t *\t\t| | | |\n\t *\t\t| | | |\n\t *\t\t| | | |\n\t *\t\t| | | |\n\t *\t\t| +---------------------------+ |\n\t *\t\t| Viewport |\n\t *\t\t+-----------------------------------+\n\t * ```\n\t *\n\t * See {@link module:ui/panel/balloon/balloonpanelview~BalloonPanelView#attachTo}.\n\t *\n\t * Positioning functions must be compatible with {@link module:utils/dom/position~DomPoint}.\n\t *\n\t * Default positioning functions with customized offsets can be generated using\n\t * {@link module:ui/panel/balloon/balloonpanelview~BalloonPanelView.generatePositions}.\n\t *\n\t * The name that the position function returns will be reflected in the balloon panel's class that\n\t * controls the placement of the \"arrow\". See {@link #position} to learn more.\n\t */\n\tpublic static defaultPositions = /* #__PURE__ */ BalloonPanelView.generatePositions();\n}\n\n/**\n * Returns the DOM element for given object or null, if there is none,\n * e.g. when the passed object is a Rect instance or so.\n */\nfunction getDomElement( object: any ): HTMLElement | null {\n\tif ( isElement( object ) ) {\n\t\treturn object;\n\t}\n\n\tif ( isRange( object ) ) {\n\t\treturn object.commonAncestorContainer as any;\n\t}\n\n\tif ( typeof object == 'function' ) {\n\t\treturn getDomElement( object() );\n\t}\n\n\treturn null;\n}\n","import api from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./tooltip.css\";\n\nvar options = {\"injectType\":\"singletonStyleTag\",\"attributes\":{\"data-cke\":true}};\n\noptions.insert = \"head\";\noptions.singleton = true;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module ui/tooltipmanager\n */\n\nimport View from './view.js';\nimport BalloonPanelView from './panel/balloon/balloonpanelview.js';\nimport type { EditorUIUpdateEvent } from './editorui/editorui.js';\n\nimport {\n\tDomEmitterMixin,\n\tResizeObserver,\n\tfirst,\n\tglobal,\n\tisVisible,\n\ttype EventInfo,\n\ttype PositioningFunction\n} from '@ckeditor/ckeditor5-utils';\n\nimport type { Editor } from '@ckeditor/ckeditor5-core';\n\nimport { isElement, debounce, type DebouncedFunc } from 'lodash-es';\n\nimport '../theme/components/tooltip/tooltip.css';\n\nconst BALLOON_CLASS = 'ck-tooltip';\n\n/**\n * A tooltip manager class for the UI of the editor.\n *\n * **Note**: Most likely you do not have to use the `TooltipManager` API listed below in order to display tooltips. Popular\n * {@glink framework/architecture/ui-library UI components} support tooltips out-of-the-box via observable properties\n * (see {@link module:ui/button/buttonview~ButtonView#tooltip} and {@link module:ui/button/buttonview~ButtonView#tooltipPosition}).\n *\n * # Displaying tooltips\n *\n * To display a tooltip, set `data-cke-tooltip-text` attribute on any DOM element:\n *\n * ```ts\n * domElement.dataset.ckeTooltipText = 'My tooltip';\n * ```\n *\n * The tooltip will show up whenever the user moves the mouse over the element or the element gets focus in DOM.\n *\n * # Positioning tooltips\n *\n * To change the position of the tooltip, use the `data-cke-tooltip-position` attribute (`s`, `se`, `sw`, `n`, `e`, or `w`):\n *\n * ```ts\n * domElement.dataset.ckeTooltipText = 'Tooltip to the north';\n * domElement.dataset.ckeTooltipPosition = 'n';\n * ```\n *\n * # Disabling tooltips\n *\n * In order to disable the tooltip temporarily, use the `data-cke-tooltip-disabled` attribute:\n *\n * ```ts\n * domElement.dataset.ckeTooltipText = 'Disabled. For now.';\n * domElement.dataset.ckeTooltipDisabled = 'true';\n * ```\n *\n * # Styling tooltips\n *\n * By default, the tooltip has `.ck-tooltip` class and its text inner `.ck-tooltip__text`.\n *\n * If your tooltip requires custom styling, using `data-cke-tooltip-class` attribute will add additional class to the balloon\n * displaying the tooltip:\n *\n * ```ts\n * domElement.dataset.ckeTooltipText = 'Tooltip with a red text';\n * domElement.dataset.ckeTooltipClass = 'my-class';\n * ```\n *\n * ```css\n * .ck.ck-tooltip.my-class { color: red }\n * ```\n *\n * **Note**: This class is a singleton. All editor instances re-use the same instance loaded by\n * {@link module:ui/editorui/editorui~EditorUI} of the first editor.\n */\nexport default class TooltipManager extends /* #__PURE__ */ DomEmitterMixin() {\n\t/**\n\t * The view rendering text of the tooltip.\n\t */\n\tpublic readonly tooltipTextView!: View & { text: string };\n\n\t/**\n\t * The instance of the balloon panel that renders and positions the tooltip.\n\t */\n\tpublic readonly balloonPanelView!: BalloonPanelView;\n\n\t/**\n\t * A set of default {@link module:utils/dom/position~PositioningFunction positioning functions} used by the `TooltipManager`\n\t * to pin tooltips in different positions.\n\t */\n\tpublic static defaultBalloonPositions = /* #__PURE__ */ BalloonPanelView.generatePositions( {\n\t\theightOffset: 5,\n\t\tsideOffset: 13\n\t} );\n\n\t/**\n\t * Stores the reference to the DOM element the tooltip is attached to. `null` when there's no tooltip\n\t * in the UI.\n\t */\n\tprivate _currentElementWithTooltip: HTMLElement | null = null;\n\n\t/**\n\t * Stores the current tooltip position. `null` when there's no tooltip in the UI.\n\t */\n\tprivate _currentTooltipPosition: TooltipPosition | null = null;\n\n\t/**\n\t * An instance of the resize observer that keeps track on target element visibility,\n\t * when it hides the tooltip should also disappear.\n\t *\n\t * {@link module:core/editor/editorconfig~EditorConfig#balloonToolbar configuration}.\n\t */\n\tprivate _resizeObserver: ResizeObserver | null = null;\n\n\t/**\n\t * An instance of the mutation observer that keeps track on target element attributes changes.\n\t */\n\tprivate _mutationObserver: MutationObserverWrapper | null = null;\n\n\t/**\n\t * A debounced version of {@link #_pinTooltip}. Tooltips show with a delay to avoid flashing and\n\t * to improve the UX.\n\t */\n\tprivate _pinTooltipDebounced!: DebouncedFunc<( targetDomElement: HTMLElement, data: TooltipData ) => void>;\n\n\t/**\n\t * A debounced version of {@link #_unpinTooltip}. Tooltips hide with a delay to allow hovering of their titles.\n\t */\n\tprivate _unpinTooltipDebounced!: DebouncedFunc;\n\n\tprivate readonly _watchdogExcluded!: true;\n\n\t/**\n\t * A set of editors the single tooltip manager instance must listen to.\n\t * This is mostly to handle `EditorUI#update` listeners from individual editors.\n\t */\n\tprivate static _editors = new Set();\n\n\t/**\n\t * A reference to the `TooltipManager` instance. The class is a singleton and as such,\n\t * successive attempts at creating instances should return this instance.\n\t */\n\tprivate static _instance: TooltipManager | null = null;\n\n\t/**\n\t * Creates an instance of the tooltip manager.\n\t */\n\tconstructor( editor: Editor ) {\n\t\tsuper();\n\n\t\tTooltipManager._editors.add( editor );\n\n\t\t// TooltipManager must be a singleton. Multiple instances would mean multiple tooltips attached\n\t\t// to the same DOM element with data-cke-tooltip-* attributes.\n\t\tif ( TooltipManager._instance ) {\n\t\t\treturn TooltipManager._instance;\n\t\t}\n\n\t\tTooltipManager._instance = this;\n\n\t\tthis.tooltipTextView = new View( editor.locale ) as any;\n\t\tthis.tooltipTextView.set( 'text', '' );\n\t\tthis.tooltipTextView.setTemplate( {\n\t\t\ttag: 'span',\n\t\t\tattributes: {\n\t\t\t\tclass: [\n\t\t\t\t\t'ck',\n\t\t\t\t\t'ck-tooltip__text'\n\t\t\t\t]\n\t\t\t},\n\t\t\tchildren: [\n\t\t\t\t{\n\t\t\t\t\ttext: this.tooltipTextView.bindTemplate.to( 'text' )\n\t\t\t\t}\n\t\t\t]\n\t\t} );\n\n\t\tthis.balloonPanelView = new BalloonPanelView( editor.locale );\n\t\tthis.balloonPanelView.class = BALLOON_CLASS;\n\t\tthis.balloonPanelView.content.add( this.tooltipTextView );\n\n\t\tthis._mutationObserver = createMutationObserver( () => {\n\t\t\tthis._updateTooltipPosition();\n\t\t} );\n\n\t\tthis._pinTooltipDebounced = debounce( this._pinTooltip, 600 );\n\t\tthis._unpinTooltipDebounced = debounce( this._unpinTooltip, 400 );\n\n\t\tthis.listenTo( global.document, 'keydown', this._onKeyDown.bind( this ), { useCapture: true } );\n\t\tthis.listenTo( global.document, 'mouseenter', this._onEnterOrFocus.bind( this ), { useCapture: true } );\n\t\tthis.listenTo( global.document, 'mouseleave', this._onLeaveOrBlur.bind( this ), { useCapture: true } );\n\n\t\tthis.listenTo( global.document, 'focus', this._onEnterOrFocus.bind( this ), { useCapture: true } );\n\t\tthis.listenTo( global.document, 'blur', this._onLeaveOrBlur.bind( this ), { useCapture: true } );\n\n\t\tthis.listenTo( global.document, 'scroll', this._onScroll.bind( this ), { useCapture: true } );\n\n\t\t// Because this class is a singleton, its only instance is shared across all editors and connects them through the reference.\n\t\t// This causes issues with the ContextWatchdog. When an error is thrown in one editor, the watchdog traverses the references\n\t\t// and (because of shared tooltip manager) figures that the error affects all editors and restarts them all.\n\t\t// This flag, excludes tooltip manager instance from the traversal and brings ContextWatchdog back to normal.\n\t\t// More in https://github.com/ckeditor/ckeditor5/issues/12292.\n\t\tthis._watchdogExcluded = true;\n\t}\n\n\t/**\n\t * Destroys the tooltip manager.\n\t *\n\t * **Note**: The manager singleton cannot be destroyed until all editors that use it are destroyed.\n\t *\n\t * @param editor The editor the manager was created for.\n\t */\n\tpublic destroy( editor: Editor ): void {\n\t\tconst editorBodyViewCollection = editor.ui.view && editor.ui.view.body;\n\n\t\tTooltipManager._editors.delete( editor );\n\t\tthis.stopListening( editor.ui );\n\n\t\t// Prevent the balloon panel from being destroyed in the EditorUI#destroy() cascade. It should be destroyed along\n\t\t// with the last editor only (https://github.com/ckeditor/ckeditor5/issues/12602).\n\t\tif ( editorBodyViewCollection && editorBodyViewCollection.has( this.balloonPanelView ) ) {\n\t\t\teditorBodyViewCollection.remove( this.balloonPanelView );\n\t\t}\n\n\t\tif ( !TooltipManager._editors.size ) {\n\t\t\tthis._unpinTooltip();\n\t\t\tthis.balloonPanelView.destroy();\n\t\t\tthis.stopListening();\n\n\t\t\tTooltipManager._instance = null;\n\t\t}\n\t}\n\n\t/**\n\t * Returns {@link #balloonPanelView} {@link module:utils/dom/position~PositioningFunction positioning functions} for a given position\n\t * name.\n\t *\n\t * @param position Name of the position (`s`, `se`, `sw`, `n`, `e`, or `w`).\n\t * @returns Positioning functions to be used by the {@link #balloonPanelView}.\n\t */\n\tpublic static getPositioningFunctions( position: TooltipPosition ): Array {\n\t\tconst defaultPositions = TooltipManager.defaultBalloonPositions;\n\n\t\treturn {\n\t\t\t// South is most popular. We can use positioning heuristics to avoid clipping by the viewport with the sane fallback.\n\t\t\ts: [\n\t\t\t\tdefaultPositions.southArrowNorth,\n\t\t\t\tdefaultPositions.southArrowNorthEast,\n\t\t\t\tdefaultPositions.southArrowNorthWest\n\t\t\t],\n\t\t\tn: [ defaultPositions.northArrowSouth ],\n\t\t\te: [ defaultPositions.eastArrowWest ],\n\t\t\tw: [ defaultPositions.westArrowEast ],\n\t\t\tsw: [ defaultPositions.southArrowNorthEast ],\n\t\t\tse: [ defaultPositions.southArrowNorthWest ]\n\t\t}[ position ];\n\t}\n\n\t/**\n\t * Handles hiding tooltips on `keydown` in DOM.\n\t *\n\t * @param evt An object containing information about the fired event.\n\t * @param domEvent The DOM event.\n\t */\n\tprivate _onKeyDown( evt: EventInfo, domEvent: KeyboardEvent ) {\n\t\tif ( domEvent.key === 'Escape' && this._currentElementWithTooltip ) {\n\t\t\tthis._unpinTooltip();\n\t\t\tdomEvent.stopPropagation();\n\t\t}\n\t}\n\n\t/**\n\t * Handles displaying tooltips on `mouseenter` and `focus` in DOM.\n\t *\n\t * @param evt An object containing information about the fired event.\n\t * @param domEvent The DOM event.\n\t */\n\tprivate _onEnterOrFocus( evt: EventInfo, { target }: any ) {\n\t\tconst elementWithTooltipAttribute = getDescendantWithTooltip( target );\n\n\t\t// Abort when there's no descendant needing tooltip.\n\t\tif ( !elementWithTooltipAttribute ) {\n\t\t\t// Unpin if element is focused, regardless of whether it contains a label or not.\n\t\t\t// It also prevents tooltips from overlapping the menu bar\n\t\t\tif ( evt.name === 'focus' ) {\n\t\t\t\tthis._unpinTooltip();\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\t// Abort to avoid flashing when, for instance:\n\t\t// * a tooltip is displayed for a focused element, then the same element gets mouseentered,\n\t\t// * a tooltip is displayed for an element via mouseenter, then the focus moves to the same element.\n\t\tif ( elementWithTooltipAttribute === this._currentElementWithTooltip ) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._unpinTooltip();\n\n\t\tif ( evt.name === 'focus' ) {\n\t\t\tthis._pinTooltip( elementWithTooltipAttribute, getTooltipData( elementWithTooltipAttribute ) );\n\t\t} else {\n\t\t\tthis._pinTooltipDebounced( elementWithTooltipAttribute, getTooltipData( elementWithTooltipAttribute ) );\n\t\t}\n\t}\n\n\t/**\n\t * Handles hiding tooltips on `mouseleave` and `blur` in DOM.\n\t *\n\t * @param evt An object containing information about the fired event.\n\t * @param domEvent The DOM event.\n\t */\n\tprivate _onLeaveOrBlur( evt: EventInfo, { target, relatedTarget }: any ) {\n\t\tif ( evt.name === 'mouseleave' ) {\n\t\t\t// Don't act when the event does not concern a DOM element (e.g. a mouseleave out of an entire document),\n\t\t\tif ( !isElement( target ) ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst balloonElement = this.balloonPanelView.element;\n\t\t\tconst isEnteringBalloon = balloonElement && ( balloonElement === relatedTarget || balloonElement.contains( relatedTarget ) );\n\t\t\tconst isLeavingBalloon = !isEnteringBalloon && target === balloonElement;\n\n\t\t\t// Do not hide the tooltip when the user moves the cursor over it.\n\t\t\tif ( isEnteringBalloon ) {\n\t\t\t\tthis._unpinTooltipDebounced.cancel();\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// If a tooltip is currently visible, don't act for a targets other than the one it is attached to.\n\t\t\t// The only exception is leaving balloon, in this scenario tooltip should be closed.\n\t\t\t// For instance, a random mouseleave far away in the page should not unpin the tooltip that was pinned because\n\t\t\t// of a previous focus. Only leaving the same element should hide the tooltip.\n\t\t\tif ( !isLeavingBalloon && this._currentElementWithTooltip && target !== this._currentElementWithTooltip ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst descendantWithTooltip = getDescendantWithTooltip( target );\n\t\t\tconst relatedDescendantWithTooltip = getDescendantWithTooltip( relatedTarget );\n\n\t\t\t// Unpin when the mouse was leaving element with a tooltip to a place which does not have or has a different tooltip.\n\t\t\t// Note that this should happen whether the tooltip is already visible or not, for instance,\n\t\t\t// it could be invisible but queued (debounced): it should get canceled.\n\t\t\tif ( isLeavingBalloon || ( descendantWithTooltip && descendantWithTooltip !== relatedDescendantWithTooltip ) ) {\n\t\t\t\tthis._unpinTooltipDebounced();\n\t\t\t}\n\t\t} else {\n\t\t\t// If a tooltip is currently visible, don't act for a targets other than the one it is attached to.\n\t\t\t// For instance, a random blur in the web page should not unpin the tooltip that was pinned because of a previous mouseenter.\n\t\t\tif ( this._currentElementWithTooltip && target !== this._currentElementWithTooltip ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Note that unpinning should happen whether the tooltip is already visible or not, for instance, it could be invisible but\n\t\t\t// queued (debounced): it should get canceled (e.g. quick focus then quick blur using the keyboard).\n\t\t\tthis._unpinTooltipDebounced();\n\t\t}\n\t}\n\n\t/**\n\t * Handles hiding tooltips on `scroll` in DOM.\n\t *\n\t * @param evt An object containing information about the fired event.\n\t * @param domEvent The DOM event.\n\t */\n\tprivate _onScroll( evt: unknown, { target }: any ) {\n\t\t// No tooltip, no reason to react on scroll.\n\t\tif ( !this._currentElementWithTooltip ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// When scrolling a container that has both the balloon and the current element (common ancestor), the balloon can remain\n\t\t// visible (e.g. scrolling ≤body>). Otherwise, to avoid glitches (clipping, lagging) better just hide the tooltip.\n\t\t// Also, don't do anything when scrolling an unrelated DOM element that has nothing to do with the current element and the balloon.\n\t\tif ( target.contains( this.balloonPanelView.element ) && target.contains( this._currentElementWithTooltip ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._unpinTooltip();\n\t}\n\n\t/**\n\t * Pins the tooltip to a specific DOM element.\n\t *\n\t * @param options.text Text of the tooltip to display.\n\t * @param options.position The position of the tooltip.\n\t * @param options.cssClass Additional CSS class of the balloon with the tooltip.\n\t */\n\tprivate _pinTooltip(\n\t\ttargetDomElement: HTMLElement,\n\t\t{ text, position, cssClass }: TooltipData\n\t): void {\n\t\tthis._unpinTooltip();\n\n\t\t// Use the body collection of the first editor.\n\t\tconst bodyViewCollection = first( TooltipManager._editors.values() )!.ui.view.body;\n\n\t\tif ( !bodyViewCollection.has( this.balloonPanelView ) ) {\n\t\t\tbodyViewCollection.add( this.balloonPanelView );\n\t\t}\n\n\t\tthis.tooltipTextView.text = text;\n\n\t\tthis.balloonPanelView.pin( {\n\t\t\ttarget: targetDomElement,\n\t\t\tpositions: TooltipManager.getPositioningFunctions( position )\n\t\t} );\n\n\t\tthis._resizeObserver = new ResizeObserver( targetDomElement, () => {\n\t\t\t// The ResizeObserver will call its callback when the target element hides and the tooltip\n\t\t\t// should also disappear (https://github.com/ckeditor/ckeditor5/issues/12492).\n\t\t\tif ( !isVisible( targetDomElement ) ) {\n\t\t\t\tthis._unpinTooltip();\n\t\t\t}\n\t\t} );\n\n\t\tthis._mutationObserver!.attach( targetDomElement );\n\n\t\tthis.balloonPanelView.class = [ BALLOON_CLASS, cssClass ]\n\t\t\t.filter( className => className )\n\t\t\t.join( ' ' );\n\n\t\t// Start responding to changes in editor UI or content layout. For instance, when collaborators change content\n\t\t// and a contextual toolbar attached to a content starts to move (and so should move the tooltip).\n\t\t// Note: Using low priority to let other listeners that position contextual toolbars etc. to react first.\n\t\tfor ( const editor of TooltipManager._editors ) {\n\t\t\tthis.listenTo( editor.ui, 'update', this._updateTooltipPosition.bind( this ), { priority: 'low' } );\n\t\t}\n\n\t\tthis._currentElementWithTooltip = targetDomElement;\n\t\tthis._currentTooltipPosition = position;\n\t}\n\n\t/**\n\t * Unpins the tooltip and cancels all queued pinning.\n\t */\n\tprivate _unpinTooltip() {\n\t\tthis._unpinTooltipDebounced.cancel();\n\t\tthis._pinTooltipDebounced.cancel();\n\n\t\tthis.balloonPanelView.unpin();\n\n\t\tfor ( const editor of TooltipManager._editors ) {\n\t\t\tthis.stopListening( editor.ui, 'update' );\n\t\t}\n\n\t\tthis._currentElementWithTooltip = null;\n\t\tthis._currentTooltipPosition = null;\n\t\tthis.tooltipTextView.text = '';\n\n\t\tif ( this._resizeObserver ) {\n\t\t\tthis._resizeObserver.destroy();\n\t\t}\n\n\t\tthis._mutationObserver!.detach();\n\t}\n\n\t/**\n\t * Updates the position of the tooltip so it stays in sync with the element it is pinned to.\n\t *\n\t * Hides the tooltip when the element is no longer visible in DOM or the tooltip text was removed.\n\t */\n\tprivate _updateTooltipPosition() {\n\t\tconst tooltipData = getTooltipData( this._currentElementWithTooltip! );\n\n\t\t// This could happen if the tooltip was attached somewhere in a contextual content toolbar and the toolbar\n\t\t// disappeared (e.g. removed an image), or the tooltip text was removed.\n\t\tif ( !isVisible( this._currentElementWithTooltip ) || !tooltipData.text ) {\n\t\t\tthis._unpinTooltip();\n\n\t\t\treturn;\n\t\t}\n\n\t\tthis.balloonPanelView.pin( {\n\t\t\ttarget: this._currentElementWithTooltip!,\n\t\t\tpositions: TooltipManager.getPositioningFunctions( tooltipData.position )\n\t\t} );\n\t}\n}\n\nexport type TooltipPosition = 's' | 'n' | 'e' | 'w' | 'sw' | 'se';\n\nfunction getDescendantWithTooltip( element: HTMLElement ) {\n\tif ( !isElement( element ) ) {\n\t\treturn null;\n\t}\n\n\treturn element.closest( '[data-cke-tooltip-text]:not([data-cke-tooltip-disabled])' ) as HTMLElement;\n}\n\ninterface TooltipData {\n\ttext: string;\n\tposition: TooltipPosition;\n\tcssClass: string;\n}\n\nfunction getTooltipData( element: HTMLElement ): TooltipData {\n\treturn {\n\t\ttext: element.dataset.ckeTooltipText!,\n\t\tposition: ( element.dataset.ckeTooltipPosition || 's' ) as TooltipPosition,\n\t\tcssClass: element.dataset.ckeTooltipClass || ''\n\t};\n}\n\n// Creates a simple `MutationObserver` instance wrapper that observes changes in the tooltip-related attributes of the given element.\n// Used instead of the `MutationObserver` from the engine for simplicity.\nfunction createMutationObserver( callback: ( ...args: Array ) => unknown ): MutationObserverWrapper {\n\tconst mutationObserver = new MutationObserver( () => {\n\t\tcallback();\n\t} );\n\n\treturn {\n\t\tattach( element ) {\n\t\t\tmutationObserver.observe( element, {\n\t\t\t\tattributes: true,\n\t\t\t\tattributeFilter: [ 'data-cke-tooltip-text', 'data-cke-tooltip-position' ]\n\t\t\t} );\n\t\t},\n\n\t\tdetach() {\n\t\t\tmutationObserver.disconnect();\n\t\t}\n\t};\n}\n\ninterface MutationObserverWrapper {\n\tattach: ( element: Node ) => void;\n\tdetach: () => void;\n}\n","import debounce from './debounce.js';\nimport isObject from './isObject.js';\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a throttled function that only invokes `func` at most once per\n * every `wait` milliseconds. The throttled function comes with a `cancel`\n * method to cancel delayed `func` invocations and a `flush` method to\n * immediately invoke them. Provide `options` to indicate whether `func`\n * should be invoked on the leading and/or trailing edge of the `wait`\n * timeout. The `func` is invoked with the last arguments provided to the\n * throttled function. Subsequent calls to the throttled function return the\n * result of the last `func` invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the throttled function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.throttle` and `_.debounce`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to throttle.\n * @param {number} [wait=0] The number of milliseconds to throttle invocations to.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=true]\n * Specify invoking on the leading edge of the timeout.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new throttled function.\n * @example\n *\n * // Avoid excessively updating the position while scrolling.\n * jQuery(window).on('scroll', _.throttle(updatePosition, 100));\n *\n * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.\n * var throttled = _.throttle(renewToken, 300000, { 'trailing': false });\n * jQuery(element).on('click', throttled);\n *\n * // Cancel the trailing throttled invocation.\n * jQuery(window).on('popstate', throttled.cancel);\n */\nfunction throttle(func, wait, options) {\n var leading = true,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n if (isObject(options)) {\n leading = 'leading' in options ? !!options.leading : leading;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n return debounce(func, wait, {\n 'leading': leading,\n 'maxWait': wait,\n 'trailing': trailing\n });\n}\n\nexport default throttle;\n","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module ui/editorui/poweredby\n */\n\nimport type { Editor, UiConfig } from '@ckeditor/ckeditor5-core';\nimport {\n\tDomEmitterMixin,\n\tRect,\n\tverifyLicense,\n\ttype PositionOptions,\n\ttype Locale\n} from '@ckeditor/ckeditor5-utils';\nimport BalloonPanelView from '../panel/balloon/balloonpanelview.js';\nimport IconView from '../icon/iconview.js';\nimport View from '../view.js';\nimport { throttle, type DebouncedFunc } from 'lodash-es';\n\nimport poweredByIcon from '../../theme/icons/project-logo.svg';\n\nconst ICON_WIDTH = 53;\nconst ICON_HEIGHT = 10;\n// ⚠ Note, whenever changing the threshold, make sure to update the docs/support/managing-ckeditor-logo.md docs\n// as this information is also mentioned there ⚠.\nconst NARROW_ROOT_HEIGHT_THRESHOLD = 50;\nconst NARROW_ROOT_WIDTH_THRESHOLD = 350;\nconst DEFAULT_LABEL = 'Powered by';\n\ntype PoweredByConfig = Required[ 'poweredBy' ];\n\n/**\n * A helper that enables the \"powered by\" feature in the editor and renders a link to the project's\n * webpage next to the bottom of the editable element (editor root, source editing area, etc.) when the editor is focused.\n *\n * @private\n */\nexport default class PoweredBy extends /* #__PURE__ */ DomEmitterMixin() {\n\t/**\n\t * Editor instance the helper was created for.\n\t */\n\tprivate readonly editor: Editor;\n\n\t/**\n\t * A reference to the balloon panel hosting and positioning the \"powered by\" link and logo.\n\t */\n\tprivate _balloonView: BalloonPanelView | null;\n\n\t/**\n\t * A throttled version of the {@link #_showBalloon} method meant for frequent use to avoid performance loss.\n\t */\n\tprivate _showBalloonThrottled: DebouncedFunc<() => void>;\n\n\t/**\n\t * A reference to the last editable element (root, source editing area, etc.) focused by the user.\n\t * Since the focus can move to other focusable elements in the UI, this reference allows positioning the balloon over the\n\t * right element whether the user is typing or using the UI.\n\t */\n\tprivate _lastFocusedEditableElement: HTMLElement | null;\n\n\t/**\n\t * Creates a \"powered by\" helper for a given editor. The feature is initialized on Editor#ready\n\t * event.\n\t *\n\t * @param editor\n\t */\n\tconstructor( editor: Editor ) {\n\t\tsuper();\n\n\t\tthis.editor = editor;\n\t\tthis._balloonView = null;\n\t\tthis._lastFocusedEditableElement = null;\n\t\tthis._showBalloonThrottled = throttle( this._showBalloon.bind( this ), 50, { leading: true } );\n\n\t\teditor.on( 'ready', this._handleEditorReady.bind( this ) );\n\t}\n\n\t/**\n\t * Destroys the \"powered by\" helper along with its view.\n\t */\n\tpublic destroy(): void {\n\t\tconst balloon = this._balloonView;\n\n\t\tif ( balloon ) {\n\t\t\t// Balloon gets destroyed by the body collection.\n\t\t\t// The powered by view gets destroyed by the balloon.\n\t\t\tballoon.unpin();\n\t\t\tthis._balloonView = null;\n\t\t}\n\n\t\tthis._showBalloonThrottled.cancel();\n\t\tthis.stopListening();\n\t}\n\n\t/**\n\t * Enables \"powered by\" label once the editor (ui) is ready.\n\t */\n\tprivate _handleEditorReady(): void {\n\t\tconst editor = this.editor;\n\t\tconst forceVisible = !!editor.config.get( 'ui.poweredBy.forceVisible' );\n\n\t\t/* istanbul ignore next -- @preserve */\n\t\tif ( !forceVisible && verifyLicense( editor.config.get( 'licenseKey' ) ) === 'VALID' ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// No view means no body collection to append the powered by balloon to.\n\t\tif ( !editor.ui.view ) {\n\t\t\treturn;\n\t\t}\n\n\t\teditor.ui.focusTracker.on( 'change:isFocused', ( evt, data, isFocused ) => {\n\t\t\tthis._updateLastFocusedEditableElement();\n\n\t\t\tif ( isFocused ) {\n\t\t\t\tthis._showBalloon();\n\t\t\t} else {\n\t\t\t\tthis._hideBalloon();\n\t\t\t}\n\t\t} );\n\n\t\teditor.ui.focusTracker.on( 'change:focusedElement', ( evt, data, focusedElement ) => {\n\t\t\tthis._updateLastFocusedEditableElement();\n\n\t\t\tif ( focusedElement ) {\n\t\t\t\tthis._showBalloon();\n\t\t\t}\n\t\t} );\n\n\t\teditor.ui.on( 'update', () => {\n\t\t\tthis._showBalloonThrottled();\n\t\t} );\n\t}\n\n\t/**\n\t * Creates an instance of the {@link module:ui/panel/balloon/balloonpanelview~BalloonPanelView balloon panel}\n\t * with the \"powered by\" view inside ready for positioning.\n\t */\n\tprivate _createBalloonView(): void {\n\t\tconst editor = this.editor;\n\t\tconst balloon = this._balloonView = new BalloonPanelView();\n\t\tconst poweredByConfig = getNormalizedConfig( editor );\n\t\tconst view = new PoweredByView( editor.locale, poweredByConfig.label );\n\n\t\tballoon.content.add( view );\n\t\tballoon.set( {\n\t\t\tclass: 'ck-powered-by-balloon'\n\t\t} );\n\n\t\teditor.ui.view.body.add( balloon );\n\t\teditor.ui.focusTracker.add( balloon.element! );\n\n\t\tthis._balloonView = balloon;\n\t}\n\n\t/**\n\t * Attempts to display the balloon with the \"powered by\" view.\n\t */\n\tprivate _showBalloon(): void {\n\t\tif ( !this._lastFocusedEditableElement ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst attachOptions = getBalloonAttachOptions( this.editor, this._lastFocusedEditableElement );\n\n\t\tif ( attachOptions ) {\n\t\t\tif ( !this._balloonView ) {\n\t\t\t\tthis._createBalloonView();\n\t\t\t}\n\n\t\t\tthis._balloonView!.pin( attachOptions );\n\t\t}\n\t}\n\n\t/**\n\t * Hides the \"powered by\" balloon if already visible.\n\t */\n\tprivate _hideBalloon(): void {\n\t\tif ( this._balloonView ) {\n\t\t\tthis._balloonView!.unpin();\n\t\t}\n\t}\n\n\t/**\n\t * Updates the {@link #_lastFocusedEditableElement} based on the state of the global focus tracker.\n\t */\n\tprivate _updateLastFocusedEditableElement(): void {\n\t\tconst editor = this.editor;\n\t\tconst isFocused = editor.ui.focusTracker.isFocused;\n\t\tconst focusedElement = editor.ui.focusTracker.focusedElement! as HTMLElement;\n\n\t\tif ( !isFocused || !focusedElement ) {\n\t\t\tthis._lastFocusedEditableElement = null;\n\n\t\t\treturn;\n\t\t}\n\n\t\tconst editableEditorElements = Array.from( editor.ui.getEditableElementsNames() ).map( name => {\n\t\t\treturn editor.ui.getEditableElement( name );\n\t\t} );\n\n\t\tif ( editableEditorElements.includes( focusedElement ) ) {\n\t\t\tthis._lastFocusedEditableElement = focusedElement;\n\t\t} else {\n\t\t\t// If it's none of the editable element, then the focus is somewhere in the UI. Let's display powered by\n\t\t\t// over the first element then.\n\t\t\tthis._lastFocusedEditableElement = editableEditorElements[ 0 ]!;\n\t\t}\n\t}\n}\n\n/**\n * A view displaying a \"powered by\" label and project logo wrapped in a link.\n */\nclass PoweredByView extends View {\n\t/**\n\t * Created an instance of the \"powered by\" view.\n\t *\n\t * @param locale The localization services instance.\n\t * @param label The label text.\n\t */\n\tconstructor( locale: Locale, label: string | null ) {\n\t\tsuper( locale );\n\n\t\tconst iconView = new IconView();\n\t\tconst bind = this.bindTemplate;\n\n\t\ticonView.set( {\n\t\t\tcontent: poweredByIcon,\n\t\t\tisColorInherited: false\n\t\t} );\n\n\t\ticonView.extendTemplate( {\n\t\t\tattributes: {\n\t\t\t\tstyle: {\n\t\t\t\t\twidth: ICON_WIDTH + 'px',\n\t\t\t\t\theight: ICON_HEIGHT + 'px'\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\n\t\tthis.setTemplate( {\n\t\t\ttag: 'div',\n\t\t\tattributes: {\n\t\t\t\tclass: [ 'ck', 'ck-powered-by' ],\n\t\t\t\t'aria-hidden': true\n\t\t\t},\n\t\t\tchildren: [\n\t\t\t\t{\n\t\t\t\t\ttag: 'a',\n\t\t\t\t\tattributes: {\n\t\t\t\t\t\thref: 'https://ckeditor.com/?utm_source=ckeditor&' +\n\t\t\t\t\t\t\t'utm_medium=referral&utm_campaign=701Dn000000hVgmIAE_powered_by_ckeditor_logo',\n\t\t\t\t\t\ttarget: '_blank',\n\t\t\t\t\t\ttabindex: '-1'\n\t\t\t\t\t},\n\t\t\t\t\tchildren: [\n\t\t\t\t\t\t...label ? [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\ttag: 'span',\n\t\t\t\t\t\t\t\tattributes: {\n\t\t\t\t\t\t\t\t\tclass: [ 'ck', 'ck-powered-by__label' ]\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tchildren: [ label ]\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t] : [],\n\t\t\t\t\t\ticonView\n\t\t\t\t\t],\n\t\t\t\t\ton: {\n\t\t\t\t\t\tdragstart: bind.to( evt => evt.preventDefault() )\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t]\n\t\t} );\n\t}\n}\n\nfunction getBalloonAttachOptions( editor: Editor, focusedEditableElement: HTMLElement ): Partial | null {\n\tconst poweredByConfig = getNormalizedConfig( editor )!;\n\tconst positioningFunction = poweredByConfig.side === 'right' ?\n\t\tgetLowerRightCornerPosition( focusedEditableElement, poweredByConfig ) :\n\t\tgetLowerLeftCornerPosition( focusedEditableElement, poweredByConfig );\n\n\treturn {\n\t\ttarget: focusedEditableElement,\n\t\tpositions: [ positioningFunction ]\n\t};\n}\n\nfunction getLowerRightCornerPosition( focusedEditableElement: HTMLElement, config: PoweredByConfig ) {\n\treturn getLowerCornerPosition( focusedEditableElement, config, ( rootRect, balloonRect ) => {\n\t\treturn rootRect.left + rootRect.width - balloonRect.width - config.horizontalOffset;\n\t} );\n}\n\nfunction getLowerLeftCornerPosition( focusedEditableElement: HTMLElement, config: PoweredByConfig ) {\n\treturn getLowerCornerPosition( focusedEditableElement, config, rootRect => rootRect.left + config.horizontalOffset );\n}\n\nfunction getLowerCornerPosition(\n\tfocusedEditableElement: HTMLElement,\n\tconfig: PoweredByConfig,\n\tgetBalloonLeft: ( visibleEditableElementRect: Rect, balloonRect: Rect ) => number\n) {\n\treturn ( visibleEditableElementRect: Rect, balloonRect: Rect ) => {\n\t\tconst editableElementRect = new Rect( focusedEditableElement );\n\n\t\tif ( editableElementRect.width < NARROW_ROOT_WIDTH_THRESHOLD || editableElementRect.height < NARROW_ROOT_HEIGHT_THRESHOLD ) {\n\t\t\treturn null;\n\t\t}\n\n\t\tlet balloonTop;\n\n\t\tif ( config.position === 'inside' ) {\n\t\t\tballoonTop = editableElementRect.bottom - balloonRect.height;\n\t\t}\n\t\telse {\n\t\t\tballoonTop = editableElementRect.bottom - balloonRect.height / 2;\n\t\t}\n\n\t\tballoonTop -= config.verticalOffset;\n\n\t\tconst balloonLeft = getBalloonLeft( editableElementRect, balloonRect );\n\n\t\t// Clone the editable element rect and place it where the balloon would be placed.\n\t\t// This will allow getVisible() to work from editable element's perspective (rect source).\n\t\t// and yield a result as if the balloon was on the same (scrollable) layer as the editable element.\n\t\tconst newBalloonPositionRect = visibleEditableElementRect\n\t\t\t.clone()\n\t\t\t.moveTo( balloonLeft, balloonTop )\n\t\t\t.getIntersection( balloonRect.clone().moveTo( balloonLeft, balloonTop ) )!;\n\n\t\tconst newBalloonPositionVisibleRect = newBalloonPositionRect.getVisible();\n\n\t\tif ( !newBalloonPositionVisibleRect || newBalloonPositionVisibleRect.getArea() < balloonRect.getArea() ) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn {\n\t\t\ttop: balloonTop,\n\t\t\tleft: balloonLeft,\n\t\t\tname: `position_${ config.position }-side_${ config.side }`,\n\t\t\tconfig: {\n\t\t\t\twithArrow: false\n\t\t\t}\n\t\t};\n\t};\n}\n\nfunction getNormalizedConfig( editor: Editor ): PoweredByConfig {\n\tconst userConfig = editor.config.get( 'ui.poweredBy' );\n\tconst position = userConfig && userConfig.position || 'border';\n\n\treturn {\n\t\tposition,\n\t\tlabel: DEFAULT_LABEL,\n\t\tverticalOffset: position === 'inside' ? 5 : 0,\n\t\thorizontalOffset: 5,\n\n\t\tside: editor.locale.contentLanguageDirection === 'ltr' ? 'right' : 'left',\n\t\t...userConfig\n\t};\n}\n","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module utils/verifylicense\n */\n\nimport { releaseDate } from './version.js';\n\n/**\n * Possible states of the key after verification.\n */\nexport type VerifiedKeyStatus = 'VALID' | 'INVALID';\n\n/**\n * Checks whether the given string contains information that allows you to verify the license status.\n *\n * @param token The string to check.\n * @returns String that represents the state of given `token` parameter.\n */\nexport default function verifyLicense( token: string | undefined ): VerifiedKeyStatus {\n\t// This function implements naive and partial license key check mechanism,\n\t// used only to decide whether to show or hide the \"Powered by CKEditor\" logo.\n\t//\n\t// You can read the reasoning behind showing the logo to unlicensed (GPL) users\n\t// in this thread: https://github.com/ckeditor/ckeditor5/issues/14082.\n\t//\n\t// We firmly believe in the values behind creating open-source software, even when that\n\t// means keeping the license verification logic open for everyone to see.\n\t//\n\t// Please keep this code intact. Thank you for your understanding.\n\n\tfunction oldTokenCheck( token: string ): VerifiedKeyStatus {\n\t\tif ( token.length >= 40 && token.length <= 255 ) {\n\t\t\treturn 'VALID';\n\t\t} else {\n\t\t\treturn 'INVALID';\n\t\t}\n\t}\n\n\t// TODO: issue ci#3175\n\n\tif ( !token ) {\n\t\treturn 'INVALID';\n\t}\n\n\tlet decryptedData = '';\n\n\ttry {\n\t\tdecryptedData = atob( token );\n\t} catch ( e ) {\n\t\treturn 'INVALID';\n\t}\n\n\tconst splittedDecryptedData = decryptedData.split( '-' );\n\n\tconst firstElement = splittedDecryptedData[ 0 ];\n\tconst secondElement = splittedDecryptedData[ 1 ];\n\n\tif ( !secondElement ) {\n\t\treturn oldTokenCheck( token );\n\t}\n\n\ttry {\n\t\tatob( secondElement );\n\t} catch ( e ) {\n\t\ttry {\n\t\t\tatob( firstElement );\n\n\t\t\tif ( !atob( firstElement ).length ) {\n\t\t\t\treturn oldTokenCheck( token );\n\t\t\t}\n\t\t} catch ( e ) {\n\t\t\treturn oldTokenCheck( token );\n\t\t}\n\t}\n\n\tif ( firstElement.length < 40 || firstElement.length > 255 ) {\n\t\treturn 'INVALID';\n\t}\n\n\tlet decryptedSecondElement = '';\n\n\ttry {\n\t\tatob( firstElement );\n\t\tdecryptedSecondElement = atob( secondElement );\n\t} catch ( e ) {\n\t\treturn 'INVALID';\n\t}\n\n\tif ( decryptedSecondElement.length !== 8 ) {\n\t\treturn 'INVALID';\n\t}\n\n\tconst year = Number( decryptedSecondElement.substring( 0, 4 ) );\n\tconst monthIndex = Number( decryptedSecondElement.substring( 4, 6 ) ) - 1;\n\tconst day = Number( decryptedSecondElement.substring( 6, 8 ) );\n\n\tconst date = new Date( year, monthIndex, day );\n\n\tif ( date < releaseDate || isNaN( Number( date ) ) ) {\n\t\treturn 'INVALID';\n\t}\n\n\treturn 'VALID';\n}\n","export default \" \\n\";","import api from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./arialiveannouncer.css\";\n\nvar options = {\"injectType\":\"singletonStyleTag\",\"attributes\":{\"data-cke\":true}};\n\noptions.insert = \"head\";\noptions.singleton = true;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module ui/arialiveannouncer\n */\n\nimport type { DomConverter } from '@ckeditor/ckeditor5-engine';\nimport type { Editor } from '@ckeditor/ckeditor5-core';\nimport type { Locale } from '@ckeditor/ckeditor5-utils';\nimport type ViewCollection from './viewcollection.js';\nimport View from './view.js';\n\nimport '../theme/components/arialiveannouncer/arialiveannouncer.css';\n\n/**\n * The politeness level of an `aria-live` announcement.\n *\n * Available keys are:\n * * `AriaLiveAnnouncerPoliteness.POLITE`,\n * * `AriaLiveAnnouncerPoliteness.ASSERTIVE`\n *\n * [Learn more](https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/ARIA_Live_Regions#Politeness_levels).\n */\nexport const AriaLiveAnnouncerPoliteness = {\n\tPOLITE: 'polite',\n\tASSERTIVE: 'assertive'\n} as const;\n\n/**\n * An accessibility helper that manages all ARIA live regions associated with an editor instance. ARIA live regions announce changes\n * to the state of the editor features.\n *\n * These announcements are consumed and propagated by screen readers and give users a better understanding of the current\n * state of the editor.\n *\n * To announce a state change to an editor use the {@link #announce} method:\n *\n * ```ts\n * editor.ui.ariaLiveAnnouncer.announce( 'Text of an announcement.' );\n * ```\n */\nexport default class AriaLiveAnnouncer {\n\t/**\n\t * The editor instance.\n\t */\n\tpublic readonly editor: Editor;\n\n\t/**\n\t * The view that aggregates all `aria-live` regions.\n\t */\n\tpublic view?: AriaLiveAnnouncerView;\n\n\t/**\n\t * @inheritDoc\n\t */\n\tconstructor( editor: Editor ) {\n\t\tthis.editor = editor;\n\n\t\t/**\n\t\t * Some screen readers only look at changes in the aria-live region.\n\t\t * They might not read a region that already has content when it is added.\n\t\t * To stop this problem, make sure to set up regions for all politeness settings when the editor starts.\n\t\t */\n\t\teditor.once( 'ready', () => {\n\t\t\tfor ( const politeness of Object.values( AriaLiveAnnouncerPoliteness ) ) {\n\t\t\t\tthis.announce( '', politeness );\n\t\t\t}\n\t\t} );\n\t}\n\n\t/**\n\t * Sets an announcement text to an aria region that is then announced by a screen reader to the user.\n\t *\n\t * If the aria region of a specified politeness does not exist, it will be created and can be re-used later.\n\t *\n\t * The default announcement politeness level is `'polite'`.\n\t *\n\t * ```ts\n\t * // Most screen readers will queue announcements from multiple aria-live regions and read them out in the order they were emitted.\n \t * editor.ui.ariaLiveAnnouncer.announce( 'Image uploaded.' );\n \t * editor.ui.ariaLiveAnnouncer.announce( 'Connection lost. Reconnecting.' );\n \t * ```\n\t */\n\tpublic announce(\n\t\tannouncement: string,\n\t\tattributes: AriaLiveAnnouncerPolitenessValue | AriaLiveAnnounceConfig = AriaLiveAnnouncerPoliteness.POLITE\n\t): void {\n\t\tconst editor = this.editor;\n\n\t\tif ( !editor.ui.view ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( !this.view ) {\n\t\t\tthis.view = new AriaLiveAnnouncerView( editor.locale );\n\t\t\teditor.ui.view.body.add( this.view );\n\t\t}\n\n\t\tconst { politeness, isUnsafeHTML }: AriaLiveAnnounceConfig = typeof attributes === 'string' ? {\n\t\t\tpoliteness: attributes\n\t\t} : attributes;\n\n\t\tlet politenessRegionView = this.view.regionViews.find( view => view.politeness === politeness );\n\n\t\tif ( !politenessRegionView ) {\n\t\t\tpolitenessRegionView = new AriaLiveAnnouncerRegionView( editor, politeness );\n\t\t\tthis.view.regionViews.add( politenessRegionView );\n\t\t}\n\n\t\tpolitenessRegionView.announce( {\n\t\t\tannouncement,\n\t\t\tisUnsafeHTML\n\t\t} );\n\t}\n}\n\n/**\n * The view that aggregates all `aria-live` regions.\n */\nexport class AriaLiveAnnouncerView extends View {\n\t/**\n\t * A collection of all views that represent individual `aria-live` regions.\n\t */\n\tpublic readonly regionViews: ViewCollection;\n\n\tconstructor( locale: Locale ) {\n\t\tsuper( locale );\n\n\t\tthis.regionViews = this.createCollection();\n\n\t\tthis.setTemplate( {\n\t\t\ttag: 'div',\n\t\t\tattributes: {\n\t\t\t\tclass: [\n\t\t\t\t\t'ck',\n\t\t\t\t\t'ck-aria-live-announcer'\n\t\t\t\t]\n\t\t\t},\n\t\t\tchildren: this.regionViews\n\t\t} );\n\t}\n}\n\n/**\n * The view that represents a single `aria-live`.\n */\nexport class AriaLiveAnnouncerRegionView extends View {\n\t/**\n\t * Current politeness level of the region.\n\t */\n\tpublic readonly politeness: AriaLiveAnnouncerPolitenessValue;\n\n\t/**\n\t * DOM converter used to sanitize unsafe HTML passed to {@link #announce} method.\n\t */\n\tprivate _domConverter: DomConverter;\n\n\t/**\n\t * Interval used to remove additions. It prevents accumulation of added nodes in region.\n\t */\n\tprivate _pruneAnnouncementsInterval: ReturnType | null;\n\n\tconstructor( editor: Editor, politeness: AriaLiveAnnouncerPolitenessValue ) {\n\t\tsuper( editor.locale );\n\n\t\tthis.setTemplate( {\n\t\t\ttag: 'div',\n\t\t\tattributes: {\n\t\t\t\trole: 'region',\n\t\t\t\t'aria-live': politeness,\n\t\t\t\t'aria-relevant': 'additions'\n\t\t\t},\n\t\t\tchildren: [\n\t\t\t\t{\n\t\t\t\t\ttag: 'ul',\n\t\t\t\t\tattributes: {\n\t\t\t\t\t\tclass: [\n\t\t\t\t\t\t\t'ck',\n\t\t\t\t\t\t\t'ck-aria-live-region-list'\n\t\t\t\t\t\t]\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t]\n\t\t} );\n\n\t\teditor.on( 'destroy', () => {\n\t\t\tif ( this._pruneAnnouncementsInterval !== null ) {\n\t\t\t\tclearInterval( this._pruneAnnouncementsInterval! );\n\t\t\t\tthis._pruneAnnouncementsInterval = null;\n\t\t\t}\n\t\t} );\n\n\t\tthis.politeness = politeness;\n\t\tthis._domConverter = editor.data.htmlProcessor.domConverter;\n\t\tthis._pruneAnnouncementsInterval = setInterval( () => {\n\t\t\tif ( this.element && this._listElement!.firstChild ) {\n\t\t\t\tthis._listElement!.firstChild!.remove();\n\t\t\t}\n\t\t}, 5000 );\n\t}\n\n\t/**\n\t * Appends new announcement to region.\n\t */\n\tpublic announce( { announcement, isUnsafeHTML }: AriaLiveAppendContentAttributes ): void {\n\t\tif ( !announcement.trim().length ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst messageListItem = document.createElement( 'li' );\n\n\t\tif ( isUnsafeHTML ) {\n\t\t\tthis._domConverter.setContentOf( messageListItem, announcement );\n\t\t} else {\n\t\t\tmessageListItem.innerText = announcement;\n\t\t}\n\n\t\tthis._listElement!.appendChild( messageListItem );\n\t}\n\n\t/**\n\t * Return current announcements list HTML element.\n\t */\n\tprivate get _listElement(): HTMLElement | null {\n\t\treturn this.element!.querySelector( 'ul' )!;\n\t}\n}\n\ntype AriaLiveAnnouncerPolitenessValue = typeof AriaLiveAnnouncerPoliteness[ keyof typeof AriaLiveAnnouncerPoliteness ];\n\ntype AriaLiveAppendContentAttributes = {\n\tannouncement: string;\n\tisUnsafeHTML?: boolean;\n};\n\ntype AriaLiveAnnounceConfig = {\n\tpoliteness: AriaLiveAnnouncerPolitenessValue;\n\tisUnsafeHTML?: boolean;\n};\n","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module ui/editorui/editorui\n */\n\n/* globals console */\n\nimport ComponentFactory from '../componentfactory.js';\nimport TooltipManager from '../tooltipmanager.js';\nimport PoweredBy from './poweredby.js';\nimport AriaLiveAnnouncer from '../arialiveannouncer.js';\n\nimport type EditorUIView from './editoruiview.js';\nimport type ToolbarView from '../toolbar/toolbarview.js';\nimport type { UIViewRenderEvent } from '../view.js';\n\nimport {\n\tObservableMixin,\n\tisVisible,\n\tFocusTracker,\n\ttype EventInfo\n} from '@ckeditor/ckeditor5-utils';\n\nimport type { Editor } from '@ckeditor/ckeditor5-core';\nimport type { ViewDocumentLayoutChangedEvent, ViewScrollToTheSelectionEvent } from '@ckeditor/ckeditor5-engine';\n\n/**\n * A class providing the minimal interface that is required to successfully bootstrap any editor UI.\n */\nexport default abstract class EditorUI extends /* #__PURE__ */ ObservableMixin() {\n\t/**\n\t * The editor that the UI belongs to.\n\t */\n\tpublic readonly editor: Editor;\n\n\t/**\n\t * An instance of the {@link module:ui/componentfactory~ComponentFactory}, a registry used by plugins\n\t * to register factories of specific UI components.\n\t */\n\tpublic readonly componentFactory: ComponentFactory;\n\n\t/**\n\t * Stores the information about the editor UI focus and propagates it so various plugins and components\n\t * are unified as a focus group.\n\t */\n\tpublic readonly focusTracker: FocusTracker;\n\n\t/**\n\t * Manages the tooltips displayed on mouseover and focus across the UI.\n\t */\n\tpublic readonly tooltipManager: TooltipManager;\n\n\t/**\n\t * A helper that enables the \"powered by\" feature in the editor and renders a link to the project's webpage.\n\t */\n\tpublic readonly poweredBy: PoweredBy;\n\n\t/**\n\t * A helper that manages the content of an `aria-live` regions used by editor features to announce status changes\n\t * to screen readers.\n\t */\n\tpublic readonly ariaLiveAnnouncer: AriaLiveAnnouncer;\n\n\t/**\n\t * Indicates the UI is ready. Set `true` after {@link #event:ready} event is fired.\n\t *\n\t * @readonly\n\t * @default false\n\t */\n\tpublic isReady: boolean = false;\n\n\tpublic abstract get view(): EditorUIView;\n\n\t/**\n\t * Stores viewport offsets from every direction.\n\t *\n\t * Viewport offset can be used to constrain balloons or other UI elements into an element smaller than the viewport.\n\t * This can be useful if there are any other absolutely positioned elements that may interfere with editor UI.\n\t *\n\t * Example `editor.ui.viewportOffset` returns:\n\t *\n\t * ```js\n\t * {\n\t * \ttop: 50,\n\t * \tright: 50,\n\t * \tbottom: 50,\n\t * \tleft: 50\n\t * }\n\t * ```\n\t *\n\t * This property can be overriden after editor already being initialized:\n\t *\n\t * ```js\n\t * editor.ui.viewportOffset = {\n\t * \ttop: 100,\n\t * \tright: 0,\n\t * \tbottom: 0,\n\t * \tleft: 0\n\t * };\n\t * ```\n\t *\n\t * @observable\n\t */\n\tpublic declare viewportOffset: {\n\t\tleft?: number;\n\t\tright?: number;\n\t\ttop?: number;\n\t\tbottom?: number;\n\t};\n\n\t/**\n\t * Stores all editable elements used by the editor instance.\n\t */\n\tprivate _editableElementsMap = new Map();\n\n\t/**\n\t * All available & focusable toolbars.\n\t */\n\tprivate _focusableToolbarDefinitions: Array = [];\n\n\t/**\n\t * Creates an instance of the editor UI class.\n\t *\n\t * @param editor The editor instance.\n\t */\n\tconstructor( editor: Editor ) {\n\t\tsuper();\n\n\t\tconst editingView = editor.editing.view;\n\n\t\tthis.editor = editor;\n\t\tthis.componentFactory = new ComponentFactory( editor );\n\t\tthis.focusTracker = new FocusTracker();\n\t\tthis.tooltipManager = new TooltipManager( editor );\n\t\tthis.poweredBy = new PoweredBy( editor );\n\t\tthis.ariaLiveAnnouncer = new AriaLiveAnnouncer( editor );\n\n\t\tthis.set( 'viewportOffset', this._readViewportOffsetFromConfig() );\n\n\t\tthis.once( 'ready', () => {\n\t\t\tthis.isReady = true;\n\t\t} );\n\n\t\t// Informs UI components that should be refreshed after layout change.\n\t\tthis.listenTo( editingView.document, 'layoutChanged', this.update.bind( this ) );\n\t\tthis.listenTo( editingView, 'scrollToTheSelection', this._handleScrollToTheSelection.bind( this ) );\n\n\t\tthis._initFocusTracking();\n\t}\n\n\t/**\n\t * The main (outermost) DOM element of the editor UI.\n\t *\n\t * For example, in {@link module:editor-classic/classiceditor~ClassicEditor} it is a `` which\n\t * wraps the editable element and the toolbar. In {@link module:editor-inline/inlineeditor~InlineEditor}\n\t * it is the editable element itself (as there is no other wrapper). However, in\n\t * {@link module:editor-decoupled/decouplededitor~DecoupledEditor} it is set to `null` because this editor does not\n\t * come with a single \"main\" HTML element (its editable element and toolbar are separate).\n\t *\n\t * This property can be understood as a shorthand for retrieving the element that a specific editor integration\n\t * considers to be its main DOM element.\n\t */\n\tpublic get element(): HTMLElement | null {\n\t\treturn null;\n\t}\n\n\t/**\n\t * Fires the {@link module:ui/editorui/editorui~EditorUI#event:update `update`} event.\n\t *\n\t * This method should be called when the editor UI (e.g. positions of its balloons) needs to be updated due to\n\t * some environmental change which CKEditor 5 is not aware of (e.g. resize of a container in which it is used).\n\t */\n\tpublic update(): void {\n\t\tthis.fire
( 'update' );\n\t}\n\n\t/**\n\t * Destroys the UI.\n\t */\n\tpublic destroy(): void {\n\t\tthis.stopListening();\n\n\t\tthis.focusTracker.destroy();\n\t\tthis.tooltipManager.destroy( this.editor );\n\t\tthis.poweredBy.destroy();\n\n\t\t// Clean–up the references to the CKEditor instance stored in the native editable DOM elements.\n\t\tfor ( const domElement of this._editableElementsMap.values() ) {\n\t\t\t( domElement as any ).ckeditorInstance = null;\n\t\t\tthis.editor.keystrokes.stopListening( domElement );\n\t\t}\n\n\t\tthis._editableElementsMap = new Map();\n\t\tthis._focusableToolbarDefinitions = [];\n\t}\n\n\t/**\n\t * Stores the native DOM editable element used by the editor under a unique name.\n\t *\n\t * Also, registers the element in the editor to maintain the accessibility of the UI. When the user is editing text in a focusable\n\t * editable area, they can use the Alt + F10 keystroke to navigate over editor toolbars. See {@link #addToolbar}.\n\t *\n\t * @param rootName The unique name of the editable element.\n\t * @param domElement The native DOM editable element.\n\t */\n\tpublic setEditableElement( rootName: string, domElement: HTMLElement ): void {\n\t\tthis._editableElementsMap.set( rootName, domElement );\n\n\t\t// Put a reference to the CKEditor instance in the editable native DOM element.\n\t\t// It helps 3rd–party software (browser extensions, other libraries) access and recognize\n\t\t// CKEditor 5 instances (editing roots) and use their API (there is no global editor\n\t\t// instance registry).\n\t\tif ( !( domElement as any ).ckeditorInstance ) {\n\t\t\t( domElement as any ).ckeditorInstance = this.editor;\n\t\t}\n\n\t\t// Register the element, so it becomes available for Alt+F10 and Esc navigation.\n\t\tthis.focusTracker.add( domElement );\n\n\t\tconst setUpKeystrokeHandler = () => {\n\t\t\t// The editing view of the editor is already listening to keystrokes from DOM roots (see: KeyObserver).\n\t\t\t// Do not duplicate listeners.\n\t\t\tif ( this.editor.editing.view.getDomRoot( rootName ) ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis.editor.keystrokes.listenTo( domElement );\n\t\t};\n\n\t\t// For editable elements set by features after EditorUI is ready (e.g. source editing).\n\t\tif ( this.isReady ) {\n\t\t\tsetUpKeystrokeHandler();\n\t\t}\n\t\t// For editable elements set while the editor is being created (e.g. DOM roots).\n\t\telse {\n\t\t\tthis.once( 'ready', setUpKeystrokeHandler );\n\t\t}\n\t}\n\n\t/**\n\t * Removes the editable from the editor UI. Removes all handlers added by {@link #setEditableElement}.\n\t *\n\t * @param rootName The name of the editable element to remove.\n\t */\n\tpublic removeEditableElement( rootName: string ): void {\n\t\tconst domElement = this._editableElementsMap.get( rootName );\n\n\t\tif ( !domElement ) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._editableElementsMap.delete( rootName );\n\n\t\tthis.editor.keystrokes.stopListening( domElement );\n\t\tthis.focusTracker.remove( domElement );\n\n\t\t( domElement as any ).ckeditorInstance = null;\n\t}\n\n\t/**\n\t * Returns the editable editor element with the given name or null if editable does not exist.\n\t *\n\t * @param rootName The editable name.\n\t */\n\tpublic getEditableElement( rootName: string = 'main' ): HTMLElement | undefined {\n\t\treturn this._editableElementsMap.get( rootName );\n\t}\n\n\t/**\n\t * Returns array of names of all editor editable elements.\n\t */\n\tpublic getEditableElementsNames(): IterableIterator {\n\t\treturn this._editableElementsMap.keys();\n\t}\n\n\t/**\n\t * Adds a toolbar to the editor UI. Used primarily to maintain the accessibility of the UI.\n\t *\n\t * Focusable toolbars can be accessed (focused) by users by pressing the Alt + F10 keystroke.\n\t * Successive keystroke presses navigate over available toolbars.\n\t *\n\t * @param toolbarView A instance of the toolbar to be registered.\n\t */\n\tpublic addToolbar( toolbarView: ToolbarView, options: FocusableToolbarOptions = {} ): void {\n\t\tif ( toolbarView.isRendered ) {\n\t\t\tthis.focusTracker.add( toolbarView.element! );\n\t\t\tthis.editor.keystrokes.listenTo( toolbarView.element! );\n\t\t} else {\n\t\t\ttoolbarView.once( 'render', () => {\n\t\t\t\tthis.focusTracker.add( toolbarView.element! );\n\t\t\t\tthis.editor.keystrokes.listenTo( toolbarView.element! );\n\t\t\t} );\n\t\t}\n\n\t\tthis._focusableToolbarDefinitions.push( { toolbarView, options } );\n\t}\n\n\t/**\n\t * Stores all editable elements used by the editor instance.\n\t *\n\t * @deprecated\n\t */\n\tprotected get _editableElements(): unknown {\n\t\t/**\n\t\t * The {@link module:ui/editorui/editorui~EditorUI#_editableElements `EditorUI#_editableElements`} property has been\n\t\t * deprecated and will be removed in the near future. Please use\n\t\t * {@link module:ui/editorui/editorui~EditorUI#setEditableElement `setEditableElement()`} and\n\t\t * {@link module:ui/editorui/editorui~EditorUI#getEditableElement `getEditableElement()`} methods instead.\n\t\t *\n\t\t * @error editor-ui-deprecated-editable-elements\n\t\t * @param editorUI Editor UI instance the deprecated property belongs to.\n\t\t */\n\t\tconsole.warn(\n\t\t\t'editor-ui-deprecated-editable-elements: ' +\n\t\t\t'The EditorUI#_editableElements property has been deprecated and will be removed in the near future.',\n\t\t\t{ editorUI: this } );\n\n\t\treturn this._editableElementsMap;\n\t}\n\n\t/**\n\t * Returns viewport offsets object:\n\t *\n\t * ```js\n\t * {\n\t * \ttop: Number,\n\t * \tright: Number,\n\t * \tbottom: Number,\n\t * \tleft: Number\n\t * }\n\t * ```\n\t *\n\t * Only top property is currently supported.\n\t */\n\tprivate _readViewportOffsetFromConfig() {\n\t\tconst editor = this.editor;\n\t\tconst viewportOffsetConfig = editor.config.get( 'ui.viewportOffset' );\n\n\t\tif ( viewportOffsetConfig ) {\n\t\t\treturn viewportOffsetConfig;\n\t\t}\n\n\t\t// Not present in EditorConfig type, because it's legacy. Hence the `as` expression.\n\t\tconst legacyOffsetConfig = editor.config.get( 'toolbar.viewportTopOffset' ) as number | undefined;\n\n\t\t// Fall back to deprecated toolbar config.\n\t\tif ( legacyOffsetConfig ) {\n\t\t\t/**\n\t\t\t * The {@link module:core/editor/editorconfig~EditorConfig#toolbar `EditorConfig#toolbar.viewportTopOffset`}\n\t\t\t * property has been deprecated and will be removed in the near future. Please use\n\t\t\t * {@link module:core/editor/editorconfig~EditorConfig#ui `EditorConfig#ui.viewportOffset`} instead.\n\t\t\t *\n\t\t\t * @error editor-ui-deprecated-viewport-offset-config\n\t\t\t */\n\t\t\tconsole.warn(\n\t\t\t\t'editor-ui-deprecated-viewport-offset-config: ' +\n\t\t\t\t'The `toolbar.vieportTopOffset` configuration option is deprecated. ' +\n\t\t\t\t'It will be removed from future CKEditor versions. Use `ui.viewportOffset.top` instead.'\n\t\t\t);\n\n\t\t\treturn { top: legacyOffsetConfig };\n\t\t}\n\n\t\t// More keys to come in the future.\n\t\treturn { top: 0 };\n\t}\n\n\t/**\n\t * Starts listening for Alt + F10 and Esc keystrokes in the context of focusable\n\t * {@link #setEditableElement editable elements} and {@link #addToolbar toolbars}\n\t * to allow users navigate across the UI.\n\t */\n\tprivate _initFocusTracking(): void {\n\t\tconst editor = this.editor;\n\t\tconst editingView = editor.editing.view;\n\n\t\tlet lastFocusedForeignElement: HTMLElement | null;\n\t\tlet candidateDefinitions: Array;\n\n\t\t// Focus the next focusable toolbar on Alt + F10 .\n\t\teditor.keystrokes.set( 'Alt+F10', ( data, cancel ) => {\n\t\t\tconst focusedElement = this.focusTracker.focusedElement as HTMLElement;\n\n\t\t\t// Focus moved out of a DOM element that\n\t\t\t// * is not a toolbar,\n\t\t\t// * does not belong to the editing view (e.g. source editing).\n\t\t\tif (\n\t\t\t\tArray.from( this._editableElementsMap.values() ).includes( focusedElement ) &&\n\t\t\t\t!Array.from( editingView.domRoots.values() ).includes( focusedElement )\n\t\t\t) {\n\t\t\t\tlastFocusedForeignElement = focusedElement;\n\t\t\t}\n\n\t\t\tconst currentFocusedToolbarDefinition = this._getCurrentFocusedToolbarDefinition();\n\n\t\t\t// * When focusing a toolbar for the first time, set the array of definitions for successive presses of Alt+F10.\n\t\t\t// This ensures, the navigation works always the same and no pair of toolbars takes over\n\t\t\t// (e.g. image and table toolbars when a selected image is inside a cell).\n\t\t\t// * It could be that the focus went to the toolbar by clicking a toolbar item (e.g. a dropdown). In this case,\n\t\t\t// there were no candidates so they must be obtained (#12339).\n\t\t\tif ( !currentFocusedToolbarDefinition || !candidateDefinitions ) {\n\t\t\t\tcandidateDefinitions = this._getFocusableCandidateToolbarDefinitions();\n\t\t\t}\n\n\t\t\t// In a single Alt+F10 press, check all candidates but if none were focused, don't go any further.\n\t\t\t// This prevents an infinite loop.\n\t\t\tfor ( let i = 0; i < candidateDefinitions.length; i++ ) {\n\t\t\t\tconst candidateDefinition = candidateDefinitions.shift()!;\n\n\t\t\t\t// Put the first definition to the back of the array. This allows circular navigation over all toolbars\n\t\t\t\t// on successive presses of Alt+F10.\n\t\t\t\tcandidateDefinitions.push( candidateDefinition );\n\n\t\t\t\t// Don't focus the same toolbar again. If you did, this would move focus from the nth focused toolbar item back to the\n\t\t\t\t// first item as per ToolbarView#focus() if the user navigated inside the toolbar.\n\t\t\t\tif (\n\t\t\t\t\tcandidateDefinition !== currentFocusedToolbarDefinition &&\n\t\t\t\t\tthis._focusFocusableCandidateToolbar( candidateDefinition )\n\t\t\t\t) {\n\t\t\t\t\t// Clean up after a current visible toolbar when switching to the next one.\n\t\t\t\t\tif ( currentFocusedToolbarDefinition && currentFocusedToolbarDefinition.options.afterBlur ) {\n\t\t\t\t\t\tcurrentFocusedToolbarDefinition.options.afterBlur();\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tcancel();\n\t\t} );\n\n\t\t// Blur the focused toolbar on Esc and bring the focus back to its origin.\n\t\teditor.keystrokes.set( 'Esc', ( data, cancel ) => {\n\t\t\tconst focusedToolbarDef = this._getCurrentFocusedToolbarDefinition();\n\n\t\t\tif ( !focusedToolbarDef ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Bring focus back to where it came from before focusing the toolbar:\n\t\t\t// 1. If it came from outside the engine view (e.g. source editing), move it there.\n\t\t\tif ( lastFocusedForeignElement ) {\n\t\t\t\tlastFocusedForeignElement.focus();\n\t\t\t\tlastFocusedForeignElement = null;\n\t\t\t}\n\t\t\t// 2. There are two possibilities left:\n\t\t\t// 2.1. It could be that the focus went from an editable element in the view (root or nested).\n\t\t\t// 2.2. It could be the focus went straight to the toolbar before even focusing the editing area.\n\t\t\t// In either case, just focus the view editing. The focus will land where it belongs.\n\t\t\telse {\n\t\t\t\teditor.editing.view.focus();\n\t\t\t}\n\n\t\t\t// Clean up after the toolbar if there is anything to do there.\n\t\t\tif ( focusedToolbarDef.options.afterBlur ) {\n\t\t\t\tfocusedToolbarDef.options.afterBlur();\n\t\t\t}\n\n\t\t\tcancel();\n\t\t} );\n\t}\n\n\t/**\n\t * Returns definitions of toolbars that could potentially be focused, sorted by their importance for the user.\n\t *\n\t * Focusable toolbars candidates are either:\n\t * * already visible,\n\t * * have `beforeFocus()` set in their {@link module:ui/editorui/editorui~FocusableToolbarDefinition definition} that suggests that\n\t * they might show up when called. Keep in mind that determining whether a toolbar will show up (and become focusable) is impossible\n\t * at this stage because it depends on its implementation, that in turn depends on the editing context (selection).\n\t *\n\t * **Note**: Contextual toolbars take precedence over regular toolbars.\n\t */\n\tprivate _getFocusableCandidateToolbarDefinitions(): Array {\n\t\tconst definitions: Array = [];\n\n\t\tfor ( const toolbarDef of this._focusableToolbarDefinitions ) {\n\t\t\tconst { toolbarView, options } = toolbarDef;\n\n\t\t\tif ( isVisible( toolbarView.element ) || options.beforeFocus ) {\n\t\t\t\tdefinitions.push( toolbarDef );\n\t\t\t}\n\t\t}\n\n\t\t// Contextual and already visible toolbars have higher priority. If both are true, the toolbar will always focus first.\n\t\t// For instance, a selected widget toolbar vs inline editor toolbar: both are visible but the widget toolbar is contextual.\n\t\tdefinitions.sort( ( defA, defB ) => getToolbarDefinitionWeight( defA ) - getToolbarDefinitionWeight( defB ) );\n\n\t\treturn definitions;\n\t}\n\n\t/**\n\t * Returns a definition of the toolbar that is currently visible and focused (one of its children has focus).\n\t *\n\t * `null` is returned when no toolbar is currently focused.\n\t */\n\tprivate _getCurrentFocusedToolbarDefinition(): FocusableToolbarDefinition | null {\n\t\tfor ( const definition of this._focusableToolbarDefinitions ) {\n\t\t\tif ( definition.toolbarView.element && definition.toolbarView.element.contains( this.focusTracker.focusedElement ) ) {\n\t\t\t\treturn definition;\n\t\t\t}\n\t\t}\n\n\t\treturn null;\n\t}\n\n\t/**\n\t * Focuses a focusable toolbar candidate using its definition.\n\t *\n\t * @param candidateToolbarDefinition A definition of the toolbar to focus.\n\t * @returns `true` when the toolbar candidate was focused. `false` otherwise.\n\t */\n\tprivate _focusFocusableCandidateToolbar( candidateToolbarDefinition: FocusableToolbarDefinition ): boolean {\n\t\tconst { toolbarView, options: { beforeFocus } } = candidateToolbarDefinition;\n\n\t\tif ( beforeFocus ) {\n\t\t\tbeforeFocus();\n\t\t}\n\n\t\t// If it didn't show up after beforeFocus(), it's not focusable at all.\n\t\tif ( !isVisible( toolbarView.element ) ) {\n\t\t\treturn false;\n\t\t}\n\n\t\ttoolbarView.focus();\n\n\t\treturn true;\n\t}\n\n\t/**\n\t * Provides an integration between {@link #viewportOffset} and {@link module:utils/dom/scroll~scrollViewportToShowTarget}.\n\t * It allows the UI-agnostic engine method to consider user-configured viewport offsets specific for the integration.\n\t *\n\t * @param evt The `scrollToTheSelection` event info.\n\t * @param data The payload carried by the `scrollToTheSelection` event.\n\t */\n\tprivate _handleScrollToTheSelection(\n\t\tevt: EventInfo<'scrollToTheSelection'>,\n\t\tdata: ViewScrollToTheSelectionEvent[ 'args' ][ 0 ]\n\t): void {\n\t\tconst configuredViewportOffset = {\n\t\t\ttop: 0,\n\t\t\tbottom: 0,\n\t\t\tleft: 0,\n\t\t\tright: 0,\n\t\t\t...this.viewportOffset\n\t\t};\n\n\t\tdata.viewportOffset.top += configuredViewportOffset.top;\n\t\tdata.viewportOffset.bottom += configuredViewportOffset.bottom;\n\t\tdata.viewportOffset.left += configuredViewportOffset.left;\n\t\tdata.viewportOffset.right += configuredViewportOffset.right;\n\t}\n}\n\n/**\n * Fired when the editor UI is ready.\n *\n * Fired before {@link module:engine/controller/datacontroller~DataController#event:ready}.\n *\n * @eventName ~EditorUI#ready\n */\nexport type EditorUIReadyEvent = {\n\tname: 'ready';\n\targs: [];\n};\n\n/**\n * Fired whenever the UI (all related components) should be refreshed.\n *\n * **Note:**: The event is fired after each {@link module:engine/view/document~Document#event:layoutChanged}.\n * It can also be fired manually via the {@link module:ui/editorui/editorui~EditorUI#update} method.\n *\n * @eventName ~EditorUI#update\n */\nexport type EditorUIUpdateEvent = {\n\tname: 'update';\n\targs: [];\n};\n\n/**\n * A definition of a focusable toolbar. Used by {@link module:ui/editorui/editorui~EditorUI#addToolbar}.\n */\nexport interface FocusableToolbarDefinition {\n\n\t/**\n\t * An instance of a focusable toolbar view.\n\t */\n\ttoolbarView: ToolbarView;\n\n\t/**\n\t * Options of a focusable toolbar view:\n\t *\n\t * * `isContextual`: Marks the higher priority toolbar. For example when there are 2 visible toolbars,\n\t * it allows to distinguish which toolbar should be focused first after the `alt+f10` keystroke\n\t * * `beforeFocus`: A callback executed before the `ToolbarView` gains focus upon the `Alt+F10` keystroke.\n\t * * `afterBlur`: A callback executed after `ToolbarView` loses focus upon `Esc` keystroke but before\n\t * the focus goes back to the `origin`.\n\t */\n\toptions: FocusableToolbarOptions;\n}\n\nexport interface FocusableToolbarOptions {\n\n\t/**\n\t * Set `true` if the toolbar is attached to the content of the editor. Such toolbar takes\n\t * a precedence over other toolbars when a user pressed Alt + F10 .\n\t */\n\tisContextual?: boolean;\n\n\t/**\n\t * Specify a callback executed before the toolbar instance DOM element gains focus\n\t * upon the Alt + F10 keystroke.\n\t */\n\tbeforeFocus?: () => void;\n\n\t/**\n\t * Specify a callback executed after the toolbar instance DOM element loses focus upon\n\t * Esc keystroke but before the focus goes back to the {@link ~EditorUI#setEditableElement editable element}.\n\t */\n\tafterBlur?: () => void;\n}\n\n/**\n * Returns a number (weight) for a toolbar definition. Visible toolbars have a higher priority and so do\n * contextual toolbars (displayed in the context of a content, for instance, an image toolbar).\n *\n * A standard invisible toolbar is the heaviest. A visible contextual toolbar is the lightest.\n *\n * @param toolbarDef A toolbar definition to be weighted.\n */\nfunction getToolbarDefinitionWeight( toolbarDef: FocusableToolbarDefinition ): number {\n\tconst { toolbarView, options } = toolbarDef;\n\tlet weight = 10;\n\n\t// Prioritize already visible toolbars. They should get focused first.\n\tif ( isVisible( toolbarView.element ) ) {\n\t\tweight--;\n\t}\n\n\t// Prioritize contextual toolbars. They are displayed at the selection.\n\tif ( options.isContextual ) {\n\t\tweight--;\n\t}\n\n\treturn weight;\n}\n","import api from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./editorui.css\";\n\nvar options = {\"injectType\":\"singletonStyleTag\",\"attributes\":{\"data-cke\":true}};\n\noptions.insert = \"head\";\noptions.singleton = true;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module ui/editorui/editoruiview\n */\n\nimport View from '../view.js';\nimport BodyCollection from './bodycollection.js';\nimport type EditableUIView from '../editableui/editableuiview.js';\n\nimport type { Locale, LocaleTranslate } from '@ckeditor/ckeditor5-utils';\n\nimport '../../theme/components/editorui/editorui.css';\n\n/**\n * The editor UI view class. Base class for the editor main views.\n */\nexport default abstract class EditorUIView extends View {\n\t/**\n\t * Collection of the child views, detached from the DOM\n\t * structure of the editor, like panels, icons etc.\n\t */\n\tpublic readonly body: BodyCollection;\n\n\tdeclare public locale: Locale;\n\tdeclare public t: LocaleTranslate;\n\n\tpublic abstract get editable(): EditableUIView;\n\n\t/**\n\t * Creates an instance of the editor UI view class.\n\t *\n\t * @param locale The locale instance.\n\t */\n\tconstructor( locale: Locale ) {\n\t\tsuper( locale );\n\n\t\tthis.body = new BodyCollection( locale );\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic override render(): void {\n\t\tsuper.render();\n\n\t\tthis.body.attachToDom();\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic override destroy(): void {\n\t\tthis.body.detachFromDom();\n\n\t\treturn super.destroy();\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module ui/editorui/boxed/boxededitoruiview\n */\n\nimport EditorUIView from '../editoruiview.js';\nimport LabelView from '../../label/labelview.js';\nimport type ViewCollection from '../../viewcollection.js';\n\nimport type { Locale } from '@ckeditor/ckeditor5-utils';\n\n/**\n * The boxed editor UI view class. This class represents an editor interface\n * consisting of a toolbar and an editable area, enclosed within a box.\n */\nexport default abstract class BoxedEditorUIView extends EditorUIView {\n\t/**\n\t * Collection of the child views located in the top (`.ck-editor__top`)\n\t * area of the UI.\n\t */\n\tpublic readonly top: ViewCollection;\n\n\t/**\n\t * Collection of the child views located in the main (`.ck-editor__main`)\n\t * area of the UI.\n\t */\n\tpublic readonly main: ViewCollection;\n\n\t/**\n\t * Voice label of the UI.\n\t */\n\tprivate readonly _voiceLabelView: LabelView;\n\n\t/**\n\t * Creates an instance of the boxed editor UI view class.\n\t *\n\t * @param locale The locale instance..\n\t */\n\tconstructor( locale: Locale ) {\n\t\tsuper( locale );\n\n\t\tthis.top = this.createCollection();\n\t\tthis.main = this.createCollection();\n\t\tthis._voiceLabelView = this._createVoiceLabel();\n\n\t\tthis.setTemplate( {\n\t\t\ttag: 'div',\n\n\t\t\tattributes: {\n\t\t\t\tclass: [\n\t\t\t\t\t'ck',\n\t\t\t\t\t'ck-reset',\n\t\t\t\t\t'ck-editor',\n\t\t\t\t\t'ck-rounded-corners'\n\t\t\t\t],\n\t\t\t\trole: 'application',\n\t\t\t\tdir: locale.uiLanguageDirection,\n\t\t\t\tlang: locale.uiLanguage,\n\t\t\t\t'aria-labelledby': this._voiceLabelView.id\n\t\t\t},\n\n\t\t\tchildren: [\n\t\t\t\tthis._voiceLabelView,\n\t\t\t\t{\n\t\t\t\t\ttag: 'div',\n\t\t\t\t\tattributes: {\n\t\t\t\t\t\tclass: [\n\t\t\t\t\t\t\t'ck',\n\t\t\t\t\t\t\t'ck-editor__top',\n\t\t\t\t\t\t\t'ck-reset_all'\n\t\t\t\t\t\t],\n\t\t\t\t\t\trole: 'presentation'\n\t\t\t\t\t},\n\t\t\t\t\tchildren: this.top\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\ttag: 'div',\n\t\t\t\t\tattributes: {\n\t\t\t\t\t\tclass: [\n\t\t\t\t\t\t\t'ck',\n\t\t\t\t\t\t\t'ck-editor__main'\n\t\t\t\t\t\t],\n\t\t\t\t\t\trole: 'presentation'\n\t\t\t\t\t},\n\t\t\t\t\tchildren: this.main\n\t\t\t\t}\n\t\t\t]\n\t\t} );\n\t}\n\n\t/**\n\t * Creates a voice label view instance.\n\t */\n\tprivate _createVoiceLabel() {\n\t\tconst t = this.t;\n\t\tconst voiceLabel = new LabelView();\n\n\t\tvoiceLabel.text = t( 'Rich Text Editor' );\n\n\t\tvoiceLabel.extendTemplate( {\n\t\t\tattributes: {\n\t\t\t\tclass: 'ck-voice-label'\n\t\t\t}\n\t\t} );\n\n\t\treturn voiceLabel;\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module ui/editableui/editableuiview\n */\n\nimport View from '../view.js';\n\nimport type { EditingView } from '@ckeditor/ckeditor5-engine';\nimport type { Locale, ObservableChangeEvent } from '@ckeditor/ckeditor5-utils';\n\n/**\n * The editable UI view class.\n */\nexport default class EditableUIView extends View {\n\t/**\n\t * The name of the editable UI view.\n\t */\n\tpublic name: string | null = null;\n\n\t/**\n\t * Controls whether the editable is focused, i.e. the user is typing in it.\n\t *\n\t * @observable\n\t */\n\tdeclare public isFocused: boolean;\n\n\t/**\n\t * The editing view instance the editable is related to. Editable uses the editing\n\t * view to dynamically modify its certain DOM attributes after {@link #render rendering}.\n\t *\n\t * **Note**: The DOM attributes are performed by the editing view and not UI\n\t * {@link module:ui/view~View#bindTemplate template bindings} because once rendered,\n\t * the editable DOM element must remain under the full control of the engine to work properly.\n\t */\n\tprotected _editingView: EditingView;\n\n\t/**\n\t * The element which is the main editable element (usually the one with `contentEditable=\"true\"`).\n\t */\n\tprivate _editableElement: HTMLElement | null | undefined;\n\n\t/**\n\t * Whether an external {@link #_editableElement} was passed into the constructor, which also means\n\t * the view will not render its {@link #template}.\n\t */\n\tprivate _hasExternalElement: boolean;\n\n\t/**\n\t * Creates an instance of EditableUIView class.\n\t *\n\t * @param locale The locale instance.\n\t * @param editingView The editing view instance the editable is related to.\n\t * @param editableElement The editable element. If not specified, this view\n\t * should create it. Otherwise, the existing element should be used.\n\t */\n\tconstructor(\n\t\tlocale: Locale,\n\t\teditingView: EditingView,\n\t\teditableElement?: HTMLElement\n\t) {\n\t\tsuper( locale );\n\n\t\tthis.setTemplate( {\n\t\t\ttag: 'div',\n\t\t\tattributes: {\n\t\t\t\tclass: [\n\t\t\t\t\t'ck',\n\t\t\t\t\t'ck-content',\n\t\t\t\t\t'ck-editor__editable',\n\t\t\t\t\t'ck-rounded-corners'\n\t\t\t\t],\n\t\t\t\tlang: locale.contentLanguage,\n\t\t\t\tdir: locale.contentLanguageDirection\n\t\t\t}\n\t\t} );\n\n\t\tthis.set( 'isFocused', false );\n\n\t\tthis._editableElement = editableElement;\n\t\tthis._hasExternalElement = !!this._editableElement;\n\t\tthis._editingView = editingView;\n\t}\n\n\t/**\n\t * Renders the view by either applying the {@link #template} to the existing\n\t * {@link module:ui/editableui/editableuiview~EditableUIView#_editableElement} or assigning {@link #element}\n\t * as {@link module:ui/editableui/editableuiview~EditableUIView#_editableElement}.\n\t */\n\tpublic override render(): void {\n\t\tsuper.render();\n\n\t\tif ( this._hasExternalElement ) {\n\t\t\tthis.template!.apply( this.element = this._editableElement! );\n\t\t} else {\n\t\t\tthis._editableElement = this.element;\n\t\t}\n\n\t\tthis.on( 'change:isFocused', () => this._updateIsFocusedClasses() );\n\t\tthis._updateIsFocusedClasses();\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic override destroy(): void {\n\t\tif ( this._hasExternalElement ) {\n\t\t\tthis.template!.revert( this._editableElement! );\n\t\t}\n\n\t\tsuper.destroy();\n\t}\n\n\t/**\n\t * Whether an external {@link #_editableElement} was passed into the constructor, which also means\n\t * the view will not render its {@link #template}.\n\t */\n\tpublic get hasExternalElement(): boolean {\n\t\treturn this._hasExternalElement;\n\t}\n\n\t/**\n\t * Updates the `ck-focused` and `ck-blurred` CSS classes on the {@link #element} according to\n\t * the {@link #isFocused} property value using the {@link #_editingView editing view} API.\n\t */\n\tprivate _updateIsFocusedClasses() {\n\t\tconst editingView = this._editingView;\n\n\t\tif ( editingView.isRenderingInProgress ) {\n\t\t\tupdateAfterRender( this );\n\t\t} else {\n\t\t\tupdate( this );\n\t\t}\n\n\t\tfunction update( view: EditableUIView ) {\n\t\t\teditingView.change( writer => {\n\t\t\t\tconst viewRoot = editingView.document.getRoot( view.name! )!;\n\n\t\t\t\twriter.addClass( view.isFocused ? 'ck-focused' : 'ck-blurred', viewRoot );\n\t\t\t\twriter.removeClass( view.isFocused ? 'ck-blurred' : 'ck-focused', viewRoot );\n\t\t\t} );\n\t\t}\n\n\t\t// In a case of a multi-root editor, a callback will be attached more than once (one callback for each root).\n\t\t// While executing one callback the `isRenderingInProgress` observable is changing what causes executing another\n\t\t// callback and render is called inside the already pending render.\n\t\t// We need to be sure that callback is executed only when the value has changed from `true` to `false`.\n\t\t// See https://github.com/ckeditor/ckeditor5/issues/1676.\n\t\tfunction updateAfterRender( view: EditableUIView ) {\n\t\t\teditingView.once>( 'change:isRenderingInProgress', ( evt, name, value ) => {\n\t\t\t\tif ( !value ) {\n\t\t\t\t\tupdate( view );\n\t\t\t\t} else {\n\t\t\t\t\tupdateAfterRender( view );\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module ui/editableui/inline/inlineeditableuiview\n */\n\nimport EditableUIView from '../editableuiview.js';\n\nimport type { EditingView } from '@ckeditor/ckeditor5-engine';\nimport type { Locale } from '@ckeditor/ckeditor5-utils';\n\n/**\n * The inline editable UI class implementing an inline {@link module:ui/editableui/editableuiview~EditableUIView}.\n */\nexport default class InlineEditableUIView extends EditableUIView {\n\t/**\n\t * A function that gets called with the instance of this view as an argument and should return a string that\n\t * represents the label of the editable for assistive technologies.\n\t */\n\tprivate readonly _generateLabel: ( view: InlineEditableUIView ) => string;\n\n\t/**\n\t * Creates an instance of the InlineEditableUIView class.\n\t *\n\t * @param locale The locale instance.\n\t * @param editingView The editing view instance the editable is related to.\n\t * @param editableElement The editable element. If not specified, the\n\t * {@link module:ui/editableui/editableuiview~EditableUIView}\n\t * will create it. Otherwise, the existing element will be used.\n\t * @param options Additional configuration of the view.\n\t * @param options.label A function that gets called with the instance of this view as an argument\n\t * and should return a string that represents the label of the editable for assistive technologies. If not provided,\n\t * a default label generator is used.\n\t */\n\tconstructor(\n\t\tlocale: Locale,\n\t\teditingView: EditingView,\n\t\teditableElement?: HTMLElement,\n\t\toptions: { label?: ( view: InlineEditableUIView ) => string } = {}\n\t) {\n\t\tsuper( locale, editingView, editableElement );\n\n\t\tconst t = locale.t;\n\n\t\tthis.extendTemplate( {\n\t\t\tattributes: {\n\t\t\t\trole: 'textbox',\n\t\t\t\tclass: 'ck-editor__editable_inline'\n\t\t\t}\n\t\t} );\n\n\t\tthis._generateLabel = options.label || ( () => t( 'Editor editing area: %0', this.name! ) );\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic override render(): void {\n\t\tsuper.render();\n\n\t\tconst editingView = this._editingView;\n\n\t\teditingView.change( writer => {\n\t\t\tconst viewRoot = editingView.document.getRoot( this.name! );\n\n\t\t\twriter.setAttribute( 'aria-label', this._generateLabel( this ), viewRoot! );\n\t\t} );\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module ui/model\n */\n\nimport { ObservableMixin } from '@ckeditor/ckeditor5-utils';\nimport { extend } from 'lodash-es';\n\n/**\n * The base MVC model class.\n */\nexport default class Model extends /* #__PURE__ */ ObservableMixin() {\n\t[ x: string ]: unknown;\n\n\t/**\n\t * Creates a new Model instance.\n\t *\n\t * @param attributes The model state attributes to be defined during the instance creation.\n\t * @param properties The (out of state) properties to be appended to the instance during creation.\n\t */\n\tconstructor( attributes?: Record, properties?: Record ) {\n\t\tsuper();\n\n\t\t// Extend this instance with the additional (out of state) properties.\n\t\tif ( properties ) {\n\t\t\textend( this, properties );\n\t\t}\n\n\t\t// Initialize the attributes.\n\t\tif ( attributes ) {\n\t\t\tthis.set( attributes );\n\t\t}\n\t}\n}\n","import api from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./balloonrotator.css\";\n\nvar options = {\"injectType\":\"singletonStyleTag\",\"attributes\":{\"data-cke\":true}};\n\noptions.insert = \"head\";\noptions.singleton = true;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","import api from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./fakepanel.css\";\n\nvar options = {\"injectType\":\"singletonStyleTag\",\"attributes\":{\"data-cke\":true}};\n\noptions.insert = \"head\";\noptions.singleton = true;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module ui/panel/balloon/contextualballoon\n */\n\nimport BalloonPanelView from './balloonpanelview.js';\nimport View from '../../view.js';\nimport ButtonView from '../../button/buttonview.js';\nimport type { ButtonExecuteEvent } from '../../button/button.js';\nimport type ViewCollection from '../../viewcollection.js';\n\nimport { Plugin, icons, type Editor } from '@ckeditor/ckeditor5-core';\nimport {\n\tCKEditorError,\n\tFocusTracker,\n\tRect,\n\ttoUnit,\n\ttype Locale,\n\ttype ObservableChangeEvent,\n\ttype PositionOptions\n} from '@ckeditor/ckeditor5-utils';\n\nimport '../../../theme/components/panel/balloonrotator.css';\nimport '../../../theme/components/panel/fakepanel.css';\n\nconst toPx = /* #__PURE__ */ toUnit( 'px' );\n\n/**\n * Provides the common contextual balloon for the editor.\n *\n * The role of this plugin is to unify the contextual balloons logic, simplify views management and help\n * avoid the unnecessary complexity of handling multiple {@link module:ui/panel/balloon/balloonpanelview~BalloonPanelView}\n * instances in the editor.\n *\n * This plugin allows for creating single or multiple panel stacks.\n *\n * Each stack may have multiple views, with the one on the top being visible. When the visible view is removed from the stack,\n * the previous view becomes visible.\n *\n * It might be useful to implement nested navigation in a balloon. For instance, a toolbar view may contain a link button.\n * When you click it, a link view (which lets you set the URL) is created and put on top of the toolbar view, so the link panel\n * is displayed. When you finish editing the link and close (remove) the link view, the toolbar view is visible again.\n *\n * However, there are cases when there are multiple independent balloons to be displayed, for instance, if the selection\n * is inside two inline comments at the same time. For such cases, you can create two independent panel stacks.\n * The contextual balloon plugin will create a navigation bar to let the users switch between these panel stacks using the \"Next\"\n * and \"Previous\" buttons.\n *\n * If there are no views in the current stack, the balloon panel will try to switch to the next stack. If there are no\n * panels in any stack, the balloon panel will be hidden.\n *\n * **Note**: To force the balloon panel to show only one view, even if there are other stacks, use the `singleViewMode=true` option\n * when {@link module:ui/panel/balloon/contextualballoon~ContextualBalloon#add adding} a view to a panel.\n *\n * From the implementation point of view, the contextual ballon plugin is reusing a single\n * {@link module:ui/panel/balloon/balloonpanelview~BalloonPanelView} instance to display multiple contextual balloon\n * panels in the editor. It also creates a special {@link module:ui/panel/balloon/contextualballoon~RotatorView rotator view},\n * used to manage multiple panel stacks. Rotator view is a child of the balloon panel view and the parent of the specific\n * view you want to display. If there is more than one panel stack to be displayed, the rotator view will add a\n * navigation bar. If there is only one stack, the rotator view is transparent (it does not add any UI elements).\n */\nexport default class ContextualBalloon extends Plugin {\n\t/**\n\t * The {@link module:utils/dom/position~Options#limiter position limiter}\n\t * for the {@link #view balloon}, used when no `limiter` has been passed into {@link #add}\n\t * or {@link #updatePosition}.\n\t *\n\t * By default, a function that obtains the farthest DOM\n\t * {@link module:engine/view/rooteditableelement~RootEditableElement}\n\t * of the {@link module:engine/view/document~Document#selection}.\n\t */\n\tpublic positionLimiter: PositionOptions[ 'limiter' ];\n\n\tpublic visibleStack?: string;\n\n\t/**\n\t * The currently visible view or `null` when there are no views in any stack.\n\t *\n\t * @readonly\n\t * @observable\n\t */\n\tdeclare public visibleView: View | null;\n\n\t/**\n\t * A total number of all stacks in the balloon.\n\t *\n\t * @private\n\t * @readonly\n\t * @observable\n\t */\n\tdeclare public _numberOfStacks: number;\n\n\t/**\n\t * A flag that controls the single view mode.\n\t *\n\t * @private\n\t * @readonly\n\t * @observable\n\t */\n\tdeclare public _singleViewMode: boolean;\n\n\t/**\n\t * The map of views and their stacks.\n\t */\n\tprivate _viewToStack = new Map();\n\n\t/**\n\t * The map of IDs and stacks.\n\t */\n\tprivate _idToStack = new Map();\n\n\t/**\n\t * The common balloon panel view.\n\t */\n\tprivate _view: BalloonPanelView | null = null;\n\n\t/**\n\t * Rotator view embedded in the contextual balloon.\n\t * Displays the currently visible view in the balloon and provides navigation for switching stacks.\n\t */\n\tprivate _rotatorView: RotatorView | null = null;\n\n\t/**\n\t * Displays fake panels under the balloon panel view when multiple stacks are added to the balloon.\n\t */\n\tprivate _fakePanelsView: FakePanelsView | null = null;\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get pluginName() {\n\t\treturn 'ContextualBalloon' as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tconstructor( editor: Editor ) {\n\t\tsuper( editor );\n\n\t\tthis.positionLimiter = () => {\n\t\t\tconst view = this.editor.editing.view;\n\t\t\tconst viewDocument = view.document;\n\t\t\tconst editableElement = viewDocument.selection.editableElement;\n\n\t\t\tif ( editableElement ) {\n\t\t\t\treturn view.domConverter.mapViewToDom( editableElement.root ) as HTMLElement;\n\t\t\t}\n\n\t\t\treturn null;\n\t\t};\n\n\t\tthis.set( 'visibleView', null );\n\t\tthis.set( '_numberOfStacks', 0 );\n\t\tthis.set( '_singleViewMode', false );\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic override destroy(): void {\n\t\tsuper.destroy();\n\n\t\tif ( this._view ) {\n\t\t\tthis._view.destroy();\n\t\t}\n\n\t\tif ( this._rotatorView ) {\n\t\t\tthis._rotatorView.destroy();\n\t\t}\n\n\t\tif ( this._fakePanelsView ) {\n\t\t\tthis._fakePanelsView.destroy();\n\t\t}\n\t}\n\n\t/**\n\t * The common balloon panel view.\n\t */\n\tpublic get view(): BalloonPanelView {\n\t\tif ( !this._view ) {\n\t\t\tthis._createPanelView();\n\t\t}\n\n\t\treturn this._view!;\n\t}\n\n\t/**\n\t * Returns `true` when the given view is in one of the stacks. Otherwise returns `false`.\n\t */\n\tpublic hasView( view: View ): boolean {\n\t\treturn Array.from( this._viewToStack.keys() ).includes( view );\n\t}\n\n\t/**\n\t * Adds a new view to the stack and makes it visible if the current stack is visible\n\t * or it is the first view in the balloon.\n\t *\n\t * @param data The configuration of the view.\n\t * @param data.stackId The ID of the stack that the view is added to. Defaults to `'main'`.\n\t * @param data.view The content of the balloon.\n\t * @param data.position Positioning options.\n\t * @param data.balloonClassName An additional CSS class added to the {@link #view balloon} when visible.\n\t * @param data.withArrow Whether the {@link #view balloon} should be rendered with an arrow. Defaults to `true`.\n\t * @param data.singleViewMode Whether the view should be the only visible view even if other stacks were added. Defaults to `false`.\n\t */\n\tpublic add( data: ViewConfiguration ): void {\n\t\tif ( !this._view ) {\n\t\t\tthis._createPanelView();\n\t\t}\n\n\t\tif ( this.hasView( data.view ) ) {\n\t\t\t/**\n\t\t\t * Trying to add configuration of the same view more than once.\n\t\t\t *\n\t\t\t * @error contextualballoon-add-view-exist\n\t\t\t */\n\t\t\tthrow new CKEditorError(\n\t\t\t\t'contextualballoon-add-view-exist',\n\t\t\t\t[ this, data ]\n\t\t\t);\n\t\t}\n\n\t\tconst stackId = data.stackId || 'main';\n\n\t\t// If new stack is added, creates it and show view from this stack.\n\t\tif ( !this._idToStack.has( stackId ) ) {\n\t\t\tthis._idToStack.set( stackId, new Map( [ [ data.view, data ] ] ) );\n\t\t\tthis._viewToStack.set( data.view, this._idToStack.get( stackId )! );\n\t\t\tthis._numberOfStacks = this._idToStack.size;\n\n\t\t\tif ( !this._visibleStack || data.singleViewMode ) {\n\t\t\t\tthis.showStack( stackId );\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\tconst stack = this._idToStack.get( stackId )!;\n\n\t\tif ( data.singleViewMode ) {\n\t\t\tthis.showStack( stackId );\n\t\t}\n\n\t\t// Add new view to the stack.\n\t\tstack.set( data.view, data );\n\t\tthis._viewToStack.set( data.view, stack );\n\n\t\t// And display it if is added to the currently visible stack.\n\t\tif ( stack === this._visibleStack ) {\n\t\t\tthis._showView( data );\n\t\t}\n\t}\n\n\t/**\n\t * Removes the given view from the stack. If the removed view was visible,\n\t * the view preceding it in the stack will become visible instead.\n\t * When there is no view in the stack, the next stack will be displayed.\n\t * When there are no more stacks, the balloon will hide.\n\t *\n\t * @param view A view to be removed from the balloon.\n\t */\n\tpublic remove( view: View ): void {\n\t\tif ( !this.hasView( view ) ) {\n\t\t\t/**\n\t\t\t * Trying to remove the configuration of the view not defined in the stack.\n\t\t\t *\n\t\t\t * @error contextualballoon-remove-view-not-exist\n\t\t\t */\n\t\t\tthrow new CKEditorError(\n\t\t\t\t'contextualballoon-remove-view-not-exist',\n\t\t\t\t[ this, view ]\n\t\t\t);\n\t\t}\n\n\t\tconst stack = this._viewToStack.get( view )!;\n\n\t\tif ( this._singleViewMode && this.visibleView === view ) {\n\t\t\tthis._singleViewMode = false;\n\t\t}\n\n\t\t// When visible view will be removed we need to show a preceding view or next stack\n\t\t// if a view is the only view in the stack.\n\t\tif ( this.visibleView === view ) {\n\t\t\tif ( stack.size === 1 ) {\n\t\t\t\tif ( this._idToStack.size > 1 ) {\n\t\t\t\t\tthis._showNextStack();\n\t\t\t\t} else {\n\t\t\t\t\tthis.view.hide();\n\t\t\t\t\tthis.visibleView = null;\n\t\t\t\t\tthis._rotatorView!.hideView();\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tthis._showView( Array.from( stack.values() )[ stack.size - 2 ] );\n\t\t\t}\n\t\t}\n\n\t\tif ( stack.size === 1 ) {\n\t\t\tthis._idToStack.delete( this._getStackId( stack ) );\n\t\t\tthis._numberOfStacks = this._idToStack.size;\n\t\t} else {\n\t\t\tstack.delete( view );\n\t\t}\n\n\t\tthis._viewToStack.delete( view );\n\t}\n\n\t/**\n\t * Updates the position of the balloon using the position data of the first visible view in the stack.\n\t * When new position data is given, the position data of the currently visible view will be updated.\n\t *\n\t * @param position Position options.\n\t */\n\tpublic updatePosition( position?: Partial ): void {\n\t\tif ( position ) {\n\t\t\tthis._visibleStack.get( this.visibleView! )!.position = position;\n\t\t}\n\n\t\tthis.view.pin( this._getBalloonPosition()! );\n\t\tthis._fakePanelsView!.updatePosition();\n\t}\n\n\t/**\n\t * Shows the last view from the stack of a given ID.\n\t */\n\tpublic showStack( id: string ): void {\n\t\tthis.visibleStack = id;\n\t\tconst stack = this._idToStack.get( id );\n\n\t\tif ( !stack ) {\n\t\t\t/**\n\t\t\t * Trying to show a stack that does not exist.\n\t\t\t *\n\t\t\t * @error contextualballoon-showstack-stack-not-exist\n\t\t\t */\n\t\t\tthrow new CKEditorError(\n\t\t\t\t'contextualballoon-showstack-stack-not-exist',\n\t\t\t\tthis\n\t\t\t);\n\t\t}\n\n\t\tif ( this._visibleStack === stack ) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._showView( Array.from( stack.values() ).pop()! );\n\t}\n\n\t/**\n\t * Initializes view instances.\n\t */\n\tprivate _createPanelView(): void {\n\t\tthis._view = new BalloonPanelView( this.editor.locale );\n\n\t\tthis.editor.ui.view.body.add( this._view );\n\t\tthis.editor.ui.focusTracker.add( this._view.element! );\n\n\t\tthis._rotatorView = this._createRotatorView();\n\t\tthis._fakePanelsView = this._createFakePanelsView();\n\t}\n\n\t/**\n\t * Returns the stack of the currently visible view.\n\t */\n\tprivate get _visibleStack() {\n\t\treturn this._viewToStack.get( this.visibleView! )!;\n\t}\n\n\t/**\n\t * Returns the ID of the given stack.\n\t */\n\tprivate _getStackId( stack: Stack ) {\n\t\tconst entry = Array.from( this._idToStack.entries() ).find( entry => entry[ 1 ] === stack )!;\n\n\t\treturn entry[ 0 ];\n\t}\n\n\t/**\n\t * Shows the last view from the next stack.\n\t */\n\tprivate _showNextStack() {\n\t\tconst stacks = Array.from( this._idToStack.values() );\n\n\t\tlet nextIndex = stacks.indexOf( this._visibleStack ) + 1;\n\n\t\tif ( !stacks[ nextIndex ] ) {\n\t\t\tnextIndex = 0;\n\t\t}\n\n\t\tthis.showStack( this._getStackId( stacks[ nextIndex ] ) );\n\t}\n\n\t/**\n\t * Shows the last view from the previous stack.\n\t */\n\tprivate _showPrevStack() {\n\t\tconst stacks = Array.from( this._idToStack.values() );\n\n\t\tlet nextIndex = stacks.indexOf( this._visibleStack ) - 1;\n\n\t\tif ( !stacks[ nextIndex ] ) {\n\t\t\tnextIndex = stacks.length - 1;\n\t\t}\n\n\t\tthis.showStack( this._getStackId( stacks[ nextIndex ] ) );\n\t}\n\n\t/**\n\t * Creates a rotator view.\n\t */\n\tprivate _createRotatorView() {\n\t\tconst view = new RotatorView( this.editor.locale );\n\t\tconst t = this.editor.locale.t;\n\n\t\tthis.view.content.add( view );\n\n\t\t// Hide navigation when there is only a one stack & not in single view mode.\n\t\tview.bind( 'isNavigationVisible' ).to( this, '_numberOfStacks', this, '_singleViewMode', ( value, isSingleViewMode ) => {\n\t\t\treturn !isSingleViewMode && value > 1;\n\t\t} );\n\n\t\t// Update balloon position after toggling navigation.\n\t\tview.on( 'change:isNavigationVisible', () => ( this.updatePosition() ), { priority: 'low' } );\n\n\t\t// Update stacks counter value.\n\t\tview.bind( 'counter' ).to( this, 'visibleView', this, '_numberOfStacks', ( visibleView, numberOfStacks ) => {\n\t\t\tif ( numberOfStacks < 2 ) {\n\t\t\t\treturn '';\n\t\t\t}\n\n\t\t\tconst current = Array.from( this._idToStack.values() ).indexOf( this._visibleStack ) + 1;\n\n\t\t\treturn t( '%0 of %1', [ current, numberOfStacks ] );\n\t\t} );\n\n\t\tview.buttonNextView.on( 'execute', () => {\n\t\t\t// When current view has a focus then move focus to the editable before removing it,\n\t\t\t// otherwise editor will lost focus.\n\t\t\tif ( view.focusTracker.isFocused ) {\n\t\t\t\tthis.editor.editing.view.focus();\n\t\t\t}\n\n\t\t\tthis._showNextStack();\n\t\t} );\n\n\t\tview.buttonPrevView.on( 'execute', () => {\n\t\t\t// When current view has a focus then move focus to the editable before removing it,\n\t\t\t// otherwise editor will lost focus.\n\t\t\tif ( view.focusTracker.isFocused ) {\n\t\t\t\tthis.editor.editing.view.focus();\n\t\t\t}\n\n\t\t\tthis._showPrevStack();\n\t\t} );\n\n\t\treturn view;\n\t}\n\n\t/**\n\t * Creates a fake panels view.\n\t */\n\tprivate _createFakePanelsView() {\n\t\tconst view = new FakePanelsView( this.editor.locale, this.view );\n\n\t\tview.bind( 'numberOfPanels' ).to( this, '_numberOfStacks', this, '_singleViewMode', ( number, isSingleViewMode ) => {\n\t\t\tconst showPanels = !isSingleViewMode && number >= 2;\n\n\t\t\treturn showPanels ? Math.min( number - 1, 2 ) : 0;\n\t\t} );\n\n\t\tview.listenTo( this.view, 'change:top', () => view.updatePosition() );\n\t\tview.listenTo( this.view, 'change:left', () => view.updatePosition() );\n\n\t\tthis.editor.ui.view.body.add( view );\n\n\t\treturn view;\n\t}\n\n\t/**\n\t * Sets the view as the content of the balloon and attaches the balloon using position\n\t * options of the first view.\n\t *\n\t * @param data Configuration.\n\t * @param data.view The view to show in the balloon.\n\t * @param data.balloonClassName Additional class name which will be added to the {@link #view balloon}.\n\t * @param data.withArrow Whether the {@link #view balloon} should be rendered with an arrow.\n\t */\n\tprivate _showView( { view, balloonClassName = '', withArrow = true, singleViewMode = false }: ViewConfiguration ) {\n\t\tthis.view.class = balloonClassName;\n\t\tthis.view.withArrow = withArrow;\n\n\t\tthis._rotatorView!.showView( view );\n\t\tthis.visibleView = view;\n\t\tthis.view.pin( this._getBalloonPosition()! );\n\t\tthis._fakePanelsView!.updatePosition();\n\n\t\tif ( singleViewMode ) {\n\t\t\tthis._singleViewMode = true;\n\t\t}\n\t}\n\n\t/**\n\t * Returns position options of the last view in the stack.\n\t * This keeps the balloon in the same position when the view is changed.\n\t */\n\tprivate _getBalloonPosition() {\n\t\tlet position = Array.from( this._visibleStack.values() ).pop()!.position;\n\n\t\tif ( position ) {\n\t\t\t// Use the default limiter if none has been specified.\n\t\t\tif ( !position.limiter ) {\n\t\t\t\t// Don't modify the original options object.\n\t\t\t\tposition = Object.assign( {}, position, {\n\t\t\t\t\tlimiter: this.positionLimiter\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\t// Don't modify the original options object.\n\t\t\tposition = Object.assign( {}, position, {\n\t\t\t\tviewportOffsetConfig: this.editor.ui.viewportOffset\n\t\t\t} );\n\t\t}\n\n\t\treturn position;\n\t}\n}\n\n/**\n * The configuration of the view.\n */\nexport interface ViewConfiguration {\n\n\t/**\n\t * The ID of the stack that the view is added to.\n\t *\n\t * @default 'main'\n\t */\n\tstackId?: string;\n\n\t/**\n\t * The content of the balloon.\n\t */\n\tview: View;\n\n\t/**\n\t * Positioning options.\n\t */\n\tposition?: Partial;\n\n\t/**\n\t * An additional CSS class added to the {@link #view balloon} when visible.\n\t */\n\tballoonClassName?: string;\n\n\t/**\n\t * Whether the {@link #view balloon} should be rendered with an arrow.\n\t *\n\t * @default true\n\t */\n\twithArrow?: boolean;\n\n\t/**\n\t * Whether the view should be the only visible view even if other stacks were added.\n\t *\n\t * @default false\n\t */\n\tsingleViewMode?: boolean;\n}\n\ntype Stack = Map;\n\n/**\n * Rotator view is a helper class for the {@link module:ui/panel/balloon/contextualballoon~ContextualBalloon ContextualBalloon}.\n * It is used for displaying the last view from the current stack and providing navigation buttons for switching stacks.\n * See the {@link module:ui/panel/balloon/contextualballoon~ContextualBalloon ContextualBalloon} documentation to learn more.\n */\nexport class RotatorView extends View {\n\t/**\n\t * Used for checking if a view is focused or not.\n\t */\n\tpublic readonly focusTracker: FocusTracker;\n\n\t/**\n\t * Navigation button for switching the stack to the previous one.\n\t */\n\tpublic readonly buttonPrevView: ButtonView;\n\n\t/**\n\t * Navigation button for switching the stack to the next one.\n\t */\n\tpublic readonly buttonNextView: ButtonView;\n\n\t/**\n\t * A collection of the child views that creates the rotator content.\n\t */\n\tpublic readonly content: ViewCollection;\n\n\t/**\n\t * Defines whether navigation is visible or not.\n\t *\n\t * @observable\n\t */\n\tdeclare public isNavigationVisible: boolean;\n\n\t/**\n\t * @observable\n\t */\n\tdeclare public counter: string;\n\n\t/**\n\t * @inheritDoc\n\t */\n\tconstructor( locale: Locale ) {\n\t\tsuper( locale );\n\n\t\tconst t = locale.t;\n\t\tconst bind = this.bindTemplate;\n\n\t\tthis.set( 'isNavigationVisible', true );\n\n\t\tthis.focusTracker = new FocusTracker();\n\t\tthis.buttonPrevView = this._createButtonView( t( 'Previous' ), icons.previousArrow );\n\t\tthis.buttonNextView = this._createButtonView( t( 'Next' ), icons.nextArrow );\n\t\tthis.content = this.createCollection();\n\n\t\tthis.setTemplate( {\n\t\t\ttag: 'div',\n\t\t\tattributes: {\n\t\t\t\tclass: [\n\t\t\t\t\t'ck',\n\t\t\t\t\t'ck-balloon-rotator'\n\t\t\t\t],\n\t\t\t\t'z-index': '-1'\n\t\t\t},\n\t\t\tchildren: [\n\t\t\t\t{\n\t\t\t\t\ttag: 'div',\n\t\t\t\t\tattributes: {\n\t\t\t\t\t\tclass: [\n\t\t\t\t\t\t\t'ck-balloon-rotator__navigation',\n\t\t\t\t\t\t\tbind.to( 'isNavigationVisible', value => value ? '' : 'ck-hidden' )\n\t\t\t\t\t\t]\n\t\t\t\t\t},\n\t\t\t\t\tchildren: [\n\t\t\t\t\t\tthis.buttonPrevView,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ttag: 'span',\n\n\t\t\t\t\t\t\tattributes: {\n\t\t\t\t\t\t\t\tclass: [\n\t\t\t\t\t\t\t\t\t'ck-balloon-rotator__counter'\n\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t},\n\n\t\t\t\t\t\t\tchildren: [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\ttext: bind.to( 'counter' )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t},\n\t\t\t\t\t\tthis.buttonNextView\n\t\t\t\t\t]\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\ttag: 'div',\n\t\t\t\t\tattributes: {\n\t\t\t\t\t\tclass: 'ck-balloon-rotator__content'\n\t\t\t\t\t},\n\t\t\t\t\tchildren: this.content\n\t\t\t\t}\n\t\t\t]\n\t\t} );\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic override render(): void {\n\t\tsuper.render();\n\n\t\tthis.focusTracker.add( this.element! );\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic override destroy(): void {\n\t\tsuper.destroy();\n\n\t\tthis.focusTracker.destroy();\n\t}\n\n\t/**\n\t * Shows a given view.\n\t *\n\t * @param view The view to show.\n\t */\n\tpublic showView( view: View ): void {\n\t\tthis.hideView();\n\t\tthis.content.add( view );\n\t}\n\n\t/**\n\t * Hides the currently displayed view.\n\t */\n\tpublic hideView(): void {\n\t\tthis.content.clear();\n\t}\n\n\t/**\n\t * Creates a navigation button view.\n\t *\n\t * @param label The button label.\n\t * @param icon The button icon.\n\t */\n\tprivate _createButtonView( label: string, icon: string ) {\n\t\tconst view = new ButtonView( this.locale );\n\n\t\tview.set( {\n\t\t\tlabel,\n\t\t\ticon,\n\t\t\ttooltip: true\n\t\t} );\n\n\t\treturn view;\n\t}\n}\n\n/**\n * Displays additional layers under the balloon when multiple stacks are added to the balloon.\n */\nclass FakePanelsView extends View {\n\t/**\n\t * Collection of the child views which creates fake panel content.\n\t */\n\tpublic readonly content: ViewCollection;\n\n\t/**\n\t * Fake panels top offset.\n\t *\n\t * @observable\n\t */\n\tdeclare public top: number;\n\n\t/**\n\t * Fake panels left offset.\n\t *\n\t * @observable\n\t */\n\tdeclare public left: number;\n\n\t/**\n\t * Fake panels height.\n\t *\n\t * @observable\n\t */\n\tdeclare public height: number;\n\n\t/**\n\t * Fake panels width.\n\t *\n\t * @observable\n\t */\n\tdeclare public width: number;\n\n\t/**\n\t * Number of rendered fake panels.\n\t *\n\t * @observable\n\t */\n\tdeclare public numberOfPanels: number;\n\n\t/**\n\t * Context.\n\t */\n\tprivate readonly _balloonPanelView: BalloonPanelView;\n\n\t/**\n\t * @inheritDoc\n\t */\n\tconstructor( locale: Locale, balloonPanelView: BalloonPanelView ) {\n\t\tsuper( locale );\n\n\t\tconst bind = this.bindTemplate;\n\n\t\tthis.set( 'top', 0 );\n\t\tthis.set( 'left', 0 );\n\t\tthis.set( 'height', 0 );\n\t\tthis.set( 'width', 0 );\n\t\tthis.set( 'numberOfPanels', 0 );\n\n\t\tthis.content = this.createCollection();\n\t\tthis._balloonPanelView = balloonPanelView;\n\n\t\tthis.setTemplate( {\n\t\t\ttag: 'div',\n\t\t\tattributes: {\n\t\t\t\tclass: [\n\t\t\t\t\t'ck-fake-panel',\n\t\t\t\t\tbind.to( 'numberOfPanels', number => number ? '' : 'ck-hidden' )\n\t\t\t\t],\n\t\t\t\tstyle: {\n\t\t\t\t\ttop: bind.to( 'top', toPx ),\n\t\t\t\t\tleft: bind.to( 'left', toPx ),\n\t\t\t\t\twidth: bind.to( 'width', toPx ),\n\t\t\t\t\theight: bind.to( 'height', toPx )\n\t\t\t\t}\n\t\t\t},\n\t\t\tchildren: this.content\n\t\t} );\n\n\t\tthis.on>( 'change:numberOfPanels', ( evt, name, next, prev ) => {\n\t\t\tif ( next > prev ) {\n\t\t\t\tthis._addPanels( next - prev );\n\t\t\t} else {\n\t\t\t\tthis._removePanels( prev - next );\n\t\t\t}\n\n\t\t\tthis.updatePosition();\n\t\t} );\n\t}\n\n\tprivate _addPanels( number: number ) {\n\t\twhile ( number-- ) {\n\t\t\tconst view = new View();\n\n\t\t\tview.setTemplate( { tag: 'div' } );\n\n\t\t\tthis.content.add( view );\n\t\t\tthis.registerChild( view );\n\t\t}\n\t}\n\n\tprivate _removePanels( number: number ) {\n\t\twhile ( number-- ) {\n\t\t\tconst view = this.content.last!;\n\n\t\t\tthis.content.remove( view );\n\t\t\tthis.deregisterChild( view );\n\t\t\tview.destroy();\n\t\t}\n\t}\n\n\t/**\n\t * Updates coordinates of fake panels.\n\t */\n\tpublic updatePosition() {\n\t\tif ( this.numberOfPanels ) {\n\t\t\tconst { top, left } = this._balloonPanelView;\n\t\t\tconst { width, height } = new Rect( this._balloonPanelView.element! );\n\n\t\t\tObject.assign( this, { top, left, width, height } );\n\t\t}\n\t}\n}\n","import api from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./stickypanel.css\";\n\nvar options = {\"injectType\":\"singletonStyleTag\",\"attributes\":{\"data-cke\":true}};\n\noptions.insert = \"head\";\noptions.singleton = true;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module ui/panel/sticky/stickypanelview\n */\n\nimport View from '../../view.js';\nimport Template from '../../template.js';\n\nimport type ViewCollection from '../../viewcollection.js';\n\nimport {\n\ttype Locale,\n\ttype ObservableChangeEvent,\n\tglobal,\n\ttoUnit,\n\tRect\n} from '@ckeditor/ckeditor5-utils';\n\n// @if CK_DEBUG_STICKYPANEL // const {\n// @if CK_DEBUG_STICKYPANEL // \tdefault: RectDrawer,\n// @if CK_DEBUG_STICKYPANEL // \tdiagonalStylesBlack\n// @if CK_DEBUG_STICKYPANEL // } = require( '@ckeditor/ckeditor5-utils/tests/_utils/rectdrawer' );\n\nimport '../../../theme/components/panel/stickypanel.css';\n\nconst toPx = /* #__PURE__ */ toUnit( 'px' );\n\n/**\n * The sticky panel view class.\n */\nexport default class StickyPanelView extends View {\n\t/**\n\t * Collection of the child views which creates balloon panel contents.\n\t */\n\tpublic readonly content: ViewCollection;\n\n\t/**\n\t * Controls whether the sticky panel should be active.\n\t *\n\t * @readonly\n\t * @observable\n\t */\n\tdeclare public isActive: boolean;\n\n\t/**\n\t * Controls whether the sticky panel is in the \"sticky\" state.\n\t *\n\t * @readonly\n\t * @observable\n\t */\n\tdeclare public isSticky: boolean;\n\n\t/**\n\t * The limiter element for the sticky panel instance. Its bounding rect limits\n\t * the \"stickyness\" of the panel, i.e. when the panel reaches the bottom\n\t * edge of the limiter, it becomes sticky to that edge and does not float\n\t * off the limiter. It is mandatory for the panel to work properly and once\n\t * set, it cannot be changed.\n\t *\n\t * @readonly\n\t * @observable\n\t */\n\tdeclare public limiterElement: HTMLElement | null;\n\n\t/**\n\t * The offset from the bottom edge of {@link #limiterElement}\n\t * which stops the panel from stickying any further to prevent limiter's content\n\t * from being completely covered.\n\t *\n\t * @readonly\n\t * @observable\n\t * @default 50\n\t */\n\tdeclare public limiterBottomOffset: number;\n\n\t/**\n\t * The offset from the top edge of the web browser's viewport which makes the\n\t * panel become sticky. The default value is `0`, which means the panel becomes\n\t * sticky when it's upper edge touches the top of the page viewport.\n\t *\n\t * This attribute is useful when the web page has UI elements positioned to the top\n\t * either using `position: fixed` or `position: sticky`, which would cover the\n\t * sticky panel or vice–versa (depending on the `z-index` hierarchy).\n\t *\n\t * Bound to {@link module:ui/editorui/editorui~EditorUI#viewportOffset `EditorUI#viewportOffset`}.\n\t *\n\t * If {@link module:core/editor/editorconfig~EditorConfig#ui `EditorConfig#ui.viewportOffset.top`} is defined, then\n\t * it will override the default value.\n\t *\n\t * @observable\n\t * @default 0\n\t */\n\tdeclare public viewportTopOffset: number;\n\n\t/**\n\t * The panel which accepts children into {@link #content} collection.\n\t * Also an element which is positioned when {@link #isSticky}.\n\t */\n\tpublic contentPanelElement: HTMLElement;\n\n\t/**\n\t * Controls the `margin-left` CSS style of the panel.\n\t *\n\t * @private\n\t * @readonly\n\t * @observable\n\t */\n\tdeclare public _marginLeft: string | null;\n\n\t/**\n\t * Set `true` if the sticky panel reached the bottom edge of the\n\t * {@link #limiterElement}.\n\t *\n\t * @private\n\t * @readonly\n\t * @observable\n\t */\n\tdeclare public _isStickyToTheBottomOfLimiter: boolean;\n\n\t/**\n\t * The `top` CSS position of the panel when it is sticky to the top of the viewport or scrollable\n\t * ancestors of the {@link #limiterElement}.\n\t *\n\t * @private\n\t * @readonly\n\t * @observable\n\t */\n\tdeclare public _stickyTopOffset: number | null;\n\n\t/**\n\t * The `bottom` CSS position of the panel when it is sticky to the bottom of the {@link #limiterElement}.\n\t *\n\t * @private\n\t * @readonly\n\t * @observable\n\t */\n\tdeclare public _stickyBottomOffset: number | null;\n\n\t/**\n\t * A dummy element which visually fills the space as long as the\n\t * actual panel is sticky. It prevents flickering of the UI.\n\t */\n\tprivate _contentPanelPlaceholder: HTMLElement;\n\n\t/**\n\t * @inheritDoc\n\t */\n\tconstructor( locale?: Locale ) {\n\t\tsuper( locale );\n\n\t\tconst bind = this.bindTemplate;\n\n\t\tthis.set( 'isActive', false );\n\t\tthis.set( 'isSticky', false );\n\t\tthis.set( 'limiterElement', null );\n\t\tthis.set( 'limiterBottomOffset', 50 );\n\t\tthis.set( 'viewportTopOffset', 0 );\n\n\t\tthis.set( '_marginLeft', null );\n\t\tthis.set( '_isStickyToTheBottomOfLimiter', false );\n\n\t\tthis.set( '_stickyTopOffset', null );\n\t\tthis.set( '_stickyBottomOffset', null );\n\n\t\tthis.content = this.createCollection();\n\n\t\tthis._contentPanelPlaceholder = new Template( {\n\t\t\ttag: 'div',\n\t\t\tattributes: {\n\t\t\t\tclass: [\n\t\t\t\t\t'ck',\n\t\t\t\t\t'ck-sticky-panel__placeholder'\n\t\t\t\t],\n\t\t\t\tstyle: {\n\t\t\t\t\tdisplay: bind.to( 'isSticky', isSticky => isSticky ? 'block' : 'none' ),\n\t\t\t\t\theight: bind.to( 'isSticky', isSticky => {\n\t\t\t\t\t\treturn isSticky ? toPx( this._contentPanelRect.height ) : null;\n\t\t\t\t\t} )\n\t\t\t\t}\n\t\t\t}\n\t\t} ).render() as HTMLElement;\n\n\t\tthis.contentPanelElement = new Template( {\n\t\t\ttag: 'div',\n\n\t\t\tattributes: {\n\t\t\t\tclass: [\n\t\t\t\t\t'ck',\n\t\t\t\t\t'ck-sticky-panel__content',\n\t\t\t\t\t// Toggle class of the panel when \"sticky\" state changes in the view.\n\t\t\t\t\tbind.if( 'isSticky', 'ck-sticky-panel__content_sticky' ),\n\t\t\t\t\tbind.if( '_isStickyToTheBottomOfLimiter', 'ck-sticky-panel__content_sticky_bottom-limit' )\n\t\t\t\t],\n\t\t\t\tstyle: {\n\t\t\t\t\twidth: bind.to( 'isSticky', isSticky => {\n\t\t\t\t\t\treturn isSticky ? toPx( this._contentPanelPlaceholder.getBoundingClientRect().width ) : null;\n\t\t\t\t\t} ),\n\n\t\t\t\t\ttop: bind.to( '_stickyTopOffset', value => value ? toPx( value ) : value ),\n\t\t\t\t\tbottom: bind.to( '_stickyBottomOffset', value => value ? toPx( value ) : value ),\n\n\t\t\t\t\tmarginLeft: bind.to( '_marginLeft' )\n\t\t\t\t}\n\t\t\t},\n\n\t\t\tchildren: this.content\n\t\t} ).render() as HTMLElement;\n\n\t\tthis.setTemplate( {\n\t\t\ttag: 'div',\n\t\t\tattributes: {\n\t\t\t\tclass: [\n\t\t\t\t\t'ck',\n\t\t\t\t\t'ck-sticky-panel'\n\t\t\t\t]\n\t\t\t},\n\t\t\tchildren: [\n\t\t\t\tthis._contentPanelPlaceholder,\n\t\t\t\tthis.contentPanelElement\n\t\t\t]\n\t\t} );\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic override render(): void {\n\t\tsuper.render();\n\n\t\t// Check if the panel should go into the sticky state immediately.\n\t\tthis.checkIfShouldBeSticky();\n\n\t\t// Update sticky state of the panel as the window and ancestors are being scrolled.\n\t\tthis.listenTo( global.document, 'scroll', () => {\n\t\t\tthis.checkIfShouldBeSticky();\n\t\t}, { useCapture: true } );\n\n\t\t// Synchronize with `model.isActive` because sticking an inactive panel is pointless.\n\t\tthis.listenTo( this, 'change:isActive', () => {\n\t\t\tthis.checkIfShouldBeSticky();\n\t\t} );\n\t}\n\n\t/**\n\t * Analyzes the environment to decide whether the panel should be sticky or not.\n\t * Then handles the positioning of the panel.\n\t */\n\tpublic checkIfShouldBeSticky(): void {\n\t\t// @if CK_DEBUG_STICKYPANEL // RectDrawer.clear();\n\n\t\tif ( !this.limiterElement || !this.isActive ) {\n\t\t\tthis._unstick();\n\n\t\t\treturn;\n\t\t}\n\n\t\tconst limiterRect = new Rect( this.limiterElement );\n\n\t\tlet visibleLimiterRect = limiterRect.getVisible();\n\n\t\tif ( visibleLimiterRect ) {\n\t\t\tconst windowRect = new Rect( global.window );\n\n\t\t\twindowRect.top += this.viewportTopOffset;\n\t\t\twindowRect.height -= this.viewportTopOffset;\n\n\t\t\tvisibleLimiterRect = visibleLimiterRect.getIntersection( windowRect );\n\t\t}\n\n\t\t// @if CK_DEBUG_STICKYPANEL // if ( visibleLimiterRect ) {\n\t\t// @if CK_DEBUG_STICKYPANEL // \tRectDrawer.draw( visibleLimiterRect,\n\t\t// @if CK_DEBUG_STICKYPANEL // \t\t{ outlineWidth: '3px', opacity: '.8', outlineColor: 'red', outlineOffset: '-3px' },\n\t\t// @if CK_DEBUG_STICKYPANEL // \t\t'Visible anc'\n\t\t// @if CK_DEBUG_STICKYPANEL // \t);\n\t\t// @if CK_DEBUG_STICKYPANEL // }\n\t\t// @if CK_DEBUG_STICKYPANEL //\n\t\t// @if CK_DEBUG_STICKYPANEL // RectDrawer.draw( limiterRect,\n\t\t// @if CK_DEBUG_STICKYPANEL // \t{ outlineWidth: '3px', opacity: '.8', outlineColor: 'green', outlineOffset: '-3px' },\n\t\t// @if CK_DEBUG_STICKYPANEL // \t'Limiter'\n\t\t// @if CK_DEBUG_STICKYPANEL // );\n\n\t\t// Stick the panel only if\n\t\t// * the limiter's ancestors are intersecting with each other so that some of their rects are visible,\n\t\t// * and the limiter's top edge is above the visible ancestors' top edge.\n\t\tif ( visibleLimiterRect && limiterRect.top < visibleLimiterRect.top ) {\n\t\t\t// @if CK_DEBUG_STICKYPANEL // RectDrawer.draw( visibleLimiterRect,\n\t\t\t// @if CK_DEBUG_STICKYPANEL // \t{ outlineWidth: '3px', opacity: '.8', outlineColor: 'fuchsia', outlineOffset: '-3px',\n\t\t\t// @if CK_DEBUG_STICKYPANEL // \t\tbackgroundColor: 'rgba(255, 0, 255, .3)' },\n\t\t\t// @if CK_DEBUG_STICKYPANEL // \t'Visible limiter'\n\t\t\t// @if CK_DEBUG_STICKYPANEL // );\n\n\t\t\tconst visibleLimiterTop = visibleLimiterRect.top;\n\n\t\t\t// Check if there's a change the panel can be sticky to the bottom of the limiter.\n\t\t\tif ( visibleLimiterTop + this._contentPanelRect.height + this.limiterBottomOffset > visibleLimiterRect.bottom ) {\n\t\t\t\tconst stickyBottomOffset = Math.max( limiterRect.bottom - visibleLimiterRect.bottom, 0 ) + this.limiterBottomOffset;\n\t\t\t\t// @if CK_DEBUG_STICKYPANEL // const stickyBottomOffsetRect = new Rect( {\n\t\t\t\t// @if CK_DEBUG_STICKYPANEL // \ttop: limiterRect.bottom - stickyBottomOffset, left: 0, right: 2000,\n\t\t\t\t// @if CK_DEBUG_STICKYPANEL // \tbottom: limiterRect.bottom - stickyBottomOffset, width: 2000, height: 1\n\t\t\t\t// @if CK_DEBUG_STICKYPANEL // } );\n\t\t\t\t// @if CK_DEBUG_STICKYPANEL // RectDrawer.draw( stickyBottomOffsetRect,\n\t\t\t\t// @if CK_DEBUG_STICKYPANEL // \t{ outlineWidth: '1px', opacity: '.8', outlineColor: 'black' },\n\t\t\t\t// @if CK_DEBUG_STICKYPANEL // \t'Sticky bottom offset'\n\t\t\t\t// @if CK_DEBUG_STICKYPANEL // );\n\n\t\t\t\t// Check if sticking the panel to the bottom of the limiter does not cause it to suddenly\n\t\t\t\t// move upwards if there's not enough space for it.\n\t\t\t\tif ( limiterRect.bottom - stickyBottomOffset > limiterRect.top + this._contentPanelRect.height ) {\n\t\t\t\t\tthis._stickToBottomOfLimiter( stickyBottomOffset );\n\t\t\t\t} else {\n\t\t\t\t\tthis._unstick();\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif ( this._contentPanelRect.height + this.limiterBottomOffset < limiterRect.height ) {\n\t\t\t\t\tthis._stickToTopOfAncestors( visibleLimiterTop );\n\t\t\t\t} else {\n\t\t\t\t\tthis._unstick();\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tthis._unstick();\n\t\t}\n\n\t\t// @if CK_DEBUG_STICKYPANEL // console.clear();\n\t\t// @if CK_DEBUG_STICKYPANEL // console.log( 'isSticky', this.isSticky );\n\t\t// @if CK_DEBUG_STICKYPANEL // console.log( '_isStickyToTheBottomOfLimiter', this._isStickyToTheBottomOfLimiter );\n\t\t// @if CK_DEBUG_STICKYPANEL // console.log( '_stickyTopOffset', this._stickyTopOffset );\n\t\t// @if CK_DEBUG_STICKYPANEL // console.log( '_stickyBottomOffset', this._stickyBottomOffset );\n\t\t// @if CK_DEBUG_STICKYPANEL // if ( visibleLimiterRect ) {\n\t\t// @if CK_DEBUG_STICKYPANEL // \tRectDrawer.draw( visibleLimiterRect,\n\t\t// @if CK_DEBUG_STICKYPANEL // \t\t{ ...diagonalStylesBlack,\n\t\t// @if CK_DEBUG_STICKYPANEL // \t\t\toutlineWidth: '3px', opacity: '.8', outlineColor: 'orange', outlineOffset: '-3px',\n\t\t// @if CK_DEBUG_STICKYPANEL // \t\t\tbackgroundColor: 'rgba(0, 0, 255, .2)' },\n\t\t// @if CK_DEBUG_STICKYPANEL // \t\t'visibleLimiterRect'\n\t\t// @if CK_DEBUG_STICKYPANEL // \t);\n\t\t// @if CK_DEBUG_STICKYPANEL // }\n\t}\n\n\t/**\n\t * Sticks the panel at the given CSS `top` offset.\n\t *\n\t * @private\n\t * @param topOffset\n\t */\n\tprivate _stickToTopOfAncestors( topOffset: number ) {\n\t\tthis.isSticky = true;\n\t\tthis._isStickyToTheBottomOfLimiter = false;\n\t\tthis._stickyTopOffset = topOffset;\n\t\tthis._stickyBottomOffset = null;\n\t\tthis._marginLeft = toPx( -global.window.scrollX );\n\t}\n\n\t/**\n\t * Sticks the panel at the bottom of the limiter with a given CSS `bottom` offset.\n\t *\n\t * @private\n\t * @param stickyBottomOffset\n\t */\n\tprivate _stickToBottomOfLimiter( stickyBottomOffset: number ) {\n\t\tthis.isSticky = true;\n\t\tthis._isStickyToTheBottomOfLimiter = true;\n\t\tthis._stickyTopOffset = null;\n\t\tthis._stickyBottomOffset = stickyBottomOffset;\n\t\tthis._marginLeft = toPx( -global.window.scrollX );\n\t}\n\n\t/**\n\t * Unsticks the panel putting it back to its original position.\n\t *\n\t * @private\n\t */\n\tprivate _unstick() {\n\t\tthis.isSticky = false;\n\t\tthis._isStickyToTheBottomOfLimiter = false;\n\t\tthis._stickyTopOffset = null;\n\t\tthis._stickyBottomOffset = null;\n\t\tthis._marginLeft = null;\n\t}\n\n\t/**\n\t * Returns the bounding rect of the {@link #contentPanelElement}.\n\t *\n\t * @private\n\t */\n\tprivate get _contentPanelRect(): Rect {\n\t\treturn new Rect( this.contentPanelElement );\n\t}\n}\n","import toString from './toString.js';\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g,\n reHasRegExpChar = RegExp(reRegExpChar.source);\n\n/**\n * Escapes the `RegExp` special characters \"^\", \"$\", \"\\\", \".\", \"*\", \"+\",\n * \"?\", \"(\", \")\", \"[\", \"]\", \"{\", \"}\", and \"|\" in `string`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to escape.\n * @returns {string} Returns the escaped string.\n * @example\n *\n * _.escapeRegExp('[lodash](https://lodash.com/)');\n * // => '\\[lodash\\]\\(https://lodash\\.com/\\)'\n */\nfunction escapeRegExp(string) {\n string = toString(string);\n return (string && reHasRegExpChar.test(string))\n ? string.replace(reRegExpChar, '\\\\$&')\n : string;\n}\n\nexport default escapeRegExp;\n","import api from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./search.css\";\n\nvar options = {\"injectType\":\"singletonStyleTag\",\"attributes\":{\"data-cke\":true}};\n\noptions.insert = \"head\";\noptions.singleton = true;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","import api from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./autocomplete.css\";\n\nvar options = {\"injectType\":\"singletonStyleTag\",\"attributes\":{\"data-cke\":true}};\n\noptions.insert = \"head\";\noptions.singleton = true;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","/**\n * The base implementation of `_.propertyOf` without support for deep paths.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Function} Returns the new accessor function.\n */\nfunction basePropertyOf(object) {\n return function(key) {\n return object == null ? undefined : object[key];\n };\n}\n\nexport default basePropertyOf;\n","import basePropertyOf from './_basePropertyOf.js';\n\n/** Used to map characters to HTML entities. */\nvar htmlEscapes = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": '''\n};\n\n/**\n * Used by `_.escape` to convert characters to HTML entities.\n *\n * @private\n * @param {string} chr The matched character to escape.\n * @returns {string} Returns the escaped character.\n */\nvar escapeHtmlChar = basePropertyOf(htmlEscapes);\n\nexport default escapeHtmlChar;\n","import escapeHtmlChar from './_escapeHtmlChar.js';\nimport toString from './toString.js';\n\n/** Used to match HTML entities and HTML characters. */\nvar reUnescapedHtml = /[&<>\"']/g,\n reHasUnescapedHtml = RegExp(reUnescapedHtml.source);\n\n/**\n * Converts the characters \"&\", \"<\", \">\", '\"', and \"'\" in `string` to their\n * corresponding HTML entities.\n *\n * **Note:** No other characters are escaped. To escape additional\n * characters use a third-party library like [_he_](https://mths.be/he).\n *\n * Though the \">\" character is escaped for symmetry, characters like\n * \">\" and \"/\" don't need escaping in HTML and have no special meaning\n * unless they're part of a tag or unquoted attribute value. See\n * [Mathias Bynens's article](https://mathiasbynens.be/notes/ambiguous-ampersands)\n * (under \"semi-related fun fact\") for more details.\n *\n * When working with HTML you should always\n * [quote attribute values](http://wonko.com/post/html-escaping) to reduce\n * XSS vectors.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category String\n * @param {string} [string=''] The string to escape.\n * @returns {string} Returns the escaped string.\n * @example\n *\n * _.escape('fred, barney, & pebbles');\n * // => 'fred, barney, & pebbles'\n */\nfunction escape(string) {\n string = toString(string);\n return (string && reHasUnescapedHtml.test(string))\n ? string.replace(reUnescapedHtml, escapeHtmlChar)\n : string;\n}\n\nexport default escape;\n","import api from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./highlightedtext.css\";\n\nvar options = {\"injectType\":\"singletonStyleTag\",\"attributes\":{\"data-cke\":true}};\n\noptions.insert = \"head\";\noptions.singleton = true;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","import api from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./spinner.css\";\n\nvar options = {\"injectType\":\"singletonStyleTag\",\"attributes\":{\"data-cke\":true}};\n\noptions.insert = \"head\";\noptions.singleton = true;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","import api from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./blocktoolbar.css\";\n\nvar options = {\"injectType\":\"singletonStyleTag\",\"attributes\":{\"data-cke\":true}};\n\noptions.insert = \"head\";\noptions.singleton = true;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","import api from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./menubarmenubutton.css\";\n\nvar options = {\"injectType\":\"singletonStyleTag\",\"attributes\":{\"data-cke\":true}};\n\noptions.insert = \"head\";\noptions.singleton = true;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module ui/menubar/menubarmenubuttonview\n */\n\nimport IconView from '../icon/iconview.js';\nimport ButtonView from '../button/buttonview.js';\nimport type { Locale } from '@ckeditor/ckeditor5-utils';\n\nimport dropdownArrowIcon from '../../theme/icons/dropdown-arrow.svg';\n\nimport '../../theme/components/menubar/menubarmenubutton.css';\n\n/**\n * A menu {@link module:ui/menubar/menubarmenuview~MenuBarMenuView#buttonView} class. Buttons like this one\n * open both top-level bar menus as well as sub-menus.\n */\nexport default class MenuBarMenuButtonView extends ButtonView {\n\t/**\n\t * An icon that displays an arrow to indicate a direction of the menu.\n\t */\n\tpublic readonly arrowView: IconView;\n\n\t/**\n\t * Creates an instance of the menu bar button view.\n\t *\n\t * @param locale The localization services instance.\n\t */\n\tconstructor( locale: Locale ) {\n\t\tsuper( locale );\n\n\t\tconst bind = this.bindTemplate;\n\n\t\tthis.set( {\n\t\t\twithText: true,\n\t\t\trole: 'menuitem'\n\t\t} );\n\n\t\tthis.arrowView = this._createArrowView();\n\n\t\tthis.extendTemplate( {\n\t\t\tattributes: {\n\t\t\t\tclass: [\n\t\t\t\t\t'ck-menu-bar__menu__button'\n\t\t\t\t],\n\t\t\t\t'aria-haspopup': true,\n\t\t\t\t'aria-expanded': this.bindTemplate.to( 'isOn', value => String( value ) ),\n\t\t\t\t'data-cke-tooltip-disabled': bind.to( 'isOn' )\n\t\t\t},\n\t\t\ton: {\n\t\t\t\t'mouseenter': bind.to( 'mouseenter' )\n\t\t\t}\n\t\t} );\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic override render(): void {\n\t\tsuper.render();\n\n\t\tthis.children.add( this.arrowView );\n\t}\n\n\t/**\n\t * Creates the {@link #arrowView} instance.\n\t */\n\tprivate _createArrowView() {\n\t\tconst arrowView = new IconView();\n\n\t\tarrowView.content = dropdownArrowIcon;\n\t\tarrowView.extendTemplate( {\n\t\t\tattributes: {\n\t\t\t\tclass: 'ck-menu-bar__menu__button__arrow'\n\t\t\t}\n\t\t} );\n\n\t\treturn arrowView;\n\t}\n}\n","import api from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./menubarmenulistitem.css\";\n\nvar options = {\"injectType\":\"singletonStyleTag\",\"attributes\":{\"data-cke\":true}};\n\noptions.insert = \"head\";\noptions.singleton = true;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module ui/menubar/menubarmenulistitemview\n */\n\nimport type { Locale } from '@ckeditor/ckeditor5-utils';\nimport ListItemView from '../list/listitemview.js';\nimport type MenuBarMenuView from './menubarmenuview.js';\n\nimport '../../theme/components/menubar/menubarmenulistitem.css';\n\n/**\n * A menu bar list item view, a child of {@link module:ui/menubar/menubarmenulistview~MenuBarMenuListView}.\n *\n * Populate this item with a {@link module:ui/menubar/menubarmenulistitembuttonview~MenuBarMenuListItemButtonView} instance\n * or a {@link module:ui/menubar/menubarmenuview~MenuBarMenuView} instance to create a sub-menu.\n */\nexport default class MenuBarMenuListItemView extends ListItemView {\n\t/**\n\t * Creates an instance of the list item view.\n\t *\n\t * @param locale The localization services instance.\n\t */\n\tconstructor( locale: Locale, parentMenuView: MenuBarMenuView ) {\n\t\tsuper( locale );\n\n\t\tconst bind = this.bindTemplate;\n\n\t\tthis.extendTemplate( {\n\t\t\tattributes: {\n\t\t\t\tclass: [\n\t\t\t\t\t'ck-menu-bar__menu__item'\n\t\t\t\t]\n\t\t\t},\n\t\t\ton: {\n\t\t\t\t'mouseenter': bind.to( 'mouseenter' )\n\t\t\t}\n\t\t} );\n\n\t\tthis.delegate( 'mouseenter' ).to( parentMenuView );\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module ui/menubar/utils\n */\n\nimport MenuBarMenuListItemView from './menubarmenulistitemview.js';\nimport type MenuBarMenuView from './menubarmenuview.js';\nimport type {\n\tdefault as MenuBarView,\n\tMenuBarConfig,\n\tMenuBarMenuMouseEnterEvent,\n\tMenuBarMenuChangeIsOpenEvent,\n\tMenuBarMenuArrowRightEvent,\n\tMenuBarMenuArrowLeftEvent,\n\tMenuBarMenuDefinition,\n\tMenuBarConfigObject,\n\tMenuBarConfigAddedGroup,\n\tMenuBarConfigAddedMenu,\n\tMenuBarConfigAddedPosition,\n\tNormalizedMenuBarConfigObject\n} from './menubarview.js';\nimport clickOutsideHandler from '../bindings/clickoutsidehandler.js';\nimport type { ButtonExecuteEvent } from '../button/button.js';\nimport type ComponentFactory from '../componentfactory.js';\nimport type { FocusableView } from '../focuscycler.js';\nimport type { Editor } from '@ckeditor/ckeditor5-core';\nimport {\n\tlogWarning,\n\ttype Locale,\n\ttype ObservableChangeEvent,\n\ttype PositioningFunction\n} from '@ckeditor/ckeditor5-utils';\nimport { cloneDeep } from 'lodash-es';\n\nconst NESTED_PANEL_HORIZONTAL_OFFSET = 5;\n\ntype DeepReadonly = Readonly<{\n\t[K in keyof T]:\n\t\tT[K] extends string ? Readonly\n\t\t\t: T[K] extends Array ? Readonly>>\n\t\t\t\t: DeepReadonly;\n}>;\n\n/**\n * Behaviors of the {@link module:ui/menubar/menubarview~MenuBarView} component.\n */\nexport const MenuBarBehaviors = {\n\t/**\n\t * When the bar is already open:\n\t * * Opens the menu when the user hovers over its button.\n\t * * Closes open menu when another menu's button gets hovered.\n\t */\n\ttoggleMenusAndFocusItemsOnHover( menuBarView: MenuBarView ): void {\n\t\tmenuBarView.on( 'menu:mouseenter', evt => {\n\t\t\t// This works only when the menu bar has already been open and the user hover over the menu bar.\n\t\t\tif ( !menuBarView.isOpen ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tfor ( const menuView of menuBarView.menus ) {\n\t\t\t\t// @if CK_DEBUG_MENU_BAR // const wasOpen = menuView.isOpen;\n\n\t\t\t\tconst pathLeaf = evt.path[ 0 ];\n\t\t\t\tconst isListItemContainingMenu = pathLeaf instanceof MenuBarMenuListItemView && pathLeaf.children.first === menuView;\n\n\t\t\t\tmenuView.isOpen = ( evt.path.includes( menuView ) || isListItemContainingMenu ) && menuView.isEnabled;\n\n\t\t\t\t// @if CK_DEBUG_MENU_BAR // if ( wasOpen !== menuView.isOpen ) {\n\t\t\t\t// @if CK_DEBUG_MENU_BAR // console.log( '[BEHAVIOR] toggleMenusAndFocusItemsOnHover(): Toggle',\n\t\t\t\t// @if CK_DEBUG_MENU_BAR // \tlogMenu( menuView ), 'isOpen', menuView.isOpen\n\t\t\t\t// @if CK_DEBUG_MENU_BAR // );\n\t\t\t\t// @if CK_DEBUG_MENU_BAR // }\n\t\t\t}\n\n\t\t\t( evt.source as FocusableView ).focus();\n\t\t} );\n\t},\n\n\t/**\n\t * Moves between top-level menus using the arrow left and right keys.\n\t *\n\t * If the menubar has already been open, the arrow keys move focus between top-level menu buttons and open them.\n\t * If the menubar is closed, the arrow keys only move focus between top-level menu buttons.\n\t */\n\tfocusCycleMenusOnArrows( menuBarView: MenuBarView ): void {\n\t\tconst isContentRTL = menuBarView.locale!.uiLanguageDirection === 'rtl';\n\n\t\tmenuBarView.on( 'menu:arrowright', evt => {\n\t\t\tcycleTopLevelMenus( evt.source as MenuBarMenuView, isContentRTL ? -1 : 1 );\n\t\t} );\n\n\t\tmenuBarView.on( 'menu:arrowleft', evt => {\n\t\t\tcycleTopLevelMenus( evt.source as MenuBarMenuView, isContentRTL ? 1 : -1 );\n\t\t} );\n\n\t\tfunction cycleTopLevelMenus( currentMenuView: MenuBarMenuView, step: number ) {\n\t\t\tconst currentIndex = menuBarView.children.getIndex( currentMenuView );\n\t\t\tconst isCurrentMenuViewOpen = currentMenuView.isOpen;\n\t\t\tconst menusCount = menuBarView.children.length;\n\t\t\tconst menuViewToOpen = menuBarView.children.get( ( currentIndex + menusCount + step ) % menusCount )!;\n\n\t\t\tcurrentMenuView.isOpen = false;\n\n\t\t\tif ( isCurrentMenuViewOpen ) {\n\t\t\t\tmenuViewToOpen.isOpen = true;\n\t\t\t}\n\n\t\t\tmenuViewToOpen.buttonView.focus();\n\t\t}\n\t},\n\n\t/**\n\t * Closes the entire sub-menu structure when the bar is closed. This prevents sub-menus from being open if the user\n\t * closes the entire bar, and then re-opens some top-level menu.\n\t */\n\tcloseMenusWhenTheBarCloses( menuBarView: MenuBarView ): void {\n\t\tmenuBarView.on>( 'change:isOpen', () => {\n\t\t\tif ( !menuBarView.isOpen ) {\n\t\t\t\tmenuBarView.menus.forEach( menuView => {\n\t\t\t\t\tmenuView.isOpen = false;\n\n\t\t\t\t\t// @if CK_DEBUG_MENU_BAR // console.log( '[BEHAVIOR] closeMenusWhenTheBarCloses(): Closing', logMenu( menuView ) );\n\t\t\t\t} );\n\t\t\t}\n\t\t} );\n\t},\n\n\t/**\n\t * Handles the following case:\n\t * 1. Hover to open a sub-menu (A). The button has focus.\n\t * 2. Press arrow up/down to move focus to another sub-menu (B) button.\n\t * 3. Press arrow right to open the sub-menu (B).\n\t * 4. The sub-menu (A) should close as it would with `toggleMenusAndFocusItemsOnHover()`.\n\t */\n\tcloseMenuWhenAnotherOnTheSameLevelOpens( menuBarView: MenuBarView ): void {\n\t\tmenuBarView.on( 'menu:change:isOpen', ( evt, name, isOpen ) => {\n\t\t\tif ( isOpen ) {\n\t\t\t\tmenuBarView.menus\n\t\t\t\t\t.filter( menuView => {\n\t\t\t\t\t\treturn ( evt.source as any ).parentMenuView === menuView.parentMenuView &&\n\t\t\t\t\t\t\tevt.source !== menuView &&\n\t\t\t\t\t\t\tmenuView.isOpen;\n\t\t\t\t\t} ).forEach( menuView => {\n\t\t\t\t\t\tmenuView.isOpen = false;\n\n\t\t\t\t\t\t// @if CK_DEBUG_MENU_BAR // console.log( '[BEHAVIOR] closeMenuWhenAnotherOpens(): Closing', logMenu( menuView ) );\n\t\t\t\t\t} );\n\t\t\t}\n\t\t} );\n\t},\n\n\t/**\n\t * Closes the bar when the user clicked outside of it (page body, editor root, etc.).\n\t */\n\tcloseOnClickOutside( menuBarView: MenuBarView ): void {\n\t\tclickOutsideHandler( {\n\t\t\temitter: menuBarView,\n\t\t\tactivator: () => menuBarView.isOpen,\n\t\t\tcallback: () => menuBarView.close(),\n\t\t\tcontextElements: () => menuBarView.children.map( child => child.element! )\n\t\t} );\n\t}\n};\n\n/**\n * Behaviors of the {@link module:ui/menubar/menubarmenuview~MenuBarMenuView} component.\n */\nexport const MenuBarMenuBehaviors = {\n\t/**\n\t * If the button of the menu is focused, pressing the arrow down key should open the panel and focus it.\n\t * This is analogous to the {@link module:ui/dropdown/dropdownview~DropdownView}.\n\t */\n\topenAndFocusPanelOnArrowDownKey( menuView: MenuBarMenuView ): void {\n\t\tmenuView.keystrokes.set( 'arrowdown', ( data, cancel ) => {\n\t\t\tif ( menuView.focusTracker.focusedElement === menuView.buttonView.element ) {\n\t\t\t\tif ( !menuView.isOpen ) {\n\t\t\t\t\tmenuView.isOpen = true;\n\t\t\t\t}\n\n\t\t\t\tmenuView.panelView.focus();\n\t\t\t\tcancel();\n\t\t\t}\n\t\t} );\n\t},\n\n\t/**\n\t * Open the menu on the right arrow key press. This allows for navigating to sub-menus using the keyboard.\n\t */\n\topenOnArrowRightKey( menuView: MenuBarMenuView ): void {\n\t\tconst keystroke = menuView.locale!.uiLanguageDirection === 'rtl' ? 'arrowleft' : 'arrowright';\n\n\t\tmenuView.keystrokes.set( keystroke, ( data, cancel ) => {\n\t\t\tif ( menuView.focusTracker.focusedElement !== menuView.buttonView.element || !menuView.isEnabled ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// @if CK_DEBUG_MENU_BAR // console.log( '[BEHAVIOR] openOnArrowRightKey(): Opening', logMenu( menuView ) );\n\n\t\t\tif ( !menuView.isOpen ) {\n\t\t\t\tmenuView.isOpen = true;\n\t\t\t}\n\n\t\t\tmenuView.panelView.focus();\n\t\t\tcancel();\n\t\t} );\n\t},\n\n\t/**\n\t * Opens the menu on its button click. Note that this behavior only opens but never closes the menu (unlike\n\t * {@link module:ui/dropdown/dropdownview~DropdownView}).\n\t */\n\topenOnButtonClick( menuView: MenuBarMenuView ): void {\n\t\tmenuView.buttonView.on( 'execute', () => {\n\t\t\tmenuView.isOpen = true;\n\t\t\tmenuView.panelView.focus();\n\t\t} );\n\t},\n\n\t/**\n\t * Toggles the menu on its button click. This behavior is analogous to {@link module:ui/dropdown/dropdownview~DropdownView}.\n\t */\n\ttoggleOnButtonClick( menuView: MenuBarMenuView ): void {\n\t\tmenuView.buttonView.on( 'execute', () => {\n\t\t\tmenuView.isOpen = !menuView.isOpen;\n\n\t\t\tif ( menuView.isOpen ) {\n\t\t\t\tmenuView.panelView.focus();\n\t\t\t}\n\t\t} );\n\t},\n\n\t/**\n\t * Closes the menu on the right left key press. This allows for navigating to sub-menus using the keyboard.\n\t */\n\tcloseOnArrowLeftKey( menuView: MenuBarMenuView ): void {\n\t\tconst keystroke = menuView.locale!.uiLanguageDirection === 'rtl' ? 'arrowright' : 'arrowleft';\n\n\t\tmenuView.keystrokes.set( keystroke, ( data, cancel ) => {\n\t\t\tif ( menuView.isOpen ) {\n\t\t\t\tmenuView.isOpen = false;\n\t\t\t\tmenuView.focus();\n\t\t\t\tcancel();\n\t\t\t}\n\t\t} );\n\t},\n\n\t/**\n\t * Closes the menu on the esc key press. This allows for navigating to sub-menus using the keyboard.\n\t */\n\tcloseOnEscKey( menuView: MenuBarMenuView ): void {\n\t\tmenuView.keystrokes.set( 'esc', ( data, cancel ) => {\n\t\t\tif ( menuView.isOpen ) {\n\t\t\t\tmenuView.isOpen = false;\n\t\t\t\tmenuView.focus();\n\t\t\t\tcancel();\n\t\t\t}\n\t\t} );\n\t},\n\n\t/**\n\t * Closes the menu when its parent menu also closed. This prevents from orphaned open menus when the parent menu re-opens.\n\t */\n\tcloseOnParentClose( menuView: MenuBarMenuView ): void {\n\t\tmenuView.parentMenuView!.on>( 'change:isOpen', ( evt, name, isOpen ) => {\n\t\t\tif ( !isOpen && evt.source === menuView.parentMenuView ) {\n\t\t\t\t// @if CK_DEBUG_MENU_BAR // console.log( '[BEHAVIOR] closeOnParentClose(): Closing', logMenu( menuView ) );\n\n\t\t\t\tmenuView.isOpen = false;\n\t\t\t}\n\t\t} );\n\t}\n};\n\n// @if CK_DEBUG_MENU_BAR // function logMenu( menuView: MenuBarMenuView ) {\n// @if CK_DEBUG_MENU_BAR //\treturn `\"${ menuView.buttonView.label }\"`;\n// @if CK_DEBUG_MENU_BAR // }\n\n/**\n * Contains every positioning function used by {@link module:ui/menubar/menubarmenuview~MenuBarMenuView} that decides where the\n * {@link module:ui/menubar/menubarmenuview~MenuBarMenuView#panelView} should be placed.\n *\n * Top-level menu positioning functions:\n *\n *\t┌──────┐\n *\t│ │\n *\t├──────┴────────┐\n *\t│ │\n *\t│ │\n *\t│ │\n *\t│ SE │\n *\t└───────────────┘\n *\n *\t ┌──────┐\n *\t │ │\n *\t┌────────┴──────┤\n *\t│ │\n *\t│ │\n *\t│ │\n *\t│ SW │\n *\t└───────────────┘\n *\n *\t┌───────────────┐\n *\t│ NW │\n *\t│ │\n *\t│ │\n *\t│ │\n *\t└────────┬──────┤\n *\t │ │\n *\t └──────┘\n *\n *\t┌───────────────┐\n *\t│ NE │\n *\t│ │\n *\t│ │\n *\t│ │\n *\t├──────┬────────┘\n *\t│ │\n *\t└──────┘\n *\n * Sub-menu positioning functions:\n *\n *\t┌──────┬───────────────┐\n *\t│ │ │\n *\t└──────┤ │\n *\t │ │\n *\t │ ES │\n *\t └───────────────┘\n *\n *\t┌───────────────┬──────┐\n *\t│ │ │\n *\t│ ├──────┘\n *\t│ │\n *\t│ WS │\n *\t└───────────────┘\n *\n *\t ┌───────────────┐\n *\t │ EN │\n *\t │ │\n *\t┌──────┤ │\n *\t│ │ │\n *\t└──────┴───────────────┘\n *\n *\t┌───────────────┐\n *\t│ WN │\n *\t│ │\n *\t│ ├──────┐\n *\t│ │ │\n *\t└───────────────┴──────┘\n */\nexport const MenuBarMenuViewPanelPositioningFunctions: Record = {\n\tsouthEast: buttonRect => {\n\t\treturn {\n\t\t\ttop: buttonRect.bottom,\n\t\t\tleft: buttonRect.left,\n\t\t\tname: 'se'\n\t\t};\n\t},\n\tsouthWest: ( buttonRect, panelRect ) => {\n\t\treturn {\n\t\t\ttop: buttonRect.bottom,\n\t\t\tleft: buttonRect.left - panelRect.width + buttonRect.width,\n\t\t\tname: 'sw'\n\t\t};\n\t},\n\tnorthEast: ( buttonRect, panelRect ) => {\n\t\treturn {\n\t\t\ttop: buttonRect.top - panelRect.height,\n\t\t\tleft: buttonRect.left,\n\t\t\tname: 'ne'\n\t\t};\n\t},\n\tnorthWest: ( buttonRect, panelRect ) => {\n\t\treturn {\n\t\t\ttop: buttonRect.top - panelRect.height,\n\t\t\tleft: buttonRect.left - panelRect.width + buttonRect.width,\n\t\t\tname: 'nw'\n\t\t};\n\t},\n\teastSouth: buttonRect => {\n\t\treturn {\n\t\t\ttop: buttonRect.top,\n\t\t\tleft: buttonRect.right - NESTED_PANEL_HORIZONTAL_OFFSET,\n\t\t\tname: 'es'\n\t\t};\n\t},\n\teastNorth: ( buttonRect, panelRect ) => {\n\t\treturn {\n\t\t\ttop: buttonRect.top - panelRect.height,\n\t\t\tleft: buttonRect.right - NESTED_PANEL_HORIZONTAL_OFFSET,\n\t\t\tname: 'en'\n\t\t};\n\t},\n\twestSouth: ( buttonRect, panelRect ) => {\n\t\treturn {\n\t\t\ttop: buttonRect.top,\n\t\t\tleft: buttonRect.left - panelRect.width + NESTED_PANEL_HORIZONTAL_OFFSET,\n\t\t\tname: 'ws'\n\t\t};\n\t},\n\twestNorth: ( buttonRect, panelRect ) => {\n\t\treturn {\n\t\t\ttop: buttonRect.top - panelRect.height,\n\t\t\tleft: buttonRect.left - panelRect.width + NESTED_PANEL_HORIZONTAL_OFFSET,\n\t\t\tname: 'wn'\n\t\t};\n\t}\n} as const;\n\n/**\n * The default items {@link module:core/editor/editorconfig~EditorConfig#menuBar configuration} of the\n * {@link module:ui/menubar/menubarview~MenuBarView} component. It contains names of all menu bar components\n * registered in the {@link module:ui/componentfactory~ComponentFactory component factory} (available in the project).\n *\n * **Note**: Menu bar component names provided by core editor features are prefixed with `menuBar:` in order to distinguish\n * them from components referenced by the {@link module:core/editor/editorconfig~EditorConfig#toolbar toolbar configuration}, for instance,\n * `'menuBar:bold'` is a menu bar button but `'bold'` is a toolbar button.\n *\n * Below is the preset menu bar structure (the default value of `config.menuBar.items` property):\n *\n * ```ts\n * [\n * \t{\n * \t\tmenuId: 'file',\n * \t\tlabel: 'File',\n * \t\tgroups: [\n * \t\t\t{\n * \t\t\t\tgroupId: 'export',\n * \t\t\t\titems: [\n * \t\t\t\t\t'menuBar:exportPdf',\n * \t\t\t\t\t'menuBar:exportWord'\n * \t\t\t\t]\n * \t\t\t},\n * \t\t\t{\n * \t\t\t\tgroupId: 'import',\n * \t\t\t\titems: [\n * \t\t\t\t\t'menuBar:importWord'\n * \t\t\t\t]\n * \t\t\t},\n * \t\t\t{\n * \t\t\t\tgroupId: 'revisionHistory',\n * \t\t\t\titems: [\n * \t\t\t\t\t'menuBar:revisionHistory'\n * \t\t\t\t]\n * \t\t\t}\n * \t\t]\n * \t},\n * \t{\n * \t\tmenuId: 'edit',\n * \t\tlabel: 'Edit',\n * \t\tgroups: [\n * \t\t\t{\n * \t\t\t\tgroupId: 'undo',\n * \t\t\t\titems: [\n * \t\t\t\t\t'menuBar:undo',\n * \t\t\t\t\t'menuBar:redo'\n * \t\t\t\t]\n * \t\t\t},\n * \t\t\t{\n * \t\t\t\tgroupId: 'selectAll',\n * \t\t\t\titems: [\n * \t\t\t\t\t'menuBar:selectAll'\n * \t\t\t\t]\n * \t\t\t},\n * \t\t\t{\n * \t\t\t\tgroupId: 'findAndReplace',\n * \t\t\t\titems: [\n * \t\t\t\t\t'menuBar:findAndReplace'\n * \t\t\t\t]\n * \t\t\t}\n * \t\t]\n * \t},\n * \t{\n * \t\tmenuId: 'view',\n * \t\tlabel: 'View',\n * \t\tgroups: [\n * \t\t\t{\n * \t\t\t\tgroupId: 'sourceEditing',\n * \t\t\t\titems: [\n * \t\t\t\t\t'menuBar:sourceEditing'\n * \t\t\t\t]\n * \t\t\t},\n * \t\t\t{\n * \t\t\t\tgroupId: 'showBlocks',\n * \t\t\t\titems: [\n * \t\t\t\t\t'menuBar:showBlocks'\n * \t\t\t\t]\n * \t\t\t},\n * \t\t\t{\n * \t\t\t\tgroupId: 'restrictedEditingException',\n * \t\t\t\titems: [\n * \t\t\t\t\t'menuBar:restrictedEditingException'\n * \t\t\t\t]\n * \t\t\t}\n * \t\t]\n * \t},\n * \t{\n * \t\tmenuId: 'insert',\n * \t\tlabel: 'Insert',\n * \t\tgroups: [\n * \t\t\t{\n * \t\t\t\tgroupId: 'insertMainWidgets',\n * \t\t\t\titems: [\n * \t\t\t\t\t'menuBar:uploadImage',\n * \t\t\t\t\t'menuBar:ckbox',\n * \t\t\t\t\t'menuBar:ckfinder',\n * \t\t\t\t\t'menuBar:insertTable'\n * \t\t\t\t]\n * \t\t\t},\n * \t\t\t{\n * \t\t\t\tgroupId: 'insertInline',\n * \t\t\t\titems: [\n * \t\t\t\t\t'menuBar:link',\n * \t\t\t\t\t'menuBar:comment'\n * \t\t\t\t]\n * \t\t\t},\n * \t\t\t{\n * \t\t\t\tgroupId: 'insertMinorWidgets',\n * \t\t\t\titems: [\n * \t\t\t\t\t'menuBar:insertTemplate',\n * \t\t\t\t\t'menuBar:blockQuote',\n * \t\t\t\t\t'menuBar:codeBlock',\n * \t\t\t\t\t'menuBar:htmlEmbed'\n * \t\t\t\t]\n * \t\t\t},\n * \t\t\t{\n * \t\t\t\tgroupId: 'insertStructureWidgets',\n * \t\t\t\titems: [\n * \t\t\t\t\t'menuBar:horizontalLine',\n * \t\t\t\t\t'menuBar:pageBreak',\n * \t\t\t\t\t'menuBar:tableOfContents'\n * \t\t\t\t]\n * \t\t\t},\n * \t\t\t{\n * \t\t\t\tgroupId: 'restrictedEditing',\n * \t\t\t\titems: [\n * \t\t\t\t\t'menuBar:restrictedEditing'\n * \t\t\t\t]\n * \t\t\t}\n * \t\t]\n * \t},\n * \t{\n * \t\tmenuId: 'format',\n * \t\tlabel: 'Format',\n * \t\tgroups: [\n * \t\t\t{\n * \t\t\t\tgroupId: 'textAndFont',\n * \t\t\t\titems: [\n * \t\t\t\t\t{\n * \t\t\t\t\t\tmenuId: 'text',\n * \t\t\t\t\t\tlabel: 'Text',\n * \t\t\t\t\t\tgroups: [\n * \t\t\t\t\t\t\t{\n * \t\t\t\t\t\t\t\tgroupId: 'basicStyles',\n * \t\t\t\t\t\t\t\titems: [\n * \t\t\t\t\t\t\t\t\t'menuBar:bold',\n * \t\t\t\t\t\t\t\t\t'menuBar:italic',\n * \t\t\t\t\t\t\t\t\t'menuBar:underline',\n * \t\t\t\t\t\t\t\t\t'menuBar:strikethrough',\n * \t\t\t\t\t\t\t\t\t'menuBar:superscript',\n * \t\t\t\t\t\t\t\t\t'menuBar:subscript',\n * \t\t\t\t\t\t\t\t\t'menuBar:code'\n * \t\t\t\t\t\t\t\t]\n * \t\t\t\t\t\t\t},\n * \t\t\t\t\t\t\t{\n * \t\t\t\t\t\t\t\tgroupId: 'textPartLanguage',\n * \t\t\t\t\t\t\t\titems: [\n * \t\t\t\t\t\t\t\t\t'menuBar:textPartLanguage'\n * \t\t\t\t\t\t\t\t]\n * \t\t\t\t\t\t\t}\n * \t\t\t\t\t\t]\n * \t\t\t\t\t},\n * \t\t\t\t\t{\n * \t\t\t\t\t\tmenuId: 'font',\n * \t\t\t\t\t\tlabel: 'Font',\n * \t\t\t\t\t\tgroups: [\n * \t\t\t\t\t\t\t{\n * \t\t\t\t\t\t\t\tgroupId: 'fontProperties',\n * \t\t\t\t\t\t\t\titems: [\n * \t\t\t\t\t\t\t\t\t'menuBar:fontSize',\n * \t\t\t\t\t\t\t\t\t'menuBar:fontFamily'\n * \t\t\t\t\t\t\t\t]\n * \t\t\t\t\t\t\t},\n * \t\t\t\t\t\t\t{\n * \t\t\t\t\t\t\t\tgroupId: 'fontColors',\n * \t\t\t\t\t\t\t\titems: [\n * \t\t\t\t\t\t\t\t\t'menuBar:fontColor',\n * \t\t\t\t\t\t\t\t\t'menuBar:fontBackgroundColor'\n * \t\t\t\t\t\t\t\t]\n * \t\t\t\t\t\t\t},\n * \t\t\t\t\t\t\t{\n * \t\t\t\t\t\t\t\tgroupId: 'highlight',\n * \t\t\t\t\t\t\t\titems: [\n * \t\t\t\t\t\t\t\t\t'menuBar:highlight'\n * \t\t\t\t\t\t\t\t]\n * \t\t\t\t\t\t\t}\n * \t\t\t\t\t\t]\n * \t\t\t\t\t},\n * \t\t\t\t\t'menuBar:heading'\n * \t\t\t\t]\n * \t\t\t},\n * \t\t\t{\n * \t\t\t\tgroupId: 'list',\n * \t\t\t\titems: [\n * \t\t\t\t\t'menuBar:bulletedList',\n * \t\t\t\t\t'menuBar:numberedList',\n * \t\t\t\t\t'menuBar:todoList'\n * \t\t\t\t]\n * \t\t\t},\n * \t\t\t{\n * \t\t\t\tgroupId: 'indent',\n * \t\t\t\titems: [\n * \t\t\t\t\t'menuBar:alignment',\n * \t\t\t\t\t'menuBar:indent',\n * \t\t\t\t\t'menuBar:outdent'\n * \t\t\t\t]\n * \t\t\t},\n * \t\t\t{\n * \t\t\t\tgroupId: 'caseChange',\n * \t\t\t\titems: [\n * \t\t\t\t\t'menuBar:caseChange'\n * \t\t\t\t]\n * \t\t\t},\n * \t\t\t{\n * \t\t\t\tgroupId: 'removeFormat',\n * \t\t\t\titems: [\n * \t\t\t\t\t'menuBar:removeFormat'\n * \t\t\t\t]\n * \t\t\t}\n * \t\t]\n * \t},\n * \t{\n * \t\tmenuId: 'tools',\n * \t\tlabel: 'Tools',\n * \t\tgroups: [\n * \t\t\t{\n * \t\t\t\tgroupId: 'aiTools',\n * \t\t\t\titems: [\n * \t\t\t\t\t'menuBar:aiAssistant',\n * \t\t\t\t\t'menuBar:aiCommands'\n * \t\t\t\t]\n * \t\t\t},\n * \t\t\t{\n * \t\t\t\tgroupId: 'tools',\n * \t\t\t\titems: [\n * \t\t\t\t\t'menuBar:trackChanges',\n * \t\t\t\t\t'menuBar:commentsArchive'\n * \t\t\t\t]\n * \t\t\t}\n * \t\t]\n * \t},\n * \t{\n * \t\tmenuId: 'help',\n * \t\tlabel: 'Help',\n * \t\tgroups: [\n * \t\t\t{\n * \t\t\t\tgroupId: 'help',\n * \t\t\t\titems: [\n * \t\t\t\t\t'menuBar:accessibilityHelp'\n * \t\t\t\t]\n * \t\t\t}\n * \t\t]\n * \t}\n * ];\n * ```\n *\n * The menu bar can be customized using the `config.menuBar.removeItems` and `config.menuBar.addItems` properties.\n */\n// **NOTE: Whenever you make changes to this value, reflect it in the documentation above!**\nexport const DefaultMenuBarItems: DeepReadonly = [\n\t{\n\t\tmenuId: 'file',\n\t\tlabel: 'File',\n\t\tgroups: [\n\t\t\t{\n\t\t\t\tgroupId: 'export',\n\t\t\t\titems: [\n\t\t\t\t\t'menuBar:exportPdf',\n\t\t\t\t\t'menuBar:exportWord'\n\t\t\t\t]\n\t\t\t},\n\t\t\t{\n\t\t\t\tgroupId: 'import',\n\t\t\t\titems: [\n\t\t\t\t\t'menuBar:importWord'\n\t\t\t\t]\n\t\t\t},\n\t\t\t{\n\t\t\t\tgroupId: 'revisionHistory',\n\t\t\t\titems: [\n\t\t\t\t\t'menuBar:revisionHistory'\n\t\t\t\t]\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tmenuId: 'edit',\n\t\tlabel: 'Edit',\n\t\tgroups: [\n\t\t\t{\n\t\t\t\tgroupId: 'undo',\n\t\t\t\titems: [\n\t\t\t\t\t'menuBar:undo',\n\t\t\t\t\t'menuBar:redo'\n\t\t\t\t]\n\t\t\t},\n\t\t\t{\n\t\t\t\tgroupId: 'selectAll',\n\t\t\t\titems: [\n\t\t\t\t\t'menuBar:selectAll'\n\t\t\t\t]\n\t\t\t},\n\t\t\t{\n\t\t\t\tgroupId: 'findAndReplace',\n\t\t\t\titems: [\n\t\t\t\t\t'menuBar:findAndReplace'\n\t\t\t\t]\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tmenuId: 'view',\n\t\tlabel: 'View',\n\t\tgroups: [\n\t\t\t{\n\t\t\t\tgroupId: 'sourceEditing',\n\t\t\t\titems: [\n\t\t\t\t\t'menuBar:sourceEditing'\n\t\t\t\t]\n\t\t\t},\n\t\t\t{\n\t\t\t\tgroupId: 'showBlocks',\n\t\t\t\titems: [\n\t\t\t\t\t'menuBar:showBlocks'\n\t\t\t\t]\n\t\t\t},\n\t\t\t{\n\t\t\t\tgroupId: 'restrictedEditingException',\n\t\t\t\titems: [\n\t\t\t\t\t'menuBar:restrictedEditingException'\n\t\t\t\t]\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tmenuId: 'insert',\n\t\tlabel: 'Insert',\n\t\tgroups: [\n\t\t\t{\n\t\t\t\tgroupId: 'insertMainWidgets',\n\t\t\t\titems: [\n\t\t\t\t\t'menuBar:uploadImage',\n\t\t\t\t\t'menuBar:ckbox',\n\t\t\t\t\t'menuBar:ckfinder',\n\t\t\t\t\t'menuBar:insertTable'\n\t\t\t\t]\n\t\t\t},\n\t\t\t{\n\t\t\t\tgroupId: 'insertInline',\n\t\t\t\titems: [\n\t\t\t\t\t'menuBar:link',\n\t\t\t\t\t'menuBar:comment'\n\t\t\t\t]\n\t\t\t},\n\t\t\t{\n\t\t\t\tgroupId: 'insertMinorWidgets',\n\t\t\t\titems: [\n\t\t\t\t\t'menuBar:insertTemplate',\n\t\t\t\t\t'menuBar:blockQuote',\n\t\t\t\t\t'menuBar:codeBlock',\n\t\t\t\t\t'menuBar:htmlEmbed'\n\t\t\t\t]\n\t\t\t},\n\t\t\t{\n\t\t\t\tgroupId: 'insertStructureWidgets',\n\t\t\t\titems: [\n\t\t\t\t\t'menuBar:horizontalLine',\n\t\t\t\t\t'menuBar:pageBreak',\n\t\t\t\t\t'menuBar:tableOfContents'\n\t\t\t\t]\n\t\t\t},\n\t\t\t{\n\t\t\t\tgroupId: 'restrictedEditing',\n\t\t\t\titems: [\n\t\t\t\t\t'menuBar:restrictedEditing'\n\t\t\t\t]\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tmenuId: 'format',\n\t\tlabel: 'Format',\n\t\tgroups: [\n\t\t\t{\n\t\t\t\tgroupId: 'textAndFont',\n\t\t\t\titems: [\n\t\t\t\t\t{\n\t\t\t\t\t\tmenuId: 'text',\n\t\t\t\t\t\tlabel: 'Text',\n\t\t\t\t\t\tgroups: [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tgroupId: 'basicStyles',\n\t\t\t\t\t\t\t\titems: [\n\t\t\t\t\t\t\t\t\t'menuBar:bold',\n\t\t\t\t\t\t\t\t\t'menuBar:italic',\n\t\t\t\t\t\t\t\t\t'menuBar:underline',\n\t\t\t\t\t\t\t\t\t'menuBar:strikethrough',\n\t\t\t\t\t\t\t\t\t'menuBar:superscript',\n\t\t\t\t\t\t\t\t\t'menuBar:subscript',\n\t\t\t\t\t\t\t\t\t'menuBar:code'\n\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tgroupId: 'textPartLanguage',\n\t\t\t\t\t\t\t\titems: [\n\t\t\t\t\t\t\t\t\t'menuBar:textPartLanguage'\n\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t]\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmenuId: 'font',\n\t\t\t\t\t\tlabel: 'Font',\n\t\t\t\t\t\tgroups: [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tgroupId: 'fontProperties',\n\t\t\t\t\t\t\t\titems: [\n\t\t\t\t\t\t\t\t\t'menuBar:fontSize',\n\t\t\t\t\t\t\t\t\t'menuBar:fontFamily'\n\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tgroupId: 'fontColors',\n\t\t\t\t\t\t\t\titems: [\n\t\t\t\t\t\t\t\t\t'menuBar:fontColor',\n\t\t\t\t\t\t\t\t\t'menuBar:fontBackgroundColor'\n\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tgroupId: 'highlight',\n\t\t\t\t\t\t\t\titems: [\n\t\t\t\t\t\t\t\t\t'menuBar:highlight'\n\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t]\n\t\t\t\t\t},\n\t\t\t\t\t'menuBar:heading'\n\t\t\t\t]\n\t\t\t},\n\t\t\t{\n\t\t\t\tgroupId: 'list',\n\t\t\t\titems: [\n\t\t\t\t\t'menuBar:bulletedList',\n\t\t\t\t\t'menuBar:numberedList',\n\t\t\t\t\t'menuBar:todoList'\n\t\t\t\t]\n\t\t\t},\n\t\t\t{\n\t\t\t\tgroupId: 'indent',\n\t\t\t\titems: [\n\t\t\t\t\t'menuBar:alignment',\n\t\t\t\t\t'menuBar:indent',\n\t\t\t\t\t'menuBar:outdent'\n\t\t\t\t]\n\t\t\t},\n\t\t\t{\n\t\t\t\tgroupId: 'caseChange',\n\t\t\t\titems: [\n\t\t\t\t\t'menuBar:caseChange'\n\t\t\t\t]\n\t\t\t},\n\t\t\t{\n\t\t\t\tgroupId: 'removeFormat',\n\t\t\t\titems: [\n\t\t\t\t\t'menuBar:removeFormat'\n\t\t\t\t]\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tmenuId: 'tools',\n\t\tlabel: 'Tools',\n\t\tgroups: [\n\t\t\t{\n\t\t\t\tgroupId: 'aiTools',\n\t\t\t\titems: [\n\t\t\t\t\t'menuBar:aiAssistant',\n\t\t\t\t\t'menuBar:aiCommands'\n\t\t\t\t]\n\t\t\t},\n\t\t\t{\n\t\t\t\tgroupId: 'tools',\n\t\t\t\titems: [\n\t\t\t\t\t'menuBar:trackChanges',\n\t\t\t\t\t'menuBar:commentsArchive'\n\n\t\t\t\t]\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tmenuId: 'help',\n\t\tlabel: 'Help',\n\t\tgroups: [\n\t\t\t{\n\t\t\t\tgroupId: 'help',\n\t\t\t\titems: [\n\t\t\t\t\t'menuBar:accessibilityHelp'\n\t\t\t\t]\n\t\t\t}\n\t\t]\n\t}\n];\n\n/**\n * Performs a cleanup and normalization of the menu bar configuration.\n */\nexport function normalizeMenuBarConfig( config: Readonly ): NormalizedMenuBarConfigObject {\n\tlet configObject: NormalizedMenuBarConfigObject;\n\n\t// The integrator specified the config as an object but without items. Let's give them defaults but respect their\n\t// additions and removals.\n\tif ( !( 'items' in config ) || !config.items ) {\n\t\tconfigObject = {\n\t\t\titems: cloneDeep( DefaultMenuBarItems ) as Array,\n\t\t\taddItems: [],\n\t\t\tremoveItems: [],\n\t\t\tisVisible: true,\n\t\t\tisUsingDefaultConfig: true,\n\t\t\t...config\n\t\t};\n\t}\n\t// The integrator specified the config as an object and there are items there. Let's take it as it is.\n\telse {\n\t\tconfigObject = {\n\t\t\titems: config.items,\n\t\t\tremoveItems: [],\n\t\t\taddItems: [],\n\t\t\tisVisible: true,\n\t\t\tisUsingDefaultConfig: false,\n\t\t\t...config\n\t\t};\n\t}\n\n\treturn configObject;\n}\n\n/**\n * Processes a normalized menu bar config and returns a config clone with the following modifications:\n *\n * * Removed components that are not available in the component factory,\n * * Removed obsolete separators,\n * * Purged empty menus,\n * * Localized top-level menu labels.\n */\nexport function processMenuBarConfig( {\n\tnormalizedConfig,\n\tlocale,\n\tcomponentFactory\n}: {\n\tnormalizedConfig: NormalizedMenuBarConfigObject;\n\tlocale: Locale;\n\tcomponentFactory: ComponentFactory;\n} ): NormalizedMenuBarConfigObject {\n\tconst configClone = cloneDeep( normalizedConfig ) as NormalizedMenuBarConfigObject;\n\n\thandleRemovals( normalizedConfig, configClone );\n\thandleAdditions( normalizedConfig, configClone );\n\tpurgeUnavailableComponents( normalizedConfig, configClone, componentFactory );\n\tpurgeEmptyMenus( normalizedConfig, configClone );\n\tlocalizeMenuLabels( configClone, locale );\n\n\treturn configClone;\n}\n\n/**\n * Removes items from the menu bar config based on user `removeItems` configuration. Users can remove\n * individual items, groups, or entire menus. For each removed item, a warning is logged if the item\n * was not found in the configuration.\n */\nfunction handleRemovals(\n\toriginalConfig: NormalizedMenuBarConfigObject,\n\tconfig: NormalizedMenuBarConfigObject\n) {\n\tconst itemsToBeRemoved = config.removeItems;\n\tconst successfullyRemovedItems: Array = [];\n\n\t// Remove top-level menus.\n\tconfig.items = config.items.filter( ( { menuId } ) => {\n\t\tif ( itemsToBeRemoved.includes( menuId ) ) {\n\t\t\tsuccessfullyRemovedItems.push( menuId );\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} );\n\n\twalkConfigMenus( config.items, menuDefinition => {\n\t\t// Remove groups from menus.\n\t\tmenuDefinition.groups = menuDefinition.groups.filter( ( { groupId } ) => {\n\t\t\tif ( itemsToBeRemoved.includes( groupId ) ) {\n\t\t\t\tsuccessfullyRemovedItems.push( groupId );\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\treturn true;\n\t\t} );\n\n\t\t// Remove sub-menus and items from groups.\n\t\tfor ( const groupDefinition of menuDefinition.groups ) {\n\t\t\tgroupDefinition.items = groupDefinition.items.filter( item => {\n\t\t\t\tconst itemId = getIdFromGroupItem( item );\n\n\t\t\t\tif ( itemsToBeRemoved.includes( itemId ) ) {\n\t\t\t\t\tsuccessfullyRemovedItems.push( itemId );\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\treturn true;\n\t\t\t} );\n\t\t}\n\t} );\n\n\tfor ( const itemName of itemsToBeRemoved ) {\n\t\tif ( !successfullyRemovedItems.includes( itemName ) ) {\n\t\t\t/**\n\t\t\t * There was a problem processing the configuration of the menu bar. The item with the given\n\t\t\t * name does could not be removed from the menu bar configuration.\n\t\t\t *\n\t\t\t * This warning usually shows up when the {@link module:core/plugin~Plugin} which is supposed\n\t\t\t * to provide a menu bar item has not been loaded or there is a typo in the\n\t\t\t * {@link module:core/editor/editorconfig~EditorConfig#menuBar menu bar configuration}.\n\t\t\t *\n\t\t\t * @error menu-bar-item-could-not-be-removed\n\t\t\t * @param menuBarConfig The full configuration of the menu bar.\n\t\t\t * @param itemName The name of the item that was not removed from the menu bar.\n\t\t\t */\n\t\t\tlogWarning( 'menu-bar-item-could-not-be-removed', {\n\t\t\t\tmenuBarConfig: originalConfig,\n\t\t\t\titemName\n\t\t\t} );\n\t\t}\n\t}\n}\n\n/**\n * Handles the `config.menuBar.addItems` configuration. It allows for adding menus, groups, and items at arbitrary\n * positions in the menu bar. If the position does not exist, a warning is logged.\n */\nfunction handleAdditions(\n\toriginalConfig: NormalizedMenuBarConfigObject,\n\tconfig: NormalizedMenuBarConfigObject\n) {\n\tconst itemsToBeAdded = config.addItems;\n\tconst successFullyAddedItems: typeof itemsToBeAdded = [];\n\n\tfor ( const itemToAdd of itemsToBeAdded ) {\n\t\tconst relation = getRelationFromPosition( itemToAdd.position );\n\t\tconst relativeId = getRelativeIdFromPosition( itemToAdd.position );\n\n\t\t// Adding a menu.\n\t\tif ( isMenuBarMenuAddition( itemToAdd ) ) {\n\t\t\tif ( !relativeId ) {\n\t\t\t\t// Adding a top-level menu at the beginning of the menu bar.\n\t\t\t\tif ( relation === 'start' ) {\n\t\t\t\t\tconfig.items.unshift( itemToAdd.menu );\n\t\t\t\t\tsuccessFullyAddedItems.push( itemToAdd );\n\t\t\t\t}\n\t\t\t\t// Adding a top-level menu at the end of the menu bar.\n\t\t\t\telse if ( relation === 'end' ) {\n\t\t\t\t\tconfig.items.push( itemToAdd.menu );\n\t\t\t\t\tsuccessFullyAddedItems.push( itemToAdd );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tconst topLevelMenuDefinitionIndex = config.items.findIndex( menuDefinition => menuDefinition.menuId === relativeId );\n\n\t\t\t\t// Adding a top-level menu somewhere between existing menu bar menus.\n\t\t\t\tif ( topLevelMenuDefinitionIndex != -1 ) {\n\t\t\t\t\tif ( relation === 'before' ) {\n\t\t\t\t\t\tconfig.items.splice( topLevelMenuDefinitionIndex, 0, itemToAdd.menu );\n\t\t\t\t\t\tsuccessFullyAddedItems.push( itemToAdd );\n\t\t\t\t\t} else if ( relation === 'after' ) {\n\t\t\t\t\t\tconfig.items.splice( topLevelMenuDefinitionIndex + 1, 0, itemToAdd.menu );\n\t\t\t\t\t\tsuccessFullyAddedItems.push( itemToAdd );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t// Adding a sub-menu to an existing items group.\n\t\t\t\telse {\n\t\t\t\t\tconst wasAdded = addMenuOrItemToGroup( config, itemToAdd.menu, relativeId, relation );\n\n\t\t\t\t\tif ( wasAdded ) {\n\t\t\t\t\t\tsuccessFullyAddedItems.push( itemToAdd );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t// Adding a group.\n\t\telse if ( isMenuBarMenuGroupAddition( itemToAdd ) ) {\n\t\t\twalkConfigMenus( config.items, menuDefinition => {\n\t\t\t\tif ( menuDefinition.menuId === relativeId ) {\n\t\t\t\t\t// Add a group at the start of a menu.\n\t\t\t\t\tif ( relation === 'start' ) {\n\t\t\t\t\t\tmenuDefinition.groups.unshift( itemToAdd.group );\n\t\t\t\t\t\tsuccessFullyAddedItems.push( itemToAdd );\n\t\t\t\t\t}\n\t\t\t\t\t// Add a group at the end of a menu.\n\t\t\t\t\telse if ( relation === 'end' ) {\n\t\t\t\t\t\tmenuDefinition.groups.push( itemToAdd.group );\n\t\t\t\t\t\tsuccessFullyAddedItems.push( itemToAdd );\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tconst relativeGroupIndex = menuDefinition.groups.findIndex( group => group.groupId === relativeId );\n\n\t\t\t\t\tif ( relativeGroupIndex !== -1 ) {\n\t\t\t\t\t\t// Add a group before an existing group in a menu.\n\t\t\t\t\t\tif ( relation === 'before' ) {\n\t\t\t\t\t\t\tmenuDefinition.groups.splice( relativeGroupIndex, 0, itemToAdd.group );\n\t\t\t\t\t\t\tsuccessFullyAddedItems.push( itemToAdd );\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Add a group after an existing group in a menu.\n\t\t\t\t\t\telse if ( relation === 'after' ) {\n\t\t\t\t\t\t\tmenuDefinition.groups.splice( relativeGroupIndex + 1, 0, itemToAdd.group );\n\t\t\t\t\t\t\tsuccessFullyAddedItems.push( itemToAdd );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\t\t// Adding an item to an existing items group.\n\t\telse {\n\t\t\tconst wasAdded = addMenuOrItemToGroup( config, itemToAdd.item, relativeId, relation );\n\n\t\t\tif ( wasAdded ) {\n\t\t\t\tsuccessFullyAddedItems.push( itemToAdd );\n\t\t\t}\n\t\t}\n\t}\n\n\tfor ( const addedItemConfig of itemsToBeAdded ) {\n\t\tif ( !successFullyAddedItems.includes( addedItemConfig ) ) {\n\t\t\t/**\n\t\t\t * There was a problem processing the configuration of the menu bar. The configured item could not be added\n\t\t\t * because the position it was supposed to be added to does not exist.\n\t\t\t *\n\t\t\t * This warning usually shows up when the {@link module:core/plugin~Plugin} which is supposed\n\t\t\t * to provide a menu bar item has not been loaded or there is a typo in the\n\t\t\t * {@link module:core/editor/editorconfig~EditorConfig#menuBar menu bar configuration}.\n\t\t\t *\n\t\t\t * @error menu-bar-item-could-not-be-removed\n\t\t\t * @param menuBarConfig The full configuration of the menu bar.\n\t\t\t * @param itemName The name of the item that was not removed from the menu bar.\n\t\t\t */\n\t\t\tlogWarning( 'menu-bar-item-could-not-be-added', {\n\t\t\t\tmenuBarConfig: originalConfig,\n\t\t\t\taddedItemConfig\n\t\t\t} );\n\t\t}\n\t}\n}\n\n/**\n * Handles adding a sub-menu or an item into a group. The logic is the same for both cases.\n */\nfunction addMenuOrItemToGroup(\n\tconfig: NormalizedMenuBarConfigObject,\n\titemOrMenuToAdd: string | MenuBarMenuDefinition,\n\trelativeId: string | null,\n\trelation: 'start' | 'end' | 'before' | 'after'\n): boolean {\n\tlet wasAdded = false;\n\n\twalkConfigMenus( config.items, menuDefinition => {\n\t\tfor ( const { groupId, items: groupItems } of menuDefinition.groups ) {\n\t\t\t// Avoid infinite loops.\n\t\t\tif ( wasAdded ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( groupId === relativeId ) {\n\t\t\t\t// Adding an item/menu at the beginning of a group.\n\t\t\t\tif ( relation === 'start' ) {\n\t\t\t\t\tgroupItems.unshift( itemOrMenuToAdd );\n\t\t\t\t\twasAdded = true;\n\t\t\t\t}\n\t\t\t\t// Adding an item/menu at the end of a group.\n\t\t\t\telse if ( relation === 'end' ) {\n\t\t\t\t\tgroupItems.push( itemOrMenuToAdd );\n\t\t\t\t\twasAdded = true;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Adding an item/menu relative to an existing item/menu.\n\t\t\t\tconst relativeItemIndex = groupItems.findIndex( groupItem => {\n\t\t\t\t\treturn getIdFromGroupItem( groupItem ) === relativeId;\n\t\t\t\t} );\n\n\t\t\t\tif ( relativeItemIndex !== -1 ) {\n\t\t\t\t\tif ( relation === 'before' ) {\n\t\t\t\t\t\tgroupItems.splice( relativeItemIndex, 0, itemOrMenuToAdd );\n\t\t\t\t\t\twasAdded = true;\n\t\t\t\t\t} else if ( relation === 'after' ) {\n\t\t\t\t\t\tgroupItems.splice( relativeItemIndex + 1, 0, itemOrMenuToAdd );\n\t\t\t\t\t\twasAdded = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t} );\n\n\treturn wasAdded;\n}\n\n/**\n * Removes components from the menu bar configuration that are not available in the factory and would\n * not be instantiated. Warns about missing components if the menu bar configuration was specified by the user.\n */\nfunction purgeUnavailableComponents(\n\toriginalConfig: DeepReadonly,\n\tconfig: NormalizedMenuBarConfigObject,\n\tcomponentFactory: ComponentFactory\n) {\n\twalkConfigMenus( config.items, menuDefinition => {\n\t\tfor ( const groupDefinition of menuDefinition.groups ) {\n\t\t\tgroupDefinition.items = groupDefinition.items.filter( item => {\n\t\t\t\tconst isItemUnavailable = typeof item === 'string' && !componentFactory.has( item );\n\n\t\t\t\t// The default configuration contains all possible editor features. But integrators' editors rarely load\n\t\t\t\t// every possible feature. This is why we do not want to log warnings about unavailable items for the default config\n\t\t\t\t// because they would show up in almost every integration. If the configuration has been provided by\n\t\t\t\t// the integrator, on the other hand, then these warnings bring value.\n\t\t\t\tif ( isItemUnavailable && !config.isUsingDefaultConfig ) {\n\t\t\t\t\t/**\n\t\t\t\t\t * There was a problem processing the configuration of the menu bar. The item with the given\n\t\t\t\t\t * name does not exist so it was omitted when rendering the menu bar.\n\t\t\t\t\t *\n\t\t\t\t\t * This warning usually shows up when the {@link module:core/plugin~Plugin} which is supposed\n\t\t\t\t\t * to provide a menu bar item has not been loaded or there is a typo in the\n\t\t\t\t\t * {@link module:core/editor/editorconfig~EditorConfig#menuBar menu bar configuration}.\n\t\t\t\t\t *\n\t\t\t\t\t * Make sure the plugin responsible for this menu bar item is loaded and the menu bar configuration\n\t\t\t\t\t * is correct, e.g. {@link module:basic-styles/bold/boldui~BoldUI} is loaded for the `'menuBar:bold'`\n\t\t\t\t\t * menu bar item.\n\t\t\t\t\t *\n\t\t\t\t\t * @error menu-bar-item-unavailable\n\t\t\t\t\t * @param menuBarConfig The full configuration of the menu bar.\n\t\t\t\t\t * @param parentMenuConfig The config of the menu the unavailable component was defined in.\n\t\t\t\t\t * @param componentName The name of the unavailable component.\n\t\t\t\t\t */\n\t\t\t\t\tlogWarning( 'menu-bar-item-unavailable', {\n\t\t\t\t\t\tmenuBarConfig: originalConfig,\n\t\t\t\t\t\tparentMenuConfig: cloneDeep( menuDefinition ),\n\t\t\t\t\t\tcomponentName: item\n\t\t\t\t\t} );\n\t\t\t\t}\n\n\t\t\t\treturn !isItemUnavailable;\n\t\t\t} );\n\t\t}\n\t} );\n}\n\n/**\n * Removes empty menus from the menu bar configuration to improve the visual UX. Such menus can occur\n * when some plugins responsible for providing menu bar items have not been loaded and some part of\n * the configuration populated menus using these components exclusively.\n */\nfunction purgeEmptyMenus(\n\toriginalConfig: NormalizedMenuBarConfigObject,\n\tconfig: NormalizedMenuBarConfigObject\n) {\n\tconst isUsingDefaultConfig = config.isUsingDefaultConfig;\n\tlet wasSubMenuPurged = false;\n\n\t// Purge top-level menus.\n\tconfig.items = config.items.filter( menuDefinition => {\n\t\tif ( !menuDefinition.groups.length ) {\n\t\t\twarnAboutEmptyMenu( originalConfig, menuDefinition, isUsingDefaultConfig );\n\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} );\n\n\t// Warn if there were no top-level menus left in the menu bar after purging.\n\tif ( !config.items.length ) {\n\t\twarnAboutEmptyMenu( originalConfig, originalConfig, isUsingDefaultConfig );\n\n\t\treturn;\n\t}\n\n\t// Purge sub-menus and groups.\n\twalkConfigMenus( config.items, menuDefinition => {\n\t\t// Get rid of empty groups.\n\t\tmenuDefinition.groups = menuDefinition.groups.filter( groupDefinition => {\n\t\t\tif ( !groupDefinition.items.length ) {\n\t\t\t\twasSubMenuPurged = true;\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\treturn true;\n\t\t} );\n\n\t\t// Get rid of empty sub-menus.\n\t\tfor ( const groupDefinition of menuDefinition.groups ) {\n\t\t\tgroupDefinition.items = groupDefinition.items.filter( item => {\n\t\t\t\t// If no groups were left after removing empty ones.\n\t\t\t\tif ( isMenuDefinition( item ) && !item.groups.length ) {\n\t\t\t\t\twarnAboutEmptyMenu( originalConfig, item, isUsingDefaultConfig );\n\t\t\t\t\twasSubMenuPurged = true;\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\treturn true;\n\t\t\t} );\n\t\t}\n\t} );\n\n\tif ( wasSubMenuPurged ) {\n\t\t// The config is walked from the root to the leaves so if anything gets removed, we need to re-run the\n\t\t// whole process because it could've affected parents.\n\t\tpurgeEmptyMenus( originalConfig, config );\n\t}\n}\n\nfunction warnAboutEmptyMenu(\n\toriginalConfig: NormalizedMenuBarConfigObject,\n\temptyMenuConfig: MenuBarMenuDefinition | DeepReadonly,\n\tisUsingDefaultConfig: boolean\n) {\n\tif ( isUsingDefaultConfig ) {\n\t\treturn;\n\t}\n\n\t/**\n\t * There was a problem processing the configuration of the menu bar. One of the menus\n\t * is empty so it was omitted when rendering the menu bar.\n\t *\n\t * This warning usually shows up when some {@link module:core/plugin~Plugin plugins} responsible for\n\t * providing menu bar items have not been loaded and the\n\t * {@link module:core/editor/editorconfig~EditorConfig#menuBar menu bar configuration} was not updated.\n\t *\n\t * Make sure all necessary editor plugins are loaded and/or update the menu bar configuration\n\t * to account for the missing menu items.\n\t *\n\t * @error menu-bar-menu-empty\n\t * @param menuBarConfig The full configuration of the menu bar.\n\t * @param emptyMenuConfig The definition of the menu that has no child items.\n\t */\n\tlogWarning( 'menu-bar-menu-empty', {\n\t\tmenuBarConfig: originalConfig,\n\t\temptyMenuConfig\n\t} );\n}\n\n/**\n * Localizes the user-config using pre-defined localized category labels.\n */\nfunction localizeMenuLabels( config: NormalizedMenuBarConfigObject, locale: Locale ) {\n\tconst t = locale.t;\n\tconst localizedCategoryLabels: Record = {\n\t\t// Top-level categories.\n\t\t'File': t( {\n\t\t\tstring: 'File',\n\t\t\tid: 'MENU_BAR_MENU_FILE'\n\t\t} ),\n\t\t'Edit': t( {\n\t\t\tstring: 'Edit',\n\t\t\tid: 'MENU_BAR_MENU_EDIT'\n\t\t} ),\n\t\t'View': t( {\n\t\t\tstring: 'View',\n\t\t\tid: 'MENU_BAR_MENU_VIEW'\n\t\t} ),\n\t\t'Insert': t( {\n\t\t\tstring: 'Insert',\n\t\t\tid: 'MENU_BAR_MENU_INSERT'\n\t\t} ),\n\t\t'Format': t( {\n\t\t\tstring: 'Format',\n\t\t\tid: 'MENU_BAR_MENU_FORMAT'\n\t\t} ),\n\t\t'Tools': t( {\n\t\t\tstring: 'Tools',\n\t\t\tid: 'MENU_BAR_MENU_TOOLS'\n\t\t} ),\n\t\t'Help': t( {\n\t\t\tstring: 'Help',\n\t\t\tid: 'MENU_BAR_MENU_HELP'\n\t\t} ),\n\n\t\t// Sub-menus.\n\t\t'Text': t( {\n\t\t\tstring: 'Text',\n\t\t\tid: 'MENU_BAR_MENU_TEXT'\n\t\t} ),\n\t\t'Font': t( {\n\t\t\tstring: 'Font',\n\t\t\tid: 'MENU_BAR_MENU_FONT'\n\t\t} )\n\t};\n\n\twalkConfigMenus( config.items, definition => {\n\t\tif ( definition.label in localizedCategoryLabels ) {\n\t\t\tdefinition.label = localizedCategoryLabels[ definition.label ];\n\t\t}\n\t} );\n}\n\n/**\n * Recursively visits all menu definitions in the config and calls the callback for each of them.\n */\nfunction walkConfigMenus(\n\tdefinition: NormalizedMenuBarConfigObject[ 'items' ] | MenuBarMenuDefinition,\n\tcallback: ( definition: MenuBarMenuDefinition ) => void\n) {\n\tif ( Array.isArray( definition ) ) {\n\t\tfor ( const topLevelMenuDefinition of definition ) {\n\t\t\twalk( topLevelMenuDefinition );\n\t\t}\n\t}\n\n\tfunction walk( menuDefinition: MenuBarMenuDefinition ) {\n\t\tcallback( menuDefinition );\n\n\t\tfor ( const groupDefinition of menuDefinition.groups ) {\n\t\t\tfor ( const groupItem of groupDefinition.items ) {\n\t\t\t\tif ( isMenuDefinition( groupItem ) ) {\n\t\t\t\t\twalk( groupItem );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunction isMenuBarMenuAddition( definition: any ): definition is MenuBarConfigAddedMenu {\n\treturn typeof definition === 'object' && 'menu' in definition;\n}\n\nfunction isMenuBarMenuGroupAddition( definition: any ): definition is MenuBarConfigAddedGroup {\n\treturn typeof definition === 'object' && 'group' in definition;\n}\n\nfunction getRelationFromPosition( position: MenuBarConfigAddedPosition ): 'start' | 'end' | 'before' | 'after' {\n\tif ( position.startsWith( 'start' ) ) {\n\t\treturn 'start';\n\t} else if ( position.startsWith( 'end' ) ) {\n\t\treturn 'end';\n\t} else if ( position.startsWith( 'after' ) ) {\n\t\treturn 'after';\n\t} else {\n\t\treturn 'before';\n\t}\n}\n\nfunction getRelativeIdFromPosition( position: MenuBarConfigAddedPosition ): string | null {\n\tconst match = position.match( /^[^:]+:(.+)/ );\n\n\tif ( match ) {\n\t\treturn match[ 1 ];\n\t}\n\n\treturn null;\n}\n\nfunction getIdFromGroupItem( item: string | MenuBarMenuDefinition ): string {\n\treturn typeof item === 'string' ? item : item.menuId;\n}\n\nfunction isMenuDefinition( definition: any ): definition is MenuBarMenuDefinition {\n\treturn typeof definition === 'object' && 'menuId' in definition;\n}\n\n/**\n * Initializes menu bar for given editor.\n *\n * @internal\n */\nexport function _initMenuBar( editor: Editor, menuBarView: MenuBarView ): void {\n\tconst menuBarViewElement = menuBarView.element!;\n\n\teditor.ui.focusTracker.add( menuBarViewElement );\n\teditor.keystrokes.listenTo( menuBarViewElement );\n\n\tconst normalizedMenuBarConfig = normalizeMenuBarConfig( editor.config.get( 'menuBar' ) || {} );\n\n\tmenuBarView.fillFromConfig( normalizedMenuBarConfig, editor.ui.componentFactory );\n\n\teditor.keystrokes.set( 'Esc', ( data, cancel ) => {\n\t\tif ( menuBarViewElement.contains( editor.ui.focusTracker.focusedElement ) ) {\n\t\t\teditor.editing.view.focus();\n\t\t\tcancel();\n\t\t}\n\t} );\n\n\teditor.keystrokes.set( 'Alt+F9', ( data, cancel ) => {\n\t\tif ( !menuBarViewElement.contains( editor.ui.focusTracker.focusedElement ) ) {\n\t\t\tmenuBarView!.focus();\n\t\t\tcancel();\n\t\t}\n\t} );\n}\n\n","import api from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./menubarmenupanel.css\";\n\nvar options = {\"injectType\":\"singletonStyleTag\",\"attributes\":{\"data-cke\":true}};\n\noptions.insert = \"head\";\noptions.singleton = true;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module ui/menubar/menubarmenupanelview\n */\n\nimport { type Locale } from '@ckeditor/ckeditor5-utils';\nimport type { FocusableView } from '../focuscycler.js';\nimport type ViewCollection from '../viewcollection.js';\nimport View from '../view.js';\n\nimport '../../theme/components/menubar/menubarmenupanel.css';\n\n/**\n * A view representing a {@link module:ui/menubar/menubarmenuview~MenuBarMenuView#panelView} of a menu.\n */\nexport default class MenuBarMenuPanelView extends View implements FocusableView {\n\t/**\n\t * Collection of the child views in this panel.\n\t */\n\tpublic readonly children: ViewCollection;\n\n\t/**\n\t * Controls whether the panel is visible.\n\t *\n\t * @observable\n\t */\n\tdeclare public isVisible: boolean;\n\n\t/**\n\t * The name of the position of the panel, relative to the parent.\n\t *\n\t * This property is reflected in the CSS class suffix set to {@link #element} that controls\n\t * the position of the panel.\n\t *\n\t * @observable\n\t * @default 'se'\n\t */\n\tdeclare public position: MenuBarMenuPanelPosition;\n\n\t/**\n\t * Creates an instance of the menu panel view.\n\t *\n\t * @param locale The localization services instance.\n\t */\n\tconstructor( locale?: Locale ) {\n\t\tsuper( locale );\n\n\t\tconst bind = this.bindTemplate;\n\n\t\tthis.set( 'isVisible', false );\n\t\tthis.set( 'position', 'se' );\n\n\t\tthis.children = this.createCollection();\n\n\t\tthis.setTemplate( {\n\t\t\ttag: 'div',\n\n\t\t\tattributes: {\n\t\t\t\tclass: [\n\t\t\t\t\t'ck',\n\t\t\t\t\t'ck-reset',\n\t\t\t\t\t'ck-menu-bar__menu__panel',\n\t\t\t\t\tbind.to( 'position', value => `ck-menu-bar__menu__panel_position_${ value }` ),\n\t\t\t\t\tbind.if( 'isVisible', 'ck-hidden', value => !value )\n\t\t\t\t],\n\t\t\t\ttabindex: '-1'\n\t\t\t},\n\n\t\t\tchildren: this.children,\n\n\t\t\ton: {\n\t\t\t\t// Drag and drop in the panel should not break the selection in the editor.\n\t\t\t\t// https://github.com/ckeditor/ckeditor5-ui/issues/228\n\t\t\t\tselectstart: bind.to( evt => {\n\t\t\t\t\tif ( ( evt.target as HTMLElement ).tagName.toLocaleLowerCase() === 'input' ) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tevt.preventDefault();\n\t\t\t\t} )\n\t\t\t}\n\t\t} );\n\t}\n\n\t/**\n\t * Focuses the first child of the panel (default) or the last one if the `direction` is `-1`.\n\t */\n\tpublic focus( direction: -1 | 1 = 1 ): void {\n\t\tif ( this.children.length ) {\n\t\t\tif ( direction === 1 ) {\n\t\t\t\tthis.children.first!.focus();\n\t\t\t} else {\n\t\t\t\tthis.children.last!.focus();\n\t\t\t}\n\t\t}\n\t}\n}\n\n/**\n * The names of the positions of the {@link module:ui/menubar/menubarmenupanelview~MenuBarMenuPanelView}.\n *\n * They are reflected as CSS class suffixes on the panel view element.\n */\nexport type MenuBarMenuPanelPosition = 'se' | 'sw' | 'ne' | 'nw' | 'w' | 'e';\n","import api from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./menubarmenu.css\";\n\nvar options = {\"injectType\":\"singletonStyleTag\",\"attributes\":{\"data-cke\":true}};\n\noptions.insert = \"head\";\noptions.singleton = true;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module ui/menubar/menubarmenuview\n */\n\nimport {\n\tFocusTracker,\n\tKeystrokeHandler,\n\tgetOptimalPosition,\n\ttype Locale,\n\ttype PositioningFunction,\n\ttype ObservableChangeEvent\n} from '@ckeditor/ckeditor5-utils';\nimport MenuBarMenuButtonView from './menubarmenubuttonview.js';\nimport { MenuBarMenuBehaviors, MenuBarMenuViewPanelPositioningFunctions } from './utils.js';\nimport type { FocusableView } from '../focuscycler.js';\nimport View from '../view.js';\nimport {\n\tdefault as MenuBarMenuPanelView,\n\ttype MenuBarMenuPanelPosition\n} from './menubarmenupanelview.js';\n\nimport '../../theme/components/menubar/menubarmenu.css';\n\n/**\n * A menu view for the {@link module:ui/menubar/menubarview~MenuBarView}. Menus are building blocks of the menu bar,\n * they host other sub-menus and menu items (buttons) that users can interact with.\n */\nexport default class MenuBarMenuView extends View implements FocusableView {\n\t/**\n\t * Button of the menu view.\n\t */\n\tpublic readonly buttonView: MenuBarMenuButtonView;\n\n\t/**\n\t * Panel of the menu. It hosts children of the menu.\n\t */\n\tpublic readonly panelView: MenuBarMenuPanelView;\n\n\t/**\n\t * Tracks information about the DOM focus in the menu.\n\t */\n\tpublic readonly focusTracker: FocusTracker;\n\n\t/**\n\t * Instance of the {@link module:utils/keystrokehandler~KeystrokeHandler}. It manages\n\t * keystrokes of the menu.\n\t */\n\tpublic readonly keystrokes: KeystrokeHandler;\n\n\t/**\n\t * Controls whether the menu is open, i.e. shows or hides the {@link #panelView panel}.\n\t *\n\t * @observable\n\t */\n\tdeclare public isOpen: boolean;\n\n\t/**\n\t * Controls whether the menu is enabled, i.e. its {@link #buttonView} can be clicked.\n\t *\n\t * @observable\n\t */\n\tdeclare public isEnabled: boolean;\n\n\t/**\n\t * (Optional) The additional CSS class set on the menu {@link #element}.\n\t *\n\t * @observable\n\t */\n\tdeclare public class: string | undefined;\n\n\t/**\n\t * The name of the position of the {@link #panelView}, relative to the menu.\n\t *\n\t * **Note**: The value is updated each time the panel gets {@link #isOpen open}.\n\t *\n\t * @observable\n\t * @default 'w'\n\t */\n\tdeclare public panelPosition: MenuBarMenuPanelPosition;\n\n\t/**\n\t * The parent menu view of the menu. It is `null` for top-level menus.\n\t *\n\t * See {@link module:ui/menubar/menubarview~MenuBarView#registerMenu}.\n\t */\n\tdeclare public parentMenuView: MenuBarMenuView | null;\n\n\t/**\n\t * Creates an instance of the menu view.\n\t *\n\t * @param locale The localization services instance.\n\t */\n\tconstructor( locale: Locale ) {\n\t\tsuper( locale );\n\n\t\tconst bind = this.bindTemplate;\n\n\t\tthis.buttonView = new MenuBarMenuButtonView( locale );\n\t\tthis.buttonView.delegate( 'mouseenter' ).to( this );\n\t\tthis.buttonView.bind( 'isOn', 'isEnabled' ).to( this, 'isOpen', 'isEnabled' );\n\n\t\tthis.panelView = new MenuBarMenuPanelView( locale );\n\t\tthis.panelView.bind( 'isVisible' ).to( this, 'isOpen' );\n\n\t\tthis.keystrokes = new KeystrokeHandler();\n\t\tthis.focusTracker = new FocusTracker();\n\n\t\tthis.set( 'isOpen', false );\n\t\tthis.set( 'isEnabled', true );\n\t\tthis.set( 'panelPosition', 'w' );\n\t\tthis.set( 'class', undefined );\n\t\tthis.set( 'parentMenuView', null );\n\n\t\tthis.setTemplate( {\n\t\t\ttag: 'div',\n\n\t\t\tattributes: {\n\t\t\t\tclass: [\n\t\t\t\t\t'ck',\n\t\t\t\t\t'ck-menu-bar__menu',\n\t\t\t\t\tbind.to( 'class' ),\n\t\t\t\t\tbind.if( 'isEnabled', 'ck-disabled', value => !value ),\n\t\t\t\t\tbind.if( 'parentMenuView', 'ck-menu-bar__menu_top-level', value => !value )\n\t\t\t\t]\n\t\t\t},\n\n\t\t\tchildren: [\n\t\t\t\tthis.buttonView,\n\t\t\t\tthis.panelView\n\t\t\t]\n\t\t} );\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic override render(): void {\n\t\tsuper.render();\n\n\t\tthis.focusTracker.add( this.buttonView.element! );\n\t\tthis.focusTracker.add( this.panelView.element! );\n\n\t\t// Listen for keystrokes coming from within #element.\n\t\tthis.keystrokes.listenTo( this.element! );\n\n\t\tMenuBarMenuBehaviors.closeOnEscKey( this );\n\n\t\tthis._repositionPanelOnOpen();\n\t}\n\n\t// For now, this method cannot be called in the render process because the `parentMenuView` may be assigned\n\t// after the rendering process.\n\t//\n\t// TODO: We should reconsider the way we handle this logic.\n\t/**\n\t * Attach all keyboard behaviors for the menu bar view.\n\t *\n\t * @internal\n\t */\n\tpublic _attachBehaviors(): void {\n\t\t// Top-level menus.\n\t\tif ( !this.parentMenuView ) {\n\t\t\tthis._propagateArrowKeystrokeEvents();\n\n\t\t\tMenuBarMenuBehaviors.openAndFocusPanelOnArrowDownKey( this );\n\t\t\tMenuBarMenuBehaviors.toggleOnButtonClick( this );\n\t\t} else {\n\t\t\tMenuBarMenuBehaviors.openOnButtonClick( this );\n\t\t\tMenuBarMenuBehaviors.openOnArrowRightKey( this );\n\t\t\tMenuBarMenuBehaviors.closeOnArrowLeftKey( this );\n\t\t\tMenuBarMenuBehaviors.closeOnParentClose( this );\n\t\t}\n\t}\n\n\t/**\n\t * Fires `arrowright` and `arrowleft` events when the user pressed corresponding arrow keys.\n\t */\n\tprivate _propagateArrowKeystrokeEvents(): void {\n\t\tthis.keystrokes.set( 'arrowright', ( data, cancel ) => {\n\t\t\tthis.fire( 'arrowright' );\n\t\t\tcancel();\n\t\t} );\n\n\t\tthis.keystrokes.set( 'arrowleft', ( data, cancel ) => {\n\t\t\tthis.fire( 'arrowleft' );\n\t\t\tcancel();\n\t\t} );\n\t}\n\n\t/**\n\t * Sets the position of the panel when the menu opens. The panel is positioned\n\t * so that it optimally uses the available space in the viewport.\n\t */\n\tprivate _repositionPanelOnOpen(): void {\n\t\t// Let the menu control the position of the panel. The position must be updated every time the menu is open.\n\t\tthis.on>( 'change:isOpen', ( evt, name, isOpen ) => {\n\t\t\tif ( !isOpen ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst optimalPanelPosition = MenuBarMenuView._getOptimalPosition( {\n\t\t\t\telement: this.panelView.element!,\n\t\t\t\ttarget: this.buttonView.element!,\n\t\t\t\tfitInViewport: true,\n\t\t\t\tpositions: this._panelPositions\n\t\t\t} );\n\n\t\t\tthis.panelView.position = (\n\t\t\t\toptimalPanelPosition ? optimalPanelPosition.name : this._panelPositions[ 0 ].name\n\t\t\t) as MenuBarMenuPanelPosition;\n\t\t} );\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic focus(): void {\n\t\tthis.buttonView.focus();\n\t}\n\n\t/**\n\t * Positioning functions for the {@link #panelView} . They change depending on the role of the menu (top-level vs sub-menu) in\n\t * the {@link module:ui/menubar/menubarview~MenuBarView menu bar} and the UI language direction.\n\t */\n\tpublic get _panelPositions(): Array {\n\t\tconst {\n\t\t\tsouthEast, southWest, northEast, northWest,\n\t\t\twestSouth, eastSouth, westNorth, eastNorth\n\t\t} = MenuBarMenuViewPanelPositioningFunctions;\n\n\t\tif ( this.locale!.uiLanguageDirection === 'ltr' ) {\n\t\t\tif ( this.parentMenuView ) {\n\t\t\t\treturn [ eastSouth, eastNorth, westSouth, westNorth ];\n\t\t\t} else {\n\t\t\t\treturn [ southEast, southWest, northEast, northWest ];\n\t\t\t}\n\t\t} else {\n\t\t\tif ( this.parentMenuView ) {\n\t\t\t\treturn [ westSouth, westNorth, eastSouth, eastNorth ];\n\t\t\t} else {\n\t\t\t\treturn [ southWest, southEast, northWest, northEast ];\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * A function used to calculate the optimal position for the dropdown panel.\n\t *\n\t * Referenced for unit testing purposes.\n\t */\n\tprivate static _getOptimalPosition = getOptimalPosition;\n}\n","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module ui/menubar/menubarmenulistview\n */\n\nimport type { Locale } from '@ckeditor/ckeditor5-utils';\nimport ListView from '../list/listview.js';\n\n/**\n * A list of menu bar items, a child of {@link module:ui/menubar/menubarmenuview~MenuBarMenuView#panelView}.\n *\n * Use this class to create a list of items (options, buttons) to be displayed in a menu bar.\n *\n * To populate this list, use {@link module:ui/menubar/menubarmenulistitemview~MenuBarMenuListItemView} instances.\n */\nexport default class MenuBarMenuListView extends ListView {\n\t/**\n\t * Creates an instance of the list view.\n\t *\n\t * @param locale The localization services instance.\n\t */\n\tconstructor( locale: Locale ) {\n\t\tsuper( locale );\n\n\t\tthis.role = 'menu';\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module ui/menubar/menubarmenulistitemfiledialogbuttonview\n */\n\nimport type { Locale } from '@ckeditor/ckeditor5-utils';\nimport FileDialogButtonView from '../button/filedialogbuttonview.js';\n\nimport '../../theme/components/menubar/menubarmenulistitembutton.css';\n\n/**\n * A menu bar list file dialog button view. Buttons like this one execute user actions.\n *\n * This component provides a button that opens the native file selection dialog.\n */\nexport default class MenuBarMenuListItemFileDialogButtonView extends FileDialogButtonView {\n\t/**\n\t * Creates an instance of the menu bar list button view.\n\t *\n\t * @param locale The localization services instance.\n\t */\n\tconstructor( locale: Locale ) {\n\t\tsuper( locale );\n\n\t\tthis.set( {\n\t\t\twithText: true,\n\t\t\twithKeystroke: true,\n\t\t\ttooltip: false,\n\t\t\trole: 'menuitem'\n\t\t} );\n\n\t\tthis.extendTemplate( {\n\t\t\tattributes: {\n\t\t\t\tclass: [ 'ck-menu-bar__menu__item__button' ]\n\t\t\t}\n\t\t} );\n\t}\n}\n","import api from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./menubar.css\";\n\nvar options = {\"injectType\":\"singletonStyleTag\",\"attributes\":{\"data-cke\":true}};\n\noptions.insert = \"head\";\noptions.singleton = true;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module ui/menubar/menubarview\n */\n\nimport {\n\tlogWarning,\n\ttype BaseEvent,\n\ttype Locale,\n\ttype ObservableChangeEvent\n} from '@ckeditor/ckeditor5-utils';\nimport { type FocusableView } from '../focuscycler.js';\nimport View from '../view.js';\nimport { isObject } from 'lodash-es';\nimport ListItemView from '../list/listitemview.js';\nimport ListSeparatorView from '../list/listseparatorview.js';\nimport type ViewCollection from '../viewcollection.js';\nimport type ComponentFactory from '../componentfactory.js';\n\nimport MenuBarMenuView from './menubarmenuview.js';\nimport MenuBarMenuListView from './menubarmenulistview.js';\nimport MenuBarMenuListItemView from './menubarmenulistitemview.js';\nimport MenuBarMenuListItemButtonView from './menubarmenulistitembuttonview.js';\nimport MenuBarMenuListItemFileDialogButtonView from './menubarmenulistitemfiledialogbuttonview.js';\nimport {\n\tMenuBarBehaviors,\n\tprocessMenuBarConfig\n} from './utils.js';\n\nconst EVENT_NAME_DELEGATES = [ 'mouseenter', 'arrowleft', 'arrowright', 'change:isOpen' ] as const;\n\nimport '../../theme/components/menubar/menubar.css';\n\n/**\n * The application menu bar component. It brings a set of top-level menus (and sub-menus) that can be used\n * to organize and access a large number of buttons.\n */\nexport default class MenuBarView extends View implements FocusableView {\n\t/**\n\t * Collection of the child views inside the {@link #element}.\n\t */\n\tpublic children: ViewCollection;\n\n\t/**\n\t * Indicates whether any of top-level menus are open in the menu bar. To close\n\t * the menu bar use the {@link #close} method.\n\t *\n\t * @observable\n\t */\n\tdeclare public isOpen: boolean;\n\n\t/**\n\t * A list of {@link module:ui/menubar/menubarmenuview~MenuBarMenuView} instances registered in the menu bar.\n\t *\n\t * @observable\n\t */\n\tpublic menus: Array = [];\n\n\t/**\n\t * Creates an instance of the menu bar view.\n\t *\n\t * @param locale The localization services instance.\n\t */\n\tconstructor( locale: Locale ) {\n\t\tsuper( locale );\n\n\t\tconst t = locale.t;\n\n\t\tthis.set( 'isOpen', false );\n\t\tthis._setupIsOpenUpdater();\n\n\t\tthis.children = this.createCollection();\n\n\t\t// @if CK_DEBUG_MENU_BAR // // Logs events in the main event bus of the component.\n\t\t// @if CK_DEBUG_MENU_BAR // this.on( 'menu', ( evt, data ) => {\n\t\t// @if CK_DEBUG_MENU_BAR // \tconsole.log( `MenuBarView:${ evt.name }`, evt.path.map( view => view.element ) );\n\t\t// @if CK_DEBUG_MENU_BAR // } );\n\n\t\tthis.setTemplate( {\n\t\t\ttag: 'div',\n\t\t\tattributes: {\n\t\t\t\tclass: [\n\t\t\t\t\t'ck',\n\t\t\t\t\t'ck-menu-bar'\n\t\t\t\t],\n\t\t\t\t'aria-label': t( 'Editor menu bar' ),\n\t\t\t\trole: 'menubar'\n\t\t\t},\n\t\t\tchildren: this.children\n\t\t} );\n\t}\n\n\t/**\n\t * A utility that expands a plain menu bar configuration into a structure of menus (also: sub-menus)\n\t * and items using a given {@link module:ui/componentfactory~ComponentFactory component factory}.\n\t *\n\t * See the {@link module:core/editor/editorconfig~EditorConfig#menuBar menu bar} in the editor\n\t * configuration reference to learn how to configure the menu bar.\n\t */\n\tpublic fillFromConfig( config: NormalizedMenuBarConfigObject, componentFactory: ComponentFactory ): void {\n\t\tconst locale = this.locale!;\n\t\tconst processedConfig = processMenuBarConfig( {\n\t\t\tnormalizedConfig: config,\n\t\t\tlocale,\n\t\t\tcomponentFactory\n\t\t} );\n\n\t\tconst topLevelCategoryMenuViews = processedConfig.items.map( menuDefinition => this._createMenu( {\n\t\t\tcomponentFactory,\n\t\t\tmenuDefinition\n\t\t} ) );\n\n\t\tthis.children.addMany( topLevelCategoryMenuViews );\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic override render(): void {\n\t\tsuper.render();\n\n\t\tMenuBarBehaviors.toggleMenusAndFocusItemsOnHover( this );\n\t\tMenuBarBehaviors.closeMenusWhenTheBarCloses( this );\n\t\tMenuBarBehaviors.closeMenuWhenAnotherOnTheSameLevelOpens( this );\n\t\tMenuBarBehaviors.focusCycleMenusOnArrows( this );\n\t\tMenuBarBehaviors.closeOnClickOutside( this );\n\t}\n\n\t/**\n\t * Focuses the menu bar.\n\t */\n\tpublic focus(): void {\n\t\tif ( this.children.first ) {\n\t\t\tthis.children.first.focus();\n\t\t}\n\t}\n\n\t/**\n\t * Closes all menus in the bar.\n\t */\n\tpublic close(): void {\n\t\tfor ( const topLevelCategoryMenuView of this.children ) {\n\t\t\ttopLevelCategoryMenuView.isOpen = false;\n\t\t}\n\t}\n\n\t/**\n\t * Registers a menu view in the menu bar. Every {@link module:ui/menubar/menubarmenuview~MenuBarMenuView} instance must be registered\n\t * in the menu bar to be properly managed.\n\t */\n\tpublic registerMenu( menuView: MenuBarMenuView, parentMenuView: MenuBarMenuView | null = null ): void {\n\t\tif ( parentMenuView ) {\n\t\t\tmenuView.delegate( ...EVENT_NAME_DELEGATES ).to( parentMenuView );\n\t\t\tmenuView.parentMenuView = parentMenuView;\n\t\t} else {\n\t\t\tmenuView.delegate( ...EVENT_NAME_DELEGATES ).to( this, name => 'menu:' + name );\n\t\t}\n\n\t\tmenuView._attachBehaviors();\n\n\t\tthis.menus.push( menuView );\n\t}\n\n\t/**\n\t * Creates a {@link module:ui/menubar/menubarmenuview~MenuBarMenuView} based on the given definition.\n\t */\n\tprivate _createMenu( { componentFactory, menuDefinition, parentMenuView }: {\n\t\tcomponentFactory: ComponentFactory;\n\t\tmenuDefinition: MenuBarMenuDefinition;\n\t\tparentMenuView?: MenuBarMenuView;\n\t} ) {\n\t\tconst locale = this.locale!;\n\t\tconst menuView = new MenuBarMenuView( locale );\n\n\t\tthis.registerMenu( menuView, parentMenuView );\n\n\t\tmenuView.buttonView.set( {\n\t\t\tlabel: menuDefinition.label\n\t\t} );\n\n\t\t// Defer the creation of the menu structure until it gets open. This is a performance optimization\n\t\t// that shortens the time needed to create the editor.\n\t\tmenuView.once>( 'change:isOpen', () => {\n\t\t\tconst listView = new MenuBarMenuListView( locale );\n\t\t\tlistView.ariaLabel = menuDefinition.label;\n\t\t\tmenuView.panelView.children.add( listView );\n\n\t\t\tlistView.items.addMany( this._createMenuItems( { menuDefinition, parentMenuView: menuView, componentFactory } ) );\n\t\t} );\n\n\t\treturn menuView;\n\t}\n\n\t/**\n\t * Creates a {@link module:ui/menubar/menubarmenuview~MenuBarMenuView} items based on the given definition.\n\t */\n\tprivate _createMenuItems( { menuDefinition, parentMenuView, componentFactory }: {\n\t\tmenuDefinition: MenuBarMenuDefinition;\n\t\tcomponentFactory: ComponentFactory;\n\t\tparentMenuView: MenuBarMenuView;\n\t} ): Array {\n\t\tconst locale = this.locale!;\n\t\tconst items = [];\n\n\t\tfor ( const menuGroupDefinition of menuDefinition.groups ) {\n\t\t\tfor ( const itemDefinition of menuGroupDefinition.items ) {\n\t\t\t\tconst menuItemView = new MenuBarMenuListItemView( locale, parentMenuView );\n\n\t\t\t\tif ( isObject( itemDefinition ) ) {\n\t\t\t\t\tmenuItemView.children.add( this._createMenu( {\n\t\t\t\t\t\tcomponentFactory,\n\t\t\t\t\t\tmenuDefinition: itemDefinition,\n\t\t\t\t\t\tparentMenuView\n\t\t\t\t\t} ) );\n\t\t\t\t} else {\n\t\t\t\t\tconst componentView = this._createMenuItemContentFromFactory( {\n\t\t\t\t\t\tcomponentName: itemDefinition,\n\t\t\t\t\t\tcomponentFactory,\n\t\t\t\t\t\tparentMenuView\n\t\t\t\t\t} );\n\n\t\t\t\t\tif ( !componentView ) {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\tmenuItemView.children.add( componentView );\n\t\t\t\t}\n\n\t\t\t\titems.push( menuItemView );\n\t\t\t}\n\n\t\t\t// Separate groups with a separator.\n\t\t\tif ( menuGroupDefinition !== menuDefinition.groups[ menuDefinition.groups.length - 1 ] ) {\n\t\t\t\titems.push( new ListSeparatorView( locale ) );\n\t\t\t}\n\t\t}\n\n\t\treturn items;\n\t}\n\n\t/**\n\t * Uses the component factory to create a content of the menu item (a button or a sub-menu).\n\t */\n\tprivate _createMenuItemContentFromFactory( { componentName, parentMenuView, componentFactory }: {\n\t\tcomponentName: string;\n\t\tcomponentFactory: ComponentFactory;\n\t\tparentMenuView: MenuBarMenuView;\n\t} ): MenuBarMenuView | MenuBarMenuListItemButtonView | null {\n\t\tconst componentView = componentFactory.create( componentName );\n\n\t\tif ( !(\n\t\t\tcomponentView instanceof MenuBarMenuView ||\n\t\t\tcomponentView instanceof MenuBarMenuListItemButtonView ||\n\t\t\tcomponentView instanceof MenuBarMenuListItemFileDialogButtonView\n\t\t) ) {\n\t\t\t/**\n\t\t\t * Adding unsupported components to the {@link module:ui/menubar/menubarview~MenuBarView} is not possible.\n\t\t\t *\n\t\t\t * A component should be either a {@link module:ui/menubar/menubarmenuview~MenuBarMenuView} (sub-menu) or a\n\t\t\t * {@link module:ui/menubar/menubarmenulistitembuttonview~MenuBarMenuListItemButtonView} (button).\n\t\t\t *\n\t\t\t * @error menu-bar-component-unsupported\n\t\t\t * @param componentName A name of the unsupported component used in the configuration.\n\t\t\t * @param componentView An unsupported component view.\n\t\t\t */\n\t\t\tlogWarning( 'menu-bar-component-unsupported', {\n\t\t\t\tcomponentName,\n\t\t\t\tcomponentView\n\t\t\t} );\n\n\t\t\treturn null;\n\t\t}\n\n\t\tthis._registerMenuTree( componentView, parentMenuView );\n\n\t\t// Close the whole menu bar when a component is executed.\n\t\tcomponentView.on( 'execute', () => {\n\t\t\tthis.close();\n\t\t} );\n\n\t\treturn componentView;\n\t}\n\n\t/**\n\t * Checks component and its children recursively and calls {@link #registerMenu}\n\t * for each item that is {@link module:ui/menubar/menubarmenuview~MenuBarMenuView}.\n\t *\n\t * @internal\n\t */\n\tprivate _registerMenuTree( componentView: MenuBarMenuView | MenuBarMenuListItemButtonView, parentMenuView: MenuBarMenuView ) {\n\t\tif ( !( componentView instanceof MenuBarMenuView ) ) {\n\t\t\tcomponentView.delegate( 'mouseenter' ).to( parentMenuView );\n\n\t\t\treturn;\n\t\t}\n\n\t\tthis.registerMenu( componentView, parentMenuView );\n\n\t\tconst menuBarItemsList = componentView.panelView.children\n\t\t\t.filter( child => child instanceof MenuBarMenuListView )[ 0 ] as MenuBarMenuListView | undefined;\n\n\t\tif ( !menuBarItemsList ) {\n\t\t\tcomponentView.delegate( 'mouseenter' ).to( parentMenuView );\n\n\t\t\treturn;\n\t\t}\n\n\t\tconst nonSeparatorItems = menuBarItemsList.items.filter( item => item instanceof ListItemView ) as Array;\n\n\t\tfor ( const item of nonSeparatorItems ) {\n\t\t\tthis._registerMenuTree(\n\t\t\t\titem.children.get( 0 ) as MenuBarMenuView | MenuBarMenuListItemButtonView,\n\t\t\t\tcomponentView\n\t\t\t);\n\t\t}\n\t}\n\n\t/**\n\t * Manages the state of the {@link #isOpen} property of the menu bar. Because the state is a sum of individual\n\t * top-level menus' states, it's necessary to listen to their changes and update the state accordingly.\n\t *\n\t * Additionally, it prevents from unnecessary changes of `isOpen` when one top-level menu opens and another closes\n\t * (regardless of in which order), maintaining a stable `isOpen === true` in that situation.\n\t */\n\tprivate _setupIsOpenUpdater() {\n\t\tlet closeTimeout: ReturnType;\n\n\t\t// TODO: This is not the prettiest approach but at least it's simple.\n\t\tthis.on( 'menu:change:isOpen', ( evt, name, isOpen ) => {\n\t\t\tclearTimeout( closeTimeout );\n\n\t\t\tif ( isOpen ) {\n\t\t\t\tthis.isOpen = true;\n\t\t\t} else {\n\t\t\t\tcloseTimeout = setTimeout( () => {\n\t\t\t\t\tthis.isOpen = Array.from( this.children ).some( menuView => menuView.isOpen );\n\t\t\t\t}, 0 );\n\t\t\t}\n\t\t} );\n\t}\n}\n\nexport type MenuBarConfig = MenuBarConfigObject;\n\nexport type MenuBarConfigObject = {\n\titems?: Array;\n\tremoveItems?: Array;\n\taddItems?: Array;\n\tisVisible?: boolean;\n};\n\nexport type NormalizedMenuBarConfigObject = Required & {\n\tisUsingDefaultConfig: boolean;\n};\n\nexport type MenuBarMenuGroupDefinition = {\n\tgroupId: string;\n\titems: Array;\n};\n\nexport type MenuBarMenuDefinition = {\n\tmenuId: string;\n\tlabel: string;\n\tgroups: Array;\n};\n\nexport type MenuBarConfigAddedPosition =\n\t`start:${ string }` | `end:${ string }` | 'start' | 'end' | `after:${ string }` | `before:${ string }`;\n\nexport type MenuBarConfigAddedItem = {\n\titem: string;\n\tposition: MenuBarConfigAddedPosition;\n};\n\nexport type MenuBarConfigAddedGroup = {\n\tgroup: MenuBarMenuGroupDefinition;\n\tposition: MenuBarConfigAddedPosition;\n};\n\nexport type MenuBarConfigAddedMenu = {\n\tmenu: MenuBarMenuDefinition;\n\tposition: MenuBarConfigAddedPosition;\n};\n\n/**\n * Any namespaced event fired by menu a {@link module:ui/menubar/menubarview~MenuBarView#menus menu view instance} of the\n * {@link module:ui/menubar/menubarview~MenuBarView menu bar}.\n */\ninterface MenuBarMenuEvent extends BaseEvent {\n\tname: `menu:${ string }` | `menu:change:${ string }`;\n}\n\n/**\n * A `mouseenter` event originating from a {@link module:ui/menubar/menubarview~MenuBarView#menus menu view instance} of the\n * {@link module:ui/menubar/menubarview~MenuBarView menu bar}.\n */\nexport interface MenuBarMenuMouseEnterEvent extends MenuBarMenuEvent {\n\tname: 'menu:mouseenter';\n}\n\n/**\n * An `arrowleft` event originating from a {@link module:ui/menubar/menubarview~MenuBarView#menus menu view instance} of the\n * {@link module:ui/menubar/menubarview~MenuBarView menu bar}.\n */\nexport interface MenuBarMenuArrowLeftEvent extends MenuBarMenuEvent {\n\tname: 'menu:arrowleft';\n}\n\n/**\n * An `arrowright` event originating from a {@link module:ui/menubar/menubarview~MenuBarView#menus menu view instance} of the\n * {@link module:ui/menubar/menubarview~MenuBarView menu bar}.\n */\nexport interface MenuBarMenuArrowRightEvent extends MenuBarMenuEvent {\n\tname: 'menu:arrowright';\n}\n\n/**\n * A `change:isOpen` event originating from a {@link module:ui/menubar/menubarview~MenuBarView#menus menu view instance} of the\n * {@link module:ui/menubar/menubarview~MenuBarView menu bar}.\n */\nexport interface MenuBarMenuChangeIsOpenEvent extends MenuBarMenuEvent {\n\tname: 'menu:change:isOpen';\n\targs: [ name: string, value: boolean, oldValue: boolean ];\n}\n","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module editor-classic/classiceditorui\n */\n\nimport type { Editor, ElementApi } from 'ckeditor5/src/core.js';\nimport {\n\tEditorUI,\n\tDialogView,\n\tnormalizeToolbarConfig,\n\t_initMenuBar,\n\ttype DialogViewMoveToEvent,\n\ttype Dialog,\n\ttype EditorUIReadyEvent,\n\ttype EditorUIView,\n\ttype MenuBarView\n} from 'ckeditor5/src/ui.js';\nimport {\n\tenablePlaceholder,\n\ttype ViewScrollToTheSelectionEvent\n} from 'ckeditor5/src/engine.js';\nimport { ElementReplacer, Rect, type EventInfo } from 'ckeditor5/src/utils.js';\nimport type ClassicEditorUIView from './classiceditoruiview.js';\n\n/**\n * The classic editor UI class.\n */\nexport default class ClassicEditorUI extends EditorUI {\n\t/**\n\t * The main (top–most) view of the editor UI.\n\t */\n\tpublic readonly view: ClassicEditorUIView;\n\n\t/**\n\t * A normalized `config.toolbar` object.\n\t */\n\tprivate readonly _toolbarConfig: ReturnType;\n\n\t/**\n\t * The element replacer instance used to hide the editor's source element.\n\t */\n\tprivate readonly _elementReplacer: ElementReplacer;\n\n\t/**\n\t * Creates an instance of the classic editor UI class.\n\t *\n\t * @param editor The editor instance.\n\t * @param view The view of the UI.\n\t */\n\tconstructor( editor: Editor, view: ClassicEditorUIView ) {\n\t\tsuper( editor );\n\n\t\tthis.view = view;\n\t\tthis._toolbarConfig = normalizeToolbarConfig( editor.config.get( 'toolbar' ) );\n\n\t\tthis._elementReplacer = new ElementReplacer();\n\n\t\tthis.listenTo(\n\t\t\teditor.editing.view, 'scrollToTheSelection', this._handleScrollToTheSelectionWithStickyPanel.bind( this ) );\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic override get element(): HTMLElement | null {\n\t\treturn this.view.element;\n\t}\n\n\t/**\n\t * Initializes the UI.\n\t *\n\t * @param replacementElement The DOM element that will be the source for the created editor.\n\t */\n\tpublic init( replacementElement: HTMLElement | null ): void {\n\t\tconst editor = this.editor;\n\t\tconst view = this.view;\n\t\tconst editingView = editor.editing.view;\n\t\tconst editable = view.editable;\n\t\tconst editingRoot = editingView.document.getRoot()!;\n\n\t\t// The editable UI and editing root should share the same name. Then name is used\n\t\t// to recognize the particular editable, for instance in ARIA attributes.\n\t\teditable.name = editingRoot.rootName;\n\n\t\tview.render();\n\n\t\t// The editable UI element in DOM is available for sure only after the editor UI view has been rendered.\n\t\t// But it can be available earlier if a DOM element has been passed to BalloonEditor.create().\n\t\tconst editableElement = editable.element!;\n\n\t\t// Register the editable UI view in the editor. A single editor instance can aggregate multiple\n\t\t// editable areas (roots) but the classic editor has only one.\n\t\tthis.setEditableElement( editable.name, editableElement );\n\n\t\t// Let the editable UI element respond to the changes in the global editor focus\n\t\t// tracker. It has been added to the same tracker a few lines above but, in reality, there are\n\t\t// many focusable areas in the editor, like balloons, toolbars or dropdowns and as long\n\t\t// as they have focus, the editable should act like it is focused too (although technically\n\t\t// it isn't), e.g. by setting the proper CSS class, visually announcing focus to the user.\n\t\t// Doing otherwise will result in editable focus styles disappearing, once e.g. the\n\t\t// toolbar gets focused.\n\t\tview.editable.bind( 'isFocused' ).to( this.focusTracker );\n\n\t\t// Bind the editable UI element to the editing view, making it an end– and entry–point\n\t\t// of the editor's engine. This is where the engine meets the UI.\n\t\teditingView.attachDomRoot( editableElement );\n\n\t\t// If an element containing the initial data of the editor was provided, replace it with\n\t\t// an editor instance's UI in DOM until the editor is destroyed. For instance, a