@gzl10/nexus-sdk 0.12.7 → 0.13.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.
- package/dist/chunk-6WVPKBUS.js +364 -0
- package/dist/chunk-JIEVWBDA.js +256 -0
- package/dist/chunk-WZM5DHUI.js +377 -0
- package/dist/collection/index.d.ts +506 -0
- package/dist/collection/index.js +1501 -0
- package/dist/entity-kPgsCMdR.d.ts +1504 -0
- package/dist/field-CngHXora.d.ts +375 -0
- package/dist/fields/index.d.ts +1305 -0
- package/dist/fields/index.js +58 -0
- package/dist/index.d.ts +387 -2302
- package/dist/index.js +25 -69
- package/dist/masters/index.d.ts +120 -0
- package/dist/masters/index.js +689 -0
- package/package.json +23 -2
|
@@ -0,0 +1,689 @@
|
|
|
1
|
+
import {
|
|
2
|
+
refOptions
|
|
3
|
+
} from "../chunk-JIEVWBDA.js";
|
|
4
|
+
import {
|
|
5
|
+
isActiveField,
|
|
6
|
+
orderField,
|
|
7
|
+
useIconField,
|
|
8
|
+
useLocalizedField,
|
|
9
|
+
useNumberField,
|
|
10
|
+
useSelectField,
|
|
11
|
+
useTextField,
|
|
12
|
+
useUrlField
|
|
13
|
+
} from "../chunk-6WVPKBUS.js";
|
|
14
|
+
|
|
15
|
+
// src/masters/helpers.ts
|
|
16
|
+
var MASTER_SEED_BASE_URL = "https://gitlab.gzl10.com/oss/nexus/-/raw/main/masters/data";
|
|
17
|
+
function masterSeedConfig(filename, uniqueKey = "code") {
|
|
18
|
+
return {
|
|
19
|
+
source: "url",
|
|
20
|
+
url: `${MASTER_SEED_BASE_URL}/${filename}`,
|
|
21
|
+
uniqueKey
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
var masterIdField = {
|
|
25
|
+
label: "ID",
|
|
26
|
+
input: "text",
|
|
27
|
+
hidden: true,
|
|
28
|
+
db: { type: "string", size: 26, nullable: false }
|
|
29
|
+
};
|
|
30
|
+
var masterIsActiveField = isActiveField;
|
|
31
|
+
var masterOrderField = orderField;
|
|
32
|
+
var masterCaslPermissions = {
|
|
33
|
+
"*": { actions: ["read"] },
|
|
34
|
+
ADMIN: { actions: ["manage"] }
|
|
35
|
+
};
|
|
36
|
+
function applyMasterConfig(base, config, defaultTable, _defaultSubject) {
|
|
37
|
+
if (!config) return base;
|
|
38
|
+
const result = { ...base };
|
|
39
|
+
if (config.table) {
|
|
40
|
+
result.table = config.table;
|
|
41
|
+
} else if (config.tablePrefix && defaultTable) {
|
|
42
|
+
result.table = `${config.tablePrefix}${defaultTable}`;
|
|
43
|
+
}
|
|
44
|
+
if (config.label) {
|
|
45
|
+
result.label = config.label;
|
|
46
|
+
}
|
|
47
|
+
if (config.labelPlural) {
|
|
48
|
+
result.labelPlural = config.labelPlural;
|
|
49
|
+
}
|
|
50
|
+
if (config.caslSubject && result.casl) {
|
|
51
|
+
result.casl = {
|
|
52
|
+
...result.casl,
|
|
53
|
+
subject: config.caslSubject
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
return result;
|
|
57
|
+
}
|
|
58
|
+
function createMasterFactory(base, defaultTable, defaultSubject) {
|
|
59
|
+
return (config) => applyMasterConfig(base, config, defaultTable, defaultSubject);
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
// src/masters/independent/currency.master.ts
|
|
63
|
+
var DEFAULT_TABLE = "currencies";
|
|
64
|
+
var DEFAULT_SUBJECT = "MasterCurrency";
|
|
65
|
+
var baseCurrencyMaster = {
|
|
66
|
+
type: "reference",
|
|
67
|
+
table: `master_${DEFAULT_TABLE}`,
|
|
68
|
+
routePrefix: "/currencies",
|
|
69
|
+
label: { en: "Currency", es: "Moneda" },
|
|
70
|
+
labelPlural: { en: "Currencies", es: "Monedas" },
|
|
71
|
+
labelField: "label",
|
|
72
|
+
timestamps: true,
|
|
73
|
+
fields: {
|
|
74
|
+
id: useTextField({
|
|
75
|
+
label: { en: "Code (ISO 4217)", es: "C\xF3digo (ISO 4217)" },
|
|
76
|
+
required: true,
|
|
77
|
+
placeholder: "EUR",
|
|
78
|
+
size: 3,
|
|
79
|
+
validation: { pattern: "^[A-Z]{3}$" },
|
|
80
|
+
meta: { sortable: true }
|
|
81
|
+
}),
|
|
82
|
+
symbol: useTextField({
|
|
83
|
+
label: { en: "Symbol", es: "S\xEDmbolo" },
|
|
84
|
+
required: true,
|
|
85
|
+
placeholder: "\u20AC",
|
|
86
|
+
size: 5
|
|
87
|
+
}),
|
|
88
|
+
label: useLocalizedField({ label: { en: "Name", es: "Nombre" } }),
|
|
89
|
+
decimals: useNumberField({
|
|
90
|
+
label: { en: "Decimals", es: "Decimales" },
|
|
91
|
+
defaultValue: 2,
|
|
92
|
+
nullable: false,
|
|
93
|
+
validation: { min: 0, max: 4 }
|
|
94
|
+
}),
|
|
95
|
+
is_active: masterIsActiveField
|
|
96
|
+
},
|
|
97
|
+
indexes: [{ columns: ["label"] }],
|
|
98
|
+
seed: masterSeedConfig("currencies.json", "id"),
|
|
99
|
+
casl: {
|
|
100
|
+
subject: DEFAULT_SUBJECT,
|
|
101
|
+
permissions: masterCaslPermissions
|
|
102
|
+
}
|
|
103
|
+
};
|
|
104
|
+
var currencyMaster = baseCurrencyMaster;
|
|
105
|
+
var createCurrencyMaster = createMasterFactory(baseCurrencyMaster, DEFAULT_TABLE, DEFAULT_SUBJECT);
|
|
106
|
+
|
|
107
|
+
// src/masters/independent/language.master.ts
|
|
108
|
+
var DEFAULT_TABLE2 = "languages";
|
|
109
|
+
var DEFAULT_SUBJECT2 = "MasterLanguage";
|
|
110
|
+
var baseLanguageMaster = {
|
|
111
|
+
type: "reference",
|
|
112
|
+
table: `master_${DEFAULT_TABLE2}`,
|
|
113
|
+
routePrefix: "/languages",
|
|
114
|
+
label: { en: "Language", es: "Idioma" },
|
|
115
|
+
labelPlural: { en: "Languages", es: "Idiomas" },
|
|
116
|
+
labelField: "label",
|
|
117
|
+
timestamps: true,
|
|
118
|
+
fields: {
|
|
119
|
+
id: useTextField({
|
|
120
|
+
label: { en: "Code (ISO 639-1)", es: "C\xF3digo (ISO 639-1)" },
|
|
121
|
+
required: true,
|
|
122
|
+
placeholder: "es",
|
|
123
|
+
size: 2,
|
|
124
|
+
validation: { pattern: "^[a-z]{2}$" },
|
|
125
|
+
meta: { sortable: true }
|
|
126
|
+
}),
|
|
127
|
+
label: useLocalizedField({ label: { en: "Name", es: "Nombre" } }),
|
|
128
|
+
native_name: useTextField({
|
|
129
|
+
label: { en: "Native Name", es: "Nombre nativo" },
|
|
130
|
+
required: true,
|
|
131
|
+
placeholder: "Espa\xF1ol",
|
|
132
|
+
size: 100
|
|
133
|
+
}),
|
|
134
|
+
direction: useSelectField({
|
|
135
|
+
label: { en: "Direction", es: "Direcci\xF3n" },
|
|
136
|
+
options: [
|
|
137
|
+
{ value: "ltr", label: { en: "Left to Right", es: "Izquierda a derecha" } },
|
|
138
|
+
{ value: "rtl", label: { en: "Right to Left", es: "Derecha a izquierda" } }
|
|
139
|
+
],
|
|
140
|
+
defaultValue: "ltr",
|
|
141
|
+
nullable: false,
|
|
142
|
+
size: 3
|
|
143
|
+
}),
|
|
144
|
+
is_active: masterIsActiveField
|
|
145
|
+
},
|
|
146
|
+
indexes: [{ columns: ["label"] }],
|
|
147
|
+
seed: masterSeedConfig("languages.json", "id"),
|
|
148
|
+
casl: {
|
|
149
|
+
subject: DEFAULT_SUBJECT2,
|
|
150
|
+
permissions: masterCaslPermissions
|
|
151
|
+
}
|
|
152
|
+
};
|
|
153
|
+
var languageMaster = baseLanguageMaster;
|
|
154
|
+
var createLanguageMaster = createMasterFactory(baseLanguageMaster, DEFAULT_TABLE2, DEFAULT_SUBJECT2);
|
|
155
|
+
|
|
156
|
+
// src/masters/independent/timezone.master.ts
|
|
157
|
+
var DEFAULT_TABLE3 = "timezones";
|
|
158
|
+
var DEFAULT_SUBJECT3 = "MasterTimezone";
|
|
159
|
+
var baseTimezoneMaster = {
|
|
160
|
+
type: "reference",
|
|
161
|
+
table: `master_${DEFAULT_TABLE3}`,
|
|
162
|
+
routePrefix: "/timezones",
|
|
163
|
+
label: { en: "Timezone", es: "Zona horaria" },
|
|
164
|
+
labelPlural: { en: "Timezones", es: "Zonas horarias" },
|
|
165
|
+
labelField: "label",
|
|
166
|
+
timestamps: true,
|
|
167
|
+
fields: {
|
|
168
|
+
id: useTextField({
|
|
169
|
+
label: { en: "Timezone", es: "Zona horaria" },
|
|
170
|
+
required: true,
|
|
171
|
+
placeholder: "Europe/Madrid",
|
|
172
|
+
size: 50,
|
|
173
|
+
meta: { sortable: true }
|
|
174
|
+
}),
|
|
175
|
+
offset: useTextField({
|
|
176
|
+
label: { en: "UTC Offset", es: "Desfase UTC" },
|
|
177
|
+
required: true,
|
|
178
|
+
placeholder: "+01:00",
|
|
179
|
+
size: 10,
|
|
180
|
+
validation: { pattern: "^[+-]\\d{2}:\\d{2}$" },
|
|
181
|
+
meta: { sortable: true }
|
|
182
|
+
}),
|
|
183
|
+
label: useLocalizedField({ label: { en: "Display Label", es: "Etiqueta" } }),
|
|
184
|
+
is_active: masterIsActiveField
|
|
185
|
+
},
|
|
186
|
+
indexes: [{ columns: ["offset"] }],
|
|
187
|
+
seed: masterSeedConfig("timezones.json", "id"),
|
|
188
|
+
casl: {
|
|
189
|
+
subject: DEFAULT_SUBJECT3,
|
|
190
|
+
permissions: masterCaslPermissions
|
|
191
|
+
}
|
|
192
|
+
};
|
|
193
|
+
var timezoneMaster = baseTimezoneMaster;
|
|
194
|
+
var createTimezoneMaster = createMasterFactory(baseTimezoneMaster, DEFAULT_TABLE3, DEFAULT_SUBJECT3);
|
|
195
|
+
|
|
196
|
+
// src/masters/independent/social-network.master.ts
|
|
197
|
+
var DEFAULT_TABLE4 = "social_networks";
|
|
198
|
+
var DEFAULT_SUBJECT4 = "MasterSocialNetwork";
|
|
199
|
+
var baseSocialNetworkMaster = {
|
|
200
|
+
type: "reference",
|
|
201
|
+
table: `master_${DEFAULT_TABLE4}`,
|
|
202
|
+
routePrefix: "/social-networks",
|
|
203
|
+
label: { en: "Social Network", es: "Red social" },
|
|
204
|
+
labelPlural: { en: "Social Networks", es: "Redes sociales" },
|
|
205
|
+
labelField: "label",
|
|
206
|
+
timestamps: true,
|
|
207
|
+
fields: {
|
|
208
|
+
id: useTextField({
|
|
209
|
+
label: { en: "Code", es: "C\xF3digo" },
|
|
210
|
+
required: true,
|
|
211
|
+
placeholder: "linkedin",
|
|
212
|
+
size: 30,
|
|
213
|
+
validation: { pattern: "^[a-z]+$" }
|
|
214
|
+
}),
|
|
215
|
+
label: useTextField({
|
|
216
|
+
label: { en: "Name", es: "Nombre" },
|
|
217
|
+
required: true,
|
|
218
|
+
placeholder: "LinkedIn",
|
|
219
|
+
size: 50,
|
|
220
|
+
meta: { sortable: true }
|
|
221
|
+
}),
|
|
222
|
+
icon: useIconField({ label: { en: "Icon", es: "Icono" }, required: true, placeholder: "mdi:linkedin" }),
|
|
223
|
+
base_url: useUrlField({
|
|
224
|
+
label: { en: "Base URL", es: "URL base" },
|
|
225
|
+
placeholder: "https://linkedin.com/in/",
|
|
226
|
+
size: 255
|
|
227
|
+
}),
|
|
228
|
+
placeholder: useTextField({
|
|
229
|
+
label: { en: "Input Placeholder", es: "Placeholder" },
|
|
230
|
+
placeholder: "@username",
|
|
231
|
+
size: 100
|
|
232
|
+
}),
|
|
233
|
+
order: masterOrderField,
|
|
234
|
+
is_active: masterIsActiveField
|
|
235
|
+
},
|
|
236
|
+
indexes: [{ columns: ["order"] }],
|
|
237
|
+
seed: masterSeedConfig("social-networks.json", "id"),
|
|
238
|
+
casl: {
|
|
239
|
+
subject: DEFAULT_SUBJECT4,
|
|
240
|
+
permissions: masterCaslPermissions
|
|
241
|
+
}
|
|
242
|
+
};
|
|
243
|
+
var socialNetworkMaster = baseSocialNetworkMaster;
|
|
244
|
+
var createSocialNetworkMaster = createMasterFactory(baseSocialNetworkMaster, DEFAULT_TABLE4, DEFAULT_SUBJECT4);
|
|
245
|
+
|
|
246
|
+
// src/masters/independent/gender.master.ts
|
|
247
|
+
var DEFAULT_TABLE5 = "genders";
|
|
248
|
+
var DEFAULT_SUBJECT5 = "MasterGender";
|
|
249
|
+
var baseGenderMaster = {
|
|
250
|
+
type: "reference",
|
|
251
|
+
table: `master_${DEFAULT_TABLE5}`,
|
|
252
|
+
routePrefix: "/genders",
|
|
253
|
+
label: { en: "Gender", es: "G\xE9nero" },
|
|
254
|
+
labelPlural: { en: "Genders", es: "G\xE9neros" },
|
|
255
|
+
labelField: "label",
|
|
256
|
+
timestamps: true,
|
|
257
|
+
fields: {
|
|
258
|
+
id: useTextField({
|
|
259
|
+
label: { en: "Code", es: "C\xF3digo" },
|
|
260
|
+
required: true,
|
|
261
|
+
placeholder: "MALE",
|
|
262
|
+
size: 20,
|
|
263
|
+
validation: { pattern: "^[A-Z_]+$" }
|
|
264
|
+
}),
|
|
265
|
+
label: useLocalizedField({ label: { en: "Name", es: "Nombre" } }),
|
|
266
|
+
order: masterOrderField
|
|
267
|
+
},
|
|
268
|
+
indexes: [{ columns: ["order"] }],
|
|
269
|
+
seed: masterSeedConfig("genders.json", "id"),
|
|
270
|
+
casl: {
|
|
271
|
+
subject: DEFAULT_SUBJECT5,
|
|
272
|
+
permissions: masterCaslPermissions
|
|
273
|
+
}
|
|
274
|
+
};
|
|
275
|
+
var genderMaster = baseGenderMaster;
|
|
276
|
+
var createGenderMaster = createMasterFactory(baseGenderMaster, DEFAULT_TABLE5, DEFAULT_SUBJECT5);
|
|
277
|
+
|
|
278
|
+
// src/masters/independent/marital-status.master.ts
|
|
279
|
+
var DEFAULT_TABLE6 = "marital_statuses";
|
|
280
|
+
var DEFAULT_SUBJECT6 = "MasterMaritalStatus";
|
|
281
|
+
var baseMaritalStatusMaster = {
|
|
282
|
+
type: "reference",
|
|
283
|
+
table: `master_${DEFAULT_TABLE6}`,
|
|
284
|
+
routePrefix: "/marital-statuses",
|
|
285
|
+
label: { en: "Marital Status", es: "Estado civil" },
|
|
286
|
+
labelPlural: { en: "Marital Statuses", es: "Estados civiles" },
|
|
287
|
+
labelField: "label",
|
|
288
|
+
timestamps: true,
|
|
289
|
+
fields: {
|
|
290
|
+
id: useTextField({
|
|
291
|
+
label: { en: "Code", es: "C\xF3digo" },
|
|
292
|
+
required: true,
|
|
293
|
+
placeholder: "SINGLE",
|
|
294
|
+
size: 20,
|
|
295
|
+
validation: { pattern: "^[A-Z_]+$" }
|
|
296
|
+
}),
|
|
297
|
+
label: useLocalizedField({ label: { en: "Name", es: "Nombre" } }),
|
|
298
|
+
order: masterOrderField
|
|
299
|
+
},
|
|
300
|
+
indexes: [{ columns: ["order"] }],
|
|
301
|
+
seed: masterSeedConfig("marital-statuses.json", "id"),
|
|
302
|
+
casl: {
|
|
303
|
+
subject: DEFAULT_SUBJECT6,
|
|
304
|
+
permissions: masterCaslPermissions
|
|
305
|
+
}
|
|
306
|
+
};
|
|
307
|
+
var maritalStatusMaster = baseMaritalStatusMaster;
|
|
308
|
+
var createMaritalStatusMaster = createMasterFactory(baseMaritalStatusMaster, DEFAULT_TABLE6, DEFAULT_SUBJECT6);
|
|
309
|
+
|
|
310
|
+
// src/masters/independent/education-level.master.ts
|
|
311
|
+
var DEFAULT_TABLE7 = "education_levels";
|
|
312
|
+
var DEFAULT_SUBJECT7 = "MasterEducationLevel";
|
|
313
|
+
var baseEducationLevelMaster = {
|
|
314
|
+
type: "reference",
|
|
315
|
+
table: `master_${DEFAULT_TABLE7}`,
|
|
316
|
+
routePrefix: "/education-levels",
|
|
317
|
+
label: { en: "Education Level", es: "Nivel de estudios" },
|
|
318
|
+
labelPlural: { en: "Education Levels", es: "Niveles de estudios" },
|
|
319
|
+
labelField: "label",
|
|
320
|
+
timestamps: true,
|
|
321
|
+
fields: {
|
|
322
|
+
id: useTextField({
|
|
323
|
+
label: { en: "Code", es: "C\xF3digo" },
|
|
324
|
+
required: true,
|
|
325
|
+
placeholder: "BACHELOR",
|
|
326
|
+
size: 30,
|
|
327
|
+
validation: { pattern: "^[A-Z_]+$" }
|
|
328
|
+
}),
|
|
329
|
+
label: useLocalizedField({ label: { en: "Name", es: "Nombre" } }),
|
|
330
|
+
order: {
|
|
331
|
+
...masterOrderField,
|
|
332
|
+
hint: { en: "Lower = less education", es: "Menor = menos estudios" }
|
|
333
|
+
}
|
|
334
|
+
},
|
|
335
|
+
indexes: [{ columns: ["order"] }],
|
|
336
|
+
seed: masterSeedConfig("education-levels.json", "id"),
|
|
337
|
+
casl: {
|
|
338
|
+
subject: DEFAULT_SUBJECT7,
|
|
339
|
+
permissions: masterCaslPermissions
|
|
340
|
+
}
|
|
341
|
+
};
|
|
342
|
+
var educationLevelMaster = baseEducationLevelMaster;
|
|
343
|
+
var createEducationLevelMaster = createMasterFactory(baseEducationLevelMaster, DEFAULT_TABLE7, DEFAULT_SUBJECT7);
|
|
344
|
+
|
|
345
|
+
// src/masters/independent/industry.master.ts
|
|
346
|
+
var DEFAULT_TABLE8 = "industries";
|
|
347
|
+
var DEFAULT_SUBJECT8 = "MasterIndustry";
|
|
348
|
+
var baseIndustryMaster = {
|
|
349
|
+
type: "reference",
|
|
350
|
+
table: `master_${DEFAULT_TABLE8}`,
|
|
351
|
+
routePrefix: "/industries",
|
|
352
|
+
label: { en: "Industry", es: "Industria" },
|
|
353
|
+
labelPlural: { en: "Industries", es: "Industrias" },
|
|
354
|
+
labelField: "label",
|
|
355
|
+
timestamps: true,
|
|
356
|
+
fields: {
|
|
357
|
+
id: useTextField({
|
|
358
|
+
label: { en: "Code", es: "C\xF3digo" },
|
|
359
|
+
required: true,
|
|
360
|
+
placeholder: "TECH",
|
|
361
|
+
size: 30,
|
|
362
|
+
validation: { pattern: "^[A-Z_]+$" }
|
|
363
|
+
}),
|
|
364
|
+
label: useLocalizedField({ label: { en: "Name", es: "Nombre" } }),
|
|
365
|
+
icon: useIconField({ label: { en: "Icon", es: "Icono" }, placeholder: "mdi:factory" }),
|
|
366
|
+
order: masterOrderField
|
|
367
|
+
},
|
|
368
|
+
indexes: [{ columns: ["order"] }],
|
|
369
|
+
seed: masterSeedConfig("industries.json", "id"),
|
|
370
|
+
casl: {
|
|
371
|
+
subject: DEFAULT_SUBJECT8,
|
|
372
|
+
permissions: masterCaslPermissions
|
|
373
|
+
}
|
|
374
|
+
};
|
|
375
|
+
var industryMaster = baseIndustryMaster;
|
|
376
|
+
var createIndustryMaster = createMasterFactory(baseIndustryMaster, DEFAULT_TABLE8, DEFAULT_SUBJECT8);
|
|
377
|
+
|
|
378
|
+
// src/masters/independent/company-type.master.ts
|
|
379
|
+
var DEFAULT_TABLE9 = "company_types";
|
|
380
|
+
var DEFAULT_SUBJECT9 = "MasterCompanyType";
|
|
381
|
+
var baseCompanyTypeMaster = {
|
|
382
|
+
type: "reference",
|
|
383
|
+
table: `master_${DEFAULT_TABLE9}`,
|
|
384
|
+
routePrefix: "/company-types",
|
|
385
|
+
label: { en: "Company Type", es: "Tipo de empresa" },
|
|
386
|
+
labelPlural: { en: "Company Types", es: "Tipos de empresa" },
|
|
387
|
+
labelField: "label",
|
|
388
|
+
timestamps: true,
|
|
389
|
+
fields: {
|
|
390
|
+
id: useTextField({
|
|
391
|
+
label: { en: "Code", es: "C\xF3digo" },
|
|
392
|
+
required: true,
|
|
393
|
+
placeholder: "SL",
|
|
394
|
+
size: 20
|
|
395
|
+
}),
|
|
396
|
+
label: useLocalizedField({ label: { en: "Name", es: "Nombre" } }),
|
|
397
|
+
description: {
|
|
398
|
+
label: { en: "Description", es: "Descripci\xF3n" },
|
|
399
|
+
input: "textarea",
|
|
400
|
+
db: { type: "json", nullable: true },
|
|
401
|
+
meta: { searchable: true }
|
|
402
|
+
},
|
|
403
|
+
order: masterOrderField
|
|
404
|
+
},
|
|
405
|
+
indexes: [{ columns: ["order"] }],
|
|
406
|
+
seed: masterSeedConfig("company-types.json", "id"),
|
|
407
|
+
casl: {
|
|
408
|
+
subject: DEFAULT_SUBJECT9,
|
|
409
|
+
permissions: masterCaslPermissions
|
|
410
|
+
}
|
|
411
|
+
};
|
|
412
|
+
var companyTypeMaster = baseCompanyTypeMaster;
|
|
413
|
+
var createCompanyTypeMaster = createMasterFactory(baseCompanyTypeMaster, DEFAULT_TABLE9, DEFAULT_SUBJECT9);
|
|
414
|
+
|
|
415
|
+
// src/masters/independent/unit.master.ts
|
|
416
|
+
var DEFAULT_TABLE10 = "units";
|
|
417
|
+
var DEFAULT_SUBJECT10 = "MasterUnit";
|
|
418
|
+
var baseUnitMaster = {
|
|
419
|
+
type: "reference",
|
|
420
|
+
table: `master_${DEFAULT_TABLE10}`,
|
|
421
|
+
routePrefix: "/units",
|
|
422
|
+
label: { en: "Unit of Measure", es: "Unidad de medida" },
|
|
423
|
+
labelPlural: { en: "Units of Measure", es: "Unidades de medida" },
|
|
424
|
+
labelField: "label",
|
|
425
|
+
timestamps: true,
|
|
426
|
+
fields: {
|
|
427
|
+
id: useTextField({
|
|
428
|
+
label: { en: "Code", es: "C\xF3digo" },
|
|
429
|
+
required: true,
|
|
430
|
+
placeholder: "KG",
|
|
431
|
+
size: 10
|
|
432
|
+
}),
|
|
433
|
+
label: useLocalizedField({ label: { en: "Name", es: "Nombre" } }),
|
|
434
|
+
symbol: useTextField({
|
|
435
|
+
label: { en: "Symbol", es: "S\xEDmbolo" },
|
|
436
|
+
required: true,
|
|
437
|
+
placeholder: "kg",
|
|
438
|
+
size: 10
|
|
439
|
+
}),
|
|
440
|
+
category: useSelectField({
|
|
441
|
+
label: { en: "Category", es: "Categor\xEDa" },
|
|
442
|
+
options: [
|
|
443
|
+
{ value: "weight", label: { en: "Weight", es: "Peso" } },
|
|
444
|
+
{ value: "volume", label: { en: "Volume", es: "Volumen" } },
|
|
445
|
+
{ value: "length", label: { en: "Length", es: "Longitud" } },
|
|
446
|
+
{ value: "area", label: { en: "Area", es: "\xC1rea" } },
|
|
447
|
+
{ value: "count", label: { en: "Count", es: "Cantidad" } },
|
|
448
|
+
{ value: "time", label: { en: "Time", es: "Tiempo" } },
|
|
449
|
+
{ value: "other", label: { en: "Other", es: "Otro" } }
|
|
450
|
+
],
|
|
451
|
+
required: true,
|
|
452
|
+
size: 20,
|
|
453
|
+
meta: { sortable: true }
|
|
454
|
+
}),
|
|
455
|
+
order: masterOrderField
|
|
456
|
+
},
|
|
457
|
+
indexes: [{ columns: ["category", "order"] }],
|
|
458
|
+
seed: masterSeedConfig("units.json", "id"),
|
|
459
|
+
casl: {
|
|
460
|
+
subject: DEFAULT_SUBJECT10,
|
|
461
|
+
permissions: masterCaslPermissions
|
|
462
|
+
}
|
|
463
|
+
};
|
|
464
|
+
var unitMaster = baseUnitMaster;
|
|
465
|
+
var createUnitMaster = createMasterFactory(baseUnitMaster, DEFAULT_TABLE10, DEFAULT_SUBJECT10);
|
|
466
|
+
|
|
467
|
+
// src/masters/independent/product-category.master.ts
|
|
468
|
+
var DEFAULT_TABLE11 = "product_categories";
|
|
469
|
+
var DEFAULT_SUBJECT11 = "MasterProductCategory";
|
|
470
|
+
var baseProductCategoryMaster = {
|
|
471
|
+
type: "reference",
|
|
472
|
+
table: `master_${DEFAULT_TABLE11}`,
|
|
473
|
+
routePrefix: "/product-categories",
|
|
474
|
+
label: { en: "Product Category", es: "Categor\xEDa de producto" },
|
|
475
|
+
labelPlural: { en: "Product Categories", es: "Categor\xEDas de productos" },
|
|
476
|
+
labelField: "label",
|
|
477
|
+
timestamps: true,
|
|
478
|
+
fields: {
|
|
479
|
+
id: useTextField({
|
|
480
|
+
label: { en: "Code", es: "C\xF3digo" },
|
|
481
|
+
required: true,
|
|
482
|
+
placeholder: "ELECTRONICS",
|
|
483
|
+
size: 30,
|
|
484
|
+
validation: { pattern: "^[A-Z_]+$" }
|
|
485
|
+
}),
|
|
486
|
+
label: useLocalizedField({ label: { en: "Name", es: "Nombre" } }),
|
|
487
|
+
parent_id: {
|
|
488
|
+
label: { en: "Parent Category", es: "Categor\xEDa padre" },
|
|
489
|
+
input: "select",
|
|
490
|
+
db: { type: "string", size: 30, nullable: true },
|
|
491
|
+
relation: {
|
|
492
|
+
table: "master_product_categories",
|
|
493
|
+
column: "id",
|
|
494
|
+
onDelete: "SET NULL"
|
|
495
|
+
},
|
|
496
|
+
options: refOptions("masters", "product-categories")
|
|
497
|
+
},
|
|
498
|
+
icon: useIconField({ label: { en: "Icon", es: "Icono" }, placeholder: "mdi:laptop" }),
|
|
499
|
+
order: masterOrderField
|
|
500
|
+
},
|
|
501
|
+
indexes: [
|
|
502
|
+
{ columns: ["parent_id"] },
|
|
503
|
+
{ columns: ["order"] }
|
|
504
|
+
],
|
|
505
|
+
seed: masterSeedConfig("product-categories.json", "id"),
|
|
506
|
+
casl: {
|
|
507
|
+
subject: DEFAULT_SUBJECT11,
|
|
508
|
+
permissions: masterCaslPermissions
|
|
509
|
+
}
|
|
510
|
+
};
|
|
511
|
+
var productCategoryMaster = baseProductCategoryMaster;
|
|
512
|
+
var createProductCategoryMaster = createMasterFactory(baseProductCategoryMaster, DEFAULT_TABLE11, DEFAULT_SUBJECT11);
|
|
513
|
+
|
|
514
|
+
// src/masters/independent/location.master.ts
|
|
515
|
+
var DEFAULT_TABLE12 = "locations";
|
|
516
|
+
var DEFAULT_SUBJECT12 = "MasterLocation";
|
|
517
|
+
var baseLocationMaster = {
|
|
518
|
+
type: "tree",
|
|
519
|
+
table: `master_${DEFAULT_TABLE12}`,
|
|
520
|
+
routePrefix: "/locations",
|
|
521
|
+
label: { en: "Location", es: "Ubicaci\xF3n" },
|
|
522
|
+
labelPlural: { en: "Locations", es: "Ubicaciones" },
|
|
523
|
+
labelField: "label",
|
|
524
|
+
timestamps: true,
|
|
525
|
+
allowCreate: false,
|
|
526
|
+
allowEdit: false,
|
|
527
|
+
allowDelete: false,
|
|
528
|
+
fields: {
|
|
529
|
+
id: useTextField({
|
|
530
|
+
label: { en: "Code", es: "C\xF3digo" },
|
|
531
|
+
required: true,
|
|
532
|
+
placeholder: "ES, ES-M, ES-M-28001",
|
|
533
|
+
size: 20
|
|
534
|
+
}),
|
|
535
|
+
label: useLocalizedField({ label: { en: "Name", es: "Nombre" } }),
|
|
536
|
+
level: useSelectField({
|
|
537
|
+
label: { en: "Level", es: "Nivel" },
|
|
538
|
+
options: [
|
|
539
|
+
{ value: "country", label: { en: "Country", es: "Pa\xEDs" } },
|
|
540
|
+
{ value: "province", label: { en: "Province", es: "Provincia" } },
|
|
541
|
+
{ value: "city", label: { en: "City", es: "Ciudad" } }
|
|
542
|
+
],
|
|
543
|
+
required: true,
|
|
544
|
+
size: 10,
|
|
545
|
+
meta: { sortable: true }
|
|
546
|
+
}),
|
|
547
|
+
code: useTextField({
|
|
548
|
+
label: { en: "ISO/Postal Code", es: "C\xF3digo ISO/Postal" },
|
|
549
|
+
placeholder: "ES, M, 28001",
|
|
550
|
+
size: 10
|
|
551
|
+
}),
|
|
552
|
+
lat: {
|
|
553
|
+
label: { en: "Latitude", es: "Latitud" },
|
|
554
|
+
input: "number",
|
|
555
|
+
db: { type: "decimal", precision: [10, 6], nullable: true }
|
|
556
|
+
},
|
|
557
|
+
lng: {
|
|
558
|
+
label: { en: "Longitude", es: "Longitud" },
|
|
559
|
+
input: "number",
|
|
560
|
+
db: { type: "decimal", precision: [10, 6], nullable: true }
|
|
561
|
+
},
|
|
562
|
+
is_active: masterIsActiveField
|
|
563
|
+
},
|
|
564
|
+
indexes: [
|
|
565
|
+
{ columns: ["level"] },
|
|
566
|
+
{ columns: ["code"] }
|
|
567
|
+
],
|
|
568
|
+
seed: masterSeedConfig("locations.json", "id"),
|
|
569
|
+
casl: {
|
|
570
|
+
subject: DEFAULT_SUBJECT12,
|
|
571
|
+
permissions: masterCaslPermissions
|
|
572
|
+
}
|
|
573
|
+
};
|
|
574
|
+
var locationMaster = baseLocationMaster;
|
|
575
|
+
var createLocationMaster = createMasterFactory(baseLocationMaster, DEFAULT_TABLE12, DEFAULT_SUBJECT12);
|
|
576
|
+
|
|
577
|
+
// src/masters/dependent/phone-prefix.master.ts
|
|
578
|
+
var DEFAULT_TABLE13 = "phone_prefixes";
|
|
579
|
+
var DEFAULT_SUBJECT13 = "MasterPhonePrefix";
|
|
580
|
+
var basePhonePrefixMaster = {
|
|
581
|
+
type: "reference",
|
|
582
|
+
table: `master_${DEFAULT_TABLE13}`,
|
|
583
|
+
routePrefix: "/phone-prefixes",
|
|
584
|
+
label: { en: "Phone Prefix", es: "Prefijo telef\xF3nico" },
|
|
585
|
+
labelPlural: { en: "Phone Prefixes", es: "Prefijos telef\xF3nicos" },
|
|
586
|
+
labelField: "label",
|
|
587
|
+
timestamps: true,
|
|
588
|
+
fields: {
|
|
589
|
+
id: useTextField({
|
|
590
|
+
label: { en: "Prefix", es: "Prefijo" },
|
|
591
|
+
required: true,
|
|
592
|
+
placeholder: "+34",
|
|
593
|
+
size: 10,
|
|
594
|
+
validation: { pattern: "^\\+\\d{1,4}$" },
|
|
595
|
+
meta: { sortable: true }
|
|
596
|
+
}),
|
|
597
|
+
label: useTextField({
|
|
598
|
+
label: { en: "Display Label", es: "Etiqueta" },
|
|
599
|
+
required: true,
|
|
600
|
+
placeholder: "+34 (Spain)",
|
|
601
|
+
size: 50
|
|
602
|
+
}),
|
|
603
|
+
format: useTextField({
|
|
604
|
+
label: { en: "Format Mask", es: "M\xE1scara de formato" },
|
|
605
|
+
hint: { en: "X = digit, e.g. +XX XXX XXX XXX", es: "X = d\xEDgito, ej. +XX XXX XXX XXX" },
|
|
606
|
+
placeholder: "+XX XXX XXX XXX",
|
|
607
|
+
size: 50
|
|
608
|
+
})
|
|
609
|
+
},
|
|
610
|
+
indexes: [],
|
|
611
|
+
seed: masterSeedConfig("phone-prefixes.json", "id"),
|
|
612
|
+
casl: {
|
|
613
|
+
subject: DEFAULT_SUBJECT13,
|
|
614
|
+
permissions: masterCaslPermissions
|
|
615
|
+
}
|
|
616
|
+
};
|
|
617
|
+
var phonePrefixMaster = basePhonePrefixMaster;
|
|
618
|
+
var createPhonePrefixMaster = createMasterFactory(basePhonePrefixMaster, DEFAULT_TABLE13, DEFAULT_SUBJECT13);
|
|
619
|
+
|
|
620
|
+
// src/masters/dependent/document-type.master.ts
|
|
621
|
+
var DEFAULT_TABLE14 = "document_types";
|
|
622
|
+
var DEFAULT_SUBJECT14 = "MasterDocumentType";
|
|
623
|
+
var baseDocumentTypeMaster = {
|
|
624
|
+
type: "reference",
|
|
625
|
+
table: `master_${DEFAULT_TABLE14}`,
|
|
626
|
+
routePrefix: "/document-types",
|
|
627
|
+
label: { en: "Document Type", es: "Tipo de documento" },
|
|
628
|
+
labelPlural: { en: "Document Types", es: "Tipos de documento" },
|
|
629
|
+
labelField: "label",
|
|
630
|
+
timestamps: true,
|
|
631
|
+
fields: {
|
|
632
|
+
id: useTextField({
|
|
633
|
+
label: { en: "Code", es: "C\xF3digo" },
|
|
634
|
+
required: true,
|
|
635
|
+
placeholder: "DNI",
|
|
636
|
+
size: 20
|
|
637
|
+
}),
|
|
638
|
+
label: useLocalizedField({ label: { en: "Name", es: "Nombre" } }),
|
|
639
|
+
pattern: useTextField({
|
|
640
|
+
label: { en: "Validation Pattern", es: "Patr\xF3n de validaci\xF3n" },
|
|
641
|
+
hint: { en: "Regex pattern for validation", es: "Patr\xF3n regex para validaci\xF3n" },
|
|
642
|
+
placeholder: "^[0-9]{8}[A-Z]$"
|
|
643
|
+
})
|
|
644
|
+
},
|
|
645
|
+
indexes: [],
|
|
646
|
+
seed: masterSeedConfig("document-types.json", "id"),
|
|
647
|
+
casl: {
|
|
648
|
+
subject: DEFAULT_SUBJECT14,
|
|
649
|
+
permissions: masterCaslPermissions
|
|
650
|
+
}
|
|
651
|
+
};
|
|
652
|
+
var documentTypeMaster = baseDocumentTypeMaster;
|
|
653
|
+
var createDocumentTypeMaster = createMasterFactory(baseDocumentTypeMaster, DEFAULT_TABLE14, DEFAULT_SUBJECT14);
|
|
654
|
+
export {
|
|
655
|
+
applyMasterConfig,
|
|
656
|
+
companyTypeMaster,
|
|
657
|
+
createCompanyTypeMaster,
|
|
658
|
+
createCurrencyMaster,
|
|
659
|
+
createDocumentTypeMaster,
|
|
660
|
+
createEducationLevelMaster,
|
|
661
|
+
createGenderMaster,
|
|
662
|
+
createIndustryMaster,
|
|
663
|
+
createLanguageMaster,
|
|
664
|
+
createLocationMaster,
|
|
665
|
+
createMaritalStatusMaster,
|
|
666
|
+
createMasterFactory,
|
|
667
|
+
createPhonePrefixMaster,
|
|
668
|
+
createProductCategoryMaster,
|
|
669
|
+
createSocialNetworkMaster,
|
|
670
|
+
createTimezoneMaster,
|
|
671
|
+
createUnitMaster,
|
|
672
|
+
currencyMaster,
|
|
673
|
+
documentTypeMaster,
|
|
674
|
+
educationLevelMaster,
|
|
675
|
+
genderMaster,
|
|
676
|
+
industryMaster,
|
|
677
|
+
languageMaster,
|
|
678
|
+
locationMaster,
|
|
679
|
+
maritalStatusMaster,
|
|
680
|
+
masterCaslPermissions,
|
|
681
|
+
masterIdField,
|
|
682
|
+
masterIsActiveField,
|
|
683
|
+
masterOrderField,
|
|
684
|
+
phonePrefixMaster,
|
|
685
|
+
productCategoryMaster,
|
|
686
|
+
socialNetworkMaster,
|
|
687
|
+
timezoneMaster,
|
|
688
|
+
unitMaster
|
|
689
|
+
};
|