@algoux/standard-ranklist-renderer-component-angular 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +100 -0
- package/dist/README.md +100 -0
- package/dist/esm2022/algoux-standard-ranklist-renderer-component-angular.mjs +5 -0
- package/dist/esm2022/lib/index.mjs +8 -0
- package/dist/esm2022/lib/modal/default-solution-modal.component.mjs +146 -0
- package/dist/esm2022/lib/modal/default-user-modal.component.mjs +172 -0
- package/dist/esm2022/lib/modal/modal-interactions.mjs +2 -0
- package/dist/esm2022/lib/modal/modal.component.mjs +263 -0
- package/dist/esm2022/lib/progress/progress-bar.component.mjs +247 -0
- package/dist/esm2022/lib/progress/progress-utils.mjs +45 -0
- package/dist/esm2022/lib/ranklist/ranklist-utils.mjs +110 -0
- package/dist/esm2022/lib/ranklist/ranklist.component.mjs +593 -0
- package/dist/esm2022/lib/ranklist/status-cell-template.directive.mjs +18 -0
- package/dist/esm2022/lib/ranklist/user-cell-template.directive.mjs +18 -0
- package/dist/esm2022/lib/types.mjs +2 -0
- package/dist/esm2022/public-api.mjs +2 -0
- package/dist/fesm2022/algoux-standard-ranklist-renderer-component-angular.mjs +1585 -0
- package/dist/fesm2022/algoux-standard-ranklist-renderer-component-angular.mjs.map +1 -0
- package/dist/index.d.ts +5 -0
- package/dist/lib/index.d.ts +8 -0
- package/dist/lib/modal/default-solution-modal.component.d.ts +30 -0
- package/dist/lib/modal/default-user-modal.component.d.ts +34 -0
- package/dist/lib/modal/modal-interactions.d.ts +1 -0
- package/dist/lib/modal/modal.component.d.ts +49 -0
- package/dist/lib/progress/progress-bar.component.d.ts +31 -0
- package/dist/lib/progress/progress-utils.d.ts +15 -0
- package/dist/lib/ranklist/ranklist-utils.d.ts +22 -0
- package/dist/lib/ranklist/ranklist.component.d.ts +57 -0
- package/dist/lib/ranklist/status-cell-template.directive.d.ts +23 -0
- package/dist/lib/ranklist/user-cell-template.directive.d.ts +20 -0
- package/dist/lib/types.d.ts +27 -0
- package/dist/public-api.d.ts +1 -0
- package/package.json +57 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2022 algoUX
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,100 @@
|
|
|
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.
|
package/dist/README.md
ADDED
|
@@ -0,0 +1,100 @@
|
|
|
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.
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './public-api';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxnb3V4LXN0YW5kYXJkLXJhbmtsaXN0LXJlbmRlcmVyLWNvbXBvbmVudC1hbmd1bGFyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FsZ291eC1zdGFuZGFyZC1yYW5rbGlzdC1yZW5kZXJlci1jb21wb25lbnQtYW5ndWxhci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuIl19
|
|
@@ -0,0 +1,8 @@
|
|
|
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
|
|
@@ -0,0 +1,146 @@
|
|
|
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
|
|
@@ -0,0 +1,172 @@
|
|
|
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==
|
|
@@ -0,0 +1,2 @@
|
|
|
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
|