@algoux/standard-ranklist-renderer-component-angular 0.6.3 → 0.6.5
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 +11 -0
- package/dist/README.md +11 -0
- package/dist/esm2022/lib/index.mjs +2 -1
- package/dist/esm2022/lib/ranklist/problem-header-cell-template.directive.mjs +18 -0
- package/dist/esm2022/lib/ranklist/ranklist.component.mjs +202 -87
- package/dist/esm2022/lib/types.mjs +1 -1
- package/dist/fesm2022/algoux-standard-ranklist-renderer-component-angular.mjs +217 -87
- package/dist/fesm2022/algoux-standard-ranklist-renderer-component-angular.mjs.map +1 -1
- package/dist/lib/index.d.ts +2 -1
- package/dist/lib/ranklist/problem-header-cell-template.directive.d.ts +20 -0
- package/dist/lib/ranklist/ranklist.component.d.ts +11 -2
- package/dist/lib/types.d.ts +1 -1
- package/package.json +3 -3
package/README.md
CHANGED
|
@@ -16,6 +16,7 @@ npm i -S @algoux/standard-ranklist-renderer-component-angular @algoux/standard-r
|
|
|
16
16
|
- `ModalComponent`
|
|
17
17
|
- `DefaultUserModalComponent`
|
|
18
18
|
- `DefaultSolutionModalComponent`
|
|
19
|
+
- `SrkProblemHeaderCellTemplateDirective`
|
|
19
20
|
- `SrkUserCellTemplateDirective`
|
|
20
21
|
- `SrkStatusCellTemplateDirective`
|
|
21
22
|
|
|
@@ -97,8 +98,18 @@ export class BoardComponent {
|
|
|
97
98
|
}
|
|
98
99
|
```
|
|
99
100
|
|
|
101
|
+
## Advanced Usage
|
|
102
|
+
|
|
100
103
|
Use `ModalComponent` directly when you want custom modal content. `SrkUserCellTemplateDirective` and `SrkStatusCellTemplateDirective` let you replace selected ranklist table cells with Angular templates.
|
|
101
104
|
|
|
105
|
+
For custom interaction flows, `RanklistComponent` exposes three semantic outputs:
|
|
106
|
+
|
|
107
|
+
- `(userClick)`: receives `UserClickPayload` when a user cell is clicked.
|
|
108
|
+
- `(problemClick)`: receives `ProblemClickPayload` when a problem header is clicked. When observed, default problem headers are always clickable and problem links are not rendered as anchors.
|
|
109
|
+
- `(solutionClick)`: receives `SolutionClickPayload` when a status cell with submissions is clicked.
|
|
110
|
+
|
|
111
|
+
`SrkProblemHeaderCellTemplateDirective` contexts receive `ranklist` and an `onClick` helper so they can opt into the same problem-click payload path.
|
|
112
|
+
|
|
102
113
|
## Ranklist Render Options
|
|
103
114
|
|
|
104
115
|
`RanklistComponent` includes optional render inputs for changing the table structure and status presentation while keeping the default behavior unchanged:
|
package/dist/README.md
CHANGED
|
@@ -16,6 +16,7 @@ npm i -S @algoux/standard-ranklist-renderer-component-angular @algoux/standard-r
|
|
|
16
16
|
- `ModalComponent`
|
|
17
17
|
- `DefaultUserModalComponent`
|
|
18
18
|
- `DefaultSolutionModalComponent`
|
|
19
|
+
- `SrkProblemHeaderCellTemplateDirective`
|
|
19
20
|
- `SrkUserCellTemplateDirective`
|
|
20
21
|
- `SrkStatusCellTemplateDirective`
|
|
21
22
|
|
|
@@ -97,8 +98,18 @@ export class BoardComponent {
|
|
|
97
98
|
}
|
|
98
99
|
```
|
|
99
100
|
|
|
101
|
+
## Advanced Usage
|
|
102
|
+
|
|
100
103
|
Use `ModalComponent` directly when you want custom modal content. `SrkUserCellTemplateDirective` and `SrkStatusCellTemplateDirective` let you replace selected ranklist table cells with Angular templates.
|
|
101
104
|
|
|
105
|
+
For custom interaction flows, `RanklistComponent` exposes three semantic outputs:
|
|
106
|
+
|
|
107
|
+
- `(userClick)`: receives `UserClickPayload` when a user cell is clicked.
|
|
108
|
+
- `(problemClick)`: receives `ProblemClickPayload` when a problem header is clicked. When observed, default problem headers are always clickable and problem links are not rendered as anchors.
|
|
109
|
+
- `(solutionClick)`: receives `SolutionClickPayload` when a status cell with submissions is clicked.
|
|
110
|
+
|
|
111
|
+
`SrkProblemHeaderCellTemplateDirective` contexts receive `ranklist` and an `onClick` helper so they can opt into the same problem-click payload path.
|
|
112
|
+
|
|
102
113
|
## Ranklist Render Options
|
|
103
114
|
|
|
104
115
|
`RanklistComponent` includes optional render inputs for changing the table structure and status presentation while keeping the default behavior unchanged:
|
|
@@ -3,6 +3,7 @@ export { DefaultUserModalComponent, } from './modal/default-user-modal.component
|
|
|
3
3
|
export { ModalComponent, } from './modal/modal.component';
|
|
4
4
|
export { ProgressBarComponent } from './progress/progress-bar.component';
|
|
5
5
|
export { RanklistComponent } from './ranklist/ranklist.component';
|
|
6
|
+
export { SrkProblemHeaderCellTemplateDirective, } from './ranklist/problem-header-cell-template.directive';
|
|
6
7
|
export { SrkStatusCellTemplateDirective, } from './ranklist/status-cell-template.directive';
|
|
7
8
|
export { SrkUserCellTemplateDirective, } from './ranklist/user-cell-template.directive';
|
|
8
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCw2QkFBNkIsR0FDOUIsTUFBTSwwQ0FBMEMsQ0FBQztBQUNsRCxPQUFPLEVBQ0wseUJBQXlCLEdBQzFCLE1BQU0sc0NBQXNDLENBQUM7QUFDOUMsT0FBTyxFQUNMLGNBQWMsR0FFZixNQUFNLHlCQUF5QixDQUFDO0FBQ2pDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2xFLE9BQU8sRUFDTCxxQ0FBcUMsR0FFdEMsTUFBTSxtREFBbUQsQ0FBQztBQUMzRCxPQUFPLEVBQ0wsOEJBQThCLEdBRS9CLE1BQU0sMkNBQTJDLENBQUM7QUFDbkQsT0FBTyxFQUNMLDRCQUE0QixHQUU3QixNQUFNLHlDQUF5QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHtcbiAgRGVmYXVsdFNvbHV0aW9uTW9kYWxDb21wb25lbnQsXG59IGZyb20gJy4vbW9kYWwvZGVmYXVsdC1zb2x1dGlvbi1tb2RhbC5jb21wb25lbnQnO1xuZXhwb3J0IHtcbiAgRGVmYXVsdFVzZXJNb2RhbENvbXBvbmVudCxcbn0gZnJvbSAnLi9tb2RhbC9kZWZhdWx0LXVzZXItbW9kYWwuY29tcG9uZW50JztcbmV4cG9ydCB7XG4gIE1vZGFsQ29tcG9uZW50LFxuICB0eXBlIE1vZGFsQ2xvc2VSZWFzb24sXG59IGZyb20gJy4vbW9kYWwvbW9kYWwuY29tcG9uZW50JztcbmV4cG9ydCB7IFByb2dyZXNzQmFyQ29tcG9uZW50IH0gZnJvbSAnLi9wcm9ncmVzcy9wcm9ncmVzcy1iYXIuY29tcG9uZW50JztcbmV4cG9ydCB7IFJhbmtsaXN0Q29tcG9uZW50IH0gZnJvbSAnLi9yYW5rbGlzdC9yYW5rbGlzdC5jb21wb25lbnQnO1xuZXhwb3J0IHtcbiAgU3JrUHJvYmxlbUhlYWRlckNlbGxUZW1wbGF0ZURpcmVjdGl2ZSxcbiAgdHlwZSBQcm9ibGVtSGVhZGVyQ2VsbFRlbXBsYXRlQ29udGV4dCxcbn0gZnJvbSAnLi9yYW5rbGlzdC9wcm9ibGVtLWhlYWRlci1jZWxsLXRlbXBsYXRlLmRpcmVjdGl2ZSc7XG5leHBvcnQge1xuICBTcmtTdGF0dXNDZWxsVGVtcGxhdGVEaXJlY3RpdmUsXG4gIHR5cGUgU3RhdHVzQ2VsbFRlbXBsYXRlQ29udGV4dCxcbn0gZnJvbSAnLi9yYW5rbGlzdC9zdGF0dXMtY2VsbC10ZW1wbGF0ZS5kaXJlY3RpdmUnO1xuZXhwb3J0IHtcbiAgU3JrVXNlckNlbGxUZW1wbGF0ZURpcmVjdGl2ZSxcbiAgdHlwZSBVc2VyQ2VsbFRlbXBsYXRlQ29udGV4dCxcbn0gZnJvbSAnLi9yYW5rbGlzdC91c2VyLWNlbGwtdGVtcGxhdGUuZGlyZWN0aXZlJztcbmV4cG9ydCB0eXBlIHtcbiAgUmFua2xpc3RDb2x1bW5UaXRsZXMsXG4gIFJhbmtsaXN0U3RhdHVzQ2VsbFByZXNldCxcbiAgUmFua2xpc3RVc2VyQXZhdGFyUGxhY2VtZW50LFxuICBSYW5rVmFsdWUsXG4gIFByb2JsZW1DbGlja1BheWxvYWQsXG4gIFNvbHV0aW9uQ2xpY2tQYXlsb2FkLFxuICBTdGF0aWNSYW5rbGlzdCxcbiAgVXNlckNsaWNrUGF5bG9hZCxcbn0gZnJvbSAnLi90eXBlcyc7XG4iXX0=
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { Directive, TemplateRef, inject } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class SrkProblemHeaderCellTemplateDirective {
|
|
4
|
+
templateRef = inject(TemplateRef);
|
|
5
|
+
static ngTemplateContextGuard(_directive, context) {
|
|
6
|
+
return true;
|
|
7
|
+
}
|
|
8
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SrkProblemHeaderCellTemplateDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
9
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.12", type: SrkProblemHeaderCellTemplateDirective, isStandalone: true, selector: "ng-template[srkProblemHeaderCell]", ngImport: i0 });
|
|
10
|
+
}
|
|
11
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SrkProblemHeaderCellTemplateDirective, decorators: [{
|
|
12
|
+
type: Directive,
|
|
13
|
+
args: [{
|
|
14
|
+
selector: 'ng-template[srkProblemHeaderCell]',
|
|
15
|
+
standalone: true,
|
|
16
|
+
}]
|
|
17
|
+
}] });
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvYmxlbS1oZWFkZXItY2VsbC10ZW1wbGF0ZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL3JhbmtsaXN0L3Byb2JsZW0taGVhZGVyLWNlbGwtdGVtcGxhdGUuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFvQi9ELE1BQU0sT0FBTyxxQ0FBcUM7SUFDdkMsV0FBVyxHQUFHLE1BQU0sQ0FBZ0QsV0FBVyxDQUFDLENBQUM7SUFFMUYsTUFBTSxDQUFDLHNCQUFzQixDQUMzQixVQUFpRCxFQUNqRCxPQUFnQjtRQUVoQixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7d0dBUlUscUNBQXFDOzRGQUFyQyxxQ0FBcUM7OzRGQUFyQyxxQ0FBcUM7a0JBSmpELFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLG1DQUFtQztvQkFDN0MsVUFBVSxFQUFFLElBQUk7aUJBQ2pCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgKiBhcyBzcmsgZnJvbSAnQGFsZ291eC9zdGFuZGFyZC1yYW5rbGlzdCc7XG5pbXBvcnQgeyBEaXJlY3RpdmUsIFRlbXBsYXRlUmVmLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB0eXBlIHtcbiAgUHJvYmxlbUNsaWNrUGF5bG9hZCxcbiAgU3RhdGljUmFua2xpc3QsXG59IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGludGVyZmFjZSBQcm9ibGVtSGVhZGVyQ2VsbFRlbXBsYXRlQ29udGV4dCB7XG4gICRpbXBsaWNpdDogc3JrLlByb2JsZW07XG4gIHByb2JsZW06IHNyay5Qcm9ibGVtO1xuICBwcm9ibGVtSW5kZXg6IG51bWJlcjtcbiAgaW5kZXg6IG51bWJlcjtcbiAgcmFua2xpc3Q6IFN0YXRpY1JhbmtsaXN0O1xuICBsYW5ndWFnZXM/OiByZWFkb25seSBzdHJpbmdbXTtcbiAgb25DbGljazogKGV2ZW50PzogTW91c2VFdmVudCkgPT4gdm9pZDtcbn1cblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnbmctdGVtcGxhdGVbc3JrUHJvYmxlbUhlYWRlckNlbGxdJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgU3JrUHJvYmxlbUhlYWRlckNlbGxUZW1wbGF0ZURpcmVjdGl2ZSB7XG4gIHJlYWRvbmx5IHRlbXBsYXRlUmVmID0gaW5qZWN0PFRlbXBsYXRlUmVmPFByb2JsZW1IZWFkZXJDZWxsVGVtcGxhdGVDb250ZXh0Pj4oVGVtcGxhdGVSZWYpO1xuXG4gIHN0YXRpYyBuZ1RlbXBsYXRlQ29udGV4dEd1YXJkKFxuICAgIF9kaXJlY3RpdmU6IFNya1Byb2JsZW1IZWFkZXJDZWxsVGVtcGxhdGVEaXJlY3RpdmUsXG4gICAgY29udGV4dDogdW5rbm93bixcbiAgKTogY29udGV4dCBpcyBQcm9ibGVtSGVhZGVyQ2VsbFRlbXBsYXRlQ29udGV4dCB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbn1cblxuZXhwb3J0IHR5cGUgeyBQcm9ibGVtQ2xpY2tQYXlsb2FkIH07XG4iXX0=
|