@firestitch/common 15.0.0 → 17.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (152) hide show
  1. package/app/directives/auto-focus.directive.d.ts +1 -1
  2. package/app/directives/auto-select.directive.d.ts +1 -1
  3. package/app/directives/model-change.directive.d.ts +1 -1
  4. package/esm2022/app/directives/auto-focus.directive.mjs +61 -0
  5. package/esm2022/app/directives/auto-select.directive.mjs +32 -0
  6. package/esm2022/app/directives/model-change.directive.mjs +39 -0
  7. package/{esm2020 → esm2022}/app/directives/prevent-default.directive.mjs +4 -4
  8. package/{esm2020 → esm2022}/app/directives/stop-propagation.directive.mjs +4 -4
  9. package/{esm2020 → esm2022}/app/fs-common.module.mjs +31 -31
  10. package/{esm2020 → esm2022}/app/pipes/bytes.pipe.mjs +4 -4
  11. package/esm2022/app/pipes/currency.pipe.mjs +24 -0
  12. package/{esm2020 → esm2022}/app/pipes/number.pipe.mjs +4 -4
  13. package/{esm2020 → esm2022}/app/pipes/ordinal-number.pipe.mjs +4 -4
  14. package/{esm2020 → esm2022}/app/pipes/truncate.pipe.mjs +5 -5
  15. package/{esm2020 → esm2022}/app/pipes/util.pipe.mjs +15 -15
  16. package/esm2022/app/services/array.service.mjs +225 -0
  17. package/{esm2020 → esm2022}/app/services/math.service.mjs +4 -4
  18. package/esm2022/app/services/util.service.mjs +249 -0
  19. package/esm2022/app/services/vaildate.service.mjs +29 -0
  20. package/{esm2020 → esm2022}/libs/array/compare/compare.mjs +1 -1
  21. package/esm2022/libs/array/filter/filter.mjs +27 -0
  22. package/esm2022/libs/array/inArray/inArray.mjs +12 -0
  23. package/esm2022/libs/array/indexOf/indexOf.mjs +16 -0
  24. package/{esm2020 → esm2022}/libs/array/list/list.mjs +1 -1
  25. package/esm2022/libs/array/nameValue/nameValue.mjs +21 -0
  26. package/{esm2020 → esm2022}/libs/array/remove/remove.mjs +1 -1
  27. package/esm2022/libs/array/sort/sort.mjs +27 -0
  28. package/esm2022/libs/format/acronym/acronym.mjs +22 -0
  29. package/esm2022/libs/format/bytes/bytes.mjs +18 -0
  30. package/{esm2020 → esm2022}/libs/format/number/number.mjs +1 -1
  31. package/esm2022/libs/format/truncate/truncate.mjs +12 -0
  32. package/esm2022/libs/rxjs/delayedRetry.mjs +20 -0
  33. package/esm2022/libs/util/clone/clone.mjs +21 -0
  34. package/esm2022/libs/util/guid/guid.mjs +19 -0
  35. package/esm2022/libs/util/is-array-equal/is-array-equal.mjs +22 -0
  36. package/esm2022/libs/util/is-class/is-class.mjs +18 -0
  37. package/esm2022/libs/util/length/length.mjs +10 -0
  38. package/esm2022/libs/util/queue/operation.mjs +17 -0
  39. package/esm2022/libs/util/queue/queue.mjs +166 -0
  40. package/esm2022/libs/util/source-loader/source-loader.mjs +155 -0
  41. package/esm2022/libs/util/throttle/throttle.mjs +13 -0
  42. package/{esm2020 → esm2022}/libs/util/to-string/to-string.mjs +1 -1
  43. package/esm2022/libs/util/value/value.mjs +9 -0
  44. package/{fesm2020 → fesm2022}/firestitch-common.mjs +136 -128
  45. package/fesm2022/firestitch-common.mjs.map +1 -0
  46. package/package.json +5 -11
  47. package/esm2020/app/directives/auto-focus.directive.mjs +0 -59
  48. package/esm2020/app/directives/auto-select.directive.mjs +0 -31
  49. package/esm2020/app/directives/model-change.directive.mjs +0 -37
  50. package/esm2020/app/pipes/currency.pipe.mjs +0 -23
  51. package/esm2020/app/services/array.service.mjs +0 -225
  52. package/esm2020/app/services/util.service.mjs +0 -251
  53. package/esm2020/app/services/vaildate.service.mjs +0 -28
  54. package/esm2020/libs/array/filter/filter.mjs +0 -27
  55. package/esm2020/libs/array/inArray/inArray.mjs +0 -12
  56. package/esm2020/libs/array/indexOf/indexOf.mjs +0 -16
  57. package/esm2020/libs/array/nameValue/nameValue.mjs +0 -21
  58. package/esm2020/libs/array/sort/sort.mjs +0 -27
  59. package/esm2020/libs/format/acronym/acronym.mjs +0 -22
  60. package/esm2020/libs/format/bytes/bytes.mjs +0 -18
  61. package/esm2020/libs/format/truncate/truncate.mjs +0 -12
  62. package/esm2020/libs/rxjs/delayedRetry.mjs +0 -20
  63. package/esm2020/libs/util/clone/clone.mjs +0 -21
  64. package/esm2020/libs/util/guid/guid.mjs +0 -19
  65. package/esm2020/libs/util/is-array-equal/is-array-equal.mjs +0 -22
  66. package/esm2020/libs/util/is-class/is-class.mjs +0 -18
  67. package/esm2020/libs/util/length/length.mjs +0 -10
  68. package/esm2020/libs/util/queue/operation.mjs +0 -15
  69. package/esm2020/libs/util/queue/queue.mjs +0 -165
  70. package/esm2020/libs/util/source-loader/source-loader.mjs +0 -155
  71. package/esm2020/libs/util/throttle/throttle.mjs +0 -13
  72. package/esm2020/libs/util/value/value.mjs +0 -9
  73. package/fesm2015/firestitch-common.mjs +0 -1754
  74. package/fesm2015/firestitch-common.mjs.map +0 -1
  75. package/fesm2020/firestitch-common.mjs.map +0 -1
  76. /package/{esm2020 → esm2022}/app/directives/index.mjs +0 -0
  77. /package/{esm2020 → esm2022}/app/pipes/index.mjs +0 -0
  78. /package/{esm2020 → esm2022}/firestitch-common.mjs +0 -0
  79. /package/{esm2020 → esm2022}/libs/array/compare/index.mjs +0 -0
  80. /package/{esm2020 → esm2022}/libs/array/filter/index.mjs +0 -0
  81. /package/{esm2020 → esm2022}/libs/array/find/find.mjs +0 -0
  82. /package/{esm2020 → esm2022}/libs/array/find/index.mjs +0 -0
  83. /package/{esm2020 → esm2022}/libs/array/inArray/index.mjs +0 -0
  84. /package/{esm2020 → esm2022}/libs/array/index/index.mjs +0 -0
  85. /package/{esm2020 → esm2022}/libs/array/index.mjs +0 -0
  86. /package/{esm2020 → esm2022}/libs/array/indexOf/index.mjs +0 -0
  87. /package/{esm2020 → esm2022}/libs/array/keyExists/index.mjs +0 -0
  88. /package/{esm2020 → esm2022}/libs/array/keyExists/keyExists.mjs +0 -0
  89. /package/{esm2020 → esm2022}/libs/array/ksort/index.mjs +0 -0
  90. /package/{esm2020 → esm2022}/libs/array/ksort/ksort.mjs +0 -0
  91. /package/{esm2020 → esm2022}/libs/array/list/index.mjs +0 -0
  92. /package/{esm2020 → esm2022}/libs/array/nameValue/index.mjs +0 -0
  93. /package/{esm2020 → esm2022}/libs/array/remove/index.mjs +0 -0
  94. /package/{esm2020 → esm2022}/libs/array/rsort/index.mjs +0 -0
  95. /package/{esm2020 → esm2022}/libs/array/rsort/rsort.mjs +0 -0
  96. /package/{esm2020 → esm2022}/libs/array/sort/index.mjs +0 -0
  97. /package/{esm2020 → esm2022}/libs/format/acronym/index.mjs +0 -0
  98. /package/{esm2020 → esm2022}/libs/format/bytes/index.mjs +0 -0
  99. /package/{esm2020 → esm2022}/libs/format/currency/currency.mjs +0 -0
  100. /package/{esm2020 → esm2022}/libs/format/currency/index.mjs +0 -0
  101. /package/{esm2020 → esm2022}/libs/format/index.mjs +0 -0
  102. /package/{esm2020 → esm2022}/libs/format/number/index.mjs +0 -0
  103. /package/{esm2020 → esm2022}/libs/format/truncate/index.mjs +0 -0
  104. /package/{esm2020 → esm2022}/libs/index.mjs +0 -0
  105. /package/{esm2020 → esm2022}/libs/rxjs/keyboard-shortcut.mjs +0 -0
  106. /package/{esm2020 → esm2022}/libs/util/boolean/boolean.mjs +0 -0
  107. /package/{esm2020 → esm2022}/libs/util/boolean/index.mjs +0 -0
  108. /package/{esm2020 → esm2022}/libs/util/clone/index.mjs +0 -0
  109. /package/{esm2020 → esm2022}/libs/util/debounce/debounce.mjs +0 -0
  110. /package/{esm2020 → esm2022}/libs/util/debounce/index.mjs +0 -0
  111. /package/{esm2020 → esm2022}/libs/util/get-normalized-path/get-normalized-path.mjs +0 -0
  112. /package/{esm2020 → esm2022}/libs/util/get-normalized-path/index.mjs +0 -0
  113. /package/{esm2020 → esm2022}/libs/util/guid/index.mjs +0 -0
  114. /package/{esm2020 → esm2022}/libs/util/index.mjs +0 -0
  115. /package/{esm2020 → esm2022}/libs/util/is-array-equal/index.mjs +0 -0
  116. /package/{esm2020 → esm2022}/libs/util/is-class/index.mjs +0 -0
  117. /package/{esm2020 → esm2022}/libs/util/is-empty/index.mjs +0 -0
  118. /package/{esm2020 → esm2022}/libs/util/is-empty/is-empty.mjs +0 -0
  119. /package/{esm2020 → esm2022}/libs/util/is-numeric/index.mjs +0 -0
  120. /package/{esm2020 → esm2022}/libs/util/is-numeric/is-numeric.mjs +0 -0
  121. /package/{esm2020 → esm2022}/libs/util/is-object/index.mjs +0 -0
  122. /package/{esm2020 → esm2022}/libs/util/is-object/is-object.mjs +0 -0
  123. /package/{esm2020 → esm2022}/libs/util/keys/index.mjs +0 -0
  124. /package/{esm2020 → esm2022}/libs/util/keys/keys.mjs +0 -0
  125. /package/{esm2020 → esm2022}/libs/util/length/index.mjs +0 -0
  126. /package/{esm2020 → esm2022}/libs/util/ordinal-number/index.mjs +0 -0
  127. /package/{esm2020 → esm2022}/libs/util/ordinal-number/ordinal-number.mjs +0 -0
  128. /package/{esm2020 → esm2022}/libs/util/queue/index.mjs +0 -0
  129. /package/{esm2020 → esm2022}/libs/util/queue/queue-stats.mjs +0 -0
  130. /package/{esm2020 → esm2022}/libs/util/queue/queue.enum.mjs +0 -0
  131. /package/{esm2020 → esm2022}/libs/util/remove-query-params/index.mjs +0 -0
  132. /package/{esm2020 → esm2022}/libs/util/remove-query-params/remove-query-params.mjs +0 -0
  133. /package/{esm2020 → esm2022}/libs/util/resolve/index.mjs +0 -0
  134. /package/{esm2020 → esm2022}/libs/util/resolve/resolve.mjs +0 -0
  135. /package/{esm2020 → esm2022}/libs/util/round/index.mjs +0 -0
  136. /package/{esm2020 → esm2022}/libs/util/round/round.mjs +0 -0
  137. /package/{esm2020 → esm2022}/libs/util/source-loader/index.mjs +0 -0
  138. /package/{esm2020 → esm2022}/libs/util/stringify/index.mjs +0 -0
  139. /package/{esm2020 → esm2022}/libs/util/stringify/stringify.mjs +0 -0
  140. /package/{esm2020 → esm2022}/libs/util/throttle/index.mjs +0 -0
  141. /package/{esm2020 → esm2022}/libs/util/to-string/index.mjs +0 -0
  142. /package/{esm2020 → esm2022}/libs/util/uuid/index.mjs +0 -0
  143. /package/{esm2020 → esm2022}/libs/util/uuid/uuid.mjs +0 -0
  144. /package/{esm2020 → esm2022}/libs/util/value/index.mjs +0 -0
  145. /package/{esm2020 → esm2022}/libs/validate/email/email.mjs +0 -0
  146. /package/{esm2020 → esm2022}/libs/validate/email/index.mjs +0 -0
  147. /package/{esm2020 → esm2022}/libs/validate/index.mjs +0 -0
  148. /package/{esm2020 → esm2022}/libs/validate/phone/index.mjs +0 -0
  149. /package/{esm2020 → esm2022}/libs/validate/phone/phone.mjs +0 -0
  150. /package/{esm2020 → esm2022}/libs/validate/url/index.mjs +0 -0
  151. /package/{esm2020 → esm2022}/libs/validate/url/url.mjs +0 -0
  152. /package/{esm2020 → esm2022}/public_api.mjs +0 -0
@@ -1,21 +0,0 @@
1
- export function nameValue(array, name, value) {
2
- const list = [];
3
- if (name || value) {
4
- const nameFn = typeof name === 'function' ? name : function (item) {
5
- return item[name];
6
- };
7
- const valueFn = typeof value === 'function' ? value : function (item) {
8
- return item[value];
9
- };
10
- array.forEach(function (item) {
11
- list.push({ name: nameFn(item), value: valueFn(item) });
12
- });
13
- }
14
- else {
15
- array.forEach(function (n, v) {
16
- list.push({ name: n, value: v });
17
- });
18
- }
19
- return list;
20
- }
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmFtZVZhbHVlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYnMvYXJyYXkvbmFtZVZhbHVlL25hbWVWYWx1ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLFVBQVUsU0FBUyxDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsS0FBSztJQUUxQyxNQUFNLElBQUksR0FBRyxFQUFFLENBQUM7SUFDaEIsSUFBSSxJQUFJLElBQUksS0FBSyxFQUFFO1FBRWpCLE1BQU0sTUFBTSxHQUFHLE9BQU8sSUFBSSxLQUFLLFVBQVUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxVQUFVLElBQUk7WUFDL0QsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDcEIsQ0FBQyxDQUFDO1FBQ0YsTUFBTSxPQUFPLEdBQUcsT0FBTyxLQUFLLEtBQUssVUFBVSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLFVBQVUsSUFBSTtZQUNsRSxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNyQixDQUFDLENBQUM7UUFFRixLQUFLLENBQUMsT0FBTyxDQUFDLFVBQVUsSUFBSTtZQUMxQixJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLEVBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFDLENBQUMsQ0FBQztRQUN4RCxDQUFDLENBQUMsQ0FBQztLQUVKO1NBQU07UUFDTCxLQUFLLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUM7WUFDMUIsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBQyxDQUFDLENBQUM7UUFDakMsQ0FBQyxDQUFDLENBQUM7S0FDSjtJQUVELE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBmdW5jdGlvbiBuYW1lVmFsdWUoYXJyYXksIG5hbWUsIHZhbHVlKSB7XG5cbiAgY29uc3QgbGlzdCA9IFtdO1xuICBpZiAobmFtZSB8fCB2YWx1ZSkge1xuXG4gICAgY29uc3QgbmFtZUZuID0gdHlwZW9mIG5hbWUgPT09ICdmdW5jdGlvbicgPyBuYW1lIDogZnVuY3Rpb24gKGl0ZW0pIHtcbiAgICAgIHJldHVybiBpdGVtW25hbWVdO1xuICAgIH07XG4gICAgY29uc3QgdmFsdWVGbiA9IHR5cGVvZiB2YWx1ZSA9PT0gJ2Z1bmN0aW9uJyA/IHZhbHVlIDogZnVuY3Rpb24gKGl0ZW0pIHtcbiAgICAgIHJldHVybiBpdGVtW3ZhbHVlXTtcbiAgICB9O1xuXG4gICAgYXJyYXkuZm9yRWFjaChmdW5jdGlvbiAoaXRlbSkge1xuICAgICAgbGlzdC5wdXNoKHtuYW1lOiBuYW1lRm4oaXRlbSksIHZhbHVlOiB2YWx1ZUZuKGl0ZW0pfSk7XG4gICAgfSk7XG5cbiAgfSBlbHNlIHtcbiAgICBhcnJheS5mb3JFYWNoKGZ1bmN0aW9uIChuLCB2KSB7XG4gICAgICBsaXN0LnB1c2goe25hbWU6IG4sIHZhbHVlOiB2fSk7XG4gICAgfSk7XG4gIH1cblxuICByZXR1cm4gbGlzdDtcbn1cbiJdfQ==
@@ -1,27 +0,0 @@
1
- export function sort(array, query, reverse = false) {
2
- if (typeof query !== 'function') {
3
- const queryStr = query;
4
- query = function (a, b) {
5
- if (reverse) {
6
- if (a[queryStr] < b[queryStr]) {
7
- return 1;
8
- }
9
- else if (a[queryStr] > b[queryStr]) {
10
- return -1;
11
- }
12
- }
13
- else {
14
- if (a[queryStr] > b[queryStr]) {
15
- return 1;
16
- }
17
- else if (a[queryStr] < b[queryStr]) {
18
- return -1;
19
- }
20
- }
21
- return 0;
22
- };
23
- }
24
- array.sort(query);
25
- return array;
26
- }
27
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29ydC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWJzL2FycmF5L3NvcnQvc29ydC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLFVBQVUsSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsT0FBTyxHQUFHLEtBQUs7SUFDaEQsSUFBSSxPQUFPLEtBQUssS0FBSyxVQUFVLEVBQUU7UUFDL0IsTUFBTSxRQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ3ZCLEtBQUssR0FBRyxVQUFVLENBQUMsRUFBRSxDQUFDO1lBQ3BCLElBQUksT0FBTyxFQUFFO2dCQUNYLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRTtvQkFDN0IsT0FBTyxDQUFDLENBQUM7aUJBQ1Y7cUJBQU0sSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFFO29CQUNwQyxPQUFPLENBQUMsQ0FBQyxDQUFDO2lCQUNYO2FBQ0Y7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFFO29CQUM3QixPQUFPLENBQUMsQ0FBQztpQkFDVjtxQkFBTSxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUU7b0JBQ3BDLE9BQU8sQ0FBQyxDQUFDLENBQUM7aUJBQ1g7YUFDRjtZQUNELE9BQU8sQ0FBQyxDQUFDO1FBQ1gsQ0FBQyxDQUFDO0tBQ0g7SUFFRCxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2xCLE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBmdW5jdGlvbiBzb3J0KGFycmF5LCBxdWVyeSwgcmV2ZXJzZSA9IGZhbHNlKSB7XG4gIGlmICh0eXBlb2YgcXVlcnkgIT09ICdmdW5jdGlvbicpIHtcbiAgICBjb25zdCBxdWVyeVN0ciA9IHF1ZXJ5O1xuICAgIHF1ZXJ5ID0gZnVuY3Rpb24gKGEsIGIpIHtcbiAgICAgIGlmIChyZXZlcnNlKSB7XG4gICAgICAgIGlmIChhW3F1ZXJ5U3RyXSA8IGJbcXVlcnlTdHJdKSB7XG4gICAgICAgICAgcmV0dXJuIDE7XG4gICAgICAgIH0gZWxzZSBpZiAoYVtxdWVyeVN0cl0gPiBiW3F1ZXJ5U3RyXSkge1xuICAgICAgICAgIHJldHVybiAtMTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKGFbcXVlcnlTdHJdID4gYltxdWVyeVN0cl0pIHtcbiAgICAgICAgICByZXR1cm4gMTtcbiAgICAgICAgfSBlbHNlIGlmIChhW3F1ZXJ5U3RyXSA8IGJbcXVlcnlTdHJdKSB7XG4gICAgICAgICAgcmV0dXJuIC0xO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gMDtcbiAgICB9O1xuICB9XG5cbiAgYXJyYXkuc29ydChxdWVyeSk7XG4gIHJldHVybiBhcnJheTtcbn1cbiJdfQ==
@@ -1,22 +0,0 @@
1
- export function acronym(str, length = 2) {
2
- const splittedString = str
3
- .replace(/[^a-zA-Z0-9]+/g, ' ')
4
- .split(' ');
5
- let result = '';
6
- for (let i = 0; i < length; i++) {
7
- if (!splittedString[i]) {
8
- if (splittedString.length === 1) {
9
- for (let j = 1; j < length; j++) {
10
- if (!splittedString[i - 1][j]) {
11
- break;
12
- }
13
- result += splittedString[i - 1][j].toUpperCase();
14
- }
15
- }
16
- break;
17
- }
18
- result += splittedString[i][0].toUpperCase();
19
- }
20
- return result;
21
- }
22
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNyb255bS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWJzL2Zvcm1hdC9hY3JvbnltL2Fjcm9ueW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxVQUFVLE9BQU8sQ0FBQyxHQUFXLEVBQUUsTUFBTSxHQUFHLENBQUM7SUFDN0MsTUFBTSxjQUFjLEdBQUcsR0FBRztTQUN2QixPQUFPLENBQUMsZ0JBQWdCLEVBQUUsR0FBRyxDQUFDO1NBQzlCLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUVkLElBQUksTUFBTSxHQUFHLEVBQUUsQ0FBQztJQUVoQixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO1FBQy9CLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDdEIsSUFBSSxjQUFjLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtnQkFFL0IsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtvQkFDL0IsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUU7d0JBQzNCLE1BQU07cUJBQ1A7b0JBQ0QsTUFBTSxJQUFJLGNBQWMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7aUJBQ2hEO2FBQ0Y7WUFDRCxNQUFNO1NBQ1A7UUFDRCxNQUFNLElBQUksY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO0tBQzlDO0lBRUQsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBmdW5jdGlvbiBhY3JvbnltKHN0cjogc3RyaW5nLCBsZW5ndGggPSAyKTogc3RyaW5nIHtcbiAgY29uc3Qgc3BsaXR0ZWRTdHJpbmcgPSBzdHJcbiAgICAucmVwbGFjZSgvW15hLXpBLVowLTldKy9nLCAnICcpXG4gICAgLnNwbGl0KCcgJyk7XG5cbiAgbGV0IHJlc3VsdCA9ICcnO1xuXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgbGVuZ3RoOyBpKyspIHtcbiAgICBpZiAoIXNwbGl0dGVkU3RyaW5nW2ldKSB7XG4gICAgICBpZiAoc3BsaXR0ZWRTdHJpbmcubGVuZ3RoID09PSAxKSB7XG5cbiAgICAgICAgZm9yIChsZXQgaiA9IDE7IGogPCBsZW5ndGg7IGorKykge1xuICAgICAgICAgIGlmICghc3BsaXR0ZWRTdHJpbmdbaS0xXVtqXSkge1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJlc3VsdCArPSBzcGxpdHRlZFN0cmluZ1tpLTFdW2pdLnRvVXBwZXJDYXNlKCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgICByZXN1bHQgKz0gc3BsaXR0ZWRTdHJpbmdbaV1bMF0udG9VcHBlckNhc2UoKTtcbiAgfVxuXG4gIHJldHVybiByZXN1bHQ7XG59XG4iXX0=
@@ -1,18 +0,0 @@
1
- import { isNumeric } from '../../../libs';
2
- export function bytes(bytes, decimals, unit) {
3
- if (!bytes) {
4
- return '0 MB';
5
- }
6
- const e = typeof unit === 'string' ?
7
- 'KMGTP'.indexOf(unit.replace('B', '')) + 1 :
8
- Math.floor(Math.log(bytes) / Math.log(1024));
9
- if (!isNumeric(decimals)) {
10
- decimals = (bytes / 1024) > 1000 ? 2 : 0;
11
- }
12
- return `${(bytes / Math.pow(1024, e))
13
- .toFixed(decimals)}`
14
- .replace(/\.00/, '')
15
- + ' '
16
- + (e ? ' KMGTP'.charAt(e) : '') + 'B';
17
- }
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnl0ZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGlicy9mb3JtYXQvYnl0ZXMvYnl0ZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUxQyxNQUFNLFVBQVUsS0FBSyxDQUFDLEtBQWEsRUFBRSxRQUFpQixFQUFFLElBQXVDO0lBQzdGLElBQUksQ0FBQyxLQUFLLEVBQUU7UUFDVixPQUFPLE1BQU0sQ0FBQztLQUNmO0lBQ0QsTUFBTSxDQUFDLEdBQUcsT0FBTyxJQUFJLEtBQUssUUFBUSxDQUFDLENBQUM7UUFDbEMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQzVDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFFL0MsSUFBRyxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsRUFBRTtRQUN2QixRQUFRLEdBQUcsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztLQUMxQztJQUVELE9BQU8sR0FBRyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztTQUNsQyxPQUFPLENBQUMsUUFBUSxDQUFDLEVBQUU7U0FDbkIsT0FBTyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUM7VUFDbEIsR0FBRztVQUNILENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxHQUFHLENBQUM7QUFDMUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzTnVtZXJpYyB9IGZyb20gJy4uLy4uLy4uL2xpYnMnO1xuXG5leHBvcnQgZnVuY3Rpb24gYnl0ZXMoYnl0ZXM6IG51bWJlciwgZGVjaW1hbHM/OiBudW1iZXIsIHVuaXQ/OiAnS0InIHwgJ01CJyB8ICdHQicgfCAnVEInIHwgJ1BCJykge1xuICBpZiAoIWJ5dGVzKSB7IFxuICAgIHJldHVybiAnMCBNQic7IFxuICB9XG4gIGNvbnN0IGUgPSB0eXBlb2YgdW5pdCA9PT0gJ3N0cmluZycgP1xuICAgICdLTUdUUCcuaW5kZXhPZih1bml0LnJlcGxhY2UoJ0InLCAnJykpICsgMSA6XG4gICAgTWF0aC5mbG9vcihNYXRoLmxvZyhieXRlcykgLyBNYXRoLmxvZygxMDI0KSk7XG5cbiAgaWYoIWlzTnVtZXJpYyhkZWNpbWFscykpIHtcbiAgICBkZWNpbWFscyA9IChieXRlcyAvIDEwMjQpID4gMTAwMCA/IDIgOiAwO1xuICB9XG5cbiAgcmV0dXJuIGAkeyhieXRlcyAvIE1hdGgucG93KDEwMjQsIGUpKVxuICAgIC50b0ZpeGVkKGRlY2ltYWxzKX1gXG4gICAgLnJlcGxhY2UoL1xcLjAwLywgJycpXG4gICAgKyAnICdcbiAgICArIChlID8gJyBLTUdUUCcuY2hhckF0KGUpIDogJycpICsgJ0InO1xufVxuIl19
@@ -1,12 +0,0 @@
1
- export function truncate(value, limit = 100, completeWords = false, ellipsis = '...') {
2
- value = value || '';
3
- if (completeWords) {
4
- limit = value.substr(0, limit).lastIndexOf(' ');
5
- }
6
- let result = `${value.substr(0, limit)}`;
7
- if (result !== value) {
8
- result += ellipsis;
9
- }
10
- return result;
11
- }
12
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJ1bmNhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGlicy9mb3JtYXQvdHJ1bmNhdGUvdHJ1bmNhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxVQUFVLFFBQVEsQ0FBQyxLQUFhLEVBQUUsS0FBSyxHQUFHLEdBQUcsRUFBRSxhQUFhLEdBQUcsS0FBSyxFQUFFLFFBQVEsR0FBRyxLQUFLO0lBRTFGLEtBQUssR0FBRyxLQUFLLElBQUksRUFBRSxDQUFDO0lBRXBCLElBQUksYUFBYSxFQUFFO1FBQ2pCLEtBQUssR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUM7S0FDakQ7SUFFRCxJQUFJLE1BQU0sR0FBRyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxFQUFFLENBQUM7SUFFekMsSUFBSSxNQUFNLEtBQUssS0FBSyxFQUFFO1FBQ3BCLE1BQU0sSUFBSSxRQUFRLENBQUM7S0FDcEI7SUFFRCxPQUFPLE1BQU0sQ0FBQztBQUVoQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGZ1bmN0aW9uIHRydW5jYXRlKHZhbHVlOiBzdHJpbmcsIGxpbWl0ID0gMTAwLCBjb21wbGV0ZVdvcmRzID0gZmFsc2UsIGVsbGlwc2lzID0gJy4uLicpIHtcblxuICB2YWx1ZSA9IHZhbHVlIHx8ICcnO1xuXG4gIGlmIChjb21wbGV0ZVdvcmRzKSB7XG4gICAgbGltaXQgPSB2YWx1ZS5zdWJzdHIoMCwgbGltaXQpLmxhc3RJbmRleE9mKCcgJyk7XG4gIH1cblxuICBsZXQgcmVzdWx0ID0gYCR7dmFsdWUuc3Vic3RyKDAsIGxpbWl0KX1gO1xuXG4gIGlmIChyZXN1bHQgIT09IHZhbHVlKSB7XG4gICAgcmVzdWx0ICs9IGVsbGlwc2lzO1xuICB9XG5cbiAgcmV0dXJuIHJlc3VsdDtcblxufVxuIl19
@@ -1,20 +0,0 @@
1
- import { iif, throwError, timer } from 'rxjs';
2
- import { concatMap, retryWhen, tap } from 'rxjs/operators';
3
- export function delayedRetry(delayMs, maxRetry = 5, message) {
4
- let retries = 0;
5
- return (src) => src.pipe(retryWhen((errors) => errors.pipe(tap(() => {
6
- retries++;
7
- if (retries <= maxRetry) {
8
- console.info(`Failed to load Resource. Retry in ${delayMs / 1000} sec. ${retries}/${maxRetry} times...`);
9
- }
10
- }), concatMap((error) => iif(() => retries > maxRetry, throwError(getErrorMessage(maxRetry, message)), timer(delayMs))))));
11
- }
12
- const getErrorMessage = (maxRetry, defaultMessage) => {
13
- if (!defaultMessage) {
14
- return `Failed to load Resource for ${maxRetry} times. Giving up.`;
15
- }
16
- else {
17
- return defaultMessage;
18
- }
19
- };
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVsYXllZFJldHJ5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYnMvcnhqcy9kZWxheWVkUmV0cnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEdBQUcsRUFBYyxVQUFVLEVBQUUsS0FBSyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzFELE9BQU8sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRzNELE1BQU0sVUFBVSxZQUFZLENBQUMsT0FBZSxFQUFFLFFBQVEsR0FBRyxDQUFDLEVBQUUsT0FBZ0I7SUFDMUUsSUFBSSxPQUFPLEdBQUcsQ0FBQyxDQUFDO0lBRWhCLE9BQU8sQ0FBQyxHQUF3QixFQUFFLEVBQUUsQ0FDbEMsR0FBRyxDQUFDLElBQUksQ0FDTixTQUFTLENBQUMsQ0FBQyxNQUEyQixFQUFFLEVBQUUsQ0FDeEMsTUFBTSxDQUFDLElBQUksQ0FDVCxHQUFHLENBQUMsR0FBRyxFQUFFO1FBQ1AsT0FBTyxFQUFFLENBQUM7UUFFVixJQUFJLE9BQU8sSUFBSSxRQUFRLEVBQUU7WUFDdkIsT0FBTyxDQUFDLElBQUksQ0FBQyxxQ0FBcUMsT0FBTyxHQUFHLElBQUksU0FBUyxPQUFPLElBQUksUUFBUSxXQUFXLENBQUMsQ0FBQTtTQUN6RztJQUNILENBQUMsQ0FBQyxFQUNGLFNBQVMsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQ2xCLEdBQUcsQ0FDRCxHQUFHLEVBQUUsQ0FBQyxPQUFPLEdBQUcsUUFBUSxFQUN4QixVQUFVLENBQUMsZUFBZSxDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQyxFQUM5QyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQ2YsQ0FDRixDQUNGLENBQ0YsQ0FDRixDQUFBO0FBQ0wsQ0FBQztBQUlELE1BQU0sZUFBZSxHQUFHLENBQUMsUUFBZ0IsRUFBRSxjQUFzQixFQUFFLEVBQUU7SUFDbkUsSUFBSSxDQUFDLGNBQWMsRUFBRTtRQUNuQixPQUFPLCtCQUErQixRQUFRLG9CQUFvQixDQUFDO0tBQ3BFO1NBQU07UUFDTCxPQUFPLGNBQWMsQ0FBQTtLQUN0QjtBQUNILENBQUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlpZiwgT2JzZXJ2YWJsZSwgdGhyb3dFcnJvciwgdGltZXIgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGNvbmNhdE1hcCwgcmV0cnlXaGVuLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cblxuZXhwb3J0IGZ1bmN0aW9uIGRlbGF5ZWRSZXRyeShkZWxheU1zOiBudW1iZXIsIG1heFJldHJ5ID0gNSwgbWVzc2FnZT86IHN0cmluZykge1xuICBsZXQgcmV0cmllcyA9IDA7XG5cbiAgcmV0dXJuIChzcmM6IE9ic2VydmFibGU8dW5rbm93bj4pID0+XG4gICAgc3JjLnBpcGUoXG4gICAgICByZXRyeVdoZW4oKGVycm9yczogT2JzZXJ2YWJsZTx1bmtub3duPikgPT5cbiAgICAgICAgZXJyb3JzLnBpcGUoXG4gICAgICAgICAgdGFwKCgpID0+IHtcbiAgICAgICAgICAgIHJldHJpZXMrKztcblxuICAgICAgICAgICAgaWYgKHJldHJpZXMgPD0gbWF4UmV0cnkpIHtcbiAgICAgICAgICAgICAgY29uc29sZS5pbmZvKGBGYWlsZWQgdG8gbG9hZCBSZXNvdXJjZS4gUmV0cnkgaW4gJHtkZWxheU1zIC8gMTAwMH0gc2VjLiAke3JldHJpZXN9LyR7bWF4UmV0cnl9IHRpbWVzLi4uYClcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KSxcbiAgICAgICAgICBjb25jYXRNYXAoKGVycm9yKSA9PlxuICAgICAgICAgICAgaWlmKFxuICAgICAgICAgICAgICAoKSA9PiByZXRyaWVzID4gbWF4UmV0cnksXG4gICAgICAgICAgICAgIHRocm93RXJyb3IoZ2V0RXJyb3JNZXNzYWdlKG1heFJldHJ5LCBtZXNzYWdlKSksXG4gICAgICAgICAgICAgIHRpbWVyKGRlbGF5TXMpLFxuICAgICAgICAgICAgKSxcbiAgICAgICAgICApLFxuICAgICAgICApXG4gICAgICApXG4gICAgKVxufVxuXG5cblxuY29uc3QgZ2V0RXJyb3JNZXNzYWdlID0gKG1heFJldHJ5OiBudW1iZXIsIGRlZmF1bHRNZXNzYWdlOiBzdHJpbmcpID0+IHtcbiAgaWYgKCFkZWZhdWx0TWVzc2FnZSkge1xuICAgIHJldHVybiBgRmFpbGVkIHRvIGxvYWQgUmVzb3VyY2UgZm9yICR7bWF4UmV0cnl9IHRpbWVzLiBHaXZpbmcgdXAuYDtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gZGVmYXVsdE1lc3NhZ2VcbiAgfVxufVxuIl19
@@ -1,21 +0,0 @@
1
- export function clone(obj) {
2
- if (obj instanceof Date) {
3
- return new Date(obj);
4
- }
5
- else if (Array.isArray(obj)) {
6
- const arr = [];
7
- for (let i = 0; i < obj.length; i++) {
8
- arr[i] = clone(obj[i]);
9
- }
10
- return arr;
11
- }
12
- else if (typeof (obj) === 'object') {
13
- const cloned = {};
14
- for (let key in obj) {
15
- cloned[key] = clone(obj[key]);
16
- }
17
- return cloned;
18
- }
19
- return obj;
20
- }
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xvbmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGlicy91dGlsL2Nsb25lL2Nsb25lLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sVUFBVSxLQUFLLENBQUMsR0FBRztJQUN2QixJQUFHLEdBQUcsWUFBWSxJQUFJLEVBQUU7UUFDdEIsT0FBTyxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztLQUN0QjtTQUFNLElBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRTtRQUM5QixNQUFNLEdBQUcsR0FBRyxFQUFFLENBQUM7UUFDZixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsR0FBRyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUNwQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ3ZCO1FBRUQsT0FBTyxHQUFHLENBQUM7S0FDWDtTQUFNLElBQUcsT0FBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLFFBQVEsRUFBRTtRQUNuQyxNQUFNLE1BQU0sR0FBRyxFQUFFLENBQUM7UUFDbEIsS0FBSSxJQUFJLEdBQUcsSUFBSSxHQUFHLEVBQUU7WUFDbkIsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztTQUM5QjtRQUVELE9BQU8sTUFBTSxDQUFDO0tBQ2Q7SUFFRCxPQUFPLEdBQUcsQ0FBQztBQUNaLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZnVuY3Rpb24gY2xvbmUob2JqKSB7XG4gIGlmKG9iaiBpbnN0YW5jZW9mIERhdGUpIHtcbiAgICByZXR1cm4gbmV3IERhdGUob2JqKTtcbiAgfSBlbHNlIGlmKEFycmF5LmlzQXJyYXkob2JqKSkge1xuXHRcdGNvbnN0IGFyciA9IFtdO1xuXHRcdGZvciAobGV0IGkgPSAwOyBpIDwgb2JqLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRhcnJbaV0gPSBjbG9uZShvYmpbaV0pO1xuXHRcdH1cblxuXHRcdHJldHVybiBhcnI7XG5cdH0gZWxzZSBpZih0eXBlb2Yob2JqKSA9PT0gJ29iamVjdCcpIHtcblx0XHRjb25zdCBjbG9uZWQgPSB7fTtcblx0XHRmb3IobGV0IGtleSBpbiBvYmopIHtcblx0XHRcdGNsb25lZFtrZXldID0gY2xvbmUob2JqW2tleV0pO1xuXHRcdH1cblxuXHRcdHJldHVybiBjbG9uZWQ7XHRcblx0fVxuXG5cdHJldHVybiBvYmo7XG59XG4iXX0=
@@ -1,19 +0,0 @@
1
- export function guid(pattern, options = { case: 'lower', numbers: true }) {
2
- pattern = pattern || 'xxxxxx';
3
- let s = '';
4
- if (options.numbers !== false) {
5
- s = '0123456789';
6
- }
7
- if (!options.case || options.case === 'lower' || options.case === 'mixed') {
8
- s = s.concat('abcdefghijklmnopqrstuvwxyz');
9
- }
10
- if (options.case === 'upper' || options.case === 'mixed') {
11
- s = s.concat('ABCDEFGHIJKLMNOPQRSTUVWXYZ');
12
- }
13
- const chars = s.match(/(.{1,1})/g);
14
- return pattern.replace(/[x]/g, function (c) {
15
- const i = (Math.random() * chars.length) | 0;
16
- return chars[i];
17
- });
18
- }
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3VpZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWJzL3V0aWwvZ3VpZC9ndWlkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sVUFBVSxJQUFJLENBQUMsT0FBZ0IsRUFBRSxVQUFlLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFO0lBQ3BGLE9BQU8sR0FBRyxPQUFPLElBQUksUUFBUSxDQUFDO0lBQzlCLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztJQUVYLElBQUksT0FBTyxDQUFDLE9BQU8sS0FBSyxLQUFLLEVBQUU7UUFDN0IsQ0FBQyxHQUFHLFlBQVksQ0FBQztLQUNsQjtJQUVELElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxJQUFJLE9BQU8sQ0FBQyxJQUFJLEtBQUssT0FBTyxJQUFJLE9BQU8sQ0FBQyxJQUFJLEtBQUssT0FBTyxFQUFFO1FBQ3pFLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLDRCQUE0QixDQUFDLENBQUM7S0FDNUM7SUFFRCxJQUFJLE9BQU8sQ0FBQyxJQUFJLEtBQUssT0FBTyxJQUFJLE9BQU8sQ0FBQyxJQUFJLEtBQUssT0FBTyxFQUFFO1FBQ3hELENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLDRCQUE0QixDQUFDLENBQUM7S0FDNUM7SUFFRCxNQUFNLEtBQUssR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBRW5DLE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsVUFBVSxDQUFDO1FBQ3hDLE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFN0MsT0FBTyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDbEIsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGZ1bmN0aW9uIGd1aWQocGF0dGVybj86IHN0cmluZywgb3B0aW9uczogYW55ID0geyBjYXNlOiAnbG93ZXInLCBudW1iZXJzOiB0cnVlIH0pOiBzdHJpbmcge1xuICBwYXR0ZXJuID0gcGF0dGVybiB8fCAneHh4eHh4JztcbiAgbGV0IHMgPSAnJztcblxuICBpZiAob3B0aW9ucy5udW1iZXJzICE9PSBmYWxzZSkge1xuICAgIHMgPSAnMDEyMzQ1Njc4OSc7XG4gIH1cblxuICBpZiAoIW9wdGlvbnMuY2FzZSB8fCBvcHRpb25zLmNhc2UgPT09ICdsb3dlcicgfHwgb3B0aW9ucy5jYXNlID09PSAnbWl4ZWQnKSB7XG4gICAgcyA9IHMuY29uY2F0KCdhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eicpO1xuICB9XG5cbiAgaWYgKG9wdGlvbnMuY2FzZSA9PT0gJ3VwcGVyJyB8fCBvcHRpb25zLmNhc2UgPT09ICdtaXhlZCcpIHtcbiAgICBzID0gcy5jb25jYXQoJ0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaJyk7XG4gIH1cblxuICBjb25zdCBjaGFycyA9IHMubWF0Y2goLyguezEsMX0pL2cpO1xuXG4gIHJldHVybiBwYXR0ZXJuLnJlcGxhY2UoL1t4XS9nLCBmdW5jdGlvbiAoYykge1xuICAgIGNvbnN0IGkgPSAoTWF0aC5yYW5kb20oKSAqIGNoYXJzLmxlbmd0aCkgfCAwO1xuXG4gICAgcmV0dXJuIGNoYXJzW2ldO1xuICB9KTtcbn1cbiJdfQ==
@@ -1,22 +0,0 @@
1
- export function isArrayEqual(arr1, arr2) {
2
- if (!Array.isArray(arr1) || !Array.isArray(arr2) || arr1.length !== arr2.length) {
3
- return false;
4
- }
5
- const sortFn = (a, b) => {
6
- if (a < b) {
7
- return -1;
8
- }
9
- else if (a > b) {
10
- return 1;
11
- }
12
- else {
13
- return 0;
14
- }
15
- };
16
- arr1 = [...arr1].sort(sortFn);
17
- arr2 = [...arr2].sort(sortFn);
18
- return arr1.every((value, index) => {
19
- return value === arr2[index];
20
- });
21
- }
22
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXMtYXJyYXktZXF1YWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGlicy91dGlsL2lzLWFycmF5LWVxdWFsL2lzLWFycmF5LWVxdWFsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sVUFBVSxZQUFZLENBQUMsSUFBSSxFQUFFLElBQUk7SUFDckMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssSUFBSSxDQUFDLE1BQU0sRUFBRTtRQUMvRSxPQUFPLEtBQUssQ0FBQztLQUNkO0lBRUQsTUFBTSxNQUFNLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7UUFDdEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ1QsT0FBTyxDQUFDLENBQUMsQ0FBQztTQUNYO2FBQU0sSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ2hCLE9BQU8sQ0FBQyxDQUFDO1NBQ1Y7YUFBTTtZQUNMLE9BQU8sQ0FBQyxDQUFDO1NBQ1Y7SUFDSCxDQUFDLENBQUE7SUFFRCxJQUFJLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM5QixJQUFJLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUU5QixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUU7UUFDakMsT0FBTyxLQUFLLEtBQUssSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQy9CLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBmdW5jdGlvbiBpc0FycmF5RXF1YWwoYXJyMSwgYXJyMikge1xuICBpZiAoIUFycmF5LmlzQXJyYXkoYXJyMSkgfHwgIUFycmF5LmlzQXJyYXkoYXJyMikgfHwgYXJyMS5sZW5ndGggIT09IGFycjIubGVuZ3RoKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgY29uc3Qgc29ydEZuID0gKGEsIGIpID0+IHtcbiAgICBpZiAoYSA8IGIpIHtcbiAgICAgIHJldHVybiAtMTtcbiAgICB9IGVsc2UgaWYgKGEgPiBiKSB7XG4gICAgICByZXR1cm4gMTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIDA7XG4gICAgfVxuICB9XG5cbiAgYXJyMSA9IFsuLi5hcnIxXS5zb3J0KHNvcnRGbik7XG4gIGFycjIgPSBbLi4uYXJyMl0uc29ydChzb3J0Rm4pO1xuXG4gIHJldHVybiBhcnIxLmV2ZXJ5KCh2YWx1ZSwgaW5kZXgpID0+IHtcbiAgICByZXR1cm4gdmFsdWUgPT09IGFycjJbaW5kZXhdO1xuICB9KTtcbn1cbiJdfQ==
@@ -1,18 +0,0 @@
1
- export function isClass(value, cls) {
2
- if (typeof value === 'object') {
3
- if (typeof cls === 'string') {
4
- if (value.constructor) {
5
- if (value.constructor.name === cls) {
6
- return true;
7
- }
8
- }
9
- }
10
- else {
11
- if (value instanceof cls) {
12
- return true;
13
- }
14
- }
15
- }
16
- return false;
17
- }
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXMtY2xhc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGlicy91dGlsL2lzLWNsYXNzL2lzLWNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sVUFBVSxPQUFPLENBQUMsS0FBSyxFQUFFLEdBQUc7SUFFaEMsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLEVBQUU7UUFFN0IsSUFBSSxPQUFPLEdBQUcsS0FBSyxRQUFRLEVBQUU7WUFFM0IsSUFBSSxLQUFLLENBQUMsV0FBVyxFQUFFO2dCQUNyQixJQUFJLEtBQUssQ0FBQyxXQUFXLENBQUMsSUFBSSxLQUFLLEdBQUcsRUFBRTtvQkFDbEMsT0FBTyxJQUFJLENBQUM7aUJBQ2I7YUFDRjtTQUVGO2FBQU07WUFFTCxJQUFJLEtBQUssWUFBWSxHQUFHLEVBQUU7Z0JBQ3hCLE9BQU8sSUFBSSxDQUFDO2FBQ2I7U0FDRjtLQUNGO0lBRUQsT0FBTyxLQUFLLENBQUM7QUFDZixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGZ1bmN0aW9uIGlzQ2xhc3ModmFsdWUsIGNscykge1xuXG4gIGlmICh0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnKSB7XG5cbiAgICBpZiAodHlwZW9mIGNscyA9PT0gJ3N0cmluZycpIHtcblxuICAgICAgaWYgKHZhbHVlLmNvbnN0cnVjdG9yKSB7XG4gICAgICAgIGlmICh2YWx1ZS5jb25zdHJ1Y3Rvci5uYW1lID09PSBjbHMpIHtcbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgfSBlbHNlIHtcblxuICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgY2xzKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBmYWxzZTtcbn1cbiJdfQ==
@@ -1,10 +0,0 @@
1
- export function length(object) {
2
- if (Array.isArray(object)) {
3
- return object.length;
4
- }
5
- if (object instanceof Object) {
6
- return Object.keys(object).length;
7
- }
8
- return 0;
9
- }
10
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGVuZ3RoLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYnMvdXRpbC9sZW5ndGgvbGVuZ3RoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sVUFBVSxNQUFNLENBQUMsTUFBTTtJQUMzQixJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUU7UUFDekIsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDO0tBQ3RCO0lBRUQsSUFBSSxNQUFNLFlBQVksTUFBTSxFQUFFO1FBQzVCLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLENBQUM7S0FDbkM7SUFFRCxPQUFPLENBQUMsQ0FBQztBQUNYLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZnVuY3Rpb24gbGVuZ3RoKG9iamVjdCkge1xuICBpZiAoQXJyYXkuaXNBcnJheShvYmplY3QpKSB7XG4gICAgcmV0dXJuIG9iamVjdC5sZW5ndGg7XG4gIH1cblxuICBpZiAob2JqZWN0IGluc3RhbmNlb2YgT2JqZWN0KSB7XG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKG9iamVjdCkubGVuZ3RoO1xuICB9XG5cbiAgcmV0dXJuIDA7XG59XG4iXX0=
@@ -1,15 +0,0 @@
1
- import { Observable, Subject, of } from 'rxjs';
2
- import { guid } from '../guid';
3
- export class Operation {
4
- constructor(target, name) {
5
- this.ready$ = new Subject();
6
- this.name = name ? name : guid();
7
- if (target instanceof Observable) {
8
- this.target = target;
9
- }
10
- else {
11
- this.target = of(target);
12
- }
13
- }
14
- }
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BlcmF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYnMvdXRpbC9xdWV1ZS9vcGVyYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9DLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFHL0IsTUFBTSxPQUFPLFNBQVM7SUFNcEIsWUFBWSxNQUF1QixFQUFFLElBQWE7UUFGM0MsV0FBTSxHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7UUFHNUIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7UUFFakMsSUFBSSxNQUFNLFlBQVksVUFBVSxFQUFFO1lBQ2hDLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1NBQ3RCO2FBQU07WUFDTCxJQUFJLENBQUMsTUFBTSxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUMxQjtJQUNILENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QsIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBndWlkIH0gZnJvbSAnLi4vZ3VpZCc7XG5cblxuZXhwb3J0IGNsYXNzIE9wZXJhdGlvbiB7XG5cbiAgcHVibGljIG5hbWU6IHN0cmluZztcbiAgcHVibGljIHRhcmdldDogT2JzZXJ2YWJsZTxhbnk+O1xuICBwdWJsaWMgcmVhZHkkID0gbmV3IFN1YmplY3QoKTtcblxuICBjb25zdHJ1Y3Rvcih0YXJnZXQ6IE9ic2VydmFibGU8YW55PiwgbmFtZT86IHN0cmluZykge1xuICAgIHRoaXMubmFtZSA9IG5hbWUgPyBuYW1lIDogZ3VpZCgpO1xuXG4gICAgaWYgKHRhcmdldCBpbnN0YW5jZW9mIE9ic2VydmFibGUpIHtcbiAgICAgIHRoaXMudGFyZ2V0ID0gdGFyZ2V0O1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnRhcmdldCA9IG9mKHRhcmdldCk7XG4gICAgfVxuICB9XG59XG4iXX0=
@@ -1,165 +0,0 @@
1
- import { of, Subject } from 'rxjs';
2
- import { delay, finalize, map, take, takeUntil } from 'rxjs/operators';
3
- import { Operation } from './operation';
4
- import { QueueState } from './queue.enum';
5
- export class Queue {
6
- constructor(_limit = Infinity) {
7
- this._limit = _limit;
8
- this._queueStats = {
9
- completed: 0,
10
- total: 0,
11
- errors: [],
12
- };
13
- this._doneQueueStats = {
14
- completed: 0,
15
- total: 0,
16
- errors: [],
17
- };
18
- this._completeQueueStats = {
19
- completed: 0,
20
- total: 0,
21
- errors: [],
22
- };
23
- this._done = new Subject();
24
- this._queue = [];
25
- this._inProgress = [];
26
- this._state = QueueState.Idle;
27
- this._destroy$ = new Subject();
28
- // if(_targets) {
29
- // _targets.forEach((target) => {
30
- // this.push(target);
31
- // });
32
- // }
33
- }
34
- get total() {
35
- return this._queueStats.total;
36
- }
37
- get completed() {
38
- return this._queueStats.completed;
39
- }
40
- get pending() {
41
- return this._queue.length;
42
- }
43
- get inProgress() {
44
- return this._inProgress.length;
45
- }
46
- get errors() {
47
- return this._queueStats.errors;
48
- }
49
- get state() {
50
- return this._state;
51
- }
52
- get empty() {
53
- return !this._queue.length && !this._inProgress.length;
54
- }
55
- get pendingOperations() {
56
- return this._queue
57
- .map((operation) => operation.name);
58
- }
59
- get inProgressOperations() {
60
- return this._inProgress
61
- .map((operation) => operation.name);
62
- }
63
- isProcessing() {
64
- return this._state === QueueState.Processing;
65
- }
66
- isIdle() {
67
- return this._state === QueueState.Idle;
68
- }
69
- setLimit(value) {
70
- this._limit = value;
71
- }
72
- /**
73
- * @depreated
74
- */
75
- subscribe(fun, err, complete) {
76
- this.observe$
77
- .subscribe(fun, err, complete);
78
- }
79
- get observe$() {
80
- return this._done
81
- .pipe(takeUntil(this._destroy$));
82
- }
83
- get complete$() {
84
- if (!this.isProcessing()) {
85
- return of({ total: 0, completed: 0, errors: [] });
86
- }
87
- return this.observe$
88
- .pipe(take(1), map(() => (this._completeQueueStats)));
89
- }
90
- complete(fun, err, complete) {
91
- this.complete$.subscribe(fun, err, complete);
92
- }
93
- push(target, name) {
94
- const operation = new Operation(target, name);
95
- this._queueStats.total++;
96
- this._doneQueueStats.total++;
97
- this._completeQueueStats.total++;
98
- this._state = QueueState.Processing;
99
- if (this._inProgress.length < this._limit) {
100
- this._processOperation(operation);
101
- }
102
- else {
103
- this._queue.push(operation);
104
- }
105
- return operation.ready$;
106
- }
107
- clear() {
108
- this._queue = [];
109
- this._state = QueueState.Idle;
110
- this._queueStats = {
111
- total: 0,
112
- errors: [],
113
- completed: 0,
114
- };
115
- this._clearDoneQueueStats();
116
- }
117
- destroy() {
118
- this._done.complete();
119
- this.clear();
120
- }
121
- _processOperation(operation) {
122
- this._inProgress.push(operation);
123
- operation.target
124
- .pipe(delay(200), // Hack to prevent extra quick proccess execution
125
- finalize(() => {
126
- const opIndex = this._inProgress.indexOf(operation);
127
- this._inProgress.splice(opIndex, 1);
128
- if (this.empty) {
129
- this._state = QueueState.Idle;
130
- this._done.next(this._doneQueueStats);
131
- this._clearDoneQueueStats();
132
- }
133
- else {
134
- if (this._queue.length) {
135
- const queueItem = this._queue.shift();
136
- this._processOperation(queueItem);
137
- }
138
- }
139
- }), takeUntil(this._destroy$)).subscribe({
140
- next: (data) => {
141
- operation.ready$.next(data);
142
- },
143
- error: (error) => {
144
- this._queueStats.errors.push(error);
145
- this._doneQueueStats.errors.push(error);
146
- this._completeQueueStats.errors.push(error);
147
- operation.ready$.error(error);
148
- },
149
- complete: () => {
150
- this._queueStats.completed++;
151
- this._doneQueueStats.completed++;
152
- this._completeQueueStats.completed++;
153
- operation.ready$.complete();
154
- }
155
- });
156
- }
157
- _clearDoneQueueStats() {
158
- this._doneQueueStats = {
159
- total: 0,
160
- errors: [],
161
- completed: 0,
162
- };
163
- }
164
- }
165
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVldWUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGlicy91dGlsL3F1ZXVlL3F1ZXVlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBYyxFQUFFLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9DLE9BQU8sRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFdkUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUV4QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRzFDLE1BQU0sT0FBTyxLQUFLO0lBMEJoQixZQUNVLFNBQVMsUUFBUTtRQUFqQixXQUFNLEdBQU4sTUFBTSxDQUFXO1FBekJuQixnQkFBVyxHQUFlO1lBQ2hDLFNBQVMsRUFBRSxDQUFDO1lBQ1osS0FBSyxFQUFFLENBQUM7WUFDUixNQUFNLEVBQUUsRUFBRTtTQUNYLENBQUM7UUFFTSxvQkFBZSxHQUFlO1lBQ3BDLFNBQVMsRUFBRSxDQUFDO1lBQ1osS0FBSyxFQUFFLENBQUM7WUFDUixNQUFNLEVBQUUsRUFBRTtTQUNYLENBQUM7UUFFTSx3QkFBbUIsR0FBZTtZQUN4QyxTQUFTLEVBQUUsQ0FBQztZQUNaLEtBQUssRUFBRSxDQUFDO1lBQ1IsTUFBTSxFQUFFLEVBQUU7U0FDWCxDQUFDO1FBRU0sVUFBSyxHQUFHLElBQUksT0FBTyxFQUFjLENBQUM7UUFDbEMsV0FBTSxHQUFnQixFQUFFLENBQUM7UUFDekIsZ0JBQVcsR0FBZ0IsRUFBRSxDQUFDO1FBQzlCLFdBQU0sR0FBZSxVQUFVLENBQUMsSUFBSSxDQUFDO1FBQ3JDLGNBQVMsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBTXRDLGlCQUFpQjtRQUNqQixtQ0FBbUM7UUFDbkMseUJBQXlCO1FBQ3pCLFNBQVM7UUFDVCxJQUFJO0lB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RSxDQUFDO2dCQUNqQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsU0FBUyxFQUFFLENBQUM7Z0JBRXJDLFNBQVMsQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDOUIsQ0FBQztTQUNGLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFTyxvQkFBb0I7UUFDMUIsSUFBSSxDQUFDLGVBQWUsR0FBRztZQUNyQixLQUFLLEVBQUUsQ0FBQztZQUNSLE1BQU0sRUFBRSxFQUFFO1lBQ1YsU0FBUyxFQUFFLENBQUM7U0FDYixDQUFDO0lBQ0osQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRlbGF5LCBmaW5hbGl6ZSwgbWFwLCB0YWtlLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IE9wZXJhdGlvbiB9IGZyb20gJy4vb3BlcmF0aW9uJztcbmltcG9ydCB7IFF1ZXVlU3RhdHMgfSBmcm9tICcuL3F1ZXVlLXN0YXRzJztcbmltcG9ydCB7IFF1ZXVlU3RhdGUgfSBmcm9tICcuL3F1ZXVlLmVudW0nO1xuXG5cbmV4cG9ydCBjbGFzcyBRdWV1ZSB7XG5cbiAgcHJpdmF0ZSBfcXVldWVTdGF0czogUXVldWVTdGF0cyA9IHtcbiAgICBjb21wbGV0ZWQ6IDAsXG4gICAgdG90YWw6IDAsXG4gICAgZXJyb3JzOiBbXSxcbiAgfTtcblxuICBwcml2YXRlIF9kb25lUXVldWVTdGF0czogUXVldWVTdGF0cyA9IHtcbiAgICBjb21wbGV0ZWQ6IDAsXG4gICAgdG90YWw6IDAsXG4gICAgZXJyb3JzOiBbXSxcbiAgfTtcblxuICBwcml2YXRlIF9jb21wbGV0ZVF1ZXVlU3RhdHM6IFF1ZXVlU3RhdHMgPSB7XG4gICAgY29tcGxldGVkOiAwLFxuICAgIHRvdGFsOiAwLFxuICAgIGVycm9yczogW10sXG4gIH07XG5cbiAgcHJpdmF0ZSBfZG9uZSA9IG5ldyBTdWJqZWN0PFF1ZXVlU3RhdHM+KCk7XG4gIHByaXZhdGUgX3F1ZXVlOiBPcGVyYXRpb25bXSA9IFtdO1xuICBwcml2YXRlIF9pblByb2dyZXNzOiBPcGVyYXRpb25bXSA9IFtdO1xuICBwcml2YXRlIF9zdGF0ZTogUXVldWVTdGF0ZSA9IFF1ZXVlU3RhdGUuSWRsZTtcbiAgcHJpdmF0ZSBfZGVzdHJveSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICBcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBfbGltaXQgPSBJbmZpbml0eSxcbiAgICAvL3ByaXZhdGUgX3RhcmdldHM/OiBPYnNlcnZhYmxlPGFueT5bXSxcbiAgKSB7XG4gICAgLy8gaWYoX3RhcmdldHMpIHtcbiAgICAvLyAgIF90YXJnZXRzLmZvckVhY2goKHRhcmdldCkgPT4ge1xuICAgIC8vICAgICB0aGlzLnB1c2godGFyZ2V0KTtcbiAgICAvLyAgIH0pOyBcbiAgICAvLyB9XG4gIH1cblxuICBwdWJsaWMgZ2V0IHRvdGFsKCkge1xuICAgIHJldHVybiB0aGlzLl9xdWV1ZVN0YXRzLnRvdGFsO1xuICB9XG5cbiAgcHVibGljIGdldCBjb21wbGV0ZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3F1ZXVlU3RhdHMuY29tcGxldGVkO1xuICB9XG5cbiAgcHVibGljIGdldCBwZW5kaW5nKCkge1xuICAgIHJldHVybiB0aGlzLl9xdWV1ZS5sZW5ndGg7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGluUHJvZ3Jlc3MoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2luUHJvZ3Jlc3MubGVuZ3RoO1xuICB9XG5cbiAgcHVibGljIGdldCBlcnJvcnMoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3F1ZXVlU3RhdHMuZXJyb3JzO1xuICB9XG5cbiAgcHVibGljIGdldCBzdGF0ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5fc3RhdGU7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGVtcHR5KCkge1xuICAgIHJldHVybiAhdGhpcy5fcXVldWUubGVuZ3RoICYmICF0aGlzLl9pblByb2dyZXNzLmxlbmd0aFxuICB9XG5cbiAgcHVibGljIGdldCBwZW5kaW5nT3BlcmF0aW9ucygpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIHRoaXMuX3F1ZXVlXG4gICAgICAubWFwKChvcGVyYXRpb24pID0+IG9wZXJhdGlvbi5uYW1lKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaW5Qcm9ncmVzc09wZXJhdGlvbnMoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiB0aGlzLl9pblByb2dyZXNzXG4gICAgICAubWFwKChvcGVyYXRpb24pID0+IG9wZXJhdGlvbi5uYW1lKTtcbiAgfVxuXG4gIHB1YmxpYyBpc1Byb2Nlc3NpbmcoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX3N0YXRlID09PSBRdWV1ZVN0YXRlLlByb2Nlc3Npbmc7XG4gIH1cblxuICBwdWJsaWMgaXNJZGxlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9zdGF0ZSA9PT0gUXVldWVTdGF0ZS5JZGxlO1xuICB9XG5cbiAgcHVibGljIHNldExpbWl0KHZhbHVlOiBudW1iZXIpIHtcbiAgICB0aGlzLl9saW1pdCA9IHZhbHVlO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXByZWF0ZWRcbiAgICovXG4gIHB1YmxpYyBzdWJzY3JpYmUoZnVuLCBlcnI/LCBjb21wbGV0ZT8pOiB2b2lkIHtcbiAgICB0aGlzLm9ic2VydmUkXG4gICAgICAuc3Vic2NyaWJlKGZ1biwgZXJyLCBjb21wbGV0ZSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IG9ic2VydmUkKCk6IE9ic2VydmFibGU8UXVldWVTdGF0cz4ge1xuICAgIHJldHVybiB0aGlzLl9kb25lXG4gICAgICAucGlwZShcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSxcbiAgICAgICk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGNvbXBsZXRlJCgpOiBPYnNlcnZhYmxlPFF1ZXVlU3RhdHM+IHtcbiAgICBpZiAoIXRoaXMuaXNQcm9jZXNzaW5nKCkpIHtcbiAgICAgIHJldHVybiBvZih7IHRvdGFsOiAwLCBjb21wbGV0ZWQ6IDAsIGVycm9yczogW10gfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMub2JzZXJ2ZSRcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlKDEpLFxuICAgICAgICBtYXAoKCkgPT4gKHRoaXMuX2NvbXBsZXRlUXVldWVTdGF0cykpLFxuICAgICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBjb21wbGV0ZShmdW4sIGVycj8sIGNvbXBsZXRlPyk6IHZvaWQge1xuICAgIHRoaXMuY29tcGxldGUkLnN1YnNjcmliZShmdW4sIGVyciwgY29tcGxldGUpO1xuICB9XG5cbiAgcHVibGljIHB1c2godGFyZ2V0OiBPYnNlcnZhYmxlPGFueT4sIG5hbWU/OiBzdHJpbmcpIHtcbiAgICBjb25zdCBvcGVyYXRpb24gPSBuZXcgT3BlcmF0aW9uKHRhcmdldCwgbmFtZSk7XG5cbiAgICB0aGlzLl9xdWV1ZVN0YXRzLnRvdGFsKys7XG4gICAgdGhpcy5fZG9uZVF1ZXVlU3RhdHMudG90YWwrKztcbiAgICB0aGlzLl9jb21wbGV0ZVF1ZXVlU3RhdHMudG90YWwrKztcbiAgICB0aGlzLl9zdGF0ZSA9IFF1ZXVlU3RhdGUuUHJvY2Vzc2luZztcblxuICAgIGlmICh0aGlzLl9pblByb2dyZXNzLmxlbmd0aCA8IHRoaXMuX2xpbWl0KSB7XG4gICAgICB0aGlzLl9wcm9jZXNzT3BlcmF0aW9uKG9wZXJhdGlvbik7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX3F1ZXVlLnB1c2gob3BlcmF0aW9uKTtcbiAgICB9XG5cbiAgICByZXR1cm4gb3BlcmF0aW9uLnJlYWR5JDtcbiAgfVxuXG4gIHB1YmxpYyBjbGVhcigpOiB2b2lkIHtcbiAgICB0aGlzLl9xdWV1ZSA9IFtdO1xuICAgIHRoaXMuX3N0YXRlID0gUXVldWVTdGF0ZS5JZGxlOyAgICAgICBcbiAgICB0aGlzLl9xdWV1ZVN0YXRzID0ge1xuICAgICAgdG90YWw6IDAsXG4gICAgICBlcnJvcnM6IFtdLFxuICAgICAgY29tcGxldGVkOiAwLFxuICAgIH07XG4gICAgdGhpcy5fY2xlYXJEb25lUXVldWVTdGF0cygpO1xuICB9XG5cbiAgcHVibGljIGRlc3Ryb3koKTogdm9pZCB7ICAgIFxuICAgIHRoaXMuX2RvbmUuY29tcGxldGUoKTtcbiAgICB0aGlzLmNsZWFyKCk7XG4gIH1cblxuICBwcml2YXRlIF9wcm9jZXNzT3BlcmF0aW9uKG9wZXJhdGlvbjogT3BlcmF0aW9uKTogdm9pZCB7XG4gICAgdGhpcy5faW5Qcm9ncmVzcy5wdXNoKG9wZXJhdGlvbik7XG5cbiAgICBvcGVyYXRpb24udGFyZ2V0XG4gICAgICAucGlwZShcbiAgICAgICAgZGVsYXkoMjAwKSwgLy8gSGFjayB0byBwcmV2ZW50IGV4dHJhIHF1aWNrIHByb2NjZXNzIGV4ZWN1dGlvblxuICAgICAgICBmaW5hbGl6ZSgoKSA9PiB7XG4gICAgICAgICAgY29uc3Qgb3BJbmRleCA9IHRoaXMuX2luUHJvZ3Jlc3MuaW5kZXhPZihvcGVyYXRpb24pO1xuICAgICAgICAgIHRoaXMuX2luUHJvZ3Jlc3Muc3BsaWNlKG9wSW5kZXgsIDEpO1xuICAgICAgICAgIFxuICAgICAgICAgIGlmICh0aGlzLmVtcHR5KSB7XG4gICAgICAgICAgICB0aGlzLl9zdGF0ZSA9IFF1ZXVlU3RhdGUuSWRsZTtcbiAgICAgICAgICAgIHRoaXMuX2RvbmUubmV4dCh0aGlzLl9kb25lUXVldWVTdGF0cyk7XG4gICAgICAgICAgICB0aGlzLl9jbGVhckRvbmVRdWV1ZVN0YXRzKCk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmICh0aGlzLl9xdWV1ZS5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgY29uc3QgcXVldWVJdGVtID0gdGhpcy5fcXVldWUuc2hpZnQoKTtcbiAgICAgICAgICAgICAgdGhpcy5fcHJvY2Vzc09wZXJhdGlvbihxdWV1ZUl0ZW0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSksXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCksXG4gICAgICApLnN1YnNjcmliZSh7XG4gICAgICAgIG5leHQ6IChkYXRhKSA9PiB7XG4gICAgICAgICAgb3BlcmF0aW9uLnJlYWR5JC5uZXh0KGRhdGEpO1xuICAgICAgICB9LFxuICAgICAgICBlcnJvcjogKGVycm9yKSA9PiB7XG4gICAgICAgICAgdGhpcy5fcXVldWVTdGF0cy5lcnJvcnMucHVzaChlcnJvcik7XG4gICAgICAgICAgdGhpcy5fZG9uZVF1ZXVlU3RhdHMuZXJyb3JzLnB1c2goZXJyb3IpO1xuICAgICAgICAgIHRoaXMuX2NvbXBsZXRlUXVldWVTdGF0cy5lcnJvcnMucHVzaChlcnJvcik7XG5cbiAgICAgICAgICBvcGVyYXRpb24ucmVhZHkkLmVycm9yKGVycm9yKTtcbiAgICAgICAgfSxcbiAgICAgICAgY29tcGxldGU6ICgpID0+IHtcbiAgICAgICAgICB0aGlzLl9xdWV1ZVN0YXRzLmNvbXBsZXRlZCsrO1xuICAgICAgICAgIHRoaXMuX2RvbmVRdWV1ZVN0YXRzLmNvbXBsZXRlZCsrO1xuICAgICAgICAgIHRoaXMuX2NvbXBsZXRlUXVldWVTdGF0cy5jb21wbGV0ZWQrKztcblxuICAgICAgICAgIG9wZXJhdGlvbi5yZWFkeSQuY29tcGxldGUoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxuICBwcml2YXRlIF9jbGVhckRvbmVRdWV1ZVN0YXRzKCk6IHZvaWQge1xuICAgIHRoaXMuX2RvbmVRdWV1ZVN0YXRzID0ge1xuICAgICAgdG90YWw6IDAsXG4gICAgICBlcnJvcnM6IFtdLFxuICAgICAgY29tcGxldGVkOiAwLFxuICAgIH07XG4gIH1cbn1cbiJdfQ==
@@ -1,155 +0,0 @@
1
- import { combineLatest, Observable } from 'rxjs';
2
- import { shareReplay } from 'rxjs/operators';
3
- export const fsSourceLoader = (function () {
4
- let _document;
5
- let _headElement;
6
- const _sources = new Map();
7
- const _loadedResources = new Map();
8
- // bad way but don't want to bother developer
9
- setDocument(document);
10
- // but developer can set document at any time
11
- function setDocument(document) {
12
- _document = document;
13
- _headElement = _document?.head;
14
- }
15
- /**
16
- * register a list of the resources for future loading
17
- *
18
- * example:
19
- * sourceLoader.registerResources({
20
- * froala: [
21
- * '/assets/js/froala/froala_editor.min.js',
22
- * '/assets/css/froala_editor.pkgd.min.css',
23
- * ],
24
- * froala_align: '/assets/js/froala/plugins/align.min.js',
25
- * froala_colors: '/assets/js/froala/plugins/colors.min.js',
26
- * froala_image: '/assets/js/froala/plugins/image.min.js',
27
- * });
28
- *
29
- */
30
- function registerResources(resources) {
31
- Object.entries(resources)
32
- .forEach(([name, path]) => {
33
- if (typeof path === 'string') {
34
- path = [path];
35
- }
36
- if (!_sources.has(name)) {
37
- _sources.set(name, new Set());
38
- }
39
- const resourcesList = _sources.get(name);
40
- path.forEach((p) => {
41
- resourcesList.add(p);
42
- });
43
- });
44
- }
45
- /**
46
- * load any resource previously registered
47
- *
48
- * sourceLoader.loadResource('froala')
49
- *
50
- * or load any js/css file
51
- *
52
- * sourceLoader.loadResource('/assets/my-source.js')
53
- *
54
- */
55
- function loadResource(name) {
56
- if (_loadedResources.has(name)) {
57
- return _loadedResources.get(name);
58
- }
59
- if (_sources.has(name)) {
60
- const sourcesForLoading = [..._sources.get(name)]
61
- .map((path) => {
62
- return _loadResource(path);
63
- })
64
- .filter((v) => !!v);
65
- return combineLatest(sourcesForLoading);
66
- }
67
- return _loadResource(name);
68
- }
69
- /**
70
- * the same as `loadResource` but you can pass list of the resources for loading
71
- */
72
- function loadResources(listOfResources) {
73
- const resourcesToLoad = listOfResources
74
- .reduce((acc, name) => {
75
- const loading$ = loadResource(name);
76
- if (loading$) {
77
- acc.push(loading$);
78
- }
79
- return acc;
80
- }, []);
81
- return combineLatest(resourcesToLoad);
82
- }
83
- ///
84
- function _loadResource(path) {
85
- if (_isStylesUrl(path)) {
86
- return _loadStyles(path);
87
- }
88
- if (_isJavascriptUrl(path)) {
89
- return _loadJs(path);
90
- }
91
- console.warn(`Resource ${path} can not be identified and loaded`);
92
- return null;
93
- }
94
- function _loadJs(scriptPath) {
95
- if (!_loadedResources.has(scriptPath)) {
96
- const obs$ = new Observable((obs) => {
97
- const script = document.createElement('script');
98
- script.src = scriptPath;
99
- _headElement.appendChild(script);
100
- script.onload = () => {
101
- obs.next();
102
- obs.complete();
103
- };
104
- script.onerror = (err) => {
105
- obs.error(err);
106
- };
107
- }).pipe(shareReplay(1));
108
- _loadedResources.set(scriptPath, obs$);
109
- }
110
- return _loadedResources.get(scriptPath);
111
- }
112
- function _loadStyles(stylePath) {
113
- if (!_loadedResources.has(stylePath)) {
114
- const obs$ = new Observable((obs) => {
115
- const style = document.createElement('link');
116
- style.id = stylePath;
117
- style.rel = 'stylesheet';
118
- style.href = `${stylePath}`;
119
- _headElement.appendChild(style);
120
- style.onload = () => {
121
- obs.next();
122
- obs.complete();
123
- };
124
- style.onerror = (err) => {
125
- obs.error(err);
126
- };
127
- });
128
- _loadedResources.set(stylePath, obs$);
129
- }
130
- return _loadedResources.get(stylePath);
131
- }
132
- function _isJavascriptUrl(url) {
133
- return url.endsWith('.js');
134
- }
135
- function _isStylesUrl(url) {
136
- return url.endsWith('.css');
137
- }
138
- return {
139
- setDocument,
140
- registerResources,
141
- loadResource,
142
- loadResources,
143
- loadJs: _loadJs,
144
- loadStyles: _loadStyles,
145
- };
146
- })();
147
- export function loadStyles(path) {
148
- return fsSourceLoader.loadStyles(path);
149
- }
150
- ;
151
- export function loadJs(path) {
152
- return fsSourceLoader.loadJs(path);
153
- }
154
- ;
155
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic291cmNlLWxvYWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWJzL3V0aWwvc291cmNlLWxvYWRlci9zb3VyY2UtbG9hZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2pELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUU3QyxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsQ0FBQztJQUU3QixJQUFJLFNBQW1CLENBQUM7SUFDeEIsSUFBSSxZQUE2QixDQUFDO0lBRWxDLE1BQU0sUUFBUSxHQUFHLElBQUksR0FBRyxFQUF1QixDQUFDO0lBQ2hELE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxHQUFHLEVBQStCLENBQUM7SUFFaEUsNkNBQTZDO0lBQzdDLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUV0Qiw2Q0FBNkM7SUFDN0MsU0FBUyxXQUFXLENBQUMsUUFBa0I7UUFDckMsU0FBUyxHQUFHLFFBQVEsQ0FBQztRQUNyQixZQUFZLEdBQUcsU0FBUyxFQUFFLElBQUksQ0FBQztJQUNqQyxDQUFDO0lBRUQ7Ozs7Ozs7Ozs7Ozs7O09BY0c7SUFDSCxTQUFTLGlCQUFpQixDQUFDLFNBQTRDO1FBQ3JFLE1BQU0sQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDO2FBQ3RCLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUU7WUFDeEIsSUFBSSxPQUFPLElBQUksS0FBSyxRQUFRLEVBQUU7Z0JBQzVCLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO2FBQ2Y7WUFFRCxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRTtnQkFDdkIsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsSUFBSSxHQUFHLEVBQUUsQ0FBQyxDQUFD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QyxHQUFXO1FBQ25DLE9BQU8sR0FBRyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBRUQsU0FBUyxZQUFZLENBQUMsR0FBVztRQUMvQixPQUFPLEdBQUcsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVELE9BQU87UUFDTCxXQUFXO1FBQ1gsaUJBQWlCO1FBQ2pCLFlBQVk7UUFDWixhQUFhO1FBQ2IsTUFBTSxFQUFFLE9BQU87UUFDZixVQUFVLEVBQUUsV0FBVztLQUN4QixDQUFDO0FBQ0osQ0FBQyxDQUFDLEVBQUUsQ0FBQztBQUVMLE1BQU0sVUFBVSxVQUFVLENBQUMsSUFBSTtJQUM3QixPQUFPLGNBQWMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDekMsQ0FBQztBQUFBLENBQUM7QUFFRixNQUFNLFVBQVUsTUFBTSxDQUFDLElBQUk7SUFDekIsT0FBTyxjQUFjLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ3JDLENBQUM7QUFBQSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY29tYmluZUxhdGVzdCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgc2hhcmVSZXBsYXkgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmV4cG9ydCBjb25zdCBmc1NvdXJjZUxvYWRlciA9IChmdW5jdGlvbigpIHtcblxuICBsZXQgX2RvY3VtZW50OiBEb2N1bWVudDtcbiAgbGV0IF9oZWFkRWxlbWVudDogSFRNTEhlYWRFbGVtZW50O1xuXG4gIGNvbnN0IF9zb3VyY2VzID0gbmV3IE1hcDxzdHJpbmcsIFNldDxzdHJpbmc+PigpO1xuICBjb25zdCBfbG9hZGVkUmVzb3VyY2VzID0gbmV3IE1hcDxzdHJpbmcsIE9ic2VydmFibGU8dW5rbm93bj4+KCk7XG5cbiAgLy8gYmFkIHdheSBidXQgZG9uJ3Qgd2FudCB0byBib3RoZXIgZGV2ZWxvcGVyXG4gIHNldERvY3VtZW50KGRvY3VtZW50KTtcblxuICAvLyBidXQgZGV2ZWxvcGVyIGNhbiBzZXQgZG9jdW1lbnQgYXQgYW55IHRpbWVcbiAgZnVuY3Rpb24gc2V0RG9jdW1lbnQoZG9jdW1lbnQ6IERvY3VtZW50KTogdm9pZCB7XG4gICAgX2RvY3VtZW50ID0gZG9jdW1lbnQ7XG4gICAgX2hlYWRFbGVtZW50ID0gX2RvY3VtZW50Py5oZWFkO1xuICB9XG5cbiAgLyoqXG4gICAqIHJlZ2lzdGVyIGEgbGlzdCBvZiB0aGUgcmVzb3VyY2VzIGZvciBmdXR1cmUgbG9hZGluZ1xuICAgKlxuICAgKiBleGFtcGxlOlxuICAgKiAgIHNvdXJjZUxvYWRlci5yZWdpc3RlclJlc291cmNlcyh7XG4gICAqICAgICBmcm9hbGE6IFtcbiAgICogICAgICAgJy9hc3NldHMvanMvZnJvYWxhL2Zyb2FsYV9lZGl0b3IubWluLmpzJyxcbiAgICogICAgICAgJy9hc3NldHMvY3NzL2Zyb2FsYV9lZGl0b3IucGtnZC5taW4uY3NzJyxcbiAgICogICAgIF0sXG4gICAqICAgICBmcm9hbGFfYWxpZ246ICcvYXNzZXRzL2pzL2Zyb2FsYS9wbHVnaW5zL2FsaWduLm1pbi5qcycsXG4gICAqICAgICBmcm9hbGFfY29sb3JzOiAnL2Fzc2V0cy9qcy9mcm9hbGEvcGx1Z2lucy9jb2xvcnMubWluLmpzJyxcbiAgICogICAgIGZyb2FsYV9pbWFnZTogJy9hc3NldHMvanMvZnJvYWxhL3BsdWdpbnMvaW1hZ2UubWluLmpzJyxcbiAgICogICB9KTtcbiAgICpcbiAgICovXG4gIGZ1bmN0aW9uIHJlZ2lzdGVyUmVzb3VyY2VzKHJlc291cmNlczogUmVjb3JkPHN0cmluZywgc3RyaW5nIHwgc3RyaW5nW10+KSB7XG4gICAgT2JqZWN0LmVudHJpZXMocmVzb3VyY2VzKVxuICAgICAgLmZvckVhY2goKFtuYW1lLCBwYXRoXSkgPT4ge1xuICAgICAgICBpZiAodHlwZW9mIHBhdGggPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgcGF0aCA9IFtwYXRoXTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghX3NvdXJjZXMuaGFzKG5hbWUpKSB7XG4gICAgICAgICAgX3NvdXJjZXMuc2V0KG5hbWUsIG5ldyBTZXQoKSk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCByZXNvdXJjZXNMaXN0ID0gX3NvdXJjZXMuZ2V0KG5hbWUpO1xuXG4gICAgICAgIHBhdGguZm9yRWFjaCgocCkgPT4ge1xuICAgICAgICAgIHJlc291cmNlc0xpc3QuYWRkKHApO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIGxvYWQgYW55IHJlc291cmNlIHByZXZpb3VzbHkgcmVnaXN0ZXJlZFxuICAgKlxuICAgKiBzb3VyY2VMb2FkZXIubG9hZFJlc291cmNlKCdmcm9hbGEnKVxuICAgKlxuICAgKiBvciBsb2FkIGFueSBqcy9jc3MgZmlsZVxuICAgKlxuICAgKiBzb3VyY2VMb2FkZXIubG9hZFJlc291cmNlKCcvYXNzZXRzL215LXNvdXJjZS5qcycpXG4gICAqXG4gICAqL1xuICBmdW5jdGlvbiBsb2FkUmVzb3VyY2UobmFtZTogc3RyaW5nKTogT2JzZXJ2YWJsZTx1bmtub3duPiB8IG51bGwge1xuICAgIGlmIChfbG9hZGVkUmVzb3VyY2VzLmhhcyhuYW1lKSkge1xuICAgICAgcmV0dXJuIF9sb2FkZWRSZXNvdXJjZXMuZ2V0KG5hbWUpO1xuICAgIH1cblxuICAgIGlmIChfc291cmNlcy5oYXMobmFtZSkpIHtcbiAgICAgIGNvbnN0IHNvdXJjZXNGb3JMb2FkaW5nID0gWy4uLl9zb3VyY2VzLmdldChuYW1lKV1cbiAgICAgICAgLm1hcCgocGF0aCkgPT4ge1xuICAgICAgICAgIHJldHVybiBfbG9hZFJlc291cmNlKHBhdGgpO1xuICAgICAgICB9KVxuICAgICAgICAuZmlsdGVyKCh2KSA9PiAhIXYpO1xuXG4gICAgICByZXR1cm4gY29tYmluZUxhdGVzdChzb3VyY2VzRm9yTG9hZGluZyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIF9sb2FkUmVzb3VyY2UobmFtZSk7XG4gIH1cblxuICAvKipcbiAgICogdGhlIHNhbWUgYXMgYGxvYWRSZXNvdXJjZWAgYnV0IHlvdSBjYW4gcGFzcyBsaXN0IG9mIHRoZSByZXNvdXJjZXMgZm9yIGxvYWRpbmdcbiAgICovXG4gIGZ1bmN0aW9uIGxvYWRSZXNvdXJjZXMobGlzdE9mUmVzb3VyY2VzOiBzdHJpbmdbXSk6IE9ic2VydmFibGU8dW5rbm93bj4ge1xuICAgIGNvbnN0IHJlc291cmNlc1RvTG9hZCA9IGxpc3RPZlJlc291cmNlc1xuICAgICAgLnJlZHVjZSgoYWNjLCBuYW1lKSA9PiB7XG5cbiAgICAgICAgY29uc3QgbG9hZGluZyQgPSBsb2FkUmVzb3VyY2UobmFtZSk7XG5cbiAgICAgICAgaWYgKGxvYWRpbmckKSB7XG4gICAgICAgICAgYWNjLnB1c2gobG9hZGluZyQpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgIH0sIFtdKTtcblxuICAgIHJldHVybiBjb21iaW5lTGF0ZXN0KHJlc291cmNlc1RvTG9hZCk7XG4gIH1cblxuICAvLy9cblxuICBmdW5jdGlvbiBfbG9hZFJlc291cmNlKHBhdGgpOiBPYnNlcnZhYmxlPHVua25vd24+IHwgbnVsbCB7XG4gICAgaWYgKF9pc1N0eWxlc1VybChwYXRoKSkge1xuICAgICAgcmV0dXJuIF9sb2FkU3R5bGVzKHBhdGgpO1xuICAgIH1cblxuICAgIGlmIChfaXNKYXZhc2NyaXB0VXJsKHBhdGgpKSB7XG4gICAgICByZXR1cm4gX2xvYWRKcyhwYXRoKTtcbiAgICB9XG5cbiAgICBjb25zb2xlLndhcm4oYFJlc291cmNlICR7cGF0aH0gY2FuIG5vdCBiZSBpZGVudGlmaWVkIGFuZCBsb2FkZWRgKTtcblxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgZnVuY3Rpb24gX2xvYWRKcyhzY3JpcHRQYXRoOiBzdHJpbmcpOiBPYnNlcnZhYmxlPHVua25vd24+IHtcbiAgICBpZiAoIV9sb2FkZWRSZXNvdXJjZXMuaGFzKHNjcmlwdFBhdGgpKSB7XG4gICAgICBjb25zdCBvYnMkID0gbmV3IE9ic2VydmFibGUoKG9icykgPT4ge1xuICAgICAgICBjb25zdCBzY3JpcHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKTtcbiAgICAgICAgc2NyaXB0LnNyYyA9IHNjcmlwdFBhdGg7XG5cbiAgICAgICAgX2hlYWRFbGVtZW50LmFwcGVuZENoaWxkKHNjcmlwdCk7XG5cbiAgICAgICAgc2NyaXB0Lm9ubG9hZCA9ICgpID0+IHtcbiAgICAgICAgICBvYnMubmV4dCgpO1xuICAgICAgICAgIG9icy5jb21wbGV0ZSgpO1xuICAgICAgICB9O1xuXG4gICAgICAgIHNjcmlwdC5vbmVycm9yID0gKGVycikgPT4ge1xuICAgICAgICAgIG9icy5lcnJvcihlcnIpO1xuICAgICAgICB9O1xuICAgICAgfSkucGlwZShcbiAgICAgICAgc2hhcmVSZXBsYXkoMSksXG4gICAgICApO1xuXG4gICAgICBfbG9hZGVkUmVzb3VyY2VzLnNldChzY3JpcHRQYXRoLCBvYnMkKTtcbiAgICB9XG5cbiAgICByZXR1cm4gX2xvYWRlZFJlc291cmNlcy5nZXQoc2NyaXB0UGF0aCk7XG4gIH1cblxuICBmdW5jdGlvbiBfbG9hZFN0eWxlcyhzdHlsZVBhdGg6IHN0cmluZyk6IE9ic2VydmFibGU8dW5rbm93bj4ge1xuICAgIGlmICghX2xvYWRlZFJlc291cmNlcy5oYXMoc3R5bGVQYXRoKSkge1xuICAgICAgY29uc3Qgb2JzJCA9IG5ldyBPYnNlcnZhYmxlKChvYnMpID0+IHtcbiAgICAgICAgY29uc3Qgc3R5bGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdsaW5rJyk7XG4gICAgICAgIHN0eWxlLmlkID0gc3R5bGVQYXRoO1xuICAgICAgICBzdHlsZS5yZWwgPSAnc3R5bGVzaGVldCc7XG4gICAgICAgIHN0eWxlLmhyZWYgPSBgJHtzdHlsZVBhdGh9YDtcblxuICAgICAgICBfaGVhZEVsZW1lbnQuYXBwZW5kQ2hpbGQoc3R5bGUpO1xuXG4gICAgICAgIHN0eWxlLm9ubG9hZCA9ICgpID0+IHtcbiAgICAgICAgICBvYnMubmV4dCgpO1xuICAgICAgICAgIG9icy5jb21wbGV0ZSgpO1xuICAgICAgICB9O1xuXG4gICAgICAgIHN0eWxlLm9uZXJyb3IgPSAoZXJyKSA9PiB7XG4gICAgICAgICAgb2JzLmVycm9yKGVycik7XG4gICAgICAgIH07XG4gICAgICB9KTtcblxuICAgICAgX2xvYWRlZFJlc291cmNlcy5zZXQoc3R5bGVQYXRoLCBvYnMkKTtcbiAgICB9XG5cbiAgICByZXR1cm4gX2xvYWRlZFJlc291cmNlcy5nZXQoc3R5bGVQYXRoKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIF9pc0phdmFzY3JpcHRVcmwodXJsOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdXJsLmVuZHNXaXRoKCcuanMnKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIF9pc1N0eWxlc1VybCh1cmw6IHN0cmluZykge1xuICAgIHJldHVybiB1cmwuZW5kc1dpdGgoJy5jc3MnKTtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgc2V0RG9jdW1lbnQsXG4gICAgcmVnaXN0ZXJSZXNvdXJjZXMsXG4gICAgbG9hZFJlc291cmNlLFxuICAgIGxvYWRSZXNvdXJjZXMsXG4gICAgbG9hZEpzOiBfbG9hZEpzLFxuICAgIGxvYWRTdHlsZXM6IF9sb2FkU3R5bGVzLFxuICB9O1xufSkoKTtcblxuZXhwb3J0IGZ1bmN0aW9uIGxvYWRTdHlsZXMocGF0aCk6IE9ic2VydmFibGU8YW55PiB7XG4gIHJldHVybiBmc1NvdXJjZUxvYWRlci5sb2FkU3R5bGVzKHBhdGgpO1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIGxvYWRKcyhwYXRoKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgcmV0dXJuIGZzU291cmNlTG9hZGVyLmxvYWRKcyhwYXRoKTtcbn07XG4iXX0=