UNPKG

@versatiledatakit/shared

Version:

Versatile Data Kit Shared library enables reusability of shared features like: NgRx Redux, Error Handlers, Utils, Generic Components, etc.

60 lines 6.7 kB
/* * Copyright 2023-2025 Broadcom * SPDX-License-Identifier: Apache-2.0 */ import { CollectionsUtil } from '../../../utils'; import { ComparableImpl } from '../../../common'; import { AbstractComponentModel } from './component.model.interface'; export class ComponentModelComparable extends ComparableImpl { /** * ** Constructor. */ constructor(model) { super(model); } /** * ** Factory method. */ static of(model) { return new ComponentModelComparable(model); } /** * @inheritDoc */ compare(comparable) { if (comparable instanceof ComponentModelComparable) { return this._compareEquality(comparable); } else { return -1; } } _compareEquality(comparable) { if (!(this.value instanceof AbstractComponentModel)) { return -1; } if (!(comparable.value instanceof AbstractComponentModel)) { return -1; } if (this.value === comparable.value) { return 0; } if (this.value.status !== comparable.value.status) { return -1; } if (this.value.getTask() !== comparable.value.getTask()) { return -1; } if (!this.value.getComponentState().errors.equals(comparable.value.getComponentState().errors)) { return -1; } if (this.value.getComponentState().data === comparable.value.getComponentState().data) { return 0; } if (CollectionsUtil.areMapsEqual(this.value.getComponentState().data, comparable.value.getComponentState().data)) { return 0; } return -1; } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LW1vZGVsLmNvbXBhcmFibGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaGFyZWQvc3JjL2xpYi9jb3JlL2NvbXBvbmVudC9tb2RlbC9jb21wb25lbnQtbW9kZWwuY29tcGFyYWJsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFFSCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFakQsT0FBTyxFQUFjLGNBQWMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRTdELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRXJFLE1BQU0sT0FBTyx3QkFBeUIsU0FBUSxjQUFzQztJQUNoRjs7T0FFRztJQUNILFlBQVksS0FBNkI7UUFDckMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2pCLENBQUM7SUFFRDs7T0FFRztJQUNILE1BQU0sQ0FBVSxFQUFFLENBQUMsS0FBNkI7UUFDNUMsT0FBTyxJQUFJLHdCQUF3QixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFRDs7T0FFRztJQUNNLE9BQU8sQ0FBQyxVQUFzQjtRQUNuQyxJQUFJLFVBQVUsWUFBWSx3QkFBd0IsRUFBRTtZQUNoRCxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVLENBQUMsQ0FBQztTQUM1QzthQUFNO1lBQ0gsT0FBTyxDQUFDLENBQUMsQ0FBQztTQUNiO0lBQ0wsQ0FBQztJQUVPLGdCQUFnQixDQUFDLFVBQW9DO1FBQ3pELElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLFlBQVksc0JBQXNCLENBQUMsRUFBRTtZQUNqRCxPQUFPLENBQUMsQ0FBQyxDQUFDO1NBQ2I7UUFFRCxJQUFJLENBQUMsQ0FBQyxVQUFVLENBQUMsS0FBSyxZQUFZLHNCQUFzQixDQUFDLEVBQUU7WUFDdkQsT0FBTyxDQUFDLENBQUMsQ0FBQztTQUNiO1FBRUQsSUFBSSxJQUFJLENBQUMsS0FBSyxLQUFLLFVBQVUsQ0FBQyxLQUFLLEVBQUU7WUFDakMsT0FBTyxDQUFDLENBQUM7U0FDWjtRQUVELElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEtBQUssVUFBVSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUU7WUFDL0MsT0FBTyxDQUFDLENBQUMsQ0FBQztTQUNiO1FBRUQsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxLQUFLLFVBQVUsQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLEVBQUU7WUFDckQsT0FBTyxDQUFDLENBQUMsQ0FBQztTQUNiO1FBRUQsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUM1RixPQUFPLENBQUMsQ0FBQyxDQUFDO1NBQ2I7UUFFRCxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxJQUFJLEtBQUssVUFBVSxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsRUFBRSxDQUFDLElBQUksRUFBRTtZQUNuRixPQUFPLENBQUMsQ0FBQztTQUNaO1FBRUQsSUFBSSxlQUFlLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxJQUFJLEVBQUUsVUFBVSxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQzlHLE9BQU8sQ0FBQyxDQUFDO1NBQ1o7UUFFRCxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBQ2QsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDIzLTIwMjUgQnJvYWRjb21cbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG4gKi9cblxuaW1wb3J0IHsgQ29sbGVjdGlvbnNVdGlsIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMnO1xuXG5pbXBvcnQgeyBDb21wYXJhYmxlLCBDb21wYXJhYmxlSW1wbCB9IGZyb20gJy4uLy4uLy4uL2NvbW1vbic7XG5cbmltcG9ydCB7IEFic3RyYWN0Q29tcG9uZW50TW9kZWwgfSBmcm9tICcuL2NvbXBvbmVudC5tb2RlbC5pbnRlcmZhY2UnO1xuXG5leHBvcnQgY2xhc3MgQ29tcG9uZW50TW9kZWxDb21wYXJhYmxlIGV4dGVuZHMgQ29tcGFyYWJsZUltcGw8QWJzdHJhY3RDb21wb25lbnRNb2RlbD4ge1xuICAgIC8qKlxuICAgICAqICoqIENvbnN0cnVjdG9yLlxuICAgICAqL1xuICAgIGNvbnN0cnVjdG9yKG1vZGVsOiBBYnN0cmFjdENvbXBvbmVudE1vZGVsKSB7XG4gICAgICAgIHN1cGVyKG1vZGVsKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiAqKiBGYWN0b3J5IG1ldGhvZC5cbiAgICAgKi9cbiAgICBzdGF0aWMgb3ZlcnJpZGUgb2YobW9kZWw6IEFic3RyYWN0Q29tcG9uZW50TW9kZWwpOiBDb21wb25lbnRNb2RlbENvbXBhcmFibGUge1xuICAgICAgICByZXR1cm4gbmV3IENvbXBvbmVudE1vZGVsQ29tcGFyYWJsZShtb2RlbCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGluaGVyaXREb2NcbiAgICAgKi9cbiAgICBvdmVycmlkZSBjb21wYXJlKGNvbXBhcmFibGU6IENvbXBhcmFibGUpOiBudW1iZXIge1xuICAgICAgICBpZiAoY29tcGFyYWJsZSBpbnN0YW5jZW9mIENvbXBvbmVudE1vZGVsQ29tcGFyYWJsZSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2NvbXBhcmVFcXVhbGl0eShjb21wYXJhYmxlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiAtMTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgX2NvbXBhcmVFcXVhbGl0eShjb21wYXJhYmxlOiBDb21wb25lbnRNb2RlbENvbXBhcmFibGUpOiBudW1iZXIge1xuICAgICAgICBpZiAoISh0aGlzLnZhbHVlIGluc3RhbmNlb2YgQWJzdHJhY3RDb21wb25lbnRNb2RlbCkpIHtcbiAgICAgICAgICAgIHJldHVybiAtMTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghKGNvbXBhcmFibGUudmFsdWUgaW5zdGFuY2VvZiBBYnN0cmFjdENvbXBvbmVudE1vZGVsKSkge1xuICAgICAgICAgICAgcmV0dXJuIC0xO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMudmFsdWUgPT09IGNvbXBhcmFibGUudmFsdWUpIHtcbiAgICAgICAgICAgIHJldHVybiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMudmFsdWUuc3RhdHVzICE9PSBjb21wYXJhYmxlLnZhbHVlLnN0YXR1cykge1xuICAgICAgICAgICAgcmV0dXJuIC0xO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMudmFsdWUuZ2V0VGFzaygpICE9PSBjb21wYXJhYmxlLnZhbHVlLmdldFRhc2soKSkge1xuICAgICAgICAgICAgcmV0dXJuIC0xO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCF0aGlzLnZhbHVlLmdldENvbXBvbmVudFN0YXRlKCkuZXJyb3JzLmVxdWFscyhjb21wYXJhYmxlLnZhbHVlLmdldENvbXBvbmVudFN0YXRlKCkuZXJyb3JzKSkge1xuICAgICAgICAgICAgcmV0dXJuIC0xO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMudmFsdWUuZ2V0Q29tcG9uZW50U3RhdGUoKS5kYXRhID09PSBjb21wYXJhYmxlLnZhbHVlLmdldENvbXBvbmVudFN0YXRlKCkuZGF0YSkge1xuICAgICAgICAgICAgcmV0dXJuIDA7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoQ29sbGVjdGlvbnNVdGlsLmFyZU1hcHNFcXVhbCh0aGlzLnZhbHVlLmdldENvbXBvbmVudFN0YXRlKCkuZGF0YSwgY29tcGFyYWJsZS52YWx1ZS5nZXRDb21wb25lbnRTdGF0ZSgpLmRhdGEpKSB7XG4gICAgICAgICAgICByZXR1cm4gMDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiAtMTtcbiAgICB9XG59XG4iXX0=