@memberjunction/ng-user-view-properties 1.4.0 → 1.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { EventEmitter, AfterViewInit, OnDestroy, ElementRef, Renderer2 } from '@angular/core';
|
|
1
|
+
import { EventEmitter, AfterViewInit, OnDestroy, ElementRef, Renderer2, ChangeDetectorRef } from '@angular/core';
|
|
2
2
|
import { ActivatedRoute, Router } from "@angular/router";
|
|
3
3
|
import { Metadata, EntityFieldInfo, EntityInfo } from "@memberjunction/core";
|
|
4
4
|
import { DragEndEvent } from '@progress/kendo-angular-sortable';
|
|
@@ -18,6 +18,7 @@ export declare class UserViewPropertiesDialogComponent extends BaseFormComponent
|
|
|
18
18
|
private formBuilder;
|
|
19
19
|
protected router: Router;
|
|
20
20
|
private renderer;
|
|
21
|
+
protected cdr: ChangeDetectorRef;
|
|
21
22
|
ViewID: number | undefined;
|
|
22
23
|
EntityName: string | undefined;
|
|
23
24
|
ShowPropertiesButton: boolean;
|
|
@@ -42,7 +43,7 @@ export declare class UserViewPropertiesDialogComponent extends BaseFormComponent
|
|
|
42
43
|
nameField: TextBoxComponent;
|
|
43
44
|
dialogContainer: ElementRef;
|
|
44
45
|
private outerDialogContainer;
|
|
45
|
-
constructor(route: ActivatedRoute, elRef: ElementRef, ss: SharedService, formBuilder: FormBuilder, router: Router, renderer: Renderer2);
|
|
46
|
+
constructor(route: ActivatedRoute, elRef: ElementRef, ss: SharedService, formBuilder: FormBuilder, router: Router, renderer: Renderer2, cdr: ChangeDetectorRef);
|
|
46
47
|
onKeyPress(event: KeyboardEvent): void;
|
|
47
48
|
GetTabTopPosition(): number;
|
|
48
49
|
CreateView(entityName: string): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"user-view-properties.component.d.ts","sourceRoot":"","sources":["../../src/lib/user-view-properties.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,YAAY,EAAkB,aAAa,EAAE,SAAS,EAAa,UAAU,EAAE,SAAS,EAAC,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"user-view-properties.component.d.ts","sourceRoot":"","sources":["../../src/lib/user-view-properties.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,YAAY,EAAkB,aAAa,EAAE,SAAS,EAAa,UAAU,EAAE,SAAS,EAAE,iBAAiB,EAAC,MAAM,eAAe,CAAC;AACtJ,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,UAAU,EAAqB,MAAM,sBAAsB,CAAC;AAChG,OAAO,EAAE,YAAY,EAAC,MAAM,kCAAkC,CAAC;AAC/D,OAAO,EAAE,sBAAsB,EAAiB,MAAM,+BAA+B,CAAC;AACtF,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAElE,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAE9D,OAAO,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AACvE,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAc,aAAa,EAAE,MAAM,2BAA2B,CAAC;AACtE,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;;AAE7C,qBAKa,iCAAkC,SAAQ,iBAAkB,YAAW,aAAa,EAAE,SAAS;cAoC1E,KAAK,EAAE,cAAc;IAAE,OAAO,CAAC,KAAK;IAAc,OAAO,CAAC,EAAE;IAAiB,OAAO,CAAC,WAAW;cAAkC,MAAM,EAAE,MAAM;IAAE,OAAO,CAAC,QAAQ;IAAa,SAAS,CAAC,GAAG,EAAE,iBAAiB;IAnC/N,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,oBAAoB,EAAE,OAAO,CAAQ;IAE3C,YAAY,oBAAsB;IAGrC,cAAc,EAAE,OAAO,CAAS;IAChC,UAAU,EAAE,OAAO,CAAQ;IAG3B,cAAc,EAAE,GAAG,CAAK;IACxB,gBAAgB,EAAE,GAAG,CAAK;IAC1B,kBAAkB,EAAE,GAAG,CAAK;IAC5B,MAAM,EAAG,sBAAsB,CAAC;IAEhC,cAAc,EAAG,UAAU,CAAC;IAEnC,OAAO,CAAC,gBAAgB,CAAM;IACvB,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,CAAa;IAEpC,UAAU,EAAE,GAAG,EAAE,CAAM;IACvB,SAAS,EAAE,GAAG,EAAE,CAAM;IACtB,cAAc;;;QAGnB;IAE0B,WAAW,EAAG,eAAe,CAAC;IACjC,QAAQ,EAAG,YAAY,CAAC;IACzB,SAAS,EAAG,gBAAgB,CAAC;IACvB,eAAe,EAAG,UAAU,CAAC;IACxB,OAAO,CAAC,oBAAoB,CAAc;gBAG7C,KAAK,EAAE,cAAc,EAAU,KAAK,EAAE,UAAU,EAAU,EAAE,EAAE,aAAa,EAAU,WAAW,EAAE,WAAW,EAAqB,MAAM,EAAE,MAAM,EAAU,QAAQ,EAAE,SAAS,EAAY,GAAG,EAAE,iBAAiB;IAM/O,UAAU,CAAC,KAAK,EAAE,aAAa;IAMtB,iBAAiB,IAAI,MAAM;IAI7B,UAAU,CAAC,UAAU,EAAE,MAAM;IAMvB,IAAI,CAAC,MAAM,GAAE,MAAM,GAAG,SAAuB;IAOpD,IAAI;IA4BH,qBAAqB;IAQf,UAAU,CAAC,EAAE,EAAE,QAAQ;IAsDpC,OAAO,CAAC,mCAAmC;IAwBpC,SAAS,CAAC,CAAC,EAAE,YAAY,GAAG,IAAI;IAcvC,SAAS,CAAC,qBAAqB;IAYxB,cAAc,CAAC,KAAK,EAAE,yBAAyB,GAAG,IAAI;IAIhD,YAAY,CAAC,MAAM,EAAE,GAAG;IAOxB,cAAc,IAAK,OAAO,CAAC,IAAI,CAAC;IAkEtC,gBAAgB,EAAE,GAAG,CAK1B;IAGF,OAAO,CAAC,aAAa,CAAa;IAC3B,YAAY;IAUZ,kBAAkB,MAAO,eAAe,KAAG,GAAG,CAOpD;IAEM,cAAc,CAAE,KAAK,EAAE,eAAe;IAatC,iBAAiB,CAAE,KAAK,EAAE,eAAe;IAchD,cAAuB,qBAAqB,IAAI,MAAM,CAKrD;IAED,OAAO;IAIP,UAAU,CAAC,IAAI,EAAE,GAAG;IAIpB,qBAAqB,CAAC,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,eAAe;IAM9D,wBAAwB,CAAC,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG;IAIrD,OAAO,CAAC,YAAY,CAAkB;IACtC,gBAAgB;yCA3WL,iCAAiC;2CAAjC,iCAAiC;CAmX7C"}
|
|
@@ -243,14 +243,15 @@ function UserViewPropertiesDialogComponent_kendo_window_5_Template(rf, ctx) { if
|
|
|
243
243
|
i0.ɵɵproperty("selected", true);
|
|
244
244
|
} }
|
|
245
245
|
export class UserViewPropertiesDialogComponent extends BaseFormComponent {
|
|
246
|
-
constructor(route, elRef, ss, formBuilder, router, renderer) {
|
|
247
|
-
super(elRef, ss, router, route);
|
|
246
|
+
constructor(route, elRef, ss, formBuilder, router, renderer, cdr) {
|
|
247
|
+
super(elRef, ss, router, route, cdr);
|
|
248
248
|
this.route = route;
|
|
249
249
|
this.elRef = elRef;
|
|
250
250
|
this.ss = ss;
|
|
251
251
|
this.formBuilder = formBuilder;
|
|
252
252
|
this.router = router;
|
|
253
253
|
this.renderer = renderer;
|
|
254
|
+
this.cdr = cdr;
|
|
254
255
|
this.ShowPropertiesButton = true;
|
|
255
256
|
this.dialogClosed = new EventEmitter();
|
|
256
257
|
this.isDialogOpened = false;
|
|
@@ -450,7 +451,7 @@ export class UserViewPropertiesDialogComponent extends BaseFormComponent {
|
|
|
450
451
|
}
|
|
451
452
|
saveProperties() {
|
|
452
453
|
return __awaiter(this, void 0, void 0, function* () {
|
|
453
|
-
const bNewRecord = !
|
|
454
|
+
const bNewRecord = !this.record.IsSaved;
|
|
454
455
|
this.showloader = true;
|
|
455
456
|
const lfs = JSON.stringify(this.localFilterState);
|
|
456
457
|
this.record.FilterState = JSON.stringify(this.localFilterState); // pass this along as as string, not directly bound since Kendo Filter is bound to a local object we need to translate to a string
|
|
@@ -488,7 +489,7 @@ export class UserViewPropertiesDialogComponent extends BaseFormComponent {
|
|
|
488
489
|
eventCode: EventCodes.ViewUpdated,
|
|
489
490
|
args: new ResourceData({
|
|
490
491
|
ResourceTypeID: this.sharedService.ViewResourceType.ID,
|
|
491
|
-
ResourceRecordID: this.record.
|
|
492
|
+
ResourceRecordID: this.record.FirstPrimaryKey.Value,
|
|
492
493
|
Configuration: {
|
|
493
494
|
ViewEntity: this.record
|
|
494
495
|
}
|
|
@@ -497,7 +498,7 @@ export class UserViewPropertiesDialogComponent extends BaseFormComponent {
|
|
|
497
498
|
});
|
|
498
499
|
else {
|
|
499
500
|
// we route to the new view using the router
|
|
500
|
-
this.router.navigate(['resource', 'view', this.record.
|
|
501
|
+
this.router.navigate(['resource', 'view', this.record.FirstPrimaryKey.Value]);
|
|
501
502
|
}
|
|
502
503
|
}
|
|
503
504
|
else {
|
|
@@ -568,7 +569,7 @@ export class UserViewPropertiesDialogComponent extends BaseFormComponent {
|
|
|
568
569
|
this._movedToBody = true;
|
|
569
570
|
}
|
|
570
571
|
}
|
|
571
|
-
UserViewPropertiesDialogComponent.ɵfac = function UserViewPropertiesDialogComponent_Factory(t) { return new (t || UserViewPropertiesDialogComponent)(i0.ɵɵdirectiveInject(i1.ActivatedRoute), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i2.SharedService), i0.ɵɵdirectiveInject(i3.FormBuilder), i0.ɵɵdirectiveInject(i1.Router), i0.ɵɵdirectiveInject(i0.Renderer2)); };
|
|
572
|
+
UserViewPropertiesDialogComponent.ɵfac = function UserViewPropertiesDialogComponent_Factory(t) { return new (t || UserViewPropertiesDialogComponent)(i0.ɵɵdirectiveInject(i1.ActivatedRoute), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i2.SharedService), i0.ɵɵdirectiveInject(i3.FormBuilder), i0.ɵɵdirectiveInject(i1.Router), i0.ɵɵdirectiveInject(i0.Renderer2), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef)); };
|
|
572
573
|
UserViewPropertiesDialogComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: UserViewPropertiesDialogComponent, selectors: [["mj-user-view-properties-dialog"]], viewQuery: function UserViewPropertiesDialogComponent_Query(rf, ctx) { if (rf & 1) {
|
|
573
574
|
i0.ɵɵviewQuery(WindowComponent, 5);
|
|
574
575
|
i0.ɵɵviewQuery(TabComponent, 5);
|
|
@@ -599,7 +600,7 @@ UserViewPropertiesDialogComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({
|
|
|
599
600
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(UserViewPropertiesDialogComponent, [{
|
|
600
601
|
type: Component,
|
|
601
602
|
args: [{ selector: 'mj-user-view-properties-dialog', template: "<div>\n <button *ngIf=\"ShowPropertiesButton\"\n kendoButton\n themeColor=\"info\"\n (click)=\"this.Open()\"\n class=\"view-properties-button\"\n >\n <span class=\"fa-solid fa-gear\"></span>\n Properties\n </button>\n <div #outerDialogContainer>\n <div class=\"k-overlay\" *ngIf=\"isDialogOpened\"></div>\n <kendo-window\n [minHeight]=\"300\"\n [minWidth]=\"800\"\n [top]=\"100\"\n [left]=\"100\"\n [width]=\"668\"\n [height]=\"525\"\n [resizable]=\"true\"\n title=\"View Properties\"\n *ngIf=\"isDialogOpened\"\n (close)=\"closePropertiesDialog()\"\n (resizeEnd)=\"this.ResizeTab()\"\n (heightChange)=\"this.ResizeTab()\"\n (widthChange)=\"this.ResizeTab()\"\n >\n <kendo-loader *ngIf=\"showloader\" type=\"converging-spinner\" ></kendo-loader>\n <div class=\"k-d-flex k-flex-col k-justify-content-between k-h-full\" #dialogContainer>\n <div [class]=\"showloader ? 'disabled-div' : ''\">\n <kendo-tabstrip [keepTabContent]=\"true\" [animate] = \"false\" [height]=\"TabHeight\" >\n <kendo-tabstrip-tab title=\"General\" [selected]=\"true\">\n <ng-template kendoTabContent>\n <div class=\"view-prop-tab-contents\">\n <div class=\"form-group\">\n <kendo-label class=\"k-form-label\" text=\"Name\"></kendo-label>\n <kendo-textbox #nameField class=\"view-name\" [(ngModel)]=\"record.Name\"></kendo-textbox>\n </div>\n <div class=\"form-group form-group-description\">\n <kendo-label class=\"k-form-label\" text=\"Description\"></kendo-label>\n <textarea class=\"k-input k-input-solid view-description\" [(ngModel)]=\"record.Description\"></textarea>\n </div>\n </div>\n </ng-template>\n </kendo-tabstrip-tab>\n <kendo-tabstrip-tab title=\"Fields\">\n <ng-template kendoTabContent>\n \n <kendo-sortable\n [kendoSortableBinding]=\"this.localGridState.columnSettings\"\n [animation]=\"true\"\n itemClass=\"item\"\n activeItemClass=\"item active\"\n (dragEnd)=\"onDragEnd($event)\"\n >\n <ng-template let-col=\"item\">\n <div class=\"item-content\">\n <div>\n <input\n type=\"checkbox\"\n [(ngModel)]=\"!col.hidden\"\n id=\"column_{{col.ID}}\"\n kendoCheckBox\n (change)=\"toggleColumn(col)\"\n />\n <kendo-label\n [for]=\"'column_'+col.ID\"\n [text]=\"col.DisplayName ? col.DisplayName : col.Name\"\n class=\"k-checkbox-label\"\n ></kendo-label>\n </div>\n <span class=\"fa-solid fa-bars-staggered\"></span>\n </div>\n </ng-template>\n </kendo-sortable>\n </ng-template>\n </kendo-tabstrip-tab>\n <kendo-tabstrip-tab title=\"Filters\">\n <ng-template kendoTabContent>\n <div class=\"smart-filter-container\">\n <kendo-label text=\"Smart Filter\" class=\"smart-filter-label\"></kendo-label>\n <kendo-switch [(ngModel)]=\"record.SmartFilterEnabled\"></kendo-switch>\n </div>\n <div *ngIf=\"record.SmartFilterEnabled\" class=\"smart-filter-prompt\" mjFillContainer [fillHeight]=\"true\">\n <kendo-textarea\n placeholder=\"Describe how you would like the data filtered\"\n [rows]=\"10\"\n [(ngModel)]=\"record.SmartFilterPrompt\"\n resizable=\"vertical\"\n ></kendo-textarea>\n </div>\n <div *ngIf=\"!record.SmartFilterEnabled\">\n <kendo-filter\n [filters]=\"setupFilters()\"\n [value]=\"defaultFilterState\"\n (valueChange)=\"onFilterChange($event)\"\n >\n </kendo-filter>\n </div>\n </ng-template>\n </kendo-tabstrip-tab>\n <kendo-tabstrip-tab title=\"Sorting\">\n <ng-template kendoTabContent>\n <div class=\"sort-header\">\n <button kendoButton (click)=\"addSort()\">\n <span class=\"fa-solid fa-plus\"></span>\n Add\n </button>\n </div>\n <div *ngFor=\"let s of this.sortState\"> \n <kendo-dropdownlist \n class=\"sort-column\"\n [data]=\"sortFields\"\n textField=\"Name\"\n valueField=\"Name\"\n (valueChange)=\"sortColumnValueChange(s, $event)\"\n [(ngModel)]=\"s.field\"\n >\n </kendo-dropdownlist>\n <kendo-dropdownlist\n class=\"sort-direction\"\n [data]=\"sortDirections\"\n textField=\"Name\"\n valueField=\"Value\"\n (valueChange)=\"sortDirectionValueChange(s, $event)\"\n [(ngModel)]=\"s.direction\"\n >\n </kendo-dropdownlist>\n <button kendoButton (click)=\"removeSort(s)\">\n <span class=\"fa-solid fa-xmark\"></span>\n Remove\n </button>\n </div> \n </ng-template>\n </kendo-tabstrip-tab>\n <kendo-tabstrip-tab title=\"Advanced\">\n <ng-template kendoTabContent>\n @if(record.SmartFilterEnabled) {\n <kendo-textarea\n [readonly]=\"true\"\n [rows]=\"5\"\n [(ngModel)]=\"record.SmartFilterExplanation\"\n resizable=\"vertical\"\n class=\"advanced-tab-details\"\n ></kendo-textarea>\n <kendo-textarea\n [readonly]=\"true\"\n [rows]=\"5\"\n [(ngModel)]=\"record.SmartFilterWhereClause\"\n resizable=\"vertical\"\n class=\"advanced-tab-details\"\n ></kendo-textarea> \n }\n @else {\n <kendo-textarea\n [readonly]=\"true\"\n [rows]=\"7\"\n [(ngModel)]=\"record.WhereClause\"\n resizable=\"vertical\"\n class=\"advanced-tab-details\"\n ></kendo-textarea>\n }\n \n </ng-template>\n </kendo-tabstrip-tab>\n </kendo-tabstrip>\n \n <div class=\"k-actions k-actions-end customBtn popup-actions\">\n <button kendoButton (click)=\"saveProperties()\" themeColor=\"info\">\n <span class=\"fa-solid fa-circle-check\"></span>\n Save\n </button>\n <button fillMode=\"outline\" themeColor=\"info\" kendoButton (click)=\"closePropertiesDialog()\">Cancel</button>\n </div>\n </div>\n </div>\n </kendo-window>\n </div>\n</div> ", styles: [".view-properties-button {\n margin-left: 0px;\n }\n .view-prop-tab-contents {\n display: flex;\n flex-direction: column;\n height: 100%; /* Set to the height you want */\n }\n \n .form-group {\n display: flex;\n flex-direction: row;\n align-items: flex-start;\n margin-bottom: 10px;\n }\n \n .form-group-description {\n flex-grow: 1;\n }\n \n .k-form-label {\n width: 150px; /* Adjust as needed */\n margin-right: 10px;\n }\n \n .view-description {\n flex-grow: 1;\n height: 100%;\n padding: 5px;\n resize: none;\n }\n \n \n \n .item-content {\n display: flex;\n justify-content: space-between;\n align-items: center;\n }\n \n .popup-content {\n height: calc(100% - 46px);\n }\n \n .popup-actions {\n padding: 16px 0 0;\n }\n \n .view-prop-tab-contents {\n overflow: hidden;\n }\n \n .sort-column {\n width: 300px;\n }\n \n .sort-direction {\n width: 125px;\n }\n \n .sort-header > button {\n margin-left: 5px;\n margin-bottom: 5px;\n width: 75px;\n }\n \n .smart-filter-label {\n margin-right: 10px;\n }\n \n .smart-filter-prompt {\n margin-top: 15px;\n }\n \n .advanced-tab-details\n {\n margin-bottom: 10px;\n }\n ::ng-deep .customBtn button {\n flex: 1;\n border-radius: 10px;\n line-height: 34px;\n }\n ::ng-deep .popup-content .k-tabstrip-items-wrapper {\n background: var(--white-color) !important;\n padding-left: 0 !important;\n }\n ::ng-deep .popup-content .k-tabstrip-items-wrapper .k-tabstrip-items .k-tabstrip-item.k-active {\n border-bottom: 3px solid var(--border-blue) !important;\n }\n ::ng-deep .popup-content .k-tabstrip-items-wrapper .k-tabstrip-items .k-tabstrip-item {\n background: var(--white-color) !important;\n border-right: 0 !important;\n }\n\n.k-checkbox:checked {\n background-color: var(--border-blue);\n border-color: var(--border-blue);\n color: white;\n}\n\n.k-switch-on .k-switch-track {\n background-color: var(--border-blue);\n border-color: var(--border-blue);\n color: white;\n}\n\n.k-selected {\n background-color: var(--border-blue);\n border-color: var(--border-blue);\n color: white;\n}"] }]
|
|
602
|
-
}], () => [{ type: i1.ActivatedRoute }, { type: i0.ElementRef }, { type: i2.SharedService }, { type: i3.FormBuilder }, { type: i1.Router }, { type: i0.Renderer2 }], { ViewID: [{
|
|
603
|
+
}], () => [{ type: i1.ActivatedRoute }, { type: i0.ElementRef }, { type: i2.SharedService }, { type: i3.FormBuilder }, { type: i1.Router }, { type: i0.Renderer2 }, { type: i0.ChangeDetectorRef }], { ViewID: [{
|
|
603
604
|
type: Input
|
|
604
605
|
}], EntityName: [{
|
|
605
606
|
type: Input
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@memberjunction/ng-user-view-properties",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.5.0",
|
|
4
4
|
"description": "MemberJunction: Angular UI Dialog Component to View/Edit User View Properties",
|
|
5
5
|
"main": "./dist/public-api.js",
|
|
6
6
|
"typings": "./dist/public-api.d.ts",
|
|
@@ -24,11 +24,11 @@
|
|
|
24
24
|
"@angular/forms": "~17.2.2"
|
|
25
25
|
},
|
|
26
26
|
"dependencies": {
|
|
27
|
-
"@memberjunction/global": "~1.
|
|
28
|
-
"@memberjunction/core": "~1.
|
|
29
|
-
"@memberjunction/core-entities": "~1.
|
|
30
|
-
"@memberjunction/ng-base-forms": "~1.
|
|
31
|
-
"@memberjunction/ng-shared": "~1.
|
|
27
|
+
"@memberjunction/global": "~1.5.0",
|
|
28
|
+
"@memberjunction/core": "~1.5.0",
|
|
29
|
+
"@memberjunction/core-entities": "~1.5.0",
|
|
30
|
+
"@memberjunction/ng-base-forms": "~1.5.0",
|
|
31
|
+
"@memberjunction/ng-shared": "~1.5.0",
|
|
32
32
|
"@progress/kendo-angular-sortable": "~15.1.0",
|
|
33
33
|
"@progress/kendo-angular-dialog": "~15.1.0",
|
|
34
34
|
"@progress/kendo-angular-layout": "~15.1.0",
|