angular-toolbox 1.3.2 → 1.4.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/README.md +1 -1
- package/esm2022/lib/component/dropdown/dropdown.component.mjs +10 -3
- package/esm2022/lib/framework/mock/http/util/http-mock-response.builder.mjs +5 -17
- package/esm2022/lib/framework/mock/http/util/http-status-text-finder.mjs +146 -0
- package/esm2022/lib/framework/mock/http/util/http-status-text.enum.mjs +260 -0
- package/esm2022/lib/framework/mock/http/util/index.mjs +3 -1
- package/esm2022/lib/model/business/ui/dropdown/index.mjs +2 -1
- package/esm2022/lib/model/business/ui/dropdown/popover-state.mjs +9 -0
- package/esm2022/lib/model/service/version/angular-toolbox-version.service.mjs +6 -6
- package/fesm2022/angular-toolbox.mjs +426 -21
- package/fesm2022/angular-toolbox.mjs.map +1 -1
- package/lib/component/dropdown/dropdown.component.d.ts +7 -2
- package/lib/framework/mock/http/util/http-mock-response.builder.d.ts +0 -8
- package/lib/framework/mock/http/util/http-status-text-finder.d.ts +23 -0
- package/lib/framework/mock/http/util/http-status-text.enum.d.ts +252 -0
- package/lib/framework/mock/http/util/index.d.ts +2 -0
- package/lib/model/business/ui/dropdown/index.d.ts +1 -0
- package/lib/model/business/ui/dropdown/popover-state.d.ts +11 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
A library that provides useful tools for Angular apps development.
|
|
4
4
|
|
|
5
|
-
[]()
|
|
6
6
|
|
|
7
7
|
## License
|
|
8
8
|
|
|
@@ -40,6 +40,11 @@ export class DropdownComponent extends IdentifiableComponent {
|
|
|
40
40
|
* Sets the horizontal position of the content container.
|
|
41
41
|
*/
|
|
42
42
|
this.hPos = "left";
|
|
43
|
+
/**
|
|
44
|
+
* Indicates whether the content container can be "light dismissed" by selecting outside the popover area
|
|
45
|
+
* (`auto`), or not (`manual`).
|
|
46
|
+
*/
|
|
47
|
+
this.popoverState = "auto";
|
|
43
48
|
this.id = this.getID().toString();
|
|
44
49
|
}
|
|
45
50
|
/**
|
|
@@ -87,11 +92,11 @@ export class DropdownComponent extends IdentifiableComponent {
|
|
|
87
92
|
return new DropdownEvent(this, type, event.newState, event.oldState);
|
|
88
93
|
}
|
|
89
94
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: DropdownComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
90
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.3", type: DropdownComponent, isStandalone: true, selector: "atx-dropdown", inputs: { buttonClass: "buttonClass", containerClass: "containerClass", vPos: "vPos", hPos: "hPos" }, outputs: { toggle: "toggle", beforeToggle: "beforeToggle" }, viewQueries: [{ propertyName: "_popover", first: true, predicate: ["popover"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<!--\r\n * LICENSE\r\n * Copyright Pascal ECHEMANN. All Rights Reserved.\r\n *\r\n * Use of this source code is governed by an MIT-style license that can be\r\n * found in the LICENSE file at https://pascalechemann.com/angular-toolbox/resources/license\r\n-->\r\n \r\n<div class=\"atx-dropdown-container\" [class]=\"containerClass\">\r\n <button [class]=\"buttonClass\" [attr.popovertarget]=\"id\">\r\n <ng-content></ng-content>\r\n </button>\r\n <div #popover popover [attr.id]=\"id\" (toggle)=\"onToggle($event)\" (beforetoggle)=\"onBeforeToggle($event)\"></div>\r\n <div class=\"atx-dropdown-popover\"\r\n [class.atx-dropdown-v-start]=\"vPos === 'start'\"\r\n [class.atx-dropdown-top]=\"vPos === 'top'\"\r\n [class.atx-dropdown-middle]=\"vPos === 'middle'\"\r\n [class.atx-dropdown-bottom]=\"vPos === 'bottom'\"\r\n [class.atx-dropdown-v-end]=\"vPos === 'end'\"\r\n [class.atx-dropdown-h-start]=\"hPos === 'start'\"\r\n [class.atx-dropdown-left]=\"hPos === 'left'\"\r\n [class.atx-dropdown-center]=\"hPos === 'center'\"\r\n [class.atx-dropdown-right]=\"hPos === 'right'\"\r\n [class.atx-dropdown-h-end]=\"hPos === 'end'\"\r\n [class.atx-dropdown-centered]=\"hPos === 'center' && vPos === 'middle'\">\r\n <ng-content select=\"[content]\"></ng-content>\r\n </div>\r\n</div>\r\n", styles: [".atx-dropdown-container{position:relative}[popover]:popover-open{inset:unset;border:none;background:none;margin:0;padding:0}[popover]:popover-open+.atx-dropdown-popover{display:block}.atx-dropdown-popover{display:none;position:absolute;left:0;margin:0;padding:0;z-index:100;height:auto;width:max-content}.atx-dropdown-v-start{bottom:unset;top:0}.atx-dropdown-top{bottom:calc(100% + var(--atx-dropdown-gutter, 2px));top:unset}.atx-dropdown-middle{bottom:unset;top:50%;transform:translateY(-50%)}.atx-dropdown-bottom{bottom:unset;top:calc(100% + var(--atx-dropdown-gutter, 2px))}.atx-dropdown-v-end{bottom:0;top:unset}.atx-dropdown-h-start{right:calc(100% + var(--atx-dropdown-gutter, 2px));left:unset}.atx-dropdown-left{left:0;right:unset}.atx-dropdown-center{left:50%;transform:translate(-50%);right:unset}.atx-dropdown-right{right:0;left:unset}.atx-dropdown-h-end{right:unset;left:calc(100% + var(--atx-dropdown-gutter, 2px))}.atx-dropdown-centered{transform:translate(-50%,-50%)}\n/**\n * @license\n * Copyright Pascal ECHEMANN. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://pascalechemann.com/angular-toolbox/resources/license\n */\n"] }); }
|
|
95
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.3", type: DropdownComponent, isStandalone: true, selector: "atx-dropdown", inputs: { buttonClass: "buttonClass", containerClass: "containerClass", vPos: "vPos", hPos: "hPos", popoverState: "popoverState" }, outputs: { toggle: "toggle", beforeToggle: "beforeToggle" }, viewQueries: [{ propertyName: "_popover", first: true, predicate: ["popover"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<!--\r\n * LICENSE\r\n * Copyright Pascal ECHEMANN. All Rights Reserved.\r\n *\r\n * Use of this source code is governed by an MIT-style license that can be\r\n * found in the LICENSE file at https://pascalechemann.com/angular-toolbox/resources/license\r\n-->\r\n \r\n<div class=\"atx-dropdown-container\" [class]=\"containerClass\">\r\n <button [class]=\"buttonClass\" [attr.popovertarget]=\"id\">\r\n <ng-content></ng-content>\r\n </button>\r\n <div #popover [attr.popover]=\"popoverState\" [attr.id]=\"id\" (toggle)=\"onToggle($event)\" (beforetoggle)=\"onBeforeToggle($event)\"></div>\r\n <div class=\"atx-dropdown-popover\"\r\n [class.atx-dropdown-v-start]=\"vPos === 'start'\"\r\n [class.atx-dropdown-top]=\"vPos === 'top'\"\r\n [class.atx-dropdown-middle]=\"vPos === 'middle'\"\r\n [class.atx-dropdown-bottom]=\"vPos === 'bottom'\"\r\n [class.atx-dropdown-v-end]=\"vPos === 'end'\"\r\n [class.atx-dropdown-h-start]=\"hPos === 'start'\"\r\n [class.atx-dropdown-left]=\"hPos === 'left'\"\r\n [class.atx-dropdown-center]=\"hPos === 'center'\"\r\n [class.atx-dropdown-right]=\"hPos === 'right'\"\r\n [class.atx-dropdown-h-end]=\"hPos === 'end'\"\r\n [class.atx-dropdown-centered]=\"hPos === 'center' && vPos === 'middle'\">\r\n <ng-content select=\"[content]\"></ng-content>\r\n </div>\r\n</div>\r\n", styles: [".atx-dropdown-container{position:relative}[popover]:popover-open{inset:unset;border:none;background:none;margin:0;padding:0}[popover]:popover-open+.atx-dropdown-popover{display:block}.atx-dropdown-popover{display:none;position:absolute;left:0;margin:0;padding:0;z-index:100;height:auto;width:max-content}.atx-dropdown-v-start{bottom:unset;top:0}.atx-dropdown-top{bottom:calc(100% + var(--atx-dropdown-gutter, 2px));top:unset}.atx-dropdown-middle{bottom:unset;top:50%;transform:translateY(-50%)}.atx-dropdown-bottom{bottom:unset;top:calc(100% + var(--atx-dropdown-gutter, 2px))}.atx-dropdown-v-end{bottom:0;top:unset}.atx-dropdown-h-start{right:calc(100% + var(--atx-dropdown-gutter, 2px));left:unset}.atx-dropdown-left{left:0;right:unset}.atx-dropdown-center{left:50%;transform:translate(-50%);right:unset}.atx-dropdown-right{right:0;left:unset}.atx-dropdown-h-end{right:unset;left:calc(100% + var(--atx-dropdown-gutter, 2px))}.atx-dropdown-centered{transform:translate(-50%,-50%)}\n/**\n * @license\n * Copyright Pascal ECHEMANN. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://pascalechemann.com/angular-toolbox/resources/license\n */\n"] }); }
|
|
91
96
|
}
|
|
92
97
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: DropdownComponent, decorators: [{
|
|
93
98
|
type: Component,
|
|
94
|
-
args: [{ selector: 'atx-dropdown', standalone: true, template: "<!--\r\n * LICENSE\r\n * Copyright Pascal ECHEMANN. All Rights Reserved.\r\n *\r\n * Use of this source code is governed by an MIT-style license that can be\r\n * found in the LICENSE file at https://pascalechemann.com/angular-toolbox/resources/license\r\n-->\r\n \r\n<div class=\"atx-dropdown-container\" [class]=\"containerClass\">\r\n <button [class]=\"buttonClass\" [attr.popovertarget]=\"id\">\r\n <ng-content></ng-content>\r\n </button>\r\n <div #popover popover [attr.id]=\"id\" (toggle)=\"onToggle($event)\" (beforetoggle)=\"onBeforeToggle($event)\"></div>\r\n <div class=\"atx-dropdown-popover\"\r\n [class.atx-dropdown-v-start]=\"vPos === 'start'\"\r\n [class.atx-dropdown-top]=\"vPos === 'top'\"\r\n [class.atx-dropdown-middle]=\"vPos === 'middle'\"\r\n [class.atx-dropdown-bottom]=\"vPos === 'bottom'\"\r\n [class.atx-dropdown-v-end]=\"vPos === 'end'\"\r\n [class.atx-dropdown-h-start]=\"hPos === 'start'\"\r\n [class.atx-dropdown-left]=\"hPos === 'left'\"\r\n [class.atx-dropdown-center]=\"hPos === 'center'\"\r\n [class.atx-dropdown-right]=\"hPos === 'right'\"\r\n [class.atx-dropdown-h-end]=\"hPos === 'end'\"\r\n [class.atx-dropdown-centered]=\"hPos === 'center' && vPos === 'middle'\">\r\n <ng-content select=\"[content]\"></ng-content>\r\n </div>\r\n</div>\r\n", styles: [".atx-dropdown-container{position:relative}[popover]:popover-open{inset:unset;border:none;background:none;margin:0;padding:0}[popover]:popover-open+.atx-dropdown-popover{display:block}.atx-dropdown-popover{display:none;position:absolute;left:0;margin:0;padding:0;z-index:100;height:auto;width:max-content}.atx-dropdown-v-start{bottom:unset;top:0}.atx-dropdown-top{bottom:calc(100% + var(--atx-dropdown-gutter, 2px));top:unset}.atx-dropdown-middle{bottom:unset;top:50%;transform:translateY(-50%)}.atx-dropdown-bottom{bottom:unset;top:calc(100% + var(--atx-dropdown-gutter, 2px))}.atx-dropdown-v-end{bottom:0;top:unset}.atx-dropdown-h-start{right:calc(100% + var(--atx-dropdown-gutter, 2px));left:unset}.atx-dropdown-left{left:0;right:unset}.atx-dropdown-center{left:50%;transform:translate(-50%);right:unset}.atx-dropdown-right{right:0;left:unset}.atx-dropdown-h-end{right:unset;left:calc(100% + var(--atx-dropdown-gutter, 2px))}.atx-dropdown-centered{transform:translate(-50%,-50%)}\n/**\n * @license\n * Copyright Pascal ECHEMANN. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://pascalechemann.com/angular-toolbox/resources/license\n */\n"] }]
|
|
99
|
+
args: [{ selector: 'atx-dropdown', standalone: true, template: "<!--\r\n * LICENSE\r\n * Copyright Pascal ECHEMANN. All Rights Reserved.\r\n *\r\n * Use of this source code is governed by an MIT-style license that can be\r\n * found in the LICENSE file at https://pascalechemann.com/angular-toolbox/resources/license\r\n-->\r\n \r\n<div class=\"atx-dropdown-container\" [class]=\"containerClass\">\r\n <button [class]=\"buttonClass\" [attr.popovertarget]=\"id\">\r\n <ng-content></ng-content>\r\n </button>\r\n <div #popover [attr.popover]=\"popoverState\" [attr.id]=\"id\" (toggle)=\"onToggle($event)\" (beforetoggle)=\"onBeforeToggle($event)\"></div>\r\n <div class=\"atx-dropdown-popover\"\r\n [class.atx-dropdown-v-start]=\"vPos === 'start'\"\r\n [class.atx-dropdown-top]=\"vPos === 'top'\"\r\n [class.atx-dropdown-middle]=\"vPos === 'middle'\"\r\n [class.atx-dropdown-bottom]=\"vPos === 'bottom'\"\r\n [class.atx-dropdown-v-end]=\"vPos === 'end'\"\r\n [class.atx-dropdown-h-start]=\"hPos === 'start'\"\r\n [class.atx-dropdown-left]=\"hPos === 'left'\"\r\n [class.atx-dropdown-center]=\"hPos === 'center'\"\r\n [class.atx-dropdown-right]=\"hPos === 'right'\"\r\n [class.atx-dropdown-h-end]=\"hPos === 'end'\"\r\n [class.atx-dropdown-centered]=\"hPos === 'center' && vPos === 'middle'\">\r\n <ng-content select=\"[content]\"></ng-content>\r\n </div>\r\n</div>\r\n", styles: [".atx-dropdown-container{position:relative}[popover]:popover-open{inset:unset;border:none;background:none;margin:0;padding:0}[popover]:popover-open+.atx-dropdown-popover{display:block}.atx-dropdown-popover{display:none;position:absolute;left:0;margin:0;padding:0;z-index:100;height:auto;width:max-content}.atx-dropdown-v-start{bottom:unset;top:0}.atx-dropdown-top{bottom:calc(100% + var(--atx-dropdown-gutter, 2px));top:unset}.atx-dropdown-middle{bottom:unset;top:50%;transform:translateY(-50%)}.atx-dropdown-bottom{bottom:unset;top:calc(100% + var(--atx-dropdown-gutter, 2px))}.atx-dropdown-v-end{bottom:0;top:unset}.atx-dropdown-h-start{right:calc(100% + var(--atx-dropdown-gutter, 2px));left:unset}.atx-dropdown-left{left:0;right:unset}.atx-dropdown-center{left:50%;transform:translate(-50%);right:unset}.atx-dropdown-right{right:0;left:unset}.atx-dropdown-h-end{right:unset;left:calc(100% + var(--atx-dropdown-gutter, 2px))}.atx-dropdown-centered{transform:translate(-50%,-50%)}\n/**\n * @license\n * Copyright Pascal ECHEMANN. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://pascalechemann.com/angular-toolbox/resources/license\n */\n"] }]
|
|
95
100
|
}], ctorParameters: () => [], propDecorators: { toggle: [{
|
|
96
101
|
type: Output
|
|
97
102
|
}], beforeToggle: [{
|
|
@@ -104,8 +109,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImpor
|
|
|
104
109
|
type: Input
|
|
105
110
|
}], hPos: [{
|
|
106
111
|
type: Input
|
|
112
|
+
}], popoverState: [{
|
|
113
|
+
type: Input
|
|
107
114
|
}], _popover: [{
|
|
108
115
|
type: ViewChild,
|
|
109
116
|
args: ["popover"]
|
|
110
117
|
}] } });
|
|
111
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
118
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci10b29sYm94L3NyYy9saWIvY29tcG9uZW50L2Ryb3Bkb3duL2Ryb3Bkb3duLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItdG9vbGJveC9zcmMvbGliL2NvbXBvbmVudC9kcm9wZG93bi9kcm9wZG93bi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFFSCxPQUFPLEVBQUUsU0FBUyxFQUFjLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDbkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxpQkFBaUIsRUFBcUYsTUFBTSxhQUFhLENBQUM7O0FBRWxKOztHQUVHO0FBQ0gsTUFBTSxTQUFTLEdBQVcsZUFBZSxDQUFDO0FBRTFDOzs7O0dBSUc7QUFPSCxNQUFNLE9BQU8saUJBQWtCLFNBQVEscUJBQXFCO0lBd0QxRDs7T0FFRztJQUNIO1FBQ0UsS0FBSyxFQUFFLENBQUM7UUExRFY7O1dBRUc7UUFFYSxXQUFNLEdBQWdDLElBQUksWUFBWSxFQUFFLENBQUM7UUFFekU7O1dBRUc7UUFFYSxpQkFBWSxHQUFnQyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBYy9FOztXQUVHO1FBRUksU0FBSSxHQUE2QixRQUFRLENBQUM7UUFFakQ7O1dBRUc7UUFFSSxTQUFJLEdBQStCLE1BQU0sQ0FBQztRQUVqRDs7O1dBR0c7UUFFSSxpQkFBWSxHQUFpQixNQUFNLENBQUM7UUFrQnpDLElBQUksQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ3BDLENBQUM7SUFFRDs7T0FFRztJQUNJLFdBQVc7UUFDaEIsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRO1lBQUUsT0FBTztRQUMzQixJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUM1QyxDQUFDO0lBRUQ7O09BRUc7SUFDSSxXQUFXO1FBQ2hCLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUTtZQUFFLE9BQU87UUFDM0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDNUMsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxRQUFRO1FBQ2IsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRO1lBQUUsT0FBTyxLQUFLLENBQUM7UUFDakMsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUVEOztPQUVHO0lBQ08sY0FBYyxDQUFDLEtBQVk7UUFDbkMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQ3BCLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBb0IsRUFBRSxpQkFBaUIsQ0FBQyxhQUFhLENBQUMsQ0FDdkUsQ0FBQztJQUNKLENBQUM7SUFFRDs7T0FFRztJQUNPLFFBQVEsQ0FBQyxLQUFZO1FBQzdCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUNkLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBb0IsRUFBRSxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsQ0FDaEUsQ0FBQztJQUNKLENBQUM7SUFFRDs7T0FFRztJQUNLLFVBQVUsQ0FBQyxLQUFrQixFQUFFLElBQXVCO1FBQzVELE9BQU8sSUFBSSxhQUFhLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxLQUFLLENBQUMsUUFBeUIsRUFBRSxLQUFLLENBQUMsUUFBeUIsQ0FBQyxDQUFDO0lBQ3pHLENBQUM7OEdBakhVLGlCQUFpQjtrR0FBakIsaUJBQWlCLHFZQzVCOUIsNjRDQTRCQTs7MkZEQWEsaUJBQWlCO2tCQU43QixTQUFTOytCQUNFLGNBQWMsY0FDWixJQUFJO3dEQVVBLE1BQU07c0JBRHJCLE1BQU07Z0JBT1MsWUFBWTtzQkFEM0IsTUFBTTtnQkFPQSxXQUFXO3NCQURqQixLQUFLO2dCQU9DLGNBQWM7c0JBRHBCLEtBQUs7Z0JBT0MsSUFBSTtzQkFEVixLQUFLO2dCQU9DLElBQUk7c0JBRFYsS0FBSztnQkFRQyxZQUFZO3NCQURsQixLQUFLO2dCQVlFLFFBQVE7c0JBRGYsU0FBUzt1QkFBQyxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIEBsaWNlbnNlXHJcbiAqIENvcHlyaWdodCBQYXNjYWwgRUNIRU1BTk4uIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXHJcbiAqXHJcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXHJcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9wYXNjYWxlY2hlbWFubi5jb20vYW5ndWxhci10b29sYm94L3Jlc291cmNlcy9saWNlbnNlXHJcbiAqL1xyXG5cclxuaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBJZGVudGlmaWFibGVDb21wb25lbnQgfSBmcm9tICcuLi8uLi9jb3JlJztcclxuaW1wb3J0IHsgRHJvcGRvd25FdmVudCwgRHJvcGRvd25FdmVudFR5cGUsIERyb3Bkb3duSG9yaXpvbnRhbFBvc2l0aW9uLCBEcm9wZG93blN0YXRlLCBEcm9wZG93blZlcnRpY2FsUG9zaXRpb24sIFBvcG92ZXJTdGF0ZSB9IGZyb20gJy4uLy4uL21vZGVsJztcclxuXHJcbi8qKlxyXG4gKiBAcHJpdmF0ZVxyXG4gKi9cclxuY29uc3QgQVBJX01BVENIOiBzdHJpbmcgPSAnOnBvcG92ZXItb3Blbic7XHJcblxyXG4vKipcclxuICogVGhlIEFUWCBkcm9wZG93biBjb21wb25lbnQgYWxsb3dzIHRvIGNyZWF0ZSBwb3B1cCBjb250YWluZXJzIHRoYXQgYXJlIGRpc3BsYXllZCBieSBjbGlja2luZyBvbiBhIGJ1dHRvbi5cclxuICogVGhlIGNvbnRlbnQgb2YgdGhlIGNvbnRhaW5lciBpcyBkZWZpbmVkIGJ5IERldmVsb3Blci5cclxuICogVGhpcyBjb21wb25lbnQgaXMgcGFydCBvZiB0aGUgTEFGLWxlc3MgQVBJLlxyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhdHgtZHJvcGRvd24nLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2Ryb3Bkb3duLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vZHJvcGRvd24uY29tcG9uZW50LnNjc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEcm9wZG93bkNvbXBvbmVudCBleHRlbmRzIElkZW50aWZpYWJsZUNvbXBvbmVudCB7XHJcblxyXG4gIC8qKlxyXG4gICAqIEFuIGV2ZW50IGZpcmVkIG9uIHRoZSBkcm9wZG93biBjb21wb25lbnQganVzdCBhZnRlciBpdCBpcyBzaG93biBvciBoaWRkZW4uXHJcbiAgICovXHJcbiAgQE91dHB1dCgpXHJcbiAgcHVibGljIHJlYWRvbmx5IHRvZ2dsZTogRXZlbnRFbWl0dGVyPERyb3Bkb3duRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICAvKipcclxuICAgKiBBbiBldmVudCBmaXJlZCBvbiB0aGUgZHJvcGRvd24gY29tcG9uZW50IGp1c3QgYmVmb3JlIGl0IGlzIHNob3duIG9yIGhpZGRlbi5cclxuICAgKi9cclxuICBAT3V0cHV0KClcclxuICBwdWJsaWMgcmVhZG9ubHkgYmVmb3JlVG9nZ2xlOiBFdmVudEVtaXR0ZXI8RHJvcGRvd25FdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIC8qKlxyXG4gICAqIFNldHMgdGhlIGRyb3Bkb3duIGJ1dHRvbiBDU1MgY2xhc3MuXHJcbiAgICovXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgYnV0dG9uQ2xhc3MhOiBzdHJpbmc7XHJcblxyXG4gIC8qKlxyXG4gICAqIFNldHMgdGhlIGRyb3Bkb3duIGNvbnBvbWVudCBDU1MgY2xhc3MuXHJcbiAgICovXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgY29udGFpbmVyQ2xhc3MhOiBzdHJpbmc7XHJcblxyXG4gIC8qKlxyXG4gICAqIFNldHMgdGhlIHZlcnRpY2FsIHBvc2l0aW9uIG9mIHRoZSBjb250ZW50IGNvbnRhaW5lci5cclxuICAgKi9cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyB2UG9zOiBEcm9wZG93blZlcnRpY2FsUG9zaXRpb24gPSBcImJvdHRvbVwiO1xyXG5cclxuICAvKipcclxuICAgKiBTZXRzIHRoZSBob3Jpem9udGFsIHBvc2l0aW9uIG9mIHRoZSBjb250ZW50IGNvbnRhaW5lci5cclxuICAgKi9cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBoUG9zOiBEcm9wZG93bkhvcml6b250YWxQb3NpdGlvbiA9IFwibGVmdFwiO1xyXG4gIFxyXG4gIC8qKlxyXG4gICAqIEluZGljYXRlcyB3aGV0aGVyIHRoZSBjb250ZW50IGNvbnRhaW5lciBjYW4gYmUgXCJsaWdodCBkaXNtaXNzZWRcIiBieSBzZWxlY3Rpbmcgb3V0c2lkZSB0aGUgcG9wb3ZlciBhcmVhXHJcbiAgICogKGBhdXRvYCksIG9yIG5vdCAoYG1hbnVhbGApLlxyXG4gICAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHBvcG92ZXJTdGF0ZTogUG9wb3ZlclN0YXRlID0gXCJhdXRvXCI7XHJcblxyXG4gIC8qKlxyXG4gICAqIEBwcml2YXRlXHJcbiAgICovXHJcbiAgcHJvdGVjdGVkIGlkITogc3RyaW5nO1xyXG5cclxuICAvKipcclxuICAgKiBAcHJpdmF0ZVxyXG4gICAqL1xyXG4gIEBWaWV3Q2hpbGQoXCJwb3BvdmVyXCIpXHJcbiAgcHJpdmF0ZSBfcG9wb3ZlciE6IEVsZW1lbnRSZWY7XHJcblxyXG4gIC8qKlxyXG4gICAqIEBwcml2YXRlXHJcbiAgICovXHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgICBzdXBlcigpO1xyXG4gICAgdGhpcy5pZCA9IHRoaXMuZ2V0SUQoKS50b1N0cmluZygpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogSGlkZXMgdGhlIGRyb3Bkb3duIGNvbnRhaW5lci5cclxuICAgKi9cclxuICBwdWJsaWMgaGlkZUNvbnRlbnQoKTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMuX3BvcG92ZXIpIHJldHVybjtcclxuICAgIHRoaXMuX3BvcG92ZXIubmF0aXZlRWxlbWVudC5oaWRlUG9wb3ZlcigpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRGlzcGxheXMgdGhlIGRyb3Bkb3duIGNvbnRhaW5lci5cclxuICAgKi9cclxuICBwdWJsaWMgc2hvd0NvbnRlbnQoKTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMuX3BvcG92ZXIpIHJldHVybjtcclxuICAgIHRoaXMuX3BvcG92ZXIubmF0aXZlRWxlbWVudC5zaG93UG9wb3ZlcigpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0dXJucyB0aGUgZGlzcGxheSBzdGF0ZSBvZiB0aGUgZHJvcGRvd24uXHJcbiAgICogXHJcbiAgICogQHJldHVybnMgUmV0dXJucyBgdHJ1ZWAgd2hldGhlciB0aGUgZHJvcGRvd24gaXMgb3BlbmVkOyBgZmFsc2VgIG90aGVyd2lzZS5cclxuICAgKi9cclxuICBwdWJsaWMgaXNPcGVuZWQoKTogYm9vbGVhbiB7XHJcbiAgICBpZiAoIXRoaXMuX3BvcG92ZXIpIHJldHVybiBmYWxzZTtcclxuICAgIHJldHVybiB0aGlzLl9wb3BvdmVyLm5hdGl2ZUVsZW1lbnQubWF0Y2hlcyhBUElfTUFUQ0gpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQHByaXZhdGVcclxuICAgKi9cclxuICBwcm90ZWN0ZWQgb25CZWZvcmVUb2dnbGUoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XHJcbiAgICB0aGlzLmJlZm9yZVRvZ2dsZS5lbWl0KFxyXG4gICAgICB0aGlzLmJ1aWxkRXZlbnQoZXZlbnQgYXMgVG9nZ2xlRXZlbnQsIERyb3Bkb3duRXZlbnRUeXBlLkJFRk9SRV9UT0dHTEUpXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQHByaXZhdGVcclxuICAgKi9cclxuICBwcm90ZWN0ZWQgb25Ub2dnbGUoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XHJcbiAgICB0aGlzLnRvZ2dsZS5lbWl0KFxyXG4gICAgICB0aGlzLmJ1aWxkRXZlbnQoZXZlbnQgYXMgVG9nZ2xlRXZlbnQsIERyb3Bkb3duRXZlbnRUeXBlLlRPR0dMRSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBAcHJpdmF0ZVxyXG4gICAqL1xyXG4gIHByaXZhdGUgYnVpbGRFdmVudChldmVudDogVG9nZ2xlRXZlbnQsIHR5cGU6IERyb3Bkb3duRXZlbnRUeXBlKTogRHJvcGRvd25FdmVudCB7XHJcbiAgICByZXR1cm4gbmV3IERyb3Bkb3duRXZlbnQodGhpcywgdHlwZSwgZXZlbnQubmV3U3RhdGUgYXMgRHJvcGRvd25TdGF0ZSwgZXZlbnQub2xkU3RhdGUgYXMgRHJvcGRvd25TdGF0ZSk7XHJcbiAgfVxyXG59XHJcbiIsIjwhLS1cclxuICogTElDRU5TRVxyXG4gKiBDb3B5cmlnaHQgUGFzY2FsIEVDSEVNQU5OLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxyXG4gKlxyXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxyXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vcGFzY2FsZWNoZW1hbm4uY29tL2FuZ3VsYXItdG9vbGJveC9yZXNvdXJjZXMvbGljZW5zZVxyXG4tLT5cclxuIFxyXG48ZGl2IGNsYXNzPVwiYXR4LWRyb3Bkb3duLWNvbnRhaW5lclwiIFtjbGFzc109XCJjb250YWluZXJDbGFzc1wiPlxyXG4gICAgPGJ1dHRvbiBbY2xhc3NdPVwiYnV0dG9uQ2xhc3NcIiBbYXR0ci5wb3BvdmVydGFyZ2V0XT1cImlkXCI+XHJcbiAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxyXG4gICAgPC9idXR0b24+XHJcbiAgICA8ZGl2ICNwb3BvdmVyIFthdHRyLnBvcG92ZXJdPVwicG9wb3ZlclN0YXRlXCIgW2F0dHIuaWRdPVwiaWRcIiAodG9nZ2xlKT1cIm9uVG9nZ2xlKCRldmVudClcIiAoYmVmb3JldG9nZ2xlKT1cIm9uQmVmb3JlVG9nZ2xlKCRldmVudClcIj48L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJhdHgtZHJvcGRvd24tcG9wb3ZlclwiXHJcbiAgICAgICAgIFtjbGFzcy5hdHgtZHJvcGRvd24tdi1zdGFydF09XCJ2UG9zID09PSAnc3RhcnQnXCJcclxuICAgICAgICAgW2NsYXNzLmF0eC1kcm9wZG93bi10b3BdPVwidlBvcyA9PT0gJ3RvcCdcIlxyXG4gICAgICAgICBbY2xhc3MuYXR4LWRyb3Bkb3duLW1pZGRsZV09XCJ2UG9zID09PSAnbWlkZGxlJ1wiXHJcbiAgICAgICAgIFtjbGFzcy5hdHgtZHJvcGRvd24tYm90dG9tXT1cInZQb3MgPT09ICdib3R0b20nXCJcclxuICAgICAgICAgW2NsYXNzLmF0eC1kcm9wZG93bi12LWVuZF09XCJ2UG9zID09PSAnZW5kJ1wiXHJcbiAgICAgICAgIFtjbGFzcy5hdHgtZHJvcGRvd24taC1zdGFydF09XCJoUG9zID09PSAnc3RhcnQnXCJcclxuICAgICAgICAgW2NsYXNzLmF0eC1kcm9wZG93bi1sZWZ0XT1cImhQb3MgPT09ICdsZWZ0J1wiXHJcbiAgICAgICAgIFtjbGFzcy5hdHgtZHJvcGRvd24tY2VudGVyXT1cImhQb3MgPT09ICdjZW50ZXInXCJcclxuICAgICAgICAgW2NsYXNzLmF0eC1kcm9wZG93bi1yaWdodF09XCJoUG9zID09PSAncmlnaHQnXCJcclxuICAgICAgICAgW2NsYXNzLmF0eC1kcm9wZG93bi1oLWVuZF09XCJoUG9zID09PSAnZW5kJ1wiXHJcbiAgICAgICAgIFtjbGFzcy5hdHgtZHJvcGRvd24tY2VudGVyZWRdPVwiaFBvcyA9PT0gJ2NlbnRlcicgJiYgdlBvcyA9PT0gJ21pZGRsZSdcIj5cclxuICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbY29udGVudF1cIj48L25nLWNvbnRlbnQ+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
|
|
@@ -8,10 +8,8 @@
|
|
|
8
8
|
import { HttpStatusCode } from "@angular/common/http";
|
|
9
9
|
import { HttpHeadersUtil } from "./http-headers.util";
|
|
10
10
|
import { HTTP_MOCK_MAX_DELAY } from "./http-mock-max-delay";
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
*/
|
|
14
|
-
const OK = "OK";
|
|
11
|
+
import { HttpStatusTextFinder } from "./http-status-text-finder";
|
|
12
|
+
import { EMPTY_STRING } from "../../../../util";
|
|
15
13
|
/**
|
|
16
14
|
* A statefull builder for creating new `HttpResponseMock` instances.
|
|
17
15
|
*/
|
|
@@ -24,7 +22,7 @@ export class HttpResponseMockBuilder {
|
|
|
24
22
|
url: null,
|
|
25
23
|
body: null,
|
|
26
24
|
status: HttpStatusCode.Ok,
|
|
27
|
-
statusText:
|
|
25
|
+
statusText: EMPTY_STRING,
|
|
28
26
|
error: null,
|
|
29
27
|
delay: 0
|
|
30
28
|
};
|
|
@@ -80,17 +78,6 @@ export class HttpResponseMockBuilder {
|
|
|
80
78
|
this._response.status = status;
|
|
81
79
|
return this;
|
|
82
80
|
}
|
|
83
|
-
/**
|
|
84
|
-
* Sets the `statusText` property of the new `HttpResponseMock` instance with the specified `statusText` value.
|
|
85
|
-
*
|
|
86
|
-
* @param statusText The value used to set the `statusText` property of the new `HttpResponseMock` instance.
|
|
87
|
-
*
|
|
88
|
-
* @returns A reference to this `HttpResponseMockBuilder` instance.
|
|
89
|
-
*/
|
|
90
|
-
statusText(statusText) {
|
|
91
|
-
this._response.statusText = statusText;
|
|
92
|
-
return this;
|
|
93
|
-
}
|
|
94
81
|
/**
|
|
95
82
|
* Sets the `url` property of the new `HttpResponseMock` instance with the specified `url` value.
|
|
96
83
|
*
|
|
@@ -141,6 +128,7 @@ export class HttpResponseMockBuilder {
|
|
|
141
128
|
*/
|
|
142
129
|
response(error = null) {
|
|
143
130
|
this._response.error = error;
|
|
131
|
+
this._response.statusText = HttpStatusTextFinder.getStatusText(this._response.status);
|
|
144
132
|
return this._response;
|
|
145
133
|
}
|
|
146
134
|
}
|
|
@@ -150,4 +138,4 @@ export class HttpResponseMockBuilder {
|
|
|
150
138
|
* @returns A new `HttpResponseMockBuilder` instance.
|
|
151
139
|
*/
|
|
152
140
|
export const httpResponseMock = () => new HttpResponseMockBuilder();
|
|
153
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC1tb2NrLXJlc3BvbnNlLmJ1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXRvb2xib3gvc3JjL2xpYi9mcmFtZXdvcmsvbW9jay9odHRwL3V0aWwvaHR0cC1tb2NrLXJlc3BvbnNlLmJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBRUgsT0FBTyxFQUFlLGNBQWMsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRW5FLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUU1RDs7R0FFRztBQUNILE1BQU0sRUFBRSxHQUFXLElBQUksQ0FBQztBQUV4Qjs7R0FFRztBQUNILE1BQU0sT0FBTyx1QkFBdUI7SUFBcEM7UUFFSTs7V0FFRztRQUNLLGNBQVMsR0FBcUI7WUFDbEMsR0FBRyxFQUFFLElBQUk7WUFDVCxJQUFJLEVBQUUsSUFBSTtZQUNWLE1BQU0sRUFBRSxjQUFjLENBQUMsRUFBRTtZQUN6QixVQUFVLEVBQUUsRUFBRTtZQUNkLEtBQUssRUFBRSxJQUFJO1lBQ1gsS0FBSyxFQUFFLENBQUM7U0FDWCxDQUFDO0lBMElOLENBQUM7SUF4SUc7Ozs7OztPQU1HO0lBQ0ksSUFBSSxDQUFDLElBQVM7UUFDakIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQzNCLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSSxPQUFPLENBQUMsT0FBb0I7UUFDL0IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1FBQ2pDLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLGNBQWM7UUFDakIsTUFBTSxjQUFjLEdBQWdCLGVB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TUFBTSxnQkFBZ0IsR0FBZ0MsR0FBRSxFQUFFLENBQUMsSUFBSSx1QkFBdUIsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIEBsaWNlbnNlXHJcbiAqIENvcHlyaWdodCBQYXNjYWwgRUNIRU1BTk4uIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXHJcbiAqXHJcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlIGZvdW5kIGluXHJcbiAqIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9wYXNjYWxlY2hlbWFubi5jb20vYW5ndWxhci10b29sYm94L3Jlc291cmNlcy9saWNlbnNlXHJcbiAqL1xyXG5cclxuaW1wb3J0IHsgSHR0cEhlYWRlcnMsIEh0dHBTdGF0dXNDb2RlIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vbi9odHRwXCI7XHJcbmltcG9ydCB7IEh0dHBNb2NrRXJyb3IsIEh0dHBSZXNwb25zZU1vY2sgfSBmcm9tIFwiLi4vLi4vLi4vLi4vbW9kZWxcIjtcclxuaW1wb3J0IHsgSHR0cEhlYWRlcnNVdGlsIH0gZnJvbSBcIi4vaHR0cC1oZWFkZXJzLnV0aWxcIjtcclxuaW1wb3J0IHsgSFRUUF9NT0NLX01BWF9ERUxBWSB9IGZyb20gXCIuL2h0dHAtbW9jay1tYXgtZGVsYXlcIjtcclxuXHJcbi8qKlxyXG4gKiBAcHJpdmF0ZVxyXG4gKi9cclxuY29uc3QgT0s6IHN0cmluZyA9IFwiT0tcIjtcclxuXHJcbi8qKlxyXG4gKiBBIHN0YXRlZnVsbCBidWlsZGVyIGZvciBjcmVhdGluZyBuZXcgYEh0dHBSZXNwb25zZU1vY2tgIGluc3RhbmNlcy5cclxuICovXHJcbmV4cG9ydCBjbGFzcyBIdHRwUmVzcG9uc2VNb2NrQnVpbGRlciB7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIF9yZXNwb25zZTogSHR0cFJlc3BvbnNlTW9jayA9IHtcclxuICAgICAgICB1cmw6IG51bGwsXHJcbiAgICAgICAgYm9keTogbnVsbCxcclxuICAgICAgICBzdGF0dXM6IEh0dHBTdGF0dXNDb2RlLk9rLFxyXG4gICAgICAgIHN0YXR1c1RleHQ6IE9LLFxyXG4gICAgICAgIGVycm9yOiBudWxsLFxyXG4gICAgICAgIGRlbGF5OiAwXHJcbiAgICB9O1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2V0cyB0aGUgYm9keSBwcm9wZXJ0eSBvZiB0aGUgbmV3IGBIdHRwUmVzcG9uc2VNb2NrYCBpbnN0YW5jZSB3aXRoIHRoZSBzcGVjaWZpZWQgYGJvZHlgIHZhbHVlLlxyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0gYm9keSBUaGUgdmFsdWUgdXNlZCB0byBzZXQgdGhlIGJvZHkgcHJvcGVydHkgb2YgdGhlIG5ldyBgSHR0cFJlc3BvbnNlTW9ja2AgaW5zdGFuY2UuXHJcbiAgICAgKiBcclxuICAgICAqIEByZXR1cm5zIEEgcmVmZXJlbmNlIHRvIHRoaXMgYEh0dHBSZXNwb25zZU1vY2tCdWlsZGVyYCBpbnN0YW5jZS5cclxuICAgICAqL1xyXG4gICAgcHVibGljIGJvZHkoYm9keTogYW55KTogSHR0cFJlc3BvbnNlTW9ja0J1aWxkZXIge1xyXG4gICAgICAgIHRoaXMuX3Jlc3BvbnNlLmJvZHkgPSBib2R5O1xyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2V0cyB0aGUgaGVhZGVycyBwcm9wZXJ0eSBvZiB0aGUgbmV3IGBIdHRwUmVzcG9uc2VNb2NrYCBpbnN0YW5jZSB3aXRoIHRoZSBzcGVjaWZpZWQgYGhlYWRlcnNgIHZhbHVlLlxyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0gaGVhZGVycyBUaGUgdmFsdWUgdXNlZCB0byBzZXQgdGhlIGBoZWFkZXJzYCBwcm9wZXJ0eSBvZiB0aGUgbmV3IGBIdHRwUmVzcG9uc2VNb2NrYCBpbnN0YW5jZS5cclxuICAgICAqIFxyXG4gICAgICogQHJldHVybnMgQSByZWZlcmVuY2UgdG8gdGhpcyBgSHR0cFJlc3BvbnNlTW9ja0J1aWxkZXJgIGluc3RhbmNlLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgaGVhZGVycyhoZWFkZXJzOiBIdHRwSGVhZGVycyk6IEh0dHBSZXNwb25zZU1vY2tCdWlsZGVyIHtcclxuICAgICAgICB0aGlzLl9yZXNwb25zZS5oZWFkZXJzID0gaGVhZGVycztcclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEFkZCB0aGUgbGlzdCBvZiBIVFRQIGhlYWRlcnMgZ2VuZXJhdGVkIGJ5IHRoZSBgSHR0cEhlYWRlcnNVdGlsLmNyZWF0ZURlZmF1bHRSZXF1ZXN0SGVhZGVycygpYFxyXG4gICAgICogdG8gdGhlIG1vY2sgcmVzcG9uc2UuXHJcbiAgICAgKiBcclxuICAgICAqIEByZXR1cm5zIEEgcmVmZXJlbmNlIHRvIHRoaXMgYEh0dHBSZXNwb25zZU1vY2tCdWlsZGVyYCBpbnN0YW5jZS5cclxuICAgICAqL1xyXG4gICAgcHVibGljIGRlZmF1bHRIZWFkZXJzKCk6IEh0dHBSZXNwb25zZU1vY2tCdWlsZGVyIHtcclxuICAgICAgICBjb25zdCBkZWZhdWx0SGVhZGVyczogSHR0cEhlYWRlcnMgPSBIdHRwSGVhZGVyc1V0aWwuY3JlYXRlRGVmYXVsdFJlcXVlc3RIZWFkZXJzKCk7XHJcbiAgICAgICAgbGV0IGhlYWRlcnM6IEh0dHBIZWFkZXJzIHwgdW5kZWZpbmVkID0gdGhpcy5fcmVzcG9uc2UuaGVhZGVycztcclxuICAgICAgICBpZiAoaGVhZGVycykge1xyXG4gICAgICAgICAgICBjb25zdCBrZXlzOiBzdHJpbmdbXSA9IGRlZmF1bHRIZWFkZXJzLmtleXMoKTtcclxuICAgICAgICAgICAga2V5cy5mb3JFYWNoKGtleT0+IGhlYWRlcnM/LmFwcGVuZChrZXksIGRlZmF1bHRIZWFkZXJzLmdldChrZXkpIGFzIGFueSkpXHJcbiAgICAgICAgfSBlbHNlIGhlYWRlcnMgPSBkZWZhdWx0SGVhZGVycztcclxuICAgICAgICB0aGlzLl9yZXNwb25zZS5oZWFkZXJzID0gaGVhZGVycztcclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFNldHMgdGhlIGBzdGF0dXNgIHByb3BlcnR5IG9mIHRoZSBuZXcgYEh0dHBSZXNwb25zZU1vY2tgIGluc3RhbmNlIHdpdGggdGhlIHNwZWNpZmllZCBgc3RhdHVzYCB2YWx1ZS5cclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIHN0YXR1cyBUaGUgdmFsdWUgdXNlZCB0byBzZXQgdGhlIGBzdGF0dXNgIHByb3BlcnR5IG9mIHRoZSBuZXcgYEh0dHBSZXNwb25zZU1vY2tgIGluc3RhbmNlLlxyXG4gICAgICogXHJcbiAgICAgKiBAcmV0dXJucyBBIHJlZmVyZW5jZSB0byB0aGlzIGBIdHRwUmVzcG9uc2VNb2NrQnVpbGRlcmAgaW5zdGFuY2UuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzdGF0dXMoc3RhdHVzOiBudW1iZXIpOiBIdHRwUmVzcG9uc2VNb2NrQnVpbGRlciB7XHJcbiAgICAgICAgdGhpcy5fcmVzcG9uc2Uuc3RhdHVzID0gc3RhdHVzO1xyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2V0cyB0aGUgYHN0YXR1c1RleHRgIHByb3BlcnR5IG9mIHRoZSBuZXcgYEh0dHBSZXNwb25zZU1vY2tgIGluc3RhbmNlIHdpdGggdGhlIHNwZWNpZmllZCBgc3RhdHVzVGV4dGAgdmFsdWUuXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSBzdGF0dXNUZXh0IFRoZSB2YWx1ZSB1c2VkIHRvIHNldCB0aGUgYHN0YXR1c1RleHRgIHByb3BlcnR5IG9mIHRoZSBuZXcgYEh0dHBSZXNwb25zZU1vY2tgIGluc3RhbmNlLlxyXG4gICAgICogXHJcbiAgICAgKiBAcmV0dXJucyBBIHJlZmVyZW5jZSB0byB0aGlzIGBIdHRwUmVzcG9uc2VNb2NrQnVpbGRlcmAgaW5zdGFuY2UuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzdGF0dXNUZXh0KHN0YXR1c1RleHQ6IHN0cmluZyk6IEh0dHBSZXNwb25zZU1vY2tCdWlsZGVyIHtcclxuICAgICAgICB0aGlzLl9yZXNwb25zZS5zdGF0dXNUZXh0ID0gc3RhdHVzVGV4dDtcclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFNldHMgdGhlIGB1cmxgIHByb3BlcnR5IG9mIHRoZSBuZXcgYEh0dHBSZXNwb25zZU1vY2tgIGluc3RhbmNlIHdpdGggdGhlIHNwZWNpZmllZCBgdXJsYCB2YWx1ZS5cclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIHVybCBUaGUgdmFsdWUgdXNlZCB0byBzZXQgdGhlIGB1cmxgIHByb3BlcnR5IG9mIHRoZSBuZXcgYEh0dHBSZXNwb25zZU1vY2tgIGluc3RhbmNlLlxyXG4gICAgICogXHJcbiAgICAgKiBAcmV0dXJucyBBIHJlZmVyZW5jZSB0byB0aGlzIGBIdHRwUmVzcG9uc2VNb2NrQnVpbGRlcmAgaW5zdGFuY2UuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyB1cmwodXJsOiBzdHJpbmcgfCBudWxsKTogSHR0cFJlc3BvbnNlTW9ja0J1aWxkZXIge1xyXG4gICAgICAgIHRoaXMuX3Jlc3BvbnNlLnVybCA9IHVybDtcclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFNldHMgdGhlIGBkZWxheWAgcHJvcGVydHkgb2YgdGhlIG5ldyBgSHR0cFJlc3BvbnNlTW9ja2AgaW5zdGFuY2Ugd2l0aCB0aGUgc3BlY2lmaWVkIGB0aW1lcmAgZHVyYXRpb24uXHJcbiAgICAgKiBNYXhpbXVtIHZhbHVlIGlzIGAxMDAwMGAgbWlsaXNlY29uZHMgKDEwIHNlY29uZHMpLlxyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0gdGltZXIgVGhlIHZhbHVlIHVzZWQgdG8gc2V0IHRoZSBgZGVsYXlgIHByb3BlcnR5IG9mIHRoZSBuZXcgYEh0dHBSZXNwb25zZU1vY2tgIGluc3RhbmNlLlxyXG4gICAgICogXHJcbiAgICAgKiBAcmV0dXJucyBBIHJlZmVyZW5jZSB0byB0aGlzIGBIdHRwUmVzcG9uc2VNb2NrQnVpbGRlcmAgaW5zdGFuY2UuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBkZWxheSh0aW1lcj86IG51bWJlcik6IEh0dHBSZXNwb25zZU1vY2tCdWlsZGVyO1xyXG4gICAgXHJcbiAgICAvKipcclxuICAgICAqIFNldHMgdGhlIGBkZWxheWAgcHJvcGVydHkgb2YgdGhlIG5ldyBgSHR0cFJlc3BvbnNlTW9ja2AgaW5zdGFuY2Ugd2l0aCB0aGUgc3BlY2lmaWVkIGB0aW1lcmAgZHVyYXRpb24uXHJcbiAgICAgKiBNYXhpbXVtIHZhbHVlIGlzIGAxMDAwMGAgbWlsaXNlY29uZHMgKDEwIHNlY29uZHMpLlxyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0gdGltZXIgVGhlIHZhbHVlIHVzZWQgdG8gc2V0IHRoZSBgZGVsYXlgIHByb3BlcnR5IG9mIHRoZSBuZXcgYEh0dHBSZXNwb25zZU1vY2tgIGluc3RhbmNlLlxyXG4gICAgICogXHJcbiAgICAgKiBAcmV0dXJucyBBIHJlZmVyZW5jZSB0byB0aGlzIGBIdHRwUmVzcG9uc2VNb2NrQnVpbGRlcmAgaW5zdGFuY2UuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBkZWxheShtaW4/OiBudW1iZXIsIG1heD86IG51bWJlcik6IEh0dHBSZXNwb25zZU1vY2tCdWlsZGVyO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQHByaXZhdGVcclxuICAgICAqIE92ZXJsb2FkIGltcGxlbWVudGF0aW9uIFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZGVsYXkoLi4uYXJnOiBhbnkpOiBIdHRwUmVzcG9uc2VNb2NrQnVpbGRlciB7XHJcbiAgICAgICAgaWYgKGFyZy5sZW5ndGggPD0gMSkge1xyXG4gICAgICAgICAgICBsZXQgdGltZXI6IG51bWJlciA9IGFyZ1swXSB8fCBOYU47XHJcbiAgICAgICAgICAgIGlmIChpc05hTih0aW1lcikpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuX3Jlc3BvbnNlLmRlbGF5ID0gSFRUUF9NT0NLX01BWF9ERUxBWSAtIE1hdGgucmFuZG9tKCkgKiBIVFRQX01PQ0tfTUFYX0RFTEFZO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKHRpbWVyID4gSFRUUF9NT0NLX01BWF9ERUxBWSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fcmVzcG9uc2UuZGVsYXkgPSBIVFRQX01PQ0tfTUFYX0RFTEFZO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKHRpbWVyIDwgMCkgdGltZXIgPSAwO1xyXG4gICAgICAgICAgICB0aGlzLl9yZXNwb25zZS5kZWxheSA9IHRpbWVyO1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcztcclxuICAgICAgICB9XHJcbiAgICAgICAgbGV0IG1pbjogbnVtYmVyID0gYXJnWzBdLCBtYXg6IG51bWJlciA9IGFyZ1sxXTtcclxuICAgICAgICBpZiAobWF4ID4gSFRUUF9NT0NLX01BWF9ERUxBWSkgbWF4ID0gSFRUUF9NT0NLX01BWF9ERUxBWTtcclxuICAgICAgICBpZiAobWluIDwgMCB8fCBtaW4gPiBtYXgpIG1pbiA9IDA7XHJcbiAgICAgICAgdGhpcy5fcmVzcG9uc2UuZGVsYXkgPSBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiAobWF4IC0gbWluKSArIG1pbik7XHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXR1cm5zIGEgbmV3IGBIdHRwUmVzcG9uc2VNb2NrYCBpbnN0YW5jZSwgYnVpbHQgZnJvbSB0aGUgcHJvcGVydGllcyBzcGVjaWZpZWQgd2l0aCB0aGVcclxuICAgICAqIGBIdHRwUmVzcG9uc2VNb2NrQnVpbGRlcmAgbWV0aG9kcy5cclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIGVycm9yIEFuIG9wdGlvbmFsIHZhbHVlIHVzZWQgdG8gc2V0IHRoZSBgZXJyb3JgIHByb3BlcnR5IG9mIHRoZSBuZXcgYEh0dHBSZXNwb25zZU1vY2tgIGluc3RhbmNlLlxyXG4gICAgICogICAgICAgICAgICAgIFRoZSBgZXJyb3JgIHBhcmFtZXRlciB2YWx1ZXMgdGFrZSBwcmVjZWRlbmNlIG92ZXIgYWxsIG90aGVyIHByb3BlcnRpZXMgb2YgdGhlIGBIdHRwUmVzcG9uc2VNb2NrYFxyXG4gICAgICogICAgICAgICAgICAgIGluc3RhbmNlLlxyXG4gICAgICogQHJldHVybnMgQSBuZXcgYEh0dHBSZXNwb25zZU1vY2tgIGluc3RhbmNlLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgcmVzcG9uc2UoZXJyb3I6IEh0dHBNb2NrRXJyb3IgfCBudWxsID0gbnVsbCk6IEh0dHBSZXNwb25zZU1vY2sge1xyXG4gICAgICAgIHRoaXMuX3Jlc3BvbnNlLmVycm9yID0gZXJyb3I7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Jlc3BvbnNlO1xyXG4gICAgfVxyXG59XHJcblxyXG4vKipcclxuICogQSB1dGlsaXR5IGZ1bmN0aW9uIHVzZWQgdG8gY3JlYXRlIG5ldyBcImNoYWluYWJsZVwiIGBIdHRwUmVzcG9uc2VNb2NrQnVpbGRlcmAgaW5zdGFuY2VzLlxyXG4gKiBcclxuICogQHJldHVybnMgQSBuZXcgYEh0dHBSZXNwb25zZU1vY2tCdWlsZGVyYCBpbnN0YW5jZS5cclxuICovXHJcbmV4cG9ydCBjb25zdCBodHRwUmVzcG9uc2VNb2NrOigpPT4gSHR0cFJlc3BvbnNlTW9ja0J1aWxkZXIgPSAoKT0+IG5ldyBIdHRwUmVzcG9uc2VNb2NrQnVpbGRlcigpOyJdfQ==
|
|
141
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC1tb2NrLXJlc3BvbnNlLmJ1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXRvb2xib3gvc3JjL2xpYi9mcmFtZXdvcmsvbW9jay9odHRwL3V0aWwvaHR0cC1tb2NrLXJlc3BvbnNlLmJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBRUgsT0FBTyxFQUFlLGNBQWMsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRW5FLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFaEQ7O0dBRUc7QUFDSCxNQUFNLE9BQU8sdUJBQXVCO0lBQXBDO1FBRUk7O1dBRUc7UUFDSyxjQUFTLEdBQXFCO1lBQ2xDLEdBQUcsRUFBRSxJQUFJO1lBQ1QsSUFBSSxFQUFFLElBQUk7WUFDVixNQUFNLEVBQUUsY0FBYyxDQUFDLEVBQUU7WUFDekIsVUFBVSxFQUFFLFlBQVk7WUFDeEIsS0FBSyxFQUFFLElBQUk7WUFDWCxLQUFLLEVBQUUsQ0FBQztTQUNYLENBQUM7SUErSE4sQ0FBQztJQTdIRzs7Ozs7O09BTUc7SUFDSSxJQUFJLENBQUMsSUFBUztRQUNqQixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7UUFDM0IsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNJLE9BQU8sQ0FBQyxPQUFvQjtRQUMvQixJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7UUFDakMsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJ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RUQ7Ozs7R0FJRztBQUNILE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFnQyxHQUFFLEVBQUUsQ0FBQyxJQUFJLHVCQUF1QixFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogQGxpY2Vuc2VcclxuICogQ29weXJpZ2h0IFBhc2NhbCBFQ0hFTUFOTi4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cclxuICpcclxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUgZm91bmQgaW5cclxuICogdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL3Bhc2NhbGVjaGVtYW5uLmNvbS9hbmd1bGFyLXRvb2xib3gvcmVzb3VyY2VzL2xpY2Vuc2VcclxuICovXHJcblxyXG5pbXBvcnQgeyBIdHRwSGVhZGVycywgSHR0cFN0YXR1c0NvZGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uL2h0dHBcIjtcclxuaW1wb3J0IHsgSHR0cE1vY2tFcnJvciwgSHR0cFJlc3BvbnNlTW9jayB9IGZyb20gXCIuLi8uLi8uLi8uLi9tb2RlbFwiO1xyXG5pbXBvcnQgeyBIdHRwSGVhZGVyc1V0aWwgfSBmcm9tIFwiLi9odHRwLWhlYWRlcnMudXRpbFwiO1xyXG5pbXBvcnQgeyBIVFRQX01PQ0tfTUFYX0RFTEFZIH0gZnJvbSBcIi4vaHR0cC1tb2NrLW1heC1kZWxheVwiO1xyXG5pbXBvcnQgeyBIdHRwU3RhdHVzVGV4dEZpbmRlciB9IGZyb20gXCIuL2h0dHAtc3RhdHVzLXRleHQtZmluZGVyXCI7XHJcbmltcG9ydCB7IEVNUFRZX1NUUklORyB9IGZyb20gXCIuLi8uLi8uLi8uLi91dGlsXCI7XHJcblxyXG4vKipcclxuICogQSBzdGF0ZWZ1bGwgYnVpbGRlciBmb3IgY3JlYXRpbmcgbmV3IGBIdHRwUmVzcG9uc2VNb2NrYCBpbnN0YW5jZXMuXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgSHR0cFJlc3BvbnNlTW9ja0J1aWxkZXIge1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQHByaXZhdGVcclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBfcmVzcG9uc2U6IEh0dHBSZXNwb25zZU1vY2sgPSB7XHJcbiAgICAgICAgdXJsOiBudWxsLFxyXG4gICAgICAgIGJvZHk6IG51bGwsXHJcbiAgICAgICAgc3RhdHVzOiBIdHRwU3RhdHVzQ29kZS5PayxcclxuICAgICAgICBzdGF0dXNUZXh0OiBFTVBUWV9TVFJJTkcsXHJcbiAgICAgICAgZXJyb3I6IG51bGwsXHJcbiAgICAgICAgZGVsYXk6IDBcclxuICAgIH07XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTZXRzIHRoZSBib2R5IHByb3BlcnR5IG9mIHRoZSBuZXcgYEh0dHBSZXNwb25zZU1vY2tgIGluc3RhbmNlIHdpdGggdGhlIHNwZWNpZmllZCBgYm9keWAgdmFsdWUuXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSBib2R5IFRoZSB2YWx1ZSB1c2VkIHRvIHNldCB0aGUgYm9keSBwcm9wZXJ0eSBvZiB0aGUgbmV3IGBIdHRwUmVzcG9uc2VNb2NrYCBpbnN0YW5jZS5cclxuICAgICAqIFxyXG4gICAgICogQHJldHVybnMgQSByZWZlcmVuY2UgdG8gdGhpcyBgSHR0cFJlc3BvbnNlTW9ja0J1aWxkZXJgIGluc3RhbmNlLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgYm9keShib2R5OiBhbnkpOiBIdHRwUmVzcG9uc2VNb2NrQnVpbGRlciB7XHJcbiAgICAgICAgdGhpcy5fcmVzcG9uc2UuYm9keSA9IGJvZHk7XHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTZXRzIHRoZSBoZWFkZXJzIHByb3BlcnR5IG9mIHRoZSBuZXcgYEh0dHBSZXNwb25zZU1vY2tgIGluc3RhbmNlIHdpdGggdGhlIHNwZWNpZmllZCBgaGVhZGVyc2AgdmFsdWUuXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSBoZWFkZXJzIFRoZSB2YWx1ZSB1c2VkIHRvIHNldCB0aGUgYGhlYWRlcnNgIHByb3BlcnR5IG9mIHRoZSBuZXcgYEh0dHBSZXNwb25zZU1vY2tgIGluc3RhbmNlLlxyXG4gICAgICogXHJcbiAgICAgKiBAcmV0dXJucyBBIHJlZmVyZW5jZSB0byB0aGlzIGBIdHRwUmVzcG9uc2VNb2NrQnVpbGRlcmAgaW5zdGFuY2UuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBoZWFkZXJzKGhlYWRlcnM6IEh0dHBIZWFkZXJzKTogSHR0cFJlc3BvbnNlTW9ja0J1aWxkZXIge1xyXG4gICAgICAgIHRoaXMuX3Jlc3BvbnNlLmhlYWRlcnMgPSBoZWFkZXJzO1xyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQWRkIHRoZSBsaXN0IG9mIEhUVFAgaGVhZGVycyBnZW5lcmF0ZWQgYnkgdGhlIGBIdHRwSGVhZGVyc1V0aWwuY3JlYXRlRGVmYXVsdFJlcXVlc3RIZWFkZXJzKClgXHJcbiAgICAgKiB0byB0aGUgbW9jayByZXNwb25zZS5cclxuICAgICAqIFxyXG4gICAgICogQHJldHVybnMgQSByZWZlcmVuY2UgdG8gdGhpcyBgSHR0cFJlc3BvbnNlTW9ja0J1aWxkZXJgIGluc3RhbmNlLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZGVmYXVsdEhlYWRlcnMoKTogSHR0cFJlc3BvbnNlTW9ja0J1aWxkZXIge1xyXG4gICAgICAgIGNvbnN0IGRlZmF1bHRIZWFkZXJzOiBIdHRwSGVhZGVycyA9IEh0dHBIZWFkZXJzVXRpbC5jcmVhdGVEZWZhdWx0UmVxdWVzdEhlYWRlcnMoKTtcclxuICAgICAgICBsZXQgaGVhZGVyczogSHR0cEhlYWRlcnMgfCB1bmRlZmluZWQgPSB0aGlzLl9yZXNwb25zZS5oZWFkZXJzO1xyXG4gICAgICAgIGlmIChoZWFkZXJzKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGtleXM6IHN0cmluZ1tdID0gZGVmYXVsdEhlYWRlcnMua2V5cygpO1xyXG4gICAgICAgICAgICBrZXlzLmZvckVhY2goa2V5PT4gaGVhZGVycz8uYXBwZW5kKGtleSwgZGVmYXVsdEhlYWRlcnMuZ2V0KGtleSkgYXMgYW55KSlcclxuICAgICAgICB9IGVsc2UgaGVhZGVycyA9IGRlZmF1bHRIZWFkZXJzO1xyXG4gICAgICAgIHRoaXMuX3Jlc3BvbnNlLmhlYWRlcnMgPSBoZWFkZXJzO1xyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2V0cyB0aGUgYHN0YXR1c2AgcHJvcGVydHkgb2YgdGhlIG5ldyBgSHR0cFJlc3BvbnNlTW9ja2AgaW5zdGFuY2Ugd2l0aCB0aGUgc3BlY2lmaWVkIGBzdGF0dXNgIHZhbHVlLlxyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0gc3RhdHVzIFRoZSB2YWx1ZSB1c2VkIHRvIHNldCB0aGUgYHN0YXR1c2AgcHJvcGVydHkgb2YgdGhlIG5ldyBgSHR0cFJlc3BvbnNlTW9ja2AgaW5zdGFuY2UuXHJcbiAgICAgKiBcclxuICAgICAqIEByZXR1cm5zIEEgcmVmZXJlbmNlIHRvIHRoaXMgYEh0dHBSZXNwb25zZU1vY2tCdWlsZGVyYCBpbnN0YW5jZS5cclxuICAgICAqL1xyXG4gICAgcHVibGljIHN0YXR1cyhzdGF0dXM6IG51bWJlcik6IEh0dHBSZXNwb25zZU1vY2tCdWlsZGVyIHtcclxuICAgICAgICB0aGlzLl9yZXNwb25zZS5zdGF0dXMgPSBzdGF0dXM7XHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTZXRzIHRoZSBgdXJsYCBwcm9wZXJ0eSBvZiB0aGUgbmV3IGBIdHRwUmVzcG9uc2VNb2NrYCBpbnN0YW5jZSB3aXRoIHRoZSBzcGVjaWZpZWQgYHVybGAgdmFsdWUuXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSB1cmwgVGhlIHZhbHVlIHVzZWQgdG8gc2V0IHRoZSBgdXJsYCBwcm9wZXJ0eSBvZiB0aGUgbmV3IGBIdHRwUmVzcG9uc2VNb2NrYCBpbnN0YW5jZS5cclxuICAgICAqIFxyXG4gICAgICogQHJldHVybnMgQSByZWZlcmVuY2UgdG8gdGhpcyBgSHR0cFJlc3BvbnNlTW9ja0J1aWxkZXJgIGluc3RhbmNlLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgdXJsKHVybDogc3RyaW5nIHwgbnVsbCk6IEh0dHBSZXNwb25zZU1vY2tCdWlsZGVyIHtcclxuICAgICAgICB0aGlzLl9yZXNwb25zZS51cmwgPSB1cmw7XHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTZXRzIHRoZSBgZGVsYXlgIHByb3BlcnR5IG9mIHRoZSBuZXcgYEh0dHBSZXNwb25zZU1vY2tgIGluc3RhbmNlIHdpdGggdGhlIHNwZWNpZmllZCBgdGltZXJgIGR1cmF0aW9uLlxyXG4gICAgICogTWF4aW11bSB2YWx1ZSBpcyBgMTAwMDBgIG1pbGlzZWNvbmRzICgxMCBzZWNvbmRzKS5cclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIHRpbWVyIFRoZSB2YWx1ZSB1c2VkIHRvIHNldCB0aGUgYGRlbGF5YCBwcm9wZXJ0eSBvZiB0aGUgbmV3IGBIdHRwUmVzcG9uc2VNb2NrYCBpbnN0YW5jZS5cclxuICAgICAqIFxyXG4gICAgICogQHJldHVybnMgQSByZWZlcmVuY2UgdG8gdGhpcyBgSHR0cFJlc3BvbnNlTW9ja0J1aWxkZXJgIGluc3RhbmNlLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZGVsYXkodGltZXI/OiBudW1iZXIpOiBIdHRwUmVzcG9uc2VNb2NrQnVpbGRlcjtcclxuICAgIFxyXG4gICAgLyoqXHJcbiAgICAgKiBTZXRzIHRoZSBgZGVsYXlgIHByb3BlcnR5IG9mIHRoZSBuZXcgYEh0dHBSZXNwb25zZU1vY2tgIGluc3RhbmNlIHdpdGggdGhlIHNwZWNpZmllZCBgdGltZXJgIGR1cmF0aW9uLlxyXG4gICAgICogTWF4aW11bSB2YWx1ZSBpcyBgMTAwMDBgIG1pbGlzZWNvbmRzICgxMCBzZWNvbmRzKS5cclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIHRpbWVyIFRoZSB2YWx1ZSB1c2VkIHRvIHNldCB0aGUgYGRlbGF5YCBwcm9wZXJ0eSBvZiB0aGUgbmV3IGBIdHRwUmVzcG9uc2VNb2NrYCBpbnN0YW5jZS5cclxuICAgICAqIFxyXG4gICAgICogQHJldHVybnMgQSByZWZlcmVuY2UgdG8gdGhpcyBgSHR0cFJlc3BvbnNlTW9ja0J1aWxkZXJgIGluc3RhbmNlLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZGVsYXkobWluPzogbnVtYmVyLCBtYXg/OiBudW1iZXIpOiBIdHRwUmVzcG9uc2VNb2NrQnVpbGRlcjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEBwcml2YXRlXHJcbiAgICAgKiBPdmVybG9hZCBpbXBsZW1lbnRhdGlvbiBcclxuICAgICAqL1xyXG4gICAgcHVibGljIGRlbGF5KC4uLmFyZzogYW55KTogSHR0cFJlc3BvbnNlTW9ja0J1aWxkZXIge1xyXG4gICAgICAgIGlmIChhcmcubGVuZ3RoIDw9IDEpIHtcclxuICAgICAgICAgICAgbGV0IHRpbWVyOiBudW1iZXIgPSBhcmdbMF0gfHwgTmFOO1xyXG4gICAgICAgICAgICBpZiAoaXNOYU4odGltZXIpKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9yZXNwb25zZS5kZWxheSA9IEhUVFBfTU9DS19NQVhfREVMQVkgLSBNYXRoLnJhbmRvbSgpICogSFRUUF9NT0NLX01BWF9ERUxBWTtcclxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmICh0aW1lciA+IEhUVFBfTU9DS19NQVhfREVMQVkpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuX3Jlc3BvbnNlLmRlbGF5ID0gSFRUUF9NT0NLX01BWF9ERUxBWTtcclxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmICh0aW1lciA8IDApIHRpbWVyID0gMDtcclxuICAgICAgICAgICAgdGhpcy5fcmVzcG9uc2UuZGVsYXkgPSB0aW1lcjtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGxldCBtaW46IG51bWJlciA9IGFyZ1swXSwgbWF4OiBudW1iZXIgPSBhcmdbMV07XHJcbiAgICAgICAgaWYgKG1heCA+IEhUVFBfTU9DS19NQVhfREVMQVkpIG1heCA9IEhUVFBfTU9DS19NQVhfREVMQVk7XHJcbiAgICAgICAgaWYgKG1pbiA8IDAgfHwgbWluID4gbWF4KSBtaW4gPSAwO1xyXG4gICAgICAgIHRoaXMuX3Jlc3BvbnNlLmRlbGF5ID0gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogKG1heCAtIG1pbikgKyBtaW4pO1xyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmV0dXJucyBhIG5ldyBgSHR0cFJlc3BvbnNlTW9ja2AgaW5zdGFuY2UsIGJ1aWx0IGZyb20gdGhlIHByb3BlcnRpZXMgc3BlY2lmaWVkIHdpdGggdGhlXHJcbiAgICAgKiBgSHR0cFJlc3BvbnNlTW9ja0J1aWxkZXJgIG1ldGhvZHMuXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSBlcnJvciBBbiBvcHRpb25hbCB2YWx1ZSB1c2VkIHRvIHNldCB0aGUgYGVycm9yYCBwcm9wZXJ0eSBvZiB0aGUgbmV3IGBIdHRwUmVzcG9uc2VNb2NrYCBpbnN0YW5jZS5cclxuICAgICAqICAgICAgICAgICAgICBUaGUgYGVycm9yYCBwYXJhbWV0ZXIgdmFsdWVzIHRha2UgcHJlY2VkZW5jZSBvdmVyIGFsbCBvdGhlciBwcm9wZXJ0aWVzIG9mIHRoZSBgSHR0cFJlc3BvbnNlTW9ja2BcclxuICAgICAqICAgICAgICAgICAgICBpbnN0YW5jZS5cclxuICAgICAqIEByZXR1cm5zIEEgbmV3IGBIdHRwUmVzcG9uc2VNb2NrYCBpbnN0YW5jZS5cclxuICAgICAqL1xyXG4gICAgcHVibGljIHJlc3BvbnNlKGVycm9yOiBIdHRwTW9ja0Vycm9yIHwgbnVsbCA9IG51bGwpOiBIdHRwUmVzcG9uc2VNb2NrIHtcclxuICAgICAgICB0aGlzLl9yZXNwb25zZS5lcnJvciA9IGVycm9yO1xyXG4gICAgICAgIHRoaXMuX3Jlc3BvbnNlLnN0YXR1c1RleHQgPSBIdHRwU3RhdHVzVGV4dEZpbmRlci5nZXRTdGF0dXNUZXh0KHRoaXMuX3Jlc3BvbnNlLnN0YXR1cyk7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Jlc3BvbnNlO1xyXG4gICAgfVxyXG59XHJcblxyXG4vKipcclxuICogQSB1dGlsaXR5IGZ1bmN0aW9uIHVzZWQgdG8gY3JlYXRlIG5ldyBcImNoYWluYWJsZVwiIGBIdHRwUmVzcG9uc2VNb2NrQnVpbGRlcmAgaW5zdGFuY2VzLlxyXG4gKiBcclxuICogQHJldHVybnMgQSBuZXcgYEh0dHBSZXNwb25zZU1vY2tCdWlsZGVyYCBpbnN0YW5jZS5cclxuICovXHJcbmV4cG9ydCBjb25zdCBodHRwUmVzcG9uc2VNb2NrOigpPT4gSHR0cFJlc3BvbnNlTW9ja0J1aWxkZXIgPSAoKT0+IG5ldyBIdHRwUmVzcG9uc2VNb2NrQnVpbGRlcigpOyJdfQ==
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright Pascal ECHEMANN. All Rights Reserved.
|
|
4
|
+
*
|
|
5
|
+
* Use of this source code is governed by an MIT-style license that can be found in
|
|
6
|
+
* the LICENSE file at https://pascalechemann.com/angular-toolbox/resources/license
|
|
7
|
+
*/
|
|
8
|
+
import { HttpStatusCode } from "@angular/common/http";
|
|
9
|
+
import { HttpStatusText } from "./http-status-text.enum";
|
|
10
|
+
/**
|
|
11
|
+
* @private
|
|
12
|
+
* A utility class that helps to retreive a status text depending on its status code.
|
|
13
|
+
*/
|
|
14
|
+
export class HttpStatusTextFinder {
|
|
15
|
+
/**
|
|
16
|
+
* @private
|
|
17
|
+
* Retreives and return a status text depending on its status code.
|
|
18
|
+
*
|
|
19
|
+
* @param code The status code for which to find the status text.
|
|
20
|
+
* @returns A `HttpStatusText` constant.
|
|
21
|
+
*/
|
|
22
|
+
static getStatusText(code) {
|
|
23
|
+
if (code === HttpStatusCode.Continue)
|
|
24
|
+
return HttpStatusText.CONTINUE;
|
|
25
|
+
if (code === HttpStatusCode.SwitchingProtocols)
|
|
26
|
+
return HttpStatusText.SWITCHING_PROTOCOLS;
|
|
27
|
+
if (code === HttpStatusCode.Processing)
|
|
28
|
+
return HttpStatusText.PROCESSING;
|
|
29
|
+
if (code === HttpStatusCode.EarlyHints)
|
|
30
|
+
return HttpStatusText.EARLY_HINTS;
|
|
31
|
+
if (code === HttpStatusCode.Ok)
|
|
32
|
+
return HttpStatusText.OK;
|
|
33
|
+
if (code === HttpStatusCode.Created)
|
|
34
|
+
return HttpStatusText.CREATED;
|
|
35
|
+
if (code === HttpStatusCode.Accepted)
|
|
36
|
+
return HttpStatusText.ACCEPTED;
|
|
37
|
+
if (code === HttpStatusCode.NonAuthoritativeInformation)
|
|
38
|
+
return HttpStatusText.NON_AUTHORITATIVE_INFORMATION;
|
|
39
|
+
if (code === HttpStatusCode.NoContent)
|
|
40
|
+
return HttpStatusText.NO_CONTENT;
|
|
41
|
+
if (code === HttpStatusCode.ResetContent)
|
|
42
|
+
return HttpStatusText.RESET_CONTENT;
|
|
43
|
+
if (code === HttpStatusCode.PartialContent)
|
|
44
|
+
return HttpStatusText.PARTIAL_CONTENT;
|
|
45
|
+
if (code === HttpStatusCode.MultiStatus)
|
|
46
|
+
return HttpStatusText.MULTI_STATUS;
|
|
47
|
+
if (code === HttpStatusCode.AlreadyReported)
|
|
48
|
+
return HttpStatusText.ALREADY_REPORTED;
|
|
49
|
+
if (code === HttpStatusCode.ImUsed)
|
|
50
|
+
return HttpStatusText.IM_USED;
|
|
51
|
+
if (code === HttpStatusCode.MultipleChoices)
|
|
52
|
+
return HttpStatusText.MULTIPLE_CHOICES;
|
|
53
|
+
if (code === HttpStatusCode.MovedPermanently)
|
|
54
|
+
return HttpStatusText.MOVED_PERMANENTLY;
|
|
55
|
+
if (code === HttpStatusCode.Found)
|
|
56
|
+
return HttpStatusText.FOUND;
|
|
57
|
+
if (code === HttpStatusCode.SeeOther)
|
|
58
|
+
return HttpStatusText.SEE_OTHER;
|
|
59
|
+
if (code === HttpStatusCode.NotModified)
|
|
60
|
+
return HttpStatusText.NOT_MODIFIED;
|
|
61
|
+
if (code === HttpStatusCode.TemporaryRedirect)
|
|
62
|
+
return HttpStatusText.TEMPORARY_REDIRECT;
|
|
63
|
+
if (code === HttpStatusCode.PermanentRedirect)
|
|
64
|
+
return HttpStatusText.PERMANENT_REDIRECT;
|
|
65
|
+
if (code === HttpStatusCode.BadRequest)
|
|
66
|
+
return HttpStatusText.BAD_REQUEST;
|
|
67
|
+
if (code === HttpStatusCode.Unauthorized)
|
|
68
|
+
return HttpStatusText.UNAUTHORIZED;
|
|
69
|
+
if (code === HttpStatusCode.PaymentRequired)
|
|
70
|
+
return HttpStatusText.PAYMENT_REQUIRED;
|
|
71
|
+
if (code === HttpStatusCode.Forbidden)
|
|
72
|
+
return HttpStatusText.FORBIDDEN;
|
|
73
|
+
if (code === HttpStatusCode.NotFound)
|
|
74
|
+
return HttpStatusText.NOT_FOUND;
|
|
75
|
+
if (code === HttpStatusCode.MethodNotAllowed)
|
|
76
|
+
return HttpStatusText.METHOD_NOT_ALLOWED;
|
|
77
|
+
if (code === HttpStatusCode.NotAcceptable)
|
|
78
|
+
return HttpStatusText.NOT_ACCEPTABLE;
|
|
79
|
+
if (code === HttpStatusCode.ProxyAuthenticationRequired)
|
|
80
|
+
return HttpStatusText.PROXY_AUTHENTICATION_REQUIRED;
|
|
81
|
+
if (code === HttpStatusCode.RequestTimeout)
|
|
82
|
+
return HttpStatusText.REQUEST_TIMEOUT;
|
|
83
|
+
if (code === HttpStatusCode.Conflict)
|
|
84
|
+
return HttpStatusText.CONFLICT;
|
|
85
|
+
if (code === HttpStatusCode.Gone)
|
|
86
|
+
return HttpStatusText.GONE;
|
|
87
|
+
if (code === HttpStatusCode.LengthRequired)
|
|
88
|
+
return HttpStatusText.LENGTH_REQUIRED;
|
|
89
|
+
if (code === HttpStatusCode.PreconditionFailed)
|
|
90
|
+
return HttpStatusText.PRECONDITION_FAILED;
|
|
91
|
+
if (code === HttpStatusCode.PayloadTooLarge)
|
|
92
|
+
return HttpStatusText.PAYLOAD_TOO_LARGE;
|
|
93
|
+
if (code === HttpStatusCode.UriTooLong)
|
|
94
|
+
return HttpStatusText.URI_TOO_LONG;
|
|
95
|
+
if (code === HttpStatusCode.UnsupportedMediaType)
|
|
96
|
+
return HttpStatusText.UNSUPPORTED_MEDIA_TYPE;
|
|
97
|
+
if (code === HttpStatusCode.RangeNotSatisfiable)
|
|
98
|
+
return HttpStatusText.RANGE_NOT_SATISFIABLE;
|
|
99
|
+
if (code === HttpStatusCode.ExpectationFailed)
|
|
100
|
+
return HttpStatusText.EXPECTATION_FAILED;
|
|
101
|
+
if (code === HttpStatusCode.ImATeapot)
|
|
102
|
+
return HttpStatusText.I_M_A_TEAPOT;
|
|
103
|
+
if (code === HttpStatusCode.MisdirectedRequest)
|
|
104
|
+
return HttpStatusText.MISDIRECTED_REQUEST;
|
|
105
|
+
if (code === HttpStatusCode.UnprocessableEntity)
|
|
106
|
+
return HttpStatusText.UNPROCESSABLE_ENTITY;
|
|
107
|
+
if (code === HttpStatusCode.Locked)
|
|
108
|
+
return HttpStatusText.LOCKED;
|
|
109
|
+
if (code === HttpStatusCode.FailedDependency)
|
|
110
|
+
return HttpStatusText.FAILED_DEPENDENCY;
|
|
111
|
+
if (code === HttpStatusCode.UpgradeRequired)
|
|
112
|
+
return HttpStatusText.UPGRADE_REQUIRED;
|
|
113
|
+
if (code === HttpStatusCode.PreconditionRequired)
|
|
114
|
+
return HttpStatusText.PRECONDITION_REQUIRED;
|
|
115
|
+
if (code === HttpStatusCode.TooManyRequests)
|
|
116
|
+
return HttpStatusText.TOO_MANY_REQUESTS;
|
|
117
|
+
if (code === HttpStatusCode.RequestHeaderFieldsTooLarge)
|
|
118
|
+
return HttpStatusText.REQUEST_HEADER_FIELDS_TOO_LARGE;
|
|
119
|
+
if (code === HttpStatusCode.UnavailableForLegalReasons)
|
|
120
|
+
return HttpStatusText.UNAVAILABLE_FOR_LEGAL_REASONS;
|
|
121
|
+
if (code === HttpStatusCode.InternalServerError)
|
|
122
|
+
return HttpStatusText.INTERNAL_SERVER_ERROR;
|
|
123
|
+
if (code === HttpStatusCode.NotImplemented)
|
|
124
|
+
return HttpStatusText.NOT_IMPLEMENTED;
|
|
125
|
+
if (code === HttpStatusCode.BadGateway)
|
|
126
|
+
return HttpStatusText.BAD_GATEWAY;
|
|
127
|
+
if (code === HttpStatusCode.ServiceUnavailable)
|
|
128
|
+
return HttpStatusText.SERVICE_UNAVAILABLE;
|
|
129
|
+
if (code === HttpStatusCode.GatewayTimeout)
|
|
130
|
+
return HttpStatusText.GATEWAY_TIMEOUT;
|
|
131
|
+
if (code === HttpStatusCode.HttpVersionNotSupported)
|
|
132
|
+
return HttpStatusText.HTTP_VERSION_NOT_SUPPORTED;
|
|
133
|
+
if (code === HttpStatusCode.VariantAlsoNegotiates)
|
|
134
|
+
return HttpStatusText.VARIANT_ALSO_NEGOTIATES;
|
|
135
|
+
if (code === HttpStatusCode.InsufficientStorage)
|
|
136
|
+
return HttpStatusText.INSUFFICIENT_STORAGE;
|
|
137
|
+
if (code === HttpStatusCode.LoopDetected)
|
|
138
|
+
return HttpStatusText.LOOP_DETECTED;
|
|
139
|
+
if (code === HttpStatusCode.NotExtended)
|
|
140
|
+
return HttpStatusText.NOT_EXTENDED;
|
|
141
|
+
if (code === HttpStatusCode.NetworkAuthenticationRequired)
|
|
142
|
+
return HttpStatusText.NETWORK_AUTHENTICATION_REQUIRED;
|
|
143
|
+
return HttpStatusText.INTERNAL_SERVER_ERROR;
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC1zdGF0dXMtdGV4dC1maW5kZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXRvb2xib3gvc3JjL2xpYi9mcmFtZXdvcmsvbW9jay9odHRwL3V0aWwvaHR0cC1zdGF0dXMtdGV4dC1maW5kZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBRUgsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUV6RDs7O0dBR0c7QUFDSCxNQUFNLE9BQU8sb0JBQW9CO0lBRTdCOzs7Ozs7T0FNRztJQUNJLE1BQU0sQ0FBQyxhQUFhLENBQUMsSUFBb0I7UUFDNUMsSUFBRyxJQUFJLEtBQUssY0FBYyxDQUFDLFFBQVE7WUFBRSxPQUFPLGNBQWMsQ0FBQyxRQUFRLENBQUM7UUFDcEUsSUFBRyxJQUFJLEtBQUssY0FBYyxDQUFDLGtCQUFrQjtZQUFFLE9BQU8sY0FBYyxDQUFDLG1CQUFtQixDQUFDO1FBQ3pGLElBQUcsSUFBSSxLQUFLLGNBQWMsQ0FBQyxVQUFVO1lBQUUsT0FBTyxjQUFjLENBQUMsVUFBVSxDQUFDO1FBQ3hFLElBQUcsSUFBSSxLQUFLLGNBQWMsQ0FBQyxVQUFVO1lBQUUsT0FBTyxjQUFjLENBQUMsV0FBVyxDQUFDO1FBQ3pFLElBQUcsSUFBSSxLQUFLLGNBQWMsQ0FBQyxFQUFFO1lBQUUsT0FBTyxjQUFjLENBQUMsRUFBRSxDQUFDO1FBQ3hELElBQUcsSUFBSSxLQUFLLGNBQWMsQ0FBQyxPQUFPO1lBQUUsT0FBTyxjQUFjLENBQUMsT0FBTyxDQUFDO1FBQ2xFLElBQUcsSUFBSSxLQUFLLGNBQWMsQ0FBQyxRQUFRO1lBQUUsT0FBTyxjQUFjLENBQUMsUUFBUSxDQUFDO1FBQ3BFLElBQUcsSUFBSSxLQUFLLGNBQWMsQ0FBQywyQkFBMkI7WUFB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O0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogQGxpY2Vuc2VcclxuICogQ29weXJpZ2h0IFBhc2NhbCBFQ0hFTUFOTi4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cclxuICpcclxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUgZm91bmQgaW5cclxuICogdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL3Bhc2NhbGVjaGVtYW5uLmNvbS9hbmd1bGFyLXRvb2xib3gvcmVzb3VyY2VzL2xpY2Vuc2VcclxuICovXHJcblxyXG5pbXBvcnQgeyBIdHRwU3RhdHVzQ29kZSB9IGZyb20gXCJAYW5ndWxhci9jb21tb24vaHR0cFwiO1xyXG5pbXBvcnQgeyBIdHRwU3RhdHVzVGV4dCB9IGZyb20gXCIuL2h0dHAtc3RhdHVzLXRleHQuZW51bVwiO1xyXG5cclxuLyoqXHJcbiAqIEBwcml2YXRlXHJcbiAqIEEgdXRpbGl0eSBjbGFzcyB0aGF0IGhlbHBzIHRvIHJldHJlaXZlIGEgc3RhdHVzIHRleHQgZGVwZW5kaW5nIG9uIGl0cyBzdGF0dXMgY29kZS5cclxuICovXHJcbmV4cG9ydCBjbGFzcyBIdHRwU3RhdHVzVGV4dEZpbmRlciB7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICogUmV0cmVpdmVzIGFuZCByZXR1cm4gYSBzdGF0dXMgdGV4dCBkZXBlbmRpbmcgb24gaXRzIHN0YXR1cyBjb2RlLlxyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0gY29kZSBUaGUgc3RhdHVzIGNvZGUgZm9yIHdoaWNoIHRvIGZpbmQgdGhlIHN0YXR1cyB0ZXh0LlxyXG4gICAgICogQHJldHVybnMgQSBgSHR0cFN0YXR1c1RleHRgIGNvbnN0YW50LlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgc3RhdGljIGdldFN0YXR1c1RleHQoY29kZTogSHR0cFN0YXR1c0NvZGUpOiBIdHRwU3RhdHVzVGV4dCB7XHJcbiAgICAgICAgaWYoY29kZSA9PT0gSHR0cFN0YXR1c0NvZGUuQ29udGludWUpIHJldHVybiBIdHRwU3RhdHVzVGV4dC5DT05USU5VRTtcclxuICAgICAgICBpZihjb2RlID09PSBIdHRwU3RhdHVzQ29kZS5Td2l0Y2hpbmdQcm90b2NvbHMpIHJldHVybiBIdHRwU3RhdHVzVGV4dC5TV0lUQ0hJTkdfUFJPVE9DT0xTO1xyXG4gICAgICAgIGlmKGNvZGUgPT09IEh0dHBTdGF0dXNDb2RlLlByb2Nlc3NpbmcpIHJldHVybiBIdHRwU3RhdHVzVGV4dC5QUk9DRVNTSU5HO1xyXG4gICAgICAgIGlmKGNvZGUgPT09IEh0dHBTdGF0dXNDb2RlLkVhcmx5SGludHMpIHJldHVybiBIdHRwU3RhdHVzVGV4dC5FQVJMWV9ISU5UUztcclxuICAgICAgICBpZihjb2RlID09PSBIdHRwU3RhdHVzQ29kZS5PaykgcmV0dXJuIEh0dHBTdGF0dXNUZXh0Lk9LO1xyXG4gICAgICAgIGlmKGNvZGUgPT09IEh0dHBTdGF0dXNDb2RlLkNyZWF0ZWQpIHJldHVybiBIdHRwU3RhdHVzVGV4dC5DUkVBVEVEO1xyXG4gICAgICAgIGlmKGNvZGUgPT09IEh0dHBTdGF0dXNDb2RlLkFjY2VwdGVkKSByZXR1cm4gSHR0cFN0YXR1c1RleHQuQUNDRVBURUQ7XHJcbiAgICAgICAgaWYoY29kZSA9PT0gSHR0cFN0YXR1c0NvZGUuTm9uQXV0aG9yaXRhdGl2ZUluZm9ybWF0aW9uKSByZXR1cm4gSHR0cFN0YXR1c1RleHQuTk9OX0FVVEhPUklUQVRJVkVfSU5GT1JNQVRJT047XHJcbiAgICAgICAgaWYoY29kZSA9PT0gSHR0cFN0YXR1c0NvZGUuTm9Db250ZW50KSByZXR1cm4gSHR0cFN0YXR1c1RleHQuTk9fQ09OVEVOVDtcclxuICAgICAgICBpZihjb2RlID09PSBIdHRwU3RhdHVzQ29kZS5SZXNldENvbnRlbnQpIHJldHVybiBIdHRwU3RhdHVzVGV4dC5SRVNFVF9DT05URU5UO1xyXG4gICAgICAgIGlmKGNvZGUgPT09IEh0dHBTdGF0dXNDb2RlLlBhcnRpYWxDb250ZW50KSByZXR1cm4gSHR0cFN0YXR1c1RleHQuUEFSVElBTF9DT05URU5UO1xyXG4gICAgICAgIGlmKGNvZGUgPT09IEh0dHBTdGF0dXNDb2RlLk11bHRpU3RhdHVzKSByZXR1cm4gSHR0cFN0YXR1c1RleHQuTVVMVElfU1RBVFVTO1xyXG4gICAgICAgIGlmKGNvZGUgPT09IEh0dHBTdGF0dXNDb2RlLkFscmVhZHlSZXBvcnRlZCkgcmV0dXJuIEh0dHBTdGF0dXNUZXh0LkFMUkVBRFlfUkVQT1JURUQ7XHJcbiAgICAgICAgaWYoY29kZSA9PT0gSHR0cFN0YXR1c0NvZGUuSW1Vc2VkKSByZXR1cm4gSHR0cFN0YXR1c1RleHQuSU1fVVNFRDtcclxuICAgICAgICBpZihjb2RlID09PSBIdHRwU3RhdHVzQ29kZS5NdWx0aXBsZUNob2ljZXMpIHJldHVybiBIdHRwU3RhdHVzVGV4dC5NVUxUSVBMRV9DSE9JQ0VTO1xyXG4gICAgICAgIGlmKGNvZGUgPT09IEh0dHBTdGF0dXNDb2RlLk1vdmVkUGVybWFuZW50bHkpIHJldHVybiBIdHRwU3RhdHVzVGV4dC5NT1ZFRF9QRVJNQU5FTlRMWTtcclxuICAgICAgICBpZihjb2RlID09PSBIdHRwU3RhdHVzQ29kZS5Gb3VuZCkgcmV0dXJuIEh0dHBTdGF0dXNUZXh0LkZPVU5EO1xyXG4gICAgICAgIGlmKGNvZGUgPT09IEh0dHBTdGF0dXNDb2RlLlNlZU90aGVyKSByZXR1cm4gSHR0cFN0YXR1c1RleHQuU0VFX09USEVSO1xyXG4gICAgICAgIGlmKGNvZGUgPT09IEh0dHBTdGF0dXNDb2RlLk5vdE1vZGlmaWVkKSByZXR1cm4gSHR0cFN0YXR1c1RleHQuTk9UX01PRElGSUVEO1xyXG4gICAgICAgIGlmKGNvZGUgPT09IEh0dHBTdGF0dXNDb2RlLlRlbXBvcmFyeVJlZGlyZWN0KSByZXR1cm4gSHR0cFN0YXR1c1RleHQuVEVNUE9SQVJZX1JFRElSRUNUO1xyXG4gICAgICAgIGlmKGNvZGUgPT09IEh0dHBTdGF0dXNDb2RlLlBlcm1hbmVudFJlZGlyZWN0KSByZXR1cm4gSHR0cFN0YXR1c1RleHQuUEVSTUFORU5UX1JFRElSRUNUO1xyXG4gICAgICAgIGlmKGNvZGUgPT09IEh0dHBTdGF0dXNDb2RlLkJhZFJlcXVlc3QpIHJldHVybiBIdHRwU3RhdHVzVGV4dC5CQURfUkVRVUVTVDtcclxuICAgICAgICBpZihjb2RlID09PSBIdHRwU3RhdHVzQ29kZS5VbmF1dGhvcml6ZWQpIHJldHVybiBIdHRwU3RhdHVzVGV4dC5VTkFVVEhPUklaRUQ7XHJcbiAgICAgICAgaWYoY29kZSA9PT0gSHR0cFN0YXR1c0NvZGUuUGF5bWVudFJlcXVpcmVkKSByZXR1cm4gSHR0cFN0YXR1c1RleHQuUEFZTUVOVF9SRVFVSVJFRDtcclxuICAgICAgICBpZihjb2RlID09PSBIdHRwU3RhdHVzQ29kZS5Gb3JiaWRkZW4pIHJldHVybiBIdHRwU3RhdHVzVGV4dC5GT1JCSURERU47XHJcbiAgICAgICAgaWYoY29kZSA9PT0gSHR0cFN0YXR1c0NvZGUuTm90Rm91bmQpIHJldHVybiBIdHRwU3RhdHVzVGV4dC5OT1RfRk9VTkQ7XHJcbiAgICAgICAgaWYoY29kZSA9PT0gSHR0cFN0YXR1c0NvZGUuTWV0aG9kTm90QWxsb3dlZCkgcmV0dXJuIEh0dHBTdGF0dXNUZXh0Lk1FVEhPRF9OT1RfQUxMT1dFRDtcclxuICAgICAgICBpZihjb2RlID09PSBIdHRwU3RhdHVzQ29kZS5Ob3RBY2NlcHRhYmxlKSByZXR1cm4gSHR0cFN0YXR1c1RleHQuTk9UX0FDQ0VQVEFCTEU7XHJcbiAgICAgICAgaWYoY29kZSA9PT0gSHR0cFN0YXR1c0NvZGUuUHJveHlBdXRoZW50aWNhdGlvblJlcXVpcmVkKSByZXR1cm4gSHR0cFN0YXR1c1RleHQuUFJPWFlfQVVUSEVOVElDQVRJT05fUkVRVUlSRUQ7XHJcbiAgICAgICAgaWYoY29kZSA9PT0gSHR0cFN0YXR1c0NvZGUuUmVxdWVzdFRpbWVvdXQpIHJldHVybiBIdHRwU3RhdHVzVGV4dC5SRVFVRVNUX1RJTUVPVVQ7XHJcbiAgICAgICAgaWYoY29kZSA9PT0gSHR0cFN0YXR1c0NvZGUuQ29uZmxpY3QpIHJldHVybiBIdHRwU3RhdHVzVGV4dC5DT05GTElDVDtcclxuICAgICAgICBpZihjb2RlID09PSBIdHRwU3RhdHVzQ29kZS5Hb25lKSByZXR1cm4gSHR0cFN0YXR1c1RleHQuR09ORTtcclxuICAgICAgICBpZihjb2RlID09PSBIdHRwU3RhdHVzQ29kZS5MZW5ndGhSZXF1aXJlZCkgcmV0dXJuIEh0dHBTdGF0dXNUZXh0LkxFTkdUSF9SRVFVSVJFRDtcclxuICAgICAgICBpZihjb2RlID09PSBIdHRwU3RhdHVzQ29kZS5QcmVjb25kaXRpb25GYWlsZWQpIHJldHVybiBIdHRwU3RhdHVzVGV4dC5QUkVDT05ESVRJT05fRkFJTEVEO1xyXG4gICAgICAgIGlmKGNvZGUgPT09IEh0dHBTdGF0dXNDb2RlLlBheWxvYWRUb29MYXJnZSkgcmV0dXJuIEh0dHBTdGF0dXNUZXh0LlBBWUxPQURfVE9PX0xBUkdFO1xyXG4gICAgICAgIGlmKGNvZGUgPT09IEh0dHBTdGF0dXNDb2RlLlVyaVRvb0xvbmcpIHJldHVybiBIdHRwU3RhdHVzVGV4dC5VUklfVE9PX0xPTkc7XHJcbiAgICAgICAgaWYoY29kZSA9PT0gSHR0cFN0YXR1c0NvZGUuVW5zdXBwb3J0ZWRNZWRpYVR5cGUpIHJldHVybiBIdHRwU3RhdHVzVGV4dC5VTlNVUFBPUlRFRF9NRURJQV9UWVBFO1xyXG4gICAgICAgIGlmKGNvZGUgPT09IEh0dHBTdGF0dXNDb2RlLlJhbmdlTm90U2F0aXNmaWFibGUpIHJldHVybiBIdHRwU3RhdHVzVGV4dC5SQU5HRV9OT1RfU0FUSVNGSUFCTEU7XHJcbiAgICAgICAgaWYoY29kZSA9PT0gSHR0cFN0YXR1c0NvZGUuRXhwZWN0YXRpb25GYWlsZWQpIHJldHVybiBIdHRwU3RhdHVzVGV4dC5FWFBFQ1RBVElPTl9GQUlMRUQ7XHJcbiAgICAgICAgaWYoY29kZSA9PT0gSHR0cFN0YXR1c0NvZGUuSW1BVGVhcG90KSByZXR1cm4gSHR0cFN0YXR1c1RleHQuSV9NX0FfVEVBUE9UO1xyXG4gICAgICAgIGlmKGNvZGUgPT09IEh0dHBTdGF0dXNDb2RlLk1pc2RpcmVjdGVkUmVxdWVzdCkgcmV0dXJuIEh0dHBTdGF0dXNUZXh0Lk1JU0RJUkVDVEVEX1JFUVVFU1Q7XHJcbiAgICAgICAgaWYoY29kZSA9PT0gSHR0cFN0YXR1c0NvZGUuVW5wcm9jZXNzYWJsZUVudGl0eSkgcmV0dXJuIEh0dHBTdGF0dXNUZXh0LlVOUFJPQ0VTU0FCTEVfRU5USVRZO1xyXG4gICAgICAgIGlmKGNvZGUgPT09IEh0dHBTdGF0dXNDb2RlLkxvY2tlZCkgcmV0dXJuIEh0dHBTdGF0dXNUZXh0LkxPQ0tFRDtcclxuICAgICAgICBpZihjb2RlID09PSBIdHRwU3RhdHVzQ29kZS5GYWlsZWREZXBlbmRlbmN5KSByZXR1cm4gSHR0cFN0YXR1c1RleHQuRkFJTEVEX0RFUEVOREVOQ1k7XHJcbiAgICAgICAgaWYoY29kZSA9PT0gSHR0cFN0YXR1c0NvZGUuVXBncmFkZVJlcXVpcmVkKSByZXR1cm4gSHR0cFN0YXR1c1RleHQuVVBHUkFERV9SRVFVSVJFRDtcclxuICAgICAgICBpZihjb2RlID09PSBIdHRwU3RhdHVzQ29kZS5QcmVjb25kaXRpb25SZXF1aXJlZCkgcmV0dXJuIEh0dHBTdGF0dXNUZXh0LlBSRUNPTkRJVElPTl9SRVFVSVJFRDtcclxuICAgICAgICBpZihjb2RlID09PSBIdHRwU3RhdHVzQ29kZS5Ub29NYW55UmVxdWVzdHMpIHJldHVybiBIdHRwU3RhdHVzVGV4dC5UT09fTUFOWV9SRVFVRVNUUztcclxuICAgICAgICBpZihjb2RlID09PSBIdHRwU3RhdHVzQ29kZS5SZXF1ZXN0SGVhZGVyRmllbGRzVG9vTGFyZ2UpIHJldHVybiBIdHRwU3RhdHVzVGV4dC5SRVFVRVNUX0hFQURFUl9GSUVMRFNfVE9PX0xBUkdFO1xyXG4gICAgICAgIGlmKGNvZGUgPT09IEh0dHBTdGF0dXNDb2RlLlVuYXZhaWxhYmxlRm9yTGVnYWxSZWFzb25zKSByZXR1cm4gSHR0cFN0YXR1c1RleHQuVU5BVkFJTEFCTEVfRk9SX0xFR0FMX1JFQVNPTlM7XHJcbiAgICAgICAgaWYoY29kZSA9PT0gSHR0cFN0YXR1c0NvZGUuSW50ZXJuYWxTZXJ2ZXJFcnJvcikgcmV0dXJuIEh0dHBTdGF0dXNUZXh0LklOVEVSTkFMX1NFUlZFUl9FUlJPUjtcclxuICAgICAgICBpZihjb2RlID09PSBIdHRwU3RhdHVzQ29kZS5Ob3RJbXBsZW1lbnRlZCkgcmV0dXJuIEh0dHBTdGF0dXNUZXh0Lk5PVF9JTVBMRU1FTlRFRDtcclxuICAgICAgICBpZihjb2RlID09PSBIdHRwU3RhdHVzQ29kZS5CYWRHYXRld2F5KSByZXR1cm4gSHR0cFN0YXR1c1RleHQuQkFEX0dBVEVXQVk7XHJcbiAgICAgICAgaWYoY29kZSA9PT0gSHR0cFN0YXR1c0NvZGUuU2VydmljZVVuYXZhaWxhYmxlKSByZXR1cm4gSHR0cFN0YXR1c1RleHQuU0VSVklDRV9VTkFWQUlMQUJMRTtcclxuICAgICAgICBpZihjb2RlID09PSBIdHRwU3RhdHVzQ29kZS5HYXRld2F5VGltZW91dCkgcmV0dXJuIEh0dHBTdGF0dXNUZXh0LkdBVEVXQVlfVElNRU9VVDtcclxuICAgICAgICBpZihjb2RlID09PSBIdHRwU3RhdHVzQ29kZS5IdHRwVmVyc2lvbk5vdFN1cHBvcnRlZCkgcmV0dXJuIEh0dHBTdGF0dXNUZXh0LkhUVFBfVkVSU0lPTl9OT1RfU1VQUE9SVEVEO1xyXG4gICAgICAgIGlmKGNvZGUgPT09IEh0dHBTdGF0dXNDb2RlLlZhcmlhbnRBbHNvTmVnb3RpYXRlcykgcmV0dXJuIEh0dHBTdGF0dXNUZXh0LlZBUklBTlRfQUxTT19ORUdPVElBVEVTO1xyXG4gICAgICAgIGlmKGNvZGUgPT09IEh0dHBTdGF0dXNDb2RlLkluc3VmZmljaWVudFN0b3JhZ2UpIHJldHVybiBIdHRwU3RhdHVzVGV4dC5JTlNVRkZJQ0lFTlRfU1RPUkFHRTtcclxuICAgICAgICBpZihjb2RlID09PSBIdHRwU3RhdHVzQ29kZS5Mb29wRGV0ZWN0ZWQpIHJldHVybiBIdHRwU3RhdHVzVGV4dC5MT09QX0RFVEVDVEVEO1xyXG4gICAgICAgIGlmKGNvZGUgPT09IEh0dHBTdGF0dXNDb2RlLk5vdEV4dGVuZGVkKSByZXR1cm4gSHR0cFN0YXR1c1RleHQuTk9UX0VYVEVOREVEO1xyXG4gICAgICAgIGlmKGNvZGUgPT09IEh0dHBTdGF0dXNDb2RlLk5ldHdvcmtBdXRoZW50aWNhdGlvblJlcXVpcmVkKSByZXR1cm4gSHR0cFN0YXR1c1RleHQuTkVUV09SS19BVVRIRU5USUNBVElPTl9SRVFVSVJFRDtcclxuICAgICAgICByZXR1cm4gSHR0cFN0YXR1c1RleHQuSU5URVJOQUxfU0VSVkVSX0VSUk9SO1xyXG4gICAgfVxyXG59Il19
|