@wisemen/nestjs-custom-fields 1.0.3 → 2.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 (23) hide show
  1. package/README.md +42 -0
  2. package/dist/custom-field-definition.d.ts +5 -0
  3. package/dist/factory/custom-field-definition.factory.d.ts +2 -1
  4. package/dist/factory/custom-field-definition.factory.js +20 -2
  5. package/dist/factory/custom-field-definition.factory.js.map +1 -1
  6. package/dist/factory/custom-field-definition.factory.unit.test.d.ts +1 -0
  7. package/dist/factory/custom-field-definition.factory.unit.test.js +81 -0
  8. package/dist/factory/custom-field-definition.factory.unit.test.js.map +1 -0
  9. package/dist/repositories/custom-field-definitions.repository.d.ts +1 -0
  10. package/dist/repositories/custom-field-definitions.repository.integration.test.js +72 -0
  11. package/dist/repositories/custom-field-definitions.repository.integration.test.js.map +1 -1
  12. package/dist/repositories/custom-field-definitions.repository.js +4 -2
  13. package/dist/repositories/custom-field-definitions.repository.js.map +1 -1
  14. package/dist/responses/custom-field-definition.response.d.ts +7 -1
  15. package/dist/responses/custom-field-definition.response.js +22 -0
  16. package/dist/responses/custom-field-definition.response.js.map +1 -1
  17. package/dist/responses/custom-field-definition.response.unit.test.js +11 -2
  18. package/dist/responses/custom-field-definition.response.unit.test.js.map +1 -1
  19. package/dist/typeorm/custom-field-definition.entity.d.ts +2 -1
  20. package/dist/typeorm/custom-field-definition.entity.js +5 -0
  21. package/dist/typeorm/custom-field-definition.entity.js.map +1 -1
  22. package/package.json +10 -10
  23. package/skills/getting-started/SKILL.md +42 -0
package/README.md CHANGED
@@ -96,6 +96,38 @@ export class Playground extends JobContainer {
96
96
  }
97
97
  ```
98
98
 
99
+ ### Views
100
+
101
+ Use `views` to control where a definition is shown. A definition is shown in a
102
+ view only when that view's `key` is in its `views` array; any view not listed
103
+ does not show it. `order` is the field's position within that view, so the same
104
+ field can be first in a detail page and last in a table. The package does not
105
+ sort by `order`; sort by it where you render the view.
106
+
107
+ View keys are app-defined strings, like `entityType`: the package stores them
108
+ as-is. Keep them in an enum shared with your frontend. `views` defaults to `[]`,
109
+ so a definition without views is hidden everywhere. View keys must be non-empty
110
+ and unique per definition, and `order` must be a finite number.
111
+
112
+ ```ts
113
+ const referenceField = customFieldDefinition(CustomFieldType.TEXT, {
114
+ tenantUuid: null,
115
+ entityType: CustomFieldEntityType.TICKET,
116
+ key: 'reference',
117
+ label: new LocalizedString([{ locale: 'en', value: 'Reference' }]),
118
+ description: null,
119
+ isRequired: false,
120
+ views: [
121
+ { key: 'ticket-detail', order: 10 },
122
+ { key: 'ticket-overview', order: 20 }
123
+ ]
124
+ })
125
+ ```
126
+
127
+ When upgrading from 1.x to 2.0.0, generate a migration for the new `views`
128
+ column and backfill `views` for your existing definitions in the same release.
129
+ Without a backfill, every existing definition is hidden in every view.
130
+
99
131
  ## Step 3: Store Values On The Entity With The Custom Column
100
132
 
101
133
  Resolved custom field values live on your own entity. Use
@@ -216,6 +248,16 @@ On repository lookups, `tenantUuid` is optional. Omit it to work with
216
248
  non-tenant definitions, or set it to retrieve tenant-specific definitions in a
217
249
  multi-tenant setup.
218
250
 
251
+ Pass `view` to retrieve only the definitions shown in that view. Results are
252
+ ordered by `key`, with or without `view`.
253
+
254
+ ```ts
255
+ const definitions = await repository.findDefinitions({
256
+ entityType: CustomFieldEntityType.TICKET,
257
+ view: 'ticket-overview'
258
+ })
259
+ ```
260
+
219
261
  After DTO parsing, validate the resolved values against the definitions that
220
262
  apply for that entity and tenant. This is the runtime check that enforces the
221
263
  definition rules.
@@ -4,6 +4,10 @@ import { CustomFieldRules, CustomFieldRulesByType } from '#src/custom-field-rule
4
4
  import { CustomFieldChoicesModeByType, CustomFieldRulesModeByType } from '#src/custom-field-type-contract.js';
5
5
  import { CustomFieldType } from '#src/enum/custom-field-type.enum.js';
6
6
  import { LocalizedString } from '@wisemen/localized-string';
7
+ export interface CustomFieldView {
8
+ key: string;
9
+ order: number;
10
+ }
7
11
  export interface CustomFieldDefinitionData {
8
12
  uuid: CustomFieldDefinitionUuid;
9
13
  tenantUuid: string | null;
@@ -15,6 +19,7 @@ export interface CustomFieldDefinitionData {
15
19
  isRequired: boolean;
16
20
  choices: CustomFieldChoice[] | null;
17
21
  rules: CustomFieldRules | null;
22
+ views: CustomFieldView[];
18
23
  }
19
24
  type BaseCustomFieldDefinitionFields<T extends CustomFieldType> = Omit<CustomFieldDefinitionData, 'type' | 'choices' | 'rules'> & {
20
25
  type: T;
@@ -1,6 +1,6 @@
1
1
  import { LocalizedString } from '@wisemen/localized-string';
2
2
  import { CustomFieldChoice } from '#src/custom-field-choice.js';
3
- import { CustomFieldDefinitionFieldsByType } from '#src/custom-field-definition.js';
3
+ import { CustomFieldDefinitionFieldsByType, CustomFieldView } from '#src/custom-field-definition.js';
4
4
  import { CustomFieldRulesByType } from '#src/custom-field-rules.js';
5
5
  import { CustomFieldChoicesModeByType, CustomFieldRulesModeByType } from '#src/custom-field-type-contract.js';
6
6
  import { CustomFieldType } from '#src/enum/custom-field-type.enum.js';
@@ -23,6 +23,7 @@ export type CustomFieldDefinitionMetadataFields = {
23
23
  label: LocalizedString;
24
24
  description: LocalizedString | null;
25
25
  isRequired: boolean;
26
+ views?: CustomFieldView[];
26
27
  };
27
28
  export type CustomFieldDefinitionDraft<T extends CustomFieldType = CustomFieldType> = CustomFieldDefinitionFieldsByType<T>;
28
29
  type BaseCustomFieldInput<TType extends CustomFieldType> = CustomFieldDefinitionMetadataFields & {
@@ -39,7 +39,8 @@ function normalizeCustomFieldDefinition(definition) {
39
39
  type: definition.type,
40
40
  rules: normalizeRules(definition.type, 'rules' in definition ? definition.rules : null),
41
41
  isRequired: definition.isRequired,
42
- choices: null
42
+ choices: null,
43
+ views: definition.views ?? []
43
44
  };
44
45
  validateCustomFieldDefinition(customFieldDefinition);
45
46
  return customFieldDefinition;
@@ -56,7 +57,8 @@ function normalizeCustomFieldDefinition(definition) {
56
57
  type: definition.type,
57
58
  rules: normalizeRules(definition.type, 'rules' in definition ? definition.rules : null),
58
59
  isRequired: definition.isRequired,
59
- choices: definition.choices
60
+ choices: definition.choices,
61
+ views: definition.views ?? []
60
62
  };
61
63
  validateCustomFieldDefinition(customFieldDefinition);
62
64
  return customFieldDefinition;
@@ -74,6 +76,21 @@ function normalizeRules(type, rules) {
74
76
  ...rules
75
77
  };
76
78
  }
79
+ function validateCustomFieldViews(views) {
80
+ const seenKeys = new Set();
81
+ for (const view of views) {
82
+ if (view.key.trim() === '') {
83
+ throw new CustomFieldDefinitionError('Custom field view key can not be empty');
84
+ }
85
+ if (seenKeys.has(view.key)) {
86
+ throw new CustomFieldDefinitionError('Custom field view keys must be unique');
87
+ }
88
+ if (!Number.isFinite(view.order)) {
89
+ throw new CustomFieldDefinitionError('Custom field view order must be a finite number');
90
+ }
91
+ seenKeys.add(view.key);
92
+ }
93
+ }
77
94
  function validateCustomFieldDefinition(definition) {
78
95
  if (definition.entityType.trim() === '') {
79
96
  throw new CustomFieldDefinitionError('Custom field entityType can not be empty');
@@ -90,6 +107,7 @@ function validateCustomFieldDefinition(definition) {
90
107
  if (definition.rules !== null && definition.rules.type !== definition.type) {
91
108
  throw new CustomFieldDefinitionError('Custom field rules must match the field type');
92
109
  }
110
+ validateCustomFieldViews(definition.views);
93
111
  switch (definition.type) {
94
112
  case CustomFieldType.TEXT:
95
113
  validateTextCustomFieldDefinition(definition);
@@ -1 +1 @@
1
- {"version":3,"file":"custom-field-definition.factory.js","sourceRoot":"","sources":["../../lib/factory/custom-field-definition.factory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"custom-field-definition.factory.js","sourceRoot":"","sources":["../../lib/factory/custom-field-definition.factory.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,81 @@
1
+ import { describe, it } from 'node:test';
2
+ import { expect } from 'expect';
3
+ import { LocalizedString } from '@wisemen/localized-string';
4
+ import { CustomFieldDefinitionError } from '#src/errors/custom-field-definition.error.js';
5
+ import { CustomFieldType } from '#src/enum/custom-field-type.enum.js';
6
+ import { customFieldDefinition } from '#src/factory/custom-field-definition.factory.js';
7
+ describe('customFieldDefinition views', () => {
8
+ it('defaults views to an empty array', () => {
9
+ const definition = customFieldDefinition(CustomFieldType.TEXT, {
10
+ tenantUuid: null,
11
+ entityType: 'invoice',
12
+ key: 'notes',
13
+ label: new LocalizedString([{ locale: 'en', value: 'Notes' }]),
14
+ description: null,
15
+ isRequired: false
16
+ });
17
+ expect(definition.views).toEqual([]);
18
+ });
19
+ it('keeps the provided views', () => {
20
+ const definition = customFieldDefinition(CustomFieldType.SINGLE_SELECT, {
21
+ tenantUuid: null,
22
+ entityType: 'invoice',
23
+ key: 'status',
24
+ label: new LocalizedString([{ locale: 'en', value: 'Status' }]),
25
+ description: null,
26
+ isRequired: false,
27
+ choices: [
28
+ {
29
+ value: 'open',
30
+ label: new LocalizedString([{ locale: 'en', value: 'Open' }]),
31
+ order: 1
32
+ }
33
+ ],
34
+ views: [
35
+ { key: 'invoice-detail', order: 10 },
36
+ { key: 'invoice-overview', order: 20 }
37
+ ]
38
+ });
39
+ expect(definition.views).toEqual([
40
+ { key: 'invoice-detail', order: 10 },
41
+ { key: 'invoice-overview', order: 20 }
42
+ ]);
43
+ });
44
+ it('rejects a view whose key is empty', () => {
45
+ expect(() => customFieldDefinition(CustomFieldType.TEXT, {
46
+ tenantUuid: null,
47
+ entityType: 'invoice',
48
+ key: 'notes',
49
+ label: new LocalizedString([{ locale: 'en', value: 'Notes' }]),
50
+ description: null,
51
+ isRequired: false,
52
+ views: [{ key: ' ', order: 10 }]
53
+ })).toThrow(new CustomFieldDefinitionError('Custom field view key can not be empty'));
54
+ });
55
+ it('rejects duplicate view keys', () => {
56
+ expect(() => customFieldDefinition(CustomFieldType.TEXT, {
57
+ tenantUuid: null,
58
+ entityType: 'invoice',
59
+ key: 'notes',
60
+ label: new LocalizedString([{ locale: 'en', value: 'Notes' }]),
61
+ description: null,
62
+ isRequired: false,
63
+ views: [
64
+ { key: 'invoice-detail', order: 10 },
65
+ { key: 'invoice-detail', order: 20 }
66
+ ]
67
+ })).toThrow(new CustomFieldDefinitionError('Custom field view keys must be unique'));
68
+ });
69
+ it('rejects a view whose order is not a finite number', () => {
70
+ expect(() => customFieldDefinition(CustomFieldType.TEXT, {
71
+ tenantUuid: null,
72
+ entityType: 'invoice',
73
+ key: 'notes',
74
+ label: new LocalizedString([{ locale: 'en', value: 'Notes' }]),
75
+ description: null,
76
+ isRequired: false,
77
+ views: [{ key: 'invoice-detail', order: Number.NaN }]
78
+ })).toThrow(new CustomFieldDefinitionError('Custom field view order must be a finite number'));
79
+ });
80
+ });
81
+ //# sourceMappingURL=custom-field-definition.factory.unit.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"custom-field-definition.factory.unit.test.js","sourceRoot":"","sources":["../../lib/factory/custom-field-definition.factory.unit.test.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,7 @@ import { CustomFieldDefinition } from '#src/typeorm/custom-field-definition.enti
3
3
  export interface CustomFieldDefinitionsOptions {
4
4
  tenantUuid?: string;
5
5
  entityType?: string | string[];
6
+ view?: string;
6
7
  }
7
8
  export declare class CustomFieldDefinitionsRepository {
8
9
  private readonly repository;
@@ -170,5 +170,77 @@ describe('ViewCustomFieldDefinitionsRepository integration', () => {
170
170
  expect(response.map(item => item.key)).toEqual(['alpha', 'zulu']);
171
171
  expect(response.every(item => item.tenantUuid === tenantUuid)).toBe(true);
172
172
  });
173
+ it('returns only definitions in the requested view ordered by key', async () => {
174
+ const first = customFieldDefinition(CustomFieldType.TEXT, {
175
+ tenantUuid: null,
176
+ entityType: 'ticket',
177
+ key: 'zulu',
178
+ label: new LocalizedString([{ locale: 'en', value: 'Zulu' }]),
179
+ description: null,
180
+ isRequired: false,
181
+ views: [
182
+ { key: 'ticket-detail', order: 10 },
183
+ { key: 'ticket-overview', order: 30 }
184
+ ]
185
+ });
186
+ const tiedFirst = customFieldDefinition(CustomFieldType.TEXT, {
187
+ tenantUuid: null,
188
+ entityType: 'ticket',
189
+ key: 'bravo',
190
+ label: new LocalizedString([{ locale: 'en', value: 'Bravo' }]),
191
+ description: null,
192
+ isRequired: false,
193
+ views: [{ key: 'ticket-detail', order: 20 }]
194
+ });
195
+ const tiedSecond = customFieldDefinition(CustomFieldType.TEXT, {
196
+ tenantUuid: null,
197
+ entityType: 'ticket',
198
+ key: 'charlie',
199
+ label: new LocalizedString([{ locale: 'en', value: 'Charlie' }]),
200
+ description: null,
201
+ isRequired: false,
202
+ views: [{ key: 'ticket-detail', order: 20 }]
203
+ });
204
+ const otherView = customFieldDefinition(CustomFieldType.TEXT, {
205
+ tenantUuid: null,
206
+ entityType: 'ticket',
207
+ key: 'alpha',
208
+ label: new LocalizedString([{ locale: 'en', value: 'Alpha' }]),
209
+ description: null,
210
+ isRequired: false,
211
+ views: [{ key: 'ticket-overview', order: 10 }]
212
+ });
213
+ const noViews = customFieldDefinition(CustomFieldType.TEXT, {
214
+ tenantUuid: null,
215
+ entityType: 'ticket',
216
+ key: 'hidden',
217
+ label: new LocalizedString([{ locale: 'en', value: 'Hidden' }]),
218
+ description: null,
219
+ isRequired: false
220
+ });
221
+ await dataSource.manager.save(CustomFieldDefinition, [
222
+ first,
223
+ tiedFirst,
224
+ tiedSecond,
225
+ otherView,
226
+ noViews
227
+ ]);
228
+ const repository = new CustomFieldDefinitionsRepository(dataSource.manager.getRepository(CustomFieldDefinition));
229
+ const detailResponse = await repository.findDefinitions({
230
+ entityType: 'ticket',
231
+ view: 'ticket-detail'
232
+ });
233
+ expect(detailResponse.map(item => item.key)).toEqual(['bravo', 'charlie', 'zulu']);
234
+ const overviewResponse = await repository.findDefinitions({
235
+ entityType: 'ticket',
236
+ view: 'ticket-overview'
237
+ });
238
+ expect(overviewResponse.map(item => item.key)).toEqual(['alpha', 'zulu']);
239
+ const allResponse = await repository.findDefinitions({
240
+ entityType: 'ticket'
241
+ });
242
+ expect(allResponse.map(item => item.key)).toEqual(['alpha', 'bravo', 'charlie', 'hidden', 'zulu']);
243
+ expect(allResponse.find(item => item.key === 'hidden')?.views).toEqual([]);
244
+ });
173
245
  });
174
246
  //# sourceMappingURL=custom-field-definitions.repository.integration.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"custom-field-definitions.repository.integration.test.js","sourceRoot":"","sources":["../../lib/repositories/custom-field-definitions.repository.integration.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"custom-field-definitions.repository.integration.test.js","sourceRoot":"","sources":["../../lib/repositories/custom-field-definitions.repository.integration.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,WAAW,CAAA;AACnE,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC/B,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAA;AACzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAA;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAA;AACrE,OAAO,EAAE,qBAAqB,EAAE,MAAM,iDAAiD,CAAA;AACvF,OAAO,EAAE,qBAAqB,EAAE,MAAM,gDAAgD,CAAA;AACtF,OAAO,EAAE,gCAAgC,EAAE,MAAM,0CAA0C,CAAA;AAE3F,QAAQ,CAAC,kDAAkD,EAAE,GAAG,EAAE;IAChE,MAAM,eAAe,GAAG,IAAI,oBAAoB,EAAE,CAAA;IAElD,MAAM,CAAC,KAAK,IAAI,EAAE;QAChB,MAAM,eAAe,CAAC,KAAK,EAAE,CAAA;IAC/B,CAAC,CAAC,CAAA;IAEF,UAAU,CAAC,KAAK,IAAI,EAAE;QACpB,MAAM,eAAe,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAA;IACpD,CAAC,CAAC,CAAA;IAEF,KAAK,CAAC,KAAK,IAAI,EAAE;QACf,MAAM,eAAe,CAAC,QAAQ,EAAE,CAAA;IAClC,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,yEAAyE,EAAE,KAAK,IAAI,EAAE;QACvF,MAAM,UAAU,GAAG,sCAAsC,CAAA;QAEzD,MAAM,mBAAmB,GAAG,qBAAqB,CAAC,eAAe,CAAC,IAAI,EAAE;YACtE,UAAU,EAAE,IAAI;YAChB,UAAU,EAAE,QAAQ;YACpB,GAAG,EAAE,WAAW;YAChB,KAAK,EAAE,IAAI,eAAe,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC;YAClE,WAAW,EAAE,IAAI;YACjB,UAAU,EAAE,KAAK;SAClB,CAAC,CAAA;QAEF,MAAM,kBAAkB,GAAG,qBAAqB,CAAC,eAAe,CAAC,YAAY,EAAE;YAC7E,UAAU,EAAE,IAAI;YAChB,UAAU,EAAE,QAAQ;YACpB,GAAG,EAAE,UAAU;YACf,KAAK,EAAE,IAAI,eAAe,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC;YACjE,WAAW,EAAE,IAAI,eAAe,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,iBAAiB,EAAE,CAAC,CAAC;YAC9E,UAAU,EAAE,IAAI;YAChB,OAAO,EAAE;gBACP;oBACE,KAAK,EAAE,MAAM;oBACb,KAAK,EAAE,IAAI,eAAe,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;oBAC7D,KAAK,EAAE,CAAC;iBACT;gBACD;oBACE,KAAK,EAAE,KAAK;oBACZ,KAAK,EAAE,IAAI,eAAe,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;oBAC5D,KAAK,EAAE,CAAC;iBACT;aACF;YACD,KAAK,EAAE;gBACL,aAAa,EAAE,CAAC;gBAChB,aAAa,EAAE,CAAC;aACjB;SACF,CAAC,CAAA;QAEF,MAAM,gBAAgB,GAAG,qBAAqB,CAAC,eAAe,CAAC,IAAI,EAAE;YACnE,UAAU;YACV,UAAU,EAAE,QAAQ;YACpB,GAAG,EAAE,aAAa;YAClB,KAAK,EAAE,IAAI,eAAe,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC,CAAC;YACpE,WAAW,EAAE,IAAI;YACjB,UAAU,EAAE,KAAK;SAClB,CAAC,CAAA;QAEF,MAAM,qBAAqB,GAAG,qBAAqB,CAAC,eAAe,CAAC,IAAI,EAAE;YACxE,UAAU,EAAE,IAAI;YAChB,UAAU,EAAE,SAAS;YACrB,GAAG,EAAE,cAAc;YACnB,KAAK,EAAE,IAAI,eAAe,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC,CAAC;YACrE,WAAW,EAAE,IAAI;YACjB,UAAU,EAAE,KAAK;SAClB,CAAC,CAAA;QAEF,MAAM,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,qBAAqB,EAAE;YACnD,mBAAmB;YACnB,kBAAkB;YAClB,gBAAgB;YAChB,qBAAqB;SACtB,CAAC,CAAA;QAEF,MAAM,UAAU,GAAG,IAAI,gCAAgC,CACrD,UAAU,CAAC,OAAO,CAAC,aAAa,CAAC,qBAAqB,CAAC,CACxD,CAAA;QAED,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,eAAe,CAAC;YAChD,UAAU,EAAE,QAAQ;SACrB,CAAC,CAAA;QAEF,MAAM,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAA;QAChC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC,CAAA;QACzE,MAAM,CAAC,QAAQ,CAAC,CAAC,aAAa,CAAC;YAC7B;gBACE,IAAI,EAAE,kBAAkB,CAAC,IAAI;gBAC7B,UAAU,EAAE,IAAI;gBAChB,UAAU,EAAE,QAAQ;gBACpB,GAAG,EAAE,UAAU;gBACf,KAAK,EAAE,IAAI,eAAe,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC;gBACjE,WAAW,EAAE,IAAI,eAAe,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,iBAAiB,EAAE,CAAC,CAAC;gBAC9E,IAAI,EAAE,eAAe,CAAC,YAAY;gBAClC,UAAU,EAAE,IAAI;gBAChB,OAAO,EAAE;oBACP;wBACE,KAAK,EAAE,MAAM;wBACb,KAAK,EAAE,IAAI,eAAe,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;wBAC7D,KAAK,EAAE,CAAC;qBACT;oBACD;wBACE,KAAK,EAAE,KAAK;wBACZ,KAAK,EAAE,IAAI,eAAe,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;wBAC5D,KAAK,EAAE,CAAC;qBACT;iBACF;gBACD,KAAK,EAAE;oBACL,IAAI,EAAE,eAAe,CAAC,YAAY;oBAClC,aAAa,EAAE,CAAC;oBAChB,aAAa,EAAE,CAAC;iBACjB;aACF;YACD;gBACE,IAAI,EAAE,mBAAmB,CAAC,IAAI;gBAC9B,UAAU,EAAE,IAAI;gBAChB,UAAU,EAAE,QAAQ;gBACpB,GAAG,EAAE,WAAW;gBAChB,KAAK,EAAE,IAAI,eAAe,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC;gBAClE,WAAW,EAAE,IAAI;gBACjB,IAAI,EAAE,eAAe,CAAC,IAAI;gBAC1B,UAAU,EAAE,KAAK;gBACjB,OAAO,EAAE,IAAI;gBACb,KAAK,EAAE,IAAI;aACZ;SACF,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,kDAAkD,EAAE,KAAK,IAAI,EAAE;QAChE,MAAM,UAAU,GAAG,sCAAsC,CAAA;QAEzD,MAAM,kBAAkB,GAAG,qBAAqB,CAAC,eAAe,CAAC,IAAI,EAAE;YACrE,UAAU;YACV,UAAU,EAAE,QAAQ;YACpB,GAAG,EAAE,OAAO;YACZ,KAAK,EAAE,IAAI,eAAe,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;YAC9D,WAAW,EAAE,IAAI;YACjB,UAAU,EAAE,KAAK;SAClB,CAAC,CAAA;QAEF,MAAM,wBAAwB,GAAG,qBAAqB,CAAC,eAAe,CAAC,IAAI,EAAE;YAC3E,UAAU;YACV,UAAU,EAAE,QAAQ;YACpB,GAAG,EAAE,MAAM;YACX,KAAK,EAAE,IAAI,eAAe,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;YAC7D,WAAW,EAAE,IAAI;YACjB,UAAU,EAAE,KAAK;SAClB,CAAC,CAAA;QAEF,MAAM,qBAAqB,GAAG,qBAAqB,CAAC,eAAe,CAAC,IAAI,EAAE;YACxE,UAAU,EAAE,sCAAsC;YAClD,UAAU,EAAE,QAAQ;YACpB,GAAG,EAAE,cAAc;YACnB,KAAK,EAAE,IAAI,eAAe,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC,CAAC;YACrE,WAAW,EAAE,IAAI;YACjB,UAAU,EAAE,KAAK;SAClB,CAAC,CAAA;QAEF,MAAM,gBAAgB,GAAG,qBAAqB,CAAC,eAAe,CAAC,IAAI,EAAE;YACnE,UAAU,EAAE,IAAI;YAChB,UAAU,EAAE,QAAQ;YACpB,GAAG,EAAE,QAAQ;YACb,KAAK,EAAE,IAAI,eAAe,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;YAC/D,WAAW,EAAE,IAAI;YACjB,UAAU,EAAE,KAAK;SAClB,CAAC,CAAA;QAEF,MAAM,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,qBAAqB,EAAE;YACnD,kBAAkB;YAClB,wBAAwB;YACxB,qBAAqB;YACrB,gBAAgB;SACjB,CAAC,CAAA;QAEF,MAAM,UAAU,GAAG,IAAI,gCAAgC,CACrD,UAAU,CAAC,OAAO,CAAC,aAAa,CAAC,qBAAqB,CAAC,CACxD,CAAA;QAED,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,eAAe,CAAC;YAChD,UAAU;YACV,UAAU,EAAE,QAAQ;SACrB,CAAC,CAAA;QAEF,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAA;QACjE,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,KAAK,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAC3E,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,+DAA+D,EAAE,KAAK,IAAI,EAAE;QAC7E,MAAM,KAAK,GAAG,qBAAqB,CAAC,eAAe,CAAC,IAAI,EAAE;YACxD,UAAU,EAAE,IAAI;YAChB,UAAU,EAAE,QAAQ;YACpB,GAAG,EAAE,MAAM;YACX,KAAK,EAAE,IAAI,eAAe,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;YAC7D,WAAW,EAAE,IAAI;YACjB,UAAU,EAAE,KAAK;YACjB,KAAK,EAAE;gBACL,EAAE,GAAG,EAAE,eAAe,EAAE,KAAK,EAAE,EAAE,EAAE;gBACnC,EAAE,GAAG,EAAE,iBAAiB,EAAE,KAAK,EAAE,EAAE,EAAE;aACtC;SACF,CAAC,CAAA;QAEF,MAAM,SAAS,GAAG,qBAAqB,CAAC,eAAe,CAAC,IAAI,EAAE;YAC5D,UAAU,EAAE,IAAI;YAChB,UAAU,EAAE,QAAQ;YACpB,GAAG,EAAE,OAAO;YACZ,KAAK,EAAE,IAAI,eAAe,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;YAC9D,WAAW,EAAE,IAAI;YACjB,UAAU,EAAE,KAAK;YACjB,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,eAAe,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;SAC7C,CAAC,CAAA;QAEF,MAAM,UAAU,GAAG,qBAAqB,CAAC,eAAe,CAAC,IAAI,EAAE;YAC7D,UAAU,EAAE,IAAI;YAChB,UAAU,EAAE,QAAQ;YACpB,GAAG,EAAE,SAAS;YACd,KAAK,EAAE,IAAI,eAAe,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;YAChE,WAAW,EAAE,IAAI;YACjB,UAAU,EAAE,KAAK;YACjB,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,eAAe,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;SAC7C,CAAC,CAAA;QAEF,MAAM,SAAS,GAAG,qBAAqB,CAAC,eAAe,CAAC,IAAI,EAAE;YAC5D,UAAU,EAAE,IAAI;YAChB,UAAU,EAAE,QAAQ;YACpB,GAAG,EAAE,OAAO;YACZ,KAAK,EAAE,IAAI,eAAe,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;YAC9D,WAAW,EAAE,IAAI;YACjB,UAAU,EAAE,KAAK;YACjB,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,iBAAiB,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;SAC/C,CAAC,CAAA;QAEF,MAAM,OAAO,GAAG,qBAAqB,CAAC,eAAe,CAAC,IAAI,EAAE;YAC1D,UAAU,EAAE,IAAI;YAChB,UAAU,EAAE,QAAQ;YACpB,GAAG,EAAE,QAAQ;YACb,KAAK,EAAE,IAAI,eAAe,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;YAC/D,WAAW,EAAE,IAAI;YACjB,UAAU,EAAE,KAAK;SAClB,CAAC,CAAA;QAEF,MAAM,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,qBAAqB,EAAE;YACnD,KAAK;YACL,SAAS;YACT,UAAU;YACV,SAAS;YACT,OAAO;SACR,CAAC,CAAA;QAEF,MAAM,UAAU,GAAG,IAAI,gCAAgC,CACrD,UAAU,CAAC,OAAO,CAAC,aAAa,CAAC,qBAAqB,CAAC,CACxD,CAAA;QAED,MAAM,cAAc,GAAG,MAAM,UAAU,CAAC,eAAe,CAAC;YACtD,UAAU,EAAE,QAAQ;YACpB,IAAI,EAAE,eAAe;SACtB,CAAC,CAAA;QAEF,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC,CAAA;QAElF,MAAM,gBAAgB,GAAG,MAAM,UAAU,CAAC,eAAe,CAAC;YACxD,UAAU,EAAE,QAAQ;YACpB,IAAI,EAAE,iBAAiB;SACxB,CAAC,CAAA;QAEF,MAAM,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAA;QAEzE,MAAM,WAAW,GAAG,MAAM,UAAU,CAAC,eAAe,CAAC;YACnD,UAAU,EAAE,QAAQ;SACrB,CAAC,CAAA;QAEF,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAA;QAClG,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,KAAK,QAAQ,CAAC,EAAE,KAAK,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;IAC5E,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
@@ -11,7 +11,7 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
11
11
  return function (target, key) { decorator(target, key, paramIndex); }
12
12
  };
13
13
  import { Injectable } from '@nestjs/common';
14
- import { Any, IsNull, Repository } from 'typeorm';
14
+ import { Any, IsNull, JsonContains, Repository } from 'typeorm';
15
15
  import { CustomFieldDefinition } from '#src/typeorm/custom-field-definition.entity.js';
16
16
  import { InjectRepository } from '@wisemen/nestjs-typeorm';
17
17
  let CustomFieldDefinitionsRepository = class CustomFieldDefinitionsRepository {
@@ -25,10 +25,12 @@ let CustomFieldDefinitionsRepository = class CustomFieldDefinitionsRepository {
25
25
  if (isArray && entityType.length === 0) {
26
26
  return [];
27
27
  }
28
+ const view = options?.view;
28
29
  return this.repository.find({
29
30
  where: {
30
31
  entityType: isArray ? Any(entityType) : entityType,
31
- tenantUuid: options?.tenantUuid ?? IsNull()
32
+ tenantUuid: options?.tenantUuid ?? IsNull(),
33
+ views: view === undefined ? undefined : JsonContains([{ key: view }])
32
34
  },
33
35
  order: {
34
36
  key: 'ASC'
@@ -1 +1 @@
1
- {"version":3,"file":"custom-field-definitions.repository.js","sourceRoot":"","sources":["../../lib/repositories/custom-field-definitions.repository.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAC3C,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AACjD,OAAO,EAAE,qBAAqB,EAAE,MAAM,gDAAgD,CAAA;AACtF,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAQnD,IAAM,gCAAgC,GAAtC,MAAM,gCAAgC;IAGxB;IAFnB,YAEmB,UAA6C;QAA7C,eAAU,GAAV,UAAU,CAAmC;IAC5D,CAAC;IAEL,KAAK,CAAC,eAAe,CACnB,OAAuC;QAEvC,MAAM,UAAU,GAAG,OAAO,EAAE,UAAU,CAAA;QACtC,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;QACzC,IAAI,OAAO,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvC,OAAO,EAAE,CAAA;QACX,CAAC;QAED,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;YAC1B,KAAK,EAAE;gBACL,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU;gBAClD,UAAU,EAAE,OAAO,EAAE,UAAU,IAAI,MAAM,EAAE;aAC5C;YACD,KAAK,EAAE;gBACL,GAAG,EAAE,KAAK;aACX;SACF,CAAC,CAAA;IACJ,CAAC;CACF,CAAA;AAzBY,gCAAgC;IAD5C,UAAU,EAAE;IAGR,WAAA,gBAAgB,CAAC,qBAAqB,CAAC,CAAA;qCACX,UAAU;GAH9B,gCAAgC,CAyB5C"}
1
+ {"version":3,"file":"custom-field-definitions.repository.js","sourceRoot":"","sources":["../../lib/repositories/custom-field-definitions.repository.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAC3C,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAC/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,gDAAgD,CAAA;AACtF,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AASnD,IAAM,gCAAgC,GAAtC,MAAM,gCAAgC;IAGxB;IAFnB,YAEmB,UAA6C;QAA7C,eAAU,GAAV,UAAU,CAAmC;IAC5D,CAAC;IAEL,KAAK,CAAC,eAAe,CACnB,OAAuC;QAEvC,MAAM,UAAU,GAAG,OAAO,EAAE,UAAU,CAAA;QACtC,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;QACzC,IAAI,OAAO,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvC,OAAO,EAAE,CAAA;QACX,CAAC;QAED,MAAM,IAAI,GAAG,OAAO,EAAE,IAAI,CAAA;QAE1B,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;YAC1B,KAAK,EAAE;gBACL,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU;gBAClD,UAAU,EAAE,OAAO,EAAE,UAAU,IAAI,MAAM,EAAE;gBAC3C,KAAK,EAAE,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;aACtE;YACD,KAAK,EAAE;gBACL,GAAG,EAAE,KAAK;aACX;SACF,CAAC,CAAA;IACJ,CAAC;CACF,CAAA;AA5BY,gCAAgC;IAD5C,UAAU,EAAE;IAGR,WAAA,gBAAgB,CAAC,qBAAqB,CAAC,CAAA;qCACX,UAAU;GAH9B,gCAAgC,CA4B5C"}
@@ -1,5 +1,5 @@
1
1
  import { LocalizedStringDto } from '@wisemen/localized-string';
2
- import type { CustomFieldDefinitionData } from '#src/custom-field-definition.js';
2
+ import type { CustomFieldDefinitionData, CustomFieldView } from '#src/custom-field-definition.js';
3
3
  import { CustomFieldType } from '#src/enum/custom-field-type.enum.js';
4
4
  import type { CustomFieldDefinitionUuid } from '#src/custom-field-definition.uuid.js';
5
5
  import type { CustomFieldRules } from '#src/custom-field-rules.js';
@@ -10,6 +10,11 @@ declare class CustomFieldChoiceResponse {
10
10
  order: number;
11
11
  constructor(choice: CustomFieldChoice);
12
12
  }
13
+ declare class CustomFieldViewResponse {
14
+ key: string;
15
+ order: number;
16
+ constructor(view: CustomFieldView);
17
+ }
13
18
  export declare class CustomFieldDefinitionResponse {
14
19
  uuid: CustomFieldDefinitionUuid;
15
20
  tenantUuid: string | null;
@@ -21,6 +26,7 @@ export declare class CustomFieldDefinitionResponse {
21
26
  isRequired: boolean;
22
27
  choices: CustomFieldChoiceResponse[] | null;
23
28
  rules: CustomFieldRules | null;
29
+ views: CustomFieldViewResponse[];
24
30
  constructor(definition: CustomFieldDefinitionData);
25
31
  }
26
32
  export {};
@@ -32,6 +32,22 @@ __decorate([
32
32
  ApiProperty({ type: Number }),
33
33
  __metadata("design:type", Number)
34
34
  ], CustomFieldChoiceResponse.prototype, "order", void 0);
35
+ class CustomFieldViewResponse {
36
+ key;
37
+ order;
38
+ constructor(view) {
39
+ this.key = view.key;
40
+ this.order = view.order;
41
+ }
42
+ }
43
+ __decorate([
44
+ ApiProperty({ type: String }),
45
+ __metadata("design:type", String)
46
+ ], CustomFieldViewResponse.prototype, "key", void 0);
47
+ __decorate([
48
+ ApiProperty({ type: Number }),
49
+ __metadata("design:type", Number)
50
+ ], CustomFieldViewResponse.prototype, "order", void 0);
35
51
  export class CustomFieldDefinitionResponse {
36
52
  uuid;
37
53
  tenantUuid;
@@ -43,6 +59,7 @@ export class CustomFieldDefinitionResponse {
43
59
  isRequired;
44
60
  choices;
45
61
  rules;
62
+ views;
46
63
  constructor(definition) {
47
64
  this.uuid = definition.uuid;
48
65
  this.tenantUuid = definition.tenantUuid;
@@ -54,6 +71,7 @@ export class CustomFieldDefinitionResponse {
54
71
  this.isRequired = definition.isRequired;
55
72
  this.choices = definition.choices?.map(choice => new CustomFieldChoiceResponse(choice)) ?? null;
56
73
  this.rules = definition.rules;
74
+ this.views = definition.views.map(view => new CustomFieldViewResponse(view));
57
75
  }
58
76
  }
59
77
  __decorate([
@@ -96,4 +114,8 @@ __decorate([
96
114
  ApiProperty({ type: Object, nullable: true }),
97
115
  __metadata("design:type", Object)
98
116
  ], CustomFieldDefinitionResponse.prototype, "rules", void 0);
117
+ __decorate([
118
+ ApiProperty({ type: CustomFieldViewResponse, isArray: true }),
119
+ __metadata("design:type", Array)
120
+ ], CustomFieldDefinitionResponse.prototype, "views", void 0);
99
121
  //# sourceMappingURL=custom-field-definition.response.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"custom-field-definition.response.js","sourceRoot":"","sources":["../../lib/responses/custom-field-definition.response.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"custom-field-definition.response.js","sourceRoot":"","sources":["../../lib/responses/custom-field-definition.response.ts"],"names":[],"mappings":"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"}
@@ -33,7 +33,11 @@ describe('CustomFieldDefinitionResponse', () => {
33
33
  rules: {
34
34
  minSelections: 1,
35
35
  maxSelections: 2
36
- }
36
+ },
37
+ views: [
38
+ { key: 'ticket-detail', order: 10 },
39
+ { key: 'ticket-overview', order: 20 }
40
+ ]
37
41
  });
38
42
  const response = new CustomFieldDefinitionResponse(definition);
39
43
  expect(response).toMatchObject({
@@ -74,7 +78,11 @@ describe('CustomFieldDefinitionResponse', () => {
74
78
  type: CustomFieldType.MULTI_SELECT,
75
79
  minSelections: 1,
76
80
  maxSelections: 2
77
- }
81
+ },
82
+ views: [
83
+ { key: 'ticket-detail', order: 10 },
84
+ { key: 'ticket-overview', order: 20 }
85
+ ]
78
86
  });
79
87
  });
80
88
  it('maps nullable fields to null', () => {
@@ -91,6 +99,7 @@ describe('CustomFieldDefinitionResponse', () => {
91
99
  expect(response.tenantUuid).toBeNull();
92
100
  expect(response.choices).toBeNull();
93
101
  expect(response.rules).toBeNull();
102
+ expect(response.views).toEqual([]);
94
103
  });
95
104
  });
96
105
  //# sourceMappingURL=custom-field-definition.response.unit.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"custom-field-definition.response.unit.test.js","sourceRoot":"","sources":["../../lib/responses/custom-field-definition.response.unit.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"custom-field-definition.response.unit.test.js","sourceRoot":"","sources":["../../lib/responses/custom-field-definition.response.unit.test.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { LocalizedString } from '@wisemen/localized-string';
2
2
  import type { CustomFieldChoice } from '../custom-field-choice.js';
3
- import type { CustomFieldDefinitionData } from '../custom-field-definition.js';
3
+ import type { CustomFieldDefinitionData, CustomFieldView } from '../custom-field-definition.js';
4
4
  import type { CustomFieldDefinitionUuid } from '../custom-field-definition.uuid.js';
5
5
  import type { CustomFieldRules } from '../custom-field-rules.js';
6
6
  import { CustomFieldType } from '../enum/custom-field-type.enum.js';
@@ -17,4 +17,5 @@ export declare class CustomFieldDefinition implements CustomFieldDefinitionData
17
17
  isRequired: boolean;
18
18
  choices: CustomFieldChoice[] | null;
19
19
  rules: CustomFieldRules | null;
20
+ views: CustomFieldView[];
20
21
  }
@@ -24,6 +24,7 @@ let CustomFieldDefinition = class CustomFieldDefinition {
24
24
  isRequired;
25
25
  choices;
26
26
  rules;
27
+ views;
27
28
  };
28
29
  __decorate([
29
30
  PrimaryGeneratedColumn('uuid'),
@@ -73,6 +74,10 @@ __decorate([
73
74
  Column({ type: 'jsonb', nullable: true }),
74
75
  __metadata("design:type", Object)
75
76
  ], CustomFieldDefinition.prototype, "rules", void 0);
77
+ __decorate([
78
+ Column({ type: 'jsonb', default: () => '\'[]\'::jsonb' }),
79
+ __metadata("design:type", Array)
80
+ ], CustomFieldDefinition.prototype, "views", void 0);
76
81
  CustomFieldDefinition = __decorate([
77
82
  Entity(),
78
83
  Index(['entityType', 'key'], { unique: true, where: '"tenant_uuid" IS NULL' }),
@@ -1 +1 @@
1
- {"version":3,"file":"custom-field-definition.entity.js","sourceRoot":"","sources":["../../lib/typeorm/custom-field-definition.entity.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAA;AAClF,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,EAAE,KAAK,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAK3G,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAA;AAC1F,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAA;AAKlE,IAAM,qBAAqB,GAA3B,MAAM,qBAAqB;IAEhC,IAAI,CAA2B;IAG/B,SAAS,CAAM;IAGf,SAAS,CAAM;IAGf,UAAU,CAAe;IAGzB,UAAU,CAAQ;IAGlB,GAAG,CAAQ;IAGX,KAAK,CAAiB;IAGtB,WAAW,CAAwB;IAGnC,IAAI,CAAiB;IAGrB,UAAU,CAAS;IAGnB,OAAO,CAA4B;IAGnC,KAAK,CAAyB;CAC/B,CAAA;AAlCC;IADC,sBAAsB,CAAC,MAAM,CAAC;;mDACA;AAG/B;IADC,gBAAgB,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;8BAC7C,IAAI;wDAAA;AAGf;IADC,gBAAgB,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;8BAC7C,IAAI;wDAAA;AAGf;IADC,MAAM,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;yDACrC;AAGzB;IADC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;;yDACV;AAGlB;IADC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;;kDACjB;AAGX;IADC,qBAAqB,EAAE;8BACjB,eAAe;oDAAA;AAGtB;IADC,qBAAqB,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;0DACP;AAGnC;IADC,qBAAqB,EAAE;;mDACH;AAGrB;IADC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;;yDACT;AAGnB;IADC,uBAAuB,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;sDACT;AAGnC;IADC,MAAM,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;oDACZ;AAnCnB,qBAAqB;IAHjC,MAAM,EAAE;IACR,KAAK,CAAC,CAAC,YAAY,EAAE,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,uBAAuB,EAAE,CAAC;IAC9E,KAAK,CAAC,CAAC,YAAY,EAAE,YAAY,EAAE,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,2BAA2B,EAAE,CAAC;GACpF,qBAAqB,CAoCjC"}
1
+ {"version":3,"file":"custom-field-definition.entity.js","sourceRoot":"","sources":["../../lib/typeorm/custom-field-definition.entity.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAA;AAClF,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,EAAE,KAAK,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAK3G,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAA;AAC1F,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAA;AAKlE,IAAM,qBAAqB,GAA3B,MAAM,qBAAqB;IAEhC,IAAI,CAA2B;IAG/B,SAAS,CAAM;IAGf,SAAS,CAAM;IAGf,UAAU,CAAe;IAGzB,UAAU,CAAQ;IAGlB,GAAG,CAAQ;IAGX,KAAK,CAAiB;IAGtB,WAAW,CAAwB;IAGnC,IAAI,CAAiB;IAGrB,UAAU,CAAS;IAGnB,OAAO,CAA4B;IAGnC,KAAK,CAAyB;IAG9B,KAAK,CAAmB;CACzB,CAAA;AArCC;IADC,sBAAsB,CAAC,MAAM,CAAC;;mDACA;AAG/B;IADC,gBAAgB,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;8BAC7C,IAAI;wDAAA;AAGf;IADC,gBAAgB,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;8BAC7C,IAAI;wDAAA;AAGf;IADC,MAAM,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;yDACrC;AAGzB;IADC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;;yDACV;AAGlB;IADC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;;kDACjB;AAGX;IADC,qBAAqB,EAAE;8BACjB,eAAe;oDAAA;AAGtB;IADC,qBAAqB,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;0DACP;AAGnC;IADC,qBAAqB,EAAE;;mDACH;AAGrB;IADC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;;yDACT;AAGnB;IADC,uBAAuB,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;sDACT;AAGnC;IADC,MAAM,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;oDACZ;AAG9B;IADC,MAAM,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,eAAe,EAAE,CAAC;;oDAClC;AAtCb,qBAAqB;IAHjC,MAAM,EAAE;IACR,KAAK,CAAC,CAAC,YAAY,EAAE,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,uBAAuB,EAAE,CAAC;IAC9E,KAAK,CAAC,CAAC,YAAY,EAAE,YAAY,EAAE,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,2BAA2B,EAAE,CAAC;GACpF,qBAAqB,CAuCjC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wisemen/nestjs-custom-fields",
3
- "version": "1.0.3",
3
+ "version": "2.0.0",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -18,17 +18,17 @@
18
18
  "skills/"
19
19
  ],
20
20
  "dependencies": {
21
- "@wisemen/api-error": "^1.1.0",
22
- "@wisemen/datewise": "^1.3.0",
23
- "@wisemen/localized-string": "^0.1.3",
24
- "@wisemen/monetary": "^1.0.0",
25
- "@wisemen/nestjs-typeorm": "^1.4.0",
26
- "@wisemen/validators": "^0.0.28"
21
+ "@wisemen/api-error": "^1.1.1",
22
+ "@wisemen/datewise": "^1.5.0",
23
+ "@wisemen/localized-string": "^0.1.4",
24
+ "@wisemen/monetary": "^1.0.1",
25
+ "@wisemen/nestjs-typeorm": "^1.4.1",
26
+ "@wisemen/validators": "^0.0.29"
27
27
  },
28
28
  "peerDependencies": {
29
- "@nestjs/common": "^11.1.28",
30
- "@nestjs/core": "^11.1.28",
31
- "@nestjs/swagger": "^11.4.6",
29
+ "@nestjs/common": "^11.1.28 || ^12.0.0",
30
+ "@nestjs/core": "^11.1.28 || ^12.0.0",
31
+ "@nestjs/swagger": "^11.4.6 || ^12.0.0",
32
32
  "@opentelemetry/api": "^1.9.1",
33
33
  "class-transformer": "^0.5.1",
34
34
  "class-validator": "^0.15.1",
@@ -100,6 +100,38 @@ export class Playground extends JobContainer {
100
100
  }
101
101
  ```
102
102
 
103
+ ### Views
104
+
105
+ Use `views` to control where a definition is shown. A definition is shown in a
106
+ view only when that view's `key` is in its `views` array; any view not listed
107
+ does not show it. `order` is the field's position within that view, so the same
108
+ field can be first in a detail page and last in a table. The package does not
109
+ sort by `order`; sort by it where you render the view.
110
+
111
+ View keys are app-defined strings, like `entityType`: the package stores them
112
+ as-is. Keep them in an enum shared with your frontend. `views` defaults to `[]`,
113
+ so a definition without views is hidden everywhere. View keys must be non-empty
114
+ and unique per definition, and `order` must be a finite number.
115
+
116
+ ```ts
117
+ const referenceField = customFieldDefinition(CustomFieldType.TEXT, {
118
+ tenantUuid: null,
119
+ entityType: CustomFieldEntityType.TICKET,
120
+ key: 'reference',
121
+ label: new LocalizedString([{ locale: 'en', value: 'Reference' }]),
122
+ description: null,
123
+ isRequired: false,
124
+ views: [
125
+ { key: 'ticket-detail', order: 10 },
126
+ { key: 'ticket-overview', order: 20 }
127
+ ]
128
+ })
129
+ ```
130
+
131
+ When upgrading from 1.x to 2.0.0, generate a migration for the new `views`
132
+ column and backfill `views` for your existing definitions in the same release.
133
+ Without a backfill, every existing definition is hidden in every view.
134
+
103
135
  ## Step 3: Store Values On The Entity With The Custom Column
104
136
 
105
137
  Resolved custom field values live on your own entity. Use
@@ -280,6 +312,16 @@ Use a multi-entity lookup when a use case validates or returns definitions for
280
312
  several entity types together. The tenant filter still applies to every
281
313
  requested entity type, and results remain ordered by definition `key`.
282
314
 
315
+ Pass `view` to retrieve only the definitions shown in that view. Results are
316
+ ordered by `key`, with or without `view`.
317
+
318
+ ```ts
319
+ const definitions = await repository.findDefinitions({
320
+ entityType: CustomFieldEntityType.TICKET,
321
+ view: 'ticket-overview'
322
+ })
323
+ ```
324
+
283
325
  After DTO parsing, validate the resolved values against the definitions that
284
326
  apply for that entity and tenant. This is the runtime check that enforces the
285
327
  definition rules.