Skip to content

Commit

Permalink
Preserve IDs on alert widget section element
Browse files Browse the repository at this point in the history
  • Loading branch information
smulvih2 committed Oct 25, 2024
1 parent 5cd4656 commit 99fb821
Show file tree
Hide file tree
Showing 2 changed files with 42 additions and 22 deletions.
32 changes: 21 additions & 11 deletions modules/custom/wxt_ext/wxt_ext_editor/js/build/wxt_alert.js
Original file line number Diff line number Diff line change
Expand Up @@ -258,7 +258,8 @@ class AlertEditing extends delegated_corefrom_dll_reference_CKEditor5.Plugin {

this.alertClasses.forEach(c => {
schema.register('alert-' + c, {
inheritAllFrom: '$block'
inheritAllFrom: '$block',
allowAttributes: ['id']
});
schema.register('alertTitle-' + c, {
isLimit: true,
Expand All @@ -278,8 +279,12 @@ class AlertEditing extends delegated_corefrom_dll_reference_CKEditor5.Plugin {
const { conversion } = this.editor;

this.alertClasses.forEach(c => {
// Upcast
conversion.for('upcast').elementToElement({
model: 'alert-' + c,
model: (viewElement, { writer: modelWriter }) => {
const id = viewElement.getAttribute('id') || null;
return modelWriter.createElement('alert-' + c, { id });
},
view: {
name: 'section',
classes: ['alert', 'alert-' + c],
Expand All @@ -304,14 +309,17 @@ class AlertEditing extends delegated_corefrom_dll_reference_CKEditor5.Plugin {
converterPriority: 'high'
});

// Data Downcast
conversion.for('dataDowncast').elementToElement({
model: 'alert-' + c,
view: {
name: 'section',
classes: ['alert', 'alert-' + c],
view: (modelElement, { writer: viewWriter }) => {
const id = modelElement.getAttribute('id') || null;
return viewWriter.createContainerElement('section', {
class: 'alert alert-' + c,
id: id
});
},
});

conversion.for('dataDowncast').elementToElement({
model: 'alertTitle-' + c,
view: (modelElement, { writer: viewWriter }) => {
Expand All @@ -320,7 +328,6 @@ class AlertEditing extends delegated_corefrom_dll_reference_CKEditor5.Plugin {
},
converterPriority: 'high'
});

conversion.for('dataDowncast').elementToElement({
model: 'alertBody-' + c,
view: {
Expand All @@ -329,15 +336,19 @@ class AlertEditing extends delegated_corefrom_dll_reference_CKEditor5.Plugin {
converterPriority: 'high'
});

// Editing Downcast
conversion.for('editingDowncast').elementToElement({
model: 'alert-' + c,
view: (modelElement, { writer: viewWriter }) => {
const div = viewWriter.createContainerElement('section', { class: 'alert alert-' + c });
return (0,delegated_widgetfrom_dll_reference_CKEditor5.toWidget)(div, viewWriter, { hasSelectionHandle: true });
const id = modelElement.getAttribute('id') || null;
const section = viewWriter.createContainerElement('section', {
class: 'alert alert-' + c,
id: id
});
return (0,delegated_widgetfrom_dll_reference_CKEditor5.toWidget)(section, viewWriter, { hasSelectionHandle: true });
},
converterPriority: 'high'
});

conversion.for('editingDowncast').elementToElement({
model: 'alertTitle-' + c,
view: (modelElement, { writer: viewWriter }) => {
Expand All @@ -347,7 +358,6 @@ class AlertEditing extends delegated_corefrom_dll_reference_CKEditor5.Plugin {
},
converterPriority: 'high'
});

conversion.for('editingDowncast').elementToElement({
model: 'alertBody-' + c,
view: (modelElement, { writer: viewWriter }) => {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,8 @@ export default class AlertEditing extends Plugin {

this.alertClasses.forEach(c => {
schema.register('alert-' + c, {
inheritAllFrom: '$block'
inheritAllFrom: '$block',
allowAttributes: ['id']
});
schema.register('alertTitle-' + c, {
isLimit: true,
Expand All @@ -45,8 +46,12 @@ export default class AlertEditing extends Plugin {
const { conversion } = this.editor;

this.alertClasses.forEach(c => {
// Upcast
conversion.for('upcast').elementToElement({
model: 'alert-' + c,
model: (viewElement, { writer: modelWriter }) => {
const id = viewElement.getAttribute('id') || null;
return modelWriter.createElement('alert-' + c, { id });
},
view: {
name: 'section',
classes: ['alert', 'alert-' + c],
Expand All @@ -71,14 +76,17 @@ export default class AlertEditing extends Plugin {
converterPriority: 'high'
});

// Data Downcast
conversion.for('dataDowncast').elementToElement({
model: 'alert-' + c,
view: {
name: 'section',
classes: ['alert', 'alert-' + c],
view: (modelElement, { writer: viewWriter }) => {
const id = modelElement.getAttribute('id') || null;
return viewWriter.createContainerElement('section', {
class: 'alert alert-' + c,
id: id
});
},
});

conversion.for('dataDowncast').elementToElement({
model: 'alertTitle-' + c,
view: (modelElement, { writer: viewWriter }) => {
Expand All @@ -87,7 +95,6 @@ export default class AlertEditing extends Plugin {
},
converterPriority: 'high'
});

conversion.for('dataDowncast').elementToElement({
model: 'alertBody-' + c,
view: {
Expand All @@ -96,15 +103,19 @@ export default class AlertEditing extends Plugin {
converterPriority: 'high'
});

// Editing Downcast
conversion.for('editingDowncast').elementToElement({
model: 'alert-' + c,
view: (modelElement, { writer: viewWriter }) => {
const div = viewWriter.createContainerElement('section', { class: 'alert alert-' + c });
return toWidget(div, viewWriter, { hasSelectionHandle: true });
const id = modelElement.getAttribute('id') || null;
const section = viewWriter.createContainerElement('section', {
class: 'alert alert-' + c,
id: id
});
return toWidget(section, viewWriter, { hasSelectionHandle: true });
},
converterPriority: 'high'
});

conversion.for('editingDowncast').elementToElement({
model: 'alertTitle-' + c,
view: (modelElement, { writer: viewWriter }) => {
Expand All @@ -114,7 +125,6 @@ export default class AlertEditing extends Plugin {
},
converterPriority: 'high'
});

conversion.for('editingDowncast').elementToElement({
model: 'alertBody-' + c,
view: (modelElement, { writer: viewWriter }) => {
Expand Down

0 comments on commit 99fb821

Please sign in to comment.