UNPKG

ng2-tree

Version:

angular2 component for visualizing data that can be naturally represented as a tree

82 lines 10 kB
export function isEmpty(value) { if (typeof value === 'string') { return !/\S/.test(value); } if (Array.isArray(value)) { return value.length === 0; } return isNil(value); } export function trim(value) { return isNil(value) ? '' : value.trim(); } export function has(value, prop) { return value && typeof value === 'object' && Object.prototype.hasOwnProperty.call(value, prop); } export function isFunction(value) { return typeof value === 'function'; } export function get(value, path, defaultValue) { let result = value; for (const prop of path.split('.')) { if (!result || !Reflect.has(result, prop)) { return defaultValue; } result = result[prop]; } return isNil(result) || result === value ? defaultValue : result; } export function omit(value, propsToSkip) { if (!value) { return value; } const normalizedPropsToSkip = typeof propsToSkip === 'string' ? [propsToSkip] : propsToSkip; return Object.keys(value).reduce((result, prop) => { if (includes(normalizedPropsToSkip, prop)) { return result; } return Object.assign(result, { [prop]: value[prop] }); }, {}); } export function size(value) { return isEmpty(value) ? 0 : value.length; } export function once(fn) { let result; return (...args) => { if (fn) { result = fn(...args); fn = null; } return result; }; } export function defaultsDeep(target, ...sources) { return [target].concat(sources).reduce((result, source) => { if (!source) { return result; } Object.keys(source).forEach(prop => { if (isNil(result[prop])) { result[prop] = source[prop]; return; } if (typeof result[prop] === 'object' && !Array.isArray(result[prop])) { result[prop] = defaultsDeep(result[prop], source[prop]); return; } }); return result; }, {}); } export function includes(target, value) { if (isNil(target)) { return false; } const index = typeof target === 'string' ? target.indexOf(value) : target.indexOf(value); return index > -1; } export function isNil(value) { return value === undefined || value === null; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm4udXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdXRpbHMvZm4udXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxVQUFVLE9BQU8sQ0FBQyxLQUFxQjtJQUMzQyxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRTtRQUM3QixPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztLQUMxQjtJQUVELElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRTtRQUN4QixPQUFPLEtBQUssQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDO0tBQzNCO0lBRUQsT0FBTyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDdEIsQ0FBQztBQUVELE1BQU0sVUFBVSxJQUFJLENBQUMsS0FBYTtJQUNoQyxPQUFPLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7QUFDMUMsQ0FBQztBQUVELE1BQU0sVUFBVSxHQUFHLENBQUMsS0FBVSxFQUFFLElBQVk7SUFDMUMsT0FBTyxLQUFLLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxJQUFJLE1BQU0sQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDakcsQ0FBQztBQUVELE1BQU0sVUFBVSxVQUFVLENBQUMsS0FBVTtJQUNuQyxPQUFPLE9BQU8sS0FBSyxLQUFLLFVBQVUsQ0FBQztBQUNyQyxDQUFDO0FBRUQsTUFBTSxVQUFVLEdBQUcsQ0FBQyxLQUFVLEVBQUUsSUFBWSxFQUFFLFlBQWtCO0lBQzlELElBQUksTUFBTSxHQUFHLEtBQUssQ0FBQztJQUVuQixLQUFLLE1BQU0sSUFBSSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUU7UUFD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Q0FBQyxNQUFzQixFQUFFLEtBQVU7SUFDekQsSUFBSSxLQUFLLENBQUMsTUFBTSxDQUFDLEVBQUU7UUFDakIsT0FBTyxLQUFLLENBQUM7S0FDZDtJQUVELE1BQU0sS0FBSyxHQUFHLE9BQU8sTUFBTSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNuRyxPQUFPLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQztBQUNwQixDQUFDO0FBRUQsTUFBTSxVQUFVLEtBQUssQ0FBQyxLQUFVO0lBQzlCLE9BQU8sS0FBSyxLQUFLLFNBQVMsSUFBSSxLQUFLLEtBQUssSUFBSSxDQUFDO0FBQy9DLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZnVuY3Rpb24gaXNFbXB0eSh2YWx1ZTogYW55W10gfCBzdHJpbmcpOiBib29sZWFuIHtcbiAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gIS9cXFMvLnRlc3QodmFsdWUpO1xuICB9XG5cbiAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgcmV0dXJuIHZhbHVlLmxlbmd0aCA9PT0gMDtcbiAgfVxuXG4gIHJldHVybiBpc05pbCh2YWx1ZSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0cmltKHZhbHVlOiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gaXNOaWwodmFsdWUpID8gJycgOiB2YWx1ZS50cmltKCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBoYXModmFsdWU6IGFueSwgcHJvcDogc3RyaW5nKTogYm9vbGVhbiB7XG4gIHJldHVybiB2YWx1ZSAmJiB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh2YWx1ZSwgcHJvcCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0Z1bmN0aW9uKHZhbHVlOiBhbnkpIHtcbiAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gJ2Z1bmN0aW9uJztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldCh2YWx1ZTogYW55LCBwYXRoOiBzdHJpbmcsIGRlZmF1bHRWYWx1ZT86IGFueSkge1xuICBsZXQgcmVzdWx0ID0gdmFsdWU7XG5cbiAgZm9yIChjb25zdCBwcm9wIG9mIHBhdGguc3BsaXQoJy4nKSkge1xuICAgIGlmICghcmVzdWx0IHx8ICFSZWZsZWN0LmhhcyhyZXN1bHQsIHByb3ApKSB7XG4gICAgICByZXR1cm4gZGVmYXVsdFZhbHVlO1xuICAgIH1cblxuICAgIHJlc3VsdCA9IHJlc3VsdFtwcm9wXTtcbiAgfVxuXG4gIHJldHVybiBpc05pbChyZXN1bHQpIHx8IHJlc3VsdCA9PT0gdmFsdWUgPyBkZWZhdWx0VmFsdWUgOiByZXN1bHQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBvbWl0KHZhbHVlOiBhbnksIHByb3BzVG9Ta2lwOiBzdHJpbmcgfCBzdHJpbmdbXSk6IGFueSB7XG4gIGlmICghdmFsdWUpIHtcbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cblxuICBjb25zdCBub3JtYWxpemVkUHJvcHNUb1NraXAgPSB0eXBlb2YgcHJvcHNUb1NraXAgPT09ICdzdHJpbmcnID8gW3Byb3BzVG9Ta2lwXSA6IHByb3BzVG9Ta2lwO1xuXG4gIHJldHVybiBPYmplY3Qua2V5cyh2YWx1ZSkucmVkdWNlKChyZXN1bHQsIHByb3ApID0+IHtcbiAgICBpZiAoaW5jbHVkZXMobm9ybWFsaXplZFByb3BzVG9Ta2lwLCBwcm9wKSkge1xuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24ocmVzdWx0LCB7IFtwcm9wXTogdmFsdWVbcHJvcF0gfSk7XG4gIH0sIHt9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNpemUodmFsdWU6IGFueVtdKTogbnVtYmVyIHtcbiAgcmV0dXJuIGlzRW1wdHkodmFsdWUpID8gMCA6IHZhbHVlLmxlbmd0aDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG9uY2UoZm46IE9uY2UpOiBPbmNlIHtcbiAgbGV0IHJlc3VsdDtcblxuICByZXR1cm4gKC4uLmFyZ3M6IGFueVtdKSA9PiB7XG4gICAgaWYgKGZuKSB7XG4gICAgICByZXN1bHQgPSBmbiguLi5hcmdzKTtcbiAgICAgIGZuID0gbnVsbDtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRlZmF1bHRzRGVlcCh0YXJnZXQ6IGFueSwgLi4uc291cmNlczogYW55W10pOiBhbnkge1xuICByZXR1cm4gW3RhcmdldF0uY29uY2F0KHNvdXJjZXMpLnJlZHVjZSgocmVzdWx0OiBhbnksIHNvdXJjZTogYW55KSA9PiB7XG4gICAgaWYgKCFzb3VyY2UpIHtcbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgT2JqZWN0LmtleXMoc291cmNlKS5mb3JFYWNoKHByb3AgPT4ge1xuICAgICAgaWYgKGlzTmlsKHJlc3VsdFtwcm9wXSkpIHtcbiAgICAgICAgcmVzdWx0W3Byb3BdID0gc291cmNlW3Byb3BdO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGlmICh0eXBlb2YgcmVzdWx0W3Byb3BdID09PSAnb2JqZWN0JyAmJiAhQXJyYXkuaXNBcnJheShyZXN1bHRbcHJvcF0pKSB7XG4gICAgICAgIHJlc3VsdFtwcm9wXSA9IGRlZmF1bHRzRGVlcChyZXN1bHRbcHJvcF0sIHNvdXJjZVtwcm9wXSk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH0sIHt9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGluY2x1ZGVzKHRhcmdldDogc3RyaW5nIHwgYW55W10sIHZhbHVlOiBhbnkpOiBib29sZWFuIHtcbiAgaWYgKGlzTmlsKHRhcmdldCkpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBjb25zdCBpbmRleCA9IHR5cGVvZiB0YXJnZXQgPT09ICdzdHJpbmcnID8gdGFyZ2V0LmluZGV4T2YodmFsdWUgYXMgc3RyaW5nKSA6IHRhcmdldC5pbmRleE9mKHZhbHVlKTtcbiAgcmV0dXJuIGluZGV4ID4gLTE7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc05pbCh2YWx1ZTogYW55KTogYm9vbGVhbiB7XG4gIHJldHVybiB2YWx1ZSA9PT0gdW5kZWZpbmVkIHx8IHZhbHVlID09PSBudWxsO1xufVxuXG5leHBvcnQgdHlwZSBPbmNlID0gKC4uLmFyZ3M6IGFueVtdKSA9PiBhbnk7XG4iXX0=