@memberjunction/ng-entity-form-dialog 0.9.2
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.
- package/dist/lib/entity-form-dialog/entity-form-dialog.component.d.ts +33 -0
- package/dist/lib/entity-form-dialog/entity-form-dialog.component.js +183 -0
- package/dist/lib/module.d.ts +14 -0
- package/dist/lib/module.js +52 -0
- package/dist/public-api.d.ts +2 -0
- package/dist/public-api.js +5 -0
- package/package.json +39 -0
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { ViewContainerRef, EventEmitter } from '@angular/core';
|
|
2
|
+
import { BaseEntity } from '@memberjunction/core';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export declare class EntityFormDialog {
|
|
5
|
+
/**
|
|
6
|
+
* The title of the dialog
|
|
7
|
+
*/
|
|
8
|
+
Title: string;
|
|
9
|
+
ShowSaveButton: boolean;
|
|
10
|
+
ShowCancelButton: boolean;
|
|
11
|
+
Width: number;
|
|
12
|
+
Height: number;
|
|
13
|
+
Mode: 'complete' | 'section';
|
|
14
|
+
SectionName: string;
|
|
15
|
+
Record: BaseEntity | null;
|
|
16
|
+
/**
|
|
17
|
+
* If true, when the user clicks the Save button, the Record will be saved. Only applicable if ShowSaveButton is true.
|
|
18
|
+
*/
|
|
19
|
+
HandleSave: boolean;
|
|
20
|
+
/**
|
|
21
|
+
* If true, when the user clicks the Cancel button, the Record will be reverted to its original state. Only applicable if ShowCancelButton is true.
|
|
22
|
+
*/
|
|
23
|
+
AutoRevertOnCancel: boolean;
|
|
24
|
+
close: EventEmitter<'Save' | 'Cancel'>;
|
|
25
|
+
private _visible;
|
|
26
|
+
set Visible(val: boolean);
|
|
27
|
+
get Visible(): boolean;
|
|
28
|
+
container: ViewContainerRef;
|
|
29
|
+
showForm(): void;
|
|
30
|
+
closeWindow(status: 'Save' | 'Cancel'): Promise<void>;
|
|
31
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<EntityFormDialog, never>;
|
|
32
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<EntityFormDialog, "mj-entity-form-dialog", never, { "Title": { "alias": "Title"; "required": false; }; "ShowSaveButton": { "alias": "ShowSaveButton"; "required": false; }; "ShowCancelButton": { "alias": "ShowCancelButton"; "required": false; }; "Width": { "alias": "Width"; "required": false; }; "Height": { "alias": "Height"; "required": false; }; "Mode": { "alias": "Mode"; "required": false; }; "SectionName": { "alias": "SectionName"; "required": false; }; "Record": { "alias": "Record"; "required": false; }; "HandleSave": { "alias": "HandleSave"; "required": false; }; "AutoRevertOnCancel": { "alias": "AutoRevertOnCancel"; "required": false; }; "Visible": { "alias": "Visible"; "required": false; }; }, { "close": "close"; }, never, never, false, never>;
|
|
33
|
+
}
|
|
@@ -0,0 +1,183 @@
|
|
|
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
|
+
import { Component, Input, Output, ViewChild, ViewContainerRef, EventEmitter } from '@angular/core';
|
|
11
|
+
import { SharedService } from '@memberjunction/ng-shared';
|
|
12
|
+
import { MJGlobal } from '@memberjunction/global';
|
|
13
|
+
import { BaseFormComponent, BaseFormSectionComponent } from '@memberjunction/ng-base-forms';
|
|
14
|
+
import * as i0 from "@angular/core";
|
|
15
|
+
import * as i1 from "@angular/common";
|
|
16
|
+
import * as i2 from "@progress/kendo-angular-dialog";
|
|
17
|
+
import * as i3 from "@progress/kendo-angular-buttons";
|
|
18
|
+
const _c0 = ["dynamicFormContainer"];
|
|
19
|
+
function EntityFormDialog_kendo_dialog_0_ng_template_1_Template(rf, ctx) { }
|
|
20
|
+
function EntityFormDialog_kendo_dialog_0_kendo_dialog_actions_3_button_1_Template(rf, ctx) { if (rf & 1) {
|
|
21
|
+
const _r7 = i0.ɵɵgetCurrentView();
|
|
22
|
+
i0.ɵɵelementStart(0, "button", 6);
|
|
23
|
+
i0.ɵɵlistener("click", function EntityFormDialog_kendo_dialog_0_kendo_dialog_actions_3_button_1_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r7); const ctx_r6 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r6.closeWindow("Save")); });
|
|
24
|
+
i0.ɵɵtext(1, "Save");
|
|
25
|
+
i0.ɵɵelementEnd();
|
|
26
|
+
} }
|
|
27
|
+
function EntityFormDialog_kendo_dialog_0_kendo_dialog_actions_3_button_2_Template(rf, ctx) { if (rf & 1) {
|
|
28
|
+
const _r9 = i0.ɵɵgetCurrentView();
|
|
29
|
+
i0.ɵɵelementStart(0, "button", 7);
|
|
30
|
+
i0.ɵɵlistener("click", function EntityFormDialog_kendo_dialog_0_kendo_dialog_actions_3_button_2_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r9); const ctx_r8 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r8.closeWindow("Cancel")); });
|
|
31
|
+
i0.ɵɵtext(1, "Cancel");
|
|
32
|
+
i0.ɵɵelementEnd();
|
|
33
|
+
} }
|
|
34
|
+
function EntityFormDialog_kendo_dialog_0_kendo_dialog_actions_3_Template(rf, ctx) { if (rf & 1) {
|
|
35
|
+
i0.ɵɵelementStart(0, "kendo-dialog-actions");
|
|
36
|
+
i0.ɵɵtemplate(1, EntityFormDialog_kendo_dialog_0_kendo_dialog_actions_3_button_1_Template, 2, 0, "button", 4)(2, EntityFormDialog_kendo_dialog_0_kendo_dialog_actions_3_button_2_Template, 2, 0, "button", 5);
|
|
37
|
+
i0.ɵɵelementEnd();
|
|
38
|
+
} if (rf & 2) {
|
|
39
|
+
const ctx_r3 = i0.ɵɵnextContext(2);
|
|
40
|
+
i0.ɵɵadvance();
|
|
41
|
+
i0.ɵɵproperty("ngIf", ctx_r3.ShowSaveButton);
|
|
42
|
+
i0.ɵɵadvance();
|
|
43
|
+
i0.ɵɵproperty("ngIf", ctx_r3.ShowCancelButton);
|
|
44
|
+
} }
|
|
45
|
+
function EntityFormDialog_kendo_dialog_0_Template(rf, ctx) { if (rf & 1) {
|
|
46
|
+
const _r11 = i0.ɵɵgetCurrentView();
|
|
47
|
+
i0.ɵɵelementStart(0, "kendo-dialog", 1);
|
|
48
|
+
i0.ɵɵlistener("close", function EntityFormDialog_kendo_dialog_0_Template_kendo_dialog_close_0_listener() { i0.ɵɵrestoreView(_r11); const ctx_r10 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r10.closeWindow("Cancel")); });
|
|
49
|
+
i0.ɵɵtemplate(1, EntityFormDialog_kendo_dialog_0_ng_template_1_Template, 0, 0, "ng-template", null, 2, i0.ɵɵtemplateRefExtractor)(3, EntityFormDialog_kendo_dialog_0_kendo_dialog_actions_3_Template, 3, 2, "kendo-dialog-actions", 3);
|
|
50
|
+
i0.ɵɵelementEnd();
|
|
51
|
+
} if (rf & 2) {
|
|
52
|
+
const ctx_r0 = i0.ɵɵnextContext();
|
|
53
|
+
i0.ɵɵproperty("title", ctx_r0.Title)("width", ctx_r0.Width)("height", ctx_r0.Height);
|
|
54
|
+
i0.ɵɵadvance(3);
|
|
55
|
+
i0.ɵɵproperty("ngIf", ctx_r0.ShowSaveButton || ctx_r0.ShowCancelButton);
|
|
56
|
+
} }
|
|
57
|
+
export class EntityFormDialog {
|
|
58
|
+
constructor() {
|
|
59
|
+
/**
|
|
60
|
+
* The title of the dialog
|
|
61
|
+
*/
|
|
62
|
+
this.Title = '';
|
|
63
|
+
this.ShowSaveButton = true;
|
|
64
|
+
this.ShowCancelButton = true;
|
|
65
|
+
this.Width = 800;
|
|
66
|
+
this.Height = 600;
|
|
67
|
+
this.Mode = 'complete';
|
|
68
|
+
this.SectionName = '';
|
|
69
|
+
this.Record = null;
|
|
70
|
+
/**
|
|
71
|
+
* If true, when the user clicks the Save button, the Record will be saved. Only applicable if ShowSaveButton is true.
|
|
72
|
+
*/
|
|
73
|
+
this.HandleSave = true;
|
|
74
|
+
/**
|
|
75
|
+
* If true, when the user clicks the Cancel button, the Record will be reverted to its original state. Only applicable if ShowCancelButton is true.
|
|
76
|
+
*/
|
|
77
|
+
this.AutoRevertOnCancel = true;
|
|
78
|
+
this.close = new EventEmitter();
|
|
79
|
+
this._visible = false;
|
|
80
|
+
}
|
|
81
|
+
set Visible(val) {
|
|
82
|
+
this._visible = val;
|
|
83
|
+
if (val) {
|
|
84
|
+
Promise.resolve().then(() => {
|
|
85
|
+
// At this point, the DOM should be updated, and `this.container` should be available.
|
|
86
|
+
this.showForm();
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
get Visible() {
|
|
91
|
+
return this._visible;
|
|
92
|
+
}
|
|
93
|
+
showForm() {
|
|
94
|
+
var _a, _b;
|
|
95
|
+
if (!this.container)
|
|
96
|
+
throw new Error('Container not found');
|
|
97
|
+
if (!this.Record)
|
|
98
|
+
throw new Error('Record is a required property');
|
|
99
|
+
// Ensure the container is clear before inserting a new component
|
|
100
|
+
this.container.clear();
|
|
101
|
+
// here we want to grab the right type of object to instantiate based on the settings either mode of complete or section
|
|
102
|
+
// if section, we grab a sub-class of BaseFormSectionComponent, if complete, we grab a sub-class of the BaseForComponent class
|
|
103
|
+
let reg;
|
|
104
|
+
if (this.Mode === 'complete') {
|
|
105
|
+
reg = MJGlobal.Instance.ClassFactory.GetRegistration(BaseFormComponent, (_a = this.Record) === null || _a === void 0 ? void 0 : _a.EntityInfo.Name);
|
|
106
|
+
}
|
|
107
|
+
else {
|
|
108
|
+
reg = MJGlobal.Instance.ClassFactory.GetRegistration(BaseFormSectionComponent, ((_b = this.Record) === null || _b === void 0 ? void 0 : _b.EntityInfo.Name) + '.' + this.SectionName);
|
|
109
|
+
}
|
|
110
|
+
if (reg && reg.SubClass) {
|
|
111
|
+
// we have our class registration
|
|
112
|
+
const component = this.container.createComponent(reg.SubClass);
|
|
113
|
+
if (this.Record && component.instance instanceof BaseFormSectionComponent) {
|
|
114
|
+
component.instance.record = this.Record;
|
|
115
|
+
component.instance.EditMode = true;
|
|
116
|
+
}
|
|
117
|
+
else if (this.Record && component.instance instanceof BaseFormComponent) {
|
|
118
|
+
component.instance.record = this.Record;
|
|
119
|
+
component.instance.EditMode = true;
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
closeWindow(status) {
|
|
124
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
125
|
+
this.Visible = false;
|
|
126
|
+
if (this.Record) {
|
|
127
|
+
if (this.HandleSave && status === 'Save') {
|
|
128
|
+
if (!(yield this.Record.Save())) {
|
|
129
|
+
SharedService.Instance.CreateSimpleNotification(`Error saving ${this.Record.EntityInfo.Name} record, rolling back changes`, 'error');
|
|
130
|
+
this.Record.Revert();
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
if (this.AutoRevertOnCancel && status === 'Cancel') {
|
|
134
|
+
this.Record.Revert();
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
this.close.emit(status);
|
|
138
|
+
});
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
EntityFormDialog.ɵfac = function EntityFormDialog_Factory(t) { return new (t || EntityFormDialog)(); };
|
|
142
|
+
EntityFormDialog.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: EntityFormDialog, selectors: [["mj-entity-form-dialog"]], viewQuery: function EntityFormDialog_Query(rf, ctx) { if (rf & 1) {
|
|
143
|
+
i0.ɵɵviewQuery(_c0, 5, ViewContainerRef);
|
|
144
|
+
} if (rf & 2) {
|
|
145
|
+
let _t;
|
|
146
|
+
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.container = _t.first);
|
|
147
|
+
} }, inputs: { Title: "Title", ShowSaveButton: "ShowSaveButton", ShowCancelButton: "ShowCancelButton", Width: "Width", Height: "Height", Mode: "Mode", SectionName: "SectionName", Record: "Record", HandleSave: "HandleSave", AutoRevertOnCancel: "AutoRevertOnCancel", Visible: "Visible" }, outputs: { close: "close" }, decls: 1, vars: 1, consts: [[3, "title", "width", "height", "close", 4, "ngIf"], [3, "title", "width", "height", "close"], ["dynamicFormContainer", ""], [4, "ngIf"], ["kendoButton", "", "themeColor", "primary", 3, "click", 4, "ngIf"], ["kendoButton", "", 3, "click", 4, "ngIf"], ["kendoButton", "", "themeColor", "primary", 3, "click"], ["kendoButton", "", 3, "click"]], template: function EntityFormDialog_Template(rf, ctx) { if (rf & 1) {
|
|
148
|
+
i0.ɵɵtemplate(0, EntityFormDialog_kendo_dialog_0_Template, 4, 4, "kendo-dialog", 0);
|
|
149
|
+
} if (rf & 2) {
|
|
150
|
+
i0.ɵɵproperty("ngIf", ctx.Visible);
|
|
151
|
+
} }, dependencies: [i1.NgIf, i2.DialogComponent, i2.DialogActionsComponent, i3.ButtonComponent] });
|
|
152
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(EntityFormDialog, [{
|
|
153
|
+
type: Component,
|
|
154
|
+
args: [{ selector: 'mj-entity-form-dialog', template: "<kendo-dialog *ngIf=\"Visible\" \r\n [title]=\"Title\" \r\n [width]=\"Width\"\r\n [height]=\"Height\"\r\n (close)=\"closeWindow('Cancel')\" >\r\n <ng-template #dynamicFormContainer></ng-template>\r\n <kendo-dialog-actions *ngIf=\"ShowSaveButton || ShowCancelButton\">\r\n <button *ngIf=\"ShowSaveButton\" kendoButton (click)=\"closeWindow('Save')\" themeColor=\"primary\">Save</button>\r\n <button *ngIf=\"ShowCancelButton\" kendoButton (click)=\"closeWindow('Cancel')\">Cancel</button>\r\n </kendo-dialog-actions>\r\n</kendo-dialog>" }]
|
|
155
|
+
}], null, { Title: [{
|
|
156
|
+
type: Input
|
|
157
|
+
}], ShowSaveButton: [{
|
|
158
|
+
type: Input
|
|
159
|
+
}], ShowCancelButton: [{
|
|
160
|
+
type: Input
|
|
161
|
+
}], Width: [{
|
|
162
|
+
type: Input
|
|
163
|
+
}], Height: [{
|
|
164
|
+
type: Input
|
|
165
|
+
}], Mode: [{
|
|
166
|
+
type: Input
|
|
167
|
+
}], SectionName: [{
|
|
168
|
+
type: Input
|
|
169
|
+
}], Record: [{
|
|
170
|
+
type: Input
|
|
171
|
+
}], HandleSave: [{
|
|
172
|
+
type: Input
|
|
173
|
+
}], AutoRevertOnCancel: [{
|
|
174
|
+
type: Input
|
|
175
|
+
}], close: [{
|
|
176
|
+
type: Output
|
|
177
|
+
}], Visible: [{
|
|
178
|
+
type: Input
|
|
179
|
+
}], container: [{
|
|
180
|
+
type: ViewChild,
|
|
181
|
+
args: ['dynamicFormContainer', { read: ViewContainerRef }]
|
|
182
|
+
}] }); })();
|
|
183
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(EntityFormDialog, { className: "EntityFormDialog", filePath: "src\\lib\\entity-form-dialog\\entity-form-dialog.component.ts", lineNumber: 15 }); })();
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import * as i0 from "@angular/core";
|
|
2
|
+
import * as i1 from "./entity-form-dialog/entity-form-dialog.component";
|
|
3
|
+
import * as i2 from "@angular/common";
|
|
4
|
+
import * as i3 from "@angular/forms";
|
|
5
|
+
import * as i4 from "@progress/kendo-angular-dialog";
|
|
6
|
+
import * as i5 from "@memberjunction/ng-compare-records";
|
|
7
|
+
import * as i6 from "@memberjunction/ng-container-directives";
|
|
8
|
+
import * as i7 from "@progress/kendo-angular-buttons";
|
|
9
|
+
import * as i8 from "@progress/kendo-angular-icons";
|
|
10
|
+
export declare class EntityFormDialogModule {
|
|
11
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<EntityFormDialogModule, never>;
|
|
12
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<EntityFormDialogModule, [typeof i1.EntityFormDialog], [typeof i2.CommonModule, typeof i3.FormsModule, typeof i4.DialogsModule, typeof i5.CompareRecordsModule, typeof i6.ContainerDirectivesModule, typeof i7.ButtonsModule, typeof i8.IconsModule, typeof i4.DialogsModule], [typeof i1.EntityFormDialog]>;
|
|
13
|
+
static ɵinj: i0.ɵɵInjectorDeclaration<EntityFormDialogModule>;
|
|
14
|
+
}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
// Kendo UI Angular imports
|
|
4
|
+
import { DialogsModule } from "@progress/kendo-angular-dialog";
|
|
5
|
+
import { ButtonsModule } from '@progress/kendo-angular-buttons';
|
|
6
|
+
import { IconsModule } from '@progress/kendo-angular-icons';
|
|
7
|
+
import { CompareRecordsModule } from '@memberjunction/ng-compare-records';
|
|
8
|
+
import { ContainerDirectivesModule } from '@memberjunction/ng-container-directives';
|
|
9
|
+
import { FormsModule } from '@angular/forms';
|
|
10
|
+
import { EntityFormDialog } from './entity-form-dialog/entity-form-dialog.component';
|
|
11
|
+
import * as i0 from "@angular/core";
|
|
12
|
+
export class EntityFormDialogModule {
|
|
13
|
+
}
|
|
14
|
+
EntityFormDialogModule.ɵfac = function EntityFormDialogModule_Factory(t) { return new (t || EntityFormDialogModule)(); };
|
|
15
|
+
EntityFormDialogModule.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: EntityFormDialogModule });
|
|
16
|
+
EntityFormDialogModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [CommonModule,
|
|
17
|
+
FormsModule,
|
|
18
|
+
DialogsModule,
|
|
19
|
+
CompareRecordsModule,
|
|
20
|
+
ContainerDirectivesModule,
|
|
21
|
+
ButtonsModule,
|
|
22
|
+
IconsModule,
|
|
23
|
+
DialogsModule] });
|
|
24
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(EntityFormDialogModule, [{
|
|
25
|
+
type: NgModule,
|
|
26
|
+
args: [{
|
|
27
|
+
declarations: [
|
|
28
|
+
EntityFormDialog
|
|
29
|
+
],
|
|
30
|
+
imports: [
|
|
31
|
+
CommonModule,
|
|
32
|
+
FormsModule,
|
|
33
|
+
DialogsModule,
|
|
34
|
+
CompareRecordsModule,
|
|
35
|
+
ContainerDirectivesModule,
|
|
36
|
+
ButtonsModule,
|
|
37
|
+
IconsModule,
|
|
38
|
+
DialogsModule,
|
|
39
|
+
],
|
|
40
|
+
exports: [
|
|
41
|
+
EntityFormDialog
|
|
42
|
+
]
|
|
43
|
+
}]
|
|
44
|
+
}], null, null); })();
|
|
45
|
+
(function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(EntityFormDialogModule, { declarations: [EntityFormDialog], imports: [CommonModule,
|
|
46
|
+
FormsModule,
|
|
47
|
+
DialogsModule,
|
|
48
|
+
CompareRecordsModule,
|
|
49
|
+
ContainerDirectivesModule,
|
|
50
|
+
ButtonsModule,
|
|
51
|
+
IconsModule,
|
|
52
|
+
DialogsModule], exports: [EntityFormDialog] }); })();
|
package/package.json
ADDED
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@memberjunction/ng-entity-form-dialog",
|
|
3
|
+
"version": "0.9.2",
|
|
4
|
+
"description": "MemberJunction: Dialog component that is able to display any entity form in a modal dialog",
|
|
5
|
+
"main": "./dist/public-api.js",
|
|
6
|
+
"typings": "./dist/public-api.d.ts",
|
|
7
|
+
"files": [
|
|
8
|
+
"/dist"
|
|
9
|
+
],
|
|
10
|
+
"scripts": {
|
|
11
|
+
"test": "echo \"Error: no test specified\" && exit 1",
|
|
12
|
+
"build": "ngc"
|
|
13
|
+
},
|
|
14
|
+
"keywords": [],
|
|
15
|
+
"author": "",
|
|
16
|
+
"license": "ISC",
|
|
17
|
+
"devDependencies": {
|
|
18
|
+
"@angular/compiler": "~17.2.2",
|
|
19
|
+
"@angular/compiler-cli": "~17.2.2"
|
|
20
|
+
},
|
|
21
|
+
"peerDependencies": {
|
|
22
|
+
"@angular/common": "~17.2.2",
|
|
23
|
+
"@angular/core": "~17.2.2",
|
|
24
|
+
"@angular/forms": "~17.2.2",
|
|
25
|
+
"@angular/router": "~17.2.2"
|
|
26
|
+
},
|
|
27
|
+
"dependencies": {
|
|
28
|
+
"@memberjunction/core-entities": "^0.9.166",
|
|
29
|
+
"@memberjunction/global": "^0.9.156",
|
|
30
|
+
"@memberjunction/core": "^0.9.177",
|
|
31
|
+
"@memberjunction/ng-container-directives": "^0.9.141",
|
|
32
|
+
"@memberjunction/ng-shared": "^0.9.34",
|
|
33
|
+
"@memberjunction/ng-base-forms": "^0.9.2",
|
|
34
|
+
"@progress/kendo-angular-buttons": "~15.1.0",
|
|
35
|
+
"@progress/kendo-angular-dialog": "~15.1.0",
|
|
36
|
+
"tslib": "^2.3.0"
|
|
37
|
+
},
|
|
38
|
+
"sideEffects": false
|
|
39
|
+
}
|