@ckeditor/ckeditor5-footnotes 0.0.0-nightly-20251015.0

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.
Files changed (47) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/LICENSE.md +18 -0
  3. package/README.md +45 -0
  4. package/build/footnotes.js +4 -0
  5. package/ckeditor5-metadata.json +65 -0
  6. package/dist/index-content.css +73 -0
  7. package/dist/index-editor.css +81 -0
  8. package/dist/index.css +184 -0
  9. package/dist/index.js +23 -0
  10. package/lang/contexts.json +26 -0
  11. package/package.json +73 -0
  12. package/src/augmentation.d.ts +34 -0
  13. package/src/augmentation.js +23 -0
  14. package/src/commands/insertfootnotecommand.d.ts +20 -0
  15. package/src/commands/insertfootnotecommand.js +23 -0
  16. package/src/footnotes.d.ts +33 -0
  17. package/src/footnotes.js +23 -0
  18. package/src/footnotesclipboard.d.ts +38 -0
  19. package/src/footnotesclipboard.js +23 -0
  20. package/src/footnotesconfig.d.ts +30 -0
  21. package/src/footnotesconfig.js +23 -0
  22. package/src/footnotesediting.d.ts +47 -0
  23. package/src/footnotesediting.js +23 -0
  24. package/src/footnotesproperties/commands/footnotesstartcommand.d.ts +28 -0
  25. package/src/footnotesproperties/commands/footnotesstartcommand.js +23 -0
  26. package/src/footnotesproperties/commands/footnotesstylecommand.d.ts +29 -0
  27. package/src/footnotesproperties/commands/footnotesstylecommand.js +23 -0
  28. package/src/footnotesproperties/footnotespropertiesconfig.d.ts +53 -0
  29. package/src/footnotesproperties/footnotespropertiesconfig.js +23 -0
  30. package/src/footnotesproperties/footnotespropertiesediting.d.ts +36 -0
  31. package/src/footnotesproperties/footnotespropertiesediting.js +23 -0
  32. package/src/footnotesproperties/footnotespropertiesui.d.ts +41 -0
  33. package/src/footnotesproperties/footnotespropertiesui.js +23 -0
  34. package/src/footnotesproperties/ui/footnotesdefinitionspropertiesview.d.ts +15 -0
  35. package/src/footnotesproperties/ui/footnotesdefinitionspropertiesview.js +23 -0
  36. package/src/footnotesproperties.d.ts +32 -0
  37. package/src/footnotesproperties.js +23 -0
  38. package/src/footnotestracker.d.ts +102 -0
  39. package/src/footnotestracker.js +23 -0
  40. package/src/footnotesui.d.ts +31 -0
  41. package/src/footnotesui.js +23 -0
  42. package/src/index.d.ts +21 -0
  43. package/src/index.js +23 -0
  44. package/src/modelelementtracker.d.ts +56 -0
  45. package/src/modelelementtracker.js +23 -0
  46. package/theme/footnotes.css +149 -0
  47. package/theme/footnotesproperties.css +54 -0
@@ -0,0 +1,23 @@
1
+ /*
2
+ * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
3
+ *
4
+ *
5
+ *
6
+ *
7
+ * +---------------------------------------------------------------------------------+
8
+ * | |
9
+ * | Hello stranger! |
10
+ * | |
11
+ * | |
12
+ * | What you're currently looking at is the source code of a legally protected, |
13
+ * | proprietary software. Any attempts to deobfuscate / disassemble this code |
14
+ * | are forbidden and will result in legal consequences. |
15
+ * | |
16
+ * | |
17
+ * +---------------------------------------------------------------------------------+
18
+ *
19
+ *
20
+ *
21
+ *
22
+ */
23
+ var _0x41614e=_0x562c;(function(_0x39da96,_0x4e1789){var _0x230805=_0x562c,_0x216662=_0x39da96();while(!![]){try{var _0x54fd39=parseInt(_0x230805(0x69))/0x1*(-parseInt(_0x230805(0x6d))/0x2)+-parseInt(_0x230805(0x72))/0x3*(-parseInt(_0x230805(0x68))/0x4)+parseInt(_0x230805(0x73))/0x5*(parseInt(_0x230805(0x74))/0x6)+parseInt(_0x230805(0x71))/0x7*(parseInt(_0x230805(0x66))/0x8)+parseInt(_0x230805(0x6c))/0x9+-parseInt(_0x230805(0x76))/0xa*(parseInt(_0x230805(0x6b))/0xb)+parseInt(_0x230805(0x6e))/0xc*(-parseInt(_0x230805(0x70))/0xd);if(_0x54fd39===_0x4e1789)break;else _0x216662['push'](_0x216662['shift']());}catch(_0x157530){_0x216662['push'](_0x216662['shift']());}}}(_0x312f,0xf2efc));import{Plugin as _0x5c7a1c}from'ckeditor5/src/core.js';function _0x562c(_0x37b5ee,_0x14db13){var _0x312f16=_0x312f();return _0x562c=function(_0x562c99,_0x5963d9){_0x562c99=_0x562c99-0x66;var _0x2d261b=_0x312f16[_0x562c99];return _0x2d261b;},_0x562c(_0x37b5ee,_0x14db13);}import{FootnotesPropertiesEditing as _0xb5da26}from'./footnotesproperties/footnotespropertiesediting.js';import{FootnotesPropertiesUI as _0x583a67}from'./footnotesproperties/footnotespropertiesui.js';function _0x312f(){var _0x26a312=['7YHzTnX','15MUDUtW','515EQuuBq','57450LxnyIv','FootnotesProperties','30LIqPQs','isPremiumPlugin','3282424SjvXvu','requires','997108IFXXch','846613CViNXv','pluginName','3221636YKvymR','13614129XvyklD','2HIIpzQ','17223420OEkJfe','isOfficialPlugin','13DYAUvR'];_0x312f=function(){return _0x26a312;};return _0x312f();}export class FootnotesProperties extends _0x5c7a1c{static get[_0x41614e(0x6a)](){var _0x4bdbb5=_0x41614e;return _0x4bdbb5(0x75);}static get[_0x41614e(0x67)](){return[_0xb5da26,_0x583a67];}static get[_0x41614e(0x6f)](){return!0x0;}static get[_0x41614e(0x77)](){return!0x0;}}
@@ -0,0 +1,102 @@
1
+ /**
2
+ * @license Copyright (c) 2003-2025, 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
+ /**
6
+ * @module footnotes/footnotestracker
7
+ * @publicApi
8
+ */
9
+ import { Plugin, type Editor } from 'ckeditor5/src/core.js';
10
+ import type { ModelElement } from 'ckeditor5/src/engine.js';
11
+ /**
12
+ * The footnotes tracker. It keeps track of all footnotes in the editor.
13
+ *
14
+ * It is used by the {@link module:footnotes/footnotesediting~FootnotesEditing} to update the list of
15
+ * footnotes when they are added or removed.
16
+ */
17
+ export declare class FootnotesTracker extends Plugin {
18
+ /**
19
+ * @inheritDoc
20
+ */
21
+ static get pluginName(): "FootnotesTracker";
22
+ /**
23
+ * @inheritDoc
24
+ */
25
+ static get isOfficialPlugin(): true;
26
+ /**
27
+ * @inheritDoc
28
+ */
29
+ static get isPremiumPlugin(): true;
30
+ /**
31
+ * @inheritDoc
32
+ */
33
+ constructor(editor: Editor);
34
+ /**
35
+ * @inheritDoc
36
+ */
37
+ init(): void;
38
+ /**
39
+ * Returns the footnotes definitions container element.
40
+ *
41
+ * @returns The footnotes definitions container or `null` if it does not exist.
42
+ */
43
+ getFootnotesDefinitionsObjectElement(): ModelElement | null;
44
+ /**
45
+ * Returns the footnote with the given ID.
46
+ *
47
+ * @param footnoteId The ID of the footnote to find.
48
+ * @returns The footnote item or `null` if not found.
49
+ */
50
+ getFootnote(footnoteId: string): Footnote | null;
51
+ /**
52
+ * Returns all footnotes in the editor.
53
+ *
54
+ * @returns An array of footnote items.
55
+ */
56
+ getFootnotes(): Array<Footnote>;
57
+ /**
58
+ * Returns the registered footnote formatter.
59
+ *
60
+ * @returns The footnote formatter or `null` if not set.
61
+ */
62
+ getFootnotesFormatter(): FootnoteFormatterCallback | null;
63
+ /**
64
+ * Registers a custom footnote formatter.
65
+ *
66
+ * @param formatter The footnote formatter to register.
67
+ */
68
+ setFootnoteFormatter(formatter: FootnoteFormatterCallback): void;
69
+ }
70
+ /**
71
+ * Footnote item stored in the {@link module:footnotes/footnotestracker~FootnotesTracker}.
72
+ */
73
+ export type Footnote = {
74
+ id: string;
75
+ reference: ModelElement;
76
+ definition: ModelElement;
77
+ };
78
+ /**
79
+ * Parameters for formatting footnote list values.
80
+ */
81
+ export type FormatFootnoteListValueParams = {
82
+ /**
83
+ * The footnote being formatted.
84
+ */
85
+ footnote: Footnote;
86
+ /**
87
+ * The footnotes definitions container element.
88
+ */
89
+ container: ModelElement;
90
+ /**
91
+ * Number of digits needed for the highest footnote number.
92
+ */
93
+ digits: number;
94
+ /**
95
+ * The footnote number to format (1-based).
96
+ */
97
+ value: number;
98
+ };
99
+ /**
100
+ * Footnote formatter interface.
101
+ */
102
+ export type FootnoteFormatterCallback = (params: FormatFootnoteListValueParams) => string;
@@ -0,0 +1,23 @@
1
+ /*
2
+ * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
3
+ *
4
+ *
5
+ *
6
+ *
7
+ * +---------------------------------------------------------------------------------+
8
+ * | |
9
+ * | Hello stranger! |
10
+ * | |
11
+ * | |
12
+ * | What you're currently looking at is the source code of a legally protected, |
13
+ * | proprietary software. Any attempts to deobfuscate / disassemble this code |
14
+ * | are forbidden and will result in legal consequences. |
15
+ * | |
16
+ * | |
17
+ * +---------------------------------------------------------------------------------+
18
+ *
19
+ *
20
+ *
21
+ *
22
+ */
23
+ const _0xd75a97=_0x5f4d;function _0x3078(){const _0x4ea700=['push','_insertEmptyFootnotesDefinitionsContainer','footnoteCounter','$graveyard','_ensureFootnotesDefinitionsContainerExists','has','footnoteRef','unshift','filter','some','splice','model','createPositionBefore','end','footnoteId','insert','rootName','_handleInsertedFootnoteReference','_footnotesDefinitions','remove','document','parent','createRangeIn','setAttribute','createRangeOn','getFootnotes','get','901686oCllJm','_handleFootnoteReferencesChanges','enqueueChange','from','FootnotesTracker','_handleRemoveFootnoteReferenceById','definition','findIndex','setFootnoteFormatter','_footnoteDefsTracker','registerPostFixer','add','footnotes.multiBlock','_handleFootnoteDefinitionsChanges','pluginName','move','paragraph','before','root','footnoteDefinition','getChanges','_sortFootnoteDefinitions','footnotesDefinitions','createPositionAt','_footnoteDefsContainerTracker','append','createElement','childCount','2TByqJX','listenTo','_handleMovedFootnoteReference','getFootnotesDefinitionsObjectElement','indexOf','3164511PGOOGv','_handleFootnotesDefinitionsObjectChanges','getFootnotesFormatter','_footnotes','find','_handleFootnotesDefinitionsObjectSync','getRootNames','1866040khECtm','singleton','low','_footnoteRefsTracker','1229020crtzJl','length','footnoteInlineContent','1539576tmBgrJ','getAttribute','reference','getChildren','init','1566690FQntLk','isEqual','config','min','differ','_updateFootnoteRefCounter','editor','change:data','after','_ensureFootnotesReferencesHaveProperOrder','compareWith','_footnoteFormatter','302069GPwNes','getFootnote','isOfficialPlugin','_updateFootnotesCounters','map','isPremiumPlugin'];_0x3078=function(){return _0x4ea700;};return _0x3078();}(function(_0x4ae2f5,_0x4d0cdc){const _0x2b0806=_0x5f4d,_0x25cd9a=_0x4ae2f5();while(!![]){try{const _0xae3748=parseInt(_0x2b0806(0x1e8))/0x1*(parseInt(_0x2b0806(0x1c4))/0x2)+-parseInt(_0x2b0806(0x1dc))/0x3+parseInt(_0x2b0806(0x1d7))/0x4+-parseInt(_0x2b0806(0x1d4))/0x5+parseInt(_0x2b0806(0x1a8))/0x6+parseInt(_0x2b0806(0x1c9))/0x7+-parseInt(_0x2b0806(0x1d0))/0x8;if(_0xae3748===_0x4d0cdc)break;else _0x25cd9a['push'](_0x25cd9a['shift']());}catch(_0x5aaa8e){_0x25cd9a['push'](_0x25cd9a['shift']());}}}(_0x3078,0x4651c));import{Plugin as _0x59bdf2}from'ckeditor5/src/core.js';import{ModelElementTracker as _0x258d50}from'./modelelementtracker.js';export class FootnotesTracker extends _0x59bdf2{[_0xd75a97(0x1cc)]=[];[_0xd75a97(0x19f)]=null;[_0xd75a97(0x1e7)]=null;[_0xd75a97(0x1c0)];[_0xd75a97(0x1d3)];[_0xd75a97(0x1b1)];static get[_0xd75a97(0x1b6)](){const _0x155005=_0xd75a97;return _0x155005(0x1ac);}static get[_0xd75a97(0x1ea)](){return!0x0;}static get[_0xd75a97(0x1ed)](){return!0x0;}constructor(_0x531b20){const _0x42cba8=_0xd75a97;super(_0x531b20),this[_0x42cba8(0x1c0)]=new _0x258d50(this[_0x42cba8(0x1e2)][_0x42cba8(0x198)],{'elementName':_0x42cba8(0x1be),'getElementKey':()=>_0x42cba8(0x1d1)}),this[_0x42cba8(0x1d3)]=new _0x258d50(this[_0x42cba8(0x1e2)][_0x42cba8(0x198)],{'elementName':_0x42cba8(0x193),'getElementKey':_0x35f592=>_0x35f592[_0x42cba8(0x1d8)](_0x42cba8(0x19b))}),this[_0x42cba8(0x1b1)]=new _0x258d50(this[_0x42cba8(0x1e2)][_0x42cba8(0x198)],{'elementName':_0x42cba8(0x1bb),'getElementKey':_0x3bb181=>_0x3bb181[_0x42cba8(0x1d8)](_0x42cba8(0x19b))});}[_0xd75a97(0x1db)](){const _0xbaf4e=_0xd75a97,{editor:_0x7fba1f}=this,{model:_0x54a8b2}=_0x7fba1f;_0x54a8b2[_0xbaf4e(0x1a1)][_0xbaf4e(0x1b2)](_0x154d98=>{const _0x3762ce=_0xbaf4e,_0xfe89b7=_0x54a8b2[_0x3762ce(0x1a1)][_0x3762ce(0x1e0)][_0x3762ce(0x1bc)]();let _0x639d47=!0x1;return this[_0x3762ce(0x1ca)](_0x154d98,_0xfe89b7)&&(_0x639d47=!0x0),this[_0x3762ce(0x1b5)](_0x154d98,_0xfe89b7)&&(_0x639d47=!0x0),this[_0x3762ce(0x1a9)](_0x154d98,_0xfe89b7)&&(_0x639d47=!0x0),this[_0x3762ce(0x1e5)](_0x154d98)&&(_0x639d47=!0x0),this[_0x3762ce(0x1ce)](_0x154d98)&&(_0x639d47=!0x0),this[_0x3762ce(0x1bd)](_0x154d98)&&(_0x639d47=!0x0),_0x639d47;}),this[_0xbaf4e(0x1c5)](_0x54a8b2[_0xbaf4e(0x1a1)],_0xbaf4e(0x1e3),()=>{const _0x505c0d=_0xbaf4e;_0x54a8b2[_0x505c0d(0x1aa)]({'isUndoable':!0x1},_0xa9fff4=>{const _0x6d3709=_0x505c0d;this[_0x6d3709(0x191)](_0xa9fff4);});},{'priority':_0xbaf4e(0x1d2)});}[_0xd75a97(0x1c7)](){const _0x254f2f=_0xd75a97;return this[_0x254f2f(0x19f)];}[_0xd75a97(0x1e9)](_0x38c93a){const _0x1f7404=_0xd75a97;return this[_0x1f7404(0x1cc)][_0x1f7404(0x1cd)](_0xd451df=>_0xd451df['id']===_0x38c93a)||null;}[_0xd75a97(0x1a6)](){const _0x5d39a7=_0xd75a97;return Array[_0x5d39a7(0x1ab)](this[_0x5d39a7(0x1cc)]);}[_0xd75a97(0x1cb)](){const _0x5f1269=_0xd75a97;return this[_0x5f1269(0x1e7)];}[_0xd75a97(0x1b0)](_0x299d10){const _0x3384c8=_0xd75a97;this[_0x3384c8(0x1e7)]=_0x299d10;}[_0xd75a97(0x1eb)](_0x32ed81,_0x2bdbdc=0x0){const _0x35d1ab=_0xd75a97;let _0x210701=!0x1;for(let _0x3754cc=_0x2bdbdc;_0x3754cc<this[_0x35d1ab(0x1cc)][_0x35d1ab(0x1d5)];_0x3754cc++)this[_0x35d1ab(0x1e1)](_0x32ed81,_0x3754cc)&&(_0x210701=!0x0);return _0x210701;}[_0xd75a97(0x18e)](_0x46c1da,_0x47f9c2){const _0xda6f63=_0xd75a97,_0x58c992=_0x46c1da[_0xda6f63(0x1c2)](_0xda6f63(0x1be),{});return _0x46c1da[_0xda6f63(0x1c1)](_0x58c992,_0x47f9c2),this[_0xda6f63(0x19f)]=_0x58c992,_0x58c992;}[_0xd75a97(0x191)](_0x58da66){const _0x15b6f0=_0xd75a97;if(!this[_0x15b6f0(0x1cc)][_0x15b6f0(0x1d5)]||this[_0x15b6f0(0x19f)])return;const _0x49be7f=this[_0x15b6f0(0x1cc)][0x0][_0x15b6f0(0x1d9)][_0x15b6f0(0x1ba)],_0x1134e1=this[_0x15b6f0(0x18e)](_0x58da66,_0x49be7f);for(const _0x31d670 of this[_0x15b6f0(0x1cc)])_0x31d670[_0x15b6f0(0x1ae)][_0x15b6f0(0x1a2)]||_0x58da66[_0x15b6f0(0x19c)](_0x31d670[_0x15b6f0(0x1ae)],_0x1134e1,_0x15b6f0(0x19a));this[_0x15b6f0(0x1eb)](_0x58da66);}[_0xd75a97(0x1ca)](_0x1f63cf,_0x1722cc){const _0x4b3358=_0xd75a97;let _0x36c6e0=!0x1;const {inserted:_0x1ec428,removed:_0x58c5d5,moved:_0x243516}=this[_0x4b3358(0x1c0)][_0x4b3358(0x1bc)](_0x1722cc);if(_0x243516[_0x4b3358(0x1d5)]&&(this[_0x4b3358(0x19f)]=_0x243516[0x0]),_0x1ec428[_0x4b3358(0x1d5)]){if(_0x1ec428[_0x4b3358(0x1d5)]>0x1||this[_0x4b3358(0x19f)]&&_0x1ec428[_0x4b3358(0x196)](_0x2bf963=>_0x2bf963!==this[_0x4b3358(0x19f)])){const _0x56351d=_0x1f63cf[_0x4b3358(0x1c2)](_0x4b3358(0x1be),{}),_0x5c6407=[];this[_0x4b3358(0x19f)]&&_0x5c6407[_0x4b3358(0x18d)](this[_0x4b3358(0x19f)]),_0x5c6407[_0x4b3358(0x18d)](..._0x1ec428),_0x1f63cf[_0x4b3358(0x19c)](_0x56351d,_0x5c6407[0x0],_0x4b3358(0x1b9));for(const _0x4bd3d4 of _0x5c6407)_0x1f63cf[_0x4b3358(0x1b7)](_0x1f63cf[_0x4b3358(0x1a3)](_0x4bd3d4),_0x1f63cf[_0x4b3358(0x1bf)](_0x56351d,_0x4b3358(0x19a))),_0x1f63cf[_0x4b3358(0x1a0)](_0x4bd3d4);this[_0x4b3358(0x19f)]=_0x56351d,this[_0x4b3358(0x1eb)](_0x1f63cf),_0x36c6e0=!0x0;}else this[_0x4b3358(0x19f)]=_0x1ec428[0x0];}if(_0x58c5d5[_0x4b3358(0x1d5)]&&_0x4b3358(0x190)===this[_0x4b3358(0x19f)]?.[_0x4b3358(0x1ba)][_0x4b3358(0x19d)]){for(const _0x528ff3 of this[_0x4b3358(0x1cc)])_0x1f63cf[_0x4b3358(0x1a0)](_0x528ff3[_0x4b3358(0x1d9)]),_0x36c6e0=!0x0;this[_0x4b3358(0x1cc)]=[],this[_0x4b3358(0x19f)]=null;}return _0x36c6e0;}[_0xd75a97(0x1b5)](_0x2dbc53,_0xbefcd9){const _0x10cff9=_0xd75a97;let _0x2f64a0=!0x1;const _0x1c59f2=this[_0x10cff9(0x1e2)][_0x10cff9(0x1de)][_0x10cff9(0x1a7)](_0x10cff9(0x1b4)),{inserted:_0x8da60b,moved:_0x1934cf}=this[_0x10cff9(0x1b1)][_0x10cff9(0x1bc)](_0xbefcd9);for(const _0x10307a of[..._0x1934cf,..._0x8da60b]){const _0x10ac7e=_0x10307a[_0x10cff9(0x1d8)](_0x10cff9(0x19b)),_0x13d649=this[_0x10cff9(0x1e9)](_0x10ac7e);_0x13d649&&(_0x13d649[_0x10cff9(0x1ae)]=_0x10307a),_(_0x2dbc53,_0x1c59f2,_0x10307a)&&(_0x2f64a0=!0x0);}return _0x2f64a0;}[_0xd75a97(0x1a9)](_0x4f5c8a,_0x297565){const _0xf3cd95=_0xd75a97;let _0x1a5085=!0x1;const {removed:_0x522b3f,inserted:_0x58a5f1,moved:_0x541205}=this[_0xf3cd95(0x1d3)][_0xf3cd95(0x1bc)](_0x297565);for(const _0x4e5eb9 of _0x522b3f)this[_0xf3cd95(0x1ad)](_0x4f5c8a,_0x4e5eb9)&&(_0x1a5085=!0x0);for(const _0x2353e4 of _0x58a5f1)this[_0xf3cd95(0x19e)](_0x4f5c8a,_0x2353e4)&&(_0x1a5085=!0x0);for(const _0x4127ff of _0x541205)this[_0xf3cd95(0x1c6)](_0x4f5c8a,_0x4127ff)&&(_0x1a5085=!0x0);return _0x1a5085;}[_0xd75a97(0x1ce)](_0x4de8bc){const _0x12b91e=_0xd75a97;if(!this[_0x12b91e(0x19f)])return!0x1;let _0x303130=!0x1;if(this[_0x12b91e(0x19f)][_0x12b91e(0x1c3)]!==this[_0x12b91e(0x1cc)][_0x12b91e(0x1d5)]){const _0x2d156c=[];for(const _0x31c4d9 of this[_0x12b91e(0x19f)][_0x12b91e(0x1da)]()){const _0x3eb5fc=_0x31c4d9[_0x12b91e(0x1d8)](_0x12b91e(0x19b));this[_0x12b91e(0x1e9)](_0x3eb5fc)||(_0x2d156c[_0x12b91e(0x194)](_0x31c4d9),_0x303130=!0x0);}for(const _0x30b64d of _0x2d156c)_0x4de8bc[_0x12b91e(0x1a0)](_0x30b64d);}const _0xd26ee8=new Set(),_0x3a134d=[];for(const _0x503305 of this[_0x12b91e(0x19f)][_0x12b91e(0x1da)]()){const _0x55af4e=_0x503305[_0x12b91e(0x1d8)](_0x12b91e(0x19b));_0xd26ee8[_0x12b91e(0x192)](_0x55af4e)?(_0x3a134d[_0x12b91e(0x194)](_0x503305),_0x303130=!0x0):_0xd26ee8[_0x12b91e(0x1b3)](_0x55af4e);}for(const _0x572309 of _0x3a134d)_0x4de8bc[_0x12b91e(0x1a0)](_0x572309);return this[_0x12b91e(0x19f)][_0x12b91e(0x1c3)]||(_0x4de8bc[_0x12b91e(0x1a0)](this[_0x12b91e(0x19f)]),this[_0x12b91e(0x19f)]=null,_0x303130=!0x0),_0x303130;}[_0xd75a97(0x19e)](_0x8efb90,_0x494452){const _0x5eff92=_0xd75a97;if(this[_0x5eff92(0x1cc)][_0x5eff92(0x1cd)](_0x8579f1=>_0x8579f1[_0x5eff92(0x1d9)]===_0x494452))return!0x1;let _0x5641e0=!0x1;const _0x3b97f1=_0x494452[_0x5eff92(0x1d8)](_0x5eff92(0x19b)),_0x5b895c=this[_0x5eff92(0x1e9)](_0x3b97f1);_0x5b895c&&(_0x8efb90[_0x5eff92(0x1a0)](_0x5b895c[_0x5eff92(0x1d9)]),this[_0x5eff92(0x1cc)]=this[_0x5eff92(0x1cc)][_0x5eff92(0x195)](_0x42b9bb=>_0x42b9bb['id']!==_0x3b97f1),_0x5641e0=!0x0);let _0x398e0b=this[_0x5eff92(0x19f)]?function(_0x5f1fb2,_0x395a52){const _0x579680=_0x5eff92;for(const _0x45060f of _0x5f1fb2[_0x579680(0x1da)]())if(_0x45060f[_0x579680(0x1d8)](_0x579680(0x19b))===_0x395a52)return _0x45060f;return null;}(this[_0x5eff92(0x19f)],_0x3b97f1):null;_0x398e0b||(_0x398e0b=_0x8efb90[_0x5eff92(0x1c2)](_0x5eff92(0x1bb),{'footnoteId':_0x3b97f1}),this[_0x5eff92(0x19f)]&&(_0x8efb90[_0x5eff92(0x19c)](_0x398e0b,this[_0x5eff92(0x19f)],_0x5eff92(0x19a)),_0x5641e0=!0x0));const _0x56b3cb={'id':_0x3b97f1,'reference':_0x494452,'definition':_0x398e0b},_0xdb2baf=I(this[_0x5eff92(0x1e2)][_0x5eff92(0x198)],this[_0x5eff92(0x1cc)],_0x494452);return this[_0x5eff92(0x1cc)][_0x5eff92(0x197)](_0xdb2baf,0x0,_0x56b3cb),this[_0x5eff92(0x1eb)](_0x8efb90,_0xdb2baf)&&(_0x5641e0=!0x0),_0x5641e0;}[_0xd75a97(0x1ad)](_0x413a61,_0x17e0b1){const _0x326d17=_0xd75a97,_0x43b473=this[_0x326d17(0x1cc)][_0x326d17(0x1af)](_0xada931=>_0xada931['id']===_0x17e0b1);if(-0x1===_0x43b473)return!0x1;let _0x3ecbfd=!0x1;const _0x562367=this[_0x326d17(0x1cc)][_0x43b473];return _0x326d17(0x190)!==_0x562367[_0x326d17(0x1ae)][_0x326d17(0x1ba)][_0x326d17(0x19d)]&&(_0x413a61[_0x326d17(0x1a0)](_0x562367[_0x326d17(0x1ae)]),_0x3ecbfd=!0x0),this[_0x326d17(0x1cc)][_0x326d17(0x197)](_0x43b473,0x1),this[_0x326d17(0x1eb)](_0x413a61,_0x43b473)&&(_0x3ecbfd=!0x0),_0x3ecbfd;}[_0xd75a97(0x1c6)](_0x5d8c30,_0x547dfe){const _0x153f85=_0xd75a97,_0x818424=_0x547dfe[_0x153f85(0x1d8)](_0x153f85(0x19b)),_0x34c768=this[_0x153f85(0x1cc)][_0x153f85(0x1af)](_0x4666be=>_0x4666be['id']===_0x818424),_0x3a9014=this[_0x153f85(0x1cc)][_0x34c768];let _0xbbf175=!0x1;_0x3a9014[_0x153f85(0x1d9)]=_0x547dfe,this[_0x153f85(0x1cc)][_0x153f85(0x197)](_0x34c768,0x1);const _0x5b173a=I(this[_0x153f85(0x1e2)][_0x153f85(0x198)],this[_0x153f85(0x1cc)],_0x547dfe);return this[_0x153f85(0x1cc)][_0x153f85(0x197)](_0x5b173a,0x0,_0x3a9014),this[_0x153f85(0x1eb)](_0x5d8c30,Math[_0x153f85(0x1df)](_0x34c768,_0x5b173a))&&(_0xbbf175=!0x0),_0xbbf175;}[_0xd75a97(0x1e1)](_0x1fbd40,_0x2f5ac5){const _0x40d164=_0xd75a97;if(!this[_0x40d164(0x19f)])return!0x1;const _0x477c61=this[_0x40d164(0x1cc)][_0x2f5ac5];let _0x5f4271;return _0x5f4271=this[_0x40d164(0x1e7)]?this[_0x40d164(0x1e7)]({'footnote':_0x477c61,'container':this[_0x40d164(0x19f)],'digits':String(this[_0x40d164(0x1cc)][_0x40d164(0x1d5)])[_0x40d164(0x1d5)],'value':_0x2f5ac5+0x1}):String(_0x2f5ac5+0x1),_0x477c61[_0x40d164(0x1d9)][_0x40d164(0x1d8)](_0x40d164(0x18f))!=_0x5f4271&&(_0x1fbd40[_0x40d164(0x1a4)](_0x40d164(0x18f),_0x5f4271,_0x477c61[_0x40d164(0x1d9)]),!0x0);}[_0xd75a97(0x1bd)](_0x1459d4){const _0x16ee26=_0xd75a97;if(!this[_0x16ee26(0x19f)]||this[_0x16ee26(0x1cc)][_0x16ee26(0x1d5)]<0x2)return!0x1;if(function(_0x5d5074,_0x4b839b){const _0x42c0ad=_0x16ee26;if(_0x5d5074[_0x42c0ad(0x1d5)]!==_0x4b839b[_0x42c0ad(0x1d5)])return!0x1;for(let _0x4f9c37=0x0;_0x4f9c37<_0x5d5074[_0x42c0ad(0x1d5)];_0x4f9c37++)if(_0x5d5074[_0x4f9c37]!==_0x4b839b[_0x4f9c37])return!0x1;return!0x0;}(this[_0x16ee26(0x1cc)][_0x16ee26(0x1ec)](_0x15bc00=>_0x15bc00['id']),Array[_0x16ee26(0x1ab)](this[_0x16ee26(0x19f)][_0x16ee26(0x1da)]())[_0x16ee26(0x1ec)](_0x4cd36c=>_0x4cd36c[_0x16ee26(0x1d8)](_0x16ee26(0x19b)))))return!0x1;let _0x1b0a77=!0x1;for(let _0x34b56f=0x0;_0x34b56f<this[_0x16ee26(0x1cc)][_0x16ee26(0x1d5)];_0x34b56f++){const _0x4b23fc=this[_0x16ee26(0x1cc)][_0x34b56f],_0x56c333=_0x1459d4[_0x16ee26(0x199)](_0x4b23fc[_0x16ee26(0x1ae)]),_0x687c3c=_0x1459d4[_0x16ee26(0x1bf)](this[_0x16ee26(0x19f)],_0x34b56f);_0x56c333[_0x16ee26(0x1dd)](_0x687c3c)||(_0x1459d4[_0x16ee26(0x1b7)](_0x1459d4[_0x16ee26(0x1a5)](_0x4b23fc[_0x16ee26(0x1ae)]),_0x687c3c),_0x1b0a77=!0x0);}return _0x1b0a77;}[_0xd75a97(0x1e5)](_0x48acfd){const _0x53eb27=_0xd75a97;if(!this[_0x53eb27(0x1cc)][_0x53eb27(0x1d5)])return!0x1;const {model:_0x41657f}=this[_0x53eb27(0x1e2)];let _0x5ea9cf=!0x1;for(let _0x2e54c5=0x0;_0x2e54c5<this[_0x53eb27(0x1cc)][_0x53eb27(0x1d5)]-0x1;_0x2e54c5++){const _0x528aac=this[_0x53eb27(0x1cc)][_0x2e54c5],_0x475e11=this[_0x53eb27(0x1cc)][_0x2e54c5+0x1],_0x151208=_0x41657f[_0x53eb27(0x199)](_0x528aac[_0x53eb27(0x1d9)]),_0x3f208c=_0x41657f[_0x53eb27(0x199)](_0x475e11[_0x53eb27(0x1d9)]);_0x53eb27(0x1e4)===_0x151208[_0x53eb27(0x1e6)](_0x3f208c)&&(this[_0x53eb27(0x1c6)](_0x48acfd,_0x528aac[_0x53eb27(0x1d9)]),_0x2e54c5=-0x1,_0x5ea9cf=!0x0);}return _0x5ea9cf;}}function _(_0x439d13,_0x2b1b73,_0x3d9b22){const _0x472ac2=_0xd75a97;if(_0x3d9b22[_0x472ac2(0x1c3)])return!0x1;const _0x2cfc78=_0x2b1b73?_0x472ac2(0x1b8):_0x472ac2(0x1d6);return _0x439d13[_0x472ac2(0x19c)](_0x439d13[_0x472ac2(0x1c2)](_0x2cfc78),_0x3d9b22),!0x0;}function _0x5f4d(_0x2e0080,_0x5ce5d0){const _0x30789d=_0x3078();return _0x5f4d=function(_0x5f4da1,_0x5431cd){_0x5f4da1=_0x5f4da1-0x18d;let _0x3bb93a=_0x30789d[_0x5f4da1];return _0x3bb93a;},_0x5f4d(_0x2e0080,_0x5ce5d0);}function I(_0x6f1325,_0x46b2f9,_0x5d7588){const _0xa1c4eb=_0xd75a97;if(0x0===_0x46b2f9[_0xa1c4eb(0x1d5)])return 0x0;const _0x50854c=_0x6f1325[_0xa1c4eb(0x199)](_0x5d7588);for(let _0x51444f=0x0;_0x51444f<_0x46b2f9[_0xa1c4eb(0x1d5)];_0x51444f++){const _0x33293a=_0x46b2f9[_0x51444f],_0x11e366=_0x6f1325[_0xa1c4eb(0x199)](_0x33293a[_0xa1c4eb(0x1d9)]);if(_0xa1c4eb(0x1b9)===_0x50854c[_0xa1c4eb(0x1e6)](_0x11e366))return _0x51444f;}const _0x5ceb9a=_0x5d7588[_0xa1c4eb(0x1ba)];let _0x5b6906=-0x1;for(let _0x2937a7=_0x46b2f9[_0xa1c4eb(0x1d5)]-0x1;_0x2937a7>=0x0;_0x2937a7--)if(_0x46b2f9[_0x2937a7][_0xa1c4eb(0x1d9)][_0xa1c4eb(0x1ba)]===_0x5ceb9a){_0x5b6906=_0x2937a7;break;}if(-0x1!==_0x5b6906)return _0x5b6906+0x1;const _0x545c1c=_0x6f1325[_0xa1c4eb(0x1a1)][_0xa1c4eb(0x1cf)](),_0x4ef914=_0x545c1c[_0xa1c4eb(0x1c8)](_0x5ceb9a[_0xa1c4eb(0x19d)]),_0x43b743=_0x545c1c[_0x4ef914+0x1];if(_0x43b743){for(let _0x148924=0x0;_0x148924<_0x46b2f9[_0xa1c4eb(0x1d5)];_0x148924++)if(_0x46b2f9[_0x148924][_0xa1c4eb(0x1d9)][_0xa1c4eb(0x1ba)][_0xa1c4eb(0x19d)]===_0x43b743)return _0x148924;}return _0x46b2f9[_0xa1c4eb(0x1d5)];}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * @license Copyright (c) 2003-2025, 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 { Plugin } from 'ckeditor5/src/core.js';
6
+ import '../theme/footnotes.css';
7
+ /**
8
+ * The footnotes UI plugin.
9
+ */
10
+ export declare class FootnotesUI extends Plugin {
11
+ /**
12
+ * @inheritDoc
13
+ */
14
+ static get pluginName(): "FootnotesUI";
15
+ /**
16
+ * @inheritDoc
17
+ */
18
+ static get isOfficialPlugin(): true;
19
+ /**
20
+ * @inheritDoc
21
+ */
22
+ static get isPremiumPlugin(): true;
23
+ /**
24
+ * @inheritDoc
25
+ */
26
+ init(): void;
27
+ /**
28
+ * @inheritDoc
29
+ */
30
+ destroy(): void;
31
+ }
@@ -0,0 +1,23 @@
1
+ /*
2
+ * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
3
+ *
4
+ *
5
+ *
6
+ *
7
+ * +---------------------------------------------------------------------------------+
8
+ * | |
9
+ * | Hello stranger! |
10
+ * | |
11
+ * | |
12
+ * | What you're currently looking at is the source code of a legally protected, |
13
+ * | proprietary software. Any attempts to deobfuscate / disassemble this code |
14
+ * | are forbidden and will result in legal consequences. |
15
+ * | |
16
+ * | |
17
+ * +---------------------------------------------------------------------------------+
18
+ *
19
+ *
20
+ *
21
+ *
22
+ */
23
+ import{ButtonView as _0x3302b8,MenuBarMenuListItemButtonView as _0x473273}from'ckeditor5/src/ui.js';import{Plugin as _0x2793dd}from'ckeditor5/src/core.js';import{IconFootnote as _0x3c2cc3}from'ckeditor5/src/icons.js';import'../theme/footnotes.css';export class FootnotesUI extends _0x2793dd{['licenseKey'];['_licenseKeyCheckInterval'];static get['pluginName'](){return'FootnotesUI';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}['init'](){const {editor:_0x314ab7}=this,{componentFactory:_0x3b51b9}=_0x314ab7['ui'];_0x3b51b9['add']('insertFootnote',v(_0x314ab7,_0x3302b8)),_0x3b51b9['add']('menuBar:insertFootnote',v(_0x314ab7,_0x473273)),this['licenseKey']=this['editor']['config']['get']('licenseKey');const _0x1bb122=this['editor'];this['_licenseKeyCheckInterval']=setInterval(()=>{let _0x283a31;for(const _0xa891c4 in _0x1bb122){const _0x16f548=_0xa891c4,_0x1b5cd4=_0x1bb122[_0x16f548];if('footnotesLicenseKeyValid'==_0x1b5cd4||'footnotesLicenseKeyInvalid'==_0x1b5cd4||'footnotesLicenseKeyExpired'==_0x1b5cd4||'footnotesLicenseKeyDomainLimit'==_0x1b5cd4||'footnotesLicenseKeyNotAllowed'==_0x1b5cd4||'footnotesLicenseKeyEvaluationLimit'==_0x1b5cd4||'footnotesLicenseKeyTrialLimit'==_0x1b5cd4||'footnotesLicenseKeyUsageLimit'==_0x1b5cd4){delete _0x1bb122[_0x16f548],_0x283a31=_0x1b5cd4,clearInterval(this['_licenseKeyCheckInterval']),this['_licenseKeyCheckInterval']=void 0x0;break;}}'footnotesLicenseKeyInvalid'==_0x283a31&&_0x1bb122['_showLicenseError']('invalid'),'footnotesLicenseKeyExpired'==_0x283a31&&_0x1bb122['_showLicenseError']('expired'),'footnotesLicenseKeyDomainLimit'==_0x283a31&&_0x1bb122['_showLicenseError']('domainLimit'),'footnotesLicenseKeyNotAllowed'==_0x283a31&&_0x1bb122['_showLicenseError']('featureNotAllowed','Footnotes'),'footnotesLicenseKeyEvaluationLimit'==_0x283a31&&_0x1bb122['_showLicenseError']('evaluationLimit'),'footnotesLicenseKeyTrialLimit'==_0x283a31&&_0x1bb122['_showLicenseError']('trialLimit'),'footnotesLicenseKeyUsageLimit'==_0x283a31&&_0x1bb122['_showLicenseError']('usageLimit');},0x3e8);}['destroy'](){super['destroy'](),this['_licenseKeyCheckInterval']&&clearInterval(this['_licenseKeyCheckInterval']);}}function v(_0x218ed2,_0x4a9880){const _0x43ba9b=_0x218ed2['commands']['get']('insertFootnote');return _0x115fdf=>{const {t:t}=_0x115fdf,_0x109748=new _0x4a9880(_0x115fdf),_0x324007=_0x109748 instanceof _0x473273;return _0x109748['bind']('isEnabled')['to'](_0x43ba9b,'isEnabled'),_0x109748['set']({'label':t(_0x324007?'Footnote':'Insert\x20footnote'),'icon':_0x3c2cc3,'tooltip':!0x0}),_0x109748['on']('execute',()=>{_0x43ba9b['execute'](),_0x218ed2['editing']['view']['focus']();}),_0x109748;};}
package/src/index.d.ts ADDED
@@ -0,0 +1,21 @@
1
+ /**
2
+ * @license Copyright (c) 2003-2025, 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
+ /**
6
+ * @module footnotes
7
+ */
8
+ import './augmentation.js';
9
+ export { Footnotes } from './footnotes.js';
10
+ export { FootnotesEditing } from './footnotesediting.js';
11
+ export { FootnotesClipboard } from './footnotesclipboard.js';
12
+ export { FootnotesUI } from './footnotesui.js';
13
+ export { InsertFootnoteCommand } from './commands/insertfootnotecommand.js';
14
+ export { FootnotesTracker, type Footnote, type FootnoteFormatterCallback, type FormatFootnoteListValueParams } from './footnotestracker.js';
15
+ export type { FootnotesConfig } from './footnotesconfig.js';
16
+ export { FootnotesStyleCommand } from './footnotesproperties/commands/footnotesstylecommand.js';
17
+ export { FootnotesStartCommand } from './footnotesproperties/commands/footnotesstartcommand.js';
18
+ export { FootnotesPropertiesEditing } from './footnotesproperties/footnotespropertiesediting.js';
19
+ export { FootnotesPropertiesUI } from './footnotesproperties/footnotespropertiesui.js';
20
+ export { FootnotesProperties } from './footnotesproperties.js';
21
+ export type { FootnotesDefinitionsStyle, FootnotesPropertiesConfig } from './footnotesproperties/footnotespropertiesconfig.js';
package/src/index.js ADDED
@@ -0,0 +1,23 @@
1
+ /*
2
+ * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
3
+ *
4
+ *
5
+ *
6
+ *
7
+ * +---------------------------------------------------------------------------------+
8
+ * | |
9
+ * | Hello stranger! |
10
+ * | |
11
+ * | |
12
+ * | What you're currently looking at is the source code of a legally protected, |
13
+ * | proprietary software. Any attempts to deobfuscate / disassemble this code |
14
+ * | are forbidden and will result in legal consequences. |
15
+ * | |
16
+ * | |
17
+ * +---------------------------------------------------------------------------------+
18
+ *
19
+ *
20
+ *
21
+ *
22
+ */
23
+ (function(_0x5ee129,_0x12afce){var _0x4f6da0=_0x2693,_0x4528b9=_0x5ee129();while(!![]){try{var _0x58c7f5=-parseInt(_0x4f6da0(0x86))/0x1*(-parseInt(_0x4f6da0(0x87))/0x2)+parseInt(_0x4f6da0(0x85))/0x3*(parseInt(_0x4f6da0(0x8d))/0x4)+parseInt(_0x4f6da0(0x8c))/0x5*(parseInt(_0x4f6da0(0x8a))/0x6)+parseInt(_0x4f6da0(0x8f))/0x7+-parseInt(_0x4f6da0(0x88))/0x8*(parseInt(_0x4f6da0(0x8e))/0x9)+-parseInt(_0x4f6da0(0x90))/0xa+parseInt(_0x4f6da0(0x89))/0xb*(-parseInt(_0x4f6da0(0x8b))/0xc);if(_0x58c7f5===_0x12afce)break;else _0x4528b9['push'](_0x4528b9['shift']());}catch(_0xbe316d){_0x4528b9['push'](_0x4528b9['shift']());}}}(_0x3b53,0x9b292));import'./augmentation.js';export{Footnotes}from'./footnotes.js';export{FootnotesEditing}from'./footnotesediting.js';function _0x2693(_0x331359,_0xf44baa){var _0x3b53a4=_0x3b53();return _0x2693=function(_0x2693fb,_0x447d4e){_0x2693fb=_0x2693fb-0x85;var _0x3f2d5e=_0x3b53a4[_0x2693fb];return _0x3f2d5e;},_0x2693(_0x331359,_0xf44baa);}export{FootnotesClipboard}from'./footnotesclipboard.js';export{FootnotesUI}from'./footnotesui.js';export{InsertFootnoteCommand}from'./commands/insertfootnotecommand.js';export{FootnotesTracker}from'./footnotestracker.js';function _0x3b53(){var _0x22d5df=['4500EiSuwl','2057395uTrJWx','115124hxbkTM','18eRhhGK','5822257DWICGP','3517460ZyaKZh','9JKpCIi','4MPGBMd','579946zsaaym','3296056hTGmls','44033kLtgaN','18pTgqST'];_0x3b53=function(){return _0x22d5df;};return _0x3b53();}export{FootnotesStyleCommand}from'./footnotesproperties/commands/footnotesstylecommand.js';export{FootnotesStartCommand}from'./footnotesproperties/commands/footnotesstartcommand.js';export{FootnotesPropertiesEditing}from'./footnotesproperties/footnotespropertiesediting.js';export{FootnotesPropertiesUI}from'./footnotesproperties/footnotespropertiesui.js';export{FootnotesProperties}from'./footnotesproperties.js';
@@ -0,0 +1,56 @@
1
+ /**
2
+ * @license Copyright (c) 2003-2025, 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
+ /**
6
+ * @module footnotes/modelelementtracker
7
+ */
8
+ import type { ModelElement, Model, DifferItem } from 'ckeditor5/src/engine.js';
9
+ /**
10
+ * Tracks changes of specific elements in document changes.
11
+ */
12
+ export declare class ModelElementTracker {
13
+ /**
14
+ * @param model The editor model instance.
15
+ * @param config Configuration for tracking specific element type.
16
+ */
17
+ constructor(model: Model, config: TrackElementChangesConfig);
18
+ /**
19
+ * Analyzes document changes and returns the set of changes for the tracked element type.
20
+ *
21
+ * @param documentChanges Array of document changes to analyze.
22
+ * @returns Object containing removed, inserted, and moved elements.
23
+ */
24
+ getChanges(documentChanges: Array<DifferItem>): ElementChangesResult;
25
+ }
26
+ /**
27
+ * Configuration for tracking element changes.
28
+ */
29
+ type TrackElementChangesConfig = {
30
+ /**
31
+ * Name of the element to track (e.g., 'footnoteRef', 'footnotesDefinitions').
32
+ */
33
+ elementName: string;
34
+ /**
35
+ * Function to extract a unique key from the element for tracking purposes.
36
+ */
37
+ getElementKey: (element: ModelElement) => string;
38
+ };
39
+ /**
40
+ * Result of tracking element changes.
41
+ */
42
+ type ElementChangesResult = {
43
+ /**
44
+ * Set of removed element keys.
45
+ */
46
+ removed: Array<string>;
47
+ /**
48
+ * Map of inserted element keys to their elements.
49
+ */
50
+ inserted: Array<ModelElement>;
51
+ /**
52
+ * Set of moved elements (removed + inserted).
53
+ */
54
+ moved: Array<ModelElement>;
55
+ };
56
+ export {};
@@ -0,0 +1,23 @@
1
+ /*
2
+ * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
3
+ *
4
+ *
5
+ *
6
+ *
7
+ * +---------------------------------------------------------------------------------+
8
+ * | |
9
+ * | Hello stranger! |
10
+ * | |
11
+ * | |
12
+ * | What you're currently looking at is the source code of a legally protected, |
13
+ * | proprietary software. Any attempts to deobfuscate / disassemble this code |
14
+ * | are forbidden and will result in legal consequences. |
15
+ * | |
16
+ * | |
17
+ * +---------------------------------------------------------------------------------+
18
+ *
19
+ *
20
+ *
21
+ *
22
+ */
23
+ function _0x796d(_0x13b4ba,_0x4121d7){const _0x44756f=_0x4475();return _0x796d=function(_0x796d11,_0x5850e3){_0x796d11=_0x796d11-0x17b;let _0x5820d6=_0x44756f[_0x796d11];return _0x5820d6;},_0x796d(_0x13b4ba,_0x4121d7);}const _0x23a228=_0x796d;(function(_0x433aab,_0x6f0ef1){const _0x4f19f5=_0x796d,_0x244332=_0x433aab();while(!![]){try{const _0x4cf767=parseInt(_0x4f19f5(0x198))/0x1*(parseInt(_0x4f19f5(0x199))/0x2)+parseInt(_0x4f19f5(0x19b))/0x3*(parseInt(_0x4f19f5(0x18e))/0x4)+-parseInt(_0x4f19f5(0x197))/0x5+parseInt(_0x4f19f5(0x190))/0x6*(-parseInt(_0x4f19f5(0x1a2))/0x7)+parseInt(_0x4f19f5(0x186))/0x8*(parseInt(_0x4f19f5(0x181))/0x9)+parseInt(_0x4f19f5(0x18c))/0xa+-parseInt(_0x4f19f5(0x185))/0xb*(parseInt(_0x4f19f5(0x17e))/0xc);if(_0x4cf767===_0x6f0ef1)break;else _0x244332['push'](_0x244332['shift']());}catch(_0x50a6d2){_0x244332['push'](_0x244332['shift']());}}}(_0x4475,0x72e1b));function _0x4475(){const _0x41bc8a=['36vrcYVZ','getChanges','remove','2064537bqyjrc','element','position','slice','1590897UMdSCi','32CzHjpx','push','name','set','root','rootName','2737700ylPQYG','get','12WrUjsN','_trackedElements','646446YzqAda','_elementName','attributes','nodeAfter','from','_model','flat','4677080uCdGlT','830825DdkXSw','2uauVVi','$graveyard','248649RBvbJt','elementName','_getElementKey','createRangeOn','type','values','length','28HPBIzd','$text','insert','getItems','add','has','getElementKey','delete'];_0x4475=function(){return _0x41bc8a;};return _0x4475();}export class ModelElementTracker{[_0x23a228(0x195)];[_0x23a228(0x191)];[_0x23a228(0x19d)];[_0x23a228(0x18f)]=new Map();constructor(_0x40ce30,_0x1703ca){const _0x274189=_0x23a228;this[_0x274189(0x195)]=_0x40ce30,this[_0x274189(0x191)]=_0x1703ca[_0x274189(0x19c)],this[_0x274189(0x19d)]=_0x1703ca[_0x274189(0x17c)];}[_0x23a228(0x17f)](_0x32a35d){const _0x5ea778=_0x23a228,_0x3da474=new Set(),_0x5a0754=new Map();for(const _0x1f49cc of _0x32a35d){if(_0x5ea778(0x1a4)===_0x1f49cc[_0x5ea778(0x19f)]&&_0x5ea778(0x1a3)!==_0x1f49cc[_0x5ea778(0x188)]&&_0x1f49cc[_0x5ea778(0x183)][_0x5ea778(0x193)]){const _0x9ad997=this[_0x5ea778(0x195)][_0x5ea778(0x19e)](_0x1f49cc[_0x5ea778(0x183)][_0x5ea778(0x193)]);for(const _0x3f3cd9 of _0x9ad997[_0x5ea778(0x1a5)]()){if(!_0x3f3cd9['is'](_0x5ea778(0x182),this[_0x5ea778(0x191)]))continue;const _0x16d2c8=this[_0x5ea778(0x19d)](_0x3f3cd9);_0x5a0754[_0x5ea778(0x17b)](_0x16d2c8)||_0x5a0754[_0x5ea778(0x189)](_0x16d2c8,[]),_0x5a0754[_0x5ea778(0x18d)](_0x16d2c8)[_0x5ea778(0x187)](_0x3f3cd9);}}if(_0x5ea778(0x180)===_0x1f49cc[_0x5ea778(0x19f)]&&_0x1f49cc[_0x5ea778(0x188)]===this[_0x5ea778(0x191)]){const _0x33a436=this[_0x5ea778(0x19d)]({'getAttribute':_0x2173fe=>_0x1f49cc[_0x5ea778(0x192)][_0x5ea778(0x18d)](_0x2173fe)});_0x3da474[_0x5ea778(0x1a6)](_0x33a436);}}for(const [_0x4e4e9b,_0x555b2d]of this[_0x5ea778(0x18f)])_0x5ea778(0x19a)===_0x555b2d[_0x5ea778(0x18a)][_0x5ea778(0x18b)]&&_0x3da474[_0x5ea778(0x1a6)](_0x4e4e9b);for(const _0x12cdf4 of _0x3da474)this[_0x5ea778(0x18f)][_0x5ea778(0x17d)](_0x12cdf4);for(const [_0x329db8,_0x343aa3]of _0x5a0754)this[_0x5ea778(0x18f)][_0x5ea778(0x189)](_0x329db8,_0x343aa3[_0x343aa3[_0x5ea778(0x1a1)]-0x1]);const _0x34ad59=new Set();for(const [_0x79fed0,_0x127523]of _0x5a0754)_0x3da474[_0x5ea778(0x17b)](_0x79fed0)&&(_0x34ad59[_0x5ea778(0x1a6)](_0x127523[0x0]),_0x127523[_0x5ea778(0x1a1)]>0x1?_0x5a0754[_0x5ea778(0x189)](_0x79fed0,_0x127523[_0x5ea778(0x184)](0x1)):_0x5a0754[_0x5ea778(0x17d)](_0x79fed0),_0x3da474[_0x5ea778(0x17d)](_0x79fed0));return{'removed':Array[_0x5ea778(0x194)](_0x3da474),'inserted':Array[_0x5ea778(0x194)](_0x5a0754[_0x5ea778(0x1a0)]())[_0x5ea778(0x196)](),'moved':Array[_0x5ea778(0x194)](_0x34ad59)};}}
@@ -0,0 +1,149 @@
1
+ /*
2
+ * What you're currently looking at is the source code of a legally protected, proprietary software.
3
+ * CKEditor 5 Collaboration is licensed under a commercial license and protected by copyright law. Where not otherwise indicated,
4
+ * all CKEditor 5 Collaboration content is authored by CKSource engineers and consists of CKSource-owned intellectual property.
5
+ *
6
+ * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
7
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
8
+ */
9
+
10
+ @import "@ckeditor/ckeditor5-ui/theme/mixins/_dir.css";
11
+
12
+ :root {
13
+ --ck-footnotes-list-widget-label-background-color: hsl(0, 0%, 46%);
14
+ --ck-content-footnotes-list-background-color: none;
15
+ --ck-content-footnotes-list-separator-color: hsl(0, 0%, 0%);
16
+ --ck-content-footnote-font-size: var(--ck-content-font-size-small);
17
+ }
18
+
19
+ /* Content styles */
20
+ .ck-content {
21
+ & .footnote {
22
+ margin-inline-end: 0.2em;
23
+ }
24
+
25
+ & .footnotes {
26
+ position: relative;
27
+ margin: 1.9em 0 1.5em;
28
+ padding-inline-start: 3em;
29
+ font-size: var(--ck-content-footnote-font-size);
30
+ background-color: var(--ck-content-footnotes-list-background-color);
31
+
32
+ &::before {
33
+ content: '';
34
+ position: absolute;
35
+ top: -1em;
36
+ left: 0;
37
+ border-top: 1px solid var(--ck-content-footnotes-list-separator-color);
38
+ width: min(30%, 350px);
39
+
40
+ @mixin ck-dir rtl {
41
+ left: auto;
42
+ right: 0;
43
+ }
44
+ }
45
+ }
46
+
47
+ & .footnote-backlink {
48
+ display: inline-block;
49
+ margin-inline-end: 1ch;
50
+ user-select: none;
51
+ vertical-align: top;
52
+ width: auto;
53
+ }
54
+
55
+ & .footnote-content {
56
+ display: inline-block;
57
+ width: calc(100% - 2em);
58
+ padding: 0 4px;
59
+ vertical-align: top;
60
+
61
+ & > p:first-of-type {
62
+ margin-top: 0;
63
+ }
64
+
65
+ & > p:last-of-type {
66
+ margin-bottom: 0;
67
+ }
68
+
69
+ & ol {
70
+ list-style-type: decimal;
71
+ }
72
+
73
+ & ol ol {
74
+ list-style-type: lower-latin;
75
+ }
76
+
77
+ & ol ol ol {
78
+ list-style-type: lower-roman;
79
+ }
80
+
81
+ & ol ol ol ol {
82
+ list-style-type: upper-latin;
83
+ }
84
+
85
+ & ol ol ol ol ol {
86
+ list-style-type: upper-roman;
87
+ }
88
+
89
+ & ul {
90
+ list-style-type: disc;
91
+ }
92
+
93
+ & ul ul {
94
+ list-style-type: circle;
95
+ }
96
+
97
+ & ul ul ul {
98
+ list-style-type: square;
99
+ }
100
+
101
+ & ul ul ul ul {
102
+ list-style-type: square;
103
+ }
104
+ }
105
+ }
106
+
107
+ /* Editing styles */
108
+ .ck.ck-editor__editable {
109
+ & .footnote > a {
110
+ pointer-events: none;
111
+ }
112
+
113
+ & .footnotes-wrapper {
114
+ /* Necessary to render properly next to floated objects, e.g. side image case. */
115
+ display: flow-root;
116
+ position: relative;
117
+ margin: 0.9em 0 0.85em;
118
+
119
+ &:not(:hover):not(.ck-widget_selected) {
120
+ outline: 1px solid var(--ck-color-base-border);
121
+ }
122
+
123
+ &[data-footnotes-list-label]::after {
124
+ content: attr(data-footnotes-list-label);
125
+
126
+ position: absolute;
127
+ top: -1px;
128
+ right: 10px;
129
+ padding: var(--ck-spacing-tiny) var(--ck-spacing-medium);
130
+ background-color: var(--ck-footnotes-list-widget-label-background-color);
131
+
132
+ font-size: 10px;
133
+ font-family: var(--ck-font-face);
134
+ line-height: 16px;
135
+ color: hsl(0, 0%, 100%);
136
+ white-space: nowrap;
137
+
138
+ @mixin ck-dir rtl {
139
+ left: 10px;
140
+ right: auto;
141
+ }
142
+ }
143
+
144
+ & > .footnotes {
145
+ margin-top: 1em;
146
+ margin-bottom: 0.65em;
147
+ }
148
+ }
149
+ }
@@ -0,0 +1,54 @@
1
+ /*
2
+ * What you're currently looking at is the source code of a legally protected, proprietary software.
3
+ * CKEditor 5 Collaboration is licensed under a commercial license and protected by copyright law. Where not otherwise indicated,
4
+ * all CKEditor 5 Collaboration content is authored by CKSource engineers and consists of CKSource-owned intellectual property.
5
+ *
6
+ * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
7
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
8
+ */
9
+
10
+ :root {
11
+ --ck-footnotes-styles-list-style-button-size: 44px;
12
+ }
13
+
14
+ .ck.ck-footnotes-definitions-properties {
15
+ & > .ck-footnotes-definitions-styles-list {
16
+ display: grid;
17
+ row-gap: var(--ck-spacing-medium);
18
+ column-gap: var(--ck-spacing-medium);
19
+ padding: var(--ck-spacing-large);
20
+ grid-template-columns: repeat( 4, auto );
21
+
22
+ & .ck-button {
23
+ width: var(--ck-footnotes-styles-list-style-button-size);
24
+ height: var(--ck-footnotes-styles-list-style-button-size);
25
+ padding: 0;
26
+
27
+ /*
28
+ * Buttons are aligned by the grid so disable default button margins to not collide with the
29
+ * gaps in the grid.
30
+ */
31
+ margin: 0;
32
+
33
+ /*
34
+ * Make sure the button border (which is displayed on focus, BTW) does not steal pixels
35
+ * from the button dimensions and, as a result, decrease the size of the icon
36
+ * (which becomes blurry as it scales down).
37
+ */
38
+ box-sizing: content-box;
39
+
40
+ & .ck-icon {
41
+ width: var(--ck-footnotes-styles-list-style-button-size);
42
+ height: var(--ck-footnotes-styles-list-style-button-size);
43
+ }
44
+ }
45
+ }
46
+
47
+ & > .ck-collapsible {
48
+ border-top: 1px solid var(--ck-color-base-border);
49
+
50
+ & .ck-footnotes-definitions-properties__start-index .ck-input {
51
+ min-width: 100%;
52
+ }
53
+ }
54
+ }