datatable динамическая вставка и удаление фильтра в/из header

Доброго дня. Пытаюсь реализовать указанное в заголовке темы. Клик по названию столбца показывает либо скрывает selectFilter. Всё работает замечательно за исключением изменения высоты строки заголовков таблицы. После вставки фильтра строка заголовков таблицы становится шире (выше) для того, что бы вместить элемент фильтра. Но после удаления фильтра размер строки заголовков не возвращается к первоначальному состоянию. Судя по всему причина кроется в появляющемся значении null в массиве ._columns_pull.<имя_заголовка>.header, и удалить этот null не получается никакими средствами. Прошу помощи.

Да, забыл сказать, к конфигу обращаюсь как напрямую, так и через .getColumnConfig. В обоих случаях результат одинаков.
Также перебрал кучу методов в попытке удалить элемент null в header, который остаётся от удалённого/заменённого элемента {content:“selectFilter”}

https://snippet.webix.com/fuzwql5q

Спасибо, но так после третьего клика получаю это:

webix.js:39123:10

TypeError: _data[end] is null[Подробнее] webix.js:39123:10
_normalize_headers
http://127.0.0.1:8080/static/lib/webix.js:39123:10
_define_structure
http://127.0.0.1:8080/static/lib/webix.js:38944:8
refreshColumns
http://127.0.0.1:8080/static/lib/webix.js:37762:6
myaction
http://127.0.0.1:8080/static/ui.js:347:71
_mouseEventCall
http://127.0.0.1:8080/static/lib/webix.js:40448:16
_mouseEvent
http://127.0.0.1:8080/static/lib/webix.js:40506:18
_onClick
http://127.0.0.1:8080/static/lib/webix.js:11932:19
bind/<
http://127.0.0.1:8080/static/lib/webix.js:297:13

никак не смог повторить такую ошибку.
скорее всего проблема в вашей конфигурации.
выложите сниппет если можно.

ошибка появилась при реальном autoConfig:true.
хоть в вышеприведенном сниппете и выставлен autoConfig:true, columns тоже указан открыто, что и отменяет автоконфигурацию.

Ничего не понимаю… Ваш пример у меня не работает, но и мой, работающий у меня код выдаёт ошибку в сниппете! Пробую разобраться

Странно. На сниппете объект datatable выглядит совсем не так, как у меня. В частности всё, что у меня начинается с символа подчеркивания ( _ ) на сниппете отсутствует. Например элемент ._columns_pull отсутсвует напроч, а я именно его использую в своей версии. Такое впечатление, будто версии библиотеки очень разные. Я использую GPL версию, скачанную недели полторы назад.

https://snippet.webix.com/70upvd1k

Сделал по Вашей методике, но ловлю ошибку.

https://snippet.webix.com/b2glts25
надеюсь, логика понятной будет

всё, что у меня начинается с символа подчеркивания ( _ ) на сниппете отсутствует. Например элемент ._columns_pull отсутсвует напроч, а я именно его использую в своей версии.
не используйте ничего, начинающегося на _
это приватные параметры, относящиеся к дебаг версии
они минимизируются в рабочей версии.

Благодарю, поиграюсь минут через 30. Но не могли бы Вы указать на ошибку в моём коде? Что я сделал не так?

Не видел сообщение про _. Понял, учту

ошибка возникала от многоколонности.
при добавлении/удалении фильтра надо обрабатывать и другие колонны.
но вас также поджидает подводный камень.
если при удалении фильтра, таблица будет отфильтрована этим фильтром, то обратного эффекта не будет.
т.е. фильтр так и останется задействованным
надо будет добавить что-то в этом роде

        if($$("table").getFilter("title")){
          $$("table").getFilter("title").value = null;
          $$("table").filterByAll();
        }

Вы говорите, что:“при добавлении/удалении фильтра надо обрабатывать и другие колонны”. Какая обработка подразумевается в этой фразе?

Спасибо Вам огромное за помощь. Сделал всё как хотел. Без Вашей подсказки о сохранении результата фильтра после его удаления из заголовка долго бы, наверное, мучился. Да и не сразу бы это выяснилось. В общем еще раз благодарю.
Вот готовый результат:
https://snippet.webix.com/8d6esihe
Клик по заголовку ORDER STATUS активирует/скрывает фильтр