@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 +5 -1
- package/dist/README.md +5 -1
- package/dist/esm2022/lib/modal/default-solution-modal.component.mjs +6 -3
- package/dist/esm2022/lib/modal/default-user-modal.component.mjs +23 -15
- package/dist/esm2022/lib/progress/progress-utils.mjs +2 -45
- package/dist/esm2022/lib/ranklist/ranklist-utils.mjs +2 -110
- package/dist/esm2022/lib/ranklist/ranklist.component.mjs +20 -18
- package/dist/esm2022/lib/ranklist/status-cell-template.directive.mjs +1 -1
- package/dist/esm2022/lib/ranklist/user-cell-template.directive.mjs +1 -1
- package/dist/esm2022/lib/types.mjs +1 -1
- package/dist/fesm2022/algoux-standard-ranklist-renderer-component-angular.mjs +51 -190
- package/dist/fesm2022/algoux-standard-ranklist-renderer-component-angular.mjs.map +1 -1
- package/dist/lib/modal/default-solution-modal.component.d.ts +2 -1
- package/dist/lib/modal/default-user-modal.component.d.ts +5 -3
- package/dist/lib/progress/progress-bar.component.d.ts +1 -1
- package/dist/lib/progress/progress-utils.d.ts +1 -15
- package/dist/lib/ranklist/ranklist-utils.d.ts +1 -22
- package/dist/lib/ranklist/ranklist.component.d.ts +3 -3
- package/dist/lib/ranklist/status-cell-template.directive.d.ts +1 -0
- package/dist/lib/ranklist/user-cell-template.directive.d.ts +1 -0
- package/dist/lib/types.d.ts +1 -29
- package/package.json +3 -3
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
|
-
[
|
|
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
|
-
[
|
|
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,
|
|
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
|
|
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">{{
|
|
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
|
-
{{
|
|
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
|
-
{{
|
|
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>{{
|
|
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">{{
|
|
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
|
-
{{
|
|
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
|
-
{{
|
|
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>{{
|
|
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,
|
|
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
|
-
|
|
2
|
-
|
|
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
|
-
|
|
2
|
-
|
|
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
|