UNPKG

@alauda-fe/common

Version:

Alauda frontend team common codes.

131 lines 11.9 kB
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