@mediusinc/mng-commons 0.2.17 → 0.2.18

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 (40) hide show
  1. package/assets/i18n/en.json +4 -2
  2. package/assets/i18n/sl.json +4 -2
  3. package/esm2020/lib/api/services/crud-api.abstract.service.mjs +17 -12
  4. package/esm2020/lib/components/form/autocomplete/autocomplete.component.mjs +9 -6
  5. package/esm2020/lib/components/form/editor/form-editor.component.mjs +56 -4
  6. package/esm2020/lib/components/form/formly/fields/formly-field-dropdown/formly-field-dropdown.component.mjs +3 -3
  7. package/esm2020/lib/components/form/formly/fields/formly-field-lookup-dialog/formly-field-lookup-dialog.component.mjs +179 -0
  8. package/esm2020/lib/components/form/formly/fields/formly-field-table-dialog-form/formly-field-table-dialog-form.component.mjs +23 -8
  9. package/esm2020/lib/components/form/formly/fields/formly-field-table-dialog-multiselect/formly-field-table-dialog-multiselect.component.mjs +12 -9
  10. package/esm2020/lib/components/form/formly/fields/index.mjs +2 -1
  11. package/esm2020/lib/components/form/models/form-editor.event.mjs +28 -1
  12. package/esm2020/lib/components/layout/main-layout.component.mjs +1 -1
  13. package/esm2020/lib/components/layout/topbar.component.mjs +1 -1
  14. package/esm2020/lib/components/tableview/table/table.component.mjs +31 -6
  15. package/esm2020/lib/components/tableview/tableview.component.mjs +1 -1
  16. package/esm2020/lib/config/formly.config.mjs +7 -2
  17. package/esm2020/lib/data-providers/table.data-provider.mjs +17 -2
  18. package/esm2020/lib/descriptors/editor.descriptor.interface.mjs +2 -0
  19. package/esm2020/lib/descriptors/editor.descriptor.mjs +70 -17
  20. package/esm2020/lib/directives/component.directive.mjs +8 -3
  21. package/esm2020/lib/mng-commons.module.mjs +5 -2
  22. package/esm2020/lib/utils/editor-formly.util.mjs +14 -3
  23. package/fesm2015/mediusinc-mng-commons.mjs +613 -230
  24. package/fesm2015/mediusinc-mng-commons.mjs.map +1 -1
  25. package/fesm2020/mediusinc-mng-commons.mjs +606 -228
  26. package/fesm2020/mediusinc-mng-commons.mjs.map +1 -1
  27. package/lib/api/services/crud-api.abstract.service.d.ts +9 -8
  28. package/lib/components/form/editor/form-editor.component.d.ts +7 -2
  29. package/lib/components/form/formly/fields/formly-field-lookup-dialog/formly-field-lookup-dialog.component.d.ts +45 -0
  30. package/lib/components/form/formly/fields/formly-field-table-dialog-form/formly-field-table-dialog-form.component.d.ts +2 -0
  31. package/lib/components/form/formly/fields/index.d.ts +1 -0
  32. package/lib/components/form/models/form-editor.event.d.ts +32 -0
  33. package/lib/components/tableview/table/table.component.d.ts +11 -3
  34. package/lib/data-providers/table.data-provider.d.ts +9 -1
  35. package/lib/descriptors/editor.descriptor.d.ts +36 -14
  36. package/lib/descriptors/editor.descriptor.interface.d.ts +9 -0
  37. package/lib/directives/component.directive.d.ts +5 -4
  38. package/lib/mng-commons.module.d.ts +55 -54
  39. package/package.json +1 -1
  40. package/scss/mng-overrides/_theme_dropdown.scss +17 -0
@@ -1,23 +1,24 @@
1
- import { HttpClient } from '@angular/common/http';
1
+ import { HttpClient, HttpParams } from '@angular/common/http';
2
2
  import { Observable } from 'rxjs';
3
3
  import { ClassType } from '../../types';
4
4
  import { MediusQueryParam, MediusQueryResult } from '../models';
5
+ import { ObjectSerializer } from '../utils';
5
6
  export declare abstract class AMngCrudApiService<T, QRT extends MediusQueryResult<T>> {
6
7
  protected type: ClassType<T>;
7
8
  protected queryResultType: ClassType<QRT>;
8
9
  protected http: HttpClient;
9
- private readonly objectSerializer;
10
+ protected readonly objectSerializer: ObjectSerializer;
10
11
  protected constructor(type: ClassType<T>, queryResultType: ClassType<QRT>, http: HttpClient);
11
- createPost(item: T): Observable<T>;
12
- getAllPost(queryParam?: MediusQueryParam): Observable<QRT>;
13
- getByIdGet(id: any): Observable<T>;
14
- updatePut(id: any, item: T): Observable<T>;
15
- removeDelete(id: any, item: T): Observable<any>;
12
+ createPost(item: T, params?: HttpParams): Observable<T>;
13
+ getAllPost(queryParamBody?: MediusQueryParam, params?: HttpParams): Observable<QRT>;
14
+ getByIdGet(id: any, params?: HttpParams): Observable<T>;
15
+ updatePut(id: any, item: T, params?: HttpParams): Observable<T>;
16
+ removeDelete(id: any, item?: T, params?: HttpParams): Observable<any>;
16
17
  protected abstract getBasePath(): string;
17
18
  protected abstract getServiceBasePath(): string;
18
19
  protected getGetAllPostPath(): string;
19
20
  protected getCreatePostPath(): string;
20
21
  protected getUpdatePutPath(id: any, item: T): string;
21
22
  protected getGetByIdGetPath(id: any): string;
22
- protected getRemoveDeletePath(id: any, item: T): string;
23
+ protected getRemoveDeletePath(id: any, item?: T): string;
23
24
  }
@@ -1,5 +1,5 @@
1
1
  import { ElementRef, EventEmitter, OnDestroy, OnInit, QueryList } from '@angular/core';
2
- import { FormGroup } from '@angular/forms';
2
+ import { AbstractControl, FormGroup } from '@angular/forms';
3
3
  import { FormlyFieldConfig, FormlyFormOptions } from '@ngx-formly/core';
4
4
  import { TranslateService } from '@ngx-translate/core';
5
5
  import { Message } from 'primeng/api';
@@ -32,8 +32,13 @@ export declare class MngFormEditorComponent<T> implements OnInit, OnDestroy {
32
32
  submit(): void;
33
33
  onSubmit(event: Event): void;
34
34
  getFormValue(): T;
35
+ getFormField(key: string): AbstractControl | null;
36
+ setFormFieldValue(key: string, value: any): void;
37
+ patchFormFieldValue(key: string, value: any): void;
38
+ resetFormFieldValue(key: string, value?: any): void;
39
+ private findFormField;
35
40
  private isAnyFieldInvalid;
36
- private updateFormModel;
41
+ private resetFormModel;
37
42
  private updateFormState;
38
43
  static ɵfac: i0.ɵɵFactoryDeclaration<MngFormEditorComponent<any>, never>;
39
44
  static ɵcmp: i0.ɵɵComponentDeclaration<MngFormEditorComponent<any>, "mng-form-editor", never, { "descriptor": "descriptor"; "submitLoading": "submitLoading"; "item": "item"; "isSubmitButtonVisible": "isSubmitButtonVisible"; "isFormDisabled": "isFormDisabled"; }, { "formSubmitEventEmitter": "formSubmit"; }, ["templates"], never>;
@@ -0,0 +1,45 @@
1
+ import { AfterViewInit, Injector, OnDestroy, OnInit } from '@angular/core';
2
+ import { FormControl } from '@angular/forms';
3
+ import { FieldType } from '@ngx-formly/core';
4
+ import { Message } from 'primeng/api';
5
+ import { Observable, Subject } from 'rxjs';
6
+ import { MediusQueryResult } from '../../../../../api/models';
7
+ import { FieldLookupDescriptor } from '../../../../../descriptors';
8
+ import { FieldLookupConfig } from '../../../../../descriptors/editor.descriptor.interface';
9
+ import { MngTableComponent } from '../../../../tableview';
10
+ import * as i0 from "@angular/core";
11
+ export declare class MngFormlyFieldLookupDialogComponent<T, ET> extends FieldType implements OnInit, AfterViewInit, OnDestroy {
12
+ private injector;
13
+ mngTable?: MngTableComponent<any, any>;
14
+ descriptor: FieldLookupDescriptor<T, ET>;
15
+ config: FieldLookupConfig;
16
+ fieldLabelFormControl: FormControl;
17
+ itemsSubject: Subject<T>;
18
+ itemsAsync: Observable<T>;
19
+ addItemsSubject: Subject<MediusQueryResult<T>>;
20
+ addItemsAsync: Observable<MediusQueryResult<T>>;
21
+ dialogUseDataProvider: boolean;
22
+ private dialogDataProviderService;
23
+ private dialogIsLoadingSubject;
24
+ isDialogVisible: boolean;
25
+ dialogAreItemsLoaded: boolean;
26
+ dialogSelectedItem: any;
27
+ dialogMessages: Message[];
28
+ dialogIsLoading$: Observable<boolean>;
29
+ private lookupDataProviderSubscription?;
30
+ private subscriptions;
31
+ constructor(injector: Injector);
32
+ ngOnInit(): void;
33
+ ngAfterViewInit(): void;
34
+ ngOnDestroy(): void;
35
+ openSelectDialog(): void;
36
+ onSelectionChange(item: any): void;
37
+ onCaptionCmpInst(instance: any): void;
38
+ onColumnActionCmpInst(instance: any): void;
39
+ clear(): void;
40
+ hideDialog(): void;
41
+ addItem(): void;
42
+ private setFieldLabelValue;
43
+ static ɵfac: i0.ɵɵFactoryDeclaration<MngFormlyFieldLookupDialogComponent<any, any>, never>;
44
+ static ɵcmp: i0.ɵɵComponentDeclaration<MngFormlyFieldLookupDialogComponent<any, any>, "mng-formly-field-lookup-dialog", never, {}, {}, never, never>;
45
+ }
@@ -10,6 +10,8 @@ export declare class MngFormlyFieldTableDialogFormComponent<T, ET> extends Field
10
10
  toolbarActions: Array<ActionDescriptor<T>>;
11
11
  rowActions: Array<ActionDescriptor<T>>;
12
12
  private subscriptions;
13
+ private isDisabledSubject;
14
+ private isEnabled$;
13
15
  ngOnInit(): void;
14
16
  ngOnDestroy(): void;
15
17
  static ɵfac: i0.ɵɵFactoryDeclaration<MngFormlyFieldTableDialogFormComponent<any, any>, never>;
@@ -1,6 +1,7 @@
1
1
  export * from './formly-field-autocomplete/formly-field-autocomplete.component';
2
2
  export * from './formly-field-input/formly-field-input.component';
3
3
  export * from './formly-field-dropdown/formly-field-dropdown.component';
4
+ export * from './formly-field-lookup-dialog/formly-field-lookup-dialog.component';
4
5
  export * from './formly-field-table-dialog-form/formly-field-table-dialog-form.component';
5
6
  export * from './formly-field-table-dialog-multiselect/formly-field-table-dialog-multiselect.component';
6
7
  export * from './formly-field-tabs/formly-field-tabs.component';
@@ -1,5 +1,37 @@
1
+ import { Type } from '@angular/core';
1
2
  export declare class MngFormEditorSubmitEvent<T> {
2
3
  readonly formItem: T;
3
4
  success: boolean;
4
5
  constructor(formItem: T);
5
6
  }
7
+ export declare enum MngFormFieldEventTypeEnum {
8
+ Component = 0,
9
+ ValueChange = 1,
10
+ DataProvider = 2,
11
+ Dialog = 3,
12
+ Other = 4
13
+ }
14
+ export declare class MngFormFieldEventComponentSubtype {
15
+ static readonly ON_INIT = "Component.OnInit";
16
+ static readonly ON_VIEW_INIT = "Component.OnViewInit";
17
+ static readonly ON_CONTENT_INIT = "Component.OnContentInit";
18
+ static readonly ON_DESTROY = "Component.OnDestroy";
19
+ }
20
+ export declare class MngFormFieldEventDialogSubtype {
21
+ static readonly VISIBILITY = "Dialog.Visibility";
22
+ static readonly TABLE_CAPTION_COMPONENT_INSTANCE = "Dialog.MngTable.CaptionComponentInstance";
23
+ static readonly TABLE_COLUMN_ACTIONS_COMPONENT_INSTANCE = "Dialog.MngTable.ColumnActionsComponentInstance";
24
+ }
25
+ export interface MngFormFieldEventData<T, ET> {
26
+ eventSubtype?: string;
27
+ value?: T;
28
+ formValue?: ET;
29
+ [key: string]: any;
30
+ }
31
+ export declare class MngFormFieldEvent<T, ET> {
32
+ readonly type: MngFormFieldEventTypeEnum;
33
+ readonly componentType: Type<any>;
34
+ readonly componentInstance: any;
35
+ readonly data: MngFormFieldEventData<T, ET>;
36
+ constructor(type: MngFormFieldEventTypeEnum, componentType: Type<any>, componentInstance: any, data?: MngFormFieldEventData<T, ET>);
37
+ }
@@ -1,4 +1,4 @@
1
- import { AfterContentInit, EventEmitter, Injector, OnDestroy, OnInit, QueryList, TemplateRef } from '@angular/core';
1
+ import { AfterContentInit, EventEmitter, Injector, OnDestroy, OnInit, QueryList, TemplateRef, Type } from '@angular/core';
2
2
  import { ActivatedRoute, Router } from '@angular/router';
3
3
  import { TranslateService } from '@ngx-translate/core';
4
4
  import { LazyLoadEvent, SortMeta } from 'primeng/api';
@@ -8,7 +8,7 @@ import { Observable } from 'rxjs';
8
8
  import { MediusQueryResult } from '../../../api/models';
9
9
  import { ITableDataProvider } from '../../../data-providers';
10
10
  import { ColumnDescriptor, TableDescriptor } from '../../../descriptors';
11
- import { MngTemplateDirective } from '../../../directives';
11
+ import { MngComponentDirective, MngTemplateDirective } from '../../../directives';
12
12
  import { MngTableCellClickEvent, MngTableLoadEvent } from '../models';
13
13
  import { TableviewComponentService } from '../services';
14
14
  import * as i0 from "@angular/core";
@@ -26,11 +26,17 @@ export declare class MngTableComponent<T, S> implements OnInit, AfterContentInit
26
26
  loading?: Observable<boolean> | boolean;
27
27
  dataProvider?: ITableDataProvider<T, any>;
28
28
  useQueryParams: boolean;
29
+ selectionMode: string;
29
30
  selectionEnabled: boolean;
31
+ captionComponent?: Type<any>;
32
+ columnActionComponent?: Type<any>;
30
33
  loadEventEmitter: EventEmitter<MngTableLoadEvent>;
31
34
  cellClickEventEmitter: EventEmitter<MngTableCellClickEvent<T>>;
32
35
  selectionChangeEventEmitter: EventEmitter<T[]>;
36
+ captionCmpInstEventEmitter: EventEmitter<any>;
37
+ columnActionCmpInstEventEmitter: EventEmitter<any>;
33
38
  templates: QueryList<MngTemplateDirective>;
39
+ components: QueryList<MngComponentDirective<any>>;
34
40
  primeTable: Table;
35
41
  captionTemplate?: TemplateRef<any>;
36
42
  columnActionTemplate?: TemplateRef<any>;
@@ -72,10 +78,12 @@ export declare class MngTableComponent<T, S> implements OnInit, AfterContentInit
72
78
  onTableFilter(event: any): void;
73
79
  onCellClick(col: ColumnDescriptor<any, T>, item: T, idx: number): void;
74
80
  onSelectionChange(event: Array<T>): void;
81
+ onCaptionCmpInst<C>(instance: C): void;
82
+ onColumnActionCmpInst<C>(instance: C): void;
75
83
  private loadTableWithDataProvider;
76
84
  private loadTableFromRouteUpdate;
77
85
  private updatePrimeSortAndFilter;
78
86
  private getDefaultSortMeta;
79
87
  static ɵfac: i0.ɵɵFactoryDeclaration<MngTableComponent<any, any>, [null, null, null, null, { optional: true; }]>;
80
- static ɵcmp: i0.ɵɵComponentDeclaration<MngTableComponent<any, any>, "mng-table", never, { "descriptor": "descriptor"; "items": "items"; "queryResult": "queryResult"; "loading": "loading"; "dataProvider": "dataProvider"; "useQueryParams": "useQueryParams"; "selectionEnabled": "selectionEnabled"; }, { "loadEventEmitter": "tableLoad"; "cellClickEventEmitter": "cellClick"; "selectionChangeEventEmitter": "selectionChange"; }, ["templates"], never>;
88
+ static ɵcmp: i0.ɵɵComponentDeclaration<MngTableComponent<any, any>, "mng-table", never, { "descriptor": "descriptor"; "items": "items"; "queryResult": "queryResult"; "loading": "loading"; "dataProvider": "dataProvider"; "useQueryParams": "useQueryParams"; "selectionMode": "selectionMode"; "selectionEnabled": "selectionEnabled"; "captionComponent": "captionComponent"; "columnActionComponent": "columnActionComponent"; }, { "loadEventEmitter": "tableLoad"; "cellClickEventEmitter": "cellClick"; "selectionChangeEventEmitter": "selectionChange"; "captionCmpInstEventEmitter": "captionComponentInstance"; "columnActionCmpInstEventEmitter": "columnActionComponentInstance"; }, ["templates"], never>;
81
89
  }
@@ -1,6 +1,14 @@
1
+ import { Type } from '@angular/core';
1
2
  import { Observable } from 'rxjs';
2
3
  import { MediusQueryParam, MediusQueryResult } from '../api/models';
3
- import { IDataProvider } from './base.data-provider';
4
+ import { ClassType } from '../types';
5
+ import { DataProvider, IDataProvider } from './base.data-provider';
4
6
  export interface ITableDataProvider<T, S> extends IDataProvider<T, S> {
5
7
  getAll: (queryParam: MediusQueryParam, service?: S) => Observable<MediusQueryResult<T>>;
6
8
  }
9
+ export declare class TableDataProvider<T, S> extends DataProvider<T, S> implements ITableDataProvider<T, S> {
10
+ protected _getAll: (queryParam: MediusQueryParam, service?: S) => Observable<MediusQueryResult<T>>;
11
+ constructor(modelType: ClassType<T>, serviceType?: Type<S>);
12
+ get getAll(): (queryParam: MediusQueryParam, service?: S | undefined) => Observable<MediusQueryResult<T>>;
13
+ withGetAll(getAll: (queryParam: MediusQueryParam, service?: S) => Observable<MediusQueryResult<T>>): this;
14
+ }
@@ -1,12 +1,14 @@
1
1
  import { Type } from '@angular/core';
2
2
  import { AbstractControl } from '@angular/forms';
3
3
  import { FormlyFieldConfig } from '@ngx-formly/core';
4
- import { Observable } from 'rxjs';
4
+ import { Observable, Subject } from 'rxjs';
5
5
  import { MediusQueryParam, MediusQueryResult } from '../api/models';
6
+ import { MngFormFieldEvent, MngFormFieldEventData, MngFormFieldEventTypeEnum } from '../components/form/models';
6
7
  import { ILookupDataProvider, ITableDataProvider } from '../data-providers';
7
8
  import { EnumValue } from '../models';
8
9
  import { ClassType, EnumConstantType, EnumType } from '../types';
9
10
  import { FieldValidator, ILookupDescriptor, ModelDescriptor, TableDescriptor, TableviewDescriptor } from './';
11
+ import { FieldConfig, FieldLookupConfig } from './editor.descriptor.interface';
10
12
  export declare class EditorDescriptor<T> {
11
13
  static readonly defaultGroupName = "_default";
12
14
  private readonly _model;
@@ -41,8 +43,11 @@ export declare class EditorDescriptor<T> {
41
43
  }
42
44
  export declare abstract class AGenericFieldDescriptor<ET> {
43
45
  protected readonly _editor: EditorDescriptor<ET>;
46
+ protected _config: FieldConfig;
44
47
  protected constructor(editor: EditorDescriptor<ET>);
45
48
  get editor(): EditorDescriptor<ET>;
49
+ get config(): FieldConfig;
50
+ withConfig(config: FieldConfig): this;
46
51
  }
47
52
  export declare abstract class AFieldDescriptor<T, ET> extends AGenericFieldDescriptor<ET> {
48
53
  protected readonly _property: string;
@@ -56,7 +61,10 @@ export declare abstract class AFieldDescriptor<T, ET> extends AGenericFieldDescr
56
61
  protected _getter?: (item: ET) => T;
57
62
  protected _setter?: (item: ET, value: T) => void;
58
63
  protected _validators: Array<FieldValidator>;
59
- protected _disabledFunction?: (model: any) => boolean;
64
+ protected _requiredExpression?: string | ((model: any, formState?: any, field?: FormlyFieldConfig) => boolean) | Observable<boolean>;
65
+ protected _disabledExpression?: string | ((model: any, formState?: any, field?: FormlyFieldConfig) => boolean) | Observable<boolean>;
66
+ protected _hiddenExpression?: string | ((model: any, formState?: any, field?: FormlyFieldConfig) => boolean) | Observable<boolean>;
67
+ protected readonly _eventsSubject: Subject<MngFormFieldEvent<T, ET>>;
60
68
  protected constructor(editor: EditorDescriptor<ET>, property: string);
61
69
  get group(): AFieldGroupDescriptor<ET> | undefined;
62
70
  get label(): string | undefined;
@@ -68,18 +76,23 @@ export declare abstract class AFieldDescriptor<T, ET> extends AGenericFieldDescr
68
76
  get getter(): ((item: ET) => T) | undefined;
69
77
  get setter(): ((item: ET, value: T) => void) | undefined;
70
78
  get validators(): FieldValidator[];
71
- get disabledFunction(): ((model: any) => boolean) | undefined;
79
+ get requiredExpression(): string | Observable<boolean> | ((model: any, formState?: any, field?: FormlyFieldConfig | undefined) => boolean) | undefined;
80
+ get disabledExpression(): string | Observable<boolean> | ((model: any, formState?: any, field?: FormlyFieldConfig | undefined) => boolean) | undefined;
81
+ get hiddenExpression(): string | Observable<boolean> | ((model: any, formState?: any, field?: FormlyFieldConfig | undefined) => boolean) | undefined;
72
82
  get property(): string;
73
83
  abstract copy(): AFieldDescriptor<T, ET>;
74
84
  withLabel(label: string): this;
75
85
  withPlaceholder(placeholder: string): this;
76
- withRequired(required?: boolean): this;
77
- withDisabled(disabled?: boolean, disabledFunction?: (model: any) => boolean): this;
86
+ withRequired(required?: boolean, requiredExpression?: string | ((model: any, formState?: any, field?: FormlyFieldConfig) => boolean) | Observable<boolean>): this;
87
+ withDisabled(disabled?: boolean, disabledExpression?: string | ((model: any, formState?: any, field?: FormlyFieldConfig) => boolean) | Observable<boolean>): this;
88
+ withHidden(hiddenExpression: string | ((model: any, formState?: any, field?: FormlyFieldConfig) => boolean) | Observable<boolean>): this;
78
89
  withDefaultValue(defaultValue: T): this;
79
90
  withClassName(className: string): this;
80
91
  withGetter(getter: (item: ET) => T): this;
81
92
  withSetter(setter: (item: ET, value: T) => void): this;
82
93
  withValidator(name: string, expression: (control: AbstractControl) => boolean, message?: (err: any, field: FormlyFieldConfig) => string): this;
94
+ nextEvent(type: MngFormFieldEventTypeEnum, cmpType: Type<any>, cmpInstance: any, data?: MngFormFieldEventData<T, ET>): void;
95
+ get events$(): Observable<MngFormFieldEvent<T, ET>>;
83
96
  protected copyFieldsTo(obj: AFieldDescriptor<T, ET>): void;
84
97
  }
85
98
  export declare class FieldInputDescriptor<ET> extends AFieldDescriptor<string | number | boolean | Date, ET> {
@@ -122,6 +135,7 @@ export declare class FieldInputDescriptor<ET> extends AFieldDescriptor<string |
122
135
  get mask(): string | undefined;
123
136
  get slotChar(): string | undefined;
124
137
  get customComponentName(): string | undefined;
138
+ asHidden(): this;
125
139
  asText(minLength?: number, maxLength?: number, pattern?: string | RegExp, isEmail?: boolean): this;
126
140
  asTextarea(rows?: number, minLength?: number, maxLength?: number, pattern?: string | RegExp): this;
127
141
  asNumber(step?: number, min?: number, max?: number, minFractionDigits?: number, maxFractionDigits?: number, numberUseGrouping?: boolean): this;
@@ -135,14 +149,15 @@ export declare class FieldInputDescriptor<ET> extends AFieldDescriptor<string |
135
149
  }
136
150
  export declare namespace FieldInputDescriptor {
137
151
  enum TypeEnum {
138
- Text = 0,
139
- Textarea = 1,
140
- Number = 2,
141
- Switch = 3,
142
- Radio = 4,
143
- Datepicker = 5,
144
- Mask = 6,
145
- Custom = 7
152
+ Hidden = 0,
153
+ Text = 1,
154
+ Textarea = 2,
155
+ Number = 3,
156
+ Switch = 4,
157
+ Radio = 5,
158
+ Datepicker = 6,
159
+ Mask = 7,
160
+ Custom = 8
146
161
  }
147
162
  }
148
163
  export declare class FieldLookupDescriptor<T, ET> extends AFieldDescriptor<T, ET> implements ILookupDescriptor<T> {
@@ -152,25 +167,32 @@ export declare class FieldLookupDescriptor<T, ET> extends AFieldDescriptor<T, ET
152
167
  protected _itemsValueProperty?: string;
153
168
  protected _dataKeyProperty?: string;
154
169
  protected _dataProvider?: ILookupDataProvider<T, any>;
170
+ protected _lookupTableDescriptor?: TableDescriptor<T>;
171
+ protected _lookupTableDataProvider?: ITableDataProvider<T, any>;
155
172
  constructor(editor: EditorDescriptor<ET>, property: string, modelType: ClassType<T> | null);
156
173
  get lookupType(): FieldLookupDescriptor.LookupTypeEnum;
157
174
  get itemsLabelProperty(): string | undefined;
158
175
  get itemsValueProperty(): string | undefined;
159
176
  get dataKeyProperty(): string | undefined;
160
177
  get dataProvider(): ILookupDataProvider<T, any> | undefined;
178
+ get lookupTableDataProvider(): ITableDataProvider<T, any> | undefined;
161
179
  get modelType(): ClassType<T> | null;
180
+ get lookupTableDescriptor(): TableDescriptor<T> | undefined;
162
181
  withItemsLabelProperty(itemsLabelProperty: string): this;
163
182
  withItemsValueProperty(itemsValueProperty: string): this;
164
183
  withDataKeyProperty(property: string): this;
165
184
  withLookup<S>(lookup: (queryParam?: MediusQueryParam, service?: S, search?: string) => Observable<Array<T>>, serviceType?: Type<S>): this;
166
185
  withLookupDataProvider(dataProvider: ILookupDataProvider<T, any>): this;
186
+ withConfig(config: FieldLookupConfig): this;
167
187
  asAutocomplete(): this;
188
+ asDialog(lookupTableDescriptor: TableDescriptor<T>, tableDataProvider?: ITableDataProvider<T, any>): this;
168
189
  copy(): FieldLookupDescriptor<T, ET>;
169
190
  }
170
191
  export declare namespace FieldLookupDescriptor {
171
192
  enum LookupTypeEnum {
172
193
  Dropdown = 0,
173
- Autocomplete = 1
194
+ Autocomplete = 1,
195
+ Dialog = 2
174
196
  }
175
197
  }
176
198
  export declare class FieldLookupEnumDescriptor<ET> extends FieldLookupDescriptor<EnumValue<string | number>, ET> {
@@ -0,0 +1,9 @@
1
+ import { Type } from '@angular/core';
2
+ export interface FieldConfig {
3
+ }
4
+ export interface FieldLookupConfig extends FieldConfig {
5
+ table?: {
6
+ captionComponent?: Type<any>;
7
+ columnActionComponent?: Type<any>;
8
+ };
9
+ }
@@ -1,11 +1,12 @@
1
1
  import { ComponentRef, OnInit, Type, ViewContainerRef } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
- export declare class MngComponentDirective<T> implements OnInit {
3
+ export declare class MngComponentDirective<C> implements OnInit {
4
4
  viewContainerRef: ViewContainerRef;
5
- component: Type<T>;
6
- componentRef: ComponentRef<T>;
5
+ component: Type<C>;
6
+ private componentInstanceEventEmitter;
7
+ componentRef: ComponentRef<C>;
7
8
  constructor(viewContainerRef: ViewContainerRef);
8
9
  ngOnInit(): void;
9
10
  static ɵfac: i0.ɵɵFactoryDeclaration<MngComponentDirective<any>, never>;
10
- static ɵdir: i0.ɵɵDirectiveDeclaration<MngComponentDirective<any>, "[mngComponent]", never, { "component": "mngComponent"; }, {}, never>;
11
+ static ɵdir: i0.ɵɵDirectiveDeclaration<MngComponentDirective<any>, "[mngComponent]", never, { "component": "mngComponent"; }, { "componentInstanceEventEmitter": "instanceCreated"; }, never>;
11
12
  }
@@ -21,63 +21,64 @@ import * as i16 from "./components/form/formly/wrappers/formly-table-wrapper/for
21
21
  import * as i17 from "./components/form/formly/fields/formly-field-input/formly-field-input.component";
22
22
  import * as i18 from "./components/form/formly/fields/formly-field-dropdown/formly-field-dropdown.component";
23
23
  import * as i19 from "./components/form/formly/fields/formly-field-autocomplete/formly-field-autocomplete.component";
24
- import * as i20 from "./components/form/formly/fields/formly-field-table-dialog-multiselect/formly-field-table-dialog-multiselect.component";
25
- import * as i21 from "./components/form/formly/fields/formly-field-table-dialog-form/formly-field-table-dialog-form.component";
26
- import * as i22 from "./components/form/formly/fields/formly-field-tabs/formly-field-tabs.component";
27
- import * as i23 from "./components/form/formly/fields/formly-field-fieldset/formly-field-fieldset.component";
28
- import * as i24 from "./components/tableview/table/table.component";
29
- import * as i25 from "./components/tableview/tableview.component";
30
- import * as i26 from "./components/tableview/table/column-value/column-value.component";
31
- import * as i27 from "./components/tableview/table/column-filter/column-filter.component";
32
- import * as i28 from "./components/tableview/route/tableview-route.component";
33
- import * as i29 from "./components/form/editor/form-editor.component";
34
- import * as i30 from "./components/action/action.component";
35
- import * as i31 from "./components/action/dialog/action-dialog.component";
36
- import * as i32 from "./components/action/route/action-route.component";
37
- import * as i33 from "@angular/common";
38
- import * as i34 from "@angular/router";
39
- import * as i35 from "@angular/common/http";
40
- import * as i36 from "@angular/forms";
41
- import * as i37 from "@ngx-translate/core";
42
- import * as i38 from "@ngx-formly/core";
43
- import * as i39 from "primeng/autocomplete";
44
- import * as i40 from "primeng/breadcrumb";
45
- import * as i41 from "primeng/button";
46
- import * as i42 from "primeng/calendar";
47
- import * as i43 from "primeng/card";
48
- import * as i44 from "primeng/checkbox";
49
- import * as i45 from "primeng/chip";
50
- import * as i46 from "primeng/confirmdialog";
51
- import * as i47 from "primeng/confirmpopup";
52
- import * as i48 from "primeng/dialog";
53
- import * as i49 from "primeng/dynamicdialog";
54
- import * as i50 from "primeng/dropdown";
55
- import * as i51 from "primeng/fileupload";
56
- import * as i52 from "primeng/inputnumber";
57
- import * as i53 from "primeng/inputmask";
58
- import * as i54 from "primeng/inputswitch";
59
- import * as i55 from "primeng/inputtext";
60
- import * as i56 from "primeng/inputtextarea";
61
- import * as i57 from "primeng/paginator";
62
- import * as i58 from "primeng/radiobutton";
63
- import * as i59 from "primeng/ripple";
64
- import * as i60 from "primeng/selectbutton";
65
- import * as i61 from "primeng/table";
66
- import * as i62 from "primeng/tag";
67
- import * as i63 from "primeng/toast";
68
- import * as i64 from "primeng/togglebutton";
69
- import * as i65 from "primeng/toolbar";
70
- import * as i66 from "primeng/tooltip";
71
- import * as i67 from "primeng/messages";
72
- import * as i68 from "primeng/progressspinner";
73
- import * as i69 from "primeng/tabview";
74
- import * as i70 from "primeng/fieldset";
75
- import * as i71 from "primeng/multiselect";
76
- import * as i72 from "primeng/skeleton";
24
+ import * as i20 from "./components/form/formly/fields/formly-field-lookup-dialog/formly-field-lookup-dialog.component";
25
+ import * as i21 from "./components/form/formly/fields/formly-field-table-dialog-multiselect/formly-field-table-dialog-multiselect.component";
26
+ import * as i22 from "./components/form/formly/fields/formly-field-table-dialog-form/formly-field-table-dialog-form.component";
27
+ import * as i23 from "./components/form/formly/fields/formly-field-tabs/formly-field-tabs.component";
28
+ import * as i24 from "./components/form/formly/fields/formly-field-fieldset/formly-field-fieldset.component";
29
+ import * as i25 from "./components/tableview/table/table.component";
30
+ import * as i26 from "./components/tableview/tableview.component";
31
+ import * as i27 from "./components/tableview/table/column-value/column-value.component";
32
+ import * as i28 from "./components/tableview/table/column-filter/column-filter.component";
33
+ import * as i29 from "./components/tableview/route/tableview-route.component";
34
+ import * as i30 from "./components/form/editor/form-editor.component";
35
+ import * as i31 from "./components/action/action.component";
36
+ import * as i32 from "./components/action/dialog/action-dialog.component";
37
+ import * as i33 from "./components/action/route/action-route.component";
38
+ import * as i34 from "@angular/common";
39
+ import * as i35 from "@angular/router";
40
+ import * as i36 from "@angular/common/http";
41
+ import * as i37 from "@angular/forms";
42
+ import * as i38 from "@ngx-translate/core";
43
+ import * as i39 from "@ngx-formly/core";
44
+ import * as i40 from "primeng/autocomplete";
45
+ import * as i41 from "primeng/breadcrumb";
46
+ import * as i42 from "primeng/button";
47
+ import * as i43 from "primeng/calendar";
48
+ import * as i44 from "primeng/card";
49
+ import * as i45 from "primeng/checkbox";
50
+ import * as i46 from "primeng/chip";
51
+ import * as i47 from "primeng/confirmdialog";
52
+ import * as i48 from "primeng/confirmpopup";
53
+ import * as i49 from "primeng/dialog";
54
+ import * as i50 from "primeng/dynamicdialog";
55
+ import * as i51 from "primeng/dropdown";
56
+ import * as i52 from "primeng/fileupload";
57
+ import * as i53 from "primeng/inputnumber";
58
+ import * as i54 from "primeng/inputmask";
59
+ import * as i55 from "primeng/inputswitch";
60
+ import * as i56 from "primeng/inputtext";
61
+ import * as i57 from "primeng/inputtextarea";
62
+ import * as i58 from "primeng/paginator";
63
+ import * as i59 from "primeng/radiobutton";
64
+ import * as i60 from "primeng/ripple";
65
+ import * as i61 from "primeng/selectbutton";
66
+ import * as i62 from "primeng/table";
67
+ import * as i63 from "primeng/tag";
68
+ import * as i64 from "primeng/toast";
69
+ import * as i65 from "primeng/togglebutton";
70
+ import * as i66 from "primeng/toolbar";
71
+ import * as i67 from "primeng/tooltip";
72
+ import * as i68 from "primeng/messages";
73
+ import * as i69 from "primeng/progressspinner";
74
+ import * as i70 from "primeng/tabview";
75
+ import * as i71 from "primeng/fieldset";
76
+ import * as i72 from "primeng/multiselect";
77
+ import * as i73 from "primeng/skeleton";
77
78
  export declare const primeNgModules: (typeof InputTextModule)[];
78
79
  export declare class MngCommonsModule {
79
80
  static forRoot(config: MngModuleConfig): ModuleWithProviders<MngCommonsModule>;
80
81
  static ɵfac: i0.ɵɵFactoryDeclaration<MngCommonsModule, never>;
81
- static ɵmod: i0.ɵɵNgModuleDeclaration<MngCommonsModule, [typeof i1.MngComponentDirective, typeof i2.MngTemplateDirective, typeof i3.MngPropertyPathPipe, typeof i4.MngEnumPipe, typeof i5.MngBooleanPipe, typeof i6.MngI18nPropertyPipe, typeof i7.MngBreadcrumbComponent, typeof i8.MngFooterComponent, typeof i9.MngMainLayoutComponent, typeof i10.MngMenuComponent, typeof i11.MngMenuItemComponent, typeof i12.MngTopbarComponent, typeof i13.MngAutocompleteComponent, typeof i14.MngDropdownComponent, typeof i15.MngFormlyFieldWrapperComponent, typeof i16.MngFormlyTableWrapperComponent, typeof i17.MngFormlyFieldInputComponent, typeof i18.MngFormlyFieldDropdownComponent, typeof i19.MngFormlyFieldAutocompleteComponent, typeof i20.MngFormlyFieldTableDialogMultiselectComponent, typeof i21.MngFormlyFieldTableDialogFormComponent, typeof i22.MngFormlyFieldTabsComponent, typeof i23.MngFormlyFieldFieldsetComponent, typeof i24.MngTableComponent, typeof i25.MngTableviewComponent, typeof i26.MngTableColumnValueComponent, typeof i27.MngTableColumnFilterComponent, typeof i28.MngTableviewRouteComponent, typeof i29.MngFormEditorComponent, typeof i30.MngActionComponent, typeof i31.MngActionDialogComponent, typeof i32.MngActionRouteComponent], [typeof i33.CommonModule, typeof i34.RouterModule, typeof i35.HttpClientModule, typeof i36.ReactiveFormsModule, typeof i37.TranslateModule, typeof i38.FormlyModule, typeof i39.AutoCompleteModule, typeof i40.BreadcrumbModule, typeof i41.ButtonModule, typeof i42.CalendarModule, typeof i43.CardModule, typeof i44.CheckboxModule, typeof i45.ChipModule, typeof i46.ConfirmDialogModule, typeof i47.ConfirmPopupModule, typeof i48.DialogModule, typeof i49.DynamicDialogModule, typeof i50.DropdownModule, typeof i51.FileUploadModule, typeof i52.InputNumberModule, typeof i53.InputMaskModule, typeof i54.InputSwitchModule, typeof i55.InputTextModule, typeof i56.InputTextareaModule, typeof i57.PaginatorModule, typeof i58.RadioButtonModule, typeof i59.RippleModule, typeof i60.SelectButtonModule, typeof i61.TableModule, typeof i62.TagModule, typeof i63.ToastModule, typeof i64.ToggleButtonModule, typeof i65.ToolbarModule, typeof i66.TooltipModule, typeof i67.MessagesModule, typeof i68.ProgressSpinnerModule, typeof i69.TabViewModule, typeof i70.FieldsetModule, typeof i71.MultiSelectModule, typeof i72.SkeletonModule], [typeof i39.AutoCompleteModule, typeof i40.BreadcrumbModule, typeof i41.ButtonModule, typeof i42.CalendarModule, typeof i43.CardModule, typeof i44.CheckboxModule, typeof i45.ChipModule, typeof i46.ConfirmDialogModule, typeof i47.ConfirmPopupModule, typeof i48.DialogModule, typeof i49.DynamicDialogModule, typeof i50.DropdownModule, typeof i51.FileUploadModule, typeof i52.InputNumberModule, typeof i53.InputMaskModule, typeof i54.InputSwitchModule, typeof i55.InputTextModule, typeof i56.InputTextareaModule, typeof i57.PaginatorModule, typeof i58.RadioButtonModule, typeof i59.RippleModule, typeof i60.SelectButtonModule, typeof i61.TableModule, typeof i62.TagModule, typeof i63.ToastModule, typeof i64.ToggleButtonModule, typeof i65.ToolbarModule, typeof i66.TooltipModule, typeof i67.MessagesModule, typeof i68.ProgressSpinnerModule, typeof i69.TabViewModule, typeof i70.FieldsetModule, typeof i71.MultiSelectModule, typeof i72.SkeletonModule, typeof i1.MngComponentDirective, typeof i2.MngTemplateDirective, typeof i3.MngPropertyPathPipe, typeof i4.MngEnumPipe, typeof i5.MngBooleanPipe, typeof i6.MngI18nPropertyPipe, typeof i7.MngBreadcrumbComponent, typeof i8.MngFooterComponent, typeof i9.MngMainLayoutComponent, typeof i10.MngMenuComponent, typeof i11.MngMenuItemComponent, typeof i12.MngTopbarComponent, typeof i13.MngAutocompleteComponent, typeof i14.MngDropdownComponent, typeof i15.MngFormlyFieldWrapperComponent, typeof i16.MngFormlyTableWrapperComponent, typeof i17.MngFormlyFieldInputComponent, typeof i18.MngFormlyFieldDropdownComponent, typeof i19.MngFormlyFieldAutocompleteComponent, typeof i20.MngFormlyFieldTableDialogMultiselectComponent, typeof i21.MngFormlyFieldTableDialogFormComponent, typeof i22.MngFormlyFieldTabsComponent, typeof i23.MngFormlyFieldFieldsetComponent, typeof i24.MngTableComponent, typeof i25.MngTableviewComponent, typeof i26.MngTableColumnValueComponent, typeof i27.MngTableColumnFilterComponent, typeof i28.MngTableviewRouteComponent, typeof i29.MngFormEditorComponent, typeof i30.MngActionComponent, typeof i31.MngActionDialogComponent, typeof i32.MngActionRouteComponent]>;
82
+ static ɵmod: i0.ɵɵNgModuleDeclaration<MngCommonsModule, [typeof i1.MngComponentDirective, typeof i2.MngTemplateDirective, typeof i3.MngPropertyPathPipe, typeof i4.MngEnumPipe, typeof i5.MngBooleanPipe, typeof i6.MngI18nPropertyPipe, typeof i7.MngBreadcrumbComponent, typeof i8.MngFooterComponent, typeof i9.MngMainLayoutComponent, typeof i10.MngMenuComponent, typeof i11.MngMenuItemComponent, typeof i12.MngTopbarComponent, typeof i13.MngAutocompleteComponent, typeof i14.MngDropdownComponent, typeof i15.MngFormlyFieldWrapperComponent, typeof i16.MngFormlyTableWrapperComponent, typeof i17.MngFormlyFieldInputComponent, typeof i18.MngFormlyFieldDropdownComponent, typeof i19.MngFormlyFieldAutocompleteComponent, typeof i20.MngFormlyFieldLookupDialogComponent, typeof i21.MngFormlyFieldTableDialogMultiselectComponent, typeof i22.MngFormlyFieldTableDialogFormComponent, typeof i23.MngFormlyFieldTabsComponent, typeof i24.MngFormlyFieldFieldsetComponent, typeof i25.MngTableComponent, typeof i26.MngTableviewComponent, typeof i27.MngTableColumnValueComponent, typeof i28.MngTableColumnFilterComponent, typeof i29.MngTableviewRouteComponent, typeof i30.MngFormEditorComponent, typeof i31.MngActionComponent, typeof i32.MngActionDialogComponent, typeof i33.MngActionRouteComponent], [typeof i34.CommonModule, typeof i35.RouterModule, typeof i36.HttpClientModule, typeof i37.ReactiveFormsModule, typeof i38.TranslateModule, typeof i39.FormlyModule, typeof i40.AutoCompleteModule, typeof i41.BreadcrumbModule, typeof i42.ButtonModule, typeof i43.CalendarModule, typeof i44.CardModule, typeof i45.CheckboxModule, typeof i46.ChipModule, typeof i47.ConfirmDialogModule, typeof i48.ConfirmPopupModule, typeof i49.DialogModule, typeof i50.DynamicDialogModule, typeof i51.DropdownModule, typeof i52.FileUploadModule, typeof i53.InputNumberModule, typeof i54.InputMaskModule, typeof i55.InputSwitchModule, typeof i56.InputTextModule, typeof i57.InputTextareaModule, typeof i58.PaginatorModule, typeof i59.RadioButtonModule, typeof i60.RippleModule, typeof i61.SelectButtonModule, typeof i62.TableModule, typeof i63.TagModule, typeof i64.ToastModule, typeof i65.ToggleButtonModule, typeof i66.ToolbarModule, typeof i67.TooltipModule, typeof i68.MessagesModule, typeof i69.ProgressSpinnerModule, typeof i70.TabViewModule, typeof i71.FieldsetModule, typeof i72.MultiSelectModule, typeof i73.SkeletonModule], [typeof i40.AutoCompleteModule, typeof i41.BreadcrumbModule, typeof i42.ButtonModule, typeof i43.CalendarModule, typeof i44.CardModule, typeof i45.CheckboxModule, typeof i46.ChipModule, typeof i47.ConfirmDialogModule, typeof i48.ConfirmPopupModule, typeof i49.DialogModule, typeof i50.DynamicDialogModule, typeof i51.DropdownModule, typeof i52.FileUploadModule, typeof i53.InputNumberModule, typeof i54.InputMaskModule, typeof i55.InputSwitchModule, typeof i56.InputTextModule, typeof i57.InputTextareaModule, typeof i58.PaginatorModule, typeof i59.RadioButtonModule, typeof i60.RippleModule, typeof i61.SelectButtonModule, typeof i62.TableModule, typeof i63.TagModule, typeof i64.ToastModule, typeof i65.ToggleButtonModule, typeof i66.ToolbarModule, typeof i67.TooltipModule, typeof i68.MessagesModule, typeof i69.ProgressSpinnerModule, typeof i70.TabViewModule, typeof i71.FieldsetModule, typeof i72.MultiSelectModule, typeof i73.SkeletonModule, typeof i1.MngComponentDirective, typeof i2.MngTemplateDirective, typeof i3.MngPropertyPathPipe, typeof i4.MngEnumPipe, typeof i5.MngBooleanPipe, typeof i6.MngI18nPropertyPipe, typeof i7.MngBreadcrumbComponent, typeof i8.MngFooterComponent, typeof i9.MngMainLayoutComponent, typeof i10.MngMenuComponent, typeof i11.MngMenuItemComponent, typeof i12.MngTopbarComponent, typeof i13.MngAutocompleteComponent, typeof i14.MngDropdownComponent, typeof i15.MngFormlyFieldWrapperComponent, typeof i16.MngFormlyTableWrapperComponent, typeof i17.MngFormlyFieldInputComponent, typeof i18.MngFormlyFieldDropdownComponent, typeof i19.MngFormlyFieldAutocompleteComponent, typeof i20.MngFormlyFieldLookupDialogComponent, typeof i21.MngFormlyFieldTableDialogMultiselectComponent, typeof i22.MngFormlyFieldTableDialogFormComponent, typeof i23.MngFormlyFieldTabsComponent, typeof i24.MngFormlyFieldFieldsetComponent, typeof i25.MngTableComponent, typeof i26.MngTableviewComponent, typeof i27.MngTableColumnValueComponent, typeof i28.MngTableColumnFilterComponent, typeof i29.MngTableviewRouteComponent, typeof i30.MngFormEditorComponent, typeof i31.MngActionComponent, typeof i32.MngActionDialogComponent, typeof i33.MngActionRouteComponent]>;
82
83
  static ɵinj: i0.ɵɵInjectorDeclaration<MngCommonsModule>;
83
84
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mediusinc/mng-commons",
3
- "version": "0.2.17",
3
+ "version": "0.2.18",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^13.1.0",
6
6
  "@angular/core": "^13.1.0",
@@ -3,3 +3,20 @@
3
3
  max-width: 350px;
4
4
  }
5
5
  }
6
+
7
+ .mng-dropdown-dialog {
8
+ position: relative;
9
+
10
+ .mng-dropdown-clear-icon {
11
+ position: absolute;
12
+ top: 50%;
13
+ margin-top: -0.5rem;
14
+ color: $textSecondaryColor;
15
+ right: calc(65px + 0.5rem);
16
+ cursor: pointer;
17
+ }
18
+
19
+ .p-button.mng-dropdown-dialog-search-button {
20
+ width: 65px;
21
+ }
22
+ }