@dcupl/common 0.0.72-beta.3 → 0.0.73

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.
@@ -50,6 +50,8 @@ export declare type FilterEntryDateRange = {
50
50
  max: Date;
51
51
  };
52
52
  export declare type FilterItemType = 'reference' | 'number' | 'text' | 'date';
53
+ export declare type FilterItemPropertyType = 'number' | 'text' | 'date';
54
+ export declare type FilterItemReferenceType = 'reference';
53
55
  export declare type FilterItemBase = {
54
56
  key: string;
55
57
  attributeKey: string;
@@ -1,2 +1,5 @@
1
+ import { ListItem } from './data.types';
1
2
  export declare type InverseIndexReferenceMap = Map<string, InverseIndexValuesMap>;
2
3
  export declare type InverseIndexValuesMap = Map<string, string[]>;
4
+ export declare type InverseIndexDataMap = Map<string, InverseIndexDataValuesMap>;
5
+ export declare type InverseIndexDataValuesMap = Map<string, ListItem>;
@@ -22,6 +22,7 @@ export declare type DcuplSectionOptions<T> = DcuplItemsOptions<T> & {
22
22
  export declare type DcuplFilterOptions = CatalogApiOptions & {
23
23
  calculateFacets?: boolean;
24
24
  excludeZeros?: boolean;
25
+ excludeUndefineds?: boolean;
25
26
  count?: number;
26
27
  };
27
28
  export declare type DcuplFiltersOptions = DcuplFilterOptions & {
@@ -33,6 +34,18 @@ export declare type DcuplListOptions<ModelNames extends string = string> = {
33
34
  listItemKeys?: string[];
34
35
  empty?: boolean;
35
36
  };
37
+ export declare type DcuplRangeOptions = {
38
+ propertyKey: string;
39
+ filterKey?: string;
40
+ };
41
+ export declare type DcuplFacetOptions = {
42
+ attributeKey: string;
43
+ filterKey?: string;
44
+ count?: number;
45
+ excludeZeros?: boolean;
46
+ excludeUndefineds?: boolean;
47
+ calculateFacets?: boolean;
48
+ };
36
49
  export declare type ListMetadata = {
37
50
  key: string;
38
51
  currentSize: number;
@@ -1,5 +1,7 @@
1
1
  import { RawItem } from '.';
2
2
  export declare type PropertyType = 'string' | 'int' | 'float' | 'json' | 'date' | 'any' | 'Array<string>' | 'Array<int>' | 'Array<float>' | 'Array<date>';
3
+ export declare const NumberPropertyTypes: PropertyType[];
4
+ export declare const DatePropertyTypes: PropertyType[];
3
5
  /**
4
6
  * must be singleValued or multiValued
5
7
  * singleValued contains only one key to an object
@@ -14,6 +16,11 @@ export declare type PropertyType = 'string' | 'int' | 'float' | 'json' | 'date'
14
16
  */
15
17
  export declare type ReferenceType = 'singleValued' | 'multiValued';
16
18
  export declare type AttributeType = PropertyType | ReferenceType;
19
+ export declare type ModelMetadata = {
20
+ name: string;
21
+ description?: string;
22
+ [key: string]: any;
23
+ };
17
24
  export declare type FilterComparisonType = 'equal' | 'equalIgnoreCase' | 'contains' | 'containsIgnoreCase' | 'containsIgnoreCaseAndWhitespace';
18
25
  /**
19
26
  * A property is a quality or characteristic belonging an object.
@@ -36,6 +43,8 @@ declare type PropertyBase = {
36
43
  remoteProperty: string;
37
44
  separator?: string;
38
45
  };
46
+ meta?: ModelMetadata;
47
+ index?: boolean;
39
48
  };
40
49
  export declare type PropertyInt = PropertyBase & {
41
50
  type: 'int' | 'Array<int>';
@@ -97,6 +106,7 @@ export declare type FilterStringSingle = {
97
106
  export declare type ReferenceFilterDefinition = {
98
107
  calculateFacets?: boolean;
99
108
  excludeZeros?: boolean;
109
+ excludeUndefineds?: boolean;
100
110
  };
101
111
  export declare type ReferenceValidity = 'loose' | 'strict';
102
112
  /**
@@ -126,6 +136,8 @@ export declare type ReferenceBase = {
126
136
  filter?: boolean | ReferenceFilterDefinition;
127
137
  validity?: ReferenceValidity;
128
138
  aggregate?: boolean;
139
+ meta?: ModelMetadata;
140
+ index?: boolean;
129
141
  };
130
142
  export declare type AggregatedReference = ReferenceBase & {
131
143
  aggregate: true;
@@ -224,6 +236,7 @@ export declare type ModelDefinition<ModelNames extends string = string> = {
224
236
  autoGenerateKey?: boolean;
225
237
  keyProperty?: string;
226
238
  valueMappings?: ValueMappingConfig[];
239
+ meta?: ModelMetadata;
227
240
  };
228
241
  export declare type DcuplViewType = 'section';
229
242
  /**
@@ -251,6 +264,7 @@ export declare type ViewDefinition = {
251
264
  */
252
265
  primaryAttribute: string;
253
266
  aggregates: string[];
267
+ meta?: ModelMetadata;
254
268
  };
255
269
  /**
256
270
  * Container for ModelDescriptions & Views
@@ -1,3 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DatePropertyTypes = exports.NumberPropertyTypes = void 0;
4
+ exports.NumberPropertyTypes = ['int', 'float', 'Array<int>', 'Array<float>'];
5
+ exports.DatePropertyTypes = ['date', 'Array<date>'];
3
6
  //# sourceMappingURL=model.types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"model.types.js","sourceRoot":"","sources":["../../../src/types/model.types.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"model.types.js","sourceRoot":"","sources":["../../../src/types/model.types.ts"],"names":[],"mappings":";;;AAca,QAAA,mBAAmB,GAAmB,CAAC,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,cAAc,CAAC,CAAC;AACrF,QAAA,iBAAiB,GAAmB,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC"}
@@ -1,2 +1,2 @@
1
- import { ListItem, Reference, FilterConstraint, FilterItemEntry, DcuplFilterOptions, InverseIndexValuesMap } from './types';
2
- export declare function getFacetEntries<ListType extends ListItem = ListItem>(modelData: Map<string, ListType>, remoteModelData: Map<string, ListType>, options: DcuplFilterOptions, constraints: FilterConstraint[], reference: Reference, indexMap?: InverseIndexValuesMap): FilterItemEntry[];
1
+ import { ListItem, FilterConstraint, FilterItemEntry, DcuplFilterOptions, InverseIndexValuesMap } from './types';
2
+ export declare function getFacetEntries<ListType extends ListItem = ListItem>(modelData: Map<string, ListType>, remoteModelData: Map<string, ListType>, options: DcuplFilterOptions, constraints: FilterConstraint[], attributeKey: string, indexMap: InverseIndexValuesMap): FilterItemEntry[];
@@ -1,3 +1,28 @@
1
+ var __read = (this && this.__read) || function (o, n) {
2
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
3
+ if (!m) return o;
4
+ var i = m.call(o), r, ar = [], e;
5
+ try {
6
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
7
+ }
8
+ catch (error) { e = { error: error }; }
9
+ finally {
10
+ try {
11
+ if (r && !r.done && (m = i["return"])) m.call(i);
12
+ }
13
+ finally { if (e) throw e.error; }
14
+ }
15
+ return ar;
16
+ };
17
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
18
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
19
+ if (ar || !(i in from)) {
20
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
21
+ ar[i] = from[i];
22
+ }
23
+ }
24
+ return to.concat(ar || Array.prototype.slice.call(from));
25
+ };
1
26
  var __values = (this && this.__values) || function(o) {
2
27
  var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
3
28
  if (m) return m.call(o);
@@ -11,50 +36,57 @@ var __values = (this && this.__values) || function(o) {
11
36
  };
12
37
  import { getFilteredData } from './getFilteredData';
13
38
  import { getFilterEntryId } from './helper';
14
- export function getFacetEntries(modelData, remoteModelData, options, constraints, reference, indexMap) {
15
- var e_1, _a;
39
+ export function getFacetEntries(modelData, remoteModelData, options, constraints, attributeKey, indexMap) {
40
+ var e_1, _a, e_2, _b;
16
41
  var filterItemEntries = [];
17
- var constraintsExceptSameFilterKey = constraints.filter(function (c) { return c.filterKey !== reference.key; });
42
+ var constraintsExceptSameFilterKey = constraints.filter(function (c) { return c.filterKey !== attributeKey; });
18
43
  var currentFilteredData = getFilteredData(modelData, constraintsExceptSameFilterKey, false);
19
- var _loop_1 = function (dataEntry) {
44
+ var validFacetKeys = new Set(__spreadArray([], __read(remoteModelData.keys()), false));
45
+ if (options.excludeUndefineds === false) {
46
+ try {
47
+ for (var _c = __values(indexMap.keys()), _d = _c.next(); !_d.done; _d = _c.next()) {
48
+ var key = _d.value;
49
+ validFacetKeys.add(key);
50
+ }
51
+ }
52
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
53
+ finally {
54
+ try {
55
+ if (_d && !_d.done && (_a = _c.return)) _a.call(_c);
56
+ }
57
+ finally { if (e_1) throw e_1.error; }
58
+ }
59
+ }
60
+ var _loop_1 = function (validFacetKey) {
61
+ var e_3, _g;
20
62
  var result = new Map();
21
- if (indexMap) {
22
- var keys = indexMap.get(dataEntry.key);
23
- if (keys) {
24
- if (options === null || options === void 0 ? void 0 : options.calculateFacets) {
25
- keys.forEach(function (key) {
26
- if (currentFilteredData.has(key)) {
27
- result.set(key, currentFilteredData.get(key));
28
- }
29
- });
30
- }
31
- else {
32
- var key = keys.find(function (k) { return currentFilteredData.has(k); });
33
- if (key) {
34
- result.set(key, currentFilteredData.get(key));
63
+ var indexedValueKeys = indexMap.get(validFacetKey) || [];
64
+ try {
65
+ for (var indexedValueKeys_1 = (e_3 = void 0, __values(indexedValueKeys)), indexedValueKeys_1_1 = indexedValueKeys_1.next(); !indexedValueKeys_1_1.done; indexedValueKeys_1_1 = indexedValueKeys_1.next()) {
66
+ var key = indexedValueKeys_1_1.value;
67
+ var value = currentFilteredData.get(key);
68
+ if (value) {
69
+ result.set(key, value);
70
+ if (!(options === null || options === void 0 ? void 0 : options.calculateFacets)) {
71
+ break;
35
72
  }
36
73
  }
37
74
  }
38
75
  }
39
- else {
40
- // Fallback if there is no indexMap
41
- var constraintToAdd = {
42
- uid: '',
43
- filterKey: reference.key,
44
- attributeKey: reference.key,
45
- type: 'referenceConstraint',
46
- value: dataEntry.key,
47
- calculateFacets: !!(options === null || options === void 0 ? void 0 : options.calculateFacets),
48
- };
49
- result = getFilteredData(currentFilteredData, [constraintToAdd], !(options === null || options === void 0 ? void 0 : options.calculateFacets));
76
+ catch (e_3_1) { e_3 = { error: e_3_1 }; }
77
+ finally {
78
+ try {
79
+ if (indexedValueKeys_1_1 && !indexedValueKeys_1_1.done && (_g = indexedValueKeys_1.return)) _g.call(indexedValueKeys_1);
80
+ }
81
+ finally { if (e_3) throw e_3.error; }
50
82
  }
51
83
  var facetEntry = {
52
- key: dataEntry.key,
53
- value: dataEntry.key,
54
- selected: !!constraints.find(function (constraint) { return constraint.uid === getFilterEntryId(reference.key, dataEntry.key); }),
84
+ key: validFacetKey,
85
+ value: validFacetKey,
86
+ selected: !!constraints.find(function (constraint) { return constraint.uid === getFilterEntryId(attributeKey, validFacetKey); }),
55
87
  enabled: result.size > 0,
56
88
  size: result.size,
57
- entry: dataEntry,
89
+ entry: remoteModelData.get(validFacetKey),
58
90
  resultKeys: Array.from(result.keys()),
59
91
  };
60
92
  if ((options === null || options === void 0 ? void 0 : options.excludeZeros) && facetEntry.size === 0) {
@@ -66,19 +98,19 @@ export function getFacetEntries(modelData, remoteModelData, options, constraints
66
98
  filterItemEntries.push(facetEntry);
67
99
  };
68
100
  try {
69
- for (var _b = __values(remoteModelData.values()), _c = _b.next(); !_c.done; _c = _b.next()) {
70
- var dataEntry = _c.value;
71
- var state_1 = _loop_1(dataEntry);
101
+ for (var _e = __values(validFacetKeys.values()), _f = _e.next(); !_f.done; _f = _e.next()) {
102
+ var validFacetKey = _f.value;
103
+ var state_1 = _loop_1(validFacetKey);
72
104
  if (typeof state_1 === "object")
73
105
  return state_1.value;
74
106
  }
75
107
  }
76
- catch (e_1_1) { e_1 = { error: e_1_1 }; }
108
+ catch (e_2_1) { e_2 = { error: e_2_1 }; }
77
109
  finally {
78
110
  try {
79
- if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
111
+ if (_f && !_f.done && (_b = _e.return)) _b.call(_e);
80
112
  }
81
- finally { if (e_1) throw e_1.error; }
113
+ finally { if (e_2) throw e_2.error; }
82
114
  }
83
115
  return filterItemEntries;
84
116
  }
@@ -1 +1 @@
1
- {"version":3,"file":"getFacetEntries.js","sourceRoot":"","sources":["../../src/getFacetEntries.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"getFacetEntries.js","sourceRoot":"","sources":["../../src/getFacetEntries.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAE5C,MAAM,UAAU,eAAe,CAC7B,SAAgC,EAChC,eAAsC,EACtC,OAA2B,EAC3B,WAA+B,EAC/B,YAAoB,EACpB,QAA+B;;IAE/B,IAAM,iBAAiB,GAAsB,EAAE,CAAC;IAEhD,IAAM,8BAA8B,GAAG,WAAW,CAAC,MAAM,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,SAAS,KAAK,YAAY,EAA5B,CAA4B,CAAC,CAAC;IAE/F,IAAM,mBAAmB,GAAG,eAAe,CAAC,SAAS,EAAE,8BAA8B,EAAE,KAAK,CAAC,CAAC;IAE9F,IAAM,cAAc,GAAgB,IAAI,GAAG,0BAAK,eAAe,CAAC,IAAI,EAAE,UAAE,CAAC;IAEzE,IAAI,OAAO,CAAC,iBAAiB,KAAK,KAAK,EAAE;;YACvC,KAAkB,IAAA,KAAA,SAAA,QAAS,CAAC,IAAI,EAAE,CAAA,gBAAA,4BAAE;gBAA/B,IAAM,GAAG,WAAA;gBACZ,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;aACzB;;;;;;;;;KACF;4BAEU,aAAa;;QACtB,IAAM,MAAM,GAAG,IAAI,GAAG,EAAoB,CAAC;QAE3C,IAAM,gBAAgB,GAAG,QAAQ,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;;YAE3D,KAAkB,IAAA,oCAAA,SAAA,gBAAgB,CAAA,CAAA,kDAAA,gFAAE;gBAA/B,IAAM,GAAG,6BAAA;gBACZ,IAAM,KAAK,GAAG,mBAAmB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBAC3C,IAAI,KAAK,EAAE;oBACT,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;oBACvB,IAAI,CAAC,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,eAAe,CAAA,EAAE;wBAC7B,MAAM;qBACP;iBACF;aACF;;;;;;;;;QAED,IAAM,UAAU,GAAoB;YAClC,GAAG,EAAE,aAAa;YAClB,KAAK,EAAE,aAAa;YACpB,QAAQ,EAAE,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,UAAC,UAAU,IAAK,OAAA,UAAU,CAAC,GAAG,KAAK,gBAAgB,CAAC,YAAY,EAAE,aAAa,CAAC,EAAhE,CAAgE,CAAC;YAC9G,OAAO,EAAE,MAAM,CAAC,IAAI,GAAG,CAAC;YACxB,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,KAAK,EAAE,eAAe,CAAC,GAAG,CAAC,aAAa,CAAE;YAC1C,UAAU,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;SACtC,CAAC;QAEF,IAAI,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,YAAY,KAAI,UAAU,CAAC,IAAI,KAAK,CAAC,EAAE;;SAEnD;QAED,IAAI,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,KAAK,KAAI,iBAAiB,CAAC,MAAM,MAAK,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,KAAK,CAAA,EAAE;4BAC1D,iBAAiB;SACzB;QAED,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;;;QAjCrC,KAA4B,IAAA,KAAA,SAAA,cAAc,CAAC,MAAM,EAAE,CAAA,gBAAA;YAA9C,IAAM,aAAa,WAAA;kCAAb,aAAa;;;SAkCvB;;;;;;;;;IAED,OAAO,iBAAiB,CAAC;AAC3B,CAAC"}