@alauda-fe/common
Version:
Alauda frontend team common codes.
131 lines • 11.9 kB
JavaScript
import { __decorate, __metadata } from "tslib";
import { booleanAttribute, Directive, HostListener, Input, } from '@angular/core';
import { isBoolean } from 'lodash-es';
import { ValueHook } from '../core/utils/public-api';
import * as i0 from "@angular/core";
export var PreventHandler;
(function (PreventHandler) {
PreventHandler["Contextmenu"] = "contextmenu";
PreventHandler["Paste"] = "paste";
PreventHandler["Cut"] = "cut";
PreventHandler["Copy"] = "copy";
})(PreventHandler || (PreventHandler = {}));
const handleEvent = (event, enable) => enable && event.preventDefault();
/**
* 阻止点击事件
*/
export class PreventDirective {
constructor() {
this.prevent = true;
}
static { this.ɵfac = function PreventDirective_Factory(t) { return new (t || PreventDirective)(); }; }
static { this.ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: PreventDirective, selectors: [["", "prevent", ""]], hostAttrs: ["click", "prevent && $event.preventDefault()"], inputs: { prevent: "prevent" }, standalone: true }); }
}
__decorate([
ValueHook(isBoolean),
__metadata("design:type", Object)
], PreventDirective.prototype, "prevent", void 0);
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PreventDirective, [{
type: Directive,
args: [{
// eslint-disable-next-line @angular-eslint/directive-selector
selector: '[prevent]',
host: {
click: 'prevent && $event.preventDefault()',
},
standalone: true,
}]
}], null, { prevent: [{
type: Input
}] }); })();
/**
* 阻止冒泡事件
*/
export class StopDirective {
constructor() {
this.stop = true;
}
static { this.ɵfac = function StopDirective_Factory(t) { return new (t || StopDirective)(); }; }
static { this.ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: StopDirective, selectors: [["", "stop", ""]], hostAttrs: ["click", "stop && $event.stopPropagation()"], inputs: { stop: "stop" }, standalone: true }); }
}
__decorate([
ValueHook(isBoolean),
__metadata("design:type", Object)
], StopDirective.prototype, "stop", void 0);
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(StopDirective, [{
type: Directive,
args: [{
// eslint-disable-next-line @angular-eslint/directive-selector
selector: '[stop]',
host: {
click: 'stop && $event.stopPropagation()',
},
standalone: true,
}]
}], null, { stop: [{
type: Input
}] }); })();
/**
* 阻止剪切板(拷贝、粘贴、剪切、右键菜单)等事件
*
* @example
*
* 阻止全部:
* ```
* <input aui-input aclPreventEvent>
* ```
* 自定义:
* ```
* <input aui-input [aclPreventEvent]="{copy: true, paste: true}">
* ```
*/
export class PreventClipboardDirective {
constructor() {
this.preventClipboardEvent = true;
}
isPreventEvent(action) {
if (typeof this.preventClipboardEvent === 'object') {
return !!this.preventClipboardEvent[action];
}
return booleanAttribute(this.preventClipboardEvent);
}
onContextmenu(event) {
handleEvent(event, this.isPreventEvent(PreventHandler.Contextmenu));
}
onCut(event) {
handleEvent(event, this.isPreventEvent(PreventHandler.Cut));
}
onPaste(event) {
handleEvent(event, this.isPreventEvent(PreventHandler.Paste));
}
onCopy(event) {
handleEvent(event, this.isPreventEvent(PreventHandler.Copy));
}
static { this.ɵfac = function PreventClipboardDirective_Factory(t) { return new (t || PreventClipboardDirective)(); }; }
static { this.ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: PreventClipboardDirective, selectors: [["input", "aclPreventClipboardEvent", ""]], hostBindings: function PreventClipboardDirective_HostBindings(rf, ctx) { if (rf & 1) {
i0.ɵɵlistener("contextmenu", function PreventClipboardDirective_contextmenu_HostBindingHandler($event) { return ctx.onContextmenu($event); })("cut", function PreventClipboardDirective_cut_HostBindingHandler($event) { return ctx.onCut($event); })("paste", function PreventClipboardDirective_paste_HostBindingHandler($event) { return ctx.onPaste($event); })("copy", function PreventClipboardDirective_copy_HostBindingHandler($event) { return ctx.onCopy($event); });
} }, inputs: { preventClipboardEvent: [0, "aclPreventClipboardEvent", "preventClipboardEvent"] }, standalone: true }); }
}
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PreventClipboardDirective, [{
type: Directive,
args: [{
selector: 'input[aclPreventClipboardEvent]',
standalone: true,
}]
}], null, { preventClipboardEvent: [{
type: Input,
args: ['aclPreventClipboardEvent']
}], onContextmenu: [{
type: HostListener,
args: ['contextmenu', ['$event']]
}], onCut: [{
type: HostListener,
args: ['cut', ['$event']]
}], onPaste: [{
type: HostListener,
args: ['paste', ['$event']]
}], onCopy: [{
type: HostListener,
args: ['copy', ['$event']]
}] }); })();
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vc3JjL2VmZmVjdC1kaXJlY3RpdmUvZXZlbnQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0wsZ0JBQWdCLEVBQ2hCLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxHQUNOLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFFdEMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDBCQUEwQixDQUFDOztBQUVyRCxNQUFNLENBQU4sSUFBWSxjQUtYO0FBTEQsV0FBWSxjQUFjO0lBQ3hCLDZDQUEyQixDQUFBO0lBQzNCLGlDQUFlLENBQUE7SUFDZiw2QkFBVyxDQUFBO0lBQ1gsK0JBQWEsQ0FBQTtBQUNmLENBQUMsRUFMVyxjQUFjLEtBQWQsY0FBYyxRQUt6QjtBQUVELE1BQU0sV0FBVyxHQUFHLENBQUMsS0FBWSxFQUFFLE1BQWUsRUFBRSxFQUFFLENBQ3BELE1BQU0sSUFBSSxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7QUFFbkM7O0dBRUc7QUFTSCxNQUFNLE9BQU8sZ0JBQWdCO0lBUjdCO1FBV0UsWUFBTyxHQUFHLElBQUksQ0FBQztLQUNoQjtpRkFKWSxnQkFBZ0I7b0VBQWhCLGdCQUFnQjs7QUFHM0I7SUFGQyxTQUFTLENBQUMsU0FBUyxDQUFDOztpREFFTjtpRkFISixnQkFBZ0I7Y0FSNUIsU0FBUztlQUFDO2dCQUNULDhEQUE4RDtnQkFDOUQsUUFBUSxFQUFFLFdBQVc7Z0JBQ3JCLElBQUksRUFBRTtvQkFDSixLQUFLLEVBQUUsb0NBQW9DO2lCQUM1QztnQkFDRCxVQUFVLEVBQUUsSUFBSTthQUNqQjtnQkFJQyxPQUFPO2tCQUROLEtBQUs7O0FBSVI7O0dBRUc7QUFTSCxNQUFNLE9BQU8sYUFBYTtJQVIxQjtRQVdFLFNBQUksR0FBRyxJQUFJLENBQUM7S0FDYjs4RUFKWSxhQUFhO29FQUFiLGFBQWE7O0FBR3hCO0lBRkMsU0FBUyxDQUFDLFNBQVMsQ0FBQzs7MkNBRVQ7aUZBSEQsYUFBYTtjQVJ6QixTQUFTO2VBQUM7Z0JBQ1QsOERBQThEO2dCQUM5RCxRQUFRLEVBQUUsUUFBUTtnQkFDbEIsSUFBSSxFQUFFO29CQUNKLEtBQUssRUFBRSxrQ0FBa0M7aUJBQzFDO2dCQUNELFVBQVUsRUFBRSxJQUFJO2FBQ2pCO2dCQUlDLElBQUk7a0JBREgsS0FBSzs7QUFJUjs7Ozs7Ozs7Ozs7OztHQWFHO0FBS0gsTUFBTSxPQUFPLHlCQUF5QjtJQUp0QztRQU1FLDBCQUFxQixHQUcwQixJQUFJLENBQUM7S0E2QnJEO0lBM0JTLGNBQWMsQ0FBQyxNQUFzQjtRQUMzQyxJQUFJLE9BQU8sSUFBSSxDQUFDLHFCQUFxQixLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQ25ELE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM5QyxDQUFDO1FBRUQsT0FBTyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBR0QsYUFBYSxDQUFDLEtBQVk7UUFDeEIsV0FBVyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO0lBQ3RFLENBQUM7SUFHRCxLQUFLLENBQUMsS0FBWTtRQUNoQixXQUFXLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDOUQsQ0FBQztJQUdELE9BQU8sQ0FBQyxLQUFZO1FBQ2xCLFdBQVcsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNoRSxDQUFDO0lBR0QsTUFBTSxDQUFDLEtBQVk7UUFDakIsV0FBVyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQy9ELENBQUM7MEZBakNVLHlCQUF5QjtvRUFBekIseUJBQXlCO1lBQXpCLGdIQUFBLHlCQUFxQixJQUFJLG1GQUF6QixpQkFBYSxJQUFZLHVGQUF6QixtQkFBZSxJQUFVLHFGQUF6QixrQkFBYyxJQUFXOzs7aUZBQXpCLHlCQUF5QjtjQUpyQyxTQUFTO2VBQUM7Z0JBQ1QsUUFBUSxFQUFFLGlDQUFpQztnQkFDM0MsVUFBVSxFQUFFLElBQUk7YUFDakI7Z0JBR0MscUJBQXFCO2tCQURwQixLQUFLO21CQUFDLDBCQUEwQjtZQWVqQyxhQUFhO2tCQURaLFlBQVk7bUJBQUMsYUFBYSxFQUFFLENBQUMsUUFBUSxDQUFDO1lBTXZDLEtBQUs7a0JBREosWUFBWTttQkFBQyxLQUFLLEVBQUUsQ0FBQyxRQUFRLENBQUM7WUFNL0IsT0FBTztrQkFETixZQUFZO21CQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQztZQU1qQyxNQUFNO2tCQURMLFlBQVk7bUJBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgYm9vbGVhbkF0dHJpYnV0ZSxcbiAgRGlyZWN0aXZlLFxuICBIb3N0TGlzdGVuZXIsXG4gIElucHV0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGlzQm9vbGVhbiB9IGZyb20gJ2xvZGFzaC1lcyc7XG5cbmltcG9ydCB7IFZhbHVlSG9vayB9IGZyb20gJy4uL2NvcmUvdXRpbHMvcHVibGljLWFwaSc7XG5cbmV4cG9ydCBlbnVtIFByZXZlbnRIYW5kbGVyIHtcbiAgQ29udGV4dG1lbnUgPSAnY29udGV4dG1lbnUnLFxuICBQYXN0ZSA9ICdwYXN0ZScsXG4gIEN1dCA9ICdjdXQnLFxuICBDb3B5ID0gJ2NvcHknLFxufVxuXG5jb25zdCBoYW5kbGVFdmVudCA9IChldmVudDogRXZlbnQsIGVuYWJsZTogYm9vbGVhbikgPT5cbiAgZW5hYmxlICYmIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cbi8qKlxuICog6Zi75q2i54K55Ye75LqL5Lu2XG4gKi9cbkBEaXJlY3RpdmUoe1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2RpcmVjdGl2ZS1zZWxlY3RvclxuICBzZWxlY3RvcjogJ1twcmV2ZW50XScsXG4gIGhvc3Q6IHtcbiAgICBjbGljazogJ3ByZXZlbnQgJiYgJGV2ZW50LnByZXZlbnREZWZhdWx0KCknLFxuICB9LFxuICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBQcmV2ZW50RGlyZWN0aXZlIHtcbiAgQFZhbHVlSG9vayhpc0Jvb2xlYW4pXG4gIEBJbnB1dCgpXG4gIHByZXZlbnQgPSB0cnVlO1xufVxuXG4vKipcbiAqIOmYu+atouWGkuazoeS6i+S7tlxuICovXG5ARGlyZWN0aXZlKHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9kaXJlY3RpdmUtc2VsZWN0b3JcbiAgc2VsZWN0b3I6ICdbc3RvcF0nLFxuICBob3N0OiB7XG4gICAgY2xpY2s6ICdzdG9wICYmICRldmVudC5zdG9wUHJvcGFnYXRpb24oKScsXG4gIH0sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIFN0b3BEaXJlY3RpdmUge1xuICBAVmFsdWVIb29rKGlzQm9vbGVhbilcbiAgQElucHV0KClcbiAgc3RvcCA9IHRydWU7XG59XG5cbi8qKlxuICog6Zi75q2i5Ymq5YiH5p2/77yI5ou36LSd44CB57KY6LS044CB5Ymq5YiH44CB5Y+z6ZSu6I+c5Y2V77yJ562J5LqL5Lu2XG4gKlxuICogQGV4YW1wbGVcbiAqXG4gKiDpmLvmraLlhajpg6g6XG4gKiBgYGBcbiAqIDxpbnB1dCBhdWktaW5wdXQgYWNsUHJldmVudEV2ZW50PlxuICogYGBgXG4gKiDoh6rlrprkuYk6XG4gKiBgYGBcbiAqIDxpbnB1dCBhdWktaW5wdXQgW2FjbFByZXZlbnRFdmVudF09XCJ7Y29weTogdHJ1ZSwgcGFzdGU6IHRydWV9XCI+XG4gKiBgYGBcbiAqL1xuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnaW5wdXRbYWNsUHJldmVudENsaXBib2FyZEV2ZW50XScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIFByZXZlbnRDbGlwYm9hcmREaXJlY3RpdmUge1xuICBASW5wdXQoJ2FjbFByZXZlbnRDbGlwYm9hcmRFdmVudCcpXG4gIHByZXZlbnRDbGlwYm9hcmRFdmVudDpcbiAgICB8IGJvb2xlYW5cbiAgICB8ICcnXG4gICAgfCBQYXJ0aWFsPFJlY29yZDxQcmV2ZW50SGFuZGxlciwgYm9vbGVhbj4+ID0gdHJ1ZTtcblxuICBwcml2YXRlIGlzUHJldmVudEV2ZW50KGFjdGlvbjogUHJldmVudEhhbmRsZXIpOiBib29sZWFuIHtcbiAgICBpZiAodHlwZW9mIHRoaXMucHJldmVudENsaXBib2FyZEV2ZW50ID09PSAnb2JqZWN0Jykge1xuICAgICAgcmV0dXJuICEhdGhpcy5wcmV2ZW50Q2xpcGJvYXJkRXZlbnRbYWN0aW9uXTtcbiAgICB9XG5cbiAgICByZXR1cm4gYm9vbGVhbkF0dHJpYnV0ZSh0aGlzLnByZXZlbnRDbGlwYm9hcmRFdmVudCk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdjb250ZXh0bWVudScsIFsnJGV2ZW50J10pXG4gIG9uQ29udGV4dG1lbnUoZXZlbnQ6IEV2ZW50KSB7XG4gICAgaGFuZGxlRXZlbnQoZXZlbnQsIHRoaXMuaXNQcmV2ZW50RXZlbnQoUHJldmVudEhhbmRsZXIuQ29udGV4dG1lbnUpKTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2N1dCcsIFsnJGV2ZW50J10pXG4gIG9uQ3V0KGV2ZW50OiBFdmVudCkge1xuICAgIGhhbmRsZUV2ZW50KGV2ZW50LCB0aGlzLmlzUHJldmVudEV2ZW50KFByZXZlbnRIYW5kbGVyLkN1dCkpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcigncGFzdGUnLCBbJyRldmVudCddKVxuICBvblBhc3RlKGV2ZW50OiBFdmVudCkge1xuICAgIGhhbmRsZUV2ZW50KGV2ZW50LCB0aGlzLmlzUHJldmVudEV2ZW50KFByZXZlbnRIYW5kbGVyLlBhc3RlKSk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdjb3B5JywgWyckZXZlbnQnXSlcbiAgb25Db3B5KGV2ZW50OiBFdmVudCkge1xuICAgIGhhbmRsZUV2ZW50KGV2ZW50LCB0aGlzLmlzUHJldmVudEV2ZW50KFByZXZlbnRIYW5kbGVyLkNvcHkpKTtcbiAgfVxufVxuIl19