ngx-ntk-cron-editor
Version:
Angular cron editor
24 lines • 3.37 kB
JavaScript
// @dynamic
export default class Utils {
/** This returns a range of numbers. Starts from 0 if 'startFrom' is not set */
static getRange(startFrom, until) {
return Array.from({ length: (until + 1 - startFrom) }, (_, k) => k + startFrom);
}
static isObject(value) {
return typeof value === 'object' && value !== null;
}
static merge(target, ...sources) {
for (const source of sources) {
for (const [key, value] of Object.entries(source)) {
if (Utils.isObject(target[key]) && Utils.isObject(value)) {
Utils.merge(target[key], value);
}
else {
target[key] = value;
}
}
}
return target;
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbnRrLWNyb24tZWRpdG9yL3NyYy9saWIvcG9jby9VdGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxXQUFXO0FBQ1gsTUFBTSxDQUFDLE9BQU8sT0FBTyxLQUFLO0lBQ3RCLCtFQUErRTtJQUN4RSxNQUFNLENBQUMsUUFBUSxDQUFDLFNBQWlCLEVBQUUsS0FBYTtRQUNuRCxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLENBQUM7SUFDcEYsQ0FBQztJQUVNLE1BQU0sQ0FBQyxRQUFRLENBQUMsS0FBVTtRQUM3QixPQUFPLE9BQU8sS0FBSyxLQUFLLFFBQVEsSUFBSSxLQUFLLEtBQUssSUFBSSxDQUFDO0lBQ3ZELENBQUM7SUFFTSxNQUFNLENBQUMsS0FBSyxDQUFDLE1BQWMsRUFBRSxHQUFHLE9BQWlCO1FBQ3BELEtBQUssTUFBTSxNQUFNLElBQUksT0FBTyxFQUFFO1lBQzFCLEtBQUssTUFBTSxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFO2dCQUMvQyxJQUFJLEtBQUssQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksS0FBSyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRTtvQkFDdEQsS0FBSyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7aUJBQ25DO3FCQUFNO29CQUNILE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUM7aUJBQ3ZCO2FBQ0o7U0FDSjtRQUNELE9BQU8sTUFBTSxDQUFDO0lBQ2xCLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbIi8vIEBkeW5hbWljXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFV0aWxzIHtcclxuICAgIC8qKiBUaGlzIHJldHVybnMgYSByYW5nZSBvZiBudW1iZXJzLiBTdGFydHMgZnJvbSAwIGlmICdzdGFydEZyb20nIGlzIG5vdCBzZXQgKi9cclxuICAgIHB1YmxpYyBzdGF0aWMgZ2V0UmFuZ2Uoc3RhcnRGcm9tOiBudW1iZXIsIHVudGlsOiBudW1iZXIpIHtcclxuICAgICAgICByZXR1cm4gQXJyYXkuZnJvbSh7IGxlbmd0aDogKHVudGlsICsgMSAtIHN0YXJ0RnJvbSkgfSwgKF8sIGspID0+IGsgKyBzdGFydEZyb20pO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzdGF0aWMgaXNPYmplY3QodmFsdWU6IGFueSk6IHZhbHVlIGlzIG9iamVjdCB7XHJcbiAgICAgICAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiYgdmFsdWUgIT09IG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHN0YXRpYyBtZXJnZSh0YXJnZXQ6IG9iamVjdCwgLi4uc291cmNlczogb2JqZWN0W10pOiBvYmplY3Qge1xyXG4gICAgICAgIGZvciAoY29uc3Qgc291cmNlIG9mIHNvdXJjZXMpIHtcclxuICAgICAgICAgICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMoc291cmNlKSkge1xyXG4gICAgICAgICAgICAgICAgaWYgKFV0aWxzLmlzT2JqZWN0KHRhcmdldFtrZXldKSAmJiBVdGlscy5pc09iamVjdCh2YWx1ZSkpIHtcclxuICAgICAgICAgICAgICAgICAgICBVdGlscy5tZXJnZSh0YXJnZXRba2V5XSwgdmFsdWUpO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICB0YXJnZXRba2V5XSA9IHZhbHVlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0YXJnZXQ7XHJcbiAgICB9XHJcbn1cclxuIl19