jodit 4.1.16 → 4.2.5

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 (138) hide show
  1. package/CHANGELOG.md +22 -5
  2. package/es2015/jodit.css +82 -31
  3. package/es2015/jodit.fat.min.css +1 -1
  4. package/es2015/jodit.fat.min.js +2 -2
  5. package/es2015/jodit.js +1339 -543
  6. package/es2015/jodit.min.css +1 -1
  7. package/es2015/jodit.min.js +2 -2
  8. package/es2015/plugins/debug/debug.js +1 -1
  9. package/es2015/plugins/debug/debug.min.js +1 -1
  10. package/es2015/plugins/speech-recognize/speech-recognize.css +1 -1
  11. package/es2015/plugins/speech-recognize/speech-recognize.js +1 -1
  12. package/es2015/plugins/speech-recognize/speech-recognize.min.js +1 -1
  13. package/es2018/jodit.css +82 -31
  14. package/es2018/jodit.fat.min.css +1 -1
  15. package/es2018/jodit.fat.min.js +2 -2
  16. package/es2018/jodit.js +1325 -543
  17. package/es2018/jodit.min.css +1 -1
  18. package/es2018/jodit.min.js +2 -2
  19. package/es2018/plugins/debug/debug.js +1 -1
  20. package/es2018/plugins/debug/debug.min.js +1 -1
  21. package/es2018/plugins/speech-recognize/speech-recognize.css +1 -1
  22. package/es2018/plugins/speech-recognize/speech-recognize.js +1 -1
  23. package/es2018/plugins/speech-recognize/speech-recognize.min.js +1 -1
  24. package/es2021/jodit.css +82 -31
  25. package/es2021/jodit.fat.min.css +1 -1
  26. package/es2021/jodit.fat.min.js +2 -2
  27. package/es2021/jodit.js +1322 -543
  28. package/es2021/jodit.min.css +1 -1
  29. package/es2021/jodit.min.js +2 -2
  30. package/es2021/plugins/debug/debug.js +1 -1
  31. package/es2021/plugins/debug/debug.min.js +1 -1
  32. package/es2021/plugins/speech-recognize/speech-recognize.css +1 -1
  33. package/es2021/plugins/speech-recognize/speech-recognize.js +1 -1
  34. package/es2021/plugins/speech-recognize/speech-recognize.min.js +1 -1
  35. package/es2021.en/jodit.css +82 -31
  36. package/es2021.en/jodit.fat.min.css +1 -1
  37. package/es2021.en/jodit.fat.min.js +2 -2
  38. package/es2021.en/jodit.js +1322 -543
  39. package/es2021.en/jodit.min.css +1 -1
  40. package/es2021.en/jodit.min.js +2 -2
  41. package/es2021.en/plugins/debug/debug.js +1 -1
  42. package/es2021.en/plugins/debug/debug.min.js +1 -1
  43. package/es2021.en/plugins/speech-recognize/speech-recognize.css +1 -1
  44. package/es2021.en/plugins/speech-recognize/speech-recognize.js +1 -1
  45. package/es2021.en/plugins/speech-recognize/speech-recognize.min.js +1 -1
  46. package/es5/jodit.css +131 -35
  47. package/es5/jodit.fat.min.css +1 -1
  48. package/es5/jodit.fat.min.js +2 -2
  49. package/es5/jodit.js +1363 -479
  50. package/es5/jodit.min.css +3 -3
  51. package/es5/jodit.min.js +2 -2
  52. package/es5/plugins/debug/debug.js +1 -1
  53. package/es5/plugins/debug/debug.min.js +1 -1
  54. package/es5/plugins/speech-recognize/speech-recognize.css +1 -1
  55. package/es5/plugins/speech-recognize/speech-recognize.js +1 -1
  56. package/es5/plugins/speech-recognize/speech-recognize.min.js +1 -1
  57. package/esm/core/constants.js +1 -1
  58. package/esm/core/helpers/size/position.js +2 -2
  59. package/esm/core/helpers/utils/selector.d.ts +3 -1
  60. package/esm/core/helpers/utils/selector.js +3 -3
  61. package/esm/core/ui/button/tooltip/tooltip.js +2 -1
  62. package/esm/core/ui/popup/popup.js +1 -1
  63. package/esm/modules/dialog/dialog.js +1 -0
  64. package/esm/modules/file-browser/file-browser.js +8 -1
  65. package/esm/modules/image-editor/templates/form.js +6 -5
  66. package/esm/modules/toolbar/button/button.d.ts +1 -1
  67. package/esm/modules/widget/tabs/tabs.d.ts +4 -4
  68. package/esm/modules/widget/tabs/tabs.js +9 -7
  69. package/esm/plugins/ai-assistant/ai-assistant.d.ts +1 -1
  70. package/esm/plugins/ai-assistant/ai-assistant.js +3 -3
  71. package/esm/plugins/image-properties/config.d.ts +5 -83
  72. package/esm/plugins/image-properties/config.js +0 -3
  73. package/esm/plugins/image-properties/image-properties.d.ts +22 -32
  74. package/esm/plugins/image-properties/image-properties.js +129 -402
  75. package/{types/plugins/image-properties/templates/form.d.ts → esm/plugins/image-properties/readers/align.d.ts} +3 -5
  76. package/esm/plugins/image-properties/readers/align.js +24 -0
  77. package/esm/plugins/image-properties/readers/index.d.ts +12 -0
  78. package/esm/plugins/image-properties/readers/index.js +38 -0
  79. package/esm/plugins/image-properties/readers/link.d.ts +9 -0
  80. package/esm/plugins/image-properties/readers/link.js +19 -0
  81. package/esm/plugins/image-properties/readers/margin.d.ts +8 -0
  82. package/esm/plugins/image-properties/readers/margin.js +28 -0
  83. package/esm/plugins/image-properties/readers/size.d.ts +8 -0
  84. package/esm/plugins/image-properties/readers/size.js +36 -0
  85. package/esm/plugins/image-properties/ui/ui-image-form.d.ts +29 -0
  86. package/esm/plugins/image-properties/ui/ui-image-form.js +171 -0
  87. package/esm/plugins/image-properties/ui/ui-image-main-tab.d.ts +36 -0
  88. package/esm/plugins/image-properties/ui/ui-image-main-tab.js +179 -0
  89. package/esm/plugins/image-properties/ui/ui-image-position-tab.d.ts +36 -0
  90. package/esm/plugins/image-properties/ui/ui-image-position-tab.js +261 -0
  91. package/esm/plugins/image-properties/{templates/main-tab.d.ts → utils/open-image-editor.d.ts} +5 -3
  92. package/esm/plugins/image-properties/utils/open-image-editor.js +52 -0
  93. package/esm/plugins/image-properties/utils/open-image-popup.d.ts +9 -0
  94. package/esm/plugins/image-properties/utils/open-image-popup.js +34 -0
  95. package/esm/plugins/image-properties/utils/utils.d.ts +9 -0
  96. package/esm/plugins/image-properties/utils/utils.js +21 -0
  97. package/esm/plugins/image-properties/writers/index.d.ts +12 -0
  98. package/esm/plugins/image-properties/writers/index.js +53 -0
  99. package/esm/plugins/image-properties/{templates/form.d.ts → writers/link.d.ts} +2 -4
  100. package/esm/plugins/image-properties/writers/link.js +24 -0
  101. package/esm/plugins/image-properties/writers/margin.d.ts +8 -0
  102. package/esm/plugins/image-properties/writers/margin.js +33 -0
  103. package/esm/plugins/image-properties/writers/size.d.ts +7 -0
  104. package/esm/plugins/image-properties/writers/size.js +28 -0
  105. package/esm/plugins/select/config.d.ts +7 -0
  106. package/esm/plugins/select/config.js +2 -1
  107. package/esm/plugins/select/select.d.ts +7 -3
  108. package/esm/plugins/select/select.js +21 -4
  109. package/esm/types/ui.d.ts +1 -1
  110. package/package.json +1 -1
  111. package/types/core/helpers/utils/selector.d.ts +3 -1
  112. package/types/modules/toolbar/button/button.d.ts +1 -1
  113. package/types/modules/widget/tabs/tabs.d.ts +4 -4
  114. package/types/plugins/ai-assistant/ai-assistant.d.ts +1 -1
  115. package/types/plugins/image-properties/config.d.ts +5 -83
  116. package/types/plugins/image-properties/image-properties.d.ts +22 -32
  117. package/types/plugins/image-properties/{templates/main-tab.d.ts → readers/align.d.ts} +3 -5
  118. package/types/plugins/image-properties/readers/index.d.ts +12 -0
  119. package/types/plugins/image-properties/readers/link.d.ts +9 -0
  120. package/types/plugins/image-properties/readers/margin.d.ts +8 -0
  121. package/types/plugins/image-properties/readers/size.d.ts +8 -0
  122. package/types/plugins/image-properties/ui/ui-image-form.d.ts +29 -0
  123. package/types/plugins/image-properties/ui/ui-image-main-tab.d.ts +36 -0
  124. package/types/plugins/image-properties/ui/ui-image-position-tab.d.ts +36 -0
  125. package/types/plugins/image-properties/utils/open-image-editor.d.ts +12 -0
  126. package/types/plugins/image-properties/utils/open-image-popup.d.ts +9 -0
  127. package/types/plugins/image-properties/utils/utils.d.ts +9 -0
  128. package/types/plugins/image-properties/writers/index.d.ts +12 -0
  129. package/{esm/plugins/image-properties/templates/position-tab.d.ts → types/plugins/image-properties/writers/link.d.ts} +2 -4
  130. package/types/plugins/image-properties/writers/margin.d.ts +8 -0
  131. package/types/plugins/image-properties/writers/size.d.ts +7 -0
  132. package/types/plugins/select/config.d.ts +7 -0
  133. package/types/plugins/select/select.d.ts +7 -3
  134. package/types/types/ui.d.ts +1 -1
  135. package/esm/plugins/image-properties/templates/form.js +0 -26
  136. package/esm/plugins/image-properties/templates/main-tab.js +0 -47
  137. package/esm/plugins/image-properties/templates/position-tab.js +0 -66
  138. package/types/plugins/image-properties/templates/position-tab.d.ts +0 -10
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * jodit - Jodit is an awesome and useful wysiwyg editor with filebrowser
3
3
  * Author: Chupurnov <chupurnov@gmail.com> (https://xdsoft.net/jodit/)
4
- * Version: v4.1.16
4
+ * Version: v4.2.5
5
5
  * Url: https://xdsoft.net/jodit/
6
6
  * License(s): MIT
7
7
  */
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * jodit - Jodit is an awesome and useful wysiwyg editor with filebrowser
3
3
  * Author: Chupurnov <chupurnov@gmail.com> (https://xdsoft.net/jodit/)
4
- * Version: v4.1.16
4
+ * Version: v4.2.5
5
5
  * Url: https://xdsoft.net/jodit/
6
6
  * License(s): MIT
7
7
  */
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * jodit - Jodit is an awesome and useful wysiwyg editor with filebrowser
3
3
  * Author: Chupurnov <chupurnov@gmail.com> (https://xdsoft.net/jodit/)
4
- * Version: v4.1.16
4
+ * Version: v4.2.5
5
5
  * Url: https://xdsoft.net/jodit/
6
6
  * License(s): MIT
7
7
  */
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * jodit - Jodit is an awesome and useful wysiwyg editor with filebrowser
3
3
  * Author: Chupurnov <chupurnov@gmail.com> (https://xdsoft.net/jodit/)
4
- * Version: v4.1.16
4
+ * Version: v4.2.5
5
5
  * Url: https://xdsoft.net/jodit/
6
6
  * License(s): MIT
7
7
  */
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * jodit - Jodit is an awesome and useful wysiwyg editor with filebrowser
3
3
  * Author: Chupurnov <chupurnov@gmail.com> (https://xdsoft.net/jodit/)
4
- * Version: v4.1.16
4
+ * Version: v4.2.5
5
5
  * Url: https://xdsoft.net/jodit/
6
6
  * License(s): MIT
7
7
  */
@@ -3,7 +3,7 @@
3
3
  * Released under MIT see LICENSE.txt in the project root for license information.
4
4
  * Copyright (c) 2013-2024 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
5
5
  */
6
- export const APP_VERSION = "4.1.16";
6
+ export const APP_VERSION = "4.2.5";
7
7
  // prettier-ignore
8
8
  export const ES = "es2020";
9
9
  export const IS_ES_MODERN = true;
@@ -21,7 +21,7 @@ export function position(elm, jodit, recurse = false) {
21
21
  return {
22
22
  left: Math.round(xPos),
23
23
  top: Math.round(yPos),
24
- width: Math.round(elm.offsetWidth),
25
- height: Math.round(elm.offsetHeight)
24
+ width: Math.round(elm.offsetWidth ?? rect.width),
25
+ height: Math.round(elm.offsetHeight ?? rect.height)
26
26
  };
27
27
  }
@@ -31,7 +31,9 @@ export declare const getXPathByElement: (element: HTMLElement, root: HTMLElement
31
31
  /**
32
32
  * Find all `ref` or `data-ref` elements inside HTMLElement
33
33
  */
34
- export declare const refs: <T extends HTMLElement>(root: HTMLElement) => IDictionary<T>;
34
+ export declare const refs: <T extends HTMLElement>(root: HTMLElement | {
35
+ container: HTMLElement;
36
+ }) => IDictionary<T>;
35
37
  /**
36
38
  * Calculate full CSS selector
37
39
  */
@@ -59,9 +59,9 @@ export const getXPathByElement = (element, root) => {
59
59
  * Find all `ref` or `data-ref` elements inside HTMLElement
60
60
  */
61
61
  export const refs = (root) => {
62
- // if (Component.isInstanceOf<UIElement>(root, UIElement)) {
63
- // root = root.container;
64
- // }
62
+ if ('container' in root) {
63
+ root = root.container;
64
+ }
65
65
  return $$('[ref],[data-ref]', root).reduce((def, child) => {
66
66
  const key = attr(child, '-ref');
67
67
  if (key && isString(key)) {
@@ -39,7 +39,7 @@ let UITooltip = UITooltip_1 = class UITooltip extends UIElement {
39
39
  view.o.showTooltip &&
40
40
  !view.o.useNativeTooltip) {
41
41
  view.hookStatus(STATUSES.ready, () => {
42
- // TODO Move it inside __open method. Now it is here becous testcase failed with capturing
42
+ // TODO Move it inside __open method. Now it is here because testcase failed with capturing
43
43
  getContainer(this.j, UITooltip_1).appendChild(this.container);
44
44
  view.e.on(view.container, 'mouseenter.tooltip', this.__onMouseEnter, {
45
45
  capture: true
@@ -55,6 +55,7 @@ let UITooltip = UITooltip_1 = class UITooltip extends UIElement {
55
55
  const view = this.j;
56
56
  view.e
57
57
  .on(view.ow, 'scroll.tooltip', this.__hide)
58
+ .on(view.ow, 'joditCloseDialog', this.__hide)
58
59
  .on(view.container, 'mouseleave.tooltip', this.__hide)
59
60
  .on([
60
61
  'escape.tooltip',
@@ -116,7 +116,7 @@ export class Popup extends UIGroup {
116
116
  }
117
117
  let pe = this.parentElement;
118
118
  while (pe) {
119
- if (checkView(j)) {
119
+ if (checkView(pe.j)) {
120
120
  return;
121
121
  }
122
122
  if (pe.container.style.zIndex) {
@@ -129,6 +129,7 @@ let Dialog = Dialog_1 = class Dialog extends ViewWithToolbar {
129
129
  * Fired when dialog box is started moving
130
130
  */
131
131
  this.e.fire(this, 'startMove');
132
+ this.e.fire('closeAllPopups');
132
133
  }
133
134
  }
134
135
  onMouseMove(e) {
@@ -153,7 +153,14 @@ let FileBrowser = class FileBrowser extends ViewWithToolbar {
153
153
  this.__updateToolbarButtons();
154
154
  this._dialog.open(this.browser, header);
155
155
  this.e.fire('sort.filebrowser', this.state.sortBy);
156
- loadTree(this).then(resolve, reject);
156
+ loadTree(this)
157
+ .then(resolve, reject)
158
+ .finally(() => {
159
+ if (this.isInDestruct) {
160
+ return;
161
+ }
162
+ this?.e?.fire('fileBrowserReady.filebrowser');
163
+ });
157
164
  })
158
165
  .catch((e) => {
159
166
  if (!IS_PROD) {
@@ -10,11 +10,12 @@ const act = (el, className = 'jodti-image-editor_active') => el ? className : ''
10
10
  export const form = (editor, o) => {
11
11
  const i = editor.i18n.bind(editor);
12
12
  const switcher = (label, ref, active = true) => `<div class="jodit-form__group">
13
- <label>${i(label)}</label>
14
-
15
- <label class='jodit-switcher'>
16
- <input ${act(active, 'checked')} data-ref="${ref}" type="checkbox"/>
17
- <span class="jodit-switcher__slider"></span>
13
+ <label class="jodit-switcher-wrapper">
14
+ <span class='jodit-switcher'>
15
+ <input ${act(active, 'checked')} data-ref="${ref}" type="checkbox"/>
16
+ <span class="jodit-switcher__slider"></span>
17
+ </span>
18
+ <span>${i(label)}</span>
18
19
  </label>
19
20
  </div>`;
20
21
  return editor.create.fromHTML(`<form class="${jie} jodit-properties">
@@ -22,7 +22,7 @@ export declare class ToolbarButton<T extends IViewBased = IViewBased> extends UI
22
22
  hasTrigger: boolean;
23
23
  size: "small" | "tiny" | "xsmall" | "middle" | "large";
24
24
  name: string;
25
- value: string | number | boolean; /** @override */
25
+ value: string | number | boolean;
26
26
  variant: import("jodit/esm/types").ButtonVariant;
27
27
  type: "button" | "submit";
28
28
  disabled: boolean;
@@ -8,13 +8,13 @@
8
8
  * @packageDocumentation
9
9
  * @module modules/widget/tabs
10
10
  */
11
- import type { IJodit } from "jodit/esm/types";
11
+ import type { IViewBased } from "jodit/esm/types";
12
12
  import { UIElement } from "jodit/esm/core/ui";
13
13
 
14
14
  export interface TabOption {
15
15
  icon?: string;
16
16
  name: string;
17
- content: HTMLElement | ((this: IJodit) => void) | UIElement;
17
+ content: HTMLElement | ((this: IViewBased) => void) | UIElement;
18
18
  }
19
19
  /**
20
20
  * Build tabs system
@@ -44,6 +44,6 @@ export interface TabOption {
44
44
  * ]);
45
45
  * ```
46
46
  */
47
- export declare const TabsWidget: (jodit: IJodit, tabs: TabOption[], state?: {
48
- __activeTab: string;
47
+ export declare const TabsWidget: (jodit: IViewBased, tabs: TabOption[], state?: {
48
+ activeTab: string;
49
49
  }) => HTMLDivElement;
@@ -46,11 +46,13 @@ export const TabsWidget = (jodit, tabs, state) => {
46
46
  return;
47
47
  }
48
48
  buttonList.forEach(b => {
49
+ b.state.variant = 'initial';
49
50
  b.state.activated = false;
50
51
  });
51
52
  $$('.jodit-tab', tabBox).forEach(a => {
52
53
  a.classList.remove('jodit-tab_active');
53
54
  });
55
+ nameToTab[tab].button.state.variant = 'outline';
54
56
  nameToTab[tab].button.state.activated = true;
55
57
  nameToTab[tab].tab.classList.add('jodit-tab_active');
56
58
  };
@@ -79,7 +81,7 @@ export const TabsWidget = (jodit, tabs, state) => {
79
81
  content.call(jodit);
80
82
  }
81
83
  if (state) {
82
- state.__activeTab = name;
84
+ state.activeTab = name;
83
85
  }
84
86
  return false;
85
87
  });
@@ -95,20 +97,20 @@ export const TabsWidget = (jodit, tabs, state) => {
95
97
  $$('a', buttons).forEach(a => {
96
98
  a.style.width = (100 / tabCount).toFixed(10) + '%';
97
99
  });
98
- const tab = !state || !state.__activeTab || !nameToTab[state.__activeTab]
100
+ const tab = !state || !state.activeTab || !nameToTab[state.activeTab]
99
101
  ? firstTab
100
- : state.__activeTab;
102
+ : state.activeTab;
101
103
  setActive(tab);
102
104
  if (state) {
103
- let __activeTab = state.__activeTab;
104
- Object.defineProperty(state, '__activeTab', {
105
+ let activeTab = state.activeTab;
106
+ Object.defineProperty(state, 'activeTab', {
105
107
  configurable: true,
106
108
  enumerable: false,
107
109
  get() {
108
- return __activeTab;
110
+ return activeTab;
109
111
  },
110
112
  set(value) {
111
- __activeTab = value;
113
+ activeTab = value;
112
114
  setActive(value);
113
115
  }
114
116
  });
@@ -21,7 +21,7 @@ export declare class aiAssistant extends Plugin {
21
21
  private get __container();
22
22
  constructor(jodit: IJodit);
23
23
  /** @override */
24
- afterInit(jodit: IJodit): void;
24
+ afterInit(): void;
25
25
  protected onGenerateAiAssistantForm(prompt: string): void;
26
26
  protected onInvokeAiAssistant(prompt: string): void;
27
27
  /** @override */
@@ -20,7 +20,7 @@ import { isAbortError } from "jodit/esm/core/helpers/checker/is-abort-error.js";
20
20
  import { Plugin } from "jodit/esm/core/plugin/plugin.js";
21
21
  import "./config";
22
22
  import { UiAiAssistant } from "./ui/ui-ai-assistant";
23
- import * as langs from "./langs";
23
+ import * as lang from "./langs";
24
24
  /**
25
25
  * The plugin inserts content generated by AI into the editor.
26
26
  */
@@ -64,10 +64,10 @@ export class aiAssistant extends Plugin {
64
64
  group: 'insert'
65
65
  }
66
66
  ];
67
- extendLang(langs);
67
+ extendLang(lang);
68
68
  }
69
69
  /** @override */
70
- afterInit(jodit) { }
70
+ afterInit() { }
71
71
  onGenerateAiAssistantForm(prompt) {
72
72
  this.__dialog.open(this.__container, 'AI Assistant');
73
73
  this.__container.setPrompt(prompt);
@@ -3,90 +3,12 @@
3
3
  * Released under MIT see LICENSE.txt in the project root for license information.
4
4
  * Copyright (c) 2013-2024 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
5
5
  */
6
+ /**
7
+ * @module plugins/image-properties
8
+ */
9
+ import type { ImagePropertiesOptions } from "./interface";
6
10
  declare module 'jodit/config' {
7
11
  interface Config {
8
- image: {
9
- dialogWidth: number;
10
- /**
11
- * Open editing dialog after double click on image
12
- */
13
- openOnDblClick: boolean;
14
- /**
15
- * Show edit 'src' input
16
- */
17
- editSrc: boolean;
18
- /**
19
- * Show crop/resize btn
20
- */
21
- useImageEditor: boolean;
22
- /**
23
- * Show edit 'title' input
24
- */
25
- editTitle: boolean;
26
- /**
27
- * Show edit 'alt' input
28
- */
29
- editAlt: boolean;
30
- /**
31
- * Show edit image link's options
32
- */
33
- editLink: boolean;
34
- /**
35
- * Show edit image size's inputs
36
- */
37
- editSize: boolean;
38
- /**
39
- * Show edit margin inputs
40
- */
41
- editMargins: boolean;
42
- editBorderRadius: boolean;
43
- /**
44
- * Show edit classNames input
45
- */
46
- editClass: boolean;
47
- /**
48
- * Pre-define available classes to select from
49
- *
50
- * Classes can be provided as list of strings or as list of tuples
51
- * `["classname", "human label"]`.
52
- *
53
- * @example
54
- * ```javascript
55
- * new Jodit('#editor', {
56
- * image: {
57
- * availableClasses: [
58
- * "rte-image-width-50",
59
- * ["rte-image-width-75", "75 % width"]
60
- * ]
61
- * }
62
- * })
63
- * ```
64
- */
65
- availableClasses: [
66
- string,
67
- string
68
- ][] | string[];
69
- /**
70
- * Show style edit input
71
- */
72
- editStyle: boolean;
73
- /**
74
- * Show edit ID input
75
- */
76
- editId: boolean;
77
- /**
78
- * Show Alignment selector
79
- */
80
- editAlign: boolean;
81
- /**
82
- * Show preview image
83
- */
84
- showPreview: boolean;
85
- /**
86
- * Select image after close dialog
87
- */
88
- selectImageAfterClose: boolean;
89
- };
12
+ image: ImagePropertiesOptions;
90
13
  }
91
14
  }
92
- export {};
@@ -3,9 +3,6 @@
3
3
  * Released under MIT see LICENSE.txt in the project root for license information.
4
4
  * Copyright (c) 2013-2024 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
5
5
  */
6
- /**
7
- * @module plugins/image-properties
8
- */
9
6
  import { Config } from "jodit/esm/config.js";
10
7
  Config.prototype.image = {
11
8
  dialogWidth: 600,
@@ -9,27 +9,34 @@
9
9
  * @module plugins/image-properties
10
10
  */
11
11
  import type { IJodit } from "jodit/esm/types";
12
- import { Plugin } from "jodit/esm/modules";
12
+ import { Plugin } from "jodit/esm/core/plugin/plugin";
13
13
  import "./config";
14
-
14
+ import type { ImagePropertiesState } from "./interface";
15
+ /**
16
+ * Plug-in for image editing window
17
+ *
18
+ * @example
19
+ * ```javascript
20
+ * const editor = Jodit.make('#editor', {
21
+ * image: {
22
+ * editSrc: false,
23
+ * editLink: false
24
+ * }
25
+ * });
26
+ * ```
27
+ */
15
28
  /**
16
29
  * Show dialog with image's options
17
30
  */
18
31
  export declare class imageProperties extends Plugin {
19
- protected state: {
20
- image: HTMLImageElement;
21
- ratio: number;
22
- sizeIsLocked: boolean;
23
- marginIsLocked: boolean;
24
- };
32
+ protected state: ImagePropertiesState;
25
33
  private activeTabState;
26
- protected onChangeMarginIsLocked(): void;
27
- protected onChangeSizeIsLocked(): void;
28
- private form;
34
+ private get form();
29
35
  /**
30
36
  * Dialog for form
31
37
  */
32
- private dialog;
38
+ private get dialog();
39
+ private get __buttons();
33
40
  /**
34
41
  * Open dialog editing image properties
35
42
  *
@@ -45,28 +52,11 @@ export declare class imageProperties extends Plugin {
45
52
  * ```
46
53
  */
47
54
  protected open(): void | false;
48
- /**
49
- * Create form for edit image properties
50
- */
51
- private makeForm;
52
- /**
53
- * Set input values from image
54
- */
55
- private updateValues;
56
- /**
57
- * Apply form's values to image
58
- */
59
- private onApply;
60
- /**
61
- * Open image editor dialog
62
- */
63
- private openImageEditor;
64
- /**
65
- * Open popup with filebrowser/uploader buttons for image
66
- */
67
- private openImagePopup;
55
+ private __lock;
56
+ private __unlock;
68
57
  /** @override **/
69
58
  protected afterInit(editor: IJodit): void;
59
+ protected onStateValuesImageSrcChange(): Promise<void>;
70
60
  /** @override */
71
61
  protected beforeDestruct(editor: IJodit): void;
72
62
  }