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.
- package/esm2022/lib/_directives/input-display-normalizer.directive.mjs +38 -0
- package/esm2022/lib/_models/flag-state.mjs +2 -0
- package/esm2022/lib/_models/setting-value-formgroup.mjs +2 -0
- package/esm2022/lib/_models/user-comparator.mjs +100 -0
- package/esm2022/lib/_services/app-data-adapter.mjs +18 -0
- package/esm2022/lib/_services/comparison-value-list-helper.mjs +72 -0
- package/esm2022/lib/_services/date-helper.mjs +56 -0
- package/esm2022/lib/_services/form-generator.mjs +359 -0
- package/esm2022/lib/_services/form-helper.mjs +107 -0
- package/esm2022/lib/_services/messaging.service.mjs +26 -0
- package/esm2022/lib/_services/public-api.service.mjs +77 -0
- package/esm2022/lib/_services/setting-list-form-helper.mjs +171 -0
- package/esm2022/lib/_services/tracking.directive.mjs +16 -0
- package/esm2022/lib/ace-editor/ace-editor.component.mjs +137 -0
- package/esm2022/lib/authorization/authorization.component.mjs +62 -0
- package/{esm2020 → esm2022}/lib/base/base-select.component.mjs +4 -4
- package/esm2022/lib/base/base.component.mjs +48 -0
- package/esm2022/lib/bootstrap.mjs +10 -0
- package/{esm2020 → esm2022}/lib/configuration.mjs +4 -4
- package/esm2022/lib/dialogs/confirmation-dialog/confirmation-dialog.mjs +28 -0
- package/{esm2020 → esm2022}/lib/dialogs/delete-setting-dialog/delete-setting-dialog.component.mjs +6 -6
- package/esm2022/lib/dialogs/expand-dialog/expand-dialog.component.mjs +80 -0
- package/esm2022/lib/dialogs/info-dialog/info-dialog.mjs +29 -0
- package/esm2022/lib/dialogs/reason-dialog/reason-dialog.component.mjs +36 -0
- package/{esm2020 → esm2022}/lib/dialogs/save-snackbar/save-snackbar.component.mjs +5 -5
- package/esm2022/lib/ng-configcat-publicapi-ui.module.mjs +285 -0
- package/esm2022/lib/selects/config-select/config-select.component.mjs +60 -0
- package/esm2022/lib/selects/environment-select/environment-select.component.mjs +47 -0
- package/esm2022/lib/selects/product-select/product-select.component.mjs +40 -0
- package/esm2022/lib/selects/setting-select/setting-select.component.mjs +47 -0
- package/esm2022/lib/setting-item/setting-item.component.mjs +118 -0
- package/esm2022/lib/setting-list/setting/rollout-percentage-items/rollout-percentage-items.component.mjs +81 -0
- package/esm2022/lib/setting-list/setting/rollout-rules/rollout-rules.component.mjs +293 -0
- package/{esm2020 → esm2022}/lib/setting-list/setting/setting.component.mjs +5 -5
- package/esm2022/lib/setting-list/setting/value/value.component.mjs +37 -0
- package/esm2022/lib/setting-list/setting-list.component.mjs +194 -0
- package/esm2022/lib/v2/feature-flag/date-time-picker/date-time-picker.component.mjs +123 -0
- package/esm2022/lib/v2/feature-flag/dependees-dialog/dependees-dialog.component.mjs +30 -0
- package/esm2022/lib/v2/feature-flag/evaluation-formula/evaluation-formula.component.mjs +220 -0
- package/esm2022/lib/v2/feature-flag/evaluation-formula/feature-flag-value/feature-flag-value.component.mjs +61 -0
- package/esm2022/lib/v2/feature-flag/evaluation-formula/popout-text-editor-dialog/popout-text-editor-dialog.component.mjs +72 -0
- package/esm2022/lib/v2/feature-flag/evaluation-formula/targeting-rule/conditions/condition-chip/condition-chip.component.mjs +25 -0
- package/esm2022/lib/v2/feature-flag/evaluation-formula/targeting-rule/conditions/conditions.component.mjs +105 -0
- package/esm2022/lib/v2/feature-flag/evaluation-formula/targeting-rule/conditions/prerequisite-flag-condition/prerequisite-flag-condition.component.mjs +75 -0
- package/esm2022/lib/v2/feature-flag/evaluation-formula/targeting-rule/conditions/segment-condition/segment-condition.component.mjs +48 -0
- package/esm2022/lib/v2/feature-flag/evaluation-formula/targeting-rule/conditions/user-condition/comparator-dialog/comparator-dialog.component.mjs +113 -0
- 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
- package/esm2022/lib/v2/feature-flag/evaluation-formula/targeting-rule/conditions/user-condition/user-condition.component.mjs +444 -0
- package/esm2022/lib/v2/feature-flag/evaluation-formula/targeting-rule/percentage-options/percentage-options.component.mjs +84 -0
- package/esm2022/lib/v2/feature-flag/evaluation-formula/targeting-rule/targeting-rule.component.mjs +129 -0
- package/esm2022/lib/v2/feature-flag/feature-flag.component.mjs +190 -0
- package/esm2022/lib/v2/feature-flag/percentage-evaluation-attribute-dialog/percentage-evaluation-attribute-dialog.component.mjs +65 -0
- package/esm2022/lib/v2/feature-flag-item.component.mjs +319 -0
- package/{esm2020 → esm2022}/public-api.mjs +2 -1
- package/fesm2022/ng-configcat-publicapi-ui.mjs +4790 -0
- package/fesm2022/ng-configcat-publicapi-ui.mjs.map +1 -0
- package/lib/_models/flag-state.d.ts +20 -0
- package/lib/_models/setting-value-formgroup.d.ts +69 -0
- package/lib/_models/user-comparator.d.ts +84 -0
- package/lib/_services/app-data-adapter.d.ts +7 -0
- package/lib/_services/comparison-value-list-helper.d.ts +17 -0
- package/lib/_services/date-helper.d.ts +6 -0
- package/lib/_services/form-generator.d.ts +59 -0
- package/lib/_services/form-helper.d.ts +4 -1
- package/lib/_services/messaging.service.d.ts +12 -0
- package/lib/_services/public-api.service.d.ts +2 -1
- package/lib/_services/setting-list-form-helper.d.ts +1 -1
- package/lib/_services/tracking.directive.d.ts +6 -0
- package/lib/ace-editor/ace-editor.component.d.ts +32 -0
- package/lib/authorization/authorization.component.d.ts +2 -2
- package/lib/base/base-select.component.d.ts +1 -1
- package/lib/base/base.component.d.ts +2 -1
- package/lib/bootstrap.d.ts +12 -0
- package/lib/dialogs/confirmation-dialog/confirmation-dialog.d.ts +19 -0
- package/lib/dialogs/info-dialog/info-dialog.d.ts +17 -0
- package/lib/ng-configcat-publicapi-ui.module.d.ts +47 -19
- package/lib/selects/config-select/config-select.component.d.ts +1 -1
- package/lib/selects/environment-select/environment-select.component.d.ts +1 -1
- package/lib/selects/product-select/product-select.component.d.ts +1 -1
- package/lib/selects/setting-select/setting-select.component.d.ts +1 -1
- package/lib/setting-item/setting-item.component.d.ts +4 -2
- package/lib/setting-list/setting/rollout-percentage-items/rollout-percentage-items.component.d.ts +1 -1
- package/lib/setting-list/setting/rollout-rules/rollout-rules.component.d.ts +4 -4
- package/lib/setting-list/setting/setting.component.d.ts +1 -1
- package/lib/setting-list/setting/value/value.component.d.ts +1 -1
- package/lib/setting-list/setting-list.component.d.ts +1 -1
- package/lib/v2/feature-flag/date-time-picker/date-time-picker.component.d.ts +25 -0
- package/lib/v2/feature-flag/dependees-dialog/dependees-dialog.component.d.ts +27 -0
- package/lib/v2/feature-flag/evaluation-formula/evaluation-formula.component.d.ts +41 -0
- package/lib/v2/feature-flag/evaluation-formula/feature-flag-value/feature-flag-value.component.d.ts +18 -0
- package/lib/v2/feature-flag/evaluation-formula/popout-text-editor-dialog/popout-text-editor-dialog.component.d.ts +30 -0
- package/lib/v2/feature-flag/evaluation-formula/targeting-rule/conditions/condition-chip/condition-chip.component.d.ts +10 -0
- package/lib/v2/feature-flag/evaluation-formula/targeting-rule/conditions/conditions.component.d.ts +27 -0
- package/lib/v2/feature-flag/evaluation-formula/targeting-rule/conditions/prerequisite-flag-condition/prerequisite-flag-condition.component.d.ts +36 -0
- package/lib/v2/feature-flag/evaluation-formula/targeting-rule/conditions/segment-condition/segment-condition.component.d.ts +21 -0
- package/lib/v2/feature-flag/evaluation-formula/targeting-rule/conditions/user-condition/comparator-dialog/comparator-dialog.component.d.ts +79 -0
- 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
- package/lib/v2/feature-flag/evaluation-formula/targeting-rule/conditions/user-condition/user-condition.component.d.ts +94 -0
- package/lib/v2/feature-flag/evaluation-formula/targeting-rule/percentage-options/percentage-options.component.d.ts +31 -0
- package/lib/v2/feature-flag/evaluation-formula/targeting-rule/targeting-rule.component.d.ts +33 -0
- package/lib/v2/feature-flag/feature-flag.component.d.ts +49 -0
- package/lib/v2/feature-flag/percentage-evaluation-attribute-dialog/percentage-evaluation-attribute-dialog.component.d.ts +28 -0
- package/lib/v2/feature-flag-item.component.d.ts +66 -0
- package/package.json +12 -16
- package/public-api.d.ts +1 -0
- package/public-api.scss +205 -3
- package/esm2020/lib/_directives/input-display-normalizer.directive.mjs +0 -38
- package/esm2020/lib/_services/form-helper.mjs +0 -104
- package/esm2020/lib/_services/public-api.service.mjs +0 -71
- package/esm2020/lib/_services/setting-list-form-helper.mjs +0 -171
- package/esm2020/lib/authorization/authorization.component.mjs +0 -62
- package/esm2020/lib/base/base.component.mjs +0 -45
- package/esm2020/lib/dialogs/expand-dialog/expand-dialog.component.mjs +0 -80
- package/esm2020/lib/dialogs/reason-dialog/reason-dialog.component.mjs +0 -36
- package/esm2020/lib/ng-configcat-publicapi-ui.module.mjs +0 -179
- package/esm2020/lib/selects/config-select/config-select.component.mjs +0 -60
- package/esm2020/lib/selects/environment-select/environment-select.component.mjs +0 -47
- package/esm2020/lib/selects/product-select/product-select.component.mjs +0 -40
- package/esm2020/lib/selects/setting-select/setting-select.component.mjs +0 -47
- package/esm2020/lib/setting-item/setting-item.component.mjs +0 -116
- package/esm2020/lib/setting-list/setting/rollout-percentage-items/rollout-percentage-items.component.mjs +0 -81
- package/esm2020/lib/setting-list/setting/rollout-rules/rollout-rules.component.mjs +0 -293
- package/esm2020/lib/setting-list/setting/value/value.component.mjs +0 -37
- package/esm2020/lib/setting-list/setting-list.component.mjs +0 -194
- package/fesm2015/ng-configcat-publicapi-ui.mjs +0 -1786
- package/fesm2015/ng-configcat-publicapi-ui.mjs.map +0 -1
- package/fesm2020/ng-configcat-publicapi-ui.mjs +0 -1763
- package/fesm2020/ng-configcat-publicapi-ui.mjs.map +0 -1
- /package/{esm2020 → esm2022}/lib/_directives/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/_models/deleteSettingModel.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/_models/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/_models/settingValuesModel.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/_models/updateSettingValuesModel.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/_services/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/_services/platform-helper.mjs +0 -0
- /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=
|