@memberjunction/ng-explorer-core 0.9.7 → 0.9.9

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.
@@ -20,6 +20,7 @@ import * as i0 from "@angular/core";
20
20
  import * as i1 from "@memberjunction/ng-container-directives";
21
21
  import * as i2 from "../single-dashboard/single-dashboard.component";
22
22
  export function LoadDashboardResource() {
23
+ const test = new DashboardResource(); // this looks really dumb. Thing is, in production builds, tree shaking causes the class below to not be included in the bundle. This is a hack to force it to be included.
23
24
  }
24
25
  let DashboardResource = class DashboardResource extends BaseResourceComponent {
25
26
  GetResourceDisplayName(data) {
@@ -20,6 +20,7 @@ import { Metadata } from '@memberjunction/core';
20
20
  import * as i0 from "@angular/core";
21
21
  import * as i1 from "../single-record/single-record.component";
22
22
  export function LoadRecordResource() {
23
+ const test = new EntityRecordResource(); // this looks really dumb. Thing is, in production builds, tree shaking causes the class below to not be included in the bundle. This is a hack to force it to be included.
23
24
  }
24
25
  let EntityRecordResource = class EntityRecordResource extends BaseResourceComponent {
25
26
  GetResourceDisplayName(data) {
@@ -20,6 +20,7 @@ import { Metadata } from '@memberjunction/core';
20
20
  import * as i0 from "@angular/core";
21
21
  import * as i1 from "../single-report/single-report.component";
22
22
  export function LoadReportResource() {
23
+ const test = new ReportResource(); // this looks really dumb. Thing is, in production builds, tree shaking causes the class below to not be included in the bundle. This is a hack to force it to be included.
23
24
  }
24
25
  let ReportResource = class ReportResource extends BaseResourceComponent {
25
26
  ngOnInit() {
@@ -4,11 +4,9 @@ import { LoadReportResource } from "./report-resource.component";
4
4
  import { LoadSearchResultsResource } from "./search-results-resource.component";
5
5
  import { LoadViewResource } from "./view-resource.component";
6
6
  export function LoadResourceWrappers() {
7
- console.log('Inside - Loading Resource Wrappers');
8
7
  LoadViewResource();
9
8
  LoadReportResource();
10
9
  LoadDashboardResource();
11
10
  LoadRecordResource();
12
11
  LoadSearchResultsResource();
13
- console.log('>>Done - Inside Loading Resource Wrappers');
14
12
  }
@@ -19,6 +19,7 @@ import { RegisterClass } from '@memberjunction/global';
19
19
  import * as i0 from "@angular/core";
20
20
  import * as i1 from "../single-search-result/single-search-result.component";
21
21
  export function LoadSearchResultsResource() {
22
+ const test = new SearchResultsResource(); // this looks really dumb. Thing is, in production builds, tree shaking causes the class below to not be included in the bundle. This is a hack to force it to be included.
22
23
  }
23
24
  let SearchResultsResource = class SearchResultsResource extends BaseResourceComponent {
24
25
  ngOnInit() {
@@ -20,8 +20,7 @@ import { Metadata } from '@memberjunction/core';
20
20
  import * as i0 from "@angular/core";
21
21
  import * as i1 from "../single-view/single-view.component";
22
22
  export function LoadViewResource() {
23
- console.log('Inside - Loading View Resource');
24
- const test = new UserViewResource();
23
+ const test = new UserViewResource(); // this looks really dumb. Thing is, in production builds, tree shaking causes the class below to not be included in the bundle. This is a hack to force it to be included.
25
24
  }
26
25
  let UserViewResource = class UserViewResource extends BaseResourceComponent {
27
26
  GetResourceDisplayName(data) {
@@ -1,6 +1,6 @@
1
1
  import { EventEmitter, AfterViewInit, OnDestroy, ElementRef } from '@angular/core';
2
2
  import { ActivatedRoute, Router } from "@angular/router";
3
- import { Metadata, EntityFieldInfo } from "@memberjunction/core";
3
+ import { Metadata, EntityFieldInfo, EntityInfo } from "@memberjunction/core";
4
4
  import { DragEndEvent } from '@progress/kendo-angular-sortable';
5
5
  import { UserViewEntityExtended } from '@memberjunction/core-entities';
6
6
  import { BaseFormComponent } from '../generic/base-form-component';
@@ -27,6 +27,7 @@ export declare class ViewPropertiesDialogComponent extends BaseFormComponent imp
27
27
  localFilterState: any;
28
28
  defaultFilterState: any;
29
29
  record: UserViewEntityExtended;
30
+ ViewEntityInfo: EntityInfo;
30
31
  private keyPressListener;
31
32
  usedFields: Set<string>;
32
33
  sortFields: any[];
@@ -113,7 +113,7 @@ function ViewPropertiesDialogComponent_kendo_window_3_ng_template_11_div_4_Templ
113
113
  } if (rf & 2) {
114
114
  const ctx_r24 = i0.ɵɵnextContext(3);
115
115
  i0.ɵɵadvance(1);
116
- i0.ɵɵproperty("filters", ctx_r24.EntityInfo.Fields.map(ctx_r24.toKendoFilterField))("value", ctx_r24.defaultFilterState);
116
+ i0.ɵɵproperty("filters", ctx_r24.ViewEntityInfo.Fields.map(ctx_r24.toKendoFilterField))("value", ctx_r24.defaultFilterState);
117
117
  } }
118
118
  function ViewPropertiesDialogComponent_kendo_window_3_ng_template_11_Template(rf, ctx) { if (rf & 1) {
119
119
  const _r30 = i0.ɵɵgetCurrentView();
@@ -353,12 +353,12 @@ export class ViewPropertiesDialogComponent extends BaseFormComponent {
353
353
  }
354
354
  FinishLoad(md) {
355
355
  return __awaiter(this, void 0, void 0, function* () {
356
- //this.EntityInfo = md.Entities.find(e => e.ID == this.record.EntityID)!;
356
+ this.ViewEntityInfo = md.Entities.find(e => e.ID == this.record.EntityID);
357
357
  // using all these local variables because the VSCode debugger doesn't know what "this" is all of a sudden
358
- if (!this.EntityInfo)
358
+ if (!this.ViewEntityInfo)
359
359
  throw new Error(`Entity ${this.record.EntityID} not found in metadata`);
360
360
  // prepare the sorting state
361
- this.sortFields = this.EntityInfo.Fields;
361
+ this.sortFields = this.ViewEntityInfo.Fields;
362
362
  if (this.record.SortState === null || this.record.SortState === undefined || this.record.SortState.trim().length === 0)
363
363
  this.sortState = [];
364
364
  else
@@ -367,7 +367,7 @@ export class ViewPropertiesDialogComponent extends BaseFormComponent {
367
367
  this.sortState = this.sortState.map((s) => {
368
368
  var _a;
369
369
  return {
370
- field: (_a = this.EntityInfo) === null || _a === void 0 ? void 0 : _a.Fields.find((f) => f.Name === s.field),
370
+ field: (_a = this.ViewEntityInfo) === null || _a === void 0 ? void 0 : _a.Fields.find((f) => f.Name === s.field),
371
371
  direction: this.sortDirections.find((d) => d.Value === s.direction)
372
372
  };
373
373
  });
@@ -395,7 +395,7 @@ export class ViewPropertiesDialogComponent extends BaseFormComponent {
395
395
  var _a;
396
396
  // we go through our EntityFields and add any that aren't already in the columnSettings
397
397
  // this is so that we can add new columns to the view that were not previously used in this view
398
- const unusedFields = (_a = this.EntityInfo) === null || _a === void 0 ? void 0 : _a.Fields.filter(f => {
398
+ const unusedFields = (_a = this.ViewEntityInfo) === null || _a === void 0 ? void 0 : _a.Fields.filter(f => {
399
399
  if (gridState.columnSettings.find((col) => col.Name.trim().toLowerCase() === f.Name.trim().toLowerCase()))
400
400
  return false; // this entity field is already in the columnSettings
401
401
  else
@@ -503,7 +503,7 @@ export class ViewPropertiesDialogComponent extends BaseFormComponent {
503
503
  }
504
504
  addSort() {
505
505
  var _a;
506
- this.sortState = this.sortState.concat({ field: (_a = this.EntityInfo) === null || _a === void 0 ? void 0 : _a.Fields[0], direction: this.sortDirections[0] }); // add a new sort item
506
+ this.sortState = this.sortState.concat({ field: (_a = this.ViewEntityInfo) === null || _a === void 0 ? void 0 : _a.Fields[0], direction: this.sortDirections[0] }); // add a new sort item
507
507
  }
508
508
  removeSort(item) {
509
509
  this.sortState = this.sortState.filter((i) => i !== item);
@@ -544,7 +544,7 @@ ViewPropertiesDialogComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ typ
544
544
  } }, dependencies: [i4.NgForOf, i4.NgIf, i3.DefaultValueAccessor, i3.CheckboxControlValueAccessor, i3.NgControlStatus, i3.NgModel, i5.WindowComponent, i6.Button, i7.LoaderComponent, i8.TabStripComponent, i8.TabStripTabComponent, i8.TabContentDirective, i9.TextAreaComponent, i9.TextBoxComponent, i9.SwitchComponent, i9.CheckBoxDirective, i10.LabelComponent, i11.IconComponent, i12.FillContainer, i13.SortableComponent, i13.SortableBindingDirective, i14.FilterComponent, i15.DropDownListComponent], styles: [".view-prop-tab-contents[_ngcontent-%COMP%] {\r\n display: flex;\r\n flex-direction: column;\r\n height: 100%; \r\n}\r\n\r\n.form-group[_ngcontent-%COMP%] {\r\n display: flex;\r\n flex-direction: row;\r\n align-items: flex-start;\r\n margin-bottom: 10px;\r\n}\r\n\r\n.form-group-description[_ngcontent-%COMP%] {\r\n flex-grow: 1;\r\n}\r\n\r\n.k-form-label[_ngcontent-%COMP%] {\r\n width: 150px; \r\n margin-right: 10px;\r\n}\r\n\r\n.view-description[_ngcontent-%COMP%] {\r\n flex-grow: 1;\r\n height: 100%;\r\n padding: 5px;\r\n resize: none;\r\n}\r\n\r\n\r\n\r\n.item-content[_ngcontent-%COMP%] {\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n}\r\n\r\n.popup-content[_ngcontent-%COMP%] {\r\n height: calc(100% - 46px);\r\n}\r\n\r\n.popup-actions[_ngcontent-%COMP%] {\r\n padding: 16px 0 0;\r\n}\r\n\r\n.view-prop-tab-contents[_ngcontent-%COMP%] {\r\n overflow: hidden;\r\n}\r\n\r\n.sort-column[_ngcontent-%COMP%] {\r\n width: 300px;\r\n}\r\n\r\n.sort-direction[_ngcontent-%COMP%] {\r\n width: 125px;\r\n}\r\n\r\n.sort-header[_ngcontent-%COMP%] > button[_ngcontent-%COMP%] {\r\n margin-left: 5px;\r\n margin-bottom: 5px;\r\n width: 75px;\r\n}\r\n\r\n.smart-filter-label[_ngcontent-%COMP%] {\r\n margin-right: 10px;\r\n}\r\n\r\n.smart-filter-prompt[_ngcontent-%COMP%] {\r\n margin-top: 15px;\r\n}\r\n\r\n.advanced-tab-details[_ngcontent-%COMP%]\r\n{\r\n margin-bottom: 10px;\r\n}"] });
545
545
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ViewPropertiesDialogComponent, [{
546
546
  type: Component,
547
- args: [{ selector: 'app-view-properties-dialog', template: "<div>\r\n <button *ngIf=\"ShowPropertiesButton\"\r\n kendoButton\r\n [primary]=\"true\"\r\n icon=\"gear\"\r\n (click)=\"this.Open()\"\r\n >Properties</button>\r\n <div class=\"k-overlay\" *ngIf=\"isDialogOpened\"></div>\r\n <kendo-window\r\n [width]=\"700\"\r\n [height]=\"525\"\r\n [minHeight]=\"300\"\r\n [minWidth]=\"400\"\r\n [resizable]=\"true\"\r\n title=\"View Properties\"\r\n *ngIf=\"isDialogOpened\"\r\n (close)=\"closePropertiesDialog()\"\r\n (resizeEnd)=\"this.ResizeTab()\"\r\n (heightChange)=\"this.ResizeTab()\"\r\n (widthChange)=\"this.ResizeTab()\"\r\n >\r\n <kendo-loader *ngIf=\"showloader\" type=\"converging-spinner\" ></kendo-loader>\r\n <div class=\"k-d-flex k-flex-col k-justify-content-between k-h-full\" #dialogContainer>\r\n <div [class]=\"showloader ? 'disabled-div' : ''\">\r\n <kendo-tabstrip class=\"popup-content\" [keepTabContent]=\"true\" [animate] = \"false\" [height]=\"TabHeight\" >\r\n\r\n <kendo-tabstrip-tab title=\"General\" [selected]=\"true\">\r\n <ng-template kendoTabContent>\r\n <div class=\"view-prop-tab-contents\">\r\n <div class=\"form-group\">\r\n <kendo-label class=\"k-form-label\" text=\"Name\"></kendo-label>\r\n <kendo-textbox #nameField class=\"view-name\" [(ngModel)]=\"record.Name\"></kendo-textbox>\r\n </div>\r\n <div class=\"form-group form-group-description\">\r\n <kendo-label class=\"k-form-label\" text=\"Description\"></kendo-label>\r\n <textarea class=\"k-input k-input-solid view-description\" [(ngModel)]=\"record.Description\"></textarea>\r\n </div>\r\n </div>\r\n </ng-template>\r\n </kendo-tabstrip-tab>\r\n \r\n <kendo-tabstrip-tab title=\"Fields\">\r\n <ng-template kendoTabContent>\r\n \r\n <kendo-sortable\r\n [kendoSortableBinding]=\"this.localGridState.columnSettings\"\r\n [animation]=\"true\"\r\n itemClass=\"item\"\r\n activeItemClass=\"item active\"\r\n (dragEnd)=\"onDragEnd($event)\"\r\n >\r\n <ng-template let-col=\"item\">\r\n <div class=\"item-content\">\r\n <div>\r\n <input\r\n type=\"checkbox\"\r\n [(ngModel)]=\"!col.hidden\"\r\n id=\"column_{{col.ID}}\"\r\n kendoCheckBox\r\n (change)=\"toggleColumn(col)\"\r\n />\r\n <kendo-label\r\n [for]=\"'column_'+col.ID\"\r\n [text]=\"col.DisplayName ? col.DisplayName : col.Name\"\r\n class=\"k-checkbox-label\"\r\n ></kendo-label>\r\n </div>\r\n <kendo-icon name=\"reorder\"></kendo-icon>\r\n </div>\r\n </ng-template>\r\n </kendo-sortable>\r\n </ng-template>\r\n </kendo-tabstrip-tab>\r\n \r\n <kendo-tabstrip-tab title=\"Filters\">\r\n <ng-template kendoTabContent>\r\n <div class=\"smart-filter-container\">\r\n <kendo-label text=\"Smart Filter\" class=\"smart-filter-label\"></kendo-label>\r\n <kendo-switch [(ngModel)]=\"record.SmartFilterEnabled\"></kendo-switch>\r\n </div>\r\n <div *ngIf=\"record.SmartFilterEnabled\" class=\"smart-filter-prompt\" mjFillContainer [fillHeight]=\"true\">\r\n <kendo-textarea\r\n placeholder=\"Describe how you would like the data filtered\"\r\n [rows]=\"10\"\r\n [(ngModel)]=\"record.SmartFilterPrompt\"\r\n resizable=\"vertical\"\r\n ></kendo-textarea>\r\n </div>\r\n <div *ngIf=\"!record.SmartFilterEnabled\">\r\n <kendo-filter\r\n [filters]=\"EntityInfo!.Fields.map(toKendoFilterField)\"\r\n [value]=\"defaultFilterState\"\r\n (valueChange)=\"onFilterChange($event)\"\r\n >\r\n </kendo-filter>\r\n </div>\r\n </ng-template>\r\n </kendo-tabstrip-tab>\r\n\r\n <kendo-tabstrip-tab title=\"Sorting\">\r\n <ng-template kendoTabContent>\r\n <div class=\"sort-header\">\r\n <button kendoButton (click)=\"addSort()\" icon=\"add\"></button>\r\n \r\n </div>\r\n <div *ngFor=\"let s of this.sortState\"> \r\n <kendo-dropdownlist \r\n class=\"sort-column\"\r\n [data]=\"sortFields\"\r\n textField=\"Name\"\r\n valueField=\"Name\"\r\n (valueChange)=\"sortColumnValueChange(s, $event)\"\r\n [(ngModel)]=\"s.field\"\r\n >\r\n </kendo-dropdownlist>\r\n <kendo-dropdownlist\r\n class=\"sort-direction\"\r\n [data]=\"sortDirections\"\r\n textField=\"Name\"\r\n valueField=\"Value\"\r\n (valueChange)=\"sortDirectionValueChange(s, $event)\"\r\n [(ngModel)]=\"s.direction\"\r\n >\r\n </kendo-dropdownlist>\r\n <button kendoButton (click)=\"removeSort(s)\" icon=\"delete\"></button>\r\n </div> \r\n </ng-template>\r\n </kendo-tabstrip-tab>\r\n\r\n <kendo-tabstrip-tab title=\"Advanced\">\r\n <ng-template kendoTabContent>\r\n <div *ngIf=\"record.SmartFilterEnabled\">\r\n <kendo-textarea\r\n [readonly]=\"true\"\r\n [rows]=\"5\"\r\n [(ngModel)]=\"record.SmartFilterExplanation\"\r\n resizable=\"vertical\"\r\n class=\"advanced-tab-details\"\r\n ></kendo-textarea>\r\n <kendo-textarea\r\n [readonly]=\"true\"\r\n [rows]=\"5\"\r\n [(ngModel)]=\"record.SmartFilterWhereClause\"\r\n resizable=\"vertical\"\r\n class=\"advanced-tab-details\"\r\n ></kendo-textarea> \r\n </div>\r\n <div *ngElse>\r\n <kendo-textarea\r\n [readonly]=\"true\"\r\n [rows]=\"7\"\r\n [(ngModel)]=\"record.WhereClause\"\r\n resizable=\"vertical\"\r\n class=\"advanced-tab-details\"\r\n ></kendo-textarea>\r\n </div>\r\n\r\n </ng-template>\r\n </kendo-tabstrip-tab>\r\n\r\n </kendo-tabstrip>\r\n \r\n <div class=\"k-actions k-actions-end popup-actions\">\r\n <button kendoButton icon=\"save\" (click)=\"saveProperties()\" themeColor=\"primary\">\r\n Save\r\n </button>\r\n <button kendoButton (click)=\"closePropertiesDialog()\">Cancel</button>\r\n </div>\r\n </div>\r\n </div>\r\n </kendo-window>\r\n</div>\r\n", styles: [".view-prop-tab-contents {\r\n display: flex;\r\n flex-direction: column;\r\n height: 100%; /* Set to the height you want */\r\n}\r\n\r\n.form-group {\r\n display: flex;\r\n flex-direction: row;\r\n align-items: flex-start;\r\n margin-bottom: 10px;\r\n}\r\n\r\n.form-group-description {\r\n flex-grow: 1;\r\n}\r\n\r\n.k-form-label {\r\n width: 150px; /* Adjust as needed */\r\n margin-right: 10px;\r\n}\r\n\r\n.view-description {\r\n flex-grow: 1;\r\n height: 100%;\r\n padding: 5px;\r\n resize: none;\r\n}\r\n\r\n\r\n\r\n.item-content {\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n}\r\n\r\n.popup-content {\r\n height: calc(100% - 46px);\r\n}\r\n\r\n.popup-actions {\r\n padding: 16px 0 0;\r\n}\r\n\r\n.view-prop-tab-contents {\r\n overflow: hidden;\r\n}\r\n\r\n.sort-column {\r\n width: 300px;\r\n}\r\n\r\n.sort-direction {\r\n width: 125px;\r\n}\r\n\r\n.sort-header > button {\r\n margin-left: 5px;\r\n margin-bottom: 5px;\r\n width: 75px;\r\n}\r\n\r\n.smart-filter-label {\r\n margin-right: 10px;\r\n}\r\n\r\n.smart-filter-prompt {\r\n margin-top: 15px;\r\n}\r\n\r\n.advanced-tab-details\r\n{\r\n margin-bottom: 10px;\r\n}"] }]
547
+ args: [{ selector: 'app-view-properties-dialog', template: "<div>\r\n <button *ngIf=\"ShowPropertiesButton\"\r\n kendoButton\r\n [primary]=\"true\"\r\n icon=\"gear\"\r\n (click)=\"this.Open()\"\r\n >Properties</button>\r\n <div class=\"k-overlay\" *ngIf=\"isDialogOpened\"></div>\r\n <kendo-window\r\n [width]=\"700\"\r\n [height]=\"525\"\r\n [minHeight]=\"300\"\r\n [minWidth]=\"400\"\r\n [resizable]=\"true\"\r\n title=\"View Properties\"\r\n *ngIf=\"isDialogOpened\"\r\n (close)=\"closePropertiesDialog()\"\r\n (resizeEnd)=\"this.ResizeTab()\"\r\n (heightChange)=\"this.ResizeTab()\"\r\n (widthChange)=\"this.ResizeTab()\"\r\n >\r\n <kendo-loader *ngIf=\"showloader\" type=\"converging-spinner\" ></kendo-loader>\r\n <div class=\"k-d-flex k-flex-col k-justify-content-between k-h-full\" #dialogContainer>\r\n <div [class]=\"showloader ? 'disabled-div' : ''\">\r\n <kendo-tabstrip class=\"popup-content\" [keepTabContent]=\"true\" [animate] = \"false\" [height]=\"TabHeight\" >\r\n\r\n <kendo-tabstrip-tab title=\"General\" [selected]=\"true\">\r\n <ng-template kendoTabContent>\r\n <div class=\"view-prop-tab-contents\">\r\n <div class=\"form-group\">\r\n <kendo-label class=\"k-form-label\" text=\"Name\"></kendo-label>\r\n <kendo-textbox #nameField class=\"view-name\" [(ngModel)]=\"record.Name\"></kendo-textbox>\r\n </div>\r\n <div class=\"form-group form-group-description\">\r\n <kendo-label class=\"k-form-label\" text=\"Description\"></kendo-label>\r\n <textarea class=\"k-input k-input-solid view-description\" [(ngModel)]=\"record.Description\"></textarea>\r\n </div>\r\n </div>\r\n </ng-template>\r\n </kendo-tabstrip-tab>\r\n \r\n <kendo-tabstrip-tab title=\"Fields\">\r\n <ng-template kendoTabContent>\r\n \r\n <kendo-sortable\r\n [kendoSortableBinding]=\"this.localGridState.columnSettings\"\r\n [animation]=\"true\"\r\n itemClass=\"item\"\r\n activeItemClass=\"item active\"\r\n (dragEnd)=\"onDragEnd($event)\"\r\n >\r\n <ng-template let-col=\"item\">\r\n <div class=\"item-content\">\r\n <div>\r\n <input\r\n type=\"checkbox\"\r\n [(ngModel)]=\"!col.hidden\"\r\n id=\"column_{{col.ID}}\"\r\n kendoCheckBox\r\n (change)=\"toggleColumn(col)\"\r\n />\r\n <kendo-label\r\n [for]=\"'column_'+col.ID\"\r\n [text]=\"col.DisplayName ? col.DisplayName : col.Name\"\r\n class=\"k-checkbox-label\"\r\n ></kendo-label>\r\n </div>\r\n <kendo-icon name=\"reorder\"></kendo-icon>\r\n </div>\r\n </ng-template>\r\n </kendo-sortable>\r\n </ng-template>\r\n </kendo-tabstrip-tab>\r\n \r\n <kendo-tabstrip-tab title=\"Filters\">\r\n <ng-template kendoTabContent>\r\n <div class=\"smart-filter-container\">\r\n <kendo-label text=\"Smart Filter\" class=\"smart-filter-label\"></kendo-label>\r\n <kendo-switch [(ngModel)]=\"record.SmartFilterEnabled\"></kendo-switch>\r\n </div>\r\n <div *ngIf=\"record.SmartFilterEnabled\" class=\"smart-filter-prompt\" mjFillContainer [fillHeight]=\"true\">\r\n <kendo-textarea\r\n placeholder=\"Describe how you would like the data filtered\"\r\n [rows]=\"10\"\r\n [(ngModel)]=\"record.SmartFilterPrompt\"\r\n resizable=\"vertical\"\r\n ></kendo-textarea>\r\n </div>\r\n <div *ngIf=\"!record.SmartFilterEnabled\">\r\n <kendo-filter\r\n [filters]=\"ViewEntityInfo!.Fields.map(toKendoFilterField)\"\r\n [value]=\"defaultFilterState\"\r\n (valueChange)=\"onFilterChange($event)\"\r\n >\r\n </kendo-filter>\r\n </div>\r\n </ng-template>\r\n </kendo-tabstrip-tab>\r\n\r\n <kendo-tabstrip-tab title=\"Sorting\">\r\n <ng-template kendoTabContent>\r\n <div class=\"sort-header\">\r\n <button kendoButton (click)=\"addSort()\" icon=\"add\"></button>\r\n \r\n </div>\r\n <div *ngFor=\"let s of this.sortState\"> \r\n <kendo-dropdownlist \r\n class=\"sort-column\"\r\n [data]=\"sortFields\"\r\n textField=\"Name\"\r\n valueField=\"Name\"\r\n (valueChange)=\"sortColumnValueChange(s, $event)\"\r\n [(ngModel)]=\"s.field\"\r\n >\r\n </kendo-dropdownlist>\r\n <kendo-dropdownlist\r\n class=\"sort-direction\"\r\n [data]=\"sortDirections\"\r\n textField=\"Name\"\r\n valueField=\"Value\"\r\n (valueChange)=\"sortDirectionValueChange(s, $event)\"\r\n [(ngModel)]=\"s.direction\"\r\n >\r\n </kendo-dropdownlist>\r\n <button kendoButton (click)=\"removeSort(s)\" icon=\"delete\"></button>\r\n </div> \r\n </ng-template>\r\n </kendo-tabstrip-tab>\r\n\r\n <kendo-tabstrip-tab title=\"Advanced\">\r\n <ng-template kendoTabContent>\r\n <div *ngIf=\"record.SmartFilterEnabled\">\r\n <kendo-textarea\r\n [readonly]=\"true\"\r\n [rows]=\"5\"\r\n [(ngModel)]=\"record.SmartFilterExplanation\"\r\n resizable=\"vertical\"\r\n class=\"advanced-tab-details\"\r\n ></kendo-textarea>\r\n <kendo-textarea\r\n [readonly]=\"true\"\r\n [rows]=\"5\"\r\n [(ngModel)]=\"record.SmartFilterWhereClause\"\r\n resizable=\"vertical\"\r\n class=\"advanced-tab-details\"\r\n ></kendo-textarea> \r\n </div>\r\n <div *ngElse>\r\n <kendo-textarea\r\n [readonly]=\"true\"\r\n [rows]=\"7\"\r\n [(ngModel)]=\"record.WhereClause\"\r\n resizable=\"vertical\"\r\n class=\"advanced-tab-details\"\r\n ></kendo-textarea>\r\n </div>\r\n\r\n </ng-template>\r\n </kendo-tabstrip-tab>\r\n\r\n </kendo-tabstrip>\r\n \r\n <div class=\"k-actions k-actions-end popup-actions\">\r\n <button kendoButton icon=\"save\" (click)=\"saveProperties()\" themeColor=\"primary\">\r\n Save\r\n </button>\r\n <button kendoButton (click)=\"closePropertiesDialog()\">Cancel</button>\r\n </div>\r\n </div>\r\n </div>\r\n </kendo-window>\r\n</div>\r\n", styles: [".view-prop-tab-contents {\r\n display: flex;\r\n flex-direction: column;\r\n height: 100%; /* Set to the height you want */\r\n}\r\n\r\n.form-group {\r\n display: flex;\r\n flex-direction: row;\r\n align-items: flex-start;\r\n margin-bottom: 10px;\r\n}\r\n\r\n.form-group-description {\r\n flex-grow: 1;\r\n}\r\n\r\n.k-form-label {\r\n width: 150px; /* Adjust as needed */\r\n margin-right: 10px;\r\n}\r\n\r\n.view-description {\r\n flex-grow: 1;\r\n height: 100%;\r\n padding: 5px;\r\n resize: none;\r\n}\r\n\r\n\r\n\r\n.item-content {\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n}\r\n\r\n.popup-content {\r\n height: calc(100% - 46px);\r\n}\r\n\r\n.popup-actions {\r\n padding: 16px 0 0;\r\n}\r\n\r\n.view-prop-tab-contents {\r\n overflow: hidden;\r\n}\r\n\r\n.sort-column {\r\n width: 300px;\r\n}\r\n\r\n.sort-direction {\r\n width: 125px;\r\n}\r\n\r\n.sort-header > button {\r\n margin-left: 5px;\r\n margin-bottom: 5px;\r\n width: 75px;\r\n}\r\n\r\n.smart-filter-label {\r\n margin-right: 10px;\r\n}\r\n\r\n.smart-filter-prompt {\r\n margin-top: 15px;\r\n}\r\n\r\n.advanced-tab-details\r\n{\r\n margin-bottom: 10px;\r\n}"] }]
548
548
  }], function () { return [{ type: i1.ActivatedRoute }, { type: i0.ElementRef }, { type: i2.SharedService }, { type: i3.FormBuilder }, { type: i1.Router }]; }, { ViewID: [{
549
549
  type: Input
550
550
  }], EntityName: [{
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@memberjunction/ng-explorer-core",
3
- "version": "0.9.7",
3
+ "version": "0.9.9",
4
4
  "description": "MemberJunction Explorer: Core Angular Components",
5
5
  "main": "./dist/public-api.js",
6
6
  "typings": "./dist/public-api.d.ts",
@@ -27,12 +27,12 @@
27
27
  "@progress/kendo-angular-listview": "^12.1.0"
28
28
  },
29
29
  "dependencies": {
30
- "@memberjunction/global": "^0.9.66",
31
- "@memberjunction/core": "^0.9.63",
32
- "@memberjunction/ng-compare-records": "^0.9.68",
33
- "@memberjunction/ng-record-changes": "^0.9.6",
34
- "@memberjunction/ng-container-directives": "^0.9.44",
35
- "@memberjunction/ng-user-view-grid": "^0.9.48",
30
+ "@memberjunction/global": "^0.9.70",
31
+ "@memberjunction/core": "^0.9.67",
32
+ "@memberjunction/ng-compare-records": "^0.9.69",
33
+ "@memberjunction/ng-record-changes": "^0.9.7",
34
+ "@memberjunction/ng-container-directives": "^0.9.45",
35
+ "@memberjunction/ng-user-view-grid": "^0.9.49",
36
36
  "tslib": "^2.3.0"
37
37
  },
38
38
  "sideEffects": false