@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
JavaScript
/*
* 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=