windows-plus-utilities 0.0.45 → 0.0.47

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.
@@ -1,6 +1,6 @@
1
- import { OnChanges, SimpleChanges } from '@angular/core';
2
- import { ContextMenuItem } from '../../public-api';
1
+ import { EventEmitter, OnChanges, SimpleChanges } from '@angular/core';
3
2
  import { ContextMenuPosition } from '../../util/interface/position/context-menu-positions.interface';
3
+ import { ContextMenuItem } from './../../util/interface/items/context-menu-items.interface';
4
4
  import * as i0 from "@angular/core";
5
5
  export declare class ContextMenuComponent implements OnChanges {
6
6
  /**
@@ -11,6 +11,10 @@ export declare class ContextMenuComponent implements OnChanges {
11
11
  * @description an object containing the required context menu position
12
12
  */
13
13
  positions: ContextMenuPosition;
14
+ /**
15
+ * @description an event emitter which handles a menu item click
16
+ */
17
+ handleClick: EventEmitter<ContextMenuItem>;
14
18
  /**
15
19
  * @description indicates whether the context menu is being shown
16
20
  */
@@ -21,6 +25,12 @@ export declare class ContextMenuComponent implements OnChanges {
21
25
  * @param changes the changes to the component properties
22
26
  */
23
27
  ngOnChanges(changes: SimpleChanges): void;
28
+ /**
29
+ * @author Alex Hodson
30
+ * @description handles a click on a menu item
31
+ * @param item the menu item clicked
32
+ */
33
+ handleItemClick(item: ContextMenuItem): void;
24
34
  /**
25
35
  * @author Alex Hodson
26
36
  * @description toggles the component member which indicates the context menu visibility
@@ -32,5 +42,5 @@ export declare class ContextMenuComponent implements OnChanges {
32
42
  */
33
43
  handleClose(): void;
34
44
  static ɵfac: i0.ɵɵFactoryDeclaration<ContextMenuComponent, never>;
35
- static ɵcmp: i0.ɵɵComponentDeclaration<ContextMenuComponent, "wp-context-menu", never, { "items": "items"; "positions": "positions"; }, {}, never, never, false, never>;
45
+ static ɵcmp: i0.ɵɵComponentDeclaration<ContextMenuComponent, "wp-context-menu", never, { "items": "items"; "positions": "positions"; }, { "handleClick": "handleClick"; }, never, never, false, never>;
36
46
  }
@@ -1,4 +1,5 @@
1
1
  export * from './components/context-menu/context-menu.component';
2
2
  export * from './context-menu.module';
3
3
  export * from './util/interface/items/context-menu-items.interface';
4
+ export * from './util/interface/main/context-menu.interface';
4
5
  export * from './util/interface/position/context-menu-positions.interface';
@@ -0,0 +1,20 @@
1
+ import { ContextMenuItem } from '../items/context-menu-items.interface';
2
+ export interface ContextMenu {
3
+ /**
4
+ * @description an array containing the options for the context menu
5
+ */
6
+ contextMenuItems: ContextMenuItem[];
7
+ /**
8
+ * @author Alex Hodson
9
+ * @description handles a batch which has been clicked
10
+ * @param $event the click event
11
+ * @param elements parameters provided by the implementation
12
+ */
13
+ itemClicked($event: any, ...elements: any): void;
14
+ /**
15
+ * @author Alex Hodson
16
+ * @description triggers the handleClick callback of a context menu item
17
+ * @param element the clicked context menu item
18
+ */
19
+ handleContextMenuItemClick(element: ContextMenuItem): void;
20
+ }
@@ -1,8 +1,12 @@
1
- import { Component, HostListener, Input } from '@angular/core';
1
+ import { Component, EventEmitter, HostListener, Input, Output } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
3
  import * as i1 from "@angular/common";
4
4
  export class ContextMenuComponent {
5
5
  constructor() {
6
+ /**
7
+ * @description an event emitter which handles a menu item click
8
+ */
9
+ this.handleClick = new EventEmitter();
6
10
  /**
7
11
  * @description indicates whether the context menu is being shown
8
12
  */
@@ -18,6 +22,14 @@ export class ContextMenuComponent {
18
22
  this.showContextMenu = true;
19
23
  }
20
24
  }
25
+ /**
26
+ * @author Alex Hodson
27
+ * @description handles a click on a menu item
28
+ * @param item the menu item clicked
29
+ */
30
+ handleItemClick(item) {
31
+ this.handleClick.emit(item);
32
+ }
21
33
  /**
22
34
  * @author Alex Hodson
23
35
  * @description toggles the component member which indicates the context menu visibility
@@ -35,14 +47,16 @@ export class ContextMenuComponent {
35
47
  }
36
48
  }
37
49
  ContextMenuComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: ContextMenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
38
- ContextMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.2", type: ContextMenuComponent, selector: "wp-context-menu", inputs: { items: "items", positions: "positions" }, host: { listeners: { "document:click": "handleClose()", "document:contextmenu": "handleClose($event)", "document:keyup.escape": "handleClose()" } }, usesOnChanges: true, ngImport: i0, template: "<div id=\"context-menu\" [ngClass]=\"{ 'show': showContextMenu }\" [ngStyle]=\"positions\">\n\t<div id=\"context-menu-container\" class=\"context-menu\">\n\t\t<ul class=\"menu\">\n\t\t\t<li class=\"text-grey\">Edit</li>\n\t\t\t<li class=\"text-grey\">Delete</li>\n\t\t</ul>\n\t</div>\n</div>", styles: ["#context-menu.show{display:block;position:absolute;left:0;right:0}#context-menu{display:none;position:relative;max-width:100px;width:100px}#context-menu #context-menu-container{border:1px solid var(--wp-lightGrey);background:#FFF;width:100%;box-shadow:0 8px 16px #0000004d}#context-menu #context-menu-container ul{list-style-type:none;padding:0;margin:0}#context-menu #context-menu-container ul li{padding:.5rem 1rem;border-bottom:1px solid var(--wp-lightGrey)}#context-menu #context-menu-container ul li:hover{background:var(--wp-lightGrey);cursor:pointer}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] });
50
+ ContextMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.2", type: ContextMenuComponent, selector: "wp-context-menu", inputs: { items: "items", positions: "positions" }, outputs: { handleClick: "handleClick" }, host: { listeners: { "document:click": "handleClose()", "document:contextmenu": "handleClose($event)", "document:keyup.escape": "handleClose()" } }, usesOnChanges: true, ngImport: i0, template: "<div id=\"context-menu\" [ngClass]=\"{ 'show': showContextMenu }\" [ngStyle]=\"positions\">\n\t<div id=\"context-menu-container\" class=\"context-menu\">\n\t\t<ul class=\"menu\">\n\t\t\t<li class=\"text-grey\" *ngFor=\"let element of items\" (click)=\"handleItemClick(element)\">{{element.label}}</li>\n\t\t</ul>\n\t</div>\n</div>", styles: ["#context-menu.show{display:block;position:absolute;left:0;right:0}#context-menu{display:none;position:relative;max-width:100px;width:100px}#context-menu #context-menu-container{border:1px solid var(--wp-lightGrey);background:#FFF;width:100%;box-shadow:0 8px 16px #0000004d}#context-menu #context-menu-container ul{list-style-type:none;padding:0;margin:0}#context-menu #context-menu-container ul li{padding:.5rem 1rem;border-bottom:1px solid var(--wp-lightGrey)}#context-menu #context-menu-container ul li:hover{background:var(--wp-lightGrey);cursor:pointer}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] });
39
51
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: ContextMenuComponent, decorators: [{
40
52
  type: Component,
41
- args: [{ selector: 'wp-context-menu', template: "<div id=\"context-menu\" [ngClass]=\"{ 'show': showContextMenu }\" [ngStyle]=\"positions\">\n\t<div id=\"context-menu-container\" class=\"context-menu\">\n\t\t<ul class=\"menu\">\n\t\t\t<li class=\"text-grey\">Edit</li>\n\t\t\t<li class=\"text-grey\">Delete</li>\n\t\t</ul>\n\t</div>\n</div>", styles: ["#context-menu.show{display:block;position:absolute;left:0;right:0}#context-menu{display:none;position:relative;max-width:100px;width:100px}#context-menu #context-menu-container{border:1px solid var(--wp-lightGrey);background:#FFF;width:100%;box-shadow:0 8px 16px #0000004d}#context-menu #context-menu-container ul{list-style-type:none;padding:0;margin:0}#context-menu #context-menu-container ul li{padding:.5rem 1rem;border-bottom:1px solid var(--wp-lightGrey)}#context-menu #context-menu-container ul li:hover{background:var(--wp-lightGrey);cursor:pointer}\n"] }]
53
+ args: [{ selector: 'wp-context-menu', template: "<div id=\"context-menu\" [ngClass]=\"{ 'show': showContextMenu }\" [ngStyle]=\"positions\">\n\t<div id=\"context-menu-container\" class=\"context-menu\">\n\t\t<ul class=\"menu\">\n\t\t\t<li class=\"text-grey\" *ngFor=\"let element of items\" (click)=\"handleItemClick(element)\">{{element.label}}</li>\n\t\t</ul>\n\t</div>\n</div>", styles: ["#context-menu.show{display:block;position:absolute;left:0;right:0}#context-menu{display:none;position:relative;max-width:100px;width:100px}#context-menu #context-menu-container{border:1px solid var(--wp-lightGrey);background:#FFF;width:100%;box-shadow:0 8px 16px #0000004d}#context-menu #context-menu-container ul{list-style-type:none;padding:0;margin:0}#context-menu #context-menu-container ul li{padding:.5rem 1rem;border-bottom:1px solid var(--wp-lightGrey)}#context-menu #context-menu-container ul li:hover{background:var(--wp-lightGrey);cursor:pointer}\n"] }]
42
54
  }], propDecorators: { items: [{
43
55
  type: Input
44
56
  }], positions: [{
45
57
  type: Input
58
+ }], handleClick: [{
59
+ type: Output
46
60
  }], handleClose: [{
47
61
  type: HostListener,
48
62
  args: ['document:click']
@@ -53,4 +67,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.2", ngImpor
53
67
  type: HostListener,
54
68
  args: ['document:keyup.escape']
55
69
  }] } });
56
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC1tZW51LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3dpbmRvd3MtcGx1cy11dGlsaXRpZXMvY29udGV4dC1tZW51L2NvbXBvbmVudHMvY29udGV4dC1tZW51L2NvbnRleHQtbWVudS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy93aW5kb3dzLXBsdXMtdXRpbGl0aWVzL2NvbnRleHQtbWVudS9jb21wb25lbnRzL2NvbnRleHQtbWVudS9jb250ZXh0LW1lbnUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUE0QixNQUFNLGVBQWUsQ0FBQzs7O0FBU3pGLE1BQU0sT0FBTyxvQkFBb0I7SUFMakM7UUFjQzs7V0FFRztRQUNILG9CQUFlLEdBQVksS0FBSyxDQUFBO0tBNEJoQztJQTNCQTs7OztPQUlHO0lBQ0gsV0FBVyxDQUFDLE9BQXNCO1FBQ2pDLElBQUksT0FBTyxDQUFDLFdBQVcsQ0FBQyxFQUFFO1lBQ3pCLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFBO1NBQzNCO0lBQ0YsQ0FBQztJQUNEOzs7T0FHRztJQUNILGlCQUFpQjtRQUNoQixJQUFJLENBQUMsZUFBZSxHQUFHLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQTtJQUM3QyxDQUFDO0lBQ0Q7OztPQUdHO0lBSUYsV0FBVztRQUNULElBQUksSUFBSSxDQUFDLGVBQWU7WUFBRSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQTtJQUNwRCxDQUFDOztpSEF2Q1Usb0JBQW9CO3FHQUFwQixvQkFBb0IscVJDVGpDLHFTQU9NOzJGREVPLG9CQUFvQjtrQkFMaEMsU0FBUzsrQkFDRSxpQkFBaUI7OEJBUW5CLEtBQUs7c0JBQWIsS0FBSztnQkFJRyxTQUFTO3NCQUFqQixLQUFLO2dCQTZCTCxXQUFXO3NCQUhYLFlBQVk7dUJBQUMsZ0JBQWdCOztzQkFDN0IsWUFBWTt1QkFBQyxzQkFBc0IsRUFBRSxDQUFDLFFBQVEsQ0FBQzs7c0JBQzlDLFlBQVk7dUJBQUMsdUJBQXVCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBIb3N0TGlzdGVuZXIsIElucHV0LCBPbkNoYW5nZXMsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRleHRNZW51SXRlbSB9IGZyb20gJy4uLy4uL3B1YmxpYy1hcGknXG5pbXBvcnQgeyBDb250ZXh0TWVudVBvc2l0aW9uIH0gZnJvbSAnLi4vLi4vdXRpbC9pbnRlcmZhY2UvcG9zaXRpb24vY29udGV4dC1tZW51LXBvc2l0aW9ucy5pbnRlcmZhY2UnXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3dwLWNvbnRleHQtbWVudScsXG4gIHRlbXBsYXRlVXJsOiAnLi9jb250ZXh0LW1lbnUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jb250ZXh0LW1lbnUuY29tcG9uZW50LnNhc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBDb250ZXh0TWVudUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG5cdC8qKlxuXHQgKiBAZGVzY3JpcHRpb24gYW4gYXJyYXkgY29udGFpbmluZyB0aGUgY29udGV4dCBtZW51IGl0ZW1zIHRvIGJlIGRpc3BsYXllZFxuXHQgKi9cblx0QElucHV0KCkgaXRlbXM6IENvbnRleHRNZW51SXRlbVtdXG5cdC8qKlxuXHQgKiBAZGVzY3JpcHRpb24gYW4gb2JqZWN0IGNvbnRhaW5pbmcgdGhlIHJlcXVpcmVkIGNvbnRleHQgbWVudSBwb3NpdGlvblxuXHQgKi9cblx0QElucHV0KCkgcG9zaXRpb25zOiBDb250ZXh0TWVudVBvc2l0aW9uXG5cdC8qKlxuXHQgKiBAZGVzY3JpcHRpb24gaW5kaWNhdGVzIHdoZXRoZXIgdGhlIGNvbnRleHQgbWVudSBpcyBiZWluZyBzaG93biBcblx0ICovXG5cdHNob3dDb250ZXh0TWVudTogYm9vbGVhbiA9IGZhbHNlXG5cdC8qKlxuXHQgKiBAYXV0aG9yIEFsZXggSG9kc29uXG5cdCAqIEBkZXNjcmlwdGlvbiBoYW5kbGVzIGEgY2hhbmdlIGluIHRoZSBjb21wb25lbnRzIGlucHV0IHByb3BlcnRpZXNcblx0ICogQHBhcmFtIGNoYW5nZXMgdGhlIGNoYW5nZXMgdG8gdGhlIGNvbXBvbmVudCBwcm9wZXJ0aWVzXG5cdCAqL1xuXHRuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG5cdFx0aWYgKGNoYW5nZXNbJ3Bvc2l0aW9ucyddKSB7XG5cdFx0XHR0aGlzLnNob3dDb250ZXh0TWVudSA9IHRydWVcblx0XHR9XG5cdH1cblx0LyoqXG5cdCAqIEBhdXRob3IgQWxleCBIb2Rzb25cblx0ICogQGRlc2NyaXB0aW9uIHRvZ2dsZXMgdGhlIGNvbXBvbmVudCBtZW1iZXIgd2hpY2ggaW5kaWNhdGVzIHRoZSBjb250ZXh0IG1lbnUgdmlzaWJpbGl0eVxuXHQgKi9cblx0dG9nZ2xlQ29udGV4dE1lbnUoKTogdm9pZCB7XG5cdFx0dGhpcy5zaG93Q29udGV4dE1lbnUgPSAhdGhpcy5zaG93Q29udGV4dE1lbnVcblx0fVxuXHQvKipcblx0ICogQGF1dGhvciBBbGV4IEhvZHNvblxuXHQgKiBAZGVzY3JpcHRpb24gaGFuZGxlcyBhIGNsaWNrIG91dHNpZGUgb2YgdGhlIGNvbnRleHQgbWVudSB3aGljaCB3aWxsIHRvZ2dsZSB0aGUgY29udGV4dCBtZW51IGRpc3BsYXlcblx0ICovXG5cdEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmNsaWNrJylcblx0QEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6Y29udGV4dG1lbnUnLCBbJyRldmVudCddKVxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDprZXl1cC5lc2NhcGUnKVxuICBoYW5kbGVDbG9zZSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zaG93Q29udGV4dE1lbnUpIHRoaXMudG9nZ2xlQ29udGV4dE1lbnUoKVxuICB9XG59XG4iLCI8ZGl2IGlkPVwiY29udGV4dC1tZW51XCIgW25nQ2xhc3NdPVwieyAnc2hvdyc6IHNob3dDb250ZXh0TWVudSB9XCIgW25nU3R5bGVdPVwicG9zaXRpb25zXCI+XG5cdDxkaXYgaWQ9XCJjb250ZXh0LW1lbnUtY29udGFpbmVyXCIgY2xhc3M9XCJjb250ZXh0LW1lbnVcIj5cblx0XHQ8dWwgY2xhc3M9XCJtZW51XCI+XG5cdFx0XHQ8bGkgY2xhc3M9XCJ0ZXh0LWdyZXlcIj5FZGl0PC9saT5cblx0XHRcdDxsaSBjbGFzcz1cInRleHQtZ3JleVwiPkRlbGV0ZTwvbGk+XG5cdFx0PC91bD5cblx0PC9kaXY+XG48L2Rpdj4iXX0=
70
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC1tZW51LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3dpbmRvd3MtcGx1cy11dGlsaXRpZXMvY29udGV4dC1tZW51L2NvbXBvbmVudHMvY29udGV4dC1tZW51L2NvbnRleHQtbWVudS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy93aW5kb3dzLXBsdXMtdXRpbGl0aWVzL2NvbnRleHQtbWVudS9jb21wb25lbnRzL2NvbnRleHQtbWVudS9jb250ZXh0LW1lbnUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBYSxNQUFNLEVBQWlCLE1BQU0sZUFBZSxDQUFDOzs7QUFTL0csTUFBTSxPQUFPLG9CQUFvQjtJQUxqQztRQWNDOztXQUVHO1FBQ08sZ0JBQVcsR0FBa0MsSUFBSSxZQUFZLEVBQW1CLENBQUE7UUFDMUY7O1dBRUc7UUFDSCxvQkFBZSxHQUFZLEtBQUssQ0FBQTtLQW9DaEM7SUFuQ0E7Ozs7T0FJRztJQUNILFdBQVcsQ0FBQyxPQUFzQjtRQUNqQyxJQUFJLE9BQU8sQ0FBQyxXQUFXLENBQUMsRUFBRTtZQUN6QixJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQTtTQUMzQjtJQUNGLENBQUM7SUFDRDs7OztPQUlHO0lBQ0gsZUFBZSxDQUFDLElBQXFCO1FBQ3BDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFBO0lBQzVCLENBQUM7SUFDRDs7O09BR0c7SUFDSCxpQkFBaUI7UUFDaEIsSUFBSSxDQUFDLGVBQWUsR0FBRyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUE7SUFDN0MsQ0FBQztJQUNEOzs7T0FHRztJQUlGLFdBQVc7UUFDVCxJQUFJLElBQUksQ0FBQyxlQUFlO1lBQUUsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUE7SUFDcEQsQ0FBQzs7aUhBbkRVLG9CQUFvQjtxR0FBcEIsb0JBQW9CLDhUQ1RqQyw0VUFNTTsyRkRHTyxvQkFBb0I7a0JBTGhDLFNBQVM7K0JBQ0UsaUJBQWlCOzhCQVFuQixLQUFLO3NCQUFiLEtBQUs7Z0JBSUcsU0FBUztzQkFBakIsS0FBSztnQkFJSSxXQUFXO3NCQUFwQixNQUFNO2dCQXFDTixXQUFXO3NCQUhYLFlBQVk7dUJBQUMsZ0JBQWdCOztzQkFDN0IsWUFBWTt1QkFBQyxzQkFBc0IsRUFBRSxDQUFDLFFBQVEsQ0FBQzs7c0JBQzlDLFlBQVk7dUJBQUMsdUJBQXVCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIEhvc3RMaXN0ZW5lciwgSW5wdXQsIE9uQ2hhbmdlcywgT3V0cHV0LCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250ZXh0TWVudVBvc2l0aW9uIH0gZnJvbSAnLi4vLi4vdXRpbC9pbnRlcmZhY2UvcG9zaXRpb24vY29udGV4dC1tZW51LXBvc2l0aW9ucy5pbnRlcmZhY2UnXG5pbXBvcnQgeyBDb250ZXh0TWVudUl0ZW0gfSBmcm9tICcuLy4uLy4uL3V0aWwvaW50ZXJmYWNlL2l0ZW1zL2NvbnRleHQtbWVudS1pdGVtcy5pbnRlcmZhY2UnXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3dwLWNvbnRleHQtbWVudScsXG4gIHRlbXBsYXRlVXJsOiAnLi9jb250ZXh0LW1lbnUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jb250ZXh0LW1lbnUuY29tcG9uZW50LnNhc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBDb250ZXh0TWVudUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG5cdC8qKlxuXHQgKiBAZGVzY3JpcHRpb24gYW4gYXJyYXkgY29udGFpbmluZyB0aGUgY29udGV4dCBtZW51IGl0ZW1zIHRvIGJlIGRpc3BsYXllZFxuXHQgKi9cblx0QElucHV0KCkgaXRlbXM6IENvbnRleHRNZW51SXRlbVtdXG5cdC8qKlxuXHQgKiBAZGVzY3JpcHRpb24gYW4gb2JqZWN0IGNvbnRhaW5pbmcgdGhlIHJlcXVpcmVkIGNvbnRleHQgbWVudSBwb3NpdGlvblxuXHQgKi9cblx0QElucHV0KCkgcG9zaXRpb25zOiBDb250ZXh0TWVudVBvc2l0aW9uXG5cdC8qKlxuXHQgKiBAZGVzY3JpcHRpb24gYW4gZXZlbnQgZW1pdHRlciB3aGljaCBoYW5kbGVzIGEgbWVudSBpdGVtIGNsaWNrXG5cdCAqL1xuXHRAT3V0cHV0KCkgaGFuZGxlQ2xpY2s6IEV2ZW50RW1pdHRlcjxDb250ZXh0TWVudUl0ZW0+ID0gbmV3IEV2ZW50RW1pdHRlcjxDb250ZXh0TWVudUl0ZW0+KClcblx0LyoqXG5cdCAqIEBkZXNjcmlwdGlvbiBpbmRpY2F0ZXMgd2hldGhlciB0aGUgY29udGV4dCBtZW51IGlzIGJlaW5nIHNob3duIFxuXHQgKi9cblx0c2hvd0NvbnRleHRNZW51OiBib29sZWFuID0gZmFsc2Vcblx0LyoqXG5cdCAqIEBhdXRob3IgQWxleCBIb2Rzb25cblx0ICogQGRlc2NyaXB0aW9uIGhhbmRsZXMgYSBjaGFuZ2UgaW4gdGhlIGNvbXBvbmVudHMgaW5wdXQgcHJvcGVydGllc1xuXHQgKiBAcGFyYW0gY2hhbmdlcyB0aGUgY2hhbmdlcyB0byB0aGUgY29tcG9uZW50IHByb3BlcnRpZXNcblx0ICovXG5cdG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcblx0XHRpZiAoY2hhbmdlc1sncG9zaXRpb25zJ10pIHtcblx0XHRcdHRoaXMuc2hvd0NvbnRleHRNZW51ID0gdHJ1ZVxuXHRcdH1cblx0fVxuXHQvKipcblx0ICogQGF1dGhvciBBbGV4IEhvZHNvblxuXHQgKiBAZGVzY3JpcHRpb24gaGFuZGxlcyBhIGNsaWNrIG9uIGEgbWVudSBpdGVtXG5cdCAqIEBwYXJhbSBpdGVtIHRoZSBtZW51IGl0ZW0gY2xpY2tlZFxuXHQgKi9cblx0aGFuZGxlSXRlbUNsaWNrKGl0ZW06IENvbnRleHRNZW51SXRlbSk6IHZvaWQge1xuXHRcdHRoaXMuaGFuZGxlQ2xpY2suZW1pdChpdGVtKVxuXHR9XG5cdC8qKlxuXHQgKiBAYXV0aG9yIEFsZXggSG9kc29uXG5cdCAqIEBkZXNjcmlwdGlvbiB0b2dnbGVzIHRoZSBjb21wb25lbnQgbWVtYmVyIHdoaWNoIGluZGljYXRlcyB0aGUgY29udGV4dCBtZW51IHZpc2liaWxpdHlcblx0ICovXG5cdHRvZ2dsZUNvbnRleHRNZW51KCk6IHZvaWQge1xuXHRcdHRoaXMuc2hvd0NvbnRleHRNZW51ID0gIXRoaXMuc2hvd0NvbnRleHRNZW51XG5cdH1cblx0LyoqXG5cdCAqIEBhdXRob3IgQWxleCBIb2Rzb25cblx0ICogQGRlc2NyaXB0aW9uIGhhbmRsZXMgYSBjbGljayBvdXRzaWRlIG9mIHRoZSBjb250ZXh0IG1lbnUgd2hpY2ggd2lsbCB0b2dnbGUgdGhlIGNvbnRleHQgbWVudSBkaXNwbGF5XG5cdCAqL1xuXHRASG9zdExpc3RlbmVyKCdkb2N1bWVudDpjbGljaycpXG5cdEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmNvbnRleHRtZW51JywgWyckZXZlbnQnXSlcbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6a2V5dXAuZXNjYXBlJylcbiAgaGFuZGxlQ2xvc2UoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc2hvd0NvbnRleHRNZW51KSB0aGlzLnRvZ2dsZUNvbnRleHRNZW51KClcbiAgfVxufVxuIiwiPGRpdiBpZD1cImNvbnRleHQtbWVudVwiIFtuZ0NsYXNzXT1cInsgJ3Nob3cnOiBzaG93Q29udGV4dE1lbnUgfVwiIFtuZ1N0eWxlXT1cInBvc2l0aW9uc1wiPlxuXHQ8ZGl2IGlkPVwiY29udGV4dC1tZW51LWNvbnRhaW5lclwiIGNsYXNzPVwiY29udGV4dC1tZW51XCI+XG5cdFx0PHVsIGNsYXNzPVwibWVudVwiPlxuXHRcdFx0PGxpIGNsYXNzPVwidGV4dC1ncmV5XCIgKm5nRm9yPVwibGV0IGVsZW1lbnQgb2YgaXRlbXNcIiAoY2xpY2spPVwiaGFuZGxlSXRlbUNsaWNrKGVsZW1lbnQpXCI+e3tlbGVtZW50LmxhYmVsfX08L2xpPlxuXHRcdDwvdWw+XG5cdDwvZGl2PlxuPC9kaXY+Il19
@@ -4,5 +4,6 @@
4
4
  export * from './components/context-menu/context-menu.component';
5
5
  export * from './context-menu.module';
6
6
  export * from './util/interface/items/context-menu-items.interface';
7
+ export * from './util/interface/main/context-menu.interface';
7
8
  export * from './util/interface/position/context-menu-positions.interface';
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3dpbmRvd3MtcGx1cy11dGlsaXRpZXMvY29udGV4dC1tZW51L3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGtEQUFrRCxDQUFDO0FBQ2pFLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyxxREFBcUQsQ0FBQTtBQUNuRSxjQUFjLDREQUE0RCxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIHdpbmRvd3MtcGx1cy11dGlsaXRpZXNcclxuICovXHJcblxyXG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvY29udGV4dC1tZW51L2NvbnRleHQtbWVudS5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2NvbnRleHQtbWVudS5tb2R1bGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL3V0aWwvaW50ZXJmYWNlL2l0ZW1zL2NvbnRleHQtbWVudS1pdGVtcy5pbnRlcmZhY2UnXHJcbmV4cG9ydCAqIGZyb20gJy4vdXRpbC9pbnRlcmZhY2UvcG9zaXRpb24vY29udGV4dC1tZW51LXBvc2l0aW9ucy5pbnRlcmZhY2UnXHJcbiJdfQ==
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3dpbmRvd3MtcGx1cy11dGlsaXRpZXMvY29udGV4dC1tZW51L3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGtEQUFrRCxDQUFDO0FBQ2pFLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyxxREFBcUQsQ0FBQTtBQUNuRSxjQUFjLDhDQUE4QyxDQUFBO0FBQzVELGNBQWMsNERBQTRELENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2Ygd2luZG93cy1wbHVzLXV0aWxpdGllc1xyXG4gKi9cclxuXHJcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9jb250ZXh0LW1lbnUvY29udGV4dC1tZW51LmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vY29udGV4dC1tZW51Lm1vZHVsZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vdXRpbC9pbnRlcmZhY2UvaXRlbXMvY29udGV4dC1tZW51LWl0ZW1zLmludGVyZmFjZSdcclxuZXhwb3J0ICogZnJvbSAnLi91dGlsL2ludGVyZmFjZS9tYWluL2NvbnRleHQtbWVudS5pbnRlcmZhY2UnXHJcbmV4cG9ydCAqIGZyb20gJy4vdXRpbC9pbnRlcmZhY2UvcG9zaXRpb24vY29udGV4dC1tZW51LXBvc2l0aW9ucy5pbnRlcmZhY2UnXHJcbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC1tZW51LmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3dpbmRvd3MtcGx1cy11dGlsaXRpZXMvY29udGV4dC1tZW51L3V0aWwvaW50ZXJmYWNlL21haW4vY29udGV4dC1tZW51LmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29udGV4dE1lbnVJdGVtIH0gZnJvbSAnLi4vaXRlbXMvY29udGV4dC1tZW51LWl0ZW1zLmludGVyZmFjZSdcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ29udGV4dE1lbnUge1xyXG5cdC8qKlxyXG5cdCAqIEBkZXNjcmlwdGlvbiBhbiBhcnJheSBjb250YWluaW5nIHRoZSBvcHRpb25zIGZvciB0aGUgY29udGV4dCBtZW51XHJcblx0ICovXHJcblx0Y29udGV4dE1lbnVJdGVtczogQ29udGV4dE1lbnVJdGVtW11cclxuXHJcblx0LyoqXHJcblx0ICogQGF1dGhvciBBbGV4IEhvZHNvblxyXG5cdCAqIEBkZXNjcmlwdGlvbiBoYW5kbGVzIGEgYmF0Y2ggd2hpY2ggaGFzIGJlZW4gY2xpY2tlZFxyXG5cdCAqIEBwYXJhbSAkZXZlbnQgdGhlIGNsaWNrIGV2ZW50XHJcblx0ICogQHBhcmFtIGVsZW1lbnRzIHBhcmFtZXRlcnMgcHJvdmlkZWQgYnkgdGhlIGltcGxlbWVudGF0aW9uXHJcblx0ICovXHJcblx0aXRlbUNsaWNrZWQoJGV2ZW50OiBhbnksIC4uLmVsZW1lbnRzOiBhbnkpOiB2b2lkXHJcblx0LyoqXHJcblx0ICogQGF1dGhvciBBbGV4IEhvZHNvblxyXG5cdCAqIEBkZXNjcmlwdGlvbiB0cmlnZ2VycyB0aGUgaGFuZGxlQ2xpY2sgY2FsbGJhY2sgb2YgYSBjb250ZXh0IG1lbnUgaXRlbVxyXG5cdCAqIEBwYXJhbSBlbGVtZW50IHRoZSBjbGlja2VkIGNvbnRleHQgbWVudSBpdGVtXHJcblx0ICovXHJcblx0aGFuZGxlQ29udGV4dE1lbnVJdGVtQ2xpY2soZWxlbWVudDogQ29udGV4dE1lbnVJdGVtKTogdm9pZFxyXG59Il19
@@ -1,10 +1,14 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Component, Input, HostListener, NgModule } from '@angular/core';
2
+ import { EventEmitter, Component, Input, Output, HostListener, NgModule } from '@angular/core';
3
3
  import * as i1 from '@angular/common';
4
4
  import { CommonModule } from '@angular/common';
5
5
 
6
6
  class ContextMenuComponent {
7
7
  constructor() {
8
+ /**
9
+ * @description an event emitter which handles a menu item click
10
+ */
11
+ this.handleClick = new EventEmitter();
8
12
  /**
9
13
  * @description indicates whether the context menu is being shown
10
14
  */
@@ -20,6 +24,14 @@ class ContextMenuComponent {
20
24
  this.showContextMenu = true;
21
25
  }
22
26
  }
27
+ /**
28
+ * @author Alex Hodson
29
+ * @description handles a click on a menu item
30
+ * @param item the menu item clicked
31
+ */
32
+ handleItemClick(item) {
33
+ this.handleClick.emit(item);
34
+ }
23
35
  /**
24
36
  * @author Alex Hodson
25
37
  * @description toggles the component member which indicates the context menu visibility
@@ -37,14 +49,16 @@ class ContextMenuComponent {
37
49
  }
38
50
  }
39
51
  ContextMenuComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: ContextMenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
40
- ContextMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.2", type: ContextMenuComponent, selector: "wp-context-menu", inputs: { items: "items", positions: "positions" }, host: { listeners: { "document:click": "handleClose()", "document:contextmenu": "handleClose($event)", "document:keyup.escape": "handleClose()" } }, usesOnChanges: true, ngImport: i0, template: "<div id=\"context-menu\" [ngClass]=\"{ 'show': showContextMenu }\" [ngStyle]=\"positions\">\n\t<div id=\"context-menu-container\" class=\"context-menu\">\n\t\t<ul class=\"menu\">\n\t\t\t<li class=\"text-grey\">Edit</li>\n\t\t\t<li class=\"text-grey\">Delete</li>\n\t\t</ul>\n\t</div>\n</div>", styles: ["#context-menu.show{display:block;position:absolute;left:0;right:0}#context-menu{display:none;position:relative;max-width:100px;width:100px}#context-menu #context-menu-container{border:1px solid var(--wp-lightGrey);background:#FFF;width:100%;box-shadow:0 8px 16px #0000004d}#context-menu #context-menu-container ul{list-style-type:none;padding:0;margin:0}#context-menu #context-menu-container ul li{padding:.5rem 1rem;border-bottom:1px solid var(--wp-lightGrey)}#context-menu #context-menu-container ul li:hover{background:var(--wp-lightGrey);cursor:pointer}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] });
52
+ ContextMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.2", type: ContextMenuComponent, selector: "wp-context-menu", inputs: { items: "items", positions: "positions" }, outputs: { handleClick: "handleClick" }, host: { listeners: { "document:click": "handleClose()", "document:contextmenu": "handleClose($event)", "document:keyup.escape": "handleClose()" } }, usesOnChanges: true, ngImport: i0, template: "<div id=\"context-menu\" [ngClass]=\"{ 'show': showContextMenu }\" [ngStyle]=\"positions\">\n\t<div id=\"context-menu-container\" class=\"context-menu\">\n\t\t<ul class=\"menu\">\n\t\t\t<li class=\"text-grey\" *ngFor=\"let element of items\" (click)=\"handleItemClick(element)\">{{element.label}}</li>\n\t\t</ul>\n\t</div>\n</div>", styles: ["#context-menu.show{display:block;position:absolute;left:0;right:0}#context-menu{display:none;position:relative;max-width:100px;width:100px}#context-menu #context-menu-container{border:1px solid var(--wp-lightGrey);background:#FFF;width:100%;box-shadow:0 8px 16px #0000004d}#context-menu #context-menu-container ul{list-style-type:none;padding:0;margin:0}#context-menu #context-menu-container ul li{padding:.5rem 1rem;border-bottom:1px solid var(--wp-lightGrey)}#context-menu #context-menu-container ul li:hover{background:var(--wp-lightGrey);cursor:pointer}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] });
41
53
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: ContextMenuComponent, decorators: [{
42
54
  type: Component,
43
- args: [{ selector: 'wp-context-menu', template: "<div id=\"context-menu\" [ngClass]=\"{ 'show': showContextMenu }\" [ngStyle]=\"positions\">\n\t<div id=\"context-menu-container\" class=\"context-menu\">\n\t\t<ul class=\"menu\">\n\t\t\t<li class=\"text-grey\">Edit</li>\n\t\t\t<li class=\"text-grey\">Delete</li>\n\t\t</ul>\n\t</div>\n</div>", styles: ["#context-menu.show{display:block;position:absolute;left:0;right:0}#context-menu{display:none;position:relative;max-width:100px;width:100px}#context-menu #context-menu-container{border:1px solid var(--wp-lightGrey);background:#FFF;width:100%;box-shadow:0 8px 16px #0000004d}#context-menu #context-menu-container ul{list-style-type:none;padding:0;margin:0}#context-menu #context-menu-container ul li{padding:.5rem 1rem;border-bottom:1px solid var(--wp-lightGrey)}#context-menu #context-menu-container ul li:hover{background:var(--wp-lightGrey);cursor:pointer}\n"] }]
55
+ args: [{ selector: 'wp-context-menu', template: "<div id=\"context-menu\" [ngClass]=\"{ 'show': showContextMenu }\" [ngStyle]=\"positions\">\n\t<div id=\"context-menu-container\" class=\"context-menu\">\n\t\t<ul class=\"menu\">\n\t\t\t<li class=\"text-grey\" *ngFor=\"let element of items\" (click)=\"handleItemClick(element)\">{{element.label}}</li>\n\t\t</ul>\n\t</div>\n</div>", styles: ["#context-menu.show{display:block;position:absolute;left:0;right:0}#context-menu{display:none;position:relative;max-width:100px;width:100px}#context-menu #context-menu-container{border:1px solid var(--wp-lightGrey);background:#FFF;width:100%;box-shadow:0 8px 16px #0000004d}#context-menu #context-menu-container ul{list-style-type:none;padding:0;margin:0}#context-menu #context-menu-container ul li{padding:.5rem 1rem;border-bottom:1px solid var(--wp-lightGrey)}#context-menu #context-menu-container ul li:hover{background:var(--wp-lightGrey);cursor:pointer}\n"] }]
44
56
  }], propDecorators: { items: [{
45
57
  type: Input
46
58
  }], positions: [{
47
59
  type: Input
60
+ }], handleClick: [{
61
+ type: Output
48
62
  }], handleClose: [{
49
63
  type: HostListener,
50
64
  args: ['document:click']
@@ -1 +1 @@
1
- {"version":3,"file":"windows-plus-utilities-context-menu.mjs","sources":["../../../projects/windows-plus-utilities/context-menu/components/context-menu/context-menu.component.ts","../../../projects/windows-plus-utilities/context-menu/components/context-menu/context-menu.component.html","../../../projects/windows-plus-utilities/context-menu/context-menu.module.ts","../../../projects/windows-plus-utilities/context-menu/public-api.ts","../../../projects/windows-plus-utilities/context-menu/windows-plus-utilities-context-menu.ts"],"sourcesContent":["import { Component, HostListener, Input, OnChanges, SimpleChanges } from '@angular/core';\nimport { ContextMenuItem } from '../../public-api'\nimport { ContextMenuPosition } from '../../util/interface/position/context-menu-positions.interface'\n\n@Component({\n selector: 'wp-context-menu',\n templateUrl: './context-menu.component.html',\n styleUrls: ['./context-menu.component.sass']\n})\nexport class ContextMenuComponent implements OnChanges {\n\t/**\n\t * @description an array containing the context menu items to be displayed\n\t */\n\t@Input() items: ContextMenuItem[]\n\t/**\n\t * @description an object containing the required context menu position\n\t */\n\t@Input() positions: ContextMenuPosition\n\t/**\n\t * @description indicates whether the context menu is being shown \n\t */\n\tshowContextMenu: boolean = false\n\t/**\n\t * @author Alex Hodson\n\t * @description handles a change in the components input properties\n\t * @param changes the changes to the component properties\n\t */\n\tngOnChanges(changes: SimpleChanges): void {\n\t\tif (changes['positions']) {\n\t\t\tthis.showContextMenu = true\n\t\t}\n\t}\n\t/**\n\t * @author Alex Hodson\n\t * @description toggles the component member which indicates the context menu visibility\n\t */\n\ttoggleContextMenu(): void {\n\t\tthis.showContextMenu = !this.showContextMenu\n\t}\n\t/**\n\t * @author Alex Hodson\n\t * @description handles a click outside of the context menu which will toggle the context menu display\n\t */\n\t@HostListener('document:click')\n\t@HostListener('document:contextmenu', ['$event'])\n @HostListener('document:keyup.escape')\n handleClose(): void {\n if (this.showContextMenu) this.toggleContextMenu()\n }\n}\n","<div id=\"context-menu\" [ngClass]=\"{ 'show': showContextMenu }\" [ngStyle]=\"positions\">\n\t<div id=\"context-menu-container\" class=\"context-menu\">\n\t\t<ul class=\"menu\">\n\t\t\t<li class=\"text-grey\">Edit</li>\n\t\t\t<li class=\"text-grey\">Delete</li>\n\t\t</ul>\n\t</div>\n</div>","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ContextMenuComponent } from './components/context-menu/context-menu.component';\n\n\n\n@NgModule({\n declarations: [\n ContextMenuComponent\n ],\n imports: [\n CommonModule\n ],\n\texports: [\n ContextMenuComponent\n\t]\n})\nexport class ContextMenuModule { }\n","/*\r\n * Public API Surface of windows-plus-utilities\r\n */\r\n\r\nexport * from './components/context-menu/context-menu.component';\r\nexport * from './context-menu.module';\r\nexport * from './util/interface/items/context-menu-items.interface'\r\nexport * from './util/interface/position/context-menu-positions.interface'\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;MASa,oBAAoB,CAAA;AALjC,IAAA,WAAA,GAAA;AAcC;;AAEG;AACH,QAAA,IAAe,CAAA,eAAA,GAAY,KAAK,CAAA;KA4BhC;AA3BA;;;;AAIG;AACH,IAAA,WAAW,CAAC,OAAsB,EAAA;AACjC,QAAA,IAAI,OAAO,CAAC,WAAW,CAAC,EAAE;AACzB,YAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAA;AAC3B,SAAA;KACD;AACD;;;AAGG;IACH,iBAAiB,GAAA;AAChB,QAAA,IAAI,CAAC,eAAe,GAAG,CAAC,IAAI,CAAC,eAAe,CAAA;KAC5C;AACD;;;AAGG;IAIF,WAAW,GAAA;QACT,IAAI,IAAI,CAAC,eAAe;YAAE,IAAI,CAAC,iBAAiB,EAAE,CAAA;KACnD;;iHAvCU,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAApB,oBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,oBAAoB,qRCTjC,qSAOM,EAAA,MAAA,EAAA,CAAA,ijBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FDEO,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBALhC,SAAS;+BACE,iBAAiB,EAAA,QAAA,EAAA,qSAAA,EAAA,MAAA,EAAA,CAAA,ijBAAA,CAAA,EAAA,CAAA;8BAQnB,KAAK,EAAA,CAAA;sBAAb,KAAK;gBAIG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBA6BL,WAAW,EAAA,CAAA;sBAHX,YAAY;uBAAC,gBAAgB,CAAA;;sBAC7B,YAAY;uBAAC,sBAAsB,EAAE,CAAC,QAAQ,CAAC,CAAA;;sBAC9C,YAAY;uBAAC,uBAAuB,CAAA;;;ME5B1B,iBAAiB,CAAA;;8GAAjB,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAjB,iBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,EAT1B,YAAA,EAAA,CAAA,oBAAoB,CAGpB,EAAA,OAAA,EAAA,CAAA,YAAY,aAGZ,oBAAoB,CAAA,EAAA,CAAA,CAAA;AAGX,iBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,YAN1B,YAAY,CAAA,EAAA,CAAA,CAAA;2FAMH,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAX7B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE;wBACZ,oBAAoB;AACrB,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,YAAY;AACb,qBAAA;AACF,oBAAA,OAAO,EAAE;wBACN,oBAAoB;AACtB,qBAAA;iBACD,CAAA;;;AChBD;;AAEG;;ACFH;;AAEG;;;;"}
1
+ {"version":3,"file":"windows-plus-utilities-context-menu.mjs","sources":["../../../projects/windows-plus-utilities/context-menu/components/context-menu/context-menu.component.ts","../../../projects/windows-plus-utilities/context-menu/components/context-menu/context-menu.component.html","../../../projects/windows-plus-utilities/context-menu/context-menu.module.ts","../../../projects/windows-plus-utilities/context-menu/public-api.ts","../../../projects/windows-plus-utilities/context-menu/windows-plus-utilities-context-menu.ts"],"sourcesContent":["import { Component, EventEmitter, HostListener, Input, OnChanges, Output, SimpleChanges } from '@angular/core';\nimport { ContextMenuPosition } from '../../util/interface/position/context-menu-positions.interface'\nimport { ContextMenuItem } from './../../util/interface/items/context-menu-items.interface'\n\n@Component({\n selector: 'wp-context-menu',\n templateUrl: './context-menu.component.html',\n styleUrls: ['./context-menu.component.sass']\n})\nexport class ContextMenuComponent implements OnChanges {\n\t/**\n\t * @description an array containing the context menu items to be displayed\n\t */\n\t@Input() items: ContextMenuItem[]\n\t/**\n\t * @description an object containing the required context menu position\n\t */\n\t@Input() positions: ContextMenuPosition\n\t/**\n\t * @description an event emitter which handles a menu item click\n\t */\n\t@Output() handleClick: EventEmitter<ContextMenuItem> = new EventEmitter<ContextMenuItem>()\n\t/**\n\t * @description indicates whether the context menu is being shown \n\t */\n\tshowContextMenu: boolean = false\n\t/**\n\t * @author Alex Hodson\n\t * @description handles a change in the components input properties\n\t * @param changes the changes to the component properties\n\t */\n\tngOnChanges(changes: SimpleChanges): void {\n\t\tif (changes['positions']) {\n\t\t\tthis.showContextMenu = true\n\t\t}\n\t}\n\t/**\n\t * @author Alex Hodson\n\t * @description handles a click on a menu item\n\t * @param item the menu item clicked\n\t */\n\thandleItemClick(item: ContextMenuItem): void {\n\t\tthis.handleClick.emit(item)\n\t}\n\t/**\n\t * @author Alex Hodson\n\t * @description toggles the component member which indicates the context menu visibility\n\t */\n\ttoggleContextMenu(): void {\n\t\tthis.showContextMenu = !this.showContextMenu\n\t}\n\t/**\n\t * @author Alex Hodson\n\t * @description handles a click outside of the context menu which will toggle the context menu display\n\t */\n\t@HostListener('document:click')\n\t@HostListener('document:contextmenu', ['$event'])\n @HostListener('document:keyup.escape')\n handleClose(): void {\n if (this.showContextMenu) this.toggleContextMenu()\n }\n}\n","<div id=\"context-menu\" [ngClass]=\"{ 'show': showContextMenu }\" [ngStyle]=\"positions\">\n\t<div id=\"context-menu-container\" class=\"context-menu\">\n\t\t<ul class=\"menu\">\n\t\t\t<li class=\"text-grey\" *ngFor=\"let element of items\" (click)=\"handleItemClick(element)\">{{element.label}}</li>\n\t\t</ul>\n\t</div>\n</div>","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ContextMenuComponent } from './components/context-menu/context-menu.component';\n\n\n\n@NgModule({\n declarations: [\n ContextMenuComponent\n ],\n imports: [\n CommonModule\n ],\n\texports: [\n ContextMenuComponent\n\t]\n})\nexport class ContextMenuModule { }\n","/*\r\n * Public API Surface of windows-plus-utilities\r\n */\r\n\r\nexport * from './components/context-menu/context-menu.component';\r\nexport * from './context-menu.module';\r\nexport * from './util/interface/items/context-menu-items.interface'\r\nexport * from './util/interface/main/context-menu.interface'\r\nexport * from './util/interface/position/context-menu-positions.interface'\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -1,10 +1,14 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Component, Input, HostListener, NgModule } from '@angular/core';
2
+ import { EventEmitter, Component, Input, Output, HostListener, NgModule } from '@angular/core';
3
3
  import * as i1 from '@angular/common';
4
4
  import { CommonModule } from '@angular/common';
5
5
 
6
6
  class ContextMenuComponent {
7
7
  constructor() {
8
+ /**
9
+ * @description an event emitter which handles a menu item click
10
+ */
11
+ this.handleClick = new EventEmitter();
8
12
  /**
9
13
  * @description indicates whether the context menu is being shown
10
14
  */
@@ -20,6 +24,14 @@ class ContextMenuComponent {
20
24
  this.showContextMenu = true;
21
25
  }
22
26
  }
27
+ /**
28
+ * @author Alex Hodson
29
+ * @description handles a click on a menu item
30
+ * @param item the menu item clicked
31
+ */
32
+ handleItemClick(item) {
33
+ this.handleClick.emit(item);
34
+ }
23
35
  /**
24
36
  * @author Alex Hodson
25
37
  * @description toggles the component member which indicates the context menu visibility
@@ -37,14 +49,16 @@ class ContextMenuComponent {
37
49
  }
38
50
  }
39
51
  ContextMenuComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: ContextMenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
40
- ContextMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.2", type: ContextMenuComponent, selector: "wp-context-menu", inputs: { items: "items", positions: "positions" }, host: { listeners: { "document:click": "handleClose()", "document:contextmenu": "handleClose($event)", "document:keyup.escape": "handleClose()" } }, usesOnChanges: true, ngImport: i0, template: "<div id=\"context-menu\" [ngClass]=\"{ 'show': showContextMenu }\" [ngStyle]=\"positions\">\n\t<div id=\"context-menu-container\" class=\"context-menu\">\n\t\t<ul class=\"menu\">\n\t\t\t<li class=\"text-grey\">Edit</li>\n\t\t\t<li class=\"text-grey\">Delete</li>\n\t\t</ul>\n\t</div>\n</div>", styles: ["#context-menu.show{display:block;position:absolute;left:0;right:0}#context-menu{display:none;position:relative;max-width:100px;width:100px}#context-menu #context-menu-container{border:1px solid var(--wp-lightGrey);background:#FFF;width:100%;box-shadow:0 8px 16px #0000004d}#context-menu #context-menu-container ul{list-style-type:none;padding:0;margin:0}#context-menu #context-menu-container ul li{padding:.5rem 1rem;border-bottom:1px solid var(--wp-lightGrey)}#context-menu #context-menu-container ul li:hover{background:var(--wp-lightGrey);cursor:pointer}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] });
52
+ ContextMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.2", type: ContextMenuComponent, selector: "wp-context-menu", inputs: { items: "items", positions: "positions" }, outputs: { handleClick: "handleClick" }, host: { listeners: { "document:click": "handleClose()", "document:contextmenu": "handleClose($event)", "document:keyup.escape": "handleClose()" } }, usesOnChanges: true, ngImport: i0, template: "<div id=\"context-menu\" [ngClass]=\"{ 'show': showContextMenu }\" [ngStyle]=\"positions\">\n\t<div id=\"context-menu-container\" class=\"context-menu\">\n\t\t<ul class=\"menu\">\n\t\t\t<li class=\"text-grey\" *ngFor=\"let element of items\" (click)=\"handleItemClick(element)\">{{element.label}}</li>\n\t\t</ul>\n\t</div>\n</div>", styles: ["#context-menu.show{display:block;position:absolute;left:0;right:0}#context-menu{display:none;position:relative;max-width:100px;width:100px}#context-menu #context-menu-container{border:1px solid var(--wp-lightGrey);background:#FFF;width:100%;box-shadow:0 8px 16px #0000004d}#context-menu #context-menu-container ul{list-style-type:none;padding:0;margin:0}#context-menu #context-menu-container ul li{padding:.5rem 1rem;border-bottom:1px solid var(--wp-lightGrey)}#context-menu #context-menu-container ul li:hover{background:var(--wp-lightGrey);cursor:pointer}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] });
41
53
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: ContextMenuComponent, decorators: [{
42
54
  type: Component,
43
- args: [{ selector: 'wp-context-menu', template: "<div id=\"context-menu\" [ngClass]=\"{ 'show': showContextMenu }\" [ngStyle]=\"positions\">\n\t<div id=\"context-menu-container\" class=\"context-menu\">\n\t\t<ul class=\"menu\">\n\t\t\t<li class=\"text-grey\">Edit</li>\n\t\t\t<li class=\"text-grey\">Delete</li>\n\t\t</ul>\n\t</div>\n</div>", styles: ["#context-menu.show{display:block;position:absolute;left:0;right:0}#context-menu{display:none;position:relative;max-width:100px;width:100px}#context-menu #context-menu-container{border:1px solid var(--wp-lightGrey);background:#FFF;width:100%;box-shadow:0 8px 16px #0000004d}#context-menu #context-menu-container ul{list-style-type:none;padding:0;margin:0}#context-menu #context-menu-container ul li{padding:.5rem 1rem;border-bottom:1px solid var(--wp-lightGrey)}#context-menu #context-menu-container ul li:hover{background:var(--wp-lightGrey);cursor:pointer}\n"] }]
55
+ args: [{ selector: 'wp-context-menu', template: "<div id=\"context-menu\" [ngClass]=\"{ 'show': showContextMenu }\" [ngStyle]=\"positions\">\n\t<div id=\"context-menu-container\" class=\"context-menu\">\n\t\t<ul class=\"menu\">\n\t\t\t<li class=\"text-grey\" *ngFor=\"let element of items\" (click)=\"handleItemClick(element)\">{{element.label}}</li>\n\t\t</ul>\n\t</div>\n</div>", styles: ["#context-menu.show{display:block;position:absolute;left:0;right:0}#context-menu{display:none;position:relative;max-width:100px;width:100px}#context-menu #context-menu-container{border:1px solid var(--wp-lightGrey);background:#FFF;width:100%;box-shadow:0 8px 16px #0000004d}#context-menu #context-menu-container ul{list-style-type:none;padding:0;margin:0}#context-menu #context-menu-container ul li{padding:.5rem 1rem;border-bottom:1px solid var(--wp-lightGrey)}#context-menu #context-menu-container ul li:hover{background:var(--wp-lightGrey);cursor:pointer}\n"] }]
44
56
  }], propDecorators: { items: [{
45
57
  type: Input
46
58
  }], positions: [{
47
59
  type: Input
60
+ }], handleClick: [{
61
+ type: Output
48
62
  }], handleClose: [{
49
63
  type: HostListener,
50
64
  args: ['document:click']
@@ -1 +1 @@
1
- {"version":3,"file":"windows-plus-utilities-context-menu.mjs","sources":["../../../projects/windows-plus-utilities/context-menu/components/context-menu/context-menu.component.ts","../../../projects/windows-plus-utilities/context-menu/components/context-menu/context-menu.component.html","../../../projects/windows-plus-utilities/context-menu/context-menu.module.ts","../../../projects/windows-plus-utilities/context-menu/public-api.ts","../../../projects/windows-plus-utilities/context-menu/windows-plus-utilities-context-menu.ts"],"sourcesContent":["import { Component, HostListener, Input, OnChanges, SimpleChanges } from '@angular/core';\nimport { ContextMenuItem } from '../../public-api'\nimport { ContextMenuPosition } from '../../util/interface/position/context-menu-positions.interface'\n\n@Component({\n selector: 'wp-context-menu',\n templateUrl: './context-menu.component.html',\n styleUrls: ['./context-menu.component.sass']\n})\nexport class ContextMenuComponent implements OnChanges {\n\t/**\n\t * @description an array containing the context menu items to be displayed\n\t */\n\t@Input() items: ContextMenuItem[]\n\t/**\n\t * @description an object containing the required context menu position\n\t */\n\t@Input() positions: ContextMenuPosition\n\t/**\n\t * @description indicates whether the context menu is being shown \n\t */\n\tshowContextMenu: boolean = false\n\t/**\n\t * @author Alex Hodson\n\t * @description handles a change in the components input properties\n\t * @param changes the changes to the component properties\n\t */\n\tngOnChanges(changes: SimpleChanges): void {\n\t\tif (changes['positions']) {\n\t\t\tthis.showContextMenu = true\n\t\t}\n\t}\n\t/**\n\t * @author Alex Hodson\n\t * @description toggles the component member which indicates the context menu visibility\n\t */\n\ttoggleContextMenu(): void {\n\t\tthis.showContextMenu = !this.showContextMenu\n\t}\n\t/**\n\t * @author Alex Hodson\n\t * @description handles a click outside of the context menu which will toggle the context menu display\n\t */\n\t@HostListener('document:click')\n\t@HostListener('document:contextmenu', ['$event'])\n @HostListener('document:keyup.escape')\n handleClose(): void {\n if (this.showContextMenu) this.toggleContextMenu()\n }\n}\n","<div id=\"context-menu\" [ngClass]=\"{ 'show': showContextMenu }\" [ngStyle]=\"positions\">\n\t<div id=\"context-menu-container\" class=\"context-menu\">\n\t\t<ul class=\"menu\">\n\t\t\t<li class=\"text-grey\">Edit</li>\n\t\t\t<li class=\"text-grey\">Delete</li>\n\t\t</ul>\n\t</div>\n</div>","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ContextMenuComponent } from './components/context-menu/context-menu.component';\n\n\n\n@NgModule({\n declarations: [\n ContextMenuComponent\n ],\n imports: [\n CommonModule\n ],\n\texports: [\n ContextMenuComponent\n\t]\n})\nexport class ContextMenuModule { }\n","/*\r\n * Public API Surface of windows-plus-utilities\r\n */\r\n\r\nexport * from './components/context-menu/context-menu.component';\r\nexport * from './context-menu.module';\r\nexport * from './util/interface/items/context-menu-items.interface'\r\nexport * from './util/interface/position/context-menu-positions.interface'\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;MASa,oBAAoB,CAAA;AALjC,IAAA,WAAA,GAAA;AAcC;;AAEG;QACH,IAAe,CAAA,eAAA,GAAY,KAAK,CAAA;AA4BhC,KAAA;AA3BA;;;;AAIG;AACH,IAAA,WAAW,CAAC,OAAsB,EAAA;AACjC,QAAA,IAAI,OAAO,CAAC,WAAW,CAAC,EAAE;AACzB,YAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAA;AAC3B,SAAA;KACD;AACD;;;AAGG;IACH,iBAAiB,GAAA;AAChB,QAAA,IAAI,CAAC,eAAe,GAAG,CAAC,IAAI,CAAC,eAAe,CAAA;KAC5C;AACD;;;AAGG;IAIF,WAAW,GAAA;QACT,IAAI,IAAI,CAAC,eAAe;YAAE,IAAI,CAAC,iBAAiB,EAAE,CAAA;KACnD;;iHAvCU,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAApB,oBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,oBAAoB,qRCTjC,qSAOM,EAAA,MAAA,EAAA,CAAA,ijBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FDEO,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBALhC,SAAS;+BACE,iBAAiB,EAAA,QAAA,EAAA,qSAAA,EAAA,MAAA,EAAA,CAAA,ijBAAA,CAAA,EAAA,CAAA;8BAQnB,KAAK,EAAA,CAAA;sBAAb,KAAK;gBAIG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBA6BL,WAAW,EAAA,CAAA;sBAHX,YAAY;uBAAC,gBAAgB,CAAA;;sBAC7B,YAAY;uBAAC,sBAAsB,EAAE,CAAC,QAAQ,CAAC,CAAA;;sBAC9C,YAAY;uBAAC,uBAAuB,CAAA;;;ME5B1B,iBAAiB,CAAA;;8GAAjB,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAjB,iBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,EAT1B,YAAA,EAAA,CAAA,oBAAoB,CAGpB,EAAA,OAAA,EAAA,CAAA,YAAY,aAGZ,oBAAoB,CAAA,EAAA,CAAA,CAAA;AAGX,iBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,YAN1B,YAAY,CAAA,EAAA,CAAA,CAAA;2FAMH,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAX7B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE;wBACZ,oBAAoB;AACrB,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,YAAY;AACb,qBAAA;AACF,oBAAA,OAAO,EAAE;wBACN,oBAAoB;AACtB,qBAAA;AACD,iBAAA,CAAA;;;AChBD;;AAEG;;ACFH;;AAEG;;;;"}
1
+ {"version":3,"file":"windows-plus-utilities-context-menu.mjs","sources":["../../../projects/windows-plus-utilities/context-menu/components/context-menu/context-menu.component.ts","../../../projects/windows-plus-utilities/context-menu/components/context-menu/context-menu.component.html","../../../projects/windows-plus-utilities/context-menu/context-menu.module.ts","../../../projects/windows-plus-utilities/context-menu/public-api.ts","../../../projects/windows-plus-utilities/context-menu/windows-plus-utilities-context-menu.ts"],"sourcesContent":["import { Component, EventEmitter, HostListener, Input, OnChanges, Output, SimpleChanges } from '@angular/core';\nimport { ContextMenuPosition } from '../../util/interface/position/context-menu-positions.interface'\nimport { ContextMenuItem } from './../../util/interface/items/context-menu-items.interface'\n\n@Component({\n selector: 'wp-context-menu',\n templateUrl: './context-menu.component.html',\n styleUrls: ['./context-menu.component.sass']\n})\nexport class ContextMenuComponent implements OnChanges {\n\t/**\n\t * @description an array containing the context menu items to be displayed\n\t */\n\t@Input() items: ContextMenuItem[]\n\t/**\n\t * @description an object containing the required context menu position\n\t */\n\t@Input() positions: ContextMenuPosition\n\t/**\n\t * @description an event emitter which handles a menu item click\n\t */\n\t@Output() handleClick: EventEmitter<ContextMenuItem> = new EventEmitter<ContextMenuItem>()\n\t/**\n\t * @description indicates whether the context menu is being shown \n\t */\n\tshowContextMenu: boolean = false\n\t/**\n\t * @author Alex Hodson\n\t * @description handles a change in the components input properties\n\t * @param changes the changes to the component properties\n\t */\n\tngOnChanges(changes: SimpleChanges): void {\n\t\tif (changes['positions']) {\n\t\t\tthis.showContextMenu = true\n\t\t}\n\t}\n\t/**\n\t * @author Alex Hodson\n\t * @description handles a click on a menu item\n\t * @param item the menu item clicked\n\t */\n\thandleItemClick(item: ContextMenuItem): void {\n\t\tthis.handleClick.emit(item)\n\t}\n\t/**\n\t * @author Alex Hodson\n\t * @description toggles the component member which indicates the context menu visibility\n\t */\n\ttoggleContextMenu(): void {\n\t\tthis.showContextMenu = !this.showContextMenu\n\t}\n\t/**\n\t * @author Alex Hodson\n\t * @description handles a click outside of the context menu which will toggle the context menu display\n\t */\n\t@HostListener('document:click')\n\t@HostListener('document:contextmenu', ['$event'])\n @HostListener('document:keyup.escape')\n handleClose(): void {\n if (this.showContextMenu) this.toggleContextMenu()\n }\n}\n","<div id=\"context-menu\" [ngClass]=\"{ 'show': showContextMenu }\" [ngStyle]=\"positions\">\n\t<div id=\"context-menu-container\" class=\"context-menu\">\n\t\t<ul class=\"menu\">\n\t\t\t<li class=\"text-grey\" *ngFor=\"let element of items\" (click)=\"handleItemClick(element)\">{{element.label}}</li>\n\t\t</ul>\n\t</div>\n</div>","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ContextMenuComponent } from './components/context-menu/context-menu.component';\n\n\n\n@NgModule({\n declarations: [\n ContextMenuComponent\n ],\n imports: [\n CommonModule\n ],\n\texports: [\n ContextMenuComponent\n\t]\n})\nexport class ContextMenuModule { }\n","/*\r\n * Public API Surface of windows-plus-utilities\r\n */\r\n\r\nexport * from './components/context-menu/context-menu.component';\r\nexport * from './context-menu.module';\r\nexport * from './util/interface/items/context-menu-items.interface'\r\nexport * from './util/interface/main/context-menu.interface'\r\nexport * from './util/interface/position/context-menu-positions.interface'\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "windows-plus-utilities",
3
- "version": "0.0.45",
3
+ "version": "0.0.47",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^15.1.2",
6
6
  "@angular/core": "^15.1.2",