UNPKG

@alauda-fe/common

Version:

Alauda frontend team common codes.

91 lines 12.3 kB
import { __decorate, __metadata } from "tslib"; /** * @packageDocumentation * @module disabled-container */ import { TooltipModule, TooltipType } from '@alauda/ui'; import { ChangeDetectionStrategy, Component, ElementRef, Input, ViewEncapsulation, } from '@angular/core'; import { Observable, combineLatest } from 'rxjs'; import { ObservableInput, TRUE } from '../core/public-api'; import { TranslatePipe } from '../translate/translate.pipe'; import * as i0 from "@angular/core"; import * as i1 from "@alauda/ui"; const _c0 = ["*"]; export class DisabledContainerComponent { constructor(elementRef) { this.elementRef = elementRef; this.tooltip = ''; this.tooltipPosition = 'top'; this.tooltipType = TooltipType.Default; this.isAllowed = false; this.isDisabled = false; } ngAfterViewInit() { this.disabledSubscription = combineLatest([ this.isAllowed$, this.isDisabled$, ]).subscribe(([isAllowed, isDisabled]) => { this.setButtonStatus(isAllowed && !isDisabled); }); } ngOnDestroy() { if (this.disabledSubscription) { this.disabledSubscription.unsubscribe(); } } setButtonStatus(isAllowed) { const container = this.elementRef.nativeElement.querySelector('.acl-disabled-container'); if (!container) { return; } const button = container.querySelector('button'); if (button) { isAllowed ? button.removeAttribute('disabled') : button.setAttribute('disabled', TRUE); } const a = container.querySelector('a'); if (a) { a.style.pointerEvents = isAllowed ? 'auto' : 'none'; } } static { this.ɵfac = function DisabledContainerComponent_Factory(t) { return new (t || DisabledContainerComponent)(i0.ɵɵdirectiveInject(i0.ElementRef)); }; } static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: DisabledContainerComponent, selectors: [["acl-disabled-container"]], inputs: { tooltip: "tooltip", tooltipPosition: "tooltipPosition", tooltipType: "tooltipType", isAllowed: "isAllowed", isDisabled: "isDisabled" }, standalone: true, features: [i0.ɵɵStandaloneFeature], ngContentSelectors: _c0, decls: 3, vars: 7, consts: [[1, "acl-disabled-container", 3, "auiTooltip", "auiTooltipPosition", "auiTooltipType", "auiTooltipDisabled"]], template: function DisabledContainerComponent_Template(rf, ctx) { if (rf & 1) { i0.ɵɵprojectionDef(); i0.ɵɵelementStart(0, "div", 0); i0.ɵɵpipe(1, "translate"); i0.ɵɵprojection(2); i0.ɵɵelementEnd(); } if (rf & 2) { i0.ɵɵproperty("auiTooltip", ctx.isAllowed ? ctx.tooltip : i0.ɵɵpipeBind1(1, 5, "no_permission_please_contact_administrator"))("auiTooltipPosition", ctx.tooltipPosition)("auiTooltipType", ctx.tooltipType)("auiTooltipDisabled", ctx.isAllowed && (!ctx.isDisabled || !ctx.tooltip)); i0.ɵɵattribute("data-test", "acl-disabled-container-" + !!ctx.isAllowed + "-" + !!ctx.isDisabled); } }, dependencies: [TranslatePipe, TooltipModule, i1.TooltipDirective], styles: ["acl-disabled-container+acl-disabled-container .acl-disabled-container>.aui-button{margin-left:8px}acl-disabled-container+.aui-button,.aui-button+acl-disabled-container{margin-left:8px}.acl-disabled-container{display:inline}\n"], encapsulation: 2, changeDetection: 0 }); } } __decorate([ ObservableInput(), __metadata("design:type", Observable) ], DisabledContainerComponent.prototype, "isAllowed$", void 0); __decorate([ ObservableInput(), __metadata("design:type", Observable) ], DisabledContainerComponent.prototype, "isDisabled$", void 0); __decorate([ ObservableInput(), __metadata("design:type", Observable) ], DisabledContainerComponent.prototype, "tooltip$", void 0); (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(DisabledContainerComponent, [{ type: Component, args: [{ selector: 'acl-disabled-container', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, standalone: true, imports: [TranslatePipe, TooltipModule], template: "<div\n class=\"acl-disabled-container\"\n [auiTooltip]=\"\n isAllowed\n ? tooltip\n : ('no_permission_please_contact_administrator' | translate)\n \"\n [auiTooltipPosition]=\"tooltipPosition\"\n [auiTooltipType]=\"tooltipType\"\n [auiTooltipDisabled]=\"isAllowed && (!isDisabled || !tooltip)\"\n [attr.data-test]=\"\n 'acl-disabled-container-' + !!isAllowed + '-' + !!isDisabled\n \"\n>\n <ng-content></ng-content>\n</div>\n", styles: ["acl-disabled-container+acl-disabled-container .acl-disabled-container>.aui-button{margin-left:8px}acl-disabled-container+.aui-button,.aui-button+acl-disabled-container{margin-left:8px}.acl-disabled-container{display:inline}\n"] }] }], () => [{ type: i0.ElementRef }], { tooltip: [{ type: Input }], tooltipPosition: [{ type: Input }], tooltipType: [{ type: Input }], isAllowed: [{ type: Input }], isDisabled: [{ type: Input }], isAllowed$: [], isDisabled$: [], tooltip$: [] }); })(); (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(DisabledContainerComponent, { className: "DisabledContainerComponent" }); })(); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzYWJsZWQtY29udGFpbmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL3NyYy9kaXNhYmxlZC1jb250YWluZXIvZGlzYWJsZWQtY29udGFpbmVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL3NyYy9kaXNhYmxlZC1jb250YWluZXIvZGlzYWJsZWQtY29udGFpbmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7O0dBR0c7QUFFSCxPQUFPLEVBQUUsYUFBYSxFQUFFLFdBQVcsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUN4RCxPQUFPLEVBRUwsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsS0FBSyxFQUdMLGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsVUFBVSxFQUFnQixhQUFhLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFL0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxJQUFJLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUMzRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7Ozs7QUFXNUQsTUFBTSxPQUFPLDBCQUEwQjtJQTJCckMsWUFBNkIsVUFBbUM7UUFBbkMsZUFBVSxHQUFWLFVBQVUsQ0FBeUI7UUF6QmhFLFlBQU8sR0FBa0MsRUFBRSxDQUFDO1FBRzVDLG9CQUFlLEdBQUcsS0FBSyxDQUFDO1FBR3hCLGdCQUFXLEdBQVcsV0FBVyxDQUFDLE9BQU8sQ0FBQztRQUcxQyxjQUFTLEdBQUcsS0FBSyxDQUFDO1FBR2xCLGVBQVUsR0FBRyxLQUFLLENBQUM7SUFhZ0QsQ0FBQztJQUVwRSxlQUFlO1FBQ2IsSUFBSSxDQUFDLG9CQUFvQixHQUFHLGFBQWEsQ0FBQztZQUN4QyxJQUFJLENBQUMsVUFBVTtZQUNmLElBQUksQ0FBQyxXQUFXO1NBQ2pCLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxVQUFVLENBQUMsRUFBRSxFQUFFO1lBQ3ZDLElBQUksQ0FBQyxlQUFlLENBQUMsU0FBUyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDakQsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7WUFDOUIsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQzFDLENBQUM7SUFDSCxDQUFDO0lBRU8sZUFBZSxDQUFDLFNBQWtCO1FBQ3hDLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FDM0QseUJBQXlCLENBQzFCLENBQUM7UUFDRixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDZixPQUFPO1FBQ1QsQ0FBQztRQUNELE1BQU0sTUFBTSxHQUFHLFNBQVMsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDakQsSUFBSSxNQUFNLEVBQUUsQ0FBQztZQUNYLFNBQVM7Z0JBQ1AsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsVUFBVSxDQUFDO2dCQUNwQyxDQUFDLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDNUMsQ0FBQztRQUNELE1BQU0sQ0FBQyxHQUFHLFNBQVMsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDdkMsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUNOLENBQUMsQ0FBQyxLQUFLLENBQUMsYUFBYSxHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7UUFDdEQsQ0FBQztJQUNILENBQUM7MkZBN0RVLDBCQUEwQjtvRUFBMUIsMEJBQTBCOztZQzlCdkMsOEJBYUM7O1lBQ0Msa0JBQXlCO1lBQzNCLGlCQUFNOztZQU5KLEFBREEsQUFEQSxBQUxBLDZIQUlDLDJDQUNxQyxtQ0FDUiwwRUFDK0I7OzRCRG1CbkQsYUFBYSxFQUFFLGFBQWE7O0FBbUI3QjtJQURSLGVBQWUsRUFBRTs4QkFDRyxVQUFVOzhEQUFVO0FBR2hDO0lBRFIsZUFBZSxFQUFFOzhCQUNJLFVBQVU7K0RBQVU7QUFHakM7SUFEUixlQUFlLEVBQUU7OEJBQ0MsVUFBVTs0REFBZ0M7aUZBdkJsRCwwQkFBMEI7Y0FUdEMsU0FBUzsyQkFDRSx3QkFBd0IsbUJBR2pCLHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLElBQUksY0FDekIsSUFBSSxXQUNQLENBQUMsYUFBYSxFQUFFLGFBQWEsQ0FBQzsyQ0FJdkMsT0FBTztrQkFETixLQUFLO1lBSU4sZUFBZTtrQkFEZCxLQUFLO1lBSU4sV0FBVztrQkFEVixLQUFLO1lBSU4sU0FBUztrQkFEUixLQUFLO1lBSU4sVUFBVTtrQkFEVCxLQUFLO1lBSUcsVUFBVSxNQUdWLFdBQVcsTUFHWCxRQUFRO2tGQXZCTiwwQkFBMEIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBwYWNrYWdlRG9jdW1lbnRhdGlvblxuICogQG1vZHVsZSBkaXNhYmxlZC1jb250YWluZXJcbiAqL1xuXG5pbXBvcnQgeyBUb29sdGlwTW9kdWxlLCBUb29sdGlwVHlwZSB9IGZyb20gJ0BhbGF1ZGEvdWknO1xuaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YnNjcmlwdGlvbiwgY29tYmluZUxhdGVzdCB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBPYnNlcnZhYmxlSW5wdXQsIFRSVUUgfSBmcm9tICcuLi9jb3JlL3B1YmxpYy1hcGknO1xuaW1wb3J0IHsgVHJhbnNsYXRlUGlwZSB9IGZyb20gJy4uL3RyYW5zbGF0ZS90cmFuc2xhdGUucGlwZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FjbC1kaXNhYmxlZC1jb250YWluZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vZGlzYWJsZWQtY29udGFpbmVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJ2Rpc2FibGVkLWNvbnRhaW5lci5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1RyYW5zbGF0ZVBpcGUsIFRvb2x0aXBNb2R1bGVdLFxufSlcbmV4cG9ydCBjbGFzcyBEaXNhYmxlZENvbnRhaW5lckNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpXG4gIHRvb2x0aXA6IHN0cmluZyB8IFRlbXBsYXRlUmVmPHVua25vd24+ID0gJyc7XG5cbiAgQElucHV0KClcbiAgdG9vbHRpcFBvc2l0aW9uID0gJ3RvcCc7XG5cbiAgQElucHV0KClcbiAgdG9vbHRpcFR5cGU6IHN0cmluZyA9IFRvb2x0aXBUeXBlLkRlZmF1bHQ7XG5cbiAgQElucHV0KClcbiAgaXNBbGxvd2VkID0gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgaXNEaXNhYmxlZCA9IGZhbHNlO1xuXG4gIEBPYnNlcnZhYmxlSW5wdXQoKVxuICByZWFkb25seSBpc0FsbG93ZWQkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuXG4gIEBPYnNlcnZhYmxlSW5wdXQoKVxuICByZWFkb25seSBpc0Rpc2FibGVkJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcblxuICBAT2JzZXJ2YWJsZUlucHV0KClcbiAgcmVhZG9ubHkgdG9vbHRpcCQ6IE9ic2VydmFibGU8c3RyaW5nIHwgVGVtcGxhdGVSZWY8dW5rbm93bj4+O1xuXG4gIHByaXZhdGUgZGlzYWJsZWRTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGVsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+KSB7fVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICB0aGlzLmRpc2FibGVkU3Vic2NyaXB0aW9uID0gY29tYmluZUxhdGVzdChbXG4gICAgICB0aGlzLmlzQWxsb3dlZCQsXG4gICAgICB0aGlzLmlzRGlzYWJsZWQkLFxuICAgIF0pLnN1YnNjcmliZSgoW2lzQWxsb3dlZCwgaXNEaXNhYmxlZF0pID0+IHtcbiAgICAgIHRoaXMuc2V0QnV0dG9uU3RhdHVzKGlzQWxsb3dlZCAmJiAhaXNEaXNhYmxlZCk7XG4gICAgfSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICBpZiAodGhpcy5kaXNhYmxlZFN1YnNjcmlwdGlvbikge1xuICAgICAgdGhpcy5kaXNhYmxlZFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2V0QnV0dG9uU3RhdHVzKGlzQWxsb3dlZDogYm9vbGVhbikge1xuICAgIGNvbnN0IGNvbnRhaW5lciA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoXG4gICAgICAnLmFjbC1kaXNhYmxlZC1jb250YWluZXInLFxuICAgICk7XG4gICAgaWYgKCFjb250YWluZXIpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgYnV0dG9uID0gY29udGFpbmVyLnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbicpO1xuICAgIGlmIChidXR0b24pIHtcbiAgICAgIGlzQWxsb3dlZFxuICAgICAgICA/IGJ1dHRvbi5yZW1vdmVBdHRyaWJ1dGUoJ2Rpc2FibGVkJylcbiAgICAgICAgOiBidXR0b24uc2V0QXR0cmlidXRlKCdkaXNhYmxlZCcsIFRSVUUpO1xuICAgIH1cbiAgICBjb25zdCBhID0gY29udGFpbmVyLnF1ZXJ5U2VsZWN0b3IoJ2EnKTtcbiAgICBpZiAoYSkge1xuICAgICAgYS5zdHlsZS5wb2ludGVyRXZlbnRzID0gaXNBbGxvd2VkID8gJ2F1dG8nIDogJ25vbmUnO1xuICAgIH1cbiAgfVxufVxuIiwiPGRpdlxuICBjbGFzcz1cImFjbC1kaXNhYmxlZC1jb250YWluZXJcIlxuICBbYXVpVG9vbHRpcF09XCJcbiAgICBpc0FsbG93ZWRcbiAgICAgID8gdG9vbHRpcFxuICAgICAgOiAoJ25vX3Blcm1pc3Npb25fcGxlYXNlX2NvbnRhY3RfYWRtaW5pc3RyYXRvcicgfCB0cmFuc2xhdGUpXG4gIFwiXG4gIFthdWlUb29sdGlwUG9zaXRpb25dPVwidG9vbHRpcFBvc2l0aW9uXCJcbiAgW2F1aVRvb2x0aXBUeXBlXT1cInRvb2x0aXBUeXBlXCJcbiAgW2F1aVRvb2x0aXBEaXNhYmxlZF09XCJpc0FsbG93ZWQgJiYgKCFpc0Rpc2FibGVkIHx8ICF0b29sdGlwKVwiXG4gIFthdHRyLmRhdGEtdGVzdF09XCJcbiAgICAnYWNsLWRpc2FibGVkLWNvbnRhaW5lci0nICsgISFpc0FsbG93ZWQgKyAnLScgKyAhIWlzRGlzYWJsZWRcbiAgXCJcbj5cbiAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuPC9kaXY+XG4iXX0=