я могу вам с уверенностью сказать, что ваш исходный клиентский код никому кроме вас и заказчика не нужен. Обфускация не нужна. Нужны две версии - исходники с комментами и минифицированная версия для продакшена (кстати современные сборщики уже умеют даже DCE (dead code elimination))
Ну и если у вас что-то заказывают, нужно и исходники передавать, а не только результат
Нужно, но не с целью "уберечься от воровства", не минифицированные исходники конечному клиенту тоже нужно предоставить так как они его собственность.
А вот с целью клиентской оптимизации - да, нужно. И поэтому во время демо тоже это нужно, что бы можно было прогнать google pagespeed например и радоваться хорошим показателям. У многих клиентов это выступает в качестве нефункционального требования - быстрая загрузка/отрисовка.
Firefox поддерживает такое -moz-outline-radius: 25px;. Но только Firefox.
Все остальные браузеры не имеют такого аналога.
При этом, многие используют "костыль" в виде box-shadow, когда отключают outline.
не используйте фильтрацию коллекций в шаблонах, готовьте данные в контроллере. Эта фича годится только для прототипов, в продакшене такое лучше не делать. Фильтры должны возвращать строки и быть максимально быстрыми. Опять же вы можете в контроллер инджектить фильтры (filterFilter в вашем случае)
А ели у вас отфильтрованная коллекция есть в контроллере, то вывести ее длину вообще не проблема.
Transition не анимирует свойство display, а у вас выпадающее меню как раз на его основе. Попробуйте реализовать меню по другому, например с помощью margin или opaсity. Тогда можно будет применить transition.
1. Узнать оригинальное соотношение сторон.
2. Узнать необходимую ширину или высоту.
3. При помощи простейшей математической формулы* вычислить новое значение нужной стороны.