@ckeditor/ckeditor5-page-break 48.2.0 → 48.3.0-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,15 +1,15 @@
1
1
  /**
2
- * @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
3
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
4
- */
5
- import type { PageBreak, PageBreakEditing, PageBreakUI, PageBreakCommand } from './index.js';
6
- declare module '@ckeditor/ckeditor5-core' {
7
- interface PluginsMap {
8
- [PageBreak.pluginName]: PageBreak;
9
- [PageBreakEditing.pluginName]: PageBreakEditing;
10
- [PageBreakUI.pluginName]: PageBreakUI;
11
- }
12
- interface CommandsMap {
13
- pageBreak: PageBreakCommand;
14
- }
2
+ * @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
3
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
4
+ */
5
+ import type { PageBreak, PageBreakEditing, PageBreakUI, PageBreakCommand } from "./index.js";
6
+ declare module "@ckeditor/ckeditor5-core" {
7
+ interface PluginsMap {
8
+ [PageBreak.pluginName]: PageBreak;
9
+ [PageBreakEditing.pluginName]: PageBreakEditing;
10
+ [PageBreakUI.pluginName]: PageBreakUI;
11
+ }
12
+ interface CommandsMap {
13
+ pageBreak: PageBreakCommand;
14
+ }
15
15
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../theme/pagebreak.css","index.css"],"names":[],"mappings":";;;;AAKA,CAAA,EAAA,CAAA,OAAA,CAAA,CAAA,IAAA,CAAA,KAAA,CAAA;ACJA,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI;AACb,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM;AACzB,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM;AACrB,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC;AAChB,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI;AACf,CAAC,CAAC,QAAQ,CAAC,CAAC,QAAQ;AACpB;;ADMC,CAAA,EAAA,CAAA,OAAA,CAAA,CAAA,IAAA,CAAA,KAAA,CAAA,KAAA,CAAA;ACHD,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AACb,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,MAAM;AACnC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC;AACb,CAAC,CAAC,QAAQ,CAAC,CAAC,QAAQ;AACpB;;ADOA,CAAA,EAAA,CAAA,OAAA,CAAA,CAAA,IAAA,CAAA,YAAA,CAAA;ACJA,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AACZ,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS;AAC3B,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG;AACb,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI;AAC3B,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI;AACnB,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG;AAClB,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,MAAM;AAC3B,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG;AACpB,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG;AACpB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI;AAClB,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI;AACnB,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK;AAChB,CAAC,CAAC,QAAQ,CAAC,CAAC,QAAQ;AACpB,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ;AACnC;;ADUA,CAAA,KAAA,CAAA,KAAA,CAAA;ACPA,CAAC,CDQA,CAAA,EAAA,CAAA,OAAA,CAAA,CAAA,IAAA,CAAA,KAAA,CAAA;ACPD,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;AACd,CAAC,CAAC;;AAEF,CAAC,CDOC,CAAA,EAAA,CAAA,OAAA,CAAA,CAAA,IAAA,CAAA,KAAA,CAAA,KAAA,CAAA;ACNF,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI;AACjB,CAAC,CAAC;;AAEF,CAAC,CDcA,CAAA,EAAA,CAAA,OAAA,CAAA,CAAA,GAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,KAAA,CAAA,CAAA;ACbD,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;AACpB,CAAC,CAAC;AACF;;AAEA,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC","file":"index.css.map","sourcesContent":["/*\n * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n.ck-content .page-break {\n\tposition: relative;\n\tclear: both;\n\tpadding: 5px 0;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\n\t&::after {\n\t\tcontent: '';\n\t\tposition: absolute;\n\t\tborder-bottom: 2px dashed hsl(0, 0%, 77%);\n\t\twidth: 100%;\n\t}\n}\n\n.ck-content .page-break__label {\n\tposition: relative;\n\tz-index: 1;\n\tpadding: .3em .6em;\n\tdisplay: block;\n\ttext-transform: uppercase;\n\tborder: 1px solid hsl(0, 0%, 77%);\n\tborder-radius: 2px;\n\tfont-size: 0.75em;\n\tfont-weight: bold;\n\tcolor: hsl(0, 0%, 20%);\n\tbackground: hsl(0, 0%, 100%);\n\tbox-shadow: 2px 2px 1px hsla(0, 0%, 0%, 0.15);\n\n\t/* Disable the possibility to select the label text by the user. */\n\t-webkit-user-select: none;\n\tuser-select: none;\n}\n\n/* Do not show the page break element inside the print preview window. */\n@media print {\n\t.ck-content .page-break {\n\t\tpadding: 0;\n\n\t\t&::after {\n\t\t\tdisplay: none;\n\t\t}\n\t}\n\n\t/*\n\t * From time to time placing page-break directly after a block element with margin causes appending a new blank page in pagination mode.\n\t * Removing margin-bottom from the block element fixes that issue and the margin is not being moved to the next blank page.\n\t *\n\t * Keep this in sync with the pagination plugins.\n\t */\n\t.ck-content *:has(+ .page-break) {\n\t\tmargin-bottom: 0;\n\t}\n}\n",".ck-content .page-break {\n clear: both;\n justify-content: center;\n align-items: center;\n padding: 5px 0;\n display: flex;\n position: relative;\n}\n\n.ck-content .page-break:after {\n content: \"\";\n border-bottom: 2px dashed #c4c4c4;\n width: 100%;\n position: absolute;\n}\n\n.ck-content .page-break__label {\n z-index: 1;\n text-transform: uppercase;\n color: #333;\n -webkit-user-select: none;\n user-select: none;\n background: #fff;\n border: 1px solid #c4c4c4;\n border-radius: 2px;\n padding: .3em .6em;\n font-size: .75em;\n font-weight: bold;\n display: block;\n position: relative;\n box-shadow: 2px 2px 1px #00000026;\n}\n\n@media print {\n .ck-content .page-break {\n padding: 0;\n }\n\n .ck-content .page-break:after {\n display: none;\n }\n\n .ck-content :has( + .page-break) {\n margin-bottom: 0;\n }\n}\n\n/*# sourceMappingURL=index.css.map */"]}
1
+ {"version":3,"sources":["../theme/pagebreak.css","index.css"],"names":[],"mappings":";;;;AAKA,CAAA,EAAA,CAAA,OAAA,CAAA,CAAA,IAAA,CAAA,KAAA,CAAA;ACJA,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI;AACb,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM;AACzB,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM;AACrB,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC;AAChB,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI;AACf,CAAC,CAAC,QAAQ,CAAC,CAAC,QAAQ;AACpB;;ADMC,CAAA,EAAA,CAAA,OAAA,CAAA,CAAA,IAAA,CAAA,KAAA,CAAA,KAAA,CAAA;ACHD,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AACb,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,MAAM;AACnC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC;AACb,CAAC,CAAC,QAAQ,CAAC,CAAC,QAAQ;AACpB;;ADOA,CAAA,EAAA,CAAA,OAAA,CAAA,CAAA,IAAA,CAAA,YAAA,CAAA;ACJA,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AACZ,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS;AAC3B,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG;AACb,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI;AAC3B,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI;AACnB,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG;AAClB,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,MAAM;AAC3B,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG;AACpB,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG;AACpB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI;AAClB,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI;AACnB,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK;AAChB,CAAC,CAAC,QAAQ,CAAC,CAAC,QAAQ;AACpB,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ;AACnC;;ADUA,CAAA,KAAA,CAAA,KAAA,CAAA;ACPA,CAAC,CDQA,CAAA,EAAA,CAAA,OAAA,CAAA,CAAA,IAAA,CAAA,KAAA,CAAA;ACPD,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;AACd,CAAC,CAAC;;AAEF,CAAC,CDOC,CAAA,EAAA,CAAA,OAAA,CAAA,CAAA,IAAA,CAAA,KAAA,CAAA,KAAA,CAAA;ACNF,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI;AACjB,CAAC,CAAC;;AAEF,CAAC,CDcA,CAAA,EAAA,CAAA,OAAA,CAAA,CAAA,GAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,KAAA,CAAA,CAAA;ACbD,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;AACpB,CAAC,CAAC;AACF;;AAEA,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC","file":"index.css.map","sourcesContent":["/*\n * @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n.ck-content .page-break {\n\tposition: relative;\n\tclear: both;\n\tpadding: 5px 0;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\n\t&::after {\n\t\tcontent: '';\n\t\tposition: absolute;\n\t\tborder-bottom: 2px dashed hsl(0, 0%, 77%);\n\t\twidth: 100%;\n\t}\n}\n\n.ck-content .page-break__label {\n\tposition: relative;\n\tz-index: 1;\n\tpadding: .3em .6em;\n\tdisplay: block;\n\ttext-transform: uppercase;\n\tborder: 1px solid hsl(0, 0%, 77%);\n\tborder-radius: 2px;\n\tfont-size: 0.75em;\n\tfont-weight: bold;\n\tcolor: hsl(0, 0%, 20%);\n\tbackground: hsl(0, 0%, 100%);\n\tbox-shadow: 2px 2px 1px hsla(0, 0%, 0%, 0.15);\n\n\t/* Disable the possibility to select the label text by the user. */\n\t-webkit-user-select: none;\n\tuser-select: none;\n}\n\n/* Do not show the page break element inside the print preview window. */\n@media print {\n\t.ck-content .page-break {\n\t\tpadding: 0;\n\n\t\t&::after {\n\t\t\tdisplay: none;\n\t\t}\n\t}\n\n\t/*\n\t * From time to time placing page-break directly after a block element with margin causes appending a new blank page in pagination mode.\n\t * Removing margin-bottom from the block element fixes that issue and the margin is not being moved to the next blank page.\n\t *\n\t * Keep this in sync with the pagination plugins.\n\t */\n\t.ck-content *:has(+ .page-break) {\n\t\tmargin-bottom: 0;\n\t}\n}\n",".ck-content .page-break {\n clear: both;\n justify-content: center;\n align-items: center;\n padding: 5px 0;\n display: flex;\n position: relative;\n}\n\n.ck-content .page-break:after {\n content: \"\";\n border-bottom: 2px dashed #c4c4c4;\n width: 100%;\n position: absolute;\n}\n\n.ck-content .page-break__label {\n z-index: 1;\n text-transform: uppercase;\n color: #333;\n -webkit-user-select: none;\n user-select: none;\n background: #fff;\n border: 1px solid #c4c4c4;\n border-radius: 2px;\n padding: .3em .6em;\n font-size: .75em;\n font-weight: bold;\n display: block;\n position: relative;\n box-shadow: 2px 2px 1px #00000026;\n}\n\n@media print {\n .ck-content .page-break {\n padding: 0;\n }\n\n .ck-content .page-break:after {\n display: none;\n }\n\n .ck-content :has( + .page-break) {\n margin-bottom: 0;\n }\n}\n\n/*# sourceMappingURL=index.css.map */"]}
package/dist/index.d.ts CHANGED
@@ -1,12 +1,12 @@
1
1
  /**
2
- * @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
3
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
4
- */
2
+ * @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
3
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
4
+ */
5
5
  /**
6
- * @module page-break
7
- */
8
- export { PageBreak } from './pagebreak.js';
9
- export { PageBreakEditing } from './pagebreakediting.js';
10
- export { PageBreakUI } from './pagebreakui.js';
11
- export { PageBreakCommand } from './pagebreakcommand.js';
12
- import './augmentation.js';
6
+ * @module page-break
7
+ */
8
+ export { PageBreak } from "./pagebreak.js";
9
+ export { PageBreakEditing } from "./pagebreakediting.js";
10
+ export { PageBreakUI } from "./pagebreakui.js";
11
+ export { PageBreakCommand } from "./pagebreakcommand.js";
12
+ import "./augmentation.js";
package/dist/index.js CHANGED
@@ -2,255 +2,265 @@
2
2
  * @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
3
3
  * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
4
4
  */
5
- import { Command, Plugin } from '@ckeditor/ckeditor5-core/dist/index.js';
6
- import { findOptimalInsertionRange, toWidget, Widget } from '@ckeditor/ckeditor5-widget/dist/index.js';
7
- import { IconPageBreak } from '@ckeditor/ckeditor5-icons/dist/index.js';
8
- import { ButtonView, MenuBarMenuListItemButtonView } from '@ckeditor/ckeditor5-ui/dist/index.js';
5
+ import { Command, Plugin } from "@ckeditor/ckeditor5-core";
6
+ import { Widget, findOptimalInsertionRange, toWidget } from "@ckeditor/ckeditor5-widget";
7
+ import { IconPageBreak } from "@ckeditor/ckeditor5-icons";
8
+ import { ButtonView, MenuBarMenuListItemButtonView } from "@ckeditor/ckeditor5-ui";
9
9
 
10
10
  /**
11
- * The page break command.
12
- *
13
- * The command is registered by {@link module:page-break/pagebreakediting~PageBreakEditing} as `'pageBreak'`.
14
- *
15
- * To insert a page break at the current selection, execute the command:
16
- *
17
- * editor.execute( 'pageBreak' );
18
- */ class PageBreakCommand extends Command {
19
- /**
20
- * @inheritDoc
21
- */ refresh() {
22
- const model = this.editor.model;
23
- const schema = model.schema;
24
- const selection = model.document.selection;
25
- this.isEnabled = isPageBreakAllowedInParent(selection, schema, model);
26
- }
27
- /**
28
- * Executes the command.
29
- *
30
- * @fires execute
31
- */ execute() {
32
- const model = this.editor.model;
33
- model.change((writer)=>{
34
- const pageBreakElement = writer.createElement('pageBreak');
35
- model.insertObject(pageBreakElement, null, null, {
36
- setSelection: 'after'
37
- });
38
- });
39
- }
40
- }
11
+ * @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
12
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
13
+ */
14
+ /**
15
+ * @module page-break/pagebreakcommand
16
+ */
41
17
  /**
42
- * Checks if a page break is allowed by the schema in the optimal insertion parent.
43
- */ function isPageBreakAllowedInParent(selection, schema, model) {
44
- const parent = getInsertPageBreakParent(selection, model);
45
- return schema.checkChild(parent, 'pageBreak');
18
+ * The page break command.
19
+ *
20
+ * The command is registered by {@link module:page-break/pagebreakediting~PageBreakEditing} as `'pageBreak'`.
21
+ *
22
+ * To insert a page break at the current selection, execute the command:
23
+ *
24
+ * editor.execute( 'pageBreak' );
25
+ */
26
+ var PageBreakCommand = class extends Command {
27
+ /**
28
+ * @inheritDoc
29
+ */
30
+ refresh() {
31
+ const model = this.editor.model;
32
+ const schema = model.schema;
33
+ const selection = model.document.selection;
34
+ this.isEnabled = isPageBreakAllowedInParent(selection, schema, model);
35
+ }
36
+ /**
37
+ * Executes the command.
38
+ *
39
+ * @fires execute
40
+ */
41
+ execute() {
42
+ const model = this.editor.model;
43
+ model.change((writer) => {
44
+ const pageBreakElement = writer.createElement("pageBreak");
45
+ model.insertObject(pageBreakElement, null, null, { setSelection: "after" });
46
+ });
47
+ }
48
+ };
49
+ /**
50
+ * Checks if a page break is allowed by the schema in the optimal insertion parent.
51
+ */
52
+ function isPageBreakAllowedInParent(selection, schema, model) {
53
+ const parent = getInsertPageBreakParent(selection, model);
54
+ return schema.checkChild(parent, "pageBreak");
46
55
  }
47
56
  /**
48
- * Returns a node that will be used to insert a page break with `model.insertContent` to check if the page break can be placed there.
49
- */ function getInsertPageBreakParent(selection, model) {
50
- const insertionRange = findOptimalInsertionRange(selection, model);
51
- const parent = insertionRange.start.parent;
52
- if (parent.isEmpty && !parent.is('rootElement')) {
53
- return parent.parent;
54
- }
55
- return parent;
57
+ * Returns a node that will be used to insert a page break with `model.insertContent` to check if the page break can be placed there.
58
+ */
59
+ function getInsertPageBreakParent(selection, model) {
60
+ const parent = findOptimalInsertionRange(selection, model).start.parent;
61
+ if (parent.isEmpty && !parent.is("rootElement")) return parent.parent;
62
+ return parent;
56
63
  }
57
64
 
58
65
  /**
59
- * The page break editing feature.
60
- */ class PageBreakEditing extends Plugin {
61
- /**
62
- * @inheritDoc
63
- */ static get pluginName() {
64
- return 'PageBreakEditing';
65
- }
66
- /**
67
- * @inheritDoc
68
- * @internal
69
- */ static get licenseFeatureCode() {
70
- return 'PB';
71
- }
72
- /**
73
- * @inheritDoc
74
- */ static get isOfficialPlugin() {
75
- return true;
76
- }
77
- /**
78
- * @inheritDoc
79
- */ static get isPremiumPlugin() {
80
- return true;
81
- }
82
- /**
83
- * @inheritDoc
84
- */ init() {
85
- const editor = this.editor;
86
- const schema = editor.model.schema;
87
- const t = editor.t;
88
- const conversion = editor.conversion;
89
- schema.register('pageBreak', {
90
- inheritAllFrom: '$blockObject'
91
- });
92
- conversion.for('dataDowncast').elementToStructure({
93
- model: 'pageBreak',
94
- view: (modelElement, { writer })=>{
95
- const divElement = writer.createContainerElement('div', {
96
- class: 'page-break',
97
- // If user has no `.ck-content` styles, it should always break a page during print.
98
- style: 'page-break-after: always'
99
- }, // For a rationale of using span inside a div see:
100
- // https://github.com/ckeditor/ckeditor5-page-break/pull/1#discussion_r328934062.
101
- writer.createContainerElement('span', {
102
- style: 'display: none'
103
- }));
104
- return divElement;
105
- }
106
- });
107
- conversion.for('editingDowncast').elementToStructure({
108
- model: 'pageBreak',
109
- view: (modelElement, { writer })=>{
110
- const label = t('Page break');
111
- const viewWrapper = writer.createContainerElement('div');
112
- const viewLabelElement = writer.createRawElement('span', {
113
- class: 'page-break__label'
114
- }, function(domElement) {
115
- domElement.innerText = t('Page break');
116
- });
117
- writer.addClass('page-break', viewWrapper);
118
- writer.insert(writer.createPositionAt(viewWrapper, 0), viewLabelElement);
119
- return toPageBreakWidget(viewWrapper, writer, label);
120
- }
121
- });
122
- conversion.for('upcast').elementToElement({
123
- view: (element)=>{
124
- // For upcast conversion it's enough if we check for element style and verify if it's empty
125
- // or contains only hidden span element.
126
- const hasPageBreakBefore = element.getStyle('page-break-before') == 'always';
127
- const hasPageBreakAfter = element.getStyle('page-break-after') == 'always';
128
- if (!hasPageBreakBefore && !hasPageBreakAfter) {
129
- return null;
130
- }
131
- // The "page break" div accepts only single child or no child at all.
132
- if (element.childCount == 1) {
133
- const viewSpan = element.getChild(0);
134
- // The child must be the "span" element that is not displayed.
135
- if (!viewSpan.is('element', 'span') || viewSpan.getStyle('display') != 'none') {
136
- return null;
137
- }
138
- } else if (element.childCount > 1) {
139
- return null;
140
- }
141
- return {
142
- name: true,
143
- styles: [
144
- ...hasPageBreakBefore ? [
145
- 'page-break-before'
146
- ] : [],
147
- ...hasPageBreakAfter ? [
148
- 'page-break-after'
149
- ] : []
150
- ],
151
- ...element.hasClass('page-break') && {
152
- classes: [
153
- 'page-break'
154
- ]
155
- }
156
- };
157
- },
158
- model: 'pageBreak',
159
- // This conversion must be checked before <br> conversion because some editors use
160
- // <br style="page-break-before:always"> as a page break marker.
161
- converterPriority: 'high'
162
- });
163
- editor.commands.add('pageBreak', new PageBreakCommand(editor));
164
- }
165
- }
66
+ * @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
67
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
68
+ */
166
69
  /**
167
- * Converts a given {@link module:engine/view/element~ViewElement} to a page break widget:
168
- * * Adds a {@link module:engine/view/element~ViewElement#_setCustomProperty custom property} allowing to
169
- * recognize the page break widget element.
170
- * * Calls the {@link module:widget/utils~toWidget} function with the proper element's label creator.
171
- */ function toPageBreakWidget(viewElement, writer, label) {
172
- writer.setCustomProperty('pageBreak', true, viewElement);
173
- return toWidget(viewElement, writer, {
174
- label
175
- });
70
+ * @module page-break/pagebreakediting
71
+ */
72
+ /**
73
+ * The page break editing feature.
74
+ */
75
+ var PageBreakEditing = class extends Plugin {
76
+ /**
77
+ * @inheritDoc
78
+ */
79
+ static get pluginName() {
80
+ return "PageBreakEditing";
81
+ }
82
+ /**
83
+ * @inheritDoc
84
+ * @internal
85
+ */
86
+ static get licenseFeatureCode() {
87
+ return "PB";
88
+ }
89
+ /**
90
+ * @inheritDoc
91
+ */
92
+ static get isOfficialPlugin() {
93
+ return true;
94
+ }
95
+ /**
96
+ * @inheritDoc
97
+ */
98
+ static get isPremiumPlugin() {
99
+ return true;
100
+ }
101
+ /**
102
+ * @inheritDoc
103
+ */
104
+ init() {
105
+ const editor = this.editor;
106
+ const schema = editor.model.schema;
107
+ const t = editor.t;
108
+ const conversion = editor.conversion;
109
+ schema.register("pageBreak", { inheritAllFrom: "$blockObject" });
110
+ conversion.for("dataDowncast").elementToStructure({
111
+ model: "pageBreak",
112
+ view: (modelElement, { writer }) => {
113
+ return writer.createContainerElement("div", {
114
+ class: "page-break",
115
+ style: "page-break-after: always"
116
+ }, writer.createContainerElement("span", { style: "display: none" }));
117
+ }
118
+ });
119
+ conversion.for("editingDowncast").elementToStructure({
120
+ model: "pageBreak",
121
+ view: (modelElement, { writer }) => {
122
+ const label = t("Page break");
123
+ const viewWrapper = writer.createContainerElement("div");
124
+ const viewLabelElement = writer.createRawElement("span", { class: "page-break__label" }, function(domElement) {
125
+ domElement.innerText = t("Page break");
126
+ });
127
+ writer.addClass("page-break", viewWrapper);
128
+ writer.insert(writer.createPositionAt(viewWrapper, 0), viewLabelElement);
129
+ return toPageBreakWidget(viewWrapper, writer, label);
130
+ }
131
+ });
132
+ conversion.for("upcast").elementToElement({
133
+ view: (element) => {
134
+ const hasPageBreakBefore = element.getStyle("page-break-before") == "always";
135
+ const hasPageBreakAfter = element.getStyle("page-break-after") == "always";
136
+ if (!hasPageBreakBefore && !hasPageBreakAfter) return null;
137
+ if (element.childCount == 1) {
138
+ const viewSpan = element.getChild(0);
139
+ if (!viewSpan.is("element", "span") || viewSpan.getStyle("display") != "none") return null;
140
+ } else if (element.childCount > 1) return null;
141
+ return {
142
+ name: true,
143
+ styles: [...hasPageBreakBefore ? ["page-break-before"] : [], ...hasPageBreakAfter ? ["page-break-after"] : []],
144
+ ...element.hasClass("page-break") && { classes: ["page-break"] }
145
+ };
146
+ },
147
+ model: "pageBreak",
148
+ converterPriority: "high"
149
+ });
150
+ editor.commands.add("pageBreak", new PageBreakCommand(editor));
151
+ }
152
+ };
153
+ /**
154
+ * Converts a given {@link module:engine/view/element~ViewElement} to a page break widget:
155
+ * * Adds a {@link module:engine/view/element~ViewElement#_setCustomProperty custom property} allowing to
156
+ * recognize the page break widget element.
157
+ * * Calls the {@link module:widget/utils~toWidget} function with the proper element's label creator.
158
+ */
159
+ function toPageBreakWidget(viewElement, writer, label) {
160
+ writer.setCustomProperty("pageBreak", true, viewElement);
161
+ return toWidget(viewElement, writer, { label });
176
162
  }
177
163
 
178
164
  /**
179
- * The page break UI plugin.
180
- */ class PageBreakUI extends Plugin {
181
- /**
182
- * @inheritDoc
183
- */ static get pluginName() {
184
- return 'PageBreakUI';
185
- }
186
- /**
187
- * @inheritDoc
188
- */ static get isOfficialPlugin() {
189
- return true;
190
- }
191
- /**
192
- * @inheritDoc
193
- */ init() {
194
- const editor = this.editor;
195
- // Add pageBreak button to feature components.
196
- editor.ui.componentFactory.add('pageBreak', ()=>{
197
- const view = this._createButton(ButtonView);
198
- view.set({
199
- tooltip: true
200
- });
201
- return view;
202
- });
203
- editor.ui.componentFactory.add('menuBar:pageBreak', ()=>this._createButton(MenuBarMenuListItemButtonView));
204
- }
205
- /**
206
- * Creates a button for page break command to use either in toolbar or in menu bar.
207
- */ _createButton(ButtonClass) {
208
- const editor = this.editor;
209
- const locale = editor.locale;
210
- const command = editor.commands.get('pageBreak');
211
- const view = new ButtonClass(editor.locale);
212
- const t = locale.t;
213
- view.set({
214
- label: t('Page break'),
215
- icon: IconPageBreak
216
- });
217
- view.bind('isEnabled').to(command, 'isEnabled');
218
- // Execute the command.
219
- this.listenTo(view, 'execute', ()=>{
220
- editor.execute('pageBreak');
221
- editor.editing.view.focus();
222
- });
223
- return view;
224
- }
225
- }
165
+ * @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
166
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
167
+ */
168
+ /**
169
+ * @module page-break/pagebreakui
170
+ */
171
+ /**
172
+ * The page break UI plugin.
173
+ */
174
+ var PageBreakUI = class extends Plugin {
175
+ /**
176
+ * @inheritDoc
177
+ */
178
+ static get pluginName() {
179
+ return "PageBreakUI";
180
+ }
181
+ /**
182
+ * @inheritDoc
183
+ */
184
+ static get isOfficialPlugin() {
185
+ return true;
186
+ }
187
+ /**
188
+ * @inheritDoc
189
+ */
190
+ init() {
191
+ const editor = this.editor;
192
+ editor.ui.componentFactory.add("pageBreak", () => {
193
+ const view = this._createButton(ButtonView);
194
+ view.set({ tooltip: true });
195
+ return view;
196
+ });
197
+ editor.ui.componentFactory.add("menuBar:pageBreak", () => this._createButton(MenuBarMenuListItemButtonView));
198
+ }
199
+ /**
200
+ * Creates a button for page break command to use either in toolbar or in menu bar.
201
+ */
202
+ _createButton(ButtonClass) {
203
+ const editor = this.editor;
204
+ const locale = editor.locale;
205
+ const command = editor.commands.get("pageBreak");
206
+ const view = new ButtonClass(editor.locale);
207
+ const t = locale.t;
208
+ view.set({
209
+ label: t("Page break"),
210
+ icon: IconPageBreak
211
+ });
212
+ view.bind("isEnabled").to(command, "isEnabled");
213
+ this.listenTo(view, "execute", () => {
214
+ editor.execute("pageBreak");
215
+ editor.editing.view.focus();
216
+ });
217
+ return view;
218
+ }
219
+ };
226
220
 
227
221
  /**
228
- * The page break feature.
229
- *
230
- * It provides the possibility to insert a page break into the rich-text editor.
231
- *
232
- * For a detailed overview, check the {@glink features/page-break Page break feature} documentation.
233
- */ class PageBreak extends Plugin {
234
- /**
235
- * @inheritDoc
236
- */ static get requires() {
237
- return [
238
- PageBreakEditing,
239
- PageBreakUI,
240
- Widget
241
- ];
242
- }
243
- /**
244
- * @inheritDoc
245
- */ static get pluginName() {
246
- return 'PageBreak';
247
- }
248
- /**
249
- * @inheritDoc
250
- */ static get isOfficialPlugin() {
251
- return true;
252
- }
253
- }
222
+ * @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
223
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
224
+ */
225
+ /**
226
+ * @module page-break/pagebreak
227
+ */
228
+ /**
229
+ * The page break feature.
230
+ *
231
+ * It provides the possibility to insert a page break into the rich-text editor.
232
+ *
233
+ * For a detailed overview, check the {@glink features/page-break Page break feature} documentation.
234
+ */
235
+ var PageBreak = class extends Plugin {
236
+ /**
237
+ * @inheritDoc
238
+ */
239
+ static get requires() {
240
+ return [
241
+ PageBreakEditing,
242
+ PageBreakUI,
243
+ Widget
244
+ ];
245
+ }
246
+ /**
247
+ * @inheritDoc
248
+ */
249
+ static get pluginName() {
250
+ return "PageBreak";
251
+ }
252
+ /**
253
+ * @inheritDoc
254
+ */
255
+ static get isOfficialPlugin() {
256
+ return true;
257
+ }
258
+ };
259
+
260
+ /**
261
+ * @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
262
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
263
+ */
254
264
 
255
265
  export { PageBreak, PageBreakCommand, PageBreakEditing, PageBreakUI };
256
- //# sourceMappingURL=index.js.map
266
+ //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["index.js","../src/pagebreakcommand.ts","../src/pagebreakediting.ts","../src/pagebreakui.ts","../src/pagebreak.ts"],"names":["PageBreakCommand","Command","refresh","model","editor","schema","selection","document","isEnabled","isPageBreakAllowedInParent","execute","change","writer","pageBreakElement","createElement","insertObject","setSelection","parent","getInsertPageBreakParent","checkChild","insertionRange","findOptimalInsertionRange","start","isEmpty","is","PageBreakEditing","Plugin","pluginName","licenseFeatureCode","isOfficialPlugin","isPremiumPlugin","init","t","conversion","register","inheritAllFrom","for","elementToStructure","view","modelElement","divElement","createContainerElement","class","style","label","viewWrapper","viewLabelElement","createRawElement","domElement","innerText","addClass","insert","createPositionAt","toPageBreakWidget","elementToElement","element","hasPageBreakBefore","getStyle","hasPageBreakAfter","childCount","viewSpan","getChild","name","styles","hasClass","classes","converterPriority","commands","add","viewElement","setCustomProperty","toWidget","PageBreakUI","ui","componentFactory","_createButton","ButtonView","set","tooltip","MenuBarMenuListItemButtonView","ButtonClass","locale","command","get","icon","IconPageBreak","bind","to","listenTo","editing","focus","PageBreak","requires","Widget"],"mappings":"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","file":"index.js.map","sourcesContent":["import { Command, Plugin } from '@ckeditor/ckeditor5-core/dist/index.js';\nimport { findOptimalInsertionRange, toWidget, Widget } from '@ckeditor/ckeditor5-widget/dist/index.js';\nimport { IconPageBreak } from '@ckeditor/ckeditor5-icons/dist/index.js';\nimport { ButtonView, MenuBarMenuListItemButtonView } from '@ckeditor/ckeditor5-ui/dist/index.js';\n\n/**\n * The page break command.\n *\n * The command is registered by {@link module:page-break/pagebreakediting~PageBreakEditing} as `'pageBreak'`.\n *\n * To insert a page break at the current selection, execute the command:\n *\n *\t\teditor.execute( 'pageBreak' );\n */ class PageBreakCommand extends Command {\n /**\n\t * @inheritDoc\n\t */ refresh() {\n const model = this.editor.model;\n const schema = model.schema;\n const selection = model.document.selection;\n this.isEnabled = isPageBreakAllowedInParent(selection, schema, model);\n }\n /**\n\t * Executes the command.\n\t *\n\t * @fires execute\n\t */ execute() {\n const model = this.editor.model;\n model.change((writer)=>{\n const pageBreakElement = writer.createElement('pageBreak');\n model.insertObject(pageBreakElement, null, null, {\n setSelection: 'after'\n });\n });\n }\n}\n/**\n * Checks if a page break is allowed by the schema in the optimal insertion parent.\n */ function isPageBreakAllowedInParent(selection, schema, model) {\n const parent = getInsertPageBreakParent(selection, model);\n return schema.checkChild(parent, 'pageBreak');\n}\n/**\n * Returns a node that will be used to insert a page break with `model.insertContent` to check if the page break can be placed there.\n */ function getInsertPageBreakParent(selection, model) {\n const insertionRange = findOptimalInsertionRange(selection, model);\n const parent = insertionRange.start.parent;\n if (parent.isEmpty && !parent.is('rootElement')) {\n return parent.parent;\n }\n return parent;\n}\n\n/**\n * The page break editing feature.\n */ class PageBreakEditing extends Plugin {\n /**\n\t * @inheritDoc\n\t */ static get pluginName() {\n return 'PageBreakEditing';\n }\n /**\n\t * @inheritDoc\n\t * @internal\n\t */ static get licenseFeatureCode() {\n return 'PB';\n }\n /**\n\t * @inheritDoc\n\t */ static get isOfficialPlugin() {\n return true;\n }\n /**\n\t * @inheritDoc\n\t */ static get isPremiumPlugin() {\n return true;\n }\n /**\n\t * @inheritDoc\n\t */ init() {\n const editor = this.editor;\n const schema = editor.model.schema;\n const t = editor.t;\n const conversion = editor.conversion;\n schema.register('pageBreak', {\n inheritAllFrom: '$blockObject'\n });\n conversion.for('dataDowncast').elementToStructure({\n model: 'pageBreak',\n view: (modelElement, { writer })=>{\n const divElement = writer.createContainerElement('div', {\n class: 'page-break',\n // If user has no `.ck-content` styles, it should always break a page during print.\n style: 'page-break-after: always'\n }, // For a rationale of using span inside a div see:\n // https://github.com/ckeditor/ckeditor5-page-break/pull/1#discussion_r328934062.\n writer.createContainerElement('span', {\n style: 'display: none'\n }));\n return divElement;\n }\n });\n conversion.for('editingDowncast').elementToStructure({\n model: 'pageBreak',\n view: (modelElement, { writer })=>{\n const label = t('Page break');\n const viewWrapper = writer.createContainerElement('div');\n const viewLabelElement = writer.createRawElement('span', {\n class: 'page-break__label'\n }, function(domElement) {\n domElement.innerText = t('Page break');\n });\n writer.addClass('page-break', viewWrapper);\n writer.insert(writer.createPositionAt(viewWrapper, 0), viewLabelElement);\n return toPageBreakWidget(viewWrapper, writer, label);\n }\n });\n conversion.for('upcast').elementToElement({\n view: (element)=>{\n // For upcast conversion it's enough if we check for element style and verify if it's empty\n // or contains only hidden span element.\n const hasPageBreakBefore = element.getStyle('page-break-before') == 'always';\n const hasPageBreakAfter = element.getStyle('page-break-after') == 'always';\n if (!hasPageBreakBefore && !hasPageBreakAfter) {\n return null;\n }\n // The \"page break\" div accepts only single child or no child at all.\n if (element.childCount == 1) {\n const viewSpan = element.getChild(0);\n // The child must be the \"span\" element that is not displayed.\n if (!viewSpan.is('element', 'span') || viewSpan.getStyle('display') != 'none') {\n return null;\n }\n } else if (element.childCount > 1) {\n return null;\n }\n return {\n name: true,\n styles: [\n ...hasPageBreakBefore ? [\n 'page-break-before'\n ] : [],\n ...hasPageBreakAfter ? [\n 'page-break-after'\n ] : []\n ],\n ...element.hasClass('page-break') && {\n classes: [\n 'page-break'\n ]\n }\n };\n },\n model: 'pageBreak',\n // This conversion must be checked before <br> conversion because some editors use\n // <br style=\"page-break-before:always\"> as a page break marker.\n converterPriority: 'high'\n });\n editor.commands.add('pageBreak', new PageBreakCommand(editor));\n }\n}\n/**\n * Converts a given {@link module:engine/view/element~ViewElement} to a page break widget:\n * * Adds a {@link module:engine/view/element~ViewElement#_setCustomProperty custom property} allowing to\n * recognize the page break widget element.\n * * Calls the {@link module:widget/utils~toWidget} function with the proper element's label creator.\n */ function toPageBreakWidget(viewElement, writer, label) {\n writer.setCustomProperty('pageBreak', true, viewElement);\n return toWidget(viewElement, writer, {\n label\n });\n}\n\n/**\n * The page break UI plugin.\n */ class PageBreakUI extends Plugin {\n /**\n\t * @inheritDoc\n\t */ static get pluginName() {\n return 'PageBreakUI';\n }\n /**\n\t * @inheritDoc\n\t */ static get isOfficialPlugin() {\n return true;\n }\n /**\n\t * @inheritDoc\n\t */ init() {\n const editor = this.editor;\n // Add pageBreak button to feature components.\n editor.ui.componentFactory.add('pageBreak', ()=>{\n const view = this._createButton(ButtonView);\n view.set({\n tooltip: true\n });\n return view;\n });\n editor.ui.componentFactory.add('menuBar:pageBreak', ()=>this._createButton(MenuBarMenuListItemButtonView));\n }\n /**\n\t * Creates a button for page break command to use either in toolbar or in menu bar.\n\t */ _createButton(ButtonClass) {\n const editor = this.editor;\n const locale = editor.locale;\n const command = editor.commands.get('pageBreak');\n const view = new ButtonClass(editor.locale);\n const t = locale.t;\n view.set({\n label: t('Page break'),\n icon: IconPageBreak\n });\n view.bind('isEnabled').to(command, 'isEnabled');\n // Execute the command.\n this.listenTo(view, 'execute', ()=>{\n editor.execute('pageBreak');\n editor.editing.view.focus();\n });\n return view;\n }\n}\n\n/**\n * The page break feature.\n *\n * It provides the possibility to insert a page break into the rich-text editor.\n *\n * For a detailed overview, check the {@glink features/page-break Page break feature} documentation.\n */ class PageBreak extends Plugin {\n /**\n\t * @inheritDoc\n\t */ static get requires() {\n return [\n PageBreakEditing,\n PageBreakUI,\n Widget\n ];\n }\n /**\n\t * @inheritDoc\n\t */ static get pluginName() {\n return 'PageBreak';\n }\n /**\n\t * @inheritDoc\n\t */ static get isOfficialPlugin() {\n return true;\n }\n}\n\nexport { PageBreak, PageBreakCommand, PageBreakEditing, PageBreakUI };\n//# sourceMappingURL=index.js.map\n","/**\n * @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * @module page-break/pagebreakcommand\n */\n\nimport { Command } from '@ckeditor/ckeditor5-core';\nimport { findOptimalInsertionRange } from '@ckeditor/ckeditor5-widget';\nimport type { ModelDocumentSelection, ModelElement, Model, ModelSchema } from '@ckeditor/ckeditor5-engine';\n\n/**\n * The page break command.\n *\n * The command is registered by {@link module:page-break/pagebreakediting~PageBreakEditing} as `'pageBreak'`.\n *\n * To insert a page break at the current selection, execute the command:\n *\n *\t\teditor.execute( 'pageBreak' );\n */\nexport class PageBreakCommand extends Command {\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic override refresh(): void {\n\t\tconst model = this.editor.model;\n\t\tconst schema = model.schema;\n\t\tconst selection = model.document.selection;\n\n\t\tthis.isEnabled = isPageBreakAllowedInParent( selection, schema, model );\n\t}\n\n\t/**\n\t * Executes the command.\n\t *\n\t * @fires execute\n\t */\n\tpublic override execute(): void {\n\t\tconst model = this.editor.model;\n\n\t\tmodel.change( writer => {\n\t\t\tconst pageBreakElement = writer.createElement( 'pageBreak' );\n\n\t\t\tmodel.insertObject( pageBreakElement, null, null, {\n\t\t\t\tsetSelection: 'after'\n\t\t\t} );\n\t\t} );\n\t}\n}\n\n/**\n * Checks if a page break is allowed by the schema in the optimal insertion parent.\n */\nfunction isPageBreakAllowedInParent( selection: ModelDocumentSelection, schema: ModelSchema, model: Model ): boolean {\n\tconst parent = getInsertPageBreakParent( selection, model );\n\n\treturn schema.checkChild( parent, 'pageBreak' );\n}\n\n/**\n * Returns a node that will be used to insert a page break with `model.insertContent` to check if the page break can be placed there.\n */\nfunction getInsertPageBreakParent( selection: ModelDocumentSelection, model: Model ): ModelElement {\n\tconst insertionRange = findOptimalInsertionRange( selection, model );\n\tconst parent = insertionRange.start.parent;\n\n\tif ( parent.isEmpty && !parent.is( 'rootElement' ) ) {\n\t\treturn parent.parent as ModelElement;\n\t}\n\n\treturn parent as ModelElement;\n}\n","/**\n * @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * @module page-break/pagebreakediting\n */\n\nimport { Plugin } from '@ckeditor/ckeditor5-core';\nimport { toWidget } from '@ckeditor/ckeditor5-widget';\nimport type { ViewDowncastWriter, ViewElement } from '@ckeditor/ckeditor5-engine';\n\nimport { PageBreakCommand } from './pagebreakcommand.js';\n\nimport '../theme/pagebreak.css';\n\n/**\n * The page break editing feature.\n */\nexport class PageBreakEditing extends Plugin {\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get pluginName() {\n\t\treturn 'PageBreakEditing' as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t * @internal\n\t */\n\tpublic static get licenseFeatureCode(): string {\n\t\treturn 'PB';\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static override get isOfficialPlugin(): true {\n\t\treturn true;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static override get isPremiumPlugin(): true {\n\t\treturn true;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic init(): void {\n\t\tconst editor = this.editor;\n\t\tconst schema = editor.model.schema;\n\t\tconst t = editor.t;\n\t\tconst conversion = editor.conversion;\n\n\t\tschema.register( 'pageBreak', {\n\t\t\tinheritAllFrom: '$blockObject'\n\t\t} );\n\n\t\tconversion.for( 'dataDowncast' ).elementToStructure( {\n\t\t\tmodel: 'pageBreak',\n\t\t\tview: ( modelElement, { writer } ) => {\n\t\t\t\tconst divElement = writer.createContainerElement( 'div',\n\t\t\t\t\t{\n\t\t\t\t\t\tclass: 'page-break',\n\t\t\t\t\t\t// If user has no `.ck-content` styles, it should always break a page during print.\n\t\t\t\t\t\tstyle: 'page-break-after: always'\n\t\t\t\t\t},\n\t\t\t\t\t// For a rationale of using span inside a div see:\n\t\t\t\t\t// https://github.com/ckeditor/ckeditor5-page-break/pull/1#discussion_r328934062.\n\t\t\t\t\twriter.createContainerElement( 'span', {\n\t\t\t\t\t\tstyle: 'display: none'\n\t\t\t\t\t} )\n\t\t\t\t);\n\n\t\t\t\treturn divElement;\n\t\t\t}\n\t\t} );\n\n\t\tconversion.for( 'editingDowncast' ).elementToStructure( {\n\t\t\tmodel: 'pageBreak',\n\t\t\tview: ( modelElement, { writer } ) => {\n\t\t\t\tconst label = t( 'Page break' );\n\t\t\t\tconst viewWrapper = writer.createContainerElement( 'div' );\n\t\t\t\tconst viewLabelElement = writer.createRawElement(\n\t\t\t\t\t'span',\n\t\t\t\t\t{ class: 'page-break__label' },\n\t\t\t\t\tfunction( domElement ) {\n\t\t\t\t\t\tdomElement.innerText = t( 'Page break' );\n\t\t\t\t\t}\n\t\t\t\t);\n\n\t\t\t\twriter.addClass( 'page-break', viewWrapper );\n\t\t\t\twriter.insert( writer.createPositionAt( viewWrapper, 0 ), viewLabelElement );\n\n\t\t\t\treturn toPageBreakWidget( viewWrapper, writer, label );\n\t\t\t}\n\t\t} );\n\n\t\tconversion.for( 'upcast' )\n\t\t\t.elementToElement( {\n\t\t\t\tview: element => {\n\t\t\t\t\t// For upcast conversion it's enough if we check for element style and verify if it's empty\n\t\t\t\t\t// or contains only hidden span element.\n\n\t\t\t\t\tconst hasPageBreakBefore = element.getStyle( 'page-break-before' ) == 'always';\n\t\t\t\t\tconst hasPageBreakAfter = element.getStyle( 'page-break-after' ) == 'always';\n\n\t\t\t\t\tif ( !hasPageBreakBefore && !hasPageBreakAfter ) {\n\t\t\t\t\t\treturn null;\n\t\t\t\t\t}\n\n\t\t\t\t\t// The \"page break\" div accepts only single child or no child at all.\n\t\t\t\t\tif ( element.childCount == 1 ) {\n\t\t\t\t\t\tconst viewSpan = element.getChild( 0 );\n\n\t\t\t\t\t\t// The child must be the \"span\" element that is not displayed.\n\t\t\t\t\t\tif ( !viewSpan!.is( 'element', 'span' ) || viewSpan.getStyle( 'display' ) != 'none' ) {\n\t\t\t\t\t\t\treturn null;\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if ( element.childCount > 1 ) {\n\t\t\t\t\t\treturn null;\n\t\t\t\t\t}\n\n\t\t\t\t\treturn {\n\t\t\t\t\t\tname: true,\n\n\t\t\t\t\t\tstyles: [\n\t\t\t\t\t\t\t...( hasPageBreakBefore ? [ 'page-break-before' ] : [] ),\n\t\t\t\t\t\t\t...( hasPageBreakAfter ? [ 'page-break-after' ] : [] )\n\t\t\t\t\t\t],\n\n\t\t\t\t\t\t...element.hasClass( 'page-break' ) && {\n\t\t\t\t\t\t\tclasses: [ 'page-break' ]\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t},\n\t\t\t\tmodel: 'pageBreak',\n\n\t\t\t\t// This conversion must be checked before <br> conversion because some editors use\n\t\t\t\t// <br style=\"page-break-before:always\"> as a page break marker.\n\t\t\t\tconverterPriority: 'high'\n\t\t\t} );\n\n\t\teditor.commands.add( 'pageBreak', new PageBreakCommand( editor ) );\n\t}\n}\n\n/**\n * Converts a given {@link module:engine/view/element~ViewElement} to a page break widget:\n * * Adds a {@link module:engine/view/element~ViewElement#_setCustomProperty custom property} allowing to\n * recognize the page break widget element.\n * * Calls the {@link module:widget/utils~toWidget} function with the proper element's label creator.\n */\nfunction toPageBreakWidget( viewElement: ViewElement, writer: ViewDowncastWriter, label: string ): ViewElement {\n\twriter.setCustomProperty( 'pageBreak', true, viewElement );\n\n\treturn toWidget( viewElement, writer, { label } );\n}\n","/**\n * @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * @module page-break/pagebreakui\n */\n\nimport { Plugin } from '@ckeditor/ckeditor5-core';\nimport { IconPageBreak } from '@ckeditor/ckeditor5-icons';\nimport { ButtonView, MenuBarMenuListItemButtonView } from '@ckeditor/ckeditor5-ui';\n\n/**\n * The page break UI plugin.\n */\nexport class PageBreakUI extends Plugin {\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get pluginName() {\n\t\treturn 'PageBreakUI' as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static override get isOfficialPlugin(): true {\n\t\treturn true;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic init(): void {\n\t\tconst editor = this.editor;\n\n\t\t// Add pageBreak button to feature components.\n\t\teditor.ui.componentFactory.add( 'pageBreak', () => {\n\t\t\tconst view = this._createButton( ButtonView );\n\n\t\t\tview.set( {\n\t\t\t\ttooltip: true\n\t\t\t} );\n\n\t\t\treturn view;\n\t\t} );\n\n\t\teditor.ui.componentFactory.add( 'menuBar:pageBreak', () => this._createButton( MenuBarMenuListItemButtonView ) );\n\t}\n\n\t/**\n\t * Creates a button for page break command to use either in toolbar or in menu bar.\n\t */\n\tprivate _createButton<T extends typeof ButtonView | typeof MenuBarMenuListItemButtonView>( ButtonClass: T ): InstanceType<T> {\n\t\tconst editor = this.editor;\n\t\tconst locale = editor.locale;\n\t\tconst command = editor.commands.get( 'pageBreak' )!;\n\t\tconst view = new ButtonClass( editor.locale ) as InstanceType<T>;\n\t\tconst t = locale.t;\n\n\t\tview.set( {\n\t\t\tlabel: t( 'Page break' ),\n\t\t\ticon: IconPageBreak\n\t\t} );\n\n\t\tview.bind( 'isEnabled' ).to( command, 'isEnabled' );\n\n\t\t// Execute the command.\n\t\tthis.listenTo( view, 'execute', () => {\n\t\t\teditor.execute( 'pageBreak' );\n\t\t\teditor.editing.view.focus();\n\t\t} );\n\n\t\treturn view;\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * @module page-break/pagebreak\n */\n\nimport { Plugin } from '@ckeditor/ckeditor5-core';\nimport { Widget } from '@ckeditor/ckeditor5-widget';\n\nimport { PageBreakEditing } from './pagebreakediting.js';\nimport { PageBreakUI } from './pagebreakui.js';\n\n/**\n * The page break feature.\n *\n * It provides the possibility to insert a page break into the rich-text editor.\n *\n * For a detailed overview, check the {@glink features/page-break Page break feature} documentation.\n */\nexport class PageBreak extends Plugin {\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get requires() {\n\t\treturn [ PageBreakEditing, PageBreakUI, Widget ] as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get pluginName() {\n\t\treturn 'PageBreak' as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static override get isOfficialPlugin(): true {\n\t\treturn true;\n\t}\n}\n"]}
1
+ {"version":3,"sources":["index.js","../src/pagebreakcommand.ts","../src/pagebreakediting.ts","../src/pagebreakui.ts","../src/pagebreak.ts"],"names":[],"mappings":"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","file":"index.js.map","sourcesContent":["import { Command, Plugin } from \"@ckeditor/ckeditor5-core\";\nimport { Widget, findOptimalInsertionRange, toWidget } from \"@ckeditor/ckeditor5-widget\";\nimport { IconPageBreak } from \"@ckeditor/ckeditor5-icons\";\nimport { ButtonView, MenuBarMenuListItemButtonView } from \"@ckeditor/ckeditor5-ui\";\n\n/**\n* @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.\n* For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n*/\n/**\n* @module page-break/pagebreakcommand\n*/\n/**\n* The page break command.\n*\n* The command is registered by {@link module:page-break/pagebreakediting~PageBreakEditing} as `'pageBreak'`.\n*\n* To insert a page break at the current selection, execute the command:\n*\n*\t\teditor.execute( 'pageBreak' );\n*/\nvar PageBreakCommand = class extends Command {\n\t/**\n\t* @inheritDoc\n\t*/\n\trefresh() {\n\t\tconst model = this.editor.model;\n\t\tconst schema = model.schema;\n\t\tconst selection = model.document.selection;\n\t\tthis.isEnabled = isPageBreakAllowedInParent(selection, schema, model);\n\t}\n\t/**\n\t* Executes the command.\n\t*\n\t* @fires execute\n\t*/\n\texecute() {\n\t\tconst model = this.editor.model;\n\t\tmodel.change((writer) => {\n\t\t\tconst pageBreakElement = writer.createElement(\"pageBreak\");\n\t\t\tmodel.insertObject(pageBreakElement, null, null, { setSelection: \"after\" });\n\t\t});\n\t}\n};\n/**\n* Checks if a page break is allowed by the schema in the optimal insertion parent.\n*/\nfunction isPageBreakAllowedInParent(selection, schema, model) {\n\tconst parent = getInsertPageBreakParent(selection, model);\n\treturn schema.checkChild(parent, \"pageBreak\");\n}\n/**\n* Returns a node that will be used to insert a page break with `model.insertContent` to check if the page break can be placed there.\n*/\nfunction getInsertPageBreakParent(selection, model) {\n\tconst parent = findOptimalInsertionRange(selection, model).start.parent;\n\tif (parent.isEmpty && !parent.is(\"rootElement\")) return parent.parent;\n\treturn parent;\n}\n\n/**\n* @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.\n* For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n*/\n/**\n* @module page-break/pagebreakediting\n*/\n/**\n* The page break editing feature.\n*/\nvar PageBreakEditing = class extends Plugin {\n\t/**\n\t* @inheritDoc\n\t*/\n\tstatic get pluginName() {\n\t\treturn \"PageBreakEditing\";\n\t}\n\t/**\n\t* @inheritDoc\n\t* @internal\n\t*/\n\tstatic get licenseFeatureCode() {\n\t\treturn \"PB\";\n\t}\n\t/**\n\t* @inheritDoc\n\t*/\n\tstatic get isOfficialPlugin() {\n\t\treturn true;\n\t}\n\t/**\n\t* @inheritDoc\n\t*/\n\tstatic get isPremiumPlugin() {\n\t\treturn true;\n\t}\n\t/**\n\t* @inheritDoc\n\t*/\n\tinit() {\n\t\tconst editor = this.editor;\n\t\tconst schema = editor.model.schema;\n\t\tconst t = editor.t;\n\t\tconst conversion = editor.conversion;\n\t\tschema.register(\"pageBreak\", { inheritAllFrom: \"$blockObject\" });\n\t\tconversion.for(\"dataDowncast\").elementToStructure({\n\t\t\tmodel: \"pageBreak\",\n\t\t\tview: (modelElement, { writer }) => {\n\t\t\t\treturn writer.createContainerElement(\"div\", {\n\t\t\t\t\tclass: \"page-break\",\n\t\t\t\t\tstyle: \"page-break-after: always\"\n\t\t\t\t}, writer.createContainerElement(\"span\", { style: \"display: none\" }));\n\t\t\t}\n\t\t});\n\t\tconversion.for(\"editingDowncast\").elementToStructure({\n\t\t\tmodel: \"pageBreak\",\n\t\t\tview: (modelElement, { writer }) => {\n\t\t\t\tconst label = t(\"Page break\");\n\t\t\t\tconst viewWrapper = writer.createContainerElement(\"div\");\n\t\t\t\tconst viewLabelElement = writer.createRawElement(\"span\", { class: \"page-break__label\" }, function(domElement) {\n\t\t\t\t\tdomElement.innerText = t(\"Page break\");\n\t\t\t\t});\n\t\t\t\twriter.addClass(\"page-break\", viewWrapper);\n\t\t\t\twriter.insert(writer.createPositionAt(viewWrapper, 0), viewLabelElement);\n\t\t\t\treturn toPageBreakWidget(viewWrapper, writer, label);\n\t\t\t}\n\t\t});\n\t\tconversion.for(\"upcast\").elementToElement({\n\t\t\tview: (element) => {\n\t\t\t\tconst hasPageBreakBefore = element.getStyle(\"page-break-before\") == \"always\";\n\t\t\t\tconst hasPageBreakAfter = element.getStyle(\"page-break-after\") == \"always\";\n\t\t\t\tif (!hasPageBreakBefore && !hasPageBreakAfter) return null;\n\t\t\t\tif (element.childCount == 1) {\n\t\t\t\t\tconst viewSpan = element.getChild(0);\n\t\t\t\t\tif (!viewSpan.is(\"element\", \"span\") || viewSpan.getStyle(\"display\") != \"none\") return null;\n\t\t\t\t} else if (element.childCount > 1) return null;\n\t\t\t\treturn {\n\t\t\t\t\tname: true,\n\t\t\t\t\tstyles: [...hasPageBreakBefore ? [\"page-break-before\"] : [], ...hasPageBreakAfter ? [\"page-break-after\"] : []],\n\t\t\t\t\t...element.hasClass(\"page-break\") && { classes: [\"page-break\"] }\n\t\t\t\t};\n\t\t\t},\n\t\t\tmodel: \"pageBreak\",\n\t\t\tconverterPriority: \"high\"\n\t\t});\n\t\teditor.commands.add(\"pageBreak\", new PageBreakCommand(editor));\n\t}\n};\n/**\n* Converts a given {@link module:engine/view/element~ViewElement} to a page break widget:\n* * Adds a {@link module:engine/view/element~ViewElement#_setCustomProperty custom property} allowing to\n* recognize the page break widget element.\n* * Calls the {@link module:widget/utils~toWidget} function with the proper element's label creator.\n*/\nfunction toPageBreakWidget(viewElement, writer, label) {\n\twriter.setCustomProperty(\"pageBreak\", true, viewElement);\n\treturn toWidget(viewElement, writer, { label });\n}\n\n/**\n* @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.\n* For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n*/\n/**\n* @module page-break/pagebreakui\n*/\n/**\n* The page break UI plugin.\n*/\nvar PageBreakUI = class extends Plugin {\n\t/**\n\t* @inheritDoc\n\t*/\n\tstatic get pluginName() {\n\t\treturn \"PageBreakUI\";\n\t}\n\t/**\n\t* @inheritDoc\n\t*/\n\tstatic get isOfficialPlugin() {\n\t\treturn true;\n\t}\n\t/**\n\t* @inheritDoc\n\t*/\n\tinit() {\n\t\tconst editor = this.editor;\n\t\teditor.ui.componentFactory.add(\"pageBreak\", () => {\n\t\t\tconst view = this._createButton(ButtonView);\n\t\t\tview.set({ tooltip: true });\n\t\t\treturn view;\n\t\t});\n\t\teditor.ui.componentFactory.add(\"menuBar:pageBreak\", () => this._createButton(MenuBarMenuListItemButtonView));\n\t}\n\t/**\n\t* Creates a button for page break command to use either in toolbar or in menu bar.\n\t*/\n\t_createButton(ButtonClass) {\n\t\tconst editor = this.editor;\n\t\tconst locale = editor.locale;\n\t\tconst command = editor.commands.get(\"pageBreak\");\n\t\tconst view = new ButtonClass(editor.locale);\n\t\tconst t = locale.t;\n\t\tview.set({\n\t\t\tlabel: t(\"Page break\"),\n\t\t\ticon: IconPageBreak\n\t\t});\n\t\tview.bind(\"isEnabled\").to(command, \"isEnabled\");\n\t\tthis.listenTo(view, \"execute\", () => {\n\t\t\teditor.execute(\"pageBreak\");\n\t\t\teditor.editing.view.focus();\n\t\t});\n\t\treturn view;\n\t}\n};\n\n/**\n* @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.\n* For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n*/\n/**\n* @module page-break/pagebreak\n*/\n/**\n* The page break feature.\n*\n* It provides the possibility to insert a page break into the rich-text editor.\n*\n* For a detailed overview, check the {@glink features/page-break Page break feature} documentation.\n*/\nvar PageBreak = class extends Plugin {\n\t/**\n\t* @inheritDoc\n\t*/\n\tstatic get requires() {\n\t\treturn [\n\t\t\tPageBreakEditing,\n\t\t\tPageBreakUI,\n\t\t\tWidget\n\t\t];\n\t}\n\t/**\n\t* @inheritDoc\n\t*/\n\tstatic get pluginName() {\n\t\treturn \"PageBreak\";\n\t}\n\t/**\n\t* @inheritDoc\n\t*/\n\tstatic get isOfficialPlugin() {\n\t\treturn true;\n\t}\n};\n\n/**\n* @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.\n* For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n*/\n\nexport { PageBreak, PageBreakCommand, PageBreakEditing, PageBreakUI };\n//# sourceMappingURL=index.js.map","/**\n * @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * @module page-break/pagebreakcommand\n */\n\nimport { Command } from '@ckeditor/ckeditor5-core';\nimport { findOptimalInsertionRange } from '@ckeditor/ckeditor5-widget';\nimport type { ModelDocumentSelection, ModelElement, Model, ModelSchema } from '@ckeditor/ckeditor5-engine';\n\n/**\n * The page break command.\n *\n * The command is registered by {@link module:page-break/pagebreakediting~PageBreakEditing} as `'pageBreak'`.\n *\n * To insert a page break at the current selection, execute the command:\n *\n *\t\teditor.execute( 'pageBreak' );\n */\nexport class PageBreakCommand extends Command {\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic override refresh(): void {\n\t\tconst model = this.editor.model;\n\t\tconst schema = model.schema;\n\t\tconst selection = model.document.selection;\n\n\t\tthis.isEnabled = isPageBreakAllowedInParent( selection, schema, model );\n\t}\n\n\t/**\n\t * Executes the command.\n\t *\n\t * @fires execute\n\t */\n\tpublic override execute(): void {\n\t\tconst model = this.editor.model;\n\n\t\tmodel.change( writer => {\n\t\t\tconst pageBreakElement = writer.createElement( 'pageBreak' );\n\n\t\t\tmodel.insertObject( pageBreakElement, null, null, {\n\t\t\t\tsetSelection: 'after'\n\t\t\t} );\n\t\t} );\n\t}\n}\n\n/**\n * Checks if a page break is allowed by the schema in the optimal insertion parent.\n */\nfunction isPageBreakAllowedInParent( selection: ModelDocumentSelection, schema: ModelSchema, model: Model ): boolean {\n\tconst parent = getInsertPageBreakParent( selection, model );\n\n\treturn schema.checkChild( parent, 'pageBreak' );\n}\n\n/**\n * Returns a node that will be used to insert a page break with `model.insertContent` to check if the page break can be placed there.\n */\nfunction getInsertPageBreakParent( selection: ModelDocumentSelection, model: Model ): ModelElement {\n\tconst insertionRange = findOptimalInsertionRange( selection, model );\n\tconst parent = insertionRange.start.parent;\n\n\tif ( parent.isEmpty && !parent.is( 'rootElement' ) ) {\n\t\treturn parent.parent as ModelElement;\n\t}\n\n\treturn parent as ModelElement;\n}\n","/**\n * @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * @module page-break/pagebreakediting\n */\n\nimport { Plugin } from '@ckeditor/ckeditor5-core';\nimport { toWidget } from '@ckeditor/ckeditor5-widget';\nimport type { ViewDowncastWriter, ViewElement } from '@ckeditor/ckeditor5-engine';\n\nimport { PageBreakCommand } from './pagebreakcommand.js';\n\nimport '../theme/pagebreak.css';\n\n/**\n * The page break editing feature.\n */\nexport class PageBreakEditing extends Plugin {\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get pluginName() {\n\t\treturn 'PageBreakEditing' as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t * @internal\n\t */\n\tpublic static get licenseFeatureCode(): string {\n\t\treturn 'PB';\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static override get isOfficialPlugin(): true {\n\t\treturn true;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static override get isPremiumPlugin(): true {\n\t\treturn true;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic init(): void {\n\t\tconst editor = this.editor;\n\t\tconst schema = editor.model.schema;\n\t\tconst t = editor.t;\n\t\tconst conversion = editor.conversion;\n\n\t\tschema.register( 'pageBreak', {\n\t\t\tinheritAllFrom: '$blockObject'\n\t\t} );\n\n\t\tconversion.for( 'dataDowncast' ).elementToStructure( {\n\t\t\tmodel: 'pageBreak',\n\t\t\tview: ( modelElement, { writer } ) => {\n\t\t\t\tconst divElement = writer.createContainerElement( 'div',\n\t\t\t\t\t{\n\t\t\t\t\t\tclass: 'page-break',\n\t\t\t\t\t\t// If user has no `.ck-content` styles, it should always break a page during print.\n\t\t\t\t\t\tstyle: 'page-break-after: always'\n\t\t\t\t\t},\n\t\t\t\t\t// For a rationale of using span inside a div see:\n\t\t\t\t\t// https://github.com/ckeditor/ckeditor5-page-break/pull/1#discussion_r328934062.\n\t\t\t\t\twriter.createContainerElement( 'span', {\n\t\t\t\t\t\tstyle: 'display: none'\n\t\t\t\t\t} )\n\t\t\t\t);\n\n\t\t\t\treturn divElement;\n\t\t\t}\n\t\t} );\n\n\t\tconversion.for( 'editingDowncast' ).elementToStructure( {\n\t\t\tmodel: 'pageBreak',\n\t\t\tview: ( modelElement, { writer } ) => {\n\t\t\t\tconst label = t( 'Page break' );\n\t\t\t\tconst viewWrapper = writer.createContainerElement( 'div' );\n\t\t\t\tconst viewLabelElement = writer.createRawElement(\n\t\t\t\t\t'span',\n\t\t\t\t\t{ class: 'page-break__label' },\n\t\t\t\t\tfunction( domElement ) {\n\t\t\t\t\t\tdomElement.innerText = t( 'Page break' );\n\t\t\t\t\t}\n\t\t\t\t);\n\n\t\t\t\twriter.addClass( 'page-break', viewWrapper );\n\t\t\t\twriter.insert( writer.createPositionAt( viewWrapper, 0 ), viewLabelElement );\n\n\t\t\t\treturn toPageBreakWidget( viewWrapper, writer, label );\n\t\t\t}\n\t\t} );\n\n\t\tconversion.for( 'upcast' )\n\t\t\t.elementToElement( {\n\t\t\t\tview: element => {\n\t\t\t\t\t// For upcast conversion it's enough if we check for element style and verify if it's empty\n\t\t\t\t\t// or contains only hidden span element.\n\n\t\t\t\t\tconst hasPageBreakBefore = element.getStyle( 'page-break-before' ) == 'always';\n\t\t\t\t\tconst hasPageBreakAfter = element.getStyle( 'page-break-after' ) == 'always';\n\n\t\t\t\t\tif ( !hasPageBreakBefore && !hasPageBreakAfter ) {\n\t\t\t\t\t\treturn null;\n\t\t\t\t\t}\n\n\t\t\t\t\t// The \"page break\" div accepts only single child or no child at all.\n\t\t\t\t\tif ( element.childCount == 1 ) {\n\t\t\t\t\t\tconst viewSpan = element.getChild( 0 );\n\n\t\t\t\t\t\t// The child must be the \"span\" element that is not displayed.\n\t\t\t\t\t\tif ( !viewSpan!.is( 'element', 'span' ) || viewSpan.getStyle( 'display' ) != 'none' ) {\n\t\t\t\t\t\t\treturn null;\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if ( element.childCount > 1 ) {\n\t\t\t\t\t\treturn null;\n\t\t\t\t\t}\n\n\t\t\t\t\treturn {\n\t\t\t\t\t\tname: true,\n\n\t\t\t\t\t\tstyles: [\n\t\t\t\t\t\t\t...( hasPageBreakBefore ? [ 'page-break-before' ] : [] ),\n\t\t\t\t\t\t\t...( hasPageBreakAfter ? [ 'page-break-after' ] : [] )\n\t\t\t\t\t\t],\n\n\t\t\t\t\t\t...element.hasClass( 'page-break' ) && {\n\t\t\t\t\t\t\tclasses: [ 'page-break' ]\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t},\n\t\t\t\tmodel: 'pageBreak',\n\n\t\t\t\t// This conversion must be checked before <br> conversion because some editors use\n\t\t\t\t// <br style=\"page-break-before:always\"> as a page break marker.\n\t\t\t\tconverterPriority: 'high'\n\t\t\t} );\n\n\t\teditor.commands.add( 'pageBreak', new PageBreakCommand( editor ) );\n\t}\n}\n\n/**\n * Converts a given {@link module:engine/view/element~ViewElement} to a page break widget:\n * * Adds a {@link module:engine/view/element~ViewElement#_setCustomProperty custom property} allowing to\n * recognize the page break widget element.\n * * Calls the {@link module:widget/utils~toWidget} function with the proper element's label creator.\n */\nfunction toPageBreakWidget( viewElement: ViewElement, writer: ViewDowncastWriter, label: string ): ViewElement {\n\twriter.setCustomProperty( 'pageBreak', true, viewElement );\n\n\treturn toWidget( viewElement, writer, { label } );\n}\n","/**\n * @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * @module page-break/pagebreakui\n */\n\nimport { Plugin } from '@ckeditor/ckeditor5-core';\nimport { IconPageBreak } from '@ckeditor/ckeditor5-icons';\nimport { ButtonView, MenuBarMenuListItemButtonView } from '@ckeditor/ckeditor5-ui';\n\n/**\n * The page break UI plugin.\n */\nexport class PageBreakUI extends Plugin {\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get pluginName() {\n\t\treturn 'PageBreakUI' as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static override get isOfficialPlugin(): true {\n\t\treturn true;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic init(): void {\n\t\tconst editor = this.editor;\n\n\t\t// Add pageBreak button to feature components.\n\t\teditor.ui.componentFactory.add( 'pageBreak', () => {\n\t\t\tconst view = this._createButton( ButtonView );\n\n\t\t\tview.set( {\n\t\t\t\ttooltip: true\n\t\t\t} );\n\n\t\t\treturn view;\n\t\t} );\n\n\t\teditor.ui.componentFactory.add( 'menuBar:pageBreak', () => this._createButton( MenuBarMenuListItemButtonView ) );\n\t}\n\n\t/**\n\t * Creates a button for page break command to use either in toolbar or in menu bar.\n\t */\n\tprivate _createButton<T extends typeof ButtonView | typeof MenuBarMenuListItemButtonView>( ButtonClass: T ): InstanceType<T> {\n\t\tconst editor = this.editor;\n\t\tconst locale = editor.locale;\n\t\tconst command = editor.commands.get( 'pageBreak' )!;\n\t\tconst view = new ButtonClass( editor.locale ) as InstanceType<T>;\n\t\tconst t = locale.t;\n\n\t\tview.set( {\n\t\t\tlabel: t( 'Page break' ),\n\t\t\ticon: IconPageBreak\n\t\t} );\n\n\t\tview.bind( 'isEnabled' ).to( command, 'isEnabled' );\n\n\t\t// Execute the command.\n\t\tthis.listenTo( view, 'execute', () => {\n\t\t\teditor.execute( 'pageBreak' );\n\t\t\teditor.editing.view.focus();\n\t\t} );\n\n\t\treturn view;\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * @module page-break/pagebreak\n */\n\nimport { Plugin, type PluginDependenciesOf } from '@ckeditor/ckeditor5-core';\nimport { Widget } from '@ckeditor/ckeditor5-widget';\n\nimport { PageBreakEditing } from './pagebreakediting.js';\nimport { PageBreakUI } from './pagebreakui.js';\n\n/**\n * The page break feature.\n *\n * It provides the possibility to insert a page break into the rich-text editor.\n *\n * For a detailed overview, check the {@glink features/page-break Page break feature} documentation.\n */\nexport class PageBreak extends Plugin {\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get requires(): PluginDependenciesOf<[ PageBreakEditing, PageBreakUI, Widget ]> {\n\t\treturn [ PageBreakEditing, PageBreakUI, Widget ];\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get pluginName() {\n\t\treturn 'PageBreak' as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static override get isOfficialPlugin(): true {\n\t\treturn true;\n\t}\n}\n"]}
@@ -1,32 +1,32 @@
1
1
  /**
2
- * @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
3
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
4
- */
2
+ * @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
3
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
4
+ */
5
5
  /**
6
- * @module page-break/pagebreak
7
- */
8
- import { Plugin } from '@ckeditor/ckeditor5-core';
9
- import { Widget } from '@ckeditor/ckeditor5-widget';
10
- import { PageBreakEditing } from './pagebreakediting.js';
11
- import { PageBreakUI } from './pagebreakui.js';
6
+ * @module page-break/pagebreak
7
+ */
8
+ import { Plugin, type PluginDependenciesOf } from "@ckeditor/ckeditor5-core";
9
+ import { Widget } from "@ckeditor/ckeditor5-widget";
10
+ import { PageBreakEditing } from "./pagebreakediting.js";
11
+ import { PageBreakUI } from "./pagebreakui.js";
12
12
  /**
13
- * The page break feature.
14
- *
15
- * It provides the possibility to insert a page break into the rich-text editor.
16
- *
17
- * For a detailed overview, check the {@glink features/page-break Page break feature} documentation.
18
- */
13
+ * The page break feature.
14
+ *
15
+ * It provides the possibility to insert a page break into the rich-text editor.
16
+ *
17
+ * For a detailed overview, check the {@glink features/page-break Page break feature} documentation.
18
+ */
19
19
  export declare class PageBreak extends Plugin {
20
- /**
21
- * @inheritDoc
22
- */
23
- static get requires(): readonly [typeof PageBreakEditing, typeof PageBreakUI, typeof Widget];
24
- /**
25
- * @inheritDoc
26
- */
27
- static get pluginName(): "PageBreak";
28
- /**
29
- * @inheritDoc
30
- */
31
- static get isOfficialPlugin(): true;
20
+ /**
21
+ * @inheritDoc
22
+ */
23
+ static get requires(): PluginDependenciesOf<[PageBreakEditing, PageBreakUI, Widget]>;
24
+ /**
25
+ * @inheritDoc
26
+ */
27
+ static get pluginName(): "PageBreak";
28
+ /**
29
+ * @inheritDoc
30
+ */
31
+ static override get isOfficialPlugin(): true;
32
32
  }
@@ -1,29 +1,29 @@
1
1
  /**
2
- * @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
3
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
4
- */
2
+ * @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
3
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
4
+ */
5
5
  /**
6
- * @module page-break/pagebreakcommand
7
- */
8
- import { Command } from '@ckeditor/ckeditor5-core';
6
+ * @module page-break/pagebreakcommand
7
+ */
8
+ import { Command } from "@ckeditor/ckeditor5-core";
9
9
  /**
10
- * The page break command.
11
- *
12
- * The command is registered by {@link module:page-break/pagebreakediting~PageBreakEditing} as `'pageBreak'`.
13
- *
14
- * To insert a page break at the current selection, execute the command:
15
- *
16
- * editor.execute( 'pageBreak' );
17
- */
10
+ * The page break command.
11
+ *
12
+ * The command is registered by {@link module:page-break/pagebreakediting~PageBreakEditing} as `'pageBreak'`.
13
+ *
14
+ * To insert a page break at the current selection, execute the command:
15
+ *
16
+ * editor.execute( 'pageBreak' );
17
+ */
18
18
  export declare class PageBreakCommand extends Command {
19
- /**
20
- * @inheritDoc
21
- */
22
- refresh(): void;
23
- /**
24
- * Executes the command.
25
- *
26
- * @fires execute
27
- */
28
- execute(): void;
19
+ /**
20
+ * @inheritDoc
21
+ */
22
+ override refresh(): void;
23
+ /**
24
+ * Executes the command.
25
+ *
26
+ * @fires execute
27
+ */
28
+ override execute(): void;
29
29
  }
@@ -1,35 +1,35 @@
1
1
  /**
2
- * @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
3
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
4
- */
2
+ * @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
3
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
4
+ */
5
5
  /**
6
- * @module page-break/pagebreakediting
7
- */
8
- import { Plugin } from '@ckeditor/ckeditor5-core';
9
- import '../theme/pagebreak.css';
6
+ * @module page-break/pagebreakediting
7
+ */
8
+ import { Plugin } from "@ckeditor/ckeditor5-core";
9
+ import "../theme/pagebreak.css";
10
10
  /**
11
- * The page break editing feature.
12
- */
11
+ * The page break editing feature.
12
+ */
13
13
  export declare class PageBreakEditing extends Plugin {
14
- /**
15
- * @inheritDoc
16
- */
17
- static get pluginName(): "PageBreakEditing";
18
- /**
19
- * @inheritDoc
20
- * @internal
21
- */
22
- static get licenseFeatureCode(): string;
23
- /**
24
- * @inheritDoc
25
- */
26
- static get isOfficialPlugin(): true;
27
- /**
28
- * @inheritDoc
29
- */
30
- static get isPremiumPlugin(): true;
31
- /**
32
- * @inheritDoc
33
- */
34
- init(): void;
14
+ /**
15
+ * @inheritDoc
16
+ */
17
+ static get pluginName(): "PageBreakEditing";
18
+ /**
19
+ * @inheritDoc
20
+ * @internal
21
+ */
22
+ static get licenseFeatureCode(): string;
23
+ /**
24
+ * @inheritDoc
25
+ */
26
+ static override get isOfficialPlugin(): true;
27
+ /**
28
+ * @inheritDoc
29
+ */
30
+ static override get isPremiumPlugin(): true;
31
+ /**
32
+ * @inheritDoc
33
+ */
34
+ init(): void;
35
35
  }
@@ -1,29 +1,29 @@
1
1
  /**
2
- * @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
3
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
4
- */
2
+ * @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
3
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
4
+ */
5
5
  /**
6
- * @module page-break/pagebreakui
7
- */
8
- import { Plugin } from '@ckeditor/ckeditor5-core';
6
+ * @module page-break/pagebreakui
7
+ */
8
+ import { Plugin } from "@ckeditor/ckeditor5-core";
9
9
  /**
10
- * The page break UI plugin.
11
- */
10
+ * The page break UI plugin.
11
+ */
12
12
  export declare class PageBreakUI extends Plugin {
13
- /**
14
- * @inheritDoc
15
- */
16
- static get pluginName(): "PageBreakUI";
17
- /**
18
- * @inheritDoc
19
- */
20
- static get isOfficialPlugin(): true;
21
- /**
22
- * @inheritDoc
23
- */
24
- init(): void;
25
- /**
26
- * Creates a button for page break command to use either in toolbar or in menu bar.
27
- */
28
- private _createButton;
13
+ /**
14
+ * @inheritDoc
15
+ */
16
+ static get pluginName(): "PageBreakUI";
17
+ /**
18
+ * @inheritDoc
19
+ */
20
+ static override get isOfficialPlugin(): true;
21
+ /**
22
+ * @inheritDoc
23
+ */
24
+ init(): void;
25
+ /**
26
+ * Creates a button for page break command to use either in toolbar or in menu bar.
27
+ */
28
+ private _createButton;
29
29
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ckeditor/ckeditor5-page-break",
3
- "version": "48.2.0",
3
+ "version": "48.3.0-alpha.1",
4
4
  "description": "Page break feature for CKEditor 5.",
5
5
  "license": "SEE LICENSE IN LICENSE.md",
6
6
  "author": "CKSource (http://cksource.com/)",
@@ -26,12 +26,12 @@
26
26
  "./package.json": "./package.json"
27
27
  },
28
28
  "dependencies": {
29
- "@ckeditor/ckeditor5-core": "48.2.0",
30
- "@ckeditor/ckeditor5-engine": "48.2.0",
31
- "@ckeditor/ckeditor5-icons": "48.2.0",
32
- "@ckeditor/ckeditor5-ui": "48.2.0",
33
- "@ckeditor/ckeditor5-utils": "48.2.0",
34
- "@ckeditor/ckeditor5-widget": "48.2.0"
29
+ "@ckeditor/ckeditor5-core": "48.3.0-alpha.1",
30
+ "@ckeditor/ckeditor5-engine": "48.3.0-alpha.1",
31
+ "@ckeditor/ckeditor5-icons": "48.3.0-alpha.1",
32
+ "@ckeditor/ckeditor5-ui": "48.3.0-alpha.1",
33
+ "@ckeditor/ckeditor5-utils": "48.3.0-alpha.1",
34
+ "@ckeditor/ckeditor5-widget": "48.3.0-alpha.1"
35
35
  },
36
36
  "files": [
37
37
  "dist",