#contents
, v-slot:contents
или slot='contents'
), и там правьте.ref
- там и возможен говнокод, с вручную запиханой разметкой(искать по this.$refs.container
), но сомнительно.const today = moment().startOf('day');
const dateFormat = 'YYYY-MM-DD HH:mm:ss';
const mapFunc = ({ End, Start, Amount }) => {
const points = [End, Start];
const shift = moment(today).seconds(Start);
const shifts = [];
const order = Start > End;
for (let i = 0; i < Amount; i++) {
shifts.push(
shift.format(dateFormat)
+ ' - '
+ shift
.hours(0) // очищаем часы
.minutes(0) // и минуты
.seconds(points[i % 2]) // чередуем временную точку: чёт - End, нечёт - Start
.add(i % 2 ^ order, 'd') // добавляем день если смена переходит на следующий
.format(dateFormat)
)
}
return shifts
}
console.log(mapFunc({
"Start": 25200,
"End": 68400,
"Amount": 5
}));
yarn serve
, а через yarn electron:serve. Как и билдить. Читайте описание тех модулей, что подключаете. function getDebouncedReq(params) {
var state = debounced.state = false;
var _debounce = null;
var _interval = null;
var _that = null, _args = [];
function debounced() {
_that = this;
_args = Array.prototype.slice.call(arguments, 0);
if(state === false) {
state = debounced.state = true;
if(params.onOnline)
params.onOnline.apply(_that, _args);
_interval = setInterval(function(){
if(params.onInterval)
params.onInterval.apply(_that, _args);
}, params.interval || 1000);
}
clearTimeout(_debounce);
_debounce = setTimeout(function(){
clearInterval(_interval)
state = debounced.state = false;
if(params.onOffline)
params.onOffline.apply(_that, _args);
}, params.idleWait || 60000);
}
return debounced;
}
$(document).ready( function(){
var requester = getDebouncedReq({
idleWait: 6000,
interval: 1000,
onOffline: function(){
console.log('offline');
},
onOnline: function(){
console.log('online');
},
onInterval: function(){
console.log('interval');
}
}, 10000)
$(document).bind('mousemove keydown scroll', requester);
$(document).trigger("mousemove");
$(document).bind('click', function() {
alert(requester.state)
});
});
svg
и навешать обработчики вручную.geojson
версию и использовать любую либу, умеющую с ним работать.link:
или через file:
. В первом случае создаётся симлинк на модуль в node_modules
, во втором модуль туда просто копируется. В первом случаем может не завестись по разным эзотерическим причинам, но если завелось - удобнее конечно использовать его.npm
, а yarn
- добавляются ещё удобные варианты:yarn
собирает все зависимости в один node_modules
и линкует использующийся модули туда же. В итоге отсутствует дубликация файлов и все модули работают с одними и теми же либами - что полезно в деве если используется расширение сторонних модулей. Очень удобно.yarn link
в корне одного модуля и он регистрируется глобально, после чего в другом модуле где хотите использовать делаете yarn link "имя"
и он линкуется. vue
и, при удаче, всё заработает.)body
, :root
и т.п.) селекторов, попатчить саму либу местами и проследить чтобы теперь основные стили сайта не перебивали классы либы, но это уже отдельная история.)postcss-prefix-selector
с vue-cli
не обязательно вручную вкорячивать loader
, можно его просто добавить в .postcssrc.js
в plugins
: require('postcss-prefix-selector')({
prefix: '.prefix'
}),
typeof obj.field.text === 'undefined'
: typeof
даёт строку.if (obj.field?.text === undefined)
если obj
есть, и соответственно if (obj?.field?.text === undefined)
если неизвестно.if (!(typeof obj.field !== 'undefined' && typeof obj.field.text !== 'undefined' ))
Или использовать функцию-хэлпер, например if (get(obj, 'field.text') === undefined)
из lodash.