input
с иконкой в label
(самое семантичное), либо положить под input
с помощью z-index
, чтоб клики на самом деле были по нему, либо сделать кнопку прозрачной для кликов, назначив ей pointer-events: none;
.hover
и прочие эффекты - то наследуй от input
:input[type="date"]:hover + .icon {}
public
должно быть собрано на этапе компиляции. Всех этих путей не будет существовать в готовом приложении: что-то соберётся в javascript, что-то в css, что-то таки будет переложено в публичную папку(с переименованием и хэшированием), в зависимости от набора и настроек loader'ов.fetch
же работает уже на этапе исполнения и получить он может только то, что есть в публичной папке. build
и посмотри как выглядит папка dist
.svg
надо настроить соответствующий loader
: есть специальные конкретно для svg
, с разными фичами - так и гуглятся по "svg loader"
, есть raw-loader
- который грузит что угодно как текст, есть встроенный file-loader
который при import
\require
просто вернёт ссылку, по которой на этапе сборки он переложит файл - вот её можно будет использовать в fetch
. fetch
, можно просто переложить этот svg
в папку public
и обращаться к нему от корня, условно /icons/some.svg
. Либо можно воспользоваться плагином CopyWebpackPlugin
, который на этапе сборки перекопирует что укажешь в публичную папку.input[type="date"] {
-webkit-mask-image: radial-gradient(circle at right 65px top 50%, rgba(0,0,0,0) 20px, rgba(0,0,0,1) 20px)
}
class Symbol {
static #secretHashMap = Object.create(null);
static for(description) {
if(description in this.#secretHashMap)
return this.#secretHashMap[description];
return this.#secretHashMap[description] = Symbol(description);
}
}
beforeEnter(to, from, next) {
if (to.params.type)
return next();
const type = (isCity && 'city') || (isProduct && 'procuct');
if (!type)
return next('/404');
const {name, query, params} = to;
return next({
name,
params: {...params, type},
query
});
}
const child = parent.extend({
url: '...'
});
mounted() {
getData(this.$options.url);
}
interface Params {};
interface Response {};
namespace ITMDB {
export type params = Params;
export type response = Response;
}