Только ручками.
Итак создаете блок. Через яваскрипт вычисляете его высоту, если место остается, создаете второй блок, и так до того момента пока не появляется прокрутка, тогда последний удаляете
Ниже список с чем сталкивался, возможно не полный:
* Булева алгебра - это пожалуй то с чем сталкиваются наиболее часто
* Вейвлет преобразования и фурье - все что связано с графикой, но вы уже используете готовые функции вас это не коснется
* системы счисления - довольно часто, как пример расчет масок сети, разные битовые операции, операции сдвига
* матричное исчисление - игроделанье системы cad cam
* Статистические методы - это уже к бухгалтерам и датаскентистам
* Предметная область - заморочки определенных программ и профессиональной деятельности
Не тратьте свое время на это. То что пришло от клиента по умолчанию "грязные данные", все проверки должны быть на сервере кроме этого используйте AntiForgeryToken и httponly cookie.
И да по моему лучше детектить не подмену а поведение.
Как например выбор всех опций товара за микросекунду.
SPA идеологически подразумевает клубок кода который работает всегда.
Единственный момент когда вы физически нажмете рефреш, тогда приложение сбросится и начнет заново работать
Я делаю злой скрипт и подсовываю его вашему клиенту считываю host, port, name, user, password
И угадайте в каких извращенных формах я надругаюсь над базой?
Хм у этого датапикера нет таких свойств. Хотя постойте.
Псевдокод для вашего случая.
при старте пикера вычисляете записи в каких днях были.
далее отбираете по селектору a.ui-state-default и меняете его на a.ui-state-disabled
в коде событие onselect просто ничего не делаете если нет новостей по дате