jodit 3.16.3 → 3.16.4

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.
@@ -11,12 +11,7 @@
11
11
  <select />
12
12
  </component>
13
13
  <component name="ChangeListManager">
14
- <list default="true" id="5da7ff7f-03a8-49de-9fbb-8f8640d83b83" name="Default Changelist" comment="">
15
- <change beforePath="$PROJECT_DIR$/CHANGELOG.MD" beforeDir="false" afterPath="$PROJECT_DIR$/CHANGELOG.MD" afterDir="false" />
16
- <change beforePath="$PROJECT_DIR$/src/core/decorators/hook/hook.ts" beforeDir="false" afterPath="$PROJECT_DIR$/src/core/decorators/hook/hook.ts" afterDir="false" />
17
- <change beforePath="$PROJECT_DIR$/src/core/decorators/wait/wait.ts" beforeDir="false" afterPath="$PROJECT_DIR$/src/core/decorators/wait/wait.ts" afterDir="false" />
18
- <change beforePath="$PROJECT_DIR$/test/tests/units/objectObserverTest.js" beforeDir="false" afterPath="$PROJECT_DIR$/test/tests/units/objectObserverTest.js" afterDir="false" />
19
- </list>
14
+ <list default="true" id="5da7ff7f-03a8-49de-9fbb-8f8640d83b83" name="Default Changelist" comment="" />
20
15
  <list id="5049e1d4-15bc-4e3a-b46b-d2ce7537fc13" name="Revert &quot;Some small fixes&quot;" comment="Revert &quot;Some small fixes&quot;&#10;&#10;This reverts commit bc391ec6" />
21
16
  <option name="SHOW_DIALOG" value="false" />
22
17
  <option name="HIGHLIGHT_CONFLICTS" value="true" />
@@ -844,56 +839,9 @@
844
839
  <workItem from="1647717009468" duration="1325000" />
845
840
  <workItem from="1647720525903" duration="602000" />
846
841
  <workItem from="1647723129471" duration="611000" />
847
- <workItem from="1647728375663" duration="3084000" />
848
- </task>
849
- <task id="LOCAL-01022" summary="Update npm and duck typing Dom.isNode">
850
- <created>1646343502774</created>
851
- <option name="number" value="01022" />
852
- <option name="presentableId" value="LOCAL-01022" />
853
- <option name="project" value="LOCAL" />
854
- <updated>1646343502774</updated>
855
- </task>
856
- <task id="LOCAL-01023" summary="Fixed bug inside placeholder plugin">
857
- <created>1646343584950</created>
858
- <option name="number" value="01023" />
859
- <option name="presentableId" value="LOCAL-01023" />
860
- <option name="project" value="LOCAL" />
861
- <updated>1646343584950</updated>
862
- </task>
863
- <task id="LOCAL-01024" summary="Refactoring paste plugin">
864
- <created>1646343640819</created>
865
- <option name="number" value="01024" />
866
- <option name="presentableId" value="LOCAL-01024" />
867
- <option name="project" value="LOCAL" />
868
- <updated>1646343640819</updated>
869
- </task>
870
- <task id="LOCAL-01025" summary="Extract logic with paste from word inside separate plugin">
871
- <created>1646343669675</created>
872
- <option name="number" value="01025" />
873
- <option name="presentableId" value="LOCAL-01025" />
874
- <option name="project" value="LOCAL" />
875
- <updated>1646343669675</updated>
876
- </task>
877
- <task id="LOCAL-01026" summary="Extract logic with paste from word inside separate plugin">
878
- <created>1646343680982</created>
879
- <option name="number" value="01026" />
880
- <option name="presentableId" value="LOCAL-01026" />
881
- <option name="project" value="LOCAL" />
882
- <updated>1646343680982</updated>
883
- </task>
884
- <task id="LOCAL-01027" summary="Added module description">
885
- <created>1646344544587</created>
886
- <option name="number" value="01027" />
887
- <option name="presentableId" value="LOCAL-01027" />
888
- <option name="project" value="LOCAL" />
889
- <updated>1646344544587</updated>
890
- </task>
891
- <task id="LOCAL-01028" summary="Fixed a bug when it was impossible to select a normal font after selecting any other">
892
- <created>1646417579156</created>
893
- <option name="number" value="01028" />
894
- <option name="presentableId" value="LOCAL-01028" />
895
- <option name="project" value="LOCAL" />
896
- <updated>1646417579156</updated>
842
+ <workItem from="1647728375663" duration="6312000" />
843
+ <workItem from="1647859572722" duration="7195000" />
844
+ <workItem from="1648067246701" duration="18701000" />
897
845
  </task>
898
846
  <task id="LOCAL-01029" summary="The problem that the selected text disappears #790&#10;Issue: https://github.com/xdan/jodit/issues/790">
899
847
  <created>1646547666409</created>
@@ -1189,7 +1137,56 @@
1189
1137
  <option name="project" value="LOCAL" />
1190
1138
  <updated>1647729803543</updated>
1191
1139
  </task>
1192
- <option name="localTasksCounter" value="1071" />
1140
+ <task id="LOCAL-01071" summary="Fixed composition `wait` and `debounce` decorators">
1141
+ <created>1647732750559</created>
1142
+ <option name="number" value="01071" />
1143
+ <option name="presentableId" value="LOCAL-01071" />
1144
+ <option name="project" value="LOCAL" />
1145
+ <updated>1647732750559</updated>
1146
+ </task>
1147
+ <task id="LOCAL-01072" summary="Fixed apply styles inside another styles">
1148
+ <created>1648290585805</created>
1149
+ <option name="number" value="01072" />
1150
+ <option name="presentableId" value="LOCAL-01072" />
1151
+ <option name="project" value="LOCAL" />
1152
+ <updated>1648290585805</updated>
1153
+ </task>
1154
+ <task id="LOCAL-01073" summary="Sass compile error Css3 min() #809&#10;Issue: https://github.com/xdan/jodit/issues/809">
1155
+ <created>1648376444855</created>
1156
+ <option name="number" value="01073" />
1157
+ <option name="presentableId" value="LOCAL-01073" />
1158
+ <option name="project" value="LOCAL" />
1159
+ <updated>1648376444855</updated>
1160
+ </task>
1161
+ <task id="LOCAL-01074" summary="Fixed image links">
1162
+ <created>1648376457006</created>
1163
+ <option name="number" value="01074" />
1164
+ <option name="presentableId" value="LOCAL-01074" />
1165
+ <option name="project" value="LOCAL" />
1166
+ <updated>1648376457006</updated>
1167
+ </task>
1168
+ <task id="LOCAL-01075" summary="The preview popup has double scrollbars #808&#10;Issue: https://github.com/xdan/jodit/issues/808">
1169
+ <created>1648376761158</created>
1170
+ <option name="number" value="01075" />
1171
+ <option name="presentableId" value="LOCAL-01075" />
1172
+ <option name="project" value="LOCAL" />
1173
+ <updated>1648376761158</updated>
1174
+ </task>
1175
+ <task id="LOCAL-01076" summary="Fixed bug with sync editor size with iframe mode (Works only with [ResizeObserver](https://caniuse.com/resizeobserver))">
1176
+ <created>1648381830154</created>
1177
+ <option name="number" value="01076" />
1178
+ <option name="presentableId" value="LOCAL-01076" />
1179
+ <option name="project" value="LOCAL" />
1180
+ <updated>1648381830154</updated>
1181
+ </task>
1182
+ <task id="LOCAL-01077" summary="Fixed bug with sync editor size with iframe mode (Works only with [ResizeObserver](https://caniuse.com/resizeobserver))">
1183
+ <created>1648381838293</created>
1184
+ <option name="number" value="01077" />
1185
+ <option name="presentableId" value="LOCAL-01077" />
1186
+ <option name="project" value="LOCAL" />
1187
+ <updated>1648381838293</updated>
1188
+ </task>
1189
+ <option name="localTasksCounter" value="1078" />
1193
1190
  <servers />
1194
1191
  </component>
1195
1192
  <component name="TypeScriptGeneratedFilesManager">
@@ -1329,12 +1326,6 @@
1329
1326
  </component>
1330
1327
  <component name="VcsManagerConfiguration">
1331
1328
  <option name="CHECK_CODE_SMELLS_BEFORE_PROJECT_COMMIT" value="false" />
1332
- <MESSAGE value="Separated default editor timeout and `history.timeout`. Now the second setting is just for history.&#10; Timeouts for all asynchronous operations in Jodit now apply the `defaultTimeout` setting" />
1333
- <MESSAGE value="Fix version" />
1334
- <MESSAGE value="Added file for contributing" />
1335
- <MESSAGE value="Renamed `wrap-text-nodes` plugin to `wrap-nodes`" />
1336
- <MESSAGE value="Added test for WrapNode.exclude" />
1337
- <MESSAGE value="Rename file" />
1338
1329
  <MESSAGE value="Added autotest for redo-undo functionality" />
1339
1330
  <MESSAGE value="Fixed - default is not working for insert ordered list and insert unordered list #799&#10;&#10;Issue: https://github.com/xdan/jodit/issues/799" />
1340
1331
  <MESSAGE value="Added `spellcheck` plugin" />
@@ -1354,7 +1345,13 @@
1354
1345
  <MESSAGE value="Added `Config.pasteHTMLActionList` and `Config.pasteFromWordActionList` options &#10;Issue: https://github.com/xdan/jodit/issues/802." />
1355
1346
  <MESSAGE value="Fix doc" />
1356
1347
  <MESSAGE value="&quot;Uncaught TypeError: this.setEditorValue is not a function&quot; with Japanese input method #807&#10;Issue: https://github.com/xdan/jodit/issues/807" />
1357
- <option name="LAST_COMMIT_MESSAGE" value="&quot;Uncaught TypeError: this.setEditorValue is not a function&quot; with Japanese input method #807&#10;Issue: https://github.com/xdan/jodit/issues/807" />
1348
+ <MESSAGE value="Fixed composition `wait` and `debounce` decorators" />
1349
+ <MESSAGE value="Fixed apply styles inside another styles" />
1350
+ <MESSAGE value="Sass compile error Css3 min() #809&#10;Issue: https://github.com/xdan/jodit/issues/809" />
1351
+ <MESSAGE value="Fixed image links" />
1352
+ <MESSAGE value="The preview popup has double scrollbars #808&#10;Issue: https://github.com/xdan/jodit/issues/808" />
1353
+ <MESSAGE value="Fixed bug with sync editor size with iframe mode (Works only with [ResizeObserver](https://caniuse.com/resizeobserver))" />
1354
+ <option name="LAST_COMMIT_MESSAGE" value="Fixed bug with sync editor size with iframe mode (Works only with [ResizeObserver](https://caniuse.com/resizeobserver))" />
1358
1355
  </component>
1359
1356
  <component name="XDebuggerManager">
1360
1357
  <breakpoint-manager>
package/CHANGELOG.MD CHANGED
@@ -9,9 +9,17 @@
9
9
  > - :house: [Internal]
10
10
  > - :nail_care: [Polish]
11
11
 
12
+ ## 3.16.4
13
+
14
+ #### :bug: Bug Fix
15
+
16
+ - [Sass compile error Css3 min() #809](https://github.com/xdan/jodit/issues/809)
17
+ - [The preview popup has double scrollbars #808](https://github.com/xdan/jodit/issues/808)
18
+ - Fixed bug with sync editor size with iframe mode (Works only with [ResizeObserver](https://caniuse.com/resizeobserver))
19
+
12
20
  ## 3.16.3
13
21
 
14
- * Fixed composition `wait` and `debounce` decorators
22
+ - Fixed composition `wait` and `debounce` decorators
15
23
 
16
24
  ## 3.16.2
17
25
 
@@ -1232,11 +1240,11 @@ Related with https://github.com/xdan/jodit/issues/574. In some cases need to lim
1232
1240
  - @property {IUIOption[]} link.selectOptionsClassName=[] The list of the option for the select (to use with
1233
1241
  modeClassName="select")
1234
1242
  - ex: [
1235
- - { value: "", text: "" },
1236
- - { value: "val1", text: "text1" },
1237
- - { value: "val2", text: "text2" },
1238
- - { value: "val3", text: "text3" }
1239
- - ]
1243
+ - { value: "", text: "" },
1244
+ - { value: "val1", text: "text1" },
1245
+ - { value: "val2", text: "text2" },
1246
+ - { value: "val3", text: "text3" }
1247
+ - ]
1240
1248
  PR: https://github.com/xdan/jodit/pull/577 Thanks @s-renier-taonix-fr
1241
1249
 
1242
1250
  ##### New option `statusbar: boolean = true`
package/build/jodit.css CHANGED
@@ -1,14 +1,14 @@
1
1
  /*!
2
2
  * jodit - Jodit is awesome and usefully wysiwyg editor with filebrowser
3
3
  * Author: Chupurnov <chupurnov@gmail.com> (https://xdsoft.net/)
4
- * Version: v3.16.3
4
+ * Version: v3.16.4
5
5
  * Url: https://xdsoft.net/jodit/
6
6
  * License(s): MIT
7
7
  */
8
8
  /*!
9
9
  * jodit - Jodit is awesome and usefully wysiwyg editor with filebrowser
10
10
  * Author: Chupurnov <chupurnov@gmail.com> (https://xdsoft.net/)
11
- * Version: v3.16.3
11
+ * Version: v3.16.4
12
12
  * Url: https://xdsoft.net/jodit/
13
13
  * License(s): MIT
14
14
  */
@@ -1442,6 +1442,11 @@ svg.jodit-icon {
1442
1442
  opacity: 1;
1443
1443
  outline: 0;
1444
1444
  }
1445
+ .jodit-ui-button:focus-visible:not([disabled]) {
1446
+ background-color: #dcdcdc;
1447
+ opacity: 1;
1448
+ outline: 0;
1449
+ }
1445
1450
  .jodit-ui-button:active:not([disabled]) {
1446
1451
  background-color: rgba(220, 220, 220, 0.4);
1447
1452
  outline: 0;
@@ -3369,6 +3374,11 @@ svg.jodit-icon {
3369
3374
  opacity: 1;
3370
3375
  outline: 0;
3371
3376
  }
3377
+ .jodit-toolbar-button__button:focus-visible:not([disabled]) {
3378
+ background-color: #dcdcdc;
3379
+ opacity: 1;
3380
+ outline: 0;
3381
+ }
3372
3382
  .jodit-toolbar-button__button:active:not([disabled]) {
3373
3383
  background-color: rgba(220, 220, 220, 0.4);
3374
3384
  outline: 0;
@@ -3405,6 +3415,11 @@ svg.jodit-icon {
3405
3415
  opacity: 1;
3406
3416
  outline: 0;
3407
3417
  }
3418
+ .jodit-toolbar-button__trigger:focus-visible:not([disabled]) {
3419
+ background-color: #dcdcdc;
3420
+ opacity: 1;
3421
+ outline: 0;
3422
+ }
3408
3423
  .jodit-toolbar-button__trigger:active:not([disabled]) {
3409
3424
  background-color: rgba(220, 220, 220, 0.4);
3410
3425
  outline: 0;
@@ -3502,6 +3517,11 @@ svg.jodit-icon {
3502
3517
  opacity: 1;
3503
3518
  outline: 0;
3504
3519
  }
3520
+ .jodit-toolbar-content:focus-visible:not([disabled]) {
3521
+ background-color: #dcdcdc;
3522
+ opacity: 1;
3523
+ outline: 0;
3524
+ }
3505
3525
  .jodit-toolbar-content:active:not([disabled]) {
3506
3526
  background-color: rgba(220, 220, 220, 0.4);
3507
3527
  outline: 0;
@@ -3888,9 +3908,9 @@ svg.jodit-icon {
3888
3908
  display: -ms-flexbox;
3889
3909
  display: flex;
3890
3910
  min-width: 400px;
3891
- max-width: min(100%, 1000px);
3911
+ max-width: Min(100%, 1000px);
3892
3912
  height: 100%;
3893
- min-height: min(100%, 500px);
3913
+ min-height: Min(100%, 500px);
3894
3914
  max-height: 100%;
3895
3915
  -webkit-box-align: center;
3896
3916
  -ms-flex-align: center;
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * jodit - Jodit is awesome and usefully wysiwyg editor with filebrowser
3
3
  * Author: Chupurnov <chupurnov@gmail.com> (https://xdsoft.net/)
4
- * Version: v3.16.3
4
+ * Version: v3.16.4
5
5
  * Url: https://xdsoft.net/jodit/
6
6
  * License(s): MIT
7
7
  */
@@ -1164,7 +1164,8 @@ svg.jodit-icon {
1164
1164
  min-width: 34px;
1165
1165
  height: 34px;
1166
1166
  }
1167
- .jodit-ui-button:hover:not([disabled]) {
1167
+ .jodit-ui-button:hover:not([disabled]),
1168
+ .jodit-ui-button:focus-visible:not([disabled]) {
1168
1169
  background-color: var(--jd-color-button-background-hover);
1169
1170
  opacity: 1;
1170
1171
  outline: 0;
@@ -2700,7 +2701,8 @@ svg.jodit-icon {
2700
2701
  border-radius: var(--jd-border-radius-default);
2701
2702
  color: var(--jd-color-text-icons);
2702
2703
  }
2703
- .jodit-toolbar-button__button:hover:not([disabled]) {
2704
+ .jodit-toolbar-button__button:hover:not([disabled]),
2705
+ .jodit-toolbar-button__button:focus-visible:not([disabled]) {
2704
2706
  background-color: var(--jd-color-button-background-hover);
2705
2707
  opacity: 1;
2706
2708
  outline: 0;
@@ -2727,7 +2729,8 @@ svg.jodit-icon {
2727
2729
  cursor: pointer;
2728
2730
  width: 14px;
2729
2731
  }
2730
- .jodit-toolbar-button__trigger:hover:not([disabled]) {
2732
+ .jodit-toolbar-button__trigger:hover:not([disabled]),
2733
+ .jodit-toolbar-button__trigger:focus-visible:not([disabled]) {
2731
2734
  background-color: var(--jd-color-button-background-hover);
2732
2735
  opacity: 1;
2733
2736
  outline: 0;
@@ -2808,7 +2811,8 @@ svg.jodit-icon {
2808
2811
  padding: 0;
2809
2812
  border: 1px solid transparent;
2810
2813
  }
2811
- .jodit-toolbar-content:hover:not([disabled]) {
2814
+ .jodit-toolbar-content:hover:not([disabled]),
2815
+ .jodit-toolbar-content:focus-visible:not([disabled]) {
2812
2816
  background-color: var(--jd-color-button-background-hover);
2813
2817
  opacity: 1;
2814
2818
  outline: 0;
@@ -3168,9 +3172,9 @@ svg.jodit-icon {
3168
3172
  position: relative;
3169
3173
  display: flex;
3170
3174
  min-width: 400px;
3171
- max-width: min(100%, 1000px);
3175
+ max-width: Min(100%, 1000px);
3172
3176
  height: 100%;
3173
- min-height: min(100%, 500px);
3177
+ min-height: Min(100%, 500px);
3174
3178
  max-height: 100%;
3175
3179
  align-items: center;
3176
3180
  justify-content: center;
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * jodit - Jodit is awesome and usefully wysiwyg editor with filebrowser
3
3
  * Author: Chupurnov <chupurnov@gmail.com> (https://xdsoft.net/)
4
- * Version: v3.16.3
4
+ * Version: v3.16.4
5
5
  * Url: https://xdsoft.net/jodit/
6
6
  * License(s): MIT
7
7
  */
@@ -1164,7 +1164,8 @@ svg.jodit-icon {
1164
1164
  min-width: 34px;
1165
1165
  height: 34px;
1166
1166
  }
1167
- .jodit-ui-button:hover:not([disabled]) {
1167
+ .jodit-ui-button:hover:not([disabled]),
1168
+ .jodit-ui-button:focus-visible:not([disabled]) {
1168
1169
  background-color: var(--jd-color-button-background-hover);
1169
1170
  opacity: 1;
1170
1171
  outline: 0;
@@ -2700,7 +2701,8 @@ svg.jodit-icon {
2700
2701
  border-radius: var(--jd-border-radius-default);
2701
2702
  color: var(--jd-color-text-icons);
2702
2703
  }
2703
- .jodit-toolbar-button__button:hover:not([disabled]) {
2704
+ .jodit-toolbar-button__button:hover:not([disabled]),
2705
+ .jodit-toolbar-button__button:focus-visible:not([disabled]) {
2704
2706
  background-color: var(--jd-color-button-background-hover);
2705
2707
  opacity: 1;
2706
2708
  outline: 0;
@@ -2727,7 +2729,8 @@ svg.jodit-icon {
2727
2729
  cursor: pointer;
2728
2730
  width: 14px;
2729
2731
  }
2730
- .jodit-toolbar-button__trigger:hover:not([disabled]) {
2732
+ .jodit-toolbar-button__trigger:hover:not([disabled]),
2733
+ .jodit-toolbar-button__trigger:focus-visible:not([disabled]) {
2731
2734
  background-color: var(--jd-color-button-background-hover);
2732
2735
  opacity: 1;
2733
2736
  outline: 0;
@@ -2808,7 +2811,8 @@ svg.jodit-icon {
2808
2811
  padding: 0;
2809
2812
  border: 1px solid transparent;
2810
2813
  }
2811
- .jodit-toolbar-content:hover:not([disabled]) {
2814
+ .jodit-toolbar-content:hover:not([disabled]),
2815
+ .jodit-toolbar-content:focus-visible:not([disabled]) {
2812
2816
  background-color: var(--jd-color-button-background-hover);
2813
2817
  opacity: 1;
2814
2818
  outline: 0;
@@ -3168,9 +3172,9 @@ svg.jodit-icon {
3168
3172
  position: relative;
3169
3173
  display: flex;
3170
3174
  min-width: 400px;
3171
- max-width: min(100%, 1000px);
3175
+ max-width: Min(100%, 1000px);
3172
3176
  height: 100%;
3173
- min-height: min(100%, 500px);
3177
+ min-height: Min(100%, 500px);
3174
3178
  max-height: 100%;
3175
3179
  align-items: center;
3176
3180
  justify-content: center;
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * jodit - Jodit is awesome and usefully wysiwyg editor with filebrowser
3
3
  * Author: Chupurnov <chupurnov@gmail.com> (https://xdsoft.net/)
4
- * Version: v3.16.3
4
+ * Version: v3.16.4
5
5
  * Url: https://xdsoft.net/jodit/
6
6
  * License(s): MIT
7
7
  */
@@ -4842,6 +4842,7 @@ function toggleCommitStyles(commitStyle, elm) {
4842
4842
 
4843
4843
 
4844
4844
 
4845
+
4845
4846
  function unwrapChildren(style, font) {
4846
4847
  const needUnwrap = [];
4847
4848
  const needChangeStyle = [];
@@ -4852,7 +4853,8 @@ function unwrapChildren(style, font) {
4852
4853
  let item = gen.next();
4853
4854
  while (!item.done) {
4854
4855
  const elm = item.value;
4855
- if (isSuitElement(style, elm, true)) {
4856
+ if (isSuitElement(style, elm, true) &&
4857
+ (!cssStyle || elementHasSameStyleKeys(elm, cssStyle))) {
4856
4858
  if (firstElementSuit === undefined) {
4857
4859
  firstElementSuit = true;
4858
4860
  }
@@ -4870,7 +4872,8 @@ function unwrapChildren(style, font) {
4870
4872
  if (!(0,helpers.attr)(elm, 'style')) {
4871
4873
  (0,helpers.attr)(elm, 'style', null);
4872
4874
  }
4873
- if (elm.nodeName.toLowerCase() === style.element) {
4875
+ if (!(0,helpers.attr)(elm, 'style') &&
4876
+ elm.nodeName.toLowerCase() === style.element) {
4874
4877
  needUnwrap.push(elm);
4875
4878
  }
4876
4879
  });
@@ -8739,7 +8742,7 @@ class Popup extends ui/* UIElement */.u1 {
8739
8742
  this.updatePosition();
8740
8743
  return this;
8741
8744
  }
8742
- open(getBound, keepPosition = false) {
8745
+ open(getBound, keepPosition = false, parentContainer) {
8743
8746
  (0,helpers.markOwner)(this.jodit, this.container);
8744
8747
  this.calculateZIndex();
8745
8748
  this.isOpened = true;
@@ -8747,10 +8750,15 @@ class Popup extends ui/* UIElement */.u1 {
8747
8750
  this.targetBound = !keepPosition
8748
8751
  ? getBound
8749
8752
  : this.getKeepBound(getBound);
8750
- const parentContainer = (0,global/* getContainer */.ZO)(this.jodit, Popup);
8751
- if (parentContainer !== this.container.parentElement) {
8753
+ if (parentContainer) {
8752
8754
  parentContainer.appendChild(this.container);
8753
8755
  }
8756
+ else {
8757
+ const popupContainer = (0,global/* getContainer */.ZO)(this.jodit, Popup);
8758
+ if (parentContainer !== this.container.parentElement) {
8759
+ popupContainer.appendChild(this.container);
8760
+ }
8761
+ }
8754
8762
  this.updatePosition();
8755
8763
  this.j.e.fire(this, 'afterOpen');
8756
8764
  return this;
@@ -11758,7 +11766,7 @@ class View extends component/* Component */.wA {
11758
11766
  this.isView = true;
11759
11767
  this.mods = {};
11760
11768
  this.components = new Set();
11761
- this.version = "3.16.3";
11769
+ this.version = "3.16.4";
11762
11770
  this.async = new Async();
11763
11771
  this.buffer = Storage.makeStorage();
11764
11772
  this.storage = Storage.makeStorage(true, this.componentName);
@@ -11856,10 +11864,10 @@ class View extends component/* Component */.wA {
11856
11864
  return this.__isFullSize;
11857
11865
  }
11858
11866
  getVersion() {
11859
- return "3.16.3";
11867
+ return "3.16.4";
11860
11868
  }
11861
11869
  static getVersion() {
11862
- return "3.16.3";
11870
+ return "3.16.4";
11863
11871
  }
11864
11872
  initOptions(options) {
11865
11873
  this.options = (0,helpers.ConfigProto)(options || {}, (0,helpers.ConfigProto)(this.options || {}, View.defaultOptions));
@@ -12357,7 +12365,9 @@ let ToolbarButton = class ToolbarButton extends ui_button/* UIButton */.y3 {
12357
12365
  if (elm) {
12358
12366
  popup
12359
12367
  .setContent((0,helpers.isString)(elm) ? this.j.c.fromHTML(elm) : elm)
12360
- .open(() => (0,helpers.position)(this.container));
12368
+ .open(() => (0,helpers.position)(this.container), false, this.j.o.allowTabNavigation
12369
+ ? this.container
12370
+ : undefined);
12361
12371
  }
12362
12372
  }
12363
12373
  this.j.e.fire((0,helpers.camelCase)(`after-${ctr.name}-open-popup`), popup.container);
@@ -12403,7 +12413,7 @@ let ToolbarButton = class ToolbarButton extends ui_button/* UIButton */.y3 {
12403
12413
  toolbar.build((0,helpers.isArray)(list)
12404
12414
  ? list.map(getButton)
12405
12415
  : (0,helpers.keys)(list, false).map(key => getButton(key, list[key])), this.target);
12406
- menu.setContent(toolbar.container).open(() => (0,helpers.position)(this.container));
12416
+ menu.setContent(toolbar.container).open(() => (0,helpers.position)(this.container), false, this.j.o.allowTabNavigation ? this.container : undefined);
12407
12417
  this.state.activated = true;
12408
12418
  }
12409
12419
  onOutsideClick(e) {
@@ -21849,6 +21859,10 @@ function iframe(editor) {
21849
21859
  .on('change afterInit afterSetMode resize', resizeIframe)
21850
21860
  .on([editor.iframe, editor.ew, doc.documentElement], 'load', resizeIframe)
21851
21861
  .on(doc, 'readystatechange DOMContentLoaded', resizeIframe);
21862
+ if (typeof ResizeObserver === 'function') {
21863
+ const resizeObserver = new ResizeObserver(resizeIframe);
21864
+ resizeObserver.observe(doc.body);
21865
+ }
21852
21866
  }
21853
21867
  if (doc.documentElement) {
21854
21868
  editor.e
@@ -28093,6 +28107,13 @@ function previewBox(editor, defaultValue, points = 'px', container = null) {
28093
28107
  if (myWindow) {
28094
28108
  editor.e.fire('generateDocumentStructure.iframe', myWindow.document, editor);
28095
28109
  div = myWindow.document.body;
28110
+ if (typeof ResizeObserver === 'function') {
28111
+ const resizeObserver = new ResizeObserver(entries => {
28112
+ iframe.style.height =
28113
+ myWindow.document.body.offsetHeight + 20 + 'px';
28114
+ });
28115
+ resizeObserver.observe(myWindow.document.body);
28116
+ }
28096
28117
  }
28097
28118
  }
28098
28119
  else {