generathor-laravel 1.0.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 (92) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +419 -0
  3. package/dist/configuration.d.ts +25 -0
  4. package/dist/configuration.js +43 -0
  5. package/dist/helpers/handlebars.d.ts +3 -0
  6. package/dist/helpers/handlebars.js +20 -0
  7. package/dist/helpers/naming.d.ts +18 -0
  8. package/dist/helpers/naming.js +98 -0
  9. package/dist/helpers/string.d.ts +27 -0
  10. package/dist/helpers/string.js +120 -0
  11. package/dist/helpers/type.d.ts +4 -0
  12. package/dist/helpers/type.js +41 -0
  13. package/dist/index.d.ts +2 -0
  14. package/dist/index.js +18 -0
  15. package/dist/template.d.ts +20 -0
  16. package/dist/template.js +284 -0
  17. package/dist/transformers/collection/attachForm.d.ts +4 -0
  18. package/dist/transformers/collection/attachForm.js +55 -0
  19. package/dist/transformers/collection/attachRequest.d.ts +5 -0
  20. package/dist/transformers/collection/attachRequest.js +92 -0
  21. package/dist/transformers/collection/base.d.ts +20 -0
  22. package/dist/transformers/collection/base.js +54 -0
  23. package/dist/transformers/collection/baseController.d.ts +4 -0
  24. package/dist/transformers/collection/baseController.js +14 -0
  25. package/dist/transformers/collection/belongsToRelation.d.ts +5 -0
  26. package/dist/transformers/collection/belongsToRelation.js +86 -0
  27. package/dist/transformers/collection/controller.d.ts +8 -0
  28. package/dist/transformers/collection/controller.js +163 -0
  29. package/dist/transformers/collection/createRelationForm.d.ts +4 -0
  30. package/dist/transformers/collection/createRelationForm.js +163 -0
  31. package/dist/transformers/collection/filterRelationForm.d.ts +4 -0
  32. package/dist/transformers/collection/filterRelationForm.js +164 -0
  33. package/dist/transformers/collection/hasManyRelation.d.ts +5 -0
  34. package/dist/transformers/collection/hasManyRelation.js +91 -0
  35. package/dist/transformers/collection/menu.d.ts +4 -0
  36. package/dist/transformers/collection/menu.js +25 -0
  37. package/dist/transformers/collection/route.d.ts +5 -0
  38. package/dist/transformers/collection/route.js +123 -0
  39. package/dist/transformers/item/base.d.ts +19 -0
  40. package/dist/transformers/item/base.js +33 -0
  41. package/dist/transformers/item/edit.d.ts +4 -0
  42. package/dist/transformers/item/edit.js +21 -0
  43. package/dist/transformers/item/eloquent.d.ts +4 -0
  44. package/dist/transformers/item/eloquent.js +158 -0
  45. package/dist/transformers/item/filter.d.ts +5 -0
  46. package/dist/transformers/item/filter.js +41 -0
  47. package/dist/transformers/item/forms.d.ts +4 -0
  48. package/dist/transformers/item/forms.js +226 -0
  49. package/dist/transformers/item/laravel.d.ts +15 -0
  50. package/dist/transformers/item/laravel.js +36 -0
  51. package/dist/transformers/item/list.d.ts +4 -0
  52. package/dist/transformers/item/list.js +36 -0
  53. package/dist/transformers/item/requests.d.ts +4 -0
  54. package/dist/transformers/item/requests.js +125 -0
  55. package/dist/transformers/item/show.d.ts +5 -0
  56. package/dist/transformers/item/show.js +54 -0
  57. package/package.json +46 -0
  58. package/templates/eloquent/child.handlebars +13 -0
  59. package/templates/eloquent/filter.handlebars +88 -0
  60. package/templates/eloquent/parent.handlebars +64 -0
  61. package/templates/others/base-controller.handlebars +46 -0
  62. package/templates/others/controller.handlebars +185 -0
  63. package/templates/others/pk-trait.handlebars +157 -0
  64. package/templates/others/request.handlebars +32 -0
  65. package/templates/others/routes.handlebars +16 -0
  66. package/templates/views/breadcrumbs.handlebars +21 -0
  67. package/templates/views/edit.handlebars +41 -0
  68. package/templates/views/form.handlebars +103 -0
  69. package/templates/views/icons/check-circle.handlebars +3 -0
  70. package/templates/views/icons/chevron-down.handlebars +3 -0
  71. package/templates/views/icons/chevron-right.handlebars +3 -0
  72. package/templates/views/icons/computer.handlebars +3 -0
  73. package/templates/views/icons/eye.handlebars +4 -0
  74. package/templates/views/icons/funnel.handlebars +3 -0
  75. package/templates/views/icons/home.handlebars +3 -0
  76. package/templates/views/icons/link.handlebars +3 -0
  77. package/templates/views/icons/list-bullet.handlebars +3 -0
  78. package/templates/views/icons/pencil.handlebars +3 -0
  79. package/templates/views/icons/plus.handlebars +3 -0
  80. package/templates/views/icons/trash.handlebars +3 -0
  81. package/templates/views/icons/unlink.handlebars +3 -0
  82. package/templates/views/icons/x-circle.handlebars +3 -0
  83. package/templates/views/icons/x.handlebars +3 -0
  84. package/templates/views/index.handlebars +181 -0
  85. package/templates/views/loader.handlebars +6 -0
  86. package/templates/views/menu.handlebars +39 -0
  87. package/templates/views/modal.handlebars +36 -0
  88. package/templates/views/record-input.handlebars +90 -0
  89. package/templates/views/relation-item.handlebars +180 -0
  90. package/templates/views/relation-list.handlebars +199 -0
  91. package/templates/views/show.handlebars +134 -0
  92. package/templates/views/tabs.handlebars +16 -0
@@ -0,0 +1,20 @@
1
+ import { Configuration } from '../../configuration';
2
+ import { Item, Relation } from 'generathor-db';
3
+ type FKDetails = {
4
+ relationAttribute: string;
5
+ table: string;
6
+ context: string;
7
+ routeRecordName: string;
8
+ };
9
+ export type TransformedItem = Record<string, any>;
10
+ export declare abstract class BaseTransformer {
11
+ protected $items: Item[];
12
+ protected $config: Configuration;
13
+ constructor($items: Item[], $config: Configuration);
14
+ abstract transform(): TransformedItem[];
15
+ protected mapByTable(): Record<string, Item>;
16
+ protected references(relation: Relation): Record<string, string>;
17
+ protected fksByTable(): Record<string, Record<string, FKDetails>>;
18
+ private fks;
19
+ }
20
+ export {};
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.BaseTransformer = void 0;
7
+ const naming_1 = __importDefault(require("../../helpers/naming"));
8
+ class BaseTransformer {
9
+ constructor($items, $config) {
10
+ this.$items = $items;
11
+ this.$config = $config;
12
+ }
13
+ mapByTable() {
14
+ const map = {};
15
+ for (const item of this.$items) {
16
+ map[item.table] = item;
17
+ }
18
+ return map;
19
+ }
20
+ references(relation) {
21
+ const references = {};
22
+ for (const index in relation.references) {
23
+ references[relation.references[index]] = relation.columns[index];
24
+ }
25
+ return references;
26
+ }
27
+ fksByTable() {
28
+ const map = {};
29
+ for (const item of this.$items) {
30
+ map[item.table] = this.fks(item);
31
+ }
32
+ return map;
33
+ }
34
+ fks(item) {
35
+ const fks = {};
36
+ item.relations.forEach((relation) => {
37
+ if (relation.type !== 'belongs-to') {
38
+ return;
39
+ }
40
+ const relationColumnKeys = Object.keys(relation.columns);
41
+ const relationAttribute = naming_1.default.relationAttribute(relation, item.table);
42
+ if (relationColumnKeys.length === 1) {
43
+ fks[relation.columns[0]] = {
44
+ relationAttribute,
45
+ table: relation.on.table,
46
+ context: naming_1.default.context(relation.on.table),
47
+ routeRecordName: naming_1.default.recordName(relation.on.table),
48
+ };
49
+ }
50
+ });
51
+ return fks;
52
+ }
53
+ }
54
+ exports.BaseTransformer = BaseTransformer;
@@ -0,0 +1,4 @@
1
+ import { BaseTransformer, TransformedItem } from './base';
2
+ export declare class BaseController extends BaseTransformer {
3
+ transform(): TransformedItem[];
4
+ }
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BaseController = void 0;
4
+ const base_1 = require("./base");
5
+ class BaseController extends base_1.BaseTransformer {
6
+ transform() {
7
+ return [
8
+ {
9
+ namespace: 'App\\Http\\Controllers\\Generathor',
10
+ },
11
+ ];
12
+ }
13
+ }
14
+ exports.BaseController = BaseController;
@@ -0,0 +1,5 @@
1
+ import { BaseTransformer, TransformedItem } from './base';
2
+ export declare class BelongsToRelation extends BaseTransformer {
3
+ transform(): TransformedItem[];
4
+ private tabs;
5
+ }
@@ -0,0 +1,86 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.BelongsToRelation = void 0;
7
+ const base_1 = require("./base");
8
+ const naming_1 = __importDefault(require("../../helpers/naming"));
9
+ class BelongsToRelation extends base_1.BaseTransformer {
10
+ transform() {
11
+ const result = [];
12
+ const fksByTable = this.fksByTable();
13
+ const map = this.mapByTable();
14
+ for (const item of this.$items) {
15
+ const context = naming_1.default.context(item.table);
16
+ const listLabel = naming_1.default.listLabel(item.table);
17
+ const recordName = naming_1.default.recordName(item.table);
18
+ for (const relation of item.relations) {
19
+ if (relation.type !== 'belongs-to') {
20
+ continue;
21
+ }
22
+ const relationAttribute = naming_1.default.relationAttribute(relation, item.table);
23
+ const relatedItem = map[relation.on.table];
24
+ const fks = fksByTable[relation.on.table];
25
+ result.push({
26
+ context,
27
+ layout: this.$config.layout(),
28
+ homeRoute: this.$config.homeRoute(),
29
+ header: listLabel,
30
+ listLabel: listLabel,
31
+ relationLabel: naming_1.default.relationLabel(relation, item.table),
32
+ relationListLabel: naming_1.default.listLabel(relation.on.table),
33
+ record: recordName,
34
+ routeRelationRecordName: naming_1.default.recordName(relation.on.table),
35
+ capitalizedRelationAttribute: naming_1.default.capitalizedRelationAttribute(relation, item.table),
36
+ relationContext: naming_1.default.relationContext(relation, item.table),
37
+ routeRelationContext: naming_1.default.context(relation.on.table),
38
+ relationAttribute: relationAttribute,
39
+ columns: relatedItem.columns.map((column) => {
40
+ let type = column.type;
41
+ let data = null;
42
+ if (fks[column.name]) {
43
+ type = 'record';
44
+ data = fks[column.name];
45
+ }
46
+ return {
47
+ data,
48
+ type,
49
+ name: column.name,
50
+ label: naming_1.default.columnLabel(column),
51
+ nullable: column.nullable,
52
+ };
53
+ }),
54
+ tabs: this.tabs(context, item, recordName, relationAttribute),
55
+ });
56
+ }
57
+ }
58
+ return result;
59
+ }
60
+ tabs(context, item, recordName, relationAttribute) {
61
+ const tabs = [];
62
+ tabs.push({
63
+ label: 'Details',
64
+ route: `generathor.${context}.show`,
65
+ routeRecord: recordName,
66
+ });
67
+ for (const relation of item.relations) {
68
+ const currentRelationAttribute = naming_1.default.relationAttribute(relation, item.table);
69
+ const relationLabel = naming_1.default.relationLabel(relation, item.table);
70
+ if (currentRelationAttribute === relationAttribute) {
71
+ tabs.push({
72
+ label: relationLabel,
73
+ });
74
+ continue;
75
+ }
76
+ const capitalizedRelationAttribute = naming_1.default.capitalizedRelationAttribute(relation, item.table);
77
+ tabs.push({
78
+ label: relationLabel,
79
+ route: `generathor.${context}.show${capitalizedRelationAttribute}`,
80
+ routeRecord: recordName,
81
+ });
82
+ }
83
+ return tabs;
84
+ }
85
+ }
86
+ exports.BelongsToRelation = BelongsToRelation;
@@ -0,0 +1,8 @@
1
+ import { BaseTransformer, TransformedItem } from './base';
2
+ export declare class Controller extends BaseTransformer {
3
+ transform(): TransformedItem[];
4
+ private relationAttributes;
5
+ private attributes;
6
+ private searchData;
7
+ private queryRelations;
8
+ }
@@ -0,0 +1,163 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.Controller = void 0;
7
+ const base_1 = require("./base");
8
+ const naming_1 = __importDefault(require("../../helpers/naming"));
9
+ const ignoreAttributesFor = {
10
+ created_at: true,
11
+ updated_at: true,
12
+ };
13
+ class Controller extends base_1.BaseTransformer {
14
+ transform() {
15
+ const result = [];
16
+ const namespace = 'App\\Http\\Controllers\\Generathor';
17
+ const requestNamespace = 'App\\Http\\Requests\\Generathor';
18
+ const eloquentNamespace = 'App\\Models';
19
+ const itemsByTable = this.mapByTable();
20
+ for (const item of this.$items) {
21
+ const imports = {};
22
+ const hasManyRelations = [];
23
+ const belongsToRelations = [];
24
+ const model = naming_1.default.modelClass(item.table);
25
+ const context = naming_1.default.context(item.table);
26
+ const createRequest = `Create${model}Request`;
27
+ const updateRequest = `Update${model}Request`;
28
+ const filterRequest = `Filter${model}Request`;
29
+ imports[`${eloquentNamespace}\\${model}`] = true;
30
+ imports[`${requestNamespace}\\${createRequest}`] = true;
31
+ imports[`${requestNamespace}\\${updateRequest}`] = true;
32
+ imports[`${requestNamespace}\\${filterRequest}`] = true;
33
+ const controller = naming_1.default.controller(item.table);
34
+ const queryRelations = [];
35
+ for (const relation of item.relations) {
36
+ const label = naming_1.default.relationLabel(relation, item.table);
37
+ queryRelations.push(naming_1.default.relationAttribute(relation, item.table));
38
+ const capitalizedRelationAttribute = naming_1.default.capitalizedRelationAttribute(relation, item.table);
39
+ const relationContext = naming_1.default.relationContext(relation, item.table);
40
+ const relationModel = naming_1.default.modelClass(relation.on.table);
41
+ if (relation.type === 'has-many') {
42
+ const relationAttribute = naming_1.default.relationAttribute(relation, item.table);
43
+ const filterRequest = `Filter${relationModel}Request`;
44
+ imports[`${requestNamespace}\\${filterRequest}`] = true;
45
+ hasManyRelations.push({
46
+ label,
47
+ capitalizedRelationAttribute,
48
+ relationContext,
49
+ filterRequest,
50
+ attribute: relationAttribute,
51
+ model: relationModel,
52
+ references: this.references(relation),
53
+ queryRelations: this.queryRelations(relation, item, itemsByTable),
54
+ });
55
+ }
56
+ else {
57
+ const createRelationRequest = `Create${relationModel}Request`;
58
+ const attachRelationRequest = `Attach${relationModel}To${model}Request`;
59
+ imports[`${requestNamespace}\\${createRelationRequest}`] = true;
60
+ imports[`${requestNamespace}\\${attachRelationRequest}`] = true;
61
+ imports[`${eloquentNamespace}\\${relationModel}`] = true;
62
+ const references = this.references(relation);
63
+ const attributes = this.relationAttributes(relation, itemsByTable);
64
+ belongsToRelations.push({
65
+ label,
66
+ attributes,
67
+ capitalizedRelationAttribute,
68
+ createRelationRequest,
69
+ attachRelationRequest,
70
+ relationContext,
71
+ model: relationModel,
72
+ references: references,
73
+ });
74
+ }
75
+ }
76
+ imports['Illuminate\\Http\\Request'] = true;
77
+ result.push({
78
+ context,
79
+ namespace,
80
+ model,
81
+ createRequest,
82
+ updateRequest,
83
+ filterRequest,
84
+ hasManyRelations,
85
+ belongsToRelations,
86
+ search: this.searchData(item),
87
+ recordName: naming_1.default.recordName(item.table),
88
+ label: naming_1.default.singularLabel(item.table),
89
+ attributes: this.attributes(item),
90
+ class: controller,
91
+ imports: Object.keys(imports).sort(),
92
+ queryRelations: queryRelations.length
93
+ ? `'${queryRelations.join("', '")}'`
94
+ : null,
95
+ });
96
+ }
97
+ return result;
98
+ }
99
+ relationAttributes(relation, itemsByTable) {
100
+ const attributes = [];
101
+ const item = itemsByTable[relation.on.table];
102
+ for (const column of item.columns) {
103
+ if (column.autoincrement) {
104
+ continue;
105
+ }
106
+ if (ignoreAttributesFor[column.name]) {
107
+ continue;
108
+ }
109
+ attributes.push({
110
+ name: column.name,
111
+ type: column.type,
112
+ });
113
+ }
114
+ return attributes;
115
+ }
116
+ attributes(item) {
117
+ const attributes = [];
118
+ for (const column of item.columns) {
119
+ if (column.autoincrement) {
120
+ continue;
121
+ }
122
+ if (ignoreAttributesFor[column.name]) {
123
+ continue;
124
+ }
125
+ attributes.push({
126
+ name: column.name,
127
+ type: column.type,
128
+ });
129
+ }
130
+ return attributes;
131
+ }
132
+ searchData(item) {
133
+ if (!item.primaryKey || item.primaryKey.columns.length !== 1) {
134
+ return null;
135
+ }
136
+ const key = item.primaryKey.columns[0];
137
+ for (const column of item.columns) {
138
+ if (column.type === 'string') {
139
+ return {
140
+ key,
141
+ attribute: column.name,
142
+ };
143
+ }
144
+ }
145
+ return {
146
+ key,
147
+ attribute: item.columns[0].name,
148
+ };
149
+ }
150
+ queryRelations(currentRelation, item, itemsByTable) {
151
+ const queryRelations = [];
152
+ const relatedItem = itemsByTable[currentRelation.on.table];
153
+ for (const relation of relatedItem.relations) {
154
+ if (relation.on.table === item.table &&
155
+ relation.columns[0] === currentRelation.references[0]) {
156
+ continue;
157
+ }
158
+ queryRelations.push(naming_1.default.relationAttribute(relation, relatedItem.table));
159
+ }
160
+ return queryRelations.length ? `'${queryRelations.join("', '")}'` : null;
161
+ }
162
+ }
163
+ exports.Controller = Controller;
@@ -0,0 +1,4 @@
1
+ import { BaseTransformer, TransformedItem } from './base';
2
+ export declare class CreateRelationForm extends BaseTransformer {
3
+ transform(): TransformedItem[];
4
+ }
@@ -0,0 +1,163 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.CreateRelationForm = void 0;
7
+ const base_1 = require("./base");
8
+ const naming_1 = __importDefault(require("../../helpers/naming"));
9
+ const ignoreInputsFor = {
10
+ created_at: true,
11
+ updated_at: true,
12
+ };
13
+ class CreateRelationForm extends base_1.BaseTransformer {
14
+ transform() {
15
+ const map = this.mapByTable();
16
+ const result = [];
17
+ const fksMap = this.fksByTable();
18
+ for (const item of this.$items) {
19
+ const context = naming_1.default.context(item.table);
20
+ for (const relation of item.relations) {
21
+ const isHasMayRelation = relation.type === 'has-many';
22
+ const itemRelated = map[relation.on.table];
23
+ const inputs = [];
24
+ const hiddenInputs = [];
25
+ const references = this.references(relation);
26
+ const fks = fksMap[itemRelated.table];
27
+ const recordName = naming_1.default.recordName(item.table);
28
+ itemRelated.columns.forEach((column) => {
29
+ if (references[column.name]) {
30
+ if (isHasMayRelation) {
31
+ hiddenInputs.push({
32
+ name: column.name,
33
+ type: 'fixed',
34
+ data: {
35
+ value: `$${recordName}->${references[column.name]}`,
36
+ },
37
+ });
38
+ }
39
+ return;
40
+ }
41
+ if (column.autoincrement) {
42
+ return;
43
+ }
44
+ if (fks[column.name]) {
45
+ inputs.push({
46
+ type: 'record',
47
+ name: column.name,
48
+ label: naming_1.default.columnLabel(column),
49
+ data: {
50
+ context: naming_1.default.context(fks[column.name].table),
51
+ relationName: fks[column.name].relationAttribute,
52
+ },
53
+ });
54
+ return;
55
+ }
56
+ if (column.type === 'string' &&
57
+ column.enum &&
58
+ Array.isArray(column.enum) &&
59
+ column.enum.length > 0) {
60
+ inputs.push({
61
+ type: 'select',
62
+ name: column.name,
63
+ label: naming_1.default.columnLabel(column),
64
+ data: {
65
+ options: [
66
+ {
67
+ value: '',
68
+ label: 'Select',
69
+ },
70
+ ].concat(column.enum.map(function (value) {
71
+ return {
72
+ value: value,
73
+ label: naming_1.default.label(value),
74
+ };
75
+ })),
76
+ },
77
+ });
78
+ return;
79
+ }
80
+ if (column.type === 'int') {
81
+ inputs.push({
82
+ type: 'number',
83
+ name: column.name,
84
+ label: naming_1.default.columnLabel(column),
85
+ data: {
86
+ decimals: 0,
87
+ },
88
+ });
89
+ return;
90
+ }
91
+ if (column.type === 'float') {
92
+ inputs.push({
93
+ type: 'number',
94
+ name: column.name,
95
+ label: naming_1.default.columnLabel(column),
96
+ data: {
97
+ decimals: column.scale,
98
+ },
99
+ });
100
+ return;
101
+ }
102
+ if (column.type === 'bool') {
103
+ inputs.push({
104
+ type: 'checkbox',
105
+ name: column.name,
106
+ label: naming_1.default.columnLabel(column),
107
+ });
108
+ return;
109
+ }
110
+ const dates = {
111
+ datetime: true,
112
+ time: true,
113
+ date: true,
114
+ };
115
+ if (dates[column.subType]) {
116
+ if (!ignoreInputsFor[column.name]) {
117
+ inputs.push({
118
+ type: column.subType,
119
+ name: column.name,
120
+ label: naming_1.default.columnLabel(column),
121
+ });
122
+ }
123
+ return;
124
+ }
125
+ inputs.push({
126
+ type: 'text',
127
+ name: column.name,
128
+ label: naming_1.default.columnLabel(column),
129
+ });
130
+ });
131
+ const relationRouteContext = naming_1.default.context(itemRelated.table);
132
+ const parentContext = naming_1.default.context(item.table);
133
+ if (isHasMayRelation) {
134
+ hiddenInputs.push({
135
+ name: '_url',
136
+ type: 'current_url',
137
+ });
138
+ }
139
+ result.push({
140
+ context,
141
+ contextFile: naming_1.default.relationContext(relation, item.table),
142
+ record: null,
143
+ routeRecord: isHasMayRelation ? null : recordName,
144
+ method: 'post',
145
+ prefix: '',
146
+ getOld: 'old',
147
+ errorBag: 'create',
148
+ buttonLabel: 'Save',
149
+ buttonColor: 'green',
150
+ columns: '2',
151
+ route: isHasMayRelation
152
+ ? `generathor.${relationRouteContext}.store`
153
+ : `generathor.${parentContext}.store${naming_1.default.capitalizedRelationAttribute(relation, item.table)}`,
154
+ cancelLink: null,
155
+ inputs: inputs,
156
+ hiddenInputs: hiddenInputs,
157
+ });
158
+ }
159
+ }
160
+ return result;
161
+ }
162
+ }
163
+ exports.CreateRelationForm = CreateRelationForm;
@@ -0,0 +1,4 @@
1
+ import { BaseTransformer, TransformedItem } from './base';
2
+ export declare class FilterRelationForm extends BaseTransformer {
3
+ transform(): TransformedItem[];
4
+ }