@ngdux/data-model-common 0.0.1
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/README.md +7 -0
- package/esm2020/index.mjs +9 -0
- package/esm2020/lib/models/error.dto.mjs +2 -0
- package/esm2020/lib/models/filtering-options.model.mjs +20 -0
- package/esm2020/lib/models/form-service.model.mjs +2 -0
- package/esm2020/lib/models/list-service.model.mjs +2 -0
- package/esm2020/lib/models/paging-options.model.mjs +4 -0
- package/esm2020/lib/models/request-options.model.mjs +14 -0
- package/esm2020/lib/models/request-state.model.mjs +8 -0
- package/esm2020/lib/models/sorting-options.model.mjs +8 -0
- package/esm2020/ngdux-data-model-common.mjs +5 -0
- package/esm2020/test/index.mjs +4 -0
- package/esm2020/test/lib/common.fixture.mjs +164 -0
- package/esm2020/test/lib/error.fixture.mjs +9 -0
- package/esm2020/test/ngdux-data-model-common-test.mjs +5 -0
- package/fesm2015/ngdux-data-model-common-test.mjs +231 -0
- package/fesm2015/ngdux-data-model-common-test.mjs.map +1 -0
- package/fesm2015/ngdux-data-model-common.mjs +58 -0
- package/fesm2015/ngdux-data-model-common.mjs.map +1 -0
- package/fesm2020/ngdux-data-model-common-test.mjs +231 -0
- package/fesm2020/ngdux-data-model-common-test.mjs.map +1 -0
- package/fesm2020/ngdux-data-model-common.mjs +58 -0
- package/fesm2020/ngdux-data-model-common.mjs.map +1 -0
- package/index.d.ts +8 -0
- package/lib/models/error.dto.d.ts +11 -0
- package/lib/models/filtering-options.model.d.ts +34 -0
- package/lib/models/form-service.model.d.ts +20 -0
- package/lib/models/list-service.model.d.ts +12 -0
- package/lib/models/paging-options.model.d.ts +11 -0
- package/lib/models/request-options.model.d.ts +16 -0
- package/lib/models/request-state.model.d.ts +6 -0
- package/lib/models/sorting-options.model.d.ts +19 -0
- package/package.json +41 -0
- package/test/README.md +3 -0
- package/test/index.d.ts +3 -0
- package/test/lib/common.fixture.d.ts +50 -0
- package/test/lib/error.fixture.d.ts +2 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ngdux-data-model-common.mjs","sources":["../../../../../../libs/shared/data-model/common/src/lib/models/filtering-options.model.ts","../../../../../../libs/shared/data-model/common/src/lib/models/paging-options.model.ts","../../../../../../libs/shared/data-model/common/src/lib/models/request-options.model.ts","../../../../../../libs/shared/data-model/common/src/lib/models/request-state.model.ts","../../../../../../libs/shared/data-model/common/src/lib/models/sorting-options.model.ts","../../../../../../libs/shared/data-model/common/src/ngdux-data-model-common.ts"],"sourcesContent":["export enum FilteringLogic {\r\n AND = 'and',\r\n OR = 'or'\r\n}\r\n\r\nexport const DEFAULT_FILTERING_LOGIC = FilteringLogic.AND;\r\n\r\nexport enum FilteringOperator {\r\n Equal = 'eq',\r\n NotEqual = 'neq',\r\n LessThan = 'lt',\r\n LessThanOrEqual = 'lte',\r\n GreaterThan = 'gt',\r\n GreaterThanOrEqual = 'gte',\r\n StartsWith = 'startswith',\r\n EndsWith = 'endswith',\r\n Contains = 'contains'\r\n}\r\n\r\nexport const DEFAULT_FILTERING_OPERATOR = FilteringOperator.Equal;\r\n\r\n/**\r\n * Defines the filter criterion for a single resource field.\r\n * Field, filter value and operator are required.\r\n */\r\nexport interface FilteringField {\r\n field: string;\r\n value: string;\r\n operator: FilteringOperator;\r\n}\r\n\r\n/**\r\n * The options required to filter resources by one or multiple fields.\r\n * Defines which fields to filter the resources by.\r\n */\r\nexport interface FilteringOptions {\r\n filters: Array<FilteringField | FilteringOptions>;\r\n logic: FilteringLogic;\r\n}\r\n","export const DEFAULT_PAGE = 1;\r\nexport const DEFAULT_PAGE_SIZE = 10;\r\nexport const DEFAULT_STORED_PAGES = 3;\r\n\r\n/**\r\n * The options required to make a resource request for paged resources.\r\n * This defines which page and how many resources per page to return.\r\n */\r\nexport interface PagingOptions {\r\n page: number;\r\n pageSize: number;\r\n}\r\n","import { DEFAULT_FILTERING_LOGIC, FilteringOptions } from './filtering-options.model';\r\nimport { DEFAULT_PAGE, DEFAULT_PAGE_SIZE, PagingOptions } from './paging-options.model';\r\nimport { SortingField, SortingOptions } from './sorting-options.model';\r\n\r\nexport const DEFAULT_REQUEST_OPTIONS: RequestOptions = {\r\n pagingOptions: {\r\n page: DEFAULT_PAGE,\r\n pageSize: DEFAULT_PAGE_SIZE\r\n },\r\n sortingOptions: {},\r\n filteringOptions: {\r\n logic: DEFAULT_FILTERING_LOGIC,\r\n filters: []\r\n }\r\n};\r\n\r\nexport interface RequestOptions {\r\n requestParameters?: Record<string, string>;\r\n pagingOptions?: PagingOptions;\r\n sortingOptions?: SortingOptions;\r\n filteringOptions?: FilteringOptions;\r\n}\r\n\r\nexport interface QueryOptionsDto {\r\n filter?: FilteringOptions;\r\n sort?: SortingField[];\r\n page?: number;\r\n pageSize?: number;\r\n}\r\n","export enum RequestState {\r\n IDLE = 'IDLE',\r\n IN_PROGRESS = 'IN_PROGRESS',\r\n FAILURE = 'FAILURE',\r\n SUCCESS = 'SUCCESS'\r\n}\r\n","export enum SortingDirection {\r\n ASCENDING = 'asc',\r\n DESCENDING = 'desc',\r\n NONE = ''\r\n}\r\n\r\nexport const DEFAULT_SORTING_ORDER = SortingDirection.ASCENDING;\r\n\r\n/**\r\n * Defines the sorting criterion for a single resource field.\r\n * Name and sorting order are required.\r\n */\r\nexport interface SortingField {\r\n field: string;\r\n direction: SortingDirection;\r\n}\r\n\r\n/**\r\n * The options required to sort resources by one or multiple fields.\r\n * Defines which fields to sort the resources by.\r\n */\r\nexport type SortingOptions = Record<string, SortingField>;\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"AAAY,IAAA,eAGX;AAHD,CAAA,UAAY,cAAc,EAAA;AACxB,IAAA,cAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,cAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACX,CAAC,EAHW,cAAc,KAAd,cAAc,GAGzB,EAAA,CAAA,CAAA,CAAA;AAEY,MAAA,uBAAuB,GAAG,cAAc,CAAC,IAAI;AAE9C,IAAA,kBAUX;AAVD,CAAA,UAAY,iBAAiB,EAAA;AAC3B,IAAA,iBAAA,CAAA,OAAA,CAAA,GAAA,IAAY,CAAA;AACZ,IAAA,iBAAA,CAAA,UAAA,CAAA,GAAA,KAAgB,CAAA;AAChB,IAAA,iBAAA,CAAA,UAAA,CAAA,GAAA,IAAe,CAAA;AACf,IAAA,iBAAA,CAAA,iBAAA,CAAA,GAAA,KAAuB,CAAA;AACvB,IAAA,iBAAA,CAAA,aAAA,CAAA,GAAA,IAAkB,CAAA;AAClB,IAAA,iBAAA,CAAA,oBAAA,CAAA,GAAA,KAA0B,CAAA;AAC1B,IAAA,iBAAA,CAAA,YAAA,CAAA,GAAA,YAAyB,CAAA;AACzB,IAAA,iBAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACrB,IAAA,iBAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACvB,CAAC,EAVW,iBAAiB,KAAjB,iBAAiB,GAU5B,EAAA,CAAA,CAAA,CAAA;AAEY,MAAA,0BAA0B,GAAG,iBAAiB,CAAC;;ACnBrD,MAAM,YAAY,GAAG,EAAE;AACvB,MAAM,iBAAiB,GAAG,GAAG;AAC7B,MAAM,oBAAoB,GAAG;;ACEvB,MAAA,uBAAuB,GAAmB;AACrD,IAAA,aAAa,EAAE;AACb,QAAA,IAAI,EAAE,YAAY;AAClB,QAAA,QAAQ,EAAE,iBAAiB;AAC5B,KAAA;AACD,IAAA,cAAc,EAAE,EAAE;AAClB,IAAA,gBAAgB,EAAE;AAChB,QAAA,KAAK,EAAE,uBAAuB;AAC9B,QAAA,OAAO,EAAE,EAAE;AACZ,KAAA;;;ACbS,IAAA,aAKX;AALD,CAAA,UAAY,YAAY,EAAA;AACtB,IAAA,YAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,IAAA,YAAA,CAAA,aAAA,CAAA,GAAA,aAA2B,CAAA;AAC3B,IAAA,YAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,IAAA,YAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACrB,CAAC,EALW,YAAY,KAAZ,YAAY,GAKvB,EAAA,CAAA,CAAA;;ACLW,IAAA,iBAIX;AAJD,CAAA,UAAY,gBAAgB,EAAA;AAC1B,IAAA,gBAAA,CAAA,WAAA,CAAA,GAAA,KAAiB,CAAA;AACjB,IAAA,gBAAA,CAAA,YAAA,CAAA,GAAA,MAAmB,CAAA;AACnB,IAAA,gBAAA,CAAA,MAAA,CAAA,GAAA,EAAS,CAAA;AACX,CAAC,EAJW,gBAAgB,KAAhB,gBAAgB,GAI3B,EAAA,CAAA,CAAA,CAAA;AAEY,MAAA,qBAAqB,GAAG,gBAAgB,CAAC;;ACNtD;;AAEG;;;;"}
|
|
@@ -0,0 +1,231 @@
|
|
|
1
|
+
import { faker } from '@faker-js/faker';
|
|
2
|
+
|
|
3
|
+
/* eslint-disable @typescript-eslint/ban-types */
|
|
4
|
+
const DEFAULT_RESOURCE_COLLECTION_SIZE = 50;
|
|
5
|
+
function getBoolean() {
|
|
6
|
+
return faker.datatype.boolean();
|
|
7
|
+
}
|
|
8
|
+
function getPositiveNumber() {
|
|
9
|
+
return faker.datatype.number({ min: 1 });
|
|
10
|
+
}
|
|
11
|
+
function getNumberInRange(from, to) {
|
|
12
|
+
return faker.datatype.number({ min: from, max: to });
|
|
13
|
+
}
|
|
14
|
+
function getWord() {
|
|
15
|
+
return faker.random.word();
|
|
16
|
+
}
|
|
17
|
+
function getUniqueWord() {
|
|
18
|
+
return faker.unique(faker.random.word, undefined, { maxTime: 100, maxRetries: 100 });
|
|
19
|
+
}
|
|
20
|
+
function getFirstName() {
|
|
21
|
+
return faker.name.firstName();
|
|
22
|
+
}
|
|
23
|
+
function getLastName() {
|
|
24
|
+
return faker.name.lastName();
|
|
25
|
+
}
|
|
26
|
+
function getJobTitle() {
|
|
27
|
+
return faker.company.catchPhrase();
|
|
28
|
+
}
|
|
29
|
+
function getPhoneNumber() {
|
|
30
|
+
return `+${faker.phone.phoneNumberFormat(2)}`;
|
|
31
|
+
}
|
|
32
|
+
function getAvatar() {
|
|
33
|
+
return faker.image.avatar();
|
|
34
|
+
}
|
|
35
|
+
function getLogo() {
|
|
36
|
+
return faker.image.business();
|
|
37
|
+
}
|
|
38
|
+
function getColor() {
|
|
39
|
+
return faker.internet.color();
|
|
40
|
+
}
|
|
41
|
+
function getFont() {
|
|
42
|
+
return getElementFromArray(['Arial', 'Helvetica']);
|
|
43
|
+
}
|
|
44
|
+
function getGoogleFont() {
|
|
45
|
+
return getElementFromArray(['Roboto', 'Roboto Mono', 'Open Sans', 'Gotu', 'Lato']);
|
|
46
|
+
}
|
|
47
|
+
function getEmail(firstName, lastName) {
|
|
48
|
+
return faker.internet.email(firstName, lastName).toLocaleLowerCase();
|
|
49
|
+
}
|
|
50
|
+
function getElementFromArray(array) {
|
|
51
|
+
return faker.helpers.arrayElement(array);
|
|
52
|
+
}
|
|
53
|
+
function getElementsFromArray(array, nbOfElements = array.length) {
|
|
54
|
+
const elements = new Set();
|
|
55
|
+
if (nbOfElements > array.length) {
|
|
56
|
+
nbOfElements = array.length;
|
|
57
|
+
}
|
|
58
|
+
while (elements.size < nbOfElements) {
|
|
59
|
+
elements.add(getElementFromArray(array));
|
|
60
|
+
}
|
|
61
|
+
return Array.from(elements);
|
|
62
|
+
}
|
|
63
|
+
function getElementFromEnum(enumeration) {
|
|
64
|
+
// Numeric enums have automatic reverse mapping which means that we need to filter out the keys which are numeric.
|
|
65
|
+
const enumKey = getElementFromArray(Object.keys(enumeration).filter(key => !parseInt(key, 10)));
|
|
66
|
+
return enumeration[enumKey];
|
|
67
|
+
}
|
|
68
|
+
function getElementsFromEnum(enumeration, nbOfElements = Object.keys(enumeration).length) {
|
|
69
|
+
const elements = new Set();
|
|
70
|
+
const enumerationKeys = Object.keys(enumeration);
|
|
71
|
+
if (nbOfElements > enumerationKeys.length) {
|
|
72
|
+
nbOfElements = enumerationKeys.length;
|
|
73
|
+
}
|
|
74
|
+
while (elements.size < nbOfElements) {
|
|
75
|
+
elements.add(enumeration[getElementFromArray(enumerationKeys)]);
|
|
76
|
+
}
|
|
77
|
+
return Array.from(elements);
|
|
78
|
+
}
|
|
79
|
+
function getEnumValue(enumObj) {
|
|
80
|
+
return getElementFromArray(Object.values(enumObj));
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Return a random object key or path.
|
|
84
|
+
* Ex.:
|
|
85
|
+
* object = { a: { b: { c: 3 }}}
|
|
86
|
+
* return 'a.b.c'
|
|
87
|
+
* @param object any object
|
|
88
|
+
* @param path string
|
|
89
|
+
*/
|
|
90
|
+
// export function getObjectPropertyPath<T>(object: T, path = ''): string {
|
|
91
|
+
// const key = getElementFromArray(Object.keys(object));
|
|
92
|
+
// const nextPath = path ? `${path}.${key}` : key;
|
|
93
|
+
// if (typeof object[key] === 'object' && !(object[key] instanceof Array)) {
|
|
94
|
+
// return getObjectPropertyPath(object[key], nextPath);
|
|
95
|
+
// }
|
|
96
|
+
// return nextPath;
|
|
97
|
+
// }
|
|
98
|
+
function getLatitude() {
|
|
99
|
+
return +faker.address.latitude();
|
|
100
|
+
}
|
|
101
|
+
function getLongitude() {
|
|
102
|
+
return +faker.address.longitude();
|
|
103
|
+
}
|
|
104
|
+
function getStreetName() {
|
|
105
|
+
return faker.address.streetName();
|
|
106
|
+
}
|
|
107
|
+
function getZipCode() {
|
|
108
|
+
return faker.address.zipCode();
|
|
109
|
+
}
|
|
110
|
+
function getCity() {
|
|
111
|
+
return faker.address.city();
|
|
112
|
+
}
|
|
113
|
+
function getCountryCode() {
|
|
114
|
+
return faker.address.countryCode();
|
|
115
|
+
}
|
|
116
|
+
function getUrl() {
|
|
117
|
+
return faker.internet.url();
|
|
118
|
+
}
|
|
119
|
+
function getDomainName() {
|
|
120
|
+
return faker.internet.domainName();
|
|
121
|
+
}
|
|
122
|
+
function getSemverVersion() {
|
|
123
|
+
return faker.system.semver();
|
|
124
|
+
}
|
|
125
|
+
function getLocale() {
|
|
126
|
+
return faker.random.locale();
|
|
127
|
+
}
|
|
128
|
+
function getIso8601Date() {
|
|
129
|
+
return faker.date.recent().toISOString();
|
|
130
|
+
}
|
|
131
|
+
function getRecentDate(days = 1, refDate = new Date()) {
|
|
132
|
+
return faker.date.recent(days, refDate);
|
|
133
|
+
}
|
|
134
|
+
function getSoonDate(days = 1, refDate = new Date()) {
|
|
135
|
+
return faker.date.soon(days, refDate);
|
|
136
|
+
}
|
|
137
|
+
function getFewDaysAgoDate(nbOfDays = 3) {
|
|
138
|
+
const fewDaysAgo = new Date();
|
|
139
|
+
fewDaysAgo.setDate(fewDaysAgo.getDate() - nbOfDays);
|
|
140
|
+
return fewDaysAgo;
|
|
141
|
+
}
|
|
142
|
+
function getInNextDaysDate(nbOfDays = 3) {
|
|
143
|
+
const inTheNextDays = new Date();
|
|
144
|
+
inTheNextDays.setDate(inTheNextDays.getDate() + nbOfDays);
|
|
145
|
+
return inTheNextDays;
|
|
146
|
+
}
|
|
147
|
+
function getUuid() {
|
|
148
|
+
return faker.datatype.uuid();
|
|
149
|
+
}
|
|
150
|
+
function getAlpha(count, upperCase) {
|
|
151
|
+
return faker.random.alpha({ count, upcase: upperCase });
|
|
152
|
+
}
|
|
153
|
+
function getAlphaNumeric(nOfCharacters = 8) {
|
|
154
|
+
return faker.random.alphaNumeric(nOfCharacters);
|
|
155
|
+
}
|
|
156
|
+
function getCurrencyCode() {
|
|
157
|
+
return faker.finance.currencyCode();
|
|
158
|
+
}
|
|
159
|
+
function getFinanceAmount() {
|
|
160
|
+
return +faker.finance.amount();
|
|
161
|
+
}
|
|
162
|
+
function getSentence() {
|
|
163
|
+
return faker.lorem.sentence();
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
var common_fixture = /*#__PURE__*/Object.freeze({
|
|
167
|
+
__proto__: null,
|
|
168
|
+
DEFAULT_RESOURCE_COLLECTION_SIZE: DEFAULT_RESOURCE_COLLECTION_SIZE,
|
|
169
|
+
getBoolean: getBoolean,
|
|
170
|
+
getPositiveNumber: getPositiveNumber,
|
|
171
|
+
getNumberInRange: getNumberInRange,
|
|
172
|
+
getWord: getWord,
|
|
173
|
+
getUniqueWord: getUniqueWord,
|
|
174
|
+
getFirstName: getFirstName,
|
|
175
|
+
getLastName: getLastName,
|
|
176
|
+
getJobTitle: getJobTitle,
|
|
177
|
+
getPhoneNumber: getPhoneNumber,
|
|
178
|
+
getAvatar: getAvatar,
|
|
179
|
+
getLogo: getLogo,
|
|
180
|
+
getColor: getColor,
|
|
181
|
+
getFont: getFont,
|
|
182
|
+
getGoogleFont: getGoogleFont,
|
|
183
|
+
getEmail: getEmail,
|
|
184
|
+
getElementFromArray: getElementFromArray,
|
|
185
|
+
getElementsFromArray: getElementsFromArray,
|
|
186
|
+
getElementFromEnum: getElementFromEnum,
|
|
187
|
+
getElementsFromEnum: getElementsFromEnum,
|
|
188
|
+
getEnumValue: getEnumValue,
|
|
189
|
+
getLatitude: getLatitude,
|
|
190
|
+
getLongitude: getLongitude,
|
|
191
|
+
getStreetName: getStreetName,
|
|
192
|
+
getZipCode: getZipCode,
|
|
193
|
+
getCity: getCity,
|
|
194
|
+
getCountryCode: getCountryCode,
|
|
195
|
+
getUrl: getUrl,
|
|
196
|
+
getDomainName: getDomainName,
|
|
197
|
+
getSemverVersion: getSemverVersion,
|
|
198
|
+
getLocale: getLocale,
|
|
199
|
+
getIso8601Date: getIso8601Date,
|
|
200
|
+
getRecentDate: getRecentDate,
|
|
201
|
+
getSoonDate: getSoonDate,
|
|
202
|
+
getFewDaysAgoDate: getFewDaysAgoDate,
|
|
203
|
+
getInNextDaysDate: getInNextDaysDate,
|
|
204
|
+
getUuid: getUuid,
|
|
205
|
+
getAlpha: getAlpha,
|
|
206
|
+
getAlphaNumeric: getAlphaNumeric,
|
|
207
|
+
getCurrencyCode: getCurrencyCode,
|
|
208
|
+
getFinanceAmount: getFinanceAmount,
|
|
209
|
+
getSentence: getSentence
|
|
210
|
+
});
|
|
211
|
+
|
|
212
|
+
function createErrorDto() {
|
|
213
|
+
return {
|
|
214
|
+
statusCode: 400,
|
|
215
|
+
error: 'TEST_ERROR_CODE',
|
|
216
|
+
message: 'test message',
|
|
217
|
+
fieldErrors: []
|
|
218
|
+
};
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
var error_fixture = /*#__PURE__*/Object.freeze({
|
|
222
|
+
__proto__: null,
|
|
223
|
+
createErrorDto: createErrorDto
|
|
224
|
+
});
|
|
225
|
+
|
|
226
|
+
/**
|
|
227
|
+
* Generated bundle index. Do not edit.
|
|
228
|
+
*/
|
|
229
|
+
|
|
230
|
+
export { common_fixture as commonFixture, error_fixture as errorFixture };
|
|
231
|
+
//# sourceMappingURL=ngdux-data-model-common-test.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ngdux-data-model-common-test.mjs","sources":["../../../../../../libs/shared/data-model/common/test/src/lib/common.fixture.ts","../../../../../../libs/shared/data-model/common/test/src/lib/error.fixture.ts","../../../../../../libs/shared/data-model/common/test/src/ngdux-data-model-common-test.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/ban-types */\r\nimport { faker } from '@faker-js/faker';\r\n\r\nexport const DEFAULT_RESOURCE_COLLECTION_SIZE = 50;\r\n\r\nexport function getBoolean(): boolean {\r\n return faker.datatype.boolean();\r\n}\r\n\r\nexport function getPositiveNumber(): number {\r\n return faker.datatype.number({ min: 1 });\r\n}\r\n\r\nexport function getNumberInRange(from: number, to: number): number {\r\n return faker.datatype.number({ min: from, max: to });\r\n}\r\n\r\nexport function getWord(): string {\r\n return faker.random.word();\r\n}\r\n\r\nexport function getUniqueWord(): string {\r\n return faker.unique(faker.random.word, undefined, { maxTime: 100, maxRetries: 100 });\r\n}\r\n\r\nexport function getFirstName(): string {\r\n return faker.name.firstName();\r\n}\r\n\r\nexport function getLastName(): string {\r\n return faker.name.lastName();\r\n}\r\n\r\nexport function getJobTitle(): string {\r\n return faker.company.catchPhrase();\r\n}\r\n\r\nexport function getPhoneNumber(): string {\r\n return `+${faker.phone.phoneNumberFormat(2)}`;\r\n}\r\n\r\nexport function getAvatar(): string {\r\n return faker.image.avatar();\r\n}\r\n\r\nexport function getLogo(): string {\r\n return faker.image.business();\r\n}\r\n\r\nexport function getColor(): string {\r\n return faker.internet.color();\r\n}\r\n\r\nexport function getFont() {\r\n return getElementFromArray(['Arial', 'Helvetica']);\r\n}\r\n\r\nexport function getGoogleFont() {\r\n return getElementFromArray(['Roboto', 'Roboto Mono', 'Open Sans', 'Gotu', 'Lato']);\r\n}\r\n\r\nexport function getEmail(firstName?: string, lastName?: string): string {\r\n return faker.internet.email(firstName, lastName).toLocaleLowerCase();\r\n}\r\n\r\nexport function getElementFromArray<T>(array: T[]): T {\r\n return faker.helpers.arrayElement(array);\r\n}\r\n\r\nexport function getElementsFromArray<T>(array: T[], nbOfElements: number = array.length): T[] {\r\n const elements: Set<T> = new Set();\r\n\r\n if (nbOfElements > array.length) {\r\n nbOfElements = array.length;\r\n }\r\n\r\n while (elements.size < nbOfElements) {\r\n elements.add(getElementFromArray(array));\r\n }\r\n\r\n return Array.from(elements);\r\n}\r\n\r\nexport function getElementFromEnum<T>(enumeration: Record<string, T>): T {\r\n // Numeric enums have automatic reverse mapping which means that we need to filter out the keys which are numeric.\r\n const enumKey = getElementFromArray(Object.keys(enumeration).filter(key => !parseInt(key, 10)));\r\n return enumeration[enumKey];\r\n}\r\n\r\nexport function getElementsFromEnum<T>(\r\n enumeration: Record<string, T>,\r\n nbOfElements: number = Object.keys(enumeration).length\r\n): T[] {\r\n const elements: Set<T> = new Set();\r\n const enumerationKeys = Object.keys(enumeration);\r\n\r\n if (nbOfElements > enumerationKeys.length) {\r\n nbOfElements = enumerationKeys.length;\r\n }\r\n\r\n while (elements.size < nbOfElements) {\r\n elements.add(enumeration[getElementFromArray(enumerationKeys)]);\r\n }\r\n\r\n return Array.from(elements);\r\n}\r\n\r\nexport function getEnumValue<T>(enumObj: T): T[keyof T] {\r\n return getElementFromArray(Object.values(enumObj));\r\n}\r\n\r\n/**\r\n * Return a random object key or path.\r\n * Ex.:\r\n * object = { a: { b: { c: 3 }}}\r\n * return 'a.b.c'\r\n * @param object any object\r\n * @param path string\r\n */\r\n// export function getObjectPropertyPath<T>(object: T, path = ''): string {\r\n// const key = getElementFromArray(Object.keys(object));\r\n// const nextPath = path ? `${path}.${key}` : key;\r\n\r\n// if (typeof object[key] === 'object' && !(object[key] instanceof Array)) {\r\n// return getObjectPropertyPath(object[key], nextPath);\r\n// }\r\n\r\n// return nextPath;\r\n// }\r\n\r\nexport function getLatitude(): number {\r\n return +faker.address.latitude();\r\n}\r\n\r\nexport function getLongitude(): number {\r\n return +faker.address.longitude();\r\n}\r\n\r\nexport function getStreetName(): string {\r\n return faker.address.streetName();\r\n}\r\n\r\nexport function getZipCode(): string {\r\n return faker.address.zipCode();\r\n}\r\n\r\nexport function getCity(): string {\r\n return faker.address.city();\r\n}\r\n\r\nexport function getCountryCode(): string {\r\n return faker.address.countryCode();\r\n}\r\n\r\nexport function getUrl(): string {\r\n return faker.internet.url();\r\n}\r\n\r\nexport function getDomainName(): string {\r\n return faker.internet.domainName();\r\n}\r\n\r\nexport function getSemverVersion(): string {\r\n return faker.system.semver();\r\n}\r\n\r\nexport function getLocale(): string {\r\n return faker.random.locale();\r\n}\r\n\r\nexport function getIso8601Date(): string {\r\n return (faker.date.recent() as Date).toISOString();\r\n}\r\n\r\nexport function getRecentDate(days = 1, refDate = new Date()): Date {\r\n return faker.date.recent(days, refDate);\r\n}\r\n\r\nexport function getSoonDate(days = 1, refDate = new Date()): Date {\r\n return faker.date.soon(days, refDate);\r\n}\r\n\r\nexport function getFewDaysAgoDate(nbOfDays = 3): Date {\r\n const fewDaysAgo = new Date();\r\n fewDaysAgo.setDate(fewDaysAgo.getDate() - nbOfDays);\r\n return fewDaysAgo;\r\n}\r\n\r\nexport function getInNextDaysDate(nbOfDays = 3): Date {\r\n const inTheNextDays = new Date();\r\n inTheNextDays.setDate(inTheNextDays.getDate() + nbOfDays);\r\n return inTheNextDays;\r\n}\r\n\r\nexport function getUuid(): string {\r\n return faker.datatype.uuid();\r\n}\r\n\r\nexport function getAlpha(count: number, upperCase: boolean) {\r\n return faker.random.alpha({ count, upcase: upperCase });\r\n}\r\n\r\nexport function getAlphaNumeric(nOfCharacters = 8): string {\r\n return faker.random.alphaNumeric(nOfCharacters);\r\n}\r\n\r\nexport function getCurrencyCode(): string {\r\n return faker.finance.currencyCode();\r\n}\r\n\r\nexport function getFinanceAmount(): number {\r\n return +faker.finance.amount();\r\n}\r\n\r\nexport function getSentence(): string {\r\n return faker.lorem.sentence();\r\n}\r\n","import { ErrorDto } from '@ngdux/data-model-common';\r\n\r\nexport function createErrorDto(): ErrorDto {\r\n return {\r\n statusCode: 400,\r\n error: 'TEST_ERROR_CODE',\r\n message: 'test message',\r\n fieldErrors: []\r\n };\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
var FilteringLogic;
|
|
2
|
+
(function (FilteringLogic) {
|
|
3
|
+
FilteringLogic["AND"] = "and";
|
|
4
|
+
FilteringLogic["OR"] = "or";
|
|
5
|
+
})(FilteringLogic || (FilteringLogic = {}));
|
|
6
|
+
const DEFAULT_FILTERING_LOGIC = FilteringLogic.AND;
|
|
7
|
+
var FilteringOperator;
|
|
8
|
+
(function (FilteringOperator) {
|
|
9
|
+
FilteringOperator["Equal"] = "eq";
|
|
10
|
+
FilteringOperator["NotEqual"] = "neq";
|
|
11
|
+
FilteringOperator["LessThan"] = "lt";
|
|
12
|
+
FilteringOperator["LessThanOrEqual"] = "lte";
|
|
13
|
+
FilteringOperator["GreaterThan"] = "gt";
|
|
14
|
+
FilteringOperator["GreaterThanOrEqual"] = "gte";
|
|
15
|
+
FilteringOperator["StartsWith"] = "startswith";
|
|
16
|
+
FilteringOperator["EndsWith"] = "endswith";
|
|
17
|
+
FilteringOperator["Contains"] = "contains";
|
|
18
|
+
})(FilteringOperator || (FilteringOperator = {}));
|
|
19
|
+
const DEFAULT_FILTERING_OPERATOR = FilteringOperator.Equal;
|
|
20
|
+
|
|
21
|
+
const DEFAULT_PAGE = 1;
|
|
22
|
+
const DEFAULT_PAGE_SIZE = 10;
|
|
23
|
+
const DEFAULT_STORED_PAGES = 3;
|
|
24
|
+
|
|
25
|
+
const DEFAULT_REQUEST_OPTIONS = {
|
|
26
|
+
pagingOptions: {
|
|
27
|
+
page: DEFAULT_PAGE,
|
|
28
|
+
pageSize: DEFAULT_PAGE_SIZE
|
|
29
|
+
},
|
|
30
|
+
sortingOptions: {},
|
|
31
|
+
filteringOptions: {
|
|
32
|
+
logic: DEFAULT_FILTERING_LOGIC,
|
|
33
|
+
filters: []
|
|
34
|
+
}
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
var RequestState;
|
|
38
|
+
(function (RequestState) {
|
|
39
|
+
RequestState["IDLE"] = "IDLE";
|
|
40
|
+
RequestState["IN_PROGRESS"] = "IN_PROGRESS";
|
|
41
|
+
RequestState["FAILURE"] = "FAILURE";
|
|
42
|
+
RequestState["SUCCESS"] = "SUCCESS";
|
|
43
|
+
})(RequestState || (RequestState = {}));
|
|
44
|
+
|
|
45
|
+
var SortingDirection;
|
|
46
|
+
(function (SortingDirection) {
|
|
47
|
+
SortingDirection["ASCENDING"] = "asc";
|
|
48
|
+
SortingDirection["DESCENDING"] = "desc";
|
|
49
|
+
SortingDirection["NONE"] = "";
|
|
50
|
+
})(SortingDirection || (SortingDirection = {}));
|
|
51
|
+
const DEFAULT_SORTING_ORDER = SortingDirection.ASCENDING;
|
|
52
|
+
|
|
53
|
+
/**
|
|
54
|
+
* Generated bundle index. Do not edit.
|
|
55
|
+
*/
|
|
56
|
+
|
|
57
|
+
export { DEFAULT_FILTERING_LOGIC, DEFAULT_FILTERING_OPERATOR, DEFAULT_PAGE, DEFAULT_PAGE_SIZE, DEFAULT_REQUEST_OPTIONS, DEFAULT_SORTING_ORDER, DEFAULT_STORED_PAGES, FilteringLogic, FilteringOperator, RequestState, SortingDirection };
|
|
58
|
+
//# sourceMappingURL=ngdux-data-model-common.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ngdux-data-model-common.mjs","sources":["../../../../../../libs/shared/data-model/common/src/lib/models/filtering-options.model.ts","../../../../../../libs/shared/data-model/common/src/lib/models/paging-options.model.ts","../../../../../../libs/shared/data-model/common/src/lib/models/request-options.model.ts","../../../../../../libs/shared/data-model/common/src/lib/models/request-state.model.ts","../../../../../../libs/shared/data-model/common/src/lib/models/sorting-options.model.ts","../../../../../../libs/shared/data-model/common/src/ngdux-data-model-common.ts"],"sourcesContent":["export enum FilteringLogic {\r\n AND = 'and',\r\n OR = 'or'\r\n}\r\n\r\nexport const DEFAULT_FILTERING_LOGIC = FilteringLogic.AND;\r\n\r\nexport enum FilteringOperator {\r\n Equal = 'eq',\r\n NotEqual = 'neq',\r\n LessThan = 'lt',\r\n LessThanOrEqual = 'lte',\r\n GreaterThan = 'gt',\r\n GreaterThanOrEqual = 'gte',\r\n StartsWith = 'startswith',\r\n EndsWith = 'endswith',\r\n Contains = 'contains'\r\n}\r\n\r\nexport const DEFAULT_FILTERING_OPERATOR = FilteringOperator.Equal;\r\n\r\n/**\r\n * Defines the filter criterion for a single resource field.\r\n * Field, filter value and operator are required.\r\n */\r\nexport interface FilteringField {\r\n field: string;\r\n value: string;\r\n operator: FilteringOperator;\r\n}\r\n\r\n/**\r\n * The options required to filter resources by one or multiple fields.\r\n * Defines which fields to filter the resources by.\r\n */\r\nexport interface FilteringOptions {\r\n filters: Array<FilteringField | FilteringOptions>;\r\n logic: FilteringLogic;\r\n}\r\n","export const DEFAULT_PAGE = 1;\r\nexport const DEFAULT_PAGE_SIZE = 10;\r\nexport const DEFAULT_STORED_PAGES = 3;\r\n\r\n/**\r\n * The options required to make a resource request for paged resources.\r\n * This defines which page and how many resources per page to return.\r\n */\r\nexport interface PagingOptions {\r\n page: number;\r\n pageSize: number;\r\n}\r\n","import { DEFAULT_FILTERING_LOGIC, FilteringOptions } from './filtering-options.model';\r\nimport { DEFAULT_PAGE, DEFAULT_PAGE_SIZE, PagingOptions } from './paging-options.model';\r\nimport { SortingField, SortingOptions } from './sorting-options.model';\r\n\r\nexport const DEFAULT_REQUEST_OPTIONS: RequestOptions = {\r\n pagingOptions: {\r\n page: DEFAULT_PAGE,\r\n pageSize: DEFAULT_PAGE_SIZE\r\n },\r\n sortingOptions: {},\r\n filteringOptions: {\r\n logic: DEFAULT_FILTERING_LOGIC,\r\n filters: []\r\n }\r\n};\r\n\r\nexport interface RequestOptions {\r\n requestParameters?: Record<string, string>;\r\n pagingOptions?: PagingOptions;\r\n sortingOptions?: SortingOptions;\r\n filteringOptions?: FilteringOptions;\r\n}\r\n\r\nexport interface QueryOptionsDto {\r\n filter?: FilteringOptions;\r\n sort?: SortingField[];\r\n page?: number;\r\n pageSize?: number;\r\n}\r\n","export enum RequestState {\r\n IDLE = 'IDLE',\r\n IN_PROGRESS = 'IN_PROGRESS',\r\n FAILURE = 'FAILURE',\r\n SUCCESS = 'SUCCESS'\r\n}\r\n","export enum SortingDirection {\r\n ASCENDING = 'asc',\r\n DESCENDING = 'desc',\r\n NONE = ''\r\n}\r\n\r\nexport const DEFAULT_SORTING_ORDER = SortingDirection.ASCENDING;\r\n\r\n/**\r\n * Defines the sorting criterion for a single resource field.\r\n * Name and sorting order are required.\r\n */\r\nexport interface SortingField {\r\n field: string;\r\n direction: SortingDirection;\r\n}\r\n\r\n/**\r\n * The options required to sort resources by one or multiple fields.\r\n * Defines which fields to sort the resources by.\r\n */\r\nexport type SortingOptions = Record<string, SortingField>;\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"IAAY,eAGX;AAHD,CAAA,UAAY,cAAc,EAAA;AACxB,IAAA,cAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,cAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACX,CAAC,EAHW,cAAc,KAAd,cAAc,GAGzB,EAAA,CAAA,CAAA,CAAA;AAEY,MAAA,uBAAuB,GAAG,cAAc,CAAC,IAAI;IAE9C,kBAUX;AAVD,CAAA,UAAY,iBAAiB,EAAA;AAC3B,IAAA,iBAAA,CAAA,OAAA,CAAA,GAAA,IAAY,CAAA;AACZ,IAAA,iBAAA,CAAA,UAAA,CAAA,GAAA,KAAgB,CAAA;AAChB,IAAA,iBAAA,CAAA,UAAA,CAAA,GAAA,IAAe,CAAA;AACf,IAAA,iBAAA,CAAA,iBAAA,CAAA,GAAA,KAAuB,CAAA;AACvB,IAAA,iBAAA,CAAA,aAAA,CAAA,GAAA,IAAkB,CAAA;AAClB,IAAA,iBAAA,CAAA,oBAAA,CAAA,GAAA,KAA0B,CAAA;AAC1B,IAAA,iBAAA,CAAA,YAAA,CAAA,GAAA,YAAyB,CAAA;AACzB,IAAA,iBAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACrB,IAAA,iBAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACvB,CAAC,EAVW,iBAAiB,KAAjB,iBAAiB,GAU5B,EAAA,CAAA,CAAA,CAAA;AAEY,MAAA,0BAA0B,GAAG,iBAAiB,CAAC;;ACnBrD,MAAM,YAAY,GAAG,EAAE;AACvB,MAAM,iBAAiB,GAAG,GAAG;AAC7B,MAAM,oBAAoB,GAAG;;ACEvB,MAAA,uBAAuB,GAAmB;AACrD,IAAA,aAAa,EAAE;AACb,QAAA,IAAI,EAAE,YAAY;AAClB,QAAA,QAAQ,EAAE,iBAAiB;AAC5B,KAAA;AACD,IAAA,cAAc,EAAE,EAAE;AAClB,IAAA,gBAAgB,EAAE;AAChB,QAAA,KAAK,EAAE,uBAAuB;AAC9B,QAAA,OAAO,EAAE,EAAE;AACZ,KAAA;;;ICbS,aAKX;AALD,CAAA,UAAY,YAAY,EAAA;AACtB,IAAA,YAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,IAAA,YAAA,CAAA,aAAA,CAAA,GAAA,aAA2B,CAAA;AAC3B,IAAA,YAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,IAAA,YAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACrB,CAAC,EALW,YAAY,KAAZ,YAAY,GAKvB,EAAA,CAAA,CAAA;;ICLW,iBAIX;AAJD,CAAA,UAAY,gBAAgB,EAAA;AAC1B,IAAA,gBAAA,CAAA,WAAA,CAAA,GAAA,KAAiB,CAAA;AACjB,IAAA,gBAAA,CAAA,YAAA,CAAA,GAAA,MAAmB,CAAA;AACnB,IAAA,gBAAA,CAAA,MAAA,CAAA,GAAA,EAAS,CAAA;AACX,CAAC,EAJW,gBAAgB,KAAhB,gBAAgB,GAI3B,EAAA,CAAA,CAAA,CAAA;AAEY,MAAA,qBAAqB,GAAG,gBAAgB,CAAC;;ACNtD;;AAEG;;;;"}
|
package/index.d.ts
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export * from './lib/models/error.dto';
|
|
2
|
+
export * from './lib/models/filtering-options.model';
|
|
3
|
+
export * from './lib/models/form-service.model';
|
|
4
|
+
export * from './lib/models/list-service.model';
|
|
5
|
+
export * from './lib/models/paging-options.model';
|
|
6
|
+
export * from './lib/models/request-options.model';
|
|
7
|
+
export * from './lib/models/request-state.model';
|
|
8
|
+
export * from './lib/models/sorting-options.model';
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
export declare enum FilteringLogic {
|
|
2
|
+
AND = "and",
|
|
3
|
+
OR = "or"
|
|
4
|
+
}
|
|
5
|
+
export declare const DEFAULT_FILTERING_LOGIC = FilteringLogic.AND;
|
|
6
|
+
export declare enum FilteringOperator {
|
|
7
|
+
Equal = "eq",
|
|
8
|
+
NotEqual = "neq",
|
|
9
|
+
LessThan = "lt",
|
|
10
|
+
LessThanOrEqual = "lte",
|
|
11
|
+
GreaterThan = "gt",
|
|
12
|
+
GreaterThanOrEqual = "gte",
|
|
13
|
+
StartsWith = "startswith",
|
|
14
|
+
EndsWith = "endswith",
|
|
15
|
+
Contains = "contains"
|
|
16
|
+
}
|
|
17
|
+
export declare const DEFAULT_FILTERING_OPERATOR = FilteringOperator.Equal;
|
|
18
|
+
/**
|
|
19
|
+
* Defines the filter criterion for a single resource field.
|
|
20
|
+
* Field, filter value and operator are required.
|
|
21
|
+
*/
|
|
22
|
+
export interface FilteringField {
|
|
23
|
+
field: string;
|
|
24
|
+
value: string;
|
|
25
|
+
operator: FilteringOperator;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* The options required to filter resources by one or multiple fields.
|
|
29
|
+
* Defines which fields to filter the resources by.
|
|
30
|
+
*/
|
|
31
|
+
export interface FilteringOptions {
|
|
32
|
+
filters: Array<FilteringField | FilteringOptions>;
|
|
33
|
+
logic: FilteringLogic;
|
|
34
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { ValidationErrors } from '@angular/forms';
|
|
2
|
+
import { Observable } from 'rxjs';
|
|
3
|
+
export interface FieldError {
|
|
4
|
+
errors: ValidationErrors;
|
|
5
|
+
fieldName: string;
|
|
6
|
+
fieldIndex?: number;
|
|
7
|
+
}
|
|
8
|
+
export interface FieldErrors {
|
|
9
|
+
[key: string]: FieldError[] | FieldErrors;
|
|
10
|
+
}
|
|
11
|
+
export interface FormService<T> {
|
|
12
|
+
loadResource(id: string): Observable<T>;
|
|
13
|
+
saveResource?(resource: T): Observable<T>;
|
|
14
|
+
deleteResource?(id: string): Observable<T>;
|
|
15
|
+
createResource?(resource: T): Observable<T>;
|
|
16
|
+
}
|
|
17
|
+
export interface FormNotificationService<E> {
|
|
18
|
+
onErrors: (errors: E) => void;
|
|
19
|
+
onDelete: (id: string) => void;
|
|
20
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { Observable } from 'rxjs';
|
|
2
|
+
import { ErrorDto } from './error.dto';
|
|
3
|
+
import { RequestOptions } from './request-options.model';
|
|
4
|
+
export interface BulkOperationSuccess {
|
|
5
|
+
index: number;
|
|
6
|
+
response: unknown;
|
|
7
|
+
}
|
|
8
|
+
export interface ListService<T, S = T> {
|
|
9
|
+
queryResources(options: RequestOptions): Observable<S[]>;
|
|
10
|
+
deleteResources(resourceIds: string[]): Observable<Array<T | ErrorDto>>;
|
|
11
|
+
patchResources?(resourceIds: string[], resource: Partial<T>): Observable<Array<T | ErrorDto>>;
|
|
12
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export declare const DEFAULT_PAGE = 1;
|
|
2
|
+
export declare const DEFAULT_PAGE_SIZE = 10;
|
|
3
|
+
export declare const DEFAULT_STORED_PAGES = 3;
|
|
4
|
+
/**
|
|
5
|
+
* The options required to make a resource request for paged resources.
|
|
6
|
+
* This defines which page and how many resources per page to return.
|
|
7
|
+
*/
|
|
8
|
+
export interface PagingOptions {
|
|
9
|
+
page: number;
|
|
10
|
+
pageSize: number;
|
|
11
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { FilteringOptions } from './filtering-options.model';
|
|
2
|
+
import { PagingOptions } from './paging-options.model';
|
|
3
|
+
import { SortingField, SortingOptions } from './sorting-options.model';
|
|
4
|
+
export declare const DEFAULT_REQUEST_OPTIONS: RequestOptions;
|
|
5
|
+
export interface RequestOptions {
|
|
6
|
+
requestParameters?: Record<string, string>;
|
|
7
|
+
pagingOptions?: PagingOptions;
|
|
8
|
+
sortingOptions?: SortingOptions;
|
|
9
|
+
filteringOptions?: FilteringOptions;
|
|
10
|
+
}
|
|
11
|
+
export interface QueryOptionsDto {
|
|
12
|
+
filter?: FilteringOptions;
|
|
13
|
+
sort?: SortingField[];
|
|
14
|
+
page?: number;
|
|
15
|
+
pageSize?: number;
|
|
16
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export declare enum SortingDirection {
|
|
2
|
+
ASCENDING = "asc",
|
|
3
|
+
DESCENDING = "desc",
|
|
4
|
+
NONE = ""
|
|
5
|
+
}
|
|
6
|
+
export declare const DEFAULT_SORTING_ORDER = SortingDirection.ASCENDING;
|
|
7
|
+
/**
|
|
8
|
+
* Defines the sorting criterion for a single resource field.
|
|
9
|
+
* Name and sorting order are required.
|
|
10
|
+
*/
|
|
11
|
+
export interface SortingField {
|
|
12
|
+
field: string;
|
|
13
|
+
direction: SortingDirection;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* The options required to sort resources by one or multiple fields.
|
|
17
|
+
* Defines which fields to sort the resources by.
|
|
18
|
+
*/
|
|
19
|
+
export declare type SortingOptions = Record<string, SortingField>;
|
package/package.json
ADDED
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@ngdux/data-model-common",
|
|
3
|
+
"version": "0.0.1",
|
|
4
|
+
"peerDependencies": {
|
|
5
|
+
"@angular/common": "^14.2.0",
|
|
6
|
+
"@angular/core": "^14.2.0",
|
|
7
|
+
"@angular/forms": "14.2.6",
|
|
8
|
+
"rxjs": "~6.6.0"
|
|
9
|
+
},
|
|
10
|
+
"dependencies": {
|
|
11
|
+
"tslib": "^2.3.0"
|
|
12
|
+
},
|
|
13
|
+
"module": "fesm2015/ngdux-data-model-common.mjs",
|
|
14
|
+
"es2020": "fesm2020/ngdux-data-model-common.mjs",
|
|
15
|
+
"esm2020": "esm2020/ngdux-data-model-common.mjs",
|
|
16
|
+
"fesm2020": "fesm2020/ngdux-data-model-common.mjs",
|
|
17
|
+
"fesm2015": "fesm2015/ngdux-data-model-common.mjs",
|
|
18
|
+
"typings": "index.d.ts",
|
|
19
|
+
"exports": {
|
|
20
|
+
"./package.json": {
|
|
21
|
+
"default": "./package.json"
|
|
22
|
+
},
|
|
23
|
+
".": {
|
|
24
|
+
"types": "./index.d.ts",
|
|
25
|
+
"esm2020": "./esm2020/ngdux-data-model-common.mjs",
|
|
26
|
+
"es2020": "./fesm2020/ngdux-data-model-common.mjs",
|
|
27
|
+
"es2015": "./fesm2015/ngdux-data-model-common.mjs",
|
|
28
|
+
"node": "./fesm2015/ngdux-data-model-common.mjs",
|
|
29
|
+
"default": "./fesm2020/ngdux-data-model-common.mjs"
|
|
30
|
+
},
|
|
31
|
+
"./test": {
|
|
32
|
+
"types": "./test/index.d.ts",
|
|
33
|
+
"esm2020": "./esm2020/test/ngdux-data-model-common-test.mjs",
|
|
34
|
+
"es2020": "./fesm2020/ngdux-data-model-common-test.mjs",
|
|
35
|
+
"es2015": "./fesm2015/ngdux-data-model-common-test.mjs",
|
|
36
|
+
"node": "./fesm2015/ngdux-data-model-common-test.mjs",
|
|
37
|
+
"default": "./fesm2020/ngdux-data-model-common-test.mjs"
|
|
38
|
+
}
|
|
39
|
+
},
|
|
40
|
+
"sideEffects": false
|
|
41
|
+
}
|
package/test/README.md
ADDED
package/test/index.d.ts
ADDED
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
export declare const DEFAULT_RESOURCE_COLLECTION_SIZE = 50;
|
|
2
|
+
export declare function getBoolean(): boolean;
|
|
3
|
+
export declare function getPositiveNumber(): number;
|
|
4
|
+
export declare function getNumberInRange(from: number, to: number): number;
|
|
5
|
+
export declare function getWord(): string;
|
|
6
|
+
export declare function getUniqueWord(): string;
|
|
7
|
+
export declare function getFirstName(): string;
|
|
8
|
+
export declare function getLastName(): string;
|
|
9
|
+
export declare function getJobTitle(): string;
|
|
10
|
+
export declare function getPhoneNumber(): string;
|
|
11
|
+
export declare function getAvatar(): string;
|
|
12
|
+
export declare function getLogo(): string;
|
|
13
|
+
export declare function getColor(): string;
|
|
14
|
+
export declare function getFont(): string;
|
|
15
|
+
export declare function getGoogleFont(): string;
|
|
16
|
+
export declare function getEmail(firstName?: string, lastName?: string): string;
|
|
17
|
+
export declare function getElementFromArray<T>(array: T[]): T;
|
|
18
|
+
export declare function getElementsFromArray<T>(array: T[], nbOfElements?: number): T[];
|
|
19
|
+
export declare function getElementFromEnum<T>(enumeration: Record<string, T>): T;
|
|
20
|
+
export declare function getElementsFromEnum<T>(enumeration: Record<string, T>, nbOfElements?: number): T[];
|
|
21
|
+
export declare function getEnumValue<T>(enumObj: T): T[keyof T];
|
|
22
|
+
/**
|
|
23
|
+
* Return a random object key or path.
|
|
24
|
+
* Ex.:
|
|
25
|
+
* object = { a: { b: { c: 3 }}}
|
|
26
|
+
* return 'a.b.c'
|
|
27
|
+
* @param object any object
|
|
28
|
+
* @param path string
|
|
29
|
+
*/
|
|
30
|
+
export declare function getLatitude(): number;
|
|
31
|
+
export declare function getLongitude(): number;
|
|
32
|
+
export declare function getStreetName(): string;
|
|
33
|
+
export declare function getZipCode(): string;
|
|
34
|
+
export declare function getCity(): string;
|
|
35
|
+
export declare function getCountryCode(): string;
|
|
36
|
+
export declare function getUrl(): string;
|
|
37
|
+
export declare function getDomainName(): string;
|
|
38
|
+
export declare function getSemverVersion(): string;
|
|
39
|
+
export declare function getLocale(): string;
|
|
40
|
+
export declare function getIso8601Date(): string;
|
|
41
|
+
export declare function getRecentDate(days?: number, refDate?: Date): Date;
|
|
42
|
+
export declare function getSoonDate(days?: number, refDate?: Date): Date;
|
|
43
|
+
export declare function getFewDaysAgoDate(nbOfDays?: number): Date;
|
|
44
|
+
export declare function getInNextDaysDate(nbOfDays?: number): Date;
|
|
45
|
+
export declare function getUuid(): string;
|
|
46
|
+
export declare function getAlpha(count: number, upperCase: boolean): string;
|
|
47
|
+
export declare function getAlphaNumeric(nOfCharacters?: number): string;
|
|
48
|
+
export declare function getCurrencyCode(): string;
|
|
49
|
+
export declare function getFinanceAmount(): number;
|
|
50
|
+
export declare function getSentence(): string;
|