@ethlete/cdk 3.1.3 → 3.2.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/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # @ethlete/cdk
2
2
 
3
+ ## 3.2.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [`4d9bc49f`](https://github.com/ethlete-io/ethdk/commit/4d9bc49f66ea5fc668d83b02577c6b231faa5551) Thanks [@TomTomB](https://github.com/TomTomB)! - Enhance default messages inside query error directive
8
+
3
9
  ## 3.1.3
4
10
 
5
11
  ### Patch Changes
@@ -2,6 +2,92 @@ import { Directive, InjectionToken, Input, computed, signal } from '@angular/cor
2
2
  import { isClassValidatorError, isSymfonyFormViolationListError, shouldRetryRequest, } from '@ethlete/query';
3
3
  import * as i0 from "@angular/core";
4
4
  export const QUERY_ERROR_TOKEN = new InjectionToken('QUERY_ERROR_DIRECTIVE_TOKEN');
5
+ export const convertHttpStatusCodeToMessage = (statusCode) => {
6
+ switch (statusCode) {
7
+ case 400 /* HttpStatusCode.BadRequest */:
8
+ return 'Sorry, we could not process your request. Please try again later.';
9
+ case 401 /* HttpStatusCode.Unauthorized */:
10
+ return 'You are not authorized to perform this action. Please log in to continue.';
11
+ case 402 /* HttpStatusCode.PaymentRequired */:
12
+ return 'Payment is required to complete this action.';
13
+ case 403 /* HttpStatusCode.Forbidden */:
14
+ return 'You do not have permission to perform this action.';
15
+ case 404 /* HttpStatusCode.NotFound */:
16
+ return 'The requested resource was not found.';
17
+ case 405 /* HttpStatusCode.MethodNotAllowed */:
18
+ return 'The requested method is not allowed for this resource.';
19
+ case 406 /* HttpStatusCode.NotAcceptable */:
20
+ return 'The requested resource is not capable of generating a response matching the list of acceptable values.';
21
+ case 407 /* HttpStatusCode.ProxyAuthenticationRequired */:
22
+ return 'Proxy authentication is required to complete this action.';
23
+ case 408 /* HttpStatusCode.RequestTimeout */:
24
+ return 'The server timed out waiting for the request.';
25
+ case 409 /* HttpStatusCode.Conflict */:
26
+ return 'The request conflicts with the current state of the resource.';
27
+ case 410 /* HttpStatusCode.Gone */:
28
+ return 'The requested resource is no longer available and will not be available again.';
29
+ case 411 /* HttpStatusCode.LengthRequired */:
30
+ return 'The request did not specify the length of its content, which is required by the requested resource.';
31
+ case 412 /* HttpStatusCode.PreconditionFailed */:
32
+ return 'The server does not meet one of the preconditions that the requester put on the request.';
33
+ case 413 /* HttpStatusCode.PayloadTooLarge */:
34
+ return 'The request is larger than the server is willing or able to process.';
35
+ case 414 /* HttpStatusCode.UriTooLong */:
36
+ return 'The URL provided was too long for the server to process.';
37
+ case 415 /* HttpStatusCode.UnsupportedMediaType */:
38
+ return 'The request entity has a media type which the server or resource does not support.';
39
+ case 416 /* HttpStatusCode.RangeNotSatisfiable */:
40
+ return 'The client has asked for a portion of the file, but the server cannot supply that portion.';
41
+ case 417 /* HttpStatusCode.ExpectationFailed */:
42
+ return 'The server cannot meet the requirements of the Expect request-header field.';
43
+ case 418 /* HttpStatusCode.ImATeapot */:
44
+ return 'I am a teapot.';
45
+ case 421 /* HttpStatusCode.MisdirectedRequest */:
46
+ return 'The request was directed at a server that is not able to produce a response.';
47
+ case 422 /* HttpStatusCode.UnprocessableEntity */:
48
+ return 'The request was well-formed but was unable to be followed due to semantic errors.';
49
+ case 423 /* HttpStatusCode.Locked */:
50
+ return 'The resource that is being accessed is locked.';
51
+ case 424 /* HttpStatusCode.FailedDependency */:
52
+ return 'The request failed due to failure of a previous request.';
53
+ case 425 /* HttpStatusCode.TooEarly */:
54
+ return 'The server is unwilling to process the request because the user has not been authenticated.';
55
+ case 426 /* HttpStatusCode.UpgradeRequired */:
56
+ return 'The client should switch to a different protocol such as TLS/1.0, given in the Upgrade header field.';
57
+ case 428 /* HttpStatusCode.PreconditionRequired */:
58
+ return 'The origin server requires the request to be conditional.';
59
+ case 429 /* HttpStatusCode.TooManyRequests */:
60
+ return 'You have sent too many requests in a given amount of time. Please try again later.';
61
+ case 431 /* HttpStatusCode.RequestHeaderFieldsTooLarge */:
62
+ return 'The server is unwilling to process the request because its header fields are too large.';
63
+ case 451 /* HttpStatusCode.UnavailableForLegalReasons */:
64
+ return 'The resource is unavailable due to a legal demand.';
65
+ case 500 /* HttpStatusCode.InternalServerError */:
66
+ return 'Something went wrong on our end. Please try again later.';
67
+ case 501 /* HttpStatusCode.NotImplemented */:
68
+ return 'The server does not support the functionality required to fulfill the request.';
69
+ case 502 /* HttpStatusCode.BadGateway */:
70
+ return 'Something went wrong on our end. Please try again later.';
71
+ case 503 /* HttpStatusCode.ServiceUnavailable */:
72
+ return 'The server is currently unable to handle the request due to a temporary overload or maintenance of the server.';
73
+ case 504 /* HttpStatusCode.GatewayTimeout */:
74
+ return 'The server, while acting as a gateway or proxy, did not receive a timely response from the upstream server specified by the URL or some other auxiliary server it needed to access in attempting to complete the request.';
75
+ case 505 /* HttpStatusCode.HttpVersionNotSupported */:
76
+ return 'The server does not support the HTTP protocol version used in the request.';
77
+ case 506 /* HttpStatusCode.VariantAlsoNegotiates */:
78
+ return 'The server has an internal configuration error: the chosen variant resource is configured to engage in transparent content negotiation itself, and is therefore not a proper end point in the negotiation process.';
79
+ case 507 /* HttpStatusCode.InsufficientStorage */:
80
+ return 'The method could not be performed on the resource because the server is unable to store the representation needed to successfully complete the request.';
81
+ case 508 /* HttpStatusCode.LoopDetected */:
82
+ return 'The server detected an infinite loop while processing the request.';
83
+ case 510 /* HttpStatusCode.NotExtended */:
84
+ return 'Further extensions to the request are required for the server to fulfill it.';
85
+ case 511 /* HttpStatusCode.NetworkAuthenticationRequired */:
86
+ return 'You need to authenticate to gain network access.';
87
+ default:
88
+ return 'Something went wrong. Check your internet connection and try again later.';
89
+ }
90
+ };
5
91
  export class QueryErrorDirective {
6
92
  constructor() {
7
93
  this._error = signal(null);
@@ -19,7 +105,7 @@ export class QueryErrorDirective {
19
105
  title: this.error.statusText,
20
106
  };
21
107
  const detail = this.error.detail;
22
- const defaultErrorMessage = `Something went wrong (Code: ${this.error.status})`;
108
+ const defaultErrorMessage = `${convertHttpStatusCodeToMessage(this.error.status)} (Code: ${this.error.status})`;
23
109
  if (isClassValidatorError(detail)) {
24
110
  for (const error of detail.message) {
25
111
  errorList.items.push({ message: error });
@@ -33,6 +119,10 @@ export class QueryErrorDirective {
33
119
  else if (typeof detail === 'object' && !!detail && 'message' in detail && typeof detail.message === 'string') {
34
120
  errorList.items.push({ message: detail.message });
35
121
  }
122
+ else if (typeof detail === 'object' && !!detail && 'detail' in detail && typeof detail.detail === 'string') {
123
+ // Symfony error response (during development)
124
+ errorList.items.push({ message: detail.detail });
125
+ }
36
126
  else {
37
127
  errorList.items.push({ message: defaultErrorMessage });
38
128
  }
@@ -73,4 +163,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.8", ngImpor
73
163
  type: Input,
74
164
  args: [{ required: true }]
75
165
  }] } });
76
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktZXJyb3IuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jZGsvc3JjL2xpYi9jb21wb25lbnRzL3F1ZXJ5LWVycm9yL2RpcmVjdGl2ZXMvcXVlcnktZXJyb3IvcXVlcnktZXJyb3IuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsY0FBYyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25GLE9BQU8sRUFJTCxxQkFBcUIsRUFDckIsK0JBQStCLEVBQy9CLGtCQUFrQixHQUNuQixNQUFNLGdCQUFnQixDQUFDOztBQUd4QixNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLGNBQWMsQ0FBc0IsNkJBQTZCLENBQUMsQ0FBQztBQVl4RyxNQUFNLE9BQU8sbUJBQW1CO0lBVmhDO1FBa0JtQixXQUFNLEdBQUcsTUFBTSxDQUFzQixJQUFJLENBQUMsQ0FBQztRQUc1RCxVQUFLLEdBQXlDLElBQUksQ0FBQztRQUUxQyxjQUFTLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtZQUNqQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRTtnQkFDZixPQUFPLElBQUksQ0FBQzthQUNiO1lBRUQsTUFBTSxXQUFXLEdBQUcsa0JBQWtCLENBQUMsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFFakcsTUFBTSxTQUFTLEdBQW1CO2dCQUNoQyxZQUFZLEVBQUUsV0FBVyxDQUFDLEtBQUs7Z0JBQy9CLFVBQVUsRUFBRSxXQUFXLENBQUMsS0FBSyxJQUFJLENBQUM7Z0JBQ2xDLE1BQU0sRUFBRSxLQUFLO2dCQUNiLEtBQUssRUFBRSxFQUFFO2dCQUNULEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVU7YUFDN0IsQ0FBQztZQUVGLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDO1lBQ2pDLE1BQU0sbUJBQW1CLEdBQUcsK0JBQStCLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUM7WUFFaEYsSUFBSSxxQkFBcUIsQ0FBQyxNQUFNLENBQUMsRUFBRTtnQkFDakMsS0FBSyxNQUFNLEtBQUssSUFBSSxNQUFNLENBQUMsT0FBTyxFQUFFO29CQUNsQyxTQUFTLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO2lCQUMxQzthQUNGO2lCQUFNLElBQUksK0JBQStCLENBQUMsTUFBTSxDQUFDLEVBQUU7Z0JBQ2xELEtBQUssTUFBTSxTQUFTLElBQUksTUFBTSxDQUFDLFVBQVUsRUFBRTtvQkFDekMsU0FBUyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxPQUFPLEVBQUUsU0FBUyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7aUJBQ3REO2FBQ0Y7aUJBQU0sSUFBSSxPQUFPLE1BQU0sS0FBSyxRQUFRLElBQUksQ0FBQyxDQUFDLE1BQU0sSUFBSSxTQUFTLElBQUksTUFBTSxJQUFJLE9BQU8sTUFBTSxDQUFDLE9BQU8sS0FBSyxRQUFRLEVBQUU7Z0JBQzlHLFNBQVMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsT0FBTyxFQUFFLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO2FBQ25EO2lCQUFNO2dCQUNMLFNBQVMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLENBQUMsQ0FBQzthQUN4RDtZQUVELFNBQVMsQ0FBQyxNQUFNLEdBQUcsU0FBUyxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1lBRTlDLE9BQU8sU0FBUyxDQUFDO1FBQ25CLENBQUMsQ0FBQyxDQUFDO0tBQ0o7SUFoREMsSUFDSSxLQUFLO1FBQ1AsT0FBTyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUNELElBQUksS0FBSyxDQUFDLEtBQW1CO1FBQzNCLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3pCLENBQUM7OEdBUFUsbUJBQW1CO2tHQUFuQixtQkFBbUIsNkVBUG5CO1lBQ1Q7Z0JBQ0UsT0FBTyxFQUFFLGlCQUFpQjtnQkFDMUIsV0FBVyxFQUFFLG1CQUFtQjthQUNqQztTQUNGOzsyRkFFVSxtQkFBbUI7a0JBVi9CLFNBQVM7bUJBQUM7b0JBQ1QsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRSxjQUFjO29CQUN4QixTQUFTLEVBQUU7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxxQkFBcUI7eUJBQ2pDO3FCQUNGO2lCQUNGOzhCQUdLLEtBQUs7c0JBRFIsS0FBSzt1QkFBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7Z0JBVXpCLEtBQUs7c0JBREosS0FBSzt1QkFBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEluamVjdGlvblRva2VuLCBJbnB1dCwgY29tcHV0ZWQsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQW55UXVlcnksXG4gIEFueVF1ZXJ5Q29sbGVjdGlvbixcbiAgUmVxdWVzdEVycm9yLFxuICBpc0NsYXNzVmFsaWRhdG9yRXJyb3IsXG4gIGlzU3ltZm9ueUZvcm1WaW9sYXRpb25MaXN0RXJyb3IsXG4gIHNob3VsZFJldHJ5UmVxdWVzdCxcbn0gZnJvbSAnQGV0aGxldGUvcXVlcnknO1xuaW1wb3J0IHsgUXVlcnlFcnJvckxpc3QgfSBmcm9tICcuLi8uLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBRVUVSWV9FUlJPUl9UT0tFTiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxRdWVyeUVycm9yRGlyZWN0aXZlPignUVVFUllfRVJST1JfRElSRUNUSVZFX1RPS0VOJyk7XG5cbkBEaXJlY3RpdmUoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBleHBvcnRBczogJ2V0UXVlcnlFcnJvcicsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IFFVRVJZX0VSUk9SX1RPS0VOLFxuICAgICAgdXNlRXhpc3Rpbmc6IFF1ZXJ5RXJyb3JEaXJlY3RpdmUsXG4gICAgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgUXVlcnlFcnJvckRpcmVjdGl2ZSB7XG4gIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pXG4gIGdldCBlcnJvcigpOiBSZXF1ZXN0RXJyb3IgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5fZXJyb3IoKTtcbiAgfVxuICBzZXQgZXJyb3IodmFsdWU6IFJlcXVlc3RFcnJvcikge1xuICAgIHRoaXMuX2Vycm9yLnNldCh2YWx1ZSk7XG4gIH1cbiAgcHJpdmF0ZSByZWFkb25seSBfZXJyb3IgPSBzaWduYWw8UmVxdWVzdEVycm9yIHwgbnVsbD4obnVsbCk7XG5cbiAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSlcbiAgcXVlcnk6IEFueVF1ZXJ5IHwgQW55UXVlcnlDb2xsZWN0aW9uIHwgbnVsbCA9IG51bGw7XG5cbiAgcmVhZG9ubHkgZXJyb3JMaXN0ID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGlmICghdGhpcy5lcnJvcikge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgY29uc3QgcmV0cnlSZXN1bHQgPSBzaG91bGRSZXRyeVJlcXVlc3QoeyBlcnJvcjogdGhpcy5lcnJvciwgY3VycmVudFJldHJ5Q291bnQ6IDAsIGhlYWRlcnM6IHt9IH0pO1xuXG4gICAgY29uc3QgZXJyb3JMaXN0OiBRdWVyeUVycm9yTGlzdCA9IHtcbiAgICAgIGNhbkJlUmV0cmllZDogcmV0cnlSZXN1bHQucmV0cnksXG4gICAgICByZXRyeURlbGF5OiByZXRyeVJlc3VsdC5kZWxheSA/PyAwLFxuICAgICAgaXNMaXN0OiBmYWxzZSxcbiAgICAgIGl0ZW1zOiBbXSxcbiAgICAgIHRpdGxlOiB0aGlzLmVycm9yLnN0YXR1c1RleHQsXG4gICAgfTtcblxuICAgIGNvbnN0IGRldGFpbCA9IHRoaXMuZXJyb3IuZGV0YWlsO1xuICAgIGNvbnN0IGRlZmF1bHRFcnJvck1lc3NhZ2UgPSBgU29tZXRoaW5nIHdlbnQgd3JvbmcgKENvZGU6ICR7dGhpcy5lcnJvci5zdGF0dXN9KWA7XG5cbiAgICBpZiAoaXNDbGFzc1ZhbGlkYXRvckVycm9yKGRldGFpbCkpIHtcbiAgICAgIGZvciAoY29uc3QgZXJyb3Igb2YgZGV0YWlsLm1lc3NhZ2UpIHtcbiAgICAgICAgZXJyb3JMaXN0Lml0ZW1zLnB1c2goeyBtZXNzYWdlOiBlcnJvciB9KTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKGlzU3ltZm9ueUZvcm1WaW9sYXRpb25MaXN0RXJyb3IoZGV0YWlsKSkge1xuICAgICAgZm9yIChjb25zdCB2aW9sYXRpb24gb2YgZGV0YWlsLnZpb2xhdGlvbnMpIHtcbiAgICAgICAgZXJyb3JMaXN0Lml0ZW1zLnB1c2goeyBtZXNzYWdlOiB2aW9sYXRpb24ubWVzc2FnZSB9KTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHR5cGVvZiBkZXRhaWwgPT09ICdvYmplY3QnICYmICEhZGV0YWlsICYmICdtZXNzYWdlJyBpbiBkZXRhaWwgJiYgdHlwZW9mIGRldGFpbC5tZXNzYWdlID09PSAnc3RyaW5nJykge1xuICAgICAgZXJyb3JMaXN0Lml0ZW1zLnB1c2goeyBtZXNzYWdlOiBkZXRhaWwubWVzc2FnZSB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgZXJyb3JMaXN0Lml0ZW1zLnB1c2goeyBtZXNzYWdlOiBkZWZhdWx0RXJyb3JNZXNzYWdlIH0pO1xuICAgIH1cblxuICAgIGVycm9yTGlzdC5pc0xpc3QgPSBlcnJvckxpc3QuaXRlbXMubGVuZ3RoID4gMTtcblxuICAgIHJldHVybiBlcnJvckxpc3Q7XG4gIH0pO1xufVxuIl19
166
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktZXJyb3IuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jZGsvc3JjL2xpYi9jb21wb25lbnRzL3F1ZXJ5LWVycm9yL2RpcmVjdGl2ZXMvcXVlcnktZXJyb3IvcXVlcnktZXJyb3IuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsY0FBYyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25GLE9BQU8sRUFLTCxxQkFBcUIsRUFDckIsK0JBQStCLEVBQy9CLGtCQUFrQixHQUNuQixNQUFNLGdCQUFnQixDQUFDOztBQUd4QixNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLGNBQWMsQ0FBc0IsNkJBQTZCLENBQUMsQ0FBQztBQUV4RyxNQUFNLENBQUMsTUFBTSw4QkFBOEIsR0FBRyxDQUFDLFVBQTBCLEVBQUUsRUFBRTtJQUMzRSxRQUFRLFVBQVUsRUFBRTtRQUNsQjtZQUNFLE9BQU8sbUVBQW1FLENBQUM7UUFDN0U7WUFDRSxPQUFPLDJFQUEyRSxDQUFDO1FBQ3JGO1lBQ0UsT0FBTyw4Q0FBOEMsQ0FBQztRQUN4RDtZQUNFLE9BQU8sb0RBQW9ELENBQUM7UUFDOUQ7WUFDRSxPQUFPLHVDQUF1QyxDQUFDO1FBQ2pEO1lBQ0UsT0FBTyx3REFBd0QsQ0FBQztRQUNsRTtZQUNFLE9BQU8sd0dBQXdHLENBQUM7UUFDbEg7WUFDRSxPQUFPLDJEQUEyRCxDQUFDO1FBQ3JFO1lBQ0UsT0FBTywrQ0FBK0MsQ0FBQztRQUN6RDtZQUNFLE9BQU8sK0RBQStELENBQUM7UUFDekU7WUFDRSxPQUFPLGdGQUFnRixDQUFDO1FBQzFGO1lBQ0UsT0FBTyxxR0FBcUcsQ0FBQztRQUMvRztZQUNFLE9BQU8sMEZBQTBGLENBQUM7UUFDcEc7WUFDRSxPQUFPLHNFQUFzRSxDQUFD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O29CQUNoQixRQUFRLEVBQUUsY0FBYztvQkFDeEIsU0FBUyxFQUFFO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcscUJBQXFCO3lCQUNqQztxQkFDRjtpQkFDRjs4QkFHSyxLQUFLO3NCQURSLEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO2dCQVV6QixLQUFLO3NCQURKLEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBJbmplY3Rpb25Ub2tlbiwgSW5wdXQsIGNvbXB1dGVkLCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEFueVF1ZXJ5LFxuICBBbnlRdWVyeUNvbGxlY3Rpb24sXG4gIEh0dHBTdGF0dXNDb2RlLFxuICBSZXF1ZXN0RXJyb3IsXG4gIGlzQ2xhc3NWYWxpZGF0b3JFcnJvcixcbiAgaXNTeW1mb255Rm9ybVZpb2xhdGlvbkxpc3RFcnJvcixcbiAgc2hvdWxkUmV0cnlSZXF1ZXN0LFxufSBmcm9tICdAZXRobGV0ZS9xdWVyeSc7XG5pbXBvcnQgeyBRdWVyeUVycm9yTGlzdCB9IGZyb20gJy4uLy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IFFVRVJZX0VSUk9SX1RPS0VOID0gbmV3IEluamVjdGlvblRva2VuPFF1ZXJ5RXJyb3JEaXJlY3RpdmU+KCdRVUVSWV9FUlJPUl9ESVJFQ1RJVkVfVE9LRU4nKTtcblxuZXhwb3J0IGNvbnN0IGNvbnZlcnRIdHRwU3RhdHVzQ29kZVRvTWVzc2FnZSA9IChzdGF0dXNDb2RlOiBIdHRwU3RhdHVzQ29kZSkgPT4ge1xuICBzd2l0Y2ggKHN0YXR1c0NvZGUpIHtcbiAgICBjYXNlIEh0dHBTdGF0dXNDb2RlLkJhZFJlcXVlc3Q6XG4gICAgICByZXR1cm4gJ1NvcnJ5LCB3ZSBjb3VsZCBub3QgcHJvY2VzcyB5b3VyIHJlcXVlc3QuIFBsZWFzZSB0cnkgYWdhaW4gbGF0ZXIuJztcbiAgICBjYXNlIEh0dHBTdGF0dXNDb2RlLlVuYXV0aG9yaXplZDpcbiAgICAgIHJldHVybiAnWW91IGFyZSBub3QgYXV0aG9yaXplZCB0byBwZXJmb3JtIHRoaXMgYWN0aW9uLiBQbGVhc2UgbG9nIGluIHRvIGNvbnRpbnVlLic7XG4gICAgY2FzZSBIdHRwU3RhdHVzQ29kZS5QYXltZW50UmVxdWlyZWQ6XG4gICAgICByZXR1cm4gJ1BheW1lbnQgaXMgcmVxdWlyZWQgdG8gY29tcGxldGUgdGhpcyBhY3Rpb24uJztcbiAgICBjYXNlIEh0dHBTdGF0dXNDb2RlLkZvcmJpZGRlbjpcbiAgICAgIHJldHVybiAnWW91IGRvIG5vdCBoYXZlIHBlcm1pc3Npb24gdG8gcGVyZm9ybSB0aGlzIGFjdGlvbi4nO1xuICAgIGNhc2UgSHR0cFN0YXR1c0NvZGUuTm90Rm91bmQ6XG4gICAgICByZXR1cm4gJ1RoZSByZXF1ZXN0ZWQgcmVzb3VyY2Ugd2FzIG5vdCBmb3VuZC4nO1xuICAgIGNhc2UgSHR0cFN0YXR1c0NvZGUuTWV0aG9kTm90QWxsb3dlZDpcbiAgICAgIHJldHVybiAnVGhlIHJlcXVlc3RlZCBtZXRob2QgaXMgbm90IGFsbG93ZWQgZm9yIHRoaXMgcmVzb3VyY2UuJztcbiAgICBjYXNlIEh0dHBTdGF0dXNDb2RlLk5vdEFjY2VwdGFibGU6XG4gICAgICByZXR1cm4gJ1RoZSByZXF1ZXN0ZWQgcmVzb3VyY2UgaXMgbm90IGNhcGFibGUgb2YgZ2VuZXJhdGluZyBhIHJlc3BvbnNlIG1hdGNoaW5nIHRoZSBsaXN0IG9mIGFjY2VwdGFibGUgdmFsdWVzLic7XG4gICAgY2FzZSBIdHRwU3RhdHVzQ29kZS5Qcm94eUF1dGhlbnRpY2F0aW9uUmVxdWlyZWQ6XG4gICAgICByZXR1cm4gJ1Byb3h5IGF1dGhlbnRpY2F0aW9uIGlzIHJlcXVpcmVkIHRvIGNvbXBsZXRlIHRoaXMgYWN0aW9uLic7XG4gICAgY2FzZSBIdHRwU3RhdHVzQ29kZS5SZXF1ZXN0VGltZW91dDpcbiAgICAgIHJldHVybiAnVGhlIHNlcnZlciB0aW1lZCBvdXQgd2FpdGluZyBmb3IgdGhlIHJlcXVlc3QuJztcbiAgICBjYXNlIEh0dHBTdGF0dXNDb2RlLkNvbmZsaWN0OlxuICAgICAgcmV0dXJuICdUaGUgcmVxdWVzdCBjb25mbGljdHMgd2l0aCB0aGUgY3VycmVudCBzdGF0ZSBvZiB0aGUgcmVzb3VyY2UuJztcbiAgICBjYXNlIEh0dHBTdGF0dXNDb2RlLkdvbmU6XG4gICAgICByZXR1cm4gJ1RoZSByZXF1ZXN0ZWQgcmVzb3VyY2UgaXMgbm8gbG9uZ2VyIGF2YWlsYWJsZSBhbmQgd2lsbCBub3QgYmUgYXZhaWxhYmxlIGFnYWluLic7XG4gICAgY2FzZSBIdHRwU3RhdHVzQ29kZS5MZW5ndGhSZXF1aXJlZDpcbiAgICAgIHJldHVybiAnVGhlIHJlcXVlc3QgZGlkIG5vdCBzcGVjaWZ5IHRoZSBsZW5ndGggb2YgaXRzIGNvbnRlbnQsIHdoaWNoIGlzIHJlcXVpcmVkIGJ5IHRoZSByZXF1ZXN0ZWQgcmVzb3VyY2UuJztcbiAgICBjYXNlIEh0dHBTdGF0dXNDb2RlLlByZWNvbmRpdGlvbkZhaWxlZDpcbiAgICAgIHJldHVybiAnVGhlIHNlcnZlciBkb2VzIG5vdCBtZWV0IG9uZSBvZiB0aGUgcHJlY29uZGl0aW9ucyB0aGF0IHRoZSByZXF1ZXN0ZXIgcHV0IG9uIHRoZSByZXF1ZXN0Lic7XG4gICAgY2FzZSBIdHRwU3RhdHVzQ29kZS5QYXlsb2FkVG9vTGFyZ2U6XG4gICAgICByZXR1cm4gJ1RoZSByZXF1ZXN0IGlzIGxhcmdlciB0aGFuIHRoZSBzZXJ2ZXIgaXMgd2lsbGluZyBvciBhYmxlIHRvIHByb2Nlc3MuJztcbiAgICBjYXNlIEh0dHBTdGF0dXNDb2RlLlVyaVRvb0xvbmc6XG4gICAgICByZXR1cm4gJ1RoZSBVUkwgcHJvdmlkZWQgd2FzIHRvbyBsb25nIGZvciB0aGUgc2VydmVyIHRvIHByb2Nlc3MuJztcbiAgICBjYXNlIEh0dHBTdGF0dXNDb2RlLlVuc3VwcG9ydGVkTWVkaWFUeXBlOlxuICAgICAgcmV0dXJuICdUaGUgcmVxdWVzdCBlbnRpdHkgaGFzIGEgbWVkaWEgdHlwZSB3aGljaCB0aGUgc2VydmVyIG9yIHJlc291cmNlIGRvZXMgbm90IHN1cHBvcnQuJztcbiAgICBjYXNlIEh0dHBTdGF0dXNDb2RlLlJhbmdlTm90U2F0aXNmaWFibGU6XG4gICAgICByZXR1cm4gJ1RoZSBjbGllbnQgaGFzIGFza2VkIGZvciBhIHBvcnRpb24gb2YgdGhlIGZpbGUsIGJ1dCB0aGUgc2VydmVyIGNhbm5vdCBzdXBwbHkgdGhhdCBwb3J0aW9uLic7XG4gICAgY2FzZSBIdHRwU3RhdHVzQ29kZS5FeHBlY3RhdGlvbkZhaWxlZDpcbiAgICAgIHJldHVybiAnVGhlIHNlcnZlciBjYW5ub3QgbWVldCB0aGUgcmVxdWlyZW1lbnRzIG9mIHRoZSBFeHBlY3QgcmVxdWVzdC1oZWFkZXIgZmllbGQuJztcbiAgICBjYXNlIEh0dHBTdGF0dXNDb2RlLkltQVRlYXBvdDpcbiAgICAgIHJldHVybiAnSSBhbSBhIHRlYXBvdC4nO1xuICAgIGNhc2UgSHR0cFN0YXR1c0NvZGUuTWlzZGlyZWN0ZWRSZXF1ZXN0OlxuICAgICAgcmV0dXJuICdUaGUgcmVxdWVzdCB3YXMgZGlyZWN0ZWQgYXQgYSBzZXJ2ZXIgdGhhdCBpcyBub3QgYWJsZSB0byBwcm9kdWNlIGEgcmVzcG9uc2UuJztcbiAgICBjYXNlIEh0dHBTdGF0dXNDb2RlLlVucHJvY2Vzc2FibGVFbnRpdHk6XG4gICAgICByZXR1cm4gJ1RoZSByZXF1ZXN0IHdhcyB3ZWxsLWZvcm1lZCBidXQgd2FzIHVuYWJsZSB0byBiZSBmb2xsb3dlZCBkdWUgdG8gc2VtYW50aWMgZXJyb3JzLic7XG4gICAgY2FzZSBIdHRwU3RhdHVzQ29kZS5Mb2NrZWQ6XG4gICAgICByZXR1cm4gJ1RoZSByZXNvdXJjZSB0aGF0IGlzIGJlaW5nIGFjY2Vzc2VkIGlzIGxvY2tlZC4nO1xuICAgIGNhc2UgSHR0cFN0YXR1c0NvZGUuRmFpbGVkRGVwZW5kZW5jeTpcbiAgICAgIHJldHVybiAnVGhlIHJlcXVlc3QgZmFpbGVkIGR1ZSB0byBmYWlsdXJlIG9mIGEgcHJldmlvdXMgcmVxdWVzdC4nO1xuICAgIGNhc2UgSHR0cFN0YXR1c0NvZGUuVG9vRWFybHk6XG4gICAgICByZXR1cm4gJ1RoZSBzZXJ2ZXIgaXMgdW53aWxsaW5nIHRvIHByb2Nlc3MgdGhlIHJlcXVlc3QgYmVjYXVzZSB0aGUgdXNlciBoYXMgbm90IGJlZW4gYXV0aGVudGljYXRlZC4nO1xuICAgIGNhc2UgSHR0cFN0YXR1c0NvZGUuVXBncmFkZVJlcXVpcmVkOlxuICAgICAgcmV0dXJuICdUaGUgY2xpZW50IHNob3VsZCBzd2l0Y2ggdG8gYSBkaWZmZXJlbnQgcHJvdG9jb2wgc3VjaCBhcyBUTFMvMS4wLCBnaXZlbiBpbiB0aGUgVXBncmFkZSBoZWFkZXIgZmllbGQuJztcbiAgICBjYXNlIEh0dHBTdGF0dXNDb2RlLlByZWNvbmRpdGlvblJlcXVpcmVkOlxuICAgICAgcmV0dXJuICdUaGUgb3JpZ2luIHNlcnZlciByZXF1aXJlcyB0aGUgcmVxdWVzdCB0byBiZSBjb25kaXRpb25hbC4nO1xuICAgIGNhc2UgSHR0cFN0YXR1c0NvZGUuVG9vTWFueVJlcXVlc3RzOlxuICAgICAgcmV0dXJuICdZb3UgaGF2ZSBzZW50IHRvbyBtYW55IHJlcXVlc3RzIGluIGEgZ2l2ZW4gYW1vdW50IG9mIHRpbWUuIFBsZWFzZSB0cnkgYWdhaW4gbGF0ZXIuJztcbiAgICBjYXNlIEh0dHBTdGF0dXNDb2RlLlJlcXVlc3RIZWFkZXJGaWVsZHNUb29MYXJnZTpcbiAgICAgIHJldHVybiAnVGhlIHNlcnZlciBpcyB1bndpbGxpbmcgdG8gcHJvY2VzcyB0aGUgcmVxdWVzdCBiZWNhdXNlIGl0cyBoZWFkZXIgZmllbGRzIGFyZSB0b28gbGFyZ2UuJztcbiAgICBjYXNlIEh0dHBTdGF0dXNDb2RlLlVuYXZhaWxhYmxlRm9yTGVnYWxSZWFzb25zOlxuICAgICAgcmV0dXJuICdUaGUgcmVzb3VyY2UgaXMgdW5hdmFpbGFibGUgZHVlIHRvIGEgbGVnYWwgZGVtYW5kLic7XG4gICAgY2FzZSBIdHRwU3RhdHVzQ29kZS5JbnRlcm5hbFNlcnZlckVycm9yOlxuICAgICAgcmV0dXJuICdTb21ldGhpbmcgd2VudCB3cm9uZyBvbiBvdXIgZW5kLiBQbGVhc2UgdHJ5IGFnYWluIGxhdGVyLic7XG4gICAgY2FzZSBIdHRwU3RhdHVzQ29kZS5Ob3RJbXBsZW1lbnRlZDpcbiAgICAgIHJldHVybiAnVGhlIHNlcnZlciBkb2VzIG5vdCBzdXBwb3J0IHRoZSBmdW5jdGlvbmFsaXR5IHJlcXVpcmVkIHRvIGZ1bGZpbGwgdGhlIHJlcXVlc3QuJztcbiAgICBjYXNlIEh0dHBTdGF0dXNDb2RlLkJhZEdhdGV3YXk6XG4gICAgICByZXR1cm4gJ1NvbWV0aGluZyB3ZW50IHdyb25nIG9uIG91ciBlbmQuIFBsZWFzZSB0cnkgYWdhaW4gbGF0ZXIuJztcbiAgICBjYXNlIEh0dHBTdGF0dXNDb2RlLlNlcnZpY2VVbmF2YWlsYWJsZTpcbiAgICAgIHJldHVybiAnVGhlIHNlcnZlciBpcyBjdXJyZW50bHkgdW5hYmxlIHRvIGhhbmRsZSB0aGUgcmVxdWVzdCBkdWUgdG8gYSB0ZW1wb3Jhcnkgb3ZlcmxvYWQgb3IgbWFpbnRlbmFuY2Ugb2YgdGhlIHNlcnZlci4nO1xuICAgIGNhc2UgSHR0cFN0YXR1c0NvZGUuR2F0ZXdheVRpbWVvdXQ6XG4gICAgICByZXR1cm4gJ1RoZSBzZXJ2ZXIsIHdoaWxlIGFjdGluZyBhcyBhIGdhdGV3YXkgb3IgcHJveHksIGRpZCBub3QgcmVjZWl2ZSBhIHRpbWVseSByZXNwb25zZSBmcm9tIHRoZSB1cHN0cmVhbSBzZXJ2ZXIgc3BlY2lmaWVkIGJ5IHRoZSBVUkwgb3Igc29tZSBvdGhlciBhdXhpbGlhcnkgc2VydmVyIGl0IG5lZWRlZCB0byBhY2Nlc3MgaW4gYXR0ZW1wdGluZyB0byBjb21wbGV0ZSB0aGUgcmVxdWVzdC4nO1xuICAgIGNhc2UgSHR0cFN0YXR1c0NvZGUuSHR0cFZlcnNpb25Ob3RTdXBwb3J0ZWQ6XG4gICAgICByZXR1cm4gJ1RoZSBzZXJ2ZXIgZG9lcyBub3Qgc3VwcG9ydCB0aGUgSFRUUCBwcm90b2NvbCB2ZXJzaW9uIHVzZWQgaW4gdGhlIHJlcXVlc3QuJztcbiAgICBjYXNlIEh0dHBTdGF0dXNDb2RlLlZhcmlhbnRBbHNvTmVnb3RpYXRlczpcbiAgICAgIHJldHVybiAnVGhlIHNlcnZlciBoYXMgYW4gaW50ZXJuYWwgY29uZmlndXJhdGlvbiBlcnJvcjogdGhlIGNob3NlbiB2YXJpYW50IHJlc291cmNlIGlzIGNvbmZpZ3VyZWQgdG8gZW5nYWdlIGluIHRyYW5zcGFyZW50IGNvbnRlbnQgbmVnb3RpYXRpb24gaXRzZWxmLCBhbmQgaXMgdGhlcmVmb3JlIG5vdCBhIHByb3BlciBlbmQgcG9pbnQgaW4gdGhlIG5lZ290aWF0aW9uIHByb2Nlc3MuJztcbiAgICBjYXNlIEh0dHBTdGF0dXNDb2RlLkluc3VmZmljaWVudFN0b3JhZ2U6XG4gICAgICByZXR1cm4gJ1RoZSBtZXRob2QgY291bGQgbm90IGJlIHBlcmZvcm1lZCBvbiB0aGUgcmVzb3VyY2UgYmVjYXVzZSB0aGUgc2VydmVyIGlzIHVuYWJsZSB0byBzdG9yZSB0aGUgcmVwcmVzZW50YXRpb24gbmVlZGVkIHRvIHN1Y2Nlc3NmdWxseSBjb21wbGV0ZSB0aGUgcmVxdWVzdC4nO1xuICAgIGNhc2UgSHR0cFN0YXR1c0NvZGUuTG9vcERldGVjdGVkOlxuICAgICAgcmV0dXJuICdUaGUgc2VydmVyIGRldGVjdGVkIGFuIGluZmluaXRlIGxvb3Agd2hpbGUgcHJvY2Vzc2luZyB0aGUgcmVxdWVzdC4nO1xuICAgIGNhc2UgSHR0cFN0YXR1c0NvZGUuTm90RXh0ZW5kZWQ6XG4gICAgICByZXR1cm4gJ0Z1cnRoZXIgZXh0ZW5zaW9ucyB0byB0aGUgcmVxdWVzdCBhcmUgcmVxdWlyZWQgZm9yIHRoZSBzZXJ2ZXIgdG8gZnVsZmlsbCBpdC4nO1xuICAgIGNhc2UgSHR0cFN0YXR1c0NvZGUuTmV0d29ya0F1dGhlbnRpY2F0aW9uUmVxdWlyZWQ6XG4gICAgICByZXR1cm4gJ1lvdSBuZWVkIHRvIGF1dGhlbnRpY2F0ZSB0byBnYWluIG5ldHdvcmsgYWNjZXNzLic7XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiAnU29tZXRoaW5nIHdlbnQgd3JvbmcuIENoZWNrIHlvdXIgaW50ZXJuZXQgY29ubmVjdGlvbiBhbmQgdHJ5IGFnYWluIGxhdGVyLic7XG4gIH1cbn07XG5cbkBEaXJlY3RpdmUoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBleHBvcnRBczogJ2V0UXVlcnlFcnJvcicsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IFFVRVJZX0VSUk9SX1RPS0VOLFxuICAgICAgdXNlRXhpc3Rpbmc6IFF1ZXJ5RXJyb3JEaXJlY3RpdmUsXG4gICAgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgUXVlcnlFcnJvckRpcmVjdGl2ZSB7XG4gIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pXG4gIGdldCBlcnJvcigpOiBSZXF1ZXN0RXJyb3IgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5fZXJyb3IoKTtcbiAgfVxuICBzZXQgZXJyb3IodmFsdWU6IFJlcXVlc3RFcnJvcikge1xuICAgIHRoaXMuX2Vycm9yLnNldCh2YWx1ZSk7XG4gIH1cbiAgcHJpdmF0ZSByZWFkb25seSBfZXJyb3IgPSBzaWduYWw8UmVxdWVzdEVycm9yIHwgbnVsbD4obnVsbCk7XG5cbiAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSlcbiAgcXVlcnk6IEFueVF1ZXJ5IHwgQW55UXVlcnlDb2xsZWN0aW9uIHwgbnVsbCA9IG51bGw7XG5cbiAgcmVhZG9ubHkgZXJyb3JMaXN0ID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGlmICghdGhpcy5lcnJvcikge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgY29uc3QgcmV0cnlSZXN1bHQgPSBzaG91bGRSZXRyeVJlcXVlc3QoeyBlcnJvcjogdGhpcy5lcnJvciwgY3VycmVudFJldHJ5Q291bnQ6IDAsIGhlYWRlcnM6IHt9IH0pO1xuXG4gICAgY29uc3QgZXJyb3JMaXN0OiBRdWVyeUVycm9yTGlzdCA9IHtcbiAgICAgIGNhbkJlUmV0cmllZDogcmV0cnlSZXN1bHQucmV0cnksXG4gICAgICByZXRyeURlbGF5OiByZXRyeVJlc3VsdC5kZWxheSA/PyAwLFxuICAgICAgaXNMaXN0OiBmYWxzZSxcbiAgICAgIGl0ZW1zOiBbXSxcbiAgICAgIHRpdGxlOiB0aGlzLmVycm9yLnN0YXR1c1RleHQsXG4gICAgfTtcblxuICAgIGNvbnN0IGRldGFpbCA9IHRoaXMuZXJyb3IuZGV0YWlsO1xuICAgIGNvbnN0IGRlZmF1bHRFcnJvck1lc3NhZ2UgPSBgJHtjb252ZXJ0SHR0cFN0YXR1c0NvZGVUb01lc3NhZ2UodGhpcy5lcnJvci5zdGF0dXMpfSAoQ29kZTogJHt0aGlzLmVycm9yLnN0YXR1c30pYDtcblxuICAgIGlmIChpc0NsYXNzVmFsaWRhdG9yRXJyb3IoZGV0YWlsKSkge1xuICAgICAgZm9yIChjb25zdCBlcnJvciBvZiBkZXRhaWwubWVzc2FnZSkge1xuICAgICAgICBlcnJvckxpc3QuaXRlbXMucHVzaCh7IG1lc3NhZ2U6IGVycm9yIH0pO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoaXNTeW1mb255Rm9ybVZpb2xhdGlvbkxpc3RFcnJvcihkZXRhaWwpKSB7XG4gICAgICBmb3IgKGNvbnN0IHZpb2xhdGlvbiBvZiBkZXRhaWwudmlvbGF0aW9ucykge1xuICAgICAgICBlcnJvckxpc3QuaXRlbXMucHVzaCh7IG1lc3NhZ2U6IHZpb2xhdGlvbi5tZXNzYWdlIH0pO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAodHlwZW9mIGRldGFpbCA9PT0gJ29iamVjdCcgJiYgISFkZXRhaWwgJiYgJ21lc3NhZ2UnIGluIGRldGFpbCAmJiB0eXBlb2YgZGV0YWlsLm1lc3NhZ2UgPT09ICdzdHJpbmcnKSB7XG4gICAgICBlcnJvckxpc3QuaXRlbXMucHVzaCh7IG1lc3NhZ2U6IGRldGFpbC5tZXNzYWdlIH0pO1xuICAgIH0gZWxzZSBpZiAodHlwZW9mIGRldGFpbCA9PT0gJ29iamVjdCcgJiYgISFkZXRhaWwgJiYgJ2RldGFpbCcgaW4gZGV0YWlsICYmIHR5cGVvZiBkZXRhaWwuZGV0YWlsID09PSAnc3RyaW5nJykge1xuICAgICAgLy8gU3ltZm9ueSBlcnJvciByZXNwb25zZSAoZHVyaW5nIGRldmVsb3BtZW50KVxuICAgICAgZXJyb3JMaXN0Lml0ZW1zLnB1c2goeyBtZXNzYWdlOiBkZXRhaWwuZGV0YWlsIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBlcnJvckxpc3QuaXRlbXMucHVzaCh7IG1lc3NhZ2U6IGRlZmF1bHRFcnJvck1lc3NhZ2UgfSk7XG4gICAgfVxuXG4gICAgZXJyb3JMaXN0LmlzTGlzdCA9IGVycm9yTGlzdC5pdGVtcy5sZW5ndGggPiAxO1xuXG4gICAgcmV0dXJuIGVycm9yTGlzdDtcbiAgfSk7XG59XG4iXX0=
@@ -9244,6 +9244,92 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.8", ngImpor
9244
9244
  }] } });
9245
9245
 
9246
9246
  const QUERY_ERROR_TOKEN = new InjectionToken('QUERY_ERROR_DIRECTIVE_TOKEN');
9247
+ const convertHttpStatusCodeToMessage = (statusCode) => {
9248
+ switch (statusCode) {
9249
+ case 400 /* HttpStatusCode.BadRequest */:
9250
+ return 'Sorry, we could not process your request. Please try again later.';
9251
+ case 401 /* HttpStatusCode.Unauthorized */:
9252
+ return 'You are not authorized to perform this action. Please log in to continue.';
9253
+ case 402 /* HttpStatusCode.PaymentRequired */:
9254
+ return 'Payment is required to complete this action.';
9255
+ case 403 /* HttpStatusCode.Forbidden */:
9256
+ return 'You do not have permission to perform this action.';
9257
+ case 404 /* HttpStatusCode.NotFound */:
9258
+ return 'The requested resource was not found.';
9259
+ case 405 /* HttpStatusCode.MethodNotAllowed */:
9260
+ return 'The requested method is not allowed for this resource.';
9261
+ case 406 /* HttpStatusCode.NotAcceptable */:
9262
+ return 'The requested resource is not capable of generating a response matching the list of acceptable values.';
9263
+ case 407 /* HttpStatusCode.ProxyAuthenticationRequired */:
9264
+ return 'Proxy authentication is required to complete this action.';
9265
+ case 408 /* HttpStatusCode.RequestTimeout */:
9266
+ return 'The server timed out waiting for the request.';
9267
+ case 409 /* HttpStatusCode.Conflict */:
9268
+ return 'The request conflicts with the current state of the resource.';
9269
+ case 410 /* HttpStatusCode.Gone */:
9270
+ return 'The requested resource is no longer available and will not be available again.';
9271
+ case 411 /* HttpStatusCode.LengthRequired */:
9272
+ return 'The request did not specify the length of its content, which is required by the requested resource.';
9273
+ case 412 /* HttpStatusCode.PreconditionFailed */:
9274
+ return 'The server does not meet one of the preconditions that the requester put on the request.';
9275
+ case 413 /* HttpStatusCode.PayloadTooLarge */:
9276
+ return 'The request is larger than the server is willing or able to process.';
9277
+ case 414 /* HttpStatusCode.UriTooLong */:
9278
+ return 'The URL provided was too long for the server to process.';
9279
+ case 415 /* HttpStatusCode.UnsupportedMediaType */:
9280
+ return 'The request entity has a media type which the server or resource does not support.';
9281
+ case 416 /* HttpStatusCode.RangeNotSatisfiable */:
9282
+ return 'The client has asked for a portion of the file, but the server cannot supply that portion.';
9283
+ case 417 /* HttpStatusCode.ExpectationFailed */:
9284
+ return 'The server cannot meet the requirements of the Expect request-header field.';
9285
+ case 418 /* HttpStatusCode.ImATeapot */:
9286
+ return 'I am a teapot.';
9287
+ case 421 /* HttpStatusCode.MisdirectedRequest */:
9288
+ return 'The request was directed at a server that is not able to produce a response.';
9289
+ case 422 /* HttpStatusCode.UnprocessableEntity */:
9290
+ return 'The request was well-formed but was unable to be followed due to semantic errors.';
9291
+ case 423 /* HttpStatusCode.Locked */:
9292
+ return 'The resource that is being accessed is locked.';
9293
+ case 424 /* HttpStatusCode.FailedDependency */:
9294
+ return 'The request failed due to failure of a previous request.';
9295
+ case 425 /* HttpStatusCode.TooEarly */:
9296
+ return 'The server is unwilling to process the request because the user has not been authenticated.';
9297
+ case 426 /* HttpStatusCode.UpgradeRequired */:
9298
+ return 'The client should switch to a different protocol such as TLS/1.0, given in the Upgrade header field.';
9299
+ case 428 /* HttpStatusCode.PreconditionRequired */:
9300
+ return 'The origin server requires the request to be conditional.';
9301
+ case 429 /* HttpStatusCode.TooManyRequests */:
9302
+ return 'You have sent too many requests in a given amount of time. Please try again later.';
9303
+ case 431 /* HttpStatusCode.RequestHeaderFieldsTooLarge */:
9304
+ return 'The server is unwilling to process the request because its header fields are too large.';
9305
+ case 451 /* HttpStatusCode.UnavailableForLegalReasons */:
9306
+ return 'The resource is unavailable due to a legal demand.';
9307
+ case 500 /* HttpStatusCode.InternalServerError */:
9308
+ return 'Something went wrong on our end. Please try again later.';
9309
+ case 501 /* HttpStatusCode.NotImplemented */:
9310
+ return 'The server does not support the functionality required to fulfill the request.';
9311
+ case 502 /* HttpStatusCode.BadGateway */:
9312
+ return 'Something went wrong on our end. Please try again later.';
9313
+ case 503 /* HttpStatusCode.ServiceUnavailable */:
9314
+ return 'The server is currently unable to handle the request due to a temporary overload or maintenance of the server.';
9315
+ case 504 /* HttpStatusCode.GatewayTimeout */:
9316
+ return 'The server, while acting as a gateway or proxy, did not receive a timely response from the upstream server specified by the URL or some other auxiliary server it needed to access in attempting to complete the request.';
9317
+ case 505 /* HttpStatusCode.HttpVersionNotSupported */:
9318
+ return 'The server does not support the HTTP protocol version used in the request.';
9319
+ case 506 /* HttpStatusCode.VariantAlsoNegotiates */:
9320
+ return 'The server has an internal configuration error: the chosen variant resource is configured to engage in transparent content negotiation itself, and is therefore not a proper end point in the negotiation process.';
9321
+ case 507 /* HttpStatusCode.InsufficientStorage */:
9322
+ return 'The method could not be performed on the resource because the server is unable to store the representation needed to successfully complete the request.';
9323
+ case 508 /* HttpStatusCode.LoopDetected */:
9324
+ return 'The server detected an infinite loop while processing the request.';
9325
+ case 510 /* HttpStatusCode.NotExtended */:
9326
+ return 'Further extensions to the request are required for the server to fulfill it.';
9327
+ case 511 /* HttpStatusCode.NetworkAuthenticationRequired */:
9328
+ return 'You need to authenticate to gain network access.';
9329
+ default:
9330
+ return 'Something went wrong. Check your internet connection and try again later.';
9331
+ }
9332
+ };
9247
9333
  class QueryErrorDirective {
9248
9334
  constructor() {
9249
9335
  this._error = signal(null);
@@ -9261,7 +9347,7 @@ class QueryErrorDirective {
9261
9347
  title: this.error.statusText,
9262
9348
  };
9263
9349
  const detail = this.error.detail;
9264
- const defaultErrorMessage = `Something went wrong (Code: ${this.error.status})`;
9350
+ const defaultErrorMessage = `${convertHttpStatusCodeToMessage(this.error.status)} (Code: ${this.error.status})`;
9265
9351
  if (isClassValidatorError(detail)) {
9266
9352
  for (const error of detail.message) {
9267
9353
  errorList.items.push({ message: error });
@@ -9275,6 +9361,10 @@ class QueryErrorDirective {
9275
9361
  else if (typeof detail === 'object' && !!detail && 'message' in detail && typeof detail.message === 'string') {
9276
9362
  errorList.items.push({ message: detail.message });
9277
9363
  }
9364
+ else if (typeof detail === 'object' && !!detail && 'detail' in detail && typeof detail.detail === 'string') {
9365
+ // Symfony error response (during development)
9366
+ errorList.items.push({ message: detail.detail });
9367
+ }
9278
9368
  else {
9279
9369
  errorList.items.push({ message: defaultErrorMessage });
9280
9370
  }
@@ -12040,5 +12130,5 @@ const FLOATING_UI_PLACEMENTS = [
12040
12130
  * Generated bundle index. Do not edit.
12041
12131
  */
12042
12132
 
12043
- export { ACCORDION_COMPONENT, ACCORDION_HINT_WRAPPER_DIRECTIVE, ACCORDION_LABEL_WRAPPER_DIRECTIVE, AccordionComponent, AccordionGroupComponent, AccordionHintDirective, AccordionHintWrapperDirective, AccordionImports, AccordionLabelDirective, AccordionLabelWrapperDirective, ActiveTabUnderlineBarManager, ActiveTabUnderlineDirective, AutosizeTextareaDirective, BOTTOM_SHEET_CONFIG, BOTTOM_SHEET_DATA, BOTTOM_SHEET_DEFAULT_CONFIG, BOTTOM_SHEET_DEFAULT_OPTIONS, BOTTOM_SHEET_MIN_SWIPE_TO_CLOSE_LENGTH, BOTTOM_SHEET_MIN_VELOCITY_TO_CLOSE, BOTTOM_SHEET_SCROLL_STRATEGY, BOTTOM_SHEET_SCROLL_STRATEGY_PROVIDER, BOTTOM_SHEET_SCROLL_STRATEGY_PROVIDER_FACTORY, BRACKET_CONFIG_TOKEN, BRACKET_DEFAULT_CONFIG, BRACKET_MATCH_ID_TOKEN, BRACKET_ROUND_ID_TOKEN, BRACKET_TOKEN, BottomSheetContainerBaseComponent, BottomSheetContainerComponent, BottomSheetDragHandleComponent, BottomSheetImports, BottomSheetRef, BottomSheetService, BottomSheetServiceBase, BottomSheetSwipeHandlerService, BottomSheetTitleDirective, Bracket, BracketComponent, BracketImports, BracketMatchComponent, BracketMatchDirective, BracketRoundDirective, BracketRoundHeaderComponent, ButtonComponent, ButtonDirective, ButtonImports, CDK_MENU, CHECKBOX_FIELD_TOKEN, CHECKBOX_GROUP_CONTROL_TOKEN, CHECKBOX_GROUP_TOKEN, CHECKBOX_TOKEN, COMBOBOX_DIR_TOKEN, COMBOBOX_OPTION_TEMPLATE_TOKEN, COMBOBOX_SELECTED_OPTION_TEMPLATE_TOKEN, COMBOBOX_TOKEN, CdkContextMenuTrigger, CdkMenu, CdkMenuBar, CdkMenuBase, CdkMenuGroup, CdkMenuItem, CdkMenuItemCheckbox, CdkMenuItemRadio, CdkMenuItemSelectable, CdkMenuModule, CdkMenuTrigger, CdkMenuTriggerBase, CdkTargetMenuAim, CellDefDirective, CellDirective, CheckboxComponent, CheckboxDirective, CheckboxFieldComponent, CheckboxFieldDirective, CheckboxGroupComponent, CheckboxGroupControlDirective, CheckboxGroupDirective, CheckboxImports, ChevronIconComponent, ColumnDefDirective, ComboboxComponent, ComboboxDirective, ComboboxImports, ComboboxOptionTemplateDirective, ComboboxSelectedOptionTemplateDirective, ContextMenuTracker, DATE_INPUT_FORMAT_TOKEN, DATE_INPUT_TOKEN, DEFAULT_DATE_INPUT_FORMAT, DIALOG_CONFIG, DIALOG_DATA, DIALOG_DEFAULT_CONFIG, DIALOG_DEFAULT_OPTIONS, DIALOG_SCROLL_STRATEGY, DIALOG_SCROLL_STRATEGY_PROVIDER, DIALOG_SCROLL_STRATEGY_PROVIDER_FACTORY, DYNAMIC_FORM_FIELD_TOKEN, DYNAMIC_FORM_GROUP_TOKEN, DateInputComponent, DateInputDirective, DecoratedFormFieldBase, DecoratedInputBase, DefaultValidatorErrorsService, DialogCloseDirective, DialogContainerBaseComponent, DialogContainerComponent, DialogImports, DialogRef, DialogService, DialogServiceBase, DialogTitleDirective, DynamicFormFieldDirective, DynamicFormGroupDirective, DynamicOverlayService, DynamicOverlayTitleDirective, EMAIL_INPUT_TOKEN, EmailInputComponent, EmailInputDirective, ErrorComponent, FLOATING_UI_PLACEMENTS, FooterCellDefDirective, FooterCellDirective, FooterRowComponent, FooterRowDefDirective, FormFieldStateService, FormGroupStateService, HeaderCellDefDirective, HeaderCellDirective, HeaderRowComponent, HeaderRowDefDirective, INPUT_PREFIX_TOKEN, INPUT_SUFFIX_TOKEN, INPUT_TOKEN, IconImports, IfInputEmptyDirective, IfInputFilledDirective, InlineTabBodyComponent, InlineTabBodyHostDirective, InlineTabChangeEvent, InlineTabComponent, InlineTabContentDirective, InlineTabHeaderComponent, InlineTabLabelDirective, InlineTabLabelWrapperDirective, InlineTabsComponent, InputBase, InputDirective, InputFieldComponent, InputImports, InputPrefixDirective, InputStateService, InputSuffixDirective, LABEL_TOKEN, LabelComponent, LabelImports, LabelSuffixDirective, MASONRY_ITEM_TOKEN, MAX_SAFE_INTEGER, MENU_AIM, MENU_STACK, MENU_TRIGGER, MasonryComponent, MasonryImports, MasonryItemComponent, MenuStack, NATIVE_INPUT_REF_TOKEN, NATIVE_SELECT_INPUT_TOKEN, NATIVE_SELECT_OPTION_TOKEN, NUMBER_INPUT_TOKEN, NativeInputRefDirective, NativeSelectImports, NativeSelectInputComponent, NativeSelectInputDirective, NativeSelectOptionComponent, NativeSelectOptionDirective, NavTabLinkComponent, NavTabsComponent, NavTabsOutletComponent, NoDataRowDirective, NumberInputComponent, NumberInputDirective, PARENT_OR_NEW_INLINE_MENU_STACK_PROVIDER, PARENT_OR_NEW_MENU_STACK_PROVIDER, PASSWORD_INPUT_TOKEN, PROGRESS_SPINNER_DEFAULT_OPTIONS, PROGRESS_SPINNER_DEFAULT_OPTIONS_FACTORY, PaginatedTabHeaderDirective, PaginationComponent, PaginationImports, PasswordInputComponent, PasswordInputDirective, PasswordInputToggleComponent, PictureComponent, PictureDataDirective, PointerFocusTracker, ProgressSpinnerComponent, QUERY_ERROR_TOKEN, QueryButtonComponent, QueryButtonDirective, QueryErrorComponent, QueryErrorDirective, RADIO_FIELD_TOKEN, RADIO_GROUP_TOKEN, RADIO_TOKEN, RadioComponent, RadioDirective, RadioFieldComponent, RadioFieldDirective, RadioGroupComponent, RadioGroupDirective, RadioImports, RecycleRowsDirective, RowComponent, RowDefDirective, SEARCH_INPUT_TOKEN, SEGMENTED_BUTTON_FIELD_TOKEN, SEGMENTED_BUTTON_GROUP_TOKEN, SEGMENTED_BUTTON_TOKEN, SELECT_BODY_TOKEN, SELECT_FIELD_TOKEN, SELECT_OPTION_TOKEN, SELECT_TOKEN, SLIDE_TOGGLE_TOKEN, SORT_DEFAULT_OPTIONS, SORT_HEADER_COLUMN_DEF, SORT_HEADER_INTL_PROVIDER, SORT_HEADER_INTL_PROVIDER_FACTORY, STATIC_FORM_FIELD_TOKEN, STATIC_FORM_GROUP_TOKEN, ScrollableComponent, ScrollableImports, SearchInputClearComponent, SearchInputComponent, SearchInputDirective, SegmentedButtonComponent, SegmentedButtonDirective, SegmentedButtonFieldComponent, SegmentedButtonFieldDirective, SegmentedButtonGroupComponent, SegmentedButtonGroupDirective, SegmentedButtonImports, SelectBodyComponent, SelectBodyDirective, SelectComponent, SelectDirective, SelectFieldComponent, SelectFieldDirective, SelectImports, SelectOptionComponent, SelectOptionDirective, SkeletonComponent, SkeletonImports, SkeletonItemComponent, SlideToggleComponent, SlideToggleDirective, SlideToggleFieldComponent, SlideToggleImports, SliderComponent, SliderFieldComponent, SliderImports, SortDirective, SortHeaderComponent, SortHeaderIntl, SortImports, StaticFormFieldDirective, StaticFormGroupDirective, SwipeHandlerService, TAB, TABS_CONFIG, TAB_CONTENT, TAB_GROUP, TAB_LABEL, TEXTAREA_INPUT_TOKEN, TEXT_INPUT_TOKEN, TOGGLETIP, TOGGLETIP_CONFIG, TOGGLETIP_DEFAULT_CONFIG, TOGGLETIP_DIRECTIVE, TOGGLETIP_TEMPLATE, TOGGLETIP_TEXT, TOOLTIP, TOOLTIP_CONFIG, TOOLTIP_DEFAULT_CONFIG, TOOLTIP_DIRECTIVE, TOOLTIP_TEMPLATE, TOOLTIP_TEXT, TabImports, TableBusyDirective, TableBusyOutletDirective, TableComponent, TableDataSource, TableImports, TargetMenuAim, TextColumnComponent, TextInputComponent, TextInputDirective, TextareaInputComponent, TextareaInputDirective, ToggletipComponent, ToggletipDirective, ToggletipImports, TooltipComponent, TooltipDirective, TooltipImports, VALIDATOR_ERROR_SERVICE_TOKEN, WRITEABLE_INPUT_TOKEN, WRITEABLE_INPUT_VALUE_ACCESSOR, WriteableInputDirective, _MAT_INK_BAR_POSITIONER, _MAT_INK_BAR_POSITIONER_FACTORY, accordionAnimations, createBottomSheetConfig, createBracketConfig, createDialogConfig, createToggletipConfig, createTooltipConfig, getClosestBottomSheet, getClosestDialog, isOptionDisabled, isUpperBracketMatch, normalizeRoundType, orderRounds, orderRoundsByRoundNumber, paginate, provideBottomSheet, provideBottomSheetDefaultConfig, provideBracketConfig, provideDateFormat, provideDialog, provideDialogDefaultConfig, provideSort, provideToggletipConfig, provideTooltipConfig, provideValidatorErrorsService, tabAnimations };
12133
+ export { ACCORDION_COMPONENT, ACCORDION_HINT_WRAPPER_DIRECTIVE, ACCORDION_LABEL_WRAPPER_DIRECTIVE, AccordionComponent, AccordionGroupComponent, AccordionHintDirective, AccordionHintWrapperDirective, AccordionImports, AccordionLabelDirective, AccordionLabelWrapperDirective, ActiveTabUnderlineBarManager, ActiveTabUnderlineDirective, AutosizeTextareaDirective, BOTTOM_SHEET_CONFIG, BOTTOM_SHEET_DATA, BOTTOM_SHEET_DEFAULT_CONFIG, BOTTOM_SHEET_DEFAULT_OPTIONS, BOTTOM_SHEET_MIN_SWIPE_TO_CLOSE_LENGTH, BOTTOM_SHEET_MIN_VELOCITY_TO_CLOSE, BOTTOM_SHEET_SCROLL_STRATEGY, BOTTOM_SHEET_SCROLL_STRATEGY_PROVIDER, BOTTOM_SHEET_SCROLL_STRATEGY_PROVIDER_FACTORY, BRACKET_CONFIG_TOKEN, BRACKET_DEFAULT_CONFIG, BRACKET_MATCH_ID_TOKEN, BRACKET_ROUND_ID_TOKEN, BRACKET_TOKEN, BottomSheetContainerBaseComponent, BottomSheetContainerComponent, BottomSheetDragHandleComponent, BottomSheetImports, BottomSheetRef, BottomSheetService, BottomSheetServiceBase, BottomSheetSwipeHandlerService, BottomSheetTitleDirective, Bracket, BracketComponent, BracketImports, BracketMatchComponent, BracketMatchDirective, BracketRoundDirective, BracketRoundHeaderComponent, ButtonComponent, ButtonDirective, ButtonImports, CDK_MENU, CHECKBOX_FIELD_TOKEN, CHECKBOX_GROUP_CONTROL_TOKEN, CHECKBOX_GROUP_TOKEN, CHECKBOX_TOKEN, COMBOBOX_DIR_TOKEN, COMBOBOX_OPTION_TEMPLATE_TOKEN, COMBOBOX_SELECTED_OPTION_TEMPLATE_TOKEN, COMBOBOX_TOKEN, CdkContextMenuTrigger, CdkMenu, CdkMenuBar, CdkMenuBase, CdkMenuGroup, CdkMenuItem, CdkMenuItemCheckbox, CdkMenuItemRadio, CdkMenuItemSelectable, CdkMenuModule, CdkMenuTrigger, CdkMenuTriggerBase, CdkTargetMenuAim, CellDefDirective, CellDirective, CheckboxComponent, CheckboxDirective, CheckboxFieldComponent, CheckboxFieldDirective, CheckboxGroupComponent, CheckboxGroupControlDirective, CheckboxGroupDirective, CheckboxImports, ChevronIconComponent, ColumnDefDirective, ComboboxComponent, ComboboxDirective, ComboboxImports, ComboboxOptionTemplateDirective, ComboboxSelectedOptionTemplateDirective, ContextMenuTracker, DATE_INPUT_FORMAT_TOKEN, DATE_INPUT_TOKEN, DEFAULT_DATE_INPUT_FORMAT, DIALOG_CONFIG, DIALOG_DATA, DIALOG_DEFAULT_CONFIG, DIALOG_DEFAULT_OPTIONS, DIALOG_SCROLL_STRATEGY, DIALOG_SCROLL_STRATEGY_PROVIDER, DIALOG_SCROLL_STRATEGY_PROVIDER_FACTORY, DYNAMIC_FORM_FIELD_TOKEN, DYNAMIC_FORM_GROUP_TOKEN, DateInputComponent, DateInputDirective, DecoratedFormFieldBase, DecoratedInputBase, DefaultValidatorErrorsService, DialogCloseDirective, DialogContainerBaseComponent, DialogContainerComponent, DialogImports, DialogRef, DialogService, DialogServiceBase, DialogTitleDirective, DynamicFormFieldDirective, DynamicFormGroupDirective, DynamicOverlayService, DynamicOverlayTitleDirective, EMAIL_INPUT_TOKEN, EmailInputComponent, EmailInputDirective, ErrorComponent, FLOATING_UI_PLACEMENTS, FooterCellDefDirective, FooterCellDirective, FooterRowComponent, FooterRowDefDirective, FormFieldStateService, FormGroupStateService, HeaderCellDefDirective, HeaderCellDirective, HeaderRowComponent, HeaderRowDefDirective, INPUT_PREFIX_TOKEN, INPUT_SUFFIX_TOKEN, INPUT_TOKEN, IconImports, IfInputEmptyDirective, IfInputFilledDirective, InlineTabBodyComponent, InlineTabBodyHostDirective, InlineTabChangeEvent, InlineTabComponent, InlineTabContentDirective, InlineTabHeaderComponent, InlineTabLabelDirective, InlineTabLabelWrapperDirective, InlineTabsComponent, InputBase, InputDirective, InputFieldComponent, InputImports, InputPrefixDirective, InputStateService, InputSuffixDirective, LABEL_TOKEN, LabelComponent, LabelImports, LabelSuffixDirective, MASONRY_ITEM_TOKEN, MAX_SAFE_INTEGER, MENU_AIM, MENU_STACK, MENU_TRIGGER, MasonryComponent, MasonryImports, MasonryItemComponent, MenuStack, NATIVE_INPUT_REF_TOKEN, NATIVE_SELECT_INPUT_TOKEN, NATIVE_SELECT_OPTION_TOKEN, NUMBER_INPUT_TOKEN, NativeInputRefDirective, NativeSelectImports, NativeSelectInputComponent, NativeSelectInputDirective, NativeSelectOptionComponent, NativeSelectOptionDirective, NavTabLinkComponent, NavTabsComponent, NavTabsOutletComponent, NoDataRowDirective, NumberInputComponent, NumberInputDirective, PARENT_OR_NEW_INLINE_MENU_STACK_PROVIDER, PARENT_OR_NEW_MENU_STACK_PROVIDER, PASSWORD_INPUT_TOKEN, PROGRESS_SPINNER_DEFAULT_OPTIONS, PROGRESS_SPINNER_DEFAULT_OPTIONS_FACTORY, PaginatedTabHeaderDirective, PaginationComponent, PaginationImports, PasswordInputComponent, PasswordInputDirective, PasswordInputToggleComponent, PictureComponent, PictureDataDirective, PointerFocusTracker, ProgressSpinnerComponent, QUERY_ERROR_TOKEN, QueryButtonComponent, QueryButtonDirective, QueryErrorComponent, QueryErrorDirective, RADIO_FIELD_TOKEN, RADIO_GROUP_TOKEN, RADIO_TOKEN, RadioComponent, RadioDirective, RadioFieldComponent, RadioFieldDirective, RadioGroupComponent, RadioGroupDirective, RadioImports, RecycleRowsDirective, RowComponent, RowDefDirective, SEARCH_INPUT_TOKEN, SEGMENTED_BUTTON_FIELD_TOKEN, SEGMENTED_BUTTON_GROUP_TOKEN, SEGMENTED_BUTTON_TOKEN, SELECT_BODY_TOKEN, SELECT_FIELD_TOKEN, SELECT_OPTION_TOKEN, SELECT_TOKEN, SLIDE_TOGGLE_TOKEN, SORT_DEFAULT_OPTIONS, SORT_HEADER_COLUMN_DEF, SORT_HEADER_INTL_PROVIDER, SORT_HEADER_INTL_PROVIDER_FACTORY, STATIC_FORM_FIELD_TOKEN, STATIC_FORM_GROUP_TOKEN, ScrollableComponent, ScrollableImports, SearchInputClearComponent, SearchInputComponent, SearchInputDirective, SegmentedButtonComponent, SegmentedButtonDirective, SegmentedButtonFieldComponent, SegmentedButtonFieldDirective, SegmentedButtonGroupComponent, SegmentedButtonGroupDirective, SegmentedButtonImports, SelectBodyComponent, SelectBodyDirective, SelectComponent, SelectDirective, SelectFieldComponent, SelectFieldDirective, SelectImports, SelectOptionComponent, SelectOptionDirective, SkeletonComponent, SkeletonImports, SkeletonItemComponent, SlideToggleComponent, SlideToggleDirective, SlideToggleFieldComponent, SlideToggleImports, SliderComponent, SliderFieldComponent, SliderImports, SortDirective, SortHeaderComponent, SortHeaderIntl, SortImports, StaticFormFieldDirective, StaticFormGroupDirective, SwipeHandlerService, TAB, TABS_CONFIG, TAB_CONTENT, TAB_GROUP, TAB_LABEL, TEXTAREA_INPUT_TOKEN, TEXT_INPUT_TOKEN, TOGGLETIP, TOGGLETIP_CONFIG, TOGGLETIP_DEFAULT_CONFIG, TOGGLETIP_DIRECTIVE, TOGGLETIP_TEMPLATE, TOGGLETIP_TEXT, TOOLTIP, TOOLTIP_CONFIG, TOOLTIP_DEFAULT_CONFIG, TOOLTIP_DIRECTIVE, TOOLTIP_TEMPLATE, TOOLTIP_TEXT, TabImports, TableBusyDirective, TableBusyOutletDirective, TableComponent, TableDataSource, TableImports, TargetMenuAim, TextColumnComponent, TextInputComponent, TextInputDirective, TextareaInputComponent, TextareaInputDirective, ToggletipComponent, ToggletipDirective, ToggletipImports, TooltipComponent, TooltipDirective, TooltipImports, VALIDATOR_ERROR_SERVICE_TOKEN, WRITEABLE_INPUT_TOKEN, WRITEABLE_INPUT_VALUE_ACCESSOR, WriteableInputDirective, _MAT_INK_BAR_POSITIONER, _MAT_INK_BAR_POSITIONER_FACTORY, accordionAnimations, convertHttpStatusCodeToMessage, createBottomSheetConfig, createBracketConfig, createDialogConfig, createToggletipConfig, createTooltipConfig, getClosestBottomSheet, getClosestDialog, isOptionDisabled, isUpperBracketMatch, normalizeRoundType, orderRounds, orderRoundsByRoundNumber, paginate, provideBottomSheet, provideBottomSheetDefaultConfig, provideBracketConfig, provideDateFormat, provideDialog, provideDialogDefaultConfig, provideSort, provideToggletipConfig, provideTooltipConfig, provideValidatorErrorsService, tabAnimations };
12044
12134
  //# sourceMappingURL=ethlete-cdk.mjs.map