zek 17.3.68 → 17.3.69

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.
@@ -4,6 +4,33 @@ export class ArrayHelper {
4
4
  static insert(array, index, item) {
5
5
  array.splice(index, 0, item);
6
6
  }
7
+ /**
8
+ * Remove item from array
9
+ * @param array
10
+ * @param item item to remove
11
+ */
12
+ static remove(array, item) {
13
+ const index = array.indexOf(item);
14
+ if (index > -1) { // only splice array when item is found
15
+ array.splice(index, 1); // 2nd parameter means remove one item only
16
+ }
17
+ }
18
+ /**
19
+ * Remove all items from array
20
+ * @param array
21
+ * @param item item to remove
22
+ */
23
+ static removeAll(array, item) {
24
+ var i = 0;
25
+ while (i < array.length) {
26
+ if (array[i] === item) {
27
+ array.splice(i, 1);
28
+ }
29
+ else {
30
+ ++i;
31
+ }
32
+ }
33
+ }
7
34
  static move(array, fromIndex, toIndex) {
8
35
  const item = array[fromIndex];
9
36
  array.splice(fromIndex, 1); //remove item frrom array
@@ -120,4 +147,4 @@ export class ArrayHelper {
120
147
  return this.enumToKeyPairBaseArray(value);
121
148
  }
122
149
  }
123
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJyYXktaGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvemVrL3NyYy9saWIvdXRpbHMvYXJyYXktaGVscGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHNEQUFzRDtBQUN0RCwrQ0FBK0M7QUFLL0MsTUFBTSxPQUFPLFdBQVc7SUFDcEIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFZLEVBQUUsS0FBYSxFQUFFLElBQVM7UUFDaEQsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRCxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQVksRUFBRSxTQUFpQixFQUFFLE9BQWU7UUFFeEQsTUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzlCLEtBQUssQ0FBQyxNQUFNLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUEseUJBQXlCO1FBQ3BELEtBQUssQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFBLHdCQUF3QjtRQUN2RCxPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDO0lBRUQsTUFBTSxDQUFDLFFBQVEsQ0FBQyxLQUFZLEVBQUUsQ0FBTTtRQUNoQyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ3BDLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7Z0JBQUUsT0FBTyxJQUFJLENBQUM7UUFDcEMsQ0FBQztRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2pCLENBQUM7SUFHRCxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQVU7UUFDckIsT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFDRCxrQ0FBa0M7SUFDbEMsMkJBQTJCO0lBQzNCLCtDQUErQztJQUMvQyw4QkFBOEI7SUFDOUIsMENBQTBDO0lBQzFDLDZCQUE2QjtJQUM3QixZQUFZO0lBQ1osUUFBUTtJQUNSLGtCQUFrQjtJQUNsQixJQUFJO0lBRUosTUFBTSxDQUFDLFFBQVEsQ0FBQyxLQUFZO1FBQ3hCLE1BQU0sTUFBTSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUM7UUFDNUIsTUFBTSxNQUFNLEdBQUcsRUFBRSxDQUFBO1FBQ2pCLE1BQU0sSUFBSSxHQUFHLElBQUksR0FBRyxFQUFFLENBQUM7UUFFdkIsS0FBSyxJQUFJLEtBQUssR0FBRyxDQUFDLEVBQUUsS0FBSyxHQUFHLE1BQU0sRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDO1lBQzFDLE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUMzQixJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDO2dCQUFFLFNBQVM7WUFFOUIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNoQixNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3ZCLENBQUM7UUFFRCxPQUFPLE1BQU0sQ0FBQztJQUNsQixDQUFDO0lBRUQsTUFBTSxDQUFDLFdBQVcsQ0FBQyxXQUFnQixFQUFFLEdBQVcsRUFBRSxLQUFZO1FBQzFELElBQUksT0FBTyxXQUFXLEtBQUssV0FBVyxJQUFJLFdBQVcsSUFBSSxJQUFJLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxRQUFRLElBQUksR0FBRyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUM7WUFDMUcsT0FBTyxLQUFLLENBQUM7UUFFakIsT0FBTyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLFNBQVMsSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsS0FBSyxXQUFXLENBQUMsQ0FBQztJQUN0RixDQUFDO0lBRUQsTUFBTSxDQUFDLFlBQVksQ0FBQyxLQUFZO1FBQzVCLElBQUksTUFBTSxHQUFVLEVBQUUsQ0FBQztRQUN2QixJQUFJLEtBQUssRUFBRSxDQUFDO1lBQ1IsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRTtnQkFDakIsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7Z0JBQ2hCLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ2xCLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztZQUNuRCxDQUFDLENBQUMsQ0FBQztRQUNQLENBQUM7UUFDRCxPQUFPLE1BQU0sQ0FBQztJQUNsQixDQUFDO0lBRU8sTUFBTSxDQUFDLFdBQVcsQ0FBQyxJQUFVLEVBQUUsU0FBaUIsQ0FBQztRQUNyRCxJQUFJLE1BQU0sR0FBVSxFQUFFLENBQUM7UUFDdkIsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDaEIsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQztZQUMxQyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRTtnQkFDMUIsS0FBSyxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7Z0JBQ3RCLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ25CLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2hFLENBQUMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQzthQUFNLENBQUM7WUFDSixJQUFJLENBQUMsYUFBYSxHQUFHLENBQUMsQ0FBQztRQUMzQixDQUFDO1FBRUQsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztRQUN4Qiw0QkFBNEI7UUFDNUIscUJBQXFCO1FBQ3JCLE9BQU8sTUFBTSxDQUFDO0lBQ2xCLENBQUM7SUFJRCxNQUFNLENBQUMsa0JBQWtCLENBQUMsS0FBYTtRQUNuQyxJQUFJLE1BQU0sR0FBYyxFQUFFLENBQUM7UUFDM0IsSUFBSSxLQUFLLEVBQUUsQ0FBQztZQUNSLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQ2pCLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7Z0JBQ2xELE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1lBQ3pELENBQUMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQztRQUVELE9BQU8sTUFBTSxDQUFDO0lBQ2xCLENBQUM7SUFHTyxNQUFNLENBQUMsaUJBQWlCLENBQUMsSUFBVSxFQUFFLFNBQWlCLENBQUM7UUFDM0QsSUFBSSxNQUFNLEdBQWMsRUFBRSxDQUFDO1FBQzNCLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ2hCLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFO2dCQUMxQixpRkFBaUY7Z0JBQ2pGLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsS0FBSyxDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsUUFBUSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztnQkFDOUUsTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDaEUsQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDbEIsQ0FBQztJQUlPLE1BQU0sQ0FBQyxzQkFBc0IsQ0FBb0MsS0FBVTtRQUMvRSxNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2hDLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1FBQzlCLE1BQU0sTUFBTSxHQUFRLEVBQUUsQ0FBQztRQUN2QixvQ0FBb0M7UUFDcEMsbUVBQW1FO1FBQ25FLElBQUk7UUFDSixLQUFLLElBQUksQ0FBQyxHQUFHLEtBQUssRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ3ZDLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNyQixNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQU8sQ0FBQyxDQUFDO1FBQzFELENBQUM7UUFDRCxPQUFPLE1BQU0sQ0FBQztRQUNkLHdGQUF3RjtJQUM1RixDQUFDO0lBQ0QsTUFBTSxDQUFDLGtCQUFrQixDQUFDLEtBQVU7UUFDaEMsT0FBTyxJQUFJLENBQUMsc0JBQXNCLENBQTBCLEtBQUssQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7SUFDRCxNQUFNLENBQUMsb0JBQW9CLENBQUMsS0FBVTtRQUNsQyxPQUFPLElBQUksQ0FBQyxzQkFBc0IsQ0FBNEIsS0FBSyxDQUFDLENBQUM7SUFDekUsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiLy8gaW1wb3J0IHsgS2V5UGFpciB9IGZyb20gXCIuLi9tb2RlbHMva2V5LXBhaXIubW9kZWxcIjtcclxuLy8gaW1wb3J0IHsgVHJlZSB9IGZyb20gXCIuLi9tb2RlbHMvdHJlZS5tb2RlbFwiO1xyXG5cclxuaW1wb3J0IHsgS2V5UGFpciwgS2V5UGFpckV4LCBUcmVlIH0gZnJvbSBcIi4uL21vZGVsc1wiO1xyXG5cclxuXHJcbmV4cG9ydCBjbGFzcyBBcnJheUhlbHBlciB7XHJcbiAgICBzdGF0aWMgaW5zZXJ0KGFycmF5OiBhbnlbXSwgaW5kZXg6IG51bWJlciwgaXRlbTogYW55KSB7XHJcbiAgICAgICAgYXJyYXkuc3BsaWNlKGluZGV4LCAwLCBpdGVtKTtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgbW92ZShhcnJheTogYW55W10sIGZyb21JbmRleDogbnVtYmVyLCB0b0luZGV4OiBudW1iZXIpIHtcclxuXHJcbiAgICAgICAgY29uc3QgaXRlbSA9IGFycmF5W2Zyb21JbmRleF07XHJcbiAgICAgICAgYXJyYXkuc3BsaWNlKGZyb21JbmRleCwgMSk7Ly9yZW1vdmUgaXRlbSBmcnJvbSBhcnJheVxyXG4gICAgICAgIGFycmF5LnNwbGljZSh0b0luZGV4LCAwLCBpdGVtKTsvL2luc2VydCBpdGVtIGludG8gYXJyYXlcclxuICAgICAgICByZXR1cm4gYXJyYXk7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIGNvbnRhaW5zKHZhbHVlOiBhbnlbXSwgdjogYW55KSB7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB2YWx1ZS5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBpZiAodmFsdWVbaV0gPT09IHYpIHJldHVybiB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIHN0YXRpYyBpc0FycmF5KHZhbHVlOiBhbnkpIHtcclxuICAgICAgICByZXR1cm4gQXJyYXkuaXNBcnJheSh2YWx1ZSkgJiYgdmFsdWUubGVuZ3RoID4gMDtcclxuICAgIH1cclxuICAgIC8vIHN0YXRpYyBkaXN0aW5jdCh2YWx1ZTogYW55W10pIHtcclxuICAgIC8vICAgICB2YXIgYXJyOiBhbnlbXSA9IFtdO1xyXG4gICAgLy8gICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdmFsdWUubGVuZ3RoOyBpKyspIHtcclxuICAgIC8vICAgICAgICAgbGV0IHZhbCA9IHZhbHVlW2ldO1xyXG4gICAgLy8gICAgICAgICBpZiAoIXRoaXMuY29udGFpbnMoYXJyLCB2YWwpKSB7XHJcbiAgICAvLyAgICAgICAgICAgICBhcnIucHVzaCh2YWwpO1xyXG4gICAgLy8gICAgICAgICB9XHJcbiAgICAvLyAgICAgfVxyXG4gICAgLy8gICAgIHJldHVybiBhcnI7XHJcbiAgICAvLyB9XHJcblxyXG4gICAgc3RhdGljIGRpc3RpbmN0KGFycmF5OiBhbnlbXSkge1xyXG4gICAgICAgIGNvbnN0IGxlbmd0aCA9IGFycmF5Lmxlbmd0aDtcclxuICAgICAgICBjb25zdCByZXN1bHQgPSBbXVxyXG4gICAgICAgIGNvbnN0IHNlZW4gPSBuZXcgU2V0KCk7XHJcblxyXG4gICAgICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBsZW5ndGg7IGluZGV4KyspIHtcclxuICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBhcnJheVtpbmRleF07XHJcbiAgICAgICAgICAgIGlmIChzZWVuLmhhcyh2YWx1ZSkpIGNvbnRpbnVlO1xyXG5cclxuICAgICAgICAgICAgc2Vlbi5hZGQodmFsdWUpO1xyXG4gICAgICAgICAgICByZXN1bHQucHVzaCh2YWx1ZSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gcmVzdWx0O1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBmaWx0ZXJCeUtleShmaWx0ZXJWYWx1ZTogYW55LCBrZXk6IHN0cmluZywgYXJyYXk6IGFueVtdKSB7XHJcbiAgICAgICAgaWYgKHR5cGVvZiBmaWx0ZXJWYWx1ZSA9PT0gJ3VuZGVmaW5lZCcgfHwgZmlsdGVyVmFsdWUgPT0gbnVsbCB8fCAodHlwZW9mIGtleSA9PT0gJ3N0cmluZycgJiYga2V5Lmxlbmd0aCA9PT0gMCkpXHJcbiAgICAgICAgICAgIHJldHVybiBhcnJheTtcclxuXHJcbiAgICAgICAgcmV0dXJuIGFycmF5LmZpbHRlcih4ID0+IHggIT09IHVuZGVmaW5lZCAmJiB4ICE9PSBudWxsICYmIHhba2V5XSA9PT0gZmlsdGVyVmFsdWUpO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBmbGF0dGVuQXJyYXkoYXJyYXk6IGFueVtdKTogYW55W10ge1xyXG4gICAgICAgIGxldCByZXN1bHQ6IGFueVtdID0gW107XHJcbiAgICAgICAgaWYgKGFycmF5KSB7XHJcbiAgICAgICAgICAgIGFycmF5LmZvckVhY2godHJlZSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0cmVlLmluZGVudCA9IDA7XHJcbiAgICAgICAgICAgICAgICByZXN1bHQucHVzaCh0cmVlKTtcclxuICAgICAgICAgICAgICAgIHJlc3VsdCA9IHJlc3VsdC5jb25jYXQodGhpcy5nZXRDaGlsZHJlbih0cmVlKSk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gcmVzdWx0O1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgc3RhdGljIGdldENoaWxkcmVuKHRyZWU6IFRyZWUsIGluZGVudDogbnVtYmVyID0gMSk6IGFueVtdIHtcclxuICAgICAgICBsZXQgcmVzdWx0OiBhbnlbXSA9IFtdO1xyXG4gICAgICAgIGlmICh0cmVlLmNoaWxkcmVuKSB7XHJcbiAgICAgICAgICAgIHRyZWUuY2hpbGRyZW5Db3VudCA9IHRyZWUuY2hpbGRyZW4ubGVuZ3RoO1xyXG4gICAgICAgICAgICB0cmVlLmNoaWxkcmVuLmZvckVhY2goY2hpbGQgPT4ge1xyXG4gICAgICAgICAgICAgICAgY2hpbGQuaW5kZW50ID0gaW5kZW50O1xyXG4gICAgICAgICAgICAgICAgcmVzdWx0LnB1c2goY2hpbGQpO1xyXG4gICAgICAgICAgICAgICAgcmVzdWx0ID0gcmVzdWx0LmNvbmNhdCh0aGlzLmdldENoaWxkcmVuKGNoaWxkLCBpbmRlbnQgKyAxKSk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRyZWUuY2hpbGRyZW5Db3VudCA9IDA7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBkZWxldGUgdHJlZS5jaGlsZHJlbjtcclxuICAgICAgICBkZWxldGUgdHJlZS5jaGlsZHJlbklkcztcclxuICAgICAgICAvL2RlbGV0ZSB0cmVlLmNoaWxkcmVuQ291bnQ7XHJcbiAgICAgICAgLy9kZWxldGUgdHJlZS5pbmRlbnQ7XHJcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAgIH1cclxuXHJcblxyXG5cclxuICAgIHN0YXRpYyB0cmVlVG9LZXlQYWlyQXJyYXkoYXJyYXk6IFRyZWVbXSkge1xyXG4gICAgICAgIGxldCByZXN1bHQ6IEtleVBhaXJbXSA9IFtdO1xyXG4gICAgICAgIGlmIChhcnJheSkge1xyXG4gICAgICAgICAgICBhcnJheS5mb3JFYWNoKHRyZWUgPT4ge1xyXG4gICAgICAgICAgICAgICAgcmVzdWx0LnB1c2goeyBrZXk6IHRyZWUua2V5LCB2YWx1ZTogdHJlZS52YWx1ZSB9KTtcclxuICAgICAgICAgICAgICAgIHJlc3VsdCA9IHJlc3VsdC5jb25jYXQodGhpcy5nZXRJbmRlbnRDaGlsZHJlbih0cmVlKSk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAgIH1cclxuXHJcblxyXG4gICAgcHJpdmF0ZSBzdGF0aWMgZ2V0SW5kZW50Q2hpbGRyZW4odHJlZTogVHJlZSwgaW5kZW50OiBudW1iZXIgPSAxKTogS2V5UGFpcltdIHtcclxuICAgICAgICBsZXQgcmVzdWx0OiBLZXlQYWlyW10gPSBbXTtcclxuICAgICAgICBpZiAodHJlZS5jaGlsZHJlbikge1xyXG4gICAgICAgICAgICB0cmVlLmNoaWxkcmVuLmZvckVhY2goY2hpbGQgPT4ge1xyXG4gICAgICAgICAgICAgICAgLy9yZXN1bHQucHVzaCh7IGtleTogY2hpbGQua2V5LCB2YWx1ZTogJ+KUlCcgKyAn4pSAJy5yZXBlYXQoaW5kZW50KSArIGNoaWxkLnZhbHVlIH0pO1xyXG4gICAgICAgICAgICAgICAgcmVzdWx0LnB1c2goeyBrZXk6IGNoaWxkLmtleSwgdmFsdWU6ICcmZW1zcDsnLnJlcGVhdChpbmRlbnQpICsgY2hpbGQudmFsdWUgfSk7XHJcbiAgICAgICAgICAgICAgICByZXN1bHQgPSByZXN1bHQuY29uY2F0KHRoaXMuZ2V0Q2hpbGRyZW4oY2hpbGQsIGluZGVudCArIDEpKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICB9XHJcblxyXG5cclxuXHJcbiAgICBwcml2YXRlIHN0YXRpYyBlbnVtVG9LZXlQYWlyQmFzZUFycmF5PFQgZXh0ZW5kcyBLZXlQYWlyPG51bWJlciwgc3RyaW5nPj4odmFsdWU6IGFueSk6IFRbXSB7XHJcbiAgICAgICAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKHZhbHVlKTtcclxuICAgICAgICBjb25zdCBzbGljZSA9IGtleXMubGVuZ3RoIC8gMjtcclxuICAgICAgICBjb25zdCByZXN1bHQ6IFRbXSA9IFtdO1xyXG4gICAgICAgIC8vIGZvciAobGV0IGkgPSAwOyBpIDwgc2xpY2U7IGkrKykge1xyXG4gICAgICAgIC8vICAgICByZXN1bHQucHVzaCh7IGtleTogK2tleXNbaV0sIHZhbHVlOiBrZXlzW2kgKyBzbGljZV0gfSBhcyBUKTtcclxuICAgICAgICAvLyB9XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IHNsaWNlOyBpIDwga2V5cy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBjb25zdCBuYW1lID0ga2V5c1tpXTtcclxuICAgICAgICAgICAgcmVzdWx0LnB1c2goeyBrZXk6ICsgdmFsdWVbbmFtZV0sIHZhbHVlOiBuYW1lIH0gYXMgVCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICAgICAgLy9yZXR1cm4gQXJyYXkuZnJvbShrZXlzLnNsaWNlKGtleXMubGVuZ3RoIC8gMiksIHggPT4geyBrZXk6eCwgdmFsdWU6J2FhYScgfSBhcyBPYmplY3QpO1xyXG4gICAgfVxyXG4gICAgc3RhdGljIGVudW1Ub0tleVBhaXJBcnJheSh2YWx1ZTogYW55KTogS2V5UGFpcjxudW1iZXIsIHN0cmluZz5bXSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZW51bVRvS2V5UGFpckJhc2VBcnJheTxLZXlQYWlyPG51bWJlciwgc3RyaW5nPj4odmFsdWUpO1xyXG4gICAgfVxyXG4gICAgc3RhdGljIGVudW1Ub0tleVBhaXJFeEFycmF5KHZhbHVlOiBhbnkpOiBLZXlQYWlyRXg8bnVtYmVyLCBzdHJpbmc+W10ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmVudW1Ub0tleVBhaXJCYXNlQXJyYXk8S2V5UGFpckV4PG51bWJlciwgc3RyaW5nPj4odmFsdWUpO1xyXG4gICAgfVxyXG59Il19
150
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJyYXktaGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvemVrL3NyYy9saWIvdXRpbHMvYXJyYXktaGVscGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHNEQUFzRDtBQUN0RCwrQ0FBK0M7QUFLL0MsTUFBTSxPQUFPLFdBQVc7SUFDcEIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFZLEVBQUUsS0FBYSxFQUFFLElBQVM7UUFDaEQsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFHRDs7OztPQUlHO0lBQ0gsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFZLEVBQUUsSUFBUztRQUNqQyxNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2xDLElBQUksS0FBSyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyx1Q0FBdUM7WUFDckQsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQywyQ0FBMkM7UUFDdkUsQ0FBQztJQUNMLENBQUM7SUFHRDs7OztPQUlHO0lBQ0gsTUFBTSxDQUFDLFNBQVMsQ0FBQyxLQUFZLEVBQUUsSUFBUztRQUNwQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDVixPQUFPLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDdEIsSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUM7Z0JBQ3BCLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ3ZCLENBQUM7aUJBQU0sQ0FBQztnQkFDSixFQUFFLENBQUMsQ0FBQztZQUNSLENBQUM7UUFDTCxDQUFDO0lBQ0wsQ0FBQztJQUdELE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBWSxF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QyxDQUFDO1lBQ3JCLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBRSxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBTyxDQUFDLENBQUM7UUFDMUQsQ0FBQztRQUNELE9BQU8sTUFBTSxDQUFDO1FBQ2Qsd0ZBQXdGO0lBQzVGLENBQUM7SUFDRCxNQUFNLENBQUMsa0JBQWtCLENBQUMsS0FBVTtRQUNoQyxPQUFPLElBQUksQ0FBQyxzQkFBc0IsQ0FBMEIsS0FBSyxDQUFDLENBQUM7SUFDdkUsQ0FBQztJQUNELE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxLQUFVO1FBQ2xDLE9BQU8sSUFBSSxDQUFDLHNCQUFzQixDQUE0QixLQUFLLENBQUMsQ0FBQztJQUN6RSxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBpbXBvcnQgeyBLZXlQYWlyIH0gZnJvbSBcIi4uL21vZGVscy9rZXktcGFpci5tb2RlbFwiO1xyXG4vLyBpbXBvcnQgeyBUcmVlIH0gZnJvbSBcIi4uL21vZGVscy90cmVlLm1vZGVsXCI7XHJcblxyXG5pbXBvcnQgeyBLZXlQYWlyLCBLZXlQYWlyRXgsIFRyZWUgfSBmcm9tIFwiLi4vbW9kZWxzXCI7XHJcblxyXG5cclxuZXhwb3J0IGNsYXNzIEFycmF5SGVscGVyIHtcclxuICAgIHN0YXRpYyBpbnNlcnQoYXJyYXk6IGFueVtdLCBpbmRleDogbnVtYmVyLCBpdGVtOiBhbnkpIHtcclxuICAgICAgICBhcnJheS5zcGxpY2UoaW5kZXgsIDAsIGl0ZW0pO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKipcclxuICAgICAqIFJlbW92ZSBpdGVtIGZyb20gYXJyYXlcclxuICAgICAqIEBwYXJhbSBhcnJheSBcclxuICAgICAqIEBwYXJhbSBpdGVtIGl0ZW0gdG8gcmVtb3ZlXHJcbiAgICAgKi9cclxuICAgIHN0YXRpYyByZW1vdmUoYXJyYXk6IGFueVtdLCBpdGVtOiBhbnkpIHtcclxuICAgICAgICBjb25zdCBpbmRleCA9IGFycmF5LmluZGV4T2YoaXRlbSk7XHJcbiAgICAgICAgaWYgKGluZGV4ID4gLTEpIHsgLy8gb25seSBzcGxpY2UgYXJyYXkgd2hlbiBpdGVtIGlzIGZvdW5kXHJcbiAgICAgICAgICAgIGFycmF5LnNwbGljZShpbmRleCwgMSk7IC8vIDJuZCBwYXJhbWV0ZXIgbWVhbnMgcmVtb3ZlIG9uZSBpdGVtIG9ubHlcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmVtb3ZlIGFsbCBpdGVtcyBmcm9tIGFycmF5XHJcbiAgICAgKiBAcGFyYW0gYXJyYXkgXHJcbiAgICAgKiBAcGFyYW0gaXRlbSBpdGVtIHRvIHJlbW92ZVxyXG4gICAgICovXHJcbiAgICBzdGF0aWMgcmVtb3ZlQWxsKGFycmF5OiBhbnlbXSwgaXRlbTogYW55KSB7XHJcbiAgICAgICAgdmFyIGkgPSAwO1xyXG4gICAgICAgIHdoaWxlIChpIDwgYXJyYXkubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgIGlmIChhcnJheVtpXSA9PT0gaXRlbSkge1xyXG4gICAgICAgICAgICAgICAgYXJyYXkuc3BsaWNlKGksIDEpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgKytpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuXHJcbiAgICBzdGF0aWMgbW92ZShhcnJheTogYW55W10sIGZyb21JbmRleDogbnVtYmVyLCB0b0luZGV4OiBudW1iZXIpIHtcclxuXHJcbiAgICAgICAgY29uc3QgaXRlbSA9IGFycmF5W2Zyb21JbmRleF07XHJcbiAgICAgICAgYXJyYXkuc3BsaWNlKGZyb21JbmRleCwgMSk7Ly9yZW1vdmUgaXRlbSBmcnJvbSBhcnJheVxyXG4gICAgICAgIGFycmF5LnNwbGljZSh0b0luZGV4LCAwLCBpdGVtKTsvL2luc2VydCBpdGVtIGludG8gYXJyYXlcclxuICAgICAgICByZXR1cm4gYXJyYXk7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIGNvbnRhaW5zKHZhbHVlOiBhbnlbXSwgdjogYW55KSB7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB2YWx1ZS5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBpZiAodmFsdWVbaV0gPT09IHYpIHJldHVybiB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIHN0YXRpYyBpc0FycmF5KHZhbHVlOiBhbnkpIHtcclxuICAgICAgICByZXR1cm4gQXJyYXkuaXNBcnJheSh2YWx1ZSkgJiYgdmFsdWUubGVuZ3RoID4gMDtcclxuICAgIH1cclxuICAgIC8vIHN0YXRpYyBkaXN0aW5jdCh2YWx1ZTogYW55W10pIHtcclxuICAgIC8vICAgICB2YXIgYXJyOiBhbnlbXSA9IFtdO1xyXG4gICAgLy8gICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdmFsdWUubGVuZ3RoOyBpKyspIHtcclxuICAgIC8vICAgICAgICAgbGV0IHZhbCA9IHZhbHVlW2ldO1xyXG4gICAgLy8gICAgICAgICBpZiAoIXRoaXMuY29udGFpbnMoYXJyLCB2YWwpKSB7XHJcbiAgICAvLyAgICAgICAgICAgICBhcnIucHVzaCh2YWwpO1xyXG4gICAgLy8gICAgICAgICB9XHJcbiAgICAvLyAgICAgfVxyXG4gICAgLy8gICAgIHJldHVybiBhcnI7XHJcbiAgICAvLyB9XHJcblxyXG4gICAgc3RhdGljIGRpc3RpbmN0KGFycmF5OiBhbnlbXSkge1xyXG4gICAgICAgIGNvbnN0IGxlbmd0aCA9IGFycmF5Lmxlbmd0aDtcclxuICAgICAgICBjb25zdCByZXN1bHQgPSBbXVxyXG4gICAgICAgIGNvbnN0IHNlZW4gPSBuZXcgU2V0KCk7XHJcblxyXG4gICAgICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBsZW5ndGg7IGluZGV4KyspIHtcclxuICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBhcnJheVtpbmRleF07XHJcbiAgICAgICAgICAgIGlmIChzZWVuLmhhcyh2YWx1ZSkpIGNvbnRpbnVlO1xyXG5cclxuICAgICAgICAgICAgc2Vlbi5hZGQodmFsdWUpO1xyXG4gICAgICAgICAgICByZXN1bHQucHVzaCh2YWx1ZSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gcmVzdWx0O1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBmaWx0ZXJCeUtleShmaWx0ZXJWYWx1ZTogYW55LCBrZXk6IHN0cmluZywgYXJyYXk6IGFueVtdKSB7XHJcbiAgICAgICAgaWYgKHR5cGVvZiBmaWx0ZXJWYWx1ZSA9PT0gJ3VuZGVmaW5lZCcgfHwgZmlsdGVyVmFsdWUgPT0gbnVsbCB8fCAodHlwZW9mIGtleSA9PT0gJ3N0cmluZycgJiYga2V5Lmxlbmd0aCA9PT0gMCkpXHJcbiAgICAgICAgICAgIHJldHVybiBhcnJheTtcclxuXHJcbiAgICAgICAgcmV0dXJuIGFycmF5LmZpbHRlcih4ID0+IHggIT09IHVuZGVmaW5lZCAmJiB4ICE9PSBudWxsICYmIHhba2V5XSA9PT0gZmlsdGVyVmFsdWUpO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBmbGF0dGVuQXJyYXkoYXJyYXk6IGFueVtdKTogYW55W10ge1xyXG4gICAgICAgIGxldCByZXN1bHQ6IGFueVtdID0gW107XHJcbiAgICAgICAgaWYgKGFycmF5KSB7XHJcbiAgICAgICAgICAgIGFycmF5LmZvckVhY2godHJlZSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0cmVlLmluZGVudCA9IDA7XHJcbiAgICAgICAgICAgICAgICByZXN1bHQucHVzaCh0cmVlKTtcclxuICAgICAgICAgICAgICAgIHJlc3VsdCA9IHJlc3VsdC5jb25jYXQodGhpcy5nZXRDaGlsZHJlbih0cmVlKSk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gcmVzdWx0O1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgc3RhdGljIGdldENoaWxkcmVuKHRyZWU6IFRyZWUsIGluZGVudDogbnVtYmVyID0gMSk6IGFueVtdIHtcclxuICAgICAgICBsZXQgcmVzdWx0OiBhbnlbXSA9IFtdO1xyXG4gICAgICAgIGlmICh0cmVlLmNoaWxkcmVuKSB7XHJcbiAgICAgICAgICAgIHRyZWUuY2hpbGRyZW5Db3VudCA9IHRyZWUuY2hpbGRyZW4ubGVuZ3RoO1xyXG4gICAgICAgICAgICB0cmVlLmNoaWxkcmVuLmZvckVhY2goY2hpbGQgPT4ge1xyXG4gICAgICAgICAgICAgICAgY2hpbGQuaW5kZW50ID0gaW5kZW50O1xyXG4gICAgICAgICAgICAgICAgcmVzdWx0LnB1c2goY2hpbGQpO1xyXG4gICAgICAgICAgICAgICAgcmVzdWx0ID0gcmVzdWx0LmNvbmNhdCh0aGlzLmdldENoaWxkcmVuKGNoaWxkLCBpbmRlbnQgKyAxKSk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRyZWUuY2hpbGRyZW5Db3VudCA9IDA7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBkZWxldGUgdHJlZS5jaGlsZHJlbjtcclxuICAgICAgICBkZWxldGUgdHJlZS5jaGlsZHJlbklkcztcclxuICAgICAgICAvL2RlbGV0ZSB0cmVlLmNoaWxkcmVuQ291bnQ7XHJcbiAgICAgICAgLy9kZWxldGUgdHJlZS5pbmRlbnQ7XHJcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAgIH1cclxuXHJcblxyXG5cclxuICAgIHN0YXRpYyB0cmVlVG9LZXlQYWlyQXJyYXkoYXJyYXk6IFRyZWVbXSkge1xyXG4gICAgICAgIGxldCByZXN1bHQ6IEtleVBhaXJbXSA9IFtdO1xyXG4gICAgICAgIGlmIChhcnJheSkge1xyXG4gICAgICAgICAgICBhcnJheS5mb3JFYWNoKHRyZWUgPT4ge1xyXG4gICAgICAgICAgICAgICAgcmVzdWx0LnB1c2goeyBrZXk6IHRyZWUua2V5LCB2YWx1ZTogdHJlZS52YWx1ZSB9KTtcclxuICAgICAgICAgICAgICAgIHJlc3VsdCA9IHJlc3VsdC5jb25jYXQodGhpcy5nZXRJbmRlbnRDaGlsZHJlbih0cmVlKSk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAgIH1cclxuXHJcblxyXG4gICAgcHJpdmF0ZSBzdGF0aWMgZ2V0SW5kZW50Q2hpbGRyZW4odHJlZTogVHJlZSwgaW5kZW50OiBudW1iZXIgPSAxKTogS2V5UGFpcltdIHtcclxuICAgICAgICBsZXQgcmVzdWx0OiBLZXlQYWlyW10gPSBbXTtcclxuICAgICAgICBpZiAodHJlZS5jaGlsZHJlbikge1xyXG4gICAgICAgICAgICB0cmVlLmNoaWxkcmVuLmZvckVhY2goY2hpbGQgPT4ge1xyXG4gICAgICAgICAgICAgICAgLy9yZXN1bHQucHVzaCh7IGtleTogY2hpbGQua2V5LCB2YWx1ZTogJ+KUlCcgKyAn4pSAJy5yZXBlYXQoaW5kZW50KSArIGNoaWxkLnZhbHVlIH0pO1xyXG4gICAgICAgICAgICAgICAgcmVzdWx0LnB1c2goeyBrZXk6IGNoaWxkLmtleSwgdmFsdWU6ICcmZW1zcDsnLnJlcGVhdChpbmRlbnQpICsgY2hpbGQudmFsdWUgfSk7XHJcbiAgICAgICAgICAgICAgICByZXN1bHQgPSByZXN1bHQuY29uY2F0KHRoaXMuZ2V0Q2hpbGRyZW4oY2hpbGQsIGluZGVudCArIDEpKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICB9XHJcblxyXG5cclxuXHJcbiAgICBwcml2YXRlIHN0YXRpYyBlbnVtVG9LZXlQYWlyQmFzZUFycmF5PFQgZXh0ZW5kcyBLZXlQYWlyPG51bWJlciwgc3RyaW5nPj4odmFsdWU6IGFueSk6IFRbXSB7XHJcbiAgICAgICAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKHZhbHVlKTtcclxuICAgICAgICBjb25zdCBzbGljZSA9IGtleXMubGVuZ3RoIC8gMjtcclxuICAgICAgICBjb25zdCByZXN1bHQ6IFRbXSA9IFtdO1xyXG4gICAgICAgIC8vIGZvciAobGV0IGkgPSAwOyBpIDwgc2xpY2U7IGkrKykge1xyXG4gICAgICAgIC8vICAgICByZXN1bHQucHVzaCh7IGtleTogK2tleXNbaV0sIHZhbHVlOiBrZXlzW2kgKyBzbGljZV0gfSBhcyBUKTtcclxuICAgICAgICAvLyB9XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IHNsaWNlOyBpIDwga2V5cy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBjb25zdCBuYW1lID0ga2V5c1tpXTtcclxuICAgICAgICAgICAgcmVzdWx0LnB1c2goeyBrZXk6ICsgdmFsdWVbbmFtZV0sIHZhbHVlOiBuYW1lIH0gYXMgVCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICAgICAgLy9yZXR1cm4gQXJyYXkuZnJvbShrZXlzLnNsaWNlKGtleXMubGVuZ3RoIC8gMiksIHggPT4geyBrZXk6eCwgdmFsdWU6J2FhYScgfSBhcyBPYmplY3QpO1xyXG4gICAgfVxyXG4gICAgc3RhdGljIGVudW1Ub0tleVBhaXJBcnJheSh2YWx1ZTogYW55KTogS2V5UGFpcjxudW1iZXIsIHN0cmluZz5bXSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZW51bVRvS2V5UGFpckJhc2VBcnJheTxLZXlQYWlyPG51bWJlciwgc3RyaW5nPj4odmFsdWUpO1xyXG4gICAgfVxyXG4gICAgc3RhdGljIGVudW1Ub0tleVBhaXJFeEFycmF5KHZhbHVlOiBhbnkpOiBLZXlQYWlyRXg8bnVtYmVyLCBzdHJpbmc+W10ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmVudW1Ub0tleVBhaXJCYXNlQXJyYXk8S2V5UGFpckV4PG51bWJlciwgc3RyaW5nPj4odmFsdWUpO1xyXG4gICAgfVxyXG59Il19
package/fesm2022/zek.mjs CHANGED
@@ -26,6 +26,33 @@ class ArrayHelper {
26
26
  static insert(array, index, item) {
27
27
  array.splice(index, 0, item);
28
28
  }
29
+ /**
30
+ * Remove item from array
31
+ * @param array
32
+ * @param item item to remove
33
+ */
34
+ static remove(array, item) {
35
+ const index = array.indexOf(item);
36
+ if (index > -1) { // only splice array when item is found
37
+ array.splice(index, 1); // 2nd parameter means remove one item only
38
+ }
39
+ }
40
+ /**
41
+ * Remove all items from array
42
+ * @param array
43
+ * @param item item to remove
44
+ */
45
+ static removeAll(array, item) {
46
+ var i = 0;
47
+ while (i < array.length) {
48
+ if (array[i] === item) {
49
+ array.splice(i, 1);
50
+ }
51
+ else {
52
+ ++i;
53
+ }
54
+ }
55
+ }
29
56
  static move(array, fromIndex, toIndex) {
30
57
  const item = array[fromIndex];
31
58
  array.splice(fromIndex, 1); //remove item frrom array