UNPKG

@versatiledatakit/data-pipelines

Version:

Data Pipelines help Data Engineers develop, deploy, run, and manage data processing workloads (called 'Data Job')

88 lines 10.8 kB
/* * Copyright 2023-2025 Broadcom * SPDX-License-Identifier: Apache-2.0 */ import { Directive, Input } from '@angular/core'; import { CollectionsUtil, TaurusObject } from '@versatiledatakit/shared'; import * as i0 from "@angular/core"; /** * ** Directive that set provided object as Element attributes. * * @author gorankokin */ export class AttributesDirective extends TaurusObject { /** * ** Constructor. */ constructor(el, renderer) { super(); this.el = el; this.renderer = renderer; } /** * @inheritDoc */ ngOnChanges(_changes) { this._transformAttributes(); } /** * @inheritDoc */ ngOnInit() { this._transformAttributes(); } _transformAttributes() { if (CollectionsUtil.isEqual(this.attributes, this._attributesCopy)) { return; } if (CollectionsUtil.isNil(this.attributes)) { if (CollectionsUtil.isNil(this._attributesCopy)) { return; } CollectionsUtil.iterateObject(this._attributesCopy, (_attributeValue, attributeName) => { this._removeAttribute(attributeName); }); return; } if (!CollectionsUtil.isLiteralObject(this.attributes)) { return; } this._attributesCopy = CollectionsUtil.cloneDeep(this.attributes); CollectionsUtil.iterateObject(this._attributesCopy, (attributeValue, attributeName) => { this._setOrRemoveAttribute(attributeName, attributeValue); }); } _setOrRemoveAttribute(attributeName, attributeValue) { if (AttributesDirective._isTruthy(attributeValue)) { this._setAttribute(attributeName, attributeValue); } else { this._removeAttribute(attributeName); } } _setAttribute(attributeName, attributeValue) { this.renderer.setAttribute(this.el.nativeElement, attributeName, attributeValue); } _removeAttribute(attributeName) { this.renderer.removeAttribute(this.el.nativeElement, attributeName); } // eslint-disable-next-line @typescript-eslint/member-ordering,@typescript-eslint/no-explicit-any static _isTruthy(value) { return AttributesDirective._valueNotIn(value, [undefined, false, null, 'delete', 'false', '']); } // eslint-disable-next-line @typescript-eslint/member-ordering,@typescript-eslint/no-explicit-any static _valueNotIn(value, forbiddenValues) { return forbiddenValues.every((prop) => value !== prop); } } AttributesDirective.ɵfac = function AttributesDirective_Factory(t) { return new (t || AttributesDirective)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.Renderer2)); }; AttributesDirective.ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: AttributesDirective, selectors: [["", "libSetAttributes", ""]], inputs: { attributes: "attributes" }, features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature] }); (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AttributesDirective, [{ type: Directive, args: [{ selector: '[libSetAttributes]' }] }], function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }]; }, { attributes: [{ type: Input }] }); })(); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXR0cmlidXRlLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGEtcGlwZWxpbmVzL3NyYy9saWIvc2hhcmVkL2RpcmVjdGl2ZXMvYXR0cmlidXRlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFFSCxPQUFPLEVBQUUsU0FBUyxFQUFjLEtBQUssRUFBK0MsTUFBTSxlQUFlLENBQUM7QUFFMUcsT0FBTyxFQUFFLGVBQWUsRUFBaUIsWUFBWSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7O0FBTXhGOzs7O0dBSUc7QUFJSCxNQUFNLE9BQU8sbUJBQW9CLFNBQVEsWUFBWTtJQVFqRDs7T0FFRztJQUNILFlBQ3FCLEVBQWMsRUFDZCxRQUFtQjtRQUVwQyxLQUFLLEVBQUUsQ0FBQztRQUhTLE9BQUUsR0FBRixFQUFFLENBQVk7UUFDZCxhQUFRLEdBQVIsUUFBUSxDQUFXO0lBR3hDLENBQUM7SUFFRDs7T0FFRztJQUNILFdBQVcsQ0FBQyxRQUF1QjtRQUMvQixJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztJQUNoQyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxRQUFRO1FBQ0osSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7SUFDaEMsQ0FBQztJQUVPLG9CQUFvQjtRQUN4QixJQUFJLGVBQWUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLEVBQUU7WUFDaEUsT0FBTztTQUNWO1FBRUQsSUFBSSxlQUFlLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRTtZQUN4QyxJQUFJLGVBQWUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxFQUFFO2dCQUM3QyxPQUFPO2FBQ1Y7WUFFRCxlQUFlLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQyxlQUFlLEVBQUUsYUFBYSxFQUFFLEVBQUU7Z0JBQ25GLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUN6QyxDQUFDLENBQUMsQ0FBQztZQUVILE9BQU87U0FDVjtRQUVELElBQUksQ0FBQyxlQUFlLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRTtZQUNuRCxPQUFPO1NBQ1Y7UUFFRCxJQUFJLENBQUMsZUFBZSxHQUFHLGVBQWUsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRWxFLGVBQWUsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDLGNBQWMsRUFBRSxhQUFhLEVBQUUsRUFBRTtZQUNsRixJQUFJLENBQUMscUJBQXFCLENBQUMsYUFBYSxFQUFFLGNBQWMsQ0FBQyxDQUFDO1FBQzlELENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVPLHFCQUFxQixDQUFDLGFBQXFCLEVBQUUsY0FBdUI7UUFDeEUsSUFBSSxtQkFBbUIsQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLEVBQUU7WUFDL0MsSUFBSSxDQUFDLGFBQWEsQ0FBQyxhQUFhLEVBQUUsY0FBYyxDQUFDLENBQUM7U0FDckQ7YUFBTTtZQUNILElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsQ0FBQztTQUN4QztJQUNMLENBQUM7SUFFTyxhQUFhLENBQUMsYUFBcUIsRUFBRSxjQUF1QjtRQUNoRSxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSxhQUFhLEVBQUUsY0FBd0IsQ0FBQyxDQUFDO0lBQy9GLENBQUM7SUFFTyxnQkFBZ0IsQ0FBQyxhQUFxQjtRQUMxQyxJQUFJLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSxhQUFhLENBQUMsQ0FBQztJQUN4RSxDQUFDO0lBRUQsaUdBQWlHO0lBQ3pGLE1BQU0sQ0FBQyxTQUFTLENBQUMsS0FBVTtRQUMvQixPQUFPLG1CQUFtQixDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxTQUFTLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDbkcsQ0FBQztJQUVELGlHQUFpRztJQUN6RixNQUFNLENBQUMsV0FBVyxDQUFDLEtBQVUsRUFBRSxlQUFzQjtRQUN6RCxPQUFPLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLEtBQUssS0FBSyxJQUFJLENBQUMsQ0FBQztJQUMzRCxDQUFDOztzRkFwRlEsbUJBQW1CO3NFQUFuQixtQkFBbUI7dUZBQW5CLG1CQUFtQjtjQUgvQixTQUFTO2VBQUM7Z0JBQ1AsUUFBUSxFQUFFLG9CQUFvQjthQUNqQztxRkFLWSxVQUFVO2tCQUFsQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDIzLTIwMjUgQnJvYWRjb21cbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG4gKi9cblxuaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBJbnB1dCwgT25DaGFuZ2VzLCBPbkluaXQsIFJlbmRlcmVyMiwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBDb2xsZWN0aW9uc1V0aWwsIFByaW1pdGl2ZXNOaWwsIFRhdXJ1c09iamVjdCB9IGZyb20gJ0B2ZXJzYXRpbGVkYXRha2l0L3NoYXJlZCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXR0cmlidXRlcyB7XG4gICAgW2F0dHJpYnV0ZTogc3RyaW5nXTogUHJpbWl0aXZlc05pbDtcbn1cblxuLyoqXG4gKiAqKiBEaXJlY3RpdmUgdGhhdCBzZXQgcHJvdmlkZWQgb2JqZWN0IGFzIEVsZW1lbnQgYXR0cmlidXRlcy5cbiAqXG4gKiBAYXV0aG9yIGdvcmFua29raW5cbiAqL1xuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbbGliU2V0QXR0cmlidXRlc10nXG59KVxuZXhwb3J0IGNsYXNzIEF0dHJpYnV0ZXNEaXJlY3RpdmUgZXh0ZW5kcyBUYXVydXNPYmplY3QgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XG4gICAgLyoqXG4gICAgICogKiogSW5wdXQgYXR0cmlidXRlcyB0aGF0IHNob3VsZCBiZSBhcHBsaWVkIHRvIGhvc3QgZWxlbWVudC5cbiAgICAgKi9cbiAgICBASW5wdXQoKSBhdHRyaWJ1dGVzOiBBdHRyaWJ1dGVzO1xuXG4gICAgcHJpdmF0ZSBfYXR0cmlidXRlc0NvcHk6IEF0dHJpYnV0ZXM7XG5cbiAgICAvKipcbiAgICAgKiAqKiBDb25zdHJ1Y3Rvci5cbiAgICAgKi9cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBlbDogRWxlbWVudFJlZixcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSByZW5kZXJlcjogUmVuZGVyZXIyXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGluaGVyaXREb2NcbiAgICAgKi9cbiAgICBuZ09uQ2hhbmdlcyhfY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgICAgICB0aGlzLl90cmFuc2Zvcm1BdHRyaWJ1dGVzKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGluaGVyaXREb2NcbiAgICAgKi9cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy5fdHJhbnNmb3JtQXR0cmlidXRlcygpO1xuICAgIH1cblxuICAgIHByaXZhdGUgX3RyYW5zZm9ybUF0dHJpYnV0ZXMoKTogdm9pZCB7XG4gICAgICAgIGlmIChDb2xsZWN0aW9uc1V0aWwuaXNFcXVhbCh0aGlzLmF0dHJpYnV0ZXMsIHRoaXMuX2F0dHJpYnV0ZXNDb3B5KSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKENvbGxlY3Rpb25zVXRpbC5pc05pbCh0aGlzLmF0dHJpYnV0ZXMpKSB7XG4gICAgICAgICAgICBpZiAoQ29sbGVjdGlvbnNVdGlsLmlzTmlsKHRoaXMuX2F0dHJpYnV0ZXNDb3B5KSkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQ29sbGVjdGlvbnNVdGlsLml0ZXJhdGVPYmplY3QodGhpcy5fYXR0cmlidXRlc0NvcHksIChfYXR0cmlidXRlVmFsdWUsIGF0dHJpYnV0ZU5hbWUpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9yZW1vdmVBdHRyaWJ1dGUoYXR0cmlidXRlTmFtZSk7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFDb2xsZWN0aW9uc1V0aWwuaXNMaXRlcmFsT2JqZWN0KHRoaXMuYXR0cmlidXRlcykpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX2F0dHJpYnV0ZXNDb3B5ID0gQ29sbGVjdGlvbnNVdGlsLmNsb25lRGVlcCh0aGlzLmF0dHJpYnV0ZXMpO1xuXG4gICAgICAgIENvbGxlY3Rpb25zVXRpbC5pdGVyYXRlT2JqZWN0KHRoaXMuX2F0dHJpYnV0ZXNDb3B5LCAoYXR0cmlidXRlVmFsdWUsIGF0dHJpYnV0ZU5hbWUpID0+IHtcbiAgICAgICAgICAgIHRoaXMuX3NldE9yUmVtb3ZlQXR0cmlidXRlKGF0dHJpYnV0ZU5hbWUsIGF0dHJpYnV0ZVZhbHVlKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfc2V0T3JSZW1vdmVBdHRyaWJ1dGUoYXR0cmlidXRlTmFtZTogc3RyaW5nLCBhdHRyaWJ1dGVWYWx1ZTogdW5rbm93bik6IHZvaWQge1xuICAgICAgICBpZiAoQXR0cmlidXRlc0RpcmVjdGl2ZS5faXNUcnV0aHkoYXR0cmlidXRlVmFsdWUpKSB7XG4gICAgICAgICAgICB0aGlzLl9zZXRBdHRyaWJ1dGUoYXR0cmlidXRlTmFtZSwgYXR0cmlidXRlVmFsdWUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fcmVtb3ZlQXR0cmlidXRlKGF0dHJpYnV0ZU5hbWUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfc2V0QXR0cmlidXRlKGF0dHJpYnV0ZU5hbWU6IHN0cmluZywgYXR0cmlidXRlVmFsdWU6IHVua25vd24pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUodGhpcy5lbC5uYXRpdmVFbGVtZW50LCBhdHRyaWJ1dGVOYW1lLCBhdHRyaWJ1dGVWYWx1ZSBhcyBzdHJpbmcpO1xuICAgIH1cblxuICAgIHByaXZhdGUgX3JlbW92ZUF0dHJpYnV0ZShhdHRyaWJ1dGVOYW1lOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVBdHRyaWJ1dGUodGhpcy5lbC5uYXRpdmVFbGVtZW50LCBhdHRyaWJ1dGVOYW1lKTtcbiAgICB9XG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L21lbWJlci1vcmRlcmluZyxAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgcHJpdmF0ZSBzdGF0aWMgX2lzVHJ1dGh5KHZhbHVlOiBhbnkpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIEF0dHJpYnV0ZXNEaXJlY3RpdmUuX3ZhbHVlTm90SW4odmFsdWUsIFt1bmRlZmluZWQsIGZhbHNlLCBudWxsLCAnZGVsZXRlJywgJ2ZhbHNlJywgJyddKTtcbiAgICB9XG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L21lbWJlci1vcmRlcmluZyxAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgcHJpdmF0ZSBzdGF0aWMgX3ZhbHVlTm90SW4odmFsdWU6IGFueSwgZm9yYmlkZGVuVmFsdWVzOiBhbnlbXSk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gZm9yYmlkZGVuVmFsdWVzLmV2ZXJ5KChwcm9wKSA9PiB2YWx1ZSAhPT0gcHJvcCk7XG4gICAgfVxufVxuIl19