@dotglitch/ngx-common 1.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +24 -0
- package/components/dynamic-html/dynamic-html.component.d.ts +15 -0
- package/components/dynamic-html/dynamic-html.module.d.ts +10 -0
- package/components/dynamic-html/dynamic-html.service.d.ts +18 -0
- package/components/dynamic-html/types.d.ts +12 -0
- package/components/lazy-loader/lazy-loader.component.d.ts +146 -0
- package/components/lazy-loader/lazy-loader.module.d.ts +10 -0
- package/components/lazy-loader/lazy-loader.service.d.ts +71 -0
- package/components/lazy-loader/types.d.ts +142 -0
- package/components/menu/menu.component.d.ts +52 -0
- package/components/tooltip/tooltip.component.d.ts +35 -0
- package/directives/menu.directive.d.ts +27 -0
- package/directives/tooltip.directive.d.ts +26 -0
- package/directives/utils.d.ts +8 -0
- package/esm2020/components/dynamic-html/dynamic-html.component.mjs +43 -0
- package/esm2020/components/dynamic-html/dynamic-html.module.mjs +27 -0
- package/esm2020/components/dynamic-html/dynamic-html.service.mjs +66 -0
- package/esm2020/components/dynamic-html/types.mjs +7 -0
- package/esm2020/components/lazy-loader/lazy-loader.component.mjs +360 -0
- package/esm2020/components/lazy-loader/lazy-loader.module.mjs +29 -0
- package/esm2020/components/lazy-loader/lazy-loader.service.mjs +215 -0
- package/esm2020/components/lazy-loader/types.mjs +26 -0
- package/esm2020/components/menu/menu.component.mjs +316 -0
- package/esm2020/components/tooltip/tooltip.component.mjs +135 -0
- package/esm2020/directives/menu.directive.mjs +112 -0
- package/esm2020/directives/tooltip.directive.mjs +92 -0
- package/esm2020/directives/utils.mjs +120 -0
- package/esm2020/dotglitch-ngx-common.mjs +5 -0
- package/esm2020/pipes/html-bypass.pipe.mjs +27 -0
- package/esm2020/pipes/resource-bypass.pipe.mjs +27 -0
- package/esm2020/pipes/script-bypass.pipe.mjs +27 -0
- package/esm2020/pipes/style-bypass.pipe.mjs +27 -0
- package/esm2020/pipes/url-bypass.pipe.mjs +27 -0
- package/esm2020/public-api.mjs +39 -0
- package/esm2020/services/dependency.service.mjs +55 -0
- package/esm2020/services/dialog.service.mjs +66 -0
- package/esm2020/services/fetch.service.mjs +71 -0
- package/esm2020/services/keyboard.service.mjs +128 -0
- package/esm2020/types/menu.mjs +2 -0
- package/esm2020/types/popup.mjs +2 -0
- package/esm2020/utils/index.mjs +39 -0
- package/fesm2015/dotglitch-ngx-common.mjs +1997 -0
- package/fesm2015/dotglitch-ngx-common.mjs.map +1 -0
- package/fesm2020/dotglitch-ngx-common.mjs +1977 -0
- package/fesm2020/dotglitch-ngx-common.mjs.map +1 -0
- package/index.d.ts +5 -0
- package/package.json +60 -0
- package/pipes/html-bypass.pipe.d.ts +16 -0
- package/pipes/resource-bypass.pipe.d.ts +16 -0
- package/pipes/script-bypass.pipe.d.ts +16 -0
- package/pipes/style-bypass.pipe.d.ts +16 -0
- package/pipes/url-bypass.pipe.d.ts +16 -0
- package/public-api.d.ts +34 -0
- package/services/dependency.service.d.ts +19 -0
- package/services/dialog.service.d.ts +41 -0
- package/services/fetch.service.d.ts +28 -0
- package/services/keyboard.service.d.ts +79 -0
- package/types/menu.d.ts +90 -0
- package/types/popup.d.ts +27 -0
- package/utils/index.d.ts +19 -0
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
import { Directive, Input } from '@angular/core';
|
|
2
|
+
import { MatDialog } from '@angular/material/dialog';
|
|
3
|
+
import { getPosition } from './utils';
|
|
4
|
+
import { MenuComponent, calcMenuItemBounds } from '../components/menu/menu.component';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "@angular/material/dialog";
|
|
7
|
+
export class MenuDirective {
|
|
8
|
+
constructor(dialog, viewContainer) {
|
|
9
|
+
this.dialog = dialog;
|
|
10
|
+
this.viewContainer = viewContainer;
|
|
11
|
+
/**
|
|
12
|
+
* Configuration for opening the app menu
|
|
13
|
+
*/
|
|
14
|
+
this.config = {};
|
|
15
|
+
}
|
|
16
|
+
ngAfterViewInit() {
|
|
17
|
+
const el = this.viewContainer.element.nativeElement;
|
|
18
|
+
// Automatically attach context menu items to
|
|
19
|
+
// the contextmenu event
|
|
20
|
+
if (this.ctxMenuItems) {
|
|
21
|
+
el.onclick = this.openMenu.bind(this);
|
|
22
|
+
el.addEventListener('contextmenu', (e) => {
|
|
23
|
+
e.preventDefault();
|
|
24
|
+
this.openMenu(e);
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
if (!this.config?.trigger) {
|
|
28
|
+
el.onclick = this.openMenu.bind(this);
|
|
29
|
+
el.addEventListener('click', this.openMenu.bind(this));
|
|
30
|
+
}
|
|
31
|
+
else {
|
|
32
|
+
const triggers = Array.isArray(this.config.trigger) ? this.config.trigger : [this.config.trigger];
|
|
33
|
+
triggers.forEach(t => {
|
|
34
|
+
if (t == "contextmenu") {
|
|
35
|
+
el.addEventListener(t, (e) => {
|
|
36
|
+
e.preventDefault();
|
|
37
|
+
this.openMenu(e);
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
else {
|
|
41
|
+
el.addEventListener(t, this.openMenu.bind(this));
|
|
42
|
+
}
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
async openMenu(evt) {
|
|
47
|
+
const el = this.viewContainer.element.nativeElement;
|
|
48
|
+
el.classList.add("ngx-menu-open");
|
|
49
|
+
return openMenu(this.dialog, this.menuItems, this.data, evt, this.config)
|
|
50
|
+
.then((...res) => {
|
|
51
|
+
el.classList.remove("ngx-menu-open");
|
|
52
|
+
return res;
|
|
53
|
+
})
|
|
54
|
+
.catch((ex) => {
|
|
55
|
+
el.classList.remove("ngx-menu-open");
|
|
56
|
+
throw ex;
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
MenuDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: MenuDirective, deps: [{ token: i1.MatDialog }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
61
|
+
MenuDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: MenuDirective, isStandalone: true, selector: "[ngx-ctxmenu],[ngx-menu]", inputs: { data: ["ngx-menu-context", "data"], ctxMenuItems: ["ngx-ctxmenu", "ctxMenuItems"], menuItems: ["ngx-menu", "menuItems"], config: ["ngx-menu-config", "config"] }, providers: [
|
|
62
|
+
MatDialog
|
|
63
|
+
], ngImport: i0 });
|
|
64
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: MenuDirective, decorators: [{
|
|
65
|
+
type: Directive,
|
|
66
|
+
args: [{
|
|
67
|
+
selector: '[ngx-ctxmenu],[ngx-menu]',
|
|
68
|
+
providers: [
|
|
69
|
+
MatDialog
|
|
70
|
+
],
|
|
71
|
+
standalone: true
|
|
72
|
+
}]
|
|
73
|
+
}], ctorParameters: function () { return [{ type: i1.MatDialog }, { type: i0.ViewContainerRef }]; }, propDecorators: { data: [{
|
|
74
|
+
type: Input,
|
|
75
|
+
args: ["ngx-menu-context"]
|
|
76
|
+
}], ctxMenuItems: [{
|
|
77
|
+
type: Input,
|
|
78
|
+
args: ["ngx-ctxmenu"]
|
|
79
|
+
}], menuItems: [{
|
|
80
|
+
type: Input,
|
|
81
|
+
args: ["ngx-menu"]
|
|
82
|
+
}], config: [{
|
|
83
|
+
type: Input,
|
|
84
|
+
args: ["ngx-menu-config"]
|
|
85
|
+
}] } });
|
|
86
|
+
// Helper to open the context menu without using the directive.
|
|
87
|
+
export const openMenu = async (dialog, menuItems, data, evt, config = {}) => {
|
|
88
|
+
evt.preventDefault();
|
|
89
|
+
evt.stopPropagation();
|
|
90
|
+
const cords = getPosition(evt, config, await calcMenuItemBounds(menuItems, data));
|
|
91
|
+
const specificId = crypto.randomUUID();
|
|
92
|
+
if (!config.alignment)
|
|
93
|
+
config.alignment = "start";
|
|
94
|
+
return new Promise(res => {
|
|
95
|
+
dialog.open(MenuComponent, {
|
|
96
|
+
data: {
|
|
97
|
+
data: data,
|
|
98
|
+
items: menuItems,
|
|
99
|
+
config: config,
|
|
100
|
+
id: specificId
|
|
101
|
+
},
|
|
102
|
+
panelClass: ["ngx-menu", 'ngx-' + specificId].concat(config?.customClass || []),
|
|
103
|
+
position: cords,
|
|
104
|
+
backdropClass: "ngx-menu-backdrop"
|
|
105
|
+
})
|
|
106
|
+
.afterClosed()
|
|
107
|
+
.subscribe(s => {
|
|
108
|
+
res(s);
|
|
109
|
+
});
|
|
110
|
+
});
|
|
111
|
+
};
|
|
112
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21tb24vc3JjL2RpcmVjdGl2ZXMvbWVudS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQW9CLE1BQU0sZUFBZSxDQUFDO0FBQ25FLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBRXRDLE9BQU8sRUFBRSxhQUFhLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQzs7O0FBU3RGLE1BQU0sT0FBTyxhQUFhO0lBa0J0QixZQUNZLE1BQWlCLEVBQ2pCLGFBQStCO1FBRC9CLFdBQU0sR0FBTixNQUFNLENBQVc7UUFDakIsa0JBQWEsR0FBYixhQUFhLENBQWtCO1FBUDNDOztXQUVHO1FBQ3VCLFdBQU0sR0FBZ0IsRUFBRSxDQUFDO0lBSy9DLENBQUM7SUFFTCxlQUFlO1FBQ1gsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsYUFBNEIsQ0FBQztRQUVuRSw2Q0FBNkM7UUFDN0Msd0JBQXdCO1FBQ3hCLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRTtZQUNuQixFQUFFLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3RDLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRTtnQkFDckMsQ0FBQyxDQUFDLGNBQWMsRUFBRSxDQUFDO2dCQUNuQixJQUFJLENBQUMsUUFBUSxDQUFDLENBQVEsQ0FBQyxDQUFDO1lBQzVCLENBQUMsQ0FBQyxDQUFDO1NBQ047UUFFRCxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxPQUFPLEVB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LENBQUM7SUFDbEYsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBRXZDLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUztRQUFFLE1BQU0sQ0FBQyxTQUFTLEdBQUcsT0FBTyxDQUFDO0lBRWxELE9BQU8sSUFBSSxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUU7UUFDckIsTUFBTSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUU7WUFDdkIsSUFBSSxFQUFFO2dCQUNGLElBQUksRUFBRSxJQUFJO2dCQUNWLEtBQUssRUFBRSxTQUFTO2dCQUNoQixNQUFNLEVBQUUsTUFBTTtnQkFDZCxFQUFFLEVBQUUsVUFBVTthQUNqQjtZQUNELFVBQVUsRUFBRSxDQUFDLFVBQVUsRUFBRSxNQUFNLEdBQUcsVUFBVSxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxXQUFXLElBQUksRUFBRSxDQUFDO1lBQy9FLFFBQVEsRUFBRSxLQUFLO1lBQ2YsYUFBYSxFQUFFLG1CQUFtQjtTQUNyQyxDQUFDO2FBQ0QsV0FBVyxFQUFFO2FBQ2IsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ1gsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ1gsQ0FBQyxDQUFDLENBQUE7SUFDTixDQUFDLENBQWlCLENBQUM7QUFDdkIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBJbnB1dCwgVmlld0NvbnRhaW5lclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0RGlhbG9nIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IGdldFBvc2l0aW9uIH0gZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgeyBNZW51SXRlbSwgTWVudU9wdGlvbnMgfSBmcm9tICcuLi90eXBlcy9tZW51JztcbmltcG9ydCB7IE1lbnVDb21wb25lbnQsIGNhbGNNZW51SXRlbUJvdW5kcyB9IGZyb20gJy4uL2NvbXBvbmVudHMvbWVudS9tZW51LmNvbXBvbmVudCc7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW25neC1jdHhtZW51XSxbbmd4LW1lbnVdJyxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgTWF0RGlhbG9nXG4gICAgXSxcbiAgICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIE1lbnVEaXJlY3RpdmUge1xuXG4gICAgLyoqXG4gICAgICogVGhlIGRhdGEgcmVwcmVzZW50aW5nIHRoZSBpdGVtIHRoZSBtZW51IHdhcyBvcGVuZWQgZm9yLlxuICAgICAqL1xuICAgIEBJbnB1dChcIm5neC1tZW51LWNvbnRleHRcIikgZGF0YTogYW55O1xuXG4gICAgLyoqXG4gICAgICogVGhlIGl0ZW1zIHRoYXQgd2lsbCBiZSBib3VuZCB0byB0aGUgY29udGV4dCBtZW51LlxuICAgICAqL1xuICAgIEBJbnB1dChcIm5neC1jdHhtZW51XCIpIGN0eE1lbnVJdGVtczogTWVudUl0ZW1bXTtcbiAgICBASW5wdXQoXCJuZ3gtbWVudVwiKSBtZW51SXRlbXM6IE1lbnVJdGVtW107XG5cbiAgICAvKipcbiAgICAgKiBDb25maWd1cmF0aW9uIGZvciBvcGVuaW5nIHRoZSBhcHAgbWVudVxuICAgICAqL1xuICAgIEBJbnB1dChcIm5neC1tZW51LWNvbmZpZ1wiKSBjb25maWc6IE1lbnVPcHRpb25zID0ge307XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBkaWFsb2c6IE1hdERpYWxvZyxcbiAgICAgICAgcHJpdmF0ZSB2aWV3Q29udGFpbmVyOiBWaWV3Q29udGFpbmVyUmVmXG4gICAgKSB7IH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICAgICAgY29uc3QgZWwgPSB0aGlzLnZpZXdDb250YWluZXIuZWxlbWVudC5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50O1xuXG4gICAgICAgIC8vIEF1dG9tYXRpY2FsbHkgYXR0YWNoIGNvbnRleHQgbWVudSBpdGVtcyB0b1xuICAgICAgICAvLyB0aGUgY29udGV4dG1lbnUgZXZlbnRcbiAgICAgICAgaWYgKHRoaXMuY3R4TWVudUl0ZW1zKSB7XG4gICAgICAgICAgICBlbC5vbmNsaWNrID0gdGhpcy5vcGVuTWVudS5iaW5kKHRoaXMpO1xuICAgICAgICAgICAgZWwuYWRkRXZlbnRMaXN0ZW5lcignY29udGV4dG1lbnUnLCAoZSkgPT4ge1xuICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICB0aGlzLm9wZW5NZW51KGUgYXMgYW55KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCF0aGlzLmNvbmZpZz8udHJpZ2dlcikge1xuICAgICAgICAgICAgZWwub25jbGljayA9IHRoaXMub3Blbk1lbnUuYmluZCh0aGlzKTtcbiAgICAgICAgICAgIGVsLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgdGhpcy5vcGVuTWVudS5iaW5kKHRoaXMpKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IHRyaWdnZXJzID0gQXJyYXkuaXNBcnJheSh0aGlzLmNvbmZpZy50cmlnZ2VyKSA/IHRoaXMuY29uZmlnLnRyaWdnZXIgOiBbdGhpcy5jb25maWcudHJpZ2dlcl07XG5cbiAgICAgICAgICAgIHRyaWdnZXJzLmZvckVhY2godCA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHQgPT0gXCJjb250ZXh0bWVudVwiKSB7XG4gICAgICAgICAgICAgICAgICAgIGVsLmFkZEV2ZW50TGlzdGVuZXIodCwgKGUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMub3Blbk1lbnUoZSBhcyBhbnkpO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGVsLmFkZEV2ZW50TGlzdGVuZXIodCwgdGhpcy5vcGVuTWVudS5iaW5kKHRoaXMpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGFzeW5jIG9wZW5NZW51KGV2dDogUG9pbnRlckV2ZW50KSB7XG4gICAgICAgIGNvbnN0IGVsID0gdGhpcy52aWV3Q29udGFpbmVyLmVsZW1lbnQubmF0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudDtcblxuICAgICAgICBlbC5jbGFzc0xpc3QuYWRkKFwibmd4LW1lbnUtb3BlblwiKTtcblxuICAgICAgICByZXR1cm4gb3Blbk1lbnUodGhpcy5kaWFsb2csIHRoaXMubWVudUl0ZW1zLCB0aGlzLmRhdGEsIGV2dCwgdGhpcy5jb25maWcpXG4gICAgICAgICAgICAudGhlbigoLi4ucmVzKSA9PiB7XG4gICAgICAgICAgICAgICAgZWwuY2xhc3NMaXN0LnJlbW92ZShcIm5neC1tZW51LW9wZW5cIik7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlcztcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAuY2F0Y2goKGV4KSA9PiB7XG4gICAgICAgICAgICAgICAgZWwuY2xhc3NMaXN0LnJlbW92ZShcIm5neC1tZW51LW9wZW5cIik7XG4gICAgICAgICAgICAgICAgdGhyb3cgZXg7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG59XG5cbi8vIEhlbHBlciB0byBvcGVuIHRoZSBjb250ZXh0IG1lbnUgd2l0aG91dCB1c2luZyB0aGUgZGlyZWN0aXZlLlxuZXhwb3J0IGNvbnN0IG9wZW5NZW51ID0gYXN5bmMgKGRpYWxvZzogTWF0RGlhbG9nLCBtZW51SXRlbXM6IE1lbnVJdGVtW10sIGRhdGE6IGFueSwgZXZ0OiBQb2ludGVyRXZlbnQsIGNvbmZpZzogTWVudU9wdGlvbnMgPSB7fSkgPT4ge1xuICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGV2dC5zdG9wUHJvcGFnYXRpb24oKTtcblxuICAgIGNvbnN0IGNvcmRzID0gZ2V0UG9zaXRpb24oZXZ0LCBjb25maWcsIGF3YWl0IGNhbGNNZW51SXRlbUJvdW5kcyhtZW51SXRlbXMsIGRhdGEpKTtcbiAgICBjb25zdCBzcGVjaWZpY0lkID0gY3J5cHRvLnJhbmRvbVVVSUQoKTtcblxuICAgIGlmICghY29uZmlnLmFsaWdubWVudCkgY29uZmlnLmFsaWdubWVudCA9IFwic3RhcnRcIjtcblxuICAgIHJldHVybiBuZXcgUHJvbWlzZShyZXMgPT4ge1xuICAgICAgICBkaWFsb2cub3BlbihNZW51Q29tcG9uZW50LCB7XG4gICAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICAgICAgZGF0YTogZGF0YSxcbiAgICAgICAgICAgICAgICBpdGVtczogbWVudUl0ZW1zLFxuICAgICAgICAgICAgICAgIGNvbmZpZzogY29uZmlnLFxuICAgICAgICAgICAgICAgIGlkOiBzcGVjaWZpY0lkXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcGFuZWxDbGFzczogW1wibmd4LW1lbnVcIiwgJ25neC0nICsgc3BlY2lmaWNJZF0uY29uY2F0KGNvbmZpZz8uY3VzdG9tQ2xhc3MgfHwgW10pLFxuICAgICAgICAgICAgcG9zaXRpb246IGNvcmRzLFxuICAgICAgICAgICAgYmFja2Ryb3BDbGFzczogXCJuZ3gtbWVudS1iYWNrZHJvcFwiXG4gICAgICAgIH0pXG4gICAgICAgIC5hZnRlckNsb3NlZCgpXG4gICAgICAgIC5zdWJzY3JpYmUocyA9PiB7XG4gICAgICAgICAgICByZXMocyk7XG4gICAgICAgIH0pXG4gICAgfSkgYXMgUHJvbWlzZTxhbnk+O1xufTtcbiJdfQ==
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import { Directive, Input, HostListener, TemplateRef } from '@angular/core';
|
|
2
|
+
import { MatDialog } from '@angular/material/dialog';
|
|
3
|
+
import { getPosition } from './utils';
|
|
4
|
+
import { TooltipComponent, calcTooltipBounds } from '../components/tooltip/tooltip.component';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "@angular/material/dialog";
|
|
7
|
+
export class TooltipDirective {
|
|
8
|
+
constructor(dialog, viewContainer) {
|
|
9
|
+
this.dialog = dialog;
|
|
10
|
+
this.viewContainer = viewContainer;
|
|
11
|
+
/**
|
|
12
|
+
* Configuration for opening the app menu
|
|
13
|
+
*/
|
|
14
|
+
this.config = {};
|
|
15
|
+
/**
|
|
16
|
+
* Arbitrary data to pass into the template
|
|
17
|
+
*/
|
|
18
|
+
this.data = {};
|
|
19
|
+
}
|
|
20
|
+
ngOnInit() {
|
|
21
|
+
}
|
|
22
|
+
// Needs to be public so we can manually open the dialog
|
|
23
|
+
async onPointerEnter(evt) {
|
|
24
|
+
// If the template is not a template ref, do nothing.
|
|
25
|
+
if (!(this.template instanceof TemplateRef))
|
|
26
|
+
return;
|
|
27
|
+
const el = this.viewContainer.element.nativeElement;
|
|
28
|
+
this.dialogInstance = await openTooltip(this.dialog, this.template, this.data, el, this.config);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
TooltipDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TooltipDirective, deps: [{ token: i1.MatDialog }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
32
|
+
TooltipDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: TooltipDirective, isStandalone: true, selector: "[ngxTooltip],[ngx-tooltip]", inputs: { template: ["ngx-tooltip", "template"], config: ["ngx-tooltip-config", "config"], data: ["ngx-tooltip-context", "data"] }, host: { listeners: { "pointerenter": "onPointerEnter($event)" } }, providers: [
|
|
33
|
+
MatDialog
|
|
34
|
+
], ngImport: i0 });
|
|
35
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TooltipDirective, decorators: [{
|
|
36
|
+
type: Directive,
|
|
37
|
+
args: [{
|
|
38
|
+
selector: '[ngxTooltip],[ngx-tooltip]',
|
|
39
|
+
providers: [
|
|
40
|
+
MatDialog
|
|
41
|
+
],
|
|
42
|
+
standalone: true
|
|
43
|
+
}]
|
|
44
|
+
}], ctorParameters: function () { return [{ type: i1.MatDialog }, { type: i0.ViewContainerRef }]; }, propDecorators: { template: [{
|
|
45
|
+
type: Input,
|
|
46
|
+
args: ["ngxTooltip"]
|
|
47
|
+
}, {
|
|
48
|
+
type: Input,
|
|
49
|
+
args: ["ngx-tooltip"]
|
|
50
|
+
}], config: [{
|
|
51
|
+
type: Input,
|
|
52
|
+
args: ["ngxTooltipConfig"]
|
|
53
|
+
}, {
|
|
54
|
+
type: Input,
|
|
55
|
+
args: ["ngx-tooltip-config"]
|
|
56
|
+
}], data: [{
|
|
57
|
+
type: Input,
|
|
58
|
+
args: ["ngxTooltipContext"]
|
|
59
|
+
}, {
|
|
60
|
+
type: Input,
|
|
61
|
+
args: ["ngx-tooltip-context"]
|
|
62
|
+
}], onPointerEnter: [{
|
|
63
|
+
type: HostListener,
|
|
64
|
+
args: ['pointerenter', ['$event']]
|
|
65
|
+
}] } });
|
|
66
|
+
// Helper to open the context menu without using the directive.
|
|
67
|
+
export const openTooltip = async (dialog, template, data, el, config) => {
|
|
68
|
+
const rect = await calcTooltipBounds(template, data);
|
|
69
|
+
const ownerCords = el.getBoundingClientRect();
|
|
70
|
+
const cords = getPosition(el, config, rect);
|
|
71
|
+
const specificId = crypto.randomUUID();
|
|
72
|
+
return new Promise(res => {
|
|
73
|
+
dialog.open(TooltipComponent, {
|
|
74
|
+
data: {
|
|
75
|
+
data: data,
|
|
76
|
+
template: template,
|
|
77
|
+
config: config,
|
|
78
|
+
ownerCords: ownerCords,
|
|
79
|
+
selfCords: cords,
|
|
80
|
+
id: specificId
|
|
81
|
+
},
|
|
82
|
+
panelClass: ["ngx-tooltip", 'ngx-' + specificId].concat(config?.customClass || []),
|
|
83
|
+
position: cords,
|
|
84
|
+
hasBackdrop: false
|
|
85
|
+
})
|
|
86
|
+
.afterClosed()
|
|
87
|
+
.subscribe(s => {
|
|
88
|
+
res(s);
|
|
89
|
+
});
|
|
90
|
+
});
|
|
91
|
+
};
|
|
92
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21tb24vc3JjL2RpcmVjdGl2ZXMvdG9vbHRpcC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBMEIsTUFBTSxlQUFlLENBQUM7QUFDcEcsT0FBTyxFQUFFLFNBQVMsRUFBZ0IsTUFBTSwwQkFBMEIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBRXRDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDOzs7QUFTOUYsTUFBTSxPQUFPLGdCQUFnQjtJQW1CekIsWUFDWSxNQUFpQixFQUNqQixhQUErQjtRQUQvQixXQUFNLEdBQU4sTUFBTSxDQUFXO1FBQ2pCLGtCQUFhLEdBQWIsYUFBYSxDQUFrQjtRQWQzQzs7V0FFRztRQUUwQixXQUFNLEdBQWlCLEVBQUUsQ0FBQztRQUV2RDs7V0FFRztRQUUyQixTQUFJLEdBQVEsRUFBRSxDQUFDO0lBTTdDLENBQUM7SUFFRCxRQUFRO0lBQ1IsQ0FBQztJQUlELHdEQUF3RDtJQUVqRCxLQUFLLENBQUMsY0FBYyxDQUFDLEdBQWlCO1FBQ3pDLHFEQUFxRDtRQUNyRCxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxZQUFZLFdBQVcsQ0FBQztZQUN2QyxPQUFPO1FBRVgsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDO1FBQ3BELElBQUksQ0FBQyxjQUFjLEdBQUcsTUFBTSxXQUFXLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNwRyxDQUFDOzs2R0F2Q1EsZ0JBQWdCO2lHQUFoQixnQkFBZ0IsZ1JBTGQ7UUFDUCxTQUFTO0tBQ1o7MkZBR1EsZ0JBQWdCO2tCQVA1QixTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSw0QkFBNEI7b0JBQ3RDLFNBQVMsRUFBRTt3QkFDUCxTQUFTO3FCQUNaO29CQUNELFVBQVUsRUFBRSxJQUFJO2lCQUNuQjsrSEFNeUIsUUFBUTtzQkFEN0IsS0FBSzt1QkFBQyxZQUFZOztzQkFDbEIsS0FBSzt1QkFBQyxhQUFhO2dCQU1TLE1BQU07c0JBRGxDLEtBQUs7dUJBQUMsa0JBQWtCOztzQkFDeEIsS0FBSzt1QkFBQyxvQkFBb0I7Z0JBTUcsSUFBSTtzQkFEakMsS0FBSzt1QkFBQyxtQkFBbUI7O3NCQUN6QixLQUFLO3VCQUFDLHFCQUFxQjtnQkFlZixjQUFjO3NCQUQxQixZQUFZO3VCQUFDLGNBQWMsRUFBRSxDQUFDLFFBQVEsQ0FBQzs7QUFXNUMsK0RBQStEO0FBQy9ELE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyxLQUFLLEVBQzVCLE1BQWlCLEVBQ2pCLFFBQXNDLEVBQ3RDLElBQVMsRUFDVCxFQUFlLEVBQ2YsTUFBcUIsRUFDdkIsRUFBRTtJQUVBLE1BQU0sSUFBSSxHQUFHLE1BQU0saUJBQWlCLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ3JELE1BQU0sVUFBVSxHQUFHLEVBQUUsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO0lBQzlDLE1BQU0sS0FBSyxHQUFHLFdBQVcsQ0FBQyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQzVDLE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUV2QyxPQUFPLElBQUksT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1FBQ3JCLE1BQU0sQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUU7WUFDMUIsSUFBSSxFQUFFO2dCQUNGLElBQUksRUFBRSxJQUFJO2dCQUNWLFFBQVEsRUFBRSxRQUFRO2dCQUNsQixNQUFNLEVBQUUsTUFBTTtnQkFDZCxVQUFVLEVBQUUsVUFBVTtnQkFDdEIsU0FBUyxFQUFFLEtBQUs7Z0JBQ2hCLEVBQUUsRUFBRSxVQUFVO2FBQ2pCO1lBQ0QsVUFBVSxFQUFFLENBQUMsYUFBYSxFQUFFLE1BQU0sR0FBRyxVQUFVLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLFdBQVcsSUFBSSxFQUFFLENBQUM7WUFDbEYsUUFBUSxFQUFFLEtBQUs7WUFDZixXQUFXLEVBQUUsS0FBSztTQUNyQixDQUFDO2FBQ0csV0FBVyxFQUFFO2FBQ2IsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ1gsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ1gsQ0FBQyxDQUFDLENBQUE7SUFDVixDQUFDLENBQWlCLENBQUM7QUFDdkIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBJbnB1dCwgSG9zdExpc3RlbmVyLCBUZW1wbGF0ZVJlZiwgVHlwZSwgVmlld0NvbnRhaW5lclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0RGlhbG9nLCBNYXREaWFsb2dSZWYgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgZ2V0UG9zaXRpb24gfSBmcm9tICcuL3V0aWxzJztcbmltcG9ydCB7IFBvcHVwT3B0aW9ucyB9IGZyb20gJy4uL3R5cGVzL3BvcHVwJztcbmltcG9ydCB7IFRvb2x0aXBDb21wb25lbnQsIGNhbGNUb29sdGlwQm91bmRzIH0gZnJvbSAnLi4vY29tcG9uZW50cy90b29sdGlwL3Rvb2x0aXAuY29tcG9uZW50JztcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbbmd4VG9vbHRpcF0sW25neC10b29sdGlwXScsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIE1hdERpYWxvZ1xuICAgIF0sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBUb29sdGlwRGlyZWN0aXZlIHtcblxuICAgIC8qKlxuICAgICAqL1xuICAgIEBJbnB1dChcIm5neFRvb2x0aXBcIilcbiAgICBASW5wdXQoXCJuZ3gtdG9vbHRpcFwiKSB0ZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PiB8IFR5cGU8YW55PjtcblxuICAgIC8qKlxuICAgICAqIENvbmZpZ3VyYXRpb24gZm9yIG9wZW5pbmcgdGhlIGFwcCBtZW51XG4gICAgICovXG4gICAgQElucHV0KFwibmd4VG9vbHRpcENvbmZpZ1wiKVxuICAgIEBJbnB1dChcIm5neC10b29sdGlwLWNvbmZpZ1wiKSBjb25maWc6IFBvcHVwT3B0aW9ucyA9IHt9O1xuXG4gICAgLyoqXG4gICAgICogQXJiaXRyYXJ5IGRhdGEgdG8gcGFzcyBpbnRvIHRoZSB0ZW1wbGF0ZVxuICAgICAqL1xuICAgIEBJbnB1dChcIm5neFRvb2x0aXBDb250ZXh0XCIpXG4gICAgQElucHV0KFwibmd4LXRvb2x0aXAtY29udGV4dFwiKSBkYXRhOiBhbnkgPSB7fTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGRpYWxvZzogTWF0RGlhbG9nLFxuICAgICAgICBwcml2YXRlIHZpZXdDb250YWluZXI6IFZpZXdDb250YWluZXJSZWZcbiAgICApIHtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICB9XG5cbiAgICBwcml2YXRlIGRpYWxvZ0luc3RhbmNlOiBNYXREaWFsb2dSZWY8YW55PjtcblxuICAgIC8vIE5lZWRzIHRvIGJlIHB1YmxpYyBzbyB3ZSBjYW4gbWFudWFsbHkgb3BlbiB0aGUgZGlhbG9nXG4gICAgQEhvc3RMaXN0ZW5lcigncG9pbnRlcmVudGVyJywgWyckZXZlbnQnXSlcbiAgICBwdWJsaWMgYXN5bmMgb25Qb2ludGVyRW50ZXIoZXZ0OiBQb2ludGVyRXZlbnQpIHtcbiAgICAgICAgLy8gSWYgdGhlIHRlbXBsYXRlIGlzIG5vdCBhIHRlbXBsYXRlIHJlZiwgZG8gbm90aGluZy5cbiAgICAgICAgaWYgKCEodGhpcy50ZW1wbGF0ZSBpbnN0YW5jZW9mIFRlbXBsYXRlUmVmKSlcbiAgICAgICAgICAgIHJldHVybjtcblxuICAgICAgICBjb25zdCBlbCA9IHRoaXMudmlld0NvbnRhaW5lci5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgIHRoaXMuZGlhbG9nSW5zdGFuY2UgPSBhd2FpdCBvcGVuVG9vbHRpcCh0aGlzLmRpYWxvZywgdGhpcy50ZW1wbGF0ZSwgdGhpcy5kYXRhLCBlbCwgdGhpcy5jb25maWcpO1xuICAgIH1cbn1cblxuLy8gSGVscGVyIHRvIG9wZW4gdGhlIGNvbnRleHQgbWVudSB3aXRob3V0IHVzaW5nIHRoZSBkaXJlY3RpdmUuXG5leHBvcnQgY29uc3Qgb3BlblRvb2x0aXAgPSBhc3luYyAoXG4gICAgZGlhbG9nOiBNYXREaWFsb2csXG4gICAgdGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4gfCBUeXBlPGFueT4sXG4gICAgZGF0YTogYW55LFxuICAgIGVsOiBIVE1MRWxlbWVudCxcbiAgICBjb25maWc/OiBQb3B1cE9wdGlvbnNcbikgPT4ge1xuXG4gICAgY29uc3QgcmVjdCA9IGF3YWl0IGNhbGNUb29sdGlwQm91bmRzKHRlbXBsYXRlLCBkYXRhKTtcbiAgICBjb25zdCBvd25lckNvcmRzID0gZWwuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgY29uc3QgY29yZHMgPSBnZXRQb3NpdGlvbihlbCwgY29uZmlnLCByZWN0KTtcbiAgICBjb25zdCBzcGVjaWZpY0lkID0gY3J5cHRvLnJhbmRvbVVVSUQoKTtcblxuICAgIHJldHVybiBuZXcgUHJvbWlzZShyZXMgPT4ge1xuICAgICAgICBkaWFsb2cub3BlbihUb29sdGlwQ29tcG9uZW50LCB7XG4gICAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICAgICAgZGF0YTogZGF0YSxcbiAgICAgICAgICAgICAgICB0ZW1wbGF0ZTogdGVtcGxhdGUsXG4gICAgICAgICAgICAgICAgY29uZmlnOiBjb25maWcsXG4gICAgICAgICAgICAgICAgb3duZXJDb3Jkczogb3duZXJDb3JkcyxcbiAgICAgICAgICAgICAgICBzZWxmQ29yZHM6IGNvcmRzLFxuICAgICAgICAgICAgICAgIGlkOiBzcGVjaWZpY0lkXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcGFuZWxDbGFzczogW1wibmd4LXRvb2x0aXBcIiwgJ25neC0nICsgc3BlY2lmaWNJZF0uY29uY2F0KGNvbmZpZz8uY3VzdG9tQ2xhc3MgfHwgW10pLFxuICAgICAgICAgICAgcG9zaXRpb246IGNvcmRzLFxuICAgICAgICAgICAgaGFzQmFja2Ryb3A6IGZhbHNlXG4gICAgICAgIH0pXG4gICAgICAgICAgICAuYWZ0ZXJDbG9zZWQoKVxuICAgICAgICAgICAgLnN1YnNjcmliZShzID0+IHtcbiAgICAgICAgICAgICAgICByZXMocyk7XG4gICAgICAgICAgICB9KVxuICAgIH0pIGFzIFByb21pc2U8YW55Pjtcbn07XG4iXX0=
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This utils file exists outside of the strict angular DI zone
|
|
3
|
+
* This enables opening popups without requiring absolute DI bindings.
|
|
4
|
+
*/
|
|
5
|
+
export const getPosition = (el, config = {}, bounds) => {
|
|
6
|
+
// Bounds of the popup owner
|
|
7
|
+
const src = !!el['nodeName']
|
|
8
|
+
? el.getBoundingClientRect()
|
|
9
|
+
: {
|
|
10
|
+
// It's a pointer event, so we'll take the X and Y from the pointer.
|
|
11
|
+
x: el['clientX'],
|
|
12
|
+
y: el['clientY'],
|
|
13
|
+
// Set a default tiny size, so we don't divide by zero.
|
|
14
|
+
width: 0.0001,
|
|
15
|
+
height: 0.0001
|
|
16
|
+
};
|
|
17
|
+
// Popup bounds
|
|
18
|
+
const { width, height } = bounds;
|
|
19
|
+
const winh = window.innerHeight;
|
|
20
|
+
const winw = window.innerWidth;
|
|
21
|
+
const cords = {
|
|
22
|
+
top: null,
|
|
23
|
+
left: null
|
|
24
|
+
};
|
|
25
|
+
if (config?.position == "left" || config?.position == "right" || !config?.position) {
|
|
26
|
+
switch (config?.alignment) {
|
|
27
|
+
case "end": {
|
|
28
|
+
// vertically bind to bottom
|
|
29
|
+
cords.top = src.y + src.height - height;
|
|
30
|
+
break;
|
|
31
|
+
}
|
|
32
|
+
case "afterend": {
|
|
33
|
+
// vertically bind below bottom
|
|
34
|
+
cords.top = src.y + src.height;
|
|
35
|
+
break;
|
|
36
|
+
}
|
|
37
|
+
case "beforestart": {
|
|
38
|
+
// vertically bind above top
|
|
39
|
+
cords.top = src.y - height;
|
|
40
|
+
break;
|
|
41
|
+
}
|
|
42
|
+
case "start": {
|
|
43
|
+
// vertically bind to top
|
|
44
|
+
cords.top = src.y;
|
|
45
|
+
break;
|
|
46
|
+
}
|
|
47
|
+
case "center":
|
|
48
|
+
default: {
|
|
49
|
+
// vertically center
|
|
50
|
+
cords.top = (src.y + (src.height / 2)) - (height / 2);
|
|
51
|
+
break;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
// Apply bounds to prevent the dialog from being cut-off screen
|
|
55
|
+
// Lower bound
|
|
56
|
+
cords.top = Math.max(config?.edgePadding || 0, cords.top);
|
|
57
|
+
// Upper bound
|
|
58
|
+
cords.top = Math.min(winh - height, cords.top);
|
|
59
|
+
if (config?.position == "left") {
|
|
60
|
+
cords.left = src.x - (width + (config?.arrowSize || 0) + (config?.arrowPadding || 0));
|
|
61
|
+
}
|
|
62
|
+
if (config?.position == "right" || !config?.position) {
|
|
63
|
+
cords.left = src.x + (src.width + (config?.arrowSize || 0) + (config?.arrowPadding || 0));
|
|
64
|
+
}
|
|
65
|
+
// Lower bound
|
|
66
|
+
cords.left = Math.max(config?.edgePadding || 0, cords.left);
|
|
67
|
+
// Upper bound
|
|
68
|
+
cords.left = Math.min(winw - width, cords.left);
|
|
69
|
+
}
|
|
70
|
+
else if (config?.position == "top" || config?.position == "bottom") {
|
|
71
|
+
switch (config?.alignment) {
|
|
72
|
+
case "end": {
|
|
73
|
+
// vertically bind to right
|
|
74
|
+
cords.left = src.x + src.width - width;
|
|
75
|
+
break;
|
|
76
|
+
}
|
|
77
|
+
case "afterend": {
|
|
78
|
+
// vertically bind past right
|
|
79
|
+
cords.left = src.x + src.width;
|
|
80
|
+
break;
|
|
81
|
+
}
|
|
82
|
+
case "beforestart": {
|
|
83
|
+
// vertically bind before left
|
|
84
|
+
cords.left = src.x - width;
|
|
85
|
+
break;
|
|
86
|
+
}
|
|
87
|
+
case "start": {
|
|
88
|
+
// vertically bind to left
|
|
89
|
+
cords.left = src.x;
|
|
90
|
+
break;
|
|
91
|
+
}
|
|
92
|
+
case "center":
|
|
93
|
+
default: {
|
|
94
|
+
// vertically center
|
|
95
|
+
cords.left = (src.x + (src.width / 2)) - (width / 2);
|
|
96
|
+
break;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
// Apply bounds to prevent the dialog from being cut-off screen
|
|
100
|
+
// Lower bound
|
|
101
|
+
cords.left = Math.max(config?.edgePadding || 0, cords.left);
|
|
102
|
+
// Upper bound
|
|
103
|
+
cords.left = Math.min(winw - width, cords.left);
|
|
104
|
+
if (config?.position == "top") {
|
|
105
|
+
cords.top = src.y - (height + (config?.arrowSize || 0) + (config?.arrowPadding || 0));
|
|
106
|
+
}
|
|
107
|
+
if (config?.position == "bottom") {
|
|
108
|
+
cords.top = src.y + (src.height + (config?.arrowSize || 0) + (config?.arrowPadding || 0));
|
|
109
|
+
}
|
|
110
|
+
// Lower bound
|
|
111
|
+
cords.top = Math.max(config?.edgePadding || 0, cords.top);
|
|
112
|
+
// Upper bound
|
|
113
|
+
cords.top = Math.min(winh - height, cords.top);
|
|
114
|
+
}
|
|
115
|
+
// Assign unit
|
|
116
|
+
cords.top = cords.top + 'px';
|
|
117
|
+
cords.left = cords.left + 'px';
|
|
118
|
+
return cords;
|
|
119
|
+
};
|
|
120
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21tb24vc3JjL2RpcmVjdGl2ZXMvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7OztHQUdHO0FBRUgsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLENBQUMsRUFBOEIsRUFBRSxTQUFjLEVBQUUsRUFBRSxNQUFlLEVBQUUsRUFBRTtJQUM3Riw0QkFBNEI7SUFDNUIsTUFBTSxHQUFHLEdBQVksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUM7UUFDekIsQ0FBQyxDQUFFLEVBQWtCLENBQUMscUJBQXFCLEVBQUU7UUFDN0MsQ0FBQyxDQUFDO1lBQ0Usb0VBQW9FO1lBQ3BFLENBQUMsRUFBRSxFQUFFLENBQUMsU0FBUyxDQUFDO1lBQ2hCLENBQUMsRUFBRSxFQUFFLENBQUMsU0FBUyxDQUFDO1lBQ2hCLHVEQUF1RDtZQUN2RCxLQUFLLEVBQUUsTUFBTTtZQUNiLE1BQU0sRUFBRSxNQUFNO1NBQ04sQ0FBQztJQUV6QixlQUFlO0lBQ2YsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsR0FBRyxNQUFNLENBQUM7SUFFakMsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQztJQUNoQyxNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDO0lBRS9CLE1BQU0sS0FBSyxHQUFHO1FBQ1YsR0FBRyxFQUFFLElBQUk7UUFDVCxJQUFJLEVBQUUsSUFBSTtLQUNiLENBQUM7SUFFRixJQUFJLE1BQU0sRUFBRSxRQUFRLElBQUksTUFBTSxJQUFJLE1BQU0sRUFBRSxRQUFRLElBQUksT0FBTyxJQUFJLENBQUMsTUFBTSxFQUFFLFFBQVEsRUFBRTtRQUNoRixRQUFRLE1BQU0sRUFBRSxTQUFTLEVBQUU7WUFFdkIsS0FBSyxLQUFLLENBQUMsQ0FBQztnQkFDUiw0QkFBNEI7Z0JBQzVCLEtBQUssQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztnQkFDeEMsTUFBTTthQUNUO1lBQ0QsS0FBSyxVQUFVLENBQUMsQ0FBQztnQkFDYiwrQkFBK0I7Z0JBQy9CLEtBQUssQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDO2dCQUMvQixNQUFNO2FBQ1Q7WUFDRCxLQUFLLGFBQWEsQ0FBQyxDQUFDO2dCQUNoQiw0QkFBNEI7Z0JBQzVCLEtBQUssQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUM7Z0JBQzNCLE1BQU07YUFDVDtZQUNELEtBQUssT0FBTyxDQUFDLENBQUM7Z0JBQ1YseUJBQXlCO2dCQUN6QixLQUFLLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUM7Z0JBQ2xCLE1BQU07YUFDVDtZQUNELEtBQUssUUFBUSxDQUFDO1lBQ2QsT0FBTyxDQUFDLENBQUM7Z0JBQ0wsb0JBQW9CO2dCQUNwQixLQUFLLENBQUMsR0FBRyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztnQkFDdEQsTUFBTTthQUNUO1NBQ0o7UUFFRCwrREFBK0Q7UUFDL0QsY0FBYztRQUNkLEtBQUssQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsV0FBVyxJQUFJLENBQUMsRUFBRSxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDMUQsY0FBYztRQUNkLEtBQUssQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEdBQUcsTUFBTSxFQUFFLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUUvQyxJQUFJLE1BQU0sRUFBRSxRQUFRLElBQUksTUFBTSxFQUFFO1lBQzVCLEtBQUssQ0FBQyxJQUFJLEdBQUcsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLEtBQUssR0FBRyxDQUFDLE1BQU0sRUFBRSxTQUFTLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsWUFBWSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDekY7UUFDRCxJQUFJLE1BQU0sRUFBRSxRQUFRLElBQUksT0FBTyxJQUFJLENBQUMsTUFBTSxFQUFFLFFBQVEsRUFBRTtZQUNsRCxLQUFLLENBQUMsSUFBSSxHQUFHLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsS0FBSyxHQUFHLENBQUMsTUFBTSxFQUFFLFNBQVMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxZQUFZLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUM3RjtRQUVELGNBQWM7UUFDZCxLQUFLLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLFdBQVcsSUFBSSxDQUFDLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzVELGNBQWM7UUFDZCxLQUFLLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxHQUFHLEtBQUssRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7S0FDbkQ7U0FDSSxJQUFJLE1BQU0sRUFBRSxRQUFRLElBQUksS0FBSyxJQUFJLE1BQU0sRUFBRSxRQUFRLElBQUksUUFBUSxFQUFFO1FBQ2hFLFFBQVEsTUFBTSxFQUFFLFNBQVMsRUFBRTtZQUN2QixLQUFLLEtBQUssQ0FBQyxDQUFDO2dCQUNSLDJCQUEyQjtnQkFDM0IsS0FBSyxDQUFDLElBQUksR0FBRyxHQUFHLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO2dCQUN2QyxNQUFNO2FBQ1Q7WUFDRCxLQUFLLFVBQVUsQ0FBQyxDQUFDO2dCQUNiLDZCQUE2QjtnQkFDN0IsS0FBSyxDQUFDLElBQUksR0FBRyxHQUFHLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUM7Z0JBQy9CLE1BQU07YUFDVDtZQUNELEtBQUssYUFBYSxDQUFDLENBQUM7Z0JBQ2hCLDhCQUE4QjtnQkFDOUIsS0FBSyxDQUFDLElBQUksR0FBRyxHQUFHLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQztnQkFDM0IsTUFBTTthQUNUO1lBQ0QsS0FBSyxPQUFPLENBQUMsQ0FBQztnQkFDViwwQkFBMEI7Z0JBQzFCLEtBQUssQ0FBQyxJQUFJLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQztnQkFDbkIsTUFBTTthQUNUO1lBQ0QsS0FBSyxRQUFRLENBQUM7WUFDZCxPQUFPLENBQUMsQ0FBQztnQkFDTCxvQkFBb0I7Z0JBQ3BCLEtBQUssQ0FBQyxJQUFJLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDO2dCQUNyRCxNQUFNO2FBQ1Q7U0FDSjtRQUVELCtEQUErRDtRQUMvRCxjQUFjO1FBQ2QsS0FBSyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxXQUFXLElBQUksQ0FBQyxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM1RCxjQUFjO1FBQ2QsS0FBSyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksR0FBRyxLQUFLLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBR2hELElBQUksTUFBTSxFQUFFLFFBQVEsSUFBSSxLQUFLLEVBQUU7WUFDM0IsS0FBSyxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxHQUFHLENBQUMsTUFBTSxFQUFFLFNBQVMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxZQUFZLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUN6RjtRQUNELElBQUksTUFBTSxFQUFFLFFBQVEsSUFBSSxRQUFRLEVBQUU7WUFDOUIsS0FBSyxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxDQUFDLE1BQU0sRUFBRSxTQUFTLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsWUFBWSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDN0Y7UUFFRCxjQUFjO1FBQ2QsS0FBSyxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxXQUFXLElBQUksQ0FBQyxFQUFFLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUMxRCxjQUFjO1FBQ2QsS0FBSyxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksR0FBRyxNQUFNLEVBQUUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0tBQ2xEO0lBRUQsY0FBYztJQUNkLEtBQUssQ0FBQyxHQUFHLEdBQUcsS0FBSyxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUM7SUFDN0IsS0FBSyxDQUFDLElBQUksR0FBRyxLQUFLLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztJQUUvQixPQUFPLEtBQUssQ0FBQztBQUNqQixDQUFDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFRoaXMgdXRpbHMgZmlsZSBleGlzdHMgb3V0c2lkZSBvZiB0aGUgc3RyaWN0IGFuZ3VsYXIgREkgem9uZVxuICogVGhpcyBlbmFibGVzIG9wZW5pbmcgcG9wdXBzIHdpdGhvdXQgcmVxdWlyaW5nIGFic29sdXRlIERJIGJpbmRpbmdzLlxuICovXG5cbmV4cG9ydCBjb25zdCBnZXRQb3NpdGlvbiA9IChlbDogSFRNTEVsZW1lbnQgfCBQb2ludGVyRXZlbnQsIGNvbmZpZzogYW55ID0ge30sIGJvdW5kczogRE9NUmVjdCkgPT4ge1xuICAgIC8vIEJvdW5kcyBvZiB0aGUgcG9wdXAgb3duZXJcbiAgICBjb25zdCBzcmM6IERPTVJlY3QgPSAhIWVsWydub2RlTmFtZSddXG4gICAgICAgICAgICAgICAgPyAoZWwgYXMgSFRNTEVsZW1lbnQpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpXG4gICAgICAgICAgICAgICAgOiB7XG4gICAgICAgICAgICAgICAgICAgIC8vIEl0J3MgYSBwb2ludGVyIGV2ZW50LCBzbyB3ZSdsbCB0YWtlIHRoZSBYIGFuZCBZIGZyb20gdGhlIHBvaW50ZXIuXG4gICAgICAgICAgICAgICAgICAgIHg6IGVsWydjbGllbnRYJ10sXG4gICAgICAgICAgICAgICAgICAgIHk6IGVsWydjbGllbnRZJ10sXG4gICAgICAgICAgICAgICAgICAgIC8vIFNldCBhIGRlZmF1bHQgdGlueSBzaXplLCBzbyB3ZSBkb24ndCBkaXZpZGUgYnkgemVyby5cbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDAuMDAwMSxcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjAwMDFcbiAgICAgICAgICAgICAgICB9IGFzIERPTVJlY3Q7XG5cbiAgICAvLyBQb3B1cCBib3VuZHNcbiAgICBjb25zdCB7IHdpZHRoLCBoZWlnaHQgfSA9IGJvdW5kcztcblxuICAgIGNvbnN0IHdpbmggPSB3aW5kb3cuaW5uZXJIZWlnaHQ7XG4gICAgY29uc3Qgd2ludyA9IHdpbmRvdy5pbm5lcldpZHRoO1xuXG4gICAgY29uc3QgY29yZHMgPSB7XG4gICAgICAgIHRvcDogbnVsbCxcbiAgICAgICAgbGVmdDogbnVsbFxuICAgIH07XG5cbiAgICBpZiAoY29uZmlnPy5wb3NpdGlvbiA9PSBcImxlZnRcIiB8fCBjb25maWc/LnBvc2l0aW9uID09IFwicmlnaHRcIiB8fCAhY29uZmlnPy5wb3NpdGlvbikge1xuICAgICAgICBzd2l0Y2ggKGNvbmZpZz8uYWxpZ25tZW50KSB7XG5cbiAgICAgICAgICAgIGNhc2UgXCJlbmRcIjoge1xuICAgICAgICAgICAgICAgIC8vIHZlcnRpY2FsbHkgYmluZCB0byBib3R0b21cbiAgICAgICAgICAgICAgICBjb3Jkcy50b3AgPSBzcmMueSArIHNyYy5oZWlnaHQgLSBoZWlnaHQ7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFwiYWZ0ZXJlbmRcIjoge1xuICAgICAgICAgICAgICAgIC8vIHZlcnRpY2FsbHkgYmluZCBiZWxvdyBib3R0b21cbiAgICAgICAgICAgICAgICBjb3Jkcy50b3AgPSBzcmMueSArIHNyYy5oZWlnaHQ7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFwiYmVmb3Jlc3RhcnRcIjoge1xuICAgICAgICAgICAgICAgIC8vIHZlcnRpY2FsbHkgYmluZCBhYm92ZSB0b3BcbiAgICAgICAgICAgICAgICBjb3Jkcy50b3AgPSBzcmMueSAtIGhlaWdodDtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgXCJzdGFydFwiOiB7XG4gICAgICAgICAgICAgICAgLy8gdmVydGljYWxseSBiaW5kIHRvIHRvcFxuICAgICAgICAgICAgICAgIGNvcmRzLnRvcCA9IHNyYy55O1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBcImNlbnRlclwiOlxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIC8vIHZlcnRpY2FsbHkgY2VudGVyXG4gICAgICAgICAgICAgICAgY29yZHMudG9wID0gKHNyYy55ICsgKHNyYy5oZWlnaHQgLyAyKSkgLSAoaGVpZ2h0IC8gMik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyBBcHBseSBib3VuZHMgdG8gcHJldmVudCB0aGUgZGlhbG9nIGZyb20gYmVpbmcgY3V0LW9mZiBzY3JlZW5cbiAgICAgICAgLy8gTG93ZXIgYm91bmRcbiAgICAgICAgY29yZHMudG9wID0gTWF0aC5tYXgoY29uZmlnPy5lZGdlUGFkZGluZyB8fCAwLCBjb3Jkcy50b3ApO1xuICAgICAgICAvLyBVcHBlciBib3VuZFxuICAgICAgICBjb3Jkcy50b3AgPSBNYXRoLm1pbih3aW5oIC0gaGVpZ2h0LCBjb3Jkcy50b3ApO1xuXG4gICAgICAgIGlmIChjb25maWc/LnBvc2l0aW9uID09IFwibGVmdFwiKSB7XG4gICAgICAgICAgICBjb3Jkcy5sZWZ0ID0gc3JjLnggLSAod2lkdGggKyAoY29uZmlnPy5hcnJvd1NpemUgfHwgMCkgKyAoY29uZmlnPy5hcnJvd1BhZGRpbmcgfHwgMCkpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChjb25maWc/LnBvc2l0aW9uID09IFwicmlnaHRcIiB8fCAhY29uZmlnPy5wb3NpdGlvbikge1xuICAgICAgICAgICAgY29yZHMubGVmdCA9IHNyYy54ICsgKHNyYy53aWR0aCArIChjb25maWc/LmFycm93U2l6ZSB8fCAwKSArIChjb25maWc/LmFycm93UGFkZGluZyB8fCAwKSk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBMb3dlciBib3VuZFxuICAgICAgICBjb3Jkcy5sZWZ0ID0gTWF0aC5tYXgoY29uZmlnPy5lZGdlUGFkZGluZyB8fCAwLCBjb3Jkcy5sZWZ0KTtcbiAgICAgICAgLy8gVXBwZXIgYm91bmRcbiAgICAgICAgY29yZHMubGVmdCA9IE1hdGgubWluKHdpbncgLSB3aWR0aCwgY29yZHMubGVmdCk7XG4gICAgfVxuICAgIGVsc2UgaWYgKGNvbmZpZz8ucG9zaXRpb24gPT0gXCJ0b3BcIiB8fCBjb25maWc/LnBvc2l0aW9uID09IFwiYm90dG9tXCIpIHtcbiAgICAgICAgc3dpdGNoIChjb25maWc/LmFsaWdubWVudCkge1xuICAgICAgICAgICAgY2FzZSBcImVuZFwiOiB7XG4gICAgICAgICAgICAgICAgLy8gdmVydGljYWxseSBiaW5kIHRvIHJpZ2h0XG4gICAgICAgICAgICAgICAgY29yZHMubGVmdCA9IHNyYy54ICsgc3JjLndpZHRoIC0gd2lkdGg7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFwiYWZ0ZXJlbmRcIjoge1xuICAgICAgICAgICAgICAgIC8vIHZlcnRpY2FsbHkgYmluZCBwYXN0IHJpZ2h0XG4gICAgICAgICAgICAgICAgY29yZHMubGVmdCA9IHNyYy54ICsgc3JjLndpZHRoO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBcImJlZm9yZXN0YXJ0XCI6IHtcbiAgICAgICAgICAgICAgICAvLyB2ZXJ0aWNhbGx5IGJpbmQgYmVmb3JlIGxlZnRcbiAgICAgICAgICAgICAgICBjb3Jkcy5sZWZ0ID0gc3JjLnggLSB3aWR0aDtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgXCJzdGFydFwiOiB7XG4gICAgICAgICAgICAgICAgLy8gdmVydGljYWxseSBiaW5kIHRvIGxlZnRcbiAgICAgICAgICAgICAgICBjb3Jkcy5sZWZ0ID0gc3JjLng7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFwiY2VudGVyXCI6XG4gICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgLy8gdmVydGljYWxseSBjZW50ZXJcbiAgICAgICAgICAgICAgICBjb3Jkcy5sZWZ0ID0gKHNyYy54ICsgKHNyYy53aWR0aCAvIDIpKSAtICh3aWR0aCAvIDIpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gQXBwbHkgYm91bmRzIHRvIHByZXZlbnQgdGhlIGRpYWxvZyBmcm9tIGJlaW5nIGN1dC1vZmYgc2NyZWVuXG4gICAgICAgIC8vIExvd2VyIGJvdW5kXG4gICAgICAgIGNvcmRzLmxlZnQgPSBNYXRoLm1heChjb25maWc/LmVkZ2VQYWRkaW5nIHx8IDAsIGNvcmRzLmxlZnQpO1xuICAgICAgICAvLyBVcHBlciBib3VuZFxuICAgICAgICBjb3Jkcy5sZWZ0ID0gTWF0aC5taW4od2ludyAtIHdpZHRoLCBjb3Jkcy5sZWZ0KTtcblxuXG4gICAgICAgIGlmIChjb25maWc/LnBvc2l0aW9uID09IFwidG9wXCIpIHtcbiAgICAgICAgICAgIGNvcmRzLnRvcCA9IHNyYy55IC0gKGhlaWdodCArIChjb25maWc/LmFycm93U2l6ZSB8fCAwKSArIChjb25maWc/LmFycm93UGFkZGluZyB8fCAwKSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGNvbmZpZz8ucG9zaXRpb24gPT0gXCJib3R0b21cIikge1xuICAgICAgICAgICAgY29yZHMudG9wID0gc3JjLnkgKyAoc3JjLmhlaWdodCArIChjb25maWc/LmFycm93U2l6ZSB8fCAwKSArIChjb25maWc/LmFycm93UGFkZGluZyB8fCAwKSk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBMb3dlciBib3VuZFxuICAgICAgICBjb3Jkcy50b3AgPSBNYXRoLm1heChjb25maWc/LmVkZ2VQYWRkaW5nIHx8IDAsIGNvcmRzLnRvcCk7XG4gICAgICAgIC8vIFVwcGVyIGJvdW5kXG4gICAgICAgIGNvcmRzLnRvcCA9IE1hdGgubWluKHdpbmggLSBoZWlnaHQsIGNvcmRzLnRvcCk7XG4gICAgfVxuXG4gICAgLy8gQXNzaWduIHVuaXRcbiAgICBjb3Jkcy50b3AgPSBjb3Jkcy50b3AgKyAncHgnO1xuICAgIGNvcmRzLmxlZnQgPSBjb3Jkcy5sZWZ0ICsgJ3B4JztcblxuICAgIHJldHVybiBjb3Jkcztcbn1cbiJdfQ==
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './public-api';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG90Z2xpdGNoLW5neC1jb21tb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9wYWNrYWdlcy9jb21tb24vc3JjL2RvdGdsaXRjaC1uZ3gtY29tbW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vcHVibGljLWFwaSc7XG4iXX0=
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { Pipe } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "@angular/platform-browser";
|
|
4
|
+
/**
|
|
5
|
+
* Url Sanitizer pipe.
|
|
6
|
+
*
|
|
7
|
+
* This trusts URLs that exist in a safe list defined in our environments.ts file.
|
|
8
|
+
* Any other URLs will NOT be trusted, thus will not be loaded.
|
|
9
|
+
*/
|
|
10
|
+
export class HtmlBypass {
|
|
11
|
+
constructor(sanitizer) {
|
|
12
|
+
this.sanitizer = sanitizer;
|
|
13
|
+
}
|
|
14
|
+
transform(url) {
|
|
15
|
+
return this.sanitizer.bypassSecurityTrustHtml(url);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
HtmlBypass.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: HtmlBypass, deps: [{ token: i1.DomSanitizer }], target: i0.ɵɵFactoryTarget.Pipe });
|
|
19
|
+
HtmlBypass.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: HtmlBypass, isStandalone: true, name: "htmlbypass" });
|
|
20
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: HtmlBypass, decorators: [{
|
|
21
|
+
type: Pipe,
|
|
22
|
+
args: [{
|
|
23
|
+
name: 'htmlbypass',
|
|
24
|
+
standalone: true
|
|
25
|
+
}]
|
|
26
|
+
}], ctorParameters: function () { return [{ type: i1.DomSanitizer }]; } });
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHRtbC1ieXBhc3MucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbW1vbi9zcmMvcGlwZXMvaHRtbC1ieXBhc3MucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFrQyxNQUFNLGVBQWUsQ0FBQzs7O0FBR3JFOzs7OztHQUtHO0FBS0gsTUFBTSxPQUFPLFVBQVU7SUFFbkIsWUFBb0IsU0FBdUI7UUFBdkIsY0FBUyxHQUFULFNBQVMsQ0FBYztJQUFJLENBQUM7SUFFekMsU0FBUyxDQUFDLEdBQVc7UUFDeEIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLHVCQUF1QixDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7O3VHQU5RLFVBQVU7cUdBQVYsVUFBVTsyRkFBVixVQUFVO2tCQUp0QixJQUFJO21CQUFDO29CQUNGLElBQUksRUFBRSxZQUFZO29CQUNsQixVQUFVLEVBQUUsSUFBSTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtLCBTZWN1cml0eUNvbnRleHQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERvbVNhbml0aXplciwgU2FmZVVybCB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuXG4vKipcbiAqIFVybCBTYW5pdGl6ZXIgcGlwZS5cbiAqXG4gKiBUaGlzIHRydXN0cyBVUkxzIHRoYXQgZXhpc3QgaW4gYSBzYWZlIGxpc3QgZGVmaW5lZCBpbiBvdXIgZW52aXJvbm1lbnRzLnRzIGZpbGUuXG4gKiBBbnkgb3RoZXIgVVJMcyB3aWxsIE5PVCBiZSB0cnVzdGVkLCB0aHVzIHdpbGwgbm90IGJlIGxvYWRlZC5cbiAqL1xuQFBpcGUoe1xuICAgIG5hbWU6ICdodG1sYnlwYXNzJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIEh0bWxCeXBhc3MgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgc2FuaXRpemVyOiBEb21TYW5pdGl6ZXIpIHsgfVxuXG4gICAgcHVibGljIHRyYW5zZm9ybSh1cmw6IHN0cmluZyk6IFNhZmVVcmwge1xuICAgICAgICByZXR1cm4gdGhpcy5zYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdEh0bWwodXJsKTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { Pipe } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "@angular/platform-browser";
|
|
4
|
+
/**
|
|
5
|
+
* Url Sanitizer pipe.
|
|
6
|
+
*
|
|
7
|
+
* This trusts URLs that exist in a safe list defined in our environments.ts file.
|
|
8
|
+
* Any other URLs will NOT be trusted, thus will not be loaded.
|
|
9
|
+
*/
|
|
10
|
+
export class ResourceBypass {
|
|
11
|
+
constructor(sanitizer) {
|
|
12
|
+
this.sanitizer = sanitizer;
|
|
13
|
+
}
|
|
14
|
+
transform(url) {
|
|
15
|
+
return this.sanitizer.bypassSecurityTrustResourceUrl(url);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
ResourceBypass.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ResourceBypass, deps: [{ token: i1.DomSanitizer }], target: i0.ɵɵFactoryTarget.Pipe });
|
|
19
|
+
ResourceBypass.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: ResourceBypass, isStandalone: true, name: "resourcebypass" });
|
|
20
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ResourceBypass, decorators: [{
|
|
21
|
+
type: Pipe,
|
|
22
|
+
args: [{
|
|
23
|
+
name: 'resourcebypass',
|
|
24
|
+
standalone: true
|
|
25
|
+
}]
|
|
26
|
+
}], ctorParameters: function () { return [{ type: i1.DomSanitizer }]; } });
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb3VyY2UtYnlwYXNzLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21tb24vc3JjL3BpcGVzL3Jlc291cmNlLWJ5cGFzcy5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQWtDLE1BQU0sZUFBZSxDQUFDOzs7QUFHckU7Ozs7O0dBS0c7QUFLSCxNQUFNLE9BQU8sY0FBYztJQUV2QixZQUFvQixTQUF1QjtRQUF2QixjQUFTLEdBQVQsU0FBUyxDQUFjO0lBQUksQ0FBQztJQUV6QyxTQUFTLENBQUMsR0FBVztRQUN4QixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsOEJBQThCLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDOUQsQ0FBQzs7MkdBTlEsY0FBYzt5R0FBZCxjQUFjOzJGQUFkLGNBQWM7a0JBSjFCLElBQUk7bUJBQUM7b0JBQ0YsSUFBSSxFQUFFLGdCQUFnQjtvQkFDdEIsVUFBVSxFQUFFLElBQUk7aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSwgU2VjdXJpdHlDb250ZXh0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEb21TYW5pdGl6ZXIsIFNhZmVVcmwgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcblxuLyoqXG4gKiBVcmwgU2FuaXRpemVyIHBpcGUuXG4gKlxuICogVGhpcyB0cnVzdHMgVVJMcyB0aGF0IGV4aXN0IGluIGEgc2FmZSBsaXN0IGRlZmluZWQgaW4gb3VyIGVudmlyb25tZW50cy50cyBmaWxlLlxuICogQW55IG90aGVyIFVSTHMgd2lsbCBOT1QgYmUgdHJ1c3RlZCwgdGh1cyB3aWxsIG5vdCBiZSBsb2FkZWQuXG4gKi9cbkBQaXBlKHtcbiAgICBuYW1lOiAncmVzb3VyY2VieXBhc3MnLFxuICAgIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgUmVzb3VyY2VCeXBhc3MgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgc2FuaXRpemVyOiBEb21TYW5pdGl6ZXIpIHsgfVxuXG4gICAgcHVibGljIHRyYW5zZm9ybSh1cmw6IHN0cmluZyk6IFNhZmVVcmwge1xuICAgICAgICByZXR1cm4gdGhpcy5zYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdFJlc291cmNlVXJsKHVybCk7XG4gICAgfVxufVxuIl19
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { Pipe } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "@angular/platform-browser";
|
|
4
|
+
/**
|
|
5
|
+
* Url Sanitizer pipe.
|
|
6
|
+
*
|
|
7
|
+
* This trusts URLs that exist in a safe list defined in our environments.ts file.
|
|
8
|
+
* Any other URLs will NOT be trusted, thus will not be loaded.
|
|
9
|
+
*/
|
|
10
|
+
export class ScriptBypass {
|
|
11
|
+
constructor(sanitizer) {
|
|
12
|
+
this.sanitizer = sanitizer;
|
|
13
|
+
}
|
|
14
|
+
transform(url) {
|
|
15
|
+
return this.sanitizer.bypassSecurityTrustScript(url);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
ScriptBypass.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ScriptBypass, deps: [{ token: i1.DomSanitizer }], target: i0.ɵɵFactoryTarget.Pipe });
|
|
19
|
+
ScriptBypass.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: ScriptBypass, isStandalone: true, name: "scriptbypass" });
|
|
20
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ScriptBypass, decorators: [{
|
|
21
|
+
type: Pipe,
|
|
22
|
+
args: [{
|
|
23
|
+
name: 'scriptbypass',
|
|
24
|
+
standalone: true
|
|
25
|
+
}]
|
|
26
|
+
}], ctorParameters: function () { return [{ type: i1.DomSanitizer }]; } });
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NyaXB0LWJ5cGFzcy5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tbW9uL3NyYy9waXBlcy9zY3JpcHQtYnlwYXNzLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBa0MsTUFBTSxlQUFlLENBQUM7OztBQUdyRTs7Ozs7R0FLRztBQUtILE1BQU0sT0FBTyxZQUFZO0lBRXJCLFlBQW9CLFNBQXVCO1FBQXZCLGNBQVMsR0FBVCxTQUFTLENBQWM7SUFBSSxDQUFDO0lBRXpDLFNBQVMsQ0FBQyxHQUFXO1FBQ3hCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyx5QkFBeUIsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN6RCxDQUFDOzt5R0FOUSxZQUFZO3VHQUFaLFlBQVk7MkZBQVosWUFBWTtrQkFKeEIsSUFBSTttQkFBQztvQkFDRixJQUFJLEVBQUUsY0FBYztvQkFDcEIsVUFBVSxFQUFFLElBQUk7aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSwgU2VjdXJpdHlDb250ZXh0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEb21TYW5pdGl6ZXIsIFNhZmVVcmwgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcblxuLyoqXG4gKiBVcmwgU2FuaXRpemVyIHBpcGUuXG4gKlxuICogVGhpcyB0cnVzdHMgVVJMcyB0aGF0IGV4aXN0IGluIGEgc2FmZSBsaXN0IGRlZmluZWQgaW4gb3VyIGVudmlyb25tZW50cy50cyBmaWxlLlxuICogQW55IG90aGVyIFVSTHMgd2lsbCBOT1QgYmUgdHJ1c3RlZCwgdGh1cyB3aWxsIG5vdCBiZSBsb2FkZWQuXG4gKi9cbkBQaXBlKHtcbiAgICBuYW1lOiAnc2NyaXB0YnlwYXNzJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIFNjcmlwdEJ5cGFzcyBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBzYW5pdGl6ZXI6IERvbVNhbml0aXplcikgeyB9XG5cbiAgICBwdWJsaWMgdHJhbnNmb3JtKHVybDogc3RyaW5nKTogU2FmZVVybCB7XG4gICAgICAgIHJldHVybiB0aGlzLnNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0U2NyaXB0KHVybCk7XG4gICAgfVxufVxuIl19
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { Pipe } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "@angular/platform-browser";
|
|
4
|
+
/**
|
|
5
|
+
* Url Sanitizer pipe.
|
|
6
|
+
*
|
|
7
|
+
* This trusts URLs that exist in a safe list defined in our environments.ts file.
|
|
8
|
+
* Any other URLs will NOT be trusted, thus will not be loaded.
|
|
9
|
+
*/
|
|
10
|
+
export class StyleBypass {
|
|
11
|
+
constructor(sanitizer) {
|
|
12
|
+
this.sanitizer = sanitizer;
|
|
13
|
+
}
|
|
14
|
+
transform(url) {
|
|
15
|
+
return this.sanitizer.bypassSecurityTrustStyle(url);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
StyleBypass.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: StyleBypass, deps: [{ token: i1.DomSanitizer }], target: i0.ɵɵFactoryTarget.Pipe });
|
|
19
|
+
StyleBypass.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: StyleBypass, isStandalone: true, name: "stylebypass" });
|
|
20
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: StyleBypass, decorators: [{
|
|
21
|
+
type: Pipe,
|
|
22
|
+
args: [{
|
|
23
|
+
name: 'stylebypass',
|
|
24
|
+
standalone: true
|
|
25
|
+
}]
|
|
26
|
+
}], ctorParameters: function () { return [{ type: i1.DomSanitizer }]; } });
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3R5bGUtYnlwYXNzLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21tb24vc3JjL3BpcGVzL3N0eWxlLWJ5cGFzcy5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQWtDLE1BQU0sZUFBZSxDQUFDOzs7QUFHckU7Ozs7O0dBS0c7QUFLSCxNQUFNLE9BQU8sV0FBVztJQUVwQixZQUFvQixTQUF1QjtRQUF2QixjQUFTLEdBQVQsU0FBUyxDQUFjO0lBQUksQ0FBQztJQUV6QyxTQUFTLENBQUMsR0FBVztRQUN4QixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsd0JBQXdCLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDeEQsQ0FBQzs7d0dBTlEsV0FBVztzR0FBWCxXQUFXOzJGQUFYLFdBQVc7a0JBSnZCLElBQUk7bUJBQUM7b0JBQ0YsSUFBSSxFQUFFLGFBQWE7b0JBQ25CLFVBQVUsRUFBRSxJQUFJO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0sIFNlY3VyaXR5Q29udGV4dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRG9tU2FuaXRpemVyLCBTYWZlVXJsIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5cbi8qKlxuICogVXJsIFNhbml0aXplciBwaXBlLlxuICpcbiAqIFRoaXMgdHJ1c3RzIFVSTHMgdGhhdCBleGlzdCBpbiBhIHNhZmUgbGlzdCBkZWZpbmVkIGluIG91ciBlbnZpcm9ubWVudHMudHMgZmlsZS5cbiAqIEFueSBvdGhlciBVUkxzIHdpbGwgTk9UIGJlIHRydXN0ZWQsIHRodXMgd2lsbCBub3QgYmUgbG9hZGVkLlxuICovXG5AUGlwZSh7XG4gICAgbmFtZTogJ3N0eWxlYnlwYXNzJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIFN0eWxlQnlwYXNzIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHNhbml0aXplcjogRG9tU2FuaXRpemVyKSB7IH1cblxuICAgIHB1YmxpYyB0cmFuc2Zvcm0odXJsOiBzdHJpbmcpOiBTYWZlVXJsIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RTdHlsZSh1cmwpO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { Pipe } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "@angular/platform-browser";
|
|
4
|
+
/**
|
|
5
|
+
* Url Sanitizer pipe.
|
|
6
|
+
*
|
|
7
|
+
* This trusts URLs that exist in a safe list defined in our environments.ts file.
|
|
8
|
+
* Any other URLs will NOT be trusted, thus will not be loaded.
|
|
9
|
+
*/
|
|
10
|
+
export class UrlBypass {
|
|
11
|
+
constructor(sanitizer) {
|
|
12
|
+
this.sanitizer = sanitizer;
|
|
13
|
+
}
|
|
14
|
+
transform(url) {
|
|
15
|
+
return this.sanitizer.bypassSecurityTrustUrl(url);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
UrlBypass.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: UrlBypass, deps: [{ token: i1.DomSanitizer }], target: i0.ɵɵFactoryTarget.Pipe });
|
|
19
|
+
UrlBypass.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: UrlBypass, isStandalone: true, name: "urlbypass" });
|
|
20
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: UrlBypass, decorators: [{
|
|
21
|
+
type: Pipe,
|
|
22
|
+
args: [{
|
|
23
|
+
name: 'urlbypass',
|
|
24
|
+
standalone: true
|
|
25
|
+
}]
|
|
26
|
+
}], ctorParameters: function () { return [{ type: i1.DomSanitizer }]; } });
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXJsLWJ5cGFzcy5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tbW9uL3NyYy9waXBlcy91cmwtYnlwYXNzLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBa0MsTUFBTSxlQUFlLENBQUM7OztBQUdyRTs7Ozs7R0FLRztBQUtILE1BQU0sT0FBTyxTQUFTO0lBRWxCLFlBQW9CLFNBQXVCO1FBQXZCLGNBQVMsR0FBVCxTQUFTLENBQWM7SUFBSSxDQUFDO0lBRXpDLFNBQVMsQ0FBQyxHQUFXO1FBQ3hCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxzQkFBc0IsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN0RCxDQUFDOztzR0FOUSxTQUFTO29HQUFULFNBQVM7MkZBQVQsU0FBUztrQkFKckIsSUFBSTttQkFBQztvQkFDRixJQUFJLEVBQUUsV0FBVztvQkFDakIsVUFBVSxFQUFFLElBQUk7aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSwgU2VjdXJpdHlDb250ZXh0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEb21TYW5pdGl6ZXIsIFNhZmVVcmwgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcblxuLyoqXG4gKiBVcmwgU2FuaXRpemVyIHBpcGUuXG4gKlxuICogVGhpcyB0cnVzdHMgVVJMcyB0aGF0IGV4aXN0IGluIGEgc2FmZSBsaXN0IGRlZmluZWQgaW4gb3VyIGVudmlyb25tZW50cy50cyBmaWxlLlxuICogQW55IG90aGVyIFVSTHMgd2lsbCBOT1QgYmUgdHJ1c3RlZCwgdGh1cyB3aWxsIG5vdCBiZSBsb2FkZWQuXG4gKi9cbkBQaXBlKHtcbiAgICBuYW1lOiAndXJsYnlwYXNzJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIFVybEJ5cGFzcyBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBzYW5pdGl6ZXI6IERvbVNhbml0aXplcikgeyB9XG5cbiAgICBwdWJsaWMgdHJhbnNmb3JtKHVybDogc3RyaW5nKTogU2FmZVVybCB7XG4gICAgICAgIHJldHVybiB0aGlzLnNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0VXJsKHVybCk7XG4gICAgfVxufVxuIl19
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Public API Surface of package
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
** Directives
|
|
6
|
+
*/
|
|
7
|
+
export * from './directives/tooltip.directive';
|
|
8
|
+
export * from './directives/menu.directive';
|
|
9
|
+
/**
|
|
10
|
+
** Pipes
|
|
11
|
+
*/
|
|
12
|
+
export * from './pipes/html-bypass.pipe';
|
|
13
|
+
export * from './pipes/resource-bypass.pipe';
|
|
14
|
+
export * from './pipes/script-bypass.pipe';
|
|
15
|
+
export * from './pipes/style-bypass.pipe';
|
|
16
|
+
export * from './pipes/url-bypass.pipe';
|
|
17
|
+
/**
|
|
18
|
+
** Services
|
|
19
|
+
*/
|
|
20
|
+
export * from './services/dependency.service';
|
|
21
|
+
export * from './services/dialog.service';
|
|
22
|
+
export * from './services/fetch.service';
|
|
23
|
+
export * from './services/keyboard.service';
|
|
24
|
+
// export * from './services/serviceworker.service';
|
|
25
|
+
/**
|
|
26
|
+
** Lazy loader component & service
|
|
27
|
+
*/
|
|
28
|
+
export * from './components/lazy-loader/lazy-loader.service';
|
|
29
|
+
export * from './components/lazy-loader/lazy-loader.module';
|
|
30
|
+
export * from './components/lazy-loader/lazy-loader.component';
|
|
31
|
+
export * from './components/lazy-loader/types';
|
|
32
|
+
/**
|
|
33
|
+
** Services
|
|
34
|
+
*/
|
|
35
|
+
export * from './components/dynamic-html/dynamic-html.service';
|
|
36
|
+
export * from './components/dynamic-html/dynamic-html.module';
|
|
37
|
+
export * from './components/dynamic-html/dynamic-html.component';
|
|
38
|
+
export * from './components/dynamic-html/types';
|
|
39
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3BhY2thZ2VzL2NvbW1vbi9zcmMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVIOztHQUVHO0FBQ0gsY0FBYyxnQ0FBZ0MsQ0FBQztBQUMvQyxjQUFjLDZCQUE2QixDQUFDO0FBRTVDOztHQUVHO0FBQ0gsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLDhCQUE4QixDQUFDO0FBQzdDLGNBQWMsNEJBQTRCLENBQUM7QUFDM0MsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLHlCQUF5QixDQUFDO0FBRXhDOztFQUVFO0FBQ0YsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsMEJBQTBCLENBQUM7QUFDekMsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxvREFBb0Q7QUFFcEQ7O0VBRUU7QUFDRixjQUFjLDhDQUE4QyxDQUFDO0FBQzdELGNBQWMsNkNBQTZDLENBQUM7QUFDNUQsY0FBYyxnREFBZ0QsQ0FBQztBQUMvRCxjQUFjLGdDQUFnQyxDQUFDO0FBRS9DOztFQUVFO0FBQ0YsY0FBYyxnREFBZ0QsQ0FBQztBQUMvRCxjQUFjLCtDQUErQyxDQUFDO0FBQzlELGNBQWMsa0RBQWtELENBQUM7QUFDakUsY0FBYyxpQ0FBaUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2YgcGFja2FnZVxuICovXG5cbi8qKlxuICoqIERpcmVjdGl2ZXNcbiAqL1xuZXhwb3J0ICogZnJvbSAnLi9kaXJlY3RpdmVzL3Rvb2x0aXAuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vZGlyZWN0aXZlcy9tZW51LmRpcmVjdGl2ZSc7XG5cbi8qKlxuICoqIFBpcGVzXG4gKi9cbmV4cG9ydCAqIGZyb20gJy4vcGlwZXMvaHRtbC1ieXBhc3MucGlwZSc7XG5leHBvcnQgKiBmcm9tICcuL3BpcGVzL3Jlc291cmNlLWJ5cGFzcy5waXBlJztcbmV4cG9ydCAqIGZyb20gJy4vcGlwZXMvc2NyaXB0LWJ5cGFzcy5waXBlJztcbmV4cG9ydCAqIGZyb20gJy4vcGlwZXMvc3R5bGUtYnlwYXNzLnBpcGUnO1xuZXhwb3J0ICogZnJvbSAnLi9waXBlcy91cmwtYnlwYXNzLnBpcGUnO1xuXG4vKipcbioqIFNlcnZpY2VzXG4qL1xuZXhwb3J0ICogZnJvbSAnLi9zZXJ2aWNlcy9kZXBlbmRlbmN5LnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9zZXJ2aWNlcy9kaWFsb2cuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL3NlcnZpY2VzL2ZldGNoLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9zZXJ2aWNlcy9rZXlib2FyZC5zZXJ2aWNlJztcbi8vIGV4cG9ydCAqIGZyb20gJy4vc2VydmljZXMvc2VydmljZXdvcmtlci5zZXJ2aWNlJztcblxuLyoqXG4qKiBMYXp5IGxvYWRlciBjb21wb25lbnQgJiBzZXJ2aWNlXG4qL1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL2xhenktbG9hZGVyL2xhenktbG9hZGVyLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL2xhenktbG9hZGVyL2xhenktbG9hZGVyLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvbGF6eS1sb2FkZXIvbGF6eS1sb2FkZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9sYXp5LWxvYWRlci90eXBlcyc7XG5cbi8qKlxuKiogU2VydmljZXNcbiovXG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvZHluYW1pYy1odG1sL2R5bmFtaWMtaHRtbC5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9keW5hbWljLWh0bWwvZHluYW1pYy1odG1sLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvZHluYW1pYy1odG1sL2R5bmFtaWMtaHRtbC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL2R5bmFtaWMtaHRtbC90eXBlcyc7XG4iXX0=
|