@rentman/rm-core 1.0.0 → 1.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (126) hide show
  1. package/dist/definitions/classes/ApiFormatter.d.ts +36 -0
  2. package/dist/definitions/classes/BatchStatus.d.ts +16 -0
  3. package/dist/definitions/classes/ChangesCompiler.d.ts +34 -0
  4. package/dist/definitions/classes/ChangesProcessor.d.ts +46 -0
  5. package/dist/definitions/classes/CollectionCache.d.ts +39 -0
  6. package/dist/definitions/classes/CollectionEntryService.d.ts +15 -0
  7. package/dist/definitions/classes/CollectionHandler.d.ts +79 -0
  8. package/dist/definitions/classes/CollectionResourceService.d.ts +5 -0
  9. package/dist/definitions/classes/ColumnCache.d.ts +18 -0
  10. package/dist/definitions/classes/ColumnExpansion.d.ts +16 -0
  11. package/dist/definitions/classes/ColumnHandler.d.ts +19 -0
  12. package/dist/definitions/classes/ColumnSet.d.ts +54 -0
  13. package/dist/definitions/classes/ColumnUtil.d.ts +80 -0
  14. package/dist/definitions/classes/CreateRequest.d.ts +28 -0
  15. package/dist/definitions/classes/ItemAdministrator.d.ts +114 -0
  16. package/dist/definitions/classes/ItemCache.d.ts +22 -0
  17. package/dist/definitions/classes/ItemEntryService.d.ts +50 -0
  18. package/dist/definitions/classes/ItemHandler.d.ts +70 -0
  19. package/dist/definitions/classes/ItemRequestService.d.ts +31 -0
  20. package/dist/definitions/classes/ItemResourceService.d.ts +8 -0
  21. package/dist/definitions/classes/KeyService.d.ts +28 -0
  22. package/dist/definitions/classes/LockService.d.ts +25 -0
  23. package/dist/definitions/classes/ModuleChangesCompiler.d.ts +18 -0
  24. package/dist/definitions/classes/PromiseService.d.ts +10 -0
  25. package/dist/definitions/classes/QueryMatcher.d.ts +14 -0
  26. package/dist/definitions/classes/QueryParser.d.ts +16 -0
  27. package/dist/definitions/classes/QueryService.d.ts +19 -0
  28. package/dist/definitions/classes/RequestColumnExpansion.d.ts +9 -0
  29. package/dist/definitions/classes/ResourceCache.d.ts +78 -0
  30. package/dist/definitions/classes/Util.d.ts +25 -0
  31. package/dist/definitions/constants.d.ts +10 -0
  32. package/dist/definitions/factories/BatchStatusFactory.d.ts +8 -0
  33. package/dist/definitions/factories/ChangesCompilerFactory.d.ts +9 -0
  34. package/dist/definitions/factories/ChangesProcessorFactory.d.ts +31 -0
  35. package/{src/factories/CollectionCacheFactory.ts → dist/definitions/factories/CollectionCacheFactory.d.ts} +3 -11
  36. package/dist/definitions/factories/CollectionEntryFactory.d.ts +19 -0
  37. package/dist/definitions/factories/CollectionResourceFactory.d.ts +18 -0
  38. package/dist/definitions/factories/ColumnExpansionFactory.d.ts +11 -0
  39. package/dist/definitions/factories/ColumnSetFactory.d.ts +9 -0
  40. package/dist/definitions/factories/CreateRequestFactory.d.ts +13 -0
  41. package/dist/definitions/factories/ItemCacheFactory.d.ts +9 -0
  42. package/dist/definitions/factories/ItemEntryFactory.d.ts +6 -0
  43. package/dist/definitions/factories/ItemResourceFactory.d.ts +12 -0
  44. package/{src/factories/ModuleChangesCompilerFactory.ts → dist/definitions/factories/ModuleChangesCompilerFactory.d.ts} +3 -14
  45. package/dist/definitions/factories/QueryMatcherFactory.d.ts +7 -0
  46. package/dist/definitions/factories/QueryParserFactory.d.ts +5 -0
  47. package/{src/factories/RequestColumnExpansionFactory.ts → dist/definitions/factories/RequestColumnExpansionFactory.d.ts} +3 -11
  48. package/dist/definitions/factories/ResourceCacheFactory.d.ts +33 -0
  49. package/dist/definitions/index.d.ts +121 -0
  50. package/dist/definitions/interfaces/ApiRequestServiceInterface.d.ts +10 -0
  51. package/dist/definitions/interfaces/AuthInterface.d.ts +4 -0
  52. package/{src/interfaces/ErrorHandlerInterface.ts → dist/definitions/interfaces/ErrorHandlerInterface.d.ts} +2 -2
  53. package/dist/definitions/interfaces/ResourceCacheInterface.d.ts +6 -0
  54. package/dist/definitions/models/CollectionEditResource.d.ts +23 -0
  55. package/dist/definitions/models/CollectionEntry.d.ts +61 -0
  56. package/dist/definitions/models/CollectionResource.d.ts +29 -0
  57. package/{src/models/CollectionViewResource.ts → dist/definitions/models/CollectionViewResource.d.ts} +6 -13
  58. package/dist/definitions/models/EditResource.d.ts +7 -0
  59. package/dist/definitions/models/ItemEntry.d.ts +18 -0
  60. package/dist/definitions/models/ItemResource.d.ts +14 -0
  61. package/dist/definitions/models/ViewResource.d.ts +7 -0
  62. package/dist/rm-core.js +29 -0
  63. package/dist/rm-core.js.map +1 -0
  64. package/package.json +5 -1
  65. package/.editorconfig +0 -23
  66. package/src/classes/ApiFormatter.ts +0 -338
  67. package/src/classes/BatchStatus.ts +0 -86
  68. package/src/classes/ChangesCompiler.ts +0 -161
  69. package/src/classes/ChangesProcessor.ts +0 -475
  70. package/src/classes/CollectionCache.ts +0 -234
  71. package/src/classes/CollectionEntryService.ts +0 -83
  72. package/src/classes/CollectionHandler.ts +0 -619
  73. package/src/classes/CollectionResourceService.ts +0 -38
  74. package/src/classes/ColumnCache.ts +0 -114
  75. package/src/classes/ColumnExpansion.ts +0 -74
  76. package/src/classes/ColumnHandler.ts +0 -90
  77. package/src/classes/ColumnSet.ts +0 -181
  78. package/src/classes/ColumnUtil.ts +0 -589
  79. package/src/classes/CreateRequest.ts +0 -158
  80. package/src/classes/ItemAdministrator.ts +0 -571
  81. package/src/classes/ItemCache.ts +0 -158
  82. package/src/classes/ItemEntryService.ts +0 -488
  83. package/src/classes/ItemHandler.ts +0 -592
  84. package/src/classes/ItemRequestService.ts +0 -229
  85. package/src/classes/ItemResourceService.ts +0 -36
  86. package/src/classes/KeyService.ts +0 -76
  87. package/src/classes/LockService.ts +0 -184
  88. package/src/classes/ModuleChangesCompiler.ts +0 -123
  89. package/src/classes/PromiseService.ts +0 -19
  90. package/src/classes/QueryMatcher.ts +0 -135
  91. package/src/classes/QueryParser.ts +0 -209
  92. package/src/classes/QueryService.ts +0 -35
  93. package/src/classes/RequestColumnExpansion.ts +0 -31
  94. package/src/classes/ResourceCache.ts +0 -289
  95. package/src/classes/Util.ts +0 -422
  96. package/src/constants.ts +0 -11
  97. package/src/factories/BatchStatusFactory.ts +0 -18
  98. package/src/factories/ChangesCompilerFactory.ts +0 -20
  99. package/src/factories/ChangesProcessorFactory.ts +0 -53
  100. package/src/factories/CollectionEntryFactory.ts +0 -35
  101. package/src/factories/CollectionResourceFactory.ts +0 -36
  102. package/src/factories/ColumnExpansionFactory.ts +0 -25
  103. package/src/factories/ColumnSetFactory.ts +0 -24
  104. package/src/factories/CreateRequestFactory.ts +0 -28
  105. package/src/factories/ItemCacheFactory.ts +0 -18
  106. package/src/factories/ItemEntryFactory.ts +0 -18
  107. package/src/factories/ItemResourceFactory.ts +0 -28
  108. package/src/factories/QueryMatcherFactory.ts +0 -20
  109. package/src/factories/QueryParserFactory.ts +0 -10
  110. package/src/factories/ResourceCacheFactory.ts +0 -55
  111. package/src/index.ts +0 -188
  112. package/src/interfaces/ApiRequestServiceInterface.ts +0 -17
  113. package/src/interfaces/AuthInterface.ts +0 -5
  114. package/src/interfaces/ResourceCacheInterface.ts +0 -9
  115. package/src/models/CollectionEditResource.ts +0 -139
  116. package/src/models/CollectionEntry.ts +0 -448
  117. package/src/models/CollectionResource.ts +0 -223
  118. package/src/models/EditResource.ts +0 -15
  119. package/src/models/ItemEntry.ts +0 -24
  120. package/src/models/ItemResource.ts +0 -35
  121. package/src/models/ViewResource.ts +0 -14
  122. package/tsconfig.json +0 -12
  123. package/tslint.json +0 -63
  124. package/webpack.common.js +0 -35
  125. package/webpack.dev.js +0 -10
  126. package/webpack.prod.js +0 -17
@@ -1,38 +0,0 @@
1
- import { noop } from "../index";
2
- import ItemResource from "../models/ItemResource";
3
- import { shallowMerge } from "./Util";
4
-
5
- export default class CollectionResourceService {
6
- processOptions (options) {
7
- return shallowMerge(
8
- options,
9
- {
10
- editItems: false,
11
- editCollection: false,
12
- modInstant: false,
13
- enableSave: true,
14
- onItemsCreated: noop,
15
- onChange: noop, // needed for comparison
16
- onAdd: noop,
17
- onRemove: noop,
18
- onAddInitial: noop,
19
- onRemoveInitial: noop,
20
- onDeactiveateItem: noop, // will be overwritten in ResourceCache
21
- onDeactivateCollection: noop, // will be overwritten in ResourceCache
22
- resourceKey: null, // TODO: remove
23
- clearOnTabChange: true,
24
- clearOnSubTabChange: true,
25
- custom: null
26
- }
27
- );
28
- }
29
-
30
- getIdArray (itemResources: ItemResource[]) {
31
- const result = [];
32
-
33
- for (const itemResource of itemResources)
34
- result.push(itemResource.entry.itemId);
35
-
36
- return result;
37
- }
38
- }
@@ -1,114 +0,0 @@
1
- import ColumnUtil from './ColumnUtil';
2
-
3
- export default class ColumnCache {
4
- cache = {};
5
- allColumns = {};
6
-
7
- constructor (
8
- private columnUtil: ColumnUtil
9
- ) {
10
- }
11
-
12
- setColumn (itemType, responseColumn) {
13
- if (this.cache[itemType] === undefined)
14
- this.cache[itemType] = {};
15
-
16
- const entry = this.cache[itemType];
17
- const columnId = responseColumn.id;
18
-
19
- if (entry[columnId] === undefined)
20
- entry[columnId] = responseColumn;
21
-
22
- return entry[columnId];
23
- }
24
-
25
- setColumns (itemType, requestColumns, responseColumns) {
26
- const result = {};
27
-
28
- for (const responseType in responseColumns) {
29
- const columns = responseColumns[responseType];
30
-
31
- result[responseType] = {};
32
-
33
- for (const columnId in columns)
34
- result[responseType][columnId] = this.setColumn(responseType, columns[columnId]);
35
- }
36
-
37
- if (requestColumns === true)
38
- this.allColumns[itemType] = true;
39
-
40
- return result;
41
- }
42
-
43
- retrieve (itemType, requestColumns): { missing: any[] | true, cached: object } {
44
- if (requestColumns === true) {
45
- if (this.containsAll(itemType))
46
- return {cached: this.getColumns(itemType), missing: []};
47
-
48
- return {cached: {}, missing: true};
49
- }
50
-
51
- const reponseAccumulator = {};
52
- const requestAccumulator = [];
53
-
54
- this.retrieveColumns(itemType, requestColumns, requestAccumulator, reponseAccumulator);
55
-
56
- return {missing: requestAccumulator, cached: reponseAccumulator};
57
- }
58
-
59
- containsAll (itemType) {
60
- return this.allColumns[itemType] === true;
61
- }
62
-
63
- getColumns (itemType) {
64
- const columns = this.cache[itemType] === undefined ? [] : this.cache[itemType];
65
- const result = {};
66
-
67
- result[itemType] = columns;
68
- return result;
69
- }
70
-
71
- private retrieveColumns (itemType, requestColumns, requestAccumulator, responseAccumulator) {
72
- // always retrieve the id column
73
- this.retrieveColumn(itemType, 'id', requestAccumulator, responseAccumulator);
74
-
75
- for (const requestColumn of requestColumns)
76
- this.retrieveColumn(itemType, requestColumn, requestAccumulator, responseAccumulator);
77
- }
78
-
79
- private retrieveColumn (itemType, requestColumn, requestAccumulator, responseAccumulator) {
80
- const column = this.columnUtil.parseRequestColumn(requestColumn);
81
- const responseColumn = this.getColumn(itemType, column.id);
82
-
83
- if (responseColumn === undefined) {
84
- requestAccumulator.push(requestColumn);
85
- return;
86
- }
87
-
88
- if (responseAccumulator[itemType] === undefined)
89
- responseAccumulator[itemType] = {};
90
-
91
- responseAccumulator[itemType][column.id] = responseColumn;
92
-
93
- if (column.children.length === 0)
94
- return;
95
-
96
- const missingDerived = [];
97
-
98
- this.retrieveColumns(responseColumn.itemType, column.children, missingDerived, responseAccumulator);
99
-
100
- if (missingDerived.length === 0)
101
- return;
102
-
103
- const missingRequest = {};
104
- missingRequest[column.id] = missingDerived;
105
- requestAccumulator.push(missingRequest);
106
- }
107
-
108
- private getColumn (itemType, columnId) {
109
- if (this.cache[itemType] === undefined)
110
- return;
111
-
112
- return this.cache[itemType][columnId];
113
- }
114
- }
@@ -1,74 +0,0 @@
1
- import ColumnSetFactory from "../factories/ColumnSetFactory";
2
- import ColumnHandler from "./ColumnHandler";
3
- import ColumnUtil from "./ColumnUtil";
4
-
5
- export default class ColumnExpansion {
6
- expansionMap: any = {};
7
- requestColumnsTrue: boolean;
8
-
9
- constructor (
10
- private columnHandler: ColumnHandler,
11
- private columnSetFactory: ColumnSetFactory,
12
- private columnUtil: ColumnUtil,
13
- public itemType: string,
14
- public requestColumns: any | boolean,
15
- public responseColumns: any
16
- ) {
17
- if (requestColumns === true) {
18
- // requestColumns should always be an array, when it is true derived column information will be lost
19
- this.requestColumnsTrue = true;
20
- this.requestColumns = [];
21
-
22
- for (const columnId in responseColumns[itemType])
23
- this.requestColumns.push(columnId);
24
- } else
25
- this.requestColumnsTrue = false;
26
- }
27
-
28
- run (columnInfo: any, returnExpansionResult: boolean) {
29
- const columnInfoId = columnInfo.id;
30
-
31
- if (this.expansionMap[columnInfoId] !== undefined)
32
- return returnExpansionResult ? this.expansionMap[columnInfoId] :
33
- this.expansionMap[columnInfoId].merged;
34
-
35
- const isColumnSubset = this.columnUtil.isColumnSubset(
36
- this.requestColumns,
37
- columnInfo.request,
38
- columnInfo.true
39
- );
40
-
41
- if (isColumnSubset)
42
- return returnExpansionResult ? null : columnInfo;
43
-
44
- this.expansionMap[columnInfoId] = this.expandColumnInfo(columnInfo);
45
-
46
- return returnExpansionResult ? this.expansionMap[columnInfoId] :
47
- this.expansionMap[columnInfoId].merged;
48
- }
49
-
50
- private expandColumnInfo (columnInfo: any) {
51
- const requestMergeResult = this.columnUtil.mergeRequestColumns(columnInfo.request, this.requestColumns);
52
- const mergedResponseColumns = this.columnUtil
53
- .mergeResponseColumns(columnInfo.response, this.responseColumns)
54
- .merged;
55
-
56
- const merged = this.columnSetFactory.construct(
57
- this.itemType,
58
- requestMergeResult.merged,
59
- mergedResponseColumns
60
- );
61
-
62
- const difference = this.columnSetFactory.construct(
63
- this.itemType,
64
- requestMergeResult.difference,
65
- mergedResponseColumns, // we need to be able to look up the parent of derived columns
66
- false,
67
- false
68
- );
69
-
70
- merged.true = this.requestColumnsTrue || columnInfo.true;
71
-
72
- return {merged: merged, difference: difference};
73
- }
74
- }
@@ -1,90 +0,0 @@
1
- import ApiRequestServiceInterface from '../interfaces/ApiRequestServiceInterface';
2
- import ErrorHandlerInterface from '../interfaces/ErrorHandlerInterface';
3
- import ColumnCache from './ColumnCache';
4
- import ColumnUtil from './ColumnUtil';
5
- import PromiseService from "./PromiseService";
6
-
7
- export default class ColumnHandler {
8
- constructor (
9
- private apiRequestService: ApiRequestServiceInterface,
10
- private errorHandler: ErrorHandlerInterface,
11
- private promiseService: PromiseService,
12
- private cache: ColumnCache,
13
- private columnUtil: ColumnUtil
14
- ) {
15
- }
16
-
17
- setColumn (itemType, responseColumn) {
18
- this.cache.setColumn(itemType, responseColumn);
19
- }
20
-
21
- setColumns (itemType, requestColumns, responseColumns) {
22
- this.cache.setColumns(itemType, requestColumns, responseColumns);
23
- }
24
-
25
- fetchItemTypeTranslations (itemTypes): Promise<any> {
26
- const promises = [];
27
- const itemTypeMap = {};
28
-
29
- for (const itemType of itemTypes) {
30
- const length = promises.push(this.fetch(itemType, ['id']));
31
-
32
- itemTypeMap[itemType] = length - 1;
33
- }
34
-
35
- return this.promiseService.all(promises)
36
- .then(
37
- response => {
38
- const result = {};
39
-
40
- for (let i = 0; i < response.length; i++) {
41
- const itemType = itemTypeMap[i];
42
-
43
- result[itemType] = response[itemType][itemType].id.name;
44
- }
45
-
46
- return result;
47
- },
48
- this.errorHandler.reject
49
- );
50
- }
51
-
52
- request (itemType, columns, params = {}): Promise<any> {
53
- const requestColumns = {
54
- [itemType]: columns
55
- };
56
-
57
- return this.apiRequestService.columns(itemType, requestColumns, params).then(
58
- columnResource => {
59
- return this.cache.setColumns(
60
- itemType,
61
- columns,
62
- columnResource.fetchColumnsObject()
63
- );
64
- },
65
- this.errorHandler.reject
66
- );
67
- }
68
-
69
- fetch (itemType, requestColumns, params = {}): Promise<any> {
70
- const columnResource = this.cache.retrieve(itemType, requestColumns);
71
-
72
- if (columnResource.missing !== true && columnResource.missing.length === 0)
73
- return this.promiseService.when(columnResource.cached);
74
-
75
- return this.request(itemType, columnResource.missing, params).then(responseColumns => {
76
- return this.columnUtil.mergeResponseColumns(
77
- responseColumns,
78
- columnResource.cached
79
- ).merged;
80
- }
81
- );
82
- }
83
-
84
- fetchAll (itemType): Promise<any> {
85
- if (this.cache.containsAll(itemType))
86
- return this.promiseService.when(this.cache.getColumns(itemType));
87
-
88
- return this.request(itemType, true);
89
- }
90
- }
@@ -1,181 +0,0 @@
1
- import { COLUMN_SEPERATOR } from '../constants';
2
- import ColumnHandler from './ColumnHandler';
3
- import ColumnUtil from './ColumnUtil';
4
-
5
- let currentId = 0;
6
-
7
- export default class ColumnSet {
8
- id = ++currentId;
9
- true: boolean;
10
- link = null;
11
- main = [];
12
- derived = [];
13
- root = [];
14
- leaf = [];
15
- formatted = {
16
- main: [],
17
- derived: []
18
- };
19
- filtered = [];
20
- custom = [];
21
- searchable = [];
22
- item = [];
23
- notItem = [];
24
-
25
- request = [];
26
- response = {};
27
-
28
- constructor (
29
- private columnHandler: ColumnHandler,
30
- private columnUtil: ColumnUtil,
31
- public itemType,
32
- public requestColumns,
33
- public responseColumns,
34
- public enableCaching = true,
35
- public includeIdColumn = true
36
- ) {
37
- this.true = requestColumns === true;
38
-
39
- if (requestColumns === true)
40
- this.processResponseColumns();
41
- else
42
- this.processRequestColumns();
43
- }
44
-
45
- processResponseColumns () {
46
- this.request = [];
47
- this.response = this.enableCaching ?
48
- this.columnHandler.setColumns(this.itemType, true, this.responseColumns) :
49
- this.responseColumns;
50
-
51
- for (const columnId in this.responseColumns[this.itemType]) {
52
- this.main.push(
53
- this.getColumnInfo(
54
- this.responseColumns[this.itemType][columnId],
55
- [],
56
- null
57
- )
58
- );
59
-
60
- this.request.push(columnId);
61
- }
62
- }
63
-
64
- processRequestColumns () {
65
- this.request = this.requestColumns;
66
- this.response = {};
67
-
68
- if (this.requestColumns.length === 0)
69
- return;
70
-
71
- for (const requestColumn of this.requestColumns) {
72
- const columnInfo = this.getRequestColumnInfo(requestColumn, this.itemType, null);
73
-
74
- if (columnInfo === null)
75
- continue;
76
-
77
- this.main.push(columnInfo);
78
-
79
- if (!columnInfo.isLeaf)
80
- this.root.push(columnInfo);
81
- }
82
-
83
- if (this.includeIdColumn && this.response[this.itemType].id === undefined)
84
- this.main.push(this.getRequestColumnInfo('id', this.itemType, null));
85
- }
86
-
87
- getRequestColumnInfo (requestColumn, columnType, parent) {
88
- const parsedColumn = this.columnUtil.parseRequestColumn(requestColumn);
89
- const columnId = parsedColumn.id;
90
-
91
- let responseColumn;
92
-
93
- if (this.responseColumns[columnType] !== undefined)
94
- responseColumn = this.responseColumns[columnType][columnId];
95
-
96
- if (responseColumn === undefined) {
97
- console.warn('No api column for request column', columnId, 'for itemType', columnType);
98
-
99
- return null;
100
- }
101
-
102
- if (this.enableCaching)
103
- responseColumn = this.columnHandler.setColumn(columnType, responseColumn);
104
-
105
- const resultResponse = this.response;
106
-
107
- if (resultResponse[columnType] === undefined)
108
- resultResponse[columnType] = {};
109
-
110
- if (resultResponse[columnType][columnId] === undefined)
111
- resultResponse[columnType][columnId] = responseColumn;
112
-
113
- return this.getColumnInfo(responseColumn, parsedColumn.children, parent);
114
- }
115
-
116
- getColumnInfo (responseColumn, children, parent) {
117
- const isDerived = parent !== null;
118
- const columnId = responseColumn.id;
119
-
120
- const columnInfo = {
121
- id: columnId,
122
- path: isDerived ?
123
- parent.path.concat(COLUMN_SEPERATOR, columnId) : columnId,
124
- apiColumn: responseColumn,
125
- level: isDerived ? parent.level + 1 : 0,
126
- isLeaf: children.length === 0,
127
- itemType: '',
128
- children: [],
129
- parent: null,
130
- tailPath: null
131
- };
132
-
133
- if (isDerived) {
134
- this.derived.push(columnInfo);
135
-
136
- columnInfo.parent = parent;
137
- columnInfo.tailPath = parent.level > 0 ?
138
- parent.tailPath.concat(COLUMN_SEPERATOR, columnId) : columnId;
139
- } else // we could possibly add derived columns to 'notItem'
140
- this[this.columnUtil.isItemColumn(responseColumn) ? 'item' : 'notItem'].push(columnInfo);
141
-
142
- if (this.columnUtil.isFormattedColumn(responseColumn))
143
- this.formatted[isDerived ? 'derived' : 'main'].push(columnInfo);
144
-
145
- if (this.columnUtil.isFilteredColumn(responseColumn))
146
- this.filtered.push(columnInfo);
147
-
148
- if (this.columnUtil.isSearchableColumn(responseColumn))
149
- this.searchable.push(columnInfo);
150
-
151
- if (this.columnUtil.isCustomColumn(responseColumn))
152
- this.custom.push(columnInfo);
153
-
154
- if (responseColumn.type === 'link')
155
- this.link = responseColumn;
156
-
157
- if (children.length === 0) {
158
- this.leaf.push(columnInfo);
159
-
160
- return columnInfo;
161
- }
162
-
163
- if (typeof responseColumn.itemType === 'undefined')
164
- console.warn('itemType undefined in column', responseColumn);
165
-
166
- columnInfo.itemType = responseColumn.itemType;
167
- columnInfo.children = [];
168
-
169
- // columns is *not* true
170
- for (const child of children) {
171
- const childInfo = this.getRequestColumnInfo(child, columnInfo.itemType, columnInfo);
172
-
173
- if (childInfo === null)
174
- continue;
175
-
176
- columnInfo.children.push(childInfo);
177
- }
178
-
179
- return columnInfo;
180
- }
181
- }