@alauda-fe/common
Version:
Alauda frontend team common codes.
91 lines • 12.3 kB
JavaScript
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=