UNPKG

@terminus/ngx-tools

Version:

[![CircleCI][circle-badge]][circle-link] [![codecov][codecov-badge]][codecov-project] [![semantic-release][semantic-release-badge]][semantic-release] [![MIT License][license-image]][license-url] <br> [![NPM version][npm-version-image]][npm-url] [![Github

59 lines 6.51 kB
import { __read } from "tslib"; import { objectDeepParse } from '../object-deep-parse/object-deep-parse'; /** * Utility class to assist with pulling specific values from a `SimpleChanges` object. */ var NgChangeObjectValueParser = /** @class */ (function () { function NgChangeObjectValueParser() { } /** * Function to parse previousValue from triggered by changes on ngOnChange * * @param changes - SimpleChanges * @param path - string * @returns lowest layer value or changes object itself when path cannot be parsed * * @example * valueParser.getOldValue(myChanges, 'my.path') */ // eslint-disable-next-line @typescript-eslint/no-explicit-any NgChangeObjectValueParser.getOldValue = function (changes, path) { var _a = __read(this.parsePath(path), 2), keys = _a[0], key = _a[1]; return (key && changes[key]) ? objectDeepParse(changes[key].previousValue, keys) : undefined; }; /** * Function to parse currentValue from triggered by changes on ngOnChange * * @param changes - SimpleChanges * @param path - string * @returns lowest layer value or changes object itself when path cannot be parsed * * @example * valueParser.getNewValue(myChanges, 'my.path') */ // eslint-disable-next-line @typescript-eslint/no-explicit-any NgChangeObjectValueParser.getNewValue = function (changes, path) { var _a = __read(this.parsePath(path), 2), keys = _a[0], key = _a[1]; return (key && changes[key]) ? objectDeepParse(changes[key].currentValue, keys) : undefined; }; /** * Function to parse path to get keys for each layer * * @param path - string * @returns an array of two elements, one being an array of all the keys except first one, one being the first key * * @example * valueParser.parsePath('my.path') // Returns: [['my'], 'path'] */ NgChangeObjectValueParser.parsePath = function (path) { var keys = path.split('.'); var key = keys.shift(); if (!key) { key = keys[0]; } return [keys, key]; }; return NgChangeObjectValueParser; }()); export { NgChangeObjectValueParser }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmdjaGFuZ2Utb2JqZWN0LXZhbHVlLXBhcnNlci5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B0ZXJtaW51cy9uZ3gtdG9vbHMvdXRpbGl0aWVzLyIsInNvdXJjZXMiOlsibmdjaGFuZ2Utb2JqZWN0LXZhbHVlLXBhcnNlci9uZ2NoYW5nZS1vYmplY3QtdmFsdWUtcGFyc2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFFQSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFHekU7O0dBRUc7QUFDSDtJQUFBO0lBcURBLENBQUM7SUFwREM7Ozs7Ozs7OztPQVNHO0lBQ0gsOERBQThEO0lBQ2hELHFDQUFXLEdBQXpCLFVBQTBCLE9BQXNCLEVBQUUsSUFBWTtRQUN0RCxJQUFBLG9DQUFrQyxFQUFqQyxZQUFJLEVBQUUsV0FBMkIsQ0FBQztRQUN6QyxPQUFPLENBQUMsR0FBRyxJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0lBQy9GLENBQUM7SUFHRDs7Ozs7Ozs7O09BU0c7SUFDSCw4REFBOEQ7SUFDaEQscUNBQVcsR0FBekIsVUFBMEIsT0FBc0IsRUFBRSxJQUFZO1FBQ3RELElBQUEsb0NBQWtDLEVBQWpDLFlBQUksRUFBRSxXQUEyQixDQUFDO1FBQ3pDLE9BQU8sQ0FBQyxHQUFHLElBQUksT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7SUFDOUYsQ0FBQztJQUdEOzs7Ozs7OztPQVFHO0lBQ1csbUNBQVMsR0FBdkIsVUFBd0IsSUFBWTtRQUNsQyxJQUFNLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzdCLElBQUksR0FBRyxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUV2QixJQUFJLENBQUMsR0FBRyxFQUFFO1lBQ1IsR0FBRyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUNmO1FBQ0QsT0FBTyxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQztJQUNyQixDQUFDO0lBQ0gsZ0NBQUM7QUFBRCxDQUFDLEFBckRELElBcURDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBvYmplY3REZWVwUGFyc2UgfSBmcm9tICcuLi9vYmplY3QtZGVlcC1wYXJzZS9vYmplY3QtZGVlcC1wYXJzZSc7XG5cblxuLyoqXG4gKiBVdGlsaXR5IGNsYXNzIHRvIGFzc2lzdCB3aXRoIHB1bGxpbmcgc3BlY2lmaWMgdmFsdWVzIGZyb20gYSBgU2ltcGxlQ2hhbmdlc2Agb2JqZWN0LlxuICovXG5leHBvcnQgY2xhc3MgTmdDaGFuZ2VPYmplY3RWYWx1ZVBhcnNlciB7XG4gIC8qKlxuICAgKiBGdW5jdGlvbiB0byBwYXJzZSBwcmV2aW91c1ZhbHVlIGZyb20gdHJpZ2dlcmVkIGJ5IGNoYW5nZXMgb24gbmdPbkNoYW5nZVxuICAgKlxuICAgKiBAcGFyYW0gY2hhbmdlcyAtIFNpbXBsZUNoYW5nZXNcbiAgICogQHBhcmFtIHBhdGggLSBzdHJpbmdcbiAgICogQHJldHVybnMgbG93ZXN0IGxheWVyIHZhbHVlIG9yIGNoYW5nZXMgb2JqZWN0IGl0c2VsZiB3aGVuIHBhdGggY2Fubm90IGJlIHBhcnNlZFxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiB2YWx1ZVBhcnNlci5nZXRPbGRWYWx1ZShteUNoYW5nZXMsICdteS5wYXRoJylcbiAgICovXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gIHB1YmxpYyBzdGF0aWMgZ2V0T2xkVmFsdWUoY2hhbmdlczogU2ltcGxlQ2hhbmdlcywgcGF0aDogc3RyaW5nKTogYW55IHtcbiAgICBjb25zdCBba2V5cywga2V5XSA9IHRoaXMucGFyc2VQYXRoKHBhdGgpO1xuICAgIHJldHVybiAoa2V5ICYmIGNoYW5nZXNba2V5XSkgPyBvYmplY3REZWVwUGFyc2UoY2hhbmdlc1trZXldLnByZXZpb3VzVmFsdWUsIGtleXMpIDogdW5kZWZpbmVkO1xuICB9XG5cblxuICAvKipcbiAgICogRnVuY3Rpb24gdG8gcGFyc2UgY3VycmVudFZhbHVlIGZyb20gdHJpZ2dlcmVkIGJ5IGNoYW5nZXMgb24gbmdPbkNoYW5nZVxuICAgKlxuICAgKiBAcGFyYW0gY2hhbmdlcyAtIFNpbXBsZUNoYW5nZXNcbiAgICogQHBhcmFtIHBhdGggLSBzdHJpbmdcbiAgICogQHJldHVybnMgbG93ZXN0IGxheWVyIHZhbHVlIG9yIGNoYW5nZXMgb2JqZWN0IGl0c2VsZiB3aGVuIHBhdGggY2Fubm90IGJlIHBhcnNlZFxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiB2YWx1ZVBhcnNlci5nZXROZXdWYWx1ZShteUNoYW5nZXMsICdteS5wYXRoJylcbiAgICovXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gIHB1YmxpYyBzdGF0aWMgZ2V0TmV3VmFsdWUoY2hhbmdlczogU2ltcGxlQ2hhbmdlcywgcGF0aDogc3RyaW5nKTogYW55IHtcbiAgICBjb25zdCBba2V5cywga2V5XSA9IHRoaXMucGFyc2VQYXRoKHBhdGgpO1xuICAgIHJldHVybiAoa2V5ICYmIGNoYW5nZXNba2V5XSkgPyBvYmplY3REZWVwUGFyc2UoY2hhbmdlc1trZXldLmN1cnJlbnRWYWx1ZSwga2V5cykgOiB1bmRlZmluZWQ7XG4gIH1cblxuXG4gIC8qKlxuICAgKiBGdW5jdGlvbiB0byBwYXJzZSBwYXRoIHRvIGdldCBrZXlzIGZvciBlYWNoIGxheWVyXG4gICAqXG4gICAqIEBwYXJhbSBwYXRoIC0gc3RyaW5nXG4gICAqIEByZXR1cm5zIGFuIGFycmF5IG9mIHR3byBlbGVtZW50cywgb25lIGJlaW5nIGFuIGFycmF5IG9mIGFsbCB0aGUga2V5cyBleGNlcHQgZmlyc3Qgb25lLCBvbmUgYmVpbmcgdGhlIGZpcnN0IGtleVxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiB2YWx1ZVBhcnNlci5wYXJzZVBhdGgoJ215LnBhdGgnKSAvLyBSZXR1cm5zOiBbWydteSddLCAncGF0aCddXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHBhcnNlUGF0aChwYXRoOiBzdHJpbmcpOiBbc3RyaW5nW10sIHN0cmluZ10ge1xuICAgIGNvbnN0IGtleXMgPSBwYXRoLnNwbGl0KCcuJyk7XG4gICAgbGV0IGtleSA9IGtleXMuc2hpZnQoKTtcblxuICAgIGlmICgha2V5KSB7XG4gICAgICBrZXkgPSBrZXlzWzBdO1xuICAgIH1cbiAgICByZXR1cm4gW2tleXMsIGtleV07XG4gIH1cbn1cbiJdfQ==