ngx-sfc-common 0.0.26 → 0.0.28

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 (87) hide show
  1. package/components/button/button.component.mixins.scss +28 -0
  2. package/esm2020/lib/components/checkmark/checkmark.component.mjs +8 -4
  3. package/esm2020/lib/components/index.mjs +2 -1
  4. package/esm2020/lib/components/load-container/enums/load-container-load-type.enum.mjs +2 -1
  5. package/esm2020/lib/components/load-container/enums/load-container-type.enum.mjs +2 -1
  6. package/esm2020/lib/components/load-container/load-container.component.mjs +21 -17
  7. package/esm2020/lib/components/load-container/models/load-container-predicate-parameters.model.mjs +1 -1
  8. package/esm2020/lib/components/message/message.component.mjs +22 -0
  9. package/esm2020/lib/components/modal/directive/click/modal-open-on-click.directive.mjs +14 -12
  10. package/esm2020/lib/components/modal/directive/click/modal-open-on-click.model.mjs +2 -0
  11. package/esm2020/lib/components/modal/directive/open/modal-open.directive.mjs +10 -4
  12. package/esm2020/lib/components/modal/footer/default/default-modal-footer.component.mjs +16 -17
  13. package/esm2020/lib/components/modal/footer/default/default-modal-footer.constants.mjs +10 -0
  14. package/esm2020/lib/components/modal/header/default/default-modal-header.component.mjs +13 -14
  15. package/esm2020/lib/components/modal/header/default/default-modal-header.constants.mjs +9 -0
  16. package/esm2020/lib/components/modal/modal.component.mjs +43 -12
  17. package/esm2020/lib/components/modal/service/modal.event.mjs +1 -1
  18. package/esm2020/lib/components/modal/service/modal.service.mjs +17 -13
  19. package/esm2020/lib/components/toggle-switcher/toggle-switcher.component.mjs +10 -4
  20. package/esm2020/lib/constants/ui.constants.mjs +2 -1
  21. package/esm2020/lib/directives/click-outside/click-outside.directive.mjs +3 -2
  22. package/esm2020/lib/directives/if/if.directive.mjs +5 -1
  23. package/esm2020/lib/enums/index.mjs +5 -1
  24. package/esm2020/lib/enums/items-view.enum.mjs +7 -0
  25. package/esm2020/lib/enums/notification-type.enum.mjs +7 -0
  26. package/esm2020/lib/enums/select.enum.mjs +6 -0
  27. package/esm2020/lib/enums/state.enum.mjs +6 -0
  28. package/esm2020/lib/models/index.mjs +2 -2
  29. package/esm2020/lib/models/observable.model.mjs +10 -0
  30. package/esm2020/lib/models/select.model.mjs +2 -0
  31. package/esm2020/lib/ngx-sfc-common.module.mjs +15 -7
  32. package/esm2020/lib/pipes/index.mjs +2 -1
  33. package/esm2020/lib/pipes/repeat/repeat.pipe.mjs +14 -0
  34. package/esm2020/lib/pipes/sort-by/sort-by.pipe.mjs +4 -3
  35. package/esm2020/lib/pipes/switch-multi-case/switch-multi-case.pipe.mjs +2 -4
  36. package/esm2020/lib/services/index.mjs +2 -1
  37. package/esm2020/lib/services/reload/reload.service.mjs +21 -0
  38. package/esm2020/lib/utils/collections.utils.mjs +27 -1
  39. package/esm2020/lib/utils/common.utils.mjs +39 -7
  40. package/esm2020/lib/utils/date-time.utils.mjs +33 -1
  41. package/esm2020/lib/utils/http.utils.mjs +3 -1
  42. package/esm2020/lib/utils/index.mjs +4 -4
  43. package/esm2020/public-api.mjs +2 -1
  44. package/fesm2015/ngx-sfc-common.mjs +414 -157
  45. package/fesm2015/ngx-sfc-common.mjs.map +1 -1
  46. package/fesm2020/ngx-sfc-common.mjs +411 -155
  47. package/fesm2020/ngx-sfc-common.mjs.map +1 -1
  48. package/lib/components/checkmark/checkmark.component.d.ts +1 -0
  49. package/lib/components/index.d.ts +1 -0
  50. package/lib/components/load-container/enums/load-container-load-type.enum.d.ts +1 -0
  51. package/lib/components/load-container/enums/load-container-type.enum.d.ts +2 -1
  52. package/lib/components/load-container/load-container.component.d.ts +3 -2
  53. package/lib/components/load-container/models/load-container-predicate-parameters.model.d.ts +1 -0
  54. package/lib/components/message/message.component.d.ts +9 -0
  55. package/lib/components/modal/directive/click/modal-open-on-click.directive.d.ts +5 -2
  56. package/lib/components/modal/directive/click/modal-open-on-click.model.d.ts +4 -0
  57. package/lib/components/modal/directive/open/modal-open.directive.d.ts +2 -1
  58. package/lib/components/modal/footer/default/default-modal-footer.component.d.ts +4 -3
  59. package/lib/components/modal/footer/default/default-modal-footer.constants.d.ts +5 -0
  60. package/lib/components/modal/header/default/default-modal-header.component.d.ts +2 -2
  61. package/lib/components/modal/header/default/default-modal-header.constants.d.ts +4 -0
  62. package/lib/components/modal/modal.component.d.ts +14 -5
  63. package/lib/components/modal/service/modal.event.d.ts +1 -0
  64. package/lib/components/modal/service/modal.service.d.ts +7 -6
  65. package/lib/components/toggle-switcher/toggle-switcher.component.d.ts +4 -2
  66. package/lib/constants/ui.constants.d.ts +1 -0
  67. package/lib/directives/if/if.directive.d.ts +1 -1
  68. package/lib/enums/index.d.ts +4 -0
  69. package/lib/enums/items-view.enum.d.ts +5 -0
  70. package/lib/enums/notification-type.enum.d.ts +5 -0
  71. package/lib/enums/select.enum.d.ts +4 -0
  72. package/lib/enums/state.enum.d.ts +4 -0
  73. package/lib/models/index.d.ts +2 -0
  74. package/lib/models/observable.model.d.ts +8 -0
  75. package/lib/models/select.model.d.ts +4 -0
  76. package/lib/ngx-sfc-common.module.d.ts +14 -12
  77. package/lib/pipes/index.d.ts +1 -0
  78. package/lib/pipes/repeat/repeat.pipe.d.ts +7 -0
  79. package/lib/services/index.d.ts +1 -0
  80. package/lib/services/reload/reload.service.d.ts +9 -0
  81. package/lib/utils/collections.utils.d.ts +14 -0
  82. package/lib/utils/common.utils.d.ts +18 -6
  83. package/lib/utils/date-time.utils.d.ts +22 -1
  84. package/lib/utils/index.d.ts +3 -3
  85. package/package.json +1 -1
  86. package/public-api.d.ts +1 -0
  87. package/styles/_mixins.scss +11 -0
@@ -51,11 +51,6 @@ export function removePropertyFromObject(obj, property) {
51
51
  delete obj[property];
52
52
  }
53
53
  }
54
- /**
55
- * Deep merge object with others
56
- * @param target Object to merge
57
- * @param sources
58
- */
59
54
  /**
60
55
  * Deep merge object with others
61
56
  * @param target Object to merge
@@ -88,12 +83,20 @@ export function mergeDeep(target, ...sources) {
88
83
  export const nameof = (name) => name;
89
84
  /**
90
85
  * Determines if the input is a Number or something that can be coerced to a Number
91
- * @param - The input to be tested
86
+ * @param number The input to be tested
92
87
  * @returns - An indication if the input is a Number or can be coerced to a Number
93
88
  */
94
89
  export function isNumeric(number) {
95
90
  return !isNaN(parseFloat(number));
96
91
  }
92
+ /**
93
+ * Determines if the input is a string
94
+ * @param value The input to be tested
95
+ * @returns An indication if the input is a string
96
+ */
97
+ export function isString(value) {
98
+ return typeof value === 'string';
99
+ }
97
100
  /**
98
101
  * Return true if current browser is Chrome
99
102
  * @returns If current browser is Chrome
@@ -156,6 +159,11 @@ export function isEqual(obj1, obj2) {
156
159
  // If no errors, return true
157
160
  return true;
158
161
  }
162
+ function areFilesEqual() {
163
+ return obj1.lastModified === obj2.lastModified
164
+ && obj1.size === obj2.size
165
+ && obj1.type === obj2.type;
166
+ }
159
167
  function areFunctionsEqual() {
160
168
  return obj1.toString() === obj2.toString();
161
169
  }
@@ -175,6 +183,8 @@ export function isEqual(obj1, obj2) {
175
183
  return areArraysEqual();
176
184
  if (type === 'date')
177
185
  return areDatesEqual();
186
+ if (type === 'file')
187
+ return areFilesEqual();
178
188
  if (type === 'object')
179
189
  return areObjectsEqual();
180
190
  if (type === 'function')
@@ -191,4 +201,26 @@ export function generateGuid() {
191
201
  };
192
202
  return (S4() + S4() + "-" + S4() + "-" + S4() + "-" + S4() + "-" + S4() + S4() + S4());
193
203
  }
194
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLnV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNmYy1jb21tb24vc3JjL2xpYi91dGlscy9jb21tb24udXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNsQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUVyRDs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLFNBQVMsQ0FBSSxLQUEyQjtJQUN0RCxPQUFVLEtBQUssS0FBSyxTQUFTLElBQU8sS0FBSyxLQUFLLElBQUksQ0FBQztBQUNyRCxDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSxRQUFRLENBQUMsS0FBVTtJQUNqQyxPQUFPLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVE7V0FDaEQsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztXQUNyQixDQUFDLENBQUMsS0FBSyxZQUFZLElBQUksSUFBSSxLQUFLLFlBQVksSUFBSSxDQUFDLENBQUMsQ0FBQztBQUMxRCxDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSxXQUFXLENBQUMsSUFBUztJQUNuQyxPQUFPLElBQUksWUFBWSxVQUFVLENBQUM7QUFDcEMsQ0FBQztBQUVEOzs7Ozs7R0FNRztBQUNILE1BQU0sVUFBVSxtQkFBbUIsQ0FBQyxHQUFRLEVBQUUsUUFBZ0IsRUFBRSxRQUFhLElBQUk7SUFDL0UsSUFBSSxTQUFTLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxFQUFFO1FBQ3hELElBQUksTUFBTSxHQUFRLEVBQUUsQ0FBQztRQUNyQixNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsS0FBSyxDQUFDO1FBQ3pCLEdBQUcsR0FBRyxFQUFF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QU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUV6Qix1REFBdUQ7SUFDdkQsSUFBSSxJQUFJLEtBQUssT0FBTyxDQUFDLElBQUksQ0FBQztRQUFFLE9BQU8sS0FBSyxDQUFDO0lBRXpDLHdCQUF3QjtJQUN4QixJQUFJLElBQUksS0FBSyxPQUFPO1FBQUUsT0FBTyxjQUFjLEVBQUUsQ0FBQztJQUU5QyxJQUFJLElBQUksS0FBSyxNQUFNO1FBQUUsT0FBTyxhQUFhLEVBQUUsQ0FBQztJQUU1QyxJQUFJLElBQUksS0FBSyxRQUFRO1FBQUUsT0FBTyxlQUFlLEVBQUUsQ0FBQztJQUVoRCxJQUFJLElBQUksS0FBSyxVQUFVO1FBQUUsT0FBTyxpQkFBaUIsRUFBRSxDQUFDO0lBRXBELE9BQU8sa0JBQWtCLEVBQUUsQ0FBQztBQUM5QixDQUFDO0FBRUQ7OztHQUdHO0FBQ0gsTUFBTSxVQUFVLFlBQVk7SUFDMUIsSUFBSSxFQUFFLEdBQUc7UUFDUCxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3pFLENBQUMsQ0FBQztJQUNGLE9BQU8sQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFHLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBRyxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUcsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFHLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQztBQUN6RixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBpc0VxdWFsRGF0ZVRpbWVzIH0gZnJvbSAnLi9kYXRlLXRpbWUudXRpbHMnO1xyXG5cclxuLyoqXHJcbiAqIFJldHVybiB0cnVlIGlmIHZhbHVlIGRlZmluZWRcclxuICogQHBhcmFtIHZhbHVlIFZhbHVlIHRvIGNoZWNrXHJcbiAqIEByZXR1cm5zIFRydWUgaWYgdmFsdWUgaXMgbm90IG51bGwgYW5kIGRlZmluZWRcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBpc0RlZmluZWQ8VD4odmFsdWU6IFQgfCB1bmRlZmluZWQgfCBudWxsKTogYm9vbGVhbiB7XHJcbiAgcmV0dXJuIDxUPnZhbHVlICE9PSB1bmRlZmluZWQgJiYgPFQ+dmFsdWUgIT09IG51bGw7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBSZXR1cm4gdHJ1ZSBpZiB2YWx1ZSBpcyBvYmplY3RcclxuICogQHBhcmFtIHZhbHVlIFZhbHVlIHRvIGNoZWNrXHJcbiAqIEByZXR1cm5zIFRydWUgaWYgdmFsdWUgaXMgb2JqZWN0XHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gaXNPYmplY3QodmFsdWU6IGFueSk6IGJvb2xlYW4ge1xyXG4gIHJldHVybiAoaXNEZWZpbmVkKHZhbHVlKSAmJiB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnXHJcbiAgICAmJiAhQXJyYXkuaXNBcnJheSh2YWx1ZSlcclxuICAgICYmICEodmFsdWUgaW5zdGFuY2VvZiBEYXRlIHx8IHZhbHVlIGluc3RhbmNlb2YgRmlsZSkpO1xyXG59XHJcblxyXG4vKipcclxuICogUmV0dXJuIHRydWUgaWYgZGF0YSBpcyBvYnNlcnZhYmxlXHJcbiAqIEBwYXJhbSBkYXRhIE9iamVjdCB0byBjaGVja1xyXG4gKiBAcmV0dXJucyBUcnVlIGlmIGRhdGEgaXMgb2JzZXJ2YWJsZVxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGlzQXN5bmNEYXRhKGRhdGE6IGFueSkge1xyXG4gIHJldHVybiBkYXRhIGluc3RhbmNlb2YgT2JzZXJ2YWJsZTtcclxufVxyXG5cclxuLyoqXHJcbiAqIFJldHVybiBleHRlbmRlZCBvYmplY3Qgd2l0aCBuZXcgcHJvcGVydHlcclxuICogQHBhcmFtIG9iaiBPYmplY3QgdG8gZXh0ZW5kIGJ5IHByb3BlcnR5XHJcbiAqIEBwYXJhbSBwcm9wZXJ0eSBOZXcgcHJvcGVydHkgbmFtZSBcclxuICogQHBhcmFtIHZhbHVlIFZhbHVlIGZvciBuZXcgcHJvcGVydHlcclxuICogQHJldHVybnMgRXh0ZW5kZWQgb2JqZWN0IHdpdGggbmV3IHByb3BlcnR5XHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gYWRkUHJvcGVydHlUb09iamVjdChvYmo6IGFueSwgcHJvcGVydHk6IHN0cmluZywgdmFsdWU6IGFueSA9IG51bGwpOiBhbnkge1xyXG4gIGlmIChpc0RlZmluZWQocHJvcGVydHkpICYmICFvYmouaGFzT3duUHJvcGVydHkocHJvcGVydHkpKSB7XHJcbiAgICBsZXQgbmV3T2JqOiBhbnkgPSB7fTtcclxuICAgIG5ld09ialtwcm9wZXJ0eV0gPSB2YWx1ZTtcclxuICAgIG9iaiA9IHsgLi4ub2JqLCAuLi5uZXdPYmogfTtcclxuICB9XHJcblxyXG4gIHJldHVybiBvYmo7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBSZW1vdmUgcHJvcGVydHkgZnJvbSBvYmplY3RcclxuICogQHBhcmFtIG9iaiBPYmplY3QgZm9yIHJlbW92aW5nIHByb3BlcnR5XHJcbiAqIEBwYXJhbSBwcm9wZXJ0eSBQcm9wZXJ0eSBuYW1lIHRvIHJlbW92ZVxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIHJlbW92ZVByb3BlcnR5RnJvbU9iamVjdChvYmo6IGFueSwgcHJvcGVydHk6IHN0cmluZyk6IHZvaWQge1xyXG4gIGlmIChvYmouaGFzT3duUHJvcGVydHkocHJvcGVydHkpKSB7XHJcbiAgICBkZWxldGUgb2JqW3Byb3BlcnR5XTtcclxuICB9XHJcbn1cclxuXHJcbi8qKlxyXG4gICogRGVlcCBtZXJnZSBvYmplY3Qgd2l0aCBvdGhlcnNcclxuICAqIEBwYXJhbSB0YXJnZXQgT2JqZWN0IHRvIG1lcmdlXHJcbiAgKiBAcGFyYW0gc291cmNlcyBcclxuICAqL1xyXG5cclxuLyoqXHJcbiAqIERlZXAgbWVyZ2Ugb2JqZWN0IHdpdGggb3RoZXJzXHJcbiAqIEBwYXJhbSB0YXJnZXQgIE9iamVjdCB0byBtZXJnZVxyXG4gKiBAcGFyYW0gc291cmNlcyBPYmplY3RzIHRvIGJlIG1lcmdlZCB3aXRoIHRhcmdldFxyXG4gKiBAcmV0dXJucyBNZXJnZWQgb2JqZWN0XHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gbWVyZ2VEZWVwKHRhcmdldDogYW55LCAuLi5zb3VyY2VzOiBhbnlbXSk6IGFueSB7XHJcbiAgaWYgKCFzb3VyY2VzLmxlbmd0aClcclxuICAgIHJldHVybiB0YXJnZXQ7XHJcblxyXG4gIGNvbnN0IHNvdXJjZSA9IHNvdXJjZXMuc2hpZnQoKTtcclxuXHJcbiAgaWYgKGlzT2JqZWN0KHRhcmdldCkgJiYgaXNPYmplY3Qoc291cmNlKSkge1xyXG4gICAgZm9yIChjb25zdCBrZXkgaW4gc291cmNlKSB7XHJcbiAgICAgIGlmIChpc09iamVjdChzb3VyY2Vba2V5XSkpIHtcclxuICAgICAgICBpZiAoIXRhcmdldFtrZXldKSBPYmplY3QuYXNzaWduKHRhcmdldCwgeyBba2V5XToge30gfSk7XHJcbiAgICAgICAgbWVyZ2VEZWVwKHRhcmdldFtrZXldLCBzb3VyY2Vba2V5XSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgT2JqZWN0LmFzc2lnbih0YXJnZXQsIHsgW2tleV06IHNvdXJjZVtrZXldIH0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByZXR1cm4gbWVyZ2VEZWVwKHRhcmdldCwgLi4uc291cmNlcyk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBHZXQgdHlwZSdzIHByb3BlcnR5IG5hbWUgc2FmZXR5XHJcbiAqIEBwYXJhbSBuYW1lIEtleU9mIHByb3BlcnR5XHJcbiAqIEByZXR1cm5zIFR5cGUncyBwcm9wZXJ0eSBuYW1lXHJcbiAqL1xyXG5leHBvcnQgY29uc3QgbmFtZW9mID0gPFQ+KG5hbWU6IGtleW9mIFQpID0+IG5hbWU7XHJcblxyXG4vKipcclxuICAgKiBEZXRlcm1pbmVzIGlmIHRoZSBpbnB1dCBpcyBhIE51bWJlciBvciBzb21ldGhpbmcgdGhhdCBjYW4gYmUgY29lcmNlZCB0byBhIE51bWJlclxyXG4gICAqIEBwYXJhbSAtIFRoZSBpbnB1dCB0byBiZSB0ZXN0ZWRcclxuICAgKiBAcmV0dXJucyAtIEFuIGluZGljYXRpb24gaWYgdGhlIGlucHV0IGlzIGEgTnVtYmVyIG9yIGNhbiBiZSBjb2VyY2VkIHRvIGEgTnVtYmVyXHJcbiAgICovXHJcbmV4cG9ydCBmdW5jdGlvbiBpc051bWVyaWMobnVtYmVyOiBhbnkpOiBib29sZWFuIHtcclxuICByZXR1cm4gIWlzTmFOKHBhcnNlRmxvYXQobnVtYmVyKSk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBSZXR1cm4gdHJ1ZSBpZiBjdXJyZW50IGJyb3dzZXIgaXMgQ2hyb21lXHJcbiAqIEByZXR1cm5zIElmIGN1cnJlbnQgYnJvd3NlciBpcyBDaHJvbWVcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBpc0Nocm9tZUJyb3dzZXIoKTogYm9vbGVhbiB7XHJcbiAgcmV0dXJuIC9DaHJvbWUvLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCkgJiYgL0dvb2dsZSBJbmMvLnRlc3QobmF2aWdhdG9yLnZlbmRvcik7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBSZXR1cm4gdHJ1ZSBpZiB2YWx1ZSBpcyB2YWxpZCBlbWFpbCBhZGRyZXNzXHJcbiAqIEByZXR1cm5zIFRydWUgaWYgaXQncyB2YWxpZCBlbWFpbCBhZGRyZXNzXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gaXNFbWFpbCh2YWx1ZTogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgcmV0dXJuIGlzRGVmaW5lZCh2YWx1ZS5tYXRjaChcclxuICAgIC9eKChbXjw+KClbXFxdXFxcXC4sOzpcXHNAXFxcIl0rKFxcLltePD4oKVtcXF1cXFxcLiw7Olxcc0BcXFwiXSspKil8KFxcXCIuK1xcXCIpKUAoKFxcW1swLTldezEsM31cXC5bMC05XXsxLDN9XFwuWzAtOV17MSwzfVxcLlswLTldezEsM31cXF0pfCgoW2EtekEtWlxcLTAtOV0rXFwuKStbYS16QS1aXXsyLH0pKSQvXHJcbiAgKSk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBSZXR1cm4gdHJ1ZSBpZiBzdHJpbmcgaXMgXCJ0cnVlXCJcclxuICogQHJldHVybnMgcGFyc2VkIHN0cmluZyBhcyBib29sZWFuXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VCb29sZWFuKHZhbHVlOiBzdHJpbmcpOiBib29sZWFuIHtcclxuICByZXR1cm4gL150cnVlJC9pLnRlc3QodmFsdWUpO1xyXG59XHJcblxyXG4vKipcclxuICogUmV0dXJuIHRydWUgaWYgdmFsdWVzIGVxdWFsXHJcbiAqIEBwYXJhbSBvYmoxIEZpcnN0IHZhbHVlIHRvIGNvbXBhcmVcclxuICogQHBhcmFtIG9iajIgU2Vjb25kIHZhbHVlIHRvIGNvbXBhcmVcclxuICogQHJldHVybnMgVHJ1ZSBpZiBlcXVhbFxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGlzRXF1YWwob2JqMTogYW55LCBvYmoyOiBhbnkpIHtcclxuXHJcbiAgLyoqXHJcbiAgICogTW9yZSBhY2N1cmF0ZWx5IGNoZWNrIHRoZSB0eXBlIG9mIGEgSmF2YVNjcmlwdCBvYmplY3RcclxuICAgKiBAcGFyYW0gIHtPYmplY3R9IG9iaiBUaGUgb2JqZWN0XHJcbiAgICogQHJldHVybiB7U3RyaW5nfSAgICAgVGhlIG9iamVjdCB0eXBlXHJcbiAgICovXHJcbiAgZnVuY3Rpb24gZ2V0VHlwZShvYmo6IGFueSkge1xyXG4gICAgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChvYmopLnNsaWNlKDgsIC0xKS50b0xvd2VyQ2FzZSgpO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gYXJlQXJyYXlzRXF1YWwoKSB7XHJcblxyXG4gICAgLy8gQ2hlY2sgbGVuZ3RoXHJcbiAgICBpZiAob2JqMS5sZW5ndGggIT09IG9iajIubGVuZ3RoKSByZXR1cm4gZmFsc2U7XHJcblxyXG4gICAgLy8gQ2hlY2sgZWFjaCBpdGVtIGluIHRoZSBhcnJheVxyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBvYmoxLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIGlmICghaXNFcXVhbChvYmoxW2ldLCBvYmoyW2ldKSkgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIElmIG5vIGVycm9ycywgcmV0dXJuIHRydWVcclxuICAgIHJldHVybiB0cnVlO1xyXG5cclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGFyZU9iamVjdHNFcXVhbCgpIHtcclxuXHJcbiAgICBpZiAoT2JqZWN0LmtleXMob2JqMSkubGVuZ3RoICE9PSBPYmplY3Qua2V5cyhvYmoyKS5sZW5ndGgpIHJldHVybiBmYWxzZTtcclxuXHJcbiAgICAvLyBDaGVjayBlYWNoIGl0ZW0gaW4gdGhlIG9iamVjdFxyXG4gICAgZm9yIChsZXQga2V5IGluIG9iajEpIHtcclxuICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmoxLCBrZXkpKSB7XHJcbiAgICAgICAgaWYgKCFpc0VxdWFsKG9iajFba2V5XSwgb2JqMltrZXldKSkge1xyXG5cclxuICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvLyBJZiBubyBlcnJvcnMsIHJldHVybiB0cnVlXHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuXHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBhcmVGdW5jdGlvbnNFcXVhbCgpIHtcclxuICAgIHJldHVybiBvYmoxLnRvU3RyaW5nKCkgPT09IG9iajIudG9TdHJpbmcoKTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGFyZVByaW1hdGl2ZXNFcXVhbCgpIHtcclxuICAgIHJldHVybiBvYmoxID09PSBvYmoyO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gYXJlRGF0ZXNFcXVhbCgpIHtcclxuICAgIHJldHVybiBpc0VxdWFsRGF0ZVRpbWVzKG9iajEsIG9iajIpO1xyXG4gIH1cclxuXHJcbiAgLy8gR2V0IHRoZSBvYmplY3QgdHlwZVxyXG4gIGxldCB0eXBlID0gZ2V0VHlwZShvYmoxKTtcclxuXHJcbiAgLy8gSWYgdGhlIHR3byBpdGVtcyBhcmUgbm90IHRoZSBzYW1lIHR5cGUsIHJldHVybiBmYWxzZVxyXG4gIGlmICh0eXBlICE9PSBnZXRUeXBlKG9iajIpKSByZXR1cm4gZmFsc2U7XHJcblxyXG4gIC8vIENvbXBhcmUgYmFzZWQgb24gdHlwZVxyXG4gIGlmICh0eXBlID09PSAnYXJyYXknKSByZXR1cm4gYXJlQXJyYXlzRXF1YWwoKTtcclxuXHJcbiAgaWYgKHR5cGUgPT09ICdkYXRlJykgcmV0dXJuIGFyZURhdGVzRXF1YWwoKTtcclxuXHJcbiAgaWYgKHR5cGUgPT09ICdvYmplY3QnKSByZXR1cm4gYXJlT2JqZWN0c0VxdWFsKCk7XHJcblxyXG4gIGlmICh0eXBlID09PSAnZnVuY3Rpb24nKSByZXR1cm4gYXJlRnVuY3Rpb25zRXF1YWwoKTtcclxuXHJcbiAgcmV0dXJuIGFyZVByaW1hdGl2ZXNFcXVhbCgpO1xyXG59XHJcblxyXG4vKipcclxuICogR2VuZXJhdGUgdW5pcXVlIGlkZW50aWZpY2F0b3JcclxuICogQHJldHVybnMgUmFuZG9tIEdVSURcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBnZW5lcmF0ZUd1aWQoKTogc3RyaW5nIHtcclxuICBsZXQgUzQgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICByZXR1cm4gKCgoMSArIE1hdGgucmFuZG9tKCkpICogMHgxMDAwMCkgfCAwKS50b1N0cmluZygxNikuc3Vic3RyaW5nKDEpO1xyXG4gIH07XHJcbiAgcmV0dXJuIChTNCgpICsgUzQoKSArIFwiLVwiICsgUzQoKSArIFwiLVwiICsgUzQoKSArIFwiLVwiICsgUzQoKSArIFwiLVwiICsgUzQoKSArIFM0KCkgKyBTNCgpKTtcclxufSJdfQ==
204
+ /**
205
+ * Check if value is Json parsable string
206
+ * @param value string value
207
+ * @returns True if string can be JSON parsed
208
+ */
209
+ export function isJsonString(value) {
210
+ try {
211
+ const json = JSON.parse(value);
212
+ return (typeof json === 'object');
213
+ }
214
+ catch (e) {
215
+ return false;
216
+ }
217
+ }
218
+ /**
219
+ * Stop propagation and prevent default
220
+ * @param event Event object
221
+ */
222
+ export function stopAndPreventPropagation(event) {
223
+ event.preventDefault();
224
+ event.stopPropagation();
225
+ }
226
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLnV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNmYy1jb21tb24vc3JjL2xpYi91dGlscy9jb21tb24udXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNsQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUVyRDs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLFNBQVMsQ0FBSSxLQUEyQjtJQUN0RCxPQUFVLEtBQUssS0FBSyxTQUFTLElBQU8sS0FBSyxLQUFLLElBQUksQ0FBQztBQUNyRCxDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSxRQUFRLENBQUMsS0FBVTtJQUNqQyxPQUFPLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVE7V0FDaEQsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztXQUNyQixDQUFDLENBQUMsS0FBSyxZQUFZLElBQUksSUFBSSxLQUFLLFlBQVksSUFBSSxDQUFDLENBQUMsQ0FBQztBQUMxRCxDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSxXQUFXLENBQUMsSUFBUztJQUNuQyxPQUFPLElBQUksWUFBWSxVQUFVLENBQUM7QUFDcEMsQ0FBQztBQUVEOzs7Ozs7R0FNRztBQUNILE1BQU0sVUFBVSxtQkFBbUIsQ0FBQyxHQUFRLEVBQUUsUUFBZ0IsRUFBRSxRQUFhLElBQUk7SUFDL0UsSUFBSSxTQUFTLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxFQUFFO1FBQ3hELElBQUksTUFBTSxHQUFRLEVBQUUsQ0FBQztRQUNyQixNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsS0FBSyxDQUFDO1FBQ3pCLEdBQUcsR0FBRyxFQUFF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LEdBQUcsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFHLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBRyxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUcsR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQ3pGLENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLFlBQVksQ0FBQyxLQUFhO0lBQ3hDLElBQUk7UUFDRixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQy9CLE9BQU8sQ0FBQyxPQUFPLElBQUksS0FBSyxRQUFRLENBQUMsQ0FBQztLQUNuQztJQUFDLE9BQU8sQ0FBQyxFQUFFO1FBQ1YsT0FBTyxLQUFLLENBQUM7S0FDZDtBQUNILENBQUM7QUFFRDs7O0dBR0c7QUFDSCxNQUFNLFVBQVUseUJBQXlCLENBQUMsS0FBWTtJQUNwRCxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDdkIsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO0FBQzFCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGlzRXF1YWxEYXRlVGltZXMgfSBmcm9tICcuL2RhdGUtdGltZS51dGlscyc7XHJcblxyXG4vKipcclxuICogUmV0dXJuIHRydWUgaWYgdmFsdWUgZGVmaW5lZFxyXG4gKiBAcGFyYW0gdmFsdWUgVmFsdWUgdG8gY2hlY2tcclxuICogQHJldHVybnMgVHJ1ZSBpZiB2YWx1ZSBpcyBub3QgbnVsbCBhbmQgZGVmaW5lZFxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGlzRGVmaW5lZDxUPih2YWx1ZTogVCB8IHVuZGVmaW5lZCB8IG51bGwpOiBib29sZWFuIHtcclxuICByZXR1cm4gPFQ+dmFsdWUgIT09IHVuZGVmaW5lZCAmJiA8VD52YWx1ZSAhPT0gbnVsbDtcclxufVxyXG5cclxuLyoqXHJcbiAqIFJldHVybiB0cnVlIGlmIHZhbHVlIGlzIG9iamVjdFxyXG4gKiBAcGFyYW0gdmFsdWUgVmFsdWUgdG8gY2hlY2tcclxuICogQHJldHVybnMgVHJ1ZSBpZiB2YWx1ZSBpcyBvYmplY3RcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBpc09iamVjdCh2YWx1ZTogYW55KTogYm9vbGVhbiB7XHJcbiAgcmV0dXJuIChpc0RlZmluZWQodmFsdWUpICYmIHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCdcclxuICAgICYmICFBcnJheS5pc0FycmF5KHZhbHVlKVxyXG4gICAgJiYgISh2YWx1ZSBpbnN0YW5jZW9mIERhdGUgfHwgdmFsdWUgaW5zdGFuY2VvZiBGaWxlKSk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBSZXR1cm4gdHJ1ZSBpZiBkYXRhIGlzIG9ic2VydmFibGVcclxuICogQHBhcmFtIGRhdGEgT2JqZWN0IHRvIGNoZWNrXHJcbiAqIEByZXR1cm5zIFRydWUgaWYgZGF0YSBpcyBvYnNlcnZhYmxlXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gaXNBc3luY0RhdGEoZGF0YTogYW55KSB7XHJcbiAgcmV0dXJuIGRhdGEgaW5zdGFuY2VvZiBPYnNlcnZhYmxlO1xyXG59XHJcblxyXG4vKipcclxuICogUmV0dXJuIGV4dGVuZGVkIG9iamVjdCB3aXRoIG5ldyBwcm9wZXJ0eVxyXG4gKiBAcGFyYW0gb2JqIE9iamVjdCB0byBleHRlbmQgYnkgcHJvcGVydHlcclxuICogQHBhcmFtIHByb3BlcnR5IE5ldyBwcm9wZXJ0eSBuYW1lIFxyXG4gKiBAcGFyYW0gdmFsdWUgVmFsdWUgZm9yIG5ldyBwcm9wZXJ0eVxyXG4gKiBAcmV0dXJucyBFeHRlbmRlZCBvYmplY3Qgd2l0aCBuZXcgcHJvcGVydHlcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBhZGRQcm9wZXJ0eVRvT2JqZWN0KG9iajogYW55LCBwcm9wZXJ0eTogc3RyaW5nLCB2YWx1ZTogYW55ID0gbnVsbCk6IGFueSB7XHJcbiAgaWYgKGlzRGVmaW5lZChwcm9wZXJ0eSkgJiYgIW9iai5oYXNPd25Qcm9wZXJ0eShwcm9wZXJ0eSkpIHtcclxuICAgIGxldCBuZXdPYmo6IGFueSA9IHt9O1xyXG4gICAgbmV3T2JqW3Byb3BlcnR5XSA9IHZhbHVlO1xyXG4gICAgb2JqID0geyAuLi5vYmosIC4uLm5ld09iaiB9O1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIG9iajtcclxufVxyXG5cclxuLyoqXHJcbiAqIFJlbW92ZSBwcm9wZXJ0eSBmcm9tIG9iamVjdFxyXG4gKiBAcGFyYW0gb2JqIE9iamVjdCBmb3IgcmVtb3ZpbmcgcHJvcGVydHlcclxuICogQHBhcmFtIHByb3BlcnR5IFByb3BlcnR5IG5hbWUgdG8gcmVtb3ZlXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gcmVtb3ZlUHJvcGVydHlGcm9tT2JqZWN0KG9iajogYW55LCBwcm9wZXJ0eTogc3RyaW5nKTogdm9pZCB7XHJcbiAgaWYgKG9iai5oYXNPd25Qcm9wZXJ0eShwcm9wZXJ0eSkpIHtcclxuICAgIGRlbGV0ZSBvYmpbcHJvcGVydHldO1xyXG4gIH1cclxufVxyXG5cclxuLyoqXHJcbiAqIERlZXAgbWVyZ2Ugb2JqZWN0IHdpdGggb3RoZXJzXHJcbiAqIEBwYXJhbSB0YXJnZXQgIE9iamVjdCB0byBtZXJnZVxyXG4gKiBAcGFyYW0gc291cmNlcyBPYmplY3RzIHRvIGJlIG1lcmdlZCB3aXRoIHRhcmdldFxyXG4gKiBAcmV0dXJucyBNZXJnZWQgb2JqZWN0XHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gbWVyZ2VEZWVwKHRhcmdldDogYW55LCAuLi5zb3VyY2VzOiBhbnlbXSk6IGFueSB7XHJcbiAgaWYgKCFzb3VyY2VzLmxlbmd0aClcclxuICAgIHJldHVybiB0YXJnZXQ7XHJcblxyXG4gIGNvbnN0IHNvdXJjZSA9IHNvdXJjZXMuc2hpZnQoKTtcclxuXHJcbiAgaWYgKGlzT2JqZWN0KHRhcmdldCkgJiYgaXNPYmplY3Qoc291cmNlKSkge1xyXG4gICAgZm9yIChjb25zdCBrZXkgaW4gc291cmNlKSB7XHJcbiAgICAgIGlmIChpc09iamVjdChzb3VyY2Vba2V5XSkpIHtcclxuICAgICAgICBpZiAoIXRhcmdldFtrZXldKSBPYmplY3QuYXNzaWduKHRhcmdldCwgeyBba2V5XToge30gfSk7XHJcbiAgICAgICAgbWVyZ2VEZWVwKHRhcmdldFtrZXldLCBzb3VyY2Vba2V5XSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgT2JqZWN0LmFzc2lnbih0YXJnZXQsIHsgW2tleV06IHNvdXJjZVtrZXldIH0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByZXR1cm4gbWVyZ2VEZWVwKHRhcmdldCwgLi4uc291cmNlcyk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBHZXQgdHlwZSdzIHByb3BlcnR5IG5hbWUgc2FmZXR5XHJcbiAqIEBwYXJhbSBuYW1lIEtleU9mIHByb3BlcnR5XHJcbiAqIEByZXR1cm5zIFR5cGUncyBwcm9wZXJ0eSBuYW1lXHJcbiAqL1xyXG5leHBvcnQgY29uc3QgbmFtZW9mID0gPFQ+KG5hbWU6IGtleW9mIFQpID0+IG5hbWU7XHJcblxyXG4vKipcclxuICAgKiBEZXRlcm1pbmVzIGlmIHRoZSBpbnB1dCBpcyBhIE51bWJlciBvciBzb21ldGhpbmcgdGhhdCBjYW4gYmUgY29lcmNlZCB0byBhIE51bWJlclxyXG4gICAqIEBwYXJhbSBudW1iZXIgVGhlIGlucHV0IHRvIGJlIHRlc3RlZFxyXG4gICAqIEByZXR1cm5zIC0gQW4gaW5kaWNhdGlvbiBpZiB0aGUgaW5wdXQgaXMgYSBOdW1iZXIgb3IgY2FuIGJlIGNvZXJjZWQgdG8gYSBOdW1iZXJcclxuICAgKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGlzTnVtZXJpYyhudW1iZXI6IGFueSk6IGJvb2xlYW4ge1xyXG4gIHJldHVybiAhaXNOYU4ocGFyc2VGbG9hdChudW1iZXIpKTtcclxufVxyXG5cclxuLyoqXHJcbiAqICBEZXRlcm1pbmVzIGlmIHRoZSBpbnB1dCBpcyBhIHN0cmluZ1xyXG4gKiBAcGFyYW0gdmFsdWUgVGhlIGlucHV0IHRvIGJlIHRlc3RlZFxyXG4gKiBAcmV0dXJucyBBbiBpbmRpY2F0aW9uIGlmIHRoZSBpbnB1dCBpcyBhIHN0cmluZ1xyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGlzU3RyaW5nKHZhbHVlOiBhbnkpOiBib29sZWFuIHtcclxuICByZXR1cm4gdHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJztcclxufVxyXG5cclxuLyoqXHJcbiAqIFJldHVybiB0cnVlIGlmIGN1cnJlbnQgYnJvd3NlciBpcyBDaHJvbWVcclxuICogQHJldHVybnMgSWYgY3VycmVudCBicm93c2VyIGlzIENocm9tZVxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGlzQ2hyb21lQnJvd3NlcigpOiBib29sZWFuIHtcclxuICByZXR1cm4gL0Nocm9tZS8udGVzdChuYXZpZ2F0b3IudXNlckFnZW50KSAmJiAvR29vZ2xlIEluYy8udGVzdChuYXZpZ2F0b3IudmVuZG9yKTtcclxufVxyXG5cclxuLyoqXHJcbiAqIFJldHVybiB0cnVlIGlmIHZhbHVlIGlzIHZhbGlkIGVtYWlsIGFkZHJlc3NcclxuICogQHJldHVybnMgVHJ1ZSBpZiBpdCdzIHZhbGlkIGVtYWlsIGFkZHJlc3NcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBpc0VtYWlsKHZhbHVlOiBzdHJpbmcpOiBib29sZWFuIHtcclxuICByZXR1cm4gaXNEZWZpbmVkKHZhbHVlLm1hdGNoKFxyXG4gICAgL14oKFtePD4oKVtcXF1cXFxcLiw7Olxcc0BcXFwiXSsoXFwuW148PigpW1xcXVxcXFwuLDs6XFxzQFxcXCJdKykqKXwoXFxcIi4rXFxcIikpQCgoXFxbWzAtOV17MSwzfVxcLlswLTldezEsM31cXC5bMC05XXsxLDN9XFwuWzAtOV17MSwzfVxcXSl8KChbYS16QS1aXFwtMC05XStcXC4pK1thLXpBLVpdezIsfSkpJC9cclxuICApKTtcclxufVxyXG5cclxuLyoqXHJcbiAqIFJldHVybiB0cnVlIGlmIHN0cmluZyBpcyBcInRydWVcIlxyXG4gKiBAcmV0dXJucyBwYXJzZWQgc3RyaW5nIGFzIGJvb2xlYW5cclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBwYXJzZUJvb2xlYW4odmFsdWU6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gIHJldHVybiAvXnRydWUkL2kudGVzdCh2YWx1ZSk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBSZXR1cm4gdHJ1ZSBpZiB2YWx1ZXMgZXF1YWxcclxuICogQHBhcmFtIG9iajEgRmlyc3QgdmFsdWUgdG8gY29tcGFyZVxyXG4gKiBAcGFyYW0gb2JqMiBTZWNvbmQgdmFsdWUgdG8gY29tcGFyZVxyXG4gKiBAcmV0dXJucyBUcnVlIGlmIGVxdWFsXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gaXNFcXVhbChvYmoxOiBhbnksIG9iajI6IGFueSkge1xyXG4gIC8qKlxyXG4gICAqIE1vcmUgYWNjdXJhdGVseSBjaGVjayB0aGUgdHlwZSBvZiBhIEphdmFTY3JpcHQgb2JqZWN0XHJcbiAgICogQHBhcmFtICB7T2JqZWN0fSBvYmogVGhlIG9iamVjdFxyXG4gICAqIEByZXR1cm4ge1N0cmluZ30gICAgIFRoZSBvYmplY3QgdHlwZVxyXG4gICAqL1xyXG4gIGZ1bmN0aW9uIGdldFR5cGUob2JqOiBhbnkpIHtcclxuICAgIHJldHVybiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwob2JqKS5zbGljZSg4LCAtMSkudG9Mb3dlckNhc2UoKTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGFyZUFycmF5c0VxdWFsKCkge1xyXG5cclxuICAgIC8vIENoZWNrIGxlbmd0aFxyXG4gICAgaWYgKG9iajEubGVuZ3RoICE9PSBvYmoyLmxlbmd0aCkgcmV0dXJuIGZhbHNlO1xyXG5cclxuICAgIC8vIENoZWNrIGVhY2ggaXRlbSBpbiB0aGUgYXJyYXlcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgb2JqMS5sZW5ndGg7IGkrKykge1xyXG4gICAgICBpZiAoIWlzRXF1YWwob2JqMVtpXSwgb2JqMltpXSkpIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBJZiBubyBlcnJvcnMsIHJldHVybiB0cnVlXHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuXHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBhcmVPYmplY3RzRXF1YWwoKSB7XHJcblxyXG4gICAgaWYgKE9iamVjdC5rZXlzKG9iajEpLmxlbmd0aCAhPT0gT2JqZWN0LmtleXMob2JqMikubGVuZ3RoKSByZXR1cm4gZmFsc2U7XHJcblxyXG4gICAgLy8gQ2hlY2sgZWFjaCBpdGVtIGluIHRoZSBvYmplY3RcclxuICAgIGZvciAobGV0IGtleSBpbiBvYmoxKSB7XHJcbiAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqMSwga2V5KSkge1xyXG4gICAgICAgIGlmICghaXNFcXVhbChvYmoxW2tleV0sIG9iajJba2V5XSkpIHtcclxuICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvLyBJZiBubyBlcnJvcnMsIHJldHVybiB0cnVlXHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGFyZUZpbGVzRXF1YWwoKSB7XHJcbiAgICByZXR1cm4gb2JqMS5sYXN0TW9kaWZpZWQgPT09IG9iajIubGFzdE1vZGlmaWVkXHJcbiAgICAgICYmIG9iajEuc2l6ZSA9PT0gb2JqMi5zaXplXHJcbiAgICAgICYmIG9iajEudHlwZSA9PT0gb2JqMi50eXBlO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gYXJlRnVuY3Rpb25zRXF1YWwoKSB7XHJcbiAgICByZXR1cm4gb2JqMS50b1N0cmluZygpID09PSBvYmoyLnRvU3RyaW5nKCk7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBhcmVQcmltYXRpdmVzRXF1YWwoKSB7XHJcbiAgICByZXR1cm4gb2JqMSA9PT0gb2JqMjtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGFyZURhdGVzRXF1YWwoKSB7XHJcbiAgICByZXR1cm4gaXNFcXVhbERhdGVUaW1lcyhvYmoxLCBvYmoyKTtcclxuICB9XHJcblxyXG4gIC8vIEdldCB0aGUgb2JqZWN0IHR5cGVcclxuICBsZXQgdHlwZSA9IGdldFR5cGUob2JqMSk7XHJcblxyXG4gIC8vIElmIHRoZSB0d28gaXRlbXMgYXJlIG5vdCB0aGUgc2FtZSB0eXBlLCByZXR1cm4gZmFsc2VcclxuICBpZiAodHlwZSAhPT0gZ2V0VHlwZShvYmoyKSkgcmV0dXJuIGZhbHNlO1xyXG5cclxuICAvLyBDb21wYXJlIGJhc2VkIG9uIHR5cGVcclxuICBpZiAodHlwZSA9PT0gJ2FycmF5JykgcmV0dXJuIGFyZUFycmF5c0VxdWFsKCk7XHJcblxyXG4gIGlmICh0eXBlID09PSAnZGF0ZScpIHJldHVybiBhcmVEYXRlc0VxdWFsKCk7XHJcblxyXG4gIGlmICh0eXBlID09PSAnZmlsZScpIHJldHVybiBhcmVGaWxlc0VxdWFsKCk7XHJcblxyXG4gIGlmICh0eXBlID09PSAnb2JqZWN0JykgcmV0dXJuIGFyZU9iamVjdHNFcXVhbCgpO1xyXG5cclxuICBpZiAodHlwZSA9PT0gJ2Z1bmN0aW9uJykgcmV0dXJuIGFyZUZ1bmN0aW9uc0VxdWFsKCk7XHJcblxyXG4gIHJldHVybiBhcmVQcmltYXRpdmVzRXF1YWwoKTtcclxufVxyXG5cclxuLyoqXHJcbiAqIEdlbmVyYXRlIHVuaXF1ZSBpZGVudGlmaWNhdG9yXHJcbiAqIEByZXR1cm5zIFJhbmRvbSBHVUlEXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gZ2VuZXJhdGVHdWlkKCk6IHN0cmluZyB7XHJcbiAgbGV0IFM0ID0gZnVuY3Rpb24gKCkge1xyXG4gICAgcmV0dXJuICgoKDEgKyBNYXRoLnJhbmRvbSgpKSAqIDB4MTAwMDApIHwgMCkudG9TdHJpbmcoMTYpLnN1YnN0cmluZygxKTtcclxuICB9O1xyXG4gIHJldHVybiAoUzQoKSArIFM0KCkgKyBcIi1cIiArIFM0KCkgKyBcIi1cIiArIFM0KCkgKyBcIi1cIiArIFM0KCkgKyBcIi1cIiArIFM0KCkgKyBTNCgpICsgUzQoKSk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBDaGVjayBpZiB2YWx1ZSBpcyBKc29uIHBhcnNhYmxlIHN0cmluZ1xyXG4gKiBAcGFyYW0gdmFsdWUgc3RyaW5nIHZhbHVlXHJcbiAqIEByZXR1cm5zIFRydWUgaWYgc3RyaW5nIGNhbiBiZSBKU09OIHBhcnNlZFxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGlzSnNvblN0cmluZyh2YWx1ZTogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgdHJ5IHtcclxuICAgIGNvbnN0IGpzb24gPSBKU09OLnBhcnNlKHZhbHVlKTtcclxuICAgIHJldHVybiAodHlwZW9mIGpzb24gPT09ICdvYmplY3QnKTtcclxuICB9IGNhdGNoIChlKSB7XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG59XHJcblxyXG4vKipcclxuICogU3RvcCBwcm9wYWdhdGlvbiBhbmQgcHJldmVudCBkZWZhdWx0XHJcbiAqIEBwYXJhbSBldmVudCBFdmVudCBvYmplY3RcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBzdG9wQW5kUHJldmVudFByb3BhZ2F0aW9uKGV2ZW50OiBFdmVudCk6IHZvaWQge1xyXG4gIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbn0iXX0=
@@ -273,6 +273,36 @@ export function isDateTimeGreatOrEqual(date1, date2) {
273
273
  return new Date(date1.getFullYear(), date1.getMonth(), date1.getDate(), date1.getHours(), date1.getMinutes())
274
274
  >= new Date(date2.getFullYear(), date2.getMonth(), date2.getDate(), date2.getHours(), date2.getMinutes());
275
275
  }
276
+ /**
277
+ * Return true if first time greater or equal to second time
278
+ * @param date1 First date time value
279
+ * @param date2 Second date time value
280
+ * @returns True if first time greater or equal to second time
281
+ */
282
+ export function isTimeGreatOrEqual(date1, date2) {
283
+ return new Date(0, 0, 0, date1.getHours(), date1.getMinutes())
284
+ >= new Date(0, 0, 0, date2.getHours(), date2.getMinutes());
285
+ }
286
+ /**
287
+ * Return true if first time less or equal to second time
288
+ * @param date1 First date time value
289
+ * @param date2 Second date time value
290
+ * @returns True if first time less or equal to second time
291
+ */
292
+ export function isDateTimeLessOrEqual(date1, date2) {
293
+ return new Date(0, 0, 0, date1.getHours(), date1.getMinutes())
294
+ <= new Date(0, 0, 0, date2.getHours(), date2.getMinutes());
295
+ }
296
+ /**
297
+ * Return true if first time less or equal to second time
298
+ * @param date1 First date time value
299
+ * @param date2 Second date time value
300
+ * @returns True if first time less or equal to second time
301
+ */
302
+ export function isTimeLessOrEqual(date1, date2) {
303
+ return new Date(date1.getFullYear(), date1.getMonth(), date1.getDate(), date1.getHours(), date1.getMinutes())
304
+ <= new Date(date2.getFullYear(), date2.getMonth(), date2.getDate(), date2.getHours(), date2.getMinutes());
305
+ }
276
306
  /**
277
307
  * Convert UTC date to local
278
308
  * @param date Date value
@@ -308,6 +338,8 @@ export function convertDateToTimestamp(date, locale = DateTimeConstants.DEFAULT_
308
338
  * @returns Age
309
339
  */
310
340
  export function getAge(birthdate) {
341
+ if (!birthdate)
342
+ return null;
311
343
  const now = new Date();
312
344
  let age = now.getFullYear() - birthdate.getFullYear();
313
345
  const monthDifference = now.getMonth() - birthdate.getMonth();
@@ -316,4 +348,4 @@ export function getAge(birthdate) {
316
348
  }
317
349
  return age;
318
350
  }
319
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS10aW1lLnV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNmYy1jb21tb24vc3JjL2xpYi91dGlscy9kYXRlLXRpbWUudXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNqRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFM0M7Ozs7O0dBS0c7QUFDSCxNQUFNLFVBQVUsVUFBVSxDQUFDLElBQVUsRUFBRSxNQUFjO0lBQ2pELE1BQU0sTUFBTSxHQUFHLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzlCLE1BQU0sQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDMUIsT0FBTyxNQUFNLENBQUM7QUFDbEIsQ0FBQztBQUVEOzs7OztHQUtHO0FBQ0gsTUFBTSxVQUFVLFFBQVEsQ0FBQyxJQUFVLEVBQUUsSUFBWTtJQUM3QyxNQUFNLE1BQU0sR0FBRyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM5QixNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3RCLE9BQU8sTUFBTSxDQUFDO0FBQ2xCLENBQUM7QUFFRDs7Ozs7R0FLRztBQUNILE1BQU0sVUFBVSxNQUFNLENBQUMsSUFBVSxFQUFFLFNBQWlCO0lBQ2hELE1BQU0sUUFBUSxHQUFHLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2hDLFFBQVEsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDNUIsT0FBTyxRQUFRLENBQUM7QUFDcEIsQ0FBQztBQUVEOzs7OztHQUtHO0FBQ0gsTUFBTSxVQUFVLE9BQU8sQ0FBQyxJQUFVLEVBQUUsSUFBWTtJQUM1QyxNQUFNLE1BQU0s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RyxDQUFDO0FBQ2YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGZvcm1hdERhdGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XHJcbmltcG9ydCB7IERhdGVUaW1lQ29uc3RhbnRzIH0gZnJvbSBcIi4uL2NvbnN0YW50c1wiO1xyXG5pbXBvcnQgeyBpc0RlZmluZWQgfSBmcm9tIFwiLi9jb21tb24udXRpbHNcIjtcclxuXHJcbi8qKlxyXG4gKiBTZXQgbWludXRlcyBmb3IgZGF0ZVxyXG4gKiBAcGFyYW0gZGF0ZSBEYXRlIHZhbHVlXHJcbiAqIEBwYXJhbSBtaW51dGUgTWludXRlIHZhbHVlXHJcbiAqIEByZXR1cm5zIERhdGUgd2l0aCBtaW51dGUgdmFsdWVcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBzZXRNaW51dGVzKGRhdGU6IERhdGUsIG1pbnV0ZTogbnVtYmVyKTogRGF0ZSB7XHJcbiAgICBjb25zdCByZXN1bHQgPSBuZXcgRGF0ZShkYXRlKTtcclxuICAgIHJlc3VsdC5zZXRNaW51dGVzKG1pbnV0ZSk7XHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG59XHJcblxyXG4vKipcclxuICogU2V0IGhvdXJzIGZvciBkYXRlXHJcbiAqIEBwYXJhbSBkYXRlIERhdGUgdmFsdWVcclxuICogQHBhcmFtIGhvdXIgSG91ciB2YWx1ZVxyXG4gKiBAcmV0dXJucyBEYXRlIHdpdGggaG91ciB2YWx1ZVxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIHNldEhvdXJzKGRhdGU6IERhdGUsIGhvdXI6IG51bWJlcik6IERhdGUge1xyXG4gICAgY29uc3QgcmVzdWx0ID0gbmV3IERhdGUoZGF0ZSk7XHJcbiAgICByZXN1bHQuc2V0SG91cnMoaG91cik7XHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG59XHJcblxyXG4vKipcclxuICogU2V0IGRheSBmb3IgZGF0ZSB2YWx1ZVxyXG4gKiBAcGFyYW0gZGF0ZSBEYXRlIHZhbHVlXHJcbiAqIEBwYXJhbSBkYXlOdW1iZXIgRGF5IG51bWJlciBcclxuICogQHJldHVybnMgRGF0ZSB3aXRoIGRheSBudW1iZXJcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBzZXREYXkoZGF0ZTogRGF0ZSwgZGF5TnVtYmVyOiBudW1iZXIpOiBEYXRlIHtcclxuICAgIGNvbnN0IG5leHREYXRlID0gbmV3IERhdGUoZGF0ZSk7XHJcbiAgICBuZXh0RGF0ZS5zZXREYXRlKGRheU51bWJlcik7XHJcbiAgICByZXR1cm4gbmV4dERhdGU7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBTZXQgeWVhciBmb3IgZGF0ZVxyXG4gKiBAcGFyYW0gZGF0ZSBEYXRlIHZhbHVlXHJcbiAqIEBwYXJhbSB5ZWFyIFllYXIgdmFsdWVcclxuICogQHJldHVybnMgRGF0ZSB3aXRoIHllYXIgdmFsdWVcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBzZXRZZWFyKGRhdGU6IERhdGUsIHllYXI6IG51bWJlcik6IERhdGUge1xyXG4gICAgY29uc3QgcmVzdWx0ID0gbmV3IERhdGUoZGF0ZSk7XHJcbiAgICByZXN1bHQuc2V0RnVsbFllYXIoeWVhcik7XHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG59XHJcblxyXG4vKipcclxuICogU2V0IHNlY29uZHMgZm9yIGRhdGVcclxuICogQHBhcmFtIGRhdGUgRGF0ZSB2YWx1ZVxyXG4gKiBAcGFyYW0gdmFsdWUgU2Vjb25kcyB2YWx1ZVxyXG4gKiBAcmV0dXJucyBEYXRlIHdpdGggbWludXRlIHZhbHVlXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gc2V0U2Vjb25kcyhkYXRlOiBEYXRlLCB2YWx1ZTogbnVtYmVyKTogRGF0ZSB7XHJcbiAgICBjb25zdCByZXN1bHQgPSBuZXcgRGF0ZShkYXRlKTtcclxuICAgIHJlc3VsdC5zZXRTZWNvbmRzKHZhbHVlKTtcclxuICAgIHJldHVybiByZXN1bHQ7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBTZXQgbWlsbGlzZWNvbmRzIGZvciBkYXRlXHJcbiAqIEBwYXJhbSBkYXRlIERhdGUgdmFsdWVcclxuICogQHBhcmFtIHZhbHVlIE1pbGxpc2Vjb25kcyB2YWx1ZVxyXG4gKiBAcmV0dXJucyBEYXRlIHdpdGggbWludXRlIHZhbHVlXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gc2V0TWlsbGlzZWNvbmRzKGRhdGU6IERhdGUsIHZhbHVlOiBudW1iZXIpOiBEYXRlIHtcclxuICAgIGNvbnN0IHJlc3VsdCA9IG5ldyBEYXRlKGRhdGUpO1xyXG4gICAgcmVzdWx0LnNldE1pbGxpc2Vjb25kcyh2YWx1ZSk7XHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG59XHJcblxyXG4vKipcclxuICogU2V0IDAgZm9yIHNlY29uZHMgYW5kIG1pbGxpc2Vjb25kcyBvZiBkYXRlXHJcbiAqIEBwYXJhbSBkYXRlIERhdGUgdmFsdWVcclxuICogQHJldHVybnMgRGF0ZSB3aXRoIG1pbnV0ZSB2YWx1ZVxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIHNldERlZmF1bHRTZWNvbmRzQW5kTWlsaXNlY29uZHMoZGF0ZTogRGF0ZSk6IERhdGUge1xyXG4gICAgY29uc3QgcmVzdWx0ID0gbmV3IERhdGUoZGF0ZSk7XHJcbiAgICByZXN1bHQuc2V0U2Vjb25kcygwKTtcclxuICAgIHJlc3VsdC5zZXRNaWxsaXNlY29uZHMoMCk7XHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG59XHJcblxyXG4vKipcclxuICogR2V0IG5leHQgZGF0ZVxyXG4gKiBAcGFyYW0gZGF0ZSBEYXRlIHZhbHVlXHJcbiAqIEByZXR1cm5zIE5leHQgZGF0ZVxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGdldE5leHREYXRlKGRhdGU6IERhdGUpOiBEYXRlIHtcclxuICAgIGNvbnN0IG5leHREYXRlID0gbmV3IERhdGUoZGF0ZSk7XHJcbiAgICBuZXh0RGF0ZS5zZXREYXRlKGRhdGUuZ2V0RGF0ZSgpICsgMSlcclxuICAgIHJldHVybiBuZXh0RGF0ZTtcclxufVxyXG5cclxuLyoqXHJcbiAqIEdldCBwcmV2aW91cyBkYXRlXHJcbiAqIEBwYXJhbSBkYXRlIERhdGUgdmFsdWVcclxuICogQHJldHVybnMgUHJldmlvdXMgZGF0ZVxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGdldFByZXZpb3VzRGF0ZShkYXRlOiBEYXRlKTogRGF0ZSB7XHJcbiAgICBjb25zdCBuZXh0RGF0ZSA9IG5ldyBEYXRlKGRhdGUpO1xyXG4gICAgbmV4dERhdGUuc2V0RGF0ZShkYXRlLmdldERhdGUoKSAtIDEpXHJcbiAgICByZXR1cm4gbmV4dERhdGU7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBHZXQgbmV4dCBtb250aCBhcyBkYXRlXHJcbiAqIEBwYXJhbSBkYXRlIERhdGUgdmFsdWVcclxuICogQHJldHVybnMgTmV4dCBtb250aCBhcyBkYXRlXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gZ2V0TmV4dE1vbnRoKGRhdGU6IERhdGUpOiBEYXRlIHtcclxuICAgIGNvbnN0IG5leHRNb250aCA9IG5ldyBEYXRlKGRhdGUpO1xyXG4gICAgbmV4dE1vbnRoLnNldE1vbnRoKGRhdGUuZ2V0TW9udGgoKSArIDEpXHJcbiAgICByZXR1cm4gbmV4dE1vbnRoO1xyXG59XHJcblxyXG4vKipcclxuICogR2V0IHByZXZpb3VzIG1vbnRoIGFzIGRhdGVcclxuICogQHBhcmFtIGRhdGUgRGF0ZSB2YWx1ZVxyXG4gKiBAcmV0dXJucyBQcmV2aW91cyBtb250aCBhcyBkYXRlXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gZ2V0UHJldmlvdXNNb250aChkYXRlOiBEYXRlKTogRGF0ZSB7XHJcbiAgICBjb25zdCBwcmV2TW9udGggPSBuZXcgRGF0ZShkYXRlKTtcclxuICAgIHByZXZNb250aC5zZXRNb250aChkYXRlLmdldE1vbnRoKCkgLSAxKTtcclxuICAgIHJldHVybiBwcmV2TW9udGg7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBHZXQgbmV4dCB5ZWFyIGFzIGRhdGVcclxuICogQHBhcmFtIGRhdGUgRGF0ZSB2YWx1ZVxyXG4gKiBAcmV0dXJucyBOZXh0IHllYXIgYXMgZGF0ZVxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGdldE5leHRZZWFyKGRhdGU6IERhdGUpOiBEYXRlIHtcclxuICAgIGNvbnN0IG5leHRZZWFyID0gbmV3IERhdGUoZGF0ZSk7XHJcbiAgICBuZXh0WWVhci5zZXRGdWxsWWVhcihkYXRlLmdldEZ1bGxZZWFyKCkgKyAxKTtcclxuICAgIHJldHVybiBuZXh0WWVhcjtcclxufVxyXG5cclxuLyoqXHJcbiAqIEdldCBwcmV2aW91cyB5ZWFyIGFzIGRhdGVcclxuICogQHBhcmFtIGRhdGUgRGF0ZSB2YWx1ZVxyXG4gKiBAcmV0dXJucyBQcmV2aW91cyB5ZWFyIGFzIGRhdGVcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRQcmV2aW91c1llYXIoZGF0ZTogRGF0ZSk6IERhdGUge1xyXG4gICAgY29uc3QgcHJldlllYXIgPSBuZXcgRGF0ZShkYXRlKTtcclxuICAgIHByZXZZZWFyLnNldEZ1bGxZZWFyKGRhdGUuZ2V0RnVsbFllYXIoKSAtIDEpO1xyXG4gICAgcmV0dXJuIHByZXZZZWFyO1xyXG59XHJcblxyXG4vKipcclxuICogUmV0dXJuIGZpcnN0IGRheSBvZiBtb250aCBhcyBkYXRlIGZyb20gZGF0ZSB2YWx1ZVxyXG4gKiBAcGFyYW0gZGF0ZSBEYXRlIHZhbHVlXHJcbiAqIEByZXR1cm5zIEZpcnN0IGRheSBvZiBtb250aCBhcyBkYXRlXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gZ2V0Rmlyc3REYXlPZk1vbnRoKGRhdGU6IERhdGUpOiBEYXRlIHtcclxuICAgIGlmIChpc0RlZmluZWQoZGF0ZSkgJiYgZGF0ZSBpbnN0YW5jZW9mIERhdGUpIHtcclxuICAgICAgICBjb25zdCB5ZWFyID0gZGF0ZS5nZXRGdWxsWWVhcigpLFxyXG4gICAgICAgICAgICBtb250aCA9IGRhdGUuZ2V0TW9udGgoKTtcclxuICAgICAgICByZXR1cm4gbmV3IERhdGUoeWVhciwgbW9udGgsIDEpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBkYXRlO1xyXG59XHJcblxyXG4vKipcclxuICogUmV0dXJuIGxhc3QgZGF5IG9mIG1vbnRoIGFzIGRhdGUgZnJvbSBkYXRlIHZhbHVlXHJcbiAqIEBwYXJhbSBkYXRlIERhdGUgdmFsdWVcclxuICogQHJldHVybnMgTGFzdCBkYXkgb2YgbW9udGggYXMgZGF0ZVxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGdldExhc3REYXlPZk1vbnRoKGRhdGU6IERhdGUpOiBEYXRlIHtcclxuICAgIGlmIChpc0RlZmluZWQoZGF0ZSkgJiYgZGF0ZSBpbnN0YW5jZW9mIERhdGUpIHtcclxuICAgICAgICBjb25zdCB5ZWFyID0gZGF0ZS5nZXRGdWxsWWVhcigpLFxyXG4gICAgICAgICAgICBtb250aCA9IGRhdGUuZ2V0TW9udGgoKTtcclxuICAgICAgICByZXR1cm4gbmV3IERhdGUoeWVhciwgbW9udGggKyAxLCAwKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gZGF0ZTtcclxufVxyXG5cclxuLyoqXHJcbiAqIFJldHVybiBmaXJzdCBkYXkgb2YgeWVhciBhcyBkYXRlIGZyb20gZGF0ZSB2YWx1ZVxyXG4gKiBAcGFyYW0gZGF0ZSBEYXRlIHZhbHVlXHJcbiAqIEByZXR1cm5zIEZpcnN0IGRheSBvZiB5ZWFyIGFzIGRhdGVcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRGaXJzdERheU9mWWVhcihkYXRlOiBEYXRlKTogRGF0ZSB7XHJcbiAgICBpZiAoaXNEZWZpbmVkKGRhdGUpICYmIGRhdGUgaW5zdGFuY2VvZiBEYXRlKSB7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBEYXRlKGRhdGUuZ2V0RnVsbFllYXIoKSwgMCwgMSk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGRhdGU7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBSZXR1cm4gbGFzdCBkYXkgb2YgeWVhciBhcyBkYXRlIGZyb20gZGF0ZSB2YWx1ZVxyXG4gKiBAcGFyYW0gZGF0ZSBEYXRlIHZhbHVlXHJcbiAqIEByZXR1cm5zIExhc3QgZGF5IG9mIHllYXIgYXMgZGF0ZVxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGdldExhc3REYXlPZlllYXIoZGF0ZTogRGF0ZSk6IERhdGUge1xyXG4gICAgaWYgKGlzRGVmaW5lZChkYXRlKSAmJiBkYXRlIGluc3RhbmNlb2YgRGF0ZSkge1xyXG4gICAgICAgIHJldHVybiBuZXcgRGF0ZShkYXRlLmdldEZ1bGxZZWFyKCksIDEyLCAwKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gZGF0ZTtcclxufVxyXG5cclxuLyoqXHJcbiAqIFJldHVybiBmaXJzdCBkYXkgb2YgbW9udGggYXMgZGF0ZVxyXG4gKiBAcGFyYW0geWVhciBZZWFyIHZhbHVlXHJcbiAqIEBwYXJhbSBtb250aCBNb250aCB2YWx1ZVxyXG4gKiBAcmV0dXJucyBGaXJzdCBkYXkgb2YgbW9udGhcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRGaXJzdERheU9mTW9udGhCeVllYXJBbmRNb250aCh5ZWFyOiBudW1iZXIsIG1vbnRoOiBudW1iZXIpOiBEYXRlIHtcclxuICAgIHJldHVybiBuZXcgRGF0ZSh5ZWFyLCBtb250aCwgMSk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBSZXR1cm4gbGFzdCBkYXkgb2YgbW9udGggYXMgZGF0ZVxyXG4gKiBAcGFyYW0geWVhciBZZWFyIHZhbHVlXHJcbiAqIEBwYXJhbSBtb250aCBNb250aCB2YWx1ZVxyXG4gKiBAcmV0dXJucyBMYXN0IGRheSBvZiBtb250aFxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGdldExhc3REYXlPZk1vbnRoQnlZZWFyQW5kTW9udGgoeWVhcjogbnVtYmVyLCBtb250aDogbnVtYmVyKTogRGF0ZSB7XHJcbiAgICByZXR1cm4gbmV3IERhdGUoeWVhciwgbW9udGggKyAxLCAwKTtcclxufVxyXG5cclxuLyoqXHJcbiAqIFJldHVybiB3ZWVrIG51bWJlciBpbiBtb250aCBmcm9tIGRhdGUgdmFsdWVcclxuICogQHBhcmFtIGRhdGUgRGF0ZSB2YWx1ZVxyXG4gKiBAcmV0dXJucyBXZWVrIG51bWJlclxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGdldFdlZWtzTnVtYmVySW5Nb250aChkYXRlOiBEYXRlKTogbnVtYmVyIHtcclxuICAgIGNvbnN0IGZpcnN0T2ZNb250aCA9IGdldEZpcnN0RGF5T2ZNb250aChkYXRlKSxcclxuICAgICAgICBsYXN0T2ZNb250aCA9IGdldExhc3REYXlPZk1vbnRoKGRhdGUpLFxyXG4gICAgICAgIHVzZWQgPSBmaXJzdE9mTW9udGguZ2V0RGF5KCkgKyBsYXN0T2ZNb250aC5nZXREYXRlKCk7XHJcbiAgICByZXR1cm4gTWF0aC5jZWlsKHVzZWQgLyBEYXRlVGltZUNvbnN0YW50cy5EQVlTX0lOX1dFRUspO1xyXG59XHJcblxyXG4vKipcclxuICogUmV0dXJuIHRydWUgaWYgZmlyc3QgYW5kIHNlY29uZCBkYXRlIGFyZSBlcXVhbFxyXG4gKiBAcGFyYW0gZGF0ZTEgRmlyc3QgZGF0ZSB2YWx1ZVxyXG4gKiBAcGFyYW0gZGF0ZTIgU2Vjb25kIGRhdGUgdmFsdWVcclxuICogQHJldHVybnMgVHJ1ZSBpZiBmaXJzdCBhbmQgc2Vjb25kIGRhdGUgYXJlIGVxdWFsXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gaXNFcXVhbERhdGVzKGRhdGUxOiBEYXRlLCBkYXRlMjogRGF0ZSk6IGJvb2xlYW4ge1xyXG4gICAgY29uc3QgZGF0ZTFWYWx1ZSA9IG5ldyBEYXRlKGRhdGUxKSxcclxuICAgICAgICBkYXRlMlZhbHVlID0gbmV3IERhdGUoZGF0ZTIpO1xyXG4gICAgZGF0ZTFWYWx1ZS5zZXRIb3VycygwLCAwLCAwLCAwKTtcclxuICAgIGRhdGUyVmFsdWUuc2V0SG91cnMoMCwgMCwgMCwgMCk7XHJcblxyXG4gICAgcmV0dXJuIGRhdGUxVmFsdWUuZ2V0VGltZSgpID09PSBkYXRlMlZhbHVlLmdldFRpbWUoKTtcclxufVxyXG5cclxuLyoqXHJcbiAqIFJldHVybiB0cnVlIGlmIGZpcnN0IGFuZCBzZWNvbmQgZGF0ZXRpbWUgYXJlIGVxdWFsXHJcbiAqIEBwYXJhbSBkYXRlMSBGaXJzdCBkYXRldGltZSB2YWx1ZVxyXG4gKiBAcGFyYW0gZGF0ZTIgU2Vjb25kIGRhdGV0aW1lIHZhbHVlXHJcbiAqIEByZXR1cm5zIFRydWUgaWYgZmlyc3QgYW5kIHNlY29uZCBkYXRldGltZSBhcmUgZXF1YWxcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBpc0VxdWFsRGF0ZVRpbWVzKGRhdGUxOiBEYXRlLCBkYXRlMjogRGF0ZSk6IGJvb2xlYW4ge1xyXG4gICAgY29uc3QgZGF0ZTFWYWx1ZSA9IG5ldyBEYXRlKGRhdGUxKSxcclxuICAgICAgICBkYXRlMlZhbHVlID0gbmV3IERhdGUoZGF0ZTIpO1xyXG5cclxuICAgIHJldHVybiBkYXRlMVZhbHVlLmdldFRpbWUoKSA9PT0gZGF0ZTJWYWx1ZS5nZXRUaW1lKCk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBSZXR1cm4gdHJ1ZSBpZiBmaXJzdCBkYXRlIGdyZWF0ZXIgdGhhbiBzZWNvbmQgZGF0ZVxyXG4gKiBAcGFyYW0gZGF0ZTEgRmlyc3QgZGF0ZSB2YWx1ZVxyXG4gKiBAcGFyYW0gZGF0ZTIgU2Vjb25kIGRhdGUgdmFsdWVcclxuICogQHJldHVybnMgVHJ1ZSBpZiBmaXJzdCBkYXRlIGdyZWF0ZXIgdGhhbiBzZWNvbmQgZGF0ZVxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGlzRGF0ZUdyZWF0KGRhdGUxOiBEYXRlLCBkYXRlMjogRGF0ZSk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIG5ldyBEYXRlKGRhdGUxLmdldEZ1bGxZZWFyKCksIGRhdGUxLmdldE1vbnRoKCksIGRhdGUxLmdldERhdGUoKSlcclxuICAgICAgICA+IG5ldyBEYXRlKGRhdGUyLmdldEZ1bGxZZWFyKCksIGRhdGUyLmdldE1vbnRoKCksIGRhdGUyLmdldERhdGUoKSk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBSZXR1cm4gdHJ1ZSBpZiBmaXJzdCBkYXRlIGdyZWF0ZXIgb3IgZXF1YWwgdG8gc2Vjb25kIGRhdGVcclxuICogQHBhcmFtIGRhdGUxIEZpcnN0IGRhdGUgdmFsdWVcclxuICogQHBhcmFtIGRhdGUyIFNlY29uZCBkYXRlIHZhbHVlXHJcbiAqIEByZXR1cm5zIFRydWUgaWYgZmlyc3QgZGF0ZSBncmVhdGVyIG9yIGVxdWFsIHRvIHNlY29uZCBkYXRlXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gaXNEYXRlR3JlYXRPckVxdWFsKGRhdGUxOiBEYXRlLCBkYXRlMjogRGF0ZSk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIG5ldyBEYXRlKGRhdGUxLmdldEZ1bGxZZWFyKCksIGRhdGUxLmdldE1vbnRoKCksIGRhdGUxLmdldERhdGUoKSlcclxuICAgICAgICA+PSBuZXcgRGF0ZShkYXRlMi5nZXRGdWxsWWVhcigpLCBkYXRlMi5nZXRNb250aCgpLCBkYXRlMi5nZXREYXRlKCkpO1xyXG59XHJcblxyXG4vKipcclxuICogUmV0dXJuIHRydWUgaWYgZmlyc3QgZGF0ZSB0aW1lIGdyZWF0ZXIgdGhhbiBzZWNvbmQgZGF0ZSB0aW1lXHJcbiAqIEBwYXJhbSBkYXRlMSBGaXJzdCBkYXRlIHRpbWUgdmFsdWVcclxuICogQHBhcmFtIGRhdGUyIFNlY29uZCBkYXRlIHRpbWUgdmFsdWVcclxuICogQHJldHVybnMgVHJ1ZSBpZiBmaXJzdCBkYXRlIHRpbWUgZ3JlYXRlciB0aGFuIHNlY29uZCBkYXRlIHRpbWVcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBpc0RhdGVUaW1lR3JlYXQoZGF0ZTE6IERhdGUsIGRhdGUyOiBEYXRlKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gbmV3IERhdGUoZGF0ZTEuZ2V0RnVsbFllYXIoKSwgZGF0ZTEuZ2V0TW9udGgoKSwgZGF0ZTEuZ2V0RGF0ZSgpLFxyXG4gICAgICAgIGRhdGUxLmdldEhvdXJzKCksIGRhdGUxLmdldE1pbnV0ZXMoKSlcclxuICAgICAgICA+IG5ldyBEYXRlKGRhdGUyLmdldEZ1bGxZZWFyKCksIGRhdGUyLmdldE1vbnRoKCksIGRhdGUyLmdldERhdGUoKSxcclxuICAgICAgICAgICAgZGF0ZTIuZ2V0SG91cnMoKSwgZGF0ZTIuZ2V0TWludXRlcygpKTtcclxufVxyXG5cclxuLyoqXHJcbiAqIFJldHVybiB0cnVlIGlmIGZpcnN0IGRhdGUgdGltZSBncmVhdGVyIG9yIGVxdWFsIHRvIHNlY29uZCBkYXRlIHRpbWVcclxuICogQHBhcmFtIGRhdGUxIEZpcnN0IGRhdGUgdGltZSB2YWx1ZVxyXG4gKiBAcGFyYW0gZGF0ZTIgU2Vjb25kIGRhdGUgdGltZSB2YWx1ZVxyXG4gKiBAcmV0dXJucyBUcnVlIGlmIGZpcnN0IGRhdGUgdGltZSBncmVhdGVyIG9yIGVxdWFsIHRvIHNlY29uZCBkYXRlIHRpbWVcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBpc0RhdGVUaW1lR3JlYXRPckVxdWFsKGRhdGUxOiBEYXRlLCBkYXRlMjogRGF0ZSk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIG5ldyBEYXRlKGRhdGUxLmdldEZ1bGxZZWFyKCksIGRhdGUxLmdldE1vbnRoKCksIGRhdGUxLmdldERhdGUoKSxcclxuICAgICAgICBkYXRlMS5nZXRIb3VycygpLCBkYXRlMS5nZXRNaW51dGVzKCkpXHJcbiAgICAgICAgPj0gbmV3IERhdGUoZGF0ZTIuZ2V0RnVsbFllYXIoKSwgZGF0ZTIuZ2V0TW9udGgoKSwgZGF0ZTIuZ2V0RGF0ZSgpLFxyXG4gICAgICAgICAgICBkYXRlMi5nZXRIb3VycygpLCBkYXRlMi5nZXRNaW51dGVzKCkpO1xyXG59XHJcblxyXG4vKipcclxuICogQ29udmVydCBVVEMgZGF0ZSB0byBsb2NhbFxyXG4gKiBAcGFyYW0gZGF0ZSBEYXRlIHZhbHVlXHJcbiAqIEByZXR1cm5zIExvY2FsZSBkYXRlXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gY29udmVydFVUQ0RhdGVUb0xvY2FsRGF0ZShkYXRlOiBEYXRlKTogRGF0ZSB7XHJcbiAgICByZXR1cm4gbmV3IERhdGUoZGF0ZS5nZXRUaW1lKCkgLSBkYXRlLmdldFRpbWV6b25lT2Zmc2V0KCkgKiA2MCAqIDEwMDApO1xyXG59XHJcblxyXG4vKipcclxuICogQ29udmVydCBKc29uIHJlcHJlc2VudGF0aW9uIG9mIHRpbWVzdGFtcCB0byBkYXRlIHZhbHVlXHJcbiAqIEBwYXJhbSB0aW1lc3RhbXAgVGltZXN0YW1wIGZvciBleGFtcGxlIC0gMTI6MjM6NDVcclxuICogQHJldHVybnMgRGF0ZSB2YWx1ZVxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGNvbnZlcnRUaW1lc3RhbXBUb0RhdGUodGltZXN0YW1wOiBzdHJpbmcpOiBEYXRlIHtcclxuICAgIGNvbnN0IHRlbXBUaW1lID0gdGltZXN0YW1wLnNwbGl0KFwiOlwiKSxcclxuICAgICAgICByZXN1bHQgPSBuZXcgRGF0ZSgpO1xyXG4gICAgcmVzdWx0LnNldEhvdXJzKCt0ZW1wVGltZVswXSk7XHJcbiAgICByZXN1bHQuc2V0TWludXRlcygrdGVtcFRpbWVbMV0pO1xyXG4gICAgcmVzdWx0LnNldFNlY29uZHMoK3RlbXBUaW1lWzJdKTtcclxuICAgIHJldHVybiByZXN1bHQ7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBDb252ZXJ0IERhdGUgb2JqZWN0IHRvIHRpbWVzdGFtcCBzdHJpbmdcclxuICogQHBhcmFtIGRhdGUgRGF0ZSB2YWx1ZVxyXG4gKiBAcGFyYW0gbG9jYWxlIExvY2FsZSB2YWx1ZVxyXG4gKiBAcmV0dXJucyBTdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgZGF0ZSB2YWx1ZSwgZm9yIGV4YW1wbGUgLSAxMjoyM1xyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGNvbnZlcnREYXRlVG9UaW1lc3RhbXAoZGF0ZTogRGF0ZSwgbG9jYWxlOiBzdHJpbmcgPSBEYXRlVGltZUNvbnN0YW50cy5ERUZBVUxUX0xPQ0FMRSk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gYCR7Zm9ybWF0RGF0ZShkYXRlLCAnSEgnLCBsb2NhbGUpfToke2Zvcm1hdERhdGUoZGF0ZSwgJ21tJywgbG9jYWxlKX1gO1xyXG59XHJcblxyXG4vKipcclxuICogR2V0IGFnZSBmcm9tXHJcbiAqIEBwYXJhbSBiaXJ0aGRhdGUgRGF0ZSBvZiBiaXJ0aFxyXG4gKiBAcmV0dXJucyBBZ2VcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRBZ2UoYmlydGhkYXRlOiBEYXRlKTogbnVtYmVyIHtcclxuICAgIGNvbnN0IG5vdyA9IG5ldyBEYXRlKCk7XHJcbiAgICBsZXQgYWdlID0gbm93LmdldEZ1bGxZZWFyKCkgLSBiaXJ0aGRhdGUuZ2V0RnVsbFllYXIoKTtcclxuICAgIGNvbnN0IG1vbnRoRGlmZmVyZW5jZSA9IG5vdy5nZXRNb250aCgpIC0gYmlydGhkYXRlLmdldE1vbnRoKCk7XHJcblxyXG4gICAgaWYgKG1vbnRoRGlmZmVyZW5jZSA8IDAgfHwgKG1vbnRoRGlmZmVyZW5jZSA9PT0gMCAmJiBub3cuZ2V0RGF0ZSgpIDwgYmlydGhkYXRlLmdldERhdGUoKSkpIHtcclxuICAgICAgICBhZ2UtLTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gYWdlO1xyXG59Il19
351
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS10aW1lLnV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNmYy1jb21tb24vc3JjL2xpYi91dGlscy9kYXRlLXRpbWUudXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNqRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFM0M7Ozs7O0dBS0c7QUFDSCxNQUFNLFVBQVUsVUFBVSxDQUFDLElBQVUsRUFBRSxNQUFjO0lBQ2pELE1BQU0sTUFBTSxHQUFHLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzlCLE1BQU0sQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDMUIsT0FBTyxNQUFNLENBQUM7QUFDbEIsQ0FBQztBQUVEOzs7OztHQUtHO0FBQ0gsTUFBTSxVQUFVLFFBQVEsQ0FBQyxJQUFVLEVBQUUsSUFBWTtJQUM3QyxNQUFNLE1BQU0sR0FBRyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM5QixNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3RCLE9BQU8sTUFBTSxDQUFDO0FBQ2xCLENBQUM7QUFFRDs7Ozs7R0FLRztBQUNILE1BQU0sVUFBVSxNQUFNLENBQUMsSUFBVSxFQUFFLFNBQWlCO0lBQ2hELE1BQU0sUUFBUSxHQUFHLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2hDLFFBQVEsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDNUIsT0FBTyxRQUFRLENBQUM7QUFDcEIsQ0FBQztBQUVEOzs7OztHQUtHO0FBQ0gsTUFBTSxVQUFVLE9BQU8sQ0FBQyxJQUFVLEVBQUUsSUFBWTtJQUM1QyxNQUFNLE1BQU0s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RyxTQUFTLENBQUMsT0FBTyxFQUFFLENBQUMsRUFBRTtRQUN2RixHQUFHLEVBQUUsQ0FBQztLQUNUO0lBRUQsT0FBTyxHQUFHLENBQUM7QUFDZixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZm9ybWF0RGF0ZSB9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcclxuaW1wb3J0IHsgRGF0ZVRpbWVDb25zdGFudHMgfSBmcm9tIFwiLi4vY29uc3RhbnRzXCI7XHJcbmltcG9ydCB7IGlzRGVmaW5lZCB9IGZyb20gXCIuL2NvbW1vbi51dGlsc1wiO1xyXG5cclxuLyoqXHJcbiAqIFNldCBtaW51dGVzIGZvciBkYXRlXHJcbiAqIEBwYXJhbSBkYXRlIERhdGUgdmFsdWVcclxuICogQHBhcmFtIG1pbnV0ZSBNaW51dGUgdmFsdWVcclxuICogQHJldHVybnMgRGF0ZSB3aXRoIG1pbnV0ZSB2YWx1ZVxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIHNldE1pbnV0ZXMoZGF0ZTogRGF0ZSwgbWludXRlOiBudW1iZXIpOiBEYXRlIHtcclxuICAgIGNvbnN0IHJlc3VsdCA9IG5ldyBEYXRlKGRhdGUpO1xyXG4gICAgcmVzdWx0LnNldE1pbnV0ZXMobWludXRlKTtcclxuICAgIHJldHVybiByZXN1bHQ7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBTZXQgaG91cnMgZm9yIGRhdGVcclxuICogQHBhcmFtIGRhdGUgRGF0ZSB2YWx1ZVxyXG4gKiBAcGFyYW0gaG91ciBIb3VyIHZhbHVlXHJcbiAqIEByZXR1cm5zIERhdGUgd2l0aCBob3VyIHZhbHVlXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gc2V0SG91cnMoZGF0ZTogRGF0ZSwgaG91cjogbnVtYmVyKTogRGF0ZSB7XHJcbiAgICBjb25zdCByZXN1bHQgPSBuZXcgRGF0ZShkYXRlKTtcclxuICAgIHJlc3VsdC5zZXRIb3Vycyhob3VyKTtcclxuICAgIHJldHVybiByZXN1bHQ7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBTZXQgZGF5IGZvciBkYXRlIHZhbHVlXHJcbiAqIEBwYXJhbSBkYXRlIERhdGUgdmFsdWVcclxuICogQHBhcmFtIGRheU51bWJlciBEYXkgbnVtYmVyIFxyXG4gKiBAcmV0dXJucyBEYXRlIHdpdGggZGF5IG51bWJlclxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIHNldERheShkYXRlOiBEYXRlLCBkYXlOdW1iZXI6IG51bWJlcik6IERhdGUge1xyXG4gICAgY29uc3QgbmV4dERhdGUgPSBuZXcgRGF0ZShkYXRlKTtcclxuICAgIG5leHREYXRlLnNldERhdGUoZGF5TnVtYmVyKTtcclxuICAgIHJldHVybiBuZXh0RGF0ZTtcclxufVxyXG5cclxuLyoqXHJcbiAqIFNldCB5ZWFyIGZvciBkYXRlXHJcbiAqIEBwYXJhbSBkYXRlIERhdGUgdmFsdWVcclxuICogQHBhcmFtIHllYXIgWWVhciB2YWx1ZVxyXG4gKiBAcmV0dXJucyBEYXRlIHdpdGggeWVhciB2YWx1ZVxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIHNldFllYXIoZGF0ZTogRGF0ZSwgeWVhcjogbnVtYmVyKTogRGF0ZSB7XHJcbiAgICBjb25zdCByZXN1bHQgPSBuZXcgRGF0ZShkYXRlKTtcclxuICAgIHJlc3VsdC5zZXRGdWxsWWVhcih5ZWFyKTtcclxuICAgIHJldHVybiByZXN1bHQ7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBTZXQgc2Vjb25kcyBmb3IgZGF0ZVxyXG4gKiBAcGFyYW0gZGF0ZSBEYXRlIHZhbHVlXHJcbiAqIEBwYXJhbSB2YWx1ZSBTZWNvbmRzIHZhbHVlXHJcbiAqIEByZXR1cm5zIERhdGUgd2l0aCBtaW51dGUgdmFsdWVcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBzZXRTZWNvbmRzKGRhdGU6IERhdGUsIHZhbHVlOiBudW1iZXIpOiBEYXRlIHtcclxuICAgIGNvbnN0IHJlc3VsdCA9IG5ldyBEYXRlKGRhdGUpO1xyXG4gICAgcmVzdWx0LnNldFNlY29uZHModmFsdWUpO1xyXG4gICAgcmV0dXJuIHJlc3VsdDtcclxufVxyXG5cclxuLyoqXHJcbiAqIFNldCBtaWxsaXNlY29uZHMgZm9yIGRhdGVcclxuICogQHBhcmFtIGRhdGUgRGF0ZSB2YWx1ZVxyXG4gKiBAcGFyYW0gdmFsdWUgTWlsbGlzZWNvbmRzIHZhbHVlXHJcbiAqIEByZXR1cm5zIERhdGUgd2l0aCBtaW51dGUgdmFsdWVcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBzZXRNaWxsaXNlY29uZHMoZGF0ZTogRGF0ZSwgdmFsdWU6IG51bWJlcik6IERhdGUge1xyXG4gICAgY29uc3QgcmVzdWx0ID0gbmV3IERhdGUoZGF0ZSk7XHJcbiAgICByZXN1bHQuc2V0TWlsbGlzZWNvbmRzKHZhbHVlKTtcclxuICAgIHJldHVybiByZXN1bHQ7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBTZXQgMCBmb3Igc2Vjb25kcyBhbmQgbWlsbGlzZWNvbmRzIG9mIGRhdGVcclxuICogQHBhcmFtIGRhdGUgRGF0ZSB2YWx1ZVxyXG4gKiBAcmV0dXJucyBEYXRlIHdpdGggbWludXRlIHZhbHVlXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gc2V0RGVmYXVsdFNlY29uZHNBbmRNaWxpc2Vjb25kcyhkYXRlOiBEYXRlKTogRGF0ZSB7XHJcbiAgICBjb25zdCByZXN1bHQgPSBuZXcgRGF0ZShkYXRlKTtcclxuICAgIHJlc3VsdC5zZXRTZWNvbmRzKDApO1xyXG4gICAgcmVzdWx0LnNldE1pbGxpc2Vjb25kcygwKTtcclxuICAgIHJldHVybiByZXN1bHQ7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBHZXQgbmV4dCBkYXRlXHJcbiAqIEBwYXJhbSBkYXRlIERhdGUgdmFsdWVcclxuICogQHJldHVybnMgTmV4dCBkYXRlXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gZ2V0TmV4dERhdGUoZGF0ZTogRGF0ZSk6IERhdGUge1xyXG4gICAgY29uc3QgbmV4dERhdGUgPSBuZXcgRGF0ZShkYXRlKTtcclxuICAgIG5leHREYXRlLnNldERhdGUoZGF0ZS5nZXREYXRlKCkgKyAxKVxyXG4gICAgcmV0dXJuIG5leHREYXRlO1xyXG59XHJcblxyXG4vKipcclxuICogR2V0IHByZXZpb3VzIGRhdGVcclxuICogQHBhcmFtIGRhdGUgRGF0ZSB2YWx1ZVxyXG4gKiBAcmV0dXJucyBQcmV2aW91cyBkYXRlXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gZ2V0UHJldmlvdXNEYXRlKGRhdGU6IERhdGUpOiBEYXRlIHtcclxuICAgIGNvbnN0IG5leHREYXRlID0gbmV3IERhdGUoZGF0ZSk7XHJcbiAgICBuZXh0RGF0ZS5zZXREYXRlKGRhdGUuZ2V0RGF0ZSgpIC0gMSlcclxuICAgIHJldHVybiBuZXh0RGF0ZTtcclxufVxyXG5cclxuLyoqXHJcbiAqIEdldCBuZXh0IG1vbnRoIGFzIGRhdGVcclxuICogQHBhcmFtIGRhdGUgRGF0ZSB2YWx1ZVxyXG4gKiBAcmV0dXJucyBOZXh0IG1vbnRoIGFzIGRhdGVcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBnZXROZXh0TW9udGgoZGF0ZTogRGF0ZSk6IERhdGUge1xyXG4gICAgY29uc3QgbmV4dE1vbnRoID0gbmV3IERhdGUoZGF0ZSk7XHJcbiAgICBuZXh0TW9udGguc2V0TW9udGgoZGF0ZS5nZXRNb250aCgpICsgMSlcclxuICAgIHJldHVybiBuZXh0TW9udGg7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBHZXQgcHJldmlvdXMgbW9udGggYXMgZGF0ZVxyXG4gKiBAcGFyYW0gZGF0ZSBEYXRlIHZhbHVlXHJcbiAqIEByZXR1cm5zIFByZXZpb3VzIG1vbnRoIGFzIGRhdGVcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRQcmV2aW91c01vbnRoKGRhdGU6IERhdGUpOiBEYXRlIHtcclxuICAgIGNvbnN0IHByZXZNb250aCA9IG5ldyBEYXRlKGRhdGUpO1xyXG4gICAgcHJldk1vbnRoLnNldE1vbnRoKGRhdGUuZ2V0TW9udGgoKSAtIDEpO1xyXG4gICAgcmV0dXJuIHByZXZNb250aDtcclxufVxyXG5cclxuLyoqXHJcbiAqIEdldCBuZXh0IHllYXIgYXMgZGF0ZVxyXG4gKiBAcGFyYW0gZGF0ZSBEYXRlIHZhbHVlXHJcbiAqIEByZXR1cm5zIE5leHQgeWVhciBhcyBkYXRlXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gZ2V0TmV4dFllYXIoZGF0ZTogRGF0ZSk6IERhdGUge1xyXG4gICAgY29uc3QgbmV4dFllYXIgPSBuZXcgRGF0ZShkYXRlKTtcclxuICAgIG5leHRZZWFyLnNldEZ1bGxZZWFyKGRhdGUuZ2V0RnVsbFllYXIoKSArIDEpO1xyXG4gICAgcmV0dXJuIG5leHRZZWFyO1xyXG59XHJcblxyXG4vKipcclxuICogR2V0IHByZXZpb3VzIHllYXIgYXMgZGF0ZVxyXG4gKiBAcGFyYW0gZGF0ZSBEYXRlIHZhbHVlXHJcbiAqIEByZXR1cm5zIFByZXZpb3VzIHllYXIgYXMgZGF0ZVxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGdldFByZXZpb3VzWWVhcihkYXRlOiBEYXRlKTogRGF0ZSB7XHJcbiAgICBjb25zdCBwcmV2WWVhciA9IG5ldyBEYXRlKGRhdGUpO1xyXG4gICAgcHJldlllYXIuc2V0RnVsbFllYXIoZGF0ZS5nZXRGdWxsWWVhcigpIC0gMSk7XHJcbiAgICByZXR1cm4gcHJldlllYXI7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBSZXR1cm4gZmlyc3QgZGF5IG9mIG1vbnRoIGFzIGRhdGUgZnJvbSBkYXRlIHZhbHVlXHJcbiAqIEBwYXJhbSBkYXRlIERhdGUgdmFsdWVcclxuICogQHJldHVybnMgRmlyc3QgZGF5IG9mIG1vbnRoIGFzIGRhdGVcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRGaXJzdERheU9mTW9udGgoZGF0ZTogRGF0ZSk6IERhdGUge1xyXG4gICAgaWYgKGlzRGVmaW5lZChkYXRlKSAmJiBkYXRlIGluc3RhbmNlb2YgRGF0ZSkge1xyXG4gICAgICAgIGNvbnN0IHllYXIgPSBkYXRlLmdldEZ1bGxZZWFyKCksXHJcbiAgICAgICAgICAgIG1vbnRoID0gZGF0ZS5nZXRNb250aCgpO1xyXG4gICAgICAgIHJldHVybiBuZXcgRGF0ZSh5ZWFyLCBtb250aCwgMSk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGRhdGU7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBSZXR1cm4gbGFzdCBkYXkgb2YgbW9udGggYXMgZGF0ZSBmcm9tIGRhdGUgdmFsdWVcclxuICogQHBhcmFtIGRhdGUgRGF0ZSB2YWx1ZVxyXG4gKiBAcmV0dXJucyBMYXN0IGRheSBvZiBtb250aCBhcyBkYXRlXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gZ2V0TGFzdERheU9mTW9udGgoZGF0ZTogRGF0ZSk6IERhdGUge1xyXG4gICAgaWYgKGlzRGVmaW5lZChkYXRlKSAmJiBkYXRlIGluc3RhbmNlb2YgRGF0ZSkge1xyXG4gICAgICAgIGNvbnN0IHllYXIgPSBkYXRlLmdldEZ1bGxZZWFyKCksXHJcbiAgICAgICAgICAgIG1vbnRoID0gZGF0ZS5nZXRNb250aCgpO1xyXG4gICAgICAgIHJldHVybiBuZXcgRGF0ZSh5ZWFyLCBtb250aCArIDEsIDApO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBkYXRlO1xyXG59XHJcblxyXG4vKipcclxuICogUmV0dXJuIGZpcnN0IGRheSBvZiB5ZWFyIGFzIGRhdGUgZnJvbSBkYXRlIHZhbHVlXHJcbiAqIEBwYXJhbSBkYXRlIERhdGUgdmFsdWVcclxuICogQHJldHVybnMgRmlyc3QgZGF5IG9mIHllYXIgYXMgZGF0ZVxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGdldEZpcnN0RGF5T2ZZZWFyKGRhdGU6IERhdGUpOiBEYXRlIHtcclxuICAgIGlmIChpc0RlZmluZWQoZGF0ZSkgJiYgZGF0ZSBpbnN0YW5jZW9mIERhdGUpIHtcclxuICAgICAgICByZXR1cm4gbmV3IERhdGUoZGF0ZS5nZXRGdWxsWWVhcigpLCAwLCAxKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gZGF0ZTtcclxufVxyXG5cclxuLyoqXHJcbiAqIFJldHVybiBsYXN0IGRheSBvZiB5ZWFyIGFzIGRhdGUgZnJvbSBkYXRlIHZhbHVlXHJcbiAqIEBwYXJhbSBkYXRlIERhdGUgdmFsdWVcclxuICogQHJldHVybnMgTGFzdCBkYXkgb2YgeWVhciBhcyBkYXRlXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gZ2V0TGFzdERheU9mWWVhcihkYXRlOiBEYXRlKTogRGF0ZSB7XHJcbiAgICBpZiAoaXNEZWZpbmVkKGRhdGUpICYmIGRhdGUgaW5zdGFuY2VvZiBEYXRlKSB7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBEYXRlKGRhdGUuZ2V0RnVsbFllYXIoKSwgMTIsIDApO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBkYXRlO1xyXG59XHJcblxyXG4vKipcclxuICogUmV0dXJuIGZpcnN0IGRheSBvZiBtb250aCBhcyBkYXRlXHJcbiAqIEBwYXJhbSB5ZWFyIFllYXIgdmFsdWVcclxuICogQHBhcmFtIG1vbnRoIE1vbnRoIHZhbHVlXHJcbiAqIEByZXR1cm5zIEZpcnN0IGRheSBvZiBtb250aFxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGdldEZpcnN0RGF5T2ZNb250aEJ5WWVhckFuZE1vbnRoKHllYXI6IG51bWJlciwgbW9udGg6IG51bWJlcik6IERhdGUge1xyXG4gICAgcmV0dXJuIG5ldyBEYXRlKHllYXIsIG1vbnRoLCAxKTtcclxufVxyXG5cclxuLyoqXHJcbiAqIFJldHVybiBsYXN0IGRheSBvZiBtb250aCBhcyBkYXRlXHJcbiAqIEBwYXJhbSB5ZWFyIFllYXIgdmFsdWVcclxuICogQHBhcmFtIG1vbnRoIE1vbnRoIHZhbHVlXHJcbiAqIEByZXR1cm5zIExhc3QgZGF5IG9mIG1vbnRoXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gZ2V0TGFzdERheU9mTW9udGhCeVllYXJBbmRNb250aCh5ZWFyOiBudW1iZXIsIG1vbnRoOiBudW1iZXIpOiBEYXRlIHtcclxuICAgIHJldHVybiBuZXcgRGF0ZSh5ZWFyLCBtb250aCArIDEsIDApO1xyXG59XHJcblxyXG4vKipcclxuICogUmV0dXJuIHdlZWsgbnVtYmVyIGluIG1vbnRoIGZyb20gZGF0ZSB2YWx1ZVxyXG4gKiBAcGFyYW0gZGF0ZSBEYXRlIHZhbHVlXHJcbiAqIEByZXR1cm5zIFdlZWsgbnVtYmVyXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gZ2V0V2Vla3NOdW1iZXJJbk1vbnRoKGRhdGU6IERhdGUpOiBudW1iZXIge1xyXG4gICAgY29uc3QgZmlyc3RPZk1vbnRoID0gZ2V0Rmlyc3REYXlPZk1vbnRoKGRhdGUpLFxyXG4gICAgICAgIGxhc3RPZk1vbnRoID0gZ2V0TGFzdERheU9mTW9udGgoZGF0ZSksXHJcbiAgICAgICAgdXNlZCA9IGZpcnN0T2ZNb250aC5nZXREYXkoKSArIGxhc3RPZk1vbnRoLmdldERhdGUoKTtcclxuICAgIHJldHVybiBNYXRoLmNlaWwodXNlZCAvIERhdGVUaW1lQ29uc3RhbnRzLkRBWVNfSU5fV0VFSyk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBSZXR1cm4gdHJ1ZSBpZiBmaXJzdCBhbmQgc2Vjb25kIGRhdGUgYXJlIGVxdWFsXHJcbiAqIEBwYXJhbSBkYXRlMSBGaXJzdCBkYXRlIHZhbHVlXHJcbiAqIEBwYXJhbSBkYXRlMiBTZWNvbmQgZGF0ZSB2YWx1ZVxyXG4gKiBAcmV0dXJucyBUcnVlIGlmIGZpcnN0IGFuZCBzZWNvbmQgZGF0ZSBhcmUgZXF1YWxcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBpc0VxdWFsRGF0ZXMoZGF0ZTE6IERhdGUsIGRhdGUyOiBEYXRlKTogYm9vbGVhbiB7XHJcbiAgICBjb25zdCBkYXRlMVZhbHVlID0gbmV3IERhdGUoZGF0ZTEpLFxyXG4gICAgICAgIGRhdGUyVmFsdWUgPSBuZXcgRGF0ZShkYXRlMik7XHJcbiAgICBkYXRlMVZhbHVlLnNldEhvdXJzKDAsIDAsIDAsIDApO1xyXG4gICAgZGF0ZTJWYWx1ZS5zZXRIb3VycygwLCAwLCAwLCAwKTtcclxuXHJcbiAgICByZXR1cm4gZGF0ZTFWYWx1ZS5nZXRUaW1lKCkgPT09IGRhdGUyVmFsdWUuZ2V0VGltZSgpO1xyXG59XHJcblxyXG4vKipcclxuICogUmV0dXJuIHRydWUgaWYgZmlyc3QgYW5kIHNlY29uZCBkYXRldGltZSBhcmUgZXF1YWxcclxuICogQHBhcmFtIGRhdGUxIEZpcnN0IGRhdGV0aW1lIHZhbHVlXHJcbiAqIEBwYXJhbSBkYXRlMiBTZWNvbmQgZGF0ZXRpbWUgdmFsdWVcclxuICogQHJldHVybnMgVHJ1ZSBpZiBmaXJzdCBhbmQgc2Vjb25kIGRhdGV0aW1lIGFyZSBlcXVhbFxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGlzRXF1YWxEYXRlVGltZXMoZGF0ZTE6IERhdGUsIGRhdGUyOiBEYXRlKTogYm9vbGVhbiB7XHJcbiAgICBjb25zdCBkYXRlMVZhbHVlID0gbmV3IERhdGUoZGF0ZTEpLFxyXG4gICAgICAgIGRhdGUyVmFsdWUgPSBuZXcgRGF0ZShkYXRlMik7XHJcblxyXG4gICAgcmV0dXJuIGRhdGUxVmFsdWUuZ2V0VGltZSgpID09PSBkYXRlMlZhbHVlLmdldFRpbWUoKTtcclxufVxyXG5cclxuLyoqXHJcbiAqIFJldHVybiB0cnVlIGlmIGZpcnN0IGRhdGUgZ3JlYXRlciB0aGFuIHNlY29uZCBkYXRlXHJcbiAqIEBwYXJhbSBkYXRlMSBGaXJzdCBkYXRlIHZhbHVlXHJcbiAqIEBwYXJhbSBkYXRlMiBTZWNvbmQgZGF0ZSB2YWx1ZVxyXG4gKiBAcmV0dXJucyBUcnVlIGlmIGZpcnN0IGRhdGUgZ3JlYXRlciB0aGFuIHNlY29uZCBkYXRlXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gaXNEYXRlR3JlYXQoZGF0ZTE6IERhdGUsIGRhdGUyOiBEYXRlKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gbmV3IERhdGUoZGF0ZTEuZ2V0RnVsbFllYXIoKSwgZGF0ZTEuZ2V0TW9udGgoKSwgZGF0ZTEuZ2V0RGF0ZSgpKVxyXG4gICAgICAgID4gbmV3IERhdGUoZGF0ZTIuZ2V0RnVsbFllYXIoKSwgZGF0ZTIuZ2V0TW9udGgoKSwgZGF0ZTIuZ2V0RGF0ZSgpKTtcclxufVxyXG5cclxuLyoqXHJcbiAqIFJldHVybiB0cnVlIGlmIGZpcnN0IGRhdGUgZ3JlYXRlciBvciBlcXVhbCB0byBzZWNvbmQgZGF0ZVxyXG4gKiBAcGFyYW0gZGF0ZTEgRmlyc3QgZGF0ZSB2YWx1ZVxyXG4gKiBAcGFyYW0gZGF0ZTIgU2Vjb25kIGRhdGUgdmFsdWVcclxuICogQHJldHVybnMgVHJ1ZSBpZiBmaXJzdCBkYXRlIGdyZWF0ZXIgb3IgZXF1YWwgdG8gc2Vjb25kIGRhdGVcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBpc0RhdGVHcmVhdE9yRXF1YWwoZGF0ZTE6IERhdGUsIGRhdGUyOiBEYXRlKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gbmV3IERhdGUoZGF0ZTEuZ2V0RnVsbFllYXIoKSwgZGF0ZTEuZ2V0TW9udGgoKSwgZGF0ZTEuZ2V0RGF0ZSgpKVxyXG4gICAgICAgID49IG5ldyBEYXRlKGRhdGUyLmdldEZ1bGxZZWFyKCksIGRhdGUyLmdldE1vbnRoKCksIGRhdGUyLmdldERhdGUoKSk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBSZXR1cm4gdHJ1ZSBpZiBmaXJzdCBkYXRlIHRpbWUgZ3JlYXRlciB0aGFuIHNlY29uZCBkYXRlIHRpbWVcclxuICogQHBhcmFtIGRhdGUxIEZpcnN0IGRhdGUgdGltZSB2YWx1ZVxyXG4gKiBAcGFyYW0gZGF0ZTIgU2Vjb25kIGRhdGUgdGltZSB2YWx1ZVxyXG4gKiBAcmV0dXJucyBUcnVlIGlmIGZpcnN0IGRhdGUgdGltZSBncmVhdGVyIHRoYW4gc2Vjb25kIGRhdGUgdGltZVxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGlzRGF0ZVRpbWVHcmVhdChkYXRlMTogRGF0ZSwgZGF0ZTI6IERhdGUpOiBib29sZWFuIHtcclxuICAgIHJldHVybiBuZXcgRGF0ZShkYXRlMS5nZXRGdWxsWWVhcigpLCBkYXRlMS5nZXRNb250aCgpLCBkYXRlMS5nZXREYXRlKCksXHJcbiAgICAgICAgZGF0ZTEuZ2V0SG91cnMoKSwgZGF0ZTEuZ2V0TWludXRlcygpKVxyXG4gICAgICAgID4gbmV3IERhdGUoZGF0ZTIuZ2V0RnVsbFllYXIoKSwgZGF0ZTIuZ2V0TW9udGgoKSwgZGF0ZTIuZ2V0RGF0ZSgpLFxyXG4gICAgICAgICAgICBkYXRlMi5nZXRIb3VycygpLCBkYXRlMi5nZXRNaW51dGVzKCkpO1xyXG59XHJcblxyXG4vKipcclxuICogUmV0dXJuIHRydWUgaWYgZmlyc3QgZGF0ZSB0aW1lIGdyZWF0ZXIgb3IgZXF1YWwgdG8gc2Vjb25kIGRhdGUgdGltZVxyXG4gKiBAcGFyYW0gZGF0ZTEgRmlyc3QgZGF0ZSB0aW1lIHZhbHVlXHJcbiAqIEBwYXJhbSBkYXRlMiBTZWNvbmQgZGF0ZSB0aW1lIHZhbHVlXHJcbiAqIEByZXR1cm5zIFRydWUgaWYgZmlyc3QgZGF0ZSB0aW1lIGdyZWF0ZXIgb3IgZXF1YWwgdG8gc2Vjb25kIGRhdGUgdGltZVxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGlzRGF0ZVRpbWVHcmVhdE9yRXF1YWwoZGF0ZTE6IERhdGUsIGRhdGUyOiBEYXRlKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gbmV3IERhdGUoZGF0ZTEuZ2V0RnVsbFllYXIoKSwgZGF0ZTEuZ2V0TW9udGgoKSwgZGF0ZTEuZ2V0RGF0ZSgpLFxyXG4gICAgICAgIGRhdGUxLmdldEhvdXJzKCksIGRhdGUxLmdldE1pbnV0ZXMoKSlcclxuICAgICAgICA+PSBuZXcgRGF0ZShkYXRlMi5nZXRGdWxsWWVhcigpLCBkYXRlMi5nZXRNb250aCgpLCBkYXRlMi5nZXREYXRlKCksXHJcbiAgICAgICAgICAgIGRhdGUyLmdldEhvdXJzKCksIGRhdGUyLmdldE1pbnV0ZXMoKSk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBSZXR1cm4gdHJ1ZSBpZiBmaXJzdCB0aW1lIGdyZWF0ZXIgb3IgZXF1YWwgdG8gc2Vjb25kIHRpbWVcclxuICogQHBhcmFtIGRhdGUxIEZpcnN0IGRhdGUgdGltZSB2YWx1ZVxyXG4gKiBAcGFyYW0gZGF0ZTIgU2Vjb25kIGRhdGUgdGltZSB2YWx1ZVxyXG4gKiBAcmV0dXJucyBUcnVlIGlmIGZpcnN0IHRpbWUgZ3JlYXRlciBvciBlcXVhbCB0byBzZWNvbmQgdGltZVxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGlzVGltZUdyZWF0T3JFcXVhbChkYXRlMTogRGF0ZSwgZGF0ZTI6IERhdGUpOiBib29sZWFuIHtcclxuICAgIHJldHVybiBuZXcgRGF0ZSgwLCAwLCAwLCBkYXRlMS5nZXRIb3VycygpLCBkYXRlMS5nZXRNaW51dGVzKCkpXHJcbiAgICAgICAgPj0gbmV3IERhdGUoMCwgMCwgMCwgZGF0ZTIuZ2V0SG91cnMoKSwgZGF0ZTIuZ2V0TWludXRlcygpKTtcclxufVxyXG5cclxuLyoqXHJcbiAqIFJldHVybiB0cnVlIGlmIGZpcnN0IHRpbWUgbGVzcyBvciBlcXVhbCB0byBzZWNvbmQgdGltZVxyXG4gKiBAcGFyYW0gZGF0ZTEgRmlyc3QgZGF0ZSB0aW1lIHZhbHVlXHJcbiAqIEBwYXJhbSBkYXRlMiBTZWNvbmQgZGF0ZSB0aW1lIHZhbHVlXHJcbiAqIEByZXR1cm5zIFRydWUgaWYgZmlyc3QgdGltZSBsZXNzIG9yIGVxdWFsIHRvIHNlY29uZCB0aW1lXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gaXNEYXRlVGltZUxlc3NPckVxdWFsKGRhdGUxOiBEYXRlLCBkYXRlMjogRGF0ZSk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIG5ldyBEYXRlKDAsIDAsIDAsIGRhdGUxLmdldEhvdXJzKCksIGRhdGUxLmdldE1pbnV0ZXMoKSlcclxuICAgICAgICA8PSBuZXcgRGF0ZSgwLCAwLCAwLCBkYXRlMi5nZXRIb3VycygpLCBkYXRlMi5nZXRNaW51dGVzKCkpO1xyXG59XHJcblxyXG4vKipcclxuICogUmV0dXJuIHRydWUgaWYgZmlyc3QgdGltZSBsZXNzIG9yIGVxdWFsIHRvIHNlY29uZCB0aW1lXHJcbiAqIEBwYXJhbSBkYXRlMSBGaXJzdCBkYXRlIHRpbWUgdmFsdWVcclxuICogQHBhcmFtIGRhdGUyIFNlY29uZCBkYXRlIHRpbWUgdmFsdWVcclxuICogQHJldHVybnMgVHJ1ZSBpZiBmaXJzdCB0aW1lIGxlc3Mgb3IgZXF1YWwgdG8gc2Vjb25kIHRpbWVcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBpc1RpbWVMZXNzT3JFcXVhbChkYXRlMTogRGF0ZSwgZGF0ZTI6IERhdGUpOiBib29sZWFuIHtcclxuICAgIHJldHVybiBuZXcgRGF0ZShkYXRlMS5nZXRGdWxsWWVhcigpLCBkYXRlMS5nZXRNb250aCgpLCBkYXRlMS5nZXREYXRlKCksXHJcbiAgICAgICAgZGF0ZTEuZ2V0SG91cnMoKSwgZGF0ZTEuZ2V0TWludXRlcygpKVxyXG4gICAgICAgIDw9IG5ldyBEYXRlKGRhdGUyLmdldEZ1bGxZZWFyKCksIGRhdGUyLmdldE1vbnRoKCksIGRhdGUyLmdldERhdGUoKSxcclxuICAgICAgICAgICAgZGF0ZTIuZ2V0SG91cnMoKSwgZGF0ZTIuZ2V0TWludXRlcygpKTtcclxufVxyXG5cclxuLyoqXHJcbiAqIENvbnZlcnQgVVRDIGRhdGUgdG8gbG9jYWxcclxuICogQHBhcmFtIGRhdGUgRGF0ZSB2YWx1ZVxyXG4gKiBAcmV0dXJucyBMb2NhbGUgZGF0ZVxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGNvbnZlcnRVVENEYXRlVG9Mb2NhbERhdGUoZGF0ZTogRGF0ZSk6IERhdGUge1xyXG4gICAgcmV0dXJuIG5ldyBEYXRlKGRhdGUuZ2V0VGltZSgpIC0gZGF0ZS5nZXRUaW1lem9uZU9mZnNldCgpICogNjAgKiAxMDAwKTtcclxufVxyXG5cclxuLyoqXHJcbiAqIENvbnZlcnQgSnNvbiByZXByZXNlbnRhdGlvbiBvZiB0aW1lc3RhbXAgdG8gZGF0ZSB2YWx1ZVxyXG4gKiBAcGFyYW0gdGltZXN0YW1wIFRpbWVzdGFtcCBmb3IgZXhhbXBsZSAtIDEyOjIzOjQ1XHJcbiAqIEByZXR1cm5zIERhdGUgdmFsdWVcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBjb252ZXJ0VGltZXN0YW1wVG9EYXRlKHRpbWVzdGFtcDogc3RyaW5nKTogRGF0ZSB7XHJcbiAgICBjb25zdCB0ZW1wVGltZSA9IHRpbWVzdGFtcC5zcGxpdChcIjpcIiksXHJcbiAgICAgICAgcmVzdWx0ID0gbmV3IERhdGUoKTtcclxuICAgIHJlc3VsdC5zZXRIb3VycygrdGVtcFRpbWVbMF0pO1xyXG4gICAgcmVzdWx0LnNldE1pbnV0ZXMoK3RlbXBUaW1lWzFdKTtcclxuICAgIHJlc3VsdC5zZXRTZWNvbmRzKCt0ZW1wVGltZVsyXSk7XHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG59XHJcblxyXG4vKipcclxuICogQ29udmVydCBEYXRlIG9iamVjdCB0byB0aW1lc3RhbXAgc3RyaW5nXHJcbiAqIEBwYXJhbSBkYXRlIERhdGUgdmFsdWVcclxuICogQHBhcmFtIGxvY2FsZSBMb2NhbGUgdmFsdWVcclxuICogQHJldHVybnMgU3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIGRhdGUgdmFsdWUsIGZvciBleGFtcGxlIC0gMTI6MjNcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBjb252ZXJ0RGF0ZVRvVGltZXN0YW1wKGRhdGU6IERhdGUsIGxvY2FsZTogc3RyaW5nID0gRGF0ZVRpbWVDb25zdGFudHMuREVGQVVMVF9MT0NBTEUpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIGAke2Zvcm1hdERhdGUoZGF0ZSwgJ0hIJywgbG9jYWxlKX06JHtmb3JtYXREYXRlKGRhdGUsICdtbScsIGxvY2FsZSl9YDtcclxufVxyXG5cclxuLyoqXHJcbiAqIEdldCBhZ2UgZnJvbVxyXG4gKiBAcGFyYW0gYmlydGhkYXRlIERhdGUgb2YgYmlydGhcclxuICogQHJldHVybnMgQWdlXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gZ2V0QWdlKGJpcnRoZGF0ZTogRGF0ZSB8IG51bGwpOiBudW1iZXIgfCBudWxsIHtcclxuICAgIGlmICghYmlydGhkYXRlKVxyXG4gICAgICAgIHJldHVybiBudWxsO1xyXG5cclxuICAgIGNvbnN0IG5vdyA9IG5ldyBEYXRlKCk7XHJcbiAgICBsZXQgYWdlID0gbm93LmdldEZ1bGxZZWFyKCkgLSBiaXJ0aGRhdGUuZ2V0RnVsbFllYXIoKTtcclxuICAgIGNvbnN0IG1vbnRoRGlmZmVyZW5jZSA9IG5vdy5nZXRNb250aCgpIC0gYmlydGhkYXRlLmdldE1vbnRoKCk7XHJcblxyXG4gICAgaWYgKG1vbnRoRGlmZmVyZW5jZSA8IDAgfHwgKG1vbnRoRGlmZmVyZW5jZSA9PT0gMCAmJiBub3cuZ2V0RGF0ZSgpIDwgYmlydGhkYXRlLmdldERhdGUoKSkpIHtcclxuICAgICAgICBhZ2UtLTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gYWdlO1xyXG59Il19
@@ -13,6 +13,8 @@ export function buildHttpParams(value) {
13
13
  return httpParams;
14
14
  function _build(params, value, path, isArray = false) {
15
15
  const ARRAY_PART = ']';
16
+ if (!value)
17
+ return;
16
18
  Object.keys(value).forEach(key => {
17
19
  if (value[key] instanceof Array) {
18
20
  _build(params, value[key], `${path}${key}[`, true);
@@ -27,4 +29,4 @@ export function buildHttpParams(value) {
27
29
  });
28
30
  }
29
31
  }
30
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC51dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zZmMtY29tbW9uL3NyYy9saWIvdXRpbHMvaHR0cC51dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFM0M7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSxlQUFlLENBQUMsS0FBVTtJQUN0QyxJQUFJLE1BQU0sR0FBUSxFQUFFLEVBQUUsVUFBVSxHQUFHLElBQUksVUFBVSxFQUFFLENBQUM7SUFFcEQsTUFBTSxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsZUFBZSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBRXBELE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFFckYsT0FBTyxVQUFVLENBQUM7SUFFbEIsU0FBUyxNQUFNLENBQUMsTUFBVyxFQUFFLEtBQVUsRUFBRSxJQUFZLEVBQUUsVUFBbUIsS0FBSztRQUMzRSxNQUFNLFVBQVUsR0FBVyxHQUFHLENBQUM7UUFDL0IsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDN0IsSUFBSSxLQUFLLENBQUMsR0FBRyxDQUFDLFlBQVksS0FBSyxFQUFFO2dCQUM3QixNQUFNLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRSxHQUFHLElBQUksR0FBRyxHQUFHLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQzthQUN0RDtpQkFBTSxJQUFJLEtBQUssQ0FBQyxHQUFHLENBQUMsWUFBWSxNQUFNLEVBQUU7Z0JBQ3JDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUcsSUFBSSxHQUFHLEdBQUcsR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUcsVUFBVSxHQUFHLGVBQWUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUM7YUFDdkg7aUJBQU07Z0JBQ0gsSUFBSSxTQUFTLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO29CQUNyQixNQUFNLENBQUMsR0FBRyxJQUFJLEdBQUcsR0FBRyxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsWUFBWSxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7YUFDbEc7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cFBhcmFtcyB9IGZyb20gXCJAYW5ndWxhci9jb21tb24vaHR0cFwiO1xyXG5pbXBvcnQgeyBDb21tb25Db25zdGFudHMgfSBmcm9tIFwiLi4vY29uc3RhbnRzXCI7XHJcbmltcG9ydCB7IGlzRGVmaW5lZCB9IGZyb20gXCIuL2NvbW1vbi51dGlsc1wiO1xyXG5cclxuLyoqXHJcbiAqIEJ1aWxkIEhUVFAgcGFyYW1ldGVycyAoR0VUKSBmcm9tIHJlcXVlc3Qgb2JqZWN0XHJcbiAqIEBwYXJhbSB2YWx1ZSBSZXF1ZXN0IG9iamVjdFxyXG4gKiAgKiBAcmV0dXJucyBIVFRQIHBhcmFtZXRlcnNcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBidWlsZEh0dHBQYXJhbXModmFsdWU6IGFueSk6IEh0dHBQYXJhbXMge1xyXG4gICAgbGV0IHBhcmFtczogYW55ID0ge30sIGh0dHBQYXJhbXMgPSBuZXcgSHR0cFBhcmFtcygpO1xyXG5cclxuICAgIF9idWlsZChwYXJhbXMsIHZhbHVlLCBDb21tb25Db25zdGFudHMuRU1QVFlfU1RSSU5HKTtcclxuXHJcbiAgICBPYmplY3Qua2V5cyhwYXJhbXMpLmZvckVhY2goa2V5ID0+IGh0dHBQYXJhbXMgPSBodHRwUGFyYW1zLmFwcGVuZChrZXksIHBhcmFtc1trZXldKSk7XHJcblxyXG4gICAgcmV0dXJuIGh0dHBQYXJhbXM7XHJcblxyXG4gICAgZnVuY3Rpb24gX2J1aWxkKHBhcmFtczogYW55LCB2YWx1ZTogYW55LCBwYXRoOiBzdHJpbmcsIGlzQXJyYXk6IGJvb2xlYW4gPSBmYWxzZSkge1xyXG4gICAgICAgIGNvbnN0IEFSUkFZX1BBUlQ6IHN0cmluZyA9ICddJztcclxuICAgICAgICBPYmplY3Qua2V5cyh2YWx1ZSkuZm9yRWFjaChrZXkgPT4ge1xyXG4gICAgICAgICAgICBpZiAodmFsdWVba2V5XSBpbnN0YW5jZW9mIEFycmF5KSB7XHJcbiAgICAgICAgICAgICAgICBfYnVpbGQocGFyYW1zLCB2YWx1ZVtrZXldLCBgJHtwYXRofSR7a2V5fVtgLCB0cnVlKTtcclxuICAgICAgICAgICAgfSBlbHNlIGlmICh2YWx1ZVtrZXldIGluc3RhbmNlb2YgT2JqZWN0KSB7XHJcbiAgICAgICAgICAgICAgICBfYnVpbGQocGFyYW1zLCB2YWx1ZVtrZXldLCBgJHtwYXRofSR7a2V5fSR7aXNBcnJheSA/IGAke0FSUkFZX1BBUlR9JHtDb21tb25Db25zdGFudHMuRE9UfWAgOiBDb21tb25Db25zdGFudHMuRE9UfWApO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgaWYgKGlzRGVmaW5lZCh2YWx1ZVtrZXldKSlcclxuICAgICAgICAgICAgICAgICAgICBwYXJhbXNbYCR7cGF0aH0ke2tleX0ke2lzQXJyYXkgPyBBUlJBWV9QQVJUIDogQ29tbW9uQ29uc3RhbnRzLkVNUFRZX1NUUklOR31gXSA9IHZhbHVlW2tleV07XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH1cclxufSJdfQ==
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC51dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zZmMtY29tbW9uL3NyYy9saWIvdXRpbHMvaHR0cC51dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFM0M7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSxlQUFlLENBQUMsS0FBVTtJQUN0QyxJQUFJLE1BQU0sR0FBUSxFQUFFLEVBQUUsVUFBVSxHQUFHLElBQUksVUFBVSxFQUFFLENBQUM7SUFFcEQsTUFBTSxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsZUFBZSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBRXBELE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFFckYsT0FBTyxVQUFVLENBQUM7SUFFbEIsU0FBUyxNQUFNLENBQUMsTUFBVyxFQUFFLEtBQVUsRUFBRSxJQUFZLEVBQUUsVUFBbUIsS0FBSztRQUMzRSxNQUFNLFVBQVUsR0FBVyxHQUFHLENBQUM7UUFFL0IsSUFBSSxDQUFDLEtBQUs7WUFBRSxPQUFPO1FBRW5CLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQzdCLElBQUksS0FBSyxDQUFDLEdBQUcsQ0FBQyxZQUFZLEtBQUssRUFBRTtnQkFDN0IsTUFBTSxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUUsR0FBRyxJQUFJLEdBQUcsR0FBRyxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUM7YUFDdEQ7aUJBQU0sSUFBSSxLQUFLLENBQUMsR0FBRyxDQUFDLFlBQVksTUFBTSxFQUFFO2dCQUNyQyxNQUFNLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRSxHQUFHLElBQUksR0FBRyxHQUFHLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLFVBQVUsR0FBRyxlQUFlLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO2FBQ3ZIO2lCQUFNO2dCQUNILElBQUksU0FBUyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztvQkFDckIsTUFBTSxDQUFDLEdBQUcsSUFBSSxHQUFHLEdBQUcsR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLFlBQVksRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2FBQ2xHO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBQYXJhbXMgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uL2h0dHBcIjtcclxuaW1wb3J0IHsgQ29tbW9uQ29uc3RhbnRzIH0gZnJvbSBcIi4uL2NvbnN0YW50c1wiO1xyXG5pbXBvcnQgeyBpc0RlZmluZWQgfSBmcm9tIFwiLi9jb21tb24udXRpbHNcIjtcclxuXHJcbi8qKlxyXG4gKiBCdWlsZCBIVFRQIHBhcmFtZXRlcnMgKEdFVCkgZnJvbSByZXF1ZXN0IG9iamVjdFxyXG4gKiBAcGFyYW0gdmFsdWUgUmVxdWVzdCBvYmplY3RcclxuICogICogQHJldHVybnMgSFRUUCBwYXJhbWV0ZXJzXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gYnVpbGRIdHRwUGFyYW1zKHZhbHVlOiBhbnkpOiBIdHRwUGFyYW1zIHtcclxuICAgIGxldCBwYXJhbXM6IGFueSA9IHt9LCBodHRwUGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoKTtcclxuXHJcbiAgICBfYnVpbGQocGFyYW1zLCB2YWx1ZSwgQ29tbW9uQ29uc3RhbnRzLkVNUFRZX1NUUklORyk7XHJcblxyXG4gICAgT2JqZWN0LmtleXMocGFyYW1zKS5mb3JFYWNoKGtleSA9PiBodHRwUGFyYW1zID0gaHR0cFBhcmFtcy5hcHBlbmQoa2V5LCBwYXJhbXNba2V5XSkpO1xyXG5cclxuICAgIHJldHVybiBodHRwUGFyYW1zO1xyXG5cclxuICAgIGZ1bmN0aW9uIF9idWlsZChwYXJhbXM6IGFueSwgdmFsdWU6IGFueSwgcGF0aDogc3RyaW5nLCBpc0FycmF5OiBib29sZWFuID0gZmFsc2UpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCBBUlJBWV9QQVJUOiBzdHJpbmcgPSAnXSc7XHJcblxyXG4gICAgICAgIGlmICghdmFsdWUpIHJldHVybjtcclxuXHJcbiAgICAgICAgT2JqZWN0LmtleXModmFsdWUpLmZvckVhY2goa2V5ID0+IHtcclxuICAgICAgICAgICAgaWYgKHZhbHVlW2tleV0gaW5zdGFuY2VvZiBBcnJheSkge1xyXG4gICAgICAgICAgICAgICAgX2J1aWxkKHBhcmFtcywgdmFsdWVba2V5XSwgYCR7cGF0aH0ke2tleX1bYCwgdHJ1ZSk7XHJcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodmFsdWVba2V5XSBpbnN0YW5jZW9mIE9iamVjdCkge1xyXG4gICAgICAgICAgICAgICAgX2J1aWxkKHBhcmFtcywgdmFsdWVba2V5XSwgYCR7cGF0aH0ke2tleX0ke2lzQXJyYXkgPyBgJHtBUlJBWV9QQVJUfSR7Q29tbW9uQ29uc3RhbnRzLkRPVH1gIDogQ29tbW9uQ29uc3RhbnRzLkRPVH1gKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGlmIChpc0RlZmluZWQodmFsdWVba2V5XSkpXHJcbiAgICAgICAgICAgICAgICAgICAgcGFyYW1zW2Ake3BhdGh9JHtrZXl9JHtpc0FycmF5ID8gQVJSQVlfUEFSVCA6IENvbW1vbkNvbnN0YW50cy5FTVBUWV9TVFJJTkd9YF0gPSB2YWx1ZVtrZXldO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbn0iXX0=
@@ -1,8 +1,8 @@
1
- export { isDefined, isObject, isAsyncData, addPropertyToObject, removePropertyFromObject, mergeDeep, nameof, isNumeric, isChromeBrowser, isEmail, parseBoolean, isEqual, generateGuid } from './common.utils';
1
+ export { isDefined, isObject, isAsyncData, addPropertyToObject, removePropertyFromObject, mergeDeep, nameof, isNumeric, isString, isChromeBrowser, isEmail, parseBoolean, isEqual, generateGuid, isJsonString, stopAndPreventPropagation } from './common.utils';
2
2
  export { isNullOrEmptyString, contains, trim } from './string.utils';
3
- export { setMinutes, setHours, setDay, setYear, setSeconds, setMilliseconds, setDefaultSecondsAndMiliseconds, getNextDate, getPreviousDate, getNextMonth, getPreviousMonth, getNextYear, getPreviousYear, getFirstDayOfMonth, getLastDayOfMonth, getFirstDayOfYear, getLastDayOfYear, getFirstDayOfMonthByYearAndMonth, getLastDayOfMonthByYearAndMonth, getWeeksNumberInMonth, isEqualDates, isEqualDateTimes, isDateGreat, isDateGreatOrEqual, isDateTimeGreat, isDateTimeGreatOrEqual, convertUTCDateToLocalDate, convertTimestampToDate, convertDateToTimestamp, getAge } from './date-time.utils';
3
+ export { setMinutes, setHours, setDay, setYear, setSeconds, setMilliseconds, setDefaultSecondsAndMiliseconds, getNextDate, getPreviousDate, getNextMonth, getPreviousMonth, getNextYear, getPreviousYear, getFirstDayOfMonth, getLastDayOfMonth, getFirstDayOfYear, getLastDayOfYear, getFirstDayOfMonthByYearAndMonth, getLastDayOfMonthByYearAndMonth, getWeeksNumberInMonth, isEqualDates, isEqualDateTimes, isDateGreat, isDateGreatOrEqual, isDateTimeGreat, isDateTimeGreatOrEqual, isDateTimeLessOrEqual, isTimeGreatOrEqual, isTimeLessOrEqual, convertUTCDateToLocalDate, convertTimestampToDate, convertDateToTimestamp, getAge } from './date-time.utils';
4
4
  export { parseFileSize, getFileExtension, readAsDataURL, isImage, convertToBase64String, convertFromBase64String } from './file.utils';
5
5
  export { getCssLikeValue, getValueFromCssLikeValue, getCalcValue, getRotateValue, addClasses, removeClasses, rgbToHex, hexToRgb, replaceRgbOpacity } from './ui.utils';
6
- export { any, hasItem, hasItemBy, hasObjectItem, firstOrDefault, firstItem, lastItem, all, where, skip, sort, sortBy, sortByPath, distinct, sum, max, remove, addItem, removeItem, removeItemBy, updateItemBy, getCollectionOrEmpty, count } from './collections.utils';
6
+ export { any, hasItem, hasItemBy, hasObjectItem, hasAnyItem, firstOrDefault, firstItem, lastItem, all, where, skip, sort, sortBy, sortByPath, distinct, sum, max, remove, addItem, removeItem, removeItemBy, updateItemBy, getCollectionOrEmpty, count, isArraysEquals } from './collections.utils';
7
7
  export { buildHttpParams } from './http.utils';
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc2ZjLWNvbW1vbi9zcmMvbGliL3V0aWxzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxTQUFTLEVBQ1QsUUFBUSxFQUNSLFdBQVcsRUFDWCxtQkFBbUIsRUFDbkIsd0JBQXdCLEVBQ3hCLFNBQVMsRUFDVCxNQUFNLEVBQ04sU0FBUyxFQUNULGVBQWUsRUFDZixPQUFPLEVBQ1AsWUFBWSxFQUNaLE9BQU8sRUFDUCxZQUFZLEVBQ2YsTUFBTSxnQkFBZ0IsQ0FBQTtBQUV2QixPQUFPLEVBQ0gsbUJBQW1CLEVBQ25CLFFBQVEsRUFDUixJQUFJLEVBQ1AsTUFBTSxnQkFBZ0IsQ0FBQTtBQUV2QixPQUFPLEVBQ0gsVUFBVSxFQUNWLFFBQVEsRUFDUixNQUFNLEVBQ04sT0FBTyxFQUNQLFVBQVUsRUFDVixlQUFlLEVBQ2YsK0JBQStCLEVBQy9CLFdBQVcsRUFDWCxlQUFlLEVBQ2YsWUFBWSxFQUNaLGdCQUFnQixFQUNoQixXQUFXLEVBQ1gsZUFBZSxFQUNmLGtCQUFrQixFQUNsQixpQkFBaUIsRUFDakIsaUJBQWlCLEVBQ2pCLGdCQUFnQixFQUNoQixnQ0FBZ0MsRUFDaEMsK0JBQStCLEVBQy9CLHFCQUFxQixFQUNyQixZQUFZLEVBQ1osZ0JBQWdCLEVBQ2hCLFdBQVcsRUFDWCxrQkFBa0IsRUFDbEIsZUFBZSxFQUNmLHNCQUFzQixFQUN0Qix5QkFBeUIsRUFDekIsc0JBQXNCLEVBQ3RCLHNCQUFzQixFQUN0QixNQUFNLEVBQ1QsTUFBTSxtQkFBbUIsQ0FBQTtBQUUxQixPQUFPLEVBQ0gsYUFBYSxFQUNiLGdCQUFnQixFQUNoQixhQUFhLEVBQ2IsT0FBTyxFQUNQLHFCQUFxQixFQUNyQix1QkFBdUIsRUFDMUIsTUFBTSxjQUFjLENBQUE7QUFFckIsT0FBTyxFQUNILGVBQWUsRUFDZix3QkFBd0IsRUFDeEIsWUFBWSxFQUNaLGNBQWMsRUFDZCxVQUFVLEVBQ1YsYUFBYSxFQUNiLFFBQVEsRUFDUixRQUFRLEVBQ1IsaUJBQWlCLEVBQ3BCLE1BQU0sWUFBWSxDQUFBO0FBRW5CLE9BQU8sRUFDSCxHQUFHLEVBQ0gsT0FBTyxFQUNQLFNBQVMsRUFDVCxhQUFhLEVBQ2IsY0FBYyxFQUNkLFNBQVMsRUFDVCxRQUFRLEVBQ1IsR0FBRyxFQUNILEtBQUssRUFDTCxJQUFJLEVBQ0osSUFBSSxFQUNKLE1BQU0sRUFDTixVQUFVLEVBQ1YsUUFBUSxFQUNSLEdBQUcsRUFDSCxHQUFHLEVBQ0gsTUFBTSxFQUNOLE9BQU8sRUFDUCxVQUFVLEVBQ1YsWUFBWSxFQUNaLFlBQVksRUFDWixvQkFBb0IsRUFDcEIsS0FBSyxFQUNSLE1BQU0scUJBQXFCLENBQUM7QUFFN0IsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7XHJcbiAgICBpc0RlZmluZWQsXHJcbiAgICBpc09iamVjdCxcclxuICAgIGlzQXN5bmNEYXRhLFxyXG4gICAgYWRkUHJvcGVydHlUb09iamVjdCxcclxuICAgIHJlbW92ZVByb3BlcnR5RnJvbU9iamVjdCxcclxuICAgIG1lcmdlRGVlcCxcclxuICAgIG5hbWVvZixcclxuICAgIGlzTnVtZXJpYyxcclxuICAgIGlzQ2hyb21lQnJvd3NlcixcclxuICAgIGlzRW1haWwsXHJcbiAgICBwYXJzZUJvb2xlYW4sXHJcbiAgICBpc0VxdWFsLFxyXG4gICAgZ2VuZXJhdGVHdWlkXHJcbn0gZnJvbSAnLi9jb21tb24udXRpbHMnXHJcblxyXG5leHBvcnQge1xyXG4gICAgaXNOdWxsT3JFbXB0eVN0cmluZyxcclxuICAgIGNvbnRhaW5zLFxyXG4gICAgdHJpbVxyXG59IGZyb20gJy4vc3RyaW5nLnV0aWxzJ1xyXG5cclxuZXhwb3J0IHtcclxuICAgIHNldE1pbnV0ZXMsXHJcbiAgICBzZXRIb3VycyxcclxuICAgIHNldERheSxcclxuICAgIHNldFllYXIsXHJcbiAgICBzZXRTZWNvbmRzLFxyXG4gICAgc2V0TWlsbGlzZWNvbmRzLFxyXG4gICAgc2V0RGVmYXVsdFNlY29uZHNBbmRNaWxpc2Vjb25kcyxcclxuICAgIGdldE5leHREYXRlLFxyXG4gICAgZ2V0UHJldmlvdXNEYXRlLFxyXG4gICAgZ2V0TmV4dE1vbnRoLFxyXG4gICAgZ2V0UHJldmlvdXNNb250aCxcclxuICAgIGdldE5leHRZZWFyLFxyXG4gICAgZ2V0UHJldmlvdXNZZWFyLFxyXG4gICAgZ2V0Rmlyc3REYXlPZk1vbnRoLFxyXG4gICAgZ2V0TGFzdERheU9mTW9udGgsXHJcbiAgICBnZXRGaXJzdERheU9mWWVhcixcclxuICAgIGdldExhc3REYXlPZlllYXIsXHJcbiAgICBnZXRGaXJzdERheU9mTW9udGhCeVllYXJBbmRNb250aCxcclxuICAgIGdldExhc3REYXlPZk1vbnRoQnlZZWFyQW5kTW9udGgsXHJcbiAgICBnZXRXZWVrc051bWJlckluTW9udGgsXHJcbiAgICBpc0VxdWFsRGF0ZXMsXHJcbiAgICBpc0VxdWFsRGF0ZVRpbWVzLFxyXG4gICAgaXNEYXRlR3JlYXQsXHJcbiAgICBpc0RhdGVHcmVhdE9yRXF1YWwsXHJcbiAgICBpc0RhdGVUaW1lR3JlYXQsXHJcbiAgICBpc0RhdGVUaW1lR3JlYXRPckVxdWFsLFxyXG4gICAgY29udmVydFVUQ0RhdGVUb0xvY2FsRGF0ZSxcclxuICAgIGNvbnZlcnRUaW1lc3RhbXBUb0RhdGUsXHJcbiAgICBjb252ZXJ0RGF0ZVRvVGltZXN0YW1wLFxyXG4gICAgZ2V0QWdlXHJcbn0gZnJvbSAnLi9kYXRlLXRpbWUudXRpbHMnXHJcblxyXG5leHBvcnQge1xyXG4gICAgcGFyc2VGaWxlU2l6ZSxcclxuICAgIGdldEZpbGVFeHRlbnNpb24sXHJcbiAgICByZWFkQXNEYXRhVVJMLFxyXG4gICAgaXNJbWFnZSxcclxuICAgIGNvbnZlcnRUb0Jhc2U2NFN0cmluZyxcclxuICAgIGNvbnZlcnRGcm9tQmFzZTY0U3RyaW5nXHJcbn0gZnJvbSAnLi9maWxlLnV0aWxzJ1xyXG5cclxuZXhwb3J0IHtcclxuICAgIGdldENzc0xpa2VWYWx1ZSxcclxuICAgIGdldFZhbHVlRnJvbUNzc0xpa2VWYWx1ZSxcclxuICAgIGdldENhbGNWYWx1ZSxcclxuICAgIGdldFJvdGF0ZVZhbHVlLFxyXG4gICAgYWRkQ2xhc3NlcyxcclxuICAgIHJlbW92ZUNsYXNzZXMsXHJcbiAgICByZ2JUb0hleCxcclxuICAgIGhleFRvUmdiLFxyXG4gICAgcmVwbGFjZVJnYk9wYWNpdHlcclxufSBmcm9tICcuL3VpLnV0aWxzJ1xyXG5cclxuZXhwb3J0IHtcclxuICAgIGFueSxcclxuICAgIGhhc0l0ZW0sXHJcbiAgICBoYXNJdGVtQnksXHJcbiAgICBoYXNPYmplY3RJdGVtLFxyXG4gICAgZmlyc3RPckRlZmF1bHQsXHJcbiAgICBmaXJzdEl0ZW0sXHJcbiAgICBsYXN0SXRlbSxcclxuICAgIGFsbCxcclxuICAgIHdoZXJlLFxyXG4gICAgc2tpcCxcclxuICAgIHNvcnQsXHJcbiAgICBzb3J0QnksXHJcbiAgICBzb3J0QnlQYXRoLFxyXG4gICAgZGlzdGluY3QsXHJcbiAgICBzdW0sXHJcbiAgICBtYXgsXHJcbiAgICByZW1vdmUsXHJcbiAgICBhZGRJdGVtLFxyXG4gICAgcmVtb3ZlSXRlbSxcclxuICAgIHJlbW92ZUl0ZW1CeSxcclxuICAgIHVwZGF0ZUl0ZW1CeSxcclxuICAgIGdldENvbGxlY3Rpb25PckVtcHR5LFxyXG4gICAgY291bnRcclxufSBmcm9tICcuL2NvbGxlY3Rpb25zLnV0aWxzJztcclxuXHJcbmV4cG9ydCB7IGJ1aWxkSHR0cFBhcmFtcyB9IGZyb20gJy4vaHR0cC51dGlscyc7Il19
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc2ZjLWNvbW1vbi9zcmMvbGliL3V0aWxzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxTQUFTLEVBQ1QsUUFBUSxFQUNSLFdBQVcsRUFDWCxtQkFBbUIsRUFDbkIsd0JBQXdCLEVBQ3hCLFNBQVMsRUFDVCxNQUFNLEVBQ04sU0FBUyxFQUNULFFBQVEsRUFDUixlQUFlLEVBQ2YsT0FBTyxFQUNQLFlBQVksRUFDWixPQUFPLEVBQ1AsWUFBWSxFQUNaLFlBQVksRUFDWix5QkFBeUIsRUFDNUIsTUFBTSxnQkFBZ0IsQ0FBQTtBQUV2QixPQUFPLEVBQ0gsbUJBQW1CLEVBQ25CLFFBQVEsRUFDUixJQUFJLEVBQ1AsTUFBTSxnQkFBZ0IsQ0FBQTtBQUV2QixPQUFPLEVBQ0gsVUFBVSxFQUNWLFFBQVEsRUFDUixNQUFNLEVBQ04sT0FBTyxFQUNQLFVBQVUsRUFDVixlQUFlLEVBQ2YsK0JBQStCLEVBQy9CLFdBQVcsRUFDWCxlQUFlLEVBQ2YsWUFBWSxFQUNaLGdCQUFnQixFQUNoQixXQUFXLEVBQ1gsZUFBZSxFQUNmLGtCQUFrQixFQUNsQixpQkFBaUIsRUFDakIsaUJBQWlCLEVBQ2pCLGdCQUFnQixFQUNoQixnQ0FBZ0MsRUFDaEMsK0JBQStCLEVBQy9CLHFCQUFxQixFQUNyQixZQUFZLEVBQ1osZ0JBQWdCLEVBQ2hCLFdBQVcsRUFDWCxrQkFBa0IsRUFDbEIsZUFBZSxFQUNmLHNCQUFzQixFQUN0QixxQkFBcUIsRUFDckIsa0JBQWtCLEVBQ2xCLGlCQUFpQixFQUNqQix5QkFBeUIsRUFDekIsc0JBQXNCLEVBQ3RCLHNCQUFzQixFQUN0QixNQUFNLEVBQ1QsTUFBTSxtQkFBbUIsQ0FBQTtBQUUxQixPQUFPLEVBQ0gsYUFBYSxFQUNiLGdCQUFnQixFQUNoQixhQUFhLEVBQ2IsT0FBTyxFQUNQLHFCQUFxQixFQUNyQix1QkFBdUIsRUFDMUIsTUFBTSxjQUFjLENBQUE7QUFFckIsT0FBTyxFQUNILGVBQWUsRUFDZix3QkFBd0IsRUFDeEIsWUFBWSxFQUNaLGNBQWMsRUFDZCxVQUFVLEVBQ1YsYUFBYSxFQUNiLFFBQVEsRUFDUixRQUFRLEVBQ1IsaUJBQWlCLEVBQ3BCLE1BQU0sWUFBWSxDQUFBO0FBRW5CLE9BQU8sRUFDSCxHQUFHLEVBQ0gsT0FBTyxFQUNQLFNBQVMsRUFDVCxhQUFhLEVBQ2IsVUFBVSxFQUNWLGNBQWMsRUFDZCxTQUFTLEVBQ1QsUUFBUSxFQUNSLEdBQUcsRUFDSCxLQUFLLEVBQ0wsSUFBSSxFQUNKLElBQUksRUFDSixNQUFNLEVBQ04sVUFBVSxFQUNWLFFBQVEsRUFDUixHQUFHLEVBQ0gsR0FBRyxFQUNILE1BQU0sRUFDTixPQUFPLEVBQ1AsVUFBVSxFQUNWLFlBQVksRUFDWixZQUFZLEVBQ1osb0JBQW9CLEVBQ3BCLEtBQUssRUFDTCxjQUFjLEVBQ2pCLE1BQU0scUJBQXFCLENBQUM7QUFFN0IsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7XHJcbiAgICBpc0RlZmluZWQsXHJcbiAgICBpc09iamVjdCxcclxuICAgIGlzQXN5bmNEYXRhLFxyXG4gICAgYWRkUHJvcGVydHlUb09iamVjdCxcclxuICAgIHJlbW92ZVByb3BlcnR5RnJvbU9iamVjdCxcclxuICAgIG1lcmdlRGVlcCxcclxuICAgIG5hbWVvZixcclxuICAgIGlzTnVtZXJpYyxcclxuICAgIGlzU3RyaW5nLFxyXG4gICAgaXNDaHJvbWVCcm93c2VyLFxyXG4gICAgaXNFbWFpbCxcclxuICAgIHBhcnNlQm9vbGVhbixcclxuICAgIGlzRXF1YWwsXHJcbiAgICBnZW5lcmF0ZUd1aWQsXHJcbiAgICBpc0pzb25TdHJpbmcsXHJcbiAgICBzdG9wQW5kUHJldmVudFByb3BhZ2F0aW9uXHJcbn0gZnJvbSAnLi9jb21tb24udXRpbHMnXHJcblxyXG5leHBvcnQge1xyXG4gICAgaXNOdWxsT3JFbXB0eVN0cmluZyxcclxuICAgIGNvbnRhaW5zLFxyXG4gICAgdHJpbVxyXG59IGZyb20gJy4vc3RyaW5nLnV0aWxzJ1xyXG5cclxuZXhwb3J0IHtcclxuICAgIHNldE1pbnV0ZXMsXHJcbiAgICBzZXRIb3VycyxcclxuICAgIHNldERheSxcclxuICAgIHNldFllYXIsXHJcbiAgICBzZXRTZWNvbmRzLFxyXG4gICAgc2V0TWlsbGlzZWNvbmRzLFxyXG4gICAgc2V0RGVmYXVsdFNlY29uZHNBbmRNaWxpc2Vjb25kcyxcclxuICAgIGdldE5leHREYXRlLFxyXG4gICAgZ2V0UHJldmlvdXNEYXRlLFxyXG4gICAgZ2V0TmV4dE1vbnRoLFxyXG4gICAgZ2V0UHJldmlvdXNNb250aCxcclxuICAgIGdldE5leHRZZWFyLFxyXG4gICAgZ2V0UHJldmlvdXNZZWFyLFxyXG4gICAgZ2V0Rmlyc3REYXlPZk1vbnRoLFxyXG4gICAgZ2V0TGFzdERheU9mTW9udGgsXHJcbiAgICBnZXRGaXJzdERheU9mWWVhcixcclxuICAgIGdldExhc3REYXlPZlllYXIsXHJcbiAgICBnZXRGaXJzdERheU9mTW9udGhCeVllYXJBbmRNb250aCxcclxuICAgIGdldExhc3REYXlPZk1vbnRoQnlZZWFyQW5kTW9udGgsXHJcbiAgICBnZXRXZWVrc051bWJlckluTW9udGgsXHJcbiAgICBpc0VxdWFsRGF0ZXMsXHJcbiAgICBpc0VxdWFsRGF0ZVRpbWVzLFxyXG4gICAgaXNEYXRlR3JlYXQsXHJcbiAgICBpc0RhdGVHcmVhdE9yRXF1YWwsXHJcbiAgICBpc0RhdGVUaW1lR3JlYXQsXHJcbiAgICBpc0RhdGVUaW1lR3JlYXRPckVxdWFsLFxyXG4gICAgaXNEYXRlVGltZUxlc3NPckVxdWFsLFxyXG4gICAgaXNUaW1lR3JlYXRPckVxdWFsLFxyXG4gICAgaXNUaW1lTGVzc09yRXF1YWwsXHJcbiAgICBjb252ZXJ0VVRDRGF0ZVRvTG9jYWxEYXRlLFxyXG4gICAgY29udmVydFRpbWVzdGFtcFRvRGF0ZSxcclxuICAgIGNvbnZlcnREYXRlVG9UaW1lc3RhbXAsXHJcbiAgICBnZXRBZ2VcclxufSBmcm9tICcuL2RhdGUtdGltZS51dGlscydcclxuXHJcbmV4cG9ydCB7XHJcbiAgICBwYXJzZUZpbGVTaXplLFxyXG4gICAgZ2V0RmlsZUV4dGVuc2lvbixcclxuICAgIHJlYWRBc0RhdGFVUkwsXHJcbiAgICBpc0ltYWdlLFxyXG4gICAgY29udmVydFRvQmFzZTY0U3RyaW5nLFxyXG4gICAgY29udmVydEZyb21CYXNlNjRTdHJpbmdcclxufSBmcm9tICcuL2ZpbGUudXRpbHMnXHJcblxyXG5leHBvcnQge1xyXG4gICAgZ2V0Q3NzTGlrZVZhbHVlLFxyXG4gICAgZ2V0VmFsdWVGcm9tQ3NzTGlrZVZhbHVlLFxyXG4gICAgZ2V0Q2FsY1ZhbHVlLFxyXG4gICAgZ2V0Um90YXRlVmFsdWUsXHJcbiAgICBhZGRDbGFzc2VzLFxyXG4gICAgcmVtb3ZlQ2xhc3NlcyxcclxuICAgIHJnYlRvSGV4LFxyXG4gICAgaGV4VG9SZ2IsXHJcbiAgICByZXBsYWNlUmdiT3BhY2l0eVxyXG59IGZyb20gJy4vdWkudXRpbHMnXHJcblxyXG5leHBvcnQge1xyXG4gICAgYW55LFxyXG4gICAgaGFzSXRlbSxcclxuICAgIGhhc0l0ZW1CeSxcclxuICAgIGhhc09iamVjdEl0ZW0sXHJcbiAgICBoYXNBbnlJdGVtLFxyXG4gICAgZmlyc3RPckRlZmF1bHQsXHJcbiAgICBmaXJzdEl0ZW0sXHJcbiAgICBsYXN0SXRlbSxcclxuICAgIGFsbCxcclxuICAgIHdoZXJlLFxyXG4gICAgc2tpcCxcclxuICAgIHNvcnQsXHJcbiAgICBzb3J0QnksXHJcbiAgICBzb3J0QnlQYXRoLFxyXG4gICAgZGlzdGluY3QsXHJcbiAgICBzdW0sXHJcbiAgICBtYXgsXHJcbiAgICByZW1vdmUsXHJcbiAgICBhZGRJdGVtLFxyXG4gICAgcmVtb3ZlSXRlbSxcclxuICAgIHJlbW92ZUl0ZW1CeSxcclxuICAgIHVwZGF0ZUl0ZW1CeSxcclxuICAgIGdldENvbGxlY3Rpb25PckVtcHR5LFxyXG4gICAgY291bnQsXHJcbiAgICBpc0FycmF5c0VxdWFsc1xyXG59IGZyb20gJy4vY29sbGVjdGlvbnMudXRpbHMnO1xyXG5cclxuZXhwb3J0IHsgYnVpbGRIdHRwUGFyYW1zIH0gZnJvbSAnLi9odHRwLnV0aWxzJzsiXX0=
@@ -10,4 +10,5 @@ export * from './lib/directives';
10
10
  export * from './lib/pipes';
11
11
  export * from './lib/components';
12
12
  export * from './lib/types';
13
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL25neC1zZmMtY29tbW9uL3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLGFBQWEsQ0FBQztBQUM1QixjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsYUFBYSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIG5neC1zZmMtY29tbW9uXHJcbiAqL1xyXG5cclxuZXhwb3J0ICogZnJvbSAnLi9saWIvbmd4LXNmYy1jb21tb24ubW9kdWxlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29uc3RhbnRzJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvZW51bXMnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi91dGlscyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvZGlyZWN0aXZlcyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3BpcGVzJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3R5cGVzJztcclxuIl19
13
+ export * from './lib/models';
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL25neC1zZmMtY29tbW9uL3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLGFBQWEsQ0FBQztBQUM1QixjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIG5neC1zZmMtY29tbW9uXHJcbiAqL1xyXG5cclxuZXhwb3J0ICogZnJvbSAnLi9saWIvbmd4LXNmYy1jb21tb24ubW9kdWxlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29uc3RhbnRzJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvZW51bXMnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi91dGlscyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvZGlyZWN0aXZlcyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3BpcGVzJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3R5cGVzJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzJztcclxuIl19