@algoux/standard-ranklist-renderer-component-angular 0.6.1 → 0.6.3

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 CHANGED
@@ -52,7 +52,7 @@ import '@algoux/standard-ranklist-renderer-component-styles';
52
52
  ></srk-progress-bar>
53
53
  <srk-ranklist
54
54
  [data]="staticRanklist"
55
- [stripedRows]="true"
55
+ [rowStriped]="true"
56
56
  (userClick)="handleUserClick($event)"
57
57
  (solutionClick)="handleSolutionClick($event)"
58
58
  ></srk-ranklist>
@@ -111,9 +111,11 @@ Use `ModalComponent` directly when you want custom modal content. `SrkUserCellTe
111
111
  - `showDirtColumn`: appends a Dirt percentage column after problem columns.
112
112
  - `showSEColumn`: appends a contestant SE column after problem columns, placed after Dirt when both are enabled.
113
113
  - `rowBordered`: adds row separators controlled by CSS variables.
114
+ - `rowStriped`: adds striped body rows.
114
115
  - `columnBordered`: adds column separators controlled by CSS variables.
115
116
  - `emptyStatusPlaceholder`: renders a custom string in no-submission status cells.
116
117
  - `userAvatarPlacement`: chooses whether the default user avatar renders in the user column or, when `splitOrganization` is enabled, in the organization column.
118
+ - `languages`: passes an explicit language priority list to i18n text resolution. Leave it unset to use the browser language list; pass it to `RanklistComponent`, `DefaultUserModalComponent`, and `DefaultSolutionModalComponent` when rendering outside the browser or when you need a forced language.
117
119
 
118
120
  ```ts
119
121
  import type { RanklistColumnTitles } from '@algoux/standard-ranklist-renderer-component-angular';
@@ -140,9 +142,11 @@ export class BoardComponent {
140
142
  [statusCellPreset]="'compact'"
141
143
  [statusColorAsText]="true"
142
144
  [rowBordered]="true"
145
+ [rowStriped]="true"
143
146
  [columnBordered]="true"
144
147
  [emptyStatusPlaceholder]="'·'"
145
148
  [userAvatarPlacement]="'organization'"
149
+ [languages]="['zh-CN']"
146
150
  [columnTitles]="columnTitles"
147
151
  ></srk-ranklist>
148
152
  ```
package/dist/README.md CHANGED
@@ -52,7 +52,7 @@ import '@algoux/standard-ranklist-renderer-component-styles';
52
52
  ></srk-progress-bar>
53
53
  <srk-ranklist
54
54
  [data]="staticRanklist"
55
- [stripedRows]="true"
55
+ [rowStriped]="true"
56
56
  (userClick)="handleUserClick($event)"
57
57
  (solutionClick)="handleSolutionClick($event)"
58
58
  ></srk-ranklist>
@@ -111,9 +111,11 @@ Use `ModalComponent` directly when you want custom modal content. `SrkUserCellTe
111
111
  - `showDirtColumn`: appends a Dirt percentage column after problem columns.
112
112
  - `showSEColumn`: appends a contestant SE column after problem columns, placed after Dirt when both are enabled.
113
113
  - `rowBordered`: adds row separators controlled by CSS variables.
114
+ - `rowStriped`: adds striped body rows.
114
115
  - `columnBordered`: adds column separators controlled by CSS variables.
115
116
  - `emptyStatusPlaceholder`: renders a custom string in no-submission status cells.
116
117
  - `userAvatarPlacement`: chooses whether the default user avatar renders in the user column or, when `splitOrganization` is enabled, in the organization column.
118
+ - `languages`: passes an explicit language priority list to i18n text resolution. Leave it unset to use the browser language list; pass it to `RanklistComponent`, `DefaultUserModalComponent`, and `DefaultSolutionModalComponent` when rendering outside the browser or when you need a forced language.
117
119
 
118
120
  ```ts
119
121
  import type { RanklistColumnTitles } from '@algoux/standard-ranklist-renderer-component-angular';
@@ -140,9 +142,11 @@ export class BoardComponent {
140
142
  [statusCellPreset]="'compact'"
141
143
  [statusColorAsText]="true"
142
144
  [rowBordered]="true"
145
+ [rowStriped]="true"
143
146
  [columnBordered]="true"
144
147
  [emptyStatusPlaceholder]="'·'"
145
148
  [userAvatarPlacement]="'organization'"
149
+ [languages]="['zh-CN']"
146
150
  [columnTitles]="columnTitles"
147
151
  ></srk-ranklist>
148
152
  ```
@@ -15,6 +15,7 @@ export class DefaultSolutionModalComponent {
15
15
  rootClassName = 'srk-general-modal-root';
16
16
  wrapClassName = 'srk-solutions-modal';
17
17
  panelStyle = {};
18
+ languages;
18
19
  openChange = new EventEmitter();
19
20
  close = new EventEmitter();
20
21
  formatSolutionTimestamp = formatSolutionTimestamp;
@@ -31,7 +32,7 @@ export class DefaultSolutionModalComponent {
31
32
  }
32
33
  }
33
34
  resolvedTitle() {
34
- return this.title || (this.cachedUser ? getSolutionModalTitle(this.cachedProblemIndex, this.cachedUser) : '');
35
+ return this.title || (this.cachedUser ? getSolutionModalTitle(this.cachedProblemIndex, this.cachedUser, this.languages) : '');
35
36
  }
36
37
  solutionMeta(solution) {
37
38
  return getSolutionResultMeta(solution.result);
@@ -40,7 +41,7 @@ export class DefaultSolutionModalComponent {
40
41
  return `${solution.result}_${solution.time?.[0]}_${index}`;
41
42
  }
42
43
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DefaultSolutionModalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
43
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: DefaultSolutionModalComponent, isStandalone: true, selector: "srk-default-solution-modal", inputs: { open: "open", user: "user", problem: "problem", problemIndex: "problemIndex", solutions: "solutions", title: "title", width: "width", rootClassName: "rootClassName", wrapClassName: "wrapClassName", panelStyle: "panelStyle" }, outputs: { openChange: "openChange", close: "close" }, usesOnChanges: true, ngImport: i0, template: `
44
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: DefaultSolutionModalComponent, isStandalone: true, selector: "srk-default-solution-modal", inputs: { open: "open", user: "user", problem: "problem", problemIndex: "problemIndex", solutions: "solutions", title: "title", width: "width", rootClassName: "rootClassName", wrapClassName: "wrapClassName", panelStyle: "panelStyle", languages: "languages" }, outputs: { openChange: "openChange", close: "close" }, usesOnChanges: true, ngImport: i0, template: `
44
45
  <srk-modal
45
46
  *ngIf="cachedUser"
46
47
  [open]="open"
@@ -138,9 +139,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
138
139
  type: Input
139
140
  }], panelStyle: [{
140
141
  type: Input
142
+ }], languages: [{
143
+ type: Input
141
144
  }], openChange: [{
142
145
  type: Output
143
146
  }], close: [{
144
147
  type: Output
145
148
  }] } });
146
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdC1zb2x1dGlvbi1tb2RhbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL21vZGFsL2RlZmF1bHQtc29sdXRpb24tbW9kYWwuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxHQUVQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIscUJBQXFCLEVBQ3JCLHFCQUFxQixHQUV0QixNQUFNLDRCQUE0QixDQUFDO0FBQ3BDLE9BQU8sRUFDTCxjQUFjLEdBRWYsTUFBTSxtQkFBbUIsQ0FBQzs7O0FBMEMzQixNQUFNLE9BQU8sNkJBQTZCO0lBQy9CLElBQUksR0FBRyxLQUFLLENBQUM7SUFDYixJQUFJLENBQW1CO0lBQ3ZCLE9BQU8sQ0FBZTtJQUN0QixZQUFZLEdBQUcsQ0FBQyxDQUFDO0lBQ2pCLFNBQVMsR0FBbUIsRUFBRSxDQUFDO0lBQy9CLEtBQUssQ0FBVTtJQUNmLEtBQUssR0FBRyxHQUFHLENBQUM7SUFDWixhQUFhLEdBQUcsd0JBQXdCLENBQUM7SUFDekMsYUFBYSxHQUFHLHFCQUFxQixDQUFDO0lBQ3RDLFVBQVUsR0FBb0MsRUFBRSxDQUFDO0lBRWhELFVBQVUsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO0lBQ3pDLEtBQUssR0FBRyxJQUFJLFlBQVksRUFBb0IsQ0FBQztJQUU5Qyx1QkFBdUIsR0FBRyx1QkFBdUIsQ0FBQztJQUMzRCxVQUFVLEdBQW9CLElBQUksQ0FBQztJQUNuQyxhQUFhLENBQWU7SUFDNUIsa0JBQWtCLEdBQUcsQ0FBQyxDQUFDO0lBQ3ZCLGVBQWUsR0FBbUIsRUFBRSxDQUFDO0lBRXJDLFdBQVcsQ0FBQyxRQUF1QjtRQUNqQyxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNkLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztZQUM1QixJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7WUFDbEMsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQyxZQUFZLENBQUM7WUFDNUMsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO1FBQ3hDLENBQUM7SUFDSCxDQUFDO0lBRUQsYUFBYTtRQUNYLE9BQU8sSUFBSSxDQUFDLEtBQUssSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ2hILENBQUM7SUFFRCxZQUFZLENBQUMsUUFBc0I7UUFDakMsT0FBTyxxQkFBcUIsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUVELGVBQWUsQ0FBQyxLQUFhLEVBQUUsUUFBc0I7UUFDbkQsT0FBTyxHQUFHLFFBQVEsQ0FBQyxNQUFNLElBQUksUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssRUFBRSxDQUFDO0lBQzdELENBQUM7d0dBeENVLDZCQUE2Qjs0RkFBN0IsNkJBQTZCLDhZQXBDOUI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FrQ1QsMkRBbkNTLFlBQVksOFZBQUUsY0FBYzs7NEZBcUMzQiw2QkFBNkI7a0JBeEN6QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSw0QkFBNEI7b0JBQ3RDLFVBQVUsRUFBRSxJQUFJO29CQUNoQixPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsY0FBYyxDQUFDO29CQUN2QyxRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FrQ1Q7aUJBQ0Y7OEJBRVUsSUFBSTtzQkFBWixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBRUksVUFBVTtzQkFBbkIsTUFBTTtnQkFDRyxLQUFLO3NCQUFkLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSAqIGFzIHNyayBmcm9tICdAYWxnb3V4L3N0YW5kYXJkLXJhbmtsaXN0JztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT3V0cHV0LFxuICBTaW1wbGVDaGFuZ2VzLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIGZvcm1hdFNvbHV0aW9uVGltZXN0YW1wLFxuICBnZXRTb2x1dGlvbk1vZGFsVGl0bGUsXG4gIGdldFNvbHV0aW9uUmVzdWx0TWV0YSxcbiAgdHlwZSBTb2x1dGlvblJlc3VsdE1ldGEsXG59IGZyb20gJy4uL3JhbmtsaXN0L3JhbmtsaXN0LXV0aWxzJztcbmltcG9ydCB7XG4gIE1vZGFsQ29tcG9uZW50LFxuICB0eXBlIE1vZGFsQ2xvc2VSZWFzb24sXG59IGZyb20gJy4vbW9kYWwuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3JrLWRlZmF1bHQtc29sdXRpb24tbW9kYWwnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBNb2RhbENvbXBvbmVudF0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPHNyay1tb2RhbFxuICAgICAgKm5nSWY9XCJjYWNoZWRVc2VyXCJcbiAgICAgIFtvcGVuXT1cIm9wZW5cIlxuICAgICAgW3RpdGxlXT1cInJlc29sdmVkVGl0bGUoKVwiXG4gICAgICBbd2lkdGhdPVwid2lkdGhcIlxuICAgICAgW3Jvb3RDbGFzc05hbWVdPVwicm9vdENsYXNzTmFtZVwiXG4gICAgICBbd3JhcENsYXNzTmFtZV09XCJ3cmFwQ2xhc3NOYW1lXCJcbiAgICAgIFtwYW5lbFN0eWxlXT1cInBhbmVsU3R5bGVcIlxuICAgICAgKGNsb3NlKT1cImNsb3NlLmVtaXQoJGV2ZW50KVwiXG4gICAgICAob3BlbkNoYW5nZSk9XCJvcGVuQ2hhbmdlLmVtaXQoJGV2ZW50KVwiXG4gICAgPlxuICAgICAgPHRhYmxlIGNsYXNzPVwic3JrLWNvbW1vbi10YWJsZSBzcmstc29sdXRpb25zLXRhYmxlXCI+XG4gICAgICAgIDx0aGVhZD5cbiAgICAgICAgICA8dHI+XG4gICAgICAgICAgICA8dGggY2xhc3M9XCJzcmstLXRleHQtbGVmdFwiPlJlc3VsdDwvdGg+XG4gICAgICAgICAgICA8dGggY2xhc3M9XCJzcmstLXRleHQtcmlnaHRcIj5UaW1lPC90aD5cbiAgICAgICAgICA8L3RyPlxuICAgICAgICA8L3RoZWFkPlxuICAgICAgICA8dGJvZHk+XG4gICAgICAgICAgPHRyICpuZ0Zvcj1cImxldCBzb2x1dGlvbiBvZiBjYWNoZWRTb2x1dGlvbnM7IGxldCBpbmRleCA9IGluZGV4OyB0cmFja0J5OiB0cmFja0J5U29sdXRpb25cIj5cbiAgICAgICAgICAgIDx0ZD5cbiAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICBjbGFzcz1cInNyay1zb2x1dGlvbi1yZXN1bHQtdGV4dFwiXG4gICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwic29sdXRpb25NZXRhKHNvbHV0aW9uKS5jbGFzc05hbWVcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge3sgc29sdXRpb25NZXRhKHNvbHV0aW9uKS5sYWJlbCB9fVxuICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgPHRkIGNsYXNzPVwic3JrLS10ZXh0LXJpZ2h0XCI+e3sgZm9ybWF0U29sdXRpb25UaW1lc3RhbXAoc29sdXRpb24pIH19PC90ZD5cbiAgICAgICAgICA8L3RyPlxuICAgICAgICA8L3Rib2R5PlxuICAgICAgPC90YWJsZT5cbiAgICA8L3Nyay1tb2RhbD5cbiAgYCxcbn0pXG5leHBvcnQgY2xhc3MgRGVmYXVsdFNvbHV0aW9uTW9kYWxDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICBASW5wdXQoKSBvcGVuID0gZmFsc2U7XG4gIEBJbnB1dCgpIHVzZXI/OiBzcmsuVXNlciB8IG51bGw7XG4gIEBJbnB1dCgpIHByb2JsZW0/OiBzcmsuUHJvYmxlbTtcbiAgQElucHV0KCkgcHJvYmxlbUluZGV4ID0gMDtcbiAgQElucHV0KCkgc29sdXRpb25zOiBzcmsuU29sdXRpb25bXSA9IFtdO1xuICBASW5wdXQoKSB0aXRsZT86IHN0cmluZztcbiAgQElucHV0KCkgd2lkdGggPSAzMjA7XG4gIEBJbnB1dCgpIHJvb3RDbGFzc05hbWUgPSAnc3JrLWdlbmVyYWwtbW9kYWwtcm9vdCc7XG4gIEBJbnB1dCgpIHdyYXBDbGFzc05hbWUgPSAnc3JrLXNvbHV0aW9ucy1tb2RhbCc7XG4gIEBJbnB1dCgpIHBhbmVsU3R5bGU6IFJlY29yZDxzdHJpbmcsIHN0cmluZyB8IG51bWJlcj4gPSB7fTtcblxuICBAT3V0cHV0KCkgb3BlbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcbiAgQE91dHB1dCgpIGNsb3NlID0gbmV3IEV2ZW50RW1pdHRlcjxNb2RhbENsb3NlUmVhc29uPigpO1xuXG4gIHJlYWRvbmx5IGZvcm1hdFNvbHV0aW9uVGltZXN0YW1wID0gZm9ybWF0U29sdXRpb25UaW1lc3RhbXA7XG4gIGNhY2hlZFVzZXI6IHNyay5Vc2VyIHwgbnVsbCA9IG51bGw7XG4gIGNhY2hlZFByb2JsZW0/OiBzcmsuUHJvYmxlbTtcbiAgY2FjaGVkUHJvYmxlbUluZGV4ID0gMDtcbiAgY2FjaGVkU29sdXRpb25zOiBzcmsuU29sdXRpb25bXSA9IFtdO1xuXG4gIG5nT25DaGFuZ2VzKF9jaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgaWYgKHRoaXMudXNlcikge1xuICAgICAgdGhpcy5jYWNoZWRVc2VyID0gdGhpcy51c2VyO1xuICAgICAgdGhpcy5jYWNoZWRQcm9ibGVtID0gdGhpcy5wcm9ibGVtO1xuICAgICAgdGhpcy5jYWNoZWRQcm9ibGVtSW5kZXggPSB0aGlzLnByb2JsZW1JbmRleDtcbiAgICAgIHRoaXMuY2FjaGVkU29sdXRpb25zID0gdGhpcy5zb2x1dGlvbnM7XG4gICAgfVxuICB9XG5cbiAgcmVzb2x2ZWRUaXRsZSgpIHtcbiAgICByZXR1cm4gdGhpcy50aXRsZSB8fCAodGhpcy5jYWNoZWRVc2VyID8gZ2V0U29sdXRpb25Nb2RhbFRpdGxlKHRoaXMuY2FjaGVkUHJvYmxlbUluZGV4LCB0aGlzLmNhY2hlZFVzZXIpIDogJycpO1xuICB9XG5cbiAgc29sdXRpb25NZXRhKHNvbHV0aW9uOiBzcmsuU29sdXRpb24pOiBTb2x1dGlvblJlc3VsdE1ldGEge1xuICAgIHJldHVybiBnZXRTb2x1dGlvblJlc3VsdE1ldGEoc29sdXRpb24ucmVzdWx0KTtcbiAgfVxuXG4gIHRyYWNrQnlTb2x1dGlvbihpbmRleDogbnVtYmVyLCBzb2x1dGlvbjogc3JrLlNvbHV0aW9uKSB7XG4gICAgcmV0dXJuIGAke3NvbHV0aW9uLnJlc3VsdH1fJHtzb2x1dGlvbi50aW1lPy5bMF19XyR7aW5kZXh9YDtcbiAgfVxufVxuIl19
149
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdC1zb2x1dGlvbi1tb2RhbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL21vZGFsL2RlZmF1bHQtc29sdXRpb24tbW9kYWwuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxHQUVQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIscUJBQXFCLEVBQ3JCLHFCQUFxQixHQUV0QixNQUFNLDRCQUE0QixDQUFDO0FBQ3BDLE9BQU8sRUFDTCxjQUFjLEdBRWYsTUFBTSxtQkFBbUIsQ0FBQzs7O0FBMEMzQixNQUFNLE9BQU8sNkJBQTZCO0lBQy9CLElBQUksR0FBRyxLQUFLLENBQUM7SUFDYixJQUFJLENBQW1CO0lBQ3ZCLE9BQU8sQ0FBZTtJQUN0QixZQUFZLEdBQUcsQ0FBQyxDQUFDO0lBQ2pCLFNBQVMsR0FBbUIsRUFBRSxDQUFDO0lBQy9CLEtBQUssQ0FBVTtJQUNmLEtBQUssR0FBRyxHQUFHLENBQUM7SUFDWixhQUFhLEdBQUcsd0JBQXdCLENBQUM7SUFDekMsYUFBYSxHQUFHLHFCQUFxQixDQUFDO0lBQ3RDLFVBQVUsR0FBb0MsRUFBRSxDQUFDO0lBQ2pELFNBQVMsQ0FBcUI7SUFFN0IsVUFBVSxHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7SUFDekMsS0FBSyxHQUFHLElBQUksWUFBWSxFQUFvQixDQUFDO0lBRTlDLHVCQUF1QixHQUFHLHVCQUF1QixDQUFDO0lBQzNELFVBQVUsR0FBb0IsSUFBSSxDQUFDO0lBQ25DLGFBQWEsQ0FBZTtJQUM1QixrQkFBa0IsR0FBRyxDQUFDLENBQUM7SUFDdkIsZUFBZSxHQUFtQixFQUFFLENBQUM7SUFFckMsV0FBVyxDQUFDLFFBQXVCO1FBQ2pDLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ2QsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO1lBQzVCLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQztZQUNsQyxJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQztZQUM1QyxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7UUFDeEMsQ0FBQztJQUNILENBQUM7SUFFRCxhQUFhO1FBQ1gsT0FBTyxJQUFJLENBQUMsS0FBSyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLGtCQUFrQixFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNoSSxDQUFDO0lBRUQsWUFBWSxDQUFDLFFBQXNCO1FBQ2pDLE9BQU8scUJBQXFCLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFFRCxlQUFlLENBQUMsS0FBYSxFQUFFLFFBQXNCO1FBQ25ELE9BQU8sR0FBRyxRQUFRLENBQUMsTUFBTSxJQUFJLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLEVBQUUsQ0FBQztJQUM3RCxDQUFDO3dHQXpDVSw2QkFBNkI7NEZBQTdCLDZCQUE2QixzYUFwQzlCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBa0NULDJEQW5DUyxZQUFZLDhWQUFFLGNBQWM7OzRGQXFDM0IsNkJBQTZCO2tCQXhDekMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsNEJBQTRCO29CQUN0QyxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLGNBQWMsQ0FBQztvQkFDdkMsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBa0NUO2lCQUNGOzhCQUVVLElBQUk7c0JBQVosS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBRUksVUFBVTtzQkFBbkIsTUFBTTtnQkFDRyxLQUFLO3NCQUFkLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSAqIGFzIHNyayBmcm9tICdAYWxnb3V4L3N0YW5kYXJkLXJhbmtsaXN0JztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT3V0cHV0LFxuICBTaW1wbGVDaGFuZ2VzLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIGZvcm1hdFNvbHV0aW9uVGltZXN0YW1wLFxuICBnZXRTb2x1dGlvbk1vZGFsVGl0bGUsXG4gIGdldFNvbHV0aW9uUmVzdWx0TWV0YSxcbiAgdHlwZSBTb2x1dGlvblJlc3VsdE1ldGEsXG59IGZyb20gJy4uL3JhbmtsaXN0L3JhbmtsaXN0LXV0aWxzJztcbmltcG9ydCB7XG4gIE1vZGFsQ29tcG9uZW50LFxuICB0eXBlIE1vZGFsQ2xvc2VSZWFzb24sXG59IGZyb20gJy4vbW9kYWwuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3JrLWRlZmF1bHQtc29sdXRpb24tbW9kYWwnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBNb2RhbENvbXBvbmVudF0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPHNyay1tb2RhbFxuICAgICAgKm5nSWY9XCJjYWNoZWRVc2VyXCJcbiAgICAgIFtvcGVuXT1cIm9wZW5cIlxuICAgICAgW3RpdGxlXT1cInJlc29sdmVkVGl0bGUoKVwiXG4gICAgICBbd2lkdGhdPVwid2lkdGhcIlxuICAgICAgW3Jvb3RDbGFzc05hbWVdPVwicm9vdENsYXNzTmFtZVwiXG4gICAgICBbd3JhcENsYXNzTmFtZV09XCJ3cmFwQ2xhc3NOYW1lXCJcbiAgICAgIFtwYW5lbFN0eWxlXT1cInBhbmVsU3R5bGVcIlxuICAgICAgKGNsb3NlKT1cImNsb3NlLmVtaXQoJGV2ZW50KVwiXG4gICAgICAob3BlbkNoYW5nZSk9XCJvcGVuQ2hhbmdlLmVtaXQoJGV2ZW50KVwiXG4gICAgPlxuICAgICAgPHRhYmxlIGNsYXNzPVwic3JrLWNvbW1vbi10YWJsZSBzcmstc29sdXRpb25zLXRhYmxlXCI+XG4gICAgICAgIDx0aGVhZD5cbiAgICAgICAgICA8dHI+XG4gICAgICAgICAgICA8dGggY2xhc3M9XCJzcmstLXRleHQtbGVmdFwiPlJlc3VsdDwvdGg+XG4gICAgICAgICAgICA8dGggY2xhc3M9XCJzcmstLXRleHQtcmlnaHRcIj5UaW1lPC90aD5cbiAgICAgICAgICA8L3RyPlxuICAgICAgICA8L3RoZWFkPlxuICAgICAgICA8dGJvZHk+XG4gICAgICAgICAgPHRyICpuZ0Zvcj1cImxldCBzb2x1dGlvbiBvZiBjYWNoZWRTb2x1dGlvbnM7IGxldCBpbmRleCA9IGluZGV4OyB0cmFja0J5OiB0cmFja0J5U29sdXRpb25cIj5cbiAgICAgICAgICAgIDx0ZD5cbiAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICBjbGFzcz1cInNyay1zb2x1dGlvbi1yZXN1bHQtdGV4dFwiXG4gICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwic29sdXRpb25NZXRhKHNvbHV0aW9uKS5jbGFzc05hbWVcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge3sgc29sdXRpb25NZXRhKHNvbHV0aW9uKS5sYWJlbCB9fVxuICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgPHRkIGNsYXNzPVwic3JrLS10ZXh0LXJpZ2h0XCI+e3sgZm9ybWF0U29sdXRpb25UaW1lc3RhbXAoc29sdXRpb24pIH19PC90ZD5cbiAgICAgICAgICA8L3RyPlxuICAgICAgICA8L3Rib2R5PlxuICAgICAgPC90YWJsZT5cbiAgICA8L3Nyay1tb2RhbD5cbiAgYCxcbn0pXG5leHBvcnQgY2xhc3MgRGVmYXVsdFNvbHV0aW9uTW9kYWxDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICBASW5wdXQoKSBvcGVuID0gZmFsc2U7XG4gIEBJbnB1dCgpIHVzZXI/OiBzcmsuVXNlciB8IG51bGw7XG4gIEBJbnB1dCgpIHByb2JsZW0/OiBzcmsuUHJvYmxlbTtcbiAgQElucHV0KCkgcHJvYmxlbUluZGV4ID0gMDtcbiAgQElucHV0KCkgc29sdXRpb25zOiBzcmsuU29sdXRpb25bXSA9IFtdO1xuICBASW5wdXQoKSB0aXRsZT86IHN0cmluZztcbiAgQElucHV0KCkgd2lkdGggPSAzMjA7XG4gIEBJbnB1dCgpIHJvb3RDbGFzc05hbWUgPSAnc3JrLWdlbmVyYWwtbW9kYWwtcm9vdCc7XG4gIEBJbnB1dCgpIHdyYXBDbGFzc05hbWUgPSAnc3JrLXNvbHV0aW9ucy1tb2RhbCc7XG4gIEBJbnB1dCgpIHBhbmVsU3R5bGU6IFJlY29yZDxzdHJpbmcsIHN0cmluZyB8IG51bWJlcj4gPSB7fTtcbiAgQElucHV0KCkgbGFuZ3VhZ2VzPzogcmVhZG9ubHkgc3RyaW5nW107XG5cbiAgQE91dHB1dCgpIG9wZW5DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG4gIEBPdXRwdXQoKSBjbG9zZSA9IG5ldyBFdmVudEVtaXR0ZXI8TW9kYWxDbG9zZVJlYXNvbj4oKTtcblxuICByZWFkb25seSBmb3JtYXRTb2x1dGlvblRpbWVzdGFtcCA9IGZvcm1hdFNvbHV0aW9uVGltZXN0YW1wO1xuICBjYWNoZWRVc2VyOiBzcmsuVXNlciB8IG51bGwgPSBudWxsO1xuICBjYWNoZWRQcm9ibGVtPzogc3JrLlByb2JsZW07XG4gIGNhY2hlZFByb2JsZW1JbmRleCA9IDA7XG4gIGNhY2hlZFNvbHV0aW9uczogc3JrLlNvbHV0aW9uW10gPSBbXTtcblxuICBuZ09uQ2hhbmdlcyhfY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgIGlmICh0aGlzLnVzZXIpIHtcbiAgICAgIHRoaXMuY2FjaGVkVXNlciA9IHRoaXMudXNlcjtcbiAgICAgIHRoaXMuY2FjaGVkUHJvYmxlbSA9IHRoaXMucHJvYmxlbTtcbiAgICAgIHRoaXMuY2FjaGVkUHJvYmxlbUluZGV4ID0gdGhpcy5wcm9ibGVtSW5kZXg7XG4gICAgICB0aGlzLmNhY2hlZFNvbHV0aW9ucyA9IHRoaXMuc29sdXRpb25zO1xuICAgIH1cbiAgfVxuXG4gIHJlc29sdmVkVGl0bGUoKSB7XG4gICAgcmV0dXJuIHRoaXMudGl0bGUgfHwgKHRoaXMuY2FjaGVkVXNlciA/IGdldFNvbHV0aW9uTW9kYWxUaXRsZSh0aGlzLmNhY2hlZFByb2JsZW1JbmRleCwgdGhpcy5jYWNoZWRVc2VyLCB0aGlzLmxhbmd1YWdlcykgOiAnJyk7XG4gIH1cblxuICBzb2x1dGlvbk1ldGEoc29sdXRpb246IHNyay5Tb2x1dGlvbik6IFNvbHV0aW9uUmVzdWx0TWV0YSB7XG4gICAgcmV0dXJuIGdldFNvbHV0aW9uUmVzdWx0TWV0YShzb2x1dGlvbi5yZXN1bHQpO1xuICB9XG5cbiAgdHJhY2tCeVNvbHV0aW9uKGluZGV4OiBudW1iZXIsIHNvbHV0aW9uOiBzcmsuU29sdXRpb24pIHtcbiAgICByZXR1cm4gYCR7c29sdXRpb24ucmVzdWx0fV8ke3NvbHV0aW9uLnRpbWU/LlswXX1fJHtpbmRleH1gO1xuICB9XG59XG4iXX0=
@@ -1,7 +1,7 @@
1
1
  import { CommonModule } from '@angular/common';
2
2
  import { Component, EventEmitter, Input, Output, } from '@angular/core';
3
3
  import { EnumTheme, resolveText, resolveUserMarkers, } from '@algoux/standard-ranklist-utils';
4
- import { getMarkerPresentation, resolveSrkAssetUrl, } from '../ranklist/ranklist-utils';
4
+ import { formatTeamMemberName, getMarkerPresentation, resolveSrkAssetUrl, } from '../ranklist/ranklist-utils';
5
5
  import { ModalComponent, } from './modal.component';
6
6
  import * as i0 from "@angular/core";
7
7
  import * as i1 from "@angular/common";
@@ -16,9 +16,9 @@ export class DefaultUserModalComponent {
16
16
  wrapClassName = 'srk-user-modal';
17
17
  panelStyle = {};
18
18
  formatSrkAssetUrl;
19
+ languages;
19
20
  openChange = new EventEmitter();
20
21
  close = new EventEmitter();
21
- resolveText = resolveText;
22
22
  cachedUser = null;
23
23
  ngOnChanges(_changes) {
24
24
  if (this.user) {
@@ -37,14 +37,20 @@ export class DefaultUserModalComponent {
37
37
  formatAssetUrl(url, field) {
38
38
  return resolveSrkAssetUrl(url, field, this.formatSrkAssetUrl);
39
39
  }
40
+ resolveDisplayText(text) {
41
+ return resolveText(text, this.languages);
42
+ }
43
+ formatMemberName(member) {
44
+ return formatTeamMemberName(member, this.languages);
45
+ }
40
46
  trackByMarkerId(_index, entry) {
41
47
  return entry.marker.id;
42
48
  }
43
- trackByMemberName(_index, member) {
44
- return resolveText(member.name);
45
- }
49
+ trackByMemberName = (_index, member) => {
50
+ return this.resolveDisplayText(member.name);
51
+ };
46
52
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DefaultUserModalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
47
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: DefaultUserModalComponent, isStandalone: true, selector: "srk-default-user-modal", inputs: { open: "open", user: "user", markers: "markers", theme: "theme", title: "title", width: "width", rootClassName: "rootClassName", wrapClassName: "wrapClassName", panelStyle: "panelStyle", formatSrkAssetUrl: "formatSrkAssetUrl" }, outputs: { openChange: "openChange", close: "close" }, usesOnChanges: true, ngImport: i0, template: `
53
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: DefaultUserModalComponent, isStandalone: true, selector: "srk-default-user-modal", inputs: { open: "open", user: "user", markers: "markers", theme: "theme", title: "title", width: "width", rootClassName: "rootClassName", wrapClassName: "wrapClassName", panelStyle: "panelStyle", formatSrkAssetUrl: "formatSrkAssetUrl", languages: "languages" }, outputs: { openChange: "openChange", close: "close" }, usesOnChanges: true, ngImport: i0, template: `
48
54
  <srk-modal
49
55
  *ngIf="cachedUser as modalUser"
50
56
  [open]="open"
@@ -57,9 +63,9 @@ export class DefaultUserModalComponent {
57
63
  (openChange)="openChange.emit($event)"
58
64
  >
59
65
  <div class="srk-user-modal-info">
60
- <h3 class="srk-user-modal-info-user-name">{{ resolveText(modalUser.name) }}</h3>
66
+ <h3 class="srk-user-modal-info-user-name">{{ resolveDisplayText(modalUser.name) }}</h3>
61
67
  <p *ngIf="modalUser.organization" class="srk-user-modal-info-user-second-name">
62
- {{ resolveText(modalUser.organization) }}
68
+ {{ resolveDisplayText(modalUser.organization) }}
63
69
  </p>
64
70
  <div class="srk-user-modal-info-labels">
65
71
  <span class="srk-user-modal-info-labels-label srk-user-modal-info-labels-label-preset-general">
@@ -71,13 +77,13 @@ export class DefaultUserModalComponent {
71
77
  [ngClass]="entry.presentation.className"
72
78
  [ngStyle]="entry.presentation.style"
73
79
  >
74
- {{ resolveText(entry.marker.label) }}
80
+ {{ resolveDisplayText(entry.marker.label) }}
75
81
  </span>
76
82
  </div>
77
83
  <div *ngIf="modalUser.teamMembers?.length" class="srk-user-modal-info-team-members">
78
84
  <ng-container *ngFor="let member of modalUser.teamMembers; let index = index; trackBy: trackByMemberName">
79
85
  <span *ngIf="index > 0" class="srk-user-modal-info-team-members-slash"> / </span>
80
- <span>{{ resolveText(member.name) }}</span>
86
+ <span>{{ formatMemberName(member) }}</span>
81
87
  </ng-container>
82
88
  </div>
83
89
  <div *ngIf="modalUser.photo" class="srk-user-modal-info-photo">
@@ -110,9 +116,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
110
116
  (openChange)="openChange.emit($event)"
111
117
  >
112
118
  <div class="srk-user-modal-info">
113
- <h3 class="srk-user-modal-info-user-name">{{ resolveText(modalUser.name) }}</h3>
119
+ <h3 class="srk-user-modal-info-user-name">{{ resolveDisplayText(modalUser.name) }}</h3>
114
120
  <p *ngIf="modalUser.organization" class="srk-user-modal-info-user-second-name">
115
- {{ resolveText(modalUser.organization) }}
121
+ {{ resolveDisplayText(modalUser.organization) }}
116
122
  </p>
117
123
  <div class="srk-user-modal-info-labels">
118
124
  <span class="srk-user-modal-info-labels-label srk-user-modal-info-labels-label-preset-general">
@@ -124,13 +130,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
124
130
  [ngClass]="entry.presentation.className"
125
131
  [ngStyle]="entry.presentation.style"
126
132
  >
127
- {{ resolveText(entry.marker.label) }}
133
+ {{ resolveDisplayText(entry.marker.label) }}
128
134
  </span>
129
135
  </div>
130
136
  <div *ngIf="modalUser.teamMembers?.length" class="srk-user-modal-info-team-members">
131
137
  <ng-container *ngFor="let member of modalUser.teamMembers; let index = index; trackBy: trackByMemberName">
132
138
  <span *ngIf="index > 0" class="srk-user-modal-info-team-members-slash"> / </span>
133
- <span>{{ resolveText(member.name) }}</span>
139
+ <span>{{ formatMemberName(member) }}</span>
134
140
  </ng-container>
135
141
  </div>
136
142
  <div *ngIf="modalUser.photo" class="srk-user-modal-info-photo">
@@ -164,9 +170,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
164
170
  type: Input
165
171
  }], formatSrkAssetUrl: [{
166
172
  type: Input
173
+ }], languages: [{
174
+ type: Input
167
175
  }], openChange: [{
168
176
  type: Output
169
177
  }], close: [{
170
178
  type: Output
171
179
  }] } });
172
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdC11c2VyLW1vZGFsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvbW9kYWwvZGVmYXVsdC11c2VyLW1vZGFsLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUNMLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sR0FFUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0wsU0FBUyxFQUNULFdBQVcsRUFDWCxrQkFBa0IsR0FDbkIsTUFBTSxpQ0FBaUMsQ0FBQztBQUN6QyxPQUFPLEVBQ0wscUJBQXFCLEVBRXJCLGtCQUFrQixHQUNuQixNQUFNLDRCQUE0QixDQUFDO0FBQ3BDLE9BQU8sRUFDTCxjQUFjLEdBRWYsTUFBTSxtQkFBbUIsQ0FBQzs7O0FBMEQzQixNQUFNLE9BQU8seUJBQXlCO0lBQzNCLElBQUksR0FBRyxLQUFLLENBQUM7SUFDYixJQUFJLENBQW1CO0lBQ3ZCLE9BQU8sR0FBaUIsRUFBRSxDQUFDO0lBQzNCLEtBQUssR0FBRyxTQUFTLENBQUMsS0FBSyxDQUFDO0lBQ3hCLEtBQUssR0FBRyxXQUFXLENBQUM7SUFDcEIsS0FBSyxHQUFHLEdBQUcsQ0FBQztJQUNaLGFBQWEsR0FBRyx3QkFBd0IsQ0FBQztJQUN6QyxhQUFhLEdBQUcsZ0JBQWdCLENBQUM7SUFDakMsVUFBVSxHQUFvQyxFQUFFLENBQUM7SUFDakQsaUJBQWlCLENBQTBDO0lBRTFELFVBQVUsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO0lBQ3pDLEtBQUssR0FBRyxJQUFJLFlBQVksRUFBb0IsQ0FBQztJQUU5QyxXQUFXLEdBQUcsV0FBVyxDQUFDO0lBQ25DLFVBQVUsR0FBb0IsSUFBSSxDQUFDO0lBRW5DLFdBQVcsQ0FBQyxRQUF1QjtRQUNqQyxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNkLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztRQUM5QixDQUFDO0lBQ0gsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ3JCLE9BQU8sRUFBRSxDQUFDO1FBQ1osQ0FBQztRQUNELE9BQU8sa0JBQWtCLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ3hFLE1BQU07WUFDTixZQUFZLEVBQUUscUJBQXFCLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUM7U0FDeEQsQ0FBQyxDQUFDLENBQUM7SUFDTixDQUFDO0lBRUQsY0FBYyxDQUFDLEdBQVcsRUFBRSxLQUFhO1FBQ3ZDLE9BQU8sa0JBQWtCLENBQUMsR0FBRyxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUNoRSxDQUFDO0lBRUQsZUFBZSxDQUFDLE1BQWMsRUFBRSxLQUFxQjtRQUNuRCxPQUFPLEtBQUssQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxNQUFjLEVBQUUsTUFBd0I7UUFDeEQsT0FBTyxXQUFXLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2xDLENBQUM7d0dBNUNVLHlCQUF5Qjs0RkFBekIseUJBQXlCLDRZQS9DMUI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTZDVCwyREE5Q1MsWUFBWSxtYkFBRSxjQUFjOzs0RkFnRDNCLHlCQUF5QjtrQkFuRHJDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHdCQUF3QjtvQkFDbEMsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxjQUFjLENBQUM7b0JBQ3ZDLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBNkNUO2lCQUNGOzhCQUVVLElBQUk7c0JBQVosS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFFSSxVQUFVO3NCQUFuQixNQUFNO2dCQUNHLEtBQUs7c0JBQWQsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlICogYXMgc3JrIGZyb20gJ0BhbGdvdXgvc3RhbmRhcmQtcmFua2xpc3QnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPdXRwdXQsXG4gIFNpbXBsZUNoYW5nZXMsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgRW51bVRoZW1lLFxuICByZXNvbHZlVGV4dCxcbiAgcmVzb2x2ZVVzZXJNYXJrZXJzLFxufSBmcm9tICdAYWxnb3V4L3N0YW5kYXJkLXJhbmtsaXN0LXV0aWxzJztcbmltcG9ydCB7XG4gIGdldE1hcmtlclByZXNlbnRhdGlvbixcbiAgdHlwZSBNYXJrZXJQcmVzZW50YXRpb24sXG4gIHJlc29sdmVTcmtBc3NldFVybCxcbn0gZnJvbSAnLi4vcmFua2xpc3QvcmFua2xpc3QtdXRpbHMnO1xuaW1wb3J0IHtcbiAgTW9kYWxDb21wb25lbnQsXG4gIHR5cGUgTW9kYWxDbG9zZVJlYXNvbixcbn0gZnJvbSAnLi9tb2RhbC5jb21wb25lbnQnO1xuXG5pbnRlcmZhY2UgUmVzb2x2ZWRNYXJrZXIge1xuICBtYXJrZXI6IHNyay5NYXJrZXI7XG4gIHByZXNlbnRhdGlvbjogTWFya2VyUHJlc2VudGF0aW9uO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzcmstZGVmYXVsdC11c2VyLW1vZGFsJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgTW9kYWxDb21wb25lbnRdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxzcmstbW9kYWxcbiAgICAgICpuZ0lmPVwiY2FjaGVkVXNlciBhcyBtb2RhbFVzZXJcIlxuICAgICAgW29wZW5dPVwib3BlblwiXG4gICAgICBbdGl0bGVdPVwidGl0bGVcIlxuICAgICAgW3dpZHRoXT1cIndpZHRoXCJcbiAgICAgIFtyb290Q2xhc3NOYW1lXT1cInJvb3RDbGFzc05hbWVcIlxuICAgICAgW3dyYXBDbGFzc05hbWVdPVwid3JhcENsYXNzTmFtZVwiXG4gICAgICBbcGFuZWxTdHlsZV09XCJwYW5lbFN0eWxlXCJcbiAgICAgIChjbG9zZSk9XCJjbG9zZS5lbWl0KCRldmVudClcIlxuICAgICAgKG9wZW5DaGFuZ2UpPVwib3BlbkNoYW5nZS5lbWl0KCRldmVudClcIlxuICAgID5cbiAgICAgIDxkaXYgY2xhc3M9XCJzcmstdXNlci1tb2RhbC1pbmZvXCI+XG4gICAgICAgIDxoMyBjbGFzcz1cInNyay11c2VyLW1vZGFsLWluZm8tdXNlci1uYW1lXCI+e3sgcmVzb2x2ZVRleHQobW9kYWxVc2VyLm5hbWUpIH19PC9oMz5cbiAgICAgICAgPHAgKm5nSWY9XCJtb2RhbFVzZXIub3JnYW5pemF0aW9uXCIgY2xhc3M9XCJzcmstdXNlci1tb2RhbC1pbmZvLXVzZXItc2Vjb25kLW5hbWVcIj5cbiAgICAgICAgICB7eyByZXNvbHZlVGV4dChtb2RhbFVzZXIub3JnYW5pemF0aW9uKSB9fVxuICAgICAgICA8L3A+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzcmstdXNlci1tb2RhbC1pbmZvLWxhYmVsc1wiPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3JrLXVzZXItbW9kYWwtaW5mby1sYWJlbHMtbGFiZWwgc3JrLXVzZXItbW9kYWwtaW5mby1sYWJlbHMtbGFiZWwtcHJlc2V0LWdlbmVyYWxcIj5cbiAgICAgICAgICAgIHt7IG1vZGFsVXNlci5vZmZpY2lhbCA9PT0gZmFsc2UgPyAn77yKIOmdnuato+W8j+WPguWKoOiAhScgOiAn5q2j5byP5Y+C5Yqg6ICFJyB9fVxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgKm5nRm9yPVwibGV0IGVudHJ5IG9mIHJlc29sdmVkTWFya2VycygpOyB0cmFja0J5OiB0cmFja0J5TWFya2VySWRcIlxuICAgICAgICAgICAgY2xhc3M9XCJzcmstdXNlci1tb2RhbC1pbmZvLWxhYmVscy1sYWJlbFwiXG4gICAgICAgICAgICBbbmdDbGFzc109XCJlbnRyeS5wcmVzZW50YXRpb24uY2xhc3NOYW1lXCJcbiAgICAgICAgICAgIFtuZ1N0eWxlXT1cImVudHJ5LnByZXNlbnRhdGlvbi5zdHlsZVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAge3sgcmVzb2x2ZVRleHQoZW50cnkubWFya2VyLmxhYmVsKSB9fVxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgKm5nSWY9XCJtb2RhbFVzZXIudGVhbU1lbWJlcnM/Lmxlbmd0aFwiIGNsYXNzPVwic3JrLXVzZXItbW9kYWwtaW5mby10ZWFtLW1lbWJlcnNcIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBtZW1iZXIgb2YgbW9kYWxVc2VyLnRlYW1NZW1iZXJzOyBsZXQgaW5kZXggPSBpbmRleDsgdHJhY2tCeTogdHJhY2tCeU1lbWJlck5hbWVcIj5cbiAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiaW5kZXggPiAwXCIgY2xhc3M9XCJzcmstdXNlci1tb2RhbC1pbmZvLXRlYW0tbWVtYmVycy1zbGFzaFwiPiAvIDwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuPnt7IHJlc29sdmVUZXh0KG1lbWJlci5uYW1lKSB9fTwvc3Bhbj5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgKm5nSWY9XCJtb2RhbFVzZXIucGhvdG9cIiBjbGFzcz1cInNyay11c2VyLW1vZGFsLWluZm8tcGhvdG9cIj5cbiAgICAgICAgICA8aW1nXG4gICAgICAgICAgICBbc3JjXT1cImZvcm1hdEFzc2V0VXJsKG1vZGFsVXNlci5waG90bywgJ3VzZXIucGhvdG8nKVwiXG4gICAgICAgICAgICBhbHQ9XCJVc2VyIHBvcnRyYWl0XCJcbiAgICAgICAgICAgIGNsYXNzPVwic3JrLXVzZXItbW9kYWwtaW5mby1waG90by1pbWdcIlxuICAgICAgICAgIC8+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9zcmstbW9kYWw+XG4gIGAsXG59KVxuZXhwb3J0IGNsYXNzIERlZmF1bHRVc2VyTW9kYWxDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICBASW5wdXQoKSBvcGVuID0gZmFsc2U7XG4gIEBJbnB1dCgpIHVzZXI/OiBzcmsuVXNlciB8IG51bGw7XG4gIEBJbnB1dCgpIG1hcmtlcnM6IHNyay5NYXJrZXJbXSA9IFtdO1xuICBASW5wdXQoKSB0aGVtZSA9IEVudW1UaGVtZS5saWdodDtcbiAgQElucHV0KCkgdGl0bGUgPSAnVXNlciBJbmZvJztcbiAgQElucHV0KCkgd2lkdGggPSA0MjA7XG4gIEBJbnB1dCgpIHJvb3RDbGFzc05hbWUgPSAnc3JrLWdlbmVyYWwtbW9kYWwtcm9vdCc7XG4gIEBJbnB1dCgpIHdyYXBDbGFzc05hbWUgPSAnc3JrLXVzZXItbW9kYWwnO1xuICBASW5wdXQoKSBwYW5lbFN0eWxlOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmcgfCBudW1iZXI+ID0ge307XG4gIEBJbnB1dCgpIGZvcm1hdFNya0Fzc2V0VXJsPzogKHVybDogc3RyaW5nLCBmaWVsZDogc3RyaW5nKSA9PiBzdHJpbmc7XG5cbiAgQE91dHB1dCgpIG9wZW5DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG4gIEBPdXRwdXQoKSBjbG9zZSA9IG5ldyBFdmVudEVtaXR0ZXI8TW9kYWxDbG9zZVJlYXNvbj4oKTtcblxuICByZWFkb25seSByZXNvbHZlVGV4dCA9IHJlc29sdmVUZXh0O1xuICBjYWNoZWRVc2VyOiBzcmsuVXNlciB8IG51bGwgPSBudWxsO1xuXG4gIG5nT25DaGFuZ2VzKF9jaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgaWYgKHRoaXMudXNlcikge1xuICAgICAgdGhpcy5jYWNoZWRVc2VyID0gdGhpcy51c2VyO1xuICAgIH1cbiAgfVxuXG4gIHJlc29sdmVkTWFya2VycygpOiBSZXNvbHZlZE1hcmtlcltdIHtcbiAgICBpZiAoIXRoaXMuY2FjaGVkVXNlcikge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cbiAgICByZXR1cm4gcmVzb2x2ZVVzZXJNYXJrZXJzKHRoaXMuY2FjaGVkVXNlciwgdGhpcy5tYXJrZXJzKS5tYXAoKG1hcmtlcikgPT4gKHtcbiAgICAgIG1hcmtlcixcbiAgICAgIHByZXNlbnRhdGlvbjogZ2V0TWFya2VyUHJlc2VudGF0aW9uKG1hcmtlciwgdGhpcy50aGVtZSksXG4gICAgfSkpO1xuICB9XG5cbiAgZm9ybWF0QXNzZXRVcmwodXJsOiBzdHJpbmcsIGZpZWxkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gcmVzb2x2ZVNya0Fzc2V0VXJsKHVybCwgZmllbGQsIHRoaXMuZm9ybWF0U3JrQXNzZXRVcmwpO1xuICB9XG5cbiAgdHJhY2tCeU1hcmtlcklkKF9pbmRleDogbnVtYmVyLCBlbnRyeTogUmVzb2x2ZWRNYXJrZXIpIHtcbiAgICByZXR1cm4gZW50cnkubWFya2VyLmlkO1xuICB9XG5cbiAgdHJhY2tCeU1lbWJlck5hbWUoX2luZGV4OiBudW1iZXIsIG1lbWJlcjogc3JrLkV4dGVybmFsVXNlcikge1xuICAgIHJldHVybiByZXNvbHZlVGV4dChtZW1iZXIubmFtZSk7XG4gIH1cbn1cbiJdfQ==
180
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdC11c2VyLW1vZGFsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvbW9kYWwvZGVmYXVsdC11c2VyLW1vZGFsLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUNMLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sR0FFUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0wsU0FBUyxFQUNULFdBQVcsRUFDWCxrQkFBa0IsR0FDbkIsTUFBTSxpQ0FBaUMsQ0FBQztBQUN6QyxPQUFPLEVBQ0wsb0JBQW9CLEVBQ3BCLHFCQUFxQixFQUVyQixrQkFBa0IsR0FDbkIsTUFBTSw0QkFBNEIsQ0FBQztBQUNwQyxPQUFPLEVBQ0wsY0FBYyxHQUVmLE1BQU0sbUJBQW1CLENBQUM7OztBQTBEM0IsTUFBTSxPQUFPLHlCQUF5QjtJQUMzQixJQUFJLEdBQUcsS0FBSyxDQUFDO0lBQ2IsSUFBSSxDQUFtQjtJQUN2QixPQUFPLEdBQWlCLEVBQUUsQ0FBQztJQUMzQixLQUFLLEdBQUcsU0FBUyxDQUFDLEtBQUssQ0FBQztJQUN4QixLQUFLLEdBQUcsV0FBVyxDQUFDO0lBQ3BCLEtBQUssR0FBRyxHQUFHLENBQUM7SUFDWixhQUFhLEdBQUcsd0JBQXdCLENBQUM7SUFDekMsYUFBYSxHQUFHLGdCQUFnQixDQUFDO0lBQ2pDLFVBQVUsR0FBb0MsRUFBRSxDQUFDO0lBQ2pELGlCQUFpQixDQUEwQztJQUMzRCxTQUFTLENBQXFCO0lBRTdCLFVBQVUsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO0lBQ3pDLEtBQUssR0FBRyxJQUFJLFlBQVksRUFBb0IsQ0FBQztJQUV2RCxVQUFVLEdBQW9CLElBQUksQ0FBQztJQUVuQyxXQUFXLENBQUMsUUFBdUI7UUFDakMsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDZCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDOUIsQ0FBQztJQUNILENBQUM7SUFFRCxlQUFlO1FBQ2IsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNyQixPQUFPLEVBQUUsQ0FBQztRQUNaLENBQUM7UUFDRCxPQUFPLGtCQUFrQixDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQztZQUN4RSxNQUFNO1lBQ04sWUFBWSxFQUFFLHFCQUFxQixDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDO1NBQ3hELENBQUMsQ0FBQyxDQUFDO0lBQ04sQ0FBQztJQUVELGNBQWMsQ0FBQyxHQUFXLEVBQUUsS0FBYTtRQUN2QyxPQUFPLGtCQUFrQixDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDaEUsQ0FBQztJQUVELGtCQUFrQixDQUFDLElBQXVDO1FBQ3hELE9BQU8sV0FBVyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVELGdCQUFnQixDQUFDLE1BQXdCO1FBQ3ZDLE9BQU8sb0JBQW9CLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBRUQsZUFBZSxDQUFDLE1BQWMsRUFBRSxLQUFxQjtRQUNuRCxPQUFPLEtBQUssQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxpQkFBaUIsR0FBRyxDQUFDLE1BQWMsRUFBRSxNQUF3QixFQUFFLEVBQUU7UUFDL0QsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzlDLENBQUMsQ0FBQzt3R0FwRFMseUJBQXlCOzRGQUF6Qix5QkFBeUIsb2FBL0MxQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBNkNULDJEQTlDUyxZQUFZLG1iQUFFLGNBQWM7OzRGQWdEM0IseUJBQXlCO2tCQW5EckMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsd0JBQXdCO29CQUNsQyxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLGNBQWMsQ0FBQztvQkFDdkMsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E2Q1Q7aUJBQ0Y7OEJBRVUsSUFBSTtzQkFBWixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBRUksVUFBVTtzQkFBbkIsTUFBTTtnQkFDRyxLQUFLO3NCQUFkLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSAqIGFzIHNyayBmcm9tICdAYWxnb3V4L3N0YW5kYXJkLXJhbmtsaXN0JztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT3V0cHV0LFxuICBTaW1wbGVDaGFuZ2VzLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEVudW1UaGVtZSxcbiAgcmVzb2x2ZVRleHQsXG4gIHJlc29sdmVVc2VyTWFya2Vycyxcbn0gZnJvbSAnQGFsZ291eC9zdGFuZGFyZC1yYW5rbGlzdC11dGlscyc7XG5pbXBvcnQge1xuICBmb3JtYXRUZWFtTWVtYmVyTmFtZSxcbiAgZ2V0TWFya2VyUHJlc2VudGF0aW9uLFxuICB0eXBlIE1hcmtlclByZXNlbnRhdGlvbixcbiAgcmVzb2x2ZVNya0Fzc2V0VXJsLFxufSBmcm9tICcuLi9yYW5rbGlzdC9yYW5rbGlzdC11dGlscyc7XG5pbXBvcnQge1xuICBNb2RhbENvbXBvbmVudCxcbiAgdHlwZSBNb2RhbENsb3NlUmVhc29uLFxufSBmcm9tICcuL21vZGFsLmNvbXBvbmVudCc7XG5cbmludGVyZmFjZSBSZXNvbHZlZE1hcmtlciB7XG4gIG1hcmtlcjogc3JrLk1hcmtlcjtcbiAgcHJlc2VudGF0aW9uOiBNYXJrZXJQcmVzZW50YXRpb247XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Nyay1kZWZhdWx0LXVzZXItbW9kYWwnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBNb2RhbENvbXBvbmVudF0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPHNyay1tb2RhbFxuICAgICAgKm5nSWY9XCJjYWNoZWRVc2VyIGFzIG1vZGFsVXNlclwiXG4gICAgICBbb3Blbl09XCJvcGVuXCJcbiAgICAgIFt0aXRsZV09XCJ0aXRsZVwiXG4gICAgICBbd2lkdGhdPVwid2lkdGhcIlxuICAgICAgW3Jvb3RDbGFzc05hbWVdPVwicm9vdENsYXNzTmFtZVwiXG4gICAgICBbd3JhcENsYXNzTmFtZV09XCJ3cmFwQ2xhc3NOYW1lXCJcbiAgICAgIFtwYW5lbFN0eWxlXT1cInBhbmVsU3R5bGVcIlxuICAgICAgKGNsb3NlKT1cImNsb3NlLmVtaXQoJGV2ZW50KVwiXG4gICAgICAob3BlbkNoYW5nZSk9XCJvcGVuQ2hhbmdlLmVtaXQoJGV2ZW50KVwiXG4gICAgPlxuICAgICAgPGRpdiBjbGFzcz1cInNyay11c2VyLW1vZGFsLWluZm9cIj5cbiAgICAgICAgPGgzIGNsYXNzPVwic3JrLXVzZXItbW9kYWwtaW5mby11c2VyLW5hbWVcIj57eyByZXNvbHZlRGlzcGxheVRleHQobW9kYWxVc2VyLm5hbWUpIH19PC9oMz5cbiAgICAgICAgPHAgKm5nSWY9XCJtb2RhbFVzZXIub3JnYW5pemF0aW9uXCIgY2xhc3M9XCJzcmstdXNlci1tb2RhbC1pbmZvLXVzZXItc2Vjb25kLW5hbWVcIj5cbiAgICAgICAgICB7eyByZXNvbHZlRGlzcGxheVRleHQobW9kYWxVc2VyLm9yZ2FuaXphdGlvbikgfX1cbiAgICAgICAgPC9wPlxuICAgICAgICA8ZGl2IGNsYXNzPVwic3JrLXVzZXItbW9kYWwtaW5mby1sYWJlbHNcIj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInNyay11c2VyLW1vZGFsLWluZm8tbGFiZWxzLWxhYmVsIHNyay11c2VyLW1vZGFsLWluZm8tbGFiZWxzLWxhYmVsLXByZXNldC1nZW5lcmFsXCI+XG4gICAgICAgICAgICB7eyBtb2RhbFVzZXIub2ZmaWNpYWwgPT09IGZhbHNlID8gJ++8iiDpnZ7mraPlvI/lj4LliqDogIUnIDogJ+ato+W8j+WPguWKoOiAhScgfX1cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICpuZ0Zvcj1cImxldCBlbnRyeSBvZiByZXNvbHZlZE1hcmtlcnMoKTsgdHJhY2tCeTogdHJhY2tCeU1hcmtlcklkXCJcbiAgICAgICAgICAgIGNsYXNzPVwic3JrLXVzZXItbW9kYWwtaW5mby1sYWJlbHMtbGFiZWxcIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwiZW50cnkucHJlc2VudGF0aW9uLmNsYXNzTmFtZVwiXG4gICAgICAgICAgICBbbmdTdHlsZV09XCJlbnRyeS5wcmVzZW50YXRpb24uc3R5bGVcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIHt7IHJlc29sdmVEaXNwbGF5VGV4dChlbnRyeS5tYXJrZXIubGFiZWwpIH19XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiAqbmdJZj1cIm1vZGFsVXNlci50ZWFtTWVtYmVycz8ubGVuZ3RoXCIgY2xhc3M9XCJzcmstdXNlci1tb2RhbC1pbmZvLXRlYW0tbWVtYmVyc1wiPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IG1lbWJlciBvZiBtb2RhbFVzZXIudGVhbU1lbWJlcnM7IGxldCBpbmRleCA9IGluZGV4OyB0cmFja0J5OiB0cmFja0J5TWVtYmVyTmFtZVwiPlxuICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJpbmRleCA+IDBcIiBjbGFzcz1cInNyay11c2VyLW1vZGFsLWluZm8tdGVhbS1tZW1iZXJzLXNsYXNoXCI+IC8gPC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4+e3sgZm9ybWF0TWVtYmVyTmFtZShtZW1iZXIpIH19PC9zcGFuPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiAqbmdJZj1cIm1vZGFsVXNlci5waG90b1wiIGNsYXNzPVwic3JrLXVzZXItbW9kYWwtaW5mby1waG90b1wiPlxuICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgIFtzcmNdPVwiZm9ybWF0QXNzZXRVcmwobW9kYWxVc2VyLnBob3RvLCAndXNlci5waG90bycpXCJcbiAgICAgICAgICAgIGFsdD1cIlVzZXIgcG9ydHJhaXRcIlxuICAgICAgICAgICAgY2xhc3M9XCJzcmstdXNlci1tb2RhbC1pbmZvLXBob3RvLWltZ1wiXG4gICAgICAgICAgLz5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L3Nyay1tb2RhbD5cbiAgYCxcbn0pXG5leHBvcnQgY2xhc3MgRGVmYXVsdFVzZXJNb2RhbENvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG4gIEBJbnB1dCgpIG9wZW4gPSBmYWxzZTtcbiAgQElucHV0KCkgdXNlcj86IHNyay5Vc2VyIHwgbnVsbDtcbiAgQElucHV0KCkgbWFya2Vyczogc3JrLk1hcmtlcltdID0gW107XG4gIEBJbnB1dCgpIHRoZW1lID0gRW51bVRoZW1lLmxpZ2h0O1xuICBASW5wdXQoKSB0aXRsZSA9ICdVc2VyIEluZm8nO1xuICBASW5wdXQoKSB3aWR0aCA9IDQyMDtcbiAgQElucHV0KCkgcm9vdENsYXNzTmFtZSA9ICdzcmstZ2VuZXJhbC1tb2RhbC1yb290JztcbiAgQElucHV0KCkgd3JhcENsYXNzTmFtZSA9ICdzcmstdXNlci1tb2RhbCc7XG4gIEBJbnB1dCgpIHBhbmVsU3R5bGU6IFJlY29yZDxzdHJpbmcsIHN0cmluZyB8IG51bWJlcj4gPSB7fTtcbiAgQElucHV0KCkgZm9ybWF0U3JrQXNzZXRVcmw/OiAodXJsOiBzdHJpbmcsIGZpZWxkOiBzdHJpbmcpID0+IHN0cmluZztcbiAgQElucHV0KCkgbGFuZ3VhZ2VzPzogcmVhZG9ubHkgc3RyaW5nW107XG5cbiAgQE91dHB1dCgpIG9wZW5DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG4gIEBPdXRwdXQoKSBjbG9zZSA9IG5ldyBFdmVudEVtaXR0ZXI8TW9kYWxDbG9zZVJlYXNvbj4oKTtcblxuICBjYWNoZWRVc2VyOiBzcmsuVXNlciB8IG51bGwgPSBudWxsO1xuXG4gIG5nT25DaGFuZ2VzKF9jaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgaWYgKHRoaXMudXNlcikge1xuICAgICAgdGhpcy5jYWNoZWRVc2VyID0gdGhpcy51c2VyO1xuICAgIH1cbiAgfVxuXG4gIHJlc29sdmVkTWFya2VycygpOiBSZXNvbHZlZE1hcmtlcltdIHtcbiAgICBpZiAoIXRoaXMuY2FjaGVkVXNlcikge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cbiAgICByZXR1cm4gcmVzb2x2ZVVzZXJNYXJrZXJzKHRoaXMuY2FjaGVkVXNlciwgdGhpcy5tYXJrZXJzKS5tYXAoKG1hcmtlcikgPT4gKHtcbiAgICAgIG1hcmtlcixcbiAgICAgIHByZXNlbnRhdGlvbjogZ2V0TWFya2VyUHJlc2VudGF0aW9uKG1hcmtlciwgdGhpcy50aGVtZSksXG4gICAgfSkpO1xuICB9XG5cbiAgZm9ybWF0QXNzZXRVcmwodXJsOiBzdHJpbmcsIGZpZWxkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gcmVzb2x2ZVNya0Fzc2V0VXJsKHVybCwgZmllbGQsIHRoaXMuZm9ybWF0U3JrQXNzZXRVcmwpO1xuICB9XG5cbiAgcmVzb2x2ZURpc3BsYXlUZXh0KHRleHQ6IFBhcmFtZXRlcnM8dHlwZW9mIHJlc29sdmVUZXh0PlswXSkge1xuICAgIHJldHVybiByZXNvbHZlVGV4dCh0ZXh0LCB0aGlzLmxhbmd1YWdlcyk7XG4gIH1cblxuICBmb3JtYXRNZW1iZXJOYW1lKG1lbWJlcjogc3JrLkV4dGVybmFsVXNlcikge1xuICAgIHJldHVybiBmb3JtYXRUZWFtTWVtYmVyTmFtZShtZW1iZXIsIHRoaXMubGFuZ3VhZ2VzKTtcbiAgfVxuXG4gIHRyYWNrQnlNYXJrZXJJZChfaW5kZXg6IG51bWJlciwgZW50cnk6IFJlc29sdmVkTWFya2VyKSB7XG4gICAgcmV0dXJuIGVudHJ5Lm1hcmtlci5pZDtcbiAgfVxuXG4gIHRyYWNrQnlNZW1iZXJOYW1lID0gKF9pbmRleDogbnVtYmVyLCBtZW1iZXI6IHNyay5FeHRlcm5hbFVzZXIpID0+IHtcbiAgICByZXR1cm4gdGhpcy5yZXNvbHZlRGlzcGxheVRleHQobWVtYmVyLm5hbWUpO1xuICB9O1xufVxuIl19
@@ -1,45 +1,2 @@
1
- import { canRegenerateRanklist, formatTimeDuration, } from '@algoux/standard-ranklist-utils';
2
- export function getProgressDurationMinutes(contest) {
3
- return formatTimeDuration(contest.duration, 'min');
4
- }
5
- export function getProgressMaxAvailableMinutes(contest, localTime, td = 0) {
6
- const startAt = new Date(contest.startAt).getTime();
7
- const currentTime = localTime - td;
8
- return Math.min(Math.max(Math.floor((currentTime - startAt) / 60000), 0), getProgressDurationMinutes(contest));
9
- }
10
- export function isProgressEnded(contest, localTime, td = 0) {
11
- const startAt = new Date(contest.startAt).getTime();
12
- const endAt = startAt + formatTimeDuration(contest.duration, 'ms');
13
- const currentTime = localTime - td;
14
- return currentTime >= endAt;
15
- }
16
- export function getProgressMetrics(data, localTime, td, timeTravelCurrentValue, inTimeMachine) {
17
- const { contest } = data;
18
- const startAt = new Date(contest.startAt).getTime();
19
- const endAt = startAt + formatTimeDuration(contest.duration, 'ms');
20
- const frozenLength = contest.frozenDuration ? formatTimeDuration(contest.frozenDuration, 'ms') : 0;
21
- const currentTime = localTime - td;
22
- const length = endAt - startAt;
23
- const frozenBreakpoint = length ? 1 - frozenLength / length : 1;
24
- const elapsed = Math.min(Math.max(currentTime - startAt, 0), length);
25
- const remaining = length - elapsed;
26
- const frozenAt = endAt - frozenLength;
27
- const percent = length ? (elapsed / length) * 100 : 0;
28
- const normalPercent = length ? (Math.max(Math.min(currentTime, frozenAt) - startAt, 0) / length) * 100 : 0;
29
- const normalInnerPercent = Math.min(100, frozenBreakpoint ? normalPercent / frozenBreakpoint : 0);
30
- const frozenPercent = percent - normalPercent;
31
- const frozenInnerPercent = Math.min(100, 1 - frozenBreakpoint ? frozenPercent / (1 - frozenBreakpoint) : 0);
32
- const timeTravelElapsed = timeTravelCurrentValue * 60 * 1000;
33
- const timeTravelRemaining = length - timeTravelElapsed;
34
- return {
35
- elapsed: inTimeMachine ? timeTravelElapsed : elapsed,
36
- remaining: inTimeMachine ? timeTravelRemaining : remaining,
37
- frozenBreakpoint,
38
- normalInnerPercent,
39
- frozenInnerPercent,
40
- timeTravelElapsed,
41
- timeTravelRemaining,
42
- supportRegen: canRegenerateRanklist(data),
43
- };
44
- }
45
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZ3Jlc3MtdXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL3Byb2dyZXNzL3Byb2dyZXNzLXV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFDTCxxQkFBcUIsRUFDckIsa0JBQWtCLEdBQ25CLE1BQU0saUNBQWlDLENBQUM7QUFhekMsTUFBTSxVQUFVLDBCQUEwQixDQUFDLE9BQW9CO0lBQzdELE9BQU8sa0JBQWtCLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsQ0FBQztBQUNyRCxDQUFDO0FBRUQsTUFBTSxVQUFVLDhCQUE4QixDQUFDLE9BQW9CLEVBQUUsU0FBaUIsRUFBRSxFQUFFLEdBQUcsQ0FBQztJQUM1RixNQUFNLE9BQU8sR0FBRyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDcEQsTUFBTSxXQUFXLEdBQUcsU0FBUyxHQUFHLEVBQUUsQ0FBQztJQUNuQyxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsV0FBVyxHQUFHLE9BQU8sQ0FBQyxHQUFHLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLDBCQUEwQixDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7QUFDakgsQ0FBQztBQUVELE1BQU0sVUFBVSxlQUFlLENBQUMsT0FBb0IsRUFBRSxTQUFpQixFQUFFLEVBQUUsR0FBRyxDQUFDO0lBQzdFLE1BQU0sT0FBTyxHQUFHLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNwRCxNQUFNLEtBQUssR0FBRyxPQUFPLEdBQUcsa0JBQWtCLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNuRSxNQUFNLFdBQVcsR0FBRyxTQUFTLEdB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IHR5cGUgKiBhcyBzcmsgZnJvbSAnQGFsZ291eC9zdGFuZGFyZC1yYW5rbGlzdCc7XG5pbXBvcnQge1xuICBjYW5SZWdlbmVyYXRlUmFua2xpc3QsXG4gIGZvcm1hdFRpbWVEdXJhdGlvbixcbn0gZnJvbSAnQGFsZ291eC9zdGFuZGFyZC1yYW5rbGlzdC11dGlscyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHJvZ3Jlc3NNZXRyaWNzIHtcbiAgZWxhcHNlZDogbnVtYmVyO1xuICByZW1haW5pbmc6IG51bWJlcjtcbiAgZnJvemVuQnJlYWtwb2ludDogbnVtYmVyO1xuICBub3JtYWxJbm5lclBlcmNlbnQ6IG51bWJlcjtcbiAgZnJvemVuSW5uZXJQZXJjZW50OiBudW1iZXI7XG4gIHRpbWVUcmF2ZWxFbGFwc2VkOiBudW1iZXI7XG4gIHRpbWVUcmF2ZWxSZW1haW5pbmc6IG51bWJlcjtcbiAgc3VwcG9ydFJlZ2VuOiBib29sZWFuO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0UHJvZ3Jlc3NEdXJhdGlvbk1pbnV0ZXMoY29udGVzdDogc3JrLkNvbnRlc3QpOiBudW1iZXIge1xuICByZXR1cm4gZm9ybWF0VGltZUR1cmF0aW9uKGNvbnRlc3QuZHVyYXRpb24sICdtaW4nKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFByb2dyZXNzTWF4QXZhaWxhYmxlTWludXRlcyhjb250ZXN0OiBzcmsuQ29udGVzdCwgbG9jYWxUaW1lOiBudW1iZXIsIHRkID0gMCk6IG51bWJlciB7XG4gIGNvbnN0IHN0YXJ0QXQgPSBuZXcgRGF0ZShjb250ZXN0LnN0YXJ0QXQpLmdldFRpbWUoKTtcbiAgY29uc3QgY3VycmVudFRpbWUgPSBsb2NhbFRpbWUgLSB0ZDtcbiAgcmV0dXJuIE1hdGgubWluKE1hdGgubWF4KE1hdGguZmxvb3IoKGN1cnJlbnRUaW1lIC0gc3RhcnRBdCkgLyA2MDAwMCksIDApLCBnZXRQcm9ncmVzc0R1cmF0aW9uTWludXRlcyhjb250ZXN0KSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1Byb2dyZXNzRW5kZWQoY29udGVzdDogc3JrLkNvbnRlc3QsIGxvY2FsVGltZTogbnVtYmVyLCB0ZCA9IDApOiBib29sZWFuIHtcbiAgY29uc3Qgc3RhcnRBdCA9IG5ldyBEYXRlKGNvbnRlc3Quc3RhcnRBdCkuZ2V0VGltZSgpO1xuICBjb25zdCBlbmRBdCA9IHN0YXJ0QXQgKyBmb3JtYXRUaW1lRHVyYXRpb24oY29udGVzdC5kdXJhdGlvbiwgJ21zJyk7XG4gIGNvbnN0IGN1cnJlbnRUaW1lID0gbG9jYWxUaW1lIC0gdGQ7XG4gIHJldHVybiBjdXJyZW50VGltZSA+PSBlbmRBdDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFByb2dyZXNzTWV0cmljcyhcbiAgZGF0YTogc3JrLlJhbmtsaXN0LFxuICBsb2NhbFRpbWU6IG51bWJlcixcbiAgdGQ6IG51bWJlcixcbiAgdGltZVRyYXZlbEN1cnJlbnRWYWx1ZTogbnVtYmVyLFxuICBpblRpbWVNYWNoaW5lOiBib29sZWFuLFxuKTogUHJvZ3Jlc3NNZXRyaWNzIHtcbiAgY29uc3QgeyBjb250ZXN0IH0gPSBkYXRhO1xuICBjb25zdCBzdGFydEF0ID0gbmV3IERhdGUoY29udGVzdC5zdGFydEF0KS5nZXRUaW1lKCk7XG4gIGNvbnN0IGVuZEF0ID0gc3RhcnRBdCArIGZvcm1hdFRpbWVEdXJhdGlvbihjb250ZXN0LmR1cmF0aW9uLCAnbXMnKTtcbiAgY29uc3QgZnJvemVuTGVuZ3RoID0gY29udGVzdC5mcm96ZW5EdXJhdGlvbiA/IGZvcm1hdFRpbWVEdXJhdGlvbihjb250ZXN0LmZyb3plbkR1cmF0aW9uLCAnbXMnKSA6IDA7XG4gIGNvbnN0IGN1cnJlbnRUaW1lID0gbG9jYWxUaW1lIC0gdGQ7XG4gIGNvbnN0IGxlbmd0aCA9IGVuZEF0IC0gc3RhcnRBdDtcbiAgY29uc3QgZnJvemVuQnJlYWtwb2ludCA9IGxlbmd0aCA/IDEgLSBmcm96ZW5MZW5ndGggLyBsZW5ndGggOiAxO1xuICBjb25zdCBlbGFwc2VkID0gTWF0aC5taW4oTWF0aC5tYXgoY3VycmVudFRpbWUgLSBzdGFydEF0LCAwKSwgbGVuZ3RoKTtcbiAgY29uc3QgcmVtYWluaW5nID0gbGVuZ3RoIC0gZWxhcHNlZDtcbiAgY29uc3QgZnJvemVuQXQgPSBlbmRBdCAtIGZyb3plbkxlbmd0aDtcbiAgY29uc3QgcGVyY2VudCA9IGxlbmd0aCA/IChlbGFwc2VkIC8gbGVuZ3RoKSAqIDEwMCA6IDA7XG4gIGNvbnN0IG5vcm1hbFBlcmNlbnQgPSBsZW5ndGggPyAoTWF0aC5tYXgoTWF0aC5taW4oY3VycmVudFRpbWUsIGZyb3plbkF0KSAtIHN0YXJ0QXQsIDApIC8gbGVuZ3RoKSAqIDEwMCA6IDA7XG4gIGNvbnN0IG5vcm1hbElubmVyUGVyY2VudCA9IE1hdGgubWluKDEwMCwgZnJvemVuQnJlYWtwb2ludCA/IG5vcm1hbFBlcmNlbnQgLyBmcm96ZW5CcmVha3BvaW50IDogMCk7XG4gIGNvbnN0IGZyb3plblBlcmNlbnQgPSBwZXJjZW50IC0gbm9ybWFsUGVyY2VudDtcbiAgY29uc3QgZnJvemVuSW5uZXJQZXJjZW50ID0gTWF0aC5taW4oMTAwLCAxIC0gZnJvemVuQnJlYWtwb2ludCA/IGZyb3plblBlcmNlbnQgLyAoMSAtIGZyb3plbkJyZWFrcG9pbnQpIDogMCk7XG4gIGNvbnN0IHRpbWVUcmF2ZWxFbGFwc2VkID0gdGltZVRyYXZlbEN1cnJlbnRWYWx1ZSAqIDYwICogMTAwMDtcbiAgY29uc3QgdGltZVRyYXZlbFJlbWFpbmluZyA9IGxlbmd0aCAtIHRpbWVUcmF2ZWxFbGFwc2VkO1xuXG4gIHJldHVybiB7XG4gICAgZWxhcHNlZDogaW5UaW1lTWFjaGluZSA/IHRpbWVUcmF2ZWxFbGFwc2VkIDogZWxhcHNlZCxcbiAgICByZW1haW5pbmc6IGluVGltZU1hY2hpbmUgPyB0aW1lVHJhdmVsUmVtYWluaW5nIDogcmVtYWluaW5nLFxuICAgIGZyb3plbkJyZWFrcG9pbnQsXG4gICAgbm9ybWFsSW5uZXJQZXJjZW50LFxuICAgIGZyb3plbklubmVyUGVyY2VudCxcbiAgICB0aW1lVHJhdmVsRWxhcHNlZCxcbiAgICB0aW1lVHJhdmVsUmVtYWluaW5nLFxuICAgIHN1cHBvcnRSZWdlbjogY2FuUmVnZW5lcmF0ZVJhbmtsaXN0KGRhdGEpLFxuICB9O1xufVxuIl19
1
+ export { buildSliderMarks, getProgressDurationMinutes, getProgressMaxAvailableMinutes, getProgressMetrics, isProgressEnded, } from '@algoux/standard-ranklist-renderer-component-core';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZ3Jlc3MtdXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL3Byb2dyZXNzL3Byb2dyZXNzLXV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxnQkFBZ0IsRUFDaEIsMEJBQTBCLEVBQzFCLDhCQUE4QixFQUM5QixrQkFBa0IsRUFDbEIsZUFBZSxHQUVoQixNQUFNLG1EQUFtRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHtcbiAgYnVpbGRTbGlkZXJNYXJrcyxcbiAgZ2V0UHJvZ3Jlc3NEdXJhdGlvbk1pbnV0ZXMsXG4gIGdldFByb2dyZXNzTWF4QXZhaWxhYmxlTWludXRlcyxcbiAgZ2V0UHJvZ3Jlc3NNZXRyaWNzLFxuICBpc1Byb2dyZXNzRW5kZWQsXG4gIHR5cGUgUHJvZ3Jlc3NNZXRyaWNzLFxufSBmcm9tICdAYWxnb3V4L3N0YW5kYXJkLXJhbmtsaXN0LXJlbmRlcmVyLWNvbXBvbmVudC1jb3JlJztcbiJdfQ==
@@ -1,110 +1,2 @@
1
- import { EnumTheme, formatTimeDuration, numberToAlphabet, resolveStyle, resolveText, secToTimeStr, } from '@algoux/standard-ranklist-utils';
2
- export { caniuse, srkSupportedVersions } from '@algoux/standard-ranklist-renderer-component-core';
3
- export const defaultBackgroundColor = {
4
- [EnumTheme.light]: '#ffffff',
5
- [EnumTheme.dark]: '#191919',
6
- };
7
- export function resolveSrkAssetUrl(url, field, formatter) {
8
- if (typeof formatter === 'function') {
9
- return formatter(url, field);
10
- }
11
- if (url.startsWith('//')) {
12
- return url;
13
- }
14
- const protocolMatch = url.match(/^([a-zA-Z][a-zA-Z0-9+.-]*):/);
15
- if (protocolMatch) {
16
- const protocol = protocolMatch[1].toLowerCase();
17
- if (protocol === 'http' || protocol === 'https' || protocol === 'data') {
18
- return url;
19
- }
20
- console.warn(`unsupported protocol "${protocol}" in srk asset url:`, url);
21
- return '';
22
- }
23
- console.warn('unsupported srk asset url:', url);
24
- return '';
25
- }
26
- export function getAcceptedStatusDetails(status) {
27
- return `${status.tries}/${status.time ? formatTimeDuration(status.time, 'min', Math.floor) : '-'}`;
28
- }
29
- export function getSolutionResultMeta(result) {
30
- switch (result) {
31
- case 'FB':
32
- return { label: 'First Blood', className: 'srk-preset-result-fb' };
33
- case 'AC':
34
- return { label: 'Accepted', className: 'srk-preset-result-ac' };
35
- case 'RJ':
36
- return { label: 'Rejected', className: 'srk-preset-result-rj' };
37
- case '?':
38
- return { label: 'Frozen', className: 'srk-preset-result-fz' };
39
- case 'WA':
40
- return { label: 'Wrong Answer', className: 'srk-preset-result-rj' };
41
- case 'PE':
42
- return { label: 'Presentation Error', className: 'srk-preset-result-rj' };
43
- case 'TLE':
44
- return { label: 'Time Limit Exceeded', className: 'srk-preset-result-rj' };
45
- case 'MLE':
46
- return { label: 'Memory Limit Exceeded', className: 'srk-preset-result-rj' };
47
- case 'OLE':
48
- return { label: 'Output Limit Exceeded', className: 'srk-preset-result-rj' };
49
- case 'RTE':
50
- return { label: 'Runtime Error', className: 'srk-preset-result-rj' };
51
- case 'NOUT':
52
- return { label: 'No Output' };
53
- case 'CE':
54
- return { label: 'Compile Error' };
55
- case 'UKE':
56
- return { label: 'Unknown Error' };
57
- case null:
58
- return { label: '--' };
59
- default:
60
- return { label: result };
61
- }
62
- }
63
- export function getSolutionModalTitle(problemIndex, user) {
64
- return `Solutions of ${numberToAlphabet(problemIndex)} (${resolveText(user.name)})`;
65
- }
66
- export function formatSolutionTimestamp(solution) {
67
- return secToTimeStr(formatTimeDuration(solution.time, 's'));
68
- }
69
- export function getProblemHeaderBackgroundImage(style, theme) {
70
- const { backgroundColor } = resolveStyle(style || {});
71
- const resolvedColor = backgroundColor[theme] || defaultBackgroundColor[theme];
72
- const bgColorAlphaStr = withAlpha(resolvedColor, 0.27);
73
- return `linear-gradient(180deg, ${resolvedColor} 0%, ${resolvedColor} 10%, ${bgColorAlphaStr} 10%, transparent 100%)`;
74
- }
75
- export function getMarkerPresentation(marker, theme) {
76
- if (typeof marker.style === 'string') {
77
- return { className: `srk-preset-marker-${marker.style}` };
78
- }
79
- if (marker.style) {
80
- return {
81
- style: {
82
- backgroundColor: resolveStyle(marker.style).backgroundColor[theme],
83
- },
84
- };
85
- }
86
- return {};
87
- }
88
- export function shouldShowTimeColumn(rows) {
89
- return rows.some((row) => Boolean(row.score?.time));
90
- }
91
- function withAlpha(color, alpha) {
92
- const hexMatch = color.match(/^#([0-9a-f]{6})$/i);
93
- if (hexMatch) {
94
- const value = hexMatch[1];
95
- const red = parseInt(value.slice(0, 2), 16);
96
- const green = parseInt(value.slice(2, 4), 16);
97
- const blue = parseInt(value.slice(4, 6), 16);
98
- return `rgba(${red}, ${green}, ${blue}, ${alpha})`;
99
- }
100
- const rgbMatch = color.match(/^rgb\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)$/i);
101
- if (rgbMatch) {
102
- return `rgba(${rgbMatch[1]}, ${rgbMatch[2]}, ${rgbMatch[3]}, ${alpha})`;
103
- }
104
- const rgbaMatch = color.match(/^rgba\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*,\s*[\d.]+\s*\)$/i);
105
- if (rgbaMatch) {
106
- return `rgba(${rgbaMatch[1]}, ${rgbaMatch[2]}, ${rgbaMatch[3]}, ${alpha})`;
107
- }
108
- return color;
109
- }
110
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFua2xpc3QtdXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL3JhbmtsaXN0L3JhbmtsaXN0LXV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFDTCxTQUFTLEVBQ1Qsa0JBQWtCLEVBQ2xCLGdCQUFnQixFQUNoQixZQUFZLEVBQ1osV0FBVyxFQUNYLFlBQVksR0FDYixNQUFNLGlDQUFpQyxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUVsRyxNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBOEI7SUFDL0QsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEVBQUUsU0FBUztJQUM1QixDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxTQUFTO0NBQzVCLENBQUM7QUFjRixNQUFNLFVBQVUsa0JBQWtCLENBQ2hDLEdBQVcsRUFDWCxLQUFhLEVBQ2IsU0FBa0Q7SUFFbEQsSUFBSSxPQUFPLFNBQVMsS0FBSyxVQUFVLEVBQUUsQ0FBQztRQUNwQyxPQUFPLFNBQVMsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUNELElBQUksR0FBRyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1FBQ3pCLE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQUNELE1BQU0sYUFBYSxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsNkJBQTZCLENBQUMsQ0FBQztJQUMvRCxJQUFJLGFBQWEsRUFBRSxDQUFDO1FBQ2xCLE1BQU0sUUFBUSxHQUFHLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNoRCxJQUFJLFFBQVEsS0FBSyxNQUFNLElBQUksUUFBUSxLQUFLLE9BQU8sSUFBSSxRQUFRLEtBQUssTUFBTSxFQUFFLENBQUM7WUFDdkUsT0FBTyxHQUFHLENBQUM7UUFDYixD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QUUsQ0FBQztRQUNiLE1BQU0sS0FBSyxHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMxQixNQUFNLEdBQUcsR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDNUMsTUFBTSxLQUFLLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQzlDLE1BQU0sSUFBSSxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUM3QyxPQUFPLFFBQVEsR0FBRyxLQUFLLEtBQUssS0FBSyxJQUFJLEtBQUssS0FBSyxHQUFHLENBQUM7SUFDckQsQ0FBQztJQUVELE1BQU0sUUFBUSxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsK0NBQStDLENBQUMsQ0FBQztJQUM5RSxJQUFJLFFBQVEsRUFBRSxDQUFDO1FBQ2IsT0FBTyxRQUFRLFFBQVEsQ0FBQyxDQUFDLENBQUMsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxLQUFLLEtBQUssR0FBRyxDQUFDO0lBQzFFLENBQUM7SUFFRCxNQUFNLFNBQVMsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLDZEQUE2RCxDQUFDLENBQUM7SUFDN0YsSUFBSSxTQUFTLEVBQUUsQ0FBQztRQUNkLE9BQU8sUUFBUSxTQUFTLENBQUMsQ0FBQyxDQUFDLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsS0FBSyxLQUFLLEdBQUcsQ0FBQztJQUM3RSxDQUFDO0lBRUQsT0FBTyxLQUFLLENBQUM7QUFDZixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgKiBhcyBzcmsgZnJvbSAnQGFsZ291eC9zdGFuZGFyZC1yYW5rbGlzdCc7XG5pbXBvcnQge1xuICBFbnVtVGhlbWUsXG4gIGZvcm1hdFRpbWVEdXJhdGlvbixcbiAgbnVtYmVyVG9BbHBoYWJldCxcbiAgcmVzb2x2ZVN0eWxlLFxuICByZXNvbHZlVGV4dCxcbiAgc2VjVG9UaW1lU3RyLFxufSBmcm9tICdAYWxnb3V4L3N0YW5kYXJkLXJhbmtsaXN0LXV0aWxzJztcbmV4cG9ydCB7IGNhbml1c2UsIHNya1N1cHBvcnRlZFZlcnNpb25zIH0gZnJvbSAnQGFsZ291eC9zdGFuZGFyZC1yYW5rbGlzdC1yZW5kZXJlci1jb21wb25lbnQtY29yZSc7XG5cbmV4cG9ydCBjb25zdCBkZWZhdWx0QmFja2dyb3VuZENvbG9yOiBSZWNvcmQ8RW51bVRoZW1lLCBzdHJpbmc+ID0ge1xuICBbRW51bVRoZW1lLmxpZ2h0XTogJyNmZmZmZmYnLFxuICBbRW51bVRoZW1lLmRhcmtdOiAnIzE5MTkxOScsXG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIE1hcmtlclByZXNlbnRhdGlvbiB7XG4gIGNsYXNzTmFtZT86IHN0cmluZztcbiAgc3R5bGU/OiB7XG4gICAgYmFja2dyb3VuZENvbG9yPzogc3RyaW5nO1xuICB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNvbHV0aW9uUmVzdWx0TWV0YSB7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIGNsYXNzTmFtZT86IHN0cmluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVTcmtBc3NldFVybChcbiAgdXJsOiBzdHJpbmcsXG4gIGZpZWxkOiBzdHJpbmcsXG4gIGZvcm1hdHRlcj86ICh1cmw6IHN0cmluZywgZmllbGQ6IHN0cmluZykgPT4gc3RyaW5nLFxuKTogc3RyaW5nIHtcbiAgaWYgKHR5cGVvZiBmb3JtYXR0ZXIgPT09ICdmdW5jdGlvbicpIHtcbiAgICByZXR1cm4gZm9ybWF0dGVyKHVybCwgZmllbGQpO1xuICB9XG4gIGlmICh1cmwuc3RhcnRzV2l0aCgnLy8nKSkge1xuICAgIHJldHVybiB1cmw7XG4gIH1cbiAgY29uc3QgcHJvdG9jb2xNYXRjaCA9IHVybC5tYXRjaCgvXihbYS16QS1aXVthLXpBLVowLTkrLi1dKik6Lyk7XG4gIGlmIChwcm90b2NvbE1hdGNoKSB7XG4gICAgY29uc3QgcHJvdG9jb2wgPSBwcm90b2NvbE1hdGNoWzFdLnRvTG93ZXJDYXNlKCk7XG4gICAgaWYgKHByb3RvY29sID09PSAnaHR0cCcgfHwgcHJvdG9jb2wgPT09ICdodHRwcycgfHwgcHJvdG9jb2wgPT09ICdkYXRhJykge1xuICAgICAgcmV0dXJuIHVybDtcbiAgICB9XG4gICAgY29uc29sZS53YXJuKGB1bnN1cHBvcnRlZCBwcm90b2NvbCBcIiR7cHJvdG9jb2x9XCIgaW4gc3JrIGFzc2V0IHVybDpgLCB1cmwpO1xuICAgIHJldHVybiAnJztcbiAgfVxuICBjb25zb2xlLndhcm4oJ3Vuc3VwcG9ydGVkIHNyayBhc3NldCB1cmw6JywgdXJsKTtcbiAgcmV0dXJuICcnO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0QWNjZXB0ZWRTdGF0dXNEZXRhaWxzKHN0YXR1czogc3JrLlJhbmtQcm9ibGVtU3RhdHVzKTogc3RyaW5nIHtcbiAgcmV0dXJuIGAke3N0YXR1cy50cmllc30vJHtzdGF0dXMudGltZSA/IGZvcm1hdFRpbWVEdXJhdGlvbihzdGF0dXMudGltZSwgJ21pbicsIE1hdGguZmxvb3IpIDogJy0nfWA7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRTb2x1dGlvblJlc3VsdE1ldGEocmVzdWx0OiBzcmsuU29sdXRpb25bJ3Jlc3VsdCddKTogU29sdXRpb25SZXN1bHRNZXRhIHtcbiAgc3dpdGNoIChyZXN1bHQpIHtcbiAgICBjYXNlICdGQic6XG4gICAgICByZXR1cm4geyBsYWJlbDogJ0ZpcnN0IEJsb29kJywgY2xhc3NOYW1lOiAnc3JrLXByZXNldC1yZXN1bHQtZmInIH07XG4gICAgY2FzZSAnQUMnOlxuICAgICAgcmV0dXJuIHsgbGFiZWw6ICdBY2NlcHRlZCcsIGNsYXNzTmFtZTogJ3Nyay1wcmVzZXQtcmVzdWx0LWFjJyB9O1xuICAgIGNhc2UgJ1JKJzpcbiAgICAgIHJldHVybiB7IGxhYmVsOiAnUmVqZWN0ZWQnLCBjbGFzc05hbWU6ICdzcmstcHJlc2V0LXJlc3VsdC1yaicgfTtcbiAgICBjYXNlICc/JzpcbiAgICAgIHJldHVybiB7IGxhYmVsOiAnRnJvemVuJywgY2xhc3NOYW1lOiAnc3JrLXByZXNldC1yZXN1bHQtZnonIH07XG4gICAgY2FzZSAnV0EnOlxuICAgICAgcmV0dXJuIHsgbGFiZWw6ICdXcm9uZyBBbnN3ZXInLCBjbGFzc05hbWU6ICdzcmstcHJlc2V0LXJlc3VsdC1yaicgfTtcbiAgICBjYXNlICdQRSc6XG4gICAgICByZXR1cm4geyBsYWJlbDogJ1ByZXNlbnRhdGlvbiBFcnJvcicsIGNsYXNzTmFtZTogJ3Nyay1wcmVzZXQtcmVzdWx0LXJqJyB9O1xuICAgIGNhc2UgJ1RMRSc6XG4gICAgICByZXR1cm4geyBsYWJlbDogJ1RpbWUgTGltaXQgRXhjZWVkZWQnLCBjbGFzc05hbWU6ICdzcmstcHJlc2V0LXJlc3VsdC1yaicgfTtcbiAgICBjYXNlICdNTEUnOlxuICAgICAgcmV0dXJuIHsgbGFiZWw6ICdNZW1vcnkgTGltaXQgRXhjZWVkZWQnLCBjbGFzc05hbWU6ICdzcmstcHJlc2V0LXJlc3VsdC1yaicgfTtcbiAgICBjYXNlICdPTEUnOlxuICAgICAgcmV0dXJuIHsgbGFiZWw6ICdPdXRwdXQgTGltaXQgRXhjZWVkZWQnLCBjbGFzc05hbWU6ICdzcmstcHJlc2V0LXJlc3VsdC1yaicgfTtcbiAgICBjYXNlICdSVEUnOlxuICAgICAgcmV0dXJuIHsgbGFiZWw6ICdSdW50aW1lIEVycm9yJywgY2xhc3NOYW1lOiAnc3JrLXByZXNldC1yZXN1bHQtcmonIH07XG4gICAgY2FzZSAnTk9VVCc6XG4gICAgICByZXR1cm4geyBsYWJlbDogJ05vIE91dHB1dCcgfTtcbiAgICBjYXNlICdDRSc6XG4gICAgICByZXR1cm4geyBsYWJlbDogJ0NvbXBpbGUgRXJyb3InIH07XG4gICAgY2FzZSAnVUtFJzpcbiAgICAgIHJldHVybiB7IGxhYmVsOiAnVW5rbm93biBFcnJvcicgfTtcbiAgICBjYXNlIG51bGw6XG4gICAgICByZXR1cm4geyBsYWJlbDogJy0tJyB9O1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4geyBsYWJlbDogcmVzdWx0IH07XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFNvbHV0aW9uTW9kYWxUaXRsZShwcm9ibGVtSW5kZXg6IG51bWJlciwgdXNlcjogc3JrLlVzZXIpOiBzdHJpbmcge1xuICByZXR1cm4gYFNvbHV0aW9ucyBvZiAke251bWJlclRvQWxwaGFiZXQocHJvYmxlbUluZGV4KX0gKCR7cmVzb2x2ZVRleHQodXNlci5uYW1lKX0pYDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdFNvbHV0aW9uVGltZXN0YW1wKHNvbHV0aW9uOiBzcmsuU29sdXRpb24pOiBzdHJpbmcge1xuICByZXR1cm4gc2VjVG9UaW1lU3RyKGZvcm1hdFRpbWVEdXJhdGlvbihzb2x1dGlvbi50aW1lLCAncycpKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFByb2JsZW1IZWFkZXJCYWNrZ3JvdW5kSW1hZ2Uoc3R5bGU6IHNyay5TdHlsZSB8IHVuZGVmaW5lZCwgdGhlbWU6IEVudW1UaGVtZSk6IHN0cmluZyB7XG4gIGNvbnN0IHsgYmFja2dyb3VuZENvbG9yIH0gPSByZXNvbHZlU3R5bGUoc3R5bGUgfHwge30pO1xuICBjb25zdCByZXNvbHZlZENvbG9yID0gYmFja2dyb3VuZENvbG9yW3RoZW1lXSB8fCBkZWZhdWx0QmFja2dyb3VuZENvbG9yW3RoZW1lXTtcbiAgY29uc3QgYmdDb2xvckFscGhhU3RyID0gd2l0aEFscGhhKHJlc29sdmVkQ29sb3IsIDAuMjcpO1xuICByZXR1cm4gYGxpbmVhci1ncmFkaWVudCgxODBkZWcsICR7cmVzb2x2ZWRDb2xvcn0gMCUsICR7cmVzb2x2ZWRDb2xvcn0gMTAlLCAke2JnQ29sb3JBbHBoYVN0cn0gMTAlLCB0cmFuc3BhcmVudCAxMDAlKWA7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRNYXJrZXJQcmVzZW50YXRpb24obWFya2VyOiBzcmsuTWFya2VyLCB0aGVtZTogRW51bVRoZW1lKTogTWFya2VyUHJlc2VudGF0aW9uIHtcbiAgaWYgKHR5cGVvZiBtYXJrZXIuc3R5bGUgPT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIHsgY2xhc3NOYW1lOiBgc3JrLXByZXNldC1tYXJrZXItJHttYXJrZXIuc3R5bGV9YCB9O1xuICB9XG4gIGlmIChtYXJrZXIuc3R5bGUpIHtcbiAgICByZXR1cm4ge1xuICAgICAgc3R5bGU6IHtcbiAgICAgICAgYmFja2dyb3VuZENvbG9yOiByZXNvbHZlU3R5bGUobWFya2VyLnN0eWxlKS5iYWNrZ3JvdW5kQ29sb3JbdGhlbWVdLFxuICAgICAgfSxcbiAgICB9O1xuICB9XG4gIHJldHVybiB7fTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNob3VsZFNob3dUaW1lQ29sdW1uKHJvd3M6IHNyay5SYW5rbGlzdFJvd1tdKTogYm9vbGVhbiB7XG4gIHJldHVybiByb3dzLnNvbWUoKHJvdykgPT4gQm9vbGVhbihyb3cuc2NvcmU/LnRpbWUpKTtcbn1cblxuZnVuY3Rpb24gd2l0aEFscGhhKGNvbG9yOiBzdHJpbmcsIGFscGhhOiBudW1iZXIpIHtcbiAgY29uc3QgaGV4TWF0Y2ggPSBjb2xvci5tYXRjaCgvXiMoWzAtOWEtZl17Nn0pJC9pKTtcbiAgaWYgKGhleE1hdGNoKSB7XG4gICAgY29uc3QgdmFsdWUgPSBoZXhNYXRjaFsxXTtcbiAgICBjb25zdCByZWQgPSBwYXJzZUludCh2YWx1ZS5zbGljZSgwLCAyKSwgMTYpO1xuICAgIGNvbnN0IGdyZWVuID0gcGFyc2VJbnQodmFsdWUuc2xpY2UoMiwgNCksIDE2KTtcbiAgICBjb25zdCBibHVlID0gcGFyc2VJbnQodmFsdWUuc2xpY2UoNCwgNiksIDE2KTtcbiAgICByZXR1cm4gYHJnYmEoJHtyZWR9LCAke2dyZWVufSwgJHtibHVlfSwgJHthbHBoYX0pYDtcbiAgfVxuXG4gIGNvbnN0IHJnYk1hdGNoID0gY29sb3IubWF0Y2goL15yZ2JcXChcXHMqKFxcZCspXFxzKixcXHMqKFxcZCspXFxzKixcXHMqKFxcZCspXFxzKlxcKSQvaSk7XG4gIGlmIChyZ2JNYXRjaCkge1xuICAgIHJldHVybiBgcmdiYSgke3JnYk1hdGNoWzFdfSwgJHtyZ2JNYXRjaFsyXX0sICR7cmdiTWF0Y2hbM119LCAke2FscGhhfSlgO1xuICB9XG5cbiAgY29uc3QgcmdiYU1hdGNoID0gY29sb3IubWF0Y2goL15yZ2JhXFwoXFxzKihcXGQrKVxccyosXFxzKihcXGQrKVxccyosXFxzKihcXGQrKVxccyosXFxzKltcXGQuXStcXHMqXFwpJC9pKTtcbiAgaWYgKHJnYmFNYXRjaCkge1xuICAgIHJldHVybiBgcmdiYSgke3JnYmFNYXRjaFsxXX0sICR7cmdiYU1hdGNoWzJdfSwgJHtyZ2JhTWF0Y2hbM119LCAke2FscGhhfSlgO1xuICB9XG5cbiAgcmV0dXJuIGNvbG9yO1xufVxuIl19
1
+ export { caniuse, defaultBackgroundColor, formatSolutionTimestamp, formatTeamMemberName, getAcceptedStatusDetails, getMarkerPresentation, getProblemHeaderBackgroundImage, getSolutionModalTitle, getSolutionResultMeta, resolveSrkAssetUrl, shouldShowTimeColumn, srkSupportedVersions, } from '@algoux/standard-ranklist-renderer-component-core';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFua2xpc3QtdXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL3JhbmtsaXN0L3JhbmtsaXN0LXV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxPQUFPLEVBQ1Asc0JBQXNCLEVBQ3RCLHVCQUF1QixFQUN2QixvQkFBb0IsRUFDcEIsd0JBQXdCLEVBQ3hCLHFCQUFxQixFQUNyQiwrQkFBK0IsRUFDL0IscUJBQXFCLEVBQ3JCLHFCQUFxQixFQUNyQixrQkFBa0IsRUFDbEIsb0JBQW9CLEVBQ3BCLG9CQUFvQixHQUdyQixNQUFNLG1EQUFtRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHtcbiAgY2FuaXVzZSxcbiAgZGVmYXVsdEJhY2tncm91bmRDb2xvcixcbiAgZm9ybWF0U29sdXRpb25UaW1lc3RhbXAsXG4gIGZvcm1hdFRlYW1NZW1iZXJOYW1lLFxuICBnZXRBY2NlcHRlZFN0YXR1c0RldGFpbHMsXG4gIGdldE1hcmtlclByZXNlbnRhdGlvbixcbiAgZ2V0UHJvYmxlbUhlYWRlckJhY2tncm91bmRJbWFnZSxcbiAgZ2V0U29sdXRpb25Nb2RhbFRpdGxlLFxuICBnZXRTb2x1dGlvblJlc3VsdE1ldGEsXG4gIHJlc29sdmVTcmtBc3NldFVybCxcbiAgc2hvdWxkU2hvd1RpbWVDb2x1bW4sXG4gIHNya1N1cHBvcnRlZFZlcnNpb25zLFxuICB0eXBlIE1hcmtlclByZXNlbnRhdGlvbixcbiAgdHlwZSBTb2x1dGlvblJlc3VsdE1ldGEsXG59IGZyb20gJ0BhbGdvdXgvc3RhbmRhcmQtcmFua2xpc3QtcmVuZGVyZXItY29tcG9uZW50LWNvcmUnO1xuIl19