@algoux/standard-ranklist-renderer-component-angular 0.5.1 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (33) hide show
  1. package/README.md +48 -0
  2. package/package.json +8 -3
  3. package/dist/README.md +0 -100
  4. package/dist/esm2022/algoux-standard-ranklist-renderer-component-angular.mjs +0 -5
  5. package/dist/esm2022/lib/index.mjs +0 -8
  6. package/dist/esm2022/lib/modal/default-solution-modal.component.mjs +0 -146
  7. package/dist/esm2022/lib/modal/default-user-modal.component.mjs +0 -172
  8. package/dist/esm2022/lib/modal/modal-interactions.mjs +0 -2
  9. package/dist/esm2022/lib/modal/modal.component.mjs +0 -263
  10. package/dist/esm2022/lib/progress/progress-bar.component.mjs +0 -247
  11. package/dist/esm2022/lib/progress/progress-utils.mjs +0 -45
  12. package/dist/esm2022/lib/ranklist/ranklist-utils.mjs +0 -110
  13. package/dist/esm2022/lib/ranklist/ranklist.component.mjs +0 -593
  14. package/dist/esm2022/lib/ranklist/status-cell-template.directive.mjs +0 -18
  15. package/dist/esm2022/lib/ranklist/user-cell-template.directive.mjs +0 -18
  16. package/dist/esm2022/lib/types.mjs +0 -2
  17. package/dist/esm2022/public-api.mjs +0 -2
  18. package/dist/fesm2022/algoux-standard-ranklist-renderer-component-angular.mjs +0 -1585
  19. package/dist/fesm2022/algoux-standard-ranklist-renderer-component-angular.mjs.map +0 -1
  20. package/dist/index.d.ts +0 -5
  21. package/dist/lib/index.d.ts +0 -8
  22. package/dist/lib/modal/default-solution-modal.component.d.ts +0 -30
  23. package/dist/lib/modal/default-user-modal.component.d.ts +0 -34
  24. package/dist/lib/modal/modal-interactions.d.ts +0 -1
  25. package/dist/lib/modal/modal.component.d.ts +0 -49
  26. package/dist/lib/progress/progress-bar.component.d.ts +0 -31
  27. package/dist/lib/progress/progress-utils.d.ts +0 -15
  28. package/dist/lib/ranklist/ranklist-utils.d.ts +0 -22
  29. package/dist/lib/ranklist/ranklist.component.d.ts +0 -57
  30. package/dist/lib/ranklist/status-cell-template.directive.d.ts +0 -23
  31. package/dist/lib/ranklist/user-cell-template.directive.d.ts +0 -20
  32. package/dist/lib/types.d.ts +0 -27
  33. package/dist/public-api.d.ts +0 -1
package/README.md CHANGED
@@ -98,3 +98,51 @@ export class BoardComponent {
98
98
  ```
99
99
 
100
100
  Use `ModalComponent` directly when you want custom modal content. `SrkUserCellTemplateDirective` and `SrkStatusCellTemplateDirective` let you replace selected ranklist table cells with Angular templates.
101
+
102
+ ## Ranklist Render Options
103
+
104
+ `RanklistComponent` includes optional render inputs for changing the table structure and status presentation while keeping the default behavior unchanged:
105
+
106
+ - `splitOrganization`: moves user organization into its own column before the user column.
107
+ - `columnTitles`: overrides text labels for series, organization, user, score, time, Dirt, and SE columns.
108
+ - `statusCellPreset`: uses `classic`, `detailed`, `minimal`, or `compact` status cell content.
109
+ - `statusColorAsText`: uses bold status-colored text instead of colored cell backgrounds.
110
+ - `showProblemStatisticsFooter`: appends a DOMjudge-style per-problem statistics footer.
111
+ - `showDirtColumn`: appends a Dirt percentage column after problem columns.
112
+ - `showSEColumn`: appends a contestant SE column after problem columns, placed after Dirt when both are enabled.
113
+ - `rowBordered`: adds row separators controlled by CSS variables.
114
+ - `columnBordered`: adds column separators controlled by CSS variables.
115
+ - `emptyStatusPlaceholder`: renders a custom string in no-submission status cells.
116
+ - `userAvatarPlacement`: chooses whether the default user avatar renders in the user column or, when `splitOrganization` is enabled, in the organization column.
117
+
118
+ ```ts
119
+ import type { RanklistColumnTitles } from '@algoux/standard-ranklist-renderer-component-angular';
120
+
121
+ export class BoardComponent {
122
+ readonly columnTitles: RanklistColumnTitles = {
123
+ organization: 'Org',
124
+ user: 'Team',
125
+ score: 'Solved',
126
+ time: 'Penalty',
127
+ dirt: 'Dirt',
128
+ se: 'SE',
129
+ };
130
+ }
131
+ ```
132
+
133
+ ```html
134
+ <srk-ranklist
135
+ [data]="staticRanklist"
136
+ [splitOrganization]="true"
137
+ [showProblemStatisticsFooter]="true"
138
+ [showDirtColumn]="true"
139
+ [showSEColumn]="true"
140
+ [statusCellPreset]="'compact'"
141
+ [statusColorAsText]="true"
142
+ [rowBordered]="true"
143
+ [columnBordered]="true"
144
+ [emptyStatusPlaceholder]="'·'"
145
+ [userAvatarPlacement]="'organization'"
146
+ [columnTitles]="columnTitles"
147
+ ></srk-ranklist>
148
+ ```
package/package.json CHANGED
@@ -1,8 +1,13 @@
1
1
  {
2
2
  "name": "@algoux/standard-ranklist-renderer-component-angular",
3
- "version": "0.5.1",
3
+ "version": "0.6.0",
4
4
  "description": "Angular components for Standard Ranklist Renderer Component",
5
5
  "license": "MIT",
6
+ "homepage": "https://github.com/algoux/standard-ranklist-renderer-component",
7
+ "repository": {
8
+ "type": "git",
9
+ "url": "https://github.com/algoux/standard-ranklist-renderer-component"
10
+ },
6
11
  "type": "module",
7
12
  "files": [
8
13
  "dist"
@@ -29,7 +34,7 @@
29
34
  "dependencies": {
30
35
  "@algoux/standard-ranklist-utils": "^0.2.11",
31
36
  "tslib": "^2.3.0",
32
- "@algoux/standard-ranklist-renderer-component-core": "0.5.1"
37
+ "@algoux/standard-ranklist-renderer-component-core": "0.6.0"
33
38
  },
34
39
  "peerDependencies": {
35
40
  "@algoux/standard-ranklist": "*",
@@ -47,7 +52,7 @@
47
52
  "rxjs": "^7.8.1",
48
53
  "typescript": "~5.4.5",
49
54
  "zone.js": "~0.14.10",
50
- "@algoux/standard-ranklist-renderer-component-styles": "0.5.1"
55
+ "@algoux/standard-ranklist-renderer-component-styles": "0.6.0"
51
56
  },
52
57
  "scripts": {
53
58
  "build": "node ./scripts/build.mjs",
package/dist/README.md DELETED
@@ -1,100 +0,0 @@
1
- # @algoux/standard-ranklist-renderer-component-angular
2
-
3
- Angular standalone components and template directives for Standard Ranklist data.
4
-
5
- ## Install
6
-
7
- ```bash
8
- npm i -D @algoux/standard-ranklist
9
- npm i -S @algoux/standard-ranklist-renderer-component-angular @algoux/standard-ranklist-renderer-component-core @algoux/standard-ranklist-renderer-component-styles
10
- ```
11
-
12
- ## Main Exports
13
-
14
- - `RanklistComponent`
15
- - `ProgressBarComponent`
16
- - `ModalComponent`
17
- - `DefaultUserModalComponent`
18
- - `DefaultSolutionModalComponent`
19
- - `SrkUserCellTemplateDirective`
20
- - `SrkStatusCellTemplateDirective`
21
-
22
- ## Usage
23
-
24
- Import the standalone components you use, and import the shared stylesheet once in your application styles or entry. `RanklistComponent` expects a static ranklist, so convert an SRK ranklist before binding it.
25
-
26
- ```ts
27
- import { Component } from '@angular/core';
28
- import { convertToStaticRanklist } from '@algoux/standard-ranklist-renderer-component-core';
29
- import {
30
- DefaultSolutionModalComponent,
31
- DefaultUserModalComponent,
32
- ProgressBarComponent,
33
- RanklistComponent,
34
- type SolutionClickPayload,
35
- type UserClickPayload,
36
- } from '@algoux/standard-ranklist-renderer-component-angular';
37
- import '@algoux/standard-ranklist-renderer-component-styles';
38
-
39
- @Component({
40
- standalone: true,
41
- imports: [
42
- DefaultSolutionModalComponent,
43
- DefaultUserModalComponent,
44
- ProgressBarComponent,
45
- RanklistComponent,
46
- ],
47
- template: `
48
- <srk-progress-bar
49
- [data]="ranklist"
50
- [enableTimeTravel]="true"
51
- (timeTravel)="handleTimeTravel($event)"
52
- ></srk-progress-bar>
53
- <srk-ranklist
54
- [data]="staticRanklist"
55
- [stripedRows]="true"
56
- (userClick)="handleUserClick($event)"
57
- (solutionClick)="handleSolutionClick($event)"
58
- ></srk-ranklist>
59
- <srk-default-user-modal
60
- [open]="!!activeUser"
61
- [user]="activeUser?.user"
62
- [markers]="staticRanklist.markers"
63
- (close)="activeUser = null"
64
- ></srk-default-user-modal>
65
- <srk-default-solution-modal
66
- [open]="!!activeSolution"
67
- [user]="activeSolution?.user"
68
- [problem]="activeSolution?.problem"
69
- [problemIndex]="activeSolution?.problemIndex ?? 0"
70
- [solutions]="activeSolution?.solutions || []"
71
- (close)="activeSolution = null"
72
- ></srk-default-solution-modal>
73
- `,
74
- })
75
- export class BoardComponent {
76
- ranklist!: any;
77
- activeUser: UserClickPayload | null = null;
78
- activeSolution: SolutionClickPayload | null = null;
79
-
80
- get staticRanklist() {
81
- return convertToStaticRanklist(this.ranklist);
82
- }
83
-
84
- handleTimeTravel(time: number | null) {
85
- console.log(time);
86
- }
87
-
88
- handleUserClick(payload: UserClickPayload) {
89
- this.activeUser = payload;
90
- this.activeSolution = null;
91
- }
92
-
93
- handleSolutionClick(payload: SolutionClickPayload) {
94
- this.activeSolution = payload;
95
- this.activeUser = null;
96
- }
97
- }
98
- ```
99
-
100
- Use `ModalComponent` directly when you want custom modal content. `SrkUserCellTemplateDirective` and `SrkStatusCellTemplateDirective` let you replace selected ranklist table cells with Angular templates.
@@ -1,5 +0,0 @@
1
- /**
2
- * Generated bundle index. Do not edit.
3
- */
4
- export * from './public-api';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxnb3V4LXN0YW5kYXJkLXJhbmtsaXN0LXJlbmRlcmVyLWNvbXBvbmVudC1hbmd1bGFyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FsZ291eC1zdGFuZGFyZC1yYW5rbGlzdC1yZW5kZXJlci1jb21wb25lbnQtYW5ndWxhci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuIl19
@@ -1,8 +0,0 @@
1
- export { DefaultSolutionModalComponent, } from './modal/default-solution-modal.component';
2
- export { DefaultUserModalComponent, } from './modal/default-user-modal.component';
3
- export { ModalComponent, } from './modal/modal.component';
4
- export { ProgressBarComponent } from './progress/progress-bar.component';
5
- export { RanklistComponent } from './ranklist/ranklist.component';
6
- export { SrkStatusCellTemplateDirective, } from './ranklist/status-cell-template.directive';
7
- export { SrkUserCellTemplateDirective, } from './ranklist/user-cell-template.directive';
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCw2QkFBNkIsR0FDOUIsTUFBTSwwQ0FBMEMsQ0FBQztBQUNsRCxPQUFPLEVBQ0wseUJBQXlCLEdBQzFCLE1BQU0sc0NBQXNDLENBQUM7QUFDOUMsT0FBTyxFQUNMLGNBQWMsR0FFZixNQUFNLHlCQUF5QixDQUFDO0FBQ2pDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2xFLE9BQU8sRUFDTCw4QkFBOEIsR0FFL0IsTUFBTSwyQ0FBMkMsQ0FBQztBQUNuRCxPQUFPLEVBQ0wsNEJBQTRCLEdBRTdCLE1BQU0seUNBQXlDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQge1xuICBEZWZhdWx0U29sdXRpb25Nb2RhbENvbXBvbmVudCxcbn0gZnJvbSAnLi9tb2RhbC9kZWZhdWx0LXNvbHV0aW9uLW1vZGFsLmNvbXBvbmVudCc7XG5leHBvcnQge1xuICBEZWZhdWx0VXNlck1vZGFsQ29tcG9uZW50LFxufSBmcm9tICcuL21vZGFsL2RlZmF1bHQtdXNlci1tb2RhbC5jb21wb25lbnQnO1xuZXhwb3J0IHtcbiAgTW9kYWxDb21wb25lbnQsXG4gIHR5cGUgTW9kYWxDbG9zZVJlYXNvbixcbn0gZnJvbSAnLi9tb2RhbC9tb2RhbC5jb21wb25lbnQnO1xuZXhwb3J0IHsgUHJvZ3Jlc3NCYXJDb21wb25lbnQgfSBmcm9tICcuL3Byb2dyZXNzL3Byb2dyZXNzLWJhci5jb21wb25lbnQnO1xuZXhwb3J0IHsgUmFua2xpc3RDb21wb25lbnQgfSBmcm9tICcuL3JhbmtsaXN0L3JhbmtsaXN0LmNvbXBvbmVudCc7XG5leHBvcnQge1xuICBTcmtTdGF0dXNDZWxsVGVtcGxhdGVEaXJlY3RpdmUsXG4gIHR5cGUgU3RhdHVzQ2VsbFRlbXBsYXRlQ29udGV4dCxcbn0gZnJvbSAnLi9yYW5rbGlzdC9zdGF0dXMtY2VsbC10ZW1wbGF0ZS5kaXJlY3RpdmUnO1xuZXhwb3J0IHtcbiAgU3JrVXNlckNlbGxUZW1wbGF0ZURpcmVjdGl2ZSxcbiAgdHlwZSBVc2VyQ2VsbFRlbXBsYXRlQ29udGV4dCxcbn0gZnJvbSAnLi9yYW5rbGlzdC91c2VyLWNlbGwtdGVtcGxhdGUuZGlyZWN0aXZlJztcbmV4cG9ydCB0eXBlIHtcbiAgUmFua1ZhbHVlLFxuICBTb2x1dGlvbkNsaWNrUGF5bG9hZCxcbiAgU3RhdGljUmFua2xpc3QsXG4gIFVzZXJDbGlja1BheWxvYWQsXG59IGZyb20gJy4vdHlwZXMnO1xuIl19
@@ -1,146 +0,0 @@
1
- import { CommonModule } from '@angular/common';
2
- import { Component, EventEmitter, Input, Output, } from '@angular/core';
3
- import { formatSolutionTimestamp, getSolutionModalTitle, getSolutionResultMeta, } from '../ranklist/ranklist-utils';
4
- import { ModalComponent, } from './modal.component';
5
- import * as i0 from "@angular/core";
6
- import * as i1 from "@angular/common";
7
- export class DefaultSolutionModalComponent {
8
- open = false;
9
- user;
10
- problem;
11
- problemIndex = 0;
12
- solutions = [];
13
- title;
14
- width = 320;
15
- rootClassName = 'srk-general-modal-root';
16
- wrapClassName = 'srk-solutions-modal';
17
- panelStyle = {};
18
- openChange = new EventEmitter();
19
- close = new EventEmitter();
20
- formatSolutionTimestamp = formatSolutionTimestamp;
21
- cachedUser = null;
22
- cachedProblem;
23
- cachedProblemIndex = 0;
24
- cachedSolutions = [];
25
- ngOnChanges(_changes) {
26
- if (this.user) {
27
- this.cachedUser = this.user;
28
- this.cachedProblem = this.problem;
29
- this.cachedProblemIndex = this.problemIndex;
30
- this.cachedSolutions = this.solutions;
31
- }
32
- }
33
- resolvedTitle() {
34
- return this.title || (this.cachedUser ? getSolutionModalTitle(this.cachedProblemIndex, this.cachedUser) : '');
35
- }
36
- solutionMeta(solution) {
37
- return getSolutionResultMeta(solution.result);
38
- }
39
- trackBySolution(index, solution) {
40
- return `${solution.result}_${solution.time?.[0]}_${index}`;
41
- }
42
- 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
- <srk-modal
45
- *ngIf="cachedUser"
46
- [open]="open"
47
- [title]="resolvedTitle()"
48
- [width]="width"
49
- [rootClassName]="rootClassName"
50
- [wrapClassName]="wrapClassName"
51
- [panelStyle]="panelStyle"
52
- (close)="close.emit($event)"
53
- (openChange)="openChange.emit($event)"
54
- >
55
- <table class="srk-common-table srk-solutions-table">
56
- <thead>
57
- <tr>
58
- <th class="srk--text-left">Result</th>
59
- <th class="srk--text-right">Time</th>
60
- </tr>
61
- </thead>
62
- <tbody>
63
- <tr *ngFor="let solution of cachedSolutions; let index = index; trackBy: trackBySolution">
64
- <td>
65
- <span
66
- class="srk-solution-result-text"
67
- [ngClass]="solutionMeta(solution).className"
68
- >
69
- {{ solutionMeta(solution).label }}
70
- </span>
71
- </td>
72
- <td class="srk--text-right">{{ formatSolutionTimestamp(solution) }}</td>
73
- </tr>
74
- </tbody>
75
- </table>
76
- </srk-modal>
77
- `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ModalComponent, selector: "srk-modal", inputs: ["open", "title", "width", "rootClassName", "wrapClassName", "destroyOnClose", "closeOnEsc", "closeOnMaskClick", "panelStyle"], outputs: ["openChange", "close"] }] });
78
- }
79
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DefaultSolutionModalComponent, decorators: [{
80
- type: Component,
81
- args: [{
82
- selector: 'srk-default-solution-modal',
83
- standalone: true,
84
- imports: [CommonModule, ModalComponent],
85
- template: `
86
- <srk-modal
87
- *ngIf="cachedUser"
88
- [open]="open"
89
- [title]="resolvedTitle()"
90
- [width]="width"
91
- [rootClassName]="rootClassName"
92
- [wrapClassName]="wrapClassName"
93
- [panelStyle]="panelStyle"
94
- (close)="close.emit($event)"
95
- (openChange)="openChange.emit($event)"
96
- >
97
- <table class="srk-common-table srk-solutions-table">
98
- <thead>
99
- <tr>
100
- <th class="srk--text-left">Result</th>
101
- <th class="srk--text-right">Time</th>
102
- </tr>
103
- </thead>
104
- <tbody>
105
- <tr *ngFor="let solution of cachedSolutions; let index = index; trackBy: trackBySolution">
106
- <td>
107
- <span
108
- class="srk-solution-result-text"
109
- [ngClass]="solutionMeta(solution).className"
110
- >
111
- {{ solutionMeta(solution).label }}
112
- </span>
113
- </td>
114
- <td class="srk--text-right">{{ formatSolutionTimestamp(solution) }}</td>
115
- </tr>
116
- </tbody>
117
- </table>
118
- </srk-modal>
119
- `,
120
- }]
121
- }], propDecorators: { open: [{
122
- type: Input
123
- }], user: [{
124
- type: Input
125
- }], problem: [{
126
- type: Input
127
- }], problemIndex: [{
128
- type: Input
129
- }], solutions: [{
130
- type: Input
131
- }], title: [{
132
- type: Input
133
- }], width: [{
134
- type: Input
135
- }], rootClassName: [{
136
- type: Input
137
- }], wrapClassName: [{
138
- type: Input
139
- }], panelStyle: [{
140
- type: Input
141
- }], openChange: [{
142
- type: Output
143
- }], close: [{
144
- type: Output
145
- }] } });
146
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdC1zb2x1dGlvbi1tb2RhbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL21vZGFsL2RlZmF1bHQtc29sdXRpb24tbW9kYWwuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxHQUVQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIscUJBQXFCLEVBQ3JCLHFCQUFxQixHQUV0QixNQUFNLDRCQUE0QixDQUFDO0FBQ3BDLE9BQU8sRUFDTCxjQUFjLEdBRWYsTUFBTSxtQkFBbUIsQ0FBQzs7O0FBMEMzQixNQUFNLE9BQU8sNkJBQTZCO0lBQy9CLElBQUksR0FBRyxLQUFLLENBQUM7SUFDYixJQUFJLENBQW1CO0lBQ3ZCLE9BQU8sQ0FBZTtJQUN0QixZQUFZLEdBQUcsQ0FBQyxDQUFDO0lBQ2pCLFNBQVMsR0FBbUIsRUFBRSxDQUFDO0lBQy9CLEtBQUssQ0FBVTtJQUNmLEtBQUssR0FBRyxHQUFHLENBQUM7SUFDWixhQUFhLEdBQUcsd0JBQXdCLENBQUM7SUFDekMsYUFBYSxHQUFHLHFCQUFxQixDQUFDO0lBQ3RDLFVBQVUsR0FBb0MsRUFBRSxDQUFDO0lBRWhELFVBQVUsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO0lBQ3pDLEtBQUssR0FBRyxJQUFJLFlBQVksRUFBb0IsQ0FBQztJQUU5Qyx1QkFBdUIsR0FBRyx1QkFBdUIsQ0FBQztJQUMzRCxVQUFVLEdBQW9CLElBQUksQ0FBQztJQUNuQyxhQUFhLENBQWU7SUFDNUIsa0JBQWtCLEdBQUcsQ0FBQyxDQUFDO0lBQ3ZCLGVBQWUsR0FBbUIsRUFBRSxDQUFDO0lBRXJDLFdBQVcsQ0FBQyxRQUF1QjtRQUNqQyxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNkLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztZQUM1QixJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7WUFDbEMsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQyxZQUFZLENBQUM7WUFDNUMsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO1FBQ3hDLENBQUM7SUFDSCxDQUFDO0lBRUQsYUFBYTtRQUNYLE9BQU8sSUFBSSxDQUFDLEtBQUssSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ2hILENBQUM7SUFFRCxZQUFZLENBQUMsUUFBc0I7UUFDakMsT0FBTyxxQkFBcUIsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUVELGVBQWUsQ0FBQyxLQUFhLEVBQUUsUUFBc0I7UUFDbkQsT0FBTyxHQUFHLFFBQVEsQ0FBQyxNQUFNLElBQUksUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssRUFBRSxDQUFDO0lBQzdELENBQUM7d0dBeENVLDZCQUE2Qjs0RkFBN0IsNkJBQTZCLDhZQXBDOUI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FrQ1QsMkRBbkNTLFlBQVksOFZBQUUsY0FBYzs7NEZBcUMzQiw2QkFBNkI7a0JBeEN6QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSw0QkFBNEI7b0JBQ3RDLFVBQVUsRUFBRSxJQUFJO29CQUNoQixPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsY0FBYyxDQUFDO29CQUN2QyxRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FrQ1Q7aUJBQ0Y7OEJBRVUsSUFBSTtzQkFBWixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBRUksVUFBVTtzQkFBbkIsTUFBTTtnQkFDRyxLQUFLO3NCQUFkLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSAqIGFzIHNyayBmcm9tICdAYWxnb3V4L3N0YW5kYXJkLXJhbmtsaXN0JztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT3V0cHV0LFxuICBTaW1wbGVDaGFuZ2VzLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIGZvcm1hdFNvbHV0aW9uVGltZXN0YW1wLFxuICBnZXRTb2x1dGlvbk1vZGFsVGl0bGUsXG4gIGdldFNvbHV0aW9uUmVzdWx0TWV0YSxcbiAgdHlwZSBTb2x1dGlvblJlc3VsdE1ldGEsXG59IGZyb20gJy4uL3JhbmtsaXN0L3JhbmtsaXN0LXV0aWxzJztcbmltcG9ydCB7XG4gIE1vZGFsQ29tcG9uZW50LFxuICB0eXBlIE1vZGFsQ2xvc2VSZWFzb24sXG59IGZyb20gJy4vbW9kYWwuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3JrLWRlZmF1bHQtc29sdXRpb24tbW9kYWwnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBNb2RhbENvbXBvbmVudF0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPHNyay1tb2RhbFxuICAgICAgKm5nSWY9XCJjYWNoZWRVc2VyXCJcbiAgICAgIFtvcGVuXT1cIm9wZW5cIlxuICAgICAgW3RpdGxlXT1cInJlc29sdmVkVGl0bGUoKVwiXG4gICAgICBbd2lkdGhdPVwid2lkdGhcIlxuICAgICAgW3Jvb3RDbGFzc05hbWVdPVwicm9vdENsYXNzTmFtZVwiXG4gICAgICBbd3JhcENsYXNzTmFtZV09XCJ3cmFwQ2xhc3NOYW1lXCJcbiAgICAgIFtwYW5lbFN0eWxlXT1cInBhbmVsU3R5bGVcIlxuICAgICAgKGNsb3NlKT1cImNsb3NlLmVtaXQoJGV2ZW50KVwiXG4gICAgICAob3BlbkNoYW5nZSk9XCJvcGVuQ2hhbmdlLmVtaXQoJGV2ZW50KVwiXG4gICAgPlxuICAgICAgPHRhYmxlIGNsYXNzPVwic3JrLWNvbW1vbi10YWJsZSBzcmstc29sdXRpb25zLXRhYmxlXCI+XG4gICAgICAgIDx0aGVhZD5cbiAgICAgICAgICA8dHI+XG4gICAgICAgICAgICA8dGggY2xhc3M9XCJzcmstLXRleHQtbGVmdFwiPlJlc3VsdDwvdGg+XG4gICAgICAgICAgICA8dGggY2xhc3M9XCJzcmstLXRleHQtcmlnaHRcIj5UaW1lPC90aD5cbiAgICAgICAgICA8L3RyPlxuICAgICAgICA8L3RoZWFkPlxuICAgICAgICA8dGJvZHk+XG4gICAgICAgICAgPHRyICpuZ0Zvcj1cImxldCBzb2x1dGlvbiBvZiBjYWNoZWRTb2x1dGlvbnM7IGxldCBpbmRleCA9IGluZGV4OyB0cmFja0J5OiB0cmFja0J5U29sdXRpb25cIj5cbiAgICAgICAgICAgIDx0ZD5cbiAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICBjbGFzcz1cInNyay1zb2x1dGlvbi1yZXN1bHQtdGV4dFwiXG4gICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwic29sdXRpb25NZXRhKHNvbHV0aW9uKS5jbGFzc05hbWVcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge3sgc29sdXRpb25NZXRhKHNvbHV0aW9uKS5sYWJlbCB9fVxuICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgPHRkIGNsYXNzPVwic3JrLS10ZXh0LXJpZ2h0XCI+e3sgZm9ybWF0U29sdXRpb25UaW1lc3RhbXAoc29sdXRpb24pIH19PC90ZD5cbiAgICAgICAgICA8L3RyPlxuICAgICAgICA8L3Rib2R5PlxuICAgICAgPC90YWJsZT5cbiAgICA8L3Nyay1tb2RhbD5cbiAgYCxcbn0pXG5leHBvcnQgY2xhc3MgRGVmYXVsdFNvbHV0aW9uTW9kYWxDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICBASW5wdXQoKSBvcGVuID0gZmFsc2U7XG4gIEBJbnB1dCgpIHVzZXI/OiBzcmsuVXNlciB8IG51bGw7XG4gIEBJbnB1dCgpIHByb2JsZW0/OiBzcmsuUHJvYmxlbTtcbiAgQElucHV0KCkgcHJvYmxlbUluZGV4ID0gMDtcbiAgQElucHV0KCkgc29sdXRpb25zOiBzcmsuU29sdXRpb25bXSA9IFtdO1xuICBASW5wdXQoKSB0aXRsZT86IHN0cmluZztcbiAgQElucHV0KCkgd2lkdGggPSAzMjA7XG4gIEBJbnB1dCgpIHJvb3RDbGFzc05hbWUgPSAnc3JrLWdlbmVyYWwtbW9kYWwtcm9vdCc7XG4gIEBJbnB1dCgpIHdyYXBDbGFzc05hbWUgPSAnc3JrLXNvbHV0aW9ucy1tb2RhbCc7XG4gIEBJbnB1dCgpIHBhbmVsU3R5bGU6IFJlY29yZDxzdHJpbmcsIHN0cmluZyB8IG51bWJlcj4gPSB7fTtcblxuICBAT3V0cHV0KCkgb3BlbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcbiAgQE91dHB1dCgpIGNsb3NlID0gbmV3IEV2ZW50RW1pdHRlcjxNb2RhbENsb3NlUmVhc29uPigpO1xuXG4gIHJlYWRvbmx5IGZvcm1hdFNvbHV0aW9uVGltZXN0YW1wID0gZm9ybWF0U29sdXRpb25UaW1lc3RhbXA7XG4gIGNhY2hlZFVzZXI6IHNyay5Vc2VyIHwgbnVsbCA9IG51bGw7XG4gIGNhY2hlZFByb2JsZW0/OiBzcmsuUHJvYmxlbTtcbiAgY2FjaGVkUHJvYmxlbUluZGV4ID0gMDtcbiAgY2FjaGVkU29sdXRpb25zOiBzcmsuU29sdXRpb25bXSA9IFtdO1xuXG4gIG5nT25DaGFuZ2VzKF9jaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgaWYgKHRoaXMudXNlcikge1xuICAgICAgdGhpcy5jYWNoZWRVc2VyID0gdGhpcy51c2VyO1xuICAgICAgdGhpcy5jYWNoZWRQcm9ibGVtID0gdGhpcy5wcm9ibGVtO1xuICAgICAgdGhpcy5jYWNoZWRQcm9ibGVtSW5kZXggPSB0aGlzLnByb2JsZW1JbmRleDtcbiAgICAgIHRoaXMuY2FjaGVkU29sdXRpb25zID0gdGhpcy5zb2x1dGlvbnM7XG4gICAgfVxuICB9XG5cbiAgcmVzb2x2ZWRUaXRsZSgpIHtcbiAgICByZXR1cm4gdGhpcy50aXRsZSB8fCAodGhpcy5jYWNoZWRVc2VyID8gZ2V0U29sdXRpb25Nb2RhbFRpdGxlKHRoaXMuY2FjaGVkUHJvYmxlbUluZGV4LCB0aGlzLmNhY2hlZFVzZXIpIDogJycpO1xuICB9XG5cbiAgc29sdXRpb25NZXRhKHNvbHV0aW9uOiBzcmsuU29sdXRpb24pOiBTb2x1dGlvblJlc3VsdE1ldGEge1xuICAgIHJldHVybiBnZXRTb2x1dGlvblJlc3VsdE1ldGEoc29sdXRpb24ucmVzdWx0KTtcbiAgfVxuXG4gIHRyYWNrQnlTb2x1dGlvbihpbmRleDogbnVtYmVyLCBzb2x1dGlvbjogc3JrLlNvbHV0aW9uKSB7XG4gICAgcmV0dXJuIGAke3NvbHV0aW9uLnJlc3VsdH1fJHtzb2x1dGlvbi50aW1lPy5bMF19XyR7aW5kZXh9YDtcbiAgfVxufVxuIl19
@@ -1,172 +0,0 @@
1
- import { CommonModule } from '@angular/common';
2
- import { Component, EventEmitter, Input, Output, } from '@angular/core';
3
- import { EnumTheme, resolveText, resolveUserMarkers, } from '@algoux/standard-ranklist-utils';
4
- import { getMarkerPresentation, resolveSrkAssetUrl, } from '../ranklist/ranklist-utils';
5
- import { ModalComponent, } from './modal.component';
6
- import * as i0 from "@angular/core";
7
- import * as i1 from "@angular/common";
8
- export class DefaultUserModalComponent {
9
- open = false;
10
- user;
11
- markers = [];
12
- theme = EnumTheme.light;
13
- title = 'User Info';
14
- width = 420;
15
- rootClassName = 'srk-general-modal-root';
16
- wrapClassName = 'srk-user-modal';
17
- panelStyle = {};
18
- formatSrkAssetUrl;
19
- openChange = new EventEmitter();
20
- close = new EventEmitter();
21
- resolveText = resolveText;
22
- cachedUser = null;
23
- ngOnChanges(_changes) {
24
- if (this.user) {
25
- this.cachedUser = this.user;
26
- }
27
- }
28
- resolvedMarkers() {
29
- if (!this.cachedUser) {
30
- return [];
31
- }
32
- return resolveUserMarkers(this.cachedUser, this.markers).map((marker) => ({
33
- marker,
34
- presentation: getMarkerPresentation(marker, this.theme),
35
- }));
36
- }
37
- formatAssetUrl(url, field) {
38
- return resolveSrkAssetUrl(url, field, this.formatSrkAssetUrl);
39
- }
40
- trackByMarkerId(_index, entry) {
41
- return entry.marker.id;
42
- }
43
- trackByMemberName(_index, member) {
44
- return resolveText(member.name);
45
- }
46
- 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: `
48
- <srk-modal
49
- *ngIf="cachedUser as modalUser"
50
- [open]="open"
51
- [title]="title"
52
- [width]="width"
53
- [rootClassName]="rootClassName"
54
- [wrapClassName]="wrapClassName"
55
- [panelStyle]="panelStyle"
56
- (close)="close.emit($event)"
57
- (openChange)="openChange.emit($event)"
58
- >
59
- <div class="srk-user-modal-info">
60
- <h3 class="srk-user-modal-info-user-name">{{ resolveText(modalUser.name) }}</h3>
61
- <p *ngIf="modalUser.organization" class="srk-user-modal-info-user-second-name">
62
- {{ resolveText(modalUser.organization) }}
63
- </p>
64
- <div class="srk-user-modal-info-labels">
65
- <span class="srk-user-modal-info-labels-label srk-user-modal-info-labels-label-preset-general">
66
- {{ modalUser.official === false ? '* 非正式参加者' : '正式参加者' }}
67
- </span>
68
- <span
69
- *ngFor="let entry of resolvedMarkers(); trackBy: trackByMarkerId"
70
- class="srk-user-modal-info-labels-label"
71
- [ngClass]="entry.presentation.className"
72
- [ngStyle]="entry.presentation.style"
73
- >
74
- {{ resolveText(entry.marker.label) }}
75
- </span>
76
- </div>
77
- <div *ngIf="modalUser.teamMembers?.length" class="srk-user-modal-info-team-members">
78
- <ng-container *ngFor="let member of modalUser.teamMembers; let index = index; trackBy: trackByMemberName">
79
- <span *ngIf="index > 0" class="srk-user-modal-info-team-members-slash"> / </span>
80
- <span>{{ resolveText(member.name) }}</span>
81
- </ng-container>
82
- </div>
83
- <div *ngIf="modalUser.photo" class="srk-user-modal-info-photo">
84
- <img
85
- [src]="formatAssetUrl(modalUser.photo, 'user.photo')"
86
- alt="User portrait"
87
- class="srk-user-modal-info-photo-img"
88
- />
89
- </div>
90
- </div>
91
- </srk-modal>
92
- `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: ModalComponent, selector: "srk-modal", inputs: ["open", "title", "width", "rootClassName", "wrapClassName", "destroyOnClose", "closeOnEsc", "closeOnMaskClick", "panelStyle"], outputs: ["openChange", "close"] }] });
93
- }
94
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DefaultUserModalComponent, decorators: [{
95
- type: Component,
96
- args: [{
97
- selector: 'srk-default-user-modal',
98
- standalone: true,
99
- imports: [CommonModule, ModalComponent],
100
- template: `
101
- <srk-modal
102
- *ngIf="cachedUser as modalUser"
103
- [open]="open"
104
- [title]="title"
105
- [width]="width"
106
- [rootClassName]="rootClassName"
107
- [wrapClassName]="wrapClassName"
108
- [panelStyle]="panelStyle"
109
- (close)="close.emit($event)"
110
- (openChange)="openChange.emit($event)"
111
- >
112
- <div class="srk-user-modal-info">
113
- <h3 class="srk-user-modal-info-user-name">{{ resolveText(modalUser.name) }}</h3>
114
- <p *ngIf="modalUser.organization" class="srk-user-modal-info-user-second-name">
115
- {{ resolveText(modalUser.organization) }}
116
- </p>
117
- <div class="srk-user-modal-info-labels">
118
- <span class="srk-user-modal-info-labels-label srk-user-modal-info-labels-label-preset-general">
119
- {{ modalUser.official === false ? '* 非正式参加者' : '正式参加者' }}
120
- </span>
121
- <span
122
- *ngFor="let entry of resolvedMarkers(); trackBy: trackByMarkerId"
123
- class="srk-user-modal-info-labels-label"
124
- [ngClass]="entry.presentation.className"
125
- [ngStyle]="entry.presentation.style"
126
- >
127
- {{ resolveText(entry.marker.label) }}
128
- </span>
129
- </div>
130
- <div *ngIf="modalUser.teamMembers?.length" class="srk-user-modal-info-team-members">
131
- <ng-container *ngFor="let member of modalUser.teamMembers; let index = index; trackBy: trackByMemberName">
132
- <span *ngIf="index > 0" class="srk-user-modal-info-team-members-slash"> / </span>
133
- <span>{{ resolveText(member.name) }}</span>
134
- </ng-container>
135
- </div>
136
- <div *ngIf="modalUser.photo" class="srk-user-modal-info-photo">
137
- <img
138
- [src]="formatAssetUrl(modalUser.photo, 'user.photo')"
139
- alt="User portrait"
140
- class="srk-user-modal-info-photo-img"
141
- />
142
- </div>
143
- </div>
144
- </srk-modal>
145
- `,
146
- }]
147
- }], propDecorators: { open: [{
148
- type: Input
149
- }], user: [{
150
- type: Input
151
- }], markers: [{
152
- type: Input
153
- }], theme: [{
154
- type: Input
155
- }], title: [{
156
- type: Input
157
- }], width: [{
158
- type: Input
159
- }], rootClassName: [{
160
- type: Input
161
- }], wrapClassName: [{
162
- type: Input
163
- }], panelStyle: [{
164
- type: Input
165
- }], formatSrkAssetUrl: [{
166
- type: Input
167
- }], openChange: [{
168
- type: Output
169
- }], close: [{
170
- type: Output
171
- }] } });
172
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdC11c2VyLW1vZGFsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvbW9kYWwvZGVmYXVsdC11c2VyLW1vZGFsLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUNMLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sR0FFUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0wsU0FBUyxFQUNULFdBQVcsRUFDWCxrQkFBa0IsR0FDbkIsTUFBTSxpQ0FBaUMsQ0FBQztBQUN6QyxPQUFPLEVBQ0wscUJBQXFCLEVBRXJCLGtCQUFrQixHQUNuQixNQUFNLDRCQUE0QixDQUFDO0FBQ3BDLE9BQU8sRUFDTCxjQUFjLEdBRWYsTUFBTSxtQkFBbUIsQ0FBQzs7O0FBMEQzQixNQUFNLE9BQU8seUJBQXlCO0lBQzNCLElBQUksR0FBRyxLQUFLLENBQUM7SUFDYixJQUFJLENBQW1CO0lBQ3ZCLE9BQU8sR0FBaUIsRUFBRSxDQUFDO0lBQzNCLEtBQUssR0FBRyxTQUFTLENBQUMsS0FBSyxDQUFDO0lBQ3hCLEtBQUssR0FBRyxXQUFXLENBQUM7SUFDcEIsS0FBSyxHQUFHLEdBQUcsQ0FBQztJQUNaLGFBQWEsR0FBRyx3QkFBd0IsQ0FBQztJQUN6QyxhQUFhLEdBQUcsZ0JBQWdCLENBQUM7SUFDakMsVUFBVSxHQUFvQyxFQUFFLENBQUM7SUFDakQsaUJBQWlCLENBQTBDO0lBRTFELFVBQVUsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO0lBQ3pDLEtBQUssR0FBRyxJQUFJLFlBQVksRUFBb0IsQ0FBQztJQUU5QyxXQUFXLEdBQUcsV0FBVyxDQUFDO0lBQ25DLFVBQVUsR0FBb0IsSUFBSSxDQUFDO0lBRW5DLFdBQVcsQ0FBQyxRQUF1QjtRQUNqQyxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNkLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztRQUM5QixDQUFDO0lBQ0gsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ3JCLE9BQU8sRUFBRSxDQUFDO1FBQ1osQ0FBQztRQUNELE9BQU8sa0JBQWtCLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ3hFLE1BQU07WUFDTixZQUFZLEVBQUUscUJBQXFCLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUM7U0FDeEQsQ0FBQyxDQUFDLENBQUM7SUFDTixDQUFDO0lBRUQsY0FBYyxDQUFDLEdBQVcsRUFBRSxLQUFhO1FBQ3ZDLE9BQU8sa0JBQWtCLENBQUMsR0FBRyxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUNoRSxDQUFDO0lBRUQsZUFBZSxDQUFDLE1BQWMsRUFBRSxLQUFxQjtRQUNuRCxPQUFPLEtBQUssQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxNQUFjLEVBQUUsTUFBd0I7UUFDeEQsT0FBTyxXQUFXLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2xDLENBQUM7d0dBNUNVLHlCQUF5Qjs0RkFBekIseUJBQXlCLDRZQS9DMUI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTZDVCwyREE5Q1MsWUFBWSxtYkFBRSxjQUFjOzs0RkFnRDNCLHlCQUF5QjtrQkFuRHJDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHdCQUF3QjtvQkFDbEMsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxjQUFjLENBQUM7b0JBQ3ZDLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBNkNUO2lCQUNGOzhCQUVVLElBQUk7c0JBQVosS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFFSSxVQUFVO3NCQUFuQixNQUFNO2dCQUNHLEtBQUs7c0JBQWQsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlICogYXMgc3JrIGZyb20gJ0BhbGdvdXgvc3RhbmRhcmQtcmFua2xpc3QnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPdXRwdXQsXG4gIFNpbXBsZUNoYW5nZXMsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgRW51bVRoZW1lLFxuICByZXNvbHZlVGV4dCxcbiAgcmVzb2x2ZVVzZXJNYXJrZXJzLFxufSBmcm9tICdAYWxnb3V4L3N0YW5kYXJkLXJhbmtsaXN0LXV0aWxzJztcbmltcG9ydCB7XG4gIGdldE1hcmtlclByZXNlbnRhdGlvbixcbiAgdHlwZSBNYXJrZXJQcmVzZW50YXRpb24sXG4gIHJlc29sdmVTcmtBc3NldFVybCxcbn0gZnJvbSAnLi4vcmFua2xpc3QvcmFua2xpc3QtdXRpbHMnO1xuaW1wb3J0IHtcbiAgTW9kYWxDb21wb25lbnQsXG4gIHR5cGUgTW9kYWxDbG9zZVJlYXNvbixcbn0gZnJvbSAnLi9tb2RhbC5jb21wb25lbnQnO1xuXG5pbnRlcmZhY2UgUmVzb2x2ZWRNYXJrZXIge1xuICBtYXJrZXI6IHNyay5NYXJrZXI7XG4gIHByZXNlbnRhdGlvbjogTWFya2VyUHJlc2VudGF0aW9uO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzcmstZGVmYXVsdC11c2VyLW1vZGFsJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgTW9kYWxDb21wb25lbnRdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxzcmstbW9kYWxcbiAgICAgICpuZ0lmPVwiY2FjaGVkVXNlciBhcyBtb2RhbFVzZXJcIlxuICAgICAgW29wZW5dPVwib3BlblwiXG4gICAgICBbdGl0bGVdPVwidGl0bGVcIlxuICAgICAgW3dpZHRoXT1cIndpZHRoXCJcbiAgICAgIFtyb290Q2xhc3NOYW1lXT1cInJvb3RDbGFzc05hbWVcIlxuICAgICAgW3dyYXBDbGFzc05hbWVdPVwid3JhcENsYXNzTmFtZVwiXG4gICAgICBbcGFuZWxTdHlsZV09XCJwYW5lbFN0eWxlXCJcbiAgICAgIChjbG9zZSk9XCJjbG9zZS5lbWl0KCRldmVudClcIlxuICAgICAgKG9wZW5DaGFuZ2UpPVwib3BlbkNoYW5nZS5lbWl0KCRldmVudClcIlxuICAgID5cbiAgICAgIDxkaXYgY2xhc3M9XCJzcmstdXNlci1tb2RhbC1pbmZvXCI+XG4gICAgICAgIDxoMyBjbGFzcz1cInNyay11c2VyLW1vZGFsLWluZm8tdXNlci1uYW1lXCI+e3sgcmVzb2x2ZVRleHQobW9kYWxVc2VyLm5hbWUpIH19PC9oMz5cbiAgICAgICAgPHAgKm5nSWY9XCJtb2RhbFVzZXIub3JnYW5pemF0aW9uXCIgY2xhc3M9XCJzcmstdXNlci1tb2RhbC1pbmZvLXVzZXItc2Vjb25kLW5hbWVcIj5cbiAgICAgICAgICB7eyByZXNvbHZlVGV4dChtb2RhbFVzZXIub3JnYW5pemF0aW9uKSB9fVxuICAgICAgICA8L3A+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzcmstdXNlci1tb2RhbC1pbmZvLWxhYmVsc1wiPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3JrLXVzZXItbW9kYWwtaW5mby1sYWJlbHMtbGFiZWwgc3JrLXVzZXItbW9kYWwtaW5mby1sYWJlbHMtbGFiZWwtcHJlc2V0LWdlbmVyYWxcIj5cbiAgICAgICAgICAgIHt7IG1vZGFsVXNlci5vZmZpY2lhbCA9PT0gZmFsc2UgPyAn77yKIOmdnuato+W8j+WPguWKoOiAhScgOiAn5q2j5byP5Y+C5Yqg6ICFJyB9fVxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgKm5nRm9yPVwibGV0IGVudHJ5IG9mIHJlc29sdmVkTWFya2VycygpOyB0cmFja0J5OiB0cmFja0J5TWFya2VySWRcIlxuICAgICAgICAgICAgY2xhc3M9XCJzcmstdXNlci1tb2RhbC1pbmZvLWxhYmVscy1sYWJlbFwiXG4gICAgICAgICAgICBbbmdDbGFzc109XCJlbnRyeS5wcmVzZW50YXRpb24uY2xhc3NOYW1lXCJcbiAgICAgICAgICAgIFtuZ1N0eWxlXT1cImVudHJ5LnByZXNlbnRhdGlvbi5zdHlsZVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAge3sgcmVzb2x2ZVRleHQoZW50cnkubWFya2VyLmxhYmVsKSB9fVxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgKm5nSWY9XCJtb2RhbFVzZXIudGVhbU1lbWJlcnM/Lmxlbmd0aFwiIGNsYXNzPVwic3JrLXVzZXItbW9kYWwtaW5mby10ZWFtLW1lbWJlcnNcIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBtZW1iZXIgb2YgbW9kYWxVc2VyLnRlYW1NZW1iZXJzOyBsZXQgaW5kZXggPSBpbmRleDsgdHJhY2tCeTogdHJhY2tCeU1lbWJlck5hbWVcIj5cbiAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiaW5kZXggPiAwXCIgY2xhc3M9XCJzcmstdXNlci1tb2RhbC1pbmZvLXRlYW0tbWVtYmVycy1zbGFzaFwiPiAvIDwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuPnt7IHJlc29sdmVUZXh0KG1lbWJlci5uYW1lKSB9fTwvc3Bhbj5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgKm5nSWY9XCJtb2RhbFVzZXIucGhvdG9cIiBjbGFzcz1cInNyay11c2VyLW1vZGFsLWluZm8tcGhvdG9cIj5cbiAgICAgICAgICA8aW1nXG4gICAgICAgICAgICBbc3JjXT1cImZvcm1hdEFzc2V0VXJsKG1vZGFsVXNlci5waG90bywgJ3VzZXIucGhvdG8nKVwiXG4gICAgICAgICAgICBhbHQ9XCJVc2VyIHBvcnRyYWl0XCJcbiAgICAgICAgICAgIGNsYXNzPVwic3JrLXVzZXItbW9kYWwtaW5mby1waG90by1pbWdcIlxuICAgICAgICAgIC8+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9zcmstbW9kYWw+XG4gIGAsXG59KVxuZXhwb3J0IGNsYXNzIERlZmF1bHRVc2VyTW9kYWxDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICBASW5wdXQoKSBvcGVuID0gZmFsc2U7XG4gIEBJbnB1dCgpIHVzZXI/OiBzcmsuVXNlciB8IG51bGw7XG4gIEBJbnB1dCgpIG1hcmtlcnM6IHNyay5NYXJrZXJbXSA9IFtdO1xuICBASW5wdXQoKSB0aGVtZSA9IEVudW1UaGVtZS5saWdodDtcbiAgQElucHV0KCkgdGl0bGUgPSAnVXNlciBJbmZvJztcbiAgQElucHV0KCkgd2lkdGggPSA0MjA7XG4gIEBJbnB1dCgpIHJvb3RDbGFzc05hbWUgPSAnc3JrLWdlbmVyYWwtbW9kYWwtcm9vdCc7XG4gIEBJbnB1dCgpIHdyYXBDbGFzc05hbWUgPSAnc3JrLXVzZXItbW9kYWwnO1xuICBASW5wdXQoKSBwYW5lbFN0eWxlOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmcgfCBudW1iZXI+ID0ge307XG4gIEBJbnB1dCgpIGZvcm1hdFNya0Fzc2V0VXJsPzogKHVybDogc3RyaW5nLCBmaWVsZDogc3RyaW5nKSA9PiBzdHJpbmc7XG5cbiAgQE91dHB1dCgpIG9wZW5DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG4gIEBPdXRwdXQoKSBjbG9zZSA9IG5ldyBFdmVudEVtaXR0ZXI8TW9kYWxDbG9zZVJlYXNvbj4oKTtcblxuICByZWFkb25seSByZXNvbHZlVGV4dCA9IHJlc29sdmVUZXh0O1xuICBjYWNoZWRVc2VyOiBzcmsuVXNlciB8IG51bGwgPSBudWxsO1xuXG4gIG5nT25DaGFuZ2VzKF9jaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgaWYgKHRoaXMudXNlcikge1xuICAgICAgdGhpcy5jYWNoZWRVc2VyID0gdGhpcy51c2VyO1xuICAgIH1cbiAgfVxuXG4gIHJlc29sdmVkTWFya2VycygpOiBSZXNvbHZlZE1hcmtlcltdIHtcbiAgICBpZiAoIXRoaXMuY2FjaGVkVXNlcikge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cbiAgICByZXR1cm4gcmVzb2x2ZVVzZXJNYXJrZXJzKHRoaXMuY2FjaGVkVXNlciwgdGhpcy5tYXJrZXJzKS5tYXAoKG1hcmtlcikgPT4gKHtcbiAgICAgIG1hcmtlcixcbiAgICAgIHByZXNlbnRhdGlvbjogZ2V0TWFya2VyUHJlc2VudGF0aW9uKG1hcmtlciwgdGhpcy50aGVtZSksXG4gICAgfSkpO1xuICB9XG5cbiAgZm9ybWF0QXNzZXRVcmwodXJsOiBzdHJpbmcsIGZpZWxkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gcmVzb2x2ZVNya0Fzc2V0VXJsKHVybCwgZmllbGQsIHRoaXMuZm9ybWF0U3JrQXNzZXRVcmwpO1xuICB9XG5cbiAgdHJhY2tCeU1hcmtlcklkKF9pbmRleDogbnVtYmVyLCBlbnRyeTogUmVzb2x2ZWRNYXJrZXIpIHtcbiAgICByZXR1cm4gZW50cnkubWFya2VyLmlkO1xuICB9XG5cbiAgdHJhY2tCeU1lbWJlck5hbWUoX2luZGV4OiBudW1iZXIsIG1lbWJlcjogc3JrLkV4dGVybmFsVXNlcikge1xuICAgIHJldHVybiByZXNvbHZlVGV4dChtZW1iZXIubmFtZSk7XG4gIH1cbn1cbiJdfQ==
@@ -1,2 +0,0 @@
1
- export { MODAL_ANIMATION_DURATION_MS, SRK_ANIMATED_MODAL_ROOT_CLASS, SRK_SCROLL_LOCK_BODY_CLASS, captureModalTriggerPointFromMouseEvent, ensureModalInteractionTracker, isTopModalFocusScope, lockModalBodyScroll, registerModalFocusScope, resolveModalTransformOrigin, unlockModalBodyScroll, unregisterModalFocusScope, } from '@algoux/standard-ranklist-renderer-component-core';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwtaW50ZXJhY3Rpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9tb2RhbC9tb2RhbC1pbnRlcmFjdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLDJCQUEyQixFQUMzQiw2QkFBNkIsRUFDN0IsMEJBQTBCLEVBQzFCLHNDQUFzQyxFQUN0Qyw2QkFBNkIsRUFDN0Isb0JBQW9CLEVBQ3BCLG1CQUFtQixFQUNuQix1QkFBdUIsRUFDdkIsMkJBQTJCLEVBQzNCLHFCQUFxQixFQUNyQix5QkFBeUIsR0FDMUIsTUFBTSxtREFBbUQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7XG4gIE1PREFMX0FOSU1BVElPTl9EVVJBVElPTl9NUyxcbiAgU1JLX0FOSU1BVEVEX01PREFMX1JPT1RfQ0xBU1MsXG4gIFNSS19TQ1JPTExfTE9DS19CT0RZX0NMQVNTLFxuICBjYXB0dXJlTW9kYWxUcmlnZ2VyUG9pbnRGcm9tTW91c2VFdmVudCxcbiAgZW5zdXJlTW9kYWxJbnRlcmFjdGlvblRyYWNrZXIsXG4gIGlzVG9wTW9kYWxGb2N1c1Njb3BlLFxuICBsb2NrTW9kYWxCb2R5U2Nyb2xsLFxuICByZWdpc3Rlck1vZGFsRm9jdXNTY29wZSxcbiAgcmVzb2x2ZU1vZGFsVHJhbnNmb3JtT3JpZ2luLFxuICB1bmxvY2tNb2RhbEJvZHlTY3JvbGwsXG4gIHVucmVnaXN0ZXJNb2RhbEZvY3VzU2NvcGUsXG59IGZyb20gJ0BhbGdvdXgvc3RhbmRhcmQtcmFua2xpc3QtcmVuZGVyZXItY29tcG9uZW50LWNvcmUnO1xuIl19