concepto-user-controls 0.0.6 → 0.0.7

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,10 +1,11 @@
1
- import { Component, HostListener, Input } from '@angular/core';
1
+ import { Component, EventEmitter, HostListener, Input, Output } from '@angular/core';
2
2
  import { CommonModule } from '@angular/common';
3
3
  import * as i0 from "@angular/core";
4
4
  import * as i1 from "@angular/common";
5
5
  export class ConceptoContextMenuComponent {
6
6
  elRef;
7
7
  nodes = [];
8
+ itemSelected = new EventEmitter();
8
9
  menuTree = [];
9
10
  visible = false;
10
11
  pos = { x: 0, y: 0 };
@@ -48,6 +49,7 @@ export class ConceptoContextMenuComponent {
48
49
  onOptionClick(option) {
49
50
  if (!option.children || option.children.length === 0) {
50
51
  console.log('Selected:', option);
52
+ this.itemSelected.emit(option.NodesId);
51
53
  this.hide();
52
54
  }
53
55
  }
@@ -55,15 +57,17 @@ export class ConceptoContextMenuComponent {
55
57
  return !!option.children && option.children.length > 0;
56
58
  }
57
59
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ConceptoContextMenuComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
58
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: ConceptoContextMenuComponent, isStandalone: true, selector: "concepto-context-menu", inputs: { nodes: "nodes" }, host: { listeners: { "document:click": "onOutsideClick($event)" } }, usesOnChanges: true, ngImport: i0, template: "<div class=\"context-menu\" *ngIf=\"visible\" [ngStyle]=\"{ top: pos.y + 'px', left: pos.x + 'px' }\">\r\n <ul class=\"menu-root\">\r\n <ng-container *ngFor=\"let item of menuTree\">\r\n <ng-container *ngTemplateOutlet=\"renderNode; context: { $implicit: item }\"></ng-container>\r\n </ng-container>\r\n </ul>\r\n</div>\r\n\r\n<ng-template #renderNode let-node>\r\n <li class=\"menu-item\" [class.has-children]=\"hasChildren(node)\">\r\n <div (click)=\"onOptionClick(node)\">\r\n @if (node.NodesImg) {\r\n <img [src]=\"node.NodesImg\" class=\"icon\" />\r\n }\r\n @if (!node.NodesImg) {\r\n <div class=\"icon\"></div>\r\n }\r\n {{ node.NodesText }}\r\n </div>\r\n <ul class=\"submenu\" *ngIf=\"hasChildren(node)\">\r\n <ng-container *ngFor=\"let child of node.children\">\r\n <ng-container *ngTemplateOutlet=\"renderNode; context: { $implicit: child }\"></ng-container>\r\n </ng-container>\r\n </ul>\r\n </li>\r\n</ng-template>", styles: [".context-menu{position:fixed;z-index:9999;background-color:#fff;border:1px solid #ccc;box-shadow:2px 2px 8px #00000026;min-width:200px;font-family:sans-serif}.menu-root,.submenu{list-style:none;margin:0;padding:0}.menu-item{position:relative}.menu-item>div{padding:8px 12px;cursor:pointer;display:flex;align-items:center;white-space:nowrap}.menu-item>div:hover{background-color:#f0f0f0}.menu-item.has-children>div:after{content:\"\\25b6\";margin-left:auto;font-size:10px}.submenu{display:none;position:absolute;top:0;left:100%;border:1px solid #ccc;background-color:#fff;min-width:180px;box-shadow:2px 2px 6px #0000001a}.menu-item:hover>.submenu{display:block}.icon{width:16px;height:16px;margin-right:8px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] });
60
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: ConceptoContextMenuComponent, isStandalone: true, selector: "concepto-context-menu", inputs: { nodes: "nodes" }, outputs: { itemSelected: "itemSelected" }, host: { listeners: { "document:click": "onOutsideClick($event)" } }, usesOnChanges: true, ngImport: i0, template: "<div class=\"context-menu\" *ngIf=\"visible\" [ngStyle]=\"{ top: pos.y + 'px', left: pos.x + 'px' }\">\r\n <ul class=\"menu-root\">\r\n <ng-container *ngFor=\"let item of menuTree\">\r\n <ng-container *ngTemplateOutlet=\"renderNode; context: { $implicit: item }\"></ng-container>\r\n </ng-container>\r\n </ul>\r\n</div>\r\n\r\n<ng-template #renderNode let-node>\r\n <li class=\"menu-item\" [class.has-children]=\"hasChildren(node)\">\r\n <div (click)=\"onOptionClick(node)\">\r\n @if (node.NodesImg) {\r\n <img [src]=\"node.NodesImg\" class=\"icon\" />\r\n }\r\n @if (!node.NodesImg) {\r\n <div class=\"icon\"></div>\r\n }\r\n {{ node.NodesText }}\r\n </div>\r\n <ul class=\"submenu\" *ngIf=\"hasChildren(node)\">\r\n <ng-container *ngFor=\"let child of node.children\">\r\n <ng-container *ngTemplateOutlet=\"renderNode; context: { $implicit: child }\"></ng-container>\r\n </ng-container>\r\n </ul>\r\n </li>\r\n</ng-template>", styles: [".context-menu{position:fixed;z-index:9999;background-color:#fff;border:1px solid #ccc;box-shadow:2px 2px 8px #00000026;min-width:200px;font-family:sans-serif}.menu-root,.submenu{list-style:none;margin:0;padding:0}.menu-item{position:relative}.menu-item>div{padding:8px 12px;cursor:pointer;display:flex;align-items:center;white-space:nowrap}.menu-item>div:hover{background-color:#f0f0f0}.menu-item.has-children>div:after{content:\"\\25b6\";margin-left:auto;font-size:10px}.submenu{display:none;position:absolute;top:0;left:100%;border:1px solid #ccc;background-color:#fff;min-width:180px;box-shadow:2px 2px 6px #0000001a}.menu-item:hover>.submenu{display:block}.icon{width:16px;height:16px;margin-right:8px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] });
59
61
  }
60
62
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ConceptoContextMenuComponent, decorators: [{
61
63
  type: Component,
62
64
  args: [{ selector: 'concepto-context-menu', standalone: true, imports: [CommonModule], template: "<div class=\"context-menu\" *ngIf=\"visible\" [ngStyle]=\"{ top: pos.y + 'px', left: pos.x + 'px' }\">\r\n <ul class=\"menu-root\">\r\n <ng-container *ngFor=\"let item of menuTree\">\r\n <ng-container *ngTemplateOutlet=\"renderNode; context: { $implicit: item }\"></ng-container>\r\n </ng-container>\r\n </ul>\r\n</div>\r\n\r\n<ng-template #renderNode let-node>\r\n <li class=\"menu-item\" [class.has-children]=\"hasChildren(node)\">\r\n <div (click)=\"onOptionClick(node)\">\r\n @if (node.NodesImg) {\r\n <img [src]=\"node.NodesImg\" class=\"icon\" />\r\n }\r\n @if (!node.NodesImg) {\r\n <div class=\"icon\"></div>\r\n }\r\n {{ node.NodesText }}\r\n </div>\r\n <ul class=\"submenu\" *ngIf=\"hasChildren(node)\">\r\n <ng-container *ngFor=\"let child of node.children\">\r\n <ng-container *ngTemplateOutlet=\"renderNode; context: { $implicit: child }\"></ng-container>\r\n </ng-container>\r\n </ul>\r\n </li>\r\n</ng-template>", styles: [".context-menu{position:fixed;z-index:9999;background-color:#fff;border:1px solid #ccc;box-shadow:2px 2px 8px #00000026;min-width:200px;font-family:sans-serif}.menu-root,.submenu{list-style:none;margin:0;padding:0}.menu-item{position:relative}.menu-item>div{padding:8px 12px;cursor:pointer;display:flex;align-items:center;white-space:nowrap}.menu-item>div:hover{background-color:#f0f0f0}.menu-item.has-children>div:after{content:\"\\25b6\";margin-left:auto;font-size:10px}.submenu{display:none;position:absolute;top:0;left:100%;border:1px solid #ccc;background-color:#fff;min-width:180px;box-shadow:2px 2px 6px #0000001a}.menu-item:hover>.submenu{display:block}.icon{width:16px;height:16px;margin-right:8px}\n"] }]
63
65
  }], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { nodes: [{
64
66
  type: Input
67
+ }], itemSelected: [{
68
+ type: Output
65
69
  }], onOutsideClick: [{
66
70
  type: HostListener,
67
71
  args: ['document:click', ['$event']]
68
72
  }] } });
69
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uY2VwdG8tY29udGV4dC1tZW51LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbmNlcHRvLXVzZXItY29udHJvbHMvc3JjL2xpYi9jb25jZXB0by1jb250ZXh0LW1lbnUvY29uY2VwdG8tY29udGV4dC1tZW51LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbmNlcHRvLXVzZXItY29udHJvbHMvc3JjL2xpYi9jb25jZXB0by1jb250ZXh0LW1lbnUvY29uY2VwdG8tY29udGV4dC1tZW51LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWMsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7OztBQWtCL0MsTUFBTSxPQUFPLDRCQUE0QjtJQU9uQjtJQUxYLEtBQUssR0FBaUIsRUFBRSxDQUFDO0lBQ2xDLFFBQVEsR0FBaUIsRUFBRSxDQUFDO0lBQzVCLE9BQU8sR0FBRyxLQUFLLENBQUM7SUFDaEIsR0FBRyxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUM7SUFFckIsWUFBb0IsS0FBaUI7UUFBakIsVUFBSyxHQUFMLEtBQUssQ0FBWTtJQUFHLENBQUM7SUFFekMsV0FBVztRQUNULE1BQU0sR0FBRyxHQUFHLElBQUksR0FBRyxFQUFzQixDQUFDO1FBQzFDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUVwRSxNQUFNLEtBQUssR0FBaUIsRUFB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IENvbXBvbmVudCwgRWxlbWVudFJlZiwgSG9zdExpc3RlbmVyLCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgTm9kZU9wdGlvbiB7XHJcbiAgTm9kZXNJZDogc3RyaW5nO1xyXG4gIE5vZGVzVGV4dDogc3RyaW5nO1xyXG4gIE5vZGVzUGFyZW50SWQ6IHN0cmluZztcclxuICBOb2Rlc0ltZzogc3RyaW5nO1xyXG4gIGNoaWxkcmVuPzogTm9kZU9wdGlvbltdO1xyXG59XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2NvbmNlcHRvLWNvbnRleHQtbWVudScsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vY29uY2VwdG8tY29udGV4dC1tZW51LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vY29uY2VwdG8tY29udGV4dC1tZW51LmNvbXBvbmVudC5jc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDb25jZXB0b0NvbnRleHRNZW51Q29tcG9uZW50IHtcclxuXHJcbiAgQElucHV0KCkgbm9kZXM6IE5vZGVPcHRpb25bXSA9IFtdO1xyXG4gIG1lbnVUcmVlOiBOb2RlT3B0aW9uW10gPSBbXTtcclxuICB2aXNpYmxlID0gZmFsc2U7XHJcbiAgcG9zID0geyB4OiAwLCB5OiAwIH07XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZWxSZWY6IEVsZW1lbnRSZWYpIHt9XHJcblxyXG4gIG5nT25DaGFuZ2VzKCk6IHZvaWQge1xyXG4gICAgY29uc3QgbWFwID0gbmV3IE1hcDxzdHJpbmcsIE5vZGVPcHRpb24+KCk7XHJcbiAgICB0aGlzLm5vZGVzLmZvckVhY2gobiA9PiBtYXAuc2V0KG4uTm9kZXNJZCwgeyAuLi5uLCBjaGlsZHJlbjogW10gfSkpO1xyXG5cclxuICAgIGNvbnN0IHJvb3RzOiBOb2RlT3B0aW9uW10gPSBbXTtcclxuICAgIG1hcC5mb3JFYWNoKG4gPT4ge1xyXG4gICAgICBpZiAobi5Ob2Rlc1BhcmVudElkICYmIG1hcC5oYXMobi5Ob2Rlc1BhcmVudElkKSkge1xyXG4gICAgICAgIG1hcC5nZXQobi5Ob2Rlc1BhcmVudElkKT8uY2hpbGRyZW4/LnB1c2gobik7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcm9vdHMucHVzaChuKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICB0aGlzLm1lbnVUcmVlID0gcm9vdHM7XHJcbiAgfVxyXG5cclxuICBzaG93QXRFdmVudChldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xyXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgIGNvbnN0IHggPSBldmVudC5jbGllbnRYO1xyXG4gICAgY29uc3QgeSA9IGV2ZW50LmNsaWVudFk7XHJcbiAgICB0aGlzLnZpc2libGUgPSB0cnVlO1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIGNvbnN0IG1lbnUgPSB0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignLmNvbnRleHQtbWVudScpO1xyXG4gICAgICBjb25zdCByZWN0ID0gbWVudS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcclxuICAgICAgdGhpcy5wb3MueCA9IHggKyByZWN0LndpZHRoID4gd2luZG93LmlubmVyV2lkdGggPyB3aW5kb3cuaW5uZXJXaWR0aCAtIHJlY3Qud2lkdGggLSAxMCA6IHg7XHJcbiAgICAgIHRoaXMucG9zLnkgPSB5ICsgcmVjdC5oZWlnaHQgPiB3aW5kb3cuaW5uZXJIZWlnaHQgPyB3aW5kb3cuaW5uZXJIZWlnaHQgLSByZWN0LmhlaWdodCAtIDEwIDogeTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgaGlkZSgpOiB2b2lkIHtcclxuICAgIHRoaXMudmlzaWJsZSA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6Y2xpY2snLCBbJyRldmVudCddKVxyXG4gIG9uT3V0c2lkZUNsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMuZWxSZWYubmF0aXZlRWxlbWVudC5jb250YWlucyhldmVudC50YXJnZXQpKSB7XHJcbiAgICAgIHRoaXMuaGlkZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25PcHRpb25DbGljayhvcHRpb246IE5vZGVPcHRpb24pOiB2b2lkIHtcclxuICAgIGlmICghb3B0aW9uLmNoaWxkcmVuIHx8IG9wdGlvbi5jaGlsZHJlbi5sZW5ndGggPT09IDApIHtcclxuICAgICAgY29uc29sZS5sb2coJ1NlbGVjdGVkOicsIG9wdGlvbik7XHJcbiAgICAgIHRoaXMuaGlkZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaGFzQ2hpbGRyZW4ob3B0aW9uOiBOb2RlT3B0aW9uKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gISFvcHRpb24uY2hpbGRyZW4gJiYgb3B0aW9uLmNoaWxkcmVuLmxlbmd0aCA+IDA7XHJcbiAgfVxyXG59XHJcblxyXG4iLCI8ZGl2IGNsYXNzPVwiY29udGV4dC1tZW51XCIgKm5nSWY9XCJ2aXNpYmxlXCIgW25nU3R5bGVdPVwieyB0b3A6IHBvcy55ICsgJ3B4JywgbGVmdDogcG9zLnggKyAncHgnIH1cIj5cclxuICAgIDx1bCBjbGFzcz1cIm1lbnUtcm9vdFwiPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgbWVudVRyZWVcIj5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInJlbmRlck5vZGU7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiBpdGVtIH1cIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDwvdWw+XHJcbjwvZGl2PlxyXG5cclxuPG5nLXRlbXBsYXRlICNyZW5kZXJOb2RlIGxldC1ub2RlPlxyXG4gICAgPGxpIGNsYXNzPVwibWVudS1pdGVtXCIgW2NsYXNzLmhhcy1jaGlsZHJlbl09XCJoYXNDaGlsZHJlbihub2RlKVwiPlxyXG4gICAgICAgIDxkaXYgKGNsaWNrKT1cIm9uT3B0aW9uQ2xpY2sobm9kZSlcIj5cclxuICAgICAgICAgICAgQGlmIChub2RlLk5vZGVzSW1nKSB7XHJcbiAgICAgICAgICAgIDxpbWcgW3NyY109XCJub2RlLk5vZGVzSW1nXCIgY2xhc3M9XCJpY29uXCIgLz5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBAaWYgKCFub2RlLk5vZGVzSW1nKSB7XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpY29uXCI+PC9kaXY+XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAge3sgbm9kZS5Ob2Rlc1RleHQgfX1cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8dWwgY2xhc3M9XCJzdWJtZW51XCIgKm5nSWY9XCJoYXNDaGlsZHJlbihub2RlKVwiPlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBjaGlsZCBvZiBub2RlLmNoaWxkcmVuXCI+XHJcbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwicmVuZGVyTm9kZTsgY29udGV4dDogeyAkaW1wbGljaXQ6IGNoaWxkIH1cIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPC91bD5cclxuICAgIDwvbGk+XHJcbjwvbmctdGVtcGxhdGU+Il19
73
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uY2VwdG8tY29udGV4dC1tZW51LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbmNlcHRvLXVzZXItY29udHJvbHMvc3JjL2xpYi9jb25jZXB0by1jb250ZXh0LW1lbnUvY29uY2VwdG8tY29udGV4dC1tZW51LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbmNlcHRvLXVzZXItY29udHJvbHMvc3JjL2xpYi9jb25jZXB0by1jb250ZXh0LW1lbnUvY29uY2VwdG8tY29udGV4dC1tZW51LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWMsWUFBWSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pHLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7O0FBa0IvQyxNQUFNLE9BQU8sNEJBQTRCO0lBUW5CO0lBTlgsS0FBSyxHQUFpQixFQUFFLENBQUM7SUFDeEIsWUFBWSxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7SUFDcEQsUUFBUSxHQUFpQixFQUFFLENBQUM7SUFDNUIsT0FBTyxHQUFHLEtBQUssQ0FBQztJQUNoQixHQUFHLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQztJQUVyQixZQUFvQixLQUFpQjtRQUFqQixVQUFLLEdBQUwsS0FBSyxDQUFZO0lBQUcsQ0FBQztJQUV6QyxXQUFXO1FBQ1QsTUFBTSxHQUFHLEdBQUcsSUFBSSxHQUFHLEVBQXNCLENBQUM7UUFDMUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRSxRQUFR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LFlBQVksQ0FBQzsrRUFNZCxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0ksWUFBWTtzQkFBckIsTUFBTTtnQkF3Q1AsY0FBYztzQkFEYixZQUFZO3VCQUFDLGdCQUFnQixFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIEhvc3RMaXN0ZW5lciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgTm9kZU9wdGlvbiB7XHJcbiAgTm9kZXNJZDogc3RyaW5nO1xyXG4gIE5vZGVzVGV4dDogc3RyaW5nO1xyXG4gIE5vZGVzUGFyZW50SWQ6IHN0cmluZztcclxuICBOb2Rlc0ltZzogc3RyaW5nO1xyXG4gIGNoaWxkcmVuPzogTm9kZU9wdGlvbltdO1xyXG59XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2NvbmNlcHRvLWNvbnRleHQtbWVudScsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vY29uY2VwdG8tY29udGV4dC1tZW51LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vY29uY2VwdG8tY29udGV4dC1tZW51LmNvbXBvbmVudC5jc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDb25jZXB0b0NvbnRleHRNZW51Q29tcG9uZW50IHtcclxuXHJcbiAgQElucHV0KCkgbm9kZXM6IE5vZGVPcHRpb25bXSA9IFtdO1xyXG4gIEBPdXRwdXQoKSBpdGVtU2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcclxuICBtZW51VHJlZTogTm9kZU9wdGlvbltdID0gW107XHJcbiAgdmlzaWJsZSA9IGZhbHNlO1xyXG4gIHBvcyA9IHsgeDogMCwgeTogMCB9O1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVsUmVmOiBFbGVtZW50UmVmKSB7fVxyXG5cclxuICBuZ09uQ2hhbmdlcygpOiB2b2lkIHtcclxuICAgIGNvbnN0IG1hcCA9IG5ldyBNYXA8c3RyaW5nLCBOb2RlT3B0aW9uPigpO1xyXG4gICAgdGhpcy5ub2Rlcy5mb3JFYWNoKG4gPT4gbWFwLnNldChuLk5vZGVzSWQsIHsgLi4ubiwgY2hpbGRyZW46IFtdIH0pKTtcclxuXHJcbiAgICBjb25zdCByb290czogTm9kZU9wdGlvbltdID0gW107XHJcbiAgICBtYXAuZm9yRWFjaChuID0+IHtcclxuICAgICAgaWYgKG4uTm9kZXNQYXJlbnRJZCAmJiBtYXAuaGFzKG4uTm9kZXNQYXJlbnRJZCkpIHtcclxuICAgICAgICBtYXAuZ2V0KG4uTm9kZXNQYXJlbnRJZCk/LmNoaWxkcmVuPy5wdXNoKG4pO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHJvb3RzLnB1c2gobik7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgdGhpcy5tZW51VHJlZSA9IHJvb3RzO1xyXG4gIH1cclxuXHJcbiAgc2hvd0F0RXZlbnQoZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcclxuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICBjb25zdCB4ID0gZXZlbnQuY2xpZW50WDtcclxuICAgIGNvbnN0IHkgPSBldmVudC5jbGllbnRZO1xyXG4gICAgdGhpcy52aXNpYmxlID0gdHJ1ZTtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICBjb25zdCBtZW51ID0gdGhpcy5lbFJlZi5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJy5jb250ZXh0LW1lbnUnKTtcclxuICAgICAgY29uc3QgcmVjdCA9IG1lbnUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XHJcbiAgICAgIHRoaXMucG9zLnggPSB4ICsgcmVjdC53aWR0aCA+IHdpbmRvdy5pbm5lcldpZHRoID8gd2luZG93LmlubmVyV2lkdGggLSByZWN0LndpZHRoIC0gMTAgOiB4O1xyXG4gICAgICB0aGlzLnBvcy55ID0geSArIHJlY3QuaGVpZ2h0ID4gd2luZG93LmlubmVySGVpZ2h0ID8gd2luZG93LmlubmVySGVpZ2h0IC0gcmVjdC5oZWlnaHQgLSAxMCA6IHk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGhpZGUoKTogdm9pZCB7XHJcbiAgICB0aGlzLnZpc2libGUgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmNsaWNrJywgWyckZXZlbnQnXSlcclxuICBvbk91dHNpZGVDbGljayhldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoZXZlbnQudGFyZ2V0KSkge1xyXG4gICAgICB0aGlzLmhpZGUoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uT3B0aW9uQ2xpY2sob3B0aW9uOiBOb2RlT3B0aW9uKTogdm9pZCB7XHJcbiAgICBpZiAoIW9wdGlvbi5jaGlsZHJlbiB8fCBvcHRpb24uY2hpbGRyZW4ubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgIGNvbnNvbGUubG9nKCdTZWxlY3RlZDonLCBvcHRpb24pO1xyXG4gICAgICB0aGlzLml0ZW1TZWxlY3RlZC5lbWl0KG9wdGlvbi5Ob2Rlc0lkKTtcclxuICAgICAgdGhpcy5oaWRlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBoYXNDaGlsZHJlbihvcHRpb246IE5vZGVPcHRpb24pOiBib29sZWFuIHtcclxuICAgIHJldHVybiAhIW9wdGlvbi5jaGlsZHJlbiAmJiBvcHRpb24uY2hpbGRyZW4ubGVuZ3RoID4gMDtcclxuICB9XHJcbn1cclxuXHJcbiIsIjxkaXYgY2xhc3M9XCJjb250ZXh0LW1lbnVcIiAqbmdJZj1cInZpc2libGVcIiBbbmdTdHlsZV09XCJ7IHRvcDogcG9zLnkgKyAncHgnLCBsZWZ0OiBwb3MueCArICdweCcgfVwiPlxyXG4gICAgPHVsIGNsYXNzPVwibWVudS1yb290XCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBtZW51VHJlZVwiPlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwicmVuZGVyTm9kZTsgY29udGV4dDogeyAkaW1wbGljaXQ6IGl0ZW0gfVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPC91bD5cclxuPC9kaXY+XHJcblxyXG48bmctdGVtcGxhdGUgI3JlbmRlck5vZGUgbGV0LW5vZGU+XHJcbiAgICA8bGkgY2xhc3M9XCJtZW51LWl0ZW1cIiBbY2xhc3MuaGFzLWNoaWxkcmVuXT1cImhhc0NoaWxkcmVuKG5vZGUpXCI+XHJcbiAgICAgICAgPGRpdiAoY2xpY2spPVwib25PcHRpb25DbGljayhub2RlKVwiPlxyXG4gICAgICAgICAgICBAaWYgKG5vZGUuTm9kZXNJbWcpIHtcclxuICAgICAgICAgICAgPGltZyBbc3JjXT1cIm5vZGUuTm9kZXNJbWdcIiBjbGFzcz1cImljb25cIiAvPlxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIEBpZiAoIW5vZGUuTm9kZXNJbWcpIHtcclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImljb25cIj48L2Rpdj5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB7eyBub2RlLk5vZGVzVGV4dCB9fVxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDx1bCBjbGFzcz1cInN1Ym1lbnVcIiAqbmdJZj1cImhhc0NoaWxkcmVuKG5vZGUpXCI+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGNoaWxkIG9mIG5vZGUuY2hpbGRyZW5cIj5cclxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJyZW5kZXJOb2RlOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogY2hpbGQgfVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8L3VsPlxyXG4gICAgPC9saT5cclxuPC9uZy10ZW1wbGF0ZT4iXX0=
@@ -68,6 +68,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
68
68
  class ConceptoContextMenuComponent {
69
69
  elRef;
70
70
  nodes = [];
71
+ itemSelected = new EventEmitter();
71
72
  menuTree = [];
72
73
  visible = false;
73
74
  pos = { x: 0, y: 0 };
@@ -111,6 +112,7 @@ class ConceptoContextMenuComponent {
111
112
  onOptionClick(option) {
112
113
  if (!option.children || option.children.length === 0) {
113
114
  console.log('Selected:', option);
115
+ this.itemSelected.emit(option.NodesId);
114
116
  this.hide();
115
117
  }
116
118
  }
@@ -118,13 +120,15 @@ class ConceptoContextMenuComponent {
118
120
  return !!option.children && option.children.length > 0;
119
121
  }
120
122
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ConceptoContextMenuComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
121
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: ConceptoContextMenuComponent, isStandalone: true, selector: "concepto-context-menu", inputs: { nodes: "nodes" }, host: { listeners: { "document:click": "onOutsideClick($event)" } }, usesOnChanges: true, ngImport: i0, template: "<div class=\"context-menu\" *ngIf=\"visible\" [ngStyle]=\"{ top: pos.y + 'px', left: pos.x + 'px' }\">\r\n <ul class=\"menu-root\">\r\n <ng-container *ngFor=\"let item of menuTree\">\r\n <ng-container *ngTemplateOutlet=\"renderNode; context: { $implicit: item }\"></ng-container>\r\n </ng-container>\r\n </ul>\r\n</div>\r\n\r\n<ng-template #renderNode let-node>\r\n <li class=\"menu-item\" [class.has-children]=\"hasChildren(node)\">\r\n <div (click)=\"onOptionClick(node)\">\r\n @if (node.NodesImg) {\r\n <img [src]=\"node.NodesImg\" class=\"icon\" />\r\n }\r\n @if (!node.NodesImg) {\r\n <div class=\"icon\"></div>\r\n }\r\n {{ node.NodesText }}\r\n </div>\r\n <ul class=\"submenu\" *ngIf=\"hasChildren(node)\">\r\n <ng-container *ngFor=\"let child of node.children\">\r\n <ng-container *ngTemplateOutlet=\"renderNode; context: { $implicit: child }\"></ng-container>\r\n </ng-container>\r\n </ul>\r\n </li>\r\n</ng-template>", styles: [".context-menu{position:fixed;z-index:9999;background-color:#fff;border:1px solid #ccc;box-shadow:2px 2px 8px #00000026;min-width:200px;font-family:sans-serif}.menu-root,.submenu{list-style:none;margin:0;padding:0}.menu-item{position:relative}.menu-item>div{padding:8px 12px;cursor:pointer;display:flex;align-items:center;white-space:nowrap}.menu-item>div:hover{background-color:#f0f0f0}.menu-item.has-children>div:after{content:\"\\25b6\";margin-left:auto;font-size:10px}.submenu{display:none;position:absolute;top:0;left:100%;border:1px solid #ccc;background-color:#fff;min-width:180px;box-shadow:2px 2px 6px #0000001a}.menu-item:hover>.submenu{display:block}.icon{width:16px;height:16px;margin-right:8px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] });
123
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: ConceptoContextMenuComponent, isStandalone: true, selector: "concepto-context-menu", inputs: { nodes: "nodes" }, outputs: { itemSelected: "itemSelected" }, host: { listeners: { "document:click": "onOutsideClick($event)" } }, usesOnChanges: true, ngImport: i0, template: "<div class=\"context-menu\" *ngIf=\"visible\" [ngStyle]=\"{ top: pos.y + 'px', left: pos.x + 'px' }\">\r\n <ul class=\"menu-root\">\r\n <ng-container *ngFor=\"let item of menuTree\">\r\n <ng-container *ngTemplateOutlet=\"renderNode; context: { $implicit: item }\"></ng-container>\r\n </ng-container>\r\n </ul>\r\n</div>\r\n\r\n<ng-template #renderNode let-node>\r\n <li class=\"menu-item\" [class.has-children]=\"hasChildren(node)\">\r\n <div (click)=\"onOptionClick(node)\">\r\n @if (node.NodesImg) {\r\n <img [src]=\"node.NodesImg\" class=\"icon\" />\r\n }\r\n @if (!node.NodesImg) {\r\n <div class=\"icon\"></div>\r\n }\r\n {{ node.NodesText }}\r\n </div>\r\n <ul class=\"submenu\" *ngIf=\"hasChildren(node)\">\r\n <ng-container *ngFor=\"let child of node.children\">\r\n <ng-container *ngTemplateOutlet=\"renderNode; context: { $implicit: child }\"></ng-container>\r\n </ng-container>\r\n </ul>\r\n </li>\r\n</ng-template>", styles: [".context-menu{position:fixed;z-index:9999;background-color:#fff;border:1px solid #ccc;box-shadow:2px 2px 8px #00000026;min-width:200px;font-family:sans-serif}.menu-root,.submenu{list-style:none;margin:0;padding:0}.menu-item{position:relative}.menu-item>div{padding:8px 12px;cursor:pointer;display:flex;align-items:center;white-space:nowrap}.menu-item>div:hover{background-color:#f0f0f0}.menu-item.has-children>div:after{content:\"\\25b6\";margin-left:auto;font-size:10px}.submenu{display:none;position:absolute;top:0;left:100%;border:1px solid #ccc;background-color:#fff;min-width:180px;box-shadow:2px 2px 6px #0000001a}.menu-item:hover>.submenu{display:block}.icon{width:16px;height:16px;margin-right:8px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] });
122
124
  }
123
125
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ConceptoContextMenuComponent, decorators: [{
124
126
  type: Component,
125
127
  args: [{ selector: 'concepto-context-menu', standalone: true, imports: [CommonModule], template: "<div class=\"context-menu\" *ngIf=\"visible\" [ngStyle]=\"{ top: pos.y + 'px', left: pos.x + 'px' }\">\r\n <ul class=\"menu-root\">\r\n <ng-container *ngFor=\"let item of menuTree\">\r\n <ng-container *ngTemplateOutlet=\"renderNode; context: { $implicit: item }\"></ng-container>\r\n </ng-container>\r\n </ul>\r\n</div>\r\n\r\n<ng-template #renderNode let-node>\r\n <li class=\"menu-item\" [class.has-children]=\"hasChildren(node)\">\r\n <div (click)=\"onOptionClick(node)\">\r\n @if (node.NodesImg) {\r\n <img [src]=\"node.NodesImg\" class=\"icon\" />\r\n }\r\n @if (!node.NodesImg) {\r\n <div class=\"icon\"></div>\r\n }\r\n {{ node.NodesText }}\r\n </div>\r\n <ul class=\"submenu\" *ngIf=\"hasChildren(node)\">\r\n <ng-container *ngFor=\"let child of node.children\">\r\n <ng-container *ngTemplateOutlet=\"renderNode; context: { $implicit: child }\"></ng-container>\r\n </ng-container>\r\n </ul>\r\n </li>\r\n</ng-template>", styles: [".context-menu{position:fixed;z-index:9999;background-color:#fff;border:1px solid #ccc;box-shadow:2px 2px 8px #00000026;min-width:200px;font-family:sans-serif}.menu-root,.submenu{list-style:none;margin:0;padding:0}.menu-item{position:relative}.menu-item>div{padding:8px 12px;cursor:pointer;display:flex;align-items:center;white-space:nowrap}.menu-item>div:hover{background-color:#f0f0f0}.menu-item.has-children>div:after{content:\"\\25b6\";margin-left:auto;font-size:10px}.submenu{display:none;position:absolute;top:0;left:100%;border:1px solid #ccc;background-color:#fff;min-width:180px;box-shadow:2px 2px 6px #0000001a}.menu-item:hover>.submenu{display:block}.icon{width:16px;height:16px;margin-right:8px}\n"] }]
126
128
  }], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { nodes: [{
127
129
  type: Input
130
+ }], itemSelected: [{
131
+ type: Output
128
132
  }], onOutsideClick: [{
129
133
  type: HostListener,
130
134
  args: ['document:click', ['$event']]
@@ -1 +1 @@
1
- {"version":3,"file":"concepto-user-controls.mjs","sources":["../../../projects/concepto-user-controls/src/lib/concepto-user-controls.service.ts","../../../projects/concepto-user-controls/src/lib/concepto-user-controls.component.ts","../../../projects/concepto-user-controls/src/lib/concepto-message/concepto-message.component.ts","../../../projects/concepto-user-controls/src/lib/concepto-message/concepto-message.component.html","../../../projects/concepto-user-controls/src/lib/concepto-context-menu/concepto-context-menu.component.ts","../../../projects/concepto-user-controls/src/lib/concepto-context-menu/concepto-context-menu.component.html","../../../projects/concepto-user-controls/src/public-api.ts","../../../projects/concepto-user-controls/src/concepto-user-controls.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ConceptoUserControlsService {\r\n\r\n constructor() { }\r\n}\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-concepto-message',\r\n standalone: true,\r\n imports: [],\r\n template: `\r\n <p>\r\n concepto-message works!\r\n </p>\r\n `,\r\n styles: ``\r\n})\r\nexport class ConceptoUserControls {\r\n\r\n}\r\n","import { NgIf } from '@angular/common';\r\nimport { Component, Input, Output, EventEmitter } from '@angular/core';\r\n\r\n\r\n@Component({\r\n selector: 'concepto-message',\r\n standalone: true,\r\n imports: [NgIf],\r\n templateUrl: './concepto-message.component.html',\r\n styleUrl: './concepto-message.component.css'\r\n})\r\nexport class ConceptoMessageComponent {\r\n @Input() title: string = 'Mensaje';\r\n @Input() message: string = 'Este es un mensaje';\r\n @Input() visible: boolean = false;\r\n\r\n @Output() closed = new EventEmitter<void>();\r\n @Output() accepted = new EventEmitter<void>();\r\n\r\n close() {\r\n this.closed.emit();\r\n }\r\n\r\n accept() {\r\n this.accepted.emit();\r\n }\r\n\r\n show() {\r\n this.visible = true;\r\n }\r\n}\r\n","<div class=\"modal-backdrop\" *ngIf=\"visible\">\r\n <div class=\"modal\">\r\n <div class=\"modal-header\">\r\n <h3>{{ title }}</h3>\r\n <button class=\"close-button\" (click)=\"close()\">×</button>\r\n </div>\r\n <div class=\"modal-body\">\r\n <p>{{ message }}</p>\r\n </div>\r\n <div class=\"modal-footer\">\r\n <button (click)=\"accept()\">Aceptar</button>\r\n </div>\r\n </div>\r\n</div>","import { Component, ElementRef, HostListener, Input } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\n\r\nexport interface NodeOption {\r\n NodesId: string;\r\n NodesText: string;\r\n NodesParentId: string;\r\n NodesImg: string;\r\n children?: NodeOption[];\r\n}\r\n\r\n@Component({\r\n selector: 'concepto-context-menu',\r\n standalone: true,\r\n imports: [CommonModule],\r\n templateUrl: './concepto-context-menu.component.html',\r\n styleUrl: './concepto-context-menu.component.css'\r\n})\r\nexport class ConceptoContextMenuComponent {\r\n\r\n @Input() nodes: NodeOption[] = [];\r\n menuTree: NodeOption[] = [];\r\n visible = false;\r\n pos = { x: 0, y: 0 };\r\n\r\n constructor(private elRef: ElementRef) {}\r\n\r\n ngOnChanges(): void {\r\n const map = new Map<string, NodeOption>();\r\n this.nodes.forEach(n => map.set(n.NodesId, { ...n, children: [] }));\r\n\r\n const roots: NodeOption[] = [];\r\n map.forEach(n => {\r\n if (n.NodesParentId && map.has(n.NodesParentId)) {\r\n map.get(n.NodesParentId)?.children?.push(n);\r\n } else {\r\n roots.push(n);\r\n }\r\n });\r\n this.menuTree = roots;\r\n }\r\n\r\n showAtEvent(event: MouseEvent): void {\r\n event.preventDefault();\r\n const x = event.clientX;\r\n const y = event.clientY;\r\n this.visible = true;\r\n setTimeout(() => {\r\n const menu = this.elRef.nativeElement.querySelector('.context-menu');\r\n const rect = menu.getBoundingClientRect();\r\n this.pos.x = x + rect.width > window.innerWidth ? window.innerWidth - rect.width - 10 : x;\r\n this.pos.y = y + rect.height > window.innerHeight ? window.innerHeight - rect.height - 10 : y;\r\n });\r\n }\r\n\r\n hide(): void {\r\n this.visible = false;\r\n }\r\n\r\n @HostListener('document:click', ['$event'])\r\n onOutsideClick(event: MouseEvent): void {\r\n if (!this.elRef.nativeElement.contains(event.target)) {\r\n this.hide();\r\n }\r\n }\r\n\r\n onOptionClick(option: NodeOption): void {\r\n if (!option.children || option.children.length === 0) {\r\n console.log('Selected:', option);\r\n this.hide();\r\n }\r\n }\r\n\r\n hasChildren(option: NodeOption): boolean {\r\n return !!option.children && option.children.length > 0;\r\n }\r\n}\r\n\r\n","<div class=\"context-menu\" *ngIf=\"visible\" [ngStyle]=\"{ top: pos.y + 'px', left: pos.x + 'px' }\">\r\n <ul class=\"menu-root\">\r\n <ng-container *ngFor=\"let item of menuTree\">\r\n <ng-container *ngTemplateOutlet=\"renderNode; context: { $implicit: item }\"></ng-container>\r\n </ng-container>\r\n </ul>\r\n</div>\r\n\r\n<ng-template #renderNode let-node>\r\n <li class=\"menu-item\" [class.has-children]=\"hasChildren(node)\">\r\n <div (click)=\"onOptionClick(node)\">\r\n @if (node.NodesImg) {\r\n <img [src]=\"node.NodesImg\" class=\"icon\" />\r\n }\r\n @if (!node.NodesImg) {\r\n <div class=\"icon\"></div>\r\n }\r\n {{ node.NodesText }}\r\n </div>\r\n <ul class=\"submenu\" *ngIf=\"hasChildren(node)\">\r\n <ng-container *ngFor=\"let child of node.children\">\r\n <ng-container *ngTemplateOutlet=\"renderNode; context: { $implicit: child }\"></ng-container>\r\n </ng-container>\r\n </ul>\r\n </li>\r\n</ng-template>","/*\r\n * Public API Surface of concepto-message\r\n */\r\n\r\nexport * from './lib/concepto-user-controls.service';\r\nexport * from './lib/concepto-user-controls.component';\r\nexport * from './lib/concepto-message/concepto-message.component';\r\nexport * from './lib/concepto-context-menu/concepto-context-menu.component';","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"concepto-user-controls.mjs","sources":["../../../projects/concepto-user-controls/src/lib/concepto-user-controls.service.ts","../../../projects/concepto-user-controls/src/lib/concepto-user-controls.component.ts","../../../projects/concepto-user-controls/src/lib/concepto-message/concepto-message.component.ts","../../../projects/concepto-user-controls/src/lib/concepto-message/concepto-message.component.html","../../../projects/concepto-user-controls/src/lib/concepto-context-menu/concepto-context-menu.component.ts","../../../projects/concepto-user-controls/src/lib/concepto-context-menu/concepto-context-menu.component.html","../../../projects/concepto-user-controls/src/public-api.ts","../../../projects/concepto-user-controls/src/concepto-user-controls.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ConceptoUserControlsService {\r\n\r\n constructor() { }\r\n}\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-concepto-message',\r\n standalone: true,\r\n imports: [],\r\n template: `\r\n <p>\r\n concepto-message works!\r\n </p>\r\n `,\r\n styles: ``\r\n})\r\nexport class ConceptoUserControls {\r\n\r\n}\r\n","import { NgIf } from '@angular/common';\r\nimport { Component, Input, Output, EventEmitter } from '@angular/core';\r\n\r\n\r\n@Component({\r\n selector: 'concepto-message',\r\n standalone: true,\r\n imports: [NgIf],\r\n templateUrl: './concepto-message.component.html',\r\n styleUrl: './concepto-message.component.css'\r\n})\r\nexport class ConceptoMessageComponent {\r\n @Input() title: string = 'Mensaje';\r\n @Input() message: string = 'Este es un mensaje';\r\n @Input() visible: boolean = false;\r\n\r\n @Output() closed = new EventEmitter<void>();\r\n @Output() accepted = new EventEmitter<void>();\r\n\r\n close() {\r\n this.closed.emit();\r\n }\r\n\r\n accept() {\r\n this.accepted.emit();\r\n }\r\n\r\n show() {\r\n this.visible = true;\r\n }\r\n}\r\n","<div class=\"modal-backdrop\" *ngIf=\"visible\">\r\n <div class=\"modal\">\r\n <div class=\"modal-header\">\r\n <h3>{{ title }}</h3>\r\n <button class=\"close-button\" (click)=\"close()\">×</button>\r\n </div>\r\n <div class=\"modal-body\">\r\n <p>{{ message }}</p>\r\n </div>\r\n <div class=\"modal-footer\">\r\n <button (click)=\"accept()\">Aceptar</button>\r\n </div>\r\n </div>\r\n</div>","import { Component, ElementRef, EventEmitter, HostListener, Input, Output } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\n\r\nexport interface NodeOption {\r\n NodesId: string;\r\n NodesText: string;\r\n NodesParentId: string;\r\n NodesImg: string;\r\n children?: NodeOption[];\r\n}\r\n\r\n@Component({\r\n selector: 'concepto-context-menu',\r\n standalone: true,\r\n imports: [CommonModule],\r\n templateUrl: './concepto-context-menu.component.html',\r\n styleUrl: './concepto-context-menu.component.css'\r\n})\r\nexport class ConceptoContextMenuComponent {\r\n\r\n @Input() nodes: NodeOption[] = [];\r\n @Output() itemSelected = new EventEmitter<string>();\r\n menuTree: NodeOption[] = [];\r\n visible = false;\r\n pos = { x: 0, y: 0 };\r\n\r\n constructor(private elRef: ElementRef) {}\r\n\r\n ngOnChanges(): void {\r\n const map = new Map<string, NodeOption>();\r\n this.nodes.forEach(n => map.set(n.NodesId, { ...n, children: [] }));\r\n\r\n const roots: NodeOption[] = [];\r\n map.forEach(n => {\r\n if (n.NodesParentId && map.has(n.NodesParentId)) {\r\n map.get(n.NodesParentId)?.children?.push(n);\r\n } else {\r\n roots.push(n);\r\n }\r\n });\r\n this.menuTree = roots;\r\n }\r\n\r\n showAtEvent(event: MouseEvent): void {\r\n event.preventDefault();\r\n const x = event.clientX;\r\n const y = event.clientY;\r\n this.visible = true;\r\n setTimeout(() => {\r\n const menu = this.elRef.nativeElement.querySelector('.context-menu');\r\n const rect = menu.getBoundingClientRect();\r\n this.pos.x = x + rect.width > window.innerWidth ? window.innerWidth - rect.width - 10 : x;\r\n this.pos.y = y + rect.height > window.innerHeight ? window.innerHeight - rect.height - 10 : y;\r\n });\r\n }\r\n\r\n hide(): void {\r\n this.visible = false;\r\n }\r\n\r\n @HostListener('document:click', ['$event'])\r\n onOutsideClick(event: MouseEvent): void {\r\n if (!this.elRef.nativeElement.contains(event.target)) {\r\n this.hide();\r\n }\r\n }\r\n\r\n onOptionClick(option: NodeOption): void {\r\n if (!option.children || option.children.length === 0) {\r\n console.log('Selected:', option);\r\n this.itemSelected.emit(option.NodesId);\r\n this.hide();\r\n }\r\n }\r\n\r\n hasChildren(option: NodeOption): boolean {\r\n return !!option.children && option.children.length > 0;\r\n }\r\n}\r\n\r\n","<div class=\"context-menu\" *ngIf=\"visible\" [ngStyle]=\"{ top: pos.y + 'px', left: pos.x + 'px' }\">\r\n <ul class=\"menu-root\">\r\n <ng-container *ngFor=\"let item of menuTree\">\r\n <ng-container *ngTemplateOutlet=\"renderNode; context: { $implicit: item }\"></ng-container>\r\n </ng-container>\r\n </ul>\r\n</div>\r\n\r\n<ng-template #renderNode let-node>\r\n <li class=\"menu-item\" [class.has-children]=\"hasChildren(node)\">\r\n <div (click)=\"onOptionClick(node)\">\r\n @if (node.NodesImg) {\r\n <img [src]=\"node.NodesImg\" class=\"icon\" />\r\n }\r\n @if (!node.NodesImg) {\r\n <div class=\"icon\"></div>\r\n }\r\n {{ node.NodesText }}\r\n </div>\r\n <ul class=\"submenu\" *ngIf=\"hasChildren(node)\">\r\n <ng-container *ngFor=\"let child of node.children\">\r\n <ng-container *ngTemplateOutlet=\"renderNode; context: { $implicit: child }\"></ng-container>\r\n </ng-container>\r\n </ul>\r\n </li>\r\n</ng-template>","/*\r\n * Public API Surface of concepto-message\r\n */\r\n\r\nexport * from './lib/concepto-user-controls.service';\r\nexport * from './lib/concepto-user-controls.component';\r\nexport * from './lib/concepto-message/concepto-message.component';\r\nexport * from './lib/concepto-context-menu/concepto-context-menu.component';","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { ElementRef } from '@angular/core';
1
+ import { ElementRef, EventEmitter } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
3
  export interface NodeOption {
4
4
  NodesId: string;
@@ -10,6 +10,7 @@ export interface NodeOption {
10
10
  export declare class ConceptoContextMenuComponent {
11
11
  private elRef;
12
12
  nodes: NodeOption[];
13
+ itemSelected: EventEmitter<string>;
13
14
  menuTree: NodeOption[];
14
15
  visible: boolean;
15
16
  pos: {
@@ -24,5 +25,5 @@ export declare class ConceptoContextMenuComponent {
24
25
  onOptionClick(option: NodeOption): void;
25
26
  hasChildren(option: NodeOption): boolean;
26
27
  static ɵfac: i0.ɵɵFactoryDeclaration<ConceptoContextMenuComponent, never>;
27
- static ɵcmp: i0.ɵɵComponentDeclaration<ConceptoContextMenuComponent, "concepto-context-menu", never, { "nodes": { "alias": "nodes"; "required": false; }; }, {}, never, never, true, never>;
28
+ static ɵcmp: i0.ɵɵComponentDeclaration<ConceptoContextMenuComponent, "concepto-context-menu", never, { "nodes": { "alias": "nodes"; "required": false; }; }, { "itemSelected": "itemSelected"; }, never, never, true, never>;
28
29
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "concepto-user-controls",
3
- "version": "0.0.6",
3
+ "version": "0.0.7",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^18.2.0 || ^19.0.0",
6
6
  "@angular/core": "^18.2.0 || ^19.0.0"