ng-configcat-publicapi-ui 3.0.8 → 4.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 (136) hide show
  1. package/esm2022/lib/_directives/input-display-normalizer.directive.mjs +38 -0
  2. package/esm2022/lib/_models/flag-state.mjs +2 -0
  3. package/esm2022/lib/_models/setting-value-formgroup.mjs +2 -0
  4. package/esm2022/lib/_models/user-comparator.mjs +100 -0
  5. package/esm2022/lib/_services/app-data-adapter.mjs +18 -0
  6. package/esm2022/lib/_services/comparison-value-list-helper.mjs +72 -0
  7. package/esm2022/lib/_services/date-helper.mjs +56 -0
  8. package/esm2022/lib/_services/form-generator.mjs +359 -0
  9. package/esm2022/lib/_services/form-helper.mjs +107 -0
  10. package/esm2022/lib/_services/messaging.service.mjs +26 -0
  11. package/esm2022/lib/_services/public-api.service.mjs +77 -0
  12. package/esm2022/lib/_services/setting-list-form-helper.mjs +171 -0
  13. package/esm2022/lib/_services/tracking.directive.mjs +16 -0
  14. package/esm2022/lib/ace-editor/ace-editor.component.mjs +137 -0
  15. package/esm2022/lib/authorization/authorization.component.mjs +62 -0
  16. package/{esm2020 → esm2022}/lib/base/base-select.component.mjs +4 -4
  17. package/esm2022/lib/base/base.component.mjs +48 -0
  18. package/esm2022/lib/bootstrap.mjs +10 -0
  19. package/{esm2020 → esm2022}/lib/configuration.mjs +4 -4
  20. package/esm2022/lib/dialogs/confirmation-dialog/confirmation-dialog.mjs +28 -0
  21. package/{esm2020 → esm2022}/lib/dialogs/delete-setting-dialog/delete-setting-dialog.component.mjs +6 -6
  22. package/esm2022/lib/dialogs/expand-dialog/expand-dialog.component.mjs +80 -0
  23. package/esm2022/lib/dialogs/info-dialog/info-dialog.mjs +29 -0
  24. package/esm2022/lib/dialogs/reason-dialog/reason-dialog.component.mjs +36 -0
  25. package/{esm2020 → esm2022}/lib/dialogs/save-snackbar/save-snackbar.component.mjs +5 -5
  26. package/esm2022/lib/ng-configcat-publicapi-ui.module.mjs +285 -0
  27. package/esm2022/lib/selects/config-select/config-select.component.mjs +60 -0
  28. package/esm2022/lib/selects/environment-select/environment-select.component.mjs +47 -0
  29. package/esm2022/lib/selects/product-select/product-select.component.mjs +40 -0
  30. package/esm2022/lib/selects/setting-select/setting-select.component.mjs +47 -0
  31. package/esm2022/lib/setting-item/setting-item.component.mjs +118 -0
  32. package/esm2022/lib/setting-list/setting/rollout-percentage-items/rollout-percentage-items.component.mjs +81 -0
  33. package/esm2022/lib/setting-list/setting/rollout-rules/rollout-rules.component.mjs +293 -0
  34. package/{esm2020 → esm2022}/lib/setting-list/setting/setting.component.mjs +5 -5
  35. package/esm2022/lib/setting-list/setting/value/value.component.mjs +37 -0
  36. package/esm2022/lib/setting-list/setting-list.component.mjs +194 -0
  37. package/esm2022/lib/v2/feature-flag/date-time-picker/date-time-picker.component.mjs +123 -0
  38. package/esm2022/lib/v2/feature-flag/dependees-dialog/dependees-dialog.component.mjs +30 -0
  39. package/esm2022/lib/v2/feature-flag/evaluation-formula/evaluation-formula.component.mjs +220 -0
  40. package/esm2022/lib/v2/feature-flag/evaluation-formula/feature-flag-value/feature-flag-value.component.mjs +61 -0
  41. package/esm2022/lib/v2/feature-flag/evaluation-formula/popout-text-editor-dialog/popout-text-editor-dialog.component.mjs +72 -0
  42. package/esm2022/lib/v2/feature-flag/evaluation-formula/targeting-rule/conditions/condition-chip/condition-chip.component.mjs +25 -0
  43. package/esm2022/lib/v2/feature-flag/evaluation-formula/targeting-rule/conditions/conditions.component.mjs +105 -0
  44. package/esm2022/lib/v2/feature-flag/evaluation-formula/targeting-rule/conditions/prerequisite-flag-condition/prerequisite-flag-condition.component.mjs +75 -0
  45. package/esm2022/lib/v2/feature-flag/evaluation-formula/targeting-rule/conditions/segment-condition/segment-condition.component.mjs +48 -0
  46. package/esm2022/lib/v2/feature-flag/evaluation-formula/targeting-rule/conditions/user-condition/comparator-dialog/comparator-dialog.component.mjs +113 -0
  47. package/esm2022/lib/v2/feature-flag/evaluation-formula/targeting-rule/conditions/user-condition/popout-list-editor-dialog/popout-list-editor-dialog.component.mjs +251 -0
  48. package/esm2022/lib/v2/feature-flag/evaluation-formula/targeting-rule/conditions/user-condition/user-condition.component.mjs +444 -0
  49. package/esm2022/lib/v2/feature-flag/evaluation-formula/targeting-rule/percentage-options/percentage-options.component.mjs +84 -0
  50. package/esm2022/lib/v2/feature-flag/evaluation-formula/targeting-rule/targeting-rule.component.mjs +129 -0
  51. package/esm2022/lib/v2/feature-flag/feature-flag.component.mjs +190 -0
  52. package/esm2022/lib/v2/feature-flag/percentage-evaluation-attribute-dialog/percentage-evaluation-attribute-dialog.component.mjs +65 -0
  53. package/esm2022/lib/v2/feature-flag-item.component.mjs +319 -0
  54. package/{esm2020 → esm2022}/public-api.mjs +2 -1
  55. package/fesm2022/ng-configcat-publicapi-ui.mjs +4790 -0
  56. package/fesm2022/ng-configcat-publicapi-ui.mjs.map +1 -0
  57. package/lib/_models/flag-state.d.ts +20 -0
  58. package/lib/_models/setting-value-formgroup.d.ts +69 -0
  59. package/lib/_models/user-comparator.d.ts +84 -0
  60. package/lib/_services/app-data-adapter.d.ts +7 -0
  61. package/lib/_services/comparison-value-list-helper.d.ts +17 -0
  62. package/lib/_services/date-helper.d.ts +6 -0
  63. package/lib/_services/form-generator.d.ts +59 -0
  64. package/lib/_services/form-helper.d.ts +4 -1
  65. package/lib/_services/messaging.service.d.ts +12 -0
  66. package/lib/_services/public-api.service.d.ts +2 -1
  67. package/lib/_services/setting-list-form-helper.d.ts +1 -1
  68. package/lib/_services/tracking.directive.d.ts +6 -0
  69. package/lib/ace-editor/ace-editor.component.d.ts +32 -0
  70. package/lib/authorization/authorization.component.d.ts +2 -2
  71. package/lib/base/base-select.component.d.ts +1 -1
  72. package/lib/base/base.component.d.ts +2 -1
  73. package/lib/bootstrap.d.ts +12 -0
  74. package/lib/dialogs/confirmation-dialog/confirmation-dialog.d.ts +19 -0
  75. package/lib/dialogs/info-dialog/info-dialog.d.ts +17 -0
  76. package/lib/ng-configcat-publicapi-ui.module.d.ts +47 -19
  77. package/lib/selects/config-select/config-select.component.d.ts +1 -1
  78. package/lib/selects/environment-select/environment-select.component.d.ts +1 -1
  79. package/lib/selects/product-select/product-select.component.d.ts +1 -1
  80. package/lib/selects/setting-select/setting-select.component.d.ts +1 -1
  81. package/lib/setting-item/setting-item.component.d.ts +4 -2
  82. package/lib/setting-list/setting/rollout-percentage-items/rollout-percentage-items.component.d.ts +1 -1
  83. package/lib/setting-list/setting/rollout-rules/rollout-rules.component.d.ts +4 -4
  84. package/lib/setting-list/setting/setting.component.d.ts +1 -1
  85. package/lib/setting-list/setting/value/value.component.d.ts +1 -1
  86. package/lib/setting-list/setting-list.component.d.ts +1 -1
  87. package/lib/v2/feature-flag/date-time-picker/date-time-picker.component.d.ts +25 -0
  88. package/lib/v2/feature-flag/dependees-dialog/dependees-dialog.component.d.ts +27 -0
  89. package/lib/v2/feature-flag/evaluation-formula/evaluation-formula.component.d.ts +41 -0
  90. package/lib/v2/feature-flag/evaluation-formula/feature-flag-value/feature-flag-value.component.d.ts +18 -0
  91. package/lib/v2/feature-flag/evaluation-formula/popout-text-editor-dialog/popout-text-editor-dialog.component.d.ts +30 -0
  92. package/lib/v2/feature-flag/evaluation-formula/targeting-rule/conditions/condition-chip/condition-chip.component.d.ts +10 -0
  93. package/lib/v2/feature-flag/evaluation-formula/targeting-rule/conditions/conditions.component.d.ts +27 -0
  94. package/lib/v2/feature-flag/evaluation-formula/targeting-rule/conditions/prerequisite-flag-condition/prerequisite-flag-condition.component.d.ts +36 -0
  95. package/lib/v2/feature-flag/evaluation-formula/targeting-rule/conditions/segment-condition/segment-condition.component.d.ts +21 -0
  96. package/lib/v2/feature-flag/evaluation-formula/targeting-rule/conditions/user-condition/comparator-dialog/comparator-dialog.component.d.ts +79 -0
  97. package/lib/v2/feature-flag/evaluation-formula/targeting-rule/conditions/user-condition/popout-list-editor-dialog/popout-list-editor-dialog.component.d.ts +63 -0
  98. package/lib/v2/feature-flag/evaluation-formula/targeting-rule/conditions/user-condition/user-condition.component.d.ts +94 -0
  99. package/lib/v2/feature-flag/evaluation-formula/targeting-rule/percentage-options/percentage-options.component.d.ts +31 -0
  100. package/lib/v2/feature-flag/evaluation-formula/targeting-rule/targeting-rule.component.d.ts +33 -0
  101. package/lib/v2/feature-flag/feature-flag.component.d.ts +49 -0
  102. package/lib/v2/feature-flag/percentage-evaluation-attribute-dialog/percentage-evaluation-attribute-dialog.component.d.ts +28 -0
  103. package/lib/v2/feature-flag-item.component.d.ts +66 -0
  104. package/package.json +12 -16
  105. package/public-api.d.ts +1 -0
  106. package/public-api.scss +205 -3
  107. package/esm2020/lib/_directives/input-display-normalizer.directive.mjs +0 -38
  108. package/esm2020/lib/_services/form-helper.mjs +0 -104
  109. package/esm2020/lib/_services/public-api.service.mjs +0 -71
  110. package/esm2020/lib/_services/setting-list-form-helper.mjs +0 -171
  111. package/esm2020/lib/authorization/authorization.component.mjs +0 -62
  112. package/esm2020/lib/base/base.component.mjs +0 -45
  113. package/esm2020/lib/dialogs/expand-dialog/expand-dialog.component.mjs +0 -80
  114. package/esm2020/lib/dialogs/reason-dialog/reason-dialog.component.mjs +0 -36
  115. package/esm2020/lib/ng-configcat-publicapi-ui.module.mjs +0 -179
  116. package/esm2020/lib/selects/config-select/config-select.component.mjs +0 -60
  117. package/esm2020/lib/selects/environment-select/environment-select.component.mjs +0 -47
  118. package/esm2020/lib/selects/product-select/product-select.component.mjs +0 -40
  119. package/esm2020/lib/selects/setting-select/setting-select.component.mjs +0 -47
  120. package/esm2020/lib/setting-item/setting-item.component.mjs +0 -116
  121. package/esm2020/lib/setting-list/setting/rollout-percentage-items/rollout-percentage-items.component.mjs +0 -81
  122. package/esm2020/lib/setting-list/setting/rollout-rules/rollout-rules.component.mjs +0 -293
  123. package/esm2020/lib/setting-list/setting/value/value.component.mjs +0 -37
  124. package/esm2020/lib/setting-list/setting-list.component.mjs +0 -194
  125. package/fesm2015/ng-configcat-publicapi-ui.mjs +0 -1786
  126. package/fesm2015/ng-configcat-publicapi-ui.mjs.map +0 -1
  127. package/fesm2020/ng-configcat-publicapi-ui.mjs +0 -1763
  128. package/fesm2020/ng-configcat-publicapi-ui.mjs.map +0 -1
  129. /package/{esm2020 → esm2022}/lib/_directives/index.mjs +0 -0
  130. /package/{esm2020 → esm2022}/lib/_models/deleteSettingModel.mjs +0 -0
  131. /package/{esm2020 → esm2022}/lib/_models/index.mjs +0 -0
  132. /package/{esm2020 → esm2022}/lib/_models/settingValuesModel.mjs +0 -0
  133. /package/{esm2020 → esm2022}/lib/_models/updateSettingValuesModel.mjs +0 -0
  134. /package/{esm2020 → esm2022}/lib/_services/index.mjs +0 -0
  135. /package/{esm2020 → esm2022}/lib/_services/platform-helper.mjs +0 -0
  136. /package/{esm2020 → esm2022}/ng-configcat-publicapi-ui.mjs +0 -0
@@ -0,0 +1,38 @@
1
+ import { Directive, HostListener } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ /**
4
+ * Makes sure that values entered into HTML input fields are displayed in the correct format,
5
+ * where correct means normalized (e.g. `'.10'` --> `'0.1'`) and corresponding to the locale setting.
6
+ *
7
+ * The format is adjusted on the blur event. Only the format of number inputs is adjusted currently.
8
+ */
9
+ export class InputDisplayNormalizerDirective {
10
+ constructor() { }
11
+ onChange($event) {
12
+ const target = $event.target;
13
+ if (target.type === 'number') {
14
+ let value = target.value;
15
+ value = value.trim() !== '' ? Number(value) : NaN;
16
+ if (isFinite(value)) {
17
+ // The string returned by the `value` property and the string displayed in the input field are not necessarily equal.
18
+ // HACK: When the returned and the displayed value differs only in the decimal separator,
19
+ // Chrome won't update the displayed value unless the value is changed first...
20
+ target.value = '';
21
+ target.value = value;
22
+ }
23
+ }
24
+ }
25
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: InputDisplayNormalizerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
26
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.1.3", type: InputDisplayNormalizerDirective, selector: "input[inputDisplayNormalizer]", host: { listeners: { "blur": "onChange($event)" } }, ngImport: i0 }); }
27
+ }
28
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: InputDisplayNormalizerDirective, decorators: [{
29
+ type: Directive,
30
+ args: [{
31
+ // eslint-disable-next-line @angular-eslint/directive-selector
32
+ selector: 'input[inputDisplayNormalizer]'
33
+ }]
34
+ }], ctorParameters: () => [], propDecorators: { onChange: [{
35
+ type: HostListener,
36
+ args: ['blur', ['$event']]
37
+ }] } });
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtZGlzcGxheS1ub3JtYWxpemVyLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWNvbmZpZ2NhdC1wdWJsaWNhcGktdWkvc3JjL2xpYi9fZGlyZWN0aXZlcy9pbnB1dC1kaXNwbGF5LW5vcm1hbGl6ZXIuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUV4RDs7Ozs7R0FLRztBQUtILE1BQU0sT0FBTywrQkFBK0I7SUFDeEMsZ0JBQWdCLENBQUM7SUFHakIsUUFBUSxDQUFDLE1BQVc7UUFDaEIsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQztRQUM3QixJQUFJLE1BQU0sQ0FBQyxJQUFJLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDM0IsSUFBSSxLQUFLLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQztZQUN6QixLQUFLLEdBQUcsS0FBSyxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7WUFDbEQsSUFBSSxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztnQkFDbEIscUhBQXFIO2dCQUNySCx5RkFBeUY7Z0JBQ3pGLCtFQUErRTtnQkFDL0UsTUFBTSxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7Z0JBQ2xCLE1BQU0sQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1lBQ3pCLENBQUM7UUFDTCxDQUFDO0lBQ0wsQ0FBQzs4R0FqQlEsK0JBQStCO2tHQUEvQiwrQkFBK0I7OzJGQUEvQiwrQkFBK0I7a0JBSjNDLFNBQVM7bUJBQUM7b0JBQ1AsOERBQThEO29CQUM5RCxRQUFRLEVBQUUsK0JBQStCO2lCQUM1Qzt3REFLRyxRQUFRO3NCQURQLFlBQVk7dUJBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBIb3N0TGlzdGVuZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuLyoqXG4gKiBNYWtlcyBzdXJlIHRoYXQgdmFsdWVzIGVudGVyZWQgaW50byBIVE1MIGlucHV0IGZpZWxkcyBhcmUgZGlzcGxheWVkIGluIHRoZSBjb3JyZWN0IGZvcm1hdCxcbiAqIHdoZXJlIGNvcnJlY3QgbWVhbnMgbm9ybWFsaXplZCAoZS5nLiBgJy4xMCdgIC0tPiBgJzAuMSdgKSBhbmQgY29ycmVzcG9uZGluZyB0byB0aGUgbG9jYWxlIHNldHRpbmcuXG4gKiBcbiAqIFRoZSBmb3JtYXQgaXMgYWRqdXN0ZWQgb24gdGhlIGJsdXIgZXZlbnQuIE9ubHkgdGhlIGZvcm1hdCBvZiBudW1iZXIgaW5wdXRzIGlzIGFkanVzdGVkIGN1cnJlbnRseS5cbiAqL1xuQERpcmVjdGl2ZSh7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9kaXJlY3RpdmUtc2VsZWN0b3JcbiAgICBzZWxlY3RvcjogJ2lucHV0W2lucHV0RGlzcGxheU5vcm1hbGl6ZXJdJ1xufSlcbmV4cG9ydCBjbGFzcyBJbnB1dERpc3BsYXlOb3JtYWxpemVyRGlyZWN0aXZlIHtcbiAgICBjb25zdHJ1Y3RvcigpIHsgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcignYmx1cicsIFsnJGV2ZW50J10pXG4gICAgb25DaGFuZ2UoJGV2ZW50OiBhbnkpIHtcbiAgICAgICAgY29uc3QgdGFyZ2V0ID0gJGV2ZW50LnRhcmdldDtcbiAgICAgICAgaWYgKHRhcmdldC50eXBlID09PSAnbnVtYmVyJykge1xuICAgICAgICAgICAgbGV0IHZhbHVlID0gdGFyZ2V0LnZhbHVlO1xuICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZS50cmltKCkgIT09ICcnID8gTnVtYmVyKHZhbHVlKSA6IE5hTjtcbiAgICAgICAgICAgIGlmIChpc0Zpbml0ZSh2YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICAvLyBUaGUgc3RyaW5nIHJldHVybmVkIGJ5IHRoZSBgdmFsdWVgIHByb3BlcnR5IGFuZCB0aGUgc3RyaW5nIGRpc3BsYXllZCBpbiB0aGUgaW5wdXQgZmllbGQgYXJlIG5vdCBuZWNlc3NhcmlseSBlcXVhbC5cbiAgICAgICAgICAgICAgICAvLyBIQUNLOiBXaGVuIHRoZSByZXR1cm5lZCBhbmQgdGhlIGRpc3BsYXllZCB2YWx1ZSBkaWZmZXJzIG9ubHkgaW4gdGhlIGRlY2ltYWwgc2VwYXJhdG9yLFxuICAgICAgICAgICAgICAgIC8vIENocm9tZSB3b24ndCB1cGRhdGUgdGhlIGRpc3BsYXllZCB2YWx1ZSB1bmxlc3MgdGhlIHZhbHVlIGlzIGNoYW5nZWQgZmlyc3QuLi5cbiAgICAgICAgICAgICAgICB0YXJnZXQudmFsdWUgPSAnJztcbiAgICAgICAgICAgICAgICB0YXJnZXQudmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn0iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxhZy1zdGF0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWNvbmZpZ2NhdC1wdWJsaWNhcGktdWkvc3JjL2xpYi9fbW9kZWxzL2ZsYWctc3RhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNldHRpbmdGb3JtdWxhTW9kZWwgfSBmcm9tIFwibmctY29uZmlnY2F0LXB1YmxpY2FwaVwiO1xuaW1wb3J0IHsgSURlcGVuZGVlU2V0dGluZywgSVByZXJlcXVpc2l0ZVNldHRpbmcgfSBmcm9tIFwiLi9zZXR0aW5nLXZhbHVlLWZvcm1ncm91cFwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIElGbGFnU3RhdGUge1xuICAgIGFkZEJ1dHRvblJlbmRlclN0YXRlOiBJQWRkQnV0dG9uc1JlbmRlclN0YXRlO1xuICAgIHNldHRpbmdWYWx1ZTogU2V0dGluZ0Zvcm11bGFNb2RlbDtcbiAgICBkZXBlbmRlZVNldHRpbmdzOiBJRGVwZW5kZWVTZXR0aW5nW107XG4gICAgcHJlcmVxdWlzaXRlU2V0dGluZ3M6IElQcmVyZXF1aXNpdGVTZXR0aW5nW107XG4gICAgcGFuZWxFeHBhbmRlZDogYm9vbGVhbjtcbiAgICByZWFkT25seTogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJQWRkQnV0dG9uc1JlbmRlclN0YXRlIHtcbiAgICByZW5kZXJUb3BBZGRCdXR0b25zOiBib29sZWFuO1xuICAgIGhhc1BlcmNlbnRhZ2VPbmx5UnVsZTogYm9vbGVhbjtcbiAgICBhZGRSdWxlQnV0dG9uVHJhY2tlcjogSUFkZFJ1bGVCdXR0b25UcmFja2VyW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUFkZFJ1bGVCdXR0b25UcmFja2VyIHtcbiAgICBzaG93QWRkUnVsZUJ1dHRvbnM6IGJvb2xlYW47XG4gICAgc2hvd09yQ2hpcDogYm9vbGVhbjtcbiAgICByZW5kZXJTZXBhcmF0aW9uQXJlYTogYm9vbGVhbjtcbn0iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dGluZy12YWx1ZS1mb3JtZ3JvdXAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1jb25maWdjYXQtcHVibGljYXBpLXVpL3NyYy9saWIvX21vZGVscy9zZXR0aW5nLXZhbHVlLWZvcm1ncm91cC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRm9ybUFycmF5LCBGb3JtQ29udHJvbCwgRm9ybUdyb3VwIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XG5pbXBvcnQgeyBVc2VyQ29tcGFyYXRvciwgU2VnbWVudENvbXBhcmF0b3IsIFNldHRpbmdUeXBlLCBQcmVyZXF1aXNpdGVDb21wYXJhdG9yIH0gZnJvbSBcIm5nLWNvbmZpZ2NhdC1wdWJsaWNhcGlcIjtcblxuZXhwb3J0IGludGVyZmFjZSBDb21wYXJpc29uVmFsdWVMaXN0Rm9ybSB7XG4gICAgdmFsdWU6IEZvcm1Db250cm9sPHN0cmluZz47XG4gICAgaGludD86IEZvcm1Db250cm9sPHN0cmluZz47XG4gICAgaW5kZXg6IEZvcm1Db250cm9sPG51bWJlcj47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29tcGFyaXNvblZhbHVlRm9ybSB7XG4gICAgc3RyaW5nVmFsdWU/OiBGb3JtQ29udHJvbDxzdHJpbmc+O1xuICAgIGRvdWJsZVZhbHVlPzogRm9ybUNvbnRyb2w8bnVtYmVyPjtcbiAgICBsaXN0VmFsdWU/OiBGb3JtQXJyYXk8Rm9ybUdyb3VwPENvbXBhcmlzb25WYWx1ZUxpc3RGb3JtPj47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVmFsdWVGb3JtIHtcbiAgICBib29sVmFsdWU/OiBGb3JtQ29udHJvbDxib29sZWFuPjtcbiAgICBzdHJpbmdWYWx1ZT86IEZvcm1Db250cm9sPHN0cmluZz47XG4gICAgaW50VmFsdWU/OiBGb3JtQ29udHJvbDxudW1iZXI+O1xuICAgIGRvdWJsZVZhbHVlPzogRm9ybUNvbnRyb2w8bnVtYmVyPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVc2VyQ29uZGl0aW9uRm9ybSB7XG4gICAgY29tcGFyaXNvbkF0dHJpYnV0ZTogRm9ybUNvbnRyb2w8c3RyaW5nPjtcbiAgICBjb21wYXJhdG9yOiBGb3JtQ29udHJvbDxVc2VyQ29tcGFyYXRvcj47XG4gICAgY29tcGFyaXNvblZhbHVlOiBGb3JtR3JvdXA8Q29tcGFyaXNvblZhbHVlRm9ybT47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2VnbWVudENvbmRpdGlvbkZvcm0ge1xuICAgIHNlZ21lbnRJZDogRm9ybUNvbnRyb2w8c3RyaW5nPjtcbiAgICBjb21wYXJhdG9yOiBGb3JtQ29udHJvbDxTZWdtZW50Q29tcGFyYXRvcj47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHJlcmVxdWlzaXRlRmxhZ0NvbmRpdGlvbkZvcm0ge1xuICAgIHByZXJlcXVpc2l0ZVNldHRpbmdJZDogRm9ybUNvbnRyb2w8bnVtYmVyPjtcbiAgICBjb21wYXJhdG9yOiBGb3JtQ29udHJvbDxQcmVyZXF1aXNpdGVDb21wYXJhdG9yPjtcbiAgICBwcmVyZXF1aXNpdGVDb21wYXJpc29uVmFsdWU6IEZvcm1Hcm91cDxWYWx1ZUZvcm0+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvbmRpdGlvbkZvcm0ge1xuICAgIHVzZXJDb25kaXRpb24/OiBGb3JtR3JvdXA8VXNlckNvbmRpdGlvbkZvcm0+O1xuICAgIHNlZ21lbnRDb25kaXRpb24/OiBGb3JtR3JvdXA8U2VnbWVudENvbmRpdGlvbkZvcm0+O1xuICAgIHByZXJlcXVpc2l0ZUZsYWdDb25kaXRpb24/OiBGb3JtR3JvdXA8UHJlcmVxdWlzaXRlRmxhZ0NvbmRpdGlvbkZvcm0+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBlcmNlbnRhZ2VPcHRpb25Gb3JtIHtcbiAgICBwZXJjZW50YWdlOiBGb3JtQ29udHJvbDxudW1iZXI+O1xuICAgIHZhbHVlOiBGb3JtR3JvdXA8VmFsdWVGb3JtPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUYXJnZXRpbmdSdWxlRm9ybSB7XG4gICAgY29uZGl0aW9uczogRm9ybUFycmF5PEZvcm1Hcm91cDxDb25kaXRpb25Gb3JtPj47XG5cbiAgICBwZXJjZW50YWdlT3B0aW9ucz86IEZvcm1BcnJheTxGb3JtR3JvdXA8UGVyY2VudGFnZU9wdGlvbkZvcm0+PjtcbiAgICB2YWx1ZT86IEZvcm1Hcm91cDxWYWx1ZUZvcm0+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFVwZGF0ZVNldHRpbmdWYWx1ZUZvcm0ge1xuICAgIGRlZmF1bHRWYWx1ZTogRm9ybUdyb3VwPFZhbHVlRm9ybT47XG4gICAgcGVyY2VudGFnZUV2YWx1YXRpb25BdHRyaWJ1dGU6IEZvcm1Db250cm9sPHN0cmluZz47XG4gICAgdGFyZ2V0aW5nUnVsZXM6IEZvcm1BcnJheTxGb3JtR3JvdXA8VGFyZ2V0aW5nUnVsZUZvcm0+Pjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDaGFuZ2VTZXRGb3JtIHtcbiAgICB1cGRhdGVTZXR0aW5nVmFsdWVzOiBGb3JtQXJyYXk8Rm9ybUdyb3VwPFVwZGF0ZVNldHRpbmdWYWx1ZUZvcm0+Pjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJUHJlcmVxdWlzaXRlU2V0dGluZyB7XG4gICAgc2V0dGluZ0lkOiBudW1iZXI7XG4gICAga2V5OiBzdHJpbmc7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIHNldHRpbmdUeXBlOiBTZXR0aW5nVHlwZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJRGVwZW5kZWVTZXR0aW5nIHtcbiAgICBzZXR0aW5nSWQ6IG51bWJlcjtcbiAgICBrZXk6IHN0cmluZztcbiAgICBuYW1lOiBzdHJpbmc7XG59XG5leHBvcnQgaW50ZXJmYWNlIElQcmVyZXF1aXNpdGVDaGFuZ2VkIHtcbiAgICBzZXR0aW5nSWQ6IG51bWJlcjtcbiAgICBwcmVyZXF1aXNpdGVJZHM6IG51bWJlcltdO1xufVxuIl19
@@ -0,0 +1,100 @@
1
+ export var UserComparator;
2
+ (function (UserComparator) {
3
+ // RolloutRuleComparatorV2Type.StringList
4
+ UserComparator["SensitiveIsOneOf"] = "sensitiveIsOneOf";
5
+ UserComparator["SensitiveIsNotOneOf"] = "sensitiveIsNotOneOf";
6
+ UserComparator["SensitiveTextStartsWithAnyOf"] = "sensitiveTextStartsWithAnyOf";
7
+ UserComparator["SensitiveTextEndsWithAnyOf"] = "sensitiveTextEndsWithAnyOf";
8
+ UserComparator["SensitiveTextNotStartsWithAnyOf"] = "sensitiveTextNotStartsWithAnyOf";
9
+ UserComparator["SensitiveTextNotEndsWithAnyOf"] = "sensitiveTextNotEndsWithAnyOf";
10
+ UserComparator["SensitiveArrayContainsAnyOf"] = "sensitiveArrayContainsAnyOf";
11
+ UserComparator["SensitiveArrayDoesNotContainAnyOf"] = "sensitiveArrayDoesNotContainAnyOf";
12
+ UserComparator["IsOneOf"] = "isOneOf";
13
+ UserComparator["IsNotOneOf"] = "isNotOneOf";
14
+ UserComparator["TextStartsWithAnyOf"] = "textStartsWithAnyOf";
15
+ UserComparator["TextEndsWithAnyOf"] = "textEndsWithAnyOf";
16
+ UserComparator["TextNotStartsWithAnyOf"] = "textNotStartsWithAnyOf";
17
+ UserComparator["TextNotEndsWithAnyOf"] = "textNotEndsWithAnyOf";
18
+ UserComparator["ArrayContainsAnyOf"] = "arrayContainsAnyOf";
19
+ UserComparator["ArrayDoesNotContainAnyOf"] = "arrayDoesNotContainAnyOf";
20
+ UserComparator["ContainsAnyOf"] = "containsAnyOf";
21
+ UserComparator["DoesNotContainAnyOf"] = "doesNotContainAnyOf";
22
+ // RolloutRuleComparatorV2Type.String
23
+ UserComparator["SensitiveTextEquals"] = "sensitiveTextEquals";
24
+ UserComparator["SensitiveTextDoesNotEqual"] = "sensitiveTextDoesNotEqual";
25
+ UserComparator["TextEquals"] = "textEquals";
26
+ UserComparator["TextDoesNotEqual"] = "textDoesNotEqual";
27
+ // RolloutRuleComparatorV2Type.Number
28
+ UserComparator["NumberEquals"] = "numberEquals";
29
+ UserComparator["NumberDoesNotEqual"] = "numberDoesNotEqual";
30
+ UserComparator["NumberLess"] = "numberLess";
31
+ UserComparator["NumberLessOrEquals"] = "numberLessOrEquals";
32
+ UserComparator["NumberGreater"] = "numberGreater";
33
+ UserComparator["NumberGreaterOrEquals"] = "numberGreaterOrEquals";
34
+ // RolloutRuleComparatorV2Type.SemverList
35
+ UserComparator["SemVerIsOneOf"] = "semVerIsOneOf";
36
+ UserComparator["SemVerIsNotOneOf"] = "semVerIsNotOneOf";
37
+ // RolloutRuleComparatorV2Type.Semver
38
+ UserComparator["SemVerLess"] = "semVerLess";
39
+ UserComparator["SemVerLessOrEquals"] = "semVerLessOrEquals";
40
+ UserComparator["SemVerGreater"] = "semVerGreater";
41
+ UserComparator["SemVerGreaterOrEquals"] = "semVerGreaterOrEquals";
42
+ // RolloutRuleComparatorV2Type.DateTime
43
+ UserComparator["DateTimeBefore"] = "dateTimeBefore";
44
+ UserComparator["DateTimeAfter"] = "dateTimeAfter";
45
+ })(UserComparator || (UserComparator = {}));
46
+ export var UserComparatorText;
47
+ (function (UserComparatorText) {
48
+ // RolloutRuleComparatorV2Type.StringList
49
+ UserComparatorText["SensitiveIsOneOf"] = "IS ONE OF (hashed)";
50
+ UserComparatorText["SensitiveIsNotOneOf"] = "IS NOT ONE OF (hashed)";
51
+ UserComparatorText["SensitiveTextStartsWithAnyOf"] = "STARTS WITH ANY OF (hashed)";
52
+ UserComparatorText["SensitiveTextEndsWithAnyOf"] = "ENDS WITH ANY OF (hashed)";
53
+ UserComparatorText["SensitiveTextNotStartsWithAnyOf"] = "NOT STARTS WITH ANY OF (hashed)";
54
+ UserComparatorText["SensitiveTextNotEndsWithAnyOf"] = "NOT ENDS WITH ANY OF (hashed)";
55
+ UserComparatorText["SensitiveArrayContainsAnyOf"] = "ARRAY CONTAINS ANY OF (hashed)";
56
+ UserComparatorText["SensitiveArrayDoesNotContainAnyOf"] = "ARRAY NOT CONTAINS ANY OF (hashed)";
57
+ UserComparatorText["IsOneOf"] = "IS ONE OF (cleartext)";
58
+ UserComparatorText["IsNotOneOf"] = "IS NOT ONE OF (cleartext)";
59
+ UserComparatorText["TextStartsWithAnyOf"] = "STARTS WITH ANY OF (cleartext)";
60
+ UserComparatorText["TextEndsWithAnyOf"] = "ENDS WITH ANY OF (cleartext)";
61
+ UserComparatorText["TextNotStartsWithAnyOf"] = "NOT STARTS WITH ANY OF (cleartext)";
62
+ UserComparatorText["TextNotEndsWithAnyOf"] = "NOT ENDS WITH ANY OF (cleartext)";
63
+ UserComparatorText["ArrayContainsAnyOf"] = "ARRAY CONTAINS ANY OF (cleartext)";
64
+ UserComparatorText["ArrayDoesNotContainAnyOf"] = "ARRAY NOT CONTAINS ANY OF (cleartext)";
65
+ UserComparatorText["ContainsAnyOf"] = "CONTAINS ANY OF (cleartext)";
66
+ UserComparatorText["DoesNotContainAnyOf"] = "NOT CONTAINS ANY OF (cleartext)";
67
+ // RolloutRuleComparatorV2Type.String
68
+ UserComparatorText["SensitiveTextEquals"] = "EQUALS (hashed)";
69
+ UserComparatorText["SensitiveTextDoesNotEqual"] = "NOT EQUALS (hashed)";
70
+ UserComparatorText["TextEquals"] = "EQUALS (cleartext)";
71
+ UserComparatorText["TextDoesNotEqual"] = "NOT EQUALS (cleartext)";
72
+ // RolloutRuleComparatorV2Type.Number
73
+ UserComparatorText["NumberEquals"] = "= (number)";
74
+ UserComparatorText["NumberDoesNotEqual"] = "!= (number)";
75
+ UserComparatorText["NumberLess"] = "< (number)";
76
+ UserComparatorText["NumberLessOrEquals"] = "<= (number)";
77
+ UserComparatorText["NumberGreater"] = "> (number)";
78
+ UserComparatorText["NumberGreaterOrEquals"] = ">= (number)";
79
+ // RolloutRuleComparatorV2Type.SemverList
80
+ UserComparatorText["SemVerIsOneOf"] = "IS ONE OF (semver)";
81
+ UserComparatorText["SemVerIsNotOneOf"] = "IS NOT ONE OF (semver)";
82
+ // RolloutRuleComparatorV2Type.Semver
83
+ UserComparatorText["SemVerLess"] = "< (semver)";
84
+ UserComparatorText["SemVerLessOrEquals"] = "<= (semver)";
85
+ UserComparatorText["SemVerGreater"] = "> (semver)";
86
+ UserComparatorText["SemVerGreaterOrEquals"] = ">= (semver)";
87
+ // RolloutRuleComparatorV2Type.DateTime
88
+ UserComparatorText["DateTimeBefore"] = "BEFORE (UTC datetime)";
89
+ UserComparatorText["DateTimeAfter"] = "AFTER (UTC datetime)";
90
+ })(UserComparatorText || (UserComparatorText = {}));
91
+ export var UserComparatorType;
92
+ (function (UserComparatorType) {
93
+ UserComparatorType[UserComparatorType["StringList"] = 0] = "StringList";
94
+ UserComparatorType[UserComparatorType["String"] = 1] = "String";
95
+ UserComparatorType[UserComparatorType["Number"] = 2] = "Number";
96
+ UserComparatorType[UserComparatorType["SemverList"] = 3] = "SemverList";
97
+ UserComparatorType[UserComparatorType["Semver"] = 4] = "Semver";
98
+ UserComparatorType[UserComparatorType["DateTime"] = 5] = "DateTime";
99
+ })(UserComparatorType || (UserComparatorType = {}));
100
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1jb21wYXJhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctY29uZmlnY2F0LXB1YmxpY2FwaS11aS9zcmMvbGliL19tb2RlbHMvdXNlci1jb21wYXJhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE1BQU0sQ0FBTixJQUFZLGNBaURYO0FBakRELFdBQVksY0FBYztJQUN0Qix5Q0FBeUM7SUFDekMsdURBQXFDLENBQUE7SUFDckMsNkRBQTJDLENBQUE7SUFDM0MsK0VBQTZELENBQUE7SUFDN0QsMkVBQXlELENBQUE7SUFDekQscUZBQW1FLENBQUE7SUFDbkUsaUZBQStELENBQUE7SUFDL0QsNkVBQTJELENBQUE7SUFDM0QseUZBQXVFLENBQUE7SUFFdkUscUNBQW1CLENBQUE7SUFDbkIsMkNBQXlCLENBQUE7SUFDekIsNkRBQTJDLENBQUE7SUFDM0MseURBQXVDLENBQUE7SUFDdkMsbUVBQWlELENBQUE7SUFDakQsK0RBQTZDLENBQUE7SUFDN0MsMkRBQXlDLENBQUE7SUFDekMsdUVBQXFELENBQUE7SUFDckQsaURBQStCLENBQUE7SUFDL0IsNkRBQTJDLENBQUE7SUFFM0MscUNBQXFDO0lBQ3JDLDZEQUEyQyxDQUFBO0lBQzNDLHlFQUF1RCxDQUFBO0lBQ3ZELDJDQUF5QixDQUFBO0lBQ3pCLHVEQUFxQyxDQUFBO0lBRXJDLHFDQUFxQztJQUNyQywrQ0FBNkIsQ0FBQTtJQUM3QiwyREFBeUMsQ0FBQTtJQUN6QywyQ0FBeUIsQ0FBQTtJQUN6QiwyREFBeUMsQ0FBQTtJQUN6QyxpREFBK0IsQ0FBQTtJQUMvQixpRUFBK0MsQ0FBQTtJQUUvQyx5Q0FBeUM7SUFDekMsaURBQStCLENBQUE7SUFDL0IsdURBQXFDLENBQUE7SUFFckMscUNBQXFDO0lBQ3JDLDJDQUF5QixDQUFBO0lBQ3pCLDJEQUF5QyxDQUFBO0lBQ3pDLGlEQUErQixDQUFBO0lBQy9CLGlFQUErQyxDQUFBO0lBRS9DLHVDQUF1QztJQUN2QyxtREFBaUMsQ0FBQTtJQUNqQyxpREFBK0IsQ0FBQTtBQUNuQyxDQUFDLEVBakRXLGNBQWMsS0FBZCxjQUFjLFFBaUR6QjtBQUVELE1BQU0sQ0FBTixJQUFZLGtCQWlEWDtBQWpERCxXQUFZLGtCQUFrQjtJQUMxQix5Q0FBeUM7SUFDekMsNkRBQXVDLENBQUE7SUFDdkMsb0VBQThDLENBQUE7SUFDOUMsa0ZBQTRELENBQUE7SUFDNUQsOEVBQXdELENBQUE7SUFDeEQseUZBQW1FLENBQUE7SUFDbkUscUZBQStELENBQUE7SUFDL0Qsb0ZBQThELENBQUE7SUFDOUQsOEZBQXdFLENBQUE7SUFFeEUsdURBQWlDLENBQUE7SUFDakMsOERBQXdDLENBQUE7SUFDeEMsNEVBQXNELENBQUE7SUFDdEQsd0VBQWtELENBQUE7SUFDbEQsbUZBQTZELENBQUE7SUFDN0QsK0VBQXlELENBQUE7SUFDekQsOEVBQXdELENBQUE7SUFDeEQsd0ZBQWtFLENBQUE7SUFDbEUsbUVBQTZDLENBQUE7SUFDN0MsNkVBQXVELENBQUE7SUFFdkQscUNBQXFDO0lBQ3JDLDZEQUF1QyxDQUFBO0lBQ3ZDLHVFQUFpRCxDQUFBO0lBQ2pELHVEQUFpQyxDQUFBO0lBQ2pDLGlFQUEyQyxDQUFBO0lBRTNDLHFDQUFxQztJQUNyQyxpREFBMkIsQ0FBQTtJQUMzQix3REFBa0MsQ0FBQTtJQUNsQywrQ0FBeUIsQ0FBQTtJQUN6Qix3REFBa0MsQ0FBQTtJQUNsQyxrREFBNEIsQ0FBQTtJQUM1QiwyREFBcUMsQ0FBQTtJQUVyQyx5Q0FBeUM7SUFDekMsMERBQW9DLENBQUE7SUFDcEMsaUVBQTJDLENBQUE7SUFFM0MscUNBQXFDO0lBQ3JDLCtDQUF5QixDQUFBO0lBQ3pCLHdEQUFrQyxDQUFBO0lBQ2xDLGtEQUE0QixDQUFBO0lBQzVCLDJEQUFxQyxDQUFBO0lBRXJDLHVDQUF1QztJQUN2Qyw4REFBd0MsQ0FBQTtJQUN4Qyw0REFBc0MsQ0FBQTtBQUMxQyxDQUFDLEVBakRXLGtCQUFrQixLQUFsQixrQkFBa0IsUUFpRDdCO0FBRUQsTUFBTSxDQUFOLElBQVksa0JBT1g7QUFQRCxXQUFZLGtCQUFrQjtJQUMxQix1RUFBYyxDQUFBO0lBQ2QsK0RBQVUsQ0FBQTtJQUNWLCtEQUFVLENBQUE7SUFDVix1RUFBYyxDQUFBO0lBQ2QsK0RBQVUsQ0FBQTtJQUNWLG1FQUFZLENBQUE7QUFDaEIsQ0FBQyxFQVBXLGtCQUFrQixLQUFsQixrQkFBa0IsUUFPN0IiLCJzb3VyY2VzQ29udGVudCI6WyJcbmV4cG9ydCBlbnVtIFVzZXJDb21wYXJhdG9yIHtcbiAgICAvLyBSb2xsb3V0UnVsZUNvbXBhcmF0b3JWMlR5cGUuU3RyaW5nTGlzdFxuICAgIFNlbnNpdGl2ZUlzT25lT2YgPSAnc2Vuc2l0aXZlSXNPbmVPZicsXG4gICAgU2Vuc2l0aXZlSXNOb3RPbmVPZiA9ICdzZW5zaXRpdmVJc05vdE9uZU9mJyxcbiAgICBTZW5zaXRpdmVUZXh0U3RhcnRzV2l0aEFueU9mID0gJ3NlbnNpdGl2ZVRleHRTdGFydHNXaXRoQW55T2YnLFxuICAgIFNlbnNpdGl2ZVRleHRFbmRzV2l0aEFueU9mID0gJ3NlbnNpdGl2ZVRleHRFbmRzV2l0aEFueU9mJyxcbiAgICBTZW5zaXRpdmVUZXh0Tm90U3RhcnRzV2l0aEFueU9mID0gJ3NlbnNpdGl2ZVRleHROb3RTdGFydHNXaXRoQW55T2YnLFxuICAgIFNlbnNpdGl2ZVRleHROb3RFbmRzV2l0aEFueU9mID0gJ3NlbnNpdGl2ZVRleHROb3RFbmRzV2l0aEFueU9mJyxcbiAgICBTZW5zaXRpdmVBcnJheUNvbnRhaW5zQW55T2YgPSAnc2Vuc2l0aXZlQXJyYXlDb250YWluc0FueU9mJyxcbiAgICBTZW5zaXRpdmVBcnJheURvZXNOb3RDb250YWluQW55T2YgPSAnc2Vuc2l0aXZlQXJyYXlEb2VzTm90Q29udGFpbkFueU9mJyxcblxuICAgIElzT25lT2YgPSAnaXNPbmVPZicsXG4gICAgSXNOb3RPbmVPZiA9ICdpc05vdE9uZU9mJyxcbiAgICBUZXh0U3RhcnRzV2l0aEFueU9mID0gJ3RleHRTdGFydHNXaXRoQW55T2YnLFxuICAgIFRleHRFbmRzV2l0aEFueU9mID0gJ3RleHRFbmRzV2l0aEFueU9mJyxcbiAgICBUZXh0Tm90U3RhcnRzV2l0aEFueU9mID0gJ3RleHROb3RTdGFydHNXaXRoQW55T2YnLFxuICAgIFRleHROb3RFbmRzV2l0aEFueU9mID0gJ3RleHROb3RFbmRzV2l0aEFueU9mJyxcbiAgICBBcnJheUNvbnRhaW5zQW55T2YgPSAnYXJyYXlDb250YWluc0FueU9mJyxcbiAgICBBcnJheURvZXNOb3RDb250YWluQW55T2YgPSAnYXJyYXlEb2VzTm90Q29udGFpbkFueU9mJyxcbiAgICBDb250YWluc0FueU9mID0gJ2NvbnRhaW5zQW55T2YnLFxuICAgIERvZXNOb3RDb250YWluQW55T2YgPSAnZG9lc05vdENvbnRhaW5BbnlPZicsXG5cbiAgICAvLyBSb2xsb3V0UnVsZUNvbXBhcmF0b3JWMlR5cGUuU3RyaW5nXG4gICAgU2Vuc2l0aXZlVGV4dEVxdWFscyA9ICdzZW5zaXRpdmVUZXh0RXF1YWxzJyxcbiAgICBTZW5zaXRpdmVUZXh0RG9lc05vdEVxdWFsID0gJ3NlbnNpdGl2ZVRleHREb2VzTm90RXF1YWwnLFxuICAgIFRleHRFcXVhbHMgPSAndGV4dEVxdWFscycsXG4gICAgVGV4dERvZXNOb3RFcXVhbCA9ICd0ZXh0RG9lc05vdEVxdWFsJyxcblxuICAgIC8vIFJvbGxvdXRSdWxlQ29tcGFyYXRvclYyVHlwZS5OdW1iZXJcbiAgICBOdW1iZXJFcXVhbHMgPSAnbnVtYmVyRXF1YWxzJyxcbiAgICBOdW1iZXJEb2VzTm90RXF1YWwgPSAnbnVtYmVyRG9lc05vdEVxdWFsJyxcbiAgICBOdW1iZXJMZXNzID0gJ251bWJlckxlc3MnLFxuICAgIE51bWJlckxlc3NPckVxdWFscyA9ICdudW1iZXJMZXNzT3JFcXVhbHMnLFxuICAgIE51bWJlckdyZWF0ZXIgPSAnbnVtYmVyR3JlYXRlcicsXG4gICAgTnVtYmVyR3JlYXRlck9yRXF1YWxzID0gJ251bWJlckdyZWF0ZXJPckVxdWFscycsXG5cbiAgICAvLyBSb2xsb3V0UnVsZUNvbXBhcmF0b3JWMlR5cGUuU2VtdmVyTGlzdFxuICAgIFNlbVZlcklzT25lT2YgPSAnc2VtVmVySXNPbmVPZicsXG4gICAgU2VtVmVySXNOb3RPbmVPZiA9ICdzZW1WZXJJc05vdE9uZU9mJyxcblxuICAgIC8vIFJvbGxvdXRSdWxlQ29tcGFyYXRvclYyVHlwZS5TZW12ZXJcbiAgICBTZW1WZXJMZXNzID0gJ3NlbVZlckxlc3MnLFxuICAgIFNlbVZlckxlc3NPckVxdWFscyA9ICdzZW1WZXJMZXNzT3JFcXVhbHMnLFxuICAgIFNlbVZlckdyZWF0ZXIgPSAnc2VtVmVyR3JlYXRlcicsXG4gICAgU2VtVmVyR3JlYXRlck9yRXF1YWxzID0gJ3NlbVZlckdyZWF0ZXJPckVxdWFscycsXG5cbiAgICAvLyBSb2xsb3V0UnVsZUNvbXBhcmF0b3JWMlR5cGUuRGF0ZVRpbWVcbiAgICBEYXRlVGltZUJlZm9yZSA9ICdkYXRlVGltZUJlZm9yZScsXG4gICAgRGF0ZVRpbWVBZnRlciA9ICdkYXRlVGltZUFmdGVyJyxcbn1cblxuZXhwb3J0IGVudW0gVXNlckNvbXBhcmF0b3JUZXh0IHtcbiAgICAvLyBSb2xsb3V0UnVsZUNvbXBhcmF0b3JWMlR5cGUuU3RyaW5nTGlzdFxuICAgIFNlbnNpdGl2ZUlzT25lT2YgPSAnSVMgT05FIE9GIChoYXNoZWQpJyxcbiAgICBTZW5zaXRpdmVJc05vdE9uZU9mID0gJ0lTIE5PVCBPTkUgT0YgKGhhc2hlZCknLFxuICAgIFNlbnNpdGl2ZVRleHRTdGFydHNXaXRoQW55T2YgPSAnU1RBUlRTIFdJVEggQU5ZIE9GIChoYXNoZWQpJyxcbiAgICBTZW5zaXRpdmVUZXh0RW5kc1dpdGhBbnlPZiA9ICdFTkRTIFdJVEggQU5ZIE9GIChoYXNoZWQpJyxcbiAgICBTZW5zaXRpdmVUZXh0Tm90U3RhcnRzV2l0aEFueU9mID0gJ05PVCBTVEFSVFMgV0lUSCBBTlkgT0YgKGhhc2hlZCknLFxuICAgIFNlbnNpdGl2ZVRleHROb3RFbmRzV2l0aEFueU9mID0gJ05PVCBFTkRTIFdJVEggQU5ZIE9GIChoYXNoZWQpJyxcbiAgICBTZW5zaXRpdmVBcnJheUNvbnRhaW5zQW55T2YgPSAnQVJSQVkgQ09OVEFJTlMgQU5ZIE9GIChoYXNoZWQpJyxcbiAgICBTZW5zaXRpdmVBcnJheURvZXNOb3RDb250YWluQW55T2YgPSAnQVJSQVkgTk9UIENPTlRBSU5TIEFOWSBPRiAoaGFzaGVkKScsXG5cbiAgICBJc09uZU9mID0gJ0lTIE9ORSBPRiAoY2xlYXJ0ZXh0KScsXG4gICAgSXNOb3RPbmVPZiA9ICdJUyBOT1QgT05FIE9GIChjbGVhcnRleHQpJyxcbiAgICBUZXh0U3RhcnRzV2l0aEFueU9mID0gJ1NUQVJUUyBXSVRIIEFOWSBPRiAoY2xlYXJ0ZXh0KScsXG4gICAgVGV4dEVuZHNXaXRoQW55T2YgPSAnRU5EUyBXSVRIIEFOWSBPRiAoY2xlYXJ0ZXh0KScsXG4gICAgVGV4dE5vdFN0YXJ0c1dpdGhBbnlPZiA9ICdOT1QgU1RBUlRTIFdJVEggQU5ZIE9GIChjbGVhcnRleHQpJyxcbiAgICBUZXh0Tm90RW5kc1dpdGhBbnlPZiA9ICdOT1QgRU5EUyBXSVRIIEFOWSBPRiAoY2xlYXJ0ZXh0KScsXG4gICAgQXJyYXlDb250YWluc0FueU9mID0gJ0FSUkFZIENPTlRBSU5TIEFOWSBPRiAoY2xlYXJ0ZXh0KScsXG4gICAgQXJyYXlEb2VzTm90Q29udGFpbkFueU9mID0gJ0FSUkFZIE5PVCBDT05UQUlOUyBBTlkgT0YgKGNsZWFydGV4dCknLFxuICAgIENvbnRhaW5zQW55T2YgPSAnQ09OVEFJTlMgQU5ZIE9GIChjbGVhcnRleHQpJyxcbiAgICBEb2VzTm90Q29udGFpbkFueU9mID0gJ05PVCBDT05UQUlOUyBBTlkgT0YgKGNsZWFydGV4dCknLFxuXG4gICAgLy8gUm9sbG91dFJ1bGVDb21wYXJhdG9yVjJUeXBlLlN0cmluZ1xuICAgIFNlbnNpdGl2ZVRleHRFcXVhbHMgPSAnRVFVQUxTIChoYXNoZWQpJyxcbiAgICBTZW5zaXRpdmVUZXh0RG9lc05vdEVxdWFsID0gJ05PVCBFUVVBTFMgKGhhc2hlZCknLFxuICAgIFRleHRFcXVhbHMgPSAnRVFVQUxTIChjbGVhcnRleHQpJyxcbiAgICBUZXh0RG9lc05vdEVxdWFsID0gJ05PVCBFUVVBTFMgKGNsZWFydGV4dCknLFxuXG4gICAgLy8gUm9sbG91dFJ1bGVDb21wYXJhdG9yVjJUeXBlLk51bWJlclxuICAgIE51bWJlckVxdWFscyA9ICc9IChudW1iZXIpJyxcbiAgICBOdW1iZXJEb2VzTm90RXF1YWwgPSAnIT0gKG51bWJlciknLFxuICAgIE51bWJlckxlc3MgPSAnPCAobnVtYmVyKScsXG4gICAgTnVtYmVyTGVzc09yRXF1YWxzID0gJzw9IChudW1iZXIpJyxcbiAgICBOdW1iZXJHcmVhdGVyID0gJz4gKG51bWJlciknLFxuICAgIE51bWJlckdyZWF0ZXJPckVxdWFscyA9ICc+PSAobnVtYmVyKScsXG5cbiAgICAvLyBSb2xsb3V0UnVsZUNvbXBhcmF0b3JWMlR5cGUuU2VtdmVyTGlzdFxuICAgIFNlbVZlcklzT25lT2YgPSAnSVMgT05FIE9GIChzZW12ZXIpJyxcbiAgICBTZW1WZXJJc05vdE9uZU9mID0gJ0lTIE5PVCBPTkUgT0YgKHNlbXZlciknLFxuXG4gICAgLy8gUm9sbG91dFJ1bGVDb21wYXJhdG9yVjJUeXBlLlNlbXZlclxuICAgIFNlbVZlckxlc3MgPSAnPCAoc2VtdmVyKScsXG4gICAgU2VtVmVyTGVzc09yRXF1YWxzID0gJzw9IChzZW12ZXIpJyxcbiAgICBTZW1WZXJHcmVhdGVyID0gJz4gKHNlbXZlciknLFxuICAgIFNlbVZlckdyZWF0ZXJPckVxdWFscyA9ICc+PSAoc2VtdmVyKScsXG5cbiAgICAvLyBSb2xsb3V0UnVsZUNvbXBhcmF0b3JWMlR5cGUuRGF0ZVRpbWVcbiAgICBEYXRlVGltZUJlZm9yZSA9ICdCRUZPUkUgKFVUQyBkYXRldGltZSknLFxuICAgIERhdGVUaW1lQWZ0ZXIgPSAnQUZURVIgKFVUQyBkYXRldGltZSknLFxufVxuXG5leHBvcnQgZW51bSBVc2VyQ29tcGFyYXRvclR5cGUge1xuICAgIFN0cmluZ0xpc3QgPSAwLFxuICAgIFN0cmluZyA9IDEsXG4gICAgTnVtYmVyID0gMixcbiAgICBTZW12ZXJMaXN0ID0gMyxcbiAgICBTZW12ZXIgPSA0LFxuICAgIERhdGVUaW1lID0gNVxufVxuIl19
@@ -0,0 +1,18 @@
1
+ import { Injectable } from "@angular/core";
2
+ import { NativeDateAdapter } from "@angular/material/core";
3
+ import { DateHelper } from "./date-helper";
4
+ import * as i0 from "@angular/core";
5
+ export class AppDateAdapter extends NativeDateAdapter {
6
+ format(date) {
7
+ if (!date) {
8
+ return '';
9
+ }
10
+ return DateHelper.formatDate(date, 'yyyy. MM. dd');
11
+ }
12
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AppDateAdapter, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
13
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AppDateAdapter }); }
14
+ }
15
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AppDateAdapter, decorators: [{
16
+ type: Injectable
17
+ }] });
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLWRhdGEtYWRhcHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWNvbmZpZ2NhdC1wdWJsaWNhcGktdWkvc3JjL2xpYi9fc2VydmljZXMvYXBwLWRhdGEtYWRhcHRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzNELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBRzNDLE1BQU0sT0FBTyxjQUFlLFNBQVEsaUJBQWlCO0lBQ25ELE1BQU0sQ0FBQyxJQUFVO1FBQ2YsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ1YsT0FBTyxFQUFFLENBQUM7UUFDWixDQUFDO1FBQ0QsT0FBTyxVQUFVLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxjQUFjLENBQUMsQ0FBQztJQUNyRCxDQUFDOzhHQU5VLGNBQWM7a0hBQWQsY0FBYzs7MkZBQWQsY0FBYztrQkFEMUIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgTmF0aXZlRGF0ZUFkYXB0ZXIgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZVwiO1xuaW1wb3J0IHsgRGF0ZUhlbHBlciB9IGZyb20gXCIuL2RhdGUtaGVscGVyXCI7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBBcHBEYXRlQWRhcHRlciBleHRlbmRzIE5hdGl2ZURhdGVBZGFwdGVyIHtcbiAgZm9ybWF0KGRhdGU6IERhdGUpOiBzdHJpbmcge1xuICAgIGlmICghZGF0ZSkge1xuICAgICAgcmV0dXJuICcnO1xuICAgIH1cbiAgICByZXR1cm4gRGF0ZUhlbHBlci5mb3JtYXREYXRlKGRhdGUsICd5eXl5LiBNTS4gZGQnKTtcbiAgfVxufVxuIl19
@@ -0,0 +1,72 @@
1
+ import { Injectable } from "@angular/core";
2
+ import Papa from 'papaparse';
3
+ import * as i0 from "@angular/core";
4
+ export class ComparisonValueListHelper {
5
+ formatValuesAndHintAsJson(comparisonValueList) {
6
+ return JSON.stringify(comparisonValueList, null, 2);
7
+ }
8
+ formatValuesAndHintAsCsv(comparisonValueList) {
9
+ const data = comparisonValueList.map(comparisonValueListItem => {
10
+ return [
11
+ this.formatCsvStringValue(comparisonValueListItem.value ?? ''),
12
+ this.formatCsvStringValue(comparisonValueListItem.hint ?? '')
13
+ ].join(',');
14
+ });
15
+ return data.join('\r\n');
16
+ }
17
+ formatValuesAsCsv(comparisonValueList) {
18
+ const data = comparisonValueList.map(comparisonValueList => this.formatCsvStringValue(comparisonValueList.value ?? ''));
19
+ return data.join(',');
20
+ }
21
+ formatCsvStringValue(value) {
22
+ if (!value) {
23
+ return "";
24
+ }
25
+ const escaped = value.replaceAll("\"", "\"\"");
26
+ return "\"" + escaped + "\"";
27
+ }
28
+ parseValuesAndHintsFromJson(value) {
29
+ if (value === '') {
30
+ return { comparisonValueList: [] };
31
+ }
32
+ try {
33
+ const parsed = JSON.parse(value);
34
+ return { comparisonValueList: parsed.filter(v => !!v.value) };
35
+ }
36
+ catch {
37
+ return { comparisonValueList: [], error: "Parse error." };
38
+ }
39
+ }
40
+ parseValuesAndHintsFromCsv(value) {
41
+ if (value === '') {
42
+ return { comparisonValueList: [] };
43
+ }
44
+ const parseResult = Papa.parse(value, { delimiter: ',', skipEmptyLines: true });
45
+ if (parseResult.errors?.length) {
46
+ return { comparisonValueList: [], error: "Parse error." };
47
+ }
48
+ if (parseResult?.data?.length === 0) {
49
+ return { comparisonValueList: [] };
50
+ }
51
+ return { comparisonValueList: parseResult.data.map(p => ({ value: p[0], hint: p[1] })).filter(v => !!v.value) };
52
+ }
53
+ parseValuesFromCsv(value) {
54
+ if (value === '') {
55
+ return { comparisonValueList: [] };
56
+ }
57
+ const parseResult = Papa.parse(value + ",", { delimiter: ',', skipEmptyLines: true });
58
+ if (parseResult.errors?.length) {
59
+ return { comparisonValueList: [], error: "Parse error." };
60
+ }
61
+ if (!parseResult?.data?.length) {
62
+ return { comparisonValueList: [] };
63
+ }
64
+ return { comparisonValueList: parseResult.data.flat().map(p => ({ value: p })).filter(v => !!v.value) };
65
+ }
66
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: ComparisonValueListHelper, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
67
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: ComparisonValueListHelper }); }
68
+ }
69
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: ComparisonValueListHelper, decorators: [{
70
+ type: Injectable
71
+ }] });
72
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcGFyaXNvbi12YWx1ZS1saXN0LWhlbHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWNvbmZpZ2NhdC1wdWJsaWNhcGktdWkvc3JjL2xpYi9fc2VydmljZXMvY29tcGFyaXNvbi12YWx1ZS1saXN0LWhlbHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sSUFBSSxNQUFNLFdBQVcsQ0FBQzs7QUFRN0IsTUFBTSxPQUFPLHlCQUF5QjtJQUNsQyx5QkFBeUIsQ0FBQyxtQkFBZ0Q7UUFDdEUsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLG1CQUFtQixFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztJQUN4RCxDQUFDO0lBRUQsd0JBQXdCLENBQUMsbUJBQWdEO1FBQ3JFLE1BQU0sSUFBSSxHQUFHLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyx1QkFBdUIsQ0FBQyxFQUFFO1lBQzNELE9BQU87Z0JBQ0gsSUFBSSxDQUFDLG9CQUFvQixDQUFDLHVCQUF1QixDQUFDLEtBQUssSUFBSSxFQUFFLENBQUM7Z0JBQzlELElBQUksQ0FBQyxvQkFBb0IsQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDO2FBQ2hFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2hCLENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxtQkFBZ0Q7UUFDOUQsTUFBTSxJQUFJLEdBQUcsbUJBQW1CLENBQUMsR0FBRyxDQUFDLG1CQUFtQixDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsbUJBQW1CLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDeEgsT0FBTyxJ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LEVBQUUsbUJBQW1CLEVBQUUsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUEyQixFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsQ0FBQSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO0lBQ3JJLENBQUM7OEdBOURRLHlCQUF5QjtrSEFBekIseUJBQXlCOzsyRkFBekIseUJBQXlCO2tCQURyQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBJQ29tcGFyaXNvblZhbHVlTGlzdE1vZGVsIH0gZnJvbSBcIi4uL2Jvb3RzdHJhcFwiO1xuaW1wb3J0IFBhcGEgZnJvbSAncGFwYXBhcnNlJztcblxuZXhwb3J0IGludGVyZmFjZSBDb21wYXJpc29uVmFsdWVMaXN0UGFyc2VSZXN1bHQge1xuICAgIGVycm9yPzogc3RyaW5nO1xuICAgIGNvbXBhcmlzb25WYWx1ZUxpc3Q6IElDb21wYXJpc29uVmFsdWVMaXN0TW9kZWxbXTtcbn1cblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIENvbXBhcmlzb25WYWx1ZUxpc3RIZWxwZXIge1xuICAgIGZvcm1hdFZhbHVlc0FuZEhpbnRBc0pzb24oY29tcGFyaXNvblZhbHVlTGlzdDogSUNvbXBhcmlzb25WYWx1ZUxpc3RNb2RlbFtdKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KGNvbXBhcmlzb25WYWx1ZUxpc3QsIG51bGwsIDIpO1xuICAgIH1cblxuICAgIGZvcm1hdFZhbHVlc0FuZEhpbnRBc0Nzdihjb21wYXJpc29uVmFsdWVMaXN0OiBJQ29tcGFyaXNvblZhbHVlTGlzdE1vZGVsW10pOiBzdHJpbmcge1xuICAgICAgICBjb25zdCBkYXRhID0gY29tcGFyaXNvblZhbHVlTGlzdC5tYXAoY29tcGFyaXNvblZhbHVlTGlzdEl0ZW0gPT4ge1xuICAgICAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgICAgICB0aGlzLmZvcm1hdENzdlN0cmluZ1ZhbHVlKGNvbXBhcmlzb25WYWx1ZUxpc3RJdGVtLnZhbHVlID8/ICcnKSxcbiAgICAgICAgICAgICAgICB0aGlzLmZvcm1hdENzdlN0cmluZ1ZhbHVlKGNvbXBhcmlzb25WYWx1ZUxpc3RJdGVtLmhpbnQgPz8gJycpXG4gICAgICAgICAgICBdLmpvaW4oJywnKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBkYXRhLmpvaW4oJ1xcclxcbicpO1xuICAgIH1cblxuICAgIGZvcm1hdFZhbHVlc0FzQ3N2KGNvbXBhcmlzb25WYWx1ZUxpc3Q6IElDb21wYXJpc29uVmFsdWVMaXN0TW9kZWxbXSk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IGRhdGEgPSBjb21wYXJpc29uVmFsdWVMaXN0Lm1hcChjb21wYXJpc29uVmFsdWVMaXN0ID0+IHRoaXMuZm9ybWF0Q3N2U3RyaW5nVmFsdWUoY29tcGFyaXNvblZhbHVlTGlzdC52YWx1ZSA/PyAnJykpO1xuICAgICAgICByZXR1cm4gZGF0YS5qb2luKCcsJyk7XG4gICAgfVxuXG4gICAgZm9ybWF0Q3N2U3RyaW5nVmFsdWUodmFsdWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIGlmICghdmFsdWUpIHtcbiAgICAgICAgICAgIHJldHVybiBcIlwiO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGVzY2FwZWQgPSB2YWx1ZS5yZXBsYWNlQWxsKFwiXFxcIlwiLCBcIlxcXCJcXFwiXCIsKTtcbiAgICAgICAgcmV0dXJuIFwiXFxcIlwiICsgZXNjYXBlZCArIFwiXFxcIlwiO1xuICAgIH1cblxuICAgIHBhcnNlVmFsdWVzQW5kSGludHNGcm9tSnNvbih2YWx1ZTogc3RyaW5nKTogQ29tcGFyaXNvblZhbHVlTGlzdFBhcnNlUmVzdWx0IHtcbiAgICAgICAgaWYgKHZhbHVlID09PSAnJykge1xuICAgICAgICAgICAgcmV0dXJuIHsgY29tcGFyaXNvblZhbHVlTGlzdDogW10gfTtcbiAgICAgICAgfVxuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgcGFyc2VkOiBJQ29tcGFyaXNvblZhbHVlTGlzdE1vZGVsW10gPSBKU09OLnBhcnNlKHZhbHVlKTtcbiAgICAgICAgICAgIHJldHVybiB7IGNvbXBhcmlzb25WYWx1ZUxpc3Q6IHBhcnNlZC5maWx0ZXIodiA9PiAhIXYudmFsdWUpIH07XG4gICAgICAgIH0gY2F0Y2gge1xuICAgICAgICAgICAgcmV0dXJuIHsgY29tcGFyaXNvblZhbHVlTGlzdDogW10sIGVycm9yOiBcIlBhcnNlIGVycm9yLlwiIH07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwYXJzZVZhbHVlc0FuZEhpbnRzRnJvbUNzdih2YWx1ZTogc3RyaW5nKTogQ29tcGFyaXNvblZhbHVlTGlzdFBhcnNlUmVzdWx0IHtcbiAgICAgICAgaWYgKHZhbHVlID09PSAnJykge1xuICAgICAgICAgICAgcmV0dXJuIHsgY29tcGFyaXNvblZhbHVlTGlzdDogW10gfTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBwYXJzZVJlc3VsdCA9IFBhcGEucGFyc2U8c3RyaW5nW10+KHZhbHVlLCB7IGRlbGltaXRlcjogJywnLCBza2lwRW1wdHlMaW5lczogdHJ1ZSB9KTtcbiAgICAgICAgaWYgKHBhcnNlUmVzdWx0LmVycm9ycz8ubGVuZ3RoKSB7XG4gICAgICAgICAgICByZXR1cm4geyBjb21wYXJpc29uVmFsdWVMaXN0OiBbXSwgZXJyb3I6IFwiUGFyc2UgZXJyb3IuXCIgfTtcbiAgICAgICAgfVxuICAgICAgICBpZiAocGFyc2VSZXN1bHQ/LmRhdGE/Lmxlbmd0aCA9PT0gMCkgeyByZXR1cm4geyBjb21wYXJpc29uVmFsdWVMaXN0OiBbXSB9OyB9XG4gICAgICAgIHJldHVybiB7IGNvbXBhcmlzb25WYWx1ZUxpc3Q6IHBhcnNlUmVzdWx0LmRhdGEubWFwKHAgPT4gPElDb21wYXJpc29uVmFsdWVMaXN0TW9kZWw+eyB2YWx1ZTogcFswXSwgaGludDogcFsxXSB9KS5maWx0ZXIodiA9PiAhIXYudmFsdWUpIH07XG4gICAgfVxuXG4gICAgcGFyc2VWYWx1ZXNGcm9tQ3N2KHZhbHVlOiBzdHJpbmcpOiBDb21wYXJpc29uVmFsdWVMaXN0UGFyc2VSZXN1bHQge1xuICAgICAgICBpZiAodmFsdWUgPT09ICcnKSB7XG4gICAgICAgICAgICByZXR1cm4geyBjb21wYXJpc29uVmFsdWVMaXN0OiBbXSB9O1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHBhcnNlUmVzdWx0ID0gUGFwYS5wYXJzZTxzdHJpbmdbXT4odmFsdWUgKyBcIixcIiwgeyBkZWxpbWl0ZXI6ICcsJywgc2tpcEVtcHR5TGluZXM6IHRydWUgfSk7XG4gICAgICAgIGlmIChwYXJzZVJlc3VsdC5lcnJvcnM/Lmxlbmd0aCkge1xuICAgICAgICAgICAgcmV0dXJuIHsgY29tcGFyaXNvblZhbHVlTGlzdDogW10sIGVycm9yOiBcIlBhcnNlIGVycm9yLlwiIH07XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFwYXJzZVJlc3VsdD8uZGF0YT8ubGVuZ3RoKSB7IHJldHVybiB7IGNvbXBhcmlzb25WYWx1ZUxpc3Q6IFtdIH07IH1cbiAgICAgICAgcmV0dXJuIHsgY29tcGFyaXNvblZhbHVlTGlzdDogcGFyc2VSZXN1bHQuZGF0YS5mbGF0KCkubWFwKHAgPT4gPElDb21wYXJpc29uVmFsdWVMaXN0TW9kZWw+eyB2YWx1ZTogcCB9KS5maWx0ZXIodiA9PiAhIXYudmFsdWUpIH07XG4gICAgfVxufVxuIl19
@@ -0,0 +1,56 @@
1
+ export class DateHelper {
2
+ static addDays(date, value) {
3
+ // https://stackoverflow.com/a/3674550/8656352
4
+ date.setDate(date.getDate() + value);
5
+ }
6
+ static { this.daysBetweenDates = function (from, to) {
7
+ if (!from || !to) {
8
+ return 0;
9
+ }
10
+ return (new Date(to).getTime() - new Date(from).getTime()) / (1000 * 60 * 60 * 24);
11
+ }; }
12
+ static formatDate(date, formatString) {
13
+ if (!date) {
14
+ return '';
15
+ }
16
+ const dateObj = new Date(date);
17
+ return Object.entries({
18
+ YYYY: dateObj.getFullYear(),
19
+ YY: dateObj.getFullYear().toString().substring(2),
20
+ yyyy: dateObj.getFullYear(),
21
+ yy: dateObj.getFullYear().toString().substring(2),
22
+ MMMM: dateObj.toLocaleString('default', { month: 'long' }),
23
+ MMM: dateObj.toLocaleString('default', { month: 'short' }),
24
+ MM: (dateObj.getMonth() + 1).toString().padStart(2, '0'),
25
+ M: dateObj.getMonth() + 1,
26
+ DDDD: dateObj.toLocaleDateString('default', { weekday: 'long' }),
27
+ DDD: dateObj.toLocaleDateString('default', { weekday: 'short' }),
28
+ DD: dateObj.getDate().toString().padStart(2, '0'),
29
+ D: dateObj.getDate(),
30
+ dddd: dateObj.toLocaleDateString('default', { weekday: 'long' }),
31
+ ddd: dateObj.toLocaleDateString('default', { weekday: 'short' }),
32
+ dd: dateObj.getDate().toString().padStart(2, '0'),
33
+ d: dateObj.getDate(),
34
+ HH: dateObj.getHours().toString().padStart(2, '0'), // military
35
+ H: dateObj.getHours().toString(), // military
36
+ hh: (dateObj.getHours() % 12).toString().padStart(2, '0'),
37
+ h: (dateObj.getHours() % 12).toString(),
38
+ mm: dateObj.getMinutes().toString().padStart(2, '0'),
39
+ m: dateObj.getMinutes(),
40
+ SS: dateObj.getSeconds().toString().padStart(2, '0'),
41
+ S: dateObj.getSeconds(),
42
+ ss: dateObj.getSeconds().toString().padStart(2, '0'),
43
+ s: dateObj.getSeconds(),
44
+ TTT: dateObj.getMilliseconds().toString().padStart(3, '0'),
45
+ ttt: dateObj.getMilliseconds().toString().padStart(3, '0'),
46
+ AMPM: dateObj.getHours() < 13 ? 'AM' : 'PM',
47
+ ampm: dateObj.getHours() < 13 ? 'am' : 'pm',
48
+ }).reduce((acc, entry) => {
49
+ return acc.replace(entry[0], entry[1].toString());
50
+ }, formatString);
51
+ }
52
+ static offsetDate(date, offsetMins) {
53
+ return new Date(date.getTime() + offsetMins * 60000);
54
+ }
55
+ }
56
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1oZWxwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1jb25maWdjYXQtcHVibGljYXBpLXVpL3NyYy9saWIvX3NlcnZpY2VzL2RhdGUtaGVscGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBTyxVQUFVO0lBQ1osTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFVLEVBQUUsS0FBYTtRQUMzQyw4Q0FBOEM7UUFDOUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEdBQUcsS0FBSyxDQUFDLENBQUM7SUFDekMsQ0FBQzthQUVhLHFCQUFnQixHQUFHLFVBQVMsSUFBVSxFQUFFLEVBQVE7UUFDMUQsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ2YsT0FBTyxDQUFDLENBQUM7UUFDYixDQUFDO1FBQ0QsT0FBTyxDQUFDLElBQUksSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE9BQU8sRUFBRSxHQUFHLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQztJQUN2RixDQUFDLENBQUE7SUFFTSxNQUFNLENBQUMsVUFBVSxDQUFDLElBQVUsRUFBRSxZQUFvQjtRQUNyRCxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDUixPQUFPLEVBQUUsQ0FBQztRQUNkLENBQUM7UUFDRCxNQUFNLE9BQU8sR0FBRyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUUvQixPQUFPLE1BQU0sQ0FBQyxPQUFPLENBQUM7WUFDbEIsSUFBSSxFQUFFLE9BQU8sQ0FBQyxXQUFXLEVBQUU7WUFDM0IsRUFBRSxFQUFFLE9BQU8sQ0FBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FB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LENBQUMsUUFBUSxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUM7WUFDMUQsSUFBSSxFQUFFLE9BQU8sQ0FBQyxRQUFRLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSTtZQUMzQyxJQUFJLEVBQUUsT0FBTyxDQUFDLFFBQVEsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJO1NBQzlDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUU7WUFDckIsT0FBTyxHQUFHLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQTtRQUNyRCxDQUFDLEVBQUUsWUFBWSxDQUFDLENBQUE7SUFDcEIsQ0FBQztJQUVNLE1BQU0sQ0FBQyxVQUFVLENBQUMsSUFBVSxFQUFFLFVBQWtCO1FBQ25ELE9BQU8sSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxHQUFHLFVBQVUsR0FBRyxLQUFLLENBQUMsQ0FBQztJQUN6RCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIERhdGVIZWxwZXIge1xuICAgIHB1YmxpYyBzdGF0aWMgYWRkRGF5cyhkYXRlOiBEYXRlLCB2YWx1ZTogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIC8vIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vYS8zNjc0NTUwLzg2NTYzNTJcbiAgICAgICAgZGF0ZS5zZXREYXRlKGRhdGUuZ2V0RGF0ZSgpICsgdmFsdWUpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgZGF5c0JldHdlZW5EYXRlcyA9IGZ1bmN0aW9uKGZyb206IERhdGUsIHRvOiBEYXRlKTogbnVtYmVyIHtcbiAgICAgICAgaWYgKCFmcm9tIHx8ICF0bykge1xuICAgICAgICAgICAgcmV0dXJuIDA7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIChuZXcgRGF0ZSh0bykuZ2V0VGltZSgpIC0gbmV3IERhdGUoZnJvbSkuZ2V0VGltZSgpKSAvICgxMDAwICogNjAgKiA2MCAqIDI0KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGZvcm1hdERhdGUoZGF0ZTogRGF0ZSwgZm9ybWF0U3RyaW5nOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICBpZiAoIWRhdGUpIHtcbiAgICAgICAgICAgIHJldHVybiAnJztcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBkYXRlT2JqID0gbmV3IERhdGUoZGF0ZSk7XG4gICAgICAgIFxuICAgICAgICByZXR1cm4gT2JqZWN0LmVudHJpZXMoe1xuICAgICAgICAgICAgWVlZWTogZGF0ZU9iai5nZXRGdWxsWWVhcigpLFxuICAgICAgICAgICAgWVk6IGRhdGVPYmouZ2V0RnVsbFllYXIoKS50b1N0cmluZygpLnN1YnN0cmluZygyKSxcbiAgICAgICAgICAgIHl5eXk6IGRhdGVPYmouZ2V0RnVsbFllYXIoKSxcbiAgICAgICAgICAgIHl5OiBkYXRlT2JqLmdldEZ1bGxZZWFyKCkudG9TdHJpbmcoKS5zdWJzdHJpbmcoMiksXG4gICAgICAgICAgICBNTU1NOiBkYXRlT2JqLnRvTG9jYWxlU3RyaW5nKCdkZWZhdWx0JywgeyBtb250aDogJ2xvbmcnIH0pLFxuICAgICAgICAgICAgTU1NOiBkYXRlT2JqLnRvTG9jYWxlU3RyaW5nKCdkZWZhdWx0JywgeyBtb250aDogJ3Nob3J0JyB9KSxcbiAgICAgICAgICAgIE1NOiAoZGF0ZU9iai5nZXRNb250aCgpICsgMSkudG9TdHJpbmcoKS5wYWRTdGFydCgyLCAnMCcpLFxuICAgICAgICAgICAgTTogZGF0ZU9iai5nZXRNb250aCgpICsgMSxcbiAgICAgICAgICAgIEREREQ6IGRhdGVPYmoudG9Mb2NhbGVEYXRlU3RyaW5nKCdkZWZhdWx0JywgeyB3ZWVrZGF5OiAnbG9uZycgfSksXG4gICAgICAgICAgICBEREQ6IGRhdGVPYmoudG9Mb2NhbGVEYXRlU3RyaW5nKCdkZWZhdWx0JywgeyB3ZWVrZGF5OiAnc2hvcnQnIH0pLFxuICAgICAgICAgICAgREQ6IGRhdGVPYmouZ2V0RGF0ZSgpLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwgJzAnKSxcbiAgICAgICAgICAgIEQ6IGRhdGVPYmouZ2V0RGF0ZSgpLFxuICAgICAgICAgICAgZGRkZDogZGF0ZU9iai50b0xvY2FsZURhdGVTdHJpbmcoJ2RlZmF1bHQnLCB7IHdlZWtkYXk6ICdsb25nJyB9KSxcbiAgICAgICAgICAgIGRkZDogZGF0ZU9iai50b0xvY2FsZURhdGVTdHJpbmcoJ2RlZmF1bHQnLCB7IHdlZWtkYXk6ICdzaG9ydCcgfSksXG4gICAgICAgICAgICBkZDogZGF0ZU9iai5nZXREYXRlKCkudG9TdHJpbmcoKS5wYWRTdGFydCgyLCAnMCcpLFxuICAgICAgICAgICAgZDogZGF0ZU9iai5nZXREYXRlKCksXG4gICAgICAgICAgICBISDogZGF0ZU9iai5nZXRIb3VycygpLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwgJzAnKSwgLy8gbWlsaXRhcnlcbiAgICAgICAgICAgIEg6IGRhdGVPYmouZ2V0SG91cnMoKS50b1N0cmluZygpLCAvLyBtaWxpdGFyeVxuICAgICAgICAgICAgaGg6IChkYXRlT2JqLmdldEhvdXJzKCkgJSAxMikudG9TdHJpbmcoKS5wYWRTdGFydCgyLCAnMCcpLFxuICAgICAgICAgICAgaDogKGRhdGVPYmouZ2V0SG91cnMoKSAlIDEyKS50b1N0cmluZygpLFxuICAgICAgICAgICAgbW06IGRhdGVPYmouZ2V0TWludXRlcygpLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwgJzAnKSxcbiAgICAgICAgICAgIG06IGRhdGVPYmouZ2V0TWludXRlcygpLFxuICAgICAgICAgICAgU1M6IGRhdGVPYmouZ2V0U2Vjb25kcygpLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwgJzAnKSxcbiAgICAgICAgICAgIFM6IGRhdGVPYmouZ2V0U2Vjb25kcygpLFxuICAgICAgICAgICAgc3M6IGRhdGVPYmouZ2V0U2Vjb25kcygpLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwgJzAnKSxcbiAgICAgICAgICAgIHM6IGRhdGVPYmouZ2V0U2Vjb25kcygpLFxuICAgICAgICAgICAgVFRUOiBkYXRlT2JqLmdldE1pbGxpc2Vjb25kcygpLnRvU3RyaW5nKCkucGFkU3RhcnQoMywgJzAnKSxcbiAgICAgICAgICAgIHR0dDogZGF0ZU9iai5nZXRNaWxsaXNlY29uZHMoKS50b1N0cmluZygpLnBhZFN0YXJ0KDMsICcwJyksXG4gICAgICAgICAgICBBTVBNOiBkYXRlT2JqLmdldEhvdXJzKCkgPCAxMyA/ICdBTScgOiAnUE0nLFxuICAgICAgICAgICAgYW1wbTogZGF0ZU9iai5nZXRIb3VycygpIDwgMTMgPyAnYW0nIDogJ3BtJyxcbiAgICAgICAgfSkucmVkdWNlKChhY2MsIGVudHJ5KSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gYWNjLnJlcGxhY2UoZW50cnlbMF0sIGVudHJ5WzFdLnRvU3RyaW5nKCkpXG4gICAgICAgIH0sIGZvcm1hdFN0cmluZylcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIG9mZnNldERhdGUoZGF0ZTogRGF0ZSwgb2Zmc2V0TWluczogbnVtYmVyKSA6IERhdGUge1xuICAgICAgICByZXR1cm4gbmV3IERhdGUoZGF0ZS5nZXRUaW1lKCkgKyBvZmZzZXRNaW5zICogNjAwMDApO1xuICAgIH1cbn0iXX0=