@atlaskit/editor-plugin-layout 1.9.6 → 1.9.8
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.
- package/CHANGELOG.md +17 -0
- package/dist/cjs/actions.js +101 -2
- package/dist/cjs/toolbar.js +2 -8
- package/dist/es2019/actions.js +97 -1
- package/dist/es2019/toolbar.js +2 -8
- package/dist/esm/actions.js +100 -1
- package/dist/esm/toolbar.js +2 -8
- package/dist/types/actions.d.ts +2 -0
- package/dist/types/types.d.ts +1 -1
- package/dist/types-ts4.5/actions.d.ts +2 -0
- package/dist/types-ts4.5/types.d.ts +1 -1
- package/package.json +3 -3
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,22 @@
|
|
|
1
1
|
# @atlaskit/editor-plugin-layout
|
|
2
2
|
|
|
3
|
+
## 1.9.8
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [#158827](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/158827)
|
|
8
|
+
[`6696a5d9665c7`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/6696a5d9665c7) -
|
|
9
|
+
Refactor forceColumnStructure so it works for 2-5 columns layout under advanced_layout experiment
|
|
10
|
+
|
|
11
|
+
## 1.9.7
|
|
12
|
+
|
|
13
|
+
### Patch Changes
|
|
14
|
+
|
|
15
|
+
- [#156974](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/156974)
|
|
16
|
+
[`e23605a60e753`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/e23605a60e753) -
|
|
17
|
+
Add four and five column support for layout sections
|
|
18
|
+
- Updated dependencies
|
|
19
|
+
|
|
3
20
|
## 1.9.6
|
|
4
21
|
|
|
5
22
|
### Patch Changes
|
package/dist/cjs/actions.js
CHANGED
|
@@ -4,7 +4,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
4
4
|
Object.defineProperty(exports, "__esModule", {
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
|
-
exports.fixColumnStructure = exports.fixColumnSizes = exports.deleteActiveLayoutNode = exports.createMultiColumnLayoutSection = exports.createDefaultLayoutSection = exports.TWO_COL_LAYOUTS = exports.THREE_COL_LAYOUTS = exports.ONE_COL_LAYOUTS = void 0;
|
|
7
|
+
exports.fixColumnStructure = exports.fixColumnSizes = exports.deleteActiveLayoutNode = exports.createMultiColumnLayoutSection = exports.createDefaultLayoutSection = exports.TWO_COL_LAYOUTS = exports.THREE_COL_LAYOUTS = exports.ONE_COL_LAYOUTS = exports.FOUR_COL_LAYOUTS = exports.FIVE_COL_LAYOUTS = void 0;
|
|
8
8
|
exports.forceSectionToPresetLayout = forceSectionToPresetLayout;
|
|
9
9
|
exports.setPresetLayout = exports.insertLayoutColumnsWithAnalytics = exports.insertLayoutColumns = exports.getSelectedLayout = exports.getPresetLayout = void 0;
|
|
10
10
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
@@ -23,7 +23,29 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t =
|
|
|
23
23
|
var ONE_COL_LAYOUTS = exports.ONE_COL_LAYOUTS = ['single'];
|
|
24
24
|
var TWO_COL_LAYOUTS = exports.TWO_COL_LAYOUTS = ['two_equal', 'two_left_sidebar', 'two_right_sidebar'];
|
|
25
25
|
var THREE_COL_LAYOUTS = exports.THREE_COL_LAYOUTS = ['three_equal', 'three_with_sidebars'];
|
|
26
|
+
var FOUR_COL_LAYOUTS = exports.FOUR_COL_LAYOUTS = ['four_equal'];
|
|
27
|
+
var FIVE_COL_LAYOUTS = exports.FIVE_COL_LAYOUTS = ['five_equal'];
|
|
26
28
|
var getWidthsForPreset = function getWidthsForPreset(presetLayout) {
|
|
29
|
+
if ((0, _preRelease.isPreRelease2)()) {
|
|
30
|
+
switch (presetLayout) {
|
|
31
|
+
case 'single':
|
|
32
|
+
return [100];
|
|
33
|
+
case 'two_equal':
|
|
34
|
+
return [50, 50];
|
|
35
|
+
case 'three_equal':
|
|
36
|
+
return [33.33, 33.33, 33.33];
|
|
37
|
+
case 'two_left_sidebar':
|
|
38
|
+
return [33.33, 66.66];
|
|
39
|
+
case 'two_right_sidebar':
|
|
40
|
+
return [66.66, 33.33];
|
|
41
|
+
case 'three_with_sidebars':
|
|
42
|
+
return [25, 50, 25];
|
|
43
|
+
case 'four_equal':
|
|
44
|
+
return [25, 25, 25, 25];
|
|
45
|
+
case 'five_equal':
|
|
46
|
+
return [20, 20, 20, 20, 20];
|
|
47
|
+
}
|
|
48
|
+
}
|
|
27
49
|
switch (presetLayout) {
|
|
28
50
|
case 'single':
|
|
29
51
|
return [100];
|
|
@@ -38,6 +60,7 @@ var getWidthsForPreset = function getWidthsForPreset(presetLayout) {
|
|
|
38
60
|
case 'three_with_sidebars':
|
|
39
61
|
return [25, 50, 25];
|
|
40
62
|
}
|
|
63
|
+
return [];
|
|
41
64
|
};
|
|
42
65
|
|
|
43
66
|
/**
|
|
@@ -48,6 +71,27 @@ var getPresetLayout = exports.getPresetLayout = function getPresetLayout(section
|
|
|
48
71
|
var widths = (0, _utils.mapChildren)(section, function (column) {
|
|
49
72
|
return column.attrs.width;
|
|
50
73
|
}).join(',');
|
|
74
|
+
if ((0, _preRelease.isPreRelease2)()) {
|
|
75
|
+
switch (widths) {
|
|
76
|
+
case '100':
|
|
77
|
+
return 'single';
|
|
78
|
+
case '33.33,33.33,33.33':
|
|
79
|
+
return 'three_equal';
|
|
80
|
+
case '25,50,25':
|
|
81
|
+
return 'three_with_sidebars';
|
|
82
|
+
case '50,50':
|
|
83
|
+
return 'two_equal';
|
|
84
|
+
case '33.33,66.66':
|
|
85
|
+
return 'two_left_sidebar';
|
|
86
|
+
case '66.66,33.33':
|
|
87
|
+
return 'two_right_sidebar';
|
|
88
|
+
case '25,25,25,25':
|
|
89
|
+
return 'four_equal';
|
|
90
|
+
case '20,20,20,20,20':
|
|
91
|
+
return 'five_equal';
|
|
92
|
+
}
|
|
93
|
+
return;
|
|
94
|
+
}
|
|
51
95
|
switch (widths) {
|
|
52
96
|
case '100':
|
|
53
97
|
return 'single';
|
|
@@ -182,6 +226,28 @@ var fromThreeColstoOne = function fromThreeColstoOne(node, tr, insideRightEdgePo
|
|
|
182
226
|
var secondColumn = node.content.child(1);
|
|
183
227
|
fromTwoColsToOne(secondColumn, insideRightEdgePos - thirdColumn.nodeSize - secondColumn.nodeSize, insideRightEdgePos)(tr);
|
|
184
228
|
};
|
|
229
|
+
var increaseColumns = function increaseColumns(schema, pos) {
|
|
230
|
+
var newColumnsNumber = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;
|
|
231
|
+
var formatMessage = arguments.length > 3 ? arguments[3] : undefined;
|
|
232
|
+
return function (tr) {
|
|
233
|
+
for (var i = 0; i < newColumnsNumber; i++) {
|
|
234
|
+
addColumn(schema, pos, formatMessage)(tr);
|
|
235
|
+
}
|
|
236
|
+
};
|
|
237
|
+
};
|
|
238
|
+
var decreaseColumns = function decreaseColumns(node, insideRightEdgePos) {
|
|
239
|
+
var columnsNumberToRemove = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;
|
|
240
|
+
return function (tr) {
|
|
241
|
+
var endPos = insideRightEdgePos;
|
|
242
|
+
var lastColumn = node.content.lastChild;
|
|
243
|
+
for (var i = 0; i < columnsNumberToRemove; i++) {
|
|
244
|
+
var _lastColumn;
|
|
245
|
+
lastColumn && removeLastColumnInLayout(lastColumn, endPos - lastColumn.nodeSize, endPos)(tr);
|
|
246
|
+
endPos -= ((_lastColumn = lastColumn) === null || _lastColumn === void 0 ? void 0 : _lastColumn.nodeSize) || 0;
|
|
247
|
+
lastColumn = node.content.child(node.childCount - i - 2);
|
|
248
|
+
}
|
|
249
|
+
};
|
|
250
|
+
};
|
|
185
251
|
|
|
186
252
|
/**
|
|
187
253
|
* Handles switching from 2 -> 3 cols, or 3 -> 2 cols
|
|
@@ -223,6 +289,18 @@ function forceColumnStructure(state, node, pos, presetLayout, formatMessage) {
|
|
|
223
289
|
}
|
|
224
290
|
return tr;
|
|
225
291
|
}
|
|
292
|
+
function forceColumnStructureNew(state, node, pos, presetLayout, formatMessage) {
|
|
293
|
+
var tr = state.tr;
|
|
294
|
+
var insideRightEdgeOfLayoutSection = pos + node.nodeSize - 1;
|
|
295
|
+
var numCols = node.childCount;
|
|
296
|
+
var columnChange = getWidthsForPreset(presetLayout).length - numCols;
|
|
297
|
+
if (columnChange > 0) {
|
|
298
|
+
increaseColumns(state.schema, insideRightEdgeOfLayoutSection, columnChange, formatMessage)(tr);
|
|
299
|
+
} else if (columnChange < 0) {
|
|
300
|
+
decreaseColumns(node, insideRightEdgeOfLayoutSection, -columnChange)(tr);
|
|
301
|
+
}
|
|
302
|
+
return tr;
|
|
303
|
+
}
|
|
226
304
|
function columnWidth(node, schema, widths) {
|
|
227
305
|
var layoutColumn = schema.nodes.layoutColumn;
|
|
228
306
|
var truncatedWidths = widths.map(function (w) {
|
|
@@ -246,7 +324,8 @@ function forceColumnWidths(state, tr, pos, presetLayout) {
|
|
|
246
324
|
return tr.replaceWith(pos + 1, pos + node.nodeSize - 1, columnWidth(node, state.schema, getWidthsForPreset(presetLayout)));
|
|
247
325
|
}
|
|
248
326
|
function forceSectionToPresetLayout(state, node, pos, presetLayout, formatMessage) {
|
|
249
|
-
var
|
|
327
|
+
var forceColumnStructureFn = (0, _preRelease.isPreRelease2)() ? forceColumnStructureNew : forceColumnStructure;
|
|
328
|
+
var tr = forceColumnStructureFn(state, node, pos, presetLayout, formatMessage);
|
|
250
329
|
|
|
251
330
|
// save the selection here, since forcing column widths causes a change over the
|
|
252
331
|
// entire layoutSection, which remaps selection to the end. not remapping here
|
|
@@ -377,6 +456,26 @@ var deleteActiveLayoutNode = exports.deleteActiveLayoutNode = function deleteAct
|
|
|
377
456
|
};
|
|
378
457
|
};
|
|
379
458
|
var formatLayoutName = function formatLayoutName(layout) {
|
|
459
|
+
if ((0, _preRelease.isPreRelease2)()) {
|
|
460
|
+
switch (layout) {
|
|
461
|
+
case 'single':
|
|
462
|
+
return _analytics.LAYOUT_TYPE.SINGLE_COL;
|
|
463
|
+
case 'two_equal':
|
|
464
|
+
return _analytics.LAYOUT_TYPE.TWO_COLS_EQUAL;
|
|
465
|
+
case 'three_equal':
|
|
466
|
+
return _analytics.LAYOUT_TYPE.THREE_COLS_EQUAL;
|
|
467
|
+
case 'two_left_sidebar':
|
|
468
|
+
return _analytics.LAYOUT_TYPE.LEFT_SIDEBAR;
|
|
469
|
+
case 'two_right_sidebar':
|
|
470
|
+
return _analytics.LAYOUT_TYPE.RIGHT_SIDEBAR;
|
|
471
|
+
case 'three_with_sidebars':
|
|
472
|
+
return _analytics.LAYOUT_TYPE.THREE_WITH_SIDEBARS;
|
|
473
|
+
case 'four_equal':
|
|
474
|
+
return _analytics.LAYOUT_TYPE.FOUR_COLS_EQUAL;
|
|
475
|
+
case 'five_equal':
|
|
476
|
+
return _analytics.LAYOUT_TYPE.FIVE_COLS_EQUAL;
|
|
477
|
+
}
|
|
478
|
+
}
|
|
380
479
|
switch (layout) {
|
|
381
480
|
case 'single':
|
|
382
481
|
return _analytics.LAYOUT_TYPE.SINGLE_COL;
|
package/dist/cjs/toolbar.js
CHANGED
|
@@ -133,10 +133,7 @@ var buildToolbar = exports.buildToolbar = function buildToolbar(state, intl, pos
|
|
|
133
133
|
}),
|
|
134
134
|
//'4-columns'
|
|
135
135
|
icon: iconPlaceholder,
|
|
136
|
-
onClick:
|
|
137
|
-
// TODO: Implement layout update in ED-25053
|
|
138
|
-
return true;
|
|
139
|
-
},
|
|
136
|
+
onClick: (0, _actions.setPresetLayout)(editorAnalyticsAPI)('four_equal', intl.formatMessage),
|
|
140
137
|
selected: numberOfColumns === 4
|
|
141
138
|
}, {
|
|
142
139
|
title: intl.formatMessage(_messages.layoutMessages.columnOption, {
|
|
@@ -144,10 +141,7 @@ var buildToolbar = exports.buildToolbar = function buildToolbar(state, intl, pos
|
|
|
144
141
|
}),
|
|
145
142
|
//'5-columns'
|
|
146
143
|
icon: iconPlaceholder,
|
|
147
|
-
onClick:
|
|
148
|
-
// TODO: Implement layout update in ED-25053
|
|
149
|
-
return true;
|
|
150
|
-
},
|
|
144
|
+
onClick: (0, _actions.setPresetLayout)(editorAnalyticsAPI)('five_equal', intl.formatMessage),
|
|
151
145
|
selected: numberOfColumns === 5
|
|
152
146
|
}];
|
|
153
147
|
return {
|
package/dist/es2019/actions.js
CHANGED
|
@@ -11,7 +11,29 @@ import { isPreRelease2 } from './utils/preRelease';
|
|
|
11
11
|
export const ONE_COL_LAYOUTS = ['single'];
|
|
12
12
|
export const TWO_COL_LAYOUTS = ['two_equal', 'two_left_sidebar', 'two_right_sidebar'];
|
|
13
13
|
export const THREE_COL_LAYOUTS = ['three_equal', 'three_with_sidebars'];
|
|
14
|
+
export const FOUR_COL_LAYOUTS = ['four_equal'];
|
|
15
|
+
export const FIVE_COL_LAYOUTS = ['five_equal'];
|
|
14
16
|
const getWidthsForPreset = presetLayout => {
|
|
17
|
+
if (isPreRelease2()) {
|
|
18
|
+
switch (presetLayout) {
|
|
19
|
+
case 'single':
|
|
20
|
+
return [100];
|
|
21
|
+
case 'two_equal':
|
|
22
|
+
return [50, 50];
|
|
23
|
+
case 'three_equal':
|
|
24
|
+
return [33.33, 33.33, 33.33];
|
|
25
|
+
case 'two_left_sidebar':
|
|
26
|
+
return [33.33, 66.66];
|
|
27
|
+
case 'two_right_sidebar':
|
|
28
|
+
return [66.66, 33.33];
|
|
29
|
+
case 'three_with_sidebars':
|
|
30
|
+
return [25, 50, 25];
|
|
31
|
+
case 'four_equal':
|
|
32
|
+
return [25, 25, 25, 25];
|
|
33
|
+
case 'five_equal':
|
|
34
|
+
return [20, 20, 20, 20, 20];
|
|
35
|
+
}
|
|
36
|
+
}
|
|
15
37
|
switch (presetLayout) {
|
|
16
38
|
case 'single':
|
|
17
39
|
return [100];
|
|
@@ -26,6 +48,7 @@ const getWidthsForPreset = presetLayout => {
|
|
|
26
48
|
case 'three_with_sidebars':
|
|
27
49
|
return [25, 50, 25];
|
|
28
50
|
}
|
|
51
|
+
return [];
|
|
29
52
|
};
|
|
30
53
|
|
|
31
54
|
/**
|
|
@@ -34,6 +57,27 @@ const getWidthsForPreset = presetLayout => {
|
|
|
34
57
|
*/
|
|
35
58
|
export const getPresetLayout = section => {
|
|
36
59
|
const widths = mapChildren(section, column => column.attrs.width).join(',');
|
|
60
|
+
if (isPreRelease2()) {
|
|
61
|
+
switch (widths) {
|
|
62
|
+
case '100':
|
|
63
|
+
return 'single';
|
|
64
|
+
case '33.33,33.33,33.33':
|
|
65
|
+
return 'three_equal';
|
|
66
|
+
case '25,50,25':
|
|
67
|
+
return 'three_with_sidebars';
|
|
68
|
+
case '50,50':
|
|
69
|
+
return 'two_equal';
|
|
70
|
+
case '33.33,66.66':
|
|
71
|
+
return 'two_left_sidebar';
|
|
72
|
+
case '66.66,33.33':
|
|
73
|
+
return 'two_right_sidebar';
|
|
74
|
+
case '25,25,25,25':
|
|
75
|
+
return 'four_equal';
|
|
76
|
+
case '20,20,20,20,20':
|
|
77
|
+
return 'five_equal';
|
|
78
|
+
}
|
|
79
|
+
return;
|
|
80
|
+
}
|
|
37
81
|
switch (widths) {
|
|
38
82
|
case '100':
|
|
39
83
|
return 'single';
|
|
@@ -165,6 +209,25 @@ const fromThreeColstoOne = (node, tr, insideRightEdgePos) => {
|
|
|
165
209
|
const secondColumn = node.content.child(1);
|
|
166
210
|
fromTwoColsToOne(secondColumn, insideRightEdgePos - thirdColumn.nodeSize - secondColumn.nodeSize, insideRightEdgePos)(tr);
|
|
167
211
|
};
|
|
212
|
+
const increaseColumns = (schema, pos, newColumnsNumber = 1, formatMessage) => {
|
|
213
|
+
return tr => {
|
|
214
|
+
for (let i = 0; i < newColumnsNumber; i++) {
|
|
215
|
+
addColumn(schema, pos, formatMessage)(tr);
|
|
216
|
+
}
|
|
217
|
+
};
|
|
218
|
+
};
|
|
219
|
+
const decreaseColumns = (node, insideRightEdgePos, columnsNumberToRemove = 1) => {
|
|
220
|
+
return tr => {
|
|
221
|
+
let endPos = insideRightEdgePos;
|
|
222
|
+
let lastColumn = node.content.lastChild;
|
|
223
|
+
for (let i = 0; i < columnsNumberToRemove; i++) {
|
|
224
|
+
var _lastColumn;
|
|
225
|
+
lastColumn && removeLastColumnInLayout(lastColumn, endPos - lastColumn.nodeSize, endPos)(tr);
|
|
226
|
+
endPos -= ((_lastColumn = lastColumn) === null || _lastColumn === void 0 ? void 0 : _lastColumn.nodeSize) || 0;
|
|
227
|
+
lastColumn = node.content.child(node.childCount - i - 2);
|
|
228
|
+
}
|
|
229
|
+
};
|
|
230
|
+
};
|
|
168
231
|
|
|
169
232
|
/**
|
|
170
233
|
* Handles switching from 2 -> 3 cols, or 3 -> 2 cols
|
|
@@ -206,6 +269,18 @@ function forceColumnStructure(state, node, pos, presetLayout, formatMessage) {
|
|
|
206
269
|
}
|
|
207
270
|
return tr;
|
|
208
271
|
}
|
|
272
|
+
function forceColumnStructureNew(state, node, pos, presetLayout, formatMessage) {
|
|
273
|
+
const tr = state.tr;
|
|
274
|
+
const insideRightEdgeOfLayoutSection = pos + node.nodeSize - 1;
|
|
275
|
+
const numCols = node.childCount;
|
|
276
|
+
const columnChange = getWidthsForPreset(presetLayout).length - numCols;
|
|
277
|
+
if (columnChange > 0) {
|
|
278
|
+
increaseColumns(state.schema, insideRightEdgeOfLayoutSection, columnChange, formatMessage)(tr);
|
|
279
|
+
} else if (columnChange < 0) {
|
|
280
|
+
decreaseColumns(node, insideRightEdgeOfLayoutSection, -columnChange)(tr);
|
|
281
|
+
}
|
|
282
|
+
return tr;
|
|
283
|
+
}
|
|
209
284
|
function columnWidth(node, schema, widths) {
|
|
210
285
|
const {
|
|
211
286
|
layoutColumn
|
|
@@ -230,7 +305,8 @@ function forceColumnWidths(state, tr, pos, presetLayout) {
|
|
|
230
305
|
return tr.replaceWith(pos + 1, pos + node.nodeSize - 1, columnWidth(node, state.schema, getWidthsForPreset(presetLayout)));
|
|
231
306
|
}
|
|
232
307
|
export function forceSectionToPresetLayout(state, node, pos, presetLayout, formatMessage) {
|
|
233
|
-
|
|
308
|
+
const forceColumnStructureFn = isPreRelease2() ? forceColumnStructureNew : forceColumnStructure;
|
|
309
|
+
let tr = forceColumnStructureFn(state, node, pos, presetLayout, formatMessage);
|
|
234
310
|
|
|
235
311
|
// save the selection here, since forcing column widths causes a change over the
|
|
236
312
|
// entire layoutSection, which remaps selection to the end. not remapping here
|
|
@@ -360,6 +436,26 @@ export const deleteActiveLayoutNode = editorAnalyticsAPI => (state, dispatch) =>
|
|
|
360
436
|
return false;
|
|
361
437
|
};
|
|
362
438
|
const formatLayoutName = layout => {
|
|
439
|
+
if (isPreRelease2()) {
|
|
440
|
+
switch (layout) {
|
|
441
|
+
case 'single':
|
|
442
|
+
return LAYOUT_TYPE.SINGLE_COL;
|
|
443
|
+
case 'two_equal':
|
|
444
|
+
return LAYOUT_TYPE.TWO_COLS_EQUAL;
|
|
445
|
+
case 'three_equal':
|
|
446
|
+
return LAYOUT_TYPE.THREE_COLS_EQUAL;
|
|
447
|
+
case 'two_left_sidebar':
|
|
448
|
+
return LAYOUT_TYPE.LEFT_SIDEBAR;
|
|
449
|
+
case 'two_right_sidebar':
|
|
450
|
+
return LAYOUT_TYPE.RIGHT_SIDEBAR;
|
|
451
|
+
case 'three_with_sidebars':
|
|
452
|
+
return LAYOUT_TYPE.THREE_WITH_SIDEBARS;
|
|
453
|
+
case 'four_equal':
|
|
454
|
+
return LAYOUT_TYPE.FOUR_COLS_EQUAL;
|
|
455
|
+
case 'five_equal':
|
|
456
|
+
return LAYOUT_TYPE.FIVE_COLS_EQUAL;
|
|
457
|
+
}
|
|
458
|
+
}
|
|
363
459
|
switch (layout) {
|
|
364
460
|
case 'single':
|
|
365
461
|
return LAYOUT_TYPE.SINGLE_COL;
|
package/dist/es2019/toolbar.js
CHANGED
|
@@ -121,10 +121,7 @@ export const buildToolbar = (state, intl, pos, _allowBreakout, addSidebarLayouts
|
|
|
121
121
|
}),
|
|
122
122
|
//'4-columns'
|
|
123
123
|
icon: iconPlaceholder,
|
|
124
|
-
onClick: ()
|
|
125
|
-
// TODO: Implement layout update in ED-25053
|
|
126
|
-
return true;
|
|
127
|
-
},
|
|
124
|
+
onClick: setPresetLayout(editorAnalyticsAPI)('four_equal', intl.formatMessage),
|
|
128
125
|
selected: numberOfColumns === 4
|
|
129
126
|
}, {
|
|
130
127
|
title: intl.formatMessage(layoutMessages.columnOption, {
|
|
@@ -132,10 +129,7 @@ export const buildToolbar = (state, intl, pos, _allowBreakout, addSidebarLayouts
|
|
|
132
129
|
}),
|
|
133
130
|
//'5-columns'
|
|
134
131
|
icon: iconPlaceholder,
|
|
135
|
-
onClick: ()
|
|
136
|
-
// TODO: Implement layout update in ED-25053
|
|
137
|
-
return true;
|
|
138
|
-
},
|
|
132
|
+
onClick: setPresetLayout(editorAnalyticsAPI)('five_equal', intl.formatMessage),
|
|
139
133
|
selected: numberOfColumns === 5
|
|
140
134
|
}];
|
|
141
135
|
return {
|
package/dist/esm/actions.js
CHANGED
|
@@ -14,7 +14,29 @@ import { isPreRelease2 } from './utils/preRelease';
|
|
|
14
14
|
export var ONE_COL_LAYOUTS = ['single'];
|
|
15
15
|
export var TWO_COL_LAYOUTS = ['two_equal', 'two_left_sidebar', 'two_right_sidebar'];
|
|
16
16
|
export var THREE_COL_LAYOUTS = ['three_equal', 'three_with_sidebars'];
|
|
17
|
+
export var FOUR_COL_LAYOUTS = ['four_equal'];
|
|
18
|
+
export var FIVE_COL_LAYOUTS = ['five_equal'];
|
|
17
19
|
var getWidthsForPreset = function getWidthsForPreset(presetLayout) {
|
|
20
|
+
if (isPreRelease2()) {
|
|
21
|
+
switch (presetLayout) {
|
|
22
|
+
case 'single':
|
|
23
|
+
return [100];
|
|
24
|
+
case 'two_equal':
|
|
25
|
+
return [50, 50];
|
|
26
|
+
case 'three_equal':
|
|
27
|
+
return [33.33, 33.33, 33.33];
|
|
28
|
+
case 'two_left_sidebar':
|
|
29
|
+
return [33.33, 66.66];
|
|
30
|
+
case 'two_right_sidebar':
|
|
31
|
+
return [66.66, 33.33];
|
|
32
|
+
case 'three_with_sidebars':
|
|
33
|
+
return [25, 50, 25];
|
|
34
|
+
case 'four_equal':
|
|
35
|
+
return [25, 25, 25, 25];
|
|
36
|
+
case 'five_equal':
|
|
37
|
+
return [20, 20, 20, 20, 20];
|
|
38
|
+
}
|
|
39
|
+
}
|
|
18
40
|
switch (presetLayout) {
|
|
19
41
|
case 'single':
|
|
20
42
|
return [100];
|
|
@@ -29,6 +51,7 @@ var getWidthsForPreset = function getWidthsForPreset(presetLayout) {
|
|
|
29
51
|
case 'three_with_sidebars':
|
|
30
52
|
return [25, 50, 25];
|
|
31
53
|
}
|
|
54
|
+
return [];
|
|
32
55
|
};
|
|
33
56
|
|
|
34
57
|
/**
|
|
@@ -39,6 +62,27 @@ export var getPresetLayout = function getPresetLayout(section) {
|
|
|
39
62
|
var widths = mapChildren(section, function (column) {
|
|
40
63
|
return column.attrs.width;
|
|
41
64
|
}).join(',');
|
|
65
|
+
if (isPreRelease2()) {
|
|
66
|
+
switch (widths) {
|
|
67
|
+
case '100':
|
|
68
|
+
return 'single';
|
|
69
|
+
case '33.33,33.33,33.33':
|
|
70
|
+
return 'three_equal';
|
|
71
|
+
case '25,50,25':
|
|
72
|
+
return 'three_with_sidebars';
|
|
73
|
+
case '50,50':
|
|
74
|
+
return 'two_equal';
|
|
75
|
+
case '33.33,66.66':
|
|
76
|
+
return 'two_left_sidebar';
|
|
77
|
+
case '66.66,33.33':
|
|
78
|
+
return 'two_right_sidebar';
|
|
79
|
+
case '25,25,25,25':
|
|
80
|
+
return 'four_equal';
|
|
81
|
+
case '20,20,20,20,20':
|
|
82
|
+
return 'five_equal';
|
|
83
|
+
}
|
|
84
|
+
return;
|
|
85
|
+
}
|
|
42
86
|
switch (widths) {
|
|
43
87
|
case '100':
|
|
44
88
|
return 'single';
|
|
@@ -173,6 +217,28 @@ var fromThreeColstoOne = function fromThreeColstoOne(node, tr, insideRightEdgePo
|
|
|
173
217
|
var secondColumn = node.content.child(1);
|
|
174
218
|
fromTwoColsToOne(secondColumn, insideRightEdgePos - thirdColumn.nodeSize - secondColumn.nodeSize, insideRightEdgePos)(tr);
|
|
175
219
|
};
|
|
220
|
+
var increaseColumns = function increaseColumns(schema, pos) {
|
|
221
|
+
var newColumnsNumber = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;
|
|
222
|
+
var formatMessage = arguments.length > 3 ? arguments[3] : undefined;
|
|
223
|
+
return function (tr) {
|
|
224
|
+
for (var i = 0; i < newColumnsNumber; i++) {
|
|
225
|
+
addColumn(schema, pos, formatMessage)(tr);
|
|
226
|
+
}
|
|
227
|
+
};
|
|
228
|
+
};
|
|
229
|
+
var decreaseColumns = function decreaseColumns(node, insideRightEdgePos) {
|
|
230
|
+
var columnsNumberToRemove = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;
|
|
231
|
+
return function (tr) {
|
|
232
|
+
var endPos = insideRightEdgePos;
|
|
233
|
+
var lastColumn = node.content.lastChild;
|
|
234
|
+
for (var i = 0; i < columnsNumberToRemove; i++) {
|
|
235
|
+
var _lastColumn;
|
|
236
|
+
lastColumn && removeLastColumnInLayout(lastColumn, endPos - lastColumn.nodeSize, endPos)(tr);
|
|
237
|
+
endPos -= ((_lastColumn = lastColumn) === null || _lastColumn === void 0 ? void 0 : _lastColumn.nodeSize) || 0;
|
|
238
|
+
lastColumn = node.content.child(node.childCount - i - 2);
|
|
239
|
+
}
|
|
240
|
+
};
|
|
241
|
+
};
|
|
176
242
|
|
|
177
243
|
/**
|
|
178
244
|
* Handles switching from 2 -> 3 cols, or 3 -> 2 cols
|
|
@@ -214,6 +280,18 @@ function forceColumnStructure(state, node, pos, presetLayout, formatMessage) {
|
|
|
214
280
|
}
|
|
215
281
|
return tr;
|
|
216
282
|
}
|
|
283
|
+
function forceColumnStructureNew(state, node, pos, presetLayout, formatMessage) {
|
|
284
|
+
var tr = state.tr;
|
|
285
|
+
var insideRightEdgeOfLayoutSection = pos + node.nodeSize - 1;
|
|
286
|
+
var numCols = node.childCount;
|
|
287
|
+
var columnChange = getWidthsForPreset(presetLayout).length - numCols;
|
|
288
|
+
if (columnChange > 0) {
|
|
289
|
+
increaseColumns(state.schema, insideRightEdgeOfLayoutSection, columnChange, formatMessage)(tr);
|
|
290
|
+
} else if (columnChange < 0) {
|
|
291
|
+
decreaseColumns(node, insideRightEdgeOfLayoutSection, -columnChange)(tr);
|
|
292
|
+
}
|
|
293
|
+
return tr;
|
|
294
|
+
}
|
|
217
295
|
function columnWidth(node, schema, widths) {
|
|
218
296
|
var layoutColumn = schema.nodes.layoutColumn;
|
|
219
297
|
var truncatedWidths = widths.map(function (w) {
|
|
@@ -237,7 +315,8 @@ function forceColumnWidths(state, tr, pos, presetLayout) {
|
|
|
237
315
|
return tr.replaceWith(pos + 1, pos + node.nodeSize - 1, columnWidth(node, state.schema, getWidthsForPreset(presetLayout)));
|
|
238
316
|
}
|
|
239
317
|
export function forceSectionToPresetLayout(state, node, pos, presetLayout, formatMessage) {
|
|
240
|
-
var
|
|
318
|
+
var forceColumnStructureFn = isPreRelease2() ? forceColumnStructureNew : forceColumnStructure;
|
|
319
|
+
var tr = forceColumnStructureFn(state, node, pos, presetLayout, formatMessage);
|
|
241
320
|
|
|
242
321
|
// save the selection here, since forcing column widths causes a change over the
|
|
243
322
|
// entire layoutSection, which remaps selection to the end. not remapping here
|
|
@@ -368,6 +447,26 @@ export var deleteActiveLayoutNode = function deleteActiveLayoutNode(editorAnalyt
|
|
|
368
447
|
};
|
|
369
448
|
};
|
|
370
449
|
var formatLayoutName = function formatLayoutName(layout) {
|
|
450
|
+
if (isPreRelease2()) {
|
|
451
|
+
switch (layout) {
|
|
452
|
+
case 'single':
|
|
453
|
+
return LAYOUT_TYPE.SINGLE_COL;
|
|
454
|
+
case 'two_equal':
|
|
455
|
+
return LAYOUT_TYPE.TWO_COLS_EQUAL;
|
|
456
|
+
case 'three_equal':
|
|
457
|
+
return LAYOUT_TYPE.THREE_COLS_EQUAL;
|
|
458
|
+
case 'two_left_sidebar':
|
|
459
|
+
return LAYOUT_TYPE.LEFT_SIDEBAR;
|
|
460
|
+
case 'two_right_sidebar':
|
|
461
|
+
return LAYOUT_TYPE.RIGHT_SIDEBAR;
|
|
462
|
+
case 'three_with_sidebars':
|
|
463
|
+
return LAYOUT_TYPE.THREE_WITH_SIDEBARS;
|
|
464
|
+
case 'four_equal':
|
|
465
|
+
return LAYOUT_TYPE.FOUR_COLS_EQUAL;
|
|
466
|
+
case 'five_equal':
|
|
467
|
+
return LAYOUT_TYPE.FIVE_COLS_EQUAL;
|
|
468
|
+
}
|
|
469
|
+
}
|
|
371
470
|
switch (layout) {
|
|
372
471
|
case 'single':
|
|
373
472
|
return LAYOUT_TYPE.SINGLE_COL;
|
package/dist/esm/toolbar.js
CHANGED
|
@@ -123,10 +123,7 @@ export var buildToolbar = function buildToolbar(state, intl, pos, _allowBreakout
|
|
|
123
123
|
}),
|
|
124
124
|
//'4-columns'
|
|
125
125
|
icon: iconPlaceholder,
|
|
126
|
-
onClick:
|
|
127
|
-
// TODO: Implement layout update in ED-25053
|
|
128
|
-
return true;
|
|
129
|
-
},
|
|
126
|
+
onClick: setPresetLayout(editorAnalyticsAPI)('four_equal', intl.formatMessage),
|
|
130
127
|
selected: numberOfColumns === 4
|
|
131
128
|
}, {
|
|
132
129
|
title: intl.formatMessage(layoutMessages.columnOption, {
|
|
@@ -134,10 +131,7 @@ export var buildToolbar = function buildToolbar(state, intl, pos, _allowBreakout
|
|
|
134
131
|
}),
|
|
135
132
|
//'5-columns'
|
|
136
133
|
icon: iconPlaceholder,
|
|
137
|
-
onClick:
|
|
138
|
-
// TODO: Implement layout update in ED-25053
|
|
139
|
-
return true;
|
|
140
|
-
},
|
|
134
|
+
onClick: setPresetLayout(editorAnalyticsAPI)('five_equal', intl.formatMessage),
|
|
141
135
|
selected: numberOfColumns === 5
|
|
142
136
|
}];
|
|
143
137
|
return {
|
package/dist/types/actions.d.ts
CHANGED
|
@@ -7,6 +7,8 @@ import type { Change, PresetLayout } from './types';
|
|
|
7
7
|
export declare const ONE_COL_LAYOUTS: PresetLayout[];
|
|
8
8
|
export declare const TWO_COL_LAYOUTS: PresetLayout[];
|
|
9
9
|
export declare const THREE_COL_LAYOUTS: PresetLayout[];
|
|
10
|
+
export declare const FOUR_COL_LAYOUTS: PresetLayout[];
|
|
11
|
+
export declare const FIVE_COL_LAYOUTS: PresetLayout[];
|
|
10
12
|
/**
|
|
11
13
|
* Finds layout preset based on the width attrs of all the layoutColumn nodes
|
|
12
14
|
* inside the layoutSection node
|
package/dist/types/types.d.ts
CHANGED
|
@@ -5,7 +5,7 @@ export interface LayoutPluginOptions extends LongPressSelectionPluginOptions {
|
|
|
5
5
|
UNSAFE_addSidebarLayouts?: boolean;
|
|
6
6
|
UNSAFE_allowSingleColumnLayout?: boolean;
|
|
7
7
|
}
|
|
8
|
-
export type PresetLayout = 'single' | 'two_equal' | 'three_equal' | 'two_right_sidebar' | 'two_left_sidebar' | 'three_with_sidebars';
|
|
8
|
+
export type PresetLayout = 'single' | 'two_equal' | 'three_equal' | 'two_right_sidebar' | 'two_left_sidebar' | 'three_with_sidebars' | 'four_equal' | 'five_equal';
|
|
9
9
|
export interface Change {
|
|
10
10
|
from: number;
|
|
11
11
|
to: number;
|
|
@@ -7,6 +7,8 @@ import type { Change, PresetLayout } from './types';
|
|
|
7
7
|
export declare const ONE_COL_LAYOUTS: PresetLayout[];
|
|
8
8
|
export declare const TWO_COL_LAYOUTS: PresetLayout[];
|
|
9
9
|
export declare const THREE_COL_LAYOUTS: PresetLayout[];
|
|
10
|
+
export declare const FOUR_COL_LAYOUTS: PresetLayout[];
|
|
11
|
+
export declare const FIVE_COL_LAYOUTS: PresetLayout[];
|
|
10
12
|
/**
|
|
11
13
|
* Finds layout preset based on the width attrs of all the layoutColumn nodes
|
|
12
14
|
* inside the layoutSection node
|
|
@@ -5,7 +5,7 @@ export interface LayoutPluginOptions extends LongPressSelectionPluginOptions {
|
|
|
5
5
|
UNSAFE_addSidebarLayouts?: boolean;
|
|
6
6
|
UNSAFE_allowSingleColumnLayout?: boolean;
|
|
7
7
|
}
|
|
8
|
-
export type PresetLayout = 'single' | 'two_equal' | 'three_equal' | 'two_right_sidebar' | 'two_left_sidebar' | 'three_with_sidebars';
|
|
8
|
+
export type PresetLayout = 'single' | 'two_equal' | 'three_equal' | 'two_right_sidebar' | 'two_left_sidebar' | 'three_with_sidebars' | 'four_equal' | 'five_equal';
|
|
9
9
|
export interface Change {
|
|
10
10
|
from: number;
|
|
11
11
|
to: number;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@atlaskit/editor-plugin-layout",
|
|
3
|
-
"version": "1.9.
|
|
3
|
+
"version": "1.9.8",
|
|
4
4
|
"description": "Layout plugin for @atlaskit/editor-core",
|
|
5
5
|
"author": "Atlassian Pty Ltd",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -32,13 +32,13 @@
|
|
|
32
32
|
},
|
|
33
33
|
"dependencies": {
|
|
34
34
|
"@atlaskit/adf-schema": "^42.3.1",
|
|
35
|
-
"@atlaskit/editor-common": "^94.
|
|
35
|
+
"@atlaskit/editor-common": "^94.9.0",
|
|
36
36
|
"@atlaskit/editor-plugin-analytics": "^1.10.0",
|
|
37
37
|
"@atlaskit/editor-plugin-decorations": "^1.3.0",
|
|
38
38
|
"@atlaskit/editor-prosemirror": "6.0.0",
|
|
39
39
|
"@atlaskit/icon": "^22.24.0",
|
|
40
40
|
"@atlaskit/platform-feature-flags": "^0.3.0",
|
|
41
|
-
"@atlaskit/tmp-editor-statsig": "^2.
|
|
41
|
+
"@atlaskit/tmp-editor-statsig": "^2.10.0",
|
|
42
42
|
"@atlaskit/tokens": "^2.0.0",
|
|
43
43
|
"@babel/runtime": "^7.0.0",
|
|
44
44
|
"@emotion/react": "^11.7.1"
|