tuain-ng-forms-lib 14.4.90 → 14.4.93

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 (108) hide show
  1. package/.browserslistrc +16 -0
  2. package/.yarn/cache/nanoid-npm-4.0.0-924f5c6312-7d5946df5c.zip +0 -0
  3. package/.yarn/cache/tslib-npm-2.4.1-36f0ed04db-19480d6e03.zip +0 -0
  4. package/.yarn/cache/yn-npm-5.0.0-b001dab23c-f0ec7710d3.zip +0 -0
  5. package/.yarn/install-state.gz +0 -0
  6. package/karma.conf.js +44 -0
  7. package/ng-package.json +11 -0
  8. package/package.json +6 -24
  9. package/src/lib/classes/forms/action.ts +56 -0
  10. package/src/lib/classes/forms/element.ts +29 -0
  11. package/src/lib/classes/forms/field.ts +500 -0
  12. package/src/lib/classes/forms/form.constants.ts +28 -0
  13. package/src/lib/classes/forms/form.ts +508 -0
  14. package/src/lib/classes/forms/piece-propagate.ts +46 -0
  15. package/src/lib/classes/forms/piece.ts +122 -0
  16. package/src/lib/classes/forms/section.ts +152 -0
  17. package/src/lib/classes/forms/subsection.ts +90 -0
  18. package/src/lib/classes/forms/table/action.ts +32 -0
  19. package/src/lib/classes/forms/table/column.ts +94 -0
  20. package/src/lib/classes/forms/table/row-data.ts +121 -0
  21. package/src/lib/classes/forms/table/table.ts +478 -0
  22. package/src/lib/components/elements/action.component.ts +59 -0
  23. package/src/lib/components/elements/field.component.ts +92 -0
  24. package/src/lib/components/elements/layout/element.component.ts +13 -0
  25. package/src/lib/components/elements/layout/form-error.component.ts +11 -0
  26. package/src/lib/components/elements/layout/form-header.component.ts +17 -0
  27. package/src/lib/components/elements/layout/piece.component.ts +34 -0
  28. package/src/lib/components/elements/layout/section.component.ts +31 -0
  29. package/src/lib/components/elements/layout/sub-section.component.ts +31 -0
  30. package/src/lib/components/elements/tables/table-record-action.component.ts +50 -0
  31. package/src/lib/components/elements/tables/table-record-field.component.ts +20 -0
  32. package/src/lib/components/elements/tables/table.component.ts +86 -0
  33. package/src/lib/components/forms/basic-form.ts +1588 -0
  34. package/src/lib/services/event-manager.service.ts +21 -0
  35. package/src/lib/services/file-manager.service.ts +6 -0
  36. package/src/lib/services/form-manager.service.ts +89 -0
  37. package/src/lib/services/icon-dictionary.service.ts +159 -0
  38. package/src/lib/tuain-ng-forms-lib.module.ts +40 -0
  39. package/{public-api.d.ts → src/public-api.ts} +5 -0
  40. package/src/test.ts +27 -0
  41. package/tsconfig.lib.json +15 -0
  42. package/tsconfig.lib.prod.json +10 -0
  43. package/tsconfig.spec.json +17 -0
  44. package/esm2020/lib/classes/forms/action.mjs +0 -35
  45. package/esm2020/lib/classes/forms/element.mjs +0 -26
  46. package/esm2020/lib/classes/forms/field.mjs +0 -444
  47. package/esm2020/lib/classes/forms/form.constants.mjs +0 -26
  48. package/esm2020/lib/classes/forms/form.mjs +0 -431
  49. package/esm2020/lib/classes/forms/piece-propagate.mjs +0 -30
  50. package/esm2020/lib/classes/forms/piece.mjs +0 -95
  51. package/esm2020/lib/classes/forms/section.mjs +0 -137
  52. package/esm2020/lib/classes/forms/subsection.mjs +0 -80
  53. package/esm2020/lib/classes/forms/table/action.mjs +0 -18
  54. package/esm2020/lib/classes/forms/table/column.mjs +0 -74
  55. package/esm2020/lib/classes/forms/table/row-data.mjs +0 -116
  56. package/esm2020/lib/classes/forms/table/table.mjs +0 -415
  57. package/esm2020/lib/components/elements/action.component.mjs +0 -71
  58. package/esm2020/lib/components/elements/field.component.mjs +0 -80
  59. package/esm2020/lib/components/elements/layout/element.component.mjs +0 -20
  60. package/esm2020/lib/components/elements/layout/form-error.component.mjs +0 -20
  61. package/esm2020/lib/components/elements/layout/form-header.component.mjs +0 -31
  62. package/esm2020/lib/components/elements/layout/piece.component.mjs +0 -22
  63. package/esm2020/lib/components/elements/layout/section.component.mjs +0 -37
  64. package/esm2020/lib/components/elements/layout/sub-section.component.mjs +0 -37
  65. package/esm2020/lib/components/elements/tables/table-record-action.component.mjs +0 -56
  66. package/esm2020/lib/components/elements/tables/table-record-field.component.mjs +0 -30
  67. package/esm2020/lib/components/elements/tables/table.component.mjs +0 -93
  68. package/esm2020/lib/components/forms/basic-form.mjs +0 -1514
  69. package/esm2020/lib/services/event-manager.service.mjs +0 -18
  70. package/esm2020/lib/services/file-manager.service.mjs +0 -6
  71. package/esm2020/lib/services/form-manager.service.mjs +0 -80
  72. package/esm2020/lib/tuain-ng-forms-lib.module.mjs +0 -71
  73. package/esm2020/public-api.mjs +0 -19
  74. package/esm2020/tuain-ng-forms-lib.mjs +0 -5
  75. package/fesm2015/tuain-ng-forms-lib.mjs +0 -4229
  76. package/fesm2015/tuain-ng-forms-lib.mjs.map +0 -1
  77. package/fesm2020/tuain-ng-forms-lib.mjs +0 -4048
  78. package/fesm2020/tuain-ng-forms-lib.mjs.map +0 -1
  79. package/lib/classes/forms/action.d.ts +0 -22
  80. package/lib/classes/forms/element.d.ts +0 -17
  81. package/lib/classes/forms/field.d.ts +0 -205
  82. package/lib/classes/forms/form.constants.d.ts +0 -25
  83. package/lib/classes/forms/form.d.ts +0 -137
  84. package/lib/classes/forms/piece-propagate.d.ts +0 -11
  85. package/lib/classes/forms/piece.d.ts +0 -41
  86. package/lib/classes/forms/section.d.ts +0 -32
  87. package/lib/classes/forms/subsection.d.ts +0 -24
  88. package/lib/classes/forms/table/action.d.ts +0 -15
  89. package/lib/classes/forms/table/column.d.ts +0 -33
  90. package/lib/classes/forms/table/row-data.d.ts +0 -14
  91. package/lib/classes/forms/table/table.d.ts +0 -100
  92. package/lib/components/elements/action.component.d.ts +0 -17
  93. package/lib/components/elements/field.component.d.ts +0 -38
  94. package/lib/components/elements/layout/element.component.d.ts +0 -9
  95. package/lib/components/elements/layout/form-error.component.d.ts +0 -8
  96. package/lib/components/elements/layout/form-header.component.d.ts +0 -12
  97. package/lib/components/elements/layout/piece.component.d.ts +0 -10
  98. package/lib/components/elements/layout/section.component.d.ts +0 -11
  99. package/lib/components/elements/layout/sub-section.component.d.ts +0 -11
  100. package/lib/components/elements/tables/table-record-action.component.d.ts +0 -16
  101. package/lib/components/elements/tables/table-record-field.component.d.ts +0 -12
  102. package/lib/components/elements/tables/table.component.d.ts +0 -35
  103. package/lib/components/forms/basic-form.d.ts +0 -353
  104. package/lib/services/event-manager.service.d.ts +0 -9
  105. package/lib/services/file-manager.service.d.ts +0 -5
  106. package/lib/services/form-manager.service.d.ts +0 -28
  107. package/lib/tuain-ng-forms-lib.module.d.ts +0 -20
  108. package/tuain-ng-forms-lib.d.ts +0 -5
@@ -0,0 +1,21 @@
1
+ import { ReplaySubject } from 'rxjs';
2
+
3
+ export class LibEventManagerService {
4
+ eventSubjects: any = {};
5
+
6
+ constructor(eventNames) {
7
+ eventNames.forEach((name) => { this.addEventName(name); });
8
+ }
9
+
10
+ addEventName(name) {
11
+ if (!this.eventSubjects[name]) {
12
+ const newEventSubject: ReplaySubject<any> = new ReplaySubject(1);
13
+ this.eventSubjects[name] = newEventSubject;
14
+ }
15
+ }
16
+
17
+ getEventNames() { return Object.keys(this.eventSubjects); }
18
+ getSubject(eventClassName) { return eventClassName ? this.eventSubjects[eventClassName] : null; }
19
+ subscribe(eventClassName, callback) { this.getSubject(eventClassName).subscribe(callback); }
20
+ next(eventClassName, data) { this.getSubject(eventClassName).next(data); }
21
+ }
@@ -0,0 +1,6 @@
1
+ export class LibFileManagementService {
2
+ openFile(fileBase64Data, fileName, fileType) { }
3
+ saveFileFromURL(fileUrl, fullFileName = null) { }
4
+ saveFile(fileBase64Data, fileName, fileType) { }
5
+ }
6
+
@@ -0,0 +1,89 @@
1
+ import { nanoid } from 'nanoid';
2
+
3
+ export class LibFormManagerService {
4
+ pageStack: any[];
5
+
6
+ constructor() {
7
+ this.cleanStack();
8
+ }
9
+
10
+ // Métodos virtuales para las aplicaciones
11
+ getFormDefinition(formCode) { }
12
+ execServerAction(actionDetail) { }
13
+ goToForm(formCode, token, subject) { }
14
+ async loadStack() { }
15
+ saveStack() { }
16
+
17
+ cleanStack() { this.pageStack = []; }
18
+ resetPageStack() { this.cleanStack() }
19
+
20
+ findFormInStack(token) {
21
+ const index = this.pageStack.findIndex(item => item?.token === token);
22
+ const data = (index >= 0) ? this.pageStack[index] : null;
23
+ return { index, data };
24
+ }
25
+
26
+ replaceItem(token, formInfo) {
27
+ if (!token || !formInfo) { return; }
28
+ const { index, data: storedForm } = this.findFormInStack(token);
29
+ let updatedForm: any = null;
30
+ if (index >= 0) {
31
+ updatedForm = { ...storedForm };
32
+ updatedForm.subject = formInfo?.subject ?? storedForm.subject;
33
+ updatedForm.state = formInfo?.state ?? storedForm.state;
34
+ updatedForm.fields = storedForm?.fields ?? {};
35
+ updatedForm.extra = storedForm?.extra ?? {};
36
+ if (formInfo.fields) {
37
+ Object.assign(updatedForm.fields, formInfo.fields);
38
+ }
39
+ if (formInfo.extra) {
40
+ Object.assign(updatedForm.extra, formInfo.extra);
41
+ }
42
+ this.pageStack[index] = updatedForm;
43
+ this.saveStack();
44
+ }
45
+ }
46
+
47
+ stack(origin, target) {
48
+ const token = nanoid(6);
49
+ this.replaceItem(target.originToken, origin);
50
+ this.pageStack.push({ token, ...target });
51
+ this.saveStack();
52
+ return token;
53
+ }
54
+
55
+ unstack(token = null) {
56
+ let index = (token) ? this.findFormInStack(token).index : this.pageStack.length - 2;
57
+ let formInfo = null;
58
+ if (index >= 0) {
59
+ formInfo = this.pageStack[index];
60
+ this.pageStack.splice(index + 1);
61
+ this.saveStack();
62
+ }
63
+ return formInfo;
64
+ }
65
+
66
+ getFormInfo(token: string) {
67
+ const { data } = this.findFormInStack(token);
68
+ return {
69
+ token: data?.token,
70
+ subject: data?.subject,
71
+ state: data?.state,
72
+ originToken: data?.originToken,
73
+ fields: data?.fields ?? {},
74
+ extra: data?.extra ?? {}
75
+ };
76
+ }
77
+
78
+ openForm(origin: any, target: any) {
79
+ (!origin) && this.cleanStack();
80
+ target.originToken = origin?.token ?? null;
81
+ const token = this.stack(origin, target);
82
+ this.goToForm(target.name, token, target.subject);
83
+ }
84
+
85
+ backTo(targetToken = null) {
86
+ const formInfo: any = this.unstack(targetToken);
87
+ formInfo && formInfo.name && this.goToForm(formInfo.name, formInfo.token, formInfo.subject);
88
+ }
89
+ }
@@ -0,0 +1,159 @@
1
+ export const iconDictionary = {
2
+ SELECT: 'icmn-pushpin',
3
+ selectHolder: 'icmn-user-check',
4
+ validateAML: 'icmn-warning',
5
+ NEW: 'icmn-file-empty',
6
+ 'FORM-CREATE': 'icmn-file-empty',
7
+ 'FORM-EDIT': 'icmn-pencil2',
8
+ 'FORM-VIEW': 'icmn-file-text2',
9
+ SHIELD: 'fa fa-shield',
10
+ LOGIN: 'fa fa-sign-in',
11
+ LOGOUT: 'fa fa-sign-out',
12
+ VIEW: 'icmn-eye',
13
+ EDIT: 'icmn-pencil',
14
+ DETAIL: 'icmn-binoculars',
15
+ DELETE: 'icmn-bin',
16
+ SERVERPROCESS: 'icmn-cloud-check',
17
+ DEFAULT: 'icmn-home',
18
+ HOME: 'icmn-home',
19
+ IMAGE: 'icmn-image',
20
+ PICTURE: 'icmn-camera',
21
+ TEXT: 'icmn-file-text',
22
+ MOVEUP: 'icmn-arrow-up',
23
+ MOVEDOWN: 'icmn-arrow-down',
24
+ NEWAFFILIATION: 'icmn-profile',
25
+ AUTONEWAFFILIATION: 'icmn-profile',
26
+ PROFILE: 'icmn-profile',
27
+ ZIPFILE: 'icmn-file-zip',
28
+ COPY: 'icmn-copy',
29
+ FOLDER: 'icmn-folder-open',
30
+ TAGS: 'icmn-price-tags',
31
+ BARCODE: 'icmn-barcode',
32
+ BARCODE2: 'fa fa-barcode',
33
+ KEYBOARD: 'fa fa-keyboard-o',
34
+ CART: 'icmn-cart',
35
+ CAMARACOMERCIO: 'icmn-book',
36
+ SARLAFT: 'icmn-binoculars',
37
+ SCREENING: 'icmn-user-check',
38
+ ENTITY: 'icmn-library',
39
+ COIN: 'icmn-coin-dollar',
40
+ CREDITCARD: 'icmn-credit-card',
41
+ CONTACTS: 'icmn-address-book',
42
+ LOCATION: 'icmn-location',
43
+ CODES: 'icmn-file-text',
44
+ BPMCODES: 'icmn-file-text2',
45
+ MAIL: 'icmn-envelop',
46
+ MAP: 'icmn-map',
47
+ WARNING: 'icmn-warning',
48
+ NOTIFICATION: 'icmn-notification',
49
+ QUESTION: 'icmn-question',
50
+ INFO: 'icmn-info',
51
+ SAVE: 'icmn-floppy-disk',
52
+ INBOXFULL: 'icmn-drawer',
53
+ INBOXEMPTY: 'icmn-drawer2',
54
+ DATABASE: 'icmn-database',
55
+ UNDO: 'icmn-undo2',
56
+ REDO: 'icmn-redo2',
57
+ CHAT: 'icmn-bubbles4',
58
+ BRIEFCASE: 'icmn-briefcase',
59
+ USER: 'icmn-user',
60
+ ADDUSER: 'icmn-user-plus',
61
+ REMOVEUSER: 'icmn-user-minus',
62
+ SPINNER: 'icmn-spiiner3',
63
+ SEARCH: 'icmn-search',
64
+ ZOOMIN: 'icmn-zoom-in',
65
+ ZOOMOUT: 'icmn-zoom-out',
66
+ KEY: 'icmn-key',
67
+ LOCK: 'icmn-lock',
68
+ lockDoc: 'icmn-lock',
69
+ UNLOCK: 'icmn-unlocked',
70
+ CONFIG: 'icmn-wrench',
71
+ TUNE: 'icmn-equalizer',
72
+ GEAR: 'icmn-cog',
73
+ ADMIN: 'fa fa-cogs',
74
+ LIST: 'icmn-list',
75
+ FORMRECORD: 'icmn-insert-template',
76
+ PIE: 'icmn-pie-chart',
77
+ GRAPH: 'icmn-stats-dots',
78
+ TROPHY: 'icmn-trophy',
79
+ GIFT: 'icmn-gift',
80
+ GAUGE: 'icmn-meter',
81
+ FIRE: 'icmn-fire',
82
+ LAB: 'icmn-lab',
83
+ DELIVER: 'icmn-truck',
84
+ MOBILE: 'icmn-mobile',
85
+ MOBILE2: 'icmn-mobile',
86
+ RECHARGE: 'icmn-power-cord',
87
+ TREE: 'icmn-tree',
88
+ EARTH: 'icmn-earth',
89
+ TARGET: 'icmn-target',
90
+ POWER: 'icmn-switch',
91
+ VERIFY: 'icmn-clipboard',
92
+ UPLOAD: 'icmn-cloud-upload',
93
+ DOWNLOAD: 'icmn-cloud-download',
94
+ DOWNLOADSET: 'icmn-cloud-download',
95
+ LINK: 'icmn-link',
96
+ ATACH: 'icmn-atachment',
97
+ EYE: 'icmn-eye',
98
+ NOEYE: 'icmn-eye-blocked',
99
+ BOOKMARK: 'icmn-bookmark',
100
+ STAR: 'icmn-star-full',
101
+ HEART: 'icmn-heart',
102
+ HEARTBROKEN: 'icmn-heart-broken',
103
+ HAPPY: 'icmn-happy',
104
+ SAD: 'icmn-sad',
105
+ ACTIVATE: 'icmn-checkmark',
106
+ INACTIVATE: 'icmn-cross',
107
+ APPROVE: 'icmn-checkmark',
108
+ REJECT: 'icmn-cross',
109
+ CANCEL: 'icmn-cross',
110
+ CLOSE: 'icmn-ungroup',
111
+ CLEAN: 'fa fa-eraser',
112
+ CHECK: 'icmn-checkmark',
113
+ UNCHECK: 'icmn-cross',
114
+ SELECTROW: 'icmn-checkbox-unchecked',
115
+ UNSELECTROW: 'icmn-checkbox-checked',
116
+ CHECKED: 'icmn-checkbox-checked',
117
+ UNCHECKED: 'icmn-checkbox-unchecked',
118
+ ENTER: 'icmn-enter',
119
+ EXIT: 'icmn-exit',
120
+ CUT: 'icmn-scissors',
121
+ FILTER: 'icmn-filter',
122
+ PLAY: 'icmn-play2',
123
+ STOP: 'icmn-stop',
124
+ UP: 'icmn-circle-up',
125
+ DOWN: 'icmn-circle-down',
126
+ RIGHT: 'icmn-circle-right',
127
+ LEFT: 'icmn-circle-left',
128
+ SORTASC: 'icmn-sort-alpha-asc',
129
+ SORTDSC: 'icmn-sort-alpha-desc',
130
+ TABLE: 'icmn-table',
131
+ OFFICE: 'icmn-office',
132
+ SHARE: 'icmn-share',
133
+ FACEBOOK: 'icmn-facebook',
134
+ WHATSAPP: 'icmn-whatsapp',
135
+ TWITTER: 'icmn-twitter',
136
+ YOUTUBE: 'icmn-youtube',
137
+ PDF: 'icmn-file-pdf',
138
+ EXCEL: 'icmn-file-excel',
139
+ HOLDER: 'icmn-profile',
140
+ XXX: 'fa fa-first-order',
141
+ BANK: 'fa fa-bank',
142
+ CREDITCARD2: 'fa fa-credit-card-alt',
143
+ BUS: 'fa fa-bus',
144
+ TELEVISION: 'icmn-tv',
145
+ BACK: 'fa fa-arrow-left',
146
+ SEND: 'fa fa-paper-plane-o',
147
+ TEXTFILE: 'fa fa-file-text-o',
148
+ PERSON: 'fa fa-user',
149
+ BATCHFILE: 'fa fa-wpforms',
150
+ REQUESTS: 'icmn-stack',
151
+ THUMBUP: 'fa fa-thumbs-o-up',
152
+ THUMBDOWN: 'fa fa-thumbs-o-down',
153
+ EXCLAMATION: 'fa fa-exclamation-circle',
154
+ };
155
+
156
+ export class IconDictionaryService {
157
+ mapIcon = (iconName) => (iconName && iconDictionary[iconName])
158
+ ? iconDictionary[iconName] : iconDictionary.DEFAULT
159
+ }
@@ -0,0 +1,40 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { RouterModule } from '@angular/router';
4
+ import { FormsModule } from '@angular/forms';
5
+
6
+ import { BasicFormComponent } from './components/forms/basic-form';
7
+ import { ActionComponent } from './components/elements/action.component';
8
+ import { FieldComponent } from './components/elements/field.component';
9
+ import { ElementComponent } from './components/elements/layout/element.component';
10
+ import { FormErrorComponent } from './components/elements/layout/form-error.component';
11
+ import { FormHeaderComponent } from './components/elements/layout/form-header.component';
12
+ import { SectionComponent } from './components/elements/layout/section.component';
13
+ import { SubSectionComponent } from './components/elements/layout/sub-section.component';
14
+ import { LibTableRecordActionComponent } from './components/elements/tables/table-record-action.component';
15
+ import { LibTableRecordFieldComponent } from './components/elements/tables/table-record-field.component';
16
+ import { LibTableComponent } from './components/elements/tables/table.component';
17
+
18
+ const COMPONENTS = [
19
+ BasicFormComponent,
20
+ ActionComponent,
21
+ FieldComponent,
22
+ ElementComponent,
23
+ FormErrorComponent,
24
+ FormHeaderComponent,
25
+ SectionComponent,
26
+ SubSectionComponent,
27
+ LibTableRecordActionComponent,
28
+ LibTableRecordFieldComponent,
29
+ LibTableComponent];
30
+
31
+ @NgModule({
32
+ declarations: COMPONENTS,
33
+ imports: [
34
+ CommonModule,
35
+ RouterModule,
36
+ FormsModule,
37
+ ],
38
+ exports: COMPONENTS
39
+ })
40
+ export class TuainNgFormsLibModule { }
@@ -1,3 +1,7 @@
1
+ /*
2
+ * Public API Surface of tuain-ng-forms-lib
3
+ */
4
+
1
5
  export * from './lib/components/elements/action.component';
2
6
  export * from './lib/components/elements/field.component';
3
7
  export * from './lib/components/elements/layout/element.component';
@@ -13,3 +17,4 @@ export * from './lib/services/event-manager.service';
13
17
  export * from './lib/services/form-manager.service';
14
18
  export * from './lib/services/file-manager.service';
15
19
  export * from './lib/tuain-ng-forms-lib.module';
20
+
package/src/test.ts ADDED
@@ -0,0 +1,27 @@
1
+ // This file is required by karma.conf.js and loads recursively all the .spec and framework files
2
+
3
+ import 'zone.js';
4
+ import 'zone.js/testing';
5
+ import { getTestBed } from '@angular/core/testing';
6
+ import {
7
+ BrowserDynamicTestingModule,
8
+ platformBrowserDynamicTesting
9
+ } from '@angular/platform-browser-dynamic/testing';
10
+
11
+ declare const require: {
12
+ context(path: string, deep?: boolean, filter?: RegExp): {
13
+ <T>(id: string): T;
14
+ keys(): string[];
15
+ };
16
+ };
17
+
18
+ // First, initialize the Angular testing environment.
19
+ getTestBed().initTestEnvironment(
20
+ BrowserDynamicTestingModule,
21
+ platformBrowserDynamicTesting(),
22
+ );
23
+
24
+ // Then we find all the tests.
25
+ const context = require.context('./', true, /\.spec\.ts$/);
26
+ // And load the modules.
27
+ context.keys().map(context);
@@ -0,0 +1,15 @@
1
+ /* To learn more about this file see: https://angular.io/config/tsconfig. */
2
+ {
3
+ "extends": "../../tsconfig.json",
4
+ "compilerOptions": {
5
+ "outDir": "../../out-tsc/lib",
6
+ "declaration": true,
7
+ "declarationMap": true,
8
+ "inlineSources": true,
9
+ "types": []
10
+ },
11
+ "exclude": [
12
+ "src/test.ts",
13
+ "**/*.spec.ts"
14
+ ]
15
+ }
@@ -0,0 +1,10 @@
1
+ /* To learn more about this file see: https://angular.io/config/tsconfig. */
2
+ {
3
+ "extends": "./tsconfig.lib.json",
4
+ "compilerOptions": {
5
+ "declarationMap": false
6
+ },
7
+ "angularCompilerOptions": {
8
+ "compilationMode": "partial"
9
+ }
10
+ }
@@ -0,0 +1,17 @@
1
+ /* To learn more about this file see: https://angular.io/config/tsconfig. */
2
+ {
3
+ "extends": "../../tsconfig.json",
4
+ "compilerOptions": {
5
+ "outDir": "../../out-tsc/spec",
6
+ "types": [
7
+ "jasmine"
8
+ ]
9
+ },
10
+ "files": [
11
+ "src/test.ts"
12
+ ],
13
+ "include": [
14
+ "**/*.spec.ts",
15
+ "**/*.d.ts"
16
+ ]
17
+ }
@@ -1,35 +0,0 @@
1
- import { Subject } from 'rxjs';
2
- import { elementTypes } from './form.constants';
3
- import { FormElement } from './element';
4
- const HEADER = 'HEADER';
5
- export class FormAction extends FormElement {
6
- constructor(actionDefinition, formConfig) {
7
- super(actionDefinition, formConfig);
8
- this._actionActivated = new Subject();
9
- this.inProgress = false;
10
- this.elementType = elementTypes.action;
11
- this.actionCode = actionDefinition.actionCode ? actionDefinition.actionCode.toString() : '';
12
- this.actionName = actionDefinition.actionTitle;
13
- this.iconName = actionDefinition.iconName || this.actionCode;
14
- this.setCustomAttribute('location', actionDefinition.position || HEADER);
15
- this.backend = actionDefinition?.serverAction ?? false;
16
- this.newState = actionDefinition?.newState;
17
- this.restrictedOnField = actionDefinition.fieldRestrictedCode ? actionDefinition.fieldRestrictedCode.toString() : '';
18
- this.restrictedOnOperator = actionDefinition.operatorRestricted || '';
19
- this.restrictedOnValue = actionDefinition.valueRestricted ?? '';
20
- this.customValidation = () => true;
21
- }
22
- get actionActivated() { return this._actionActivated; }
23
- start() { this.inProgress = true; }
24
- stop() { this.inProgress = false; }
25
- notifyActivation() { this._actionActivated.next(this.actionCode); }
26
- updateFromServer(receivedAction) {
27
- for (const propertyName in receivedAction) {
28
- if (propertyName !== 'actionCode' && propertyName !== 'actionId') {
29
- this[propertyName] = receivedAction[propertyName];
30
- }
31
- }
32
- }
33
- setCustomValidation(callback) { this.customValidation = () => callback(); }
34
- }
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHVhaW4tbmctZm9ybXMtbGliL3NyYy9saWIvY2xhc3Nlcy9mb3Jtcy9hY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDaEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUV4QyxNQUFNLE1BQU0sR0FBRyxRQUFRLENBQUM7QUFFeEIsTUFBTSxPQUFPLFVBQVcsU0FBUSxXQUFXO0lBZ0J6QyxZQUFZLGdCQUFnQixFQUFFLFVBQVU7UUFDdEMsS0FBSyxDQUFDLGdCQUFnQixFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBaEJyQixxQkFBZ0IsR0FBRyxJQUFJLE9BQU8sRUFBVSxDQUFDO1FBRTFELGVBQVUsR0FBRyxLQUFLLENBQUM7UUFlakIsSUFBSSxDQUFDLFdBQVcsR0FBRyxZQUFZLENBQUMsTUFBTSxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxVQUFVLEdBQUcsZ0JBQWdCLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUM1RixJQUFJLENBQUMsVUFBVSxHQUFHLGdCQUFnQixDQUFDLFdBQVcsQ0FBQztRQUMvQyxJQUFJLENBQUMsUUFBUSxHQUFHLGdCQUFnQixDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDO1FBQzdELElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxVQUFVLEVBQUUsZ0JBQWdCLENBQUMsUUFBUSxJQUFJLE1BQU0sQ0FBQyxDQUFDO1FBQ3pFLElBQUksQ0FBQyxPQUFPLEdBQUcsZ0JBQWdCLEVBQUUsWUFBWSxJQUFJLEtBQUssQ0FBQztRQUN2RCxJQUFJLENBQUMsUUFBUSxHQUFHLGdCQUFnQixFQUFFLFFBQVEsQ0FBQztRQUUzQyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsZ0JBQWdCLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLG1CQUFtQixDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDckgsSUFBSSxDQUFDLG9CQUFvQixHQUFHLGdCQUFnQixDQUFDLGtCQUFrQixJQUFJLEVBQUUsQ0FBQztRQUN0RSxJQUFJLENBQUMsaUJBQWlCLEdBQUcsZ0JBQWdCLENBQUMsZUFBZSxJQUFJLEVBQUUsQ0FBQztRQUNoRSxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDO0lBQ3JDLENBQUM7SUFFRCxJQUFJLGVBQWUsS0FBSyxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUM7SUFFdkQsS0FBSyxLQUFLLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUNuQyxJQUFJLEtBQUssSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBRW5DLGdCQUFnQixLQUFLLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUVuRSxnQkFBZ0IsQ0FBQyxjQUFjO1FBQzdCLEtBQUssTUFBTSxZQUFZLElBQUksY0FBYyxFQUFFO1lBQ3pDLElBQUksWUFBWSxLQUFLLFlBQVksSUFBSSxZQUFZLEtBQUssVUFBVSxFQUFFO2dCQUNoRSxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsY0FBYyxDQUFDLFlBQVksQ0FBQyxDQUFDO2FBQ25EO1NBQ0Y7SUFDSCxDQUFDO0lBRUQsbUJBQW1CLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxHQUFHLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUM7Q0FDNUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBlbGVtZW50VHlwZXMgfSBmcm9tICcuL2Zvcm0uY29uc3RhbnRzJztcbmltcG9ydCB7IEZvcm1FbGVtZW50IH0gZnJvbSAnLi9lbGVtZW50JztcblxuY29uc3QgSEVBREVSID0gJ0hFQURFUic7XG5cbmV4cG9ydCBjbGFzcyBGb3JtQWN0aW9uIGV4dGVuZHMgRm9ybUVsZW1lbnQge1xuICBwcml2YXRlIHJlYWRvbmx5IF9hY3Rpb25BY3RpdmF0ZWQgPSBuZXcgU3ViamVjdDxzdHJpbmc+KCk7XG5cbiAgaW5Qcm9ncmVzcyA9IGZhbHNlO1xuICBuZXdTdGF0ZTogc3RyaW5nO1xuICBiYWNrZW5kOiBib29sZWFuO1xuXG4gIGFjdGlvbkNvZGU6IHN0cmluZztcbiAgYWN0aW9uTmFtZTogc3RyaW5nO1xuICBpY29uTmFtZTogc3RyaW5nO1xuXG4gIHJlc3RyaWN0ZWRPbkZpZWxkOiBzdHJpbmc7XG4gIHJlc3RyaWN0ZWRPbk9wZXJhdG9yOiBzdHJpbmc7XG4gIHJlc3RyaWN0ZWRPblZhbHVlOiBzdHJpbmc7XG4gIGN1c3RvbVZhbGlkYXRpb246IGFueTtcblxuICBjb25zdHJ1Y3RvcihhY3Rpb25EZWZpbml0aW9uLCBmb3JtQ29uZmlnKSB7XG4gICAgc3VwZXIoYWN0aW9uRGVmaW5pdGlvbiwgZm9ybUNvbmZpZyk7XG4gICAgdGhpcy5lbGVtZW50VHlwZSA9IGVsZW1lbnRUeXBlcy5hY3Rpb247XG4gICAgdGhpcy5hY3Rpb25Db2RlID0gYWN0aW9uRGVmaW5pdGlvbi5hY3Rpb25Db2RlID8gYWN0aW9uRGVmaW5pdGlvbi5hY3Rpb25Db2RlLnRvU3RyaW5nKCkgOiAnJztcbiAgICB0aGlzLmFjdGlvbk5hbWUgPSBhY3Rpb25EZWZpbml0aW9uLmFjdGlvblRpdGxlO1xuICAgIHRoaXMuaWNvbk5hbWUgPSBhY3Rpb25EZWZpbml0aW9uLmljb25OYW1lIHx8IHRoaXMuYWN0aW9uQ29kZTtcbiAgICB0aGlzLnNldEN1c3RvbUF0dHJpYnV0ZSgnbG9jYXRpb24nLCBhY3Rpb25EZWZpbml0aW9uLnBvc2l0aW9uIHx8IEhFQURFUik7XG4gICAgdGhpcy5iYWNrZW5kID0gYWN0aW9uRGVmaW5pdGlvbj8uc2VydmVyQWN0aW9uID8/IGZhbHNlO1xuICAgIHRoaXMubmV3U3RhdGUgPSBhY3Rpb25EZWZpbml0aW9uPy5uZXdTdGF0ZTtcblxuICAgIHRoaXMucmVzdHJpY3RlZE9uRmllbGQgPSBhY3Rpb25EZWZpbml0aW9uLmZpZWxkUmVzdHJpY3RlZENvZGUgPyBhY3Rpb25EZWZpbml0aW9uLmZpZWxkUmVzdHJpY3RlZENvZGUudG9TdHJpbmcoKSA6ICcnO1xuICAgIHRoaXMucmVzdHJpY3RlZE9uT3BlcmF0b3IgPSBhY3Rpb25EZWZpbml0aW9uLm9wZXJhdG9yUmVzdHJpY3RlZCB8fCAnJztcbiAgICB0aGlzLnJlc3RyaWN0ZWRPblZhbHVlID0gYWN0aW9uRGVmaW5pdGlvbi52YWx1ZVJlc3RyaWN0ZWQgPz8gJyc7XG4gICAgdGhpcy5jdXN0b21WYWxpZGF0aW9uID0gKCkgPT4gdHJ1ZTtcbiAgfVxuXG4gIGdldCBhY3Rpb25BY3RpdmF0ZWQoKSB7IHJldHVybiB0aGlzLl9hY3Rpb25BY3RpdmF0ZWQ7IH1cblxuICBzdGFydCgpIHsgdGhpcy5pblByb2dyZXNzID0gdHJ1ZTsgfVxuICBzdG9wKCkgeyB0aGlzLmluUHJvZ3Jlc3MgPSBmYWxzZTsgfVxuXG4gIG5vdGlmeUFjdGl2YXRpb24oKSB7IHRoaXMuX2FjdGlvbkFjdGl2YXRlZC5uZXh0KHRoaXMuYWN0aW9uQ29kZSk7IH1cblxuICB1cGRhdGVGcm9tU2VydmVyKHJlY2VpdmVkQWN0aW9uKSB7XG4gICAgZm9yIChjb25zdCBwcm9wZXJ0eU5hbWUgaW4gcmVjZWl2ZWRBY3Rpb24pIHtcbiAgICAgIGlmIChwcm9wZXJ0eU5hbWUgIT09ICdhY3Rpb25Db2RlJyAmJiBwcm9wZXJ0eU5hbWUgIT09ICdhY3Rpb25JZCcpIHtcbiAgICAgICAgdGhpc1twcm9wZXJ0eU5hbWVdID0gcmVjZWl2ZWRBY3Rpb25bcHJvcGVydHlOYW1lXTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBzZXRDdXN0b21WYWxpZGF0aW9uKGNhbGxiYWNrKSB7IHRoaXMuY3VzdG9tVmFsaWRhdGlvbiA9ICgpID0+IGNhbGxiYWNrKCk7IH1cbn1cbiJdfQ==
@@ -1,26 +0,0 @@
1
- import { FormPiecePropagate } from './piece-propagate';
2
- import { elementTypes } from './form.constants';
3
- export class FormElement extends FormPiecePropagate {
4
- constructor(elementDefinition, formConfig) {
5
- super(elementDefinition, formConfig);
6
- this.elementType = null;
7
- }
8
- ;
9
- setAttr(attr, value) {
10
- const { name: attrName, propagate: name } = attr;
11
- this[attrName] = value;
12
- name && this.propagateAttribute(name, value);
13
- }
14
- isField() { return this.elementType === elementTypes.field; }
15
- isAction() { return this.elementType === elementTypes.action; }
16
- isTable() { return this.elementType === elementTypes.table; }
17
- /**
18
- * @deprecated Utilizar viewOnState
19
- */
20
- supportState(state) { return this.viewOnState(state); }
21
- /**
22
- * @deprecated Utilizar viewOnState
23
- */
24
- supportMode(state) { return this.viewOnState(state); }
25
- }
26
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxlbWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R1YWluLW5nLWZvcm1zLWxpYi9zcmMvbGliL2NsYXNzZXMvZm9ybXMvZWxlbWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDaEQsTUFBTSxPQUFPLFdBQVksU0FBUSxrQkFBa0I7SUFHakQsWUFBWSxpQkFBc0IsRUFBRSxVQUFlO1FBQ2pELEtBQUssQ0FBQyxpQkFBaUIsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUh2QyxnQkFBVyxHQUFrQixJQUFJLENBQUM7SUFJbEMsQ0FBQztJQUppQyxDQUFDO0lBTW5DLE9BQU8sQ0FBQyxJQUFTLEVBQUUsS0FBVTtRQUMzQixNQUFNLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFDO1FBQ2pELElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxLQUFLLENBQUM7UUFDdkIsSUFBSSxJQUFJLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVELE9BQU8sS0FBYyxPQUFPLElBQUksQ0FBQyxXQUFXLEtBQUssWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDdEUsUUFBUSxLQUFjLE9BQU8sSUFBSSxDQUFDLFdBQVcsS0FBSyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUN4RSxPQUFPLEtBQWMsT0FBTyxJQUFJLENBQUMsV0FBVyxLQUFLLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBRXRFOztPQUVHO0lBQ0gsWUFBWSxDQUFDLEtBQWEsSUFBYSxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBRXhFOztPQUVHO0lBQ0gsV0FBVyxDQUFDLEtBQWEsSUFBYSxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0NBQ3hFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRm9ybVBpZWNlUHJvcGFnYXRlIH0gZnJvbSAnLi9waWVjZS1wcm9wYWdhdGUnO1xuaW1wb3J0IHsgZWxlbWVudFR5cGVzIH0gZnJvbSAnLi9mb3JtLmNvbnN0YW50cyc7XG5leHBvcnQgY2xhc3MgRm9ybUVsZW1lbnQgZXh0ZW5kcyBGb3JtUGllY2VQcm9wYWdhdGUge1xuICBlbGVtZW50VHlwZTogc3RyaW5nIHwgbnVsbCA9IG51bGw7O1xuXG4gIGNvbnN0cnVjdG9yKGVsZW1lbnREZWZpbml0aW9uOiBhbnksIGZvcm1Db25maWc6IGFueSkge1xuICAgIHN1cGVyKGVsZW1lbnREZWZpbml0aW9uLCBmb3JtQ29uZmlnKTtcbiAgfVxuXG4gIHNldEF0dHIoYXR0cjogYW55LCB2YWx1ZTogYW55KSB7XG4gICAgY29uc3QgeyBuYW1lOiBhdHRyTmFtZSwgcHJvcGFnYXRlOiBuYW1lIH0gPSBhdHRyO1xuICAgIHRoaXNbYXR0ck5hbWVdID0gdmFsdWU7XG4gICAgbmFtZSAmJiB0aGlzLnByb3BhZ2F0ZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7XG4gIH1cblxuICBpc0ZpZWxkKCk6IGJvb2xlYW4geyByZXR1cm4gdGhpcy5lbGVtZW50VHlwZSA9PT0gZWxlbWVudFR5cGVzLmZpZWxkOyB9XG4gIGlzQWN0aW9uKCk6IGJvb2xlYW4geyByZXR1cm4gdGhpcy5lbGVtZW50VHlwZSA9PT0gZWxlbWVudFR5cGVzLmFjdGlvbjsgfVxuICBpc1RhYmxlKCk6IGJvb2xlYW4geyByZXR1cm4gdGhpcy5lbGVtZW50VHlwZSA9PT0gZWxlbWVudFR5cGVzLnRhYmxlOyB9XG5cbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIFV0aWxpemFyIHZpZXdPblN0YXRlXG4gICAqL1xuICBzdXBwb3J0U3RhdGUoc3RhdGU6IHN0cmluZyk6IGJvb2xlYW4geyByZXR1cm4gdGhpcy52aWV3T25TdGF0ZShzdGF0ZSk7IH1cblxuICAvKipcbiAgICogQGRlcHJlY2F0ZWQgVXRpbGl6YXIgdmlld09uU3RhdGVcbiAgICovXG4gIHN1cHBvcnRNb2RlKHN0YXRlOiBzdHJpbmcpOiBib29sZWFuIHsgcmV0dXJuIHRoaXMudmlld09uU3RhdGUoc3RhdGUpOyB9XG59XG4iXX0=