@algoux/standard-ranklist-renderer-component-vue 0.6.2 → 0.6.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -0
- package/dist/Ranklist.vue.d.ts +35 -2
- package/dist/index.cjs +1 -1
- package/dist/index.js +60 -37
- package/dist/modal/DefaultSolutionModal.vue.d.ts +8 -0
- package/dist/modal/DefaultUserModal.vue.d.ts +11 -1
- package/dist/parts/ProblemHeaderCell.vue.d.ts +8 -0
- package/dist/parts/StatusCell.vue.d.ts +8 -0
- package/dist/parts/UserCell.vue.d.ts +10 -1
- package/dist/types.d.ts +6 -0
- package/package.json +4 -4
package/README.md
CHANGED
|
@@ -94,6 +94,7 @@ Use `Modal` directly when you want custom modal content. `Ranklist` exposes scop
|
|
|
94
94
|
- `columnBordered`: adds column separators controlled by CSS variables.
|
|
95
95
|
- `emptyStatusPlaceholder`: renders a custom string in no-submission status cells.
|
|
96
96
|
- `userAvatarPlacement`: chooses whether the default user avatar renders in the user column or, when `splitOrganization` is enabled, in the organization column.
|
|
97
|
+
- `languages`: passes an explicit language priority list to i18n text resolution. Leave it unset to use the browser language list; pass it to `Ranklist`, `DefaultUserModal`, and `DefaultSolutionModal` when rendering outside the browser or when you need a forced language.
|
|
97
98
|
|
|
98
99
|
```vue
|
|
99
100
|
<script setup lang="ts">
|
|
@@ -121,6 +122,7 @@ const columnTitles = {
|
|
|
121
122
|
column-bordered
|
|
122
123
|
empty-status-placeholder="·"
|
|
123
124
|
user-avatar-placement="organization"
|
|
125
|
+
:languages="['zh-CN']"
|
|
124
126
|
:column-titles="columnTitles"
|
|
125
127
|
/>
|
|
126
128
|
</template>
|
package/dist/Ranklist.vue.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type * as srk from '@algoux/standard-ranklist';
|
|
2
|
+
import { resolveText } from '@algoux/standard-ranklist-utils';
|
|
2
3
|
import { calculateDirtPercentage, calculateSEValue, getProblemHeaderBackgroundImage } from '@algoux/standard-ranklist-renderer-component-core';
|
|
3
4
|
import type { ProblemStatisticsFooter, RanklistColumnTitles, RankValue, SolutionClickPayload, StaticRanklistRow, UserClickPayload } from '@algoux/standard-ranklist-renderer-component-core';
|
|
4
5
|
declare const _sfc_main: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
|
|
@@ -74,6 +75,10 @@ declare const _sfc_main: import("vue").DefineComponent<import("vue").ExtractProp
|
|
|
74
75
|
required: false;
|
|
75
76
|
default: string;
|
|
76
77
|
};
|
|
78
|
+
languages: {
|
|
79
|
+
type: ArrayConstructor;
|
|
80
|
+
required: false;
|
|
81
|
+
};
|
|
77
82
|
}>, {
|
|
78
83
|
props: any;
|
|
79
84
|
emit: (event: "userClick" | "solutionClick", ...args: any[]) => void;
|
|
@@ -90,6 +95,7 @@ declare const _sfc_main: import("vue").DefineComponent<import("vue").ExtractProp
|
|
|
90
95
|
tooltip: string;
|
|
91
96
|
}[];
|
|
92
97
|
formatAssetUrl: (url: string, field: string) => string;
|
|
98
|
+
resolveDisplayText: (text: Parameters<typeof resolveText>[0]) => any;
|
|
93
99
|
getRankValues: (row: StaticRanklistRow) => RankValue[];
|
|
94
100
|
getRankText: (rankValue: RankValue, row: StaticRanklistRow) => number | "" | "*";
|
|
95
101
|
isSeriesSegmentedColumn: (series: srk.RankSeries | undefined) => boolean;
|
|
@@ -111,7 +117,6 @@ declare const _sfc_main: import("vue").DefineComponent<import("vue").ExtractProp
|
|
|
111
117
|
emitSolutionClick: (payloadOrRow: SolutionClickPayload | StaticRanklistRow, rowIndex?: number | undefined, status?: srk.RankProblemStatus | undefined, problemIndex?: number | undefined, event?: MouseEvent | undefined) => void;
|
|
112
118
|
readonly formatTimeDuration: any;
|
|
113
119
|
readonly numberToAlphabet: any;
|
|
114
|
-
readonly resolveText: any;
|
|
115
120
|
readonly calculateDirtPercentage: typeof calculateDirtPercentage;
|
|
116
121
|
readonly calculateSEValue: typeof calculateSEValue;
|
|
117
122
|
readonly getProblemHeaderBackgroundImage: typeof getProblemHeaderBackgroundImage;
|
|
@@ -129,6 +134,10 @@ declare const _sfc_main: import("vue").DefineComponent<import("vue").ExtractProp
|
|
|
129
134
|
required: false;
|
|
130
135
|
default: any;
|
|
131
136
|
};
|
|
137
|
+
languages: {
|
|
138
|
+
type: ArrayConstructor;
|
|
139
|
+
required: false;
|
|
140
|
+
};
|
|
132
141
|
}>, {
|
|
133
142
|
props: any;
|
|
134
143
|
alias: import("vue").ComputedRef<any>;
|
|
@@ -149,6 +158,10 @@ declare const _sfc_main: import("vue").DefineComponent<import("vue").ExtractProp
|
|
|
149
158
|
required: false;
|
|
150
159
|
default: any;
|
|
151
160
|
};
|
|
161
|
+
languages: {
|
|
162
|
+
type: ArrayConstructor;
|
|
163
|
+
required: false;
|
|
164
|
+
};
|
|
152
165
|
}>> & Readonly<{}>, {
|
|
153
166
|
theme: string;
|
|
154
167
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
@@ -200,6 +213,10 @@ declare const _sfc_main: import("vue").DefineComponent<import("vue").ExtractProp
|
|
|
200
213
|
required: false;
|
|
201
214
|
default: null;
|
|
202
215
|
};
|
|
216
|
+
languages: {
|
|
217
|
+
type: ArrayConstructor;
|
|
218
|
+
required: false;
|
|
219
|
+
};
|
|
203
220
|
}>, {
|
|
204
221
|
props: any;
|
|
205
222
|
fbStar: string;
|
|
@@ -287,6 +304,10 @@ declare const _sfc_main: import("vue").DefineComponent<import("vue").ExtractProp
|
|
|
287
304
|
required: false;
|
|
288
305
|
default: null;
|
|
289
306
|
};
|
|
307
|
+
languages: {
|
|
308
|
+
type: ArrayConstructor;
|
|
309
|
+
required: false;
|
|
310
|
+
};
|
|
290
311
|
}>> & Readonly<{}>, {
|
|
291
312
|
statusCellPreset: string;
|
|
292
313
|
statusColorAsText: boolean;
|
|
@@ -337,13 +358,17 @@ declare const _sfc_main: import("vue").DefineComponent<import("vue").ExtractProp
|
|
|
337
358
|
required: false;
|
|
338
359
|
default: boolean;
|
|
339
360
|
};
|
|
361
|
+
languages: {
|
|
362
|
+
type: ArrayConstructor;
|
|
363
|
+
required: false;
|
|
364
|
+
};
|
|
340
365
|
}>, {
|
|
341
366
|
props: any;
|
|
342
367
|
name: import("vue").ComputedRef<any>;
|
|
343
368
|
userMarkers: import("vue").ComputedRef<any>;
|
|
344
369
|
resolvedMarkers: import("vue").ComputedRef<any>;
|
|
370
|
+
resolveDisplayText: (text: unknown) => any;
|
|
345
371
|
emitUserClick: (event: MouseEvent) => void;
|
|
346
|
-
readonly resolveText: any;
|
|
347
372
|
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
|
348
373
|
user: {
|
|
349
374
|
type: null;
|
|
@@ -389,6 +414,10 @@ declare const _sfc_main: import("vue").DefineComponent<import("vue").ExtractProp
|
|
|
389
414
|
required: false;
|
|
390
415
|
default: boolean;
|
|
391
416
|
};
|
|
417
|
+
languages: {
|
|
418
|
+
type: ArrayConstructor;
|
|
419
|
+
required: false;
|
|
420
|
+
};
|
|
392
421
|
}>> & Readonly<{}>, {
|
|
393
422
|
theme: string;
|
|
394
423
|
markers: unknown[];
|
|
@@ -468,6 +497,10 @@ declare const _sfc_main: import("vue").DefineComponent<import("vue").ExtractProp
|
|
|
468
497
|
required: false;
|
|
469
498
|
default: string;
|
|
470
499
|
};
|
|
500
|
+
languages: {
|
|
501
|
+
type: ArrayConstructor;
|
|
502
|
+
required: false;
|
|
503
|
+
};
|
|
471
504
|
}>> & Readonly<{
|
|
472
505
|
onUserClick?: ((...args: any[]) => any) | undefined;
|
|
473
506
|
onSolutionClick?: ((...args: any[]) => any) | undefined;
|
package/dist/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});require("@algoux/standard-ranklist-renderer-component-styles");var e=require("vue"),m=require("@algoux/standard-ranklist-renderer-component-core"),f=require("@algoux/standard-ranklist-utils");const U=["data-srk-modal-state"],O=["aria-labelledby"],L={class:"srk-modal-content"},q={key:0,class:"srk-modal-header"},R={class:"srk-modal-body"},I=e.defineComponent({__name:"Modal",props:{open:{type:Boolean},title:{},width:{},rootClassName:{},wrapClassName:{},style:{},destroyOnClose:{type:Boolean,default:!0},closeOnEsc:{type:Boolean,default:!0},closeOnMaskClick:{type:Boolean,default:!0}},emits:["close","update:open"],setup(t,{emit:i}){let l=0;const r=t,c=i,y=`srk-vue-modal-title-${++l}`,k=e.ref(null),o=e.ref(r.open||!r.destroyOnClose),u=e.ref(r.open?"pre-open":"closing"),d=e.ref({x:0,y:0});let h=null,B=null,w=null;const x=e.computed(()=>o.value||!r.destroyOnClose),z=e.computed(()=>["srk-modal-root",m.SRK_ANIMATED_MODAL_ROOT_CLASS,r.rootClassName].filter(Boolean)),D=e.computed(()=>r.open||r.destroyOnClose&&o.value),A=e.computed(()=>{var b,N;return{...r.style,width:r.width?`${r.width}px`:(b=r.style)==null?void 0:b.width,["--srk-modal-origin-x"]:`${d.value.x}px`,["--srk-modal-origin-y"]:`${d.value.y}px`,["--srk-modal-max-width"]:r.width?`${r.width}px`:typeof((N=r.style)==null?void 0:N.width)=="string"?r.style.width:void 0}});function E(){if(typeof window=="undefined"){h=null,B=null;return}h!==null&&(window.clearTimeout(h),h=null),B!==null&&(window.clearTimeout(B),B=null)}async function V(){if(await e.nextTick(),typeof window=="undefined"||!r.open||!o.value||u.value!=="pre-open")return;C();const b=m.resolveModalTransformOrigin(k.value);d.value=b.origin,B=window.setTimeout(()=>{u.value="opening",B=null},0)}function C(){const b=m.registerModalFocusScope(k.value,{onEscape:P});w===null&&(w=b)}function S(){w!==null&&(m.unregisterModalFocusScope(w),w=null)}function M(b){c("update:open",!1),c("close",b)}function F(b){r.closeOnMaskClick&&b.target===b.currentTarget&&M("mask")}function P(b){r.open&&r.closeOnEsc&&M("escape")}return e.watch(()=>r.open,async b=>{if(E(),b){o.value=!0,d.value={x:0,y:0},u.value="pre-open",await V();return}if(S(),u.value="closing",!r.destroyOnClose){o.value=!0;return}o.value&&typeof window!="undefined"&&(h=window.setTimeout(()=>{o.value=!1,h=null},m.MODAL_ANIMATION_DURATION_MS))},{immediate:!0}),e.watchEffect(b=>{!D.value||(m.lockModalBodyScroll(),b(()=>{m.unlockModalBodyScroll()}))}),e.onMounted(()=>{m.ensureModalInteractionTracker(),r.open&&C()}),e.onBeforeUnmount(()=>{E(),S()}),(b,N)=>x.value?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(z.value),"data-srk-modal-state":u.value},[N[2]||(N[2]=e.createElementVNode("div",{class:"srk-modal-mask"},null,-1)),e.createElementVNode("div",{class:e.normalizeClass(["srk-modal-wrap",t.wrapClassName]),tabindex:"-1",onMousedown:F},[e.createElementVNode("div",{class:"srk-modal",role:"dialog","aria-modal":"true","aria-labelledby":t.title?y:void 0,"data-srk-modal-panel":"true",tabindex:"-1",ref_key:"dialogRef",ref:k,style:e.normalizeStyle(A.value)},[e.createElementVNode("div",L,[e.createElementVNode("button",{"aria-label":"Close",class:"srk-modal-close",type:"button",onClick:N[0]||(N[0]=a=>M("close-button"))},[...N[1]||(N[1]=[e.createElementVNode("span",{class:"srk-modal-close-x"},null,-1)])]),t.title!==void 0?(e.openBlock(),e.createElementBlock("div",q,[e.createElementVNode("div",{id:y,class:"srk-modal-title"},e.toDisplayString(t.title),1)])):e.createCommentVNode("",!0),e.createElementVNode("div",R,[e.renderSlot(b.$slots,"default")])])],12,O)],34)],10,U)):e.createCommentVNode("",!0)}}),H={class:"srk-common-table srk-solutions-table"},K={class:"srk--text-right"},j=e.defineComponent({__name:"DefaultSolutionModal",props:{open:{type:Boolean},user:{},problem:{},problemIndex:{},solutions:{default:()=>[]},title:{},width:{default:320},rootClassName:{default:"srk-general-modal-root"},wrapClassName:{default:"srk-solutions-modal"},style:{}},emits:["close","update:open"],setup(t,{emit:i}){const l=t,r=i,c=e.ref(l.user?{user:l.user,problem:l.problem,problemIndex:l.problemIndex,solutions:l.solutions}:null);e.watch([()=>l.user,()=>l.problem,()=>l.problemIndex,()=>l.solutions],([k,o,u,d])=>{k&&(c.value={user:k,problem:o,problemIndex:u,solutions:d})},{immediate:!0});const y=e.computed(()=>l.title||(c.value?m.getSolutionModalTitle(c.value.problemIndex,c.value.user):""));return(k,o)=>c.value?(e.openBlock(),e.createBlock(I,{key:0,open:t.open,title:y.value,width:t.width,"root-class-name":t.rootClassName,"wrap-class-name":t.wrapClassName,style:e.normalizeStyle(t.style),onClose:o[0]||(o[0]=u=>r("close",u)),"onUpdate:open":o[1]||(o[1]=u=>r("update:open",u))},{default:e.withCtx(()=>[e.createElementVNode("table",H,[o[2]||(o[2]=e.createElementVNode("thead",null,[e.createElementVNode("tr",null,[e.createElementVNode("th",{class:"srk--text-left"},"Result"),e.createElementVNode("th",{class:"srk--text-right"},"Time")])],-1)),e.createElementVNode("tbody",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(c.value.solutions,(u,d)=>{var h;return e.openBlock(),e.createElementBlock("tr",{key:`${u.result}_${(h=u.time)==null?void 0:h[0]}_${d}`},[e.createElementVNode("td",null,[e.createElementVNode("span",{class:e.normalizeClass(["srk-solution-result-text",e.unref(m.getSolutionResultMeta)(u.result).className])},e.toDisplayString(e.unref(m.getSolutionResultMeta)(u.result).label),3)]),e.createElementVNode("td",K,e.toDisplayString(e.unref(m.formatSolutionTimestamp)(u)),1)])}),128))])])]),_:1},8,["open","title","width","root-class-name","wrap-class-name","style"])):e.createCommentVNode("",!0)}}),J={class:"srk-user-modal-info"},W={class:"srk-user-modal-info-user-name"},G={key:0,class:"srk-user-modal-info-user-second-name"},Q={class:"srk-user-modal-info-labels"},X={class:"srk-user-modal-info-labels-label srk-user-modal-info-labels-label-preset-general"},Y={key:1,class:"srk-user-modal-info-team-members"},Z={key:0,class:"srk-user-modal-info-team-members-slash"},_={key:2,class:"srk-user-modal-info-photo"},ee=["src"],te=e.defineComponent({__name:"DefaultUserModal",props:{open:{type:Boolean},user:{},markers:{default:()=>[]},theme:{default:f.EnumTheme.light},title:{default:"User Info"},width:{default:420},rootClassName:{default:"srk-general-modal-root"},wrapClassName:{default:"srk-user-modal"},style:{},formatSrkAssetUrl:{}},emits:["close","update:open"],setup(t,{emit:i}){const l=t,r=i,c=e.ref(l.user||null);e.watch(()=>l.user,o=>{o&&(c.value=o)},{immediate:!0});const y=e.computed(()=>c.value?f.resolveUserMarkers(c.value,l.markers).map(o=>({marker:o,presentation:m.getMarkerPresentation(o,l.theme)})):[]);function k(o,u){return m.resolveSrkAssetUrl(o,u,l.formatSrkAssetUrl)}return(o,u)=>c.value?(e.openBlock(),e.createBlock(I,{key:0,open:t.open,title:t.title,width:t.width,"root-class-name":t.rootClassName,"wrap-class-name":t.wrapClassName,style:e.normalizeStyle(t.style),onClose:u[0]||(u[0]=d=>r("close",d)),"onUpdate:open":u[1]||(u[1]=d=>r("update:open",d))},{default:e.withCtx(()=>[e.createElementVNode("div",J,[e.createElementVNode("h3",W,e.toDisplayString(e.unref(f.resolveText)(c.value.name)),1),c.value.organization?(e.openBlock(),e.createElementBlock("p",G,e.toDisplayString(e.unref(f.resolveText)(c.value.organization)),1)):e.createCommentVNode("",!0),e.createElementVNode("div",Q,[e.createElementVNode("span",X,e.toDisplayString(c.value.official===!1?"\uFF0A \u975E\u6B63\u5F0F\u53C2\u52A0\u8005":"\u6B63\u5F0F\u53C2\u52A0\u8005"),1),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(y.value,d=>(e.openBlock(),e.createElementBlock("span",{key:d.marker.id,class:e.normalizeClass(["srk-user-modal-info-labels-label",d.presentation.className]),style:e.normalizeStyle(d.presentation.style)},e.toDisplayString(e.unref(f.resolveText)(d.marker.label)),7))),128))]),c.value.teamMembers&&c.value.teamMembers.length?(e.openBlock(),e.createElementBlock("div",Y,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(c.value.teamMembers,(d,h)=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:e.unref(f.resolveText)(d.name)},[h>0?(e.openBlock(),e.createElementBlock("span",Z," / ")):e.createCommentVNode("",!0),e.createElementVNode("span",null,e.toDisplayString(e.unref(f.resolveText)(d.name)),1)],64))),128))])):e.createCommentVNode("",!0),c.value.photo?(e.openBlock(),e.createElementBlock("div",_,[e.createElementVNode("img",{src:k(c.value.photo,"user.photo"),alt:"User portrait",class:"srk-user-modal-info-photo-img"},null,8,ee)])):e.createCommentVNode("",!0)])]),_:1},8,["open","title","width","root-class-name","wrap-class-name","style"])):e.createCommentVNode("",!0)}}),se={class:"srk-progress-bar-container"},le={class:"srk-progress-bar"},re={class:"srk-progress-bar-body"},oe={key:0,class:"srk-progress-slider-layer"},ae=["max","title"],ne={class:"srk-progress-secondary-area"},ie={class:"srk-progress-secondary-area-center"},ce={key:0,class:"srk-progress-time-machine-status"},ue={key:1,class:"srk-progress-live-text"},de={key:2,style:{visibility:"hidden"}},me=e.defineComponent({__name:"ProgressBar",props:{data:{},enableTimeTravel:{type:Boolean,default:!1},live:{type:Boolean,default:!1},td:{default:0}},emits:["timeTravel"],setup(t,{emit:i}){const l=t,r=i,c=e.ref(Date.now()),y=e.ref(!1),k=e.ref(!1),o=e.ref(m.getProgressMaxAvailableMinutes(l.data.contest,c.value,l.td)),u=e.ref(null);let d;const h=e.computed(()=>m.getProgressDurationMinutes(l.data.contest)),B=e.computed(()=>m.getProgressMaxAvailableMinutes(l.data.contest,c.value,l.td)),w=e.computed(()=>m.isProgressEnded(l.data.contest,c.value,l.td)),x=e.computed(()=>m.getProgressMetrics(l.data,c.value,l.td,o.value,y.value));function z(){c.value=Date.now(),w.value&&d!==void 0&&(window.clearInterval(d),d=void 0)}function D(C){typeof window!="undefined"&&(C&&d===void 0&&(d=window.setInterval(z,1e3)),!C&&d!==void 0&&(window.clearInterval(d),d=void 0))}function A(C){const S=C>=h.value||C>=B.value;r("timeTravel",S?null:C*60*1e3),y.value=!S,u.value=S?null:C*60*1e3,k.value=!1}function E(){k.value=!0,y.value=!0}function V(){k.value&&A(o.value)}return e.watch(B,C=>{!k.value&&u.value===null&&(o.value=C)}),e.watch(()=>l.live,C=>D(C),{immediate:!0}),e.watch(()=>l.data.contest.title,()=>{k.value=!1,o.value=B.value,u.value=null,y.value=!1,r("timeTravel",null)}),e.onBeforeUnmount(()=>{d!==void 0&&(window.clearInterval(d),d=void 0)}),(C,S)=>(e.openBlock(),e.createElementBlock("div",se,[e.createElementVNode("div",le,[e.createElementVNode("div",re,[e.createElementVNode("div",{class:"srk-progress-bar-segment srk-progress-bar-normal",style:e.normalizeStyle({width:`${x.value.frozenBreakpoint*100}%`})},[e.createElementVNode("div",{class:"srk-progress-bar-fill",style:e.normalizeStyle({width:`${x.value.normalInnerPercent}%`})},null,4)],4),e.createElementVNode("div",{class:"srk-progress-bar-segment srk-progress-bar-frozen",style:e.normalizeStyle({width:`${(1-x.value.frozenBreakpoint)*100}%`})},[e.createElementVNode("div",{class:"srk-progress-bar-fill",style:e.normalizeStyle({width:`${x.value.frozenInnerPercent}%`})},null,4)],4)]),t.enableTimeTravel&&x.value.supportRegen?(e.openBlock(),e.createElementBlock("div",oe,[k.value?(e.openBlock(),e.createElementBlock("div",{key:0,class:"srk-progress-slider-tooltip",style:e.normalizeStyle({left:`${h.value?o.value/h.value*100:0}%`})},e.toDisplayString(e.unref(f.secToTimeStr)(o.value*60)),5)):e.createCommentVNode("",!0),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":S[0]||(S[0]=M=>o.value=M),"aria-label":"Time Travel",class:"srk-progress-slider",max:h.value,min:"0",step:"1",title:e.unref(f.secToTimeStr)(o.value*60),type:"range",onBlur:V,onKeydown:E,onKeyup:V,onMousedown:E,onMouseup:V,onTouchend:V,onTouchstart:E},null,40,ae),[[e.vModelText,o.value,void 0,{number:!0}]])])):e.createCommentVNode("",!0)]),e.createElementVNode("div",ne,[e.createElementVNode("div",{class:"srk-progress-secondary-area-left",style:e.normalizeStyle(t.live||y.value?{}:{display:"none"})}," Elapsed: "+e.toDisplayString(e.unref(f.secToTimeStr)(Math.round(x.value.elapsed/1e3))),5),e.createElementVNode("div",ie,[y.value?(e.openBlock(),e.createElementBlock("div",ce,[...S[1]||(S[1]=[e.createElementVNode("div",{class:"srk-progress-time-machine-text"},"Time Travel Mode",-1)])])):t.live&&!w.value?(e.openBlock(),e.createElementBlock("div",ue,"Live")):(e.openBlock(),e.createElementBlock("div",de,"SRK"))]),e.createElementVNode("div",{class:"srk-progress-secondary-area-right",style:e.normalizeStyle(t.live||y.value?{}:{display:"none"})}," Remaining: "+e.toDisplayString(e.unref(f.secToTimeStr)(Math.round(x.value.remaining/1e3))),5)])]))}}),ke=["href"],pe={class:"srk--display-block"},fe=["title"],ve={class:"srk--display-block"},ye=["title"],ge=e.defineComponent({__name:"ProblemHeaderCell",props:{problem:{},index:{},theme:{default:f.EnumTheme.light}},setup(t){const i=t,l=e.computed(()=>i.problem.alias||f.numberToAlphabet(i.index)),r=e.computed(()=>i.problem.statistics),c=e.computed(()=>{if(!r.value)return"";const k=r.value.submitted?(r.value.accepted/r.value.submitted*100).toFixed(1):0;return`${r.value.accepted} / ${r.value.submitted} (${k}%)`}),y=e.computed(()=>m.getProblemHeaderBackgroundImage(i.problem.style,i.theme));return(k,o)=>(e.openBlock(),e.createElementBlock("th",{class:"srk--nowrap srk-problem-header",style:e.normalizeStyle({backgroundImage:y.value})},[t.problem.link?(e.openBlock(),e.createElementBlock("a",{key:0,href:t.problem.link,target:"_blank",rel:"noopener noreferrer",style:{color:"unset"}},[e.createElementVNode("span",pe,e.toDisplayString(l.value),1),r.value?(e.openBlock(),e.createElementBlock("span",{key:0,class:"srk--display-block srk-problem-stats",title:c.value},e.toDisplayString(r.value.accepted),9,fe)):e.createCommentVNode("",!0)],8,ke)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createElementVNode("span",ve,e.toDisplayString(l.value),1),r.value?(e.openBlock(),e.createElementBlock("span",{key:0,class:"srk--display-block srk-problem-stats",title:c.value},e.toDisplayString(r.value.accepted),9,ye)):e.createCommentVNode("",!0)],64))],4))}}),he={key:0,class:"srk-prest-status-block-fb-star"},be={key:4,class:"srk-status-placeholder-cell srk--text-center srk--nowrap"},Be="\u2605",Ce=e.defineComponent({__name:"StatusCell",props:{status:{},problem:{},problemIndex:{},user:{},row:{},rowIndex:{},ranklist:{},onSolutionClick:{},statusCellPreset:{default:"classic"},statusColorAsText:{type:Boolean,default:!1},emptyStatusPlaceholder:{default:null}},setup(t){const i=t,l=e.computed(()=>[...i.status.solutions||[]].reverse()),r=e.computed(()=>l.value.length>0&&!!i.onSolutionClick),c=e.computed(()=>["srk-prest-status-block","srk--text-center","srk--nowrap",{"srk--cursor-pointer":r.value,"srk-prest-status-block-color-text":i.statusColorAsText}]);function y(o){var u,d;!r.value||(m.captureModalTriggerPointFromMouseEvent(o,{source:"status-cell",context:{rowIndex:i.rowIndex,problemIndex:i.problemIndex,problemAlias:((u=i.problem)==null?void 0:u.alias)||null,problemTitle:i.problem?f.resolveText(i.problem.title):null,userId:i.user.id||null}}),(d=i.onSolutionClick)==null||d.call(i,{user:i.user,row:i.row,rowIndex:i.rowIndex,problemIndex:i.problemIndex,problem:i.problem,status:i.status,solutions:l.value,ranklist:i.ranklist}))}const k=e.defineComponent({props:{status:{type:Object,required:!0},ranklist:{type:Object,required:!0},preset:{type:String,required:!0}},setup(o){return()=>{const u=o.status,d=o.ranklist,h=o.preset,B=m.getRankProblemStatusCellPresentation(u,d,h);return typeof B.score=="number"?[e.h("span",{class:"srk-prest-status-block-score"},B.score),e.h("span",{class:"srk-prest-status-block-score-details"},B.scoreDetails)]:B.secondary!==void 0?[e.h("span",{class:"srk-prest-status-block-primary"},B.primary||"")," ",e.h("span",{class:"srk-prest-status-block-secondary"},B.secondary)]:B.primary||""}}});return(o,u)=>t.status.result==="FB"?(e.openBlock(),e.createElementBlock("td",{key:0,class:e.normalizeClass([c.value,"srk-prest-status-block-fb"]),onClick:e.withModifiers(y,["prevent"])},[t.statusColorAsText?(e.openBlock(),e.createElementBlock("span",he,e.toDisplayString(Be))):e.createCommentVNode("",!0),e.createVNode(e.unref(k),{status:t.status,ranklist:t.ranklist,preset:t.statusCellPreset},null,8,["status","ranklist","preset"])],2)):t.status.result==="AC"?(e.openBlock(),e.createElementBlock("td",{key:1,class:e.normalizeClass([c.value,"srk-prest-status-block-accepted"]),onClick:e.withModifiers(y,["prevent"])},[e.createVNode(e.unref(k),{status:t.status,ranklist:t.ranklist,preset:t.statusCellPreset},null,8,["status","ranklist","preset"])],2)):t.status.result==="?"?(e.openBlock(),e.createElementBlock("td",{key:2,class:e.normalizeClass([c.value,"srk-prest-status-block-frozen"]),onClick:e.withModifiers(y,["prevent"])},[e.createVNode(e.unref(k),{status:t.status,ranklist:t.ranklist,preset:t.statusCellPreset},null,8,["status","ranklist","preset"])],2)):t.status.result==="RJ"?(e.openBlock(),e.createElementBlock("td",{key:3,class:e.normalizeClass([c.value,"srk-prest-status-block-failed"]),onClick:e.withModifiers(y,["prevent"])},[e.createVNode(e.unref(k),{status:t.status,ranklist:t.ranklist,preset:t.statusCellPreset},null,8,["status","ranklist","preset"])],2)):(e.openBlock(),e.createElementBlock("td",be,e.toDisplayString(t.emptyStatusPlaceholder),1))}}),Ee={class:"srk-user-cell-content"},Se={key:0,class:"srk-user-avatar"},Ne=["src"],we={class:"srk-user-body"},xe={class:"srk-user-name-row"},Te=["title"],Ve={class:"srk-marker-dot-group"},Me=["data-tooltip"],$e={key:0,class:"srk-user-secondary-text srk--text-ellipsis",title:""},De=e.defineComponent({__name:"UserCell",props:{user:{},row:{},rowIndex:{},ranklist:{},markers:{default:()=>[]},theme:{default:f.EnumTheme.light},formatSrkAssetUrl:{},onUserClick:{},hideOrganization:{type:Boolean,default:!1},hideAvatar:{type:Boolean,default:!1}},setup(t){const i=t,l=e.computed(()=>f.resolveText(i.user.name)),r=e.computed(()=>f.resolveUserMarkers(i.user,i.markers)),c=e.computed(()=>r.value.map(k=>({marker:k,presentation:m.getMarkerPresentation(k,i.theme)})));function y(k){var o;m.captureModalTriggerPointFromMouseEvent(k,{source:"user-cell",context:{rowIndex:i.rowIndex,userId:i.user.id||null,userName:l.value}}),(o=i.onUserClick)==null||o.call(i,{user:i.user,row:i.row,rowIndex:i.rowIndex,ranklist:i.ranklist})}return(k,o)=>(e.openBlock(),e.createElementBlock("td",{class:e.normalizeClass(["srk--text-left srk--nowrap srk-user-cell",{"srk--cursor-pointer":!!t.onUserClick}]),title:"",onClick:e.withModifiers(y,["prevent"])},[e.createElementVNode("div",Ee,[t.user.avatar&&!t.hideAvatar?(e.openBlock(),e.createElementBlock("div",Se,[e.createElementVNode("img",{src:t.formatSrkAssetUrl(t.user.avatar,"user.avatar"),alt:"User Avatar"},null,8,Ne)])):e.createCommentVNode("",!0),e.createElementVNode("div",we,[e.createElementVNode("div",xe,[e.createElementVNode("span",{class:"srk-user-name-text",title:l.value},e.toDisplayString(l.value),9,Te),e.createElementVNode("span",Ve,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(c.value,u=>(e.openBlock(),e.createElementBlock("span",{key:u.marker.id,class:e.normalizeClass(["srk-marker srk-marker-dot srk--c-tooltip",u.presentation.className]),style:e.normalizeStyle(u.presentation.style),"data-tooltip":e.unref(f.resolveText)(u.marker.label)},null,14,Me))),128))])]),t.user.organization&&!t.hideOrganization?(e.openBlock(),e.createElementBlock("p",$e,e.toDisplayString(e.unref(f.resolveText)(t.user.organization)),1)):e.createCommentVNode("",!0)])])],2))}}),ze={key:0},Ae={key:1},Pe={key:2,class:"srk-common-table srk-main"},Fe={key:0,class:"srk-organization-header srk--text-left srk--nowrap"},Ie={class:"srk--text-left srk--nowrap"},Ue={class:"srk--text-right srk--nowrap"},Oe={key:1,class:"srk--text-right srk--nowrap"},Le={key:2,class:"srk-dirt-header srk--text-right srk--nowrap"},qe={key:3,class:"srk-se-header srk--text-right srk--nowrap"},Re={class:"srk-organization-cell-content"},He={key:0,class:"srk-user-avatar"},Ke=["src"],je=["title"],Je={class:"srk--text-right srk--nowrap"},We={key:1,class:"srk--text-right srk--nowrap"},Ge={key:2,class:"srk-dirt-cell srk--text-right srk--nowrap"},Qe={key:3,class:"srk-se-cell srk--text-right srk--nowrap"},Xe={key:0},Ye=["colspan"],Ze=["data-tooltip"],_e={class:"srk-problem-statistics-footer-primary"},et={class:"srk-problem-statistics-footer-secondary"},tt={key:0,class:"srk-problem-statistics-footer-cell srk-extra-statistics-footer-cell srk-dirt-footer-cell srk--nowrap"},st={key:1,class:"srk-problem-statistics-footer-cell srk-extra-statistics-footer-cell srk-se-footer-cell srk--nowrap"},lt={class:"srk-problem-statistics-footer-row srk-problem-statistics-footer-problem-label-row"},rt=["colspan"],ot={class:"srk--display-block"},at={key:0,class:"srk-problem-statistics-footer-cell srk-extra-statistics-footer-cell srk-dirt-footer-cell srk--nowrap"},nt={key:1,class:"srk-problem-statistics-footer-cell srk-extra-statistics-footer-cell srk-se-footer-cell srk--nowrap"},it=e.defineComponent({__name:"Ranklist",props:{data:{},theme:{default:f.EnumTheme.light},rowBordered:{type:Boolean,default:!1},columnBordered:{type:Boolean,default:!1},rowStriped:{type:Boolean,default:!1},formatSrkAssetUrl:{},splitOrganization:{type:Boolean,default:!1},columnTitles:{},statusCellPreset:{default:"classic"},statusColorAsText:{type:Boolean,default:!1},showProblemStatisticsFooter:{type:Boolean,default:!1},showDirtColumn:{type:Boolean,default:!1},showSEColumn:{type:Boolean,default:!1},emptyStatusPlaceholder:{default:null},userAvatarPlacement:{default:"user"}},emits:["userClick","solutionClick"],setup(t,{emit:i}){const l=t,r=i,c=e.computed(()=>l.theme),y=m.srkSupportedVersions,k=e.computed(()=>m.caniuse(l.data.version)),o=e.computed(()=>m.shouldShowTimeColumn(l.data.rows)),u=e.computed(()=>l.splitOrganization&&l.userAvatarPlacement==="organization"),d=e.computed(()=>l.showProblemStatisticsFooter||l.showSEColumn?m.calculateProblemStatisticsFooter(l.data):[]),h=e.computed(()=>l.data.series.length+1+1+(o.value?1:0)+(l.splitOrganization?1:0)),B=[{key:"accepted",label:"Accepted",tooltip:"Number of participants who solved this problem"},{key:"tried",label:"Tried",tooltip:"Number of participants who attempted this problem"},{key:"submitted",label:"Submitted",tooltip:"Total number of valid submissions for this problem"},{key:"dirt",label:"Dirt",tooltip:"Wrong submissions among participants who solved this problem"},{key:"se",label:"SE",tooltip:"Average hardness, calculated as (participants - accepted) / participants"},{key:"firstAccepted",label:"FB at",tooltip:"First Blood at, also known as first solve time, in minutes"},{key:"lastAccepted",label:"LB at",tooltip:"Last Blood at, also known as last solve time, in minutes"}];function w(a,n){return m.resolveSrkAssetUrl(a,n,l.formatSrkAssetUrl)}function x(a){return a.rankValues||l.data.series.map(()=>({rank:null,segmentIndex:null}))}function z(a,n){return a.rank?a.rank:n.user.official===!1?"\uFF0A":""}function D(a){return((a==null?void 0:a.segments)||[]).some(n=>typeof n.style=="string")}function A(a,n){var p,g,v;const s=(p=l.columnTitles)==null?void 0:p.series;return typeof s=="function"?(g=s(a,n))!=null?g:a.title:Array.isArray(s)&&(v=s[n])!=null?v:a.title}function E(a,n){var s,p;return(p=(s=l.columnTitles)==null?void 0:s[a])!=null?p:n}function V(a,n){const s=a.segmentIndex||a.segmentIndex===0?a.segmentIndex:-1;return((n==null?void 0:n.segments)||[])[s]||{}}function C(a,n){const s=V(a,n).style;return typeof s=="string"?`srk-preset-series-segment-${s}`:""}function S(a,n){const s={[f.EnumTheme.light]:void 0,[f.EnumTheme.dark]:void 0},p=V(a,n).style;if(!p||typeof p=="string")return{};const g=f.resolveStyle(p),v=g.textColor||s,T=g.backgroundColor||s;return{color:v[l.theme],backgroundColor:T[l.theme]}}function M(a){return[...a.solutions||[]].reverse()}function F(a,n){switch(a){case"accepted":return n.accepted;case"tried":return n.tried;case"submitted":return n.submitted;case"dirt":return n.dirt;case"se":return m.formatProblemStatisticsAverageHardness(n);case"firstAccepted":return m.formatProblemStatisticsAcceptedMinute(n.firstAcceptedTime);case"lastAccepted":return m.formatProblemStatisticsAcceptedMinute(n.lastAcceptedTime);default:return""}}function P(a,n){switch(a){case"accepted":return m.formatProblemStatisticsPercent(n.accepted,n.participantCount);case"tried":return m.formatProblemStatisticsPercent(n.tried,n.participantCount);case"dirt":return m.formatProblemStatisticsPercent(n.dirt,n.dirtSubmitted);default:return}}function b(a,n,s){if("ranklist"in a){r("userClick",a);return}s&&m.captureModalTriggerPointFromMouseEvent(s,{source:"user-cell",context:{rowIndex:n||0,userId:a.user.id||null,userName:f.resolveText(a.user.name)}}),r("userClick",{user:a.user,row:a,rowIndex:n||0,ranklist:l.data})}function N(a,n,s,p,g){if("solutions"in a){r("solutionClick",a);return}const v=p||0,T=s||a.statuses[v];if(g){const $=l.data.problems[v];m.captureModalTriggerPointFromMouseEvent(g,{source:"status-cell",context:{rowIndex:n||0,problemIndex:v,problemAlias:($==null?void 0:$.alias)||null,problemTitle:$?f.resolveText($.title):null,userId:a.user.id||null}})}r("solutionClick",{user:a.user,row:a,rowIndex:n||0,problemIndex:v,problem:l.data.problems[v],status:T,solutions:M(T),ranklist:l.data})}return(a,n)=>t.data.type!=="general"?(e.openBlock(),e.createElementBlock("div",ze,'srk type "'+e.toDisplayString(t.data.type)+'" is not supported',1)):k.value?(e.openBlock(),e.createElementBlock("div",Pe,[e.createElementVNode("table",{class:e.normalizeClass({"srk-table-row-bordered":t.rowBordered,"srk-table-column-bordered":t.columnBordered,"srk-table-row-striped":t.rowStriped})},[e.createElementVNode("thead",null,[e.createElementVNode("tr",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.data.series,(s,p)=>(e.openBlock(),e.createElementBlock("th",{key:s.title,class:e.normalizeClass(["srk-series-header srk--text-right srk--nowrap",{"srk-series-segmented-column":D(s)}])},e.toDisplayString(A(s,p)),3))),128)),t.splitOrganization?(e.openBlock(),e.createElementBlock("th",Fe,e.toDisplayString(E("organization","Organization")),1)):e.createCommentVNode("",!0),e.createElementVNode("th",Ie,e.toDisplayString(E("user","Name")),1),e.createElementVNode("th",Ue,e.toDisplayString(E("score","Score")),1),o.value?(e.openBlock(),e.createElementBlock("th",Oe,e.toDisplayString(E("time","Time")),1)):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.data.problems,(s,p)=>e.renderSlot(a.$slots,"problem-header-cell",e.mergeProps({key:s.alias||e.unref(f.resolveText)(s.title)||p,ref_for:!0},{problem:s,problemIndex:p,index:p,theme:c.value}),()=>[e.createVNode(ge,{problem:s,index:p,theme:c.value},null,8,["problem","index","theme"])])),128)),t.showDirtColumn?(e.openBlock(),e.createElementBlock("th",Le,e.toDisplayString(E("dirt","Dirt")),1)):e.createCommentVNode("",!0),t.showSEColumn?(e.openBlock(),e.createElementBlock("th",qe,e.toDisplayString(E("se","SE")),1)):e.createCommentVNode("",!0)])]),e.createElementVNode("tbody",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.data.rows,(s,p)=>(e.openBlock(),e.createElementBlock("tr",{key:s.user.id||e.unref(f.resolveText)(s.user.name)},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(x(s),(g,v)=>{var T;return e.openBlock(),e.createElementBlock("td",{key:((T=t.data.series[v])==null?void 0:T.title)||v,class:e.normalizeClass(["srk--text-right srk--nowrap",[C(g,t.data.series[v]),{"srk-series-segmented-column":D(t.data.series[v])}]]),style:e.normalizeStyle(S(g,t.data.series[v]))},e.toDisplayString(z(g,s)),7)}),128)),t.splitOrganization?(e.openBlock(),e.createElementBlock("td",{key:0,class:e.normalizeClass(["srk-organization-cell srk--text-left srk--nowrap",{"srk-organization-cell-avatar":u.value&&!!s.user.avatar}])},[e.createElementVNode("div",Re,[u.value&&s.user.avatar?(e.openBlock(),e.createElementBlock("div",He,[e.createElementVNode("img",{src:w(s.user.avatar,"user.avatar"),alt:"User Avatar"},null,8,Ke)])):e.createCommentVNode("",!0),e.createElementVNode("span",{class:"srk-organization-name-text",title:s.user.organization?e.unref(f.resolveText)(s.user.organization):""},e.toDisplayString(s.user.organization?e.unref(f.resolveText)(s.user.organization):""),9,je)])],2)):e.createCommentVNode("",!0),e.renderSlot(a.$slots,"user-cell",e.mergeProps({ref_for:!0},{user:s.user,row:s,rowIndex:p,ranklist:t.data,markers:t.data.markers,theme:c.value,hideOrganization:t.splitOrganization,hideAvatar:u.value,onClick:g=>b(s,p,g)}),()=>[e.createVNode(De,{user:s.user,row:s,"row-index":p,ranklist:t.data,markers:t.data.markers,theme:c.value,"format-srk-asset-url":w,"on-user-click":b,"hide-organization":t.splitOrganization,"hide-avatar":u.value},null,8,["user","row","row-index","ranklist","markers","theme","hide-organization","hide-avatar"])]),e.createElementVNode("td",Je,e.toDisplayString(s.score.value),1),o.value?(e.openBlock(),e.createElementBlock("td",We,e.toDisplayString(s.score.time?e.unref(f.formatTimeDuration)(s.score.time,"min",Math.floor):"-"),1)):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(s.statuses,(g,v)=>{var T;return e.renderSlot(a.$slots,"status-cell",e.mergeProps({key:((T=t.data.problems[v])==null?void 0:T.alias)||v,ref_for:!0},{status:g,problem:t.data.problems[v],problemIndex:v,user:s.user,row:s,rowIndex:p,ranklist:t.data,solutions:M(g),statusCellPreset:t.statusCellPreset,statusColorAsText:t.statusColorAsText,emptyStatusPlaceholder:t.emptyStatusPlaceholder,onClick:$=>N(s,p,g,v,$)}),()=>[e.createVNode(Ce,{status:g,problem:t.data.problems[v],"problem-index":v,user:s.user,row:s,"row-index":p,ranklist:t.data,"on-solution-click":N,"status-cell-preset":t.statusCellPreset,"status-color-as-text":t.statusColorAsText,"empty-status-placeholder":t.emptyStatusPlaceholder},null,8,["status","problem","problem-index","user","row","row-index","ranklist","status-cell-preset","status-color-as-text","empty-status-placeholder"])])}),128)),t.showDirtColumn?(e.openBlock(),e.createElementBlock("td",Ge,e.toDisplayString(e.unref(m.calculateDirtPercentage)(s)),1)):e.createCommentVNode("",!0),t.showSEColumn?(e.openBlock(),e.createElementBlock("td",Qe,e.toDisplayString(e.unref(m.calculateSEValue)(s,d.value)),1)):e.createCommentVNode("",!0)]))),128))]),t.showProblemStatisticsFooter?(e.openBlock(),e.createElementBlock("tfoot",Xe,[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(B,s=>e.createElementVNode("tr",{key:s.key,class:"srk-problem-statistics-footer-row"},[e.createElementVNode("td",{class:"srk-problem-statistics-footer-labels srk--text-right srk--nowrap",colspan:h.value},[e.createElementVNode("span",{class:"srk-problem-statistics-footer-label srk--c-tooltip","data-tooltip":s.tooltip},e.toDisplayString(s.label),9,Ze)],8,Ye),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(d.value,(p,g)=>{var v;return e.openBlock(),e.createElementBlock("td",{key:((v=t.data.problems[g])==null?void 0:v.alias)||g,class:"srk-problem-statistics-footer-cell srk--text-center srk--nowrap"},[e.createElementVNode("span",_e,e.toDisplayString(F(s.key,p)),1),P(s.key,p)!==void 0?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[n[0]||(n[0]=e.createTextVNode(e.toDisplayString(" ")+" ",-1)),e.createElementVNode("span",et,e.toDisplayString(P(s.key,p)),1)],64)):e.createCommentVNode("",!0)])}),128)),t.showDirtColumn?(e.openBlock(),e.createElementBlock("td",tt,[...n[1]||(n[1]=[e.createElementVNode("span",{class:"srk-problem-statistics-footer-primary"},null,-1)])])):e.createCommentVNode("",!0),t.showSEColumn?(e.openBlock(),e.createElementBlock("td",st,[...n[2]||(n[2]=[e.createElementVNode("span",{class:"srk-problem-statistics-footer-primary"},null,-1)])])):e.createCommentVNode("",!0)])),64)),e.createElementVNode("tr",lt,[e.createElementVNode("td",{class:"srk-problem-statistics-footer-labels srk--text-right srk--nowrap",colspan:h.value},null,8,rt),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.data.problems,(s,p)=>(e.openBlock(),e.createElementBlock("td",{key:s.alias||e.unref(f.resolveText)(s.title)||p,class:"srk-problem-statistics-footer-cell srk-problem-statistics-footer-problem-header srk-problem-header srk--text-center srk--nowrap",style:e.normalizeStyle({backgroundImage:e.unref(m.getProblemHeaderBackgroundImage)(s.style,c.value,0)})},[e.createElementVNode("span",ot,e.toDisplayString(s.alias||e.unref(f.numberToAlphabet)(p)),1)],4))),128)),t.showDirtColumn?(e.openBlock(),e.createElementBlock("td",at,[...n[3]||(n[3]=[e.createElementVNode("span",{class:"srk-problem-statistics-footer-primary"},null,-1)])])):e.createCommentVNode("",!0),t.showSEColumn?(e.openBlock(),e.createElementBlock("td",nt,[...n[4]||(n[4]=[e.createElementVNode("span",{class:"srk-problem-statistics-footer-primary"},null,-1)])])):e.createCommentVNode("",!0)])])):e.createCommentVNode("",!0)],2)])):(e.openBlock(),e.createElementBlock("div",Ae,' srk version "'+e.toDisplayString(t.data.version)+'" is not supported (current supported: '+e.toDisplayString(e.unref(y))+") ",1))}});exports.DefaultSolutionModal=j;exports.DefaultUserModal=te;exports.Modal=I;exports.ProgressBar=me;exports.Ranklist=it;
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});require("@algoux/standard-ranklist-renderer-component-styles");var e=require("vue"),d=require("@algoux/standard-ranklist-renderer-component-core"),B=require("@algoux/standard-ranklist-utils");const O=["data-srk-modal-state"],L=["aria-labelledby"],q={class:"srk-modal-content"},R={key:0,class:"srk-modal-header"},H={class:"srk-modal-body"},U=e.defineComponent({__name:"Modal",props:{open:{type:Boolean},title:{},width:{},rootClassName:{},wrapClassName:{},style:{},destroyOnClose:{type:Boolean,default:!0},closeOnEsc:{type:Boolean,default:!0},closeOnMaskClick:{type:Boolean,default:!0}},emits:["close","update:open"],setup(t,{emit:o}){let l=0;const r=t,u=o,g=`srk-vue-modal-title-${++l}`,f=e.ref(null),a=e.ref(r.open||!r.destroyOnClose),m=e.ref(r.open?"pre-open":"closing"),c=e.ref({x:0,y:0});let y=null,k=null,S=null;const E=e.computed(()=>a.value||!r.destroyOnClose),z=e.computed(()=>["srk-modal-root",d.SRK_ANIMATED_MODAL_ROOT_CLASS,r.rootClassName].filter(Boolean)),A=e.computed(()=>r.open||r.destroyOnClose&&a.value),D=e.computed(()=>{var b,x;return{...r.style,width:r.width?`${r.width}px`:(b=r.style)==null?void 0:b.width,["--srk-modal-origin-x"]:`${c.value.x}px`,["--srk-modal-origin-y"]:`${c.value.y}px`,["--srk-modal-max-width"]:r.width?`${r.width}px`:typeof((x=r.style)==null?void 0:x.width)=="string"?r.style.width:void 0}});function T(){if(typeof window=="undefined"){y=null,k=null;return}y!==null&&(window.clearTimeout(y),y=null),k!==null&&(window.clearTimeout(k),k=null)}async function N(){if(await e.nextTick(),typeof window=="undefined"||!r.open||!a.value||m.value!=="pre-open")return;C();const b=d.resolveModalTransformOrigin(f.value);c.value=b.origin,k=window.setTimeout(()=>{m.value="opening",k=null},0)}function C(){const b=d.registerModalFocusScope(f.value,{onEscape:F});S===null&&(S=b)}function w(){S!==null&&(d.unregisterModalFocusScope(S),S=null)}function M(b){u("update:open",!1),u("close",b)}function P(b){r.closeOnMaskClick&&b.target===b.currentTarget&&M("mask")}function F(b){r.open&&r.closeOnEsc&&M("escape")}return e.watch(()=>r.open,async b=>{if(T(),b){a.value=!0,c.value={x:0,y:0},m.value="pre-open",await N();return}if(w(),m.value="closing",!r.destroyOnClose){a.value=!0;return}a.value&&typeof window!="undefined"&&(y=window.setTimeout(()=>{a.value=!1,y=null},d.MODAL_ANIMATION_DURATION_MS))},{immediate:!0}),e.watchEffect(b=>{!A.value||(d.lockModalBodyScroll(),b(()=>{d.unlockModalBodyScroll()}))}),e.onMounted(()=>{d.ensureModalInteractionTracker(),r.open&&C()}),e.onBeforeUnmount(()=>{T(),w()}),(b,x)=>E.value?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(z.value),"data-srk-modal-state":m.value},[x[2]||(x[2]=e.createElementVNode("div",{class:"srk-modal-mask"},null,-1)),e.createElementVNode("div",{class:e.normalizeClass(["srk-modal-wrap",t.wrapClassName]),tabindex:"-1",onMousedown:P},[e.createElementVNode("div",{class:"srk-modal",role:"dialog","aria-modal":"true","aria-labelledby":t.title?g:void 0,"data-srk-modal-panel":"true",tabindex:"-1",ref_key:"dialogRef",ref:f,style:e.normalizeStyle(D.value)},[e.createElementVNode("div",q,[e.createElementVNode("button",{"aria-label":"Close",class:"srk-modal-close",type:"button",onClick:x[0]||(x[0]=I=>M("close-button"))},[...x[1]||(x[1]=[e.createElementVNode("span",{class:"srk-modal-close-x"},null,-1)])]),t.title!==void 0?(e.openBlock(),e.createElementBlock("div",R,[e.createElementVNode("div",{id:g,class:"srk-modal-title"},e.toDisplayString(t.title),1)])):e.createCommentVNode("",!0),e.createElementVNode("div",H,[e.renderSlot(b.$slots,"default")])])],12,L)],34)],10,O)):e.createCommentVNode("",!0)}}),K={class:"srk-common-table srk-solutions-table"},j={class:"srk--text-right"},J=e.defineComponent({__name:"DefaultSolutionModal",props:{open:{type:Boolean},user:{},problem:{},problemIndex:{},solutions:{default:()=>[]},title:{},width:{default:320},rootClassName:{default:"srk-general-modal-root"},wrapClassName:{default:"srk-solutions-modal"},style:{},languages:{}},emits:["close","update:open"],setup(t,{emit:o}){const l=t,r=o,u=e.ref(l.user?{user:l.user,problem:l.problem,problemIndex:l.problemIndex,solutions:l.solutions}:null);e.watch([()=>l.user,()=>l.problem,()=>l.problemIndex,()=>l.solutions],([f,a,m,c])=>{f&&(u.value={user:f,problem:a,problemIndex:m,solutions:c})},{immediate:!0});const g=e.computed(()=>l.title||(u.value?d.getSolutionModalTitle(u.value.problemIndex,u.value.user,l.languages):""));return(f,a)=>u.value?(e.openBlock(),e.createBlock(U,{key:0,open:t.open,title:g.value,width:t.width,"root-class-name":t.rootClassName,"wrap-class-name":t.wrapClassName,style:e.normalizeStyle(t.style),onClose:a[0]||(a[0]=m=>r("close",m)),"onUpdate:open":a[1]||(a[1]=m=>r("update:open",m))},{default:e.withCtx(()=>[e.createElementVNode("table",K,[a[2]||(a[2]=e.createElementVNode("thead",null,[e.createElementVNode("tr",null,[e.createElementVNode("th",{class:"srk--text-left"},"Result"),e.createElementVNode("th",{class:"srk--text-right"},"Time")])],-1)),e.createElementVNode("tbody",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(u.value.solutions,(m,c)=>{var y;return e.openBlock(),e.createElementBlock("tr",{key:`${m.result}_${(y=m.time)==null?void 0:y[0]}_${c}`},[e.createElementVNode("td",null,[e.createElementVNode("span",{class:e.normalizeClass(["srk-solution-result-text",e.unref(d.getSolutionResultMeta)(m.result).className])},e.toDisplayString(e.unref(d.getSolutionResultMeta)(m.result).label),3)]),e.createElementVNode("td",j,e.toDisplayString(e.unref(d.formatSolutionTimestamp)(m)),1)])}),128))])])]),_:1},8,["open","title","width","root-class-name","wrap-class-name","style"])):e.createCommentVNode("",!0)}}),W={class:"srk-user-modal-info"},G={class:"srk-user-modal-info-user-name"},Q={key:0,class:"srk-user-modal-info-user-second-name"},X={class:"srk-user-modal-info-labels"},Y={class:"srk-user-modal-info-labels-label srk-user-modal-info-labels-label-preset-general"},Z={key:1,class:"srk-user-modal-info-team-members"},_={key:0,class:"srk-user-modal-info-team-members-slash"},ee={key:2,class:"srk-user-modal-info-photo"},te=["src"],se=e.defineComponent({__name:"DefaultUserModal",props:{open:{type:Boolean},user:{},markers:{default:()=>[]},theme:{default:B.EnumTheme.light},title:{default:"User Info"},width:{default:420},rootClassName:{default:"srk-general-modal-root"},wrapClassName:{default:"srk-user-modal"},style:{},formatSrkAssetUrl:{},languages:{}},emits:["close","update:open"],setup(t,{emit:o}){const l=t,r=o,u=e.ref(l.user||null);e.watch(()=>l.user,c=>{c&&(u.value=c)},{immediate:!0});const g=e.computed(()=>u.value?B.resolveUserMarkers(u.value,l.markers).map(c=>({marker:c,presentation:d.getMarkerPresentation(c,l.theme)})):[]);function f(c,y){return d.resolveSrkAssetUrl(c,y,l.formatSrkAssetUrl)}function a(c){return B.resolveText(c,l.languages)}function m(c){return d.formatTeamMemberName(c,l.languages)}return(c,y)=>u.value?(e.openBlock(),e.createBlock(U,{key:0,open:t.open,title:t.title,width:t.width,"root-class-name":t.rootClassName,"wrap-class-name":t.wrapClassName,style:e.normalizeStyle(t.style),onClose:y[0]||(y[0]=k=>r("close",k)),"onUpdate:open":y[1]||(y[1]=k=>r("update:open",k))},{default:e.withCtx(()=>[e.createElementVNode("div",W,[e.createElementVNode("h3",G,e.toDisplayString(a(u.value.name)),1),u.value.organization?(e.openBlock(),e.createElementBlock("p",Q,e.toDisplayString(a(u.value.organization)),1)):e.createCommentVNode("",!0),e.createElementVNode("div",X,[e.createElementVNode("span",Y,e.toDisplayString(u.value.official===!1?"\uFF0A \u975E\u6B63\u5F0F\u53C2\u52A0\u8005":"\u6B63\u5F0F\u53C2\u52A0\u8005"),1),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(g.value,k=>(e.openBlock(),e.createElementBlock("span",{key:k.marker.id,class:e.normalizeClass(["srk-user-modal-info-labels-label",k.presentation.className]),style:e.normalizeStyle(k.presentation.style)},e.toDisplayString(a(k.marker.label)),7))),128))]),u.value.teamMembers&&u.value.teamMembers.length?(e.openBlock(),e.createElementBlock("div",Z,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(u.value.teamMembers,(k,S)=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:a(k.name)},[S>0?(e.openBlock(),e.createElementBlock("span",_," / ")):e.createCommentVNode("",!0),e.createElementVNode("span",null,e.toDisplayString(m(k)),1)],64))),128))])):e.createCommentVNode("",!0),u.value.photo?(e.openBlock(),e.createElementBlock("div",ee,[e.createElementVNode("img",{src:f(u.value.photo,"user.photo"),alt:"User portrait",class:"srk-user-modal-info-photo-img"},null,8,te)])):e.createCommentVNode("",!0)])]),_:1},8,["open","title","width","root-class-name","wrap-class-name","style"])):e.createCommentVNode("",!0)}}),le={class:"srk-progress-bar-container"},re={class:"srk-progress-bar"},oe={class:"srk-progress-bar-body"},ae={key:0,class:"srk-progress-slider-layer"},ne=["max","title"],ie={class:"srk-progress-secondary-area"},ce={class:"srk-progress-secondary-area-center"},ue={key:0,class:"srk-progress-time-machine-status"},de={key:1,class:"srk-progress-live-text"},me={key:2,style:{visibility:"hidden"}},ke=e.defineComponent({__name:"ProgressBar",props:{data:{},enableTimeTravel:{type:Boolean,default:!1},live:{type:Boolean,default:!1},td:{default:0}},emits:["timeTravel"],setup(t,{emit:o}){const l=t,r=o,u=e.ref(Date.now()),g=e.ref(!1),f=e.ref(!1),a=e.ref(d.getProgressMaxAvailableMinutes(l.data.contest,u.value,l.td)),m=e.ref(null);let c;const y=e.computed(()=>d.getProgressDurationMinutes(l.data.contest)),k=e.computed(()=>d.getProgressMaxAvailableMinutes(l.data.contest,u.value,l.td)),S=e.computed(()=>d.isProgressEnded(l.data.contest,u.value,l.td)),E=e.computed(()=>d.getProgressMetrics(l.data,u.value,l.td,a.value,g.value));function z(){u.value=Date.now(),S.value&&c!==void 0&&(window.clearInterval(c),c=void 0)}function A(C){typeof window!="undefined"&&(C&&c===void 0&&(c=window.setInterval(z,1e3)),!C&&c!==void 0&&(window.clearInterval(c),c=void 0))}function D(C){const w=C>=y.value||C>=k.value;r("timeTravel",w?null:C*60*1e3),g.value=!w,m.value=w?null:C*60*1e3,f.value=!1}function T(){f.value=!0,g.value=!0}function N(){f.value&&D(a.value)}return e.watch(k,C=>{!f.value&&m.value===null&&(a.value=C)}),e.watch(()=>l.live,C=>A(C),{immediate:!0}),e.watch(()=>l.data.contest.title,()=>{f.value=!1,a.value=k.value,m.value=null,g.value=!1,r("timeTravel",null)}),e.onBeforeUnmount(()=>{c!==void 0&&(window.clearInterval(c),c=void 0)}),(C,w)=>(e.openBlock(),e.createElementBlock("div",le,[e.createElementVNode("div",re,[e.createElementVNode("div",oe,[e.createElementVNode("div",{class:"srk-progress-bar-segment srk-progress-bar-normal",style:e.normalizeStyle({width:`${E.value.frozenBreakpoint*100}%`})},[e.createElementVNode("div",{class:"srk-progress-bar-fill",style:e.normalizeStyle({width:`${E.value.normalInnerPercent}%`})},null,4)],4),e.createElementVNode("div",{class:"srk-progress-bar-segment srk-progress-bar-frozen",style:e.normalizeStyle({width:`${(1-E.value.frozenBreakpoint)*100}%`})},[e.createElementVNode("div",{class:"srk-progress-bar-fill",style:e.normalizeStyle({width:`${E.value.frozenInnerPercent}%`})},null,4)],4)]),t.enableTimeTravel&&E.value.supportRegen?(e.openBlock(),e.createElementBlock("div",ae,[f.value?(e.openBlock(),e.createElementBlock("div",{key:0,class:"srk-progress-slider-tooltip",style:e.normalizeStyle({left:`${y.value?a.value/y.value*100:0}%`})},e.toDisplayString(e.unref(B.secToTimeStr)(a.value*60)),5)):e.createCommentVNode("",!0),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":w[0]||(w[0]=M=>a.value=M),"aria-label":"Time Travel",class:"srk-progress-slider",max:y.value,min:"0",step:"1",title:e.unref(B.secToTimeStr)(a.value*60),type:"range",onBlur:N,onKeydown:T,onKeyup:N,onMousedown:T,onMouseup:N,onTouchend:N,onTouchstart:T},null,40,ne),[[e.vModelText,a.value,void 0,{number:!0}]])])):e.createCommentVNode("",!0)]),e.createElementVNode("div",ie,[e.createElementVNode("div",{class:"srk-progress-secondary-area-left",style:e.normalizeStyle(t.live||g.value?{}:{display:"none"})}," Elapsed: "+e.toDisplayString(e.unref(B.secToTimeStr)(Math.round(E.value.elapsed/1e3))),5),e.createElementVNode("div",ce,[g.value?(e.openBlock(),e.createElementBlock("div",ue,[...w[1]||(w[1]=[e.createElementVNode("div",{class:"srk-progress-time-machine-text"},"Time Travel Mode",-1)])])):t.live&&!S.value?(e.openBlock(),e.createElementBlock("div",de,"Live")):(e.openBlock(),e.createElementBlock("div",me,"SRK"))]),e.createElementVNode("div",{class:"srk-progress-secondary-area-right",style:e.normalizeStyle(t.live||g.value?{}:{display:"none"})}," Remaining: "+e.toDisplayString(e.unref(B.secToTimeStr)(Math.round(E.value.remaining/1e3))),5)])]))}}),pe=["href"],fe={class:"srk--display-block"},ge=["title"],ve={class:"srk--display-block"},ye=["title"],he=e.defineComponent({__name:"ProblemHeaderCell",props:{problem:{},index:{},theme:{default:B.EnumTheme.light},languages:{}},setup(t){const o=t,l=e.computed(()=>o.problem.alias||B.numberToAlphabet(o.index)),r=e.computed(()=>o.problem.statistics),u=e.computed(()=>{if(!r.value)return"";const f=r.value.submitted?(r.value.accepted/r.value.submitted*100).toFixed(1):0;return`${r.value.accepted} / ${r.value.submitted} (${f}%)`}),g=e.computed(()=>d.getProblemHeaderBackgroundImage(o.problem.style,o.theme));return(f,a)=>(e.openBlock(),e.createElementBlock("th",{class:"srk--nowrap srk-problem-header",style:e.normalizeStyle({backgroundImage:g.value})},[t.problem.link?(e.openBlock(),e.createElementBlock("a",{key:0,href:t.problem.link,target:"_blank",rel:"noopener noreferrer",style:{color:"unset"}},[e.createElementVNode("span",fe,e.toDisplayString(l.value),1),r.value?(e.openBlock(),e.createElementBlock("span",{key:0,class:"srk--display-block srk-problem-stats",title:u.value},e.toDisplayString(r.value.accepted),9,ge)):e.createCommentVNode("",!0)],8,pe)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createElementVNode("span",ve,e.toDisplayString(l.value),1),r.value?(e.openBlock(),e.createElementBlock("span",{key:0,class:"srk--display-block srk-problem-stats",title:u.value},e.toDisplayString(r.value.accepted),9,ye)):e.createCommentVNode("",!0)],64))],4))}}),be={key:0,class:"srk-prest-status-block-fb-star"},Be={key:4,class:"srk-status-placeholder-cell srk--text-center srk--nowrap"},Ce="\u2605",Ee=e.defineComponent({__name:"StatusCell",props:{status:{},problem:{},problemIndex:{},user:{},row:{},rowIndex:{},ranklist:{},onSolutionClick:{},statusCellPreset:{default:"classic"},statusColorAsText:{type:Boolean,default:!1},emptyStatusPlaceholder:{default:null},languages:{}},setup(t){const o=t,l=e.computed(()=>[...o.status.solutions||[]].reverse()),r=e.computed(()=>l.value.length>0&&!!o.onSolutionClick),u=e.computed(()=>["srk-prest-status-block","srk--text-center","srk--nowrap",{"srk--cursor-pointer":r.value,"srk-prest-status-block-color-text":o.statusColorAsText}]);function g(a){var m,c;!r.value||(d.captureModalTriggerPointFromMouseEvent(a,{source:"status-cell",context:{rowIndex:o.rowIndex,problemIndex:o.problemIndex,problemAlias:((m=o.problem)==null?void 0:m.alias)||null,problemTitle:o.problem?B.resolveText(o.problem.title,o.languages):null,userId:o.user.id||null}}),(c=o.onSolutionClick)==null||c.call(o,{user:o.user,row:o.row,rowIndex:o.rowIndex,problemIndex:o.problemIndex,problem:o.problem,status:o.status,solutions:l.value,ranklist:o.ranklist}))}const f=e.defineComponent({props:{status:{type:Object,required:!0},ranklist:{type:Object,required:!0},preset:{type:String,required:!0}},setup(a){return()=>{const m=a.status,c=a.ranklist,y=a.preset,k=d.getRankProblemStatusCellPresentation(m,c,y);return typeof k.score=="number"?[e.h("span",{class:"srk-prest-status-block-score"},k.score),e.h("span",{class:"srk-prest-status-block-score-details"},k.scoreDetails)]:k.secondary!==void 0?[e.h("span",{class:"srk-prest-status-block-primary"},k.primary||"")," ",e.h("span",{class:"srk-prest-status-block-secondary"},k.secondary)]:k.primary||""}}});return(a,m)=>t.status.result==="FB"?(e.openBlock(),e.createElementBlock("td",{key:0,class:e.normalizeClass([u.value,"srk-prest-status-block-fb"]),onClick:e.withModifiers(g,["prevent"])},[t.statusColorAsText?(e.openBlock(),e.createElementBlock("span",be,e.toDisplayString(Ce))):e.createCommentVNode("",!0),e.createVNode(e.unref(f),{status:t.status,ranklist:t.ranklist,preset:t.statusCellPreset},null,8,["status","ranklist","preset"])],2)):t.status.result==="AC"?(e.openBlock(),e.createElementBlock("td",{key:1,class:e.normalizeClass([u.value,"srk-prest-status-block-accepted"]),onClick:e.withModifiers(g,["prevent"])},[e.createVNode(e.unref(f),{status:t.status,ranklist:t.ranklist,preset:t.statusCellPreset},null,8,["status","ranklist","preset"])],2)):t.status.result==="?"?(e.openBlock(),e.createElementBlock("td",{key:2,class:e.normalizeClass([u.value,"srk-prest-status-block-frozen"]),onClick:e.withModifiers(g,["prevent"])},[e.createVNode(e.unref(f),{status:t.status,ranklist:t.ranklist,preset:t.statusCellPreset},null,8,["status","ranklist","preset"])],2)):t.status.result==="RJ"?(e.openBlock(),e.createElementBlock("td",{key:3,class:e.normalizeClass([u.value,"srk-prest-status-block-failed"]),onClick:e.withModifiers(g,["prevent"])},[e.createVNode(e.unref(f),{status:t.status,ranklist:t.ranklist,preset:t.statusCellPreset},null,8,["status","ranklist","preset"])],2)):(e.openBlock(),e.createElementBlock("td",Be,e.toDisplayString(t.emptyStatusPlaceholder),1))}}),Se={class:"srk-user-cell-content"},Ne={key:0,class:"srk-user-avatar"},we=["src"],xe={class:"srk-user-body"},Ve={class:"srk-user-name-row"},Te=["title"],Me={class:"srk-marker-dot-group"},$e=["data-tooltip"],De={key:0,class:"srk-user-secondary-text srk--text-ellipsis",title:""},ze=e.defineComponent({__name:"UserCell",props:{user:{},row:{},rowIndex:{},ranklist:{},markers:{default:()=>[]},theme:{default:B.EnumTheme.light},formatSrkAssetUrl:{},onUserClick:{},hideOrganization:{type:Boolean,default:!1},hideAvatar:{type:Boolean,default:!1},languages:{}},setup(t){const o=t,l=e.computed(()=>g(o.user.name)),r=e.computed(()=>B.resolveUserMarkers(o.user,o.markers)),u=e.computed(()=>r.value.map(a=>({marker:a,presentation:d.getMarkerPresentation(a,o.theme)})));function g(a){return B.resolveText(a,o.languages)}function f(a){var m;d.captureModalTriggerPointFromMouseEvent(a,{source:"user-cell",context:{rowIndex:o.rowIndex,userId:o.user.id||null,userName:l.value}}),(m=o.onUserClick)==null||m.call(o,{user:o.user,row:o.row,rowIndex:o.rowIndex,ranklist:o.ranklist})}return(a,m)=>(e.openBlock(),e.createElementBlock("td",{class:e.normalizeClass(["srk--text-left srk--nowrap srk-user-cell",{"srk--cursor-pointer":!!t.onUserClick}]),title:"",onClick:e.withModifiers(f,["prevent"])},[e.createElementVNode("div",Se,[t.user.avatar&&!t.hideAvatar?(e.openBlock(),e.createElementBlock("div",Ne,[e.createElementVNode("img",{src:t.formatSrkAssetUrl(t.user.avatar,"user.avatar"),alt:"User Avatar"},null,8,we)])):e.createCommentVNode("",!0),e.createElementVNode("div",xe,[e.createElementVNode("div",Ve,[e.createElementVNode("span",{class:"srk-user-name-text",title:l.value},e.toDisplayString(l.value),9,Te),e.createElementVNode("span",Me,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(u.value,c=>(e.openBlock(),e.createElementBlock("span",{key:c.marker.id,class:e.normalizeClass(["srk-marker srk-marker-dot srk--c-tooltip",c.presentation.className]),style:e.normalizeStyle(c.presentation.style),"data-tooltip":g(c.marker.label)},null,14,$e))),128))])]),t.user.organization&&!t.hideOrganization?(e.openBlock(),e.createElementBlock("p",De,e.toDisplayString(g(t.user.organization)),1)):e.createCommentVNode("",!0)])])],2))}}),Ae={key:0},Pe={key:1},Fe={key:2,class:"srk-common-table srk-main"},Ie={key:0,class:"srk-organization-header srk--text-left srk--nowrap"},Ue={class:"srk--text-left srk--nowrap"},Oe={class:"srk--text-right srk--nowrap"},Le={key:1,class:"srk--text-right srk--nowrap"},qe={key:2,class:"srk-dirt-header srk--text-right srk--nowrap"},Re={key:3,class:"srk-se-header srk--text-right srk--nowrap"},He={class:"srk-organization-cell-content"},Ke={key:0,class:"srk-user-avatar"},je=["src"],Je=["title"],We={class:"srk--text-right srk--nowrap"},Ge={key:1,class:"srk--text-right srk--nowrap"},Qe={key:2,class:"srk-dirt-cell srk--text-right srk--nowrap"},Xe={key:3,class:"srk-se-cell srk--text-right srk--nowrap"},Ye={key:0},Ze=["colspan"],_e=["data-tooltip"],et={class:"srk-problem-statistics-footer-primary"},tt={class:"srk-problem-statistics-footer-secondary"},st={key:0,class:"srk-problem-statistics-footer-cell srk-extra-statistics-footer-cell srk-dirt-footer-cell srk--nowrap"},lt={key:1,class:"srk-problem-statistics-footer-cell srk-extra-statistics-footer-cell srk-se-footer-cell srk--nowrap"},rt={class:"srk-problem-statistics-footer-row srk-problem-statistics-footer-problem-label-row"},ot=["colspan"],at={class:"srk--display-block"},nt={key:0,class:"srk-problem-statistics-footer-cell srk-extra-statistics-footer-cell srk-dirt-footer-cell srk--nowrap"},it={key:1,class:"srk-problem-statistics-footer-cell srk-extra-statistics-footer-cell srk-se-footer-cell srk--nowrap"},ct=e.defineComponent({__name:"Ranklist",props:{data:{},theme:{default:B.EnumTheme.light},rowBordered:{type:Boolean,default:!1},columnBordered:{type:Boolean,default:!1},rowStriped:{type:Boolean,default:!1},formatSrkAssetUrl:{},splitOrganization:{type:Boolean,default:!1},columnTitles:{},statusCellPreset:{default:"classic"},statusColorAsText:{type:Boolean,default:!1},showProblemStatisticsFooter:{type:Boolean,default:!1},showDirtColumn:{type:Boolean,default:!1},showSEColumn:{type:Boolean,default:!1},emptyStatusPlaceholder:{default:null},userAvatarPlacement:{default:"user"},languages:{}},emits:["userClick","solutionClick"],setup(t,{emit:o}){const l=t,r=o,u=e.computed(()=>l.theme),g=d.srkSupportedVersions,f=e.computed(()=>d.caniuse(l.data.version)),a=e.computed(()=>d.shouldShowTimeColumn(l.data.rows)),m=e.computed(()=>l.splitOrganization&&l.userAvatarPlacement==="organization"),c=e.computed(()=>l.showProblemStatisticsFooter||l.showSEColumn?d.calculateProblemStatisticsFooter(l.data):[]),y=e.computed(()=>l.data.series.length+1+1+(a.value?1:0)+(l.splitOrganization?1:0)),k=[{key:"accepted",label:"Accepted",tooltip:"Number of participants who solved this problem"},{key:"attempted",label:"Attempted",tooltip:"Number of participants who attempted this problem"},{key:"submitted",label:"Submitted",tooltip:"Total number of valid submissions for this problem"},{key:"dirt",label:"Dirt",tooltip:"Wrong submissions among participants who solved this problem"},{key:"se",label:"SE",tooltip:"Average hardness, calculated as (participants - accepted) / participants"},{key:"firstAccepted",label:"FB at",tooltip:"First Blood at, also known as first solve time, in minutes"},{key:"lastAccepted",label:"LB at",tooltip:"Last Blood at, also known as last solve time, in minutes"}];function S(n,i){return d.resolveSrkAssetUrl(n,i,l.formatSrkAssetUrl)}function E(n){return B.resolveText(n,l.languages)}function z(n){return n.rankValues||l.data.series.map(()=>({rank:null,segmentIndex:null}))}function A(n,i){return n.rank?n.rank:i.user.official===!1?"\uFF0A":""}function D(n){return((n==null?void 0:n.segments)||[]).some(i=>typeof i.style=="string")}function T(n,i){var p,h,v;const s=(p=l.columnTitles)==null?void 0:p.series;return typeof s=="function"?(h=s(n,i))!=null?h:n.title:Array.isArray(s)&&(v=s[i])!=null?v:n.title}function N(n,i){var s,p;return(p=(s=l.columnTitles)==null?void 0:s[n])!=null?p:i}function C(n,i){const s=n.segmentIndex||n.segmentIndex===0?n.segmentIndex:-1;return((i==null?void 0:i.segments)||[])[s]||{}}function w(n,i){const s=C(n,i).style;return typeof s=="string"?`srk-preset-series-segment-${s}`:""}function M(n,i){const s={[B.EnumTheme.light]:void 0,[B.EnumTheme.dark]:void 0},p=C(n,i).style;if(!p||typeof p=="string")return{};const h=B.resolveStyle(p),v=h.textColor||s,V=h.backgroundColor||s;return{color:v[l.theme],backgroundColor:V[l.theme]}}function P(n){return[...n.solutions||[]].reverse()}function F(n,i){switch(n){case"accepted":return i.accepted;case"attempted":return i.attempted;case"submitted":return i.submitted;case"dirt":return i.dirt;case"se":return d.formatProblemStatisticsAverageHardness(i);case"firstAccepted":return d.formatProblemStatisticsAcceptedMinute(i.firstAcceptedTime);case"lastAccepted":return d.formatProblemStatisticsAcceptedMinute(i.lastAcceptedTime);default:return""}}function b(n,i){switch(n){case"accepted":return d.formatProblemStatisticsPercent(i.accepted,i.participantCount);case"attempted":return d.formatProblemStatisticsPercent(i.attempted,i.participantCount);case"dirt":return d.formatProblemStatisticsPercent(i.dirt,i.dirtSubmitted);default:return}}function x(n,i,s){if("ranklist"in n){r("userClick",n);return}s&&d.captureModalTriggerPointFromMouseEvent(s,{source:"user-cell",context:{rowIndex:i||0,userId:n.user.id||null,userName:E(n.user.name)}}),r("userClick",{user:n.user,row:n,rowIndex:i||0,ranklist:l.data})}function I(n,i,s,p,h){if("solutions"in n){r("solutionClick",n);return}const v=p||0,V=s||n.statuses[v];if(h){const $=l.data.problems[v];d.captureModalTriggerPointFromMouseEvent(h,{source:"status-cell",context:{rowIndex:i||0,problemIndex:v,problemAlias:($==null?void 0:$.alias)||null,problemTitle:$?E($.title):null,userId:n.user.id||null}})}r("solutionClick",{user:n.user,row:n,rowIndex:i||0,problemIndex:v,problem:l.data.problems[v],status:V,solutions:P(V),ranklist:l.data})}return(n,i)=>t.data.type!=="general"?(e.openBlock(),e.createElementBlock("div",Ae,'srk type "'+e.toDisplayString(t.data.type)+'" is not supported',1)):f.value?(e.openBlock(),e.createElementBlock("div",Fe,[e.createElementVNode("table",{class:e.normalizeClass({"srk-table-row-bordered":t.rowBordered,"srk-table-column-bordered":t.columnBordered,"srk-table-row-striped":t.rowStriped})},[e.createElementVNode("thead",null,[e.createElementVNode("tr",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.data.series,(s,p)=>(e.openBlock(),e.createElementBlock("th",{key:s.title,class:e.normalizeClass(["srk-series-header srk--text-right srk--nowrap",{"srk-series-segmented-column":D(s)}])},e.toDisplayString(T(s,p)),3))),128)),t.splitOrganization?(e.openBlock(),e.createElementBlock("th",Ie,e.toDisplayString(N("organization","Organization")),1)):e.createCommentVNode("",!0),e.createElementVNode("th",Ue,e.toDisplayString(N("user","Name")),1),e.createElementVNode("th",Oe,e.toDisplayString(N("score","Score")),1),a.value?(e.openBlock(),e.createElementBlock("th",Le,e.toDisplayString(N("time","Time")),1)):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.data.problems,(s,p)=>e.renderSlot(n.$slots,"problem-header-cell",e.mergeProps({key:s.alias||E(s.title)||p,ref_for:!0},{problem:s,problemIndex:p,index:p,theme:u.value,languages:t.languages}),()=>[e.createVNode(he,{problem:s,index:p,theme:u.value,languages:t.languages},null,8,["problem","index","theme","languages"])])),128)),t.showDirtColumn?(e.openBlock(),e.createElementBlock("th",qe,e.toDisplayString(N("dirt","Dirt")),1)):e.createCommentVNode("",!0),t.showSEColumn?(e.openBlock(),e.createElementBlock("th",Re,e.toDisplayString(N("se","SE")),1)):e.createCommentVNode("",!0)])]),e.createElementVNode("tbody",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.data.rows,(s,p)=>(e.openBlock(),e.createElementBlock("tr",{key:s.user.id||E(s.user.name)},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(z(s),(h,v)=>{var V;return e.openBlock(),e.createElementBlock("td",{key:((V=t.data.series[v])==null?void 0:V.title)||v,class:e.normalizeClass(["srk--text-right srk--nowrap",[w(h,t.data.series[v]),{"srk-series-segmented-column":D(t.data.series[v])}]]),style:e.normalizeStyle(M(h,t.data.series[v]))},e.toDisplayString(A(h,s)),7)}),128)),t.splitOrganization?(e.openBlock(),e.createElementBlock("td",{key:0,class:e.normalizeClass(["srk-organization-cell srk--text-left srk--nowrap",{"srk-organization-cell-avatar":m.value&&!!s.user.avatar}])},[e.createElementVNode("div",He,[m.value&&s.user.avatar?(e.openBlock(),e.createElementBlock("div",Ke,[e.createElementVNode("img",{src:S(s.user.avatar,"user.avatar"),alt:"User Avatar"},null,8,je)])):e.createCommentVNode("",!0),e.createElementVNode("span",{class:"srk-organization-name-text",title:s.user.organization?E(s.user.organization):""},e.toDisplayString(s.user.organization?E(s.user.organization):""),9,Je)])],2)):e.createCommentVNode("",!0),e.renderSlot(n.$slots,"user-cell",e.mergeProps({ref_for:!0},{user:s.user,row:s,rowIndex:p,ranklist:t.data,markers:t.data.markers,theme:u.value,hideOrganization:t.splitOrganization,hideAvatar:m.value,languages:t.languages,onClick:h=>x(s,p,h)}),()=>[e.createVNode(ze,{user:s.user,row:s,"row-index":p,ranklist:t.data,markers:t.data.markers,theme:u.value,"format-srk-asset-url":S,"on-user-click":x,"hide-organization":t.splitOrganization,"hide-avatar":m.value,languages:t.languages},null,8,["user","row","row-index","ranklist","markers","theme","hide-organization","hide-avatar","languages"])]),e.createElementVNode("td",We,e.toDisplayString(s.score.value),1),a.value?(e.openBlock(),e.createElementBlock("td",Ge,e.toDisplayString(s.score.time?e.unref(B.formatTimeDuration)(s.score.time,"min",Math.floor):"-"),1)):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(s.statuses,(h,v)=>{var V;return e.renderSlot(n.$slots,"status-cell",e.mergeProps({key:((V=t.data.problems[v])==null?void 0:V.alias)||v,ref_for:!0},{status:h,problem:t.data.problems[v],problemIndex:v,user:s.user,row:s,rowIndex:p,ranklist:t.data,solutions:P(h),statusCellPreset:t.statusCellPreset,statusColorAsText:t.statusColorAsText,emptyStatusPlaceholder:t.emptyStatusPlaceholder,languages:t.languages,onClick:$=>I(s,p,h,v,$)}),()=>[e.createVNode(Ee,{status:h,problem:t.data.problems[v],"problem-index":v,user:s.user,row:s,"row-index":p,ranklist:t.data,"on-solution-click":I,"status-cell-preset":t.statusCellPreset,"status-color-as-text":t.statusColorAsText,"empty-status-placeholder":t.emptyStatusPlaceholder,languages:t.languages},null,8,["status","problem","problem-index","user","row","row-index","ranklist","status-cell-preset","status-color-as-text","empty-status-placeholder","languages"])])}),128)),t.showDirtColumn?(e.openBlock(),e.createElementBlock("td",Qe,e.toDisplayString(e.unref(d.calculateDirtPercentage)(s)),1)):e.createCommentVNode("",!0),t.showSEColumn?(e.openBlock(),e.createElementBlock("td",Xe,e.toDisplayString(e.unref(d.calculateSEValue)(s,c.value)),1)):e.createCommentVNode("",!0)]))),128))]),t.showProblemStatisticsFooter?(e.openBlock(),e.createElementBlock("tfoot",Ye,[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(k,s=>e.createElementVNode("tr",{key:s.key,class:"srk-problem-statistics-footer-row"},[e.createElementVNode("td",{class:"srk-problem-statistics-footer-labels srk--text-right srk--nowrap",colspan:y.value},[e.createElementVNode("span",{class:"srk-problem-statistics-footer-label srk--c-tooltip","data-tooltip":s.tooltip},e.toDisplayString(s.label),9,_e)],8,Ze),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(c.value,(p,h)=>{var v;return e.openBlock(),e.createElementBlock("td",{key:((v=t.data.problems[h])==null?void 0:v.alias)||h,class:"srk-problem-statistics-footer-cell srk--text-center srk--nowrap"},[e.createElementVNode("span",et,e.toDisplayString(F(s.key,p)),1),b(s.key,p)!==void 0?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[i[0]||(i[0]=e.createTextVNode(e.toDisplayString(" ")+" ",-1)),e.createElementVNode("span",tt,e.toDisplayString(b(s.key,p)),1)],64)):e.createCommentVNode("",!0)])}),128)),t.showDirtColumn?(e.openBlock(),e.createElementBlock("td",st,[...i[1]||(i[1]=[e.createElementVNode("span",{class:"srk-problem-statistics-footer-primary"},null,-1)])])):e.createCommentVNode("",!0),t.showSEColumn?(e.openBlock(),e.createElementBlock("td",lt,[...i[2]||(i[2]=[e.createElementVNode("span",{class:"srk-problem-statistics-footer-primary"},null,-1)])])):e.createCommentVNode("",!0)])),64)),e.createElementVNode("tr",rt,[e.createElementVNode("td",{class:"srk-problem-statistics-footer-labels srk--text-right srk--nowrap",colspan:y.value},null,8,ot),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.data.problems,(s,p)=>(e.openBlock(),e.createElementBlock("td",{key:s.alias||E(s.title)||p,class:"srk-problem-statistics-footer-cell srk-problem-statistics-footer-problem-header srk-problem-header srk--text-center srk--nowrap",style:e.normalizeStyle({backgroundImage:e.unref(d.getProblemHeaderBackgroundImage)(s.style,u.value,0)})},[e.createElementVNode("span",at,e.toDisplayString(s.alias||e.unref(B.numberToAlphabet)(p)),1)],4))),128)),t.showDirtColumn?(e.openBlock(),e.createElementBlock("td",nt,[...i[3]||(i[3]=[e.createElementVNode("span",{class:"srk-problem-statistics-footer-primary"},null,-1)])])):e.createCommentVNode("",!0),t.showSEColumn?(e.openBlock(),e.createElementBlock("td",it,[...i[4]||(i[4]=[e.createElementVNode("span",{class:"srk-problem-statistics-footer-primary"},null,-1)])])):e.createCommentVNode("",!0)])])):e.createCommentVNode("",!0)],2)])):(e.openBlock(),e.createElementBlock("div",Pe,' srk version "'+e.toDisplayString(t.data.version)+'" is not supported (current supported: '+e.toDisplayString(e.unref(g))+") ",1))}});exports.DefaultSolutionModal=J;exports.DefaultUserModal=se;exports.Modal=U;exports.ProgressBar=ke;exports.Ranklist=ct;
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import "@algoux/standard-ranklist-renderer-component-styles";
|
|
2
2
|
import { defineComponent, ref, computed, watch, watchEffect, onMounted, onBeforeUnmount, openBlock, createElementBlock, normalizeClass, createElementVNode, normalizeStyle, toDisplayString, createCommentVNode, renderSlot, nextTick, createBlock, withCtx, Fragment, renderList, unref, withDirectives, vModelText, h, withModifiers, createVNode, mergeProps, createTextVNode } from "vue";
|
|
3
|
-
import { SRK_ANIMATED_MODAL_ROOT_CLASS, MODAL_ANIMATION_DURATION_MS, lockModalBodyScroll, unlockModalBodyScroll, ensureModalInteractionTracker, resolveModalTransformOrigin, registerModalFocusScope, unregisterModalFocusScope, getSolutionModalTitle, getSolutionResultMeta, formatSolutionTimestamp, getMarkerPresentation, resolveSrkAssetUrl, getProgressMaxAvailableMinutes, getProgressDurationMinutes, isProgressEnded, getProgressMetrics, getProblemHeaderBackgroundImage, getRankProblemStatusCellPresentation, captureModalTriggerPointFromMouseEvent, caniuse, shouldShowTimeColumn, calculateProblemStatisticsFooter, calculateDirtPercentage, calculateSEValue, srkSupportedVersions, formatProblemStatisticsAcceptedMinute, formatProblemStatisticsAverageHardness, formatProblemStatisticsPercent } from "@algoux/standard-ranklist-renderer-component-core";
|
|
3
|
+
import { SRK_ANIMATED_MODAL_ROOT_CLASS, MODAL_ANIMATION_DURATION_MS, lockModalBodyScroll, unlockModalBodyScroll, ensureModalInteractionTracker, resolveModalTransformOrigin, registerModalFocusScope, unregisterModalFocusScope, getSolutionModalTitle, getSolutionResultMeta, formatSolutionTimestamp, getMarkerPresentation, resolveSrkAssetUrl, formatTeamMemberName, getProgressMaxAvailableMinutes, getProgressDurationMinutes, isProgressEnded, getProgressMetrics, getProblemHeaderBackgroundImage, getRankProblemStatusCellPresentation, captureModalTriggerPointFromMouseEvent, caniuse, shouldShowTimeColumn, calculateProblemStatisticsFooter, calculateDirtPercentage, calculateSEValue, srkSupportedVersions, formatProblemStatisticsAcceptedMinute, formatProblemStatisticsAverageHardness, formatProblemStatisticsPercent } from "@algoux/standard-ranklist-renderer-component-core";
|
|
4
4
|
import { EnumTheme, resolveUserMarkers, resolveText, secToTimeStr, numberToAlphabet, formatTimeDuration, resolveStyle } from "@algoux/standard-ranklist-utils";
|
|
5
5
|
const _hoisted_1$7 = ["data-srk-modal-state"];
|
|
6
6
|
const _hoisted_2$7 = ["aria-labelledby"];
|
|
@@ -208,7 +208,8 @@ const _sfc_main$6 = defineComponent({
|
|
|
208
208
|
width: { default: 320 },
|
|
209
209
|
rootClassName: { default: "srk-general-modal-root" },
|
|
210
210
|
wrapClassName: { default: "srk-solutions-modal" },
|
|
211
|
-
style: {}
|
|
211
|
+
style: {},
|
|
212
|
+
languages: {}
|
|
212
213
|
},
|
|
213
214
|
emits: ["close", "update:open"],
|
|
214
215
|
setup(__props, { emit: __emit }) {
|
|
@@ -230,7 +231,7 @@ const _sfc_main$6 = defineComponent({
|
|
|
230
231
|
};
|
|
231
232
|
}
|
|
232
233
|
}, { immediate: true });
|
|
233
|
-
const resolvedTitle = computed(() => props.title || (cachedPayload.value ? getSolutionModalTitle(cachedPayload.value.problemIndex, cachedPayload.value.user) : ""));
|
|
234
|
+
const resolvedTitle = computed(() => props.title || (cachedPayload.value ? getSolutionModalTitle(cachedPayload.value.problemIndex, cachedPayload.value.user, props.languages) : ""));
|
|
234
235
|
return (_ctx, _cache) => {
|
|
235
236
|
return cachedPayload.value ? (openBlock(), createBlock(_sfc_main$7, {
|
|
236
237
|
key: 0,
|
|
@@ -306,7 +307,8 @@ const _sfc_main$5 = defineComponent({
|
|
|
306
307
|
rootClassName: { default: "srk-general-modal-root" },
|
|
307
308
|
wrapClassName: { default: "srk-user-modal" },
|
|
308
309
|
style: {},
|
|
309
|
-
formatSrkAssetUrl: {}
|
|
310
|
+
formatSrkAssetUrl: {},
|
|
311
|
+
languages: {}
|
|
310
312
|
},
|
|
311
313
|
emits: ["close", "update:open"],
|
|
312
314
|
setup(__props, { emit: __emit }) {
|
|
@@ -325,6 +327,12 @@ const _sfc_main$5 = defineComponent({
|
|
|
325
327
|
function formatAssetUrl(url, field) {
|
|
326
328
|
return resolveSrkAssetUrl(url, field, props.formatSrkAssetUrl);
|
|
327
329
|
}
|
|
330
|
+
function resolveDisplayText(text) {
|
|
331
|
+
return resolveText(text, props.languages);
|
|
332
|
+
}
|
|
333
|
+
function formatMemberName(member) {
|
|
334
|
+
return formatTeamMemberName(member, props.languages);
|
|
335
|
+
}
|
|
328
336
|
return (_ctx, _cache) => {
|
|
329
337
|
return cachedUser.value ? (openBlock(), createBlock(_sfc_main$7, {
|
|
330
338
|
key: 0,
|
|
@@ -339,8 +347,8 @@ const _sfc_main$5 = defineComponent({
|
|
|
339
347
|
}, {
|
|
340
348
|
default: withCtx(() => [
|
|
341
349
|
createElementVNode("div", _hoisted_1$5, [
|
|
342
|
-
createElementVNode("h3", _hoisted_2$5, toDisplayString(
|
|
343
|
-
cachedUser.value.organization ? (openBlock(), createElementBlock("p", _hoisted_3$4, toDisplayString(
|
|
350
|
+
createElementVNode("h3", _hoisted_2$5, toDisplayString(resolveDisplayText(cachedUser.value.name)), 1),
|
|
351
|
+
cachedUser.value.organization ? (openBlock(), createElementBlock("p", _hoisted_3$4, toDisplayString(resolveDisplayText(cachedUser.value.organization)), 1)) : createCommentVNode("", true),
|
|
344
352
|
createElementVNode("div", _hoisted_4$4, [
|
|
345
353
|
createElementVNode("span", _hoisted_5$4, toDisplayString(cachedUser.value.official === false ? "\uFF0A \u975E\u6B63\u5F0F\u53C2\u52A0\u8005" : "\u6B63\u5F0F\u53C2\u52A0\u8005"), 1),
|
|
346
354
|
(openBlock(true), createElementBlock(Fragment, null, renderList(resolvedMarkers.value, (marker) => {
|
|
@@ -348,16 +356,16 @@ const _sfc_main$5 = defineComponent({
|
|
|
348
356
|
key: marker.marker.id,
|
|
349
357
|
class: normalizeClass(["srk-user-modal-info-labels-label", marker.presentation.className]),
|
|
350
358
|
style: normalizeStyle(marker.presentation.style)
|
|
351
|
-
}, toDisplayString(
|
|
359
|
+
}, toDisplayString(resolveDisplayText(marker.marker.label)), 7);
|
|
352
360
|
}), 128))
|
|
353
361
|
]),
|
|
354
362
|
cachedUser.value.teamMembers && cachedUser.value.teamMembers.length ? (openBlock(), createElementBlock("div", _hoisted_6$3, [
|
|
355
363
|
(openBlock(true), createElementBlock(Fragment, null, renderList(cachedUser.value.teamMembers, (member, index) => {
|
|
356
364
|
return openBlock(), createElementBlock(Fragment, {
|
|
357
|
-
key:
|
|
365
|
+
key: resolveDisplayText(member.name)
|
|
358
366
|
}, [
|
|
359
367
|
index > 0 ? (openBlock(), createElementBlock("span", _hoisted_7$3, " / ")) : createCommentVNode("", true),
|
|
360
|
-
createElementVNode("span", null, toDisplayString(
|
|
368
|
+
createElementVNode("span", null, toDisplayString(formatMemberName(member)), 1)
|
|
361
369
|
], 64);
|
|
362
370
|
}), 128))
|
|
363
371
|
])) : createCommentVNode("", true),
|
|
@@ -557,7 +565,8 @@ const _sfc_main$3 = defineComponent({
|
|
|
557
565
|
props: {
|
|
558
566
|
problem: {},
|
|
559
567
|
index: {},
|
|
560
|
-
theme: { default: EnumTheme.light }
|
|
568
|
+
theme: { default: EnumTheme.light },
|
|
569
|
+
languages: {}
|
|
561
570
|
},
|
|
562
571
|
setup(__props) {
|
|
563
572
|
const props = __props;
|
|
@@ -623,7 +632,8 @@ const _sfc_main$2 = defineComponent({
|
|
|
623
632
|
onSolutionClick: {},
|
|
624
633
|
statusCellPreset: { default: "classic" },
|
|
625
634
|
statusColorAsText: { type: Boolean, default: false },
|
|
626
|
-
emptyStatusPlaceholder: { default: null }
|
|
635
|
+
emptyStatusPlaceholder: { default: null },
|
|
636
|
+
languages: {}
|
|
627
637
|
},
|
|
628
638
|
setup(__props) {
|
|
629
639
|
const props = __props;
|
|
@@ -649,7 +659,7 @@ const _sfc_main$2 = defineComponent({
|
|
|
649
659
|
rowIndex: props.rowIndex,
|
|
650
660
|
problemIndex: props.problemIndex,
|
|
651
661
|
problemAlias: ((_a = props.problem) == null ? void 0 : _a.alias) || null,
|
|
652
|
-
problemTitle: props.problem ? resolveText(props.problem.title) : null,
|
|
662
|
+
problemTitle: props.problem ? resolveText(props.problem.title, props.languages) : null,
|
|
653
663
|
userId: props.user.id || null
|
|
654
664
|
}
|
|
655
665
|
});
|
|
@@ -776,16 +786,20 @@ const _sfc_main$1 = defineComponent({
|
|
|
776
786
|
formatSrkAssetUrl: {},
|
|
777
787
|
onUserClick: {},
|
|
778
788
|
hideOrganization: { type: Boolean, default: false },
|
|
779
|
-
hideAvatar: { type: Boolean, default: false }
|
|
789
|
+
hideAvatar: { type: Boolean, default: false },
|
|
790
|
+
languages: {}
|
|
780
791
|
},
|
|
781
792
|
setup(__props) {
|
|
782
793
|
const props = __props;
|
|
783
|
-
const name = computed(() =>
|
|
794
|
+
const name = computed(() => resolveDisplayText(props.user.name));
|
|
784
795
|
const userMarkers = computed(() => resolveUserMarkers(props.user, props.markers));
|
|
785
796
|
const resolvedMarkers = computed(() => userMarkers.value.map((marker) => ({
|
|
786
797
|
marker,
|
|
787
798
|
presentation: getMarkerPresentation(marker, props.theme)
|
|
788
799
|
})));
|
|
800
|
+
function resolveDisplayText(text) {
|
|
801
|
+
return resolveText(text, props.languages);
|
|
802
|
+
}
|
|
789
803
|
function emitUserClick(event) {
|
|
790
804
|
var _a;
|
|
791
805
|
captureModalTriggerPointFromMouseEvent(event, {
|
|
@@ -828,12 +842,12 @@ const _sfc_main$1 = defineComponent({
|
|
|
828
842
|
key: marker.marker.id,
|
|
829
843
|
class: normalizeClass(["srk-marker srk-marker-dot srk--c-tooltip", marker.presentation.className]),
|
|
830
844
|
style: normalizeStyle(marker.presentation.style),
|
|
831
|
-
"data-tooltip":
|
|
845
|
+
"data-tooltip": resolveDisplayText(marker.marker.label)
|
|
832
846
|
}, null, 14, _hoisted_8$1);
|
|
833
847
|
}), 128))
|
|
834
848
|
])
|
|
835
849
|
]),
|
|
836
|
-
__props.user.organization && !__props.hideOrganization ? (openBlock(), createElementBlock("p", _hoisted_9$1, toDisplayString(
|
|
850
|
+
__props.user.organization && !__props.hideOrganization ? (openBlock(), createElementBlock("p", _hoisted_9$1, toDisplayString(resolveDisplayText(__props.user.organization)), 1)) : createCommentVNode("", true)
|
|
837
851
|
])
|
|
838
852
|
])
|
|
839
853
|
], 2);
|
|
@@ -925,7 +939,8 @@ const _sfc_main = defineComponent({
|
|
|
925
939
|
showDirtColumn: { type: Boolean, default: false },
|
|
926
940
|
showSEColumn: { type: Boolean, default: false },
|
|
927
941
|
emptyStatusPlaceholder: { default: null },
|
|
928
|
-
userAvatarPlacement: { default: "user" }
|
|
942
|
+
userAvatarPlacement: { default: "user" },
|
|
943
|
+
languages: {}
|
|
929
944
|
},
|
|
930
945
|
emits: ["userClick", "solutionClick"],
|
|
931
946
|
setup(__props, { emit: __emit }) {
|
|
@@ -945,8 +960,8 @@ const _sfc_main = defineComponent({
|
|
|
945
960
|
tooltip: "Number of participants who solved this problem"
|
|
946
961
|
},
|
|
947
962
|
{
|
|
948
|
-
key: "
|
|
949
|
-
label: "
|
|
963
|
+
key: "attempted",
|
|
964
|
+
label: "Attempted",
|
|
950
965
|
tooltip: "Number of participants who attempted this problem"
|
|
951
966
|
},
|
|
952
967
|
{
|
|
@@ -978,6 +993,9 @@ const _sfc_main = defineComponent({
|
|
|
978
993
|
function formatAssetUrl(url, field) {
|
|
979
994
|
return resolveSrkAssetUrl(url, field, props.formatSrkAssetUrl);
|
|
980
995
|
}
|
|
996
|
+
function resolveDisplayText(text) {
|
|
997
|
+
return resolveText(text, props.languages);
|
|
998
|
+
}
|
|
981
999
|
function getRankValues(row) {
|
|
982
1000
|
return row.rankValues || props.data.series.map(() => ({ rank: null, segmentIndex: null }));
|
|
983
1001
|
}
|
|
@@ -1034,8 +1052,8 @@ const _sfc_main = defineComponent({
|
|
|
1034
1052
|
switch (key) {
|
|
1035
1053
|
case "accepted":
|
|
1036
1054
|
return stat.accepted;
|
|
1037
|
-
case "
|
|
1038
|
-
return stat.
|
|
1055
|
+
case "attempted":
|
|
1056
|
+
return stat.attempted;
|
|
1039
1057
|
case "submitted":
|
|
1040
1058
|
return stat.submitted;
|
|
1041
1059
|
case "dirt":
|
|
@@ -1054,8 +1072,8 @@ const _sfc_main = defineComponent({
|
|
|
1054
1072
|
switch (key) {
|
|
1055
1073
|
case "accepted":
|
|
1056
1074
|
return formatProblemStatisticsPercent(stat.accepted, stat.participantCount);
|
|
1057
|
-
case "
|
|
1058
|
-
return formatProblemStatisticsPercent(stat.
|
|
1075
|
+
case "attempted":
|
|
1076
|
+
return formatProblemStatisticsPercent(stat.attempted, stat.participantCount);
|
|
1059
1077
|
case "dirt":
|
|
1060
1078
|
return formatProblemStatisticsPercent(stat.dirt, stat.dirtSubmitted);
|
|
1061
1079
|
default:
|
|
@@ -1073,7 +1091,7 @@ const _sfc_main = defineComponent({
|
|
|
1073
1091
|
context: {
|
|
1074
1092
|
rowIndex: rowIndex || 0,
|
|
1075
1093
|
userId: payloadOrRow.user.id || null,
|
|
1076
|
-
userName:
|
|
1094
|
+
userName: resolveDisplayText(payloadOrRow.user.name)
|
|
1077
1095
|
}
|
|
1078
1096
|
});
|
|
1079
1097
|
}
|
|
@@ -1099,7 +1117,7 @@ const _sfc_main = defineComponent({
|
|
|
1099
1117
|
rowIndex: rowIndex || 0,
|
|
1100
1118
|
problemIndex: resolvedProblemIndex,
|
|
1101
1119
|
problemAlias: (problem == null ? void 0 : problem.alias) || null,
|
|
1102
|
-
problemTitle: problem ?
|
|
1120
|
+
problemTitle: problem ? resolveDisplayText(problem.title) : null,
|
|
1103
1121
|
userId: payloadOrRow.user.id || null
|
|
1104
1122
|
}
|
|
1105
1123
|
});
|
|
@@ -1138,14 +1156,15 @@ const _sfc_main = defineComponent({
|
|
|
1138
1156
|
showTimeColumn.value ? (openBlock(), createElementBlock("th", _hoisted_7, toDisplayString(resolveColumnTitle("time", "Time")), 1)) : createCommentVNode("", true),
|
|
1139
1157
|
(openBlock(true), createElementBlock(Fragment, null, renderList(__props.data.problems, (problem, problemIndex) => {
|
|
1140
1158
|
return renderSlot(_ctx.$slots, "problem-header-cell", mergeProps({
|
|
1141
|
-
key: problem.alias ||
|
|
1159
|
+
key: problem.alias || resolveDisplayText(problem.title) || problemIndex,
|
|
1142
1160
|
ref_for: true
|
|
1143
|
-
}, { problem, problemIndex, index: problemIndex, theme: resolvedTheme.value }), () => [
|
|
1161
|
+
}, { problem, problemIndex, index: problemIndex, theme: resolvedTheme.value, languages: __props.languages }), () => [
|
|
1144
1162
|
createVNode(_sfc_main$3, {
|
|
1145
1163
|
problem,
|
|
1146
1164
|
index: problemIndex,
|
|
1147
|
-
theme: resolvedTheme.value
|
|
1148
|
-
|
|
1165
|
+
theme: resolvedTheme.value,
|
|
1166
|
+
languages: __props.languages
|
|
1167
|
+
}, null, 8, ["problem", "index", "theme", "languages"])
|
|
1149
1168
|
]);
|
|
1150
1169
|
}), 128)),
|
|
1151
1170
|
__props.showDirtColumn ? (openBlock(), createElementBlock("th", _hoisted_8, toDisplayString(resolveColumnTitle("dirt", "Dirt")), 1)) : createCommentVNode("", true),
|
|
@@ -1155,7 +1174,7 @@ const _sfc_main = defineComponent({
|
|
|
1155
1174
|
createElementVNode("tbody", null, [
|
|
1156
1175
|
(openBlock(true), createElementBlock(Fragment, null, renderList(__props.data.rows, (row, rowIndex) => {
|
|
1157
1176
|
return openBlock(), createElementBlock("tr", {
|
|
1158
|
-
key: row.user.id ||
|
|
1177
|
+
key: row.user.id || resolveDisplayText(row.user.name)
|
|
1159
1178
|
}, [
|
|
1160
1179
|
(openBlock(true), createElementBlock(Fragment, null, renderList(getRankValues(row), (rankValue, seriesIndex) => {
|
|
1161
1180
|
var _a;
|
|
@@ -1181,8 +1200,8 @@ const _sfc_main = defineComponent({
|
|
|
1181
1200
|
])) : createCommentVNode("", true),
|
|
1182
1201
|
createElementVNode("span", {
|
|
1183
1202
|
class: "srk-organization-name-text",
|
|
1184
|
-
title: row.user.organization ?
|
|
1185
|
-
}, toDisplayString(row.user.organization ?
|
|
1203
|
+
title: row.user.organization ? resolveDisplayText(row.user.organization) : ""
|
|
1204
|
+
}, toDisplayString(row.user.organization ? resolveDisplayText(row.user.organization) : ""), 9, _hoisted_13)
|
|
1186
1205
|
])
|
|
1187
1206
|
], 2)) : createCommentVNode("", true),
|
|
1188
1207
|
renderSlot(_ctx.$slots, "user-cell", mergeProps({ ref_for: true }, {
|
|
@@ -1194,6 +1213,7 @@ const _sfc_main = defineComponent({
|
|
|
1194
1213
|
theme: resolvedTheme.value,
|
|
1195
1214
|
hideOrganization: __props.splitOrganization,
|
|
1196
1215
|
hideAvatar: showAvatarInOrganization.value,
|
|
1216
|
+
languages: __props.languages,
|
|
1197
1217
|
onClick: (event) => emitUserClick(row, rowIndex, event)
|
|
1198
1218
|
}), () => [
|
|
1199
1219
|
createVNode(_sfc_main$1, {
|
|
@@ -1206,8 +1226,9 @@ const _sfc_main = defineComponent({
|
|
|
1206
1226
|
"format-srk-asset-url": formatAssetUrl,
|
|
1207
1227
|
"on-user-click": emitUserClick,
|
|
1208
1228
|
"hide-organization": __props.splitOrganization,
|
|
1209
|
-
"hide-avatar": showAvatarInOrganization.value
|
|
1210
|
-
|
|
1229
|
+
"hide-avatar": showAvatarInOrganization.value,
|
|
1230
|
+
languages: __props.languages
|
|
1231
|
+
}, null, 8, ["user", "row", "row-index", "ranklist", "markers", "theme", "hide-organization", "hide-avatar", "languages"])
|
|
1211
1232
|
]),
|
|
1212
1233
|
createElementVNode("td", _hoisted_14, toDisplayString(row.score.value), 1),
|
|
1213
1234
|
showTimeColumn.value ? (openBlock(), createElementBlock("td", _hoisted_15, toDisplayString(row.score.time ? unref(formatTimeDuration)(row.score.time, "min", Math.floor) : "-"), 1)) : createCommentVNode("", true),
|
|
@@ -1228,6 +1249,7 @@ const _sfc_main = defineComponent({
|
|
|
1228
1249
|
statusCellPreset: __props.statusCellPreset,
|
|
1229
1250
|
statusColorAsText: __props.statusColorAsText,
|
|
1230
1251
|
emptyStatusPlaceholder: __props.emptyStatusPlaceholder,
|
|
1252
|
+
languages: __props.languages,
|
|
1231
1253
|
onClick: (event) => emitSolutionClick(row, rowIndex, status, problemIndex, event)
|
|
1232
1254
|
}), () => [
|
|
1233
1255
|
createVNode(_sfc_main$2, {
|
|
@@ -1241,8 +1263,9 @@ const _sfc_main = defineComponent({
|
|
|
1241
1263
|
"on-solution-click": emitSolutionClick,
|
|
1242
1264
|
"status-cell-preset": __props.statusCellPreset,
|
|
1243
1265
|
"status-color-as-text": __props.statusColorAsText,
|
|
1244
|
-
"empty-status-placeholder": __props.emptyStatusPlaceholder
|
|
1245
|
-
|
|
1266
|
+
"empty-status-placeholder": __props.emptyStatusPlaceholder,
|
|
1267
|
+
languages: __props.languages
|
|
1268
|
+
}, null, 8, ["status", "problem", "problem-index", "user", "row", "row-index", "ranklist", "status-cell-preset", "status-color-as-text", "empty-status-placeholder", "languages"])
|
|
1246
1269
|
]);
|
|
1247
1270
|
}), 128)),
|
|
1248
1271
|
__props.showDirtColumn ? (openBlock(), createElementBlock("td", _hoisted_16, toDisplayString(unref(calculateDirtPercentage)(row)), 1)) : createCommentVNode("", true),
|
|
@@ -1293,7 +1316,7 @@ const _sfc_main = defineComponent({
|
|
|
1293
1316
|
}, null, 8, _hoisted_26),
|
|
1294
1317
|
(openBlock(true), createElementBlock(Fragment, null, renderList(__props.data.problems, (problem, problemIndex) => {
|
|
1295
1318
|
return openBlock(), createElementBlock("td", {
|
|
1296
|
-
key: problem.alias ||
|
|
1319
|
+
key: problem.alias || resolveDisplayText(problem.title) || problemIndex,
|
|
1297
1320
|
class: "srk-problem-statistics-footer-cell srk-problem-statistics-footer-problem-header srk-problem-header srk--text-center srk--nowrap",
|
|
1298
1321
|
style: normalizeStyle({ backgroundImage: unref(getProblemHeaderBackgroundImage)(problem.style, resolvedTheme.value, 0) })
|
|
1299
1322
|
}, [
|
|
@@ -45,6 +45,10 @@ declare const _sfc_main: import("vue").DefineComponent<import("vue").ExtractProp
|
|
|
45
45
|
type: ObjectConstructor;
|
|
46
46
|
required: false;
|
|
47
47
|
};
|
|
48
|
+
languages: {
|
|
49
|
+
type: ArrayConstructor;
|
|
50
|
+
required: false;
|
|
51
|
+
};
|
|
48
52
|
}>, {
|
|
49
53
|
props: any;
|
|
50
54
|
emit: (event: "close" | "update:open", ...args: any[]) => void;
|
|
@@ -332,6 +336,10 @@ declare const _sfc_main: import("vue").DefineComponent<import("vue").ExtractProp
|
|
|
332
336
|
type: ObjectConstructor;
|
|
333
337
|
required: false;
|
|
334
338
|
};
|
|
339
|
+
languages: {
|
|
340
|
+
type: ArrayConstructor;
|
|
341
|
+
required: false;
|
|
342
|
+
};
|
|
335
343
|
}>> & Readonly<{
|
|
336
344
|
onClose?: ((...args: any[]) => any) | undefined;
|
|
337
345
|
"onUpdate:open"?: ((...args: any[]) => any) | undefined;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type * as srk from '@algoux/standard-ranklist';
|
|
2
|
+
import { resolveText } from '@algoux/standard-ranklist-utils';
|
|
2
3
|
declare const _sfc_main: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
|
|
3
4
|
open: {
|
|
4
5
|
type: BooleanConstructor;
|
|
@@ -46,6 +47,10 @@ declare const _sfc_main: import("vue").DefineComponent<import("vue").ExtractProp
|
|
|
46
47
|
type: FunctionConstructor;
|
|
47
48
|
required: false;
|
|
48
49
|
};
|
|
50
|
+
languages: {
|
|
51
|
+
type: ArrayConstructor;
|
|
52
|
+
required: false;
|
|
53
|
+
};
|
|
49
54
|
}>, {
|
|
50
55
|
props: any;
|
|
51
56
|
emit: (event: "close" | "update:open", ...args: any[]) => void;
|
|
@@ -100,7 +105,8 @@ declare const _sfc_main: import("vue").DefineComponent<import("vue").ExtractProp
|
|
|
100
105
|
} | null>;
|
|
101
106
|
resolvedMarkers: import("vue").ComputedRef<any>;
|
|
102
107
|
formatAssetUrl: (url: string, field: string) => string;
|
|
103
|
-
|
|
108
|
+
resolveDisplayText: (text: Parameters<typeof resolveText>[0]) => any;
|
|
109
|
+
formatMemberName: (member: srk.ExternalUser) => string;
|
|
104
110
|
Modal: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
|
|
105
111
|
open: {
|
|
106
112
|
type: BooleanConstructor;
|
|
@@ -268,6 +274,10 @@ declare const _sfc_main: import("vue").DefineComponent<import("vue").ExtractProp
|
|
|
268
274
|
type: FunctionConstructor;
|
|
269
275
|
required: false;
|
|
270
276
|
};
|
|
277
|
+
languages: {
|
|
278
|
+
type: ArrayConstructor;
|
|
279
|
+
required: false;
|
|
280
|
+
};
|
|
271
281
|
}>> & Readonly<{
|
|
272
282
|
onClose?: ((...args: any[]) => any) | undefined;
|
|
273
283
|
"onUpdate:open"?: ((...args: any[]) => any) | undefined;
|
|
@@ -12,6 +12,10 @@ declare const _sfc_main: import("vue").DefineComponent<import("vue").ExtractProp
|
|
|
12
12
|
required: false;
|
|
13
13
|
default: any;
|
|
14
14
|
};
|
|
15
|
+
languages: {
|
|
16
|
+
type: ArrayConstructor;
|
|
17
|
+
required: false;
|
|
18
|
+
};
|
|
15
19
|
}>, {
|
|
16
20
|
props: any;
|
|
17
21
|
alias: import("vue").ComputedRef<any>;
|
|
@@ -32,6 +36,10 @@ declare const _sfc_main: import("vue").DefineComponent<import("vue").ExtractProp
|
|
|
32
36
|
required: false;
|
|
33
37
|
default: any;
|
|
34
38
|
};
|
|
39
|
+
languages: {
|
|
40
|
+
type: ArrayConstructor;
|
|
41
|
+
required: false;
|
|
42
|
+
};
|
|
35
43
|
}>> & Readonly<{}>, {
|
|
36
44
|
theme: string;
|
|
37
45
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
@@ -46,6 +46,10 @@ declare const _sfc_main: import("vue").DefineComponent<import("vue").ExtractProp
|
|
|
46
46
|
required: false;
|
|
47
47
|
default: null;
|
|
48
48
|
};
|
|
49
|
+
languages: {
|
|
50
|
+
type: ArrayConstructor;
|
|
51
|
+
required: false;
|
|
52
|
+
};
|
|
49
53
|
}>, {
|
|
50
54
|
props: any;
|
|
51
55
|
fbStar: string;
|
|
@@ -133,6 +137,10 @@ declare const _sfc_main: import("vue").DefineComponent<import("vue").ExtractProp
|
|
|
133
137
|
required: false;
|
|
134
138
|
default: null;
|
|
135
139
|
};
|
|
140
|
+
languages: {
|
|
141
|
+
type: ArrayConstructor;
|
|
142
|
+
required: false;
|
|
143
|
+
};
|
|
136
144
|
}>> & Readonly<{}>, {
|
|
137
145
|
statusCellPreset: string;
|
|
138
146
|
statusColorAsText: boolean;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { resolveText } from '@algoux/standard-ranklist-utils';
|
|
1
2
|
declare const _sfc_main: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
|
|
2
3
|
user: {
|
|
3
4
|
type: null;
|
|
@@ -43,13 +44,17 @@ declare const _sfc_main: import("vue").DefineComponent<import("vue").ExtractProp
|
|
|
43
44
|
required: false;
|
|
44
45
|
default: boolean;
|
|
45
46
|
};
|
|
47
|
+
languages: {
|
|
48
|
+
type: ArrayConstructor;
|
|
49
|
+
required: false;
|
|
50
|
+
};
|
|
46
51
|
}>, {
|
|
47
52
|
props: any;
|
|
48
53
|
name: import("vue").ComputedRef<any>;
|
|
49
54
|
userMarkers: import("vue").ComputedRef<any>;
|
|
50
55
|
resolvedMarkers: import("vue").ComputedRef<any>;
|
|
56
|
+
resolveDisplayText: (text: Parameters<typeof resolveText>[0]) => any;
|
|
51
57
|
emitUserClick: (event: MouseEvent) => void;
|
|
52
|
-
readonly resolveText: any;
|
|
53
58
|
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
|
54
59
|
user: {
|
|
55
60
|
type: null;
|
|
@@ -95,6 +100,10 @@ declare const _sfc_main: import("vue").DefineComponent<import("vue").ExtractProp
|
|
|
95
100
|
required: false;
|
|
96
101
|
default: boolean;
|
|
97
102
|
};
|
|
103
|
+
languages: {
|
|
104
|
+
type: ArrayConstructor;
|
|
105
|
+
required: false;
|
|
106
|
+
};
|
|
98
107
|
}>> & Readonly<{}>, {
|
|
99
108
|
theme: string;
|
|
100
109
|
markers: unknown[];
|
package/dist/types.d.ts
CHANGED
|
@@ -19,12 +19,14 @@ export interface RanklistProps {
|
|
|
19
19
|
showSEColumn?: boolean;
|
|
20
20
|
emptyStatusPlaceholder?: string | null;
|
|
21
21
|
userAvatarPlacement?: RanklistUserAvatarPlacement;
|
|
22
|
+
languages?: readonly string[];
|
|
22
23
|
}
|
|
23
24
|
export interface ProblemHeaderCellSlotProps {
|
|
24
25
|
problem: srk.Problem;
|
|
25
26
|
problemIndex: number;
|
|
26
27
|
index: number;
|
|
27
28
|
theme?: EnumTheme;
|
|
29
|
+
languages?: readonly string[];
|
|
28
30
|
}
|
|
29
31
|
export interface UserCellSlotProps {
|
|
30
32
|
user: srk.User;
|
|
@@ -35,6 +37,7 @@ export interface UserCellSlotProps {
|
|
|
35
37
|
theme?: EnumTheme;
|
|
36
38
|
hideOrganization?: boolean;
|
|
37
39
|
hideAvatar?: boolean;
|
|
40
|
+
languages?: readonly string[];
|
|
38
41
|
onClick: (event?: MouseEvent) => void;
|
|
39
42
|
}
|
|
40
43
|
export interface StatusCellSlotProps {
|
|
@@ -49,6 +52,7 @@ export interface StatusCellSlotProps {
|
|
|
49
52
|
statusCellPreset?: RanklistStatusCellPreset;
|
|
50
53
|
statusColorAsText?: boolean;
|
|
51
54
|
emptyStatusPlaceholder?: string | null;
|
|
55
|
+
languages?: readonly string[];
|
|
52
56
|
onClick: (event?: MouseEvent) => void;
|
|
53
57
|
}
|
|
54
58
|
export interface ProgressBarProps {
|
|
@@ -74,6 +78,7 @@ export interface DefaultUserModalProps extends Pick<ModalProps, 'open' | 'rootCl
|
|
|
74
78
|
title?: string;
|
|
75
79
|
width?: number;
|
|
76
80
|
formatSrkAssetUrl?: (url: string, field: string) => string;
|
|
81
|
+
languages?: readonly string[];
|
|
77
82
|
}
|
|
78
83
|
export interface DefaultSolutionModalProps extends Pick<ModalProps, 'open' | 'rootClassName' | 'wrapClassName' | 'style'> {
|
|
79
84
|
user?: srk.User | null;
|
|
@@ -82,6 +87,7 @@ export interface DefaultSolutionModalProps extends Pick<ModalProps, 'open' | 'ro
|
|
|
82
87
|
solutions: srk.Solution[];
|
|
83
88
|
title?: string;
|
|
84
89
|
width?: number;
|
|
90
|
+
languages?: readonly string[];
|
|
85
91
|
}
|
|
86
92
|
export declare type RanklistEvents = {
|
|
87
93
|
userClick: UserClickPayload;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@algoux/standard-ranklist-renderer-component-vue",
|
|
3
|
-
"version": "0.6.
|
|
3
|
+
"version": "0.6.3",
|
|
4
4
|
"description": "Vue components for Standard Ranklist Renderer Component",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"homepage": "https://github.com/algoux/standard-ranklist-renderer-component",
|
|
@@ -28,9 +28,9 @@
|
|
|
28
28
|
"registry": "https://registry.npmjs.org/"
|
|
29
29
|
},
|
|
30
30
|
"dependencies": {
|
|
31
|
-
"@algoux/standard-ranklist-utils": "^0.
|
|
32
|
-
"@algoux/standard-ranklist-renderer-component-
|
|
33
|
-
"@algoux/standard-ranklist-renderer-component-
|
|
31
|
+
"@algoux/standard-ranklist-utils": "^0.3.1",
|
|
32
|
+
"@algoux/standard-ranklist-renderer-component-styles": "0.6.1",
|
|
33
|
+
"@algoux/standard-ranklist-renderer-component-core": "0.6.2"
|
|
34
34
|
},
|
|
35
35
|
"peerDependencies": {
|
|
36
36
|
"@algoux/standard-ranklist": "*",
|