@solidev/data 0.0.1-dev.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.
Files changed (155) hide show
  1. package/README.md +7 -0
  2. package/esm2020/lib/auth/auth-interceptor.service.mjs +73 -0
  3. package/esm2020/lib/auth/auth.service.mjs +114 -0
  4. package/esm2020/lib/auth/jwt.mjs +21 -0
  5. package/esm2020/lib/data/data-backend.mjs +106 -0
  6. package/esm2020/lib/data/data-collection.mjs +109 -0
  7. package/esm2020/lib/data/data-collection.mock.mjs +39 -0
  8. package/esm2020/lib/data/data-model.mjs +287 -0
  9. package/esm2020/lib/data/data-parameters.mjs +34 -0
  10. package/esm2020/lib/data/data-query.mjs +143 -0
  11. package/esm2020/lib/data/data-query.mock.mjs +46 -0
  12. package/esm2020/lib/data/fields/base.mjs +142 -0
  13. package/esm2020/lib/data/fields/boolean.mjs +38 -0
  14. package/esm2020/lib/data/fields/datetime.mjs +109 -0
  15. package/esm2020/lib/data/fields/index.mjs +7 -0
  16. package/esm2020/lib/data/fields/numbers.mjs +28 -0
  17. package/esm2020/lib/data/fields/primaryfield.mjs +9 -0
  18. package/esm2020/lib/data/fields/relations.mjs +53 -0
  19. package/esm2020/lib/data/fields/stringfields.mjs +71 -0
  20. package/esm2020/lib/dispedit/choice.pipe.mjs +38 -0
  21. package/esm2020/lib/dispedit/dispedit/dispedit.component.mjs +457 -0
  22. package/esm2020/lib/dispedit/dispedit/dispedit.constants.mjs +2 -0
  23. package/esm2020/lib/dispedit/dispedit.module.mjs +60 -0
  24. package/esm2020/lib/dispedit/fkselect/fkselect.component.mjs +140 -0
  25. package/esm2020/lib/dispedit/m2mselect/m2mselect.component.mjs +316 -0
  26. package/esm2020/lib/dispedit/sdelete/sdelete.component.mjs +43 -0
  27. package/esm2020/lib/messages/message-zone/message-zone.component.mjs +57 -0
  28. package/esm2020/lib/messages/message.service.mjs +151 -0
  29. package/esm2020/lib/modellist/model-list-fields/model-list-field-header/model-list-field-header.component.mjs +34 -0
  30. package/esm2020/lib/modellist/model-list-fields/model-list-fields-selector/model-list-fields-selector.component.mjs +63 -0
  31. package/esm2020/lib/modellist/model-list-fields/model-list-fields.mjs +225 -0
  32. package/esm2020/lib/modellist/model-list-filters/filters/filtertypes.mjs +3 -0
  33. package/esm2020/lib/modellist/model-list-filters/filters/model-list-autocomplete-filter/model-list-autocomplete-filter.component.mjs +104 -0
  34. package/esm2020/lib/modellist/model-list-filters/filters/model-list-autocomplete-filter/model-list-autocomplete-filter.mjs +31 -0
  35. package/esm2020/lib/modellist/model-list-filters/filters/model-list-autocomplete-multi-filter/model-list-autocomplete-multi-filter.component.mjs +25 -0
  36. package/esm2020/lib/modellist/model-list-filters/filters/model-list-autocomplete-multi-filter/model-list-autocomplete-multi-filter.mjs +40 -0
  37. package/esm2020/lib/modellist/model-list-filters/filters/model-list-datetime-filter/model-list-datetime-filter.component.mjs +21 -0
  38. package/esm2020/lib/modellist/model-list-filters/filters/model-list-datetime-filter/model-list-datetime-filter.mjs +14 -0
  39. package/esm2020/lib/modellist/model-list-filters/filters/model-list-datetimerange-filter/model-list-datetime-range-filter.component.mjs +21 -0
  40. package/esm2020/lib/modellist/model-list-filters/filters/model-list-datetimerange-filter/model-list-datetimerange-filter.mjs +14 -0
  41. package/esm2020/lib/modellist/model-list-filters/filters/model-list-flags-filter/model-list-flags-filter.component.mjs +21 -0
  42. package/esm2020/lib/modellist/model-list-filters/filters/model-list-flags-filter/model-list-flags-filter.mjs +14 -0
  43. package/esm2020/lib/modellist/model-list-filters/filters/model-list-geodistance-filter/model-list-geodistance-filter.component.mjs +21 -0
  44. package/esm2020/lib/modellist/model-list-filters/filters/model-list-geodistance-filter/model-list-geodistance-filter.mjs +14 -0
  45. package/esm2020/lib/modellist/model-list-filters/filters/model-list-number-filter/model-list-number-filter.component.mjs +44 -0
  46. package/esm2020/lib/modellist/model-list-filters/filters/model-list-number-filter/model-list-number-filter.mjs +49 -0
  47. package/esm2020/lib/modellist/model-list-filters/filters/model-list-select-filter/model-list-select-filter.component.mjs +45 -0
  48. package/esm2020/lib/modellist/model-list-filters/filters/model-list-select-filter/model-list-select-filter.mjs +26 -0
  49. package/esm2020/lib/modellist/model-list-filters/filters/model-list-select-multi-filter/model-list-select-multi-filter.component.mjs +21 -0
  50. package/esm2020/lib/modellist/model-list-filters/filters/model-list-select-multi-filter/model-list-select-multi-filter.mjs +14 -0
  51. package/esm2020/lib/modellist/model-list-filters/filters/model-list-text-filter/model-list-text-filter.component.mjs +40 -0
  52. package/esm2020/lib/modellist/model-list-filters/filters/model-list-text-filter/model-list-text-filter.mjs +14 -0
  53. package/esm2020/lib/modellist/model-list-filters/filters/model-list-tree-filter/model-list-tree-filter.component.mjs +21 -0
  54. package/esm2020/lib/modellist/model-list-filters/filters/model-list-tree-filter/model-list-tree-filter.mjs +14 -0
  55. package/esm2020/lib/modellist/model-list-filters/model-list-filter.mjs +41 -0
  56. package/esm2020/lib/modellist/model-list-filters/model-list-filters/model-list-filters.component.mjs +48 -0
  57. package/esm2020/lib/modellist/model-list-filters/model-list-filters-select/model-list-filters-select.component.mjs +30 -0
  58. package/esm2020/lib/modellist/model-list-filters/model-list-filters.mjs +80 -0
  59. package/esm2020/lib/modellist/model-list-paginator/model-list-paginator/model-list-paginator.component.mjs +70 -0
  60. package/esm2020/lib/modellist/model-list-paginator/model-list-paginator.mjs +47 -0
  61. package/esm2020/lib/modellist/model-list-sorter/model-list-sorter/model-list-sorter.component.mjs +49 -0
  62. package/esm2020/lib/modellist/model-list-sorter/model-list-sorter.mjs +116 -0
  63. package/esm2020/lib/modellist/model-list.service.mjs +115 -0
  64. package/esm2020/lib/routing/breadcrumb/breadcrumb.component.mjs +142 -0
  65. package/esm2020/lib/routing/routing.mjs +57 -0
  66. package/esm2020/lib/uploader/index.mjs +6 -0
  67. package/esm2020/lib/uploader/interfaces.mjs +8 -0
  68. package/esm2020/lib/uploader/ng-file-drop.directive.mjs +81 -0
  69. package/esm2020/lib/uploader/ng-file-select.directive.mjs +51 -0
  70. package/esm2020/lib/uploader/ngx-uploader.class.mjs +308 -0
  71. package/esm2020/lib/uploader/ngx-uploader.module.mjs +17 -0
  72. package/esm2020/lib/utils/slugify.mjs +16 -0
  73. package/esm2020/lib/utils/tab-memory.service.mjs +71 -0
  74. package/esm2020/public-api.mjs +41 -0
  75. package/esm2020/solidev-data.mjs +5 -0
  76. package/fesm2015/solidev-data.mjs +4791 -0
  77. package/fesm2015/solidev-data.mjs.map +1 -0
  78. package/fesm2020/solidev-data.mjs +4757 -0
  79. package/fesm2020/solidev-data.mjs.map +1 -0
  80. package/index.d.ts +5 -0
  81. package/lib/auth/auth-interceptor.service.d.ts +16 -0
  82. package/lib/auth/auth.service.d.ts +38 -0
  83. package/lib/auth/jwt.d.ts +22 -0
  84. package/lib/data/data-backend.d.ts +47 -0
  85. package/lib/data/data-collection.d.ts +87 -0
  86. package/lib/data/data-collection.mock.d.ts +19 -0
  87. package/lib/data/data-model.d.ts +91 -0
  88. package/lib/data/data-parameters.d.ts +26 -0
  89. package/lib/data/data-query.d.ts +100 -0
  90. package/lib/data/data-query.mock.d.ts +25 -0
  91. package/lib/data/fields/base.d.ts +116 -0
  92. package/lib/data/fields/boolean.d.ts +9 -0
  93. package/lib/data/fields/datetime.d.ts +39 -0
  94. package/lib/data/fields/index.d.ts +6 -0
  95. package/lib/data/fields/numbers.d.ts +31 -0
  96. package/lib/data/fields/primaryfield.d.ts +8 -0
  97. package/lib/data/fields/relations.d.ts +45 -0
  98. package/lib/data/fields/stringfields.d.ts +50 -0
  99. package/lib/dispedit/choice.pipe.d.ts +8 -0
  100. package/lib/dispedit/dispedit/dispedit.component.d.ts +177 -0
  101. package/lib/dispedit/dispedit/dispedit.constants.d.ts +6 -0
  102. package/lib/dispedit/dispedit.module.d.ts +20 -0
  103. package/lib/dispedit/fkselect/fkselect.component.d.ts +43 -0
  104. package/lib/dispedit/m2mselect/m2mselect.component.d.ts +120 -0
  105. package/lib/dispedit/sdelete/sdelete.component.d.ts +26 -0
  106. package/lib/messages/message-zone/message-zone.component.d.ts +14 -0
  107. package/lib/messages/message.service.d.ts +59 -0
  108. package/lib/modellist/model-list-fields/model-list-field-header/model-list-field-header.component.d.ts +15 -0
  109. package/lib/modellist/model-list-fields/model-list-fields-selector/model-list-fields-selector.component.d.ts +19 -0
  110. package/lib/modellist/model-list-fields/model-list-fields.d.ts +67 -0
  111. package/lib/modellist/model-list-filters/filters/filtertypes.d.ts +1 -0
  112. package/lib/modellist/model-list-filters/filters/model-list-autocomplete-filter/model-list-autocomplete-filter.component.d.ts +30 -0
  113. package/lib/modellist/model-list-filters/filters/model-list-autocomplete-filter/model-list-autocomplete-filter.d.ts +24 -0
  114. package/lib/modellist/model-list-filters/filters/model-list-autocomplete-multi-filter/model-list-autocomplete-multi-filter.component.d.ts +10 -0
  115. package/lib/modellist/model-list-filters/filters/model-list-autocomplete-multi-filter/model-list-autocomplete-multi-filter.d.ts +15 -0
  116. package/lib/modellist/model-list-filters/filters/model-list-datetime-filter/model-list-datetime-filter.component.d.ts +11 -0
  117. package/lib/modellist/model-list-filters/filters/model-list-datetime-filter/model-list-datetime-filter.d.ts +4 -0
  118. package/lib/modellist/model-list-filters/filters/model-list-datetimerange-filter/model-list-datetime-range-filter.component.d.ts +11 -0
  119. package/lib/modellist/model-list-filters/filters/model-list-datetimerange-filter/model-list-datetimerange-filter.d.ts +4 -0
  120. package/lib/modellist/model-list-filters/filters/model-list-flags-filter/model-list-flags-filter.component.d.ts +11 -0
  121. package/lib/modellist/model-list-filters/filters/model-list-flags-filter/model-list-flags-filter.d.ts +4 -0
  122. package/lib/modellist/model-list-filters/filters/model-list-geodistance-filter/model-list-geodistance-filter.component.d.ts +11 -0
  123. package/lib/modellist/model-list-filters/filters/model-list-geodistance-filter/model-list-geodistance-filter.d.ts +4 -0
  124. package/lib/modellist/model-list-filters/filters/model-list-number-filter/model-list-number-filter.component.d.ts +17 -0
  125. package/lib/modellist/model-list-filters/filters/model-list-number-filter/model-list-number-filter.d.ts +19 -0
  126. package/lib/modellist/model-list-filters/filters/model-list-select-filter/model-list-select-filter.component.d.ts +17 -0
  127. package/lib/modellist/model-list-filters/filters/model-list-select-filter/model-list-select-filter.d.ts +16 -0
  128. package/lib/modellist/model-list-filters/filters/model-list-select-multi-filter/model-list-select-multi-filter.component.d.ts +11 -0
  129. package/lib/modellist/model-list-filters/filters/model-list-select-multi-filter/model-list-select-multi-filter.d.ts +4 -0
  130. package/lib/modellist/model-list-filters/filters/model-list-text-filter/model-list-text-filter.component.d.ts +16 -0
  131. package/lib/modellist/model-list-filters/filters/model-list-text-filter/model-list-text-filter.d.ts +4 -0
  132. package/lib/modellist/model-list-filters/filters/model-list-tree-filter/model-list-tree-filter.component.d.ts +11 -0
  133. package/lib/modellist/model-list-filters/filters/model-list-tree-filter/model-list-tree-filter.d.ts +4 -0
  134. package/lib/modellist/model-list-filters/model-list-filter.d.ts +31 -0
  135. package/lib/modellist/model-list-filters/model-list-filters/model-list-filters.component.d.ts +9 -0
  136. package/lib/modellist/model-list-filters/model-list-filters-select/model-list-filters-select.component.d.ts +13 -0
  137. package/lib/modellist/model-list-filters/model-list-filters.d.ts +15 -0
  138. package/lib/modellist/model-list-paginator/model-list-paginator/model-list-paginator.component.d.ts +23 -0
  139. package/lib/modellist/model-list-paginator/model-list-paginator.d.ts +16 -0
  140. package/lib/modellist/model-list-sorter/model-list-sorter/model-list-sorter.component.d.ts +22 -0
  141. package/lib/modellist/model-list-sorter/model-list-sorter.d.ts +61 -0
  142. package/lib/modellist/model-list.service.d.ts +79 -0
  143. package/lib/routing/breadcrumb/breadcrumb.component.d.ts +42 -0
  144. package/lib/routing/routing.d.ts +64 -0
  145. package/lib/uploader/index.d.ts +5 -0
  146. package/lib/uploader/interfaces.d.ts +67 -0
  147. package/lib/uploader/ng-file-drop.directive.d.ts +22 -0
  148. package/lib/uploader/ng-file-select.directive.d.ts +19 -0
  149. package/lib/uploader/ngx-uploader.class.d.ts +35 -0
  150. package/lib/uploader/ngx-uploader.module.d.ts +8 -0
  151. package/lib/utils/slugify.d.ts +1 -0
  152. package/lib/utils/tab-memory.service.d.ts +29 -0
  153. package/package.json +32 -0
  154. package/public-api.d.ts +37 -0
  155. package/src/lib/data/README.md +35 -0
@@ -0,0 +1,31 @@
1
+ import { BaseFieldManager, FieldDecoratorFn, IFieldMetadata } from './base';
2
+ import { DISPEDIT_DISPLAY_TYPES, DISPEDIT_EDITOR_TYPES } from '../../dispedit/dispedit/dispedit.constants';
3
+ import { ValidatorFn } from '@angular/forms';
4
+ export interface IIntegerFieldMetadata extends IFieldMetadata<number> {
5
+ min?: number;
6
+ max?: number;
7
+ }
8
+ export interface IFloatFieldMetadata extends IFieldMetadata<number> {
9
+ min?: number;
10
+ max?: number;
11
+ }
12
+ export interface IDecimalFieldMetadata extends IFieldMetadata<number> {
13
+ min?: number;
14
+ max?: number;
15
+ factor?: number;
16
+ }
17
+ export declare class IntegerFieldManager extends BaseFieldManager<number> implements IIntegerFieldMetadata {
18
+ min?: number;
19
+ max?: number;
20
+ get validators(): ValidatorFn[];
21
+ }
22
+ export declare class FloatFieldManager extends IntegerFieldManager implements IFloatFieldMetadata {
23
+ }
24
+ export declare class DecimalFieldManager extends IntegerFieldManager implements IDecimalFieldMetadata {
25
+ factor?: number;
26
+ displayType: DISPEDIT_DISPLAY_TYPES;
27
+ editorType: DISPEDIT_EDITOR_TYPES;
28
+ }
29
+ export declare const integerField: (updates?: IIntegerFieldMetadata) => FieldDecoratorFn;
30
+ export declare const floatField: (updates?: IFloatFieldMetadata) => FieldDecoratorFn;
31
+ export declare const decimalField: (updates?: IDecimalFieldMetadata) => FieldDecoratorFn;
@@ -0,0 +1,8 @@
1
+ import { BaseFieldManager, FieldDecoratorFn, IFieldMetadata } from './base';
2
+ export interface IPrimaryFieldMetadata extends IFieldMetadata<number> {
3
+ step?: number;
4
+ }
5
+ export declare class PrimaryFieldManager extends BaseFieldManager<number> implements IPrimaryFieldMetadata {
6
+ step: number;
7
+ }
8
+ export declare const primaryField: (updates?: IPrimaryFieldMetadata) => FieldDecoratorFn;
@@ -0,0 +1,45 @@
1
+ import { BaseFieldManager, FieldDecoratorFn, IFieldMetadata } from './base';
2
+ import { Collection } from '../data-collection';
3
+ import { DISPEDIT_DISPLAY_TYPES, DISPEDIT_EDITOR_TYPES } from '../../dispedit/dispedit/dispedit.constants';
4
+ export interface IForeignKeyFieldMetadata extends IFieldMetadata<number> {
5
+ related?: string;
6
+ }
7
+ export interface IReverseForeignKeyFieldMetadata extends IFieldMetadata<number> {
8
+ related: string;
9
+ }
10
+ export interface IDetailsFieldMetadata<T> extends IFieldMetadata<T> {
11
+ field?: string;
12
+ many?: boolean;
13
+ model?: T;
14
+ deserialize?: (data: any) => T;
15
+ }
16
+ export interface IManyToManyFieldMetadata extends IFieldMetadata<number[]> {
17
+ related: string;
18
+ }
19
+ export declare class ForeignKeyFieldManager extends BaseFieldManager<number> implements IForeignKeyFieldMetadata {
20
+ related?: string;
21
+ editorType: DISPEDIT_EDITOR_TYPES;
22
+ displayType: DISPEDIT_DISPLAY_TYPES;
23
+ }
24
+ export declare class ReverseForeignKeyFieldManager extends BaseFieldManager<number> implements IForeignKeyFieldMetadata {
25
+ related?: string;
26
+ }
27
+ export declare class DetailsFieldManager<T> extends BaseFieldManager<T> implements IDetailsFieldMetadata<T> {
28
+ field?: string;
29
+ many?: boolean;
30
+ model: any;
31
+ deserialize?: (data: any) => any;
32
+ fromJson(data: any, coll?: Collection<any>): any;
33
+ }
34
+ export interface IManyToManyKeyFieldMetadata extends IFieldMetadata<number[]> {
35
+ related?: string;
36
+ }
37
+ export declare class ManyToManyFieldManager extends BaseFieldManager<number[]> implements IManyToManyKeyFieldMetadata {
38
+ related?: string;
39
+ editorType: DISPEDIT_EDITOR_TYPES;
40
+ displayType: DISPEDIT_DISPLAY_TYPES;
41
+ }
42
+ export declare const foreignKeyField: (updates: IForeignKeyFieldMetadata) => FieldDecoratorFn;
43
+ export declare const reverseForeignKeyField: (updates: IReverseForeignKeyFieldMetadata) => FieldDecoratorFn;
44
+ export declare const detailsField: (meta?: IDetailsFieldMetadata<any>) => FieldDecoratorFn;
45
+ export declare const manyToManyField: (meta: IManyToManyFieldMetadata) => FieldDecoratorFn;
@@ -0,0 +1,50 @@
1
+ import { BaseFieldManager, FieldDecoratorFn, IFieldMetadata } from './base';
2
+ import { ValidatorFn } from '@angular/forms';
3
+ import { DISPEDIT_EDITOR_TYPES } from '../../dispedit/dispedit/dispedit.constants';
4
+ export interface ICharFieldDescChoice {
5
+ value: string;
6
+ desc: string;
7
+ }
8
+ export declare type ICharFieldChoice = ICharFieldDescChoice | string;
9
+ export interface ICharFieldMetadata extends IFieldMetadata<string> {
10
+ minLength?: number;
11
+ maxLength?: number;
12
+ pattern?: RegExp | string;
13
+ choices?: ICharFieldChoice[];
14
+ }
15
+ export interface IEmailFieldMetadata extends ICharFieldMetadata {
16
+ validate?: boolean;
17
+ }
18
+ export interface IPasswordFieldMetadata extends ICharFieldMetadata {
19
+ validate?: boolean;
20
+ }
21
+ export interface ITextFieldMetadata extends ICharFieldMetadata {
22
+ syntax?: string;
23
+ }
24
+ export declare class CharFieldManager extends BaseFieldManager<string> {
25
+ minLength?: number;
26
+ maxLength?: number;
27
+ choices?: ICharFieldChoice[];
28
+ pattern?: RegExp | string;
29
+ constructor(params: any);
30
+ get validators(): ValidatorFn[];
31
+ fromJson(data: any): string;
32
+ }
33
+ export declare class EmailFieldManager extends CharFieldManager implements ICharFieldMetadata {
34
+ validate: boolean;
35
+ editorType: DISPEDIT_EDITOR_TYPES;
36
+ constructor(params: any);
37
+ get validators(): ValidatorFn[];
38
+ }
39
+ export declare class TextFieldManager extends CharFieldManager {
40
+ syntax?: string;
41
+ editorType: DISPEDIT_EDITOR_TYPES;
42
+ }
43
+ export declare class PasswordFieldManager extends CharFieldManager {
44
+ syntax?: string;
45
+ editorType: DISPEDIT_EDITOR_TYPES;
46
+ }
47
+ export declare const charField: (updates?: ICharFieldMetadata) => FieldDecoratorFn;
48
+ export declare const emailField: (updates?: IEmailFieldMetadata) => FieldDecoratorFn;
49
+ export declare const textField: (updates?: ITextFieldMetadata) => FieldDecoratorFn;
50
+ export declare const passwordField: (updates?: IPasswordFieldMetadata) => FieldDecoratorFn;
@@ -0,0 +1,8 @@
1
+ import { PipeTransform } from '@angular/core';
2
+ import { DataModel } from '../data/data-model';
3
+ import * as i0 from "@angular/core";
4
+ export declare class ChoicePipe<T extends DataModel> implements PipeTransform {
5
+ transform(value: T, field: string, mode?: 'code' | 'desc' | 'both'): string;
6
+ static ɵfac: i0.ɵɵFactoryDeclaration<ChoicePipe<any>, never>;
7
+ static ɵpipe: i0.ɵɵPipeDeclaration<ChoicePipe<any>, "choice", false>;
8
+ }
@@ -0,0 +1,177 @@
1
+ import { EventEmitter, OnChanges, OnInit, SimpleChanges } from '@angular/core';
2
+ import { DataModel } from '../../data/data-model';
3
+ import { BaseFieldManager } from '../../data/fields/base';
4
+ import { UntypedFormGroup } from '@angular/forms';
5
+ import { DISPEDIT_DISPLAY_TYPES, DISPEDIT_EDITOR_TYPES, IDispEditChoice } from './dispedit.constants';
6
+ import { FilterData, Queryset } from '../../data/data-query';
7
+ import { Collection } from '../../data/data-collection';
8
+ import { TplFun } from '../fkselect/fkselect.component';
9
+ import { DataDisplayConfig } from '../../data/data-parameters';
10
+ import { DataMessageService } from '../../messages/message.service';
11
+ import * as i0 from "@angular/core";
12
+ export declare class DispeditComponent<FT, T extends DataModel, R extends DataModel> implements OnInit, OnChanges {
13
+ dconf: DataDisplayConfig;
14
+ private _msgs;
15
+ /** Model (mandatory) */
16
+ model: T;
17
+ /** Field (mandatory) */
18
+ field: string;
19
+ /** External form */
20
+ form?: UntypedFormGroup;
21
+ /**
22
+ * Starting edit mode
23
+ * If mode is inline, edit is always true.
24
+ */
25
+ edit: boolean;
26
+ /**
27
+ * Save updated values ?
28
+ * If not given, default value depends on mode :
29
+ * - save if mode is dd
30
+ * - don't save if mode is inline
31
+ */
32
+ save?: boolean;
33
+ /**
34
+ * Display mode
35
+ * - dd provides display / edit within a dt/dd block
36
+ * - inline (to be renamed to form) provides a (label? and) form control
37
+ * */
38
+ mode: 'dd' | 'inline' | 'form';
39
+ /**
40
+ * Custom choices
41
+ * If provided, a select form control will be used instead of base editor
42
+ */
43
+ choices: IDispEditChoice[];
44
+ /** Custom input classes */
45
+ inputClasses: string[] | string;
46
+ /** Override editor, if provided */
47
+ editor?: DISPEDIT_EDITOR_TYPES;
48
+ /** Override viewer, if provided */
49
+ viewer?: DISPEDIT_DISPLAY_TYPES;
50
+ /** Override default value */
51
+ default?: any;
52
+ /**
53
+ * Override placeholder, if provided.
54
+ * By default, manager.description is used
55
+ */
56
+ placeholder: string;
57
+ /**
58
+ * Override help, if provided.
59
+ * By default, manager.help is used.
60
+ */
61
+ help: string;
62
+ /**
63
+ * Hide label (for inline forms)
64
+ */
65
+ hideLabel: boolean;
66
+ /** Fk queryset */
67
+ queryset?: Queryset<R>;
68
+ /** Fk collection */
69
+ collection?: Collection<R>;
70
+ /** Fk display */
71
+ display?: string | TplFun<R>;
72
+ /** Fk filter */
73
+ filter: FilterData;
74
+ /** Output emitter, output model on every change */
75
+ changed: EventEmitter<T>;
76
+ /** Field manager */
77
+ manager?: BaseFieldManager<FT>;
78
+ /** Text value used for display */
79
+ txtValue?: string;
80
+ /** Text values used for many displays */
81
+ txtValues?: string[];
82
+ /** Computed editor type */
83
+ realEditor: DISPEDIT_EDITOR_TYPES;
84
+ /** Computed display type */
85
+ realDisplay: DISPEDIT_DISPLAY_TYPES;
86
+ /** Current disp raw value */
87
+ dispValue?: any;
88
+ /** Computed chocies type */
89
+ realChoices?: IDispEditChoice[];
90
+ /** Computed help */
91
+ realHelp: string;
92
+ /** Computed placeholder */
93
+ realPlaceholder: string;
94
+ /** Computed required */
95
+ required: boolean;
96
+ /** Computed default value */
97
+ realDefault: any;
98
+ m2mValues?: any[];
99
+ fg?: UntypedFormGroup;
100
+ private _tpl;
101
+ /**
102
+ * Constructor, can be given DATA_DISPLAY_CONFIG injection token to override display classes.
103
+ * By default, bs5 config is used
104
+ * @param dconf DataDisplayConfig item
105
+ * @param _msgs messages service
106
+ */
107
+ constructor(dconf: DataDisplayConfig, _msgs: DataMessageService);
108
+ /**
109
+ * Init sequence.
110
+ * - Sets mode
111
+ * - Sets display function
112
+ * - Loads manager
113
+ * - Run misc checks on special values
114
+ * - Get help, placeholder strings
115
+ */
116
+ ngOnInit(): void;
117
+ /**
118
+ * Upgrade all values on any change.
119
+ * @param changes
120
+ */
121
+ ngOnChanges(changes: SimpleChanges): void;
122
+ /**
123
+ * Set up display mode.
124
+ * - get choices if available
125
+ * - get display type
126
+ * - process current value for display
127
+ * - set display classes
128
+ */
129
+ enableDisplayMode(): void;
130
+ /**
131
+ * Set up edit mode :
132
+ * - get choices if available
133
+ * - get editor type
134
+ * - prepare form controle
135
+ * - set form control value
136
+ * - update form control classes
137
+ */
138
+ enableEditMode(): void;
139
+ /**
140
+ * Update model field from form control value (if value is valid).
141
+ * If save boolean is true, save values to API.
142
+ */
143
+ update(): Promise<void>;
144
+ unsetEdit(): void;
145
+ toggleEdit(): void;
146
+ /**
147
+ * Reset field to default value
148
+ * TODO: check if edit mode needs to be changed / saved
149
+ */
150
+ setDefault(): Promise<void>;
151
+ selectedRefItem($event: T | null): Promise<void>;
152
+ onM2MValuesChanges(v: any[]): void;
153
+ private _checks;
154
+ /**
155
+ * Save value to database, only if model have an id.
156
+ * If mode is dd, toggle edit / display mode.
157
+ * @private
158
+ */
159
+ private _save;
160
+ private _display;
161
+ /**
162
+ * Set display mode based on current display config
163
+ * @private
164
+ */
165
+ private _setMode;
166
+ private _setDisplayFn;
167
+ private _getChoices;
168
+ private _getRealDisplay;
169
+ private _getRealEditor;
170
+ private _setFormControl;
171
+ private _setFormControlValue;
172
+ private _setEditorClasses;
173
+ private _getDisplayValue;
174
+ private _setDisplayClasses;
175
+ static ɵfac: i0.ɵɵFactoryDeclaration<DispeditComponent<any, any, any>, [{ optional: true; }, null]>;
176
+ static ɵcmp: i0.ɵɵComponentDeclaration<DispeditComponent<any, any, any>, "data-dispedit", never, { "model": "model"; "field": "field"; "form": "form"; "edit": "edit"; "mode": "mode"; "choices": "choices"; "inputClasses": "inputClasses"; "editor": "editor"; "viewer": "viewer"; "default": "default"; "placeholder": "placeholder"; "help": "help"; "hideLabel": "hideLabel"; "queryset": "queryset"; "collection": "collection"; "display": "display"; "filter": "filter"; }, { "changed": "changed"; }, never, ["*"], false>;
177
+ }
@@ -0,0 +1,6 @@
1
+ export interface IDispEditChoice {
2
+ desc: string;
3
+ value: any;
4
+ }
5
+ export declare type DISPEDIT_EDITOR_TYPES = 'input.text' | 'input.email' | 'input.number' | 'input.decimal' | 'input.datetime' | 'input.date' | 'input.checkbox' | 'input.password' | 'textarea' | 'select' | 'quill' | 'fkselect' | 'm2mselect';
6
+ export declare type DISPEDIT_DISPLAY_TYPES = 'text' | 'choice' | 'boolean' | 'decimal' | 'fkdetails' | 'm2mdetails' | 'datetime' | 'date' | 'quill';
@@ -0,0 +1,20 @@
1
+ import * as i0 from "@angular/core";
2
+ import * as i1 from "./dispedit/dispedit.component";
3
+ import * as i2 from "./fkselect/fkselect.component";
4
+ import * as i3 from "./m2mselect/m2mselect.component";
5
+ import * as i4 from "./choice.pipe";
6
+ import * as i5 from "@angular/common";
7
+ import * as i6 from "@ng-bootstrap/ng-bootstrap";
8
+ import * as i7 from "@angular/forms";
9
+ import * as i8 from "@angular/cdk/a11y";
10
+ export declare class DispeditModule {
11
+ static ɵfac: i0.ɵɵFactoryDeclaration<DispeditModule, never>;
12
+ static ɵmod: i0.ɵɵNgModuleDeclaration<DispeditModule, [typeof i1.DispeditComponent, typeof i2.FkselectComponent, typeof i3.M2mselectComponent, typeof i4.ChoicePipe], [typeof i5.CommonModule, typeof i6.NgbTypeaheadModule, typeof i6.NgbOffcanvasModule, typeof i7.ReactiveFormsModule, typeof i8.A11yModule], [typeof i1.DispeditComponent, typeof i2.FkselectComponent, typeof i3.M2mselectComponent, typeof i4.ChoicePipe]>;
13
+ static ɵinj: i0.ɵɵInjectorDeclaration<DispeditModule>;
14
+ }
15
+ export * from './dispedit/dispedit.constants';
16
+ export * from './dispedit/dispedit.component';
17
+ export * from './m2mselect/m2mselect.component';
18
+ export * from './fkselect/fkselect.component';
19
+ export * from './sdelete/sdelete.component';
20
+ export * from './choice.pipe';
@@ -0,0 +1,43 @@
1
+ import { EventEmitter, OnDestroy, OnInit } from '@angular/core';
2
+ import { DataModel } from '../../data/data-model';
3
+ import { FilterData, Queryset } from '../../data/data-query';
4
+ import { Collection } from '../../data/data-collection';
5
+ import { Observable } from 'rxjs';
6
+ import { UntypedFormControl } from '@angular/forms';
7
+ import * as i0 from "@angular/core";
8
+ export declare type TplFun<T extends DataModel> = (data: T) => string;
9
+ export declare class FkselectComponent<T extends DataModel, R extends DataModel> implements OnInit, OnDestroy {
10
+ model?: T;
11
+ field?: string;
12
+ edit: boolean;
13
+ value?: R;
14
+ queryset?: Queryset<R>;
15
+ collection?: Collection<R>;
16
+ update: boolean;
17
+ filter: FilterData;
18
+ mode: 'autocomplete' | 'select' | 'auto';
19
+ display?: string | TplFun<R>;
20
+ search: string;
21
+ label: string;
22
+ placeholder: string;
23
+ inputClasses: string[] | string;
24
+ selected: EventEmitter<T>;
25
+ cancelled: EventEmitter<void>;
26
+ cleared: EventEmitter<void>;
27
+ fc: UntypedFormControl;
28
+ searchFn: (text$: Observable<string>) => Observable<any>;
29
+ displayFn: (x: any) => any;
30
+ private _subscription;
31
+ private _tpl;
32
+ constructor();
33
+ ngOnDestroy(): void;
34
+ ngOnInit(): void;
35
+ clearAction(): void;
36
+ /**
37
+ * Display function. Uses descfield or desc tpl (lodash template using model fields).
38
+ */
39
+ private _display;
40
+ private _search;
41
+ static ɵfac: i0.ɵɵFactoryDeclaration<FkselectComponent<any, any>, never>;
42
+ static ɵcmp: i0.ɵɵComponentDeclaration<FkselectComponent<any, any>, "data-fkselect", never, { "model": "model"; "field": "field"; "edit": "edit"; "value": "value"; "queryset": "queryset"; "collection": "collection"; "update": "update"; "filter": "filter"; "mode": "mode"; "display": "display"; "search": "search"; "label": "label"; "placeholder": "placeholder"; "inputClasses": "inputClasses"; }, { "selected": "selected"; "cancelled": "cancelled"; "cleared": "cleared"; }, never, never, false>;
43
+ }
@@ -0,0 +1,120 @@
1
+ import { EventEmitter, OnDestroy, OnInit } from '@angular/core';
2
+ import { FilterData, Queryset } from '../../data/data-query';
3
+ import { Collection } from '../../data/data-collection';
4
+ import { ControlValueAccessor, UntypedFormControl } from '@angular/forms';
5
+ import { Observable } from 'rxjs';
6
+ import { TplFun } from '../fkselect/fkselect.component';
7
+ import { DataModel } from '../../data/data-model';
8
+ import * as i0 from "@angular/core";
9
+ export declare class M2mselectComponent<T extends DataModel, R extends DataModel> implements OnDestroy, OnInit, ControlValueAccessor {
10
+ model?: T;
11
+ field?: string;
12
+ edit: boolean;
13
+ values: R[];
14
+ pks: number[];
15
+ disabled: boolean;
16
+ queryset?: Queryset<R>;
17
+ collection?: Collection<R>;
18
+ filter: FilterData;
19
+ mode: 'autocomplete' | 'select' | 'auto';
20
+ display?: string | TplFun<R>;
21
+ search: string;
22
+ label: string;
23
+ placeholder: string;
24
+ emptyLabel: string;
25
+ inputClasses: string[] | string;
26
+ added: EventEmitter<R>;
27
+ removed: EventEmitter<R>;
28
+ cancelled: EventEmitter<void>;
29
+ cleared: EventEmitter<void>;
30
+ detailsChanged: EventEmitter<R[]>;
31
+ changed: EventEmitter<number[]>;
32
+ fc: UntypedFormControl;
33
+ searchFn: (text$: Observable<string>) => Observable<any>;
34
+ displayFn: (x: any) => any;
35
+ private touched;
36
+ private _subscription;
37
+ private _tpl;
38
+ /**
39
+ * Control value accessor onChange dummy callback;
40
+ * @param fks
41
+ */
42
+ onChange: (fks: number[]) => void;
43
+ /**
44
+ * Control value accessor onTouched dummy callback;
45
+ */
46
+ onTouched: () => void;
47
+ /**
48
+ * On Destroy clears subscriptions.
49
+ */
50
+ ngOnDestroy(): void;
51
+ /**
52
+ * OnChange register from controlValueAccessor
53
+ * @param onChange callback
54
+ */
55
+ registerOnChange(onChange: any): void;
56
+ /**
57
+ * OnTouched register from controlValueAccessor
58
+ * @param onTouched callback
59
+ */
60
+ registerOnTouched(onTouched: any): void;
61
+ /**
62
+ * OnInit :
63
+ * - ensures queryset is available
64
+ * - creates form control for input
65
+ * - creates display function
66
+ * - ensure values are set from any source
67
+ */
68
+ ngOnInit(): void;
69
+ /**
70
+ * Remove a value.
71
+ * Emits detailsChanged, changed and removed signals.
72
+ * @param i instance to be removed
73
+ */
74
+ onRemove(i: R): void;
75
+ /**
76
+ * Add a value.
77
+ * Emits detailsChanged, changed and added signals.
78
+ * @param i instance to be added.
79
+ */
80
+ onAdd(i: R): void;
81
+ /**
82
+ * Clear all values.
83
+ * Emits detailsChanged, changed and cleared signals.
84
+ */
85
+ onClear(): void;
86
+ /**
87
+ * Write value from controlValueAccessor.
88
+ * @param pks
89
+ */
90
+ writeValue(pks: number[]): Promise<void>;
91
+ /**
92
+ * Mark as touched.
93
+ */
94
+ markAsTouched(): void;
95
+ /**
96
+ * Mark as disabled.
97
+ * @param disabled
98
+ */
99
+ setDisabledState(disabled: boolean): void;
100
+ /**
101
+ * Retrieve display values for current set of pks.
102
+ * Eventually fetches items from collection.
103
+ * Emits detailsChanged signal.
104
+ * @param pks list of current pks.
105
+ * @private
106
+ */
107
+ private _getDisplayValues;
108
+ /**
109
+ * Display function. Uses descfield or desc tpl (lodash template using model fields).
110
+ */
111
+ private _display;
112
+ /**
113
+ * Search function.
114
+ * @param text$
115
+ * @private
116
+ */
117
+ private _search;
118
+ static ɵfac: i0.ɵɵFactoryDeclaration<M2mselectComponent<any, any>, never>;
119
+ static ɵcmp: i0.ɵɵComponentDeclaration<M2mselectComponent<any, any>, "data-m2mselect", never, { "model": "model"; "field": "field"; "edit": "edit"; "values": "values"; "queryset": "queryset"; "collection": "collection"; "filter": "filter"; "mode": "mode"; "display": "display"; "search": "search"; "label": "label"; "placeholder": "placeholder"; "emptyLabel": "emptyLabel"; "inputClasses": "inputClasses"; }, { "added": "added"; "removed": "removed"; "cancelled": "cancelled"; "cleared": "cleared"; "detailsChanged": "detailsChanged"; "changed": "changed"; }, never, never, false>;
120
+ }
@@ -0,0 +1,26 @@
1
+ import { EventEmitter } from '@angular/core';
2
+ import { DataModel } from '../../data/data-model';
3
+ import { Collection } from '../../data/data-collection';
4
+ import { NgbOffcanvas } from '@ng-bootstrap/ng-bootstrap';
5
+ import * as i0 from "@angular/core";
6
+ export interface FakeDeleteResult {
7
+ count: number;
8
+ details: [string, number][];
9
+ }
10
+ export declare class SafeDeleteComponent<T extends DataModel> {
11
+ private _ofc;
12
+ model: T;
13
+ service: Collection<T>;
14
+ checks: {
15
+ [index: string]: string;
16
+ };
17
+ deleted: EventEmitter<FakeDeleteResult>;
18
+ result?: FakeDeleteResult;
19
+ private _dialogRef?;
20
+ private ofc?;
21
+ constructor(_ofc: NgbOffcanvas);
22
+ checkDelete(model: DataModel): Promise<void>;
23
+ reallyDelete(): Promise<void>;
24
+ static ɵfac: i0.ɵɵFactoryDeclaration<SafeDeleteComponent<any>, never>;
25
+ static ɵcmp: i0.ɵɵComponentDeclaration<SafeDeleteComponent<any>, "data-safe-delete", never, { "model": "model"; "service": "service"; "checks": "checks"; }, { "deleted": "deleted"; }, never, never, true>;
26
+ }
@@ -0,0 +1,14 @@
1
+ import { OnDestroy, OnInit } from '@angular/core';
2
+ import { DataMessageService, Message } from '../message.service';
3
+ import * as i0 from "@angular/core";
4
+ export declare class MessageZoneComponent implements OnInit, OnDestroy {
5
+ messages: DataMessageService;
6
+ filter?: string;
7
+ current: Message[];
8
+ private _subscriptions$;
9
+ constructor(messages: DataMessageService);
10
+ ngOnInit(): void;
11
+ ngOnDestroy(): void;
12
+ static ɵfac: i0.ɵɵFactoryDeclaration<MessageZoneComponent, never>;
13
+ static ɵcmp: i0.ɵɵComponentDeclaration<MessageZoneComponent, "data-message-zone", never, { "filter": "filter"; }, {}, never, never, true>;
14
+ }
@@ -0,0 +1,59 @@
1
+ import { InjectionToken, NgZone } from "@angular/core";
2
+ import { Observable, ReplaySubject } from "rxjs";
3
+ import * as i0 from "@angular/core";
4
+ export declare const enum TYPE {
5
+ SUCCESS = 0,
6
+ INFO = 1,
7
+ WARNING = 2,
8
+ DANGER = 3
9
+ }
10
+ export declare enum DEFAULT_TIMEOUTS {
11
+ SUCCESS = 3000,
12
+ INFO = 4000,
13
+ WARNING = 10000,
14
+ DANGER = 30000
15
+ }
16
+ export declare enum STATUS {
17
+ UNDISP = 0,
18
+ DISP = 1,
19
+ ACK = 2
20
+ }
21
+ export interface ISoundTypes {
22
+ [index: string]: string;
23
+ }
24
+ export declare const DATA_MESSAGE_SOUNDS: InjectionToken<ISoundTypes>;
25
+ export declare class Message {
26
+ title: string;
27
+ type: TYPE;
28
+ message: string;
29
+ trace: any;
30
+ ttl: number;
31
+ status: string;
32
+ showTrace: boolean;
33
+ constructor(title: string, type?: TYPE, message?: string, trace?: any, ttl?: number);
34
+ get style(): string;
35
+ ack(): void;
36
+ }
37
+ export declare class DataMessageService {
38
+ ngZone: NgZone;
39
+ sounds: ISoundTypes;
40
+ _messages$: ReplaySubject<Message[]>;
41
+ private _messages;
42
+ private _timer;
43
+ private _subscription;
44
+ constructor(ngZone: NgZone, sounds: ISoundTypes);
45
+ get current(): Observable<Message[]>;
46
+ init(): void;
47
+ close(): void;
48
+ success(title: string, message?: string, trace?: any, timeout?: number): void;
49
+ info(title: string, message?: string, trace?: any, timeout?: number): void;
50
+ warning(title: string, message?: string, trace?: any, timeout?: number): void;
51
+ danger(title: string, message?: string, trace?: any, timeout?: number): void;
52
+ error(title: string, message?: string, trace?: any): void;
53
+ debug(title: string, message?: string, trace?: any): void;
54
+ ack(message: Message): void;
55
+ play(type?: string): void;
56
+ private _notify;
57
+ static ɵfac: i0.ɵɵFactoryDeclaration<DataMessageService, [null, { optional: true; }]>;
58
+ static ɵprov: i0.ɵɵInjectableDeclaration<DataMessageService>;
59
+ }
@@ -0,0 +1,15 @@
1
+ import { ModelList } from '../../model-list.service';
2
+ import { DataModel } from '../../../data/data-model';
3
+ import { ModelListField } from '../model-list-fields';
4
+ import * as i0 from "@angular/core";
5
+ export declare class ModelListFieldHeaderComponent<T extends DataModel> {
6
+ list: ModelList<T>;
7
+ field: string;
8
+ sort?: boolean;
9
+ sortField?: string;
10
+ constructor();
11
+ disable(): void;
12
+ enable(f: ModelListField): void;
13
+ static ɵfac: i0.ɵɵFactoryDeclaration<ModelListFieldHeaderComponent<any>, never>;
14
+ static ɵcmp: i0.ɵɵComponentDeclaration<ModelListFieldHeaderComponent<any>, "data-model-list-field-header", never, { "list": "list"; "field": "field"; "sort": "sort"; "sortField": "sortField"; }, {}, never, ["*"], true>;
15
+ }
@@ -0,0 +1,19 @@
1
+ import { ElementRef, OnInit } from '@angular/core';
2
+ import { DataModel } from '../../../data/data-model';
3
+ import { ModelList } from '../../model-list.service';
4
+ import { CdkDragDrop } from '@angular/cdk/drag-drop';
5
+ import { NgbOffcanvas } from '@ng-bootstrap/ng-bootstrap';
6
+ import { ModelListField } from '../model-list-fields';
7
+ import * as i0 from "@angular/core";
8
+ export declare class ModelListFieldsSelectorComponent<T extends DataModel> implements OnInit {
9
+ private _ofc;
10
+ list: ModelList<T>;
11
+ ofctpl: ElementRef<HTMLDivElement>;
12
+ constructor(_ofc: NgbOffcanvas);
13
+ ngOnInit(): void;
14
+ open(): void;
15
+ drop($event: CdkDragDrop<T, any>): void;
16
+ toggle(f: ModelListField): void;
17
+ static ɵfac: i0.ɵɵFactoryDeclaration<ModelListFieldsSelectorComponent<any>, never>;
18
+ static ɵcmp: i0.ɵɵComponentDeclaration<ModelListFieldsSelectorComponent<any>, "data-model-list-fields-selector", never, { "list": "list"; }, {}, never, never, true>;
19
+ }