no-new-null: подавление стояло перед сигнатурой effectiveSlaHours, а
предупреждения падали на строки параметра и типа возврата — комментарии
перенесены к самим строкам; в isRowOverdue подавление добавлено.
explicit-function-return-type: у хелпера row в тесте activatedAt указан
тип возврата (ActivationRow — те же поля, что читает activatedAt).
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Снимаем max-width канвы для контейнера workbench (#workbenchPageContent)
и зоны канвы на живой странице (.CanvasComponent.LCS .CanvasZone) —
иначе supportsFullBleed из манифеста растягивает web part только
в полноширинной секции, а в обычной одноколоночной ширина остаётся
ограниченной.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
ComparisonOperator дополнен NotEqual, Contains, NotContains.
NotEqual — строгое отрицание Equal (текст без учёта регистра + сравнение
как чисел), Contains/NotContains — поиск подстроки без учёта регистра.
В форме шага набор операторов зависит от типа колонки: для числовой —
всё, кроме «содержит»/«не содержит», для текстовой — всё, кроме
«больше»/«меньше», для служебного IsManager — только «равно»/«не равно».
Недопустимый после смены поля оператор сбрасывается на «равно».
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Правила из frontend/.gitignore перенесены в корневой .gitignore,
дублирующий файл удалён. README дополнен описанием SPFx frontend
(ApprovalAdmin), который ранее был ошибочно указан как отсутствующий.