Malleys,
Спасибо! Я сначала скопировал и вставил себе, выделение шло, но функционал конфликтовал, так как у меня уже было реализовано часть ваших новых доработок (смена курсора, выделение ячейки, подсветка и т.п.)
Начал я у себя отключать всё это и доотключался до того что у меня теперь ваше приложение не запускается.
Я предполагаю почему, но лучше уточнить.
Дело в том, что изначально я сгенерированный код таблицы вставлял внутрь дива таким способом:
div.innerHTML = `<table is="editable-table">${code}</table>`;
После моих изменений браузер начал ошибку выдавать на такую вставку через innerHTML.
Я переписал объявив таблицу свойством объекта и вставил через DOM. Теперь ваше приложение не запускается так как не видит таблицу.
Вот карскас из моего приложения который генерирует и вставляет таблицу:
document.addEventListener("DOMContentLoaded", function () {
const table = {
editor: document.querySelector('#tableEditor'), // Это родительский div в который вставляется таблица
event: function () {
// Тут слушатели addEventListener
},
generator: function () {
let tableHTMLCode = 'тут код, он сгенерированный';
this.tablitsa = document.createElement('table'); // Объявление таблицы как свойство объекта
this.tablitsa.innerHTML = tableHTMLCode;
this.tablitsa.setAttribute('is', 'editable-table');
this.editor.appendChild(this.tablitsa);
},
init: function () {
this.generator();
this.event();
// customElements.define("editable-table", EditableTable, { extends: "table" }); // это закоментировано, отсюда не запускаю.
},
// Тут куча методов
}
table.init();
// Тут пошёл код объединения ячеек
});
Теперь таблица у меня получается
table.tablitsa
и поэтому не запускается
customElements.define("editable-table", EditableTable, { extends: "table" });
Я нашёл доку customElements.define() но не разобрался можно ли для свойства объекта объявить.
Есть вариант - в HTML прописать таблицу, а все внутренности вставлять через метод generator. Тогда должно всё заработать. Но вдруг есть возможность сделать объявление customElements для моего варианта. Поэтому я решил уточнить.
PS. А выделение можно ограничить чтоб оно за пределы таблицы не вылазило или я губешку раскатал и мне стоит написать цикл который будет закатывать её обратно?