@memberjunction/ng-explorer-core 0.9.200 → 0.9.204

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.
Files changed (63) hide show
  1. package/dist/generic/Events.types.d.ts +142 -0
  2. package/dist/generic/Events.types.d.ts.map +1 -0
  3. package/dist/generic/Events.types.js +95 -0
  4. package/dist/generic/Item.types.d.ts +25 -0
  5. package/dist/generic/Item.types.d.ts.map +1 -0
  6. package/dist/generic/Item.types.js +36 -0
  7. package/dist/generic/PathData.types.d.ts +9 -0
  8. package/dist/generic/PathData.types.d.ts.map +1 -0
  9. package/dist/generic/PathData.types.js +9 -0
  10. package/dist/lib/base-browser-component/base-browser-component.d.ts +29 -0
  11. package/dist/lib/base-browser-component/base-browser-component.d.ts.map +1 -0
  12. package/dist/lib/base-browser-component/base-browser-component.js +133 -0
  13. package/dist/lib/dashboard-browser-component/dashboard-browser.component.d.ts +8 -9
  14. package/dist/lib/dashboard-browser-component/dashboard-browser.component.d.ts.map +1 -1
  15. package/dist/lib/dashboard-browser-component/dashboard-browser.component.js +51 -85
  16. package/dist/lib/data-browser-component/data-browser.component.js +12 -19
  17. package/dist/lib/favorites/favorites.component.js +1 -1
  18. package/dist/lib/generic-browse-list/generic-browse-list.component.d.ts +3 -0
  19. package/dist/lib/generic-browse-list/generic-browse-list.component.d.ts.map +1 -1
  20. package/dist/lib/generic-browse-list/generic-browse-list.component.js +102 -50
  21. package/dist/lib/generic-browser-list/components/resource/resource.d.ts +1 -0
  22. package/dist/lib/generic-browser-list/components/resource/resource.d.ts.map +1 -0
  23. package/dist/lib/generic-browser-list/components/resource/resource.js +1 -0
  24. package/dist/lib/generic-browser-list/generic-browser-list.component.d.ts +50 -0
  25. package/dist/lib/generic-browser-list/generic-browser-list.component.d.ts.map +1 -0
  26. package/dist/lib/generic-browser-list/generic-browser-list.component.js +366 -0
  27. package/dist/lib/header/header.component.js +25 -28
  28. package/dist/lib/home-component/home.component.js +2 -2
  29. package/dist/lib/navigation/navigation.component.js +2 -2
  30. package/dist/lib/query-browser-component/query-browser.component.d.ts +10 -7
  31. package/dist/lib/query-browser-component/query-browser.component.d.ts.map +1 -1
  32. package/dist/lib/query-browser-component/query-browser.component.js +55 -41
  33. package/dist/lib/report-browser-component/report-browser.component.d.ts +10 -4
  34. package/dist/lib/report-browser-component/report-browser.component.d.ts.map +1 -1
  35. package/dist/lib/report-browser-component/report-browser.component.js +57 -25
  36. package/dist/lib/settings/settings.component.js +1 -1
  37. package/dist/lib/single-dashboard/single-dashboard.component.d.ts.map +1 -1
  38. package/dist/lib/single-dashboard/single-dashboard.component.js +3 -0
  39. package/dist/lib/single-search-result/single-search-result.component.js +1 -1
  40. package/dist/lib/user-notifications/user-notifications.component.js +1 -1
  41. package/dist/module.d.ts +11 -11
  42. package/dist/module.d.ts.map +1 -1
  43. package/dist/module.js +5 -5
  44. package/dist/public-api.d.ts +0 -1
  45. package/dist/public-api.d.ts.map +1 -1
  46. package/dist/public-api.js +0 -1
  47. package/package.json +53 -52
  48. package/dist/lib/ask-skip/ask-skip.component.d.ts +0 -87
  49. package/dist/lib/ask-skip/ask-skip.component.js +0 -626
  50. package/dist/lib/ask-skip/skip-dynamic-report-wrapper.d.ts +0 -12
  51. package/dist/lib/ask-skip/skip-dynamic-report-wrapper.js +0 -50
  52. package/dist/lib/generic/base-resource-component.d.ts +0 -34
  53. package/dist/lib/generic/base-resource-component.js +0 -75
  54. package/dist/lib/generic/dynamic-chart.d.ts +0 -33
  55. package/dist/lib/generic/dynamic-chart.js +0 -252
  56. package/dist/lib/generic/dynamic-grid.d.ts +0 -25
  57. package/dist/lib/generic/dynamic-grid.js +0 -142
  58. package/dist/lib/generic/dynamic-report.d.ts +0 -38
  59. package/dist/lib/generic/dynamic-report.js +0 -405
  60. package/dist/shared/shared.service.d.ts +0 -94
  61. package/dist/shared/shared.service.js +0 -324
  62. package/dist/shared/urlPipe.d.ts +0 -7
  63. package/dist/shared/urlPipe.js +0 -16
@@ -1011,10 +1011,10 @@ NavigationComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: Navigat
1011
1011
  i0.ɵɵproperty("ngIf", !ctx.loading);
1012
1012
  i0.ɵɵadvance(2);
1013
1013
  i0.ɵɵproperty("ngIf", ctx.contextMenuVisible);
1014
- } }, dependencies: [i3.NgClass, i3.NgForOf, i3.NgIf, i3.NgStyle, i1.RouterOutlet, i5.LoaderComponent, i6.TabStripComponent, i6.TabStripTabComponent, i6.TabContentDirective, i6.TabTitleDirective, i7.SVGIconComponent, i8.FillContainer, i6.DrawerComponent, i6.DrawerContainerComponent, i6.DrawerContentComponent, i9.SkipButtonComponent, i10.ResourceContainerComponent], styles: [".navigation-wrap[_ngcontent-%COMP%] {\r\n height: calc(100vh - 80px);\r\n width: 100%;\r\n overflow:hidden\r\n}\r\n\r\n.nav-tab-title[_ngcontent-%COMP%] {\r\n margin-left: 10px;\r\n}\r\n\r\n.context-menu[_ngcontent-%COMP%] {\r\n position: fixed;\r\n z-index: 9999;\r\n background-color: #ffffff;\r\n border: 1px solid #ccc;\r\n padding: 3px 3px;\r\n box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.3);\r\n}\r\n\r\n.context-menu-item[_ngcontent-%COMP%] {\r\n padding: 8px 16px;\r\n cursor: pointer;\r\n}\r\n\r\n.context-menu-item[_ngcontent-%COMP%]:hover {\r\n background-color: #f1f1f1;\r\n}\r\n .navigation-wrap .drawer-container {\r\n padding: 20px;\r\n background: #FAFAFA;\r\n}\r\n .navigation-wrap .drawer-container .k-content {\r\n padding: 25px;\r\n}\r\n .navigation-wrap .drawer-container .k-tabstrip-items-wrapper {\r\n background: #fafafa;\r\n}\r\n .navigation-wrap .drawer-container .k-tabstrip-items-wrapper .k-item.k-active {\r\n border: 1px solid rgba(0, 0, 0, 0.08);\r\n}\r\n .navigation-wrap .drawer-container .k-tabstrip-items-wrapper .k-item {\r\n background: #fafafa;\r\n border-radius: 0;\r\n}"] });
1014
+ } }, dependencies: [i3.NgClass, i3.NgForOf, i3.NgIf, i3.NgStyle, i1.RouterOutlet, i5.LoaderComponent, i6.TabStripComponent, i6.TabStripTabComponent, i6.TabContentDirective, i6.TabTitleDirective, i7.SVGIconComponent, i8.FillContainer, i6.DrawerComponent, i6.DrawerContainerComponent, i6.DrawerContentComponent, i9.SkipButtonComponent, i10.ResourceContainerComponent], styles: [".navigation-wrap[_ngcontent-%COMP%] {\r\n height: calc(100vh - 80px);\r\n width: 100%;\r\n overflow:hidden\r\n}\r\n\r\n.nav-tab-title[_ngcontent-%COMP%] {\r\n margin-left: 10px;\r\n}\r\n\r\n.context-menu[_ngcontent-%COMP%] {\r\n position: fixed;\r\n z-index: 9999;\r\n background-color: #ffffff;\r\n border: 1px solid #ccc;\r\n padding: 3px 3px;\r\n box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.3);\r\n}\r\n\r\n.context-menu-item[_ngcontent-%COMP%] {\r\n padding: 8px 16px;\r\n cursor: pointer;\r\n}\r\n\r\n.context-menu-item[_ngcontent-%COMP%]:hover {\r\n background-color: #f1f1f1;\r\n}\r\n .navigation-wrap .drawer-container {\r\n background: var(--gray-color);\r\n}\r\n .navigation-wrap .drawer-container .k-content {\r\n padding: 25px;\r\n}\r\n .navigation-wrap .drawer-container .k-tabstrip-items-wrapper {\r\n background: var(--med-gray);\r\n padding-left: 20px;\r\n}\r\n .navigation-wrap .drawer-container .k-tabstrip-items-wrapper .k-item.k-active {\r\n border: 1px solid var(--light-gray);\r\n background: var(--light-gray);\r\n border-radius: 8px 8px 0 0;\r\n color: var(--blue-text);\r\n}\r\n .navigation-wrap .drawer-container .k-tabstrip-items-wrapper .k-item {\r\n background: var(--med-gray);\r\n border-radius: 0;\r\n border-right: 1px solid #909090;\r\n}"] });
1015
1015
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(NavigationComponent, [{
1016
1016
  type: Component,
1017
- args: [{ selector: 'app-navigation', template: "<div class=\"navigation-wrap\" [ngClass]=\"{'waiting': loader}\" #drawerWrapper>\r\n <kendo-loader *ngIf=\"loading\" type=\"converging-spinner\" ></kendo-loader>\r\n <kendo-drawer-container *ngIf=\"!loading\" >\r\n <kendo-drawer\r\n #drawer\r\n [items]=\"drawerItems\"\r\n [mode]=\"mode\"\r\n [mini]=\"mini\"\r\n [animation]=\"false\"\r\n (select)=\"onDrawerSelect($event)\"\r\n [autoCollapse]=\"false\"\r\n >\r\n </kendo-drawer>\r\n <kendo-drawer-content mjFillContainer>\r\n <kendo-tabstrip mjFillContainer class=\"drawer-container\" [scrollable]=\"true\" [keepTabContent]=\"true\" (tabClose)=\"onClose($event)\" (tabSelect)=\"onTabSelect($event)\" [animate]=\"false\" #tabstrip>\r\n <kendo-tabstrip-tab [selected]=\"activeTabIndex === 0\" [closable]=\"false\">\r\n <ng-template kendoTabTitle>\r\n <kendo-svgicon name=\"home\" [icon]=\"sharedService.kendoSVGIcon('home')\" (contextmenu)=\"onTabContextMenu($event, 0)\"></kendo-svgicon>\r\n <span class=\"nav-tab-title\" (contextmenu)=\"onTabContextMenu($event, 0)\">Home</span>\r\n </ng-template>\r\n <ng-template kendoTabContent class=\"navigation-tab-contents\">\r\n <router-outlet></router-outlet>\r\n </ng-template>\r\n </kendo-tabstrip-tab>\r\n <kendo-tabstrip-tab *ngFor=\"let tab of tabs;let i = index\" [selected]=\"isTabActive(tab.id)\" [closable]=\"true\">\r\n <ng-template kendoTabTitle>\r\n <kendo-svgicon *ngIf=\"tab?.contentLoading\" [icon]=\"sharedService.kendoSVGIcon('clock')\" (contextmenu)=\"onTabContextMenu($event, i)\"></kendo-svgicon>\r\n <kendo-svgicon *ngIf=\"!tab?.contentLoading && tab?.icon\" [icon]=\"sharedService.kendoSVGIcon(tab.icon)\" (contextmenu)=\"onTabContextMenu($event, i)\"></kendo-svgicon>\r\n <span class=\"nav-tab-title\" (contextmenu)=\"onTabContextMenu($event, i)\">{{ tab.labelLoading ? 'Loading...' : tab.label }}</span>\r\n </ng-template>\r\n <ng-template kendoTabContent class=\"navigation-tab-contents\">\r\n <app-resource [Data]=\"tab.data\" [isVisible]=\"tab?.id === getActiveTabId()\"\r\n (ResourceRecordSaved)=\"SaveSingleWorkspaceItem(tab)\"\r\n (ContentLoadingStarted)=\"setTabContentLoadingStatus(tab, true)\"\r\n (ContentLoadingComplete)=\"setTabContentLoadingStatus(tab, false)\"\r\n ></app-resource>\r\n </ng-template>\r\n </kendo-tabstrip-tab>\r\n </kendo-tabstrip>\r\n </kendo-drawer-content>\r\n </kendo-drawer-container>\r\n\r\n \r\n <mj-skip-button\r\n action=\"route\"\r\n ></mj-skip-button>\r\n <!-- Skip Button shows up through the above line of code -->\r\n</div>\r\n\r\n<div class=\"context-menu\" [ngStyle]=\"contextMenuStyle\" *ngIf=\"contextMenuVisible\">\r\n <div class=\"context-menu-item\" (click)=\"handleContextMenuOption(1)\">Close All</div>\r\n <div class=\"context-menu-item\" (click)=\"handleContextMenuOption(2)\">Close Others</div>\r\n <div class=\"context-menu-item\" (click)=\"handleContextMenuOption(3)\">Close Tabs to the Right</div>\r\n </div>\r\n", styles: [".navigation-wrap {\r\n height: calc(100vh - 80px);\r\n width: 100%;\r\n overflow:hidden\r\n}\r\n\r\n.nav-tab-title {\r\n margin-left: 10px;\r\n}\r\n\r\n.context-menu {\r\n position: fixed;\r\n z-index: 9999;\r\n background-color: #ffffff;\r\n border: 1px solid #ccc;\r\n padding: 3px 3px;\r\n box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.3);\r\n}\r\n\r\n.context-menu-item {\r\n padding: 8px 16px;\r\n cursor: pointer;\r\n}\r\n\r\n.context-menu-item:hover {\r\n background-color: #f1f1f1;\r\n}\r\n::ng-deep .navigation-wrap .drawer-container {\r\n padding: 20px;\r\n background: #FAFAFA;\r\n}\r\n::ng-deep .navigation-wrap .drawer-container .k-content {\r\n padding: 25px;\r\n}\r\n::ng-deep .navigation-wrap .drawer-container .k-tabstrip-items-wrapper {\r\n background: #fafafa;\r\n}\r\n::ng-deep .navigation-wrap .drawer-container .k-tabstrip-items-wrapper .k-item.k-active {\r\n border: 1px solid rgba(0, 0, 0, 0.08);\r\n}\r\n::ng-deep .navigation-wrap .drawer-container .k-tabstrip-items-wrapper .k-item {\r\n background: #fafafa;\r\n border-radius: 0;\r\n}\r\n"] }]
1017
+ args: [{ selector: 'app-navigation', template: "<div class=\"navigation-wrap\" [ngClass]=\"{'waiting': loader}\" #drawerWrapper>\r\n <kendo-loader *ngIf=\"loading\" type=\"converging-spinner\" ></kendo-loader>\r\n <kendo-drawer-container *ngIf=\"!loading\" >\r\n <kendo-drawer\r\n #drawer\r\n [items]=\"drawerItems\"\r\n [mode]=\"mode\"\r\n [mini]=\"mini\"\r\n [animation]=\"false\"\r\n (select)=\"onDrawerSelect($event)\"\r\n [autoCollapse]=\"false\"\r\n >\r\n </kendo-drawer>\r\n <kendo-drawer-content mjFillContainer>\r\n <kendo-tabstrip mjFillContainer class=\"drawer-container\" [scrollable]=\"true\" [keepTabContent]=\"true\" (tabClose)=\"onClose($event)\" (tabSelect)=\"onTabSelect($event)\" [animate]=\"false\" #tabstrip>\r\n <kendo-tabstrip-tab [selected]=\"activeTabIndex === 0\" [closable]=\"false\">\r\n <ng-template kendoTabTitle>\r\n <kendo-svgicon name=\"home\" [icon]=\"sharedService.kendoSVGIcon('home')\" (contextmenu)=\"onTabContextMenu($event, 0)\"></kendo-svgicon>\r\n <span class=\"nav-tab-title\" (contextmenu)=\"onTabContextMenu($event, 0)\">Home</span>\r\n </ng-template>\r\n <ng-template kendoTabContent class=\"navigation-tab-contents\">\r\n <router-outlet></router-outlet>\r\n </ng-template>\r\n </kendo-tabstrip-tab>\r\n <kendo-tabstrip-tab *ngFor=\"let tab of tabs;let i = index\" [selected]=\"isTabActive(tab.id)\" [closable]=\"true\">\r\n <ng-template kendoTabTitle>\r\n <kendo-svgicon *ngIf=\"tab?.contentLoading\" [icon]=\"sharedService.kendoSVGIcon('clock')\" (contextmenu)=\"onTabContextMenu($event, i)\"></kendo-svgicon>\r\n <kendo-svgicon *ngIf=\"!tab?.contentLoading && tab?.icon\" [icon]=\"sharedService.kendoSVGIcon(tab.icon)\" (contextmenu)=\"onTabContextMenu($event, i)\"></kendo-svgicon>\r\n <span class=\"nav-tab-title\" (contextmenu)=\"onTabContextMenu($event, i)\">{{ tab.labelLoading ? 'Loading...' : tab.label }}</span>\r\n </ng-template>\r\n <ng-template kendoTabContent class=\"navigation-tab-contents\">\r\n <app-resource [Data]=\"tab.data\" [isVisible]=\"tab?.id === getActiveTabId()\"\r\n (ResourceRecordSaved)=\"SaveSingleWorkspaceItem(tab)\"\r\n (ContentLoadingStarted)=\"setTabContentLoadingStatus(tab, true)\"\r\n (ContentLoadingComplete)=\"setTabContentLoadingStatus(tab, false)\"\r\n ></app-resource>\r\n </ng-template>\r\n </kendo-tabstrip-tab>\r\n </kendo-tabstrip>\r\n </kendo-drawer-content>\r\n </kendo-drawer-container>\r\n\r\n \r\n <mj-skip-button\r\n action=\"route\"\r\n ></mj-skip-button>\r\n <!-- Skip Button shows up through the above line of code -->\r\n</div>\r\n\r\n<div class=\"context-menu\" [ngStyle]=\"contextMenuStyle\" *ngIf=\"contextMenuVisible\">\r\n <div class=\"context-menu-item\" (click)=\"handleContextMenuOption(1)\">Close All</div>\r\n <div class=\"context-menu-item\" (click)=\"handleContextMenuOption(2)\">Close Others</div>\r\n <div class=\"context-menu-item\" (click)=\"handleContextMenuOption(3)\">Close Tabs to the Right</div>\r\n </div>\r\n", styles: [".navigation-wrap {\r\n height: calc(100vh - 80px);\r\n width: 100%;\r\n overflow:hidden\r\n}\r\n\r\n.nav-tab-title {\r\n margin-left: 10px;\r\n}\r\n\r\n.context-menu {\r\n position: fixed;\r\n z-index: 9999;\r\n background-color: #ffffff;\r\n border: 1px solid #ccc;\r\n padding: 3px 3px;\r\n box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.3);\r\n}\r\n\r\n.context-menu-item {\r\n padding: 8px 16px;\r\n cursor: pointer;\r\n}\r\n\r\n.context-menu-item:hover {\r\n background-color: #f1f1f1;\r\n}\r\n::ng-deep .navigation-wrap .drawer-container {\r\n background: var(--gray-color);\r\n}\r\n::ng-deep .navigation-wrap .drawer-container .k-content {\r\n padding: 25px;\r\n}\r\n::ng-deep .navigation-wrap .drawer-container .k-tabstrip-items-wrapper {\r\n background: var(--med-gray);\r\n padding-left: 20px;\r\n}\r\n::ng-deep .navigation-wrap .drawer-container .k-tabstrip-items-wrapper .k-item.k-active {\r\n border: 1px solid var(--light-gray);\r\n background: var(--light-gray);\r\n border-radius: 8px 8px 0 0;\r\n color: var(--blue-text);\r\n}\r\n::ng-deep .navigation-wrap .drawer-container .k-tabstrip-items-wrapper .k-item {\r\n background: var(--med-gray);\r\n border-radius: 0;\r\n border-right: 1px solid #909090;\r\n}\r\n"] }]
1018
1018
  }], () => [{ type: i1.Router }, { type: i1.ActivatedRoute }, { type: i2.SharedService }, { type: i3.Location }, { type: i0.Renderer2 }, { type: i4.Title }, { type: i0.ChangeDetectorRef }], { applicationName: [{
1019
1019
  type: Input
1020
1020
  }], isMobileScreen: [{
@@ -1,14 +1,17 @@
1
1
  import { Router } from '@angular/router';
2
- import { QueryEntity } from '@memberjunction/core-entities';
2
+ import { Item } from '../../generic/Item.types';
3
+ import { SharedService } from '@memberjunction/ng-shared';
4
+ import { BaseEvent } from '../../generic/Events.types';
5
+ import { BaseBrowserComponent } from '../base-browser-component/base-browser-component';
3
6
  import * as i0 from "@angular/core";
4
- export declare class QueryBrowserComponent {
7
+ export declare class QueryBrowserComponent extends BaseBrowserComponent {
5
8
  private router;
6
- queries: QueryEntity[];
7
- showLoader: boolean;
8
- constructor(router: Router);
9
+ private sharedService;
10
+ constructor(router: Router, sharedService: SharedService);
9
11
  ngOnInit(): void;
10
- LoadData(): Promise<void>;
11
- itemClick(item: QueryEntity): void;
12
+ itemClick(item: Item): void;
13
+ onBackButtonClick(): void;
14
+ onEvent(event: BaseEvent): void;
12
15
  static ɵfac: i0.ɵɵFactoryDeclaration<QueryBrowserComponent, never>;
13
16
  static ɵcmp: i0.ɵɵComponentDeclaration<QueryBrowserComponent, "app-query-browser", never, {}, {}, never, never, false, never>;
14
17
  }
@@ -1 +1 @@
1
- {"version":3,"file":"query-browser.component.d.ts","sourceRoot":"","sources":["../../../src/lib/query-browser-component/query-browser.component.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AAExC,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;;AAE5D,qBAKa,qBAAqB;IAIpB,OAAO,CAAC,MAAM;IAHnB,OAAO,EAAE,WAAW,EAAE,CAAM;IAC5B,UAAU,EAAE,OAAO,CAAS;gBAEf,MAAM,EAAE,MAAM;IAElC,QAAQ,IAAI,IAAI;IAGV,QAAQ;IAcP,SAAS,CAAC,IAAI,EAAE,WAAW;yCAvBvB,qBAAqB;2CAArB,qBAAqB;CA4BjC"}
1
+ {"version":3,"file":"query-browser.component.d.ts","sourceRoot":"","sources":["../../../src/lib/query-browser-component/query-browser.component.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AAExC,OAAO,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAC;AAEhD,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,kDAAkD,CAAC;;AAExF,qBAKa,qBAAsB,SAAQ,oBAAoB;IAEjD,OAAO,CAAC,MAAM;IAAU,OAAO,CAAC,aAAa;gBAArC,MAAM,EAAE,MAAM,EAAU,aAAa,EAAE,aAAa;IAaxE,QAAQ,IAAI,IAAI;IAMT,SAAS,CAAC,IAAI,EAAE,IAAI;IAWpB,iBAAiB,IAAI,IAAI;IAuBzB,OAAO,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI;yCAvD3B,qBAAqB;2CAArB,qBAAqB;CA0DjC"}
@@ -1,56 +1,70 @@
1
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
- return new (P || (P = Promise))(function (resolve, reject) {
4
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
- step((generator = generator.apply(thisArg, _arguments || [])).next());
8
- });
9
- };
10
1
  import { Component } from '@angular/core';
11
- import { Metadata, RunView } from '@memberjunction/core';
2
+ import { BaseBrowserComponent } from '../base-browser-component/base-browser-component';
12
3
  import * as i0 from "@angular/core";
13
4
  import * as i1 from "@angular/router";
14
- import * as i2 from "../generic-browse-list/generic-browse-list.component";
15
- export class QueryBrowserComponent {
16
- constructor(router) {
5
+ import * as i2 from "@memberjunction/ng-shared";
6
+ import * as i3 from "../generic-browser-list/generic-browser-list.component";
7
+ export class QueryBrowserComponent extends BaseBrowserComponent {
8
+ constructor(router, sharedService) {
9
+ var _a;
10
+ super();
17
11
  this.router = router;
18
- this.queries = [];
19
- this.showLoader = false;
12
+ this.sharedService = sharedService;
13
+ this.pageName = "Queries";
14
+ this.routeName = "queries";
15
+ this.routeNameSingular = "query";
16
+ this.itemEntityName = "Queries";
17
+ this.categoryEntityName = "Query Categories";
18
+ const params = (_a = this.router.getCurrentNavigation()) === null || _a === void 0 ? void 0 : _a.extractedUrl.queryParams;
19
+ this.InitPathData(params);
20
20
  }
21
21
  ngOnInit() {
22
- this.LoadData();
23
- }
24
- LoadData() {
25
- return __awaiter(this, void 0, void 0, function* () {
26
- this.showLoader = true;
27
- const md = new Metadata();
28
- const rv = new RunView();
29
- const result = yield rv.RunView({
30
- EntityName: 'Queries',
31
- // ExtraFilter: `UserID=${md.CurrentUser.ID}`
32
- });
33
- if (result && result.Success)
34
- this.queries = result.Results;
35
- this.showLoader = false;
36
- });
22
+ let entityFilter = "ID > 0";
23
+ this.LoadData(entityFilter, undefined);
37
24
  }
38
25
  itemClick(item) {
39
- if (item) {
40
- this.router.navigate(['resource', 'query', item.ID]);
26
+ let dataID = "";
27
+ if (item.Type === "Entity") {
28
+ let dashboard = item.Data;
29
+ dataID = dashboard.ID.toString();
30
+ }
31
+ super.Navigate(item, this.router, dataID);
32
+ }
33
+ onBackButtonClick() {
34
+ const pathData = this.PathData.ParentPathData;
35
+ if (pathData && pathData.ID > 0) {
36
+ this.PathData = pathData;
37
+ //navigation seems like it does nothing but update the URL
38
+ //so just reload all of the data
39
+ this.router.navigate(['reports'], { queryParams: { folderID: pathData.ID } });
40
+ this.selectedFolderID = pathData.ID;
41
+ this.LoadData();
41
42
  }
43
+ else if (this.parentFolderID || !this.parentFolderID && this.selectedFolderID) {
44
+ this.router.navigate(['reports'], { queryParams: { folderID: this.parentFolderID } });
45
+ this.selectedFolderID = this.parentFolderID;
46
+ this.parentFolderID = null;
47
+ this.LoadData();
48
+ }
49
+ else {
50
+ //no parent path, so just go home
51
+ this.router.navigate(['']);
52
+ }
53
+ }
54
+ onEvent(event) {
55
+ super.onEvent(event);
42
56
  }
43
57
  }
44
- QueryBrowserComponent.ɵfac = function QueryBrowserComponent_Factory(t) { return new (t || QueryBrowserComponent)(i0.ɵɵdirectiveInject(i1.Router)); };
45
- QueryBrowserComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: QueryBrowserComponent, selectors: [["app-query-browser"]], decls: 1, vars: 2, consts: [["title", "Queries", "iconName", "data", "itemType", "query", 3, "items", "showLoader", "itemClickEvent"]], template: function QueryBrowserComponent_Template(rf, ctx) { if (rf & 1) {
46
- i0.ɵɵelementStart(0, "app-generic-browse-list", 0);
47
- i0.ɵɵlistener("itemClickEvent", function QueryBrowserComponent_Template_app_generic_browse_list_itemClickEvent_0_listener($event) { return ctx.itemClick($event); });
58
+ QueryBrowserComponent.ɵfac = function QueryBrowserComponent_Factory(t) { return new (t || QueryBrowserComponent)(i0.ɵɵdirectiveInject(i1.Router), i0.ɵɵdirectiveInject(i2.SharedService)); };
59
+ QueryBrowserComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: QueryBrowserComponent, selectors: [["app-query-browser"]], features: [i0.ɵɵInheritDefinitionFeature], decls: 1, vars: 3, consts: [["title", "Queries", "itemType", "query", "iconName", "data", "addText", "Create Query", "ItemEntityName", "Queries", "CategoryEntityName", "Query Categories", 3, "items", "selectedFolderID", "showLoader", "itemClickEvent", "backButtonClickEvent", "AfterAddFolderEvent", "AfterAddItemEvent", "AfterDeleteItemEvent", "AfterDeleteFolderEvent"]], template: function QueryBrowserComponent_Template(rf, ctx) { if (rf & 1) {
60
+ i0.ɵɵelementStart(0, "app-generic-browser-list", 0);
61
+ i0.ɵɵlistener("itemClickEvent", function QueryBrowserComponent_Template_app_generic_browser_list_itemClickEvent_0_listener($event) { return ctx.itemClick($event); })("backButtonClickEvent", function QueryBrowserComponent_Template_app_generic_browser_list_backButtonClickEvent_0_listener() { return ctx.onBackButtonClick(); })("AfterAddFolderEvent", function QueryBrowserComponent_Template_app_generic_browser_list_AfterAddFolderEvent_0_listener($event) { return ctx.onEvent($event); })("AfterAddItemEvent", function QueryBrowserComponent_Template_app_generic_browser_list_AfterAddItemEvent_0_listener($event) { return ctx.onEvent($event); })("AfterDeleteItemEvent", function QueryBrowserComponent_Template_app_generic_browser_list_AfterDeleteItemEvent_0_listener($event) { return ctx.onEvent($event); })("AfterDeleteFolderEvent", function QueryBrowserComponent_Template_app_generic_browser_list_AfterDeleteFolderEvent_0_listener($event) { return ctx.onEvent($event); });
48
62
  i0.ɵɵelementEnd();
49
63
  } if (rf & 2) {
50
- i0.ɵɵproperty("items", ctx.queries)("showLoader", ctx.showLoader);
51
- } }, dependencies: [i2.GenericBrowseListComponent], styles: [".k-card-body[_ngcontent-%COMP%] {\r\n height: 80px;\r\n }", ".main-area[_ngcontent-%COMP%] {\r\n display: flex;\r\n height: 100%;\r\n width: 100%;\r\n gap: 24px;\r\n padding: 24px 0;\r\n}\r\n.list-view[_ngcontent-%COMP%] {\r\n padding: 16px;\r\n min-width: 300px;\r\n border-radius: 4px;\r\n background: #FAFAFA;\r\n border: none;\r\n}\r\n .list-view .k-listview-header, .list-view .k-listview-footer {\r\n border: none;\r\n}\r\n .list-view .k-listview-content {\r\n border: 1px solid rgba(0, 0, 0, 0.08);\r\n border-radius: 4px;\r\n background: #fff;\r\n padding: 16px;\r\n}\r\n\r\n.header[_ngcontent-%COMP%], .footer[_ngcontent-%COMP%] {\r\n color: #424242;\r\n font-size: 16px;\r\n height: auto;\r\n margin:0;\r\n}\r\n\r\n.header[_ngcontent-%COMP%] {\r\n color: #424242;\r\n margin-bottom: 16px;\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n}\r\n.header[_ngcontent-%COMP%] .head-tag[_ngcontent-%COMP%] {\r\n display: flex;\r\n align-items: center;\r\n gap: 8px;\r\n color: #424242;\r\nfont-size: 16px;\r\nfont-style: normal;\r\nfont-weight: 400;\r\nline-height: 20px;\r\n}\r\n\r\n.header[_ngcontent-%COMP%] .count[_ngcontent-%COMP%] {\r\n width: 24px;\r\n height: 24px;\r\n min-width: 24px;\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n font-size: 10px;\r\n background: rgba(0, 0, 0, 0.08);\r\n border-radius: 50%;\r\n}\r\n.footer[_ngcontent-%COMP%] {\r\n font-size: 14px;\r\n margin-top: 16px;\r\n}\r\n\r\n.list-item[_ngcontent-%COMP%] {\r\n color: #424242;\r\n font-size: 14px;\r\n font-style: normal;\r\n font-weight: 400;\r\n line-height: 30px;\r\n cursor: pointer;\r\n margin: 4px;\r\n}\r\n.card-container[_ngcontent-%COMP%] {\r\n margin: 0;\r\n padding: 0;\r\n box-shadow: none;\r\n}\r\n.card-header-entity[_ngcontent-%COMP%] {\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: flex-start;\r\n padding-bottom: 20px;\r\n border-bottom: 1px solid rgba(0, 0, 0, 0.08);\r\n}\r\n.card-header-entity[_ngcontent-%COMP%] .title-wrap[_ngcontent-%COMP%] h1[_ngcontent-%COMP%] {\r\n color: #424242;\r\n font-size: 28px;\r\n font-style: normal;\r\n font-weight: 300;\r\n line-height: 28px;\r\n margin-bottom: 15px;\r\n }\r\n .card-header-entity[_ngcontent-%COMP%] .title-wrap[_ngcontent-%COMP%] {\r\n display: flex;\r\n flex-direction: column;\r\n }\r\n .card-header-entity[_ngcontent-%COMP%] .title-wrap[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\r\n margin: 0;\r\n display: flex;\r\n align-items: center;\r\n gap: 8px;\r\n color: #424242;\r\n font-size: 14px;\r\n font-style: normal;\r\n font-weight: 400;\r\n line-height: 20px;\r\n }\r\n\r\n \r\n\r\n\r\n \r\n .view-card[_ngcontent-%COMP%] .view-icon[_ngcontent-%COMP%] {\r\n color: #ff6358;\r\n }\r\n .card-wrapper[_ngcontent-%COMP%] {\r\n border: 1px solid rgba(0, 0, 0, 0.08);\r\n border-radius: 6px;\r\n }\r\n .card-wrapper[_ngcontent-%COMP%] .k-card-body[_ngcontent-%COMP%] {\r\n background: #fff;\r\n padding: 12px 20px;\r\n }\r\n .card-wrapper[_ngcontent-%COMP%] .view-card[_ngcontent-%COMP%] {\r\n overflow: auto;\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n background: #fafafa;\r\n padding: 4px 15px;\r\n }\r\n .view-card[_ngcontent-%COMP%] .btn-wrapper[_ngcontent-%COMP%] {\r\n display: flex;\r\n align-items: center;\r\n }\r\n \r\n .k-card-body[_ngcontent-%COMP%] .view-card-content[_ngcontent-%COMP%] h5[_ngcontent-%COMP%] {\r\n color: #424242;\r\n font-size: 16px;\r\n font-style: normal;\r\n font-weight: 400;\r\n line-height: 20px;\r\n margin-bottom: 0;\r\n letter-spacing: 0.18px;\r\n }\r\n .k-card-body[_ngcontent-%COMP%] .view-card-content[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\r\n color: #666;\r\n font-size: 14px;\r\n font-style: normal;\r\n font-weight: 400;\r\n line-height: 20px;\r\n height: 48px;\r\n margin-bottom: 0;\r\n }\r\n .card-container[_ngcontent-%COMP%] {\r\n padding: 0;\r\n margin: 0;\r\n box-shadow: none;\r\n }\r\n .card-header-entity[_ngcontent-%COMP%] {\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: flex-start;\r\n padding-bottom: 20px;\r\n border-bottom: 1px solid rgba(0, 0, 0, 0.08);\r\n }\r\n \r\n .card-header-entity[_ngcontent-%COMP%] .title-wrap[_ngcontent-%COMP%] h1[_ngcontent-%COMP%] {\r\n color: #424242;\r\n font-size: 28px;\r\n font-style: normal;\r\n font-weight: 300;\r\n line-height: 28px;\r\n margin-bottom: 15px;\r\n }\r\n .card-header-entity[_ngcontent-%COMP%] .title-wrap[_ngcontent-%COMP%] {\r\n display: flex;\r\n flex-direction: column;\r\n }\r\n .card-header-entity[_ngcontent-%COMP%] .title-wrap[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\r\n margin: 0;\r\n display: flex;\r\n align-items: center;\r\n gap: 8px;\r\n color: #424242;\r\n font-size: 14px;\r\n font-style: normal;\r\n font-weight: 400;\r\n line-height: 20px;\r\n }\r\n .main-area[_ngcontent-%COMP%] .card-list[_ngcontent-%COMP%] {\r\n display: flex;\r\n gap: 20px;\r\n }"] });
64
+ i0.ɵɵproperty("items", ctx.items)("selectedFolderID", ctx.selectedFolderID)("showLoader", ctx.showLoader);
65
+ } }, dependencies: [i3.GenericBrowserListComponent], styles: [".k-card-body[_ngcontent-%COMP%] {\r\n height: 80px;\r\n }", ".main-area[_ngcontent-%COMP%] {\r\n display: flex;\r\n height: 100%;\r\n width: 100%;\r\n gap: 24px;\r\n padding: 24px 0;\r\n}\r\n.list-view[_ngcontent-%COMP%] {\r\n padding: 16px;\r\n min-width: 300px;\r\n border-radius: 4px;\r\n background: #FAFAFA;\r\n border: none;\r\n}\r\n .list-view .k-listview-header, .list-view .k-listview-footer {\r\n border: none;\r\n}\r\n .list-view .k-listview-content {\r\n border: 1px solid rgba(0, 0, 0, 0.08);\r\n border-radius: 4px;\r\n background: #fff;\r\n padding: 16px;\r\n}\r\n\r\n.header[_ngcontent-%COMP%], .footer[_ngcontent-%COMP%] {\r\n color: #424242;\r\n font-size: 16px;\r\n height: auto;\r\n margin:0;\r\n}\r\n\r\n.header[_ngcontent-%COMP%] {\r\n color: #424242;\r\n margin-bottom: 16px;\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n}\r\n.header[_ngcontent-%COMP%] .head-tag[_ngcontent-%COMP%] {\r\n display: flex;\r\n align-items: center;\r\n gap: 8px;\r\n color: #424242;\r\nfont-size: 16px;\r\nfont-style: normal;\r\nfont-weight: 400;\r\nline-height: 20px;\r\n}\r\n\r\n.header[_ngcontent-%COMP%] .count[_ngcontent-%COMP%] {\r\n width: 24px;\r\n height: 24px;\r\n min-width: 24px;\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n font-size: 10px;\r\n background: rgba(0, 0, 0, 0.08);\r\n border-radius: 50%;\r\n}\r\n.footer[_ngcontent-%COMP%] {\r\n font-size: 14px;\r\n margin-top: 16px;\r\n}\r\n\r\n.list-item[_ngcontent-%COMP%] {\r\n color: #424242;\r\n font-size: 14px;\r\n font-style: normal;\r\n font-weight: 400;\r\n line-height: 30px;\r\n cursor: pointer;\r\n margin: 4px;\r\n}\r\n.card-container[_ngcontent-%COMP%] {\r\n margin: 0;\r\n padding: 0;\r\n box-shadow: none;\r\n}\r\n.card-header-entity[_ngcontent-%COMP%] {\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: flex-start;\r\n padding-bottom: 20px;\r\n border-bottom: 1px solid rgba(0, 0, 0, 0.08);\r\n}\r\n.card-header-entity[_ngcontent-%COMP%] .title-wrap[_ngcontent-%COMP%] h1[_ngcontent-%COMP%] {\r\n color: #424242;\r\n font-size: 28px;\r\n font-style: normal;\r\n font-weight: 300;\r\n line-height: 28px;\r\n margin-bottom: 15px;\r\n }\r\n .card-header-entity[_ngcontent-%COMP%] .title-wrap[_ngcontent-%COMP%] {\r\n display: flex;\r\n flex-direction: column;\r\n }\r\n .card-header-entity[_ngcontent-%COMP%] .title-wrap[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\r\n margin: 0;\r\n display: flex;\r\n align-items: center;\r\n gap: 8px;\r\n color: #424242;\r\n font-size: 14px;\r\n font-style: normal;\r\n font-weight: 400;\r\n line-height: 20px;\r\n }\r\n\r\n \r\n\r\n\r\n \r\n .view-card[_ngcontent-%COMP%] .view-icon[_ngcontent-%COMP%] {\r\n color: #ff6358;\r\n }\r\n .card-wrapper[_ngcontent-%COMP%] {\r\n border: 1px solid rgba(0, 0, 0, 0.08);\r\n border-radius: 6px;\r\n }\r\n .card-wrapper[_ngcontent-%COMP%] .k-card-body[_ngcontent-%COMP%] {\r\n background: #fff;\r\n padding: 12px 20px;\r\n }\r\n .card-wrapper[_ngcontent-%COMP%] .view-card[_ngcontent-%COMP%] {\r\n overflow: auto;\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n background: #fafafa;\r\n padding: 4px 15px;\r\n }\r\n .view-card[_ngcontent-%COMP%] .btn-wrapper[_ngcontent-%COMP%] {\r\n display: flex;\r\n align-items: center;\r\n }\r\n \r\n .k-card-body[_ngcontent-%COMP%] .view-card-content[_ngcontent-%COMP%] h5[_ngcontent-%COMP%] {\r\n color: #424242;\r\n font-size: 16px;\r\n font-style: normal;\r\n font-weight: 400;\r\n line-height: 20px;\r\n margin-bottom: 0;\r\n letter-spacing: 0.18px;\r\n }\r\n .k-card-body[_ngcontent-%COMP%] .view-card-content[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\r\n color: #666;\r\n font-size: 14px;\r\n font-style: normal;\r\n font-weight: 400;\r\n line-height: 20px;\r\n height: 48px;\r\n margin-bottom: 0;\r\n }\r\n .card-container[_ngcontent-%COMP%] {\r\n padding: 0;\r\n margin: 0;\r\n box-shadow: none;\r\n }\r\n .card-header-entity[_ngcontent-%COMP%] {\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: flex-start;\r\n padding-bottom: 20px;\r\n border-bottom: 1px solid rgba(0, 0, 0, 0.08);\r\n }\r\n \r\n .card-header-entity[_ngcontent-%COMP%] .title-wrap[_ngcontent-%COMP%] h1[_ngcontent-%COMP%] {\r\n color: #424242;\r\n font-size: 28px;\r\n font-style: normal;\r\n font-weight: 300;\r\n line-height: 28px;\r\n margin-bottom: 15px;\r\n }\r\n .card-header-entity[_ngcontent-%COMP%] .title-wrap[_ngcontent-%COMP%] {\r\n display: flex;\r\n flex-direction: column;\r\n }\r\n .card-header-entity[_ngcontent-%COMP%] .title-wrap[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\r\n margin: 0;\r\n display: flex;\r\n align-items: center;\r\n gap: 8px;\r\n color: #424242;\r\n font-size: 14px;\r\n font-style: normal;\r\n font-weight: 400;\r\n line-height: 20px;\r\n }\r\n .main-area[_ngcontent-%COMP%] .card-list[_ngcontent-%COMP%] {\r\n display: flex;\r\n gap: 20px;\r\n }"] });
52
66
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(QueryBrowserComponent, [{
53
67
  type: Component,
54
- args: [{ selector: 'app-query-browser', template: "<app-generic-browse-list title=\"Queries\" iconName=\"data\" itemType=\"query\" [items]=\"queries\" (itemClickEvent)=\"itemClick($event)\" [showLoader]=\"showLoader\">\n\n</app-generic-browse-list>", styles: [".k-card-body {\r\n height: 80px;\r\n }", "\r\n.main-area {\r\n display: flex;\r\n height: 100%;\r\n width: 100%;\r\n gap: 24px;\r\n padding: 24px 0;\r\n}\r\n.list-view {\r\n padding: 16px;\r\n min-width: 300px;\r\n border-radius: 4px;\r\n background: #FAFAFA;\r\n border: none;\r\n}\r\n::ng-deep .list-view .k-listview-header, \r\n::ng-deep .list-view .k-listview-footer {\r\n border: none;\r\n}\r\n::ng-deep .list-view .k-listview-content {\r\n border: 1px solid rgba(0, 0, 0, 0.08);\r\n border-radius: 4px;\r\n background: #fff;\r\n padding: 16px;\r\n}\r\n\r\n.header,\r\n.footer {\r\n color: #424242;\r\n font-size: 16px;\r\n height: auto;\r\n margin:0;\r\n}\r\n\r\n.header {\r\n color: #424242;\r\n margin-bottom: 16px;\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n}\r\n.header .head-tag {\r\n display: flex;\r\n align-items: center;\r\n gap: 8px;\r\n color: #424242;\r\nfont-size: 16px;\r\nfont-style: normal;\r\nfont-weight: 400;\r\nline-height: 20px;\r\n}\r\n\r\n.header .count {\r\n width: 24px;\r\n height: 24px;\r\n min-width: 24px;\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n font-size: 10px;\r\n background: rgba(0, 0, 0, 0.08);\r\n border-radius: 50%;\r\n}\r\n.footer {\r\n font-size: 14px;\r\n margin-top: 16px;\r\n}\r\n\r\n.list-item {\r\n color: #424242;\r\n font-size: 14px;\r\n font-style: normal;\r\n font-weight: 400;\r\n line-height: 30px;\r\n cursor: pointer;\r\n margin: 4px;\r\n}\r\n.card-container {\r\n margin: 0;\r\n padding: 0;\r\n box-shadow: none;\r\n}\r\n.card-header-entity {\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: flex-start;\r\n padding-bottom: 20px;\r\n border-bottom: 1px solid rgba(0, 0, 0, 0.08);\r\n}\r\n.card-header-entity .title-wrap h1 {\r\n color: #424242;\r\n font-size: 28px;\r\n font-style: normal;\r\n font-weight: 300;\r\n line-height: 28px;\r\n margin-bottom: 15px;\r\n }\r\n .card-header-entity .title-wrap {\r\n display: flex;\r\n flex-direction: column;\r\n }\r\n .card-header-entity .title-wrap p {\r\n margin: 0;\r\n display: flex;\r\n align-items: center;\r\n gap: 8px;\r\n color: #424242;\r\n font-size: 14px;\r\n font-style: normal;\r\n font-weight: 400;\r\n line-height: 20px;\r\n }\r\n\r\n \r\n\r\n\r\n \r\n .view-card .view-icon {\r\n color: #ff6358;\r\n }\r\n .card-wrapper {\r\n border: 1px solid rgba(0, 0, 0, 0.08);\r\n border-radius: 6px;\r\n }\r\n .card-wrapper .k-card-body {\r\n background: #fff;\r\n padding: 12px 20px;\r\n }\r\n .card-wrapper .view-card {\r\n overflow: auto;\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n background: #fafafa;\r\n padding: 4px 15px;\r\n }\r\n .view-card .btn-wrapper {\r\n display: flex;\r\n align-items: center;\r\n }\r\n \r\n .k-card-body .view-card-content h5 {\r\n color: #424242;\r\n font-size: 16px;\r\n font-style: normal;\r\n font-weight: 400;\r\n line-height: 20px;\r\n margin-bottom: 0;\r\n letter-spacing: 0.18px;\r\n }\r\n .k-card-body .view-card-content p {\r\n color: #666;\r\n font-size: 14px;\r\n font-style: normal;\r\n font-weight: 400;\r\n line-height: 20px;\r\n height: 48px;\r\n margin-bottom: 0;\r\n }\r\n .card-container {\r\n padding: 0;\r\n margin: 0;\r\n box-shadow: none;\r\n }\r\n .card-header-entity {\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: flex-start;\r\n padding-bottom: 20px;\r\n border-bottom: 1px solid rgba(0, 0, 0, 0.08);\r\n }\r\n \r\n .card-header-entity .title-wrap h1 {\r\n color: #424242;\r\n font-size: 28px;\r\n font-style: normal;\r\n font-weight: 300;\r\n line-height: 28px;\r\n margin-bottom: 15px;\r\n }\r\n .card-header-entity .title-wrap {\r\n display: flex;\r\n flex-direction: column;\r\n }\r\n .card-header-entity .title-wrap p {\r\n margin: 0;\r\n display: flex;\r\n align-items: center;\r\n gap: 8px;\r\n color: #424242;\r\n font-size: 14px;\r\n font-style: normal;\r\n font-weight: 400;\r\n line-height: 20px;\r\n }\r\n .main-area .card-list {\r\n display: flex;\r\n gap: 20px;\r\n }\r\n "] }]
55
- }], () => [{ type: i1.Router }], null); })();
56
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(QueryBrowserComponent, { className: "QueryBrowserComponent", filePath: "src\\lib\\query-browser-component\\query-browser.component.ts", lineNumber: 11 }); })();
68
+ args: [{ selector: 'app-query-browser', template: "<app-generic-browser-list \r\ntitle=\"Queries\" \r\nitemType=\"query\"\r\niconName=\"data\" \r\n[items]=\"items\"\r\naddText=\"Create Query\"\r\nItemEntityName=\"Queries\"\r\nCategoryEntityName=\"Query Categories\"\r\n(itemClickEvent)=\"itemClick($event)\"\r\n(backButtonClickEvent)=\"onBackButtonClick()\"\r\n(AfterAddFolderEvent)=\"onEvent($event)\"\r\n(AfterAddItemEvent)=\"onEvent($event)\"\r\n(AfterDeleteItemEvent)=\"onEvent($event)\"\r\n(AfterDeleteFolderEvent)=\"onEvent($event)\"\r\n[selectedFolderID]=\"selectedFolderID\"\r\n[showLoader]=\"showLoader\"\r\n/>", styles: [".k-card-body {\r\n height: 80px;\r\n }", "\r\n.main-area {\r\n display: flex;\r\n height: 100%;\r\n width: 100%;\r\n gap: 24px;\r\n padding: 24px 0;\r\n}\r\n.list-view {\r\n padding: 16px;\r\n min-width: 300px;\r\n border-radius: 4px;\r\n background: #FAFAFA;\r\n border: none;\r\n}\r\n::ng-deep .list-view .k-listview-header, \r\n::ng-deep .list-view .k-listview-footer {\r\n border: none;\r\n}\r\n::ng-deep .list-view .k-listview-content {\r\n border: 1px solid rgba(0, 0, 0, 0.08);\r\n border-radius: 4px;\r\n background: #fff;\r\n padding: 16px;\r\n}\r\n\r\n.header,\r\n.footer {\r\n color: #424242;\r\n font-size: 16px;\r\n height: auto;\r\n margin:0;\r\n}\r\n\r\n.header {\r\n color: #424242;\r\n margin-bottom: 16px;\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n}\r\n.header .head-tag {\r\n display: flex;\r\n align-items: center;\r\n gap: 8px;\r\n color: #424242;\r\nfont-size: 16px;\r\nfont-style: normal;\r\nfont-weight: 400;\r\nline-height: 20px;\r\n}\r\n\r\n.header .count {\r\n width: 24px;\r\n height: 24px;\r\n min-width: 24px;\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n font-size: 10px;\r\n background: rgba(0, 0, 0, 0.08);\r\n border-radius: 50%;\r\n}\r\n.footer {\r\n font-size: 14px;\r\n margin-top: 16px;\r\n}\r\n\r\n.list-item {\r\n color: #424242;\r\n font-size: 14px;\r\n font-style: normal;\r\n font-weight: 400;\r\n line-height: 30px;\r\n cursor: pointer;\r\n margin: 4px;\r\n}\r\n.card-container {\r\n margin: 0;\r\n padding: 0;\r\n box-shadow: none;\r\n}\r\n.card-header-entity {\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: flex-start;\r\n padding-bottom: 20px;\r\n border-bottom: 1px solid rgba(0, 0, 0, 0.08);\r\n}\r\n.card-header-entity .title-wrap h1 {\r\n color: #424242;\r\n font-size: 28px;\r\n font-style: normal;\r\n font-weight: 300;\r\n line-height: 28px;\r\n margin-bottom: 15px;\r\n }\r\n .card-header-entity .title-wrap {\r\n display: flex;\r\n flex-direction: column;\r\n }\r\n .card-header-entity .title-wrap p {\r\n margin: 0;\r\n display: flex;\r\n align-items: center;\r\n gap: 8px;\r\n color: #424242;\r\n font-size: 14px;\r\n font-style: normal;\r\n font-weight: 400;\r\n line-height: 20px;\r\n }\r\n\r\n \r\n\r\n\r\n \r\n .view-card .view-icon {\r\n color: #ff6358;\r\n }\r\n .card-wrapper {\r\n border: 1px solid rgba(0, 0, 0, 0.08);\r\n border-radius: 6px;\r\n }\r\n .card-wrapper .k-card-body {\r\n background: #fff;\r\n padding: 12px 20px;\r\n }\r\n .card-wrapper .view-card {\r\n overflow: auto;\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n background: #fafafa;\r\n padding: 4px 15px;\r\n }\r\n .view-card .btn-wrapper {\r\n display: flex;\r\n align-items: center;\r\n }\r\n \r\n .k-card-body .view-card-content h5 {\r\n color: #424242;\r\n font-size: 16px;\r\n font-style: normal;\r\n font-weight: 400;\r\n line-height: 20px;\r\n margin-bottom: 0;\r\n letter-spacing: 0.18px;\r\n }\r\n .k-card-body .view-card-content p {\r\n color: #666;\r\n font-size: 14px;\r\n font-style: normal;\r\n font-weight: 400;\r\n line-height: 20px;\r\n height: 48px;\r\n margin-bottom: 0;\r\n }\r\n .card-container {\r\n padding: 0;\r\n margin: 0;\r\n box-shadow: none;\r\n }\r\n .card-header-entity {\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: flex-start;\r\n padding-bottom: 20px;\r\n border-bottom: 1px solid rgba(0, 0, 0, 0.08);\r\n }\r\n \r\n .card-header-entity .title-wrap h1 {\r\n color: #424242;\r\n font-size: 28px;\r\n font-style: normal;\r\n font-weight: 300;\r\n line-height: 28px;\r\n margin-bottom: 15px;\r\n }\r\n .card-header-entity .title-wrap {\r\n display: flex;\r\n flex-direction: column;\r\n }\r\n .card-header-entity .title-wrap p {\r\n margin: 0;\r\n display: flex;\r\n align-items: center;\r\n gap: 8px;\r\n color: #424242;\r\n font-size: 14px;\r\n font-style: normal;\r\n font-weight: 400;\r\n line-height: 20px;\r\n }\r\n .main-area .card-list {\r\n display: flex;\r\n gap: 20px;\r\n }\r\n "] }]
69
+ }], () => [{ type: i1.Router }, { type: i2.SharedService }], null); })();
70
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(QueryBrowserComponent, { className: "QueryBrowserComponent", filePath: "src\\lib\\query-browser-component\\query-browser.component.ts", lineNumber: 15 }); })();
@@ -1,14 +1,20 @@
1
1
  import { Router } from '@angular/router';
2
2
  import { ReportEntity } from '@memberjunction/core-entities';
3
+ import { BaseBrowserComponent } from '../base-browser-component/base-browser-component';
4
+ import { SharedService } from '@memberjunction/ng-shared';
5
+ import { BaseEvent } from '../../generic/Events.types';
3
6
  import * as i0 from "@angular/core";
4
- export declare class ReportBrowserComponent {
7
+ export declare class ReportBrowserComponent extends BaseBrowserComponent {
5
8
  private router;
9
+ private sharedService;
6
10
  reports: ReportEntity[];
7
11
  showLoader: boolean;
8
- constructor(router: Router);
9
- ngOnInit(): void;
10
- LoadData(): Promise<void>;
12
+ constructor(router: Router, sharedService: SharedService);
13
+ ngOnInit(): Promise<void>;
14
+ GetData(): Promise<void>;
15
+ onBackButtonClick(): void;
11
16
  itemClick(item: ReportEntity): void;
17
+ onEvent(event: BaseEvent): void;
12
18
  static ɵfac: i0.ɵɵFactoryDeclaration<ReportBrowserComponent, never>;
13
19
  static ɵcmp: i0.ɵɵComponentDeclaration<ReportBrowserComponent, "app-report-browser", never, {}, {}, never, never, false, never>;
14
20
  }
@@ -1 +1 @@
1
- {"version":3,"file":"report-browser.component.d.ts","sourceRoot":"","sources":["../../../src/lib/report-browser-component/report-browser.component.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AAExC,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;;AAE7D,qBAKa,sBAAsB;IAIrB,OAAO,CAAC,MAAM;IAHnB,OAAO,EAAE,YAAY,EAAE,CAAM;IAC7B,UAAU,EAAE,OAAO,CAAS;gBAEf,MAAM,EAAE,MAAM;IAElC,QAAQ,IAAI,IAAI;IAGV,QAAQ;IAcP,SAAS,CAAC,IAAI,EAAE,YAAY;yCAvBxB,sBAAsB;2CAAtB,sBAAsB;CA4BlC"}
1
+ {"version":3,"file":"report-browser.component.d.ts","sourceRoot":"","sources":["../../../src/lib/report-browser-component/report-browser.component.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,kDAAkD,CAAC;AACxF,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAE1D,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;;AAEvD,qBAKa,sBAAuB,SAAQ,oBAAoB;IAIlD,OAAO,CAAC,MAAM;IAAU,OAAO,CAAC,aAAa;IAHlD,OAAO,EAAE,YAAY,EAAE,CAAM;IAC7B,UAAU,EAAE,OAAO,CAAS;gBAEf,MAAM,EAAE,MAAM,EAAU,aAAa,EAAE,aAAa;IAalE,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAIzB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAIvB,iBAAiB,IAAI,IAAI;IAwBzB,SAAS,CAAC,IAAI,EAAE,YAAY;IAM5B,OAAO,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI;yCAvD3B,sBAAsB;2CAAtB,sBAAsB;CA0DlC"}
@@ -8,49 +8,81 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
8
8
  });
9
9
  };
10
10
  import { Component } from '@angular/core';
11
- import { Metadata, RunView } from '@memberjunction/core';
11
+ import { BaseBrowserComponent } from '../base-browser-component/base-browser-component';
12
12
  import * as i0 from "@angular/core";
13
13
  import * as i1 from "@angular/router";
14
- import * as i2 from "../generic-browse-list/generic-browse-list.component";
15
- export class ReportBrowserComponent {
16
- constructor(router) {
14
+ import * as i2 from "@memberjunction/ng-shared";
15
+ import * as i3 from "../generic-browser-list/generic-browser-list.component";
16
+ export class ReportBrowserComponent extends BaseBrowserComponent {
17
+ constructor(router, sharedService) {
18
+ var _a;
19
+ super();
17
20
  this.router = router;
21
+ this.sharedService = sharedService;
18
22
  this.reports = [];
19
23
  this.showLoader = false;
24
+ this.pageName = "Reports";
25
+ this.routeName = "reports";
26
+ this.routeNameSingular = "report";
27
+ this.itemEntityName = "Reports";
28
+ this.categoryEntityName = "Report Categories";
29
+ const params = (_a = this.router.getCurrentNavigation()) === null || _a === void 0 ? void 0 : _a.extractedUrl.queryParams;
30
+ this.InitPathData(params);
20
31
  }
21
32
  ngOnInit() {
22
- this.LoadData();
33
+ return __awaiter(this, void 0, void 0, function* () {
34
+ yield this.GetData();
35
+ });
23
36
  }
24
- LoadData() {
37
+ GetData() {
38
+ const _super = Object.create(null, {
39
+ LoadData: { get: () => super.LoadData }
40
+ });
25
41
  return __awaiter(this, void 0, void 0, function* () {
26
- this.showLoader = true;
27
- const md = new Metadata();
28
- const rv = new RunView();
29
- const result = yield rv.RunView({
30
- EntityName: 'Reports',
31
- ExtraFilter: `UserID=${md.CurrentUser.ID}`
32
- });
33
- if (result && result.Success)
34
- this.reports = result.Results;
35
- this.showLoader = false;
42
+ yield _super.LoadData.call(this);
36
43
  });
37
44
  }
45
+ onBackButtonClick() {
46
+ const pathData = this.PathData.ParentPathData;
47
+ if (pathData && pathData.ID > 0) {
48
+ this.PathData = pathData;
49
+ //navigation seems like it does nothing but update the URL
50
+ //so just reload all of the data
51
+ this.router.navigate(['reports'], { queryParams: { folderID: pathData.ID } });
52
+ this.selectedFolderID = pathData.ID;
53
+ this.LoadData();
54
+ }
55
+ else if (this.parentFolderID || !this.parentFolderID && this.selectedFolderID) {
56
+ this.router.navigate(['reports'], { queryParams: { folderID: this.parentFolderID } });
57
+ this.selectedFolderID = this.parentFolderID;
58
+ this.parentFolderID = null;
59
+ this.LoadData();
60
+ }
61
+ else {
62
+ //no parent path, so just go home
63
+ this.router.navigate(['']);
64
+ }
65
+ this.showLoader = false;
66
+ }
38
67
  itemClick(item) {
39
68
  if (item) {
40
69
  this.router.navigate(['resource', 'report', item.ID]);
41
70
  }
42
71
  }
72
+ onEvent(event) {
73
+ super.onEvent(event);
74
+ }
43
75
  }
44
- ReportBrowserComponent.ɵfac = function ReportBrowserComponent_Factory(t) { return new (t || ReportBrowserComponent)(i0.ɵɵdirectiveInject(i1.Router)); };
45
- ReportBrowserComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ReportBrowserComponent, selectors: [["app-report-browser"]], decls: 1, vars: 2, consts: [["title", "Reports", "iconName", "graph", "itemType", "report", 3, "items", "showLoader", "itemClickEvent"]], template: function ReportBrowserComponent_Template(rf, ctx) { if (rf & 1) {
46
- i0.ɵɵelementStart(0, "app-generic-browse-list", 0);
47
- i0.ɵɵlistener("itemClickEvent", function ReportBrowserComponent_Template_app_generic_browse_list_itemClickEvent_0_listener($event) { return ctx.itemClick($event); });
76
+ ReportBrowserComponent.ɵfac = function ReportBrowserComponent_Factory(t) { return new (t || ReportBrowserComponent)(i0.ɵɵdirectiveInject(i1.Router), i0.ɵɵdirectiveInject(i2.SharedService)); };
77
+ ReportBrowserComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ReportBrowserComponent, selectors: [["app-report-browser"]], features: [i0.ɵɵInheritDefinitionFeature], decls: 1, vars: 4, consts: [["title", "Reports", "itemType", "report", "iconName", "graph", "addText", "Create Report", "ItemEntityName", "Reports", "CategoryEntityName", "Report Categories", 3, "items", "selectedFolderID", "showLoader", "disableAddButton", "itemClickEvent", "backButtonClickEvent", "AfterAddFolderEvent", "AfterAddItemEvent", "AfterDeleteItemEvent", "AfterDeleteFolderEvent"]], template: function ReportBrowserComponent_Template(rf, ctx) { if (rf & 1) {
78
+ i0.ɵɵelementStart(0, "app-generic-browser-list", 0);
79
+ i0.ɵɵlistener("itemClickEvent", function ReportBrowserComponent_Template_app_generic_browser_list_itemClickEvent_0_listener($event) { return ctx.itemClick($event); })("backButtonClickEvent", function ReportBrowserComponent_Template_app_generic_browser_list_backButtonClickEvent_0_listener() { return ctx.onBackButtonClick(); })("AfterAddFolderEvent", function ReportBrowserComponent_Template_app_generic_browser_list_AfterAddFolderEvent_0_listener($event) { return ctx.onEvent($event); })("AfterAddItemEvent", function ReportBrowserComponent_Template_app_generic_browser_list_AfterAddItemEvent_0_listener($event) { return ctx.onEvent($event); })("AfterDeleteItemEvent", function ReportBrowserComponent_Template_app_generic_browser_list_AfterDeleteItemEvent_0_listener($event) { return ctx.onEvent($event); })("AfterDeleteFolderEvent", function ReportBrowserComponent_Template_app_generic_browser_list_AfterDeleteFolderEvent_0_listener($event) { return ctx.onEvent($event); })("backButtonClickEvent", function ReportBrowserComponent_Template_app_generic_browser_list_backButtonClickEvent_0_listener() { return ctx.onBackButtonClick(); });
48
80
  i0.ɵɵelementEnd();
49
81
  } if (rf & 2) {
50
- i0.ɵɵproperty("items", ctx.reports)("showLoader", ctx.showLoader);
51
- } }, dependencies: [i2.GenericBrowseListComponent], styles: [".k-card-body[_ngcontent-%COMP%] {\r\n height: 80px;\r\n }", ".main-area[_ngcontent-%COMP%] {\r\n display: flex;\r\n height: 100%;\r\n width: 100%;\r\n gap: 24px;\r\n padding: 24px 0;\r\n}\r\n.list-view[_ngcontent-%COMP%] {\r\n padding: 16px;\r\n min-width: 300px;\r\n border-radius: 4px;\r\n background: #FAFAFA;\r\n border: none;\r\n}\r\n .list-view .k-listview-header, .list-view .k-listview-footer {\r\n border: none;\r\n}\r\n .list-view .k-listview-content {\r\n border: 1px solid rgba(0, 0, 0, 0.08);\r\n border-radius: 4px;\r\n background: #fff;\r\n padding: 16px;\r\n}\r\n\r\n.header[_ngcontent-%COMP%], .footer[_ngcontent-%COMP%] {\r\n color: #424242;\r\n font-size: 16px;\r\n height: auto;\r\n margin:0;\r\n}\r\n\r\n.header[_ngcontent-%COMP%] {\r\n color: #424242;\r\n margin-bottom: 16px;\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n}\r\n.header[_ngcontent-%COMP%] .head-tag[_ngcontent-%COMP%] {\r\n display: flex;\r\n align-items: center;\r\n gap: 8px;\r\n color: #424242;\r\nfont-size: 16px;\r\nfont-style: normal;\r\nfont-weight: 400;\r\nline-height: 20px;\r\n}\r\n\r\n.header[_ngcontent-%COMP%] .count[_ngcontent-%COMP%] {\r\n width: 24px;\r\n height: 24px;\r\n min-width: 24px;\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n font-size: 10px;\r\n background: rgba(0, 0, 0, 0.08);\r\n border-radius: 50%;\r\n}\r\n.footer[_ngcontent-%COMP%] {\r\n font-size: 14px;\r\n margin-top: 16px;\r\n}\r\n\r\n.list-item[_ngcontent-%COMP%] {\r\n color: #424242;\r\n font-size: 14px;\r\n font-style: normal;\r\n font-weight: 400;\r\n line-height: 30px;\r\n cursor: pointer;\r\n margin: 4px;\r\n}\r\n.card-container[_ngcontent-%COMP%] {\r\n margin: 0;\r\n padding: 0;\r\n box-shadow: none;\r\n}\r\n.card-header-entity[_ngcontent-%COMP%] {\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: flex-start;\r\n padding-bottom: 20px;\r\n border-bottom: 1px solid rgba(0, 0, 0, 0.08);\r\n}\r\n.card-header-entity[_ngcontent-%COMP%] .title-wrap[_ngcontent-%COMP%] h1[_ngcontent-%COMP%] {\r\n color: #424242;\r\n font-size: 28px;\r\n font-style: normal;\r\n font-weight: 300;\r\n line-height: 28px;\r\n margin-bottom: 15px;\r\n }\r\n .card-header-entity[_ngcontent-%COMP%] .title-wrap[_ngcontent-%COMP%] {\r\n display: flex;\r\n flex-direction: column;\r\n }\r\n .card-header-entity[_ngcontent-%COMP%] .title-wrap[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\r\n margin: 0;\r\n display: flex;\r\n align-items: center;\r\n gap: 8px;\r\n color: #424242;\r\n font-size: 14px;\r\n font-style: normal;\r\n font-weight: 400;\r\n line-height: 20px;\r\n }\r\n\r\n \r\n\r\n\r\n \r\n .view-card[_ngcontent-%COMP%] .view-icon[_ngcontent-%COMP%] {\r\n color: #ff6358;\r\n }\r\n .card-wrapper[_ngcontent-%COMP%] {\r\n border: 1px solid rgba(0, 0, 0, 0.08);\r\n border-radius: 6px;\r\n }\r\n .card-wrapper[_ngcontent-%COMP%] .k-card-body[_ngcontent-%COMP%] {\r\n background: #fff;\r\n padding: 12px 20px;\r\n }\r\n .card-wrapper[_ngcontent-%COMP%] .view-card[_ngcontent-%COMP%] {\r\n overflow: auto;\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n background: #fafafa;\r\n padding: 4px 15px;\r\n }\r\n .view-card[_ngcontent-%COMP%] .btn-wrapper[_ngcontent-%COMP%] {\r\n display: flex;\r\n align-items: center;\r\n }\r\n \r\n .k-card-body[_ngcontent-%COMP%] .view-card-content[_ngcontent-%COMP%] h5[_ngcontent-%COMP%] {\r\n color: #424242;\r\n font-size: 16px;\r\n font-style: normal;\r\n font-weight: 400;\r\n line-height: 20px;\r\n margin-bottom: 0;\r\n letter-spacing: 0.18px;\r\n }\r\n .k-card-body[_ngcontent-%COMP%] .view-card-content[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\r\n color: #666;\r\n font-size: 14px;\r\n font-style: normal;\r\n font-weight: 400;\r\n line-height: 20px;\r\n height: 48px;\r\n margin-bottom: 0;\r\n }\r\n .card-container[_ngcontent-%COMP%] {\r\n padding: 0;\r\n margin: 0;\r\n box-shadow: none;\r\n }\r\n .card-header-entity[_ngcontent-%COMP%] {\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: flex-start;\r\n padding-bottom: 20px;\r\n border-bottom: 1px solid rgba(0, 0, 0, 0.08);\r\n }\r\n \r\n .card-header-entity[_ngcontent-%COMP%] .title-wrap[_ngcontent-%COMP%] h1[_ngcontent-%COMP%] {\r\n color: #424242;\r\n font-size: 28px;\r\n font-style: normal;\r\n font-weight: 300;\r\n line-height: 28px;\r\n margin-bottom: 15px;\r\n }\r\n .card-header-entity[_ngcontent-%COMP%] .title-wrap[_ngcontent-%COMP%] {\r\n display: flex;\r\n flex-direction: column;\r\n }\r\n .card-header-entity[_ngcontent-%COMP%] .title-wrap[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\r\n margin: 0;\r\n display: flex;\r\n align-items: center;\r\n gap: 8px;\r\n color: #424242;\r\n font-size: 14px;\r\n font-style: normal;\r\n font-weight: 400;\r\n line-height: 20px;\r\n }\r\n .main-area[_ngcontent-%COMP%] .card-list[_ngcontent-%COMP%] {\r\n display: flex;\r\n gap: 20px;\r\n }"] });
82
+ i0.ɵɵproperty("items", ctx.items)("selectedFolderID", ctx.selectedFolderID)("showLoader", ctx.showLoader)("disableAddButton", true);
83
+ } }, dependencies: [i3.GenericBrowserListComponent], styles: [".k-card-body[_ngcontent-%COMP%] {\r\n height: 80px;\r\n }", ".main-area[_ngcontent-%COMP%] {\r\n display: flex;\r\n height: 100%;\r\n width: 100%;\r\n gap: 24px;\r\n padding: 24px 0;\r\n}\r\n.list-view[_ngcontent-%COMP%] {\r\n padding: 16px;\r\n min-width: 300px;\r\n border-radius: 4px;\r\n background: #FAFAFA;\r\n border: none;\r\n}\r\n .list-view .k-listview-header, .list-view .k-listview-footer {\r\n border: none;\r\n}\r\n .list-view .k-listview-content {\r\n border: 1px solid rgba(0, 0, 0, 0.08);\r\n border-radius: 4px;\r\n background: #fff;\r\n padding: 16px;\r\n}\r\n\r\n.header[_ngcontent-%COMP%], .footer[_ngcontent-%COMP%] {\r\n color: #424242;\r\n font-size: 16px;\r\n height: auto;\r\n margin:0;\r\n}\r\n\r\n.header[_ngcontent-%COMP%] {\r\n color: #424242;\r\n margin-bottom: 16px;\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n}\r\n.header[_ngcontent-%COMP%] .head-tag[_ngcontent-%COMP%] {\r\n display: flex;\r\n align-items: center;\r\n gap: 8px;\r\n color: #424242;\r\nfont-size: 16px;\r\nfont-style: normal;\r\nfont-weight: 400;\r\nline-height: 20px;\r\n}\r\n\r\n.header[_ngcontent-%COMP%] .count[_ngcontent-%COMP%] {\r\n width: 24px;\r\n height: 24px;\r\n min-width: 24px;\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n font-size: 10px;\r\n background: rgba(0, 0, 0, 0.08);\r\n border-radius: 50%;\r\n}\r\n.footer[_ngcontent-%COMP%] {\r\n font-size: 14px;\r\n margin-top: 16px;\r\n}\r\n\r\n.list-item[_ngcontent-%COMP%] {\r\n color: #424242;\r\n font-size: 14px;\r\n font-style: normal;\r\n font-weight: 400;\r\n line-height: 30px;\r\n cursor: pointer;\r\n margin: 4px;\r\n}\r\n.card-container[_ngcontent-%COMP%] {\r\n margin: 0;\r\n padding: 0;\r\n box-shadow: none;\r\n}\r\n.card-header-entity[_ngcontent-%COMP%] {\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: flex-start;\r\n padding-bottom: 20px;\r\n border-bottom: 1px solid rgba(0, 0, 0, 0.08);\r\n}\r\n.card-header-entity[_ngcontent-%COMP%] .title-wrap[_ngcontent-%COMP%] h1[_ngcontent-%COMP%] {\r\n color: #424242;\r\n font-size: 28px;\r\n font-style: normal;\r\n font-weight: 300;\r\n line-height: 28px;\r\n margin-bottom: 15px;\r\n }\r\n .card-header-entity[_ngcontent-%COMP%] .title-wrap[_ngcontent-%COMP%] {\r\n display: flex;\r\n flex-direction: column;\r\n }\r\n .card-header-entity[_ngcontent-%COMP%] .title-wrap[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\r\n margin: 0;\r\n display: flex;\r\n align-items: center;\r\n gap: 8px;\r\n color: #424242;\r\n font-size: 14px;\r\n font-style: normal;\r\n font-weight: 400;\r\n line-height: 20px;\r\n }\r\n\r\n \r\n\r\n\r\n \r\n .view-card[_ngcontent-%COMP%] .view-icon[_ngcontent-%COMP%] {\r\n color: #ff6358;\r\n }\r\n .card-wrapper[_ngcontent-%COMP%] {\r\n border: 1px solid rgba(0, 0, 0, 0.08);\r\n border-radius: 6px;\r\n }\r\n .card-wrapper[_ngcontent-%COMP%] .k-card-body[_ngcontent-%COMP%] {\r\n background: #fff;\r\n padding: 12px 20px;\r\n }\r\n .card-wrapper[_ngcontent-%COMP%] .view-card[_ngcontent-%COMP%] {\r\n overflow: auto;\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n background: #fafafa;\r\n padding: 4px 15px;\r\n }\r\n .view-card[_ngcontent-%COMP%] .btn-wrapper[_ngcontent-%COMP%] {\r\n display: flex;\r\n align-items: center;\r\n }\r\n \r\n .k-card-body[_ngcontent-%COMP%] .view-card-content[_ngcontent-%COMP%] h5[_ngcontent-%COMP%] {\r\n color: #424242;\r\n font-size: 16px;\r\n font-style: normal;\r\n font-weight: 400;\r\n line-height: 20px;\r\n margin-bottom: 0;\r\n letter-spacing: 0.18px;\r\n }\r\n .k-card-body[_ngcontent-%COMP%] .view-card-content[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\r\n color: #666;\r\n font-size: 14px;\r\n font-style: normal;\r\n font-weight: 400;\r\n line-height: 20px;\r\n height: 48px;\r\n margin-bottom: 0;\r\n }\r\n .card-container[_ngcontent-%COMP%] {\r\n padding: 0;\r\n margin: 0;\r\n box-shadow: none;\r\n }\r\n .card-header-entity[_ngcontent-%COMP%] {\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: flex-start;\r\n padding-bottom: 20px;\r\n border-bottom: 1px solid rgba(0, 0, 0, 0.08);\r\n }\r\n \r\n .card-header-entity[_ngcontent-%COMP%] .title-wrap[_ngcontent-%COMP%] h1[_ngcontent-%COMP%] {\r\n color: #424242;\r\n font-size: 28px;\r\n font-style: normal;\r\n font-weight: 300;\r\n line-height: 28px;\r\n margin-bottom: 15px;\r\n }\r\n .card-header-entity[_ngcontent-%COMP%] .title-wrap[_ngcontent-%COMP%] {\r\n display: flex;\r\n flex-direction: column;\r\n }\r\n .card-header-entity[_ngcontent-%COMP%] .title-wrap[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\r\n margin: 0;\r\n display: flex;\r\n align-items: center;\r\n gap: 8px;\r\n color: #424242;\r\n font-size: 14px;\r\n font-style: normal;\r\n font-weight: 400;\r\n line-height: 20px;\r\n }\r\n .main-area[_ngcontent-%COMP%] .card-list[_ngcontent-%COMP%] {\r\n display: flex;\r\n gap: 20px;\r\n }"] });
52
84
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ReportBrowserComponent, [{
53
85
  type: Component,
54
- args: [{ selector: 'app-report-browser', template: "<app-generic-browse-list title=\"Reports\" iconName=\"graph\" itemType=\"report\" [items]=\"reports\" (itemClickEvent)=\"itemClick($event)\" [showLoader]=\"showLoader\">\n\n</app-generic-browse-list>", styles: [".k-card-body {\r\n height: 80px;\r\n }", "\r\n.main-area {\r\n display: flex;\r\n height: 100%;\r\n width: 100%;\r\n gap: 24px;\r\n padding: 24px 0;\r\n}\r\n.list-view {\r\n padding: 16px;\r\n min-width: 300px;\r\n border-radius: 4px;\r\n background: #FAFAFA;\r\n border: none;\r\n}\r\n::ng-deep .list-view .k-listview-header, \r\n::ng-deep .list-view .k-listview-footer {\r\n border: none;\r\n}\r\n::ng-deep .list-view .k-listview-content {\r\n border: 1px solid rgba(0, 0, 0, 0.08);\r\n border-radius: 4px;\r\n background: #fff;\r\n padding: 16px;\r\n}\r\n\r\n.header,\r\n.footer {\r\n color: #424242;\r\n font-size: 16px;\r\n height: auto;\r\n margin:0;\r\n}\r\n\r\n.header {\r\n color: #424242;\r\n margin-bottom: 16px;\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n}\r\n.header .head-tag {\r\n display: flex;\r\n align-items: center;\r\n gap: 8px;\r\n color: #424242;\r\nfont-size: 16px;\r\nfont-style: normal;\r\nfont-weight: 400;\r\nline-height: 20px;\r\n}\r\n\r\n.header .count {\r\n width: 24px;\r\n height: 24px;\r\n min-width: 24px;\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n font-size: 10px;\r\n background: rgba(0, 0, 0, 0.08);\r\n border-radius: 50%;\r\n}\r\n.footer {\r\n font-size: 14px;\r\n margin-top: 16px;\r\n}\r\n\r\n.list-item {\r\n color: #424242;\r\n font-size: 14px;\r\n font-style: normal;\r\n font-weight: 400;\r\n line-height: 30px;\r\n cursor: pointer;\r\n margin: 4px;\r\n}\r\n.card-container {\r\n margin: 0;\r\n padding: 0;\r\n box-shadow: none;\r\n}\r\n.card-header-entity {\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: flex-start;\r\n padding-bottom: 20px;\r\n border-bottom: 1px solid rgba(0, 0, 0, 0.08);\r\n}\r\n.card-header-entity .title-wrap h1 {\r\n color: #424242;\r\n font-size: 28px;\r\n font-style: normal;\r\n font-weight: 300;\r\n line-height: 28px;\r\n margin-bottom: 15px;\r\n }\r\n .card-header-entity .title-wrap {\r\n display: flex;\r\n flex-direction: column;\r\n }\r\n .card-header-entity .title-wrap p {\r\n margin: 0;\r\n display: flex;\r\n align-items: center;\r\n gap: 8px;\r\n color: #424242;\r\n font-size: 14px;\r\n font-style: normal;\r\n font-weight: 400;\r\n line-height: 20px;\r\n }\r\n\r\n \r\n\r\n\r\n \r\n .view-card .view-icon {\r\n color: #ff6358;\r\n }\r\n .card-wrapper {\r\n border: 1px solid rgba(0, 0, 0, 0.08);\r\n border-radius: 6px;\r\n }\r\n .card-wrapper .k-card-body {\r\n background: #fff;\r\n padding: 12px 20px;\r\n }\r\n .card-wrapper .view-card {\r\n overflow: auto;\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n background: #fafafa;\r\n padding: 4px 15px;\r\n }\r\n .view-card .btn-wrapper {\r\n display: flex;\r\n align-items: center;\r\n }\r\n \r\n .k-card-body .view-card-content h5 {\r\n color: #424242;\r\n font-size: 16px;\r\n font-style: normal;\r\n font-weight: 400;\r\n line-height: 20px;\r\n margin-bottom: 0;\r\n letter-spacing: 0.18px;\r\n }\r\n .k-card-body .view-card-content p {\r\n color: #666;\r\n font-size: 14px;\r\n font-style: normal;\r\n font-weight: 400;\r\n line-height: 20px;\r\n height: 48px;\r\n margin-bottom: 0;\r\n }\r\n .card-container {\r\n padding: 0;\r\n margin: 0;\r\n box-shadow: none;\r\n }\r\n .card-header-entity {\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: flex-start;\r\n padding-bottom: 20px;\r\n border-bottom: 1px solid rgba(0, 0, 0, 0.08);\r\n }\r\n \r\n .card-header-entity .title-wrap h1 {\r\n color: #424242;\r\n font-size: 28px;\r\n font-style: normal;\r\n font-weight: 300;\r\n line-height: 28px;\r\n margin-bottom: 15px;\r\n }\r\n .card-header-entity .title-wrap {\r\n display: flex;\r\n flex-direction: column;\r\n }\r\n .card-header-entity .title-wrap p {\r\n margin: 0;\r\n display: flex;\r\n align-items: center;\r\n gap: 8px;\r\n color: #424242;\r\n font-size: 14px;\r\n font-style: normal;\r\n font-weight: 400;\r\n line-height: 20px;\r\n }\r\n .main-area .card-list {\r\n display: flex;\r\n gap: 20px;\r\n }\r\n "] }]
55
- }], () => [{ type: i1.Router }], null); })();
56
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ReportBrowserComponent, { className: "ReportBrowserComponent", filePath: "src\\lib\\report-browser-component\\report-browser.component.ts", lineNumber: 11 }); })();
86
+ args: [{ selector: 'app-report-browser', template: "<app-generic-browser-list \r\ntitle=\"Reports\"\r\nitemType=\"report\"\r\niconName=\"graph\" \r\n[items]=\"items\"\r\naddText=\"Create Report\"\r\nItemEntityName=\"Reports\"\r\nCategoryEntityName=\"Report Categories\" \r\n(itemClickEvent)=\"itemClick($event)\"\r\n(backButtonClickEvent)=\"onBackButtonClick()\"\r\n(AfterAddFolderEvent)=\"onEvent($event)\"\r\n(AfterAddItemEvent)=\"onEvent($event)\"\r\n(AfterDeleteItemEvent)=\"onEvent($event)\"\r\n(AfterDeleteFolderEvent)=\"onEvent($event)\"\r\n(backButtonClickEvent)=\"onBackButtonClick()\"\r\n[selectedFolderID]=\"selectedFolderID\"\r\n[showLoader]=\"showLoader\"\r\n[disableAddButton]=\"true\"\r\n/>\r\n<!-- creation of reports are disabled because they need a conversation ID before theyre made -->", styles: [".k-card-body {\r\n height: 80px;\r\n }", "\r\n.main-area {\r\n display: flex;\r\n height: 100%;\r\n width: 100%;\r\n gap: 24px;\r\n padding: 24px 0;\r\n}\r\n.list-view {\r\n padding: 16px;\r\n min-width: 300px;\r\n border-radius: 4px;\r\n background: #FAFAFA;\r\n border: none;\r\n}\r\n::ng-deep .list-view .k-listview-header, \r\n::ng-deep .list-view .k-listview-footer {\r\n border: none;\r\n}\r\n::ng-deep .list-view .k-listview-content {\r\n border: 1px solid rgba(0, 0, 0, 0.08);\r\n border-radius: 4px;\r\n background: #fff;\r\n padding: 16px;\r\n}\r\n\r\n.header,\r\n.footer {\r\n color: #424242;\r\n font-size: 16px;\r\n height: auto;\r\n margin:0;\r\n}\r\n\r\n.header {\r\n color: #424242;\r\n margin-bottom: 16px;\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n}\r\n.header .head-tag {\r\n display: flex;\r\n align-items: center;\r\n gap: 8px;\r\n color: #424242;\r\nfont-size: 16px;\r\nfont-style: normal;\r\nfont-weight: 400;\r\nline-height: 20px;\r\n}\r\n\r\n.header .count {\r\n width: 24px;\r\n height: 24px;\r\n min-width: 24px;\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n font-size: 10px;\r\n background: rgba(0, 0, 0, 0.08);\r\n border-radius: 50%;\r\n}\r\n.footer {\r\n font-size: 14px;\r\n margin-top: 16px;\r\n}\r\n\r\n.list-item {\r\n color: #424242;\r\n font-size: 14px;\r\n font-style: normal;\r\n font-weight: 400;\r\n line-height: 30px;\r\n cursor: pointer;\r\n margin: 4px;\r\n}\r\n.card-container {\r\n margin: 0;\r\n padding: 0;\r\n box-shadow: none;\r\n}\r\n.card-header-entity {\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: flex-start;\r\n padding-bottom: 20px;\r\n border-bottom: 1px solid rgba(0, 0, 0, 0.08);\r\n}\r\n.card-header-entity .title-wrap h1 {\r\n color: #424242;\r\n font-size: 28px;\r\n font-style: normal;\r\n font-weight: 300;\r\n line-height: 28px;\r\n margin-bottom: 15px;\r\n }\r\n .card-header-entity .title-wrap {\r\n display: flex;\r\n flex-direction: column;\r\n }\r\n .card-header-entity .title-wrap p {\r\n margin: 0;\r\n display: flex;\r\n align-items: center;\r\n gap: 8px;\r\n color: #424242;\r\n font-size: 14px;\r\n font-style: normal;\r\n font-weight: 400;\r\n line-height: 20px;\r\n }\r\n\r\n \r\n\r\n\r\n \r\n .view-card .view-icon {\r\n color: #ff6358;\r\n }\r\n .card-wrapper {\r\n border: 1px solid rgba(0, 0, 0, 0.08);\r\n border-radius: 6px;\r\n }\r\n .card-wrapper .k-card-body {\r\n background: #fff;\r\n padding: 12px 20px;\r\n }\r\n .card-wrapper .view-card {\r\n overflow: auto;\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n background: #fafafa;\r\n padding: 4px 15px;\r\n }\r\n .view-card .btn-wrapper {\r\n display: flex;\r\n align-items: center;\r\n }\r\n \r\n .k-card-body .view-card-content h5 {\r\n color: #424242;\r\n font-size: 16px;\r\n font-style: normal;\r\n font-weight: 400;\r\n line-height: 20px;\r\n margin-bottom: 0;\r\n letter-spacing: 0.18px;\r\n }\r\n .k-card-body .view-card-content p {\r\n color: #666;\r\n font-size: 14px;\r\n font-style: normal;\r\n font-weight: 400;\r\n line-height: 20px;\r\n height: 48px;\r\n margin-bottom: 0;\r\n }\r\n .card-container {\r\n padding: 0;\r\n margin: 0;\r\n box-shadow: none;\r\n }\r\n .card-header-entity {\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: flex-start;\r\n padding-bottom: 20px;\r\n border-bottom: 1px solid rgba(0, 0, 0, 0.08);\r\n }\r\n \r\n .card-header-entity .title-wrap h1 {\r\n color: #424242;\r\n font-size: 28px;\r\n font-style: normal;\r\n font-weight: 300;\r\n line-height: 28px;\r\n margin-bottom: 15px;\r\n }\r\n .card-header-entity .title-wrap {\r\n display: flex;\r\n flex-direction: column;\r\n }\r\n .card-header-entity .title-wrap p {\r\n margin: 0;\r\n display: flex;\r\n align-items: center;\r\n gap: 8px;\r\n color: #424242;\r\n font-size: 14px;\r\n font-style: normal;\r\n font-weight: 400;\r\n line-height: 20px;\r\n }\r\n .main-area .card-list {\r\n display: flex;\r\n gap: 20px;\r\n }\r\n "] }]
87
+ }], () => [{ type: i1.Router }, { type: i2.SharedService }], null); })();
88
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ReportBrowserComponent, { className: "ReportBrowserComponent", filePath: "src\\lib\\report-browser-component\\report-browser.component.ts", lineNumber: 14 }); })();
@@ -59,6 +59,6 @@ SettingsComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SettingsC
59
59
  } }, dependencies: [i1.NgIf, i2.EntityPermissionsSelectorWithGridComponent, i3.SingleRoleComponent], styles: [".container[_ngcontent-%COMP%] {\r\n display: flex;\r\n }\r\n \r\n .options-container[_ngcontent-%COMP%] {\r\n flex: 0 0 150px;\r\n padding: 10px;\r\n }\r\n \r\n .option-item[_ngcontent-%COMP%] {\r\n cursor: pointer;\r\n margin-bottom: 10px; \n\r\n padding: 5px 10px; \n\r\n border-radius: 4px; \n\r\n }\r\n \r\n .display-container[_ngcontent-%COMP%] {\r\n flex: 1;\r\n padding: 10px;\r\n }\r\n\r\n .selected[_ngcontent-%COMP%] {\r\n background-color: #007bff; \n\r\n color: white; \n\r\n padding: 5px 10px; \n\r\n border-radius: 4px; \n\r\n }"] });
60
60
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SettingsComponent, [{
61
61
  type: Component,
62
- args: [{ selector: 'app-settings', template: "<div class=\"container\">\n <!-- Options container -->\n <div class=\"options-container\">\n <div class=\"option-item\" [class.selected]=\"currentItem === 'Users'\" (click)=\"selectItem('Users')\">Users</div>\n <div class=\"option-item\" [class.selected]=\"currentItem === 'Roles'\" (click)=\"selectItem('Roles')\">Roles</div>\n <div class=\"option-item\" [class.selected]=\"currentItem === 'EntityPermissions'\" (click)=\"selectItem('EntityPermissions')\">Entity Permissions</div>\n </div>\n\n <!-- Display container -->\n <div class=\"display-container\">\n <div *ngIf=\"currentItem === 'EntityPermissions'\">\n <mj-entity-permissions-selector-with-grid></mj-entity-permissions-selector-with-grid>\n </div>\n <div *ngIf=\"currentItem === 'Users'\">\n Users Component Goes Here\n </div>\n <div *ngIf=\"currentItem === 'Roles'\">\n <mj-single-role RoleName=\"UI\"></mj-single-role>\n </div>\n </div>\n</div>\n", styles: [" .container {\r\n display: flex;\r\n }\r\n \r\n .options-container {\r\n flex: 0 0 150px;\r\n padding: 10px;\r\n }\r\n \r\n .option-item {\r\n cursor: pointer;\r\n margin-bottom: 10px; /* Adds space between the options for better readability */\r\n padding: 5px 10px; /* Optional: Adds some padding for a better visual appearance */\r\n border-radius: 4px; /* Optional: Adds rounded corners for a more polished look */\r\n }\r\n \r\n .display-container {\r\n flex: 1;\r\n padding: 10px;\r\n }\r\n\r\n .selected {\r\n background-color: #007bff; /* A blue background for selected item */\r\n color: white; /* White text color for better contrast */\r\n padding: 5px 10px; /* Optional: Adds some padding for a better visual appearance */\r\n border-radius: 4px; /* Optional: Adds rounded corners for a more polished look */\r\n }\r\n "] }]
62
+ args: [{ selector: 'app-settings', template: "<div class=\"container\">\r\n <!-- Options container -->\r\n <div class=\"options-container\">\r\n <div class=\"option-item\" [class.selected]=\"currentItem === 'Users'\" (click)=\"selectItem('Users')\">Users</div>\r\n <div class=\"option-item\" [class.selected]=\"currentItem === 'Roles'\" (click)=\"selectItem('Roles')\">Roles</div>\r\n <div class=\"option-item\" [class.selected]=\"currentItem === 'EntityPermissions'\" (click)=\"selectItem('EntityPermissions')\">Entity Permissions</div>\r\n </div>\r\n\r\n <!-- Display container -->\r\n <div class=\"display-container\">\r\n <div *ngIf=\"currentItem === 'EntityPermissions'\">\r\n <mj-entity-permissions-selector-with-grid></mj-entity-permissions-selector-with-grid>\r\n </div>\r\n <div *ngIf=\"currentItem === 'Users'\">\r\n Users Component Goes Here\r\n </div>\r\n <div *ngIf=\"currentItem === 'Roles'\">\r\n <mj-single-role RoleName=\"UI\"></mj-single-role>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [" .container {\r\n display: flex;\r\n }\r\n \r\n .options-container {\r\n flex: 0 0 150px;\r\n padding: 10px;\r\n }\r\n \r\n .option-item {\r\n cursor: pointer;\r\n margin-bottom: 10px; /* Adds space between the options for better readability */\r\n padding: 5px 10px; /* Optional: Adds some padding for a better visual appearance */\r\n border-radius: 4px; /* Optional: Adds rounded corners for a more polished look */\r\n }\r\n \r\n .display-container {\r\n flex: 1;\r\n padding: 10px;\r\n }\r\n\r\n .selected {\r\n background-color: #007bff; /* A blue background for selected item */\r\n color: white; /* White text color for better contrast */\r\n padding: 5px 10px; /* Optional: Adds some padding for a better visual appearance */\r\n border-radius: 4px; /* Optional: Adds rounded corners for a more polished look */\r\n }\r\n "] }]
63
63
  }], null, null); })();
64
64
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SettingsComponent, { className: "SettingsComponent", filePath: "src\\lib\\settings\\settings.component.ts", lineNumber: 8 }); })();
@@ -1 +1 @@
1
- {"version":3,"file":"single-dashboard.component.d.ts","sourceRoot":"","sources":["../../../src/lib/single-dashboard/single-dashboard.component.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"single-dashboard.component.d.ts","sourceRoot":"","sources":["../../../src/lib/single-dashboard/single-dashboard.component.ts"],"names":[],"mappings":"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"}
@@ -401,6 +401,9 @@ export class SingleDashboardComponent {
401
401
  onMouseOut(e) {
402
402
  this.selectedComponent = null;
403
403
  }
404
+ //Apply this style to the component we're hovering over
405
+ //so that it is not offset by a wide margin when we click/drag it
406
+ //https://github.com/telerik/kendo-angular/issues/3492
404
407
  getSelectedComponentStyle(component) {
405
408
  return this.selectedComponent === component ? "position: unset" : "";
406
409
  }
@@ -45,7 +45,7 @@ SingleSearchResultComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type:
45
45
  } }, dependencies: [i1.UserViewGridComponent] });
46
46
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SingleSearchResultComponent, [{
47
47
  type: Component,
48
- args: [{ selector: 'app-single-search-result', template: "<mj-user-view-grid\n>\n</mj-user-view-grid>" }]
48
+ args: [{ selector: 'app-single-search-result', template: "<mj-user-view-grid\r\n>\r\n</mj-user-view-grid>" }]
49
49
  }], null, { entity: [{
50
50
  type: Input
51
51
  }], searchInput: [{
@@ -385,7 +385,7 @@ UserNotificationsComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type:
385
385
  } }, dependencies: [i3.NgIf, i4.ButtonComponent, i5.TextBoxComponent, i5.TextBoxSuffixTemplateDirective, i6.FillContainer, i7.ItemTemplateDirective, i7.ListViewComponent, i3.DatePipe], styles: [".notification-list-wrap[_ngcontent-%COMP%] {\r\n height: 800px;\r\n overflow-y: auto;\r\n overflow-x: hidden;\r\n border: solid 1px lightgray;\r\n}\r\n\r\n.k-listview[_ngcontent-%COMP%] {\r\n font-family: sans-serif;\r\n border: 0;\r\n}\r\n.product[_ngcontent-%COMP%] {\r\n width: 100%;\r\n}\r\n.header[_ngcontent-%COMP%] {\r\n display: flex;\r\n background-color: lightgray;\r\n padding: 12px;\r\n height: 24px;\r\n}\r\n\r\n.header[_ngcontent-%COMP%] button[_ngcontent-%COMP%] { \n\r\n margin-right: 10px; \r\n}\r\n\r\n.title[_ngcontent-%COMP%] {\r\n flex: 1;\r\n font-size: 22px;\r\n font-weight: bold;\r\n}\r\n.filter-input[_ngcontent-%COMP%] {\r\n width: 200px;\r\n}\r\n.radio-label[_ngcontent-%COMP%] {\r\n cursor: pointer;\r\n margin-right: 10px;\r\n}\r\n\r\n.notification-wrap[_ngcontent-%COMP%] {\r\n padding-left: 10px;\r\n padding-right: 10px;\r\n padding-top: 10px;\r\n padding-bottom: 10px;\r\n border-bottom: dashed 1px lightgray;\r\n background-color: white;\r\n}\r\n\r\n.notification-wrap-unread[_ngcontent-%COMP%] {\r\n background-color: aliceblue;\r\n}\r\n\r\n.notification-wrap-clickable[_ngcontent-%COMP%] {\r\n cursor: pointer;\r\n}\r\n\r\n.notification-title[_ngcontent-%COMP%] {\r\n font-size: 16px;\r\n}\r\n.notification-wrap-clickable[_ngcontent-%COMP%] > .notification-title[_ngcontent-%COMP%] {\r\n color: blue;\r\n text-decoration: underline;\r\n}\r\n.notification-title-unread[_ngcontent-%COMP%] {\r\n font-weight: bold;\r\n}\r\n\r\n.notification-body[_ngcontent-%COMP%] {\r\n font-size: 14px;\r\n}\r\n\r\n.notification-date[_ngcontent-%COMP%] {\r\n margin-left: 1px;\r\n font-size: 12px;\r\n color: gray;\r\n font-style: italic;\r\n}"] });
386
386
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(UserNotificationsComponent, [{
387
387
  type: Component,
388
- args: [{ selector: 'app-user-notifications', template: "<div class=\"notification-list-wrap\" mjFillContainer [bottomMargin]=\"5\"> \n <div class=\"header\">\n <div class=\"title\">\n Notifications\n </div>\n <div>\n <button *ngIf=\"UnreadNotifications.length > 0\" kendoButton (click)=\"markAllAsRead()\">Mark All as Read</button>\n <button *ngIf=\"ReadNotifications.length > 0\" kendoButton (click)=\"markAllAsUnread()\">Mark All as Unread</button>\n <input *ngIf=\"AllNotifications.length > 0\" #allRadio checked type=\"radio\" name=\"UnreadStatus\" value=\"All\" (change)=\"onReadRadioChanged($event)\" /><span *ngIf=\"AllNotifications.length > 0\" class=\"radio-label\" \n (click)=\"selectReadOption('All')\">All</span>\n <input *ngIf=\"UnreadNotifications.length > 0 && ReadNotifications.length > 0\" #unreadRadio type=\"radio\" name=\"UnreadStatus\" value=\"Unread\" (change)=\"onReadRadioChanged($event)\" /><span *ngIf=\"UnreadNotifications.length > 0 && ReadNotifications.length > 0\" class=\"radio-label\" \n (click)=\"selectReadOption('Unread')\">Unread</span>\n <input *ngIf=\"ReadNotifications.length > 0 && UnreadNotifications.length > 0\" #readRadio type=\"radio\" name=\"UnreadStatus\" value=\"Read\" (change)=\"onReadRadioChanged($event)\" /><span *ngIf=\"ReadNotifications.length > 0 && UnreadNotifications.length > 0\" class=\"radio-label\" \n (click)=\"selectReadOption('Read')\">Read</span>\n <kendo-textbox\n class=\"filter-input\"\n placeholder=\"Filter items...\"\n (valueChange)=\"onFilterChanged($event)\"\n >\n <ng-template kendoTextBoxSuffixTemplate>\n <span class=\"k-icon k-i-search\"></span>\n </ng-template>\n </kendo-textbox> \n </div>\n </div> \n\n <kendo-listview [data]=\"NotificationsToShow\">\n <ng-template kendoListViewItemTemplate let-dataItem=\"dataItem\">\n <div [class]=\"getItemWrapperClass(dataItem)\">\n <div [class]=\"getItemTitleClass(dataItem)\" (click)=\"notificationClicked(dataItem)\">{{dataItem.Title}}</div>\n <div class=\"notification-body\" (click)=\"notificationClicked(dataItem)\">\n <div class=\"notification-date\">{{dataItem.CreatedAt | date:'long'}}</div>\n <div class=\"notification-message\">{{dataItem.Message}}</div>\n </div>\n <div>\n <button kendoButton *ngIf=\"dataItem.Unread\" (click)=\"markAsRead(dataItem, true, null)\">Mark as Read</button>\n <button kendoButton *ngIf=\"!dataItem.Unread\" (click)=\"markAsRead(dataItem, false, null)\">Mark as Unread</button>\n </div> \n </div>\n </ng-template>\n </kendo-listview>\n</div>\n", styles: [".notification-list-wrap {\r\n height: 800px;\r\n overflow-y: auto;\r\n overflow-x: hidden;\r\n border: solid 1px lightgray;\r\n}\r\n\r\n.k-listview {\r\n font-family: sans-serif;\r\n border: 0;\r\n}\r\n.product {\r\n width: 100%;\r\n}\r\n.header {\r\n display: flex;\r\n background-color: lightgray;\r\n padding: 12px;\r\n height: 24px;\r\n}\r\n\r\n.header button { /*buttons within the header*/\r\n margin-right: 10px; \r\n}\r\n\r\n.title {\r\n flex: 1;\r\n font-size: 22px;\r\n font-weight: bold;\r\n}\r\n.filter-input {\r\n width: 200px;\r\n}\r\n.radio-label {\r\n cursor: pointer;\r\n margin-right: 10px;\r\n}\r\n\r\n.notification-wrap {\r\n padding-left: 10px;\r\n padding-right: 10px;\r\n padding-top: 10px;\r\n padding-bottom: 10px;\r\n border-bottom: dashed 1px lightgray;\r\n background-color: white;\r\n}\r\n\r\n.notification-wrap-unread {\r\n background-color: aliceblue;\r\n}\r\n\r\n.notification-wrap-clickable {\r\n cursor: pointer;\r\n}\r\n\r\n.notification-title {\r\n font-size: 16px;\r\n}\r\n.notification-wrap-clickable > .notification-title {\r\n color: blue;\r\n text-decoration: underline;\r\n}\r\n.notification-title-unread {\r\n font-weight: bold;\r\n}\r\n\r\n.notification-body {\r\n font-size: 14px;\r\n}\r\n\r\n.notification-date {\r\n margin-left: 1px;\r\n font-size: 12px;\r\n color: gray;\r\n font-style: italic;\r\n}"] }]
388
+ args: [{ selector: 'app-user-notifications', template: "<div class=\"notification-list-wrap\" mjFillContainer [bottomMargin]=\"5\"> \r\n <div class=\"header\">\r\n <div class=\"title\">\r\n Notifications\r\n </div>\r\n <div>\r\n <button *ngIf=\"UnreadNotifications.length > 0\" kendoButton (click)=\"markAllAsRead()\">Mark All as Read</button>\r\n <button *ngIf=\"ReadNotifications.length > 0\" kendoButton (click)=\"markAllAsUnread()\">Mark All as Unread</button>\r\n <input *ngIf=\"AllNotifications.length > 0\" #allRadio checked type=\"radio\" name=\"UnreadStatus\" value=\"All\" (change)=\"onReadRadioChanged($event)\" /><span *ngIf=\"AllNotifications.length > 0\" class=\"radio-label\" \r\n (click)=\"selectReadOption('All')\">All</span>\r\n <input *ngIf=\"UnreadNotifications.length > 0 && ReadNotifications.length > 0\" #unreadRadio type=\"radio\" name=\"UnreadStatus\" value=\"Unread\" (change)=\"onReadRadioChanged($event)\" /><span *ngIf=\"UnreadNotifications.length > 0 && ReadNotifications.length > 0\" class=\"radio-label\" \r\n (click)=\"selectReadOption('Unread')\">Unread</span>\r\n <input *ngIf=\"ReadNotifications.length > 0 && UnreadNotifications.length > 0\" #readRadio type=\"radio\" name=\"UnreadStatus\" value=\"Read\" (change)=\"onReadRadioChanged($event)\" /><span *ngIf=\"ReadNotifications.length > 0 && UnreadNotifications.length > 0\" class=\"radio-label\" \r\n (click)=\"selectReadOption('Read')\">Read</span>\r\n <kendo-textbox\r\n class=\"filter-input\"\r\n placeholder=\"Filter items...\"\r\n (valueChange)=\"onFilterChanged($event)\"\r\n >\r\n <ng-template kendoTextBoxSuffixTemplate>\r\n <span class=\"k-icon k-i-search\"></span>\r\n </ng-template>\r\n </kendo-textbox> \r\n </div>\r\n </div> \r\n\r\n <kendo-listview [data]=\"NotificationsToShow\">\r\n <ng-template kendoListViewItemTemplate let-dataItem=\"dataItem\">\r\n <div [class]=\"getItemWrapperClass(dataItem)\">\r\n <div [class]=\"getItemTitleClass(dataItem)\" (click)=\"notificationClicked(dataItem)\">{{dataItem.Title}}</div>\r\n <div class=\"notification-body\" (click)=\"notificationClicked(dataItem)\">\r\n <div class=\"notification-date\">{{dataItem.CreatedAt | date:'long'}}</div>\r\n <div class=\"notification-message\">{{dataItem.Message}}</div>\r\n </div>\r\n <div>\r\n <button kendoButton *ngIf=\"dataItem.Unread\" (click)=\"markAsRead(dataItem, true, null)\">Mark as Read</button>\r\n <button kendoButton *ngIf=\"!dataItem.Unread\" (click)=\"markAsRead(dataItem, false, null)\">Mark as Unread</button>\r\n </div> \r\n </div>\r\n </ng-template>\r\n </kendo-listview>\r\n</div>\r\n", styles: [".notification-list-wrap {\r\n height: 800px;\r\n overflow-y: auto;\r\n overflow-x: hidden;\r\n border: solid 1px lightgray;\r\n}\r\n\r\n.k-listview {\r\n font-family: sans-serif;\r\n border: 0;\r\n}\r\n.product {\r\n width: 100%;\r\n}\r\n.header {\r\n display: flex;\r\n background-color: lightgray;\r\n padding: 12px;\r\n height: 24px;\r\n}\r\n\r\n.header button { /*buttons within the header*/\r\n margin-right: 10px; \r\n}\r\n\r\n.title {\r\n flex: 1;\r\n font-size: 22px;\r\n font-weight: bold;\r\n}\r\n.filter-input {\r\n width: 200px;\r\n}\r\n.radio-label {\r\n cursor: pointer;\r\n margin-right: 10px;\r\n}\r\n\r\n.notification-wrap {\r\n padding-left: 10px;\r\n padding-right: 10px;\r\n padding-top: 10px;\r\n padding-bottom: 10px;\r\n border-bottom: dashed 1px lightgray;\r\n background-color: white;\r\n}\r\n\r\n.notification-wrap-unread {\r\n background-color: aliceblue;\r\n}\r\n\r\n.notification-wrap-clickable {\r\n cursor: pointer;\r\n}\r\n\r\n.notification-title {\r\n font-size: 16px;\r\n}\r\n.notification-wrap-clickable > .notification-title {\r\n color: blue;\r\n text-decoration: underline;\r\n}\r\n.notification-title-unread {\r\n font-weight: bold;\r\n}\r\n\r\n.notification-body {\r\n font-size: 14px;\r\n}\r\n\r\n.notification-date {\r\n margin-left: 1px;\r\n font-size: 12px;\r\n color: gray;\r\n font-style: italic;\r\n}"] }]
389
389
  }], () => [{ type: i1.SharedService }, { type: i2.Router }], { allRadio: [{
390
390
  type: ViewChild,
391
391
  args: ['allRadio']
package/dist/module.d.ts CHANGED
@@ -6,16 +6,16 @@ import * as i4 from "./lib/auth-button/auth-button.component";
6
6
  import * as i5 from "./lib/dashboard-browser-component/dashboard-browser.component";
7
7
  import * as i6 from "./lib/data-browser-component/data-browser.component";
8
8
  import * as i7 from "./lib/generic-browse-list/generic-browse-list.component";
9
- import * as i8 from "./lib/home-component/home.component";
10
- import * as i9 from "./lib/navigation/navigation.component";
11
- import * as i10 from "./lib/report-browser-component/report-browser.component";
12
- import * as i11 from "./lib/query-browser-component/query-browser.component";
13
- import * as i12 from "./lib/resource-wrappers/dashboard-resource.component";
14
- import * as i13 from "./lib/resource-wrappers/record-resource.component";
15
- import * as i14 from "./lib/resource-wrappers/report-resource.component";
16
- import * as i15 from "./lib/resource-wrappers/search-results-resource.component";
17
- import * as i16 from "./lib/resource-wrappers/view-resource.component";
18
- import * as i17 from "./lib/settings/settings.component";
9
+ import * as i8 from "./lib/generic-browser-list/generic-browser-list.component";
10
+ import * as i9 from "./lib/home-component/home.component";
11
+ import * as i10 from "./lib/navigation/navigation.component";
12
+ import * as i11 from "./lib/report-browser-component/report-browser.component";
13
+ import * as i12 from "./lib/query-browser-component/query-browser.component";
14
+ import * as i13 from "./lib/resource-wrappers/dashboard-resource.component";
15
+ import * as i14 from "./lib/resource-wrappers/record-resource.component";
16
+ import * as i15 from "./lib/resource-wrappers/report-resource.component";
17
+ import * as i16 from "./lib/resource-wrappers/search-results-resource.component";
18
+ import * as i17 from "./lib/resource-wrappers/view-resource.component";
19
19
  import * as i18 from "./lib/single-application/single-application.component";
20
20
  import * as i19 from "./lib/favorites/favorites.component";
21
21
  import * as i20 from "./lib/header/header.component";
@@ -62,7 +62,7 @@ import * as i60 from "@memberjunction/ng-entity-permissions";
62
62
  import * as i61 from "@memberjunction/ng-explorer-settings";
63
63
  export declare class ExplorerCoreModule {
64
64
  static ɵfac: i0.ɵɵFactoryDeclaration<ExplorerCoreModule, never>;
65
- static ɵmod: i0.ɵɵNgModuleDeclaration<ExplorerCoreModule, [typeof i1.FormToolbarComponent, typeof i2.SectionLoaderComponent, typeof i3.ResourceContainerComponent, typeof i4.AuthButtonComponent, typeof i5.DashboardBrowserComponent, typeof i6.DataBrowserComponent, typeof i7.GenericBrowseListComponent, typeof i8.HomeComponent, typeof i9.NavigationComponent, typeof i10.ReportBrowserComponent, typeof i11.QueryBrowserComponent, typeof i12.DashboardResource, typeof i13.EntityRecordResource, typeof i14.ReportResource, typeof i15.SearchResultsResource, typeof i16.UserViewResource, typeof i17.SettingsComponent, typeof i18.SingleApplicationComponent, typeof i19.FavoritesComponent, typeof i20.HeaderComponent, typeof i21.JoinGridComponent, typeof i22.SingleEntityComponent, typeof i23.SingleRecordComponent, typeof i24.SingleReportComponent, typeof i25.SingleSearchResultComponent, typeof i26.SingleViewComponent, typeof i27.SingleQueryComponent, typeof i28.UserProfileComponent, typeof i29.ViewPropertiesDialogComponent, typeof i30.SingleDashboardComponent, typeof i31.AddItemComponent, typeof i32.DeleteItemComponent, typeof i33.EditDashboardComponent, typeof i34.UserNotificationsComponent, typeof i35.QueryResource], [typeof i36.CommonModule, typeof i37.FormsModule, typeof i37.ReactiveFormsModule, typeof i38.RouterModule, typeof i39.GridModule, typeof i40.DialogsModule, typeof i41.ExcelExportModule, typeof i42.ButtonsModule, typeof i43.CompareRecordsModule, typeof i44.IndicatorsModule, typeof i36.CommonModule, typeof i37.FormsModule, typeof i39.GridModule, typeof i45.ChartsModule, typeof i42.ButtonsModule, typeof i46.TabStripModule, typeof i39.ExcelModule, typeof i39.PDFModule, typeof i44.IndicatorsModule, typeof i40.DialogsModule, typeof i47.InputsModule, typeof i48.LabelModule, typeof i49.IconModule, typeof i49.IconsModule, typeof i43.CompareRecordsModule, typeof i50.RecordChangesModule, typeof i51.ContainerDirectivesModule, typeof i52.ListViewModule, typeof i53.UserViewGridModule, typeof i54.QueryGridModule, typeof i55.SortableModule, typeof i46.LayoutModule, typeof i56.FilterModule, typeof i57.DropDownsModule, typeof i58.MemberJunctionSharedModule, typeof i59.AskSkipModule, typeof i60.EntityPermissionsModule, typeof i61.ExplorerSettingsModule], [typeof i1.FormToolbarComponent, typeof i2.SectionLoaderComponent, typeof i3.ResourceContainerComponent, typeof i4.AuthButtonComponent, typeof i5.DashboardBrowserComponent, typeof i6.DataBrowserComponent, typeof i7.GenericBrowseListComponent, typeof i8.HomeComponent, typeof i9.NavigationComponent, typeof i10.ReportBrowserComponent, typeof i12.DashboardResource, typeof i13.EntityRecordResource, typeof i14.ReportResource, typeof i15.SearchResultsResource, typeof i16.UserViewResource, typeof i17.SettingsComponent, typeof i18.SingleApplicationComponent, typeof i19.FavoritesComponent, typeof i20.HeaderComponent, typeof i21.JoinGridComponent, typeof i22.SingleEntityComponent, typeof i23.SingleRecordComponent, typeof i24.SingleReportComponent, typeof i25.SingleSearchResultComponent, typeof i26.SingleViewComponent, typeof i28.UserProfileComponent, typeof i29.ViewPropertiesDialogComponent, typeof i30.SingleDashboardComponent, typeof i31.AddItemComponent, typeof i32.DeleteItemComponent, typeof i33.EditDashboardComponent, typeof i34.UserNotificationsComponent]>;
65
+ static ɵmod: i0.ɵɵNgModuleDeclaration<ExplorerCoreModule, [typeof i1.FormToolbarComponent, typeof i2.SectionLoaderComponent, typeof i3.ResourceContainerComponent, typeof i4.AuthButtonComponent, typeof i5.DashboardBrowserComponent, typeof i6.DataBrowserComponent, typeof i7.GenericBrowseListComponent, typeof i8.GenericBrowserListComponent, typeof i9.HomeComponent, typeof i10.NavigationComponent, typeof i11.ReportBrowserComponent, typeof i12.QueryBrowserComponent, typeof i13.DashboardResource, typeof i14.EntityRecordResource, typeof i15.ReportResource, typeof i16.SearchResultsResource, typeof i17.UserViewResource, typeof i18.SingleApplicationComponent, typeof i19.FavoritesComponent, typeof i20.HeaderComponent, typeof i21.JoinGridComponent, typeof i22.SingleEntityComponent, typeof i23.SingleRecordComponent, typeof i24.SingleReportComponent, typeof i25.SingleSearchResultComponent, typeof i26.SingleViewComponent, typeof i27.SingleQueryComponent, typeof i28.UserProfileComponent, typeof i29.ViewPropertiesDialogComponent, typeof i30.SingleDashboardComponent, typeof i31.AddItemComponent, typeof i32.DeleteItemComponent, typeof i33.EditDashboardComponent, typeof i34.UserNotificationsComponent, typeof i35.QueryResource], [typeof i36.CommonModule, typeof i37.FormsModule, typeof i37.ReactiveFormsModule, typeof i38.RouterModule, typeof i39.GridModule, typeof i40.DialogsModule, typeof i41.ExcelExportModule, typeof i42.ButtonsModule, typeof i43.CompareRecordsModule, typeof i44.IndicatorsModule, typeof i36.CommonModule, typeof i37.FormsModule, typeof i39.GridModule, typeof i45.ChartsModule, typeof i42.ButtonsModule, typeof i46.TabStripModule, typeof i39.ExcelModule, typeof i39.PDFModule, typeof i44.IndicatorsModule, typeof i40.DialogsModule, typeof i47.InputsModule, typeof i48.LabelModule, typeof i49.IconModule, typeof i49.IconsModule, typeof i43.CompareRecordsModule, typeof i50.RecordChangesModule, typeof i51.ContainerDirectivesModule, typeof i52.ListViewModule, typeof i53.UserViewGridModule, typeof i54.QueryGridModule, typeof i55.SortableModule, typeof i46.LayoutModule, typeof i56.FilterModule, typeof i57.DropDownsModule, typeof i58.MemberJunctionSharedModule, typeof i59.AskSkipModule, typeof i60.EntityPermissionsModule, typeof i61.ExplorerSettingsModule], [typeof i1.FormToolbarComponent, typeof i2.SectionLoaderComponent, typeof i3.ResourceContainerComponent, typeof i4.AuthButtonComponent, typeof i5.DashboardBrowserComponent, typeof i6.DataBrowserComponent, typeof i7.GenericBrowseListComponent, typeof i8.GenericBrowserListComponent, typeof i9.HomeComponent, typeof i10.NavigationComponent, typeof i11.ReportBrowserComponent, typeof i13.DashboardResource, typeof i14.EntityRecordResource, typeof i15.ReportResource, typeof i16.SearchResultsResource, typeof i17.UserViewResource, typeof i18.SingleApplicationComponent, typeof i19.FavoritesComponent, typeof i20.HeaderComponent, typeof i21.JoinGridComponent, typeof i22.SingleEntityComponent, typeof i23.SingleRecordComponent, typeof i24.SingleReportComponent, typeof i25.SingleSearchResultComponent, typeof i26.SingleViewComponent, typeof i28.UserProfileComponent, typeof i29.ViewPropertiesDialogComponent, typeof i30.SingleDashboardComponent, typeof i31.AddItemComponent, typeof i32.DeleteItemComponent, typeof i33.EditDashboardComponent, typeof i34.UserNotificationsComponent]>;
66
66
  static ɵinj: i0.ɵɵInjectorDeclaration<ExplorerCoreModule>;
67
67
  }
68
68
  //# sourceMappingURL=module.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../src/module.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuEA,qBAiHa,kBAAkB;yCAAlB,kBAAkB;0CAAlB,kBAAkB;0CAAlB,kBAAkB;CAAI"}
1
+ {"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../src/module.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwEA,qBAiHa,kBAAkB;yCAAlB,kBAAkB;0CAAlB,kBAAkB;0CAAlB,kBAAkB;CAAI"}