@fireflysemantics/slice 14.0.7
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 +95 -0
- package/bundles/fireflysemantics-slice.umd.js +1863 -0
- package/bundles/fireflysemantics-slice.umd.js.map +1 -0
- package/esm2015/fireflysemantics-slice.js +5 -0
- package/esm2015/lib/AbstractStore.js +289 -0
- package/esm2015/lib/EStore.js +599 -0
- package/esm2015/lib/OStore.js +133 -0
- package/esm2015/lib/Slice.js +222 -0
- package/esm2015/lib/models/ActionTypes.js +2 -0
- package/esm2015/lib/models/Delta.js +2 -0
- package/esm2015/lib/models/Predicate.js +2 -0
- package/esm2015/lib/models/StoreConfig.js +3 -0
- package/esm2015/lib/models/index.js +5 -0
- package/esm2015/lib/models/scrollPosition.js +2 -0
- package/esm2015/lib/utilities.js +213 -0
- package/esm2015/public-api.js +10 -0
- package/fesm2015/fireflysemantics-slice.js +1459 -0
- package/fesm2015/fireflysemantics-slice.js.map +1 -0
- package/fireflysemantics-slice.d.ts +5 -0
- package/lib/AbstractStore.d.ts +214 -0
- package/lib/EStore.d.ts +403 -0
- package/lib/OStore.d.ts +106 -0
- package/lib/Slice.d.ts +97 -0
- package/lib/models/ActionTypes.d.ts +10 -0
- package/lib/models/Delta.d.ts +10 -0
- package/lib/models/Predicate.d.ts +4 -0
- package/lib/models/StoreConfig.d.ts +8 -0
- package/lib/models/index.d.ts +4 -0
- package/lib/models/scrollPosition.d.ts +5 -0
- package/lib/utilities.d.ts +144 -0
- package/package.json +42 -0
- package/public-api.d.ts +6 -0
@@ -0,0 +1,213 @@
|
|
1
|
+
import { ESTORE_CONFIG_DEFAULT } from "./AbstractStore";
|
2
|
+
import { fromEvent, of } from 'rxjs';
|
3
|
+
import { switchMap, pairwise, debounceTime, distinctUntilChanged, map } from 'rxjs/operators';
|
4
|
+
import { nanoid } from "nanoid";
|
5
|
+
/**
|
6
|
+
* Returns all the entities are distinct by the
|
7
|
+
* `property` value argument.
|
8
|
+
*
|
9
|
+
* Note that the implementation uses a `Map<string, E>` to
|
10
|
+
* index the entities by key. Therefore the more recent occurences
|
11
|
+
* matching a key instance will overwrite the previous ones.
|
12
|
+
*
|
13
|
+
* @param property The name of the property to check for distinct values by.
|
14
|
+
* @param entities The entities in the array.
|
15
|
+
*
|
16
|
+
* @example
|
17
|
+
```
|
18
|
+
let todos: Todo[] = [
|
19
|
+
{ id: 1, title: "Lets do it!" },
|
20
|
+
{ id: 1, title: "Lets do it again!" },
|
21
|
+
{ id: 2, title: "All done!" }
|
22
|
+
];
|
23
|
+
|
24
|
+
let todos2: Todo[] = [
|
25
|
+
{ id: 1, title: "Lets do it!" },
|
26
|
+
{ id: 2, title: "All done!" }
|
27
|
+
];
|
28
|
+
|
29
|
+
expect(distinct(todos, "id").length).toEqual(2);
|
30
|
+
expect(distinct(todos2, "id").length).toEqual(2);
|
31
|
+
|
32
|
+
```
|
33
|
+
*/
|
34
|
+
export function distinct(entities, property) {
|
35
|
+
const entitiesByProperty = new Map(entities.map(e => [e[property], e]));
|
36
|
+
return Array.from(entitiesByProperty.values());
|
37
|
+
}
|
38
|
+
/**
|
39
|
+
* Returns true if all the entities are distinct by the
|
40
|
+
* `property` value argument.
|
41
|
+
*
|
42
|
+
* @param property The name of the property to check for distinct values by.
|
43
|
+
* @param entities The entities in the array.
|
44
|
+
*
|
45
|
+
* @example
|
46
|
+
*
|
47
|
+
```
|
48
|
+
let todos: Todo[] = [
|
49
|
+
{ id: 1, title: "Lets do it!" },
|
50
|
+
{ id: 1, title: "Lets do it again!" },
|
51
|
+
{ id: 2, title: "All done!" }
|
52
|
+
];
|
53
|
+
|
54
|
+
let todos2: Todo[] = [
|
55
|
+
{ id: 1, title: "Lets do it!" },
|
56
|
+
{ id: 2, title: "All done!" }
|
57
|
+
];
|
58
|
+
|
59
|
+
expect(unique(todos, "id")).toBeFalsy();
|
60
|
+
expect(unique(todos2, "id")).toBeTruthy();
|
61
|
+
```
|
62
|
+
*/
|
63
|
+
export function unique(entities, property) {
|
64
|
+
return entities.length == distinct(entities, property).length ? true : false;
|
65
|
+
}
|
66
|
+
/**
|
67
|
+
* Create a global ID
|
68
|
+
* @return The global id.
|
69
|
+
*
|
70
|
+
* @example
|
71
|
+
* let e.guid = GUID();
|
72
|
+
*/
|
73
|
+
export function GUID() {
|
74
|
+
return nanoid();
|
75
|
+
}
|
76
|
+
/**
|
77
|
+
* Set the global identfication property on the instance.
|
78
|
+
*
|
79
|
+
* @param e Entity we want to set the global identifier on.
|
80
|
+
* @param gid The name of the `gid` property. If not specified it defaults to `ESTORE_CONFIG_DEFAULT.guidKey`.
|
81
|
+
*/
|
82
|
+
export function attachGUID(e, gid) {
|
83
|
+
const guidKey = gid ? gid : ESTORE_CONFIG_DEFAULT.guidKey;
|
84
|
+
let id = nanoid();
|
85
|
+
e[guidKey] = id;
|
86
|
+
return id;
|
87
|
+
}
|
88
|
+
/**
|
89
|
+
* Set the global identfication property on the instance.
|
90
|
+
*
|
91
|
+
* @param e[] Entity array we want to set the global identifiers on.
|
92
|
+
* @param gid The name of the `gid` property. If not specified it defaults to `gid`.
|
93
|
+
*/
|
94
|
+
export function attachGUIDs(e, gid) {
|
95
|
+
e.forEach(e => {
|
96
|
+
attachGUID(e, gid);
|
97
|
+
});
|
98
|
+
}
|
99
|
+
/**
|
100
|
+
* Create a shallow copy of the argument.
|
101
|
+
* @param o The object to copy
|
102
|
+
*/
|
103
|
+
export function shallowCopy(o) {
|
104
|
+
return Object.assign({}, o);
|
105
|
+
}
|
106
|
+
/**
|
107
|
+
* Create a deep copy of the argument.
|
108
|
+
* @param o The object to copy
|
109
|
+
*/
|
110
|
+
export function deepCopy(o) {
|
111
|
+
return JSON.parse(JSON.stringify(o));
|
112
|
+
}
|
113
|
+
/**
|
114
|
+
* Gets the current active value from the `active`
|
115
|
+
* Map.
|
116
|
+
*
|
117
|
+
* This is used for the scenario where we are managing
|
118
|
+
* a single active instance. For example
|
119
|
+
* when selecting a book from a collection of books.
|
120
|
+
*
|
121
|
+
* The selected `Book` instance becomes the active value.
|
122
|
+
*
|
123
|
+
* @example
|
124
|
+
* const book:Book = getActiveValue(bookStore.active);
|
125
|
+
* @param m
|
126
|
+
*/
|
127
|
+
export function getActiveValue(m) {
|
128
|
+
if (m.size) {
|
129
|
+
return m.entries().next().value[1];
|
130
|
+
}
|
131
|
+
return null;
|
132
|
+
}
|
133
|
+
/**
|
134
|
+
* The method can be used to exclude keys from an instance
|
135
|
+
* of type `E`.
|
136
|
+
*
|
137
|
+
* We can use this to exclude values when searching an object.
|
138
|
+
*
|
139
|
+
* @param entity An instance of type E
|
140
|
+
* @param exclude The keys to exclude
|
141
|
+
*
|
142
|
+
* @example
|
143
|
+
* todo = { id: '1', description: 'Do it!' }
|
144
|
+
* let keys = excludeKeys<Todo>(todo, ['id]);
|
145
|
+
* // keys = ['description']
|
146
|
+
*/
|
147
|
+
export function excludeKeys(entity, exclude) {
|
148
|
+
const keys = Object.keys(entity);
|
149
|
+
return keys.filter((key) => {
|
150
|
+
return exclude.indexOf(key) < 0;
|
151
|
+
});
|
152
|
+
}
|
153
|
+
/**
|
154
|
+
*
|
155
|
+
* @param entities The entity to search
|
156
|
+
* @param exclude Keys to exclude from each entity
|
157
|
+
*
|
158
|
+
* @return E[] Array of entities with properties containing the search term.
|
159
|
+
*/
|
160
|
+
export function search(query = '', entities, exclude = []) {
|
161
|
+
const { isArray } = Array;
|
162
|
+
query = query.toLowerCase();
|
163
|
+
return entities.filter(function (e) {
|
164
|
+
//Do the keys calculation on each instance e:E
|
165
|
+
//because an instance can have optional parameters,
|
166
|
+
//and thus we have to check each instance, not just
|
167
|
+
//the first one in the array.
|
168
|
+
const keys = excludeKeys(e, exclude);
|
169
|
+
return keys.some((key) => {
|
170
|
+
const value = e[key];
|
171
|
+
if (!value) {
|
172
|
+
return false;
|
173
|
+
}
|
174
|
+
if (isArray(value)) {
|
175
|
+
return value.some(v => {
|
176
|
+
return String(v).toLowerCase().includes(query);
|
177
|
+
});
|
178
|
+
}
|
179
|
+
else {
|
180
|
+
return String(value).toLowerCase().includes(query);
|
181
|
+
}
|
182
|
+
});
|
183
|
+
});
|
184
|
+
}
|
185
|
+
/**
|
186
|
+
* @param scrollable The element being scrolled
|
187
|
+
* @param debounceMS The number of milliseconds to debounce scroll events
|
188
|
+
* @param sp The function returning the scroll position coordinates.
|
189
|
+
* @return A boolean valued observable indicating whether the element is scrolling up or down
|
190
|
+
*/
|
191
|
+
export function scrollingUp(scrollable, debounceMS, sp) {
|
192
|
+
return fromEvent(scrollable, 'scroll').pipe(debounceTime(debounceMS), distinctUntilChanged(), map(v => sp()), pairwise(), switchMap(p => {
|
193
|
+
const y1 = p[0][1];
|
194
|
+
const y2 = p[1][1];
|
195
|
+
return y1 - y2 > 0 ? of(false) : of(true);
|
196
|
+
}));
|
197
|
+
}
|
198
|
+
/**
|
199
|
+
* Filters the entities properties to the set contained in the
|
200
|
+
* `keys` array.
|
201
|
+
*
|
202
|
+
* @param keys The array of keys that the entity be limited to
|
203
|
+
* @param entity The entity to map
|
204
|
+
* @return An entity instance that has only the keys provided in the keys array
|
205
|
+
*/
|
206
|
+
export function mapEntity(keys, entity) {
|
207
|
+
const result = {};
|
208
|
+
keys.forEach(k => {
|
209
|
+
result[k] = entity[k];
|
210
|
+
});
|
211
|
+
return result;
|
212
|
+
}
|
213
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbGl0aWVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvc2xpY2Uvc3JjL2xpYi91dGlsaXRpZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDeEQsT0FBTyxFQUFjLFNBQVMsRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUE7QUFDaEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBQzdGLE9BQU8sRUFBRSxNQUFNLEVBQUMsTUFBTSxRQUFRLENBQUE7QUFHOUI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E0Qkc7QUFDSCxNQUFNLFVBQVUsUUFBUSxDQUF1QixRQUFhLEVBQUUsUUFBVztJQUN2RSxNQUFNLGtCQUFrQixHQUFHLElBQUksR0FBRyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQWMsQ0FBQyxDQUFDLENBQUM7SUFDckYsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7QUFDakQsQ0FBQztBQUVEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F3Qkc7QUFDSCxNQUFNLFVBQVUsTUFBTSxDQUFJLFFBQWEsRUFBRSxRQUFpQjtJQUN4RCxPQUFPLFFBQVEsQ0FBQyxNQUFNLElBQUksUUFBUSxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO0FBQy9FLENBQUM7QUFFRDs7Ozs7O0dBTUc7QUFDSCxNQUFNLFVBQVUsSUFBSTtJQUNsQixPQUFPLE1BQU0sRUFB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QUFDO2FBQ3BEO1FBQ0gsQ0FBQyxDQUFDLENBQUE7SUFDSixDQUFDLENBQUMsQ0FBQztBQUNMLENBQUM7QUFFRDs7Ozs7R0FLRztBQUNILE1BQU0sVUFBVSxXQUFXLENBQ3pCLFVBQWUsRUFDZixVQUFrQixFQUNsQixFQUFrQjtJQUNsQixPQUFPLFNBQVMsQ0FBQyxVQUFVLEVBQUUsUUFBUSxDQUFDLENBQUMsSUFBSSxDQUN6QyxZQUFZLENBQUMsVUFBVSxDQUFDLEVBQ3hCLG9CQUFvQixFQUFFLEVBQ3RCLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQ2QsUUFBUSxFQUFFLEVBQ1YsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFO1FBQ2QsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO1FBQ2xCLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtRQUNsQixPQUFPLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQTtJQUMzQyxDQUFDLENBQUMsQ0FBQyxDQUFBO0FBQ0wsQ0FBQztBQUVEOzs7Ozs7O0dBT0c7QUFDSCxNQUFNLFVBQVUsU0FBUyxDQUFDLElBQWEsRUFBRSxNQUFVO0lBQ2pELE1BQU0sTUFBTSxHQUFPLEVBQUUsQ0FBQTtJQUNyQixJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQSxFQUFFO1FBQ2QsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUN2QixDQUFDLENBQUMsQ0FBQTtJQUNGLE9BQU8sTUFBTSxDQUFBO0FBQ2YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVTVE9SRV9DT05GSUdfREVGQVVMVCB9IGZyb20gXCIuL0Fic3RyYWN0U3RvcmVcIjtcbmltcG9ydCB7IE9ic2VydmFibGUsIGZyb21FdmVudCwgb2YgfSBmcm9tICdyeGpzJ1xuaW1wb3J0IHsgc3dpdGNoTWFwLCBwYWlyd2lzZSwgZGVib3VuY2VUaW1lLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnXG5pbXBvcnQgeyBuYW5vaWR9IGZyb20gXCJuYW5vaWRcIlxuaW1wb3J0IHsgc2Nyb2xsUG9zaXRpb24gfSBmcm9tIFwiLi9tb2RlbHMvc2Nyb2xsUG9zaXRpb25cIjtcblxuLyoqXG4gKiBSZXR1cm5zIGFsbCB0aGUgZW50aXRpZXMgYXJlIGRpc3RpbmN0IGJ5IHRoZSBcbiAqIGBwcm9wZXJ0eWAgdmFsdWUgYXJndW1lbnQuICBcbiAqIFxuICogTm90ZSB0aGF0IHRoZSBpbXBsZW1lbnRhdGlvbiB1c2VzIGEgYE1hcDxzdHJpbmcsIEU+YCB0b1xuICogaW5kZXggdGhlIGVudGl0aWVzIGJ5IGtleS4gIFRoZXJlZm9yZSB0aGUgbW9yZSByZWNlbnQgb2NjdXJlbmNlcyBcbiAqIG1hdGNoaW5nIGEga2V5IGluc3RhbmNlIHdpbGwgb3ZlcndyaXRlIHRoZSBwcmV2aW91cyBvbmVzLlxuICogXG4gKiBAcGFyYW0gcHJvcGVydHkgVGhlIG5hbWUgb2YgdGhlIHByb3BlcnR5IHRvIGNoZWNrIGZvciBkaXN0aW5jdCB2YWx1ZXMgYnkuXG4gKiBAcGFyYW0gZW50aXRpZXMgVGhlIGVudGl0aWVzIGluIHRoZSBhcnJheS5cbiAqIFxuICogQGV4YW1wbGVcbiBgYGBcbiAgbGV0IHRvZG9zOiBUb2RvW10gPSBbXG4gICAgeyBpZDogMSwgdGl0bGU6IFwiTGV0cyBkbyBpdCFcIiB9LFxuICAgIHsgaWQ6IDEsIHRpdGxlOiBcIkxldHMgZG8gaXQgYWdhaW4hXCIgfSxcbiAgICB7IGlkOiAyLCB0aXRsZTogXCJBbGwgZG9uZSFcIiB9XG4gIF07XG5cbiAgbGV0IHRvZG9zMjogVG9kb1tdID0gW1xuICAgIHsgaWQ6IDEsIHRpdGxlOiBcIkxldHMgZG8gaXQhXCIgfSxcbiAgICB7IGlkOiAyLCB0aXRsZTogXCJBbGwgZG9uZSFcIiB9XG4gIF07XG5cbiAgZXhwZWN0KGRpc3RpbmN0KHRvZG9zLCBcImlkXCIpLmxlbmd0aCkudG9FcXVhbCgyKTtcbiAgZXhwZWN0KGRpc3RpbmN0KHRvZG9zMiwgXCJpZFwiKS5sZW5ndGgpLnRvRXF1YWwoMik7XG5cbiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRpc3RpbmN0PEUsIEsgZXh0ZW5kcyBrZXlvZiBFPihlbnRpdGllczogRVtdLCBwcm9wZXJ0eTogSyk6IEVbXSB7XG4gIGNvbnN0IGVudGl0aWVzQnlQcm9wZXJ0eSA9IG5ldyBNYXAoZW50aXRpZXMubWFwKGUgPT4gW2VbcHJvcGVydHldLCBlXSBhcyBbRVtLXSwgRV0pKTtcbiAgcmV0dXJuIEFycmF5LmZyb20oZW50aXRpZXNCeVByb3BlcnR5LnZhbHVlcygpKTtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIHRydWUgaWYgYWxsIHRoZSBlbnRpdGllcyBhcmUgZGlzdGluY3QgYnkgdGhlIFxuICogYHByb3BlcnR5YCB2YWx1ZSBhcmd1bWVudC5cbiAqIFxuICogQHBhcmFtIHByb3BlcnR5IFRoZSBuYW1lIG9mIHRoZSBwcm9wZXJ0eSB0byBjaGVjayBmb3IgZGlzdGluY3QgdmFsdWVzIGJ5LlxuICogQHBhcmFtIGVudGl0aWVzIFRoZSBlbnRpdGllcyBpbiB0aGUgYXJyYXkuXG4gKiBcbiAqIEBleGFtcGxlXG4gKiBcbiBgYGBcbiAgbGV0IHRvZG9zOiBUb2RvW10gPSBbXG4gICAgeyBpZDogMSwgdGl0bGU6IFwiTGV0cyBkbyBpdCFcIiB9LFxuICAgIHsgaWQ6IDEsIHRpdGxlOiBcIkxldHMgZG8gaXQgYWdhaW4hXCIgfSxcbiAgICB7IGlkOiAyLCB0aXRsZTogXCJBbGwgZG9uZSFcIiB9XG4gIF07XG5cbiAgbGV0IHRvZG9zMjogVG9kb1tdID0gW1xuICAgIHsgaWQ6IDEsIHRpdGxlOiBcIkxldHMgZG8gaXQhXCIgfSxcbiAgICB7IGlkOiAyLCB0aXRsZTogXCJBbGwgZG9uZSFcIiB9XG4gIF07XG5cbiAgZXhwZWN0KHVuaXF1ZSh0b2RvcywgXCJpZFwiKSkudG9CZUZhbHN5KCk7XG4gIGV4cGVjdCh1bmlxdWUodG9kb3MyLCBcImlkXCIpKS50b0JlVHJ1dGh5KCk7XG4gYGBgXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1bmlxdWU8RT4oZW50aXRpZXM6IEVbXSwgcHJvcGVydHk6IGtleW9mIEUpOmJvb2xlYW4ge1xuICByZXR1cm4gZW50aXRpZXMubGVuZ3RoID09IGRpc3RpbmN0KGVudGl0aWVzLCBwcm9wZXJ0eSkubGVuZ3RoID8gdHJ1ZSA6IGZhbHNlO1xufVxuXG4vKipcbiAqIENyZWF0ZSBhIGdsb2JhbCBJRFxuICogQHJldHVybiBUaGUgZ2xvYmFsIGlkLlxuICogXG4gKiBAZXhhbXBsZVxuICogbGV0IGUuZ3VpZCA9IEdVSUQoKTtcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIEdVSUQoKSB7XG4gIHJldHVybiBuYW5vaWQoKTtcbn1cblxuLyoqXG4gKiBTZXQgdGhlIGdsb2JhbCBpZGVudGZpY2F0aW9uIHByb3BlcnR5IG9uIHRoZSBpbnN0YW5jZS5cbiAqIFxuICogQHBhcmFtIGUgRW50aXR5IHdlIHdhbnQgdG8gc2V0IHRoZSBnbG9iYWwgaWRlbnRpZmllciBvbi5cbiAqIEBwYXJhbSBnaWQgVGhlIG5hbWUgb2YgdGhlIGBnaWRgIHByb3BlcnR5LiAgSWYgbm90IHNwZWNpZmllZCBpdCBkZWZhdWx0cyB0byBgRVNUT1JFX0NPTkZJR19ERUZBVUxULmd1aWRLZXlgLlxuICovXG5leHBvcnQgZnVuY3Rpb24gYXR0YWNoR1VJRDxFPihlOiBFLCBnaWQ/OiBzdHJpbmcpOiBzdHJpbmcge1xuICBjb25zdCBndWlkS2V5ID0gZ2lkID8gZ2lkIDogRVNUT1JFX0NPTkZJR19ERUZBVUxULmd1aWRLZXlcbiAgbGV0IGlkOiBzdHJpbmcgPSBuYW5vaWQoKTtcbiAgKDxhbnk+ZSlbZ3VpZEtleV0gPSBpZFxuICByZXR1cm4gaWRcbn1cblxuLyoqXG4gKiBTZXQgdGhlIGdsb2JhbCBpZGVudGZpY2F0aW9uIHByb3BlcnR5IG9uIHRoZSBpbnN0YW5jZS5cbiAqIFxuICogQHBhcmFtIGVbXSBFbnRpdHkgYXJyYXkgd2Ugd2FudCB0byBzZXQgdGhlIGdsb2JhbCBpZGVudGlmaWVycyBvbi5cbiAqIEBwYXJhbSBnaWQgVGhlIG5hbWUgb2YgdGhlIGBnaWRgIHByb3BlcnR5LiAgSWYgbm90IHNwZWNpZmllZCBpdCBkZWZhdWx0cyB0byBgZ2lkYC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGF0dGFjaEdVSURzPEU+KGU6IEVbXSwgZ2lkPzogc3RyaW5nKSB7XG4gIGUuZm9yRWFjaChlID0+IHtcbiAgICBhdHRhY2hHVUlEKGUsIGdpZCk7XG4gIH0pO1xufVxuXG4vKipcbiAqIENyZWF0ZSBhIHNoYWxsb3cgY29weSBvZiB0aGUgYXJndW1lbnQuXG4gKiBAcGFyYW0gbyBUaGUgb2JqZWN0IHRvIGNvcHlcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNoYWxsb3dDb3B5PEU+KG86IEUpIHtcbiAgcmV0dXJuIHsgLi4ubyB9O1xufVxuXG4vKipcbiAqIENyZWF0ZSBhIGRlZXAgY29weSBvZiB0aGUgYXJndW1lbnQuXG4gKiBAcGFyYW0gbyBUaGUgb2JqZWN0IHRvIGNvcHlcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRlZXBDb3B5PEU+KG86IEUpIHtcbiAgcmV0dXJuIEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkobykpO1xufVxuXG4vKipcbiAqIEdldHMgdGhlIGN1cnJlbnQgYWN0aXZlIHZhbHVlIGZyb20gdGhlIGBhY3RpdmVgXG4gKiBNYXAuICBcbiAqIFxuICogVGhpcyBpcyB1c2VkIGZvciB0aGUgc2NlbmFyaW8gd2hlcmUgd2UgYXJlIG1hbmFnaW5nXG4gKiBhIHNpbmdsZSBhY3RpdmUgaW5zdGFuY2UuICBGb3IgZXhhbXBsZSBcbiAqIHdoZW4gc2VsZWN0aW5nIGEgYm9vayBmcm9tIGEgY29sbGVjdGlvbiBvZiBib29rcy4gIFxuICogXG4gKiBUaGUgc2VsZWN0ZWQgYEJvb2tgIGluc3RhbmNlIGJlY29tZXMgdGhlIGFjdGl2ZSB2YWx1ZS5cbiAqIFxuICogQGV4YW1wbGVcbiAqIGNvbnN0IGJvb2s6Qm9vayA9IGdldEFjdGl2ZVZhbHVlKGJvb2tTdG9yZS5hY3RpdmUpO1xuICogQHBhcmFtIG0gXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRBY3RpdmVWYWx1ZTxFPihtOiBNYXA8YW55LCBFPikge1xuICBpZiAobS5zaXplKSB7XG4gICAgcmV0dXJuIG0uZW50cmllcygpLm5leHQoKS52YWx1ZVsxXTtcbiAgfVxuICByZXR1cm4gbnVsbDtcbn1cblxuLyoqXG4gKiBUaGUgbWV0aG9kIGNhbiBiZSB1c2VkIHRvIGV4Y2x1ZGUga2V5cyBmcm9tIGFuIGluc3RhbmNlXG4gKiBvZiB0eXBlIGBFYC4gIFxuICogXG4gKiBXZSBjYW4gdXNlIHRoaXMgdG8gZXhjbHVkZSB2YWx1ZXMgd2hlbiBzZWFyY2hpbmcgYW4gb2JqZWN0LlxuICogXG4gKiBAcGFyYW0gZW50aXR5IEFuIGluc3RhbmNlIG9mIHR5cGUgRVxuICogQHBhcmFtIGV4Y2x1ZGUgVGhlIGtleXMgdG8gZXhjbHVkZVxuICogXG4gKiBAZXhhbXBsZVxuICogdG9kbyA9IHsgaWQ6ICcxJywgZGVzY3JpcHRpb246ICdEbyBpdCEnIH1cbiAqIGxldCBrZXlzID0gZXhjbHVkZUtleXM8VG9kbz4odG9kbywgWydpZF0pO1xuICogLy8ga2V5cyA9IFsnZGVzY3JpcHRpb24nXVxuICovXG5leHBvcnQgZnVuY3Rpb24gZXhjbHVkZUtleXM8RT4oZW50aXR5OiBFLCBleGNsdWRlOiBzdHJpbmdbXSkge1xuICBjb25zdCBrZXlzOiBzdHJpbmdbXSA9IE9iamVjdC5rZXlzKGVudGl0eSk7XG4gIHJldHVybiBrZXlzLmZpbHRlcigoa2V5KSA9PiB7XG4gICAgcmV0dXJuIGV4Y2x1ZGUuaW5kZXhPZihrZXkpIDwgMDtcbiAgfSk7XG59XG5cbi8qKlxuICogXG4gKiBAcGFyYW0gZW50aXRpZXMgVGhlIGVudGl0eSB0byBzZWFyY2hcbiAqIEBwYXJhbSBleGNsdWRlIEtleXMgdG8gZXhjbHVkZSBmcm9tIGVhY2ggZW50aXR5XG4gKiBcbiAqIEByZXR1cm4gRVtdIEFycmF5IG9mIGVudGl0aWVzIHdpdGggcHJvcGVydGllcyBjb250YWluaW5nIHRoZSBzZWFyY2ggdGVybS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNlYXJjaDxFPihxdWVyeTogc3RyaW5nID0gJycsIGVudGl0aWVzOiBFW10sIGV4Y2x1ZGU6IHN0cmluZ1tdID0gW10pOiBFW10ge1xuICBjb25zdCB7IGlzQXJyYXkgfSA9IEFycmF5XG5cbiAgcXVlcnkgPSBxdWVyeS50b0xvd2VyQ2FzZSgpO1xuXG5cbiAgcmV0dXJuIGVudGl0aWVzLmZpbHRlcihmdW5jdGlvbiAoZTogRSkge1xuICAgIC8vRG8gdGhlIGtleXMgY2FsY3VsYXRpb24gb24gZWFjaCBpbnN0YW5jZSBlOkVcbiAgICAvL2JlY2F1c2UgYW4gaW5zdGFuY2UgY2FuIGhhdmUgb3B0aW9uYWwgcGFyYW1ldGVycyxcbiAgICAvL2FuZCB0aHVzIHdlIGhhdmUgdG8gY2hlY2sgZWFjaCBpbnN0YW5jZSwgbm90IGp1c3RcbiAgICAvL3RoZSBmaXJzdCBvbmUgaW4gdGhlIGFycmF5LlxuICAgIGNvbnN0IGtleXMgPSBleGNsdWRlS2V5cyhlLCBleGNsdWRlKVxuICAgIHJldHVybiBrZXlzLnNvbWUoIChrZXkpID0+IHtcbiAgICAgIGNvbnN0IHZhbHVlID0gKGUgYXMgYW55KVtrZXldO1xuICAgICAgaWYgKCF2YWx1ZSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgICBpZiAoaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgICAgcmV0dXJuIHZhbHVlLnNvbWUodiA9PiB7XG4gICAgICAgICAgcmV0dXJuIFN0cmluZyh2KS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHF1ZXJ5KTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICBlbHNlIHtcbiAgICAgICAgcmV0dXJuIFN0cmluZyh2YWx1ZSkudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhxdWVyeSk7XG4gICAgICB9XG4gICAgfSlcbiAgfSk7XG59XG5cbi8qKlxuICogQHBhcmFtIHNjcm9sbGFibGUgVGhlIGVsZW1lbnQgYmVpbmcgc2Nyb2xsZWRcbiAqIEBwYXJhbSBkZWJvdW5jZU1TIFRoZSBudW1iZXIgb2YgbWlsbGlzZWNvbmRzIHRvIGRlYm91bmNlIHNjcm9sbCBldmVudHNcbiAqIEBwYXJhbSBzcCBUaGUgZnVuY3Rpb24gcmV0dXJuaW5nIHRoZSBzY3JvbGwgcG9zaXRpb24gY29vcmRpbmF0ZXMuXG4gKiBAcmV0dXJuIEEgYm9vbGVhbiB2YWx1ZWQgb2JzZXJ2YWJsZSBpbmRpY2F0aW5nIHdoZXRoZXIgdGhlIGVsZW1lbnQgaXMgc2Nyb2xsaW5nIHVwIG9yIGRvd25cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNjcm9sbGluZ1VwKFxuICBzY3JvbGxhYmxlOiBhbnksIFxuICBkZWJvdW5jZU1TOiBudW1iZXIsIFxuICBzcDogc2Nyb2xsUG9zaXRpb24pOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgcmV0dXJuIGZyb21FdmVudChzY3JvbGxhYmxlLCAnc2Nyb2xsJykucGlwZShcbiAgICBkZWJvdW5jZVRpbWUoZGVib3VuY2VNUyksIFxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksIFxuICAgIG1hcCh2ID0+IHNwKCkpLCBcbiAgICBwYWlyd2lzZSgpLCBcbiAgICBzd2l0Y2hNYXAocCA9PiB7XG4gICAgY29uc3QgeTEgPSBwWzBdWzFdXG4gICAgY29uc3QgeTIgPSBwWzFdWzFdXG4gICAgcmV0dXJuIHkxIC0geTIgPiAwID8gb2YoZmFsc2UpIDogb2YodHJ1ZSlcbiAgfSkpXG59XG5cbi8qKlxuICogRmlsdGVycyB0aGUgZW50aXRpZXMgcHJvcGVydGllcyB0byB0aGUgc2V0IGNvbnRhaW5lZCBpbiB0aGUgXG4gKiBga2V5c2AgYXJyYXkuXG4gKiAgXG4gKiBAcGFyYW0ga2V5cyBUaGUgYXJyYXkgb2Yga2V5cyB0aGF0IHRoZSBlbnRpdHkgYmUgbGltaXRlZCB0b1xuICogQHBhcmFtIGVudGl0eSBUaGUgZW50aXR5IHRvIG1hcFxuICogQHJldHVybiBBbiBlbnRpdHkgaW5zdGFuY2UgdGhhdCBoYXMgb25seSB0aGUga2V5cyBwcm92aWRlZCBpbiB0aGUga2V5cyBhcnJheSBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1hcEVudGl0eShrZXlzOnN0cmluZ1tdLCBlbnRpdHk6YW55KSB7XG4gIGNvbnN0IHJlc3VsdDphbnkgPSB7fVxuICBrZXlzLmZvckVhY2goaz0+e1xuICAgIHJlc3VsdFtrXSA9IGVudGl0eVtrXVxuICB9KVxuICByZXR1cm4gcmVzdWx0XG59Il19
|
@@ -0,0 +1,10 @@
|
|
1
|
+
/*
|
2
|
+
* Public API Surface of slice
|
3
|
+
*/
|
4
|
+
export * from './lib/models/';
|
5
|
+
export * from './lib/AbstractStore';
|
6
|
+
export * from './lib/EStore';
|
7
|
+
export * from './lib/OStore';
|
8
|
+
export * from './lib/Slice';
|
9
|
+
export * from './lib/utilities';
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL3NsaWNlL3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0gsY0FBYyxlQUFlLENBQUE7QUFDN0IsY0FBYyxxQkFBcUIsQ0FBQTtBQUNuQyxjQUFjLGNBQWMsQ0FBQTtBQUM1QixjQUFjLGNBQWMsQ0FBQTtBQUM1QixjQUFjLGFBQWEsQ0FBQTtBQUMzQixjQUFjLGlCQUFpQixDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBzbGljZVxuICovXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvJ1xuZXhwb3J0ICogZnJvbSAnLi9saWIvQWJzdHJhY3RTdG9yZSdcbmV4cG9ydCAqIGZyb20gJy4vbGliL0VTdG9yZSdcbmV4cG9ydCAqIGZyb20gJy4vbGliL09TdG9yZSdcbmV4cG9ydCAqIGZyb20gJy4vbGliL1NsaWNlJ1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdXRpbGl0aWVzJ1xuIl19
|