diff --git a/dist/assets/index-DoB8eiys.css b/dist/assets/index-BlFsLzpe.css similarity index 68% rename from dist/assets/index-DoB8eiys.css rename to dist/assets/index-BlFsLzpe.css index 6828a11..7a9765a 100644 --- a/dist/assets/index-DoB8eiys.css +++ b/dist/assets/index-BlFsLzpe.css @@ -1 +1 @@ -:root{--vt-c-white:#fff;--vt-c-white-soft:#f8f8f8;--vt-c-white-mute:#f2f2f2;--vt-c-black:#181818;--vt-c-black-soft:#222;--vt-c-black-mute:#282828;--vt-c-indigo:#2c3e50;--vt-c-divider-light-1:#3c3c3c4a;--vt-c-divider-light-2:#3c3c3c1f;--vt-c-divider-dark-1:#545454a6;--vt-c-divider-dark-2:#5454547a;--vt-c-text-light-1:var(--vt-c-indigo);--vt-c-text-light-2:#3c3c3ca8;--vt-c-text-dark-1:var(--vt-c-white);--vt-c-text-dark-2:#ebebeba3;--main-color:#22323c;--second-color:#614a16;--main-back-color:#f0f0f0;--main-back-item-color:#fefefe;--color-background:var(--vt-c-white);--color-background-soft:var(--vt-c-white-soft);--color-background-mute:var(--vt-c-white-mute);--color-border:var(--vt-c-divider-light-2);--color-border-hover:var(--vt-c-divider-light-1);--color-heading:var(--vt-c-text-light-1);--color-text:var(--vt-c-text-light-1);--section-gap:160px}@media (prefers-color-scheme:dark){:root{--color-background:var(--vt-c-black);--color-background-soft:var(--vt-c-black-soft);--color-background-mute:var(--vt-c-black-mute);--color-border:var(--vt-c-divider-dark-2);--color-border-hover:var(--vt-c-divider-dark-1);--color-heading:var(--vt-c-text-dark-1);--color-text:var(--vt-c-text-dark-2)}}*,:before,:after{box-sizing:border-box;margin:0;font-weight:400}body{min-height:100vh;color:#eee;background:var(--color-background);text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;scrollbar-width:none;background-color:#111;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;font-size:15px;line-height:1.6;transition:color .5s,background-color .5s;overflow:hidden}@font-face{font-family:font_old_typer;src:url(/assets/a_OldTyper-BsgRTrmO.ttf)}.height80{height:80vh}.content-block{margin-top:70px}.center-block-custom{scrollbar-width:none;height:calc(100vh - 150px);margin-top:70px;overflow-y:auto}.center-block-custom::-webkit-scrollbar{display:none}.width700,.width1200{margin:0 auto;padding:10px}.display-table{flex-flow:wrap;justify-content:center;display:flex}@media (width>=1024px){.center-block-custom{height:calc(100dvh - 70px);margin:70px auto 0}.width700{width:700px;margin:0 auto;padding:20px}.width1200{width:1200px;margin:0 auto;padding:20px}.center-middle-block-custom{place-items:center;display:grid}}.menu-block[data-v-5e423637]{background-color:#222;justify-content:space-between;align-items:center;width:100%;height:70px;padding:20px;display:flex;position:fixed;top:0;left:0}.menu-item-block[data-v-5e423637]{cursor:pointer;margin-left:10px;padding:5px;font-size:1.1em;display:inline-block}.menu-item-block[data-v-5e423637]:hover{color:#63e2b7;opacity:.8}.right[data-v-5e423637]{margin-left:auto}.active[data-v-5e423637]{color:#63e2b7}@media (width>=1024px){.burger-button[data-v-5e423637]{display:none}}@media (width<1024px){.menu-buttons-block[data-v-5e423637]{background-color:#222;flex-direction:column;width:100%;padding-bottom:5px;display:flex;position:fixed;top:70px;left:0}.menu-buttons-block div[data-v-5e423637]{padding:15px 5px}.menu-buttons-block-active[data-v-5e423637]{position:relative;top:-1000px}.burger-icon[data-v-5e423637]{position:relative;top:5px}}.scenario-block[data-v-d72c95c2]{cursor:pointer;background-color:#222;border:2px solid #222;border-radius:12px;width:160px;height:300px;margin:10px;position:relative}.scenario-content-block[data-v-d72c95c2]{padding:2px 10px}.scenario-block[data-v-d72c95c2]:hover{color:#63e2b7;border:2px solid #63e2b7}.scenario-image-block[data-v-d72c95c2]{background-color:#111;border-radius:10px;height:160px}.scenario-image[data-v-d72c95c2]{background-position:50%;background-size:cover}.scenario-title[data-v-d72c95c2]{padding:5px 0}.scenario-description[data-v-d72c95c2]{color:#aaa;display:none}.status-block[data-v-d72c95c2]{position:absolute;bottom:15px;right:15px}@media (width>=1024px){.scenario-block[data-v-d72c95c2]{width:250px;height:400px}.scenario-image-block[data-v-d72c95c2]{height:250px}.scenario-content-block[data-v-d72c95c2]{padding:4px 10px}.scenario-description[data-v-d72c95c2]{color:#aaa;display:block}}.text-with-font[data-v-e13ee3bd]{color:#bfa07d;letter-spacing:2px;font-family:font_old_typer;font-size:22px;font-weight:600;line-height:20px}.doc-page[data-v-6160a426]{padding-top:30px}.doc-title[data-v-6160a426]{text-align:center;margin:0 0 24px}.doc-loading[data-v-6160a426]{justify-content:center;padding:80px 0;display:flex}.doc-error[data-v-6160a426]{max-width:600px;margin:0 auto}.paper-block[data-v-6160a426]{position:relative}.paper[data-v-6160a426]{z-index:2;color:#1d1d1d;scrollbar-width:none;background-image:url(/assets/paper_white-ZSlTzOTx.jpg);background-size:cover;border-radius:3px;max-height:60vh;padding:32px 28px;position:relative;overflow-y:auto;box-shadow:0 0 12px #000000b3}.paper[data-v-6160a426]::-webkit-scrollbar{display:none}.doc-text[data-v-6160a426]{white-space:pre-wrap;word-break:break-word;text-align:justify;font-family:font_old_typer;font-size:17px;line-height:1.65}.paper-shadow[data-v-6160a426]{background-image:url(/assets/paper_white-ZSlTzOTx.jpg);background-size:cover;border-radius:3px;width:100%;height:100%;position:absolute;top:0}.paper-shadow-left[data-v-6160a426]{filter:brightness(60%);left:0;transform:rotate(-2.2deg);box-shadow:0 0 10px #0009}.paper-shadow-right[data-v-6160a426]{filter:brightness(75%);right:0;transform:rotate(2.2deg);box-shadow:0 0 10px #0009}.docs-links[data-v-6160a426]{text-align:center;color:#999;margin-top:28px;padding-bottom:20px;font-size:15px}.docs-link[data-v-6160a426]{color:#45aa89;text-decoration:none}.docs-link[data-v-6160a426]:hover{color:#63e2b7}.game-block[data-v-45eae4d9]{background-color:#222;border-radius:10px;margin:10px 0;padding:20px}.game-block[data-v-45eae4d9]:hover{cursor:pointer;color:#63e2b7}.game-title[data-v-45eae4d9]{margin-bottom:10px;font-size:24px}.game-description[data-v-45eae4d9]{color:#aaa;margin-bottom:10px}.team-block[data-v-d657389a]{background-color:#222;border:1px solid #222;border-radius:10px;margin:10px 0}.team-block-hover[data-v-d657389a]:hover{color:#63e2b7;cursor:pointer;border:1px solid #63e2b7}.team-content-block[data-v-d657389a]{padding:20px}.team-name-block[data-v-d657389a]{font-size:20px;font-weight:600}.settings-button[data-v-d657389a]{float:right;margin-left:10px}.settings-icon[data-v-d657389a]{width:20px}.link-button[data-v-d657389a]{width:100%;margin-top:20px}.place-image-plus[data-v-d657389a]{justify-content:center;align-items:center;font-size:30px;display:flex}.name-text[data-v-d657389a]{background-color:#ffffff1a;border-radius:3px;padding:3px}.qr-block[data-v-d657389a]{background-color:#fff;padding:12px;display:inline-block}.font-text{font-family:font_old_typer}.content-text{float:right;position:relative;top:100px;right:0}@media (width>=1024px){.font-text{position:relative;left:-50px}.content-text{position:relative;top:100px;right:-50px}}.sign-card[data-v-33c96af1]{background-color:#1d1d1d}.form-label[data-v-33c96af1]{margin-top:10px}.form-button-wrapper[data-v-33c96af1]{justify-content:center;display:flex}.docs-link[data-v-33c96af1]{color:#45aa89}.docs-link[data-v-33c96af1]:hover{color:#63e2b7}@media (width>=1024px){.sign-card[data-v-33c96af1]{width:380px}}.danger-zone[data-v-e477f47a]{background-color:#222;border:1px solid #e06c7566;border-radius:10px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-top:40px;padding:20px;display:flex}.danger-zone-title[data-v-e477f47a]{color:#e06c75;font-size:17px;font-weight:600}.danger-zone-hint[data-v-e477f47a]{color:#999;margin-top:6px;font-size:14px}.delete-modal-text[data-v-e477f47a]{color:#bbb;margin:0 0 16px;line-height:1.5}.delete-modal-error[data-v-e477f47a]{color:#e06c75;margin:12px 0 0}.delete-modal-buttons[data-v-e477f47a]{justify-content:flex-end;gap:12px;margin-top:20px;display:flex}.main[data-v-dfe3093b]{position:relative}.message-cloud[data-v-dfe3093b],.message-cloud-2[data-v-dfe3093b],.message-cloud-3[data-v-dfe3093b]{background-color:bisque}.message-cloud[data-v-dfe3093b]{color:#000;margin:15px 0;padding:16px;font-family:main;font-size:18px;font-weight:900;line-height:20px;position:relative}.message-cloud[data-v-dfe3093b],.message-cloud-2[data-v-dfe3093b],.message-cloud-3[data-v-dfe3093b]{background-image:url(/assets/paper-CuqvoKhN.jpg);background-size:cover;border-radius:5px;display:flow-root;box-shadow:0 0 5px #000}.message-cloud-2[data-v-dfe3093b],.message-cloud-3[data-v-dfe3093b]{position:absolute;top:0;left:0}.message-cloud-2[data-v-dfe3093b]{filter:brightness(50%);width:100%;height:100%;transform:rotate(-3deg)}.message-cloud-3[data-v-dfe3093b]{filter:brightness(80%);width:100%;height:100%;transform:rotate(2deg)}.hr[data-v-93891f39]{border:1px dashed #eee;margin:10px 0}.place-block-hover[data-v-93891f39],.place-block[data-v-93891f39]{background-color:#222;border:1px solid #222;border-radius:10px;margin:10px 0;padding:20px}.place-block-hover[data-v-93891f39]:hover{color:#63e2b7;cursor:pointer;border:1px solid #63e2b7}.place-image-plus[data-v-93891f39]{justify-content:center;align-items:center;font-size:30px;display:flex}.show-editor-block[data-v-93891f39]{cursor:pointer}.message-content[data-v-93891f39]{white-space:pre-wrap;font-weight:500}.gray-block[data-v-93891f39]{color:#777;margin-top:5px}.application-block[data-v-93891f39]{color:#deb887;margin-right:5px}.door-block[data-v-93891f39]{color:#eee;background-color:#222;border-radius:5px;margin:10px 5px 10px 0;padding:5px 10px;display:inline-block}.door-add-block[data-v-93891f39]{color:#eee;background-color:#222;border-radius:5px;padding:10px}.key-block[data-v-93891f39]{color:gold;margin-left:10px}.lock-icon[data-v-93891f39]{position:relative;top:2px}.door-field[data-v-93891f39]{margin-top:10px}.need-keys-text[data-v-93891f39]{color:gold;margin:15px 0 0;padding:0}.slot-block[data-v-93891f39]{margin-top:10px}.plus-minus-buttons[data-v-93891f39]{text-align:center;color:#eee;border:1px solid #444;border-radius:40px;margin:0 0 10px 5px;padding:0 13px;font-size:25px}.plus-minus-buttons[data-v-93891f39]:hover{cursor:pointer;color:#63e2b7}.message-image-border[data-v-93891f39]{float:left;background-image:url(/assets/paper_white-ZSlTzOTx.jpg);background-size:cover;width:40%;max-width:200px;margin-right:15px;padding:7px;transform:rotate(-3deg);box-shadow:0 3px 15px #626262}.message-image[data-v-93891f39]{width:100%}.message-edit-image[data-v-93891f39]{width:135px;height:135px}.message-header[data-v-93891f39]{padding-right:50px;font-size:20px}.message-footer[data-v-93891f39]{color:#deb887;padding-right:50px;font-weight:400;position:relative}.message-show-header[data-v-93891f39]{padding-right:50px;font-size:20px}.collapse-icon[data-v-93891f39]{cursor:pointer;background-image:url(/assets/collapse-B6YzUtGl.png);background-position:50%;background-size:cover;width:45px;height:28px;position:absolute;top:12px;right:12px}.collapse-icon-up[data-v-93891f39]{transform:rotate(-180deg)}.show-hr[data-v-93891f39]{border:1px dashed #000;margin:10px 0}.font[data-v-93891f39]{font-family:font_old_typer;font-size:18px}.message-show-content[data-v-93891f39]{white-space:pre-wrap;font-weight:500}.message-show-footer[data-v-93891f39]{color:var(--second-color);padding-right:50px;font-weight:400;position:relative}.button-dialog[data-v-93891f39]{color:#bfa07d;cursor:pointer;background-image:url(/assets/belt-DVqk2_uL.png);background-size:cover;border-radius:5px;margin-top:10px;margin-right:10px;font-size:16px;font-weight:600;display:inline-block}.button-dialog-text[data-v-93891f39]{padding:5px 12px}.settings-block[data-v-56e050c6]{height:40px}.settings-button[data-v-56e050c6]{float:right}.settings-icon[data-v-56e050c6]{width:20px}.name-text[data-v-56e050c6]{background-color:#ffffff1a;border-radius:3px;padding:3px}.settings-header[data-v-56e050c6]{margin-top:20px}.settings-hr[data-v-56e050c6]{margin:20px 0}.places-container[data-v-56e050c6]{flex-flow:column;display:flex}.scenario-block[data-v-1a024fe4]{cursor:pointer;background-color:#222;border:2px solid #222;border-radius:12px;width:160px;height:300px;margin:10px;position:relative}.scenario-content-block[data-v-1a024fe4]{padding:2px 10px}.scenario-block[data-v-1a024fe4]:hover{color:#63e2b7;border:2px solid #63e2b7}.scenario-image-block[data-v-1a024fe4]{background-color:#111;border-radius:10px;height:160px}.scenario-image-plus[data-v-1a024fe4]{background-color:#111;justify-content:center;align-items:center;font-size:120px;display:flex}.scenario-image[data-v-1a024fe4]{background-position:50%;background-size:cover}.scenario-title[data-v-1a024fe4]{padding:5px 0}.status-block[data-v-1a024fe4]{position:absolute;bottom:15px;right:15px}@media (width>=1024px){.scenario-block[data-v-1a024fe4]{width:250px;height:400px}.scenario-image-block[data-v-1a024fe4]{height:250px}.scenario-content-block[data-v-1a024fe4]{padding:4px 10px}}.scenario-title[data-v-2c9a6669]{margin-bottom:10px;font-size:24px}.scenario-image[data-v-2c9a6669]{width:100%;max-width:400px;margin-bottom:10px}.scenario-description[data-v-2c9a6669]{color:#aaa;margin-bottom:10px}.belt-block[data-v-82aef99e]{background-color:#000;background-image:url(/assets/belt-DVqk2_uL.png);background-size:cover;height:100%;position:relative}.shadow[data-v-82aef99e]{background-color:#000;width:100%;height:10px;position:absolute}.shadow-top[data-v-82aef99e]{top:0;box-shadow:0 -5px 10px #000}.shadow-bottom[data-v-82aef99e]{bottom:0;box-shadow:0 5px 10px #000}.plate-block[data-v-35e450f5]{position:relative;box-shadow:0 0 10px #000}.metal-plate-block[data-v-35e450f5]{background-image:url(/assets/metal-BiL2PH1r.png);background-size:cover;border-radius:4px;height:100%;position:relative}.pin[data-v-35e450f5]{background-image:url(/assets/pin-CJfldk-j.png);background-size:cover;width:7px;height:7px;position:absolute}.pin-top-left[data-v-35e450f5]{top:3px;left:3px}.pin-top-right[data-v-35e450f5]{top:3px;right:3px}.pin-bottom-right[data-v-35e450f5]{bottom:3px;right:3px}.pin-bottom-left[data-v-35e450f5]{bottom:3px;left:3px}.form-custom[data-v-a21d8a4f]{color:#fff;z-index:1000;width:100%;position:fixed;bottom:0;left:0}.input-form[data-v-a21d8a4f]{z-index:1000;max-width:1920px;height:76px;margin:0 auto;position:relative}.controller-metal[data-v-a21d8a4f]{width:30px;height:calc(100% + 2px);position:absolute;top:-1px}.controller-metal-left[data-v-a21d8a4f]{left:-30px}.controller-metal-right[data-v-a21d8a4f]{right:-30px}.controller[data-v-a21d8a4f]{display:flex;position:relative}.game-input[data-v-a21d8a4f]{width:calc(100% - 175px);height:50px;position:relative;top:14px;left:15px}.game-input-run[data-v-a21d8a4f]{background-color:#0000;background-image:url(/assets/input_center-DZZtEHaZ.png);background-size:cover;border:0;width:100%;height:100%;padding-left:27px;font-family:font_old_typer;font-size:18px}.game-input-run[data-v-a21d8a4f]::placeholder{color:#333}.game-input-run[data-v-a21d8a4f]:focus{border:0;outline:none}.game-button-run-shadow[data-v-a21d8a4f]{width:150px;height:80px;position:absolute;top:-5px;right:10px;box-shadow:-5px 5px 10px #000}.game-button-run[data-v-a21d8a4f]{cursor:pointer;background-color:#0000;background-image:url(/assets/button-DdziMEJE.png);background-size:cover;border:0;width:155px;height:80px;margin:0;padding:0;font-size:1.5em;position:absolute;top:-5px;right:10px}.new-places-label[data-v-a21d8a4f],.all-places-label[data-v-a21d8a4f]{height:48px;position:absolute}.new-places-label[data-v-a21d8a4f]{width:40px;top:14px;left:85px}.all-places-label[data-v-a21d8a4f]{width:60px;top:14px;left:15px}.places-text[data-v-a21d8a4f]{color:#111;text-align:center;background-color:#d1cebd;background-image:url(/assets/paper-CuqvoKhN.jpg);background-size:cover;border:1px solid #9e9982;border-radius:7px;margin:0 1px;font-family:font_old_typer;font-size:1.4em;display:inline-block;box-shadow:0 -2px 5px #000}.places-text-number[data-v-a21d8a4f]{width:18px}.counters-block[data-v-a21d8a4f]{margin:20px 10px 20px 5px;position:absolute;top:-40px;left:23px}.counter-block[data-v-a21d8a4f]{margin:5px;display:inline-block}.icon-for-counter[data-v-a21d8a4f]{margin:0 4px;position:relative;top:3px}@media (width>=1025px){.center-block-700[data-v-a21d8a4f]{width:700px;margin:0 auto}}.bottom-margin[data-v-374fdb93]{height:calc(100dvh - 146px)}.smooth-scroll[data-v-374fdb93]{scroll-behavior:smooth}.edit-panel[data-v-374fdb93]{background-color:#222;border-radius:10px;margin:30px 0;padding:20px}.qr-main-block[data-v-374fdb93]{justify-content:center;align-items:center;display:flex}.qr-main-block-text[data-v-374fdb93]{text-align:left;margin:10px 0}.qr-block[data-v-374fdb93]{background-color:#fff;padding:12px;display:inline-block}@media (width>=1024px){.bottom-margin[data-v-374fdb93]{height:calc(100dvh - 146px)}}.user-block[data-v-4af0a140]{background-color:#222;border-radius:10px;margin:0 0 20px;padding:20px}.user-field[data-v-4af0a140]{margin:10px}.roles-buttons-block[data-v-4af0a140]{margin-top:20px} +:root{--vt-c-white:#fff;--vt-c-white-soft:#f8f8f8;--vt-c-white-mute:#f2f2f2;--vt-c-black:#181818;--vt-c-black-soft:#222;--vt-c-black-mute:#282828;--vt-c-indigo:#2c3e50;--vt-c-divider-light-1:#3c3c3c4a;--vt-c-divider-light-2:#3c3c3c1f;--vt-c-divider-dark-1:#545454a6;--vt-c-divider-dark-2:#5454547a;--vt-c-text-light-1:var(--vt-c-indigo);--vt-c-text-light-2:#3c3c3ca8;--vt-c-text-dark-1:var(--vt-c-white);--vt-c-text-dark-2:#ebebeba3;--main-color:#22323c;--second-color:#614a16;--main-back-color:#f0f0f0;--main-back-item-color:#fefefe;--color-background:var(--vt-c-white);--color-background-soft:var(--vt-c-white-soft);--color-background-mute:var(--vt-c-white-mute);--color-border:var(--vt-c-divider-light-2);--color-border-hover:var(--vt-c-divider-light-1);--color-heading:var(--vt-c-text-light-1);--color-text:var(--vt-c-text-light-1);--section-gap:160px}@media (prefers-color-scheme:dark){:root{--color-background:var(--vt-c-black);--color-background-soft:var(--vt-c-black-soft);--color-background-mute:var(--vt-c-black-mute);--color-border:var(--vt-c-divider-dark-2);--color-border-hover:var(--vt-c-divider-dark-1);--color-heading:var(--vt-c-text-dark-1);--color-text:var(--vt-c-text-dark-2)}}*,:before,:after{box-sizing:border-box;margin:0;font-weight:400}body{min-height:100vh;color:#eee;background:var(--color-background);text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;scrollbar-width:none;background-color:#111;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;font-size:15px;line-height:1.6;transition:color .5s,background-color .5s;overflow:hidden}@font-face{font-family:font_old_typer;src:url(/assets/a_OldTyper-BsgRTrmO.ttf)}.height80{height:80vh}.content-block{margin-top:70px}.center-block-custom{scrollbar-width:none;height:calc(100vh - 150px);margin-top:70px;overflow-y:auto}.center-block-custom::-webkit-scrollbar{display:none}.width700,.width1200{margin:0 auto;padding:10px}.display-table{flex-flow:wrap;justify-content:center;display:flex}@media (width>=1024px){.center-block-custom{height:calc(100dvh - 70px);margin:70px auto 0}.width700{width:700px;margin:0 auto;padding:20px}.width1200{width:1200px;margin:0 auto;padding:20px}.center-middle-block-custom{place-items:center;display:grid}}.menu-block[data-v-5e423637]{background-color:#222;justify-content:space-between;align-items:center;width:100%;height:70px;padding:20px;display:flex;position:fixed;top:0;left:0}.menu-item-block[data-v-5e423637]{cursor:pointer;margin-left:10px;padding:5px;font-size:1.1em;display:inline-block}.menu-item-block[data-v-5e423637]:hover{color:#63e2b7;opacity:.8}.right[data-v-5e423637]{margin-left:auto}.active[data-v-5e423637]{color:#63e2b7}@media (width>=1024px){.burger-button[data-v-5e423637]{display:none}}@media (width<1024px){.menu-buttons-block[data-v-5e423637]{background-color:#222;flex-direction:column;width:100%;padding-bottom:5px;display:flex;position:fixed;top:70px;left:0}.menu-buttons-block div[data-v-5e423637]{padding:15px 5px}.menu-buttons-block-active[data-v-5e423637]{position:relative;top:-1000px}.burger-icon[data-v-5e423637]{position:relative;top:5px}}.scenario-block[data-v-d72c95c2]{cursor:pointer;background-color:#222;border:2px solid #222;border-radius:12px;width:160px;height:300px;margin:10px;position:relative}.scenario-content-block[data-v-d72c95c2]{padding:2px 10px}.scenario-block[data-v-d72c95c2]:hover{color:#63e2b7;border:2px solid #63e2b7}.scenario-image-block[data-v-d72c95c2]{background-color:#111;border-radius:10px;height:160px}.scenario-image[data-v-d72c95c2]{background-position:50%;background-size:cover}.scenario-title[data-v-d72c95c2]{padding:5px 0}.scenario-description[data-v-d72c95c2]{color:#aaa;display:none}.status-block[data-v-d72c95c2]{position:absolute;bottom:15px;right:15px}@media (width>=1024px){.scenario-block[data-v-d72c95c2]{width:250px;height:400px}.scenario-image-block[data-v-d72c95c2]{height:250px}.scenario-content-block[data-v-d72c95c2]{padding:4px 10px}.scenario-description[data-v-d72c95c2]{color:#aaa;display:block}}.text-with-font[data-v-e13ee3bd]{color:#bfa07d;letter-spacing:2px;font-family:font_old_typer;font-size:22px;font-weight:600;line-height:20px}.doc-page[data-v-6160a426]{padding-top:30px}.doc-title[data-v-6160a426]{text-align:center;margin:0 0 24px}.doc-loading[data-v-6160a426]{justify-content:center;padding:80px 0;display:flex}.doc-error[data-v-6160a426]{max-width:600px;margin:0 auto}.paper-block[data-v-6160a426]{position:relative}.paper[data-v-6160a426]{z-index:2;color:#1d1d1d;scrollbar-width:none;background-image:url(/assets/paper_white-ZSlTzOTx.jpg);background-size:cover;border-radius:3px;max-height:60vh;padding:32px 28px;position:relative;overflow-y:auto;box-shadow:0 0 12px #000000b3}.paper[data-v-6160a426]::-webkit-scrollbar{display:none}.doc-text[data-v-6160a426]{white-space:pre-wrap;word-break:break-word;text-align:justify;font-family:font_old_typer;font-size:17px;line-height:1.65}.paper-shadow[data-v-6160a426]{background-image:url(/assets/paper_white-ZSlTzOTx.jpg);background-size:cover;border-radius:3px;width:100%;height:100%;position:absolute;top:0}.paper-shadow-left[data-v-6160a426]{filter:brightness(60%);left:0;transform:rotate(-2.2deg);box-shadow:0 0 10px #0009}.paper-shadow-right[data-v-6160a426]{filter:brightness(75%);right:0;transform:rotate(2.2deg);box-shadow:0 0 10px #0009}.docs-links[data-v-6160a426]{text-align:center;color:#999;margin-top:28px;padding-bottom:20px;font-size:15px}.docs-link[data-v-6160a426]{color:#45aa89;text-decoration:none}.docs-link[data-v-6160a426]:hover{color:#63e2b7}.game-block[data-v-45eae4d9]{background-color:#222;border-radius:10px;margin:10px 0;padding:20px}.game-block[data-v-45eae4d9]:hover{cursor:pointer;color:#63e2b7}.game-title[data-v-45eae4d9]{margin-bottom:10px;font-size:24px}.game-description[data-v-45eae4d9]{color:#aaa;margin-bottom:10px}.team-block[data-v-d657389a]{background-color:#222;border:1px solid #222;border-radius:10px;margin:10px 0}.team-block-hover[data-v-d657389a]:hover{color:#63e2b7;cursor:pointer;border:1px solid #63e2b7}.team-content-block[data-v-d657389a]{padding:20px}.team-name-block[data-v-d657389a]{font-size:20px;font-weight:600}.settings-button[data-v-d657389a]{float:right;margin-left:10px}.settings-icon[data-v-d657389a]{width:20px}.link-button[data-v-d657389a]{width:100%;margin-top:20px}.place-image-plus[data-v-d657389a]{justify-content:center;align-items:center;font-size:30px;display:flex}.name-text[data-v-d657389a]{background-color:#ffffff1a;border-radius:3px;padding:3px}.qr-block[data-v-d657389a]{background-color:#fff;padding:12px;display:inline-block}.font-text{font-family:font_old_typer}.content-text{float:right;position:relative;top:100px;right:0}@media (width>=1024px){.font-text{position:relative;left:-50px}.content-text{position:relative;top:100px;right:-50px}}.sign-card[data-v-33c96af1]{background-color:#1d1d1d}.form-label[data-v-33c96af1]{margin-top:10px}.form-button-wrapper[data-v-33c96af1]{justify-content:center;display:flex}.docs-link[data-v-33c96af1]{color:#45aa89}.docs-link[data-v-33c96af1]:hover{color:#63e2b7}@media (width>=1024px){.sign-card[data-v-33c96af1]{width:380px}}.danger-zone[data-v-e477f47a]{background-color:#222;border:1px solid #e06c7566;border-radius:10px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-top:40px;padding:20px;display:flex}.danger-zone-title[data-v-e477f47a]{color:#e06c75;font-size:17px;font-weight:600}.danger-zone-hint[data-v-e477f47a]{color:#999;margin-top:6px;font-size:14px}.delete-modal-text[data-v-e477f47a]{color:#bbb;margin:0 0 16px;line-height:1.5}.delete-modal-error[data-v-e477f47a]{color:#e06c75;margin:12px 0 0}.delete-modal-buttons[data-v-e477f47a]{justify-content:flex-end;gap:12px;margin-top:20px;display:flex}.main[data-v-dfe3093b]{position:relative}.message-cloud[data-v-dfe3093b],.message-cloud-2[data-v-dfe3093b],.message-cloud-3[data-v-dfe3093b]{background-color:bisque}.message-cloud[data-v-dfe3093b]{color:#000;margin:15px 0;padding:16px;font-family:main;font-size:18px;font-weight:900;line-height:20px;position:relative}.message-cloud[data-v-dfe3093b],.message-cloud-2[data-v-dfe3093b],.message-cloud-3[data-v-dfe3093b]{background-image:url(/assets/paper-CuqvoKhN.jpg);background-size:cover;border-radius:5px;display:flow-root;box-shadow:0 0 5px #000}.message-cloud-2[data-v-dfe3093b],.message-cloud-3[data-v-dfe3093b]{position:absolute;top:0;left:0}.message-cloud-2[data-v-dfe3093b]{filter:brightness(50%);width:100%;height:100%;transform:rotate(-3deg)}.message-cloud-3[data-v-dfe3093b]{filter:brightness(80%);width:100%;height:100%;transform:rotate(2deg)}.hr[data-v-93891f39]{border:1px dashed #eee;margin:10px 0}.place-block-hover[data-v-93891f39],.place-block[data-v-93891f39]{background-color:#222;border:1px solid #222;border-radius:10px;margin:10px 0;padding:20px}.place-block-hover[data-v-93891f39]:hover{color:#63e2b7;cursor:pointer;border:1px solid #63e2b7}.place-image-plus[data-v-93891f39]{justify-content:center;align-items:center;font-size:30px;display:flex}.show-editor-block[data-v-93891f39]{cursor:pointer}.message-content[data-v-93891f39]{white-space:pre-wrap;font-weight:500}.gray-block[data-v-93891f39]{color:#777;margin-top:5px}.application-block[data-v-93891f39]{color:#deb887;margin-right:5px}.door-block[data-v-93891f39]{color:#eee;background-color:#222;border-radius:5px;margin:10px 5px 10px 0;padding:5px 10px;display:inline-block}.door-add-block[data-v-93891f39]{color:#eee;background-color:#222;border-radius:5px;padding:10px}.key-block[data-v-93891f39]{color:gold;margin-left:10px}.lock-icon[data-v-93891f39]{position:relative;top:2px}.door-field[data-v-93891f39]{margin-top:10px}.need-keys-text[data-v-93891f39]{color:gold;margin:15px 0 0;padding:0}.slot-block[data-v-93891f39]{margin-top:10px}.plus-minus-buttons[data-v-93891f39]{text-align:center;color:#eee;border:1px solid #444;border-radius:40px;margin:0 0 10px 5px;padding:0 13px;font-size:25px}.plus-minus-buttons[data-v-93891f39]:hover{cursor:pointer;color:#63e2b7}.message-image-border[data-v-93891f39]{float:left;background-image:url(/assets/paper_white-ZSlTzOTx.jpg);background-size:cover;width:40%;max-width:200px;margin-right:15px;padding:7px;transform:rotate(-3deg);box-shadow:0 3px 15px #626262}.message-image[data-v-93891f39]{width:100%}.message-edit-image[data-v-93891f39]{width:135px;height:135px}.message-header[data-v-93891f39]{padding-right:50px;font-size:20px}.message-footer[data-v-93891f39]{color:#deb887;padding-right:50px;font-weight:400;position:relative}.message-show-header[data-v-93891f39]{padding-right:50px;font-size:20px}.collapse-icon[data-v-93891f39]{cursor:pointer;background-image:url(/assets/collapse-B6YzUtGl.png);background-position:50%;background-size:cover;width:45px;height:28px;position:absolute;top:12px;right:12px}.collapse-icon-up[data-v-93891f39]{transform:rotate(-180deg)}.show-hr[data-v-93891f39]{border:1px dashed #000;margin:10px 0}.font[data-v-93891f39]{font-family:font_old_typer;font-size:18px}.message-show-content[data-v-93891f39]{white-space:pre-wrap;font-weight:500}.message-show-footer[data-v-93891f39]{color:var(--second-color);padding-right:50px;font-weight:400;position:relative}.button-dialog[data-v-93891f39]{color:#bfa07d;cursor:pointer;background-image:url(/assets/belt-DVqk2_uL.png);background-size:cover;border-radius:5px;margin-top:10px;margin-right:10px;font-size:16px;font-weight:600;display:inline-block}.button-dialog-text[data-v-93891f39]{padding:5px 12px}.settings-block[data-v-66ee2261]{height:40px}.settings-button[data-v-66ee2261]{float:right}.settings-icon[data-v-66ee2261]{width:20px}.name-text[data-v-66ee2261]{background-color:#ffffff1a;border-radius:3px;padding:3px}.settings-header[data-v-66ee2261]{margin-top:20px}.settings-hint[data-v-66ee2261]{color:#999;margin-bottom:10px}.settings-hr[data-v-66ee2261]{margin:20px 0}.places-container[data-v-66ee2261]{flex-flow:column;display:flex}.scenario-block[data-v-57b81e7c]{cursor:pointer;background-color:#222;border:2px solid #222;border-radius:12px;width:160px;height:300px;margin:10px;position:relative}.scenario-content-block[data-v-57b81e7c]{padding:2px 10px}.scenario-block[data-v-57b81e7c]:hover{color:#63e2b7;border:2px solid #63e2b7}.scenario-image-block[data-v-57b81e7c]{background-color:#111;border-radius:10px;height:160px}.scenario-image-plus[data-v-57b81e7c]{background-color:#111;justify-content:center;align-items:center;font-size:120px;display:flex}.import-icon svg[data-v-57b81e7c]{width:100px;height:100px}.import-hint[data-v-57b81e7c]{color:#aaa;margin-bottom:16px}.scenario-image[data-v-57b81e7c]{background-position:50%;background-size:cover}.scenario-title[data-v-57b81e7c]{padding:5px 0}.status-block[data-v-57b81e7c]{position:absolute;bottom:15px;right:15px}@media (width>=1024px){.scenario-block[data-v-57b81e7c]{width:250px;height:400px}.scenario-image-block[data-v-57b81e7c]{height:250px}.scenario-content-block[data-v-57b81e7c]{padding:4px 10px}}.scenario-title[data-v-2c9a6669]{margin-bottom:10px;font-size:24px}.scenario-image[data-v-2c9a6669]{width:100%;max-width:400px;margin-bottom:10px}.scenario-description[data-v-2c9a6669]{color:#aaa;margin-bottom:10px}.belt-block[data-v-82aef99e]{background-color:#000;background-image:url(/assets/belt-DVqk2_uL.png);background-size:cover;height:100%;position:relative}.shadow[data-v-82aef99e]{background-color:#000;width:100%;height:10px;position:absolute}.shadow-top[data-v-82aef99e]{top:0;box-shadow:0 -5px 10px #000}.shadow-bottom[data-v-82aef99e]{bottom:0;box-shadow:0 5px 10px #000}.plate-block[data-v-35e450f5]{position:relative;box-shadow:0 0 10px #000}.metal-plate-block[data-v-35e450f5]{background-image:url(/assets/metal-BiL2PH1r.png);background-size:cover;border-radius:4px;height:100%;position:relative}.pin[data-v-35e450f5]{background-image:url(/assets/pin-CJfldk-j.png);background-size:cover;width:7px;height:7px;position:absolute}.pin-top-left[data-v-35e450f5]{top:3px;left:3px}.pin-top-right[data-v-35e450f5]{top:3px;right:3px}.pin-bottom-right[data-v-35e450f5]{bottom:3px;right:3px}.pin-bottom-left[data-v-35e450f5]{bottom:3px;left:3px}.form-custom[data-v-a21d8a4f]{color:#fff;z-index:1000;width:100%;position:fixed;bottom:0;left:0}.input-form[data-v-a21d8a4f]{z-index:1000;max-width:1920px;height:76px;margin:0 auto;position:relative}.controller-metal[data-v-a21d8a4f]{width:30px;height:calc(100% + 2px);position:absolute;top:-1px}.controller-metal-left[data-v-a21d8a4f]{left:-30px}.controller-metal-right[data-v-a21d8a4f]{right:-30px}.controller[data-v-a21d8a4f]{display:flex;position:relative}.game-input[data-v-a21d8a4f]{width:calc(100% - 175px);height:50px;position:relative;top:14px;left:15px}.game-input-run[data-v-a21d8a4f]{background-color:#0000;background-image:url(/assets/input_center-DZZtEHaZ.png);background-size:cover;border:0;width:100%;height:100%;padding-left:27px;font-family:font_old_typer;font-size:18px}.game-input-run[data-v-a21d8a4f]::placeholder{color:#333}.game-input-run[data-v-a21d8a4f]:focus{border:0;outline:none}.game-button-run-shadow[data-v-a21d8a4f]{width:150px;height:80px;position:absolute;top:-5px;right:10px;box-shadow:-5px 5px 10px #000}.game-button-run[data-v-a21d8a4f]{cursor:pointer;background-color:#0000;background-image:url(/assets/button-DdziMEJE.png);background-size:cover;border:0;width:155px;height:80px;margin:0;padding:0;font-size:1.5em;position:absolute;top:-5px;right:10px}.new-places-label[data-v-a21d8a4f],.all-places-label[data-v-a21d8a4f]{height:48px;position:absolute}.new-places-label[data-v-a21d8a4f]{width:40px;top:14px;left:85px}.all-places-label[data-v-a21d8a4f]{width:60px;top:14px;left:15px}.places-text[data-v-a21d8a4f]{color:#111;text-align:center;background-color:#d1cebd;background-image:url(/assets/paper-CuqvoKhN.jpg);background-size:cover;border:1px solid #9e9982;border-radius:7px;margin:0 1px;font-family:font_old_typer;font-size:1.4em;display:inline-block;box-shadow:0 -2px 5px #000}.places-text-number[data-v-a21d8a4f]{width:18px}.counters-block[data-v-a21d8a4f]{margin:20px 10px 20px 5px;position:absolute;top:-40px;left:23px}.counter-block[data-v-a21d8a4f]{margin:5px;display:inline-block}.icon-for-counter[data-v-a21d8a4f]{margin:0 4px;position:relative;top:3px}@media (width>=1025px){.center-block-700[data-v-a21d8a4f]{width:700px;margin:0 auto}}.bottom-margin[data-v-374fdb93]{height:calc(100dvh - 146px)}.smooth-scroll[data-v-374fdb93]{scroll-behavior:smooth}.edit-panel[data-v-374fdb93]{background-color:#222;border-radius:10px;margin:30px 0;padding:20px}.qr-main-block[data-v-374fdb93]{justify-content:center;align-items:center;display:flex}.qr-main-block-text[data-v-374fdb93]{text-align:left;margin:10px 0}.qr-block[data-v-374fdb93]{background-color:#fff;padding:12px;display:inline-block}@media (width>=1024px){.bottom-margin[data-v-374fdb93]{height:calc(100dvh - 146px)}}.user-block[data-v-4af0a140]{background-color:#222;border-radius:10px;margin:0 0 20px;padding:20px}.user-field[data-v-4af0a140]{margin:10px}.roles-buttons-block[data-v-4af0a140]{margin-top:20px} diff --git a/dist/assets/index-BhT0EYtM.js b/dist/assets/index-CNblC4ZU.js similarity index 88% rename from dist/assets/index-BhT0EYtM.js rename to dist/assets/index-CNblC4ZU.js index 7875d99..e2db09d 100644 --- a/dist/assets/index-BhT0EYtM.js +++ b/dist/assets/index-CNblC4ZU.js @@ -2418,7 +2418,7 @@ width: 0; height: 0; opacity: 0; - `)]),fA=P({name:`UploadDragger`,__UPLOAD_DRAGGER__:!0,setup(e,{slots:t}){let n=N(uA,null);return n||hp(`upload-dragger`,"`n-upload-dragger` must be placed inside `n-upload`."),()=>{let{mergedClsPrefixRef:{value:e},mergedDisabledRef:{value:r},maxReachedRef:{value:i}}=n;return H(`div`,{class:[`${e}-upload-dragger`,(r||i)&&`${e}-upload-dragger--disabled`]},t)}}});function pA(){return H(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 28 28`},H(`g`,{fill:`none`},H(`path`,{d:`M21.75 3A3.25 3.25 0 0 1 25 6.25v15.5A3.25 3.25 0 0 1 21.75 25H6.25A3.25 3.25 0 0 1 3 21.75V6.25A3.25 3.25 0 0 1 6.25 3h15.5zm.583 20.4l-7.807-7.68a.75.75 0 0 0-.968-.07l-.084.07l-7.808 7.68c.183.065.38.1.584.1h15.5c.204 0 .4-.035.583-.1l-7.807-7.68l7.807 7.68zM21.75 4.5H6.25A1.75 1.75 0 0 0 4.5 6.25v15.5c0 .208.036.408.103.593l7.82-7.692a2.25 2.25 0 0 1 3.026-.117l.129.117l7.82 7.692c.066-.185.102-.385.102-.593V6.25a1.75 1.75 0 0 0-1.75-1.75zm-3.25 3a2.5 2.5 0 1 1 0 5a2.5 2.5 0 0 1 0-5zm0 1.5a1 1 0 1 0 0 2a1 1 0 0 0 0-2z`,fill:`currentColor`})))}function mA(){return H(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 28 28`},H(`g`,{fill:`none`},H(`path`,{d:`M6.4 2A2.4 2.4 0 0 0 4 4.4v19.2A2.4 2.4 0 0 0 6.4 26h15.2a2.4 2.4 0 0 0 2.4-2.4V11.578c0-.729-.29-1.428-.805-1.944l-6.931-6.931A2.4 2.4 0 0 0 14.567 2H6.4zm-.9 2.4a.9.9 0 0 1 .9-.9H14V10a2 2 0 0 0 2 2h6.5v11.6a.9.9 0 0 1-.9.9H6.4a.9.9 0 0 1-.9-.9V4.4zm16.44 6.1H16a.5.5 0 0 1-.5-.5V4.06l6.44 6.44z`,fill:`currentColor`})))}var hA=P({name:`UploadProgress`,props:{show:Boolean,percentage:{type:Number,required:!0},status:{type:String,required:!0}},setup(){return{mergedTheme:N(uA).mergedThemeRef}},render(){return H(Xx,null,{default:()=>this.show?H(jk,{type:`line`,showIndicator:!1,percentage:this.percentage,status:this.status,height:2,theme:this.mergedTheme.peers.Progress,themeOverrides:this.mergedTheme.peerOverrides.Progress}):null})}}),gA=function(e,t,n,r){function i(e){return e instanceof n?e:new n(function(t){t(e)})}return new(n||=Promise)(function(n,a){function o(e){try{c(r.next(e))}catch(e){a(e)}}function s(e){try{c(r.throw(e))}catch(e){a(e)}}function c(e){e.done?n(e.value):i(e.value).then(o,s)}c((r=r.apply(e,t||[])).next())})};function _A(e){return e.includes(`image/`)}function vA(e=``){let t=e.split(`/`),n=t[t.length-1].split(/#|\?/)[0];return(/\.[^./\\]*$/.exec(n)||[``])[0]}var yA=/(webp|svg|png|gif|jpg|jpeg|jfif|bmp|dpg|ico)$/i,bA=e=>{if(e.type)return _A(e.type);let t=vA(e.name||``);if(yA.test(t))return!0;let n=e.thumbnailUrl||e.url||``,r=vA(n);return!!(/^data:image\//.test(n)||yA.test(r))};function xA(e){return gA(this,void 0,void 0,function*(){return yield new Promise(t=>{if(!e.type||!_A(e.type)){t(``);return}t(window.URL.createObjectURL(e))})})}var SA=Iu&&window.FileReader&&window.File;function CA(e){return e.isDirectory}function wA(e){return e.isFile}function TA(e,t){return gA(this,void 0,void 0,function*(){let n=[];function r(e){return gA(this,void 0,void 0,function*(){for(let i of e)if(i){if(t&&CA(i)){let e=i.createReader(),t=[],n;try{do n=yield new Promise((t,n)=>{e.readEntries(t,n)}),t=t.concat(n);while(n.length>0)}catch(e){mp(`upload`,`error happens when handling directory upload`,e)}yield r(t)}else if(wA(i))try{let e=yield new Promise((e,t)=>{i.file(e,t)});n.push({file:e,entry:i,source:`dnd`})}catch(e){mp(`upload`,`error happens when handling file upload`,e)}}})}return yield r(e),n})}function EA(e){let{id:t,name:n,percentage:r,status:i,url:a,file:o,thumbnailUrl:s,type:c,fullPath:l,batchId:u}=e;return{id:t,name:n,percentage:r??null,status:i,url:a??null,file:o??null,thumbnailUrl:s??null,type:c??null,fullPath:l??null,batchId:u??null}}function DA(e,t,n){return e=e.toLowerCase(),t=t.toLocaleLowerCase(),n=n.toLocaleLowerCase(),n.split(`,`).map(e=>e.trim()).filter(Boolean).some(n=>{if(n.startsWith(`.`)){if(e.endsWith(n))return!0}else if(n.includes(`/`)){let[e,r]=t.split(`/`),[i,a]=n.split(`/`);if((i===`*`||e&&i&&i===e)&&(a===`*`||r&&a&&a===r))return!0}else return!0;return!1})}var OA=function(e,t,n,r){function i(e){return e instanceof n?e:new n(function(t){t(e)})}return new(n||=Promise)(function(n,a){function o(e){try{c(r.next(e))}catch(e){a(e)}}function s(e){try{c(r.throw(e))}catch(e){a(e)}}function c(e){e.done?n(e.value):i(e.value).then(o,s)}c((r=r.apply(e,t||[])).next())})},kA={paddingMedium:`0 3px`,heightMedium:`24px`,iconSizeMedium:`18px`},AA=P({name:`UploadFile`,props:{clsPrefix:{type:String,required:!0},file:{type:Object,required:!0},listType:{type:String,required:!0},index:{type:Number,required:!0}},setup(e){let t=N(uA),n=k(null),r=k(``),i=V(()=>{let{file:t}=e;return t.status===`finished`?`success`:t.status===`error`?`error`:`info`}),a=V(()=>{let{file:t}=e;if(t.status===`error`)return`error`}),o=V(()=>{let{file:t}=e;return t.status===`uploading`}),s=V(()=>{if(!t.showCancelButtonRef.value)return!1;let{file:n}=e;return[`uploading`,`pending`,`error`].includes(n.status)}),c=V(()=>{if(!t.showRemoveButtonRef.value)return!1;let{file:n}=e;return[`finished`].includes(n.status)}),l=V(()=>{if(!t.showDownloadButtonRef.value)return!1;let{file:n}=e;return[`finished`].includes(n.status)}),u=V(()=>{if(!t.showRetryButtonRef.value)return!1;let{file:n}=e;return[`error`].includes(n.status)}),d=au(()=>r.value||e.file.thumbnailUrl||e.file.url),f=V(()=>{if(!t.showPreviewButtonRef.value)return!1;let{file:{status:n},listType:r}=e;return[`finished`].includes(n)&&d.value&&r===`image-card`});function p(){return OA(this,void 0,void 0,function*(){let n=t.onRetryRef.value;n&&(yield n({file:e.file}))===!1||t.submit({fileId:e.file.id})})}function m(t){t.preventDefault();let{file:n}=e;[`finished`,`pending`,`error`].includes(n.status)?g(n):[`uploading`].includes(n.status)?v(n):pp(`upload`,`The button clicked type is unknown.`)}function h(t){t.preventDefault(),_(e.file)}function g(n){let{xhrMap:r,doChange:i,onRemoveRef:{value:a},mergedFileListRef:{value:o}}=t;Promise.resolve(a?a({file:Object.assign({},n),fileList:o,index:e.index}):!0).then(e=>{if(e===!1)return;let t=Object.assign({},n,{status:`removed`});r.delete(n.id),i(t,void 0,{remove:!0})})}function _(e){let{onDownloadRef:{value:n},customDownloadRef:{value:r}}=t;Promise.resolve(n?n(Object.assign({},e)):!0).then(t=>{t!==!1&&(r?r(Object.assign({},e)):cp(e.url,e.name))})}function v(e){let{xhrMap:n}=t;n.get(e.id)?.abort(),g(Object.assign({},e))}function y(r){let{onPreviewRef:{value:i}}=t;if(i)i(e.file,{event:r});else if(e.listType===`image-card`){let{value:e}=n;if(!e)return;e.showPreview()}}let b=()=>OA(this,void 0,void 0,function*(){let{listType:n}=e;n!==`image`&&n!==`image-card`||t.shouldUseThumbnailUrlRef.value(e.file)&&(r.value=yield t.getFileThumbnailUrlResolver(e.file))});return qn(()=>{b()}),{mergedTheme:t.mergedThemeRef,progressStatus:i,buttonType:a,showProgress:o,disabled:t.mergedDisabledRef,showCancelButton:s,showRemoveButton:c,showDownloadButton:l,showRetryButton:u,showPreviewButton:f,mergedThumbnailUrl:d,shouldUseThumbnailUrl:t.shouldUseThumbnailUrlRef,renderIcon:t.renderIconRef,imageRef:n,handleRemoveOrCancelClick:m,handleDownloadClick:h,handleRetryClick:p,handlePreviewClick:y}},render(){let{clsPrefix:e,mergedTheme:t,listType:n,file:r,renderIcon:i}=this,a,o=n===`image`;a=o||n===`image-card`?!this.shouldUseThumbnailUrl(r)||!this.mergedThumbnailUrl?H(`span`,{class:`${e}-upload-file-info__thumbnail`},i?i(r):bA(r)?H(gx,{clsPrefix:e},{default:pA}):H(gx,{clsPrefix:e},{default:mA})):H(`a`,{rel:`noopener noreferer`,target:`_blank`,href:r.url||void 0,class:`${e}-upload-file-info__thumbnail`,onClick:this.handlePreviewClick},n===`image-card`?H(yk,{src:this.mergedThumbnailUrl||void 0,previewSrc:r.url||void 0,alt:r.name,ref:`imageRef`}):H(`img`,{src:this.mergedThumbnailUrl||void 0,alt:r.name})):H(`span`,{class:`${e}-upload-file-info__thumbnail`},i?i(r):H(gx,{clsPrefix:e},{default:()=>H(Sx,null)}));let s=H(hA,{show:this.showProgress,percentage:r.percentage||0,status:this.progressStatus}),c=n===`text`||n===`image`;return H(`div`,{class:[`${e}-upload-file`,`${e}-upload-file--${this.progressStatus}-status`,r.url&&r.status!==`error`&&n!==`image-card`&&`${e}-upload-file--with-url`,`${e}-upload-file--${n}-type`]},H(`div`,{class:`${e}-upload-file-info`},a,H(`div`,{class:`${e}-upload-file-info__name`},c&&(r.url&&r.status!==`error`?H(`a`,{rel:`noopener noreferer`,target:`_blank`,href:r.url||void 0,onClick:this.handlePreviewClick},r.name):H(`span`,{onClick:this.handlePreviewClick},r.name)),o&&s),H(`div`,{class:[`${e}-upload-file-info__action`,`${e}-upload-file-info__action--${n}-type`]},this.showPreviewButton?H($,{key:`preview`,quaternary:!0,type:this.buttonType,onClick:this.handlePreviewClick,theme:t.peers.Button,themeOverrides:t.peerOverrides.Button,builtinThemeOverrides:kA},{icon:()=>H(gx,{clsPrefix:e},{default:()=>H(jx,null)})}):null,(this.showRemoveButton||this.showCancelButton)&&!this.disabled&&H($,{key:`cancelOrTrash`,theme:t.peers.Button,themeOverrides:t.peerOverrides.Button,quaternary:!0,builtinThemeOverrides:kA,type:this.buttonType,onClick:this.handleRemoveOrCancelClick},{icon:()=>H(_x,null,{default:()=>this.showRemoveButton?H(gx,{clsPrefix:e,key:`trash`},{default:()=>H(Bx,null)}):H(gx,{clsPrefix:e,key:`cancel`},{default:()=>H(Cx,null)})})}),this.showRetryButton&&!this.disabled&&H($,{key:`retry`,quaternary:!0,type:this.buttonType,onClick:this.handleRetryClick,theme:t.peers.Button,themeOverrides:t.peerOverrides.Button,builtinThemeOverrides:kA},{icon:()=>H(gx,{clsPrefix:e},{default:()=>H(Ix,null)})}),this.showDownloadButton?H($,{key:`download`,quaternary:!0,type:this.buttonType,onClick:this.handleDownloadClick,theme:t.peers.Button,themeOverrides:t.peerOverrides.Button,builtinThemeOverrides:kA},{icon:()=>H(gx,{clsPrefix:e},{default:()=>H(Ox,null)})}):null)),!o&&s)}}),jA=P({name:`UploadTrigger`,props:{abstract:Boolean},slots:Object,setup(e,{slots:t}){let n=N(uA,null);n||hp(`upload-trigger`,"`n-upload-trigger` must be placed inside `n-upload`.");let{mergedClsPrefixRef:r,mergedDisabledRef:i,maxReachedRef:a,listTypeRef:o,dragOverRef:s,openOpenFileDialog:c,draggerInsideRef:l,handleFileAddition:u,mergedDirectoryDndRef:d,triggerClassRef:f,triggerStyleRef:p}=n,m=V(()=>o.value===`image-card`);function h(){i.value||a.value||c()}function g(e){e.preventDefault(),s.value=!0}function _(e){e.preventDefault(),s.value=!0}function v(e){e.preventDefault(),s.value=!1}function y(e){if(e.preventDefault(),!l.value||i.value||a.value){s.value=!1;return}let t=e.dataTransfer?.items;t?.length?TA(Array.from(t).map(e=>e.webkitGetAsEntry()),d.value).then(e=>{u(e)}).finally(()=>{s.value=!1}):s.value=!1}return()=>{let{value:n}=r;return e.abstract?t.default?.call(t,{handleClick:h,handleDrop:y,handleDragOver:g,handleDragEnter:_,handleDragLeave:v}):H(`div`,{class:[`${n}-upload-trigger`,(i.value||a.value)&&`${n}-upload-trigger--disabled`,m.value&&`${n}-upload-trigger--image-card`,f.value],style:p.value,onClick:h,onDrop:y,onDragover:g,onDragenter:_,onDragleave:v},m.value?H(fA,null,{default:()=>Ep(t.default,()=>[H(gx,{clsPrefix:n},{default:()=>H(vx,null)})])}):t)}}}),MA=P({name:`UploadFileList`,setup(e,{slots:t}){let n=N(uA,null);n||hp(`upload-file-list`,"`n-upload-file-list` must be placed inside `n-upload`.");let{abstractRef:r,mergedClsPrefixRef:i,listTypeRef:a,mergedFileListRef:o,fileListClassRef:s,fileListStyleRef:c,cssVarsRef:l,themeClassRef:u,maxReachedRef:d,showTriggerRef:f,imageGroupPropsRef:p}=n,m=V(()=>a.value===`image-card`),h=()=>o.value.map((e,t)=>H(AA,{clsPrefix:i.value,key:e.id,file:e,index:t,listType:a.value})),g=()=>m.value?H(gk,Object.assign({},p.value),{default:h}):H(Xx,{group:!0},{default:h});return()=>{let{value:e}=i,{value:n}=r;return H(`div`,{class:[`${e}-upload-file-list`,m.value&&`${e}-upload-file-list--grid`,n?u?.value:void 0,s.value],style:[n&&l?l.value:``,c.value]},g(),f.value&&!d.value&&m.value&&H(jA,null,t))}}}),NA=function(e,t,n,r){function i(e){return e instanceof n?e:new n(function(t){t(e)})}return new(n||=Promise)(function(n,a){function o(e){try{c(r.next(e))}catch(e){a(e)}}function s(e){try{c(r.throw(e))}catch(e){a(e)}}function c(e){e.done?n(e.value):i(e.value).then(o,s)}c((r=r.apply(e,t||[])).next())})};function PA(e,t,n){let{doChange:r,xhrMap:i}=e,a=0;function o(n){let o=Object.assign({},t,{status:`error`,percentage:a});i.delete(t.id),o=EA(e.onError?.call(e,{file:o,event:n})||o),r(o,n)}function s(s){if(e.isErrorState){if(e.isErrorState(n)){o(s);return}}else if(n.status<200||n.status>=300){o(s);return}let c=Object.assign({},t,{status:`finished`,percentage:a});i.delete(t.id),c=EA(e.onFinish?.call(e,{file:c,event:s})||c),r(c,s)}return{handleXHRLoad:s,handleXHRError:o,handleXHRAbort(e){let n=Object.assign({},t,{status:`removed`,file:null,percentage:a});i.delete(t.id),r(n,e)},handleXHRProgress(e){let n=Object.assign({},t,{status:`uploading`});if(e.lengthComputable){let t=Math.ceil(e.loaded/e.total*100);n.percentage=t,a=t}r(n,e)}}}function FA(e){let{inst:t,file:n,data:r,headers:i,withCredentials:a,action:o,customRequest:s}=e,{doChange:c}=e.inst,l=0;s({file:n,data:r,headers:i,withCredentials:a,action:o,onProgress(e){let t=Object.assign({},n,{status:`uploading`}),r=e.percent;t.percentage=r,l=r,c(t)},onFinish(){let e=Object.assign({},n,{status:`finished`,percentage:l});e=EA(t.onFinish?.call(t,{file:e})||e),c(e)},onError(){let e=Object.assign({},n,{status:`error`,percentage:l});e=EA(t.onError?.call(t,{file:e})||e),c(e)}})}function IA(e,t,n){let r=PA(e,t,n);n.onabort=r.handleXHRAbort,n.onerror=r.handleXHRError,n.onload=r.handleXHRLoad,n.upload&&(n.upload.onprogress=r.handleXHRProgress)}function LA(e,t){return typeof e==`function`?e({file:t}):e||{}}function RA(e,t,n){let r=LA(t,n);r&&Object.keys(r).forEach(t=>{e.setRequestHeader(t,r[t])})}function zA(e,t,n){let r=LA(t,n);r&&Object.keys(r).forEach(t=>{e.append(t,r[t])})}function BA(e,t,n,{method:r,action:i,withCredentials:a,responseType:o,headers:s,data:c}){let l=new XMLHttpRequest;l.responseType=o,e.xhrMap.set(n.id,l),l.withCredentials=a;let u=new FormData;if(zA(u,c,n),n.file!==null&&u.append(t,n.file),IA(e,n,l),i!==void 0){l.open(r.toUpperCase(),i),RA(l,s,n),l.send(u);let t=Object.assign({},n,{status:`uploading`});e.doChange(t)}}var VA=P({name:`Upload`,props:Object.assign(Object.assign({},mx.props),{name:{type:String,default:`file`},accept:String,action:String,customRequest:Function,directory:Boolean,directoryDnd:{type:Boolean,default:void 0},method:{type:String,default:`POST`},multiple:Boolean,showFileList:{type:Boolean,default:!0},data:[Object,Function],headers:[Object,Function],withCredentials:Boolean,responseType:{type:String,default:``},disabled:{type:Boolean,default:void 0},onChange:Function,onRemove:Function,onFinish:Function,onError:Function,onRetry:Function,onBeforeUpload:Function,isErrorState:Function,onDownload:Function,customDownload:Function,defaultUpload:{type:Boolean,default:!0},fileList:Array,"onUpdate:fileList":[Function,Array],onUpdateFileList:[Function,Array],fileListClass:String,fileListStyle:[String,Object],defaultFileList:{type:Array,default:()=>[]},showCancelButton:{type:Boolean,default:!0},showRemoveButton:{type:Boolean,default:!0},showDownloadButton:Boolean,showRetryButton:{type:Boolean,default:!0},showPreviewButton:{type:Boolean,default:!0},listType:{type:String,default:`text`},onPreview:Function,shouldUseThumbnailUrl:{type:Function,default:e=>SA?bA(e):!1},createThumbnailUrl:Function,abstract:Boolean,max:Number,showTrigger:{type:Boolean,default:!0},imageGroupProps:Object,inputProps:Object,triggerClass:String,triggerStyle:[String,Object],renderIcon:Function}),setup(e){e.abstract&&e.listType===`image-card`&&hp(`upload`,`when the list-type is image-card, abstract is not supported.`);let{mergedClsPrefixRef:t,inlineThemeDisabled:n,mergedRtlRef:r}=Mp(e),i=mx(`Upload`,`-upload`,dA,XO,e,t),a=ox(`Upload`,r,t),o=Fp(e),s=k(e.defaultFileList),c=j(e,`fileList`),l=k(null),u={value:!1},d=k(!1),f=new Map,p=xu(c,s),m=V(()=>p.value.map(EA)),h=V(()=>{let{max:t}=e;return t===void 0?!1:m.value.length>=t});function g(){var e;(e=l.value)==null||e.click()}function _(e){let t=e.target;x(t.files?Array.from(t.files).map(e=>({file:e,entry:null,source:`input`})):null,e),t.value=``}function v(t){let{"onUpdate:fileList":n,onUpdateFileList:r}=e;n&&X(n,t),r&&X(r,t),s.value=t}let y=V(()=>e.multiple||e.directory),b=(t,n,r={append:!1,remove:!1})=>{let{append:i,remove:a}=r,o=Array.from(m.value),s=o.findIndex(e=>e.id===t.id);if(i||a||~s){i?o.push(t):a?o.splice(s,1):o.splice(s,1,t);let{onChange:r}=e;r&&r({file:t,fileList:o,event:n}),v(o)}};function x(t,n){if(!t||t.length===0)return;let{onBeforeUpload:r}=e;t=y.value?t:[t[0]];let{max:i,accept:a}=e;t=t.filter(({file:e,source:t})=>t===`dnd`&&a?.trim()?DA(e.name,e.type,a):!0),i&&(t=t.slice(0,i-m.value.length));let o=Jl();Promise.all(t.map(e=>NA(this,[e],void 0,function*({file:e,entry:t}){let n={id:Jl(),batchId:o,name:e.name,status:`pending`,percentage:0,file:e,url:null,type:e.type,thumbnailUrl:null,fullPath:t?.fullPath??`/${e.webkitRelativePath||e.name}`};return!r||(yield r({file:n,fileList:m.value}))!==!1?n:null}))).then(e=>NA(this,void 0,void 0,function*(){let t=Promise.resolve();e.forEach(e=>{t=t.then(kn).then(()=>{e&&b(e,n,{append:!0})})}),yield t})).then(()=>{e.defaultUpload&&S()})}function S({fileId:t,retry:n=!1}={}){let{method:r,action:i,withCredentials:a,headers:o,data:s,name:c}=e,l=t===void 0?m.value:m.value.filter(e=>e.id===t),u=n||t!==void 0;l.forEach(t=>{let{status:n}=t;(n===`pending`||n===`error`&&u)&&(e.customRequest?FA({inst:{doChange:b,xhrMap:f,onFinish:e.onFinish,onError:e.onError},file:t,action:i,withCredentials:a,headers:o,data:s,customRequest:e.customRequest}):BA({doChange:b,xhrMap:f,onFinish:e.onFinish,onError:e.onError,isErrorState:e.isErrorState},c,t,{method:r,action:i,withCredentials:a,responseType:e.responseType,headers:o,data:s}))})}function C(t){if(t.thumbnailUrl)return t.thumbnailUrl;let{createThumbnailUrl:n}=e;return n?n(t.file,t)??(t.url||``):t.url?t.url:t.file?xA(t.file):``}let w=V(()=>{let{common:{cubicBezierEaseInOut:e},self:{draggerColor:t,draggerBorder:n,draggerBorderHover:r,itemColorHover:a,itemColorHoverError:o,itemTextColorError:s,itemTextColorSuccess:c,itemTextColor:l,itemIconColor:u,itemDisabledOpacity:d,lineHeight:f,borderRadius:p,fontSize:m,itemBorderImageCardError:h,itemBorderImageCard:g}}=i.value;return{"--n-bezier":e,"--n-border-radius":p,"--n-dragger-border":n,"--n-dragger-border-hover":r,"--n-dragger-color":t,"--n-font-size":m,"--n-item-color-hover":a,"--n-item-color-hover-error":o,"--n-item-disabled-opacity":d,"--n-item-icon-color":u,"--n-item-text-color":l,"--n-item-text-color-error":s,"--n-item-text-color-success":c,"--n-line-height":f,"--n-item-border-image-card-error":h,"--n-item-border-image-card":g}}),T=n?Np(`upload`,void 0,w,e):void 0;Un(uA,{mergedClsPrefixRef:t,mergedThemeRef:i,showCancelButtonRef:j(e,`showCancelButton`),showDownloadButtonRef:j(e,`showDownloadButton`),showRemoveButtonRef:j(e,`showRemoveButton`),showRetryButtonRef:j(e,`showRetryButton`),onRemoveRef:j(e,`onRemove`),onDownloadRef:j(e,`onDownload`),customDownloadRef:j(e,`customDownload`),mergedFileListRef:m,triggerClassRef:j(e,`triggerClass`),triggerStyleRef:j(e,`triggerStyle`),shouldUseThumbnailUrlRef:j(e,`shouldUseThumbnailUrl`),renderIconRef:j(e,`renderIcon`),xhrMap:f,submit:S,doChange:b,showPreviewButtonRef:j(e,`showPreviewButton`),onPreviewRef:j(e,`onPreview`),getFileThumbnailUrlResolver:C,listTypeRef:j(e,`listType`),dragOverRef:d,openOpenFileDialog:g,draggerInsideRef:u,handleFileAddition:x,mergedDisabledRef:o.mergedDisabledRef,maxReachedRef:h,fileListClassRef:j(e,`fileListClass`),fileListStyleRef:j(e,`fileListStyle`),abstractRef:j(e,`abstract`),acceptRef:j(e,`accept`),cssVarsRef:n?void 0:w,themeClassRef:T?.themeClass,onRender:T?.onRender,showTriggerRef:j(e,`showTrigger`),imageGroupPropsRef:j(e,`imageGroupProps`),mergedDirectoryDndRef:V(()=>e.directoryDnd??e.directory),onRetryRef:j(e,`onRetry`)});let ee={clear:()=>{s.value=[]},submit:S,openOpenFileDialog:g};return Object.assign({mergedClsPrefix:t,draggerInsideRef:u,rtlEnabled:a,inputElRef:l,mergedTheme:i,dragOver:d,mergedMultiple:y,cssVars:n?void 0:w,themeClass:T?.themeClass,onRender:T?.onRender,handleFileInputChange:_},ee)},render(){let{draggerInsideRef:e,mergedClsPrefix:t,$slots:n,directory:r,onRender:i}=this;n.default&&!this.abstract&&n.default()[0]?.type?.__UPLOAD_DRAGGER__&&(e.value=!0);let a=H(`input`,Object.assign({},this.inputProps,{ref:`inputElRef`,type:`file`,class:`${t}-upload-file-input`,accept:this.accept,multiple:this.mergedMultiple,onChange:this.handleFileInputChange,webkitdirectory:r||void 0,directory:r||void 0}));return this.abstract?H(F,null,n.default?.call(n),H(lr,{to:`body`},a)):(i?.(),H(`div`,{class:[`${t}-upload`,this.rtlEnabled&&`${t}-upload--rtl`,e.value&&`${t}-upload--dragger-inside`,this.dragOver&&`${t}-upload--drag-over`,this.themeClass],style:this.cssVars},a,this.showTrigger&&this.listType!==`image-card`&&H(jA,null,n),this.showFileList&&H(MA,null,n)))}}),HA={name:`dark`,common:Q,Alert:nw,Anchor:pw,AutoComplete:Iw,Avatar:Jw,AvatarGroup:Xw,BackTop:Qw,Badge:$w,Breadcrumb:nT,Button:lT,ButtonGroup:zD,Calendar:yT,Card:CT,Carousel:AT,Cascader:IT,Checkbox:PT,Code:HT,Collapse:WT,CollapseTransition:KT,ColorPicker:JT,DataTable:mE,DatePicker:CE,Descriptions:EE,Dialog:jE,Divider:fD,Drawer:mD,Dropdown:iE,DynamicInput:gD,DynamicTags:MD,Element:ND,Empty:sC,Ellipsis:lE,Equation:{name:`Equation`,common:Q,self:()=>({})},Flex:FD,Form:HD,GradientText:UD,Heatmap:tk,Icon:_E,IconWrapper:rk,Image:ik,Input:vw,InputNumber:WD,InputOtp:KD,LegacyTransfer:xk,Layout:qD,List:XD,LoadingBar:qE,Log:ZD,Menu:tO,Mention:QD,Message:$E,Modal:zE,Notification:uD,PageHeader:iO,Pagination:tE,Popconfirm:sO,Popover:TC,Popselect:XT,Progress:uO,QrCode:Mk,Radio:dE,Rate:dO,Result:mO,Row:JD,Scrollbar:yS,Select:QT,Skeleton:Hk,Slider:gO,Space:ED,Spin:yO,Statistic:xO,Steps:wO,Switch:EO,Table:jO,Tabs:FO,Tag:BC,Thing:LO,TimePicker:bE,Timeline:zO,Tooltip:oE,Transfer:VO,Tree:UO,TreeSelect:WO,Typography:JO,Upload:ZO,Watermark:QO,Split:Kk,FloatButton:$O,FloatButtonGroup:{name:`FloatButtonGroup`,common:Q,self(e){let{popoverColor:t,dividerColor:n,borderRadius:r}=e;return{color:t,buttonBorderColor:n,borderRadiusSquare:r,boxShadow:`0 2px 8px 0px rgba(0, 0, 0, .12)`}}},Marquee:Ck},UA=typeof document<`u`;function WA(e){return typeof e==`object`||`displayName`in e||`props`in e||`__vccOpts`in e}function GA(e){return e.__esModule||e[Symbol.toStringTag]===`Module`||e.default&&WA(e.default)}var KA=Object.assign;function qA(e,t){let n={};for(let r in t){let i=t[r];n[r]=YA(i)?i.map(e):e(i)}return n}var JA=()=>{},YA=Array.isArray;function XA(e,t){let n={};for(let r in e)n[r]=r in t?t[r]:e[r];return n}var ZA=Symbol(``);function QA(e,t){return KA(Error(),{type:e,[ZA]:!0},t)}function $A(e,t){return e instanceof Error&&ZA in e&&(t==null||!!(e.type&t))}var ej=Symbol(``),tj=Symbol(``),nj=Symbol(``),rj=Symbol(``),ij=Symbol(``);function aj(){return N(nj)}function oj(e){return N(rj)}var sj=/#/g,cj=/&/g,lj=/\//g,uj=/=/g,dj=/\?/g,fj=/\+/g,pj=/%5B/g,mj=/%5D/g,hj=/%5E/g,gj=/%60/g,_j=/%7B/g,vj=/%7C/g,yj=/%7D/g,bj=/%20/g;function xj(e){return e==null?``:encodeURI(``+e).replace(vj,`|`).replace(pj,`[`).replace(mj,`]`)}function Sj(e){return xj(e).replace(_j,`{`).replace(yj,`}`).replace(hj,`^`)}function Cj(e){return xj(e).replace(fj,`%2B`).replace(bj,`+`).replace(sj,`%23`).replace(cj,`%26`).replace(gj,"`").replace(_j,`{`).replace(yj,`}`).replace(hj,`^`)}function wj(e){return Cj(e).replace(uj,`%3D`)}function Tj(e){return xj(e).replace(sj,`%23`).replace(dj,`%3F`)}function Ej(e){return Tj(e).replace(lj,`%2F`)}function Dj(e){if(e==null)return null;try{return decodeURIComponent(``+e)}catch{}return``+e}var Oj=/\/$/,kj=e=>e.replace(Oj,``);function Aj(e,t,n=`/`){let r,i={},a=``,o=``,s=t.indexOf(`#`),c=t.indexOf(`?`);return c=s>=0&&c>s?-1:c,c>=0&&(r=t.slice(0,c),a=t.slice(c,s>0?s:t.length),i=e(a.slice(1))),s>=0&&(r||=t.slice(0,s),o=t.slice(s,t.length)),r=Rj(r??t,n),{fullPath:r+a+o,path:r,query:i,hash:Dj(o)}}function jj(e,t){let n=t.query?e(t.query):``;return t.path+(n&&`?`)+n+(t.hash||``)}function Mj(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||`/`}function Nj(e,t,n){let r=t.matched.length-1,i=n.matched.length-1;return r>-1&&r===i&&Pj(t.matched[r],n.matched[i])&&Fj(t.params,n.params)&&e(t.query)===e(n.query)&&t.hash===n.hash}function Pj(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function Fj(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(var n in e)if(!Ij(e[n],t[n]))return!1;return!0}function Ij(e,t){return YA(e)?Lj(e,t):YA(t)?Lj(t,e):(e&&e.valueOf())===(t&&t.valueOf())}function Lj(e,t){return YA(t)?e.length===t.length&&e.every((e,n)=>e===t[n]):e.length===1&&e[0]===t}function Rj(e,t){if(e.startsWith(`/`))return e;if(!e)return t;let n=t.split(`/`),r=e.split(`/`),i=r[r.length-1];(i===`..`||i===`.`)&&r.push(``);let a=n.length-1,o,s;for(o=0;o1&&a--;else break;return n.slice(0,a).join(`/`)+`/`+r.slice(o).join(`/`)}var zj={path:`/`,name:void 0,params:{},query:{},hash:``,fullPath:`/`,matched:[],meta:{},redirectedFrom:void 0};function Bj(e){if(!e)if(UA){let t=document.querySelector(`base`);e=t&&t.getAttribute(`href`)||`/`,e=e.replace(/^\w+:\/\/[^/]+/,``)}else e=`/`;return e[0]!==`/`&&e[0]!==`#`&&(e=`/`+e),kj(e)}var Vj=/^[^#]+#/;function Hj(e,t){return e.replace(Vj,`#`)+t}function Uj(e,t){let n=document.documentElement.getBoundingClientRect(),r=e.getBoundingClientRect();return{behavior:t.behavior,left:r.left-n.left-(t.left||0),top:r.top-n.top-(t.top||0)}}var Wj=()=>({left:window.scrollX,top:window.scrollY});function Gj(e){let t;if(`el`in e){let n=e.el,r=typeof n==`string`&&n.startsWith(`#`),i=typeof n==`string`?r?document.getElementById(n.slice(1)):document.querySelector(n):n;if(!i)return;t=Uj(i,e)}else t=e;`scrollBehavior`in document.documentElement.style?window.scrollTo(t):window.scrollTo(t.left==null?window.scrollX:t.left,t.top==null?window.scrollY:t.top)}function Kj(e,t){return(history.state?history.state.position-t:-1)+e}var qj=new Map;function Jj(e,t){qj.set(e,t)}function Yj(e){let t=qj.get(e);return qj.delete(e),t}function Xj(e){return typeof e==`string`||e&&typeof e==`object`}function Zj(e){return typeof e==`string`||typeof e==`symbol`}function Qj(e){let t={};if(e===``||e===`?`)return t;let n=(e[0]===`?`?e.slice(1):e).split(`&`);for(let e=0;ee&&Cj(e)):[r&&Cj(r)]).forEach(e=>{e!==void 0&&(t+=(t.length?`&`:``)+n,e!=null&&(t+=`=`+e))})}return t}function eM(e){let t={};for(let n in e){let r=e[n];r!==void 0&&(t[n]=YA(r)?r.map(e=>e==null?null:``+e):r==null?r:``+r)}return t}function tM(){let e=[];function t(t){return e.push(t),()=>{let n=e.indexOf(t);n>-1&&e.splice(n,1)}}function n(){e=[]}return{add:t,list:()=>e.slice(),reset:n}}function nM(e,t,n,r,i,a=e=>e()){let o=r&&(r.enterCallbacks[i]=r.enterCallbacks[i]||[]);return()=>new Promise((s,c)=>{let l=e=>{e===!1?c(QA(4,{from:n,to:t})):e instanceof Error?c(e):Xj(e)?c(QA(2,{from:t,to:e})):(o&&r.enterCallbacks[i]===o&&typeof e==`function`&&o.push(e),s())},u=a(()=>e.call(r&&r.instances[i],t,n,l)),d=Promise.resolve(u);e.length<3&&(d=d.then(l)),d.catch(e=>c(e))})}function rM(e,t,n,r,i=e=>e()){let a=[];for(let o of e)for(let e in o.components){let s=o.components[e];if(!(t!==`beforeRouteEnter`&&!o.instances[e]))if(WA(s)){let c=(s.__vccOpts||s)[t];c&&a.push(nM(c,n,r,o,e,i))}else{let c=s();a.push(()=>c.then(a=>{if(!a)throw Error(`Couldn't resolve component "${e}" at "${o.path}"`);let s=GA(a)?a.default:a;o.mods[e]=a,o.components[e]=s;let c=(s.__vccOpts||s)[t];return c&&nM(c,n,r,o,e,i)()}))}}return a}function iM(e,t){let n=[],r=[],i=[],a=Math.max(t.matched.length,e.matched.length);for(let o=0;oPj(e,a))?r.push(a):n.push(a));let s=e.matched[o];s&&(t.matched.find(e=>Pj(e,s))||i.push(s))}return[n,r,i]}var aM=()=>location.protocol+`//`+location.host;function oM(e,t){let{pathname:n,search:r,hash:i}=t,a=e.indexOf(`#`);if(a>-1){let t=i.includes(e.slice(a))?e.slice(a).length:1,n=i.slice(t);return n[0]!==`/`&&(n=`/`+n),Mj(n,``)}return Mj(n,e)+r+i}function sM(e,t,n,r){let i=[],a=[],o=null,s=({state:a})=>{let s=oM(e,location),c=n.value,l=t.value,u=0;if(a){if(n.value=s,t.value=a,o&&o===c){o=null;return}u=l?a.position-l.position:0}else r(s);i.forEach(e=>{e(n.value,c,{delta:u,type:`pop`,direction:u?u>0?`forward`:`back`:``})})};function c(){o=n.value}function l(e){i.push(e);let t=()=>{let t=i.indexOf(e);t>-1&&i.splice(t,1)};return a.push(t),t}function u(){if(document.visibilityState===`hidden`){let{history:e}=window;if(!e.state)return;e.replaceState(KA({},e.state,{scroll:Wj()}),``)}}function d(){for(let e of a)e();a=[],window.removeEventListener(`popstate`,s),window.removeEventListener(`pagehide`,u),document.removeEventListener(`visibilitychange`,u)}return window.addEventListener(`popstate`,s),window.addEventListener(`pagehide`,u),document.addEventListener(`visibilitychange`,u),{pauseListeners:c,listen:l,destroy:d}}function cM(e,t,n,r=!1,i=!1){return{back:e,current:t,forward:n,replaced:r,position:window.history.length,scroll:i?Wj():null}}function lM(e){let{history:t,location:n}=window,r={value:oM(e,n)},i={value:t.state};i.value||a(r.value,{back:null,current:r.value,forward:null,position:t.length-1,replaced:!0,scroll:null},!0);function a(r,a,o){let s=e.indexOf(`#`),c=s>-1?(n.host&&document.querySelector(`base`)?e:e.slice(s))+r:aM()+e+r;try{t[o?`replaceState`:`pushState`](a,``,c),i.value=a}catch(e){console.error(e),n[o?`replace`:`assign`](c)}}function o(e,n){a(e,KA({},t.state,cM(i.value.back,e,i.value.forward,!0),n,{position:i.value.position}),!0),r.value=e}function s(e,n){let o=KA({},i.value,t.state,{forward:e,scroll:Wj()});a(o.current,o,!0),a(e,KA({},cM(r.value,e,null),{position:o.position+1},n),!1),r.value=e}return{location:r,state:i,push:s,replace:o}}function uM(e){e=Bj(e);let t=lM(e),n=sM(e,t.state,t.location,t.replace);function r(e,t=!0){t||n.pauseListeners(),history.go(e)}let i=KA({location:``,base:e,go:r,createHref:Hj.bind(null,e)},t,n);return Object.defineProperty(i,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(i,"state",{enumerable:!0,get:()=>t.state.value}),i}var dM={type:0,value:``},fM=/[a-zA-Z0-9_]/;function pM(e){if(!e)return[[]];if(e===`/`)return[[dM]];if(!e.startsWith(`/`))throw Error(`Invalid path "${e}"`);function t(e){throw Error(`ERR (${n})/"${l}": ${e}`)}let n=0,r=n,i=[],a;function o(){a&&i.push(a),a=[]}let s=0,c,l=``,u=``;function d(){l&&=(n===0?a.push({type:0,value:l}):n===1||n===2||n===3?(a.length>1&&(c===`*`||c===`+`)&&t(`A repeatable param (${l}) must be alone in its segment. eg: '/:ids+.`),a.push({type:1,value:l,regexp:u,repeatable:c===`*`||c===`+`,optional:c===`*`||c===`?`})):t(`Invalid state to consume buffer`),``)}function f(){l+=c}for(;st.length?t.length===1&&t[0]===80?1:-1:0}function yM(e,t){let n=0,r=e.score,i=t.score;for(;n0&&t[t.length-1]<0}var xM={strict:!1,end:!0,sensitive:!1};function SM(e,t,n){let r=KA(_M(pM(e.path),n),{record:e,parent:t,children:[],alias:[]});return t&&!r.record.aliasOf==!t.record.aliasOf&&t.children.push(r),r}function CM(e,t){let n=[],r=new Map;t=XA(xM,t);function i(e){return r.get(e)}function a(e,n,r){let i=!r,s=TM(e);s.aliasOf=r&&r.record;let l=XA(t,e),u=[s];if(`alias`in e){let t=typeof e.alias==`string`?[e.alias]:e.alias;for(let e of t)u.push(TM(KA({},s,{components:r?r.record.components:s.components,path:e,aliasOf:r?r.record:s})))}let d,f;for(let t of u){let{path:u}=t;if(n&&u[0]!==`/`){let e=n.record.path,r=e[e.length-1]===`/`?``:`/`;t.path=n.record.path+(u&&r+u)}if(d=SM(t,n,l),r?r.alias.push(d):(f||=d,f!==d&&f.alias.push(d),i&&e.name&&!DM(d)&&o(e.name)),jM(d)&&c(d),s.children){let e=s.children;for(let t=0;t{o(f)}:JA}function o(e){if(Zj(e)){let t=r.get(e);t&&(r.delete(e),n.splice(n.indexOf(t),1),t.children.forEach(o),t.alias.forEach(o))}else{let t=n.indexOf(e);t>-1&&(n.splice(t,1),e.record.name&&r.delete(e.record.name),e.children.forEach(o),e.alias.forEach(o))}}function s(){return n}function c(e){let t=kM(e,n);n.splice(t,0,e),e.record.name&&!DM(e)&&r.set(e.record.name,e)}function l(e,t){let i,a={},o,s;if(`name`in e&&e.name){if(i=r.get(e.name),!i)throw QA(1,{location:e});s=i.record.name,a=KA(wM(t.params,i.keys.filter(e=>!e.optional).concat(i.parent?i.parent.keys.filter(e=>e.optional):[]).map(e=>e.name)),e.params&&wM(e.params,i.keys.map(e=>e.name))),o=i.stringify(a)}else if(e.path!=null)o=e.path,i=n.find(e=>e.re.test(o)),i&&(a=i.parse(o),s=i.record.name,i.keys.forEach(e=>{e.optional&&!a[e.name]&&delete a[e.name]}));else{if(i=t.name?r.get(t.name):n.find(e=>e.re.test(t.path)),!i)throw QA(1,{location:e,currentLocation:t});s=i.record.name,a=KA({},t.params,e.params),o=i.stringify(a)}let c=[],l=i;for(;l;)c.unshift(l.record),l=l.parent;return{name:s,path:o,params:a,matched:c,meta:OM(c)}}e.forEach(e=>a(e));function u(){n.length=0,r.clear()}return{addRoute:a,resolve:l,removeRoute:o,clearRoutes:u,getRoutes:s,getRecordMatcher:i}}function wM(e,t){let n={};for(let r of t)r in e&&(n[r]=e[r]);return n}function TM(e){let t={path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:e.aliasOf,beforeEnter:e.beforeEnter,props:EM(e),children:e.children||[],instances:{},leaveGuards:new Set,updateGuards:new Set,enterCallbacks:{},components:`components`in e?e.components||null:e.component&&{default:e.component}};return Object.defineProperty(t,"mods",{value:{}}),t}function EM(e){let t={},n=e.props||!1;if(`component`in e)t.default=n;else for(let r in e.components)t[r]=typeof n==`object`?n[r]:n;return t}function DM(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function OM(e){return e.reduce((e,t)=>KA(e,t.meta),{})}function kM(e,t){let n=0,r=t.length;for(;n!==r;){let i=n+r>>1;yM(e,t[i])<0?r=i:n=i+1}let i=AM(e);return i&&(r=t.lastIndexOf(i,r-1)),r}function AM(e){let t=e;for(;t=t.parent;)if(jM(t)&&yM(e,t)===0)return t}function jM({record:e}){return!!(e.name||e.components&&Object.keys(e.components).length||e.redirect)}function MM(e){let t=N(nj),n=N(rj),r=V(()=>{let n=A(e.to);return t.resolve(n)}),i=V(()=>{let{matched:e}=r.value,{length:t}=e,i=e[t-1],a=n.matched;if(!i||!a.length)return-1;let o=a.findIndex(Pj.bind(null,i));if(o>-1)return o;let s=LM(e[t-2]);return t>1&&LM(i)===s&&a[a.length-1].path!==s?a.findIndex(Pj.bind(null,e[t-2])):o}),a=V(()=>i.value>-1&&IM(n.params,r.value.params)),o=V(()=>i.value>-1&&i.value===n.matched.length-1&&Fj(n.params,r.value.params));function s(n={}){if(FM(n)){let n=t[A(e.replace)?`replace`:`push`](A(e.to)).catch(JA);return e.viewTransition&&typeof document<`u`&&`startViewTransition`in document&&document.startViewTransition(()=>n),n}return Promise.resolve()}return{route:r,href:V(()=>r.value.href),isActive:a,isExactActive:o,navigate:s}}function NM(e){return e.length===1?e[0]:e}var PM=P({name:`RouterLink`,compatConfig:{MODE:3},props:{to:{type:[String,Object],required:!0},replace:Boolean,activeClass:String,exactActiveClass:String,custom:Boolean,ariaCurrentValue:{type:String,default:`page`},viewTransition:Boolean},useLink:MM,setup(e,{slots:t}){let n=Vt(MM(e)),{options:r}=N(nj),i=V(()=>({[RM(e.activeClass,r.linkActiveClass,`router-link-active`)]:n.isActive,[RM(e.exactActiveClass,r.linkExactActiveClass,`router-link-exact-active`)]:n.isExactActive}));return()=>{let r=t.default&&NM(t.default(n));return e.custom?r:H(`a`,{"aria-current":n.isExactActive?e.ariaCurrentValue:null,href:n.href,onClick:n.navigate,class:i.value},r)}}});function FM(e){if(!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)&&!e.defaultPrevented&&!(e.button!==void 0&&e.button!==0)){if(e.currentTarget&&e.currentTarget.getAttribute){let t=e.currentTarget.getAttribute(`target`);if(/\b_blank\b/i.test(t))return}return e.preventDefault&&e.preventDefault(),!0}}function IM(e,t){for(let n in t){let r=t[n],i=e[n];if(typeof r==`string`){if(r!==i)return!1}else if(!YA(i)||i.length!==r.length||r.some((e,t)=>e.valueOf()!==i[t].valueOf()))return!1}return!0}function LM(e){return e?e.aliasOf?e.aliasOf.path:e.path:``}var RM=(e,t,n)=>e??t??n,zM=P({name:`RouterView`,inheritAttrs:!1,props:{name:{type:String,default:`default`},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:n}){let r=N(ij),i=V(()=>e.route||r.value),a=N(tj,0),o=V(()=>{let e=A(a),{matched:t}=i.value,n;for(;(n=t[e])&&!n.components;)e++;return e}),s=V(()=>i.value.matched[o.value]);Un(tj,V(()=>o.value+1)),Un(ej,s),Un(ij,i);let c=k();return Jn(()=>[c.value,s.value,e.name],([e,t,n],[r,i,a])=>{t&&(t.instances[n]=e,i&&i!==t&&e&&e===r&&(t.leaveGuards.size||(t.leaveGuards=i.leaveGuards),t.updateGuards.size||(t.updateGuards=i.updateGuards))),e&&t&&(!i||!Pj(t,i)||!r)&&(t.enterCallbacks[n]||[]).forEach(t=>t(e))},{flush:`post`}),()=>{let r=i.value,a=e.name,o=s.value,l=o&&o.components[a];if(!l)return BM(n.default,{Component:l,route:r});let u=o.props[a],d=H(l,KA({},u?u===!0?r.params:typeof u==`function`?u(r):u:null,t,{onVnodeUnmounted:e=>{e.component.isUnmounted&&(o.instances[a]=null)},ref:c}));return BM(n.default,{Component:d,route:r})||d}}});function BM(e,t){if(!e)return null;let n=e(t);return n.length===1?n[0]:n}var VM=zM;function HM(e){let t=CM(e.routes,e),n=e.parseQuery||Qj,r=e.stringifyQuery||$j,i=e.history,a=tM(),o=tM(),s=tM(),c=en(zj),l=zj;UA&&e.scrollBehavior&&`scrollRestoration`in history&&(history.scrollRestoration=`manual`);let u=qA.bind(null,e=>``+e),d=qA.bind(null,Ej),f=qA.bind(null,Dj);function p(e,n){let r,i;return Zj(e)?(r=t.getRecordMatcher(e),i=n):i=e,t.addRoute(i,r)}function m(e){let n=t.getRecordMatcher(e);n&&t.removeRoute(n)}function h(){return t.getRoutes().map(e=>e.record)}function g(e){return!!t.getRecordMatcher(e)}function _(e,a){if(a=KA({},a||c.value),typeof e==`string`){let r=Aj(n,e,a.path),o=t.resolve({path:r.path},a),s=i.createHref(r.fullPath);return KA(r,o,{params:f(o.params),redirectedFrom:void 0,href:s})}let o;if(e.path!=null)o=KA({},e,{path:Aj(n,e.path,a.path).path});else{let t=KA({},e.params);for(let e in t)t[e]??delete t[e];o=KA({},e,{params:d(t)}),a.params=d(a.params)}let s=t.resolve(o,a),l=e.hash||``;s.params=u(f(s.params));let p=jj(r,KA({},e,{hash:Sj(l),path:s.path})),m=i.createHref(p);return KA({fullPath:p,hash:l,query:r===$j?eM(e.query):e.query||{}},s,{redirectedFrom:void 0,href:m})}function v(e){return typeof e==`string`?Aj(n,e,c.value.path):KA({},e)}function y(e,t){if(l!==e)return QA(8,{from:t,to:e})}function b(e){return C(e)}function x(e){return b(KA(v(e),{replace:!0}))}function S(e,t){let n=e.matched[e.matched.length-1];if(n&&n.redirect){let{redirect:r}=n,i=typeof r==`function`?r(e,t):r;return typeof i==`string`&&(i=i.includes(`?`)||i.includes(`#`)?i=v(i):{path:i},i.params={}),KA({query:e.query,hash:e.hash,params:i.path==null?e.params:{}},i)}}function C(e,t){let n=l=_(e),i=c.value,a=e.state,o=e.force,s=e.replace===!0,u=S(n,i);if(u)return C(KA(v(u),{state:typeof u==`object`?KA({},a,u.state):a,force:o,replace:s}),t||n);let d=n;d.redirectedFrom=t;let f;return!o&&Nj(r,i,n)&&(f=QA(16,{to:d,from:i}),le(i,i,!0,!1)),(f?Promise.resolve(f):ee(d,i)).catch(e=>$A(e)?$A(e,2)?e:ce(e):oe(e,d,i)).then(e=>{if(e){if($A(e,2))return C(KA({replace:s},v(e.to),{state:typeof e.to==`object`?KA({},a,e.to.state):a,force:o}),t||d)}else e=D(d,i,!0,s,a);return E(d,i,e),e})}function w(e,t){let n=y(e,t);return n?Promise.reject(n):Promise.resolve()}function T(e){let t=fe.values().next().value;return t&&typeof t.runWithContext==`function`?t.runWithContext(e):e()}function ee(e,t){let n,[r,i,s]=iM(e,t);n=rM(r.reverse(),`beforeRouteLeave`,e,t);for(let i of r)i.leaveGuards.forEach(r=>{n.push(nM(r,e,t))});let c=w.bind(null,e,t);return n.push(c),me(n).then(()=>{n=[];for(let r of a.list())n.push(nM(r,e,t));return n.push(c),me(n)}).then(()=>{n=rM(i,`beforeRouteUpdate`,e,t);for(let r of i)r.updateGuards.forEach(r=>{n.push(nM(r,e,t))});return n.push(c),me(n)}).then(()=>{n=[];for(let r of s)if(r.beforeEnter)if(YA(r.beforeEnter))for(let i of r.beforeEnter)n.push(nM(i,e,t));else n.push(nM(r.beforeEnter,e,t));return n.push(c),me(n)}).then(()=>(e.matched.forEach(e=>e.enterCallbacks={}),n=rM(s,`beforeRouteEnter`,e,t,T),n.push(c),me(n))).then(()=>{n=[];for(let r of o.list())n.push(nM(r,e,t));return n.push(c),me(n)}).catch(e=>$A(e,8)?e:Promise.reject(e))}function E(e,t,n){s.list().forEach(r=>T(()=>r(e,t,n)))}function D(e,t,n,r,a){let o=y(e,t);if(o)return o;let s=t===zj,l=UA?history.state:{};n&&(r||s?i.replace(e.fullPath,KA({scroll:s&&l&&l.scroll},a)):i.push(e.fullPath,a)),c.value=e,le(e,t,n,s),ce()}let te;function ne(){te||=i.listen((e,t,n)=>{if(!pe.listening)return;let r=_(e),a=S(r,pe.currentRoute.value);if(a){C(KA(a,{replace:!0,force:!0}),r).catch(JA);return}l=r;let o=c.value;UA&&Jj(Kj(o.fullPath,n.delta),Wj()),ee(r,o).catch(e=>$A(e,12)?e:$A(e,2)?(C(KA(v(e.to),{force:!0}),r).then(e=>{$A(e,20)&&!n.delta&&n.type===`pop`&&i.go(-1,!1)}).catch(JA),Promise.reject()):(n.delta&&i.go(-n.delta,!1),oe(e,r,o))).then(e=>{e||=D(r,o,!1),e&&(n.delta&&!$A(e,8)?i.go(-n.delta,!1):n.type===`pop`&&$A(e,20)&&i.go(-1,!1)),E(r,o,e)}).catch(JA)})}let re=tM(),ie=tM(),ae;function oe(e,t,n){ce(e);let r=ie.list();return r.length?r.forEach(r=>r(e,t,n)):console.error(e),Promise.reject(e)}function se(){return ae&&c.value!==zj?Promise.resolve():new Promise((e,t)=>{re.add([e,t])})}function ce(e){return ae||(ae=!e,ne(),re.list().forEach(([t,n])=>e?n(e):t()),re.reset()),e}function le(t,n,r,i){let{scrollBehavior:a}=e;if(!UA||!a)return Promise.resolve();let o=!r&&Yj(Kj(t.fullPath,0))||(i||!r)&&history.state&&history.state.scroll||null;return kn().then(()=>a(t,n,o)).then(e=>e&&Gj(e)).catch(e=>oe(e,t,n))}let ue=e=>i.go(e),de,fe=new Set,pe={currentRoute:c,listening:!0,addRoute:p,removeRoute:m,clearRoutes:t.clearRoutes,hasRoute:g,getRoutes:h,resolve:_,options:e,push:b,replace:x,go:ue,back:()=>ue(-1),forward:()=>ue(1),beforeEach:a.add,beforeResolve:o.add,afterEach:s.add,onError:ie.add,isReady:se,install(e){e.component(`RouterLink`,PM),e.component(`RouterView`,VM),e.config.globalProperties.$router=pe,Object.defineProperty(e.config.globalProperties,"$route",{enumerable:!0,get:()=>A(c)}),UA&&!de&&c.value===zj&&(de=!0,b(i.location).catch(e=>{}));let t={};for(let e in zj)Object.defineProperty(t,e,{get:()=>c.value[e],enumerable:!0});e.provide(nj,pe),e.provide(rj,Ht(t)),e.provide(ij,c);let n=e.unmount;fe.add(e),e.unmount=function(){fe.delete(e),fe.size<1&&(l=zj,te&&te(),te=null,c.value=zj,de=!1,ae=!1),n()}}};function me(e){return e.reduce((e,t)=>e.then(()=>T(t)),Promise.resolve())}return pe}var UM=P({__name:`App`,setup(e){return(e,t)=>(I(),Ea(A(YT),{theme:A(HA)},{default:M(()=>[z(A(oD),null,{default:M(()=>[z(A(VM))]),_:1})]),_:1},8,[`theme`]))}});function WM(e){return{Ping(t){let n=[],r=`api/test/ping`;return n.length>0&&(r+=`?${n.join(`&`)}`),e({path:r,method:`GET`,body:null},{service:`EveningDetectiveServer`,method:`Ping`})},Echo(t){let n=[];t.text&&n.push(`text=${encodeURIComponent(t.text.toString())}`);let r=`api/test/echo`;return n.length>0&&(r+=`?${n.join(`&`)}`),e({path:r,method:`POST`,body:null},{service:`EveningDetectiveServer`,method:`Echo`})},Signup(t){let n=JSON.stringify(t),r=[],i=`api/auth/signup`;return r.length>0&&(i+=`?${r.join(`&`)}`),e({path:i,method:`POST`,body:n},{service:`EveningDetectiveServer`,method:`Signup`})},RefreshPassword(t){let n=JSON.stringify(t),r=[],i=`api/auth/refresh-password`;return r.length>0&&(i+=`?${r.join(`&`)}`),e({path:i,method:`POST`,body:n},{service:`EveningDetectiveServer`,method:`RefreshPassword`})},Login(t){let n=JSON.stringify(t),r=[],i=`api/auth/login`;return r.length>0&&(i+=`?${r.join(`&`)}`),e({path:i,method:`POST`,body:n},{service:`EveningDetectiveServer`,method:`Login`})},Refresh(t){let n=JSON.stringify(t),r=[],i=`api/auth/refresh`;return r.length>0&&(i+=`?${r.join(`&`)}`),e({path:i,method:`POST`,body:n},{service:`EveningDetectiveServer`,method:`Refresh`})},DeleteAccount(t){let n=[],r=`api/auth/delete-account`;return n.length>0&&(r+=`?${n.join(`&`)}`),e({path:r,method:`DELETE`,body:null},{service:`EveningDetectiveServer`,method:`DeleteAccount`})},GetTerms(t){let n=[],r=`api/terms`;return n.length>0&&(r+=`?${n.join(`&`)}`),e({path:r,method:`GET`,body:null},{service:`EveningDetectiveServer`,method:`GetTerms`})},GetPrivacy(t){let n=[],r=`api/privacy`;return n.length>0&&(r+=`?${n.join(`&`)}`),e({path:r,method:`GET`,body:null},{service:`EveningDetectiveServer`,method:`GetPrivacy`})},GetConsent(t){let n=[],r=`api/consent`;return n.length>0&&(r+=`?${n.join(`&`)}`),e({path:r,method:`GET`,body:null},{service:`EveningDetectiveServer`,method:`GetConsent`})},GetUsers(t){let n=[],r=`api/users`;return n.length>0&&(r+=`?${n.join(`&`)}`),e({path:r,method:`GET`,body:null},{service:`EveningDetectiveServer`,method:`GetUsers`})},GetUserById(t){if(!t.id)throw Error(`missing required field request.id`);let n=`api/users/${t.id}`,r=[],i=n;return r.length>0&&(i+=`?${r.join(`&`)}`),e({path:i,method:`GET`,body:null},{service:`EveningDetectiveServer`,method:`GetUserById`})},GetMe(t){let n=[],r=`api/users/me`;return n.length>0&&(r+=`?${n.join(`&`)}`),e({path:r,method:`GET`,body:null},{service:`EveningDetectiveServer`,method:`GetMe`})},AddUserRole(t){if(!t.id)throw Error(`missing required field request.id`);let n=`api/users/${t.id}/role/add`,r=JSON.stringify(t),i=[],a=n;return i.length>0&&(a+=`?${i.join(`&`)}`),e({path:a,method:`POST`,body:r},{service:`EveningDetectiveServer`,method:`AddUserRole`})},DeleteUserRole(t){if(!t.id)throw Error(`missing required field request.id`);let n=`api/users/${t.id}/role/delete`,r=JSON.stringify(t),i=[],a=n;return i.length>0&&(a+=`?${i.join(`&`)}`),e({path:a,method:`POST`,body:r},{service:`EveningDetectiveServer`,method:`DeleteUserRole`})},GetPermissions(t){let n=[],r=`api/ui/permissions`;return n.length>0&&(r+=`?${n.join(`&`)}`),e({path:r,method:`GET`,body:null},{service:`EveningDetectiveServer`,method:`GetPermissions`})},UploadFile(t){let n=JSON.stringify(t),r=[],i=`api/files/upload`;return r.length>0&&(i+=`?${r.join(`&`)}`),e({path:i,method:`POST`,body:n},{service:`EveningDetectiveServer`,method:`UploadFile`})},DownloadFile(t){if(!t.filename)throw Error(`missing required field request.filename`);let n=`api/files/${t.filename}`,r=[],i=n;return r.length>0&&(i+=`?${r.join(`&`)}`),e({path:i,method:`GET`,body:null},{service:`EveningDetectiveServer`,method:`DownloadFile`})},AddScenario(t){let n=JSON.stringify(t),r=[],i=`api/scenario`;return r.length>0&&(i+=`?${r.join(`&`)}`),e({path:i,method:`POST`,body:n},{service:`EveningDetectiveServer`,method:`AddScenario`})},GetMyScenarios(t){let n=[],r=`api/my-scenarios`;return n.length>0&&(r+=`?${n.join(`&`)}`),e({path:r,method:`GET`,body:null},{service:`EveningDetectiveServer`,method:`GetMyScenarios`})},GetScenariosCatalog(t){let n=[],r=`api/catalog`;return n.length>0&&(r+=`?${n.join(`&`)}`),e({path:r,method:`GET`,body:null},{service:`EveningDetectiveServer`,method:`GetScenariosCatalog`})},GetFullScenario(t){if(!t.id)throw Error(`missing required field request.id`);let n=`api/scenarios/${t.id}/full`,r=[],i=n;return r.length>0&&(i+=`?${r.join(`&`)}`),e({path:i,method:`GET`,body:null},{service:`EveningDetectiveServer`,method:`GetFullScenario`})},GetScenario(t){if(!t.id)throw Error(`missing required field request.id`);let n=`api/scenarios/${t.id}`,r=[],i=n;return r.length>0&&(i+=`?${r.join(`&`)}`),e({path:i,method:`GET`,body:null},{service:`EveningDetectiveServer`,method:`GetScenario`})},UpdateScenario(t){if(!t.id)throw Error(`missing required field request.id`);let n=`api/scenarios/${t.id}`,r=JSON.stringify(t),i=[],a=n;return i.length>0&&(a+=`?${i.join(`&`)}`),e({path:a,method:`PUT`,body:r},{service:`EveningDetectiveServer`,method:`UpdateScenario`})},PublicScenario(t){if(!t.id)throw Error(`missing required field request.id`);let n=`api/scenarios/${t.id}/public`,r=JSON.stringify(t),i=[],a=n;return i.length>0&&(a+=`?${i.join(`&`)}`),e({path:a,method:`PUT`,body:r},{service:`EveningDetectiveServer`,method:`PublicScenario`})},DraftScenario(t){if(!t.id)throw Error(`missing required field request.id`);let n=`api/scenarios/${t.id}/draft`,r=JSON.stringify(t),i=[],a=n;return i.length>0&&(a+=`?${i.join(`&`)}`),e({path:a,method:`PUT`,body:r},{service:`EveningDetectiveServer`,method:`DraftScenario`})},DeleteScenario(t){if(!t.id)throw Error(`missing required field request.id`);let n=`api/scenarios/${t.id}`,r=[],i=n;return r.length>0&&(i+=`?${r.join(`&`)}`),e({path:i,method:`DELETE`,body:null},{service:`EveningDetectiveServer`,method:`DeleteScenario`})},AddScenarioPlace(t){if(!t.id)throw Error(`missing required field request.id`);let n=`api/scenarios/${t.id}/places`,r=JSON.stringify(t),i=[],a=n;return i.length>0&&(a+=`?${i.join(`&`)}`),e({path:a,method:`POST`,body:r},{service:`EveningDetectiveServer`,method:`AddScenarioPlace`})},UpdateScenarioPlace(t){if(!t.id)throw Error(`missing required field request.id`);if(!t.code)throw Error(`missing required field request.code`);let n=`api/scenarios/${t.id}/places/${t.code}`,r=JSON.stringify(t),i=[],a=n;return i.length>0&&(a+=`?${i.join(`&`)}`),e({path:a,method:`PUT`,body:r},{service:`EveningDetectiveServer`,method:`UpdateScenarioPlace`})},DeleteScenarioPlace(t){if(!t.id)throw Error(`missing required field request.id`);if(!t.code)throw Error(`missing required field request.code`);let n=`api/scenarios/${t.id}/places/${t.code}`,r=[],i=n;return r.length>0&&(i+=`?${r.join(`&`)}`),e({path:i,method:`DELETE`,body:null},{service:`EveningDetectiveServer`,method:`DeleteScenarioPlace`})},AddGame(t){let n=JSON.stringify(t),r=[],i=`api/games`;return r.length>0&&(i+=`?${r.join(`&`)}`),e({path:i,method:`POST`,body:n},{service:`EveningDetectiveServer`,method:`AddGame`})},GetGames(t){let n=[],r=`api/games`;return n.length>0&&(r+=`?${n.join(`&`)}`),e({path:r,method:`GET`,body:null},{service:`EveningDetectiveServer`,method:`GetGames`})},GetGame(t){if(!t.id)throw Error(`missing required field request.id`);let n=`api/games/${t.id}`,r=[],i=n;return r.length>0&&(i+=`?${r.join(`&`)}`),e({path:i,method:`GET`,body:null},{service:`EveningDetectiveServer`,method:`GetGame`})},UpdateGame(t){if(!t.id)throw Error(`missing required field request.id`);let n=`api/games/${t.id}`,r=JSON.stringify(t),i=[],a=n;return i.length>0&&(a+=`?${i.join(`&`)}`),e({path:a,method:`PUT`,body:r},{service:`EveningDetectiveServer`,method:`UpdateGame`})},StartGame(t){if(!t.id)throw Error(`missing required field request.id`);let n=`api/games/${t.id}/start`,r=JSON.stringify(t),i=[],a=n;return i.length>0&&(a+=`?${i.join(`&`)}`),e({path:a,method:`PUT`,body:r},{service:`EveningDetectiveServer`,method:`StartGame`})},PauseGame(t){if(!t.id)throw Error(`missing required field request.id`);let n=`api/games/${t.id}/pause`,r=JSON.stringify(t),i=[],a=n;return i.length>0&&(a+=`?${i.join(`&`)}`),e({path:a,method:`PUT`,body:r},{service:`EveningDetectiveServer`,method:`PauseGame`})},PlayGame(t){if(!t.id)throw Error(`missing required field request.id`);let n=`api/games/${t.id}/play`,r=JSON.stringify(t),i=[],a=n;return i.length>0&&(a+=`?${i.join(`&`)}`),e({path:a,method:`PUT`,body:r},{service:`EveningDetectiveServer`,method:`PlayGame`})},FinishGame(t){if(!t.id)throw Error(`missing required field request.id`);let n=`api/games/${t.id}/finish`,r=JSON.stringify(t),i=[],a=n;return i.length>0&&(a+=`?${i.join(`&`)}`),e({path:a,method:`PUT`,body:r},{service:`EveningDetectiveServer`,method:`FinishGame`})},ResetGame(t){if(!t.id)throw Error(`missing required field request.id`);let n=`api/games/${t.id}/reset`,r=JSON.stringify(t),i=[],a=n;return i.length>0&&(a+=`?${i.join(`&`)}`),e({path:a,method:`PUT`,body:r},{service:`EveningDetectiveServer`,method:`ResetGame`})},DeleteGame(t){if(!t.id)throw Error(`missing required field request.id`);let n=`api/games/${t.id}`,r=[],i=n;return r.length>0&&(i+=`?${r.join(`&`)}`),e({path:i,method:`DELETE`,body:null},{service:`EveningDetectiveServer`,method:`DeleteGame`})},AddTeam(t){let n=JSON.stringify(t),r=[],i=`api/teams`;return r.length>0&&(i+=`?${r.join(`&`)}`),e({path:i,method:`POST`,body:n},{service:`EveningDetectiveServer`,method:`AddTeam`})},UpdateTeam(t){if(!t.id)throw Error(`missing required field request.id`);let n=`api/teams/${t.id}`,r=JSON.stringify(t),i=[],a=n;return i.length>0&&(a+=`?${i.join(`&`)}`),e({path:a,method:`PUT`,body:r},{service:`EveningDetectiveServer`,method:`UpdateTeam`})},DeleteTeam(t){if(!t.id)throw Error(`missing required field request.id`);let n=`api/teams/${t.id}`,r=[],i=n;return r.length>0&&(i+=`?${r.join(`&`)}`),e({path:i,method:`DELETE`,body:null},{service:`EveningDetectiveServer`,method:`DeleteTeam`})},GiveTeamApplications(t){if(!t.id)throw Error(`missing required field request.id`);let n=`api/teams/${t.id}/applications`,r=JSON.stringify(t),i=[],a=n;return i.length>0&&(a+=`?${i.join(`&`)}`),e({path:a,method:`POST`,body:r},{service:`EveningDetectiveServer`,method:`GiveTeamApplications`})},GetTeamStory(t){if(!t.id)throw Error(`missing required field request.id`);let n=`api/teams/${t.id}/story`,r=[];t.password&&r.push(`password=${encodeURIComponent(t.password.toString())}`);let i=n;return r.length>0&&(i+=`?${r.join(`&`)}`),e({path:i,method:`GET`,body:null},{service:`EveningDetectiveServer`,method:`GetTeamStory`})},AddTeamAction(t){if(!t.id)throw Error(`missing required field request.id`);let n=`api/teams/${t.id}/actions`,r=JSON.stringify(t),i=[],a=n;return i.length>0&&(a+=`?${i.join(`&`)}`),e({path:a,method:`POST`,body:r},{service:`EveningDetectiveServer`,method:`AddTeamAction`})},DeleteLastTeamAction(t){if(!t.id)throw Error(`missing required field request.id`);let n=`api/teams/${t.id}/last-actions`,r=[],i=n;return r.length>0&&(i+=`?${r.join(`&`)}`),e({path:i,method:`DELETE`,body:null},{service:`EveningDetectiveServer`,method:`DeleteLastTeamAction`})}}}function GM(e,t){return WM(KM(e,t))}function KM(e,t){return async n=>{let r=`${qM()}/${n.path}`,i={"Content-Type":`application/json`},a=e?.();a&&(i.Authorization=`Bearer ${a}`);let o=t?.();o&&Object.assign(i,o);let s=await fetch(r,{method:n.method,headers:i,body:n.body});if(s.status==401)throw Error(`unauthorized`);return await s.json()}}function qM(){return`https://evening-detective.crabs-games.art`}var JM=vc(`auth`,()=>{let e=k(null),t=k(null),n=k(null),r=k(!1),i=k(null),a=V(()=>!!e.value),o=V(()=>n.value?.username||``),s=V(()=>n.value?.roles||[]);function c(){let n=localStorage.getItem(`accessToken`),r=localStorage.getItem(`refreshToken`);n&&(e.value=n,t.value=r,u())}function l(){return e.value}async function u(){if(e.value)try{let e=await GM(l).GetMe({});if(e.error){i.value=e.error;return}e.user&&(n.value=e.user)}catch(e){console.error(`Failed to fetch user:`,e),e instanceof Error&&e.message.includes(`401`)&&await g()}}async function d(n,a){r.value=!0,i.value=null;try{let r=await GM(l).Login({email:n,password:a});return r.error?(i.value=r.error,!1):r.accessToken?(e.value=r.accessToken,t.value=r.refreshToken||null,localStorage.setItem(`accessToken`,r.accessToken),r.refreshToken&&localStorage.setItem(`refreshToken`,r.refreshToken),await u(),!0):!1}catch(e){return i.value=e instanceof Error?e.message:`Login failed`,!1}finally{r.value=!1}}async function f(){if(!t.value)return!1;try{let n=await GM(l).Refresh({refreshToken:t.value});return n.error||!n.accessToken?!1:(e.value=n.accessToken,t.value=n.refreshToken||null,localStorage.setItem(`accessToken`,n.accessToken),n.refreshToken&&localStorage.setItem(`refreshToken`,n.refreshToken),!0)}catch{return!1}}async function p(e,t,n,a){r.value=!0,i.value=null;try{let r=await GM(l).Signup({username:e,email:t,acceptTerms:n,acceptPrivacy:a});return r.error?(i.value=r.error,!1):!0}catch(e){return i.value=e instanceof Error?e.message:`Signup failed`,!1}finally{r.value=!1}}async function m(e){r.value=!0,i.value=null;try{let t=await GM(l,()=>({"X-Password":e})).DeleteAccount({});return t.error?(i.value=t.error,!1):(await g(),!0)}catch(e){return i.value=e instanceof Error?e.message:`Account deletion failed`,!1}finally{r.value=!1}}async function h(e){r.value=!0,i.value=null;try{let t=await GM(l).RefreshPassword({email:e});return t.error?(i.value=t.error,!1):!0}catch(e){return i.value=e instanceof Error?e.message:`Password reset failed`,!1}finally{r.value=!1}}async function g(){e.value=null,t.value=null,n.value=null,i.value=null,localStorage.removeItem(`accessToken`),localStorage.removeItem(`refreshToken`)}function _(e){return s.value.includes(e)}function v(e){return e.some(e=>s.value.includes(e))}return{accessToken:e,refreshToken:t,user:n,isLoading:r,error:i,isAuthenticated:a,username:o,userRoles:s,initFromStorage:c,getToken:l,login:d,signup:p,deleteAccount:m,refreshPassword:h,logout:g,fetchUser:u,refreshTokenAction:f,hasRole:_,hasAnyRole:v}});function YM(){let e=JM();return XM(e.refreshTokenAction,e.getToken)}function XM(e,t){return WM(ZM(e,KM(t)))}function ZM(e,t){return async n=>{try{return await t(n)}catch{return await e(),await t(n)}}}var QM={xmlns:`http://www.w3.org/2000/svg`,"xmlns:xlink":`http://www.w3.org/1999/xlink`,viewBox:`0 0 24 24`},$M=P({name:`ContactMailRound`,render:function(e,t){return I(),L(`svg`,QM,t[0]||=[R(`path`,{d:`M21 8V7l-3 2l-3-2v1l2.72 1.82a.5.5 0 0 0 .55 0L21 8zm1-5H2C.9 3 0 3.9 0 5v14c0 1.1.9 2 2 2h20c1.1 0 1.99-.9 1.99-2L24 5c0-1.1-.9-2-2-2zM8 6c1.66 0 3 1.34 3 3s-1.34 3-3 3s-3-1.34-3-3s1.34-3 3-3zm6 12H2v-1c0-2 4-3.1 6-3.1s6 1.1 6 3.1v1zm7.5-6h-7c-.28 0-.5-.22-.5-.5v-5c0-.28.22-.5.5-.5h7c.28 0 .5.22.5.5v5c0 .28-.22.5-.5.5z`,fill:`currentColor`},null,-1)])}}),eN={xmlns:`http://www.w3.org/2000/svg`,"xmlns:xlink":`http://www.w3.org/1999/xlink`,viewBox:`0 0 24 24`},tN=P({name:`LockOutlined`,render:function(e,t){return I(),L(`svg`,eN,t[0]||=[R(`path`,{d:`M18 8h-1V6c0-2.76-2.24-5-5-5S7 3.24 7 6v2H6c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V10c0-1.1-.9-2-2-2zM9 6c0-1.66 1.34-3 3-3s3 1.34 3 3v2H9V6zm9 14H6V10h12v10zm-6-3c1.1 0 2-.9 2-2s-.9-2-2-2s-2 .9-2 2s.9 2 2 2z`,fill:`currentColor`},null,-1)])}}),nN={xmlns:`http://www.w3.org/2000/svg`,"xmlns:xlink":`http://www.w3.org/1999/xlink`,viewBox:`0 0 24 24`},rN=P({name:`MenuOutlined`,render:function(e,t){return I(),L(`svg`,nN,t[0]||=[R(`path`,{d:`M3 18h18v-2H3v2zm0-5h18v-2H3v2zm0-7v2h18V6H3z`,fill:`currentColor`},null,-1)])}});function iN(e){let t=0;for(let n=0;n{let r=iN(t);if(!r){e.forEach(e=>{n.push((e&&e+` `)+t)});return}else if(r===1){e.forEach(e=>{n.push(t.replace(`&`,e))});return}let i=[t];for(;r--;){let t=[];i.forEach(n=>{e.forEach(e=>{t.push(n.replace(`&`,e))})}),i=t}i.forEach(e=>n.push(e))}),n}function cN(e,t){let n=[];return t.split(aN).forEach(t=>{e.forEach(e=>{n.push((e&&e+` `)+t)})}),n}function lN(e){let t=[``];return e.forEach(e=>{e&&=e.trim(),e&&(t=e.includes(`&`)?sN(t,e):cN(t,e))}),t.join(`, `).replace(oN,` `)}var uN=/[A-Z]/g;function dN(e){return e.replace(uN,e=>`-`+e.toLowerCase())}function fN(e,t=` `){return typeof e==`object`&&e?` { + `)]),fA=P({name:`UploadDragger`,__UPLOAD_DRAGGER__:!0,setup(e,{slots:t}){let n=N(uA,null);return n||hp(`upload-dragger`,"`n-upload-dragger` must be placed inside `n-upload`."),()=>{let{mergedClsPrefixRef:{value:e},mergedDisabledRef:{value:r},maxReachedRef:{value:i}}=n;return H(`div`,{class:[`${e}-upload-dragger`,(r||i)&&`${e}-upload-dragger--disabled`]},t)}}});function pA(){return H(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 28 28`},H(`g`,{fill:`none`},H(`path`,{d:`M21.75 3A3.25 3.25 0 0 1 25 6.25v15.5A3.25 3.25 0 0 1 21.75 25H6.25A3.25 3.25 0 0 1 3 21.75V6.25A3.25 3.25 0 0 1 6.25 3h15.5zm.583 20.4l-7.807-7.68a.75.75 0 0 0-.968-.07l-.084.07l-7.808 7.68c.183.065.38.1.584.1h15.5c.204 0 .4-.035.583-.1l-7.807-7.68l7.807 7.68zM21.75 4.5H6.25A1.75 1.75 0 0 0 4.5 6.25v15.5c0 .208.036.408.103.593l7.82-7.692a2.25 2.25 0 0 1 3.026-.117l.129.117l7.82 7.692c.066-.185.102-.385.102-.593V6.25a1.75 1.75 0 0 0-1.75-1.75zm-3.25 3a2.5 2.5 0 1 1 0 5a2.5 2.5 0 0 1 0-5zm0 1.5a1 1 0 1 0 0 2a1 1 0 0 0 0-2z`,fill:`currentColor`})))}function mA(){return H(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 28 28`},H(`g`,{fill:`none`},H(`path`,{d:`M6.4 2A2.4 2.4 0 0 0 4 4.4v19.2A2.4 2.4 0 0 0 6.4 26h15.2a2.4 2.4 0 0 0 2.4-2.4V11.578c0-.729-.29-1.428-.805-1.944l-6.931-6.931A2.4 2.4 0 0 0 14.567 2H6.4zm-.9 2.4a.9.9 0 0 1 .9-.9H14V10a2 2 0 0 0 2 2h6.5v11.6a.9.9 0 0 1-.9.9H6.4a.9.9 0 0 1-.9-.9V4.4zm16.44 6.1H16a.5.5 0 0 1-.5-.5V4.06l6.44 6.44z`,fill:`currentColor`})))}var hA=P({name:`UploadProgress`,props:{show:Boolean,percentage:{type:Number,required:!0},status:{type:String,required:!0}},setup(){return{mergedTheme:N(uA).mergedThemeRef}},render(){return H(Xx,null,{default:()=>this.show?H(jk,{type:`line`,showIndicator:!1,percentage:this.percentage,status:this.status,height:2,theme:this.mergedTheme.peers.Progress,themeOverrides:this.mergedTheme.peerOverrides.Progress}):null})}}),gA=function(e,t,n,r){function i(e){return e instanceof n?e:new n(function(t){t(e)})}return new(n||=Promise)(function(n,a){function o(e){try{c(r.next(e))}catch(e){a(e)}}function s(e){try{c(r.throw(e))}catch(e){a(e)}}function c(e){e.done?n(e.value):i(e.value).then(o,s)}c((r=r.apply(e,t||[])).next())})};function _A(e){return e.includes(`image/`)}function vA(e=``){let t=e.split(`/`),n=t[t.length-1].split(/#|\?/)[0];return(/\.[^./\\]*$/.exec(n)||[``])[0]}var yA=/(webp|svg|png|gif|jpg|jpeg|jfif|bmp|dpg|ico)$/i,bA=e=>{if(e.type)return _A(e.type);let t=vA(e.name||``);if(yA.test(t))return!0;let n=e.thumbnailUrl||e.url||``,r=vA(n);return!!(/^data:image\//.test(n)||yA.test(r))};function xA(e){return gA(this,void 0,void 0,function*(){return yield new Promise(t=>{if(!e.type||!_A(e.type)){t(``);return}t(window.URL.createObjectURL(e))})})}var SA=Iu&&window.FileReader&&window.File;function CA(e){return e.isDirectory}function wA(e){return e.isFile}function TA(e,t){return gA(this,void 0,void 0,function*(){let n=[];function r(e){return gA(this,void 0,void 0,function*(){for(let i of e)if(i){if(t&&CA(i)){let e=i.createReader(),t=[],n;try{do n=yield new Promise((t,n)=>{e.readEntries(t,n)}),t=t.concat(n);while(n.length>0)}catch(e){mp(`upload`,`error happens when handling directory upload`,e)}yield r(t)}else if(wA(i))try{let e=yield new Promise((e,t)=>{i.file(e,t)});n.push({file:e,entry:i,source:`dnd`})}catch(e){mp(`upload`,`error happens when handling file upload`,e)}}})}return yield r(e),n})}function EA(e){let{id:t,name:n,percentage:r,status:i,url:a,file:o,thumbnailUrl:s,type:c,fullPath:l,batchId:u}=e;return{id:t,name:n,percentage:r??null,status:i,url:a??null,file:o??null,thumbnailUrl:s??null,type:c??null,fullPath:l??null,batchId:u??null}}function DA(e,t,n){return e=e.toLowerCase(),t=t.toLocaleLowerCase(),n=n.toLocaleLowerCase(),n.split(`,`).map(e=>e.trim()).filter(Boolean).some(n=>{if(n.startsWith(`.`)){if(e.endsWith(n))return!0}else if(n.includes(`/`)){let[e,r]=t.split(`/`),[i,a]=n.split(`/`);if((i===`*`||e&&i&&i===e)&&(a===`*`||r&&a&&a===r))return!0}else return!0;return!1})}var OA=function(e,t,n,r){function i(e){return e instanceof n?e:new n(function(t){t(e)})}return new(n||=Promise)(function(n,a){function o(e){try{c(r.next(e))}catch(e){a(e)}}function s(e){try{c(r.throw(e))}catch(e){a(e)}}function c(e){e.done?n(e.value):i(e.value).then(o,s)}c((r=r.apply(e,t||[])).next())})},kA={paddingMedium:`0 3px`,heightMedium:`24px`,iconSizeMedium:`18px`},AA=P({name:`UploadFile`,props:{clsPrefix:{type:String,required:!0},file:{type:Object,required:!0},listType:{type:String,required:!0},index:{type:Number,required:!0}},setup(e){let t=N(uA),n=k(null),r=k(``),i=V(()=>{let{file:t}=e;return t.status===`finished`?`success`:t.status===`error`?`error`:`info`}),a=V(()=>{let{file:t}=e;if(t.status===`error`)return`error`}),o=V(()=>{let{file:t}=e;return t.status===`uploading`}),s=V(()=>{if(!t.showCancelButtonRef.value)return!1;let{file:n}=e;return[`uploading`,`pending`,`error`].includes(n.status)}),c=V(()=>{if(!t.showRemoveButtonRef.value)return!1;let{file:n}=e;return[`finished`].includes(n.status)}),l=V(()=>{if(!t.showDownloadButtonRef.value)return!1;let{file:n}=e;return[`finished`].includes(n.status)}),u=V(()=>{if(!t.showRetryButtonRef.value)return!1;let{file:n}=e;return[`error`].includes(n.status)}),d=au(()=>r.value||e.file.thumbnailUrl||e.file.url),f=V(()=>{if(!t.showPreviewButtonRef.value)return!1;let{file:{status:n},listType:r}=e;return[`finished`].includes(n)&&d.value&&r===`image-card`});function p(){return OA(this,void 0,void 0,function*(){let n=t.onRetryRef.value;n&&(yield n({file:e.file}))===!1||t.submit({fileId:e.file.id})})}function m(t){t.preventDefault();let{file:n}=e;[`finished`,`pending`,`error`].includes(n.status)?g(n):[`uploading`].includes(n.status)?v(n):pp(`upload`,`The button clicked type is unknown.`)}function h(t){t.preventDefault(),_(e.file)}function g(n){let{xhrMap:r,doChange:i,onRemoveRef:{value:a},mergedFileListRef:{value:o}}=t;Promise.resolve(a?a({file:Object.assign({},n),fileList:o,index:e.index}):!0).then(e=>{if(e===!1)return;let t=Object.assign({},n,{status:`removed`});r.delete(n.id),i(t,void 0,{remove:!0})})}function _(e){let{onDownloadRef:{value:n},customDownloadRef:{value:r}}=t;Promise.resolve(n?n(Object.assign({},e)):!0).then(t=>{t!==!1&&(r?r(Object.assign({},e)):cp(e.url,e.name))})}function v(e){let{xhrMap:n}=t;n.get(e.id)?.abort(),g(Object.assign({},e))}function y(r){let{onPreviewRef:{value:i}}=t;if(i)i(e.file,{event:r});else if(e.listType===`image-card`){let{value:e}=n;if(!e)return;e.showPreview()}}let b=()=>OA(this,void 0,void 0,function*(){let{listType:n}=e;n!==`image`&&n!==`image-card`||t.shouldUseThumbnailUrlRef.value(e.file)&&(r.value=yield t.getFileThumbnailUrlResolver(e.file))});return qn(()=>{b()}),{mergedTheme:t.mergedThemeRef,progressStatus:i,buttonType:a,showProgress:o,disabled:t.mergedDisabledRef,showCancelButton:s,showRemoveButton:c,showDownloadButton:l,showRetryButton:u,showPreviewButton:f,mergedThumbnailUrl:d,shouldUseThumbnailUrl:t.shouldUseThumbnailUrlRef,renderIcon:t.renderIconRef,imageRef:n,handleRemoveOrCancelClick:m,handleDownloadClick:h,handleRetryClick:p,handlePreviewClick:y}},render(){let{clsPrefix:e,mergedTheme:t,listType:n,file:r,renderIcon:i}=this,a,o=n===`image`;a=o||n===`image-card`?!this.shouldUseThumbnailUrl(r)||!this.mergedThumbnailUrl?H(`span`,{class:`${e}-upload-file-info__thumbnail`},i?i(r):bA(r)?H(gx,{clsPrefix:e},{default:pA}):H(gx,{clsPrefix:e},{default:mA})):H(`a`,{rel:`noopener noreferer`,target:`_blank`,href:r.url||void 0,class:`${e}-upload-file-info__thumbnail`,onClick:this.handlePreviewClick},n===`image-card`?H(yk,{src:this.mergedThumbnailUrl||void 0,previewSrc:r.url||void 0,alt:r.name,ref:`imageRef`}):H(`img`,{src:this.mergedThumbnailUrl||void 0,alt:r.name})):H(`span`,{class:`${e}-upload-file-info__thumbnail`},i?i(r):H(gx,{clsPrefix:e},{default:()=>H(Sx,null)}));let s=H(hA,{show:this.showProgress,percentage:r.percentage||0,status:this.progressStatus}),c=n===`text`||n===`image`;return H(`div`,{class:[`${e}-upload-file`,`${e}-upload-file--${this.progressStatus}-status`,r.url&&r.status!==`error`&&n!==`image-card`&&`${e}-upload-file--with-url`,`${e}-upload-file--${n}-type`]},H(`div`,{class:`${e}-upload-file-info`},a,H(`div`,{class:`${e}-upload-file-info__name`},c&&(r.url&&r.status!==`error`?H(`a`,{rel:`noopener noreferer`,target:`_blank`,href:r.url||void 0,onClick:this.handlePreviewClick},r.name):H(`span`,{onClick:this.handlePreviewClick},r.name)),o&&s),H(`div`,{class:[`${e}-upload-file-info__action`,`${e}-upload-file-info__action--${n}-type`]},this.showPreviewButton?H($,{key:`preview`,quaternary:!0,type:this.buttonType,onClick:this.handlePreviewClick,theme:t.peers.Button,themeOverrides:t.peerOverrides.Button,builtinThemeOverrides:kA},{icon:()=>H(gx,{clsPrefix:e},{default:()=>H(jx,null)})}):null,(this.showRemoveButton||this.showCancelButton)&&!this.disabled&&H($,{key:`cancelOrTrash`,theme:t.peers.Button,themeOverrides:t.peerOverrides.Button,quaternary:!0,builtinThemeOverrides:kA,type:this.buttonType,onClick:this.handleRemoveOrCancelClick},{icon:()=>H(_x,null,{default:()=>this.showRemoveButton?H(gx,{clsPrefix:e,key:`trash`},{default:()=>H(Bx,null)}):H(gx,{clsPrefix:e,key:`cancel`},{default:()=>H(Cx,null)})})}),this.showRetryButton&&!this.disabled&&H($,{key:`retry`,quaternary:!0,type:this.buttonType,onClick:this.handleRetryClick,theme:t.peers.Button,themeOverrides:t.peerOverrides.Button,builtinThemeOverrides:kA},{icon:()=>H(gx,{clsPrefix:e},{default:()=>H(Ix,null)})}),this.showDownloadButton?H($,{key:`download`,quaternary:!0,type:this.buttonType,onClick:this.handleDownloadClick,theme:t.peers.Button,themeOverrides:t.peerOverrides.Button,builtinThemeOverrides:kA},{icon:()=>H(gx,{clsPrefix:e},{default:()=>H(Ox,null)})}):null)),!o&&s)}}),jA=P({name:`UploadTrigger`,props:{abstract:Boolean},slots:Object,setup(e,{slots:t}){let n=N(uA,null);n||hp(`upload-trigger`,"`n-upload-trigger` must be placed inside `n-upload`.");let{mergedClsPrefixRef:r,mergedDisabledRef:i,maxReachedRef:a,listTypeRef:o,dragOverRef:s,openOpenFileDialog:c,draggerInsideRef:l,handleFileAddition:u,mergedDirectoryDndRef:d,triggerClassRef:f,triggerStyleRef:p}=n,m=V(()=>o.value===`image-card`);function h(){i.value||a.value||c()}function g(e){e.preventDefault(),s.value=!0}function _(e){e.preventDefault(),s.value=!0}function v(e){e.preventDefault(),s.value=!1}function y(e){if(e.preventDefault(),!l.value||i.value||a.value){s.value=!1;return}let t=e.dataTransfer?.items;t?.length?TA(Array.from(t).map(e=>e.webkitGetAsEntry()),d.value).then(e=>{u(e)}).finally(()=>{s.value=!1}):s.value=!1}return()=>{let{value:n}=r;return e.abstract?t.default?.call(t,{handleClick:h,handleDrop:y,handleDragOver:g,handleDragEnter:_,handleDragLeave:v}):H(`div`,{class:[`${n}-upload-trigger`,(i.value||a.value)&&`${n}-upload-trigger--disabled`,m.value&&`${n}-upload-trigger--image-card`,f.value],style:p.value,onClick:h,onDrop:y,onDragover:g,onDragenter:_,onDragleave:v},m.value?H(fA,null,{default:()=>Ep(t.default,()=>[H(gx,{clsPrefix:n},{default:()=>H(vx,null)})])}):t)}}}),MA=P({name:`UploadFileList`,setup(e,{slots:t}){let n=N(uA,null);n||hp(`upload-file-list`,"`n-upload-file-list` must be placed inside `n-upload`.");let{abstractRef:r,mergedClsPrefixRef:i,listTypeRef:a,mergedFileListRef:o,fileListClassRef:s,fileListStyleRef:c,cssVarsRef:l,themeClassRef:u,maxReachedRef:d,showTriggerRef:f,imageGroupPropsRef:p}=n,m=V(()=>a.value===`image-card`),h=()=>o.value.map((e,t)=>H(AA,{clsPrefix:i.value,key:e.id,file:e,index:t,listType:a.value})),g=()=>m.value?H(gk,Object.assign({},p.value),{default:h}):H(Xx,{group:!0},{default:h});return()=>{let{value:e}=i,{value:n}=r;return H(`div`,{class:[`${e}-upload-file-list`,m.value&&`${e}-upload-file-list--grid`,n?u?.value:void 0,s.value],style:[n&&l?l.value:``,c.value]},g(),f.value&&!d.value&&m.value&&H(jA,null,t))}}}),NA=function(e,t,n,r){function i(e){return e instanceof n?e:new n(function(t){t(e)})}return new(n||=Promise)(function(n,a){function o(e){try{c(r.next(e))}catch(e){a(e)}}function s(e){try{c(r.throw(e))}catch(e){a(e)}}function c(e){e.done?n(e.value):i(e.value).then(o,s)}c((r=r.apply(e,t||[])).next())})};function PA(e,t,n){let{doChange:r,xhrMap:i}=e,a=0;function o(n){let o=Object.assign({},t,{status:`error`,percentage:a});i.delete(t.id),o=EA(e.onError?.call(e,{file:o,event:n})||o),r(o,n)}function s(s){if(e.isErrorState){if(e.isErrorState(n)){o(s);return}}else if(n.status<200||n.status>=300){o(s);return}let c=Object.assign({},t,{status:`finished`,percentage:a});i.delete(t.id),c=EA(e.onFinish?.call(e,{file:c,event:s})||c),r(c,s)}return{handleXHRLoad:s,handleXHRError:o,handleXHRAbort(e){let n=Object.assign({},t,{status:`removed`,file:null,percentage:a});i.delete(t.id),r(n,e)},handleXHRProgress(e){let n=Object.assign({},t,{status:`uploading`});if(e.lengthComputable){let t=Math.ceil(e.loaded/e.total*100);n.percentage=t,a=t}r(n,e)}}}function FA(e){let{inst:t,file:n,data:r,headers:i,withCredentials:a,action:o,customRequest:s}=e,{doChange:c}=e.inst,l=0;s({file:n,data:r,headers:i,withCredentials:a,action:o,onProgress(e){let t=Object.assign({},n,{status:`uploading`}),r=e.percent;t.percentage=r,l=r,c(t)},onFinish(){let e=Object.assign({},n,{status:`finished`,percentage:l});e=EA(t.onFinish?.call(t,{file:e})||e),c(e)},onError(){let e=Object.assign({},n,{status:`error`,percentage:l});e=EA(t.onError?.call(t,{file:e})||e),c(e)}})}function IA(e,t,n){let r=PA(e,t,n);n.onabort=r.handleXHRAbort,n.onerror=r.handleXHRError,n.onload=r.handleXHRLoad,n.upload&&(n.upload.onprogress=r.handleXHRProgress)}function LA(e,t){return typeof e==`function`?e({file:t}):e||{}}function RA(e,t,n){let r=LA(t,n);r&&Object.keys(r).forEach(t=>{e.setRequestHeader(t,r[t])})}function zA(e,t,n){let r=LA(t,n);r&&Object.keys(r).forEach(t=>{e.append(t,r[t])})}function BA(e,t,n,{method:r,action:i,withCredentials:a,responseType:o,headers:s,data:c}){let l=new XMLHttpRequest;l.responseType=o,e.xhrMap.set(n.id,l),l.withCredentials=a;let u=new FormData;if(zA(u,c,n),n.file!==null&&u.append(t,n.file),IA(e,n,l),i!==void 0){l.open(r.toUpperCase(),i),RA(l,s,n),l.send(u);let t=Object.assign({},n,{status:`uploading`});e.doChange(t)}}var VA=P({name:`Upload`,props:Object.assign(Object.assign({},mx.props),{name:{type:String,default:`file`},accept:String,action:String,customRequest:Function,directory:Boolean,directoryDnd:{type:Boolean,default:void 0},method:{type:String,default:`POST`},multiple:Boolean,showFileList:{type:Boolean,default:!0},data:[Object,Function],headers:[Object,Function],withCredentials:Boolean,responseType:{type:String,default:``},disabled:{type:Boolean,default:void 0},onChange:Function,onRemove:Function,onFinish:Function,onError:Function,onRetry:Function,onBeforeUpload:Function,isErrorState:Function,onDownload:Function,customDownload:Function,defaultUpload:{type:Boolean,default:!0},fileList:Array,"onUpdate:fileList":[Function,Array],onUpdateFileList:[Function,Array],fileListClass:String,fileListStyle:[String,Object],defaultFileList:{type:Array,default:()=>[]},showCancelButton:{type:Boolean,default:!0},showRemoveButton:{type:Boolean,default:!0},showDownloadButton:Boolean,showRetryButton:{type:Boolean,default:!0},showPreviewButton:{type:Boolean,default:!0},listType:{type:String,default:`text`},onPreview:Function,shouldUseThumbnailUrl:{type:Function,default:e=>SA?bA(e):!1},createThumbnailUrl:Function,abstract:Boolean,max:Number,showTrigger:{type:Boolean,default:!0},imageGroupProps:Object,inputProps:Object,triggerClass:String,triggerStyle:[String,Object],renderIcon:Function}),setup(e){e.abstract&&e.listType===`image-card`&&hp(`upload`,`when the list-type is image-card, abstract is not supported.`);let{mergedClsPrefixRef:t,inlineThemeDisabled:n,mergedRtlRef:r}=Mp(e),i=mx(`Upload`,`-upload`,dA,XO,e,t),a=ox(`Upload`,r,t),o=Fp(e),s=k(e.defaultFileList),c=j(e,`fileList`),l=k(null),u={value:!1},d=k(!1),f=new Map,p=xu(c,s),m=V(()=>p.value.map(EA)),h=V(()=>{let{max:t}=e;return t===void 0?!1:m.value.length>=t});function g(){var e;(e=l.value)==null||e.click()}function _(e){let t=e.target;x(t.files?Array.from(t.files).map(e=>({file:e,entry:null,source:`input`})):null,e),t.value=``}function v(t){let{"onUpdate:fileList":n,onUpdateFileList:r}=e;n&&X(n,t),r&&X(r,t),s.value=t}let y=V(()=>e.multiple||e.directory),b=(t,n,r={append:!1,remove:!1})=>{let{append:i,remove:a}=r,o=Array.from(m.value),s=o.findIndex(e=>e.id===t.id);if(i||a||~s){i?o.push(t):a?o.splice(s,1):o.splice(s,1,t);let{onChange:r}=e;r&&r({file:t,fileList:o,event:n}),v(o)}};function x(t,n){if(!t||t.length===0)return;let{onBeforeUpload:r}=e;t=y.value?t:[t[0]];let{max:i,accept:a}=e;t=t.filter(({file:e,source:t})=>t===`dnd`&&a?.trim()?DA(e.name,e.type,a):!0),i&&(t=t.slice(0,i-m.value.length));let o=Jl();Promise.all(t.map(e=>NA(this,[e],void 0,function*({file:e,entry:t}){let n={id:Jl(),batchId:o,name:e.name,status:`pending`,percentage:0,file:e,url:null,type:e.type,thumbnailUrl:null,fullPath:t?.fullPath??`/${e.webkitRelativePath||e.name}`};return!r||(yield r({file:n,fileList:m.value}))!==!1?n:null}))).then(e=>NA(this,void 0,void 0,function*(){let t=Promise.resolve();e.forEach(e=>{t=t.then(kn).then(()=>{e&&b(e,n,{append:!0})})}),yield t})).then(()=>{e.defaultUpload&&S()})}function S({fileId:t,retry:n=!1}={}){let{method:r,action:i,withCredentials:a,headers:o,data:s,name:c}=e,l=t===void 0?m.value:m.value.filter(e=>e.id===t),u=n||t!==void 0;l.forEach(t=>{let{status:n}=t;(n===`pending`||n===`error`&&u)&&(e.customRequest?FA({inst:{doChange:b,xhrMap:f,onFinish:e.onFinish,onError:e.onError},file:t,action:i,withCredentials:a,headers:o,data:s,customRequest:e.customRequest}):BA({doChange:b,xhrMap:f,onFinish:e.onFinish,onError:e.onError,isErrorState:e.isErrorState},c,t,{method:r,action:i,withCredentials:a,responseType:e.responseType,headers:o,data:s}))})}function C(t){if(t.thumbnailUrl)return t.thumbnailUrl;let{createThumbnailUrl:n}=e;return n?n(t.file,t)??(t.url||``):t.url?t.url:t.file?xA(t.file):``}let w=V(()=>{let{common:{cubicBezierEaseInOut:e},self:{draggerColor:t,draggerBorder:n,draggerBorderHover:r,itemColorHover:a,itemColorHoverError:o,itemTextColorError:s,itemTextColorSuccess:c,itemTextColor:l,itemIconColor:u,itemDisabledOpacity:d,lineHeight:f,borderRadius:p,fontSize:m,itemBorderImageCardError:h,itemBorderImageCard:g}}=i.value;return{"--n-bezier":e,"--n-border-radius":p,"--n-dragger-border":n,"--n-dragger-border-hover":r,"--n-dragger-color":t,"--n-font-size":m,"--n-item-color-hover":a,"--n-item-color-hover-error":o,"--n-item-disabled-opacity":d,"--n-item-icon-color":u,"--n-item-text-color":l,"--n-item-text-color-error":s,"--n-item-text-color-success":c,"--n-line-height":f,"--n-item-border-image-card-error":h,"--n-item-border-image-card":g}}),T=n?Np(`upload`,void 0,w,e):void 0;Un(uA,{mergedClsPrefixRef:t,mergedThemeRef:i,showCancelButtonRef:j(e,`showCancelButton`),showDownloadButtonRef:j(e,`showDownloadButton`),showRemoveButtonRef:j(e,`showRemoveButton`),showRetryButtonRef:j(e,`showRetryButton`),onRemoveRef:j(e,`onRemove`),onDownloadRef:j(e,`onDownload`),customDownloadRef:j(e,`customDownload`),mergedFileListRef:m,triggerClassRef:j(e,`triggerClass`),triggerStyleRef:j(e,`triggerStyle`),shouldUseThumbnailUrlRef:j(e,`shouldUseThumbnailUrl`),renderIconRef:j(e,`renderIcon`),xhrMap:f,submit:S,doChange:b,showPreviewButtonRef:j(e,`showPreviewButton`),onPreviewRef:j(e,`onPreview`),getFileThumbnailUrlResolver:C,listTypeRef:j(e,`listType`),dragOverRef:d,openOpenFileDialog:g,draggerInsideRef:u,handleFileAddition:x,mergedDisabledRef:o.mergedDisabledRef,maxReachedRef:h,fileListClassRef:j(e,`fileListClass`),fileListStyleRef:j(e,`fileListStyle`),abstractRef:j(e,`abstract`),acceptRef:j(e,`accept`),cssVarsRef:n?void 0:w,themeClassRef:T?.themeClass,onRender:T?.onRender,showTriggerRef:j(e,`showTrigger`),imageGroupPropsRef:j(e,`imageGroupProps`),mergedDirectoryDndRef:V(()=>e.directoryDnd??e.directory),onRetryRef:j(e,`onRetry`)});let ee={clear:()=>{s.value=[]},submit:S,openOpenFileDialog:g};return Object.assign({mergedClsPrefix:t,draggerInsideRef:u,rtlEnabled:a,inputElRef:l,mergedTheme:i,dragOver:d,mergedMultiple:y,cssVars:n?void 0:w,themeClass:T?.themeClass,onRender:T?.onRender,handleFileInputChange:_},ee)},render(){let{draggerInsideRef:e,mergedClsPrefix:t,$slots:n,directory:r,onRender:i}=this;n.default&&!this.abstract&&n.default()[0]?.type?.__UPLOAD_DRAGGER__&&(e.value=!0);let a=H(`input`,Object.assign({},this.inputProps,{ref:`inputElRef`,type:`file`,class:`${t}-upload-file-input`,accept:this.accept,multiple:this.mergedMultiple,onChange:this.handleFileInputChange,webkitdirectory:r||void 0,directory:r||void 0}));return this.abstract?H(F,null,n.default?.call(n),H(lr,{to:`body`},a)):(i?.(),H(`div`,{class:[`${t}-upload`,this.rtlEnabled&&`${t}-upload--rtl`,e.value&&`${t}-upload--dragger-inside`,this.dragOver&&`${t}-upload--drag-over`,this.themeClass],style:this.cssVars},a,this.showTrigger&&this.listType!==`image-card`&&H(jA,null,n),this.showFileList&&H(MA,null,n)))}}),HA={name:`dark`,common:Q,Alert:nw,Anchor:pw,AutoComplete:Iw,Avatar:Jw,AvatarGroup:Xw,BackTop:Qw,Badge:$w,Breadcrumb:nT,Button:lT,ButtonGroup:zD,Calendar:yT,Card:CT,Carousel:AT,Cascader:IT,Checkbox:PT,Code:HT,Collapse:WT,CollapseTransition:KT,ColorPicker:JT,DataTable:mE,DatePicker:CE,Descriptions:EE,Dialog:jE,Divider:fD,Drawer:mD,Dropdown:iE,DynamicInput:gD,DynamicTags:MD,Element:ND,Empty:sC,Ellipsis:lE,Equation:{name:`Equation`,common:Q,self:()=>({})},Flex:FD,Form:HD,GradientText:UD,Heatmap:tk,Icon:_E,IconWrapper:rk,Image:ik,Input:vw,InputNumber:WD,InputOtp:KD,LegacyTransfer:xk,Layout:qD,List:XD,LoadingBar:qE,Log:ZD,Menu:tO,Mention:QD,Message:$E,Modal:zE,Notification:uD,PageHeader:iO,Pagination:tE,Popconfirm:sO,Popover:TC,Popselect:XT,Progress:uO,QrCode:Mk,Radio:dE,Rate:dO,Result:mO,Row:JD,Scrollbar:yS,Select:QT,Skeleton:Hk,Slider:gO,Space:ED,Spin:yO,Statistic:xO,Steps:wO,Switch:EO,Table:jO,Tabs:FO,Tag:BC,Thing:LO,TimePicker:bE,Timeline:zO,Tooltip:oE,Transfer:VO,Tree:UO,TreeSelect:WO,Typography:JO,Upload:ZO,Watermark:QO,Split:Kk,FloatButton:$O,FloatButtonGroup:{name:`FloatButtonGroup`,common:Q,self(e){let{popoverColor:t,dividerColor:n,borderRadius:r}=e;return{color:t,buttonBorderColor:n,borderRadiusSquare:r,boxShadow:`0 2px 8px 0px rgba(0, 0, 0, .12)`}}},Marquee:Ck},UA=typeof document<`u`;function WA(e){return typeof e==`object`||`displayName`in e||`props`in e||`__vccOpts`in e}function GA(e){return e.__esModule||e[Symbol.toStringTag]===`Module`||e.default&&WA(e.default)}var KA=Object.assign;function qA(e,t){let n={};for(let r in t){let i=t[r];n[r]=YA(i)?i.map(e):e(i)}return n}var JA=()=>{},YA=Array.isArray;function XA(e,t){let n={};for(let r in e)n[r]=r in t?t[r]:e[r];return n}var ZA=Symbol(``);function QA(e,t){return KA(Error(),{type:e,[ZA]:!0},t)}function $A(e,t){return e instanceof Error&&ZA in e&&(t==null||!!(e.type&t))}var ej=Symbol(``),tj=Symbol(``),nj=Symbol(``),rj=Symbol(``),ij=Symbol(``);function aj(){return N(nj)}function oj(e){return N(rj)}var sj=/#/g,cj=/&/g,lj=/\//g,uj=/=/g,dj=/\?/g,fj=/\+/g,pj=/%5B/g,mj=/%5D/g,hj=/%5E/g,gj=/%60/g,_j=/%7B/g,vj=/%7C/g,yj=/%7D/g,bj=/%20/g;function xj(e){return e==null?``:encodeURI(``+e).replace(vj,`|`).replace(pj,`[`).replace(mj,`]`)}function Sj(e){return xj(e).replace(_j,`{`).replace(yj,`}`).replace(hj,`^`)}function Cj(e){return xj(e).replace(fj,`%2B`).replace(bj,`+`).replace(sj,`%23`).replace(cj,`%26`).replace(gj,"`").replace(_j,`{`).replace(yj,`}`).replace(hj,`^`)}function wj(e){return Cj(e).replace(uj,`%3D`)}function Tj(e){return xj(e).replace(sj,`%23`).replace(dj,`%3F`)}function Ej(e){return Tj(e).replace(lj,`%2F`)}function Dj(e){if(e==null)return null;try{return decodeURIComponent(``+e)}catch{}return``+e}var Oj=/\/$/,kj=e=>e.replace(Oj,``);function Aj(e,t,n=`/`){let r,i={},a=``,o=``,s=t.indexOf(`#`),c=t.indexOf(`?`);return c=s>=0&&c>s?-1:c,c>=0&&(r=t.slice(0,c),a=t.slice(c,s>0?s:t.length),i=e(a.slice(1))),s>=0&&(r||=t.slice(0,s),o=t.slice(s,t.length)),r=Rj(r??t,n),{fullPath:r+a+o,path:r,query:i,hash:Dj(o)}}function jj(e,t){let n=t.query?e(t.query):``;return t.path+(n&&`?`)+n+(t.hash||``)}function Mj(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||`/`}function Nj(e,t,n){let r=t.matched.length-1,i=n.matched.length-1;return r>-1&&r===i&&Pj(t.matched[r],n.matched[i])&&Fj(t.params,n.params)&&e(t.query)===e(n.query)&&t.hash===n.hash}function Pj(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function Fj(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(var n in e)if(!Ij(e[n],t[n]))return!1;return!0}function Ij(e,t){return YA(e)?Lj(e,t):YA(t)?Lj(t,e):(e&&e.valueOf())===(t&&t.valueOf())}function Lj(e,t){return YA(t)?e.length===t.length&&e.every((e,n)=>e===t[n]):e.length===1&&e[0]===t}function Rj(e,t){if(e.startsWith(`/`))return e;if(!e)return t;let n=t.split(`/`),r=e.split(`/`),i=r[r.length-1];(i===`..`||i===`.`)&&r.push(``);let a=n.length-1,o,s;for(o=0;o1&&a--;else break;return n.slice(0,a).join(`/`)+`/`+r.slice(o).join(`/`)}var zj={path:`/`,name:void 0,params:{},query:{},hash:``,fullPath:`/`,matched:[],meta:{},redirectedFrom:void 0};function Bj(e){if(!e)if(UA){let t=document.querySelector(`base`);e=t&&t.getAttribute(`href`)||`/`,e=e.replace(/^\w+:\/\/[^/]+/,``)}else e=`/`;return e[0]!==`/`&&e[0]!==`#`&&(e=`/`+e),kj(e)}var Vj=/^[^#]+#/;function Hj(e,t){return e.replace(Vj,`#`)+t}function Uj(e,t){let n=document.documentElement.getBoundingClientRect(),r=e.getBoundingClientRect();return{behavior:t.behavior,left:r.left-n.left-(t.left||0),top:r.top-n.top-(t.top||0)}}var Wj=()=>({left:window.scrollX,top:window.scrollY});function Gj(e){let t;if(`el`in e){let n=e.el,r=typeof n==`string`&&n.startsWith(`#`),i=typeof n==`string`?r?document.getElementById(n.slice(1)):document.querySelector(n):n;if(!i)return;t=Uj(i,e)}else t=e;`scrollBehavior`in document.documentElement.style?window.scrollTo(t):window.scrollTo(t.left==null?window.scrollX:t.left,t.top==null?window.scrollY:t.top)}function Kj(e,t){return(history.state?history.state.position-t:-1)+e}var qj=new Map;function Jj(e,t){qj.set(e,t)}function Yj(e){let t=qj.get(e);return qj.delete(e),t}function Xj(e){return typeof e==`string`||e&&typeof e==`object`}function Zj(e){return typeof e==`string`||typeof e==`symbol`}function Qj(e){let t={};if(e===``||e===`?`)return t;let n=(e[0]===`?`?e.slice(1):e).split(`&`);for(let e=0;ee&&Cj(e)):[r&&Cj(r)]).forEach(e=>{e!==void 0&&(t+=(t.length?`&`:``)+n,e!=null&&(t+=`=`+e))})}return t}function eM(e){let t={};for(let n in e){let r=e[n];r!==void 0&&(t[n]=YA(r)?r.map(e=>e==null?null:``+e):r==null?r:``+r)}return t}function tM(){let e=[];function t(t){return e.push(t),()=>{let n=e.indexOf(t);n>-1&&e.splice(n,1)}}function n(){e=[]}return{add:t,list:()=>e.slice(),reset:n}}function nM(e,t,n,r,i,a=e=>e()){let o=r&&(r.enterCallbacks[i]=r.enterCallbacks[i]||[]);return()=>new Promise((s,c)=>{let l=e=>{e===!1?c(QA(4,{from:n,to:t})):e instanceof Error?c(e):Xj(e)?c(QA(2,{from:t,to:e})):(o&&r.enterCallbacks[i]===o&&typeof e==`function`&&o.push(e),s())},u=a(()=>e.call(r&&r.instances[i],t,n,l)),d=Promise.resolve(u);e.length<3&&(d=d.then(l)),d.catch(e=>c(e))})}function rM(e,t,n,r,i=e=>e()){let a=[];for(let o of e)for(let e in o.components){let s=o.components[e];if(!(t!==`beforeRouteEnter`&&!o.instances[e]))if(WA(s)){let c=(s.__vccOpts||s)[t];c&&a.push(nM(c,n,r,o,e,i))}else{let c=s();a.push(()=>c.then(a=>{if(!a)throw Error(`Couldn't resolve component "${e}" at "${o.path}"`);let s=GA(a)?a.default:a;o.mods[e]=a,o.components[e]=s;let c=(s.__vccOpts||s)[t];return c&&nM(c,n,r,o,e,i)()}))}}return a}function iM(e,t){let n=[],r=[],i=[],a=Math.max(t.matched.length,e.matched.length);for(let o=0;oPj(e,a))?r.push(a):n.push(a));let s=e.matched[o];s&&(t.matched.find(e=>Pj(e,s))||i.push(s))}return[n,r,i]}var aM=()=>location.protocol+`//`+location.host;function oM(e,t){let{pathname:n,search:r,hash:i}=t,a=e.indexOf(`#`);if(a>-1){let t=i.includes(e.slice(a))?e.slice(a).length:1,n=i.slice(t);return n[0]!==`/`&&(n=`/`+n),Mj(n,``)}return Mj(n,e)+r+i}function sM(e,t,n,r){let i=[],a=[],o=null,s=({state:a})=>{let s=oM(e,location),c=n.value,l=t.value,u=0;if(a){if(n.value=s,t.value=a,o&&o===c){o=null;return}u=l?a.position-l.position:0}else r(s);i.forEach(e=>{e(n.value,c,{delta:u,type:`pop`,direction:u?u>0?`forward`:`back`:``})})};function c(){o=n.value}function l(e){i.push(e);let t=()=>{let t=i.indexOf(e);t>-1&&i.splice(t,1)};return a.push(t),t}function u(){if(document.visibilityState===`hidden`){let{history:e}=window;if(!e.state)return;e.replaceState(KA({},e.state,{scroll:Wj()}),``)}}function d(){for(let e of a)e();a=[],window.removeEventListener(`popstate`,s),window.removeEventListener(`pagehide`,u),document.removeEventListener(`visibilitychange`,u)}return window.addEventListener(`popstate`,s),window.addEventListener(`pagehide`,u),document.addEventListener(`visibilitychange`,u),{pauseListeners:c,listen:l,destroy:d}}function cM(e,t,n,r=!1,i=!1){return{back:e,current:t,forward:n,replaced:r,position:window.history.length,scroll:i?Wj():null}}function lM(e){let{history:t,location:n}=window,r={value:oM(e,n)},i={value:t.state};i.value||a(r.value,{back:null,current:r.value,forward:null,position:t.length-1,replaced:!0,scroll:null},!0);function a(r,a,o){let s=e.indexOf(`#`),c=s>-1?(n.host&&document.querySelector(`base`)?e:e.slice(s))+r:aM()+e+r;try{t[o?`replaceState`:`pushState`](a,``,c),i.value=a}catch(e){console.error(e),n[o?`replace`:`assign`](c)}}function o(e,n){a(e,KA({},t.state,cM(i.value.back,e,i.value.forward,!0),n,{position:i.value.position}),!0),r.value=e}function s(e,n){let o=KA({},i.value,t.state,{forward:e,scroll:Wj()});a(o.current,o,!0),a(e,KA({},cM(r.value,e,null),{position:o.position+1},n),!1),r.value=e}return{location:r,state:i,push:s,replace:o}}function uM(e){e=Bj(e);let t=lM(e),n=sM(e,t.state,t.location,t.replace);function r(e,t=!0){t||n.pauseListeners(),history.go(e)}let i=KA({location:``,base:e,go:r,createHref:Hj.bind(null,e)},t,n);return Object.defineProperty(i,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(i,"state",{enumerable:!0,get:()=>t.state.value}),i}var dM={type:0,value:``},fM=/[a-zA-Z0-9_]/;function pM(e){if(!e)return[[]];if(e===`/`)return[[dM]];if(!e.startsWith(`/`))throw Error(`Invalid path "${e}"`);function t(e){throw Error(`ERR (${n})/"${l}": ${e}`)}let n=0,r=n,i=[],a;function o(){a&&i.push(a),a=[]}let s=0,c,l=``,u=``;function d(){l&&=(n===0?a.push({type:0,value:l}):n===1||n===2||n===3?(a.length>1&&(c===`*`||c===`+`)&&t(`A repeatable param (${l}) must be alone in its segment. eg: '/:ids+.`),a.push({type:1,value:l,regexp:u,repeatable:c===`*`||c===`+`,optional:c===`*`||c===`?`})):t(`Invalid state to consume buffer`),``)}function f(){l+=c}for(;st.length?t.length===1&&t[0]===80?1:-1:0}function yM(e,t){let n=0,r=e.score,i=t.score;for(;n0&&t[t.length-1]<0}var xM={strict:!1,end:!0,sensitive:!1};function SM(e,t,n){let r=KA(_M(pM(e.path),n),{record:e,parent:t,children:[],alias:[]});return t&&!r.record.aliasOf==!t.record.aliasOf&&t.children.push(r),r}function CM(e,t){let n=[],r=new Map;t=XA(xM,t);function i(e){return r.get(e)}function a(e,n,r){let i=!r,s=TM(e);s.aliasOf=r&&r.record;let l=XA(t,e),u=[s];if(`alias`in e){let t=typeof e.alias==`string`?[e.alias]:e.alias;for(let e of t)u.push(TM(KA({},s,{components:r?r.record.components:s.components,path:e,aliasOf:r?r.record:s})))}let d,f;for(let t of u){let{path:u}=t;if(n&&u[0]!==`/`){let e=n.record.path,r=e[e.length-1]===`/`?``:`/`;t.path=n.record.path+(u&&r+u)}if(d=SM(t,n,l),r?r.alias.push(d):(f||=d,f!==d&&f.alias.push(d),i&&e.name&&!DM(d)&&o(e.name)),jM(d)&&c(d),s.children){let e=s.children;for(let t=0;t{o(f)}:JA}function o(e){if(Zj(e)){let t=r.get(e);t&&(r.delete(e),n.splice(n.indexOf(t),1),t.children.forEach(o),t.alias.forEach(o))}else{let t=n.indexOf(e);t>-1&&(n.splice(t,1),e.record.name&&r.delete(e.record.name),e.children.forEach(o),e.alias.forEach(o))}}function s(){return n}function c(e){let t=kM(e,n);n.splice(t,0,e),e.record.name&&!DM(e)&&r.set(e.record.name,e)}function l(e,t){let i,a={},o,s;if(`name`in e&&e.name){if(i=r.get(e.name),!i)throw QA(1,{location:e});s=i.record.name,a=KA(wM(t.params,i.keys.filter(e=>!e.optional).concat(i.parent?i.parent.keys.filter(e=>e.optional):[]).map(e=>e.name)),e.params&&wM(e.params,i.keys.map(e=>e.name))),o=i.stringify(a)}else if(e.path!=null)o=e.path,i=n.find(e=>e.re.test(o)),i&&(a=i.parse(o),s=i.record.name,i.keys.forEach(e=>{e.optional&&!a[e.name]&&delete a[e.name]}));else{if(i=t.name?r.get(t.name):n.find(e=>e.re.test(t.path)),!i)throw QA(1,{location:e,currentLocation:t});s=i.record.name,a=KA({},t.params,e.params),o=i.stringify(a)}let c=[],l=i;for(;l;)c.unshift(l.record),l=l.parent;return{name:s,path:o,params:a,matched:c,meta:OM(c)}}e.forEach(e=>a(e));function u(){n.length=0,r.clear()}return{addRoute:a,resolve:l,removeRoute:o,clearRoutes:u,getRoutes:s,getRecordMatcher:i}}function wM(e,t){let n={};for(let r of t)r in e&&(n[r]=e[r]);return n}function TM(e){let t={path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:e.aliasOf,beforeEnter:e.beforeEnter,props:EM(e),children:e.children||[],instances:{},leaveGuards:new Set,updateGuards:new Set,enterCallbacks:{},components:`components`in e?e.components||null:e.component&&{default:e.component}};return Object.defineProperty(t,"mods",{value:{}}),t}function EM(e){let t={},n=e.props||!1;if(`component`in e)t.default=n;else for(let r in e.components)t[r]=typeof n==`object`?n[r]:n;return t}function DM(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function OM(e){return e.reduce((e,t)=>KA(e,t.meta),{})}function kM(e,t){let n=0,r=t.length;for(;n!==r;){let i=n+r>>1;yM(e,t[i])<0?r=i:n=i+1}let i=AM(e);return i&&(r=t.lastIndexOf(i,r-1)),r}function AM(e){let t=e;for(;t=t.parent;)if(jM(t)&&yM(e,t)===0)return t}function jM({record:e}){return!!(e.name||e.components&&Object.keys(e.components).length||e.redirect)}function MM(e){let t=N(nj),n=N(rj),r=V(()=>{let n=A(e.to);return t.resolve(n)}),i=V(()=>{let{matched:e}=r.value,{length:t}=e,i=e[t-1],a=n.matched;if(!i||!a.length)return-1;let o=a.findIndex(Pj.bind(null,i));if(o>-1)return o;let s=LM(e[t-2]);return t>1&&LM(i)===s&&a[a.length-1].path!==s?a.findIndex(Pj.bind(null,e[t-2])):o}),a=V(()=>i.value>-1&&IM(n.params,r.value.params)),o=V(()=>i.value>-1&&i.value===n.matched.length-1&&Fj(n.params,r.value.params));function s(n={}){if(FM(n)){let n=t[A(e.replace)?`replace`:`push`](A(e.to)).catch(JA);return e.viewTransition&&typeof document<`u`&&`startViewTransition`in document&&document.startViewTransition(()=>n),n}return Promise.resolve()}return{route:r,href:V(()=>r.value.href),isActive:a,isExactActive:o,navigate:s}}function NM(e){return e.length===1?e[0]:e}var PM=P({name:`RouterLink`,compatConfig:{MODE:3},props:{to:{type:[String,Object],required:!0},replace:Boolean,activeClass:String,exactActiveClass:String,custom:Boolean,ariaCurrentValue:{type:String,default:`page`},viewTransition:Boolean},useLink:MM,setup(e,{slots:t}){let n=Vt(MM(e)),{options:r}=N(nj),i=V(()=>({[RM(e.activeClass,r.linkActiveClass,`router-link-active`)]:n.isActive,[RM(e.exactActiveClass,r.linkExactActiveClass,`router-link-exact-active`)]:n.isExactActive}));return()=>{let r=t.default&&NM(t.default(n));return e.custom?r:H(`a`,{"aria-current":n.isExactActive?e.ariaCurrentValue:null,href:n.href,onClick:n.navigate,class:i.value},r)}}});function FM(e){if(!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)&&!e.defaultPrevented&&!(e.button!==void 0&&e.button!==0)){if(e.currentTarget&&e.currentTarget.getAttribute){let t=e.currentTarget.getAttribute(`target`);if(/\b_blank\b/i.test(t))return}return e.preventDefault&&e.preventDefault(),!0}}function IM(e,t){for(let n in t){let r=t[n],i=e[n];if(typeof r==`string`){if(r!==i)return!1}else if(!YA(i)||i.length!==r.length||r.some((e,t)=>e.valueOf()!==i[t].valueOf()))return!1}return!0}function LM(e){return e?e.aliasOf?e.aliasOf.path:e.path:``}var RM=(e,t,n)=>e??t??n,zM=P({name:`RouterView`,inheritAttrs:!1,props:{name:{type:String,default:`default`},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:n}){let r=N(ij),i=V(()=>e.route||r.value),a=N(tj,0),o=V(()=>{let e=A(a),{matched:t}=i.value,n;for(;(n=t[e])&&!n.components;)e++;return e}),s=V(()=>i.value.matched[o.value]);Un(tj,V(()=>o.value+1)),Un(ej,s),Un(ij,i);let c=k();return Jn(()=>[c.value,s.value,e.name],([e,t,n],[r,i,a])=>{t&&(t.instances[n]=e,i&&i!==t&&e&&e===r&&(t.leaveGuards.size||(t.leaveGuards=i.leaveGuards),t.updateGuards.size||(t.updateGuards=i.updateGuards))),e&&t&&(!i||!Pj(t,i)||!r)&&(t.enterCallbacks[n]||[]).forEach(t=>t(e))},{flush:`post`}),()=>{let r=i.value,a=e.name,o=s.value,l=o&&o.components[a];if(!l)return BM(n.default,{Component:l,route:r});let u=o.props[a],d=H(l,KA({},u?u===!0?r.params:typeof u==`function`?u(r):u:null,t,{onVnodeUnmounted:e=>{e.component.isUnmounted&&(o.instances[a]=null)},ref:c}));return BM(n.default,{Component:d,route:r})||d}}});function BM(e,t){if(!e)return null;let n=e(t);return n.length===1?n[0]:n}var VM=zM;function HM(e){let t=CM(e.routes,e),n=e.parseQuery||Qj,r=e.stringifyQuery||$j,i=e.history,a=tM(),o=tM(),s=tM(),c=en(zj),l=zj;UA&&e.scrollBehavior&&`scrollRestoration`in history&&(history.scrollRestoration=`manual`);let u=qA.bind(null,e=>``+e),d=qA.bind(null,Ej),f=qA.bind(null,Dj);function p(e,n){let r,i;return Zj(e)?(r=t.getRecordMatcher(e),i=n):i=e,t.addRoute(i,r)}function m(e){let n=t.getRecordMatcher(e);n&&t.removeRoute(n)}function h(){return t.getRoutes().map(e=>e.record)}function g(e){return!!t.getRecordMatcher(e)}function _(e,a){if(a=KA({},a||c.value),typeof e==`string`){let r=Aj(n,e,a.path),o=t.resolve({path:r.path},a),s=i.createHref(r.fullPath);return KA(r,o,{params:f(o.params),redirectedFrom:void 0,href:s})}let o;if(e.path!=null)o=KA({},e,{path:Aj(n,e.path,a.path).path});else{let t=KA({},e.params);for(let e in t)t[e]??delete t[e];o=KA({},e,{params:d(t)}),a.params=d(a.params)}let s=t.resolve(o,a),l=e.hash||``;s.params=u(f(s.params));let p=jj(r,KA({},e,{hash:Sj(l),path:s.path})),m=i.createHref(p);return KA({fullPath:p,hash:l,query:r===$j?eM(e.query):e.query||{}},s,{redirectedFrom:void 0,href:m})}function v(e){return typeof e==`string`?Aj(n,e,c.value.path):KA({},e)}function y(e,t){if(l!==e)return QA(8,{from:t,to:e})}function b(e){return C(e)}function x(e){return b(KA(v(e),{replace:!0}))}function S(e,t){let n=e.matched[e.matched.length-1];if(n&&n.redirect){let{redirect:r}=n,i=typeof r==`function`?r(e,t):r;return typeof i==`string`&&(i=i.includes(`?`)||i.includes(`#`)?i=v(i):{path:i},i.params={}),KA({query:e.query,hash:e.hash,params:i.path==null?e.params:{}},i)}}function C(e,t){let n=l=_(e),i=c.value,a=e.state,o=e.force,s=e.replace===!0,u=S(n,i);if(u)return C(KA(v(u),{state:typeof u==`object`?KA({},a,u.state):a,force:o,replace:s}),t||n);let d=n;d.redirectedFrom=t;let f;return!o&&Nj(r,i,n)&&(f=QA(16,{to:d,from:i}),le(i,i,!0,!1)),(f?Promise.resolve(f):ee(d,i)).catch(e=>$A(e)?$A(e,2)?e:ce(e):oe(e,d,i)).then(e=>{if(e){if($A(e,2))return C(KA({replace:s},v(e.to),{state:typeof e.to==`object`?KA({},a,e.to.state):a,force:o}),t||d)}else e=D(d,i,!0,s,a);return E(d,i,e),e})}function w(e,t){let n=y(e,t);return n?Promise.reject(n):Promise.resolve()}function T(e){let t=fe.values().next().value;return t&&typeof t.runWithContext==`function`?t.runWithContext(e):e()}function ee(e,t){let n,[r,i,s]=iM(e,t);n=rM(r.reverse(),`beforeRouteLeave`,e,t);for(let i of r)i.leaveGuards.forEach(r=>{n.push(nM(r,e,t))});let c=w.bind(null,e,t);return n.push(c),me(n).then(()=>{n=[];for(let r of a.list())n.push(nM(r,e,t));return n.push(c),me(n)}).then(()=>{n=rM(i,`beforeRouteUpdate`,e,t);for(let r of i)r.updateGuards.forEach(r=>{n.push(nM(r,e,t))});return n.push(c),me(n)}).then(()=>{n=[];for(let r of s)if(r.beforeEnter)if(YA(r.beforeEnter))for(let i of r.beforeEnter)n.push(nM(i,e,t));else n.push(nM(r.beforeEnter,e,t));return n.push(c),me(n)}).then(()=>(e.matched.forEach(e=>e.enterCallbacks={}),n=rM(s,`beforeRouteEnter`,e,t,T),n.push(c),me(n))).then(()=>{n=[];for(let r of o.list())n.push(nM(r,e,t));return n.push(c),me(n)}).catch(e=>$A(e,8)?e:Promise.reject(e))}function E(e,t,n){s.list().forEach(r=>T(()=>r(e,t,n)))}function D(e,t,n,r,a){let o=y(e,t);if(o)return o;let s=t===zj,l=UA?history.state:{};n&&(r||s?i.replace(e.fullPath,KA({scroll:s&&l&&l.scroll},a)):i.push(e.fullPath,a)),c.value=e,le(e,t,n,s),ce()}let te;function ne(){te||=i.listen((e,t,n)=>{if(!pe.listening)return;let r=_(e),a=S(r,pe.currentRoute.value);if(a){C(KA(a,{replace:!0,force:!0}),r).catch(JA);return}l=r;let o=c.value;UA&&Jj(Kj(o.fullPath,n.delta),Wj()),ee(r,o).catch(e=>$A(e,12)?e:$A(e,2)?(C(KA(v(e.to),{force:!0}),r).then(e=>{$A(e,20)&&!n.delta&&n.type===`pop`&&i.go(-1,!1)}).catch(JA),Promise.reject()):(n.delta&&i.go(-n.delta,!1),oe(e,r,o))).then(e=>{e||=D(r,o,!1),e&&(n.delta&&!$A(e,8)?i.go(-n.delta,!1):n.type===`pop`&&$A(e,20)&&i.go(-1,!1)),E(r,o,e)}).catch(JA)})}let re=tM(),ie=tM(),ae;function oe(e,t,n){ce(e);let r=ie.list();return r.length?r.forEach(r=>r(e,t,n)):console.error(e),Promise.reject(e)}function se(){return ae&&c.value!==zj?Promise.resolve():new Promise((e,t)=>{re.add([e,t])})}function ce(e){return ae||(ae=!e,ne(),re.list().forEach(([t,n])=>e?n(e):t()),re.reset()),e}function le(t,n,r,i){let{scrollBehavior:a}=e;if(!UA||!a)return Promise.resolve();let o=!r&&Yj(Kj(t.fullPath,0))||(i||!r)&&history.state&&history.state.scroll||null;return kn().then(()=>a(t,n,o)).then(e=>e&&Gj(e)).catch(e=>oe(e,t,n))}let ue=e=>i.go(e),de,fe=new Set,pe={currentRoute:c,listening:!0,addRoute:p,removeRoute:m,clearRoutes:t.clearRoutes,hasRoute:g,getRoutes:h,resolve:_,options:e,push:b,replace:x,go:ue,back:()=>ue(-1),forward:()=>ue(1),beforeEach:a.add,beforeResolve:o.add,afterEach:s.add,onError:ie.add,isReady:se,install(e){e.component(`RouterLink`,PM),e.component(`RouterView`,VM),e.config.globalProperties.$router=pe,Object.defineProperty(e.config.globalProperties,"$route",{enumerable:!0,get:()=>A(c)}),UA&&!de&&c.value===zj&&(de=!0,b(i.location).catch(e=>{}));let t={};for(let e in zj)Object.defineProperty(t,e,{get:()=>c.value[e],enumerable:!0});e.provide(nj,pe),e.provide(rj,Ht(t)),e.provide(ij,c);let n=e.unmount;fe.add(e),e.unmount=function(){fe.delete(e),fe.size<1&&(l=zj,te&&te(),te=null,c.value=zj,de=!1,ae=!1),n()}}};function me(e){return e.reduce((e,t)=>e.then(()=>T(t)),Promise.resolve())}return pe}var UM=P({__name:`App`,setup(e){return(e,t)=>(I(),Ea(A(YT),{theme:A(HA)},{default:M(()=>[z(A(oD),null,{default:M(()=>[z(A(VM))]),_:1})]),_:1},8,[`theme`]))}});function WM(e){return{Ping(t){let n=[],r=`api/test/ping`;return n.length>0&&(r+=`?${n.join(`&`)}`),e({path:r,method:`GET`,body:null},{service:`EveningDetectiveServer`,method:`Ping`})},Echo(t){let n=[];t.text&&n.push(`text=${encodeURIComponent(t.text.toString())}`);let r=`api/test/echo`;return n.length>0&&(r+=`?${n.join(`&`)}`),e({path:r,method:`POST`,body:null},{service:`EveningDetectiveServer`,method:`Echo`})},Signup(t){let n=JSON.stringify(t),r=[],i=`api/auth/signup`;return r.length>0&&(i+=`?${r.join(`&`)}`),e({path:i,method:`POST`,body:n},{service:`EveningDetectiveServer`,method:`Signup`})},RefreshPassword(t){let n=JSON.stringify(t),r=[],i=`api/auth/refresh-password`;return r.length>0&&(i+=`?${r.join(`&`)}`),e({path:i,method:`POST`,body:n},{service:`EveningDetectiveServer`,method:`RefreshPassword`})},Login(t){let n=JSON.stringify(t),r=[],i=`api/auth/login`;return r.length>0&&(i+=`?${r.join(`&`)}`),e({path:i,method:`POST`,body:n},{service:`EveningDetectiveServer`,method:`Login`})},Refresh(t){let n=JSON.stringify(t),r=[],i=`api/auth/refresh`;return r.length>0&&(i+=`?${r.join(`&`)}`),e({path:i,method:`POST`,body:n},{service:`EveningDetectiveServer`,method:`Refresh`})},DeleteAccount(t){let n=[],r=`api/auth/delete-account`;return n.length>0&&(r+=`?${n.join(`&`)}`),e({path:r,method:`DELETE`,body:null},{service:`EveningDetectiveServer`,method:`DeleteAccount`})},GetTerms(t){let n=[],r=`api/terms`;return n.length>0&&(r+=`?${n.join(`&`)}`),e({path:r,method:`GET`,body:null},{service:`EveningDetectiveServer`,method:`GetTerms`})},GetPrivacy(t){let n=[],r=`api/privacy`;return n.length>0&&(r+=`?${n.join(`&`)}`),e({path:r,method:`GET`,body:null},{service:`EveningDetectiveServer`,method:`GetPrivacy`})},GetConsent(t){let n=[],r=`api/consent`;return n.length>0&&(r+=`?${n.join(`&`)}`),e({path:r,method:`GET`,body:null},{service:`EveningDetectiveServer`,method:`GetConsent`})},GetUsers(t){let n=[],r=`api/users`;return n.length>0&&(r+=`?${n.join(`&`)}`),e({path:r,method:`GET`,body:null},{service:`EveningDetectiveServer`,method:`GetUsers`})},GetUserById(t){if(!t.id)throw Error(`missing required field request.id`);let n=`api/users/${t.id}`,r=[],i=n;return r.length>0&&(i+=`?${r.join(`&`)}`),e({path:i,method:`GET`,body:null},{service:`EveningDetectiveServer`,method:`GetUserById`})},GetMe(t){let n=[],r=`api/users/me`;return n.length>0&&(r+=`?${n.join(`&`)}`),e({path:r,method:`GET`,body:null},{service:`EveningDetectiveServer`,method:`GetMe`})},AddUserRole(t){if(!t.id)throw Error(`missing required field request.id`);let n=`api/users/${t.id}/role/add`,r=JSON.stringify(t),i=[],a=n;return i.length>0&&(a+=`?${i.join(`&`)}`),e({path:a,method:`POST`,body:r},{service:`EveningDetectiveServer`,method:`AddUserRole`})},DeleteUserRole(t){if(!t.id)throw Error(`missing required field request.id`);let n=`api/users/${t.id}/role/delete`,r=JSON.stringify(t),i=[],a=n;return i.length>0&&(a+=`?${i.join(`&`)}`),e({path:a,method:`POST`,body:r},{service:`EveningDetectiveServer`,method:`DeleteUserRole`})},GetPermissions(t){let n=[],r=`api/ui/permissions`;return n.length>0&&(r+=`?${n.join(`&`)}`),e({path:r,method:`GET`,body:null},{service:`EveningDetectiveServer`,method:`GetPermissions`})},UploadFile(t){let n=JSON.stringify(t),r=[],i=`api/files/upload`;return r.length>0&&(i+=`?${r.join(`&`)}`),e({path:i,method:`POST`,body:n},{service:`EveningDetectiveServer`,method:`UploadFile`})},DownloadFile(t){if(!t.filename)throw Error(`missing required field request.filename`);let n=`api/files/${t.filename}`,r=[],i=n;return r.length>0&&(i+=`?${r.join(`&`)}`),e({path:i,method:`GET`,body:null},{service:`EveningDetectiveServer`,method:`DownloadFile`})},AddScenario(t){let n=JSON.stringify(t),r=[],i=`api/scenario`;return r.length>0&&(i+=`?${r.join(`&`)}`),e({path:i,method:`POST`,body:n},{service:`EveningDetectiveServer`,method:`AddScenario`})},GetMyScenarios(t){let n=[],r=`api/my-scenarios`;return n.length>0&&(r+=`?${n.join(`&`)}`),e({path:r,method:`GET`,body:null},{service:`EveningDetectiveServer`,method:`GetMyScenarios`})},GetScenariosCatalog(t){let n=[],r=`api/catalog`;return n.length>0&&(r+=`?${n.join(`&`)}`),e({path:r,method:`GET`,body:null},{service:`EveningDetectiveServer`,method:`GetScenariosCatalog`})},GetFullScenario(t){if(!t.id)throw Error(`missing required field request.id`);let n=`api/scenarios/${t.id}/full`,r=[],i=n;return r.length>0&&(i+=`?${r.join(`&`)}`),e({path:i,method:`GET`,body:null},{service:`EveningDetectiveServer`,method:`GetFullScenario`})},GetScenario(t){if(!t.id)throw Error(`missing required field request.id`);let n=`api/scenarios/${t.id}`,r=[],i=n;return r.length>0&&(i+=`?${r.join(`&`)}`),e({path:i,method:`GET`,body:null},{service:`EveningDetectiveServer`,method:`GetScenario`})},UpdateScenario(t){if(!t.id)throw Error(`missing required field request.id`);let n=`api/scenarios/${t.id}`,r=JSON.stringify(t),i=[],a=n;return i.length>0&&(a+=`?${i.join(`&`)}`),e({path:a,method:`PUT`,body:r},{service:`EveningDetectiveServer`,method:`UpdateScenario`})},PublicScenario(t){if(!t.id)throw Error(`missing required field request.id`);let n=`api/scenarios/${t.id}/public`,r=JSON.stringify(t),i=[],a=n;return i.length>0&&(a+=`?${i.join(`&`)}`),e({path:a,method:`PUT`,body:r},{service:`EveningDetectiveServer`,method:`PublicScenario`})},DraftScenario(t){if(!t.id)throw Error(`missing required field request.id`);let n=`api/scenarios/${t.id}/draft`,r=JSON.stringify(t),i=[],a=n;return i.length>0&&(a+=`?${i.join(`&`)}`),e({path:a,method:`PUT`,body:r},{service:`EveningDetectiveServer`,method:`DraftScenario`})},DeleteScenario(t){if(!t.id)throw Error(`missing required field request.id`);let n=`api/scenarios/${t.id}`,r=[],i=n;return r.length>0&&(i+=`?${r.join(`&`)}`),e({path:i,method:`DELETE`,body:null},{service:`EveningDetectiveServer`,method:`DeleteScenario`})},AddScenarioPlace(t){if(!t.id)throw Error(`missing required field request.id`);let n=`api/scenarios/${t.id}/places`,r=JSON.stringify(t),i=[],a=n;return i.length>0&&(a+=`?${i.join(`&`)}`),e({path:a,method:`POST`,body:r},{service:`EveningDetectiveServer`,method:`AddScenarioPlace`})},UpdateScenarioPlace(t){if(!t.id)throw Error(`missing required field request.id`);if(!t.code)throw Error(`missing required field request.code`);let n=`api/scenarios/${t.id}/places/${t.code}`,r=JSON.stringify(t),i=[],a=n;return i.length>0&&(a+=`?${i.join(`&`)}`),e({path:a,method:`PUT`,body:r},{service:`EveningDetectiveServer`,method:`UpdateScenarioPlace`})},DeleteScenarioPlace(t){if(!t.id)throw Error(`missing required field request.id`);if(!t.code)throw Error(`missing required field request.code`);let n=`api/scenarios/${t.id}/places/${t.code}`,r=[],i=n;return r.length>0&&(i+=`?${r.join(`&`)}`),e({path:i,method:`DELETE`,body:null},{service:`EveningDetectiveServer`,method:`DeleteScenarioPlace`})},DownloadScenarioArchive(t){if(!t.id)throw Error(`missing required field request.id`);let n=`api/scenarios/${t.id}/archive`,r=[],i=n;return r.length>0&&(i+=`?${r.join(`&`)}`),e({path:i,method:`GET`,body:null},{service:`EveningDetectiveServer`,method:`DownloadScenarioArchive`})},UploadScenarioArchive(t){let n=JSON.stringify(t),r=[],i=`api/scenarios/archive`;return r.length>0&&(i+=`?${r.join(`&`)}`),e({path:i,method:`POST`,body:n},{service:`EveningDetectiveServer`,method:`UploadScenarioArchive`})},AddGame(t){let n=JSON.stringify(t),r=[],i=`api/games`;return r.length>0&&(i+=`?${r.join(`&`)}`),e({path:i,method:`POST`,body:n},{service:`EveningDetectiveServer`,method:`AddGame`})},GetGames(t){let n=[],r=`api/games`;return n.length>0&&(r+=`?${n.join(`&`)}`),e({path:r,method:`GET`,body:null},{service:`EveningDetectiveServer`,method:`GetGames`})},GetGame(t){if(!t.id)throw Error(`missing required field request.id`);let n=`api/games/${t.id}`,r=[],i=n;return r.length>0&&(i+=`?${r.join(`&`)}`),e({path:i,method:`GET`,body:null},{service:`EveningDetectiveServer`,method:`GetGame`})},UpdateGame(t){if(!t.id)throw Error(`missing required field request.id`);let n=`api/games/${t.id}`,r=JSON.stringify(t),i=[],a=n;return i.length>0&&(a+=`?${i.join(`&`)}`),e({path:a,method:`PUT`,body:r},{service:`EveningDetectiveServer`,method:`UpdateGame`})},StartGame(t){if(!t.id)throw Error(`missing required field request.id`);let n=`api/games/${t.id}/start`,r=JSON.stringify(t),i=[],a=n;return i.length>0&&(a+=`?${i.join(`&`)}`),e({path:a,method:`PUT`,body:r},{service:`EveningDetectiveServer`,method:`StartGame`})},PauseGame(t){if(!t.id)throw Error(`missing required field request.id`);let n=`api/games/${t.id}/pause`,r=JSON.stringify(t),i=[],a=n;return i.length>0&&(a+=`?${i.join(`&`)}`),e({path:a,method:`PUT`,body:r},{service:`EveningDetectiveServer`,method:`PauseGame`})},PlayGame(t){if(!t.id)throw Error(`missing required field request.id`);let n=`api/games/${t.id}/play`,r=JSON.stringify(t),i=[],a=n;return i.length>0&&(a+=`?${i.join(`&`)}`),e({path:a,method:`PUT`,body:r},{service:`EveningDetectiveServer`,method:`PlayGame`})},FinishGame(t){if(!t.id)throw Error(`missing required field request.id`);let n=`api/games/${t.id}/finish`,r=JSON.stringify(t),i=[],a=n;return i.length>0&&(a+=`?${i.join(`&`)}`),e({path:a,method:`PUT`,body:r},{service:`EveningDetectiveServer`,method:`FinishGame`})},ResetGame(t){if(!t.id)throw Error(`missing required field request.id`);let n=`api/games/${t.id}/reset`,r=JSON.stringify(t),i=[],a=n;return i.length>0&&(a+=`?${i.join(`&`)}`),e({path:a,method:`PUT`,body:r},{service:`EveningDetectiveServer`,method:`ResetGame`})},DeleteGame(t){if(!t.id)throw Error(`missing required field request.id`);let n=`api/games/${t.id}`,r=[],i=n;return r.length>0&&(i+=`?${r.join(`&`)}`),e({path:i,method:`DELETE`,body:null},{service:`EveningDetectiveServer`,method:`DeleteGame`})},AddTeam(t){let n=JSON.stringify(t),r=[],i=`api/teams`;return r.length>0&&(i+=`?${r.join(`&`)}`),e({path:i,method:`POST`,body:n},{service:`EveningDetectiveServer`,method:`AddTeam`})},UpdateTeam(t){if(!t.id)throw Error(`missing required field request.id`);let n=`api/teams/${t.id}`,r=JSON.stringify(t),i=[],a=n;return i.length>0&&(a+=`?${i.join(`&`)}`),e({path:a,method:`PUT`,body:r},{service:`EveningDetectiveServer`,method:`UpdateTeam`})},DeleteTeam(t){if(!t.id)throw Error(`missing required field request.id`);let n=`api/teams/${t.id}`,r=[],i=n;return r.length>0&&(i+=`?${r.join(`&`)}`),e({path:i,method:`DELETE`,body:null},{service:`EveningDetectiveServer`,method:`DeleteTeam`})},GiveTeamApplications(t){if(!t.id)throw Error(`missing required field request.id`);let n=`api/teams/${t.id}/applications`,r=JSON.stringify(t),i=[],a=n;return i.length>0&&(a+=`?${i.join(`&`)}`),e({path:a,method:`POST`,body:r},{service:`EveningDetectiveServer`,method:`GiveTeamApplications`})},GetTeamStory(t){if(!t.id)throw Error(`missing required field request.id`);let n=`api/teams/${t.id}/story`,r=[];t.password&&r.push(`password=${encodeURIComponent(t.password.toString())}`);let i=n;return r.length>0&&(i+=`?${r.join(`&`)}`),e({path:i,method:`GET`,body:null},{service:`EveningDetectiveServer`,method:`GetTeamStory`})},AddTeamAction(t){if(!t.id)throw Error(`missing required field request.id`);let n=`api/teams/${t.id}/actions`,r=JSON.stringify(t),i=[],a=n;return i.length>0&&(a+=`?${i.join(`&`)}`),e({path:a,method:`POST`,body:r},{service:`EveningDetectiveServer`,method:`AddTeamAction`})},DeleteLastTeamAction(t){if(!t.id)throw Error(`missing required field request.id`);let n=`api/teams/${t.id}/last-actions`,r=[],i=n;return r.length>0&&(i+=`?${r.join(`&`)}`),e({path:i,method:`DELETE`,body:null},{service:`EveningDetectiveServer`,method:`DeleteLastTeamAction`})}}}function GM(e,t){return WM(KM(e,t))}function KM(e,t){return async n=>{let r=`${qM()}/${n.path}`,i={"Content-Type":`application/json`},a=e?.();a&&(i.Authorization=`Bearer ${a}`);let o=t?.();o&&Object.assign(i,o);let s=await fetch(r,{method:n.method,headers:i,body:n.body});if(s.status==401)throw Error(`unauthorized`);return await s.json()}}function qM(){return`https://evening-detective.crabs-games.art`}var JM=vc(`auth`,()=>{let e=k(null),t=k(null),n=k(null),r=k(!1),i=k(null),a=V(()=>!!e.value),o=V(()=>n.value?.username||``),s=V(()=>n.value?.roles||[]);function c(){let n=localStorage.getItem(`accessToken`),r=localStorage.getItem(`refreshToken`);n&&(e.value=n,t.value=r,u())}function l(){return e.value}async function u(){if(e.value)try{let e=await GM(l).GetMe({});if(e.error){i.value=e.error;return}e.user&&(n.value=e.user)}catch(e){console.error(`Failed to fetch user:`,e),e instanceof Error&&e.message.includes(`401`)&&await g()}}async function d(n,a){r.value=!0,i.value=null;try{let r=await GM(l).Login({email:n,password:a});return r.error?(i.value=r.error,!1):r.accessToken?(e.value=r.accessToken,t.value=r.refreshToken||null,localStorage.setItem(`accessToken`,r.accessToken),r.refreshToken&&localStorage.setItem(`refreshToken`,r.refreshToken),await u(),!0):!1}catch(e){return i.value=e instanceof Error?e.message:`Login failed`,!1}finally{r.value=!1}}async function f(){if(!t.value)return!1;try{let n=await GM(l).Refresh({refreshToken:t.value});return n.error||!n.accessToken?!1:(e.value=n.accessToken,t.value=n.refreshToken||null,localStorage.setItem(`accessToken`,n.accessToken),n.refreshToken&&localStorage.setItem(`refreshToken`,n.refreshToken),!0)}catch{return!1}}async function p(e,t,n,a){r.value=!0,i.value=null;try{let r=await GM(l).Signup({username:e,email:t,acceptTerms:n,acceptPrivacy:a});return r.error?(i.value=r.error,!1):!0}catch(e){return i.value=e instanceof Error?e.message:`Signup failed`,!1}finally{r.value=!1}}async function m(e){r.value=!0,i.value=null;try{let t=await GM(l,()=>({"X-Password":e})).DeleteAccount({});return t.error?(i.value=t.error,!1):(await g(),!0)}catch(e){return i.value=e instanceof Error?e.message:`Account deletion failed`,!1}finally{r.value=!1}}async function h(e){r.value=!0,i.value=null;try{let t=await GM(l).RefreshPassword({email:e});return t.error?(i.value=t.error,!1):!0}catch(e){return i.value=e instanceof Error?e.message:`Password reset failed`,!1}finally{r.value=!1}}async function g(){e.value=null,t.value=null,n.value=null,i.value=null,localStorage.removeItem(`accessToken`),localStorage.removeItem(`refreshToken`)}function _(e){return s.value.includes(e)}function v(e){return e.some(e=>s.value.includes(e))}return{accessToken:e,refreshToken:t,user:n,isLoading:r,error:i,isAuthenticated:a,username:o,userRoles:s,initFromStorage:c,getToken:l,login:d,signup:p,deleteAccount:m,refreshPassword:h,logout:g,fetchUser:u,refreshTokenAction:f,hasRole:_,hasAnyRole:v}});function YM(){let e=JM();return XM(e.refreshTokenAction,e.getToken)}function XM(e,t){return WM(ZM(e,KM(t)))}function ZM(e,t){return async n=>{try{return await t(n)}catch{return await e(),await t(n)}}}var QM={xmlns:`http://www.w3.org/2000/svg`,"xmlns:xlink":`http://www.w3.org/1999/xlink`,viewBox:`0 0 24 24`},$M=P({name:`ContactMailRound`,render:function(e,t){return I(),L(`svg`,QM,t[0]||=[R(`path`,{d:`M21 8V7l-3 2l-3-2v1l2.72 1.82a.5.5 0 0 0 .55 0L21 8zm1-5H2C.9 3 0 3.9 0 5v14c0 1.1.9 2 2 2h20c1.1 0 1.99-.9 1.99-2L24 5c0-1.1-.9-2-2-2zM8 6c1.66 0 3 1.34 3 3s-1.34 3-3 3s-3-1.34-3-3s1.34-3 3-3zm6 12H2v-1c0-2 4-3.1 6-3.1s6 1.1 6 3.1v1zm7.5-6h-7c-.28 0-.5-.22-.5-.5v-5c0-.28.22-.5.5-.5h7c.28 0 .5.22.5.5v5c0 .28-.22.5-.5.5z`,fill:`currentColor`},null,-1)])}}),eN={xmlns:`http://www.w3.org/2000/svg`,"xmlns:xlink":`http://www.w3.org/1999/xlink`,viewBox:`0 0 24 24`},tN=P({name:`LockOutlined`,render:function(e,t){return I(),L(`svg`,eN,t[0]||=[R(`path`,{d:`M18 8h-1V6c0-2.76-2.24-5-5-5S7 3.24 7 6v2H6c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V10c0-1.1-.9-2-2-2zM9 6c0-1.66 1.34-3 3-3s3 1.34 3 3v2H9V6zm9 14H6V10h12v10zm-6-3c1.1 0 2-.9 2-2s-.9-2-2-2s-2 .9-2 2s.9 2 2 2z`,fill:`currentColor`},null,-1)])}}),nN={xmlns:`http://www.w3.org/2000/svg`,"xmlns:xlink":`http://www.w3.org/1999/xlink`,viewBox:`0 0 24 24`},rN=P({name:`MenuOutlined`,render:function(e,t){return I(),L(`svg`,nN,t[0]||=[R(`path`,{d:`M3 18h18v-2H3v2zm0-5h18v-2H3v2zm0-7v2h18V6H3z`,fill:`currentColor`},null,-1)])}});function iN(e){let t=0;for(let n=0;n{let r=iN(t);if(!r){e.forEach(e=>{n.push((e&&e+` `)+t)});return}else if(r===1){e.forEach(e=>{n.push(t.replace(`&`,e))});return}let i=[t];for(;r--;){let t=[];i.forEach(n=>{e.forEach(e=>{t.push(n.replace(`&`,e))})}),i=t}i.forEach(e=>n.push(e))}),n}function cN(e,t){let n=[];return t.split(aN).forEach(t=>{e.forEach(e=>{n.push((e&&e+` `)+t)})}),n}function lN(e){let t=[``];return e.forEach(e=>{e&&=e.trim(),e&&(t=e.includes(`&`)?sN(t,e):cN(t,e))}),t.join(`, `).replace(oN,` `)}var uN=/[A-Z]/g;function dN(e){return e.replace(uN,e=>`-`+e.toLowerCase())}function fN(e,t=` `){return typeof e==`object`&&e?` { `+Object.entries(e).map(e=>t+` ${dN(e[0])}: ${e[1]};`).join(` `)+` `+t+`}`:`: ${e};`}function pN(e,t,n){return typeof e==`function`?e({context:t.context,props:n}):e}function mN(e,t,n,r){if(!t)return``;let i=pN(t,n,r);if(!i)return``;if(typeof i==`string`)return`${e} {\n${i}\n}`;let a=Object.keys(i);if(a.length===0)return n.config.keepEmptyBlock?e+` { @@ -2427,4 +2427,4 @@ `);return}e=dN(e),t!=null&&o.push(` ${e}${fN(t)}`)}),e&&o.push(`}`),o.join(` `)}function hN(e,t,n){e&&e.forEach(e=>{if(Array.isArray(e))hN(e,t,n);else if(typeof e==`function`){let r=e(t);Array.isArray(r)?hN(r,t,n):r&&n(r)}else e&&n(e)})}function gN(e,t,n,r,i,a){let o=e.$;!o||typeof o==`string`?t.push(o):typeof o==`function`?t.push(o({context:r.context,props:i})):(o.before&&o.before(r.context),!o.$||typeof o.$==`string`?t.push(o.$):o.$&&t.push(o.$({context:r.context,props:i})));let s=lN(t),c=mN(s,e.props,r,i);a&&c&&a.insertRule(c),!a&&c.length&&n.push(c),e.children&&hN(e.children,{context:r.context,props:i},e=>{if(typeof e==`string`){let t=mN(s,{raw:e},r,i);a?a.insertRule(t):n.push(t)}else gN(e,t,n,r,i,a)}),t.pop(),o&&o.after&&o.after(r.context)}function _N(e,t,n,r=!1){let i=[];return gN(e,[],i,t,n,r?e.instance.__styleSheet:void 0),r?``:i.join(` -`)}function vN(e){if(!e)return;let t=e.parentElement;t&&t.removeChild(e)}function yN(e){return document.querySelector(`style[cssr-id="${e}"]`)}function bN(e){let t=document.createElement(`style`);return t.setAttribute(`cssr-id`,e),t}window&&(window.__cssrContext={});function xN(e){let t=e.getAttribute(`mount-count`);return t===null?null:Number(t)}function SN(e,t){e.setAttribute(`mount-count`,String(t))}function CN(e,t,n,r){let{els:i}=t;if(n===void 0)i.forEach(vN),t.els=[];else{let e=yN(n);if(e&&i.includes(e)){let a=xN(e);r?a===null?console.error(`[css-render/unmount]: The style with target='${n}' is mounted in count mode.`):a<=1?(vN(e),t.els=i.filter(t=>t!==e)):SN(e,a-1):a===null?(vN(e),t.els=i.filter(t=>t!==e)):console.error(`[css-render/unmount]: The style with target='${n}' is mounted in no-count mode.`)}}}function wN(e,t){e.push(t)}function TN(e,t,n,r,i,a,o,s,c){if(o&&!c){if(n===void 0){console.error("[css-render/mount]: `id` is required in `boost` mode.");return}let i=window.__cssrContext;i[n]||(i[n]=!0,_N(t,e,r,o));return}let l,{els:u}=t,d;if(n===void 0&&(d=t.render(r),n=Rc(d)),c){c(n,d??t.render(r));return}let f=yN(n);if(s||f===null){if(l=f===null?bN(n):f,d===void 0&&(d=t.render(r)),l.textContent=d,f!==null)return;if(i){let e=document.head.getElementsByTagName(`style`)[0]||null;document.head.insertBefore(l,e)}else document.head.appendChild(l);a&&SN(l,1),wN(u,l)}else{let e=xN(f);a?e===null?console.error(`[css-render/mount]: The style with id='${n}' has been mounted in no-count mode.`):SN(f,e+1):e!==null&&console.error(`[css-render/mount]: The style with id='${n}' has been mounted in count mode.`)}return f??l}function EN(e){return _N(this,this.instance,e)}function DN(e={}){let{target:t,id:n,ssr:r,props:i,count:a=!1,head:o=!1,boost:s=!1,force:c=!1}=e;return TN(this.instance,this,n??t,i,o,a,s,c,r)}function ON(e={}){let{id:t,target:n,delay:r=0,count:i=!1}=e;r===0?CN(this.instance,this,t??n,i):setTimeout(()=>CN(this.instance,this,t??n,i),r)}var kN=function(e,t,n,r){return{instance:e,$:t,props:n,children:r,els:[],render:EN,mount:DN,unmount:ON}},AN=function(e,t,n,r){return Array.isArray(t)?kN(e,{$:null},null,t):Array.isArray(n)?kN(e,t,null,n):Array.isArray(r)?kN(e,t,n,r):kN(e,t,n,null)};function jN(e={}){let t=null,n={c:((...e)=>AN(n,...e)),use:(e,...t)=>e.install(n,...t),find:yN,context:{},config:e,get __styleSheet(){if(!t){let e=document.createElement(`style`);return document.head.appendChild(e),t=document.styleSheets[document.styleSheets.length-1],t}return t}};return n}var{c:MN}=jN(),NN=MN(`.xicon`,{width:`1em`,height:`1em`,display:`inline-flex`},[MN(`svg`,{width:`1em`,height:`1em`}),MN(`svg:not([fill])`,{fill:`currentColor`})]),PN=()=>{NN.mount({id:`xicons-icon`})},FN={size:[String,Number],color:String,tag:String},IN=Symbol(`IconConfigInjection`),LN=`span`,RN=P({name:`Icon`,props:FN,setup(e,{slots:t}){let n=N(IN,null),r=V(()=>{let t=e.size??n?.size;if(t!==void 0)return typeof t==`number`||/^\d+$/.test(t)?`${t}px`:t}),i=V(()=>{let{color:t}=e;return t===void 0?n?n.color:void 0:t}),a=V(()=>{let{tag:t}=e;return t===void 0?n?.tag??LN:t});return Br(()=>{PN()}),()=>H(a.value,{class:`xicon`,style:{color:i.value,fontSize:r.value}},[ni(t,`default`)])}}),zN={class:`menu-block`},BN={class:`right-group`},VN=P({__name:`HeaderMenu`,props:{active:{type:String,required:!1}},setup(e){let t=e,n=JM();n.initFromStorage();let r=aj(),i=YM(),a=k([]);async function o(){a.value=[];let e=await i.GetPermissions({});a.value=e.permissions}o();function s(e){return a.value.includes(e)}let c=()=>{r.push(`/login`)},l=()=>{n.logout(),r.push(`/login`)},u=k(!1);return(e,i)=>(I(),L(`div`,zN,[R(`div`,{onClick:i[0]||=e=>u.value=!u.value,class:`burger-button`},[z(A(RN),{class:`burger-icon`,size:`28`},{default:M(()=>[z(A(rN))]),_:1})]),R(`div`,{class:_e([`left-group menu-buttons-block`,u.value?``:`menu-buttons-block-active`])},[R(`div`,{class:_e([`menu-item-block`,{active:t.active==`main`}]),onClick:i[1]||=e=>A(r).push(`/`)},` Главная `,2),A(n).hasRole(`user`)?(I(),L(`div`,{key:0,class:_e([`menu-item-block`,{active:t.active==`office`}]),onClick:i[2]||=e=>A(r).push(`/office`)},` Кабинет `,2)):Pa(``,!0),s(`games_page`)?(I(),L(`div`,{key:1,class:_e([`menu-item-block`,{active:t.active==`games`}]),onClick:i[3]||=e=>A(r).push(`/games`)},` Игры `,2)):Pa(``,!0),R(`div`,{class:_e([`menu-item-block`,{active:t.active==`catalog`}]),onClick:i[4]||=e=>A(r).push(`/catalog`)},` Каталог `,2),s(`scenarios_page`)?(I(),L(`div`,{key:2,class:_e([`menu-item-block`,{active:t.active==`scenarios`}]),onClick:i[5]||=e=>A(r).push(`/scenarios`)},` Мои сценарии `,2)):Pa(``,!0),s(`users_page`)?(I(),L(`div`,{key:3,class:_e([`menu-item-block`,{active:t.active==`users`}]),onClick:i[6]||=e=>A(r).push(`/users`)},` Пользователи `,2)):Pa(``,!0)],2),R(`div`,BN,[A(n).isAuthenticated?Pa(``,!0):(I(),L(`div`,{key:0,class:`menu-item-block right`,onClick:c},` Войти `)),A(n).isAuthenticated?(I(),L(`div`,{key:1,class:`menu-item-block right`,onClick:l},`Выйти`)):Pa(``,!0)])]))}}),HN=(e,t)=>{let n=e.__vccOpts||e;for(let[e,r]of t)n[e]=r;return n},UN=HN(VN,[[`__scopeId`,`data-v-5e423637`]]),WN={class:`center-block-custom`},GN={class:`width1200 display-table`},KN=[`onClick`],qN={class:`scenario-content-block`},JN={class:`scenario-title`},YN={class:`scenario-description`},XN={class:`scenario-label`},ZN=HN(P({__name:`CatalogPage`,setup(e){let t=YM(),n=k([]),r=aj();async function i(){n.value=[];let e=await t.GetScenariosCatalog({});n.value=e.scenarios}async function a(e){r.push(`/scenarios/`+e)}return i(),(e,t)=>(I(),L(F,null,[R(`div`,WN,[R(`div`,GN,[(I(!0),L(F,null,ti(n.value,e=>(I(),L(`div`,{class:`scenario-block`,onClick:t=>a(e.id),key:e.id},[R(`div`,{class:`scenario-image-block scenario-image`,style:fe({backgroundImage:`url(${e.image})`})},null,4),R(`div`,qN,[R(`p`,JN,O(e.name),1),R(`p`,YN,O(e.description),1),R(`p`,XN,[z(A(qC),{bordered:!1,type:`success`,class:`status-block`},{default:M(()=>[B(`Автор: `+O(e.author?.username),1)]),_:2},1024)])])],8,KN))),128))])]),z(UN,{active:`catalog`})],64))}}),[[`__scopeId`,`data-v-d72c95c2`]]),QN=P({__name:`CatalogView`,setup(e){return(e,t)=>(I(),Ea(ZN))}}),$N={class:`text-with-font`},eP=HN(P({__name:`HeaderText`,setup(e){return(e,t)=>(I(),L(`span`,$N,[ni(e.$slots,`default`,{},void 0,!0)]))}}),[[`__scopeId`,`data-v-e13ee3bd`]]),tP={class:`center-block-custom`},nP={class:`width700 doc-page`},rP={class:`doc-title`},iP={key:0,class:`doc-loading`},aP={key:2,class:`paper-block`},oP={class:`paper`},sP={class:`doc-text`},cP={class:`docs-links`},lP=HN(P({__name:`DocsPage`,props:{kind:{}},setup(e){let t=e,n={terms:`Пользовательское соглашение`,privacy:`Политика конфиденциальности`,consent:`Согласие на обработку персональных данных`},r=k(``),i=k(!0),a=k(``);return Vr(async()=>{let e=YM(),n={terms:()=>e.GetTerms({}),privacy:()=>e.GetPrivacy({}),consent:()=>e.GetConsent({})};try{let e=await n[t.kind]();e.error?a.value=e.error:r.value=e.text||``}catch(e){a.value=e instanceof Error?e.message:`Не удалось загрузить документ`}finally{i.value=!1}}),(e,o)=>(I(),L(`div`,tP,[R(`div`,nP,[R(`h1`,rP,[z(eP,null,{default:M(()=>[B(O(n[t.kind]),1)]),_:1})]),i.value?(I(),L(`div`,iP,[z(A(Gk),{size:`large`})])):a.value?(I(),Ea(A(uw),{key:1,type:`error`,"show-icon":!1,class:`doc-error`},{default:M(()=>[B(O(a.value),1)]),_:1})):(I(),L(`div`,aP,[R(`div`,oP,[R(`p`,sP,O(r.value),1)]),o[0]||=R(`div`,{class:`paper-shadow paper-shadow-left`},null,-1),o[1]||=R(`div`,{class:`paper-shadow paper-shadow-right`},null,-1)])),R(`div`,cP,[o[5]||=B(` Смотрите также: `,-1),z(A(PM),{to:`/user-agreement`,class:`docs-link`},{default:M(()=>[...o[2]||=[B(`Пользовательское соглашение`,-1)]]),_:1}),o[6]||=B(` · `,-1),z(A(PM),{to:`/privacy-policy`,class:`docs-link`},{default:M(()=>[...o[3]||=[B(`Политика конфиденциальности`,-1)]]),_:1}),o[7]||=B(` · `,-1),z(A(PM),{to:`/consent`,class:`docs-link`},{default:M(()=>[...o[4]||=[B(`Согласие на обработку персональных данных`,-1)]]),_:1})])])]))}}),[[`__scopeId`,`data-v-6160a426`]]),uP=P({__name:`ConsentView`,setup(e){return(e,t)=>(I(),L(F,null,[z(lP,{kind:`consent`}),z(UN)],64))}}),dP={class:`center-block-custom`},fP={class:`width1200`},pP=[`onClick`],mP={class:`game-title`},hP={class:`game-description`},gP=HN(P({__name:`GamesPage`,setup(e){let t=YM(),n=sD(),r=aj(),i=k([]);async function a(){i.value=[];let e=await t.GetGames({});if(e.error!=``){n.error(e.error);return}i.value=e.games||[]}a();async function o(e){r.push(`/games/`+e)}return(e,t)=>(I(),L(F,null,[R(`div`,dP,[R(`div`,fP,[(I(!0),L(F,null,ti(i.value,e=>(I(),L(`div`,{key:e.id,class:`game-block`,onClick:t=>o(e.id)},[R(`div`,mP,O(e.name),1),R(`div`,hP,O(e.description),1)],8,pP))),128))])]),z(UN,{active:`games`})],64))}}),[[`__scopeId`,`data-v-45eae4d9`]]),_P=P({__name:`GamesView`,setup(e){return(e,t)=>(I(),Ea(gP))}}),vP={xmlns:`http://www.w3.org/2000/svg`,"xmlns:xlink":`http://www.w3.org/1999/xlink`,viewBox:`0 0 32 32`},yP=P({name:`Flag`,render:function(e,t){return I(),L(`svg`,vP,t[0]||=[R(`path`,{d:`M6 30H4V2h24l-5.8 9l5.8 9H6zm0-12h18.33l-4.53-7l4.53-7H6z`,fill:`currentColor`},null,-1)])}}),bP={xmlns:`http://www.w3.org/2000/svg`,"xmlns:xlink":`http://www.w3.org/1999/xlink`,viewBox:`0 0 32 32`},xP=P({name:`Pause`,render:function(e,t){return I(),L(`svg`,bP,t[0]||=[R(`path`,{d:`M12 8v16H8V8h4m0-2H8a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h4a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2z`,fill:`currentColor`},null,-1),R(`path`,{d:`M24 8v16h-4V8h4m0-2h-4a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h4a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2z`,fill:`currentColor`},null,-1)])}}),SP={xmlns:`http://www.w3.org/2000/svg`,"xmlns:xlink":`http://www.w3.org/1999/xlink`,viewBox:`0 0 32 32`},CP=P({name:`Play`,render:function(e,t){return I(),L(`svg`,SP,t[0]||=[R(`path`,{d:`M7 28a1 1 0 0 1-1-1V5a1 1 0 0 1 1.482-.876l20 11a1 1 0 0 1 0 1.752l-20 11A1 1 0 0 1 7 28zM8 6.69V25.31L24.925 16z`,fill:`currentColor`},null,-1)])}}),wP={xmlns:`http://www.w3.org/2000/svg`,"xmlns:xlink":`http://www.w3.org/1999/xlink`,viewBox:`0 0 32 32`},TP=P({name:`Reset`,render:function(e,t){return I(),L(`svg`,wP,t[0]||=[R(`path`,{d:`M18 28A12 12 0 1 0 6 16v6.2l-3.6-3.6L1 20l6 6l6-6l-1.4-1.4L8 22.2V16a10 10 0 1 1 10 10z`,fill:`currentColor`},null,-1)])}}),EP={xmlns:`http://www.w3.org/2000/svg`,"xmlns:xlink":`http://www.w3.org/1999/xlink`,viewBox:`0 0 32 32`},DP=P({name:`Settings`,render:function(e,t){return I(),L(`svg`,EP,t[0]||=[R(`path`,{d:`M27 16.76V16v-.77l1.92-1.68A2 2 0 0 0 29.3 11l-2.36-4a2 2 0 0 0-1.73-1a2 2 0 0 0-.64.1l-2.43.82a11.35 11.35 0 0 0-1.31-.75l-.51-2.52a2 2 0 0 0-2-1.61h-4.68a2 2 0 0 0-2 1.61l-.51 2.52a11.48 11.48 0 0 0-1.32.75l-2.38-.86A2 2 0 0 0 6.79 6a2 2 0 0 0-1.73 1L2.7 11a2 2 0 0 0 .41 2.51L5 15.24v1.53l-1.89 1.68A2 2 0 0 0 2.7 21l2.36 4a2 2 0 0 0 1.73 1a2 2 0 0 0 .64-.1l2.43-.82a11.35 11.35 0 0 0 1.31.75l.51 2.52a2 2 0 0 0 2 1.61h4.72a2 2 0 0 0 2-1.61l.51-2.52a11.48 11.48 0 0 0 1.32-.75l2.42.82a2 2 0 0 0 .64.1a2 2 0 0 0 1.73-1l2.28-4a2 2 0 0 0-.41-2.51zM25.21 24l-3.43-1.16a8.86 8.86 0 0 1-2.71 1.57L18.36 28h-4.72l-.71-3.55a9.36 9.36 0 0 1-2.7-1.57L6.79 24l-2.36-4l2.72-2.4a8.9 8.9 0 0 1 0-3.13L4.43 12l2.36-4l3.43 1.16a8.86 8.86 0 0 1 2.71-1.57L13.64 4h4.72l.71 3.55a9.36 9.36 0 0 1 2.7 1.57L25.21 8l2.36 4l-2.72 2.4a8.9 8.9 0 0 1 0 3.13L27.57 20z`,fill:`currentColor`},null,-1),R(`path`,{d:`M16 22a6 6 0 1 1 6-6a5.94 5.94 0 0 1-6 6zm0-10a3.91 3.91 0 0 0-4 4a3.91 3.91 0 0 0 4 4a3.91 3.91 0 0 0 4-4a3.91 3.91 0 0 0-4-4z`,fill:`currentColor`},null,-1)])}});function OP(e,t=5e3){let n=k(!0),r=null,i=()=>{n.value=!0,e(),r=window.setInterval(e,t)},a=()=>{n.value=!1,r&&=(clearInterval(r),null)};return Vr(i),Gr(a),{isActive:n,start:i,stop:a}}var kP={class:`center-block-custom`},AP={class:`width1200`},jP={class:`settings-block`},MP={class:`team-block`},NP={class:`team-content-block`},PP={class:`title-block`},FP={class:`team-name-block`},IP={class:`qr-block`},LP=HN(P({__name:`GamePage`,setup(e){let t=YM(),n=aj(),r=oj().params.id,i=sD(),a=k(!1),o=k(!1),s=k(!1),c=k(!1),l=k(!1),u=k(``),d=k(``),f=k(!1),p=k(``),m=k(``),h=k({id:void 0,name:void 0,description:void 0,startAt:void 0,status:void 0,scenario:void 0,teams:void 0});async function g(e){let n=await t.GetGame({id:e});if(n.error!=``){i.error(n.error);return}h.value=n.game,h.value.teams=h.value.teams?.sort((e,t)=>{let n=0;(e.applications?.length||0)>0&&(n=1);let r=0;if((t.applications?.length||0)>0&&(r=1),n>r)return-1;if(na?1:i{g(Number(r))},2e3);async function ie(){let e=await t.ResetGame({id:h.value.id});if(e.error!=``){i.error(e.error);return}await g(h.value.id)}async function ae(){let e=await t.StartGame({id:h.value.id});if(e.error!=``){i.error(e.error);return}await g(h.value.id)}async function oe(){let e=await t.PauseGame({id:h.value.id});if(e.error!=``){i.error(e.error);return}await g(h.value.id)}async function se(){let e=await t.PlayGame({id:h.value.id});if(e.error!=``){i.error(e.error);return}await g(h.value.id)}async function ce(){let e=await t.FinishGame({id:h.value.id});if(e.error!=``){i.error(e.error);return}await g(h.value.id)}function le(e){let[t,n]=e.split(`T`),[r,i,a]=t.split(`-`).map(Number),[o,s,c]=(n.split(`.`)[0]||`00:00:00`).split(`:`).map(Number);return new Date(Date.UTC(r,i-1,a,o,s,c||0))}function ue(){let e=new Date;return new Date(e.getTime()-e.getTimezoneOffset()*6e4)}function de(e,t){if(e==``)return`Игра ещё не началась`;let n=le(e),r=ue();t!=``&&(r=le(t));let i=r.getTime()-n.getTime();if(i<0)return`Игра ещё не началась`;let a=Math.floor(i/1e3),o=Math.floor(a/60),s=Math.floor(o/60),c=Math.floor(s/24),l=Math.floor(c/30),u=Math.floor(c/365);return u>0?`${u}г ${c%365}д`:l>0?`${l}мес ${c%30}д`:c>0?`${c}д ${s%24}ч`:s>0?`${s}ч ${o%60}м`:o>0?`${o}м ${a%60}с`:`${a}с`}let fe=k(``);return OP(()=>{fe.value=de(h.value.startedAt||``,h.value.endedAt||``)},1e3),(e,t)=>(I(),L(F,null,[R(`div`,kP,[R(`div`,AP,[R(`div`,jP,[z(A(RD),{justify:`space-between`},{default:M(()=>[z(A(jD),null,{default:M(()=>[z(A(qC),{bordered:!1,type:`info`},{default:M(()=>[B(` Команд: `+O(h.value.teams?.length),1)]),_:1}),z(A(qC),{type:`info`},{default:M(()=>[B(O(fe.value),1)]),_:1})]),_:1}),R(`div`,null,[z(A($),{quaternary:``,class:`settings-button`,onClick:t[0]||=e=>re(A(C),`Админка`)},{default:M(()=>[...t[31]||=[B(` QR `,-1)]]),_:1}),z(A($),{quaternary:``,onClick:t[1]||=e=>a.value=!0,class:`settings-button`},{default:M(()=>[z(A(RN),{class:`settings-icon`},{default:M(()=>[z(A(DP))]),_:1}),t[32]||=B(` Настройки `,-1)]),_:1}),(h.value.teams?.length||0)==0?(I(),Ea(A($),{key:0,type:`error`,quaternary:``,onClick:t[2]||=e=>l.value=!0,class:`settings-button`},{default:M(()=>[...t[33]||=[B(` Удалить игру `,-1)]]),_:1})):Pa(``,!0),z(A(jD),null,{default:M(()=>[h.value.status==`draft`?Pa(``,!0):(I(),Ea(A($),{key:0,type:`info`,dashed:``,onClick:t[3]||=e=>ie()},{default:M(()=>[z(A(RN),null,{default:M(()=>[z(A(TP))]),_:1})]),_:1})),h.value.status==`draft`?(I(),Ea(A($),{key:1,type:`info`,dashed:``,onClick:t[4]||=e=>ae()},{default:M(()=>[z(A(RN),null,{default:M(()=>[z(A(CP))]),_:1})]),_:1})):Pa(``,!0),h.value.status==`pause`?(I(),Ea(A($),{key:2,type:`info`,dashed:``,onClick:t[5]||=e=>se()},{default:M(()=>[z(A(RN),null,{default:M(()=>[z(A(CP))]),_:1})]),_:1})):Pa(``,!0),h.value.status==`run`?(I(),Ea(A($),{key:3,type:`info`,dashed:``,onClick:t[6]||=e=>oe()},{default:M(()=>[z(A(RN),null,{default:M(()=>[z(A(xP))]),_:1})]),_:1})):Pa(``,!0),h.value.status==`finish`?Pa(``,!0):(I(),Ea(A($),{key:4,type:`info`,dashed:``,onClick:t[7]||=e=>ce()},{default:M(()=>[z(A(RN),null,{default:M(()=>[z(A(yP))]),_:1})]),_:1}))]),_:1})])]),_:1})]),R(`div`,{class:`team-block team-block-hover`,onClick:t[8]||=e=>s.value=!0},[...t[34]||=[R(`p`,{class:`place-image-plus`},`+`,-1)]]),(I(!0),L(F,null,ti(h.value.teams,e=>(I(),L(`div`,MP,[R(`div`,NP,[z(A(RD),{justify:`space-between`},{default:M(()=>[R(`div`,PP,[R(`span`,FP,O(e.name),1),R(`div`,null,` Поездки: `+O(e.actionsCount),1)]),z(A(RD),{justify:`end`},{default:M(()=>[z(A($),{onClick:t=>re(ne(e.id,e.password),`Подсмотреть игру`)},{default:M(()=>[...t[35]||=[B(` QR `,-1)]]),_:1},8,[`onClick`]),z(A($),{onClick:t=>_(e.id,e.password,!0)},{default:M(()=>[...t[36]||=[B(` Подсмотреть игру `,-1)]]),_:1},8,[`onClick`]),z(A($),{type:`error`,ghost:``,onClick:t=>E(e)},{default:M(()=>[...t[37]||=[B(` Удалить `,-1)]]),_:1},8,[`onClick`])]),_:2},1024)]),_:2},1024),(I(!0),L(F,null,ti(e.applications,t=>(I(),Ea(A($),{key:t.name,class:`link-button`,onClick:n=>w(e,t)},{default:M(()=>[B(` Выдать: `+O(t.name),1)]),_:2},1032,[`onClick`]))),128))])]))),256))])]),z(A(KE),{show:a.value,"onUpdate:show":t[13]||=e=>a.value=e},{default:M(()=>[z(A(OT),{style:{width:`600px`},title:`Настройки игры`,bordered:!1,size:`huge`,role:`dialog`,"aria-modal":`true`},{"header-extra":M(()=>[z(A($),{onClick:t[9]||=e=>a.value=!1},{default:M(()=>[...t[38]||=[B(` x `,-1)]]),_:1})]),footer:M(()=>[z(A(RD),{justify:`end`},{default:M(()=>[z(A($),{onClick:t[12]||=e=>v(),ghost:``},{default:M(()=>[...t[41]||=[B(` Сохранить изменения `,-1)]]),_:1})]),_:1})]),default:M(()=>[z(A(jD),{vertical:``},{default:M(()=>[t[39]||=R(`p`,null,`Название`,-1),z(A(Ow),{value:h.value.name,"onUpdate:value":t[10]||=e=>h.value.name=e,type:`text`,placeholder:`Дело №0 "Следствие ведут овечки"`},null,8,[`value`]),t[40]||=R(`p`,{class:`settings-header`},`Описание`,-1),z(A(Ow),{value:h.value.description,"onUpdate:value":t[11]||=e=>h.value.description=e,type:`textarea`,placeholder:`Убийство пастуха...`},null,8,[`value`])]),_:1})]),_:1})]),_:1},8,[`show`]),z(A(KE),{show:o.value,"onUpdate:show":t[16]||=e=>o.value=e},{default:M(()=>[z(A(OT),{style:{width:`600px`},title:`Настройки игры`,bordered:!1,size:`huge`,role:`dialog`,"aria-modal":`true`},{"header-extra":M(()=>[z(A($),{onClick:t[14]||=e=>o.value=!1},{default:M(()=>[...t[42]||=[B(` x `,-1)]]),_:1})]),footer:M(()=>[z(A(RD),{justify:`end`},{default:M(()=>[z(A($),{onClick:t[15]||=e=>ee(),ghost:``},{default:M(()=>[...t[45]||=[B(` Выдать `,-1)]]),_:1})]),_:1})]),default:M(()=>[z(A(jD),{vertical:``},{default:M(()=>[t[43]||=R(`p`,null,`Команда`,-1),R(`h3`,null,O(y.value.name),1),t[44]||=R(`p`,null,`Улика`,-1),R(`h3`,null,O(S.value.name),1)]),_:1})]),_:1})]),_:1},8,[`show`]),z(A(KE),{show:s.value,"onUpdate:show":t[20]||=e=>s.value=e},{default:M(()=>[z(A(OT),{style:{width:`600px`},title:`Создание команды`,bordered:!1,size:`huge`,role:`dialog`,"aria-modal":`true`},{"header-extra":M(()=>[z(A($),{onClick:t[17]||=e=>s.value=!1},{default:M(()=>[...t[46]||=[B(` x `,-1)]]),_:1})]),footer:M(()=>[z(A(RD),{justify:`end`},{default:M(()=>[z(A($),{onClick:t[19]||=e=>T(),disabled:u.value.length==0},{default:M(()=>[...t[47]||=[B(` Создать `,-1)]]),_:1},8,[`disabled`])]),_:1})]),default:M(()=>[z(A(Ow),{value:u.value,"onUpdate:value":t[18]||=e=>u.value=e,type:`text`,placeholder:`Три дебила`},null,8,[`value`])]),_:1})]),_:1},8,[`show`]),z(A(KE),{show:c.value,"onUpdate:show":t[24]||=e=>c.value=e},{default:M(()=>[z(A(OT),{style:{width:`600px`},title:`Удаление команды`,bordered:!1,size:`huge`,role:`dialog`,"aria-modal":`true`},{"header-extra":M(()=>[z(A($),{onClick:t[21]||=e=>c.value=!1},{default:M(()=>[...t[48]||=[B(` x `,-1)]]),_:1})]),footer:M(()=>[z(A(RD),{justify:`end`},{default:M(()=>[z(A($),{onClick:t[23]||=e=>D(),disabled:b.value!=x.value.name},{default:M(()=>[...t[51]||=[B(` Удалить `,-1)]]),_:1},8,[`disabled`])]),_:1})]),default:M(()=>[z(A(jD),{vertical:``},{default:M(()=>[R(`p`,null,[t[49]||=B(` Введите название команды `,-1),z(A(lA),{class:`name-text`,strong:``},{default:M(()=>[B(O(x.value.name),1)]),_:1}),t[50]||=B(` чтобы удалить его `,-1)]),z(A(Ow),{value:b.value,"onUpdate:value":t[22]||=e=>b.value=e,type:`text`,placeholder:`Три дебила`},null,8,[`value`])]),_:1})]),_:1})]),_:1},8,[`show`]),z(A(KE),{show:l.value,"onUpdate:show":t[28]||=e=>l.value=e},{default:M(()=>[z(A(OT),{style:{width:`600px`},title:`Удаление игры`,bordered:!1,size:`huge`,role:`dialog`,"aria-modal":`true`},{"header-extra":M(()=>[z(A($),{onClick:t[25]||=e=>l.value=!1},{default:M(()=>[...t[52]||=[B(` x `,-1)]]),_:1})]),footer:M(()=>[z(A(RD),{justify:`end`},{default:M(()=>[z(A($),{onClick:t[27]||=e=>te(),disabled:d.value!=h.value.name},{default:M(()=>[...t[55]||=[B(` Удалить `,-1)]]),_:1},8,[`disabled`])]),_:1})]),default:M(()=>[z(A(jD),{vertical:``},{default:M(()=>[R(`p`,null,[t[53]||=B(` Введите название игры `,-1),z(A(lA),{class:`name-text`,strong:``},{default:M(()=>[B(O(h.value.name),1)]),_:1}),t[54]||=B(` чтобы удалить её `,-1)]),z(A(Ow),{value:d.value,"onUpdate:value":t[26]||=e=>d.value=e,type:`text`,placeholder:`Дело №0 "Следствие ведут овечки"`},null,8,[`value`])]),_:1})]),_:1})]),_:1},8,[`show`]),z(A(KE),{show:f.value,"onUpdate:show":t[30]||=e=>f.value=e},{default:M(()=>[z(A(OT),{style:{width:`600px`},title:m.value,bordered:!1,size:`huge`,role:`dialog`,"aria-modal":`true`},{"header-extra":M(()=>[z(A($),{onClick:t[29]||=e=>f.value=!1},{default:M(()=>[...t[56]||=[B(` x `,-1)]]),_:1})]),footer:M(()=>[...t[57]||=[]]),default:M(()=>[z(A(jD),{vertical:``},{default:M(()=>[R(`div`,IP,[z(A(Vk),{value:p.value,size:300,padding:0},null,8,[`value`])])]),_:1})]),_:1},8,[`title`])]),_:1},8,[`show`]),z(UN,{active:`games`})],64))}}),[[`__scopeId`,`data-v-d657389a`]]),RP=P({__name:`GameView`,setup(e){return(e,t)=>(I(),Ea(LP))}}),zP=P({__name:`HomeView`,setup(e){return(e,t)=>(I(),L(F,null,[t[0]||=R(`div`,{class:`center-block-custom content-block center-middle-block-custom height80`},[R(`div`,null,[R(`h1`,{class:`font-text`},`Вечерний детектив`),R(`h3`,{class:`font-text`},`Дело №0`),R(`p`,{class:`content-text`},` Поиграем? `)])],-1),z(UN,{active:`main`})],64))}}),BP={class:`center-block-custom content-block center-middle-block-custom height80`},VP={class:`form-button-wrapper`},HP={class:`form-label`},UP={key:0},WP={key:1},GP={class:`form-label`},KP={class:`form-label`},qP={class:`form-button-wrapper`},JP={class:`form-label`},YP={key:0},XP={key:1},ZP={class:`form-button-wrapper`},QP={class:`form-label`},$P={key:0},eF={key:1},tF=HN(P({__name:`LoginPage`,setup(e){let t=JM(),n=aj(),r=sD(),i=k(``),a=k(``),o=k(``),s=k(!1),c=k(!1),l=V(()=>[`@mail.ru`,`@yandex.ru`,`@gmail.com`].map(e=>{let t=a.value.split(`@`)[0];return{label:t+e,value:t+e}}));async function u(){if(!await t.login(a.value,o.value)&&t.error!=null){r.error(t.error);return}n.push(`/office`)}async function d(){if(!(!s.value||!c.value)){if(!await t.signup(i.value,a.value,s.value,c.value)&&t.error!=null){r.error(t.error);return}r.info(`Пароль отправлен на почту`),s.value=!1,c.value=!1}}async function f(){if(!await t.refreshPassword(a.value)&&t.error!=null){r.error(t.error);return}r.info(`Пароль отправлен на почту`)}return(e,n)=>(I(),L(`div`,BP,[z(A(OT),{style:{"margin-bottom":`16px`},class:`sign-card`},{default:M(()=>[z(A(rA),{type:`line`,animated:``},{default:M(()=>[z(A($k),{name:`signin`,tab:`Вход`},{default:M(()=>[z(A(jD),{vertical:``},{default:M(()=>[n[7]||=R(`div`,{class:`form-label`},`Почта`,-1),z(A(Bw),{value:a.value,"onUpdate:value":n[0]||=e=>a.value=e,"input-props":{autocomplete:`disabled`},options:l.value,placeholder:`detective@mail.ru`,clearable:``},null,8,[`value`,`options`]),n[8]||=R(`div`,{class:`form-label`},`Пароль`,-1),z(A(Ow),{value:o.value,"onUpdate:value":n[1]||=e=>o.value=e,type:`password`,placeholder:`********`},null,8,[`value`]),R(`div`,VP,[R(`div`,HP,[z(A($),{onClick:u,disabled:a.value.length==0||o.value.length==0},{default:M(()=>[A(t).isLoading?(I(),L(`span`,WP,` Подождите... `)):(I(),L(`span`,UP,` Вход `))]),_:1},8,[`disabled`])])])]),_:1})]),_:1}),z(A($k),{name:`signup`,tab:`Регистрация`},{default:M(()=>[z(A(jD),{vertical:``},{default:M(()=>[n[11]||=R(`div`,{class:`form-label`},`Позывной`,-1),z(A(Ow),{value:i.value,"onUpdate:value":n[2]||=e=>i.value=e,type:`text`,placeholder:`Шерлок`},null,8,[`value`]),n[12]||=R(`div`,{class:`form-label`},`Почта`,-1),z(A(Bw),{value:a.value,"onUpdate:value":n[3]||=e=>a.value=e,"input-props":{autocomplete:`disabled`},options:l.value,placeholder:`detective@mail.ru`,clearable:``},null,8,[`value`,`options`]),R(`div`,GP,[z(A(VT),{checked:s.value,"onUpdate:checked":n[4]||=e=>s.value=e},{default:M(()=>[...n[9]||=[B(` Я принимаю условия `,-1),R(`a`,{href:`/user-agreement`,target:`_blank`,class:`docs-link`},`пользовательского соглашения`,-1)]]),_:1},8,[`checked`])]),R(`div`,KP,[z(A(VT),{checked:c.value,"onUpdate:checked":n[5]||=e=>c.value=e},{default:M(()=>[...n[10]||=[B(` Я даю согласие на обработку `,-1),R(`a`,{href:`/privacy-policy`,target:`_blank`,class:`docs-link`},`персональных данных`,-1)]]),_:1},8,[`checked`])]),R(`div`,qP,[R(`div`,JP,[z(A($),{onClick:d,disabled:i.value.length==0||a.value.length==0||!s.value||!c.value},{default:M(()=>[A(t).isLoading?(I(),L(`span`,XP,` Подождите... `)):(I(),L(`span`,YP,` Регистрация `))]),_:1},8,[`disabled`])])])]),_:1})]),_:1}),z(A($k),{name:`new-password`,tab:`Новый пароль`},{default:M(()=>[z(A(jD),{vertical:``},{default:M(()=>[n[13]||=R(`div`,{class:`form-label`},`Почта`,-1),z(A(Bw),{value:a.value,"onUpdate:value":n[6]||=e=>a.value=e,"input-props":{autocomplete:`disabled`},options:l.value,placeholder:`detective@mail.ru`,clearable:``},null,8,[`value`,`options`]),R(`div`,ZP,[R(`div`,QP,[z(A($),{onClick:f,disabled:a.value.length==0},{default:M(()=>[A(t).isLoading?(I(),L(`span`,eF,` Подождите... `)):(I(),L(`span`,$P,` Прислать новый пароль `))]),_:1},8,[`disabled`])])])]),_:1})]),_:1})]),_:1})]),_:1})]))}}),[[`__scopeId`,`data-v-33c96af1`]]),nF=P({__name:`LoginView`,setup(e){return(e,t)=>(I(),L(F,null,[z(tF),z(UN)],64))}}),rF={class:`center-block-custom`},iF={class:`width700`},aF={class:`danger-zone`},oF={key:0,class:`delete-modal-error`},sF={class:`delete-modal-buttons`},cF=HN(P({__name:`OfficePage`,setup(e){let t=JM(),n=aj(),r=sD(),i=YM(),a=k([]);async function o(){a.value=[];let e=await i.GetPermissions({});a.value=e.permissions}o();function s(){let e=new Date,t=e.getDay(),n=e.getDate(),r=e.getMonth()+1,i=t===1,a=t===5&&n===13,o=r===1&&n===1||r===12&&n===31,s=r>=6&&r<=8,c=r===12||r<=2,l=n%5==0,u=[`Всегда носи с собой запасную ручку — признания любят записывать в самый неподходящий момент.`,`Если подозреваемый слишком вежлив, он либо дипломат, либо прячет труп в гараже.`,`Кофе в участке — это не напиток, это яд для улик. Пей только свой.`,`Следы на месте преступления всегда ведут к тому, кто забыл закрыть дверь.`,`Лучший способ разговорить молчуна — предложить ему чай с тремя ложками сахара.`,`Если всё указывает на дворецкого, ищи того, кто нанимал дворецкого.`,`Записывай каждую мелочь. Особенно цвет носков убитого.`,`Не верь алиби, которое начинается со слов 'Я бы никогда...'`,`Преступник всегда возвращается на место преступления. Или за забытым телефоном.`,`Ищи того, кому есть что терять, кроме своего времени.`,`Если женщина плачет в кабинете — дай ей платок. Если мужчина — дай ему стакан воды.`,`Самое опасное оружие — не пистолет, а бухгалтерская книга.`,`Собака всегда знает убийцу. Но она не говорит, потому что у неё контракт.`,`Проверяй чеки, билеты и смс. Ложь не терпит документации.`,`Если у тела нет врагов — ты плохо искал врагов.`,`Лупа нужна не для увеличения улик, а для того, чтобы выглядеть умнее.`,`Интуиция — это когда ты уже знаешь ответ, но хочешь убедиться, что не ошибся.`,`Подозревай всех, даже самого себя. Иногда преступник — это ты в прошлом.`,`Хороший детектив видит улики. Великий — видит их отсутствие.`,`Никогда не допрашивай свидетеля на голодный желудок. И себя тоже.`,`Если дело зашло в тупик, переверни бумаги вверх ногами.`,`Самый ценный свидетель — это камера наблюдения, у которой сломана защита.`,`Не ищи мотив. Ищи возможность.`,`Преступник не оставляет следов. Он оставляет выбор.`,`Если дверь была закрыта изнутри — ищи люк, который открывается снаружи.`,`Лучший детектив — тот, кого не замечают в толпе.`,`Учись читать по губам. Пригодится на допросах с адвокатом.`,`Запах духов на месте преступления важнее запаха пороха.`,`Если ты нашел отпечаток пальца — проверь, не твой ли он.`,`Раскрыть дело — это искусство. Не раскрыть — тоже искусство, но другое.`,`Никогда не спорь с баллистикой. Она всегда права, даже если ты не согласен.`,`В каждом деле есть одна странная деталь. Найди её — и пазл сложится.`,`Если преступник умный — он оставит ложный след. Если глупый — он оставит следы в соцсетях.`,`Лучший друг детектива — тишина. Второй друг — кофе.`,`Если свидетель говорит слишком много, он врет. Если молчит — он тоже врет.`,`Преступление редко бывает идеальным. Идеальным бывает только алиби жены.`,`Всегда смотри на часы на трупе. Возможно, они показывают время, когда он перестал верить в людей.`,`Воры любят темноту. Детективы — свет. А маньяки — полную луну.`,`Если ты поймал преступника, не радуйся раньше времени — может, он просто лжец.`,`В каждом городе есть одно место, где собираются все сплетники. Начни оттуда.`,`Не верь в совпадения. Но верь в удачу.`,`Если у тебя нет улик — придумай их. Но только мысленно, чтобы знать, где искать.`,`Жертва всегда знала убийцу. Даже если она не знала, что знает.`,`Проверяй алиби на разрыв. Если оно выдерживает — ты ошибся.`,`Самый страшный враг детектива — не маньяк, а его собственная лень.`,`Если преступник оставил записку — прочитай её. И сожги, чтобы никто не узнал твой почерк.`,`Всегда носи с собой фонарик. Даже днём. Для эффекта.`,`В деле важно всё: от укуса комара до размера обуви.`,`Если ты думаешь, что дело простое — значит, ты не додумал.`,`Убийца всегда ищет внимания. Или наоборот, избегает его.`,`Стук в дверь в полночь — это либо полиция, либо заказчик.`,`Никогда не давай обещаний родственникам жертвы. Только факты.`,`Если у тебя есть три версии — выбирай четвёртую.`,`Лучшее оружие — это бумага. На ней можно написать что угодно.`,`Когда ты смотришь на улику, смотри на неё глазами преступника.`,`Все любят детективы, пока не становятся подозреваемыми.`,`Следы крови важны. Но важнее — следы лжи.`,`Если ты не спишь третьи сутки, значит, ты либо гений, либо дурак.`,`Проверяй каждого, кто говорит 'Я ничего не видел'.`,`В каждом деле есть один человек, который знает всё. И он не говорит.`,`Не суди преступника по одежде. Суди по тому, как он её снимал.`,`Дыра в алиби — это как дыра в лодке. Рано или поздно она утонет.`,`Если преступник использует перчатки — он профессионал. Если нет — он любитель.`,`Запомни: первая версия — всегда неверная.`,`Если у тебя кончились идеи, иди в бар. Там всегда есть кто-то, кто расскажет тебе дело.`,`Свидетель с фотороботом — это как слепой с компасом.`,`Никогда не смейся над уликами. Они могут обидеться и исчезнуть.`,`Если ты нашёл оружие — не трогай его. Иначе твои отпечатки будут на нём.`,`Преступник умён, но ты умнее. Потому что ты пьёшь правильный кофе.`,`Всегда пересматривай видеозаписи. Особенно в два раза медленнее.`,`Если на месте преступления есть кот — он видел всё. Но он не скажет.`,`Лучший способ поймать преступника — пригласить его на обед.`,`Если подозреваемый улыбается, он либо невиновен, либо психопат.`,`Проверяй мусор. В нём всегда есть что-то полезное.`,`Никогда не доверяй красивым историям. Только уродливым фактам.`,`Если ты нашёл улику слишком легко — это ловушка.`,`Убийца всегда оставляет послание. Даже если это просто тишина.`,`Если ты запнулся на допросе — делай вид, что так и задумано.`,`Помни: все врут. Даже я тебе советую.`,`Если ты боишься темноты — стань детективом. Страх пройдёт.`,`Самые лучшие признания случаются под утро, когда все устали.`,`Если преступник использовал компьютер, значит, он либо хакер, либо дурак.`,`Следы шин — это как подпись на дороге.`,`Никогда не забывай про запах. Он помнит дольше, чем люди.`,`Если ты не знаешь, что делать — съешь шоколадку.`,`В каждом деле есть одна минута слабости. Найди её.`,`Преступник всегда нервничает. Даже если он не нервничает.`,`Если у тебя есть подозреваемый и нет улик — подожди. Улики появятся.`,`Не верь в чудеса. Верь в логику.`,`Если ты устал — возьми отпуск. Преступление никуда не денется.`,`Запомни: самый опасный преступник — тот, кто читал детективы.`,`Если ты думаешь, что всё кончено — значит, ты пропустил поворот.`,`Следы на полу важнее следов в душе.`,`Если преступник оставил окурок — он курил. Или хотел, чтобы ты так думал.`,`Хороший детектив всегда голоден. Это помогает мыслить.`,`Не суди по первому впечатлению. Суди по второму, когда увидишь его в наручниках.`,`Если у тебя есть тайный агент — не доверяй ему.`,`В деле всегда есть тот, кто знает больше, чем говорит.`,`Если ты не можешь найти убийцу — стань им (в мыслях).`,`И последнее: всегда проверяй, закрыл ли ты дверь участка.`],d=[];i&&d.push(`☕ Понедельник: Сегодня даже преступники не хотят работать. Проверь тех, кто был слишком бодр.`),a&&d.push(`🔮 Пятница 13-е: Если улики ведут к чёрной кошке, ищи чёрного кота с алиби.`),o&&d.push(`🎄 Новый год: Свидетель в костюме Деда Мороза врёт. Настоящий Дед Мороз всегда в отпуске.`),s&&d.push(`☀️ Лето: В жару преступники забывают улики в карманах, потому что снимают пиджаки.`),c&&d.push(`❄️ Зима: Следы на снегу ведут к тому, у кого самые холодные руки.`),l&&d.push(`🌕 Полнолуние: Если подозреваемый воет на луну, он либо оборотень, либо фанат рока.`);let f=u.concat(d),p=f[Math.floor(Math.random()*f.length)],m=[`🔍 Заметки сыщика:`,`📓 Из дневника инспектора:`,`🕵️ Мудрость Шерлока:`,`🧠 Гениально и просто:`,`📌 Правило большого пальца:`,`☕ Кофейная истина:`];return{header:m[Math.floor(Math.random()*m.length)],text:p}}let c=s(),l=k(!1),u=k(``),d=k(``);async function f(){if(d.value=``,!await t.deleteAccount(u.value)){d.value=t.error||`Не удалось удалить аккаунт`;return}r.success(`Аккаунт и персональные данные удалены`),l.value=!1,n.push(`/login`)}return(e,n)=>(I(),L(F,null,[R(`div`,rF,[R(`div`,iF,[z(A(uw),{title:A(c).header,"show-icon":!1,type:`info`,style:{"margin-bottom":`20px`}},{default:M(()=>[B(O(A(c).text),1)]),_:1},8,[`title`]),R(`p`,null,`Доброго времени суток, `+O(A(t).username)+`.`,1),R(`div`,aF,[n[5]||=R(`div`,{class:`danger-zone-text`},[R(`div`,{class:`danger-zone-title`},`Удаление аккаунта`),R(`div`,{class:`danger-zone-hint`},` Удаление необратимо: аккаунт и все персональные данные будут стёрты (ст. 21 152-ФЗ). `)],-1),z(A($),{type:`error`,ghost:``,onClick:n[0]||=e=>l.value=!0},{default:M(()=>[...n[4]||=[B(`Удалить аккаунт`,-1)]]),_:1})])])]),z(A(KE),{show:l.value,"onUpdate:show":n[3]||=e=>l.value=e,preset:`card`,title:`Удаление аккаунта`,class:`delete-modal`},{default:M(()=>[n[8]||=R(`p`,{class:`delete-modal-text`},` Это действие необратимо. Для подтверждения удаления введите пароль от учётной записи — он понадобится, чтобы убедиться, что аккаунт удаляет его владелец. `,-1),z(A(Ow),{value:u.value,"onUpdate:value":n[1]||=e=>u.value=e,type:`password`,placeholder:`Пароль для подтверждения`,onKeyup:Ns(f,[`enter`])},null,8,[`value`]),d.value?(I(),L(`p`,oF,O(d.value),1)):Pa(``,!0),R(`div`,sF,[z(A($),{onClick:n[2]||=e=>l.value=!1},{default:M(()=>[...n[6]||=[B(`Отмена`,-1)]]),_:1}),z(A($),{type:`error`,disabled:u.value.length==0,loading:A(t).isLoading,onClick:f},{default:M(()=>[...n[7]||=[B(` Удалить навсегда `,-1)]]),_:1},8,[`disabled`,`loading`])])]),_:1},8,[`show`]),z(UN,{active:`office`})],64))}}),[[`__scopeId`,`data-v-e477f47a`]]),lF=P({__name:`OfficeView`,setup(e){return(e,t)=>(I(),Ea(cF))}}),uF=P({__name:`PrivacyPolicyView`,setup(e){return(e,t)=>(I(),L(F,null,[z(lP,{kind:`privacy`}),z(UN)],64))}}),dF={xmlns:`http://www.w3.org/2000/svg`,"xmlns:xlink":`http://www.w3.org/1999/xlink`,viewBox:`0 0 24 24`},fF=P({name:`Key24Regular`,render:function(e,t){return I(),L(`svg`,dF,t[0]||=[R(`g`,{fill:`none`},[R(`path`,{d:`M18.25 7a1.25 1.25 0 1 1-2.5 0a1.25 1.25 0 0 1 2.5 0zM15.5 2.05A6.554 6.554 0 0 0 8.95 8.6c0 .387.05.76.11 1.104a.275.275 0 0 1-.07.244l-6.235 6.236a2.75 2.75 0 0 0-.806 1.944V20.3c0 .966.784 1.75 1.75 1.75h2.5a1.75 1.75 0 0 0 1.75-1.75v-1.25H9.7c.69 0 1.25-.56 1.25-1.25v-1.75h1.75a1.25 1.25 0 0 0 1.25-1.204c.496.128 1.02.204 1.55.204a6.554 6.554 0 0 0 6.55-6.55c0-3.631-2.953-6.45-6.55-6.45zM10.45 8.6a5.054 5.054 0 0 1 5.05-5.05c2.802 0 5.05 2.181 5.05 4.95a5.054 5.054 0 0 1-5.05 5.05c-.68 0-1.38-.171-2.005-.44a.75.75 0 0 0-1.046.69v.75H10.7c-.69 0-1.25.56-1.25 1.25v1.75H7.7c-.69 0-1.25.56-1.25 1.25v1.5a.25.25 0 0 1-.25.25H3.7a.25.25 0 0 1-.25-.25v-2.172c0-.331.132-.65.366-.884l6.236-6.235a1.774 1.774 0 0 0 .486-1.564a4.917 4.917 0 0 1-.088-.845z`,fill:`currentColor`})],-1)])}}),pF={class:`main`},mF={class:`message-cloud`},hF=HN(P({__name:`MessagePaper`,setup(e){return(e,t)=>(I(),L(`div`,pF,[t[0]||=R(`div`,{class:`message-cloud-3`},null,-1),t[1]||=R(`div`,{class:`message-cloud-2`},null,-1),R(`div`,mF,[ni(e.$slots,`default`,{},void 0,!0)])]))}}),[[`__scopeId`,`data-v-dfe3093b`]]),gF={key:1,class:`place-block`},_F={class:`message-header`},vF={class:`message-content`},yF={key:0},bF={class:`message-image-border`},xF=[`src`],SF={key:0,class:`hr`},CF={class:`gray-block`},wF={key:0},TF={class:`key-block`},EF={key:3},DF={class:`message-show-header font`},OF={class:`message-show-content font`},kF={key:0},AF={class:`message-image-border`},jF=[`src`],MF={key:0,class:`show-hr`},NF=[`onClick`],PF={class:`button-dialog-text`},FF={key:1,class:`show-hr`},IF={key:4},LF={class:`message-header font`},RF={key:5,class:`place-block`},zF=[`src`],BF={style:{display:`flex`,"align-items":`center`,width:`100%`}},VF={style:{display:`flex`,"flex-direction":`column`}},HF={style:{display:`flex`,"flex-direction":`column`,width:`100%`}},UF={class:`door-add-block`},WF={class:`door-field`},GF={style:{display:`flex`,"align-items":`center`,width:`100%`}},KF={style:{display:`flex`,"align-items":`center`,width:`100%`}},qF={class:`slot-block`},JF=HN(P({__name:`PlaceBlock`,props:{newPlaceCode:{type:String},newPlaceName:{type:String},newPlaceText:{type:String},place:{type:Object},mode:{type:String,required:!0},addAction:{type:Function}},emits:[`update:newPlaceCode`,`update:newPlaceName`,`update:newPlaceText`,`update:mode`],setup(e,{emit:t}){let n=e,r=t,i=e=>{r(`update:newPlaceCode`,e)},a=e=>{r(`update:newPlaceName`,e)},o=e=>{r(`update:newPlaceText`,e)},s=e=>{r(`update:mode`,e)};function c(){return{name:void 0,image:void 0}}function l(){return{code:void 0,name:void 0,keys:void 0}}function u(){return{name:void 0}}return(t,r)=>(I(),L(F,null,[e.mode==`mini-add`?(I(),L(`div`,{key:0,class:`place-block-hover show-editor-block`,onClick:r[0]||=e=>s(`add`)},[...r[14]||=[R(`p`,{class:`place-image-plus`},`+`,-1)]])):Pa(``,!0),e.mode==`add`?(I(),L(`div`,gF,[z(A(jD),{vertical:``},{default:M(()=>[z(A(Aw),null,{default:M(()=>[z(A(Ow),{style:{width:`20%`},value:e.newPlaceCode,"onUpdate:value":i,type:`text`,placeholder:`Ы-1`},null,8,[`value`]),z(A(Ow),{style:{width:`80%`},value:e.newPlaceName,"onUpdate:value":a,type:`text`,placeholder:`Дом №Ы`},null,8,[`value`])]),_:1}),z(A(Ow),{value:e.newPlaceText,"onUpdate:value":o,type:`textarea`,autosize:{minRows:3},placeholder:`В начале было слово...`},null,8,[`value`]),ni(t.$slots,`default`,{},void 0,!0)]),_:3})])):Pa(``,!0),e.mode==`show-editor`?(I(),L(`div`,{key:2,class:`place-block-hover show-editor-block`,onClick:r[1]||=e=>s(`edit`)},[R(`div`,_F,O(n.place?.code)+`: `+O(n.place?.name),1),r[15]||=R(`hr`,{class:`hr`},null,-1),R(`div`,vF,[n.place?.image?(I(),L(`div`,yF,[R(`div`,bF,[R(`img`,{src:n.place?.image,class:`message-image`},null,8,xF)])])):Pa(``,!0),B(` `+O(n.place?.text),1)]),(I(!0),L(F,null,ti(n.place?.doors,e=>(I(),L(`div`,{key:e.code,class:`door-block`},[B(O(e.name)+` `,1),(I(!0),L(F,null,ti(e.keys,e=>(I(),L(`span`,{key:e.name,class:`key-block`},[z(A(RN),{class:`lock-icon`},{default:M(()=>[z(A(tN))]),_:1}),B(` `+O(e.name),1)]))),128))]))),128)),n.place?.applications?.length?(I(),L(`hr`,SF)):Pa(``,!0),(I(!0),L(F,null,ti(n.place?.applications,e=>(I(),L(`div`,{class:`message-footer application-block`,key:e.name},` Приложение: `+O(e.name),1))),128)),R(`p`,CF,[n.place?.hidden?(I(),L(`span`,wF,` Скрытая точка `)):Pa(``,!0),(I(!0),L(F,null,ti(n.place?.keys,e=>(I(),L(`span`,TF,[z(A(RN),{class:`lock-icon`},{default:M(()=>[z(A(fF))]),_:1}),B(` `+O(e.name),1)]))),256))])])):Pa(``,!0),e.mode==`show`?(I(),L(`div`,EF,[z(hF,null,{default:M(()=>[R(`div`,DF,[B(O(e.place?.code)+`: `+O(e.place?.name)+` `,1),R(`span`,{class:`collapse-icon collapse-icon-up`,onClick:r[2]||=e=>s(`show-collapse`)})]),r[16]||=R(`hr`,{class:`show-hr`},null,-1),R(`div`,OF,[e.place?.image?.length?(I(),L(`div`,kF,[R(`div`,AF,[R(`img`,{src:e.place?.image,class:`message-image`},null,8,jF)])])):Pa(``,!0),B(` `+O(e.place?.text),1)]),n.place?.doors?.length?(I(),L(`hr`,MF)):Pa(``,!0),(I(!0),L(F,null,ti(n.place?.doors,t=>(I(),L(`div`,{key:t.code,class:`button-dialog font`,onClick:n=>e.addAction(t.code)},[R(`div`,PF,O(t.code)+` `+O(t.name),1)],8,NF))),128)),n.place?.applications?.length?(I(),L(`hr`,FF)):Pa(``,!0),(I(!0),L(F,null,ti(n.place?.applications,e=>(I(),L(`div`,{class:`message-show-footer font`,key:e.name},` Приложение: `+O(e.name),1))),128))]),_:1})])):Pa(``,!0),e.mode==`show-collapse`?(I(),L(`div`,IF,[z(hF,null,{default:M(()=>[R(`div`,LF,[B(O(e.place?.code)+`: `+O(e.place?.name)+` `,1),R(`span`,{class:`collapse-icon`,onClick:r[3]||=e=>s(`show`)})])]),_:1})])):Pa(``,!0),e.mode==`edit`?(I(),L(`div`,RF,[z(A(jD),{vertical:``},{default:M(()=>[z(A(Aw),null,{default:M(()=>[z(A(Ow),{style:{width:`20%`},value:n.place.code,"onUpdate:value":r[4]||=e=>n.place.code=e,type:`text`,placeholder:`Ы-1`},null,8,[`value`]),z(A(Ow),{style:{width:`80%`},value:n.place.name,"onUpdate:value":r[5]||=e=>n.place.name=e,type:`text`,placeholder:`Дом №Ы`},null,8,[`value`])]),_:1}),z(A(Ow),{value:n.place.text,"onUpdate:value":r[6]||=e=>n.place.text=e,type:`textarea`,autosize:{minRows:3},placeholder:`В начале было слово...`},null,8,[`value`]),r[28]||=R(`p`,{class:`settings-header`},`Картинка`,-1),R(`div`,null,[z(A(jD),null,{default:M(()=>[z(A(jD),{vertical:``},{default:M(()=>[R(`img`,{src:n.place.image,class:`message-edit-image`},null,8,zF),z(A($),{onClick:r[7]||=e=>(n.place.image=``,n.place.fileList=null)},{default:M(()=>[...r[17]||=[B(`Убрать картинку`,-1)]]),_:1})]),_:1}),z(A(jD),{vertical:``},{default:M(()=>[z(A(Ow),{value:n.place.image,"onUpdate:value":r[8]||=e=>n.place.image=e,type:`text`,placeholder:`Не задано`,disabled:``},null,8,[`value`]),z(A(VA),{"directory-dnd":``,max:1,"file-list":n.place.fileList,"onUpdate:fileList":r[9]||=e=>n.place.fileList=e},{default:M(()=>[z(A(fA),null,{default:M(()=>[z(A(lA),{style:{"font-size":`16px`}},{default:M(()=>[...r[18]||=[B(` Щелкните или перетащите файл в эту область для загрузки `,-1)]]),_:1})]),_:1})]),_:1},8,[`file-list`])]),_:1})]),_:1})]),r[29]||=R(`p`,{class:`settings-header`},`Видимость точки`,-1),z(A(Xk),{value:n.place.hidden,"onUpdate:value":r[10]||=e=>n.place.hidden=e},{checked:M(()=>[...r[19]||=[B(` Скрытая точка `,-1)]]),unchecked:M(()=>[...r[20]||=[B(` Обычная точка `,-1)]]),_:1},8,[`value`]),r[30]||=B(` Улики `,-1),z(A(wD),{value:n.place.applications,"onUpdate:value":r[11]||=e=>n.place.applications=e,"on-create":c},{"create-button-default":M(()=>[...r[21]||=[B(` Добавить улику `,-1)]]),default:M(({value:e})=>[R(`div`,BF,[z(A(Ow),{value:e.name,"onUpdate:value":t=>e.name=t,type:`text`,placeholder:`Название`},null,8,[`value`,`onUpdate:value`])])]),_:1},8,[`value`]),r[31]||=B(` Действия `,-1),z(A(wD),{value:n.place.doors,"onUpdate:value":r[12]||=e=>n.place.doors=e,"on-create":l},{"create-button-default":M(()=>[...r[22]||=[B(` Добавить действие `,-1)]]),action:M(({index:e,create:t,remove:n})=>[R(`div`,VF,[z(A($),{onClick:()=>t(e),class:`plus-minus-buttons`},{default:M(()=>[...r[23]||=[B(`+`,-1)]]),_:1},8,[`onClick`]),z(A($),{onClick:()=>n(e),class:`plus-minus-buttons`},{default:M(()=>[...r[24]||=[B(`-`,-1)]]),_:1},8,[`onClick`])])]),default:M(({value:e})=>[R(`div`,HF,[R(`div`,UF,[z(A(Aw),null,{default:M(()=>[z(A(Ow),{style:{width:`30%`},value:e.code,"onUpdate:value":t=>e.code=t,type:`text`,placeholder:`Код`},null,8,[`value`,`onUpdate:value`]),z(A(Ow),{style:{width:`70%`},value:e.name,"onUpdate:value":t=>e.name=t,type:`text`,placeholder:`Название`},null,8,[`value`,`onUpdate:value`])]),_:2},1024),r[26]||=R(`p`,{class:`need-keys-text`},`Требуемые ключи`,-1),R(`div`,WF,[z(A(wD),{value:e.keys,"onUpdate:value":t=>e.keys=t,"on-create":u},{"create-button-default":M(()=>[...r[25]||=[B(` Добавить ключ `,-1)]]),default:M(({value:e})=>[R(`div`,GF,[z(A(Ow),{value:e.name,"onUpdate:value":t=>e.name=t,type:`text`,placeholder:`Название`},null,8,[`value`,`onUpdate:value`])])]),_:1},8,[`value`,`onUpdate:value`])])])])]),_:1},8,[`value`]),r[32]||=B(` Получаемые ключи `,-1),z(A(wD),{value:n.place.keys,"onUpdate:value":r[13]||=e=>n.place.keys=e,"on-create":u},{"create-button-default":M(()=>[...r[27]||=[B(` Добавить ключ `,-1)]]),default:M(({value:e})=>[R(`div`,KF,[z(A(Ow),{value:e.name,"onUpdate:value":t=>e.name=t,type:`text`,placeholder:`Название`},null,8,[`value`,`onUpdate:value`])])]),_:1},8,[`value`]),R(`div`,qF,[ni(t.$slots,`default`,{},void 0,!0)])]),_:3})])):Pa(``,!0)],64))}}),[[`__scopeId`,`data-v-93891f39`]]),YF={class:`center-block-custom`},XF={class:`width700`},ZF={class:`places-container`},QF={class:`settings-block`},$F=HN(P({__name:`ScenariosEditorPage`,setup(e){let t=JM(),n=YM(),r=oj().params.id,i=k(!1),a=k(``),o=k(``),s=sD(),c=k([]),l=k({id:void 0,name:void 0,story:void 0,author:void 0,status:void 0,updatedAt:void 0,createdAt:void 0,publishedAt:void 0});async function u(e){let t=await n.GetFullScenario({id:e});if(t.error!=``){s.error(t.error);return}l.value=t.scenario,l.value.story?.places?.forEach(e=>{e.oldCode=e.code,e.mode=`show-editor`})}u(Number(r));async function d(e){let t=await n.DeleteScenario({id:e});if(t.error!=``){s.error(t.error);return}rL.push(`/scenarios`)}async function f(e){let t=await n.PublicScenario({id:e});if(t.error!=``){s.error(t.error);return}await u(Number(r)),a.value=``,i.value=!1}async function p(e,t){let r=new Date().toISOString(),i=await n.AddGame({name:(`Тестовая игра: `+e).trim(),description:`Тестовая игра`,startAt:r,scenarioId:t});if(i.error!=``){s.error(i.error);return}let a=await n.AddTeam({name:`Тестовая команда`,gameId:i.id});if(a.error!=``){s.error(a.error);return}rL.push(`/team-story/`+a.id+`?password=`+a.password)}async function m(e){let t=await n.DraftScenario({id:e});if(t.error!=``){s.error(t.error);return}await u(Number(r)),a.value=``,i.value=!1}async function h(e,t){if(!e)return``;let r=await e.arrayBuffer(),i=new Uint8Array(r),a=await n.UploadFile({filename:t,data:_(i)});return a.error==``?a.filename||``:(s.error(a.error),``)}async function g(){let e=``;if(c.value&&c.value.length>0){let t=c.value[0].file||null;if(t==null||(e=await h(t,`scenarios_`+l.value.id+`_`+t.name),e===``))return}let t=await n.UpdateScenario({id:l.value.id,name:l.value.name,description:l.value.description,image:e});if(t.error!=``){s.error(t.error);return}await u(Number(r)),i.value=!1}function _(e){let t=v(e);return btoa(t)}function v(e){let t=``;for(let n=0;ne.code==r.code)==null){let t=await n.AddScenarioPlace({id:e.id,place:{code:r.code,name:r.name,text:void 0,image:void 0,hidden:!0,applications:void 0,doors:void 0,keys:void 0}});if(t.error!=``){s.error(t.error);return}}}async function ee(e){await u(Number(r)),e.mode=`show-editor`}async function E(e){if(e.fileList&&e.fileList.length>0){let t=e.fileList[0].file||null;if(t==null)return;let n=await h(t,`scenarios_`+l.value.id+`_place_`+e.code+`_`+t.name);if(n===``)return;e.image=n}await T(l.value,e);let t=await n.UpdateScenarioPlace({id:l.value.id,code:e.oldCode,place:e});if(t.error!=``){s.error(t.error);return}await u(Number(r)),e.mode=`show-editor`}async function D(e){let t=await n.DeleteScenarioPlace({id:l.value.id,code:e.oldCode});if(t.error!=``){s.error(t.error);return}await u(Number(r))}function te(){let e=[{text:`Настя, ты просто ослепительна сегодня!`,nameForm:`Настя`},{text:`У Насти невероятный вкус!`,nameForm:`Насти`},{text:`Настенька, твоя улыбка делает мир ярче.`,nameForm:`Настенька`},{text:`С Настей всегда интересно общаться.`,nameForm:`Настей`},{text:`Настя, ты — источник вдохновения для всех вокруг.`,nameForm:`Настя`},{text:`Мне нравится, как Настя смотрит на мир.`,nameForm:`Настя`},{text:`Настюха, ты супер!`,nameForm:`Настюха`},{text:`Талант Насти поражает!`,nameForm:`Насти`},{text:`Настя, твоя энергия заряжает батарейки!`,nameForm:`Настя`},{text:`С Настей хочется проводить каждую минуту.`,nameForm:`Настей`},{text:`Настенька, ты — самое красивое, что случилось в этом мире.`,nameForm:`Настенька`},{text:`У Насти золотое сердце.`,nameForm:`Насти`}];return e[Math.floor(Math.random()*e.length)].text}return(e,n)=>(I(),L(F,null,[R(`div`,YF,[R(`div`,XF,[R(`div`,ZF,[l.value.status==`public`?(I(),Ea(A(uw),{key:0,title:`Сценарий опубликован`,type:`warning`,style:{"margin-bottom":`20px`}},{default:M(()=>[...n[20]||=[B(` Не рекомендуется редактировать сценарий когда он опубликован. `,-1)]]),_:1})):Pa(``,!0),A(t).user?.id==2?(I(),Ea(A(uw),{key:1,title:te(),type:`info`,style:{"margin-bottom":`20px`}},null,8,[`title`])):Pa(``,!0),R(`div`,QF,[B(` Точек: `+O(l.value.story?.places?.length)+` `,1),z(A($),{quaternary:``,onClick:n[0]||=e=>i.value=!0,class:`settings-button`},{default:M(()=>[z(A(RN),{class:`settings-icon`},{default:M(()=>[z(A(DP))]),_:1}),n[21]||=B(` Настройки `,-1)]),_:1})]),z(JF,{mode:S.value,"onUpdate:mode":n[3]||=e=>S.value=e,newPlaceCode:y.value,"onUpdate:newPlaceCode":n[4]||=e=>y.value=e,newPlaceName:b.value,"onUpdate:newPlaceName":n[5]||=e=>b.value=e,newPlaceText:x.value,"onUpdate:newPlaceText":n[6]||=e=>x.value=e},{default:M(()=>[z(A(RD),{justify:`end`},{default:M(()=>[z(A($),{onClick:n[1]||=e=>w()},{default:M(()=>[...n[22]||=[B(`Отмена`,-1)]]),_:1}),z(A($),{onClick:n[2]||=e=>C(),disabled:!y.value},{default:M(()=>[...n[23]||=[B(`Добавить точку`,-1)]]),_:1},8,[`disabled`])]),_:1})]),_:1},8,[`mode`,`newPlaceCode`,`newPlaceName`,`newPlaceText`]),(I(!0),L(F,null,ti(l.value.story?.places,e=>(I(),Ea(JF,{place:e,mode:e.mode,"onUpdate:mode":t=>e.mode=t,key:e.oldCode},{default:M(()=>[z(A(RD),{justify:`end`},{default:M(()=>[z(A($),{onClick:t=>D(e),type:`error`,ghost:``},{default:M(()=>[...n[24]||=[B(`Удалить`,-1)]]),_:1},8,[`onClick`]),z(A($),{onClick:t=>ee(e)},{default:M(()=>[...n[25]||=[B(`Отмена`,-1)]]),_:1},8,[`onClick`]),z(A($),{onClick:t=>E(e),disabled:e.code==``},{default:M(()=>[...n[26]||=[B(`Сохранить`,-1)]]),_:1},8,[`onClick`,`disabled`])]),_:2},1024)]),_:2},1032,[`place`,`mode`,`onUpdate:mode`]))),128))])])]),z(A(KE),{show:i.value,"onUpdate:show":n[19]||=e=>i.value=e},{default:M(()=>[z(A(OT),{style:{width:`600px`},title:`Настройки сценария`,bordered:!1,size:`huge`,role:`dialog`,"aria-modal":`true`},{"header-extra":M(()=>[z(A($),{onClick:n[7]||=e=>i.value=!1},{default:M(()=>[...n[27]||=[B(` x `,-1)]]),_:1})]),footer:M(()=>[...n[47]||=[]]),default:M(()=>[z(A(jD),{vertical:``},{default:M(()=>[n[39]||=R(`p`,null,`Название`,-1),z(A(Ow),{value:l.value.name,"onUpdate:value":n[8]||=e=>l.value.name=e,type:`text`,placeholder:`Дело №0 "Следствие ведут овечки"`},null,8,[`value`]),n[40]||=R(`p`,{class:`settings-header`},`Описание`,-1),z(A(Ow),{value:l.value.description,"onUpdate:value":n[9]||=e=>l.value.description=e,type:`textarea`,placeholder:`Убийство пастуха...`},null,8,[`value`]),n[41]||=R(`p`,{class:`settings-header`},`Картинка`,-1),z(A(Ow),{value:l.value.image,"onUpdate:value":n[10]||=e=>l.value.image=e,type:`text`,placeholder:`default_scenario.png`,disabled:``},null,8,[`value`]),z(A(VA),{"directory-dnd":``,max:1,"file-list":c.value,"onUpdate:fileList":n[11]||=e=>c.value=e},{default:M(()=>[z(A(fA),null,{default:M(()=>[z(A(lA),{style:{"font-size":`16px`}},{default:M(()=>[...n[28]||=[B(` Щелкните или перетащите файл в эту область для загрузки `,-1)]]),_:1})]),_:1})]),_:1},8,[`file-list`]),z(A($),{onClick:n[12]||=e=>g(),ghost:``},{default:M(()=>[...n[29]||=[B(` Сохранить изменения `,-1)]]),_:1}),n[42]||=R(`hr`,{class:`settings-hr`},null,-1),n[43]||=R(`p`,null,`Создать тестовую игру`,-1),z(A($),{onClick:n[13]||=e=>p(l.value.name||``,l.value.id),ghost:``},{default:M(()=>[...n[30]||=[B(` Создать игру `,-1)]]),_:1}),n[44]||=R(`hr`,{class:`settings-hr`},null,-1),n[45]||=R(`p`,null,`Публикация`,-1),R(`p`,null,[l.value.status==`public`?(I(),Ea(A(qC),{key:0,bordered:!1,type:`success`,class:`status-block`},{default:M(()=>[...n[31]||=[B(` Опубликовано `,-1)]]),_:1})):Pa(``,!0),l.value.status==`draft`?(I(),Ea(A(qC),{key:1,bordered:!1,type:`warning`,class:`status-block`},{default:M(()=>[...n[32]||=[B(` В разработке `,-1)]]),_:1})):Pa(``,!0)]),R(`p`,null,[n[33]||=B(` Введите название сценария `,-1),z(A(lA),{class:`name-text`,strong:``},{default:M(()=>[B(O(l.value.name),1)]),_:1})]),z(A(Ow),{value:a.value,"onUpdate:value":n[14]||=e=>a.value=e,type:`text`,placeholder:`Дело №0 "Следствие ведут овечки"`},null,8,[`value`]),l.value.status==`public`?Pa(``,!0):(I(),Ea(A($),{key:0,onClick:n[15]||=e=>f(l.value.id),ghost:``,disabled:a.value!=l.value.name},{default:M(()=>[...n[34]||=[B(` Опубликовать сценарий `,-1)]]),_:1},8,[`disabled`])),l.value.status==`draft`?Pa(``,!0):(I(),Ea(A($),{key:1,onClick:n[16]||=e=>m(l.value.id),ghost:``,disabled:a.value!=l.value.name},{default:M(()=>[...n[35]||=[B(` Снять сценарий с публикации `,-1)]]),_:1},8,[`disabled`])),n[46]||=R(`hr`,{class:`settings-hr`},null,-1),R(`p`,null,[n[36]||=B(` Введите название сценария `,-1),z(A(lA),{class:`name-text`,strong:``},{default:M(()=>[B(O(l.value.name),1)]),_:1}),n[37]||=B(` чтобы удалить его `,-1)]),z(A(Ow),{value:o.value,"onUpdate:value":n[17]||=e=>o.value=e,type:`text`,placeholder:`Дело №0 "Следствие ведут овечки"`},null,8,[`value`]),z(A($),{onClick:n[18]||=e=>d(l.value.id),type:`error`,ghost:``,disabled:o.value!=l.value.name},{default:M(()=>[...n[38]||=[B(` Удалить сценарий `,-1)]]),_:1},8,[`disabled`])]),_:1})]),_:1})]),_:1},8,[`show`]),z(UN,{active:`scenarios`})],64))}}),[[`__scopeId`,`data-v-56e050c6`]]),eI=P({__name:`ScenariosEditorView`,setup(e){return(e,t)=>(I(),Ea($F))}}),tI={class:`center-block-custom`},nI={class:`width1200 display-table`},rI=[`onClick`],iI={class:`scenario-content-block`},aI={class:`scenario-title`},oI={class:`scenario-label`},sI=HN(P({__name:`ScenariosPage`,setup(e){let t=YM(),n=k([]),r=aj(),i=sD(),a=k(!1),o=k(``);async function s(){n.value=[];let e=await t.GetMyScenarios({});n.value=e.scenarios}async function c(e){let n=await t.AddScenario({name:e});if(n.error!=``){i.error(n.error);return}await l(n.id)}async function l(e){r.push(`/scenarios/`+e+`/editor`)}return s(),(e,t)=>(I(),L(F,null,[R(`div`,tI,[R(`div`,nI,[R(`div`,{class:`scenario-block`,onClick:t[0]||=e=>a.value=!0},[...t[5]||=[R(`div`,{class:`scenario-image-block scenario-image-plus`},`+`,-1),R(`div`,{class:`scenario-content-block`},[R(`p`,{class:`scenario-title`},`Создать новый сценарий`)],-1)]]),(I(!0),L(F,null,ti(n.value,e=>(I(),L(`div`,{class:`scenario-block`,onClick:t=>l(e.id),key:e.id},[R(`div`,{class:`scenario-image-block scenario-image`,style:fe({backgroundImage:`url(${e.image})`})},null,4),R(`div`,iI,[R(`p`,aI,O(e.name),1),R(`p`,oI,[e.status==`public`?(I(),Ea(A(qC),{key:0,bordered:!1,type:`success`,class:`status-block`},{default:M(()=>[...t[6]||=[B(`Опубликовано`,-1)]]),_:1})):Pa(``,!0),e.status==`draft`?(I(),Ea(A(qC),{key:1,bordered:!1,type:`warning`,class:`status-block`},{default:M(()=>[...t[7]||=[B(`В разработке`,-1)]]),_:1})):Pa(``,!0)])])],8,rI))),128))])]),z(A(KE),{show:a.value,"onUpdate:show":t[4]||=e=>a.value=e},{default:M(()=>[z(A(OT),{style:{width:`600px`},title:`Создание сценария`,bordered:!1,size:`huge`,role:`dialog`,"aria-modal":`true`},{"header-extra":M(()=>[z(A($),{onClick:t[1]||=e=>a.value=!1},{default:M(()=>[...t[8]||=[B(` x `,-1)]]),_:1})]),footer:M(()=>[z(A(RD),{justify:`end`},{default:M(()=>[z(A($),{onClick:t[3]||=e=>c(o.value),disabled:o.value.length==0},{default:M(()=>[...t[9]||=[B(` Создать `,-1)]]),_:1},8,[`disabled`])]),_:1})]),default:M(()=>[z(A(Ow),{value:o.value,"onUpdate:value":t[2]||=e=>o.value=e,type:`text`,placeholder:`Дело №0 "Следствие ведут овечки"`},null,8,[`value`])]),_:1})]),_:1},8,[`show`]),z(UN,{active:`scenarios`})],64))}}),[[`__scopeId`,`data-v-1a024fe4`]]),cI=P({__name:`ScenariosView`,setup(e){return(e,t)=>(I(),Ea(sI))}}),lI={class:`center-block-custom`},uI={class:`width700`},dI={class:`scenario-title`},fI=[`src`],pI={class:`scenario-description`},mI={class:`scenario-author`},hI=HN(P({__name:`ScenarioPage`,setup(e){let t=sD(),n=YM(),r=oj().params.id,i=k({id:void 0,name:void 0,story:void 0,author:void 0,status:void 0,updatedAt:void 0,createdAt:void 0,publishedAt:void 0});async function a(e){let r=await n.GetScenario({id:e});if(r.error!=``){t.error(r.error);return}i.value=r.scenario}return a(Number(r)),(e,t)=>(I(),L(F,null,[R(`div`,lI,[R(`div`,uI,[R(`div`,dI,O(i.value.name),1),R(`img`,{class:`scenario-image`,src:i.value.image},null,8,fI),R(`div`,pI,O(i.value.description),1),R(`div`,mI,[z(A(qC),{bordered:!1,type:`success`,class:`status-block`},{default:M(()=>[B(`Автор: `+O(i.value.author?.username),1)]),_:1})])])]),z(UN,{active:`catalog`})],64))}}),[[`__scopeId`,`data-v-2c9a6669`]]),gI=P({__name:`ScenarioView`,setup(e){return(e,t)=>(I(),Ea(hI))}}),_I={xmlns:`http://www.w3.org/2000/svg`,"xmlns:xlink":`http://www.w3.org/1999/xlink`,viewBox:`0 0 512 512`},vI=P({name:`Footsteps`,render:function(e,t){return I(),L(`svg`,_I,t[0]||=[R(`path`,{d:`M133.83 361.27c-22.61 0-41-8.17-54.79-24.39s-22.84-40.29-28.11-75.31c-7.76-51.61-.06-95.11 21.68-122.48c12.8-16.12 29.6-25.44 48.58-26.94c16.25-1.3 40.54 5.29 64 44c14.69 24.24 25.86 56.44 30.65 88.34c5.79 38.51 1.48 66.86-13.18 86.65c-11.64 15.72-29.54 25.46-53.21 29a106.46 106.46 0 0 1-15.62 1.13z`,fill:`currentColor`},null,-1),R(`path`,{d:`M173 496c-13.21 0-26.6-4.23-38.66-12.36a79.79 79.79 0 0 1-33.52-50.6c-2.85-14.66-1.14-26.31 5.22-35.64c10.33-15.15 28.87-18.56 48.49-22.18c2.07-.38 4.17-.76 6.3-1.17c4.52-.86 9.14-2 13.62-3.11c16.78-4.14 34.14-8.43 48.47 1.75c9.59 6.8 15 18.36 16.62 35.32c1.84 19.57-2.36 39.1-11.83 55c-10.19 17.11-25.47 28.42-43 31.86A61 61 0 0 1 173 496z`,fill:`currentColor`},null,-1),R(`path`,{d:`M378.17 265.27a106.69 106.69 0 0 1-15.6-1.2c-23.66-3.5-41.56-13.25-53.2-29c-14.66-19.79-19-48.13-13.18-86.65c4.79-31.93 15.93-64.1 30.55-88.25c23.34-38.57 47.66-45.26 64-44.08c18.92 1.38 35.69 10.57 48.51 26.6c21.89 27.37 29.65 71 21.86 122.84c-5.27 35-14.2 58.95-28.11 75.31s-32.22 24.43-54.83 24.43z`,fill:`currentColor`},null,-1),R(`path`,{d:`M339 400a61 61 0 0 1-11.68-1.13c-17.56-3.44-32.84-14.75-43-31.86c-9.47-15.9-13.67-35.43-11.83-55c1.6-17 7-28.52 16.62-35.33c14.33-10.17 31.69-5.89 48.47-1.74c4.48 1.1 9.1 2.24 13.62 3.11l6.29 1.17c19.63 3.61 38.17 7 48.5 22.17c6.36 9.33 8.07 21 5.22 35.64a79.78 79.78 0 0 1-33.52 50.61C365.56 395.78 352.17 400 339 400z`,fill:`currentColor`},null,-1)])}}),yI={},bI={class:`belt-block`};function xI(e,t){return I(),L(`div`,null,[t[0]||=R(`div`,{class:`shadow shadow-top`},null,-1),t[1]||=R(`div`,{class:`shadow shadow-bottom`},null,-1),R(`div`,bI,[ni(e.$slots,`default`,{},void 0,!0)])])}var SI=HN(yI,[[`render`,xI],[`__scopeId`,`data-v-82aef99e`]]),CI={},wI={class:`plate-block`},TI={class:`metal-plate-block`};function EI(e,t){return I(),L(`div`,wI,[R(`div`,TI,[ni(e.$slots,`default`,{},void 0,!0)]),t[0]||=R(`div`,{class:`pin pin-top-left`},null,-1),t[1]||=R(`div`,{class:`pin pin-top-right`},null,-1),t[2]||=R(`div`,{class:`pin pin-bottom-right`},null,-1),t[3]||=R(`div`,{class:`pin pin-bottom-left`},null,-1)])}var DI=HN(CI,[[`render`,EI],[`__scopeId`,`data-v-35e450f5`]]),OI={class:`form-custom`},kI={class:`center-block-700`},AI={class:`controller`},jI={class:`counters-block`},MI={class:`counter-block`},NI={class:`places-text`},PI={class:`places-text places-text-number`},FI={class:`counter-block`},II={class:`places-text`},LI={class:`places-text places-text-number`},RI={class:`game-input`},zI=[`placeholder`,`disabled`],BI=[`disabled`],VI=HN(P({__name:`GameInputForm`,props:{addAction:{type:Function,required:!0},allPlacesCount:{type:Number,required:!0},newPlacesCount:{type:Number,required:!0},gameStatus:{type:String,required:!0}},setup(e){let t=k(``),n=e;async function r(){await n.addAction(t.value),t.value=``}function i(e){e%=100;let t=Math.floor(e/10)%10,n=e%10,r=`–`,i=`–`;return t>0&&(r=String(t)),(n>0||t>0)&&(i=String(n)),[r,i]}return(a,o)=>(I(),L(`div`,OI,[z(SI,{class:`input-form`},{default:M(()=>[z(DI,{class:`controller-metal controller-metal-left`}),z(DI,{class:`controller-metal controller-metal-right`}),R(`div`,kI,[R(`div`,AI,[R(`div`,jI,[R(`div`,MI,[R(`div`,NI,[z(A(RN),{class:`icon-for-counter`},{default:M(()=>[z(A(vI))]),_:1})]),(I(!0),L(F,null,ti(i(e.allPlacesCount),e=>(I(),L(`div`,PI,O(e),1))),256))]),R(`div`,FI,[R(`div`,II,[z(A(RN),{class:`icon-for-counter`},{default:M(()=>[z(A($M))]),_:1})]),(I(!0),L(F,null,ti(i(e.newPlacesCount),e=>(I(),L(`div`,LI,O(e),1))),256))])]),R(`div`,RI,[Vn(R(`input`,{id:`run`,class:`game-input-run`,"onUpdate:modelValue":o[0]||=e=>t.value=e,type:`text`,placeholder:n.gameStatus==`run`?`Место назначения`:`Ходы запрещены`,disabled:n.gameStatus!=`run`},null,8,zI),[[js,t.value]])]),o[4]||=R(`div`,{class:`game-button-run-shadow`},null,-1),R(`button`,{class:`game-button-run`,type:`submit`,disabled:t.value.length==0,onClick:r},[n.gameStatus==`run`?(I(),Ea(eP,{key:0},{default:M(()=>[...o[1]||=[B(`Поехали`,-1)]]),_:1})):Pa(``,!0),n.gameStatus==`pause`||n.gameStatus==`draft`?(I(),Ea(eP,{key:1},{default:M(()=>[...o[2]||=[B(`Ждём`,-1)]]),_:1})):Pa(``,!0),n.gameStatus==`finish`?(I(),Ea(eP,{key:2},{default:M(()=>[...o[3]||=[B(`Всё`,-1)]]),_:1})):Pa(``,!0)],8,BI)])])]),_:1})]))}}),[[`__scopeId`,`data-v-a21d8a4f`]]),HI={class:`width700`},UI={class:`qr-block`},WI={key:0,class:`qr-main-block-text`},GI={key:1,class:`qr-main-block-text`},KI={key:1,class:`edit-panel`},qI=HN(P({__name:`TeamStoryPage`,setup(e){let t=JM(),n=YM(),r=sD();aj();let i=oj(),a=i.params.id,o=i.query.password,s=k(0),c=k(),l=k({places:[]}),u=k({id:void 0,name:void 0,description:void 0,startAt:void 0,status:void 0,scenario:void 0,teams:void 0}),d=k(``),f=window.location.href,p=()=>{let e=c.value;return e?e.scrollHeight-e.scrollTop-e.clientHeight<1:!1};async function m(){let e=l.value,t=await n.GetTeamStory({id:Number(a),password:o});if(t.error!=``){r.error(t.error);return}u.value=t.game;let i=p();i&&(s.value=0);let d=l.value.places.length;l.value={places:t.story.places?.map((t,n)=>(console.log(e?.places[n]?.mode),{place:t,mode:e?.places[n]?.mode||`show`}))||[]};let f=l.value.places.length;if(f>d&&d!=0&&(s.value+=f-d),await kn(),i&&d!=0){let e=c.value;if(!e)return!1;e.scrollTop=e.scrollHeight}}m();async function h(e){let t=await n.AddTeamAction({id:Number(a),password:o,code:e});if(t.error!=``){r.error(t.error);return}await m(),d.value=``,await kn(),s.value=0}async function g(){let e=await n.DeleteLastTeamAction({id:Number(a)});if(e.error!=``){r.error(e.error);return}await m(),d.value=``}return OP(()=>{m()},2e3),(e,n)=>{let r=Zr(`n-space`);return I(),L(F,null,[R(`div`,{class:`center-block-custom bottom-margin smooth-scroll`,ref_key:`scrollContainer`,ref:c},[R(`div`,HI,[z(VI,{addAction:h,allPlacesCount:l.value.places.length,newPlacesCount:s.value,gameStatus:u.value?.status||``},null,8,[`allPlacesCount`,`newPlacesCount`,`gameStatus`]),(I(!0),L(F,null,ti(l.value.places,e=>(I(),Ea(JF,{place:e.place,mode:e.mode,"onUpdate:mode":t=>e.mode=t,key:e.place.code,addAction:h},null,8,[`place`,`mode`,`onUpdate:mode`]))),128)),l.value.places.length==0?(I(),Ea(hF,{key:0,class:`qr-main-block`},{default:M(()=>[z(r,{vertical:``},{default:M(()=>[n[0]||=R(`h2`,{class:`qr-main-block-text`},`Это код этого дела`,-1),n[1]||=R(`p`,{class:`qr-main-block-text`},`Поделись с командой`,-1),R(`div`,UI,[z(A(Vk),{value:A(f),size:300,padding:0},null,8,[`value`])]),u.value?.status==`draft`?(I(),L(`p`,WI,`Игра скоро начнется`)):Pa(``,!0),u.value?.status==`run`?(I(),L(`p`,GI,`Игра началась!!!`)):Pa(``,!0)]),_:1})]),_:1})):Pa(``,!0),A(t).hasRole(`author`)&&l.value.places.length>0?(I(),L(`div`,KI,[z(A(RD),{justify:`end`},{default:M(()=>[z(A($),{onClick:g},{default:M(()=>[...n[2]||=[B(`Удалить последний ход`,-1)]]),_:1})]),_:1})])):Pa(``,!0)])],512),z(UN,{active:`games`})],64)}}}),[[`__scopeId`,`data-v-374fdb93`]]),JI=P({__name:`TeamStoryView`,setup(e){return(e,t)=>(I(),Ea(qI))}}),YI=P({__name:`UserAgreementView`,setup(e){return(e,t)=>(I(),L(F,null,[z(lP,{kind:`terms`}),z(UN)],64))}}),XI={class:`center-block-custom`},ZI={class:`width700`},QI={class:`user-field`},$I={class:`user-field`},eL={class:`user-field`},tL=HN(P({__name:`UsersPage`,setup(e){let t=YM(),n=sD(),r=k([]);async function i(){let e=await t.GetUsers({});if(e.error!=``){n.error(e.error);return}r.value=e.users}i();async function a(e,r){let a=await t.AddUserRole({id:e,role:r});if(a.error!=``){n.error(a.error);return}await i()}async function o(e,r){let a=await t.DeleteUserRole({id:e,role:r});if(a.error!=``){n.error(a.error);return}await i()}return(e,t)=>(I(),L(F,null,[R(`div`,XI,[R(`div`,ZI,[(I(!0),L(F,null,ti(r.value,e=>(I(),L(`div`,{key:e.id,class:`user-block`},[R(`div`,QI,` Позывной: `+O(e.username),1),R(`div`,$I,` Почта: `+O(e.email),1),R(`div`,eL,[z(A(jD),null,{default:M(()=>[t[0]||=B(` Роли: `,-1),(I(!0),L(F,null,ti(e.roles,e=>(I(),Ea(A(qC),{bordered:!1,key:e},{default:M(()=>[B(O(e),1)]),_:2},1024))),128))]),_:2},1024)]),z(A(RD),{justify:`end`,class:`roles-buttons-block`},{default:M(()=>[e.roles?.includes(`author`)?(I(),Ea(A($),{key:1,onClick:t=>o(e.id,`author`)},{default:M(()=>[...t[2]||=[B(`Забрать роль автора`,-1)]]),_:1},8,[`onClick`])):(I(),Ea(A($),{key:0,onClick:t=>a(e.id,`author`)},{default:M(()=>[...t[1]||=[B(`Сделать автором`,-1)]]),_:1},8,[`onClick`])),e.roles?.includes(`organizer`)?(I(),Ea(A($),{key:3,onClick:t=>o(e.id,`organizer`)},{default:M(()=>[...t[4]||=[B(`Забрать роль организатора`,-1)]]),_:1},8,[`onClick`])):(I(),Ea(A($),{key:2,onClick:t=>a(e.id,`organizer`)},{default:M(()=>[...t[3]||=[B(`Сделать организатором`,-1)]]),_:1},8,[`onClick`]))]),_:2},1024)]))),128))])]),z(UN,{active:`users`})],64))}}),[[`__scopeId`,`data-v-4af0a140`]]),nL=P({__name:`UsersView`,setup(e){return(e,t)=>(I(),Ea(tL))}}),rL=HM({history:uM(`/`),routes:[{path:`/`,name:`home`,component:zP},{path:`/login`,name:`login`,component:nF},{path:`/office`,name:`office`,component:lF},{path:`/user-agreement`,name:`user-agreement`,component:YI},{path:`/privacy-policy`,name:`privacy-policy`,component:uF},{path:`/consent`,name:`consent`,component:uP},{path:`/games`,name:`games`,component:_P},{path:`/games/:id`,name:`game`,component:RP},{path:`/team-story/:id`,name:`team-story`,component:JI},{path:`/scenarios`,name:`scenarios`,component:cI},{path:`/catalog`,name:`catalog`,component:QN},{path:`/scenarios/:id/editor`,name:`scenario-editor`,component:eI},{path:`/scenarios/:id`,name:`scenario`,component:gI},{path:`/users`,name:`users`,component:nL}]}),iL=Ls(UM);iL.use(ic()),iL.use(rL),iL.mount(`#app`); \ No newline at end of file +`)}function vN(e){if(!e)return;let t=e.parentElement;t&&t.removeChild(e)}function yN(e){return document.querySelector(`style[cssr-id="${e}"]`)}function bN(e){let t=document.createElement(`style`);return t.setAttribute(`cssr-id`,e),t}window&&(window.__cssrContext={});function xN(e){let t=e.getAttribute(`mount-count`);return t===null?null:Number(t)}function SN(e,t){e.setAttribute(`mount-count`,String(t))}function CN(e,t,n,r){let{els:i}=t;if(n===void 0)i.forEach(vN),t.els=[];else{let e=yN(n);if(e&&i.includes(e)){let a=xN(e);r?a===null?console.error(`[css-render/unmount]: The style with target='${n}' is mounted in count mode.`):a<=1?(vN(e),t.els=i.filter(t=>t!==e)):SN(e,a-1):a===null?(vN(e),t.els=i.filter(t=>t!==e)):console.error(`[css-render/unmount]: The style with target='${n}' is mounted in no-count mode.`)}}}function wN(e,t){e.push(t)}function TN(e,t,n,r,i,a,o,s,c){if(o&&!c){if(n===void 0){console.error("[css-render/mount]: `id` is required in `boost` mode.");return}let i=window.__cssrContext;i[n]||(i[n]=!0,_N(t,e,r,o));return}let l,{els:u}=t,d;if(n===void 0&&(d=t.render(r),n=Rc(d)),c){c(n,d??t.render(r));return}let f=yN(n);if(s||f===null){if(l=f===null?bN(n):f,d===void 0&&(d=t.render(r)),l.textContent=d,f!==null)return;if(i){let e=document.head.getElementsByTagName(`style`)[0]||null;document.head.insertBefore(l,e)}else document.head.appendChild(l);a&&SN(l,1),wN(u,l)}else{let e=xN(f);a?e===null?console.error(`[css-render/mount]: The style with id='${n}' has been mounted in no-count mode.`):SN(f,e+1):e!==null&&console.error(`[css-render/mount]: The style with id='${n}' has been mounted in count mode.`)}return f??l}function EN(e){return _N(this,this.instance,e)}function DN(e={}){let{target:t,id:n,ssr:r,props:i,count:a=!1,head:o=!1,boost:s=!1,force:c=!1}=e;return TN(this.instance,this,n??t,i,o,a,s,c,r)}function ON(e={}){let{id:t,target:n,delay:r=0,count:i=!1}=e;r===0?CN(this.instance,this,t??n,i):setTimeout(()=>CN(this.instance,this,t??n,i),r)}var kN=function(e,t,n,r){return{instance:e,$:t,props:n,children:r,els:[],render:EN,mount:DN,unmount:ON}},AN=function(e,t,n,r){return Array.isArray(t)?kN(e,{$:null},null,t):Array.isArray(n)?kN(e,t,null,n):Array.isArray(r)?kN(e,t,n,r):kN(e,t,n,null)};function jN(e={}){let t=null,n={c:((...e)=>AN(n,...e)),use:(e,...t)=>e.install(n,...t),find:yN,context:{},config:e,get __styleSheet(){if(!t){let e=document.createElement(`style`);return document.head.appendChild(e),t=document.styleSheets[document.styleSheets.length-1],t}return t}};return n}var{c:MN}=jN(),NN=MN(`.xicon`,{width:`1em`,height:`1em`,display:`inline-flex`},[MN(`svg`,{width:`1em`,height:`1em`}),MN(`svg:not([fill])`,{fill:`currentColor`})]),PN=()=>{NN.mount({id:`xicons-icon`})},FN={size:[String,Number],color:String,tag:String},IN=Symbol(`IconConfigInjection`),LN=`span`,RN=P({name:`Icon`,props:FN,setup(e,{slots:t}){let n=N(IN,null),r=V(()=>{let t=e.size??n?.size;if(t!==void 0)return typeof t==`number`||/^\d+$/.test(t)?`${t}px`:t}),i=V(()=>{let{color:t}=e;return t===void 0?n?n.color:void 0:t}),a=V(()=>{let{tag:t}=e;return t===void 0?n?.tag??LN:t});return Br(()=>{PN()}),()=>H(a.value,{class:`xicon`,style:{color:i.value,fontSize:r.value}},[ni(t,`default`)])}}),zN={class:`menu-block`},BN={class:`right-group`},VN=P({__name:`HeaderMenu`,props:{active:{type:String,required:!1}},setup(e){let t=e,n=JM();n.initFromStorage();let r=aj(),i=YM(),a=k([]);async function o(){a.value=[];let e=await i.GetPermissions({});a.value=e.permissions}o();function s(e){return a.value.includes(e)}let c=()=>{r.push(`/login`)},l=()=>{n.logout(),r.push(`/login`)},u=k(!1);return(e,i)=>(I(),L(`div`,zN,[R(`div`,{onClick:i[0]||=e=>u.value=!u.value,class:`burger-button`},[z(A(RN),{class:`burger-icon`,size:`28`},{default:M(()=>[z(A(rN))]),_:1})]),R(`div`,{class:_e([`left-group menu-buttons-block`,u.value?``:`menu-buttons-block-active`])},[R(`div`,{class:_e([`menu-item-block`,{active:t.active==`main`}]),onClick:i[1]||=e=>A(r).push(`/`)},` Главная `,2),A(n).hasRole(`user`)?(I(),L(`div`,{key:0,class:_e([`menu-item-block`,{active:t.active==`office`}]),onClick:i[2]||=e=>A(r).push(`/office`)},` Кабинет `,2)):Pa(``,!0),s(`games_page`)?(I(),L(`div`,{key:1,class:_e([`menu-item-block`,{active:t.active==`games`}]),onClick:i[3]||=e=>A(r).push(`/games`)},` Игры `,2)):Pa(``,!0),R(`div`,{class:_e([`menu-item-block`,{active:t.active==`catalog`}]),onClick:i[4]||=e=>A(r).push(`/catalog`)},` Каталог `,2),s(`scenarios_page`)?(I(),L(`div`,{key:2,class:_e([`menu-item-block`,{active:t.active==`scenarios`}]),onClick:i[5]||=e=>A(r).push(`/scenarios`)},` Мои сценарии `,2)):Pa(``,!0),s(`users_page`)?(I(),L(`div`,{key:3,class:_e([`menu-item-block`,{active:t.active==`users`}]),onClick:i[6]||=e=>A(r).push(`/users`)},` Пользователи `,2)):Pa(``,!0)],2),R(`div`,BN,[A(n).isAuthenticated?Pa(``,!0):(I(),L(`div`,{key:0,class:`menu-item-block right`,onClick:c},` Войти `)),A(n).isAuthenticated?(I(),L(`div`,{key:1,class:`menu-item-block right`,onClick:l},`Выйти`)):Pa(``,!0)])]))}}),HN=(e,t)=>{let n=e.__vccOpts||e;for(let[e,r]of t)n[e]=r;return n},UN=HN(VN,[[`__scopeId`,`data-v-5e423637`]]),WN={class:`center-block-custom`},GN={class:`width1200 display-table`},KN=[`onClick`],qN={class:`scenario-content-block`},JN={class:`scenario-title`},YN={class:`scenario-description`},XN={class:`scenario-label`},ZN=HN(P({__name:`CatalogPage`,setup(e){let t=YM(),n=k([]),r=aj();async function i(){n.value=[];let e=await t.GetScenariosCatalog({});n.value=e.scenarios}async function a(e){r.push(`/scenarios/`+e)}return i(),(e,t)=>(I(),L(F,null,[R(`div`,WN,[R(`div`,GN,[(I(!0),L(F,null,ti(n.value,e=>(I(),L(`div`,{class:`scenario-block`,onClick:t=>a(e.id),key:e.id},[R(`div`,{class:`scenario-image-block scenario-image`,style:fe({backgroundImage:`url(${e.image})`})},null,4),R(`div`,qN,[R(`p`,JN,O(e.name),1),R(`p`,YN,O(e.description),1),R(`p`,XN,[z(A(qC),{bordered:!1,type:`success`,class:`status-block`},{default:M(()=>[B(`Автор: `+O(e.author?.username),1)]),_:2},1024)])])],8,KN))),128))])]),z(UN,{active:`catalog`})],64))}}),[[`__scopeId`,`data-v-d72c95c2`]]),QN=P({__name:`CatalogView`,setup(e){return(e,t)=>(I(),Ea(ZN))}}),$N={class:`text-with-font`},eP=HN(P({__name:`HeaderText`,setup(e){return(e,t)=>(I(),L(`span`,$N,[ni(e.$slots,`default`,{},void 0,!0)]))}}),[[`__scopeId`,`data-v-e13ee3bd`]]),tP={class:`center-block-custom`},nP={class:`width700 doc-page`},rP={class:`doc-title`},iP={key:0,class:`doc-loading`},aP={key:2,class:`paper-block`},oP={class:`paper`},sP={class:`doc-text`},cP={class:`docs-links`},lP=HN(P({__name:`DocsPage`,props:{kind:{}},setup(e){let t=e,n={terms:`Пользовательское соглашение`,privacy:`Политика конфиденциальности`,consent:`Согласие на обработку персональных данных`},r=k(``),i=k(!0),a=k(``);return Vr(async()=>{let e=YM(),n={terms:()=>e.GetTerms({}),privacy:()=>e.GetPrivacy({}),consent:()=>e.GetConsent({})};try{let e=await n[t.kind]();e.error?a.value=e.error:r.value=e.text||``}catch(e){a.value=e instanceof Error?e.message:`Не удалось загрузить документ`}finally{i.value=!1}}),(e,o)=>(I(),L(`div`,tP,[R(`div`,nP,[R(`h1`,rP,[z(eP,null,{default:M(()=>[B(O(n[t.kind]),1)]),_:1})]),i.value?(I(),L(`div`,iP,[z(A(Gk),{size:`large`})])):a.value?(I(),Ea(A(uw),{key:1,type:`error`,"show-icon":!1,class:`doc-error`},{default:M(()=>[B(O(a.value),1)]),_:1})):(I(),L(`div`,aP,[R(`div`,oP,[R(`p`,sP,O(r.value),1)]),o[0]||=R(`div`,{class:`paper-shadow paper-shadow-left`},null,-1),o[1]||=R(`div`,{class:`paper-shadow paper-shadow-right`},null,-1)])),R(`div`,cP,[o[5]||=B(` Смотрите также: `,-1),z(A(PM),{to:`/user-agreement`,class:`docs-link`},{default:M(()=>[...o[2]||=[B(`Пользовательское соглашение`,-1)]]),_:1}),o[6]||=B(` · `,-1),z(A(PM),{to:`/privacy-policy`,class:`docs-link`},{default:M(()=>[...o[3]||=[B(`Политика конфиденциальности`,-1)]]),_:1}),o[7]||=B(` · `,-1),z(A(PM),{to:`/consent`,class:`docs-link`},{default:M(()=>[...o[4]||=[B(`Согласие на обработку персональных данных`,-1)]]),_:1})])])]))}}),[[`__scopeId`,`data-v-6160a426`]]),uP=P({__name:`ConsentView`,setup(e){return(e,t)=>(I(),L(F,null,[z(lP,{kind:`consent`}),z(UN)],64))}}),dP={class:`center-block-custom`},fP={class:`width1200`},pP=[`onClick`],mP={class:`game-title`},hP={class:`game-description`},gP=HN(P({__name:`GamesPage`,setup(e){let t=YM(),n=sD(),r=aj(),i=k([]);async function a(){i.value=[];let e=await t.GetGames({});if(e.error!=``){n.error(e.error);return}i.value=e.games||[]}a();async function o(e){r.push(`/games/`+e)}return(e,t)=>(I(),L(F,null,[R(`div`,dP,[R(`div`,fP,[(I(!0),L(F,null,ti(i.value,e=>(I(),L(`div`,{key:e.id,class:`game-block`,onClick:t=>o(e.id)},[R(`div`,mP,O(e.name),1),R(`div`,hP,O(e.description),1)],8,pP))),128))])]),z(UN,{active:`games`})],64))}}),[[`__scopeId`,`data-v-45eae4d9`]]),_P=P({__name:`GamesView`,setup(e){return(e,t)=>(I(),Ea(gP))}}),vP={xmlns:`http://www.w3.org/2000/svg`,"xmlns:xlink":`http://www.w3.org/1999/xlink`,viewBox:`0 0 32 32`},yP=P({name:`Archive`,render:function(e,t){return I(),L(`svg`,vP,t[0]||=[R(`path`,{d:`M14 19h4v2h-4z`,fill:`currentColor`},null,-1),R(`path`,{d:`M6 2v26a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V2zm18 26H8V16h16zm0-14H8v-4h16zM8 8V4h16v4z`,fill:`currentColor`},null,-1)])}}),bP={xmlns:`http://www.w3.org/2000/svg`,"xmlns:xlink":`http://www.w3.org/1999/xlink`,viewBox:`0 0 32 32`},xP=P({name:`Flag`,render:function(e,t){return I(),L(`svg`,bP,t[0]||=[R(`path`,{d:`M6 30H4V2h24l-5.8 9l5.8 9H6zm0-12h18.33l-4.53-7l4.53-7H6z`,fill:`currentColor`},null,-1)])}}),SP={xmlns:`http://www.w3.org/2000/svg`,"xmlns:xlink":`http://www.w3.org/1999/xlink`,viewBox:`0 0 32 32`},CP=P({name:`Pause`,render:function(e,t){return I(),L(`svg`,SP,t[0]||=[R(`path`,{d:`M12 8v16H8V8h4m0-2H8a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h4a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2z`,fill:`currentColor`},null,-1),R(`path`,{d:`M24 8v16h-4V8h4m0-2h-4a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h4a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2z`,fill:`currentColor`},null,-1)])}}),wP={xmlns:`http://www.w3.org/2000/svg`,"xmlns:xlink":`http://www.w3.org/1999/xlink`,viewBox:`0 0 32 32`},TP=P({name:`Play`,render:function(e,t){return I(),L(`svg`,wP,t[0]||=[R(`path`,{d:`M7 28a1 1 0 0 1-1-1V5a1 1 0 0 1 1.482-.876l20 11a1 1 0 0 1 0 1.752l-20 11A1 1 0 0 1 7 28zM8 6.69V25.31L24.925 16z`,fill:`currentColor`},null,-1)])}}),EP={xmlns:`http://www.w3.org/2000/svg`,"xmlns:xlink":`http://www.w3.org/1999/xlink`,viewBox:`0 0 32 32`},DP=P({name:`Reset`,render:function(e,t){return I(),L(`svg`,EP,t[0]||=[R(`path`,{d:`M18 28A12 12 0 1 0 6 16v6.2l-3.6-3.6L1 20l6 6l6-6l-1.4-1.4L8 22.2V16a10 10 0 1 1 10 10z`,fill:`currentColor`},null,-1)])}}),OP={xmlns:`http://www.w3.org/2000/svg`,"xmlns:xlink":`http://www.w3.org/1999/xlink`,viewBox:`0 0 32 32`},kP=P({name:`Settings`,render:function(e,t){return I(),L(`svg`,OP,t[0]||=[R(`path`,{d:`M27 16.76V16v-.77l1.92-1.68A2 2 0 0 0 29.3 11l-2.36-4a2 2 0 0 0-1.73-1a2 2 0 0 0-.64.1l-2.43.82a11.35 11.35 0 0 0-1.31-.75l-.51-2.52a2 2 0 0 0-2-1.61h-4.68a2 2 0 0 0-2 1.61l-.51 2.52a11.48 11.48 0 0 0-1.32.75l-2.38-.86A2 2 0 0 0 6.79 6a2 2 0 0 0-1.73 1L2.7 11a2 2 0 0 0 .41 2.51L5 15.24v1.53l-1.89 1.68A2 2 0 0 0 2.7 21l2.36 4a2 2 0 0 0 1.73 1a2 2 0 0 0 .64-.1l2.43-.82a11.35 11.35 0 0 0 1.31.75l.51 2.52a2 2 0 0 0 2 1.61h4.72a2 2 0 0 0 2-1.61l.51-2.52a11.48 11.48 0 0 0 1.32-.75l2.42.82a2 2 0 0 0 .64.1a2 2 0 0 0 1.73-1l2.28-4a2 2 0 0 0-.41-2.51zM25.21 24l-3.43-1.16a8.86 8.86 0 0 1-2.71 1.57L18.36 28h-4.72l-.71-3.55a9.36 9.36 0 0 1-2.7-1.57L6.79 24l-2.36-4l2.72-2.4a8.9 8.9 0 0 1 0-3.13L4.43 12l2.36-4l3.43 1.16a8.86 8.86 0 0 1 2.71-1.57L13.64 4h4.72l.71 3.55a9.36 9.36 0 0 1 2.7 1.57L25.21 8l2.36 4l-2.72 2.4a8.9 8.9 0 0 1 0 3.13L27.57 20z`,fill:`currentColor`},null,-1),R(`path`,{d:`M16 22a6 6 0 1 1 6-6a5.94 5.94 0 0 1-6 6zm0-10a3.91 3.91 0 0 0-4 4a3.91 3.91 0 0 0 4 4a3.91 3.91 0 0 0 4-4a3.91 3.91 0 0 0-4-4z`,fill:`currentColor`},null,-1)])}});function AP(e,t=5e3){let n=k(!0),r=null,i=()=>{n.value=!0,e(),r=window.setInterval(e,t)},a=()=>{n.value=!1,r&&=(clearInterval(r),null)};return Vr(i),Gr(a),{isActive:n,start:i,stop:a}}var jP={class:`center-block-custom`},MP={class:`width1200`},NP={class:`settings-block`},PP={class:`team-block`},FP={class:`team-content-block`},IP={class:`title-block`},LP={class:`team-name-block`},RP={class:`qr-block`},zP=HN(P({__name:`GamePage`,setup(e){let t=YM(),n=aj(),r=oj().params.id,i=sD(),a=k(!1),o=k(!1),s=k(!1),c=k(!1),l=k(!1),u=k(``),d=k(``),f=k(!1),p=k(``),m=k(``),h=k({id:void 0,name:void 0,description:void 0,startAt:void 0,status:void 0,scenario:void 0,teams:void 0});async function g(e){let n=await t.GetGame({id:e});if(n.error!=``){i.error(n.error);return}h.value=n.game,h.value.teams=h.value.teams?.sort((e,t)=>{let n=0;(e.applications?.length||0)>0&&(n=1);let r=0;if((t.applications?.length||0)>0&&(r=1),n>r)return-1;if(na?1:i{g(Number(r))},2e3);async function ie(){let e=await t.ResetGame({id:h.value.id});if(e.error!=``){i.error(e.error);return}await g(h.value.id)}async function ae(){let e=await t.StartGame({id:h.value.id});if(e.error!=``){i.error(e.error);return}await g(h.value.id)}async function oe(){let e=await t.PauseGame({id:h.value.id});if(e.error!=``){i.error(e.error);return}await g(h.value.id)}async function se(){let e=await t.PlayGame({id:h.value.id});if(e.error!=``){i.error(e.error);return}await g(h.value.id)}async function ce(){let e=await t.FinishGame({id:h.value.id});if(e.error!=``){i.error(e.error);return}await g(h.value.id)}function le(e){let[t,n]=e.split(`T`),[r,i,a]=t.split(`-`).map(Number),[o,s,c]=(n.split(`.`)[0]||`00:00:00`).split(`:`).map(Number);return new Date(Date.UTC(r,i-1,a,o,s,c||0))}function ue(){let e=new Date;return new Date(e.getTime()-e.getTimezoneOffset()*6e4)}function de(e,t){if(e==``)return`Игра ещё не началась`;let n=le(e),r=ue();t!=``&&(r=le(t));let i=r.getTime()-n.getTime();if(i<0)return`Игра ещё не началась`;let a=Math.floor(i/1e3),o=Math.floor(a/60),s=Math.floor(o/60),c=Math.floor(s/24),l=Math.floor(c/30),u=Math.floor(c/365);return u>0?`${u}г ${c%365}д`:l>0?`${l}мес ${c%30}д`:c>0?`${c}д ${s%24}ч`:s>0?`${s}ч ${o%60}м`:o>0?`${o}м ${a%60}с`:`${a}с`}let fe=k(``);return AP(()=>{fe.value=de(h.value.startedAt||``,h.value.endedAt||``)},1e3),(e,t)=>(I(),L(F,null,[R(`div`,jP,[R(`div`,MP,[R(`div`,NP,[z(A(RD),{justify:`space-between`},{default:M(()=>[z(A(jD),null,{default:M(()=>[z(A(qC),{bordered:!1,type:`info`},{default:M(()=>[B(` Команд: `+O(h.value.teams?.length),1)]),_:1}),z(A(qC),{type:`info`},{default:M(()=>[B(O(fe.value),1)]),_:1})]),_:1}),R(`div`,null,[z(A($),{quaternary:``,class:`settings-button`,onClick:t[0]||=e=>re(A(C),`Админка`)},{default:M(()=>[...t[31]||=[B(` QR `,-1)]]),_:1}),z(A($),{quaternary:``,onClick:t[1]||=e=>a.value=!0,class:`settings-button`},{default:M(()=>[z(A(RN),{class:`settings-icon`},{default:M(()=>[z(A(kP))]),_:1}),t[32]||=B(` Настройки `,-1)]),_:1}),(h.value.teams?.length||0)==0?(I(),Ea(A($),{key:0,type:`error`,quaternary:``,onClick:t[2]||=e=>l.value=!0,class:`settings-button`},{default:M(()=>[...t[33]||=[B(` Удалить игру `,-1)]]),_:1})):Pa(``,!0),z(A(jD),null,{default:M(()=>[h.value.status==`draft`?Pa(``,!0):(I(),Ea(A($),{key:0,type:`info`,dashed:``,onClick:t[3]||=e=>ie()},{default:M(()=>[z(A(RN),null,{default:M(()=>[z(A(DP))]),_:1})]),_:1})),h.value.status==`draft`?(I(),Ea(A($),{key:1,type:`info`,dashed:``,onClick:t[4]||=e=>ae()},{default:M(()=>[z(A(RN),null,{default:M(()=>[z(A(TP))]),_:1})]),_:1})):Pa(``,!0),h.value.status==`pause`?(I(),Ea(A($),{key:2,type:`info`,dashed:``,onClick:t[5]||=e=>se()},{default:M(()=>[z(A(RN),null,{default:M(()=>[z(A(TP))]),_:1})]),_:1})):Pa(``,!0),h.value.status==`run`?(I(),Ea(A($),{key:3,type:`info`,dashed:``,onClick:t[6]||=e=>oe()},{default:M(()=>[z(A(RN),null,{default:M(()=>[z(A(CP))]),_:1})]),_:1})):Pa(``,!0),h.value.status==`finish`?Pa(``,!0):(I(),Ea(A($),{key:4,type:`info`,dashed:``,onClick:t[7]||=e=>ce()},{default:M(()=>[z(A(RN),null,{default:M(()=>[z(A(xP))]),_:1})]),_:1}))]),_:1})])]),_:1})]),R(`div`,{class:`team-block team-block-hover`,onClick:t[8]||=e=>s.value=!0},[...t[34]||=[R(`p`,{class:`place-image-plus`},`+`,-1)]]),(I(!0),L(F,null,ti(h.value.teams,e=>(I(),L(`div`,PP,[R(`div`,FP,[z(A(RD),{justify:`space-between`},{default:M(()=>[R(`div`,IP,[R(`span`,LP,O(e.name),1),R(`div`,null,` Поездки: `+O(e.actionsCount),1)]),z(A(RD),{justify:`end`},{default:M(()=>[z(A($),{onClick:t=>re(ne(e.id,e.password),`Подсмотреть игру`)},{default:M(()=>[...t[35]||=[B(` QR `,-1)]]),_:1},8,[`onClick`]),z(A($),{onClick:t=>_(e.id,e.password,!0)},{default:M(()=>[...t[36]||=[B(` Подсмотреть игру `,-1)]]),_:1},8,[`onClick`]),z(A($),{type:`error`,ghost:``,onClick:t=>E(e)},{default:M(()=>[...t[37]||=[B(` Удалить `,-1)]]),_:1},8,[`onClick`])]),_:2},1024)]),_:2},1024),(I(!0),L(F,null,ti(e.applications,t=>(I(),Ea(A($),{key:t.name,class:`link-button`,onClick:n=>w(e,t)},{default:M(()=>[B(` Выдать: `+O(t.name),1)]),_:2},1032,[`onClick`]))),128))])]))),256))])]),z(A(KE),{show:a.value,"onUpdate:show":t[13]||=e=>a.value=e},{default:M(()=>[z(A(OT),{style:{width:`600px`},title:`Настройки игры`,bordered:!1,size:`huge`,role:`dialog`,"aria-modal":`true`},{"header-extra":M(()=>[z(A($),{onClick:t[9]||=e=>a.value=!1},{default:M(()=>[...t[38]||=[B(` x `,-1)]]),_:1})]),footer:M(()=>[z(A(RD),{justify:`end`},{default:M(()=>[z(A($),{onClick:t[12]||=e=>v(),ghost:``},{default:M(()=>[...t[41]||=[B(` Сохранить изменения `,-1)]]),_:1})]),_:1})]),default:M(()=>[z(A(jD),{vertical:``},{default:M(()=>[t[39]||=R(`p`,null,`Название`,-1),z(A(Ow),{value:h.value.name,"onUpdate:value":t[10]||=e=>h.value.name=e,type:`text`,placeholder:`Дело №0 "Следствие ведут овечки"`},null,8,[`value`]),t[40]||=R(`p`,{class:`settings-header`},`Описание`,-1),z(A(Ow),{value:h.value.description,"onUpdate:value":t[11]||=e=>h.value.description=e,type:`textarea`,placeholder:`Убийство пастуха...`},null,8,[`value`])]),_:1})]),_:1})]),_:1},8,[`show`]),z(A(KE),{show:o.value,"onUpdate:show":t[16]||=e=>o.value=e},{default:M(()=>[z(A(OT),{style:{width:`600px`},title:`Настройки игры`,bordered:!1,size:`huge`,role:`dialog`,"aria-modal":`true`},{"header-extra":M(()=>[z(A($),{onClick:t[14]||=e=>o.value=!1},{default:M(()=>[...t[42]||=[B(` x `,-1)]]),_:1})]),footer:M(()=>[z(A(RD),{justify:`end`},{default:M(()=>[z(A($),{onClick:t[15]||=e=>ee(),ghost:``},{default:M(()=>[...t[45]||=[B(` Выдать `,-1)]]),_:1})]),_:1})]),default:M(()=>[z(A(jD),{vertical:``},{default:M(()=>[t[43]||=R(`p`,null,`Команда`,-1),R(`h3`,null,O(y.value.name),1),t[44]||=R(`p`,null,`Улика`,-1),R(`h3`,null,O(S.value.name),1)]),_:1})]),_:1})]),_:1},8,[`show`]),z(A(KE),{show:s.value,"onUpdate:show":t[20]||=e=>s.value=e},{default:M(()=>[z(A(OT),{style:{width:`600px`},title:`Создание команды`,bordered:!1,size:`huge`,role:`dialog`,"aria-modal":`true`},{"header-extra":M(()=>[z(A($),{onClick:t[17]||=e=>s.value=!1},{default:M(()=>[...t[46]||=[B(` x `,-1)]]),_:1})]),footer:M(()=>[z(A(RD),{justify:`end`},{default:M(()=>[z(A($),{onClick:t[19]||=e=>T(),disabled:u.value.length==0},{default:M(()=>[...t[47]||=[B(` Создать `,-1)]]),_:1},8,[`disabled`])]),_:1})]),default:M(()=>[z(A(Ow),{value:u.value,"onUpdate:value":t[18]||=e=>u.value=e,type:`text`,placeholder:`Три дебила`},null,8,[`value`])]),_:1})]),_:1},8,[`show`]),z(A(KE),{show:c.value,"onUpdate:show":t[24]||=e=>c.value=e},{default:M(()=>[z(A(OT),{style:{width:`600px`},title:`Удаление команды`,bordered:!1,size:`huge`,role:`dialog`,"aria-modal":`true`},{"header-extra":M(()=>[z(A($),{onClick:t[21]||=e=>c.value=!1},{default:M(()=>[...t[48]||=[B(` x `,-1)]]),_:1})]),footer:M(()=>[z(A(RD),{justify:`end`},{default:M(()=>[z(A($),{onClick:t[23]||=e=>D(),disabled:b.value!=x.value.name},{default:M(()=>[...t[51]||=[B(` Удалить `,-1)]]),_:1},8,[`disabled`])]),_:1})]),default:M(()=>[z(A(jD),{vertical:``},{default:M(()=>[R(`p`,null,[t[49]||=B(` Введите название команды `,-1),z(A(lA),{class:`name-text`,strong:``},{default:M(()=>[B(O(x.value.name),1)]),_:1}),t[50]||=B(` чтобы удалить его `,-1)]),z(A(Ow),{value:b.value,"onUpdate:value":t[22]||=e=>b.value=e,type:`text`,placeholder:`Три дебила`},null,8,[`value`])]),_:1})]),_:1})]),_:1},8,[`show`]),z(A(KE),{show:l.value,"onUpdate:show":t[28]||=e=>l.value=e},{default:M(()=>[z(A(OT),{style:{width:`600px`},title:`Удаление игры`,bordered:!1,size:`huge`,role:`dialog`,"aria-modal":`true`},{"header-extra":M(()=>[z(A($),{onClick:t[25]||=e=>l.value=!1},{default:M(()=>[...t[52]||=[B(` x `,-1)]]),_:1})]),footer:M(()=>[z(A(RD),{justify:`end`},{default:M(()=>[z(A($),{onClick:t[27]||=e=>te(),disabled:d.value!=h.value.name},{default:M(()=>[...t[55]||=[B(` Удалить `,-1)]]),_:1},8,[`disabled`])]),_:1})]),default:M(()=>[z(A(jD),{vertical:``},{default:M(()=>[R(`p`,null,[t[53]||=B(` Введите название игры `,-1),z(A(lA),{class:`name-text`,strong:``},{default:M(()=>[B(O(h.value.name),1)]),_:1}),t[54]||=B(` чтобы удалить её `,-1)]),z(A(Ow),{value:d.value,"onUpdate:value":t[26]||=e=>d.value=e,type:`text`,placeholder:`Дело №0 "Следствие ведут овечки"`},null,8,[`value`])]),_:1})]),_:1})]),_:1},8,[`show`]),z(A(KE),{show:f.value,"onUpdate:show":t[30]||=e=>f.value=e},{default:M(()=>[z(A(OT),{style:{width:`600px`},title:m.value,bordered:!1,size:`huge`,role:`dialog`,"aria-modal":`true`},{"header-extra":M(()=>[z(A($),{onClick:t[29]||=e=>f.value=!1},{default:M(()=>[...t[56]||=[B(` x `,-1)]]),_:1})]),footer:M(()=>[...t[57]||=[]]),default:M(()=>[z(A(jD),{vertical:``},{default:M(()=>[R(`div`,RP,[z(A(Vk),{value:p.value,size:300,padding:0},null,8,[`value`])])]),_:1})]),_:1},8,[`title`])]),_:1},8,[`show`]),z(UN,{active:`games`})],64))}}),[[`__scopeId`,`data-v-d657389a`]]),BP=P({__name:`GameView`,setup(e){return(e,t)=>(I(),Ea(zP))}}),VP=P({__name:`HomeView`,setup(e){return(e,t)=>(I(),L(F,null,[t[0]||=R(`div`,{class:`center-block-custom content-block center-middle-block-custom height80`},[R(`div`,null,[R(`h1`,{class:`font-text`},`Вечерний детектив`),R(`h3`,{class:`font-text`},`Дело №0`),R(`p`,{class:`content-text`},` Поиграем? `)])],-1),z(UN,{active:`main`})],64))}}),HP={class:`center-block-custom content-block center-middle-block-custom height80`},UP={class:`form-button-wrapper`},WP={class:`form-label`},GP={key:0},KP={key:1},qP={class:`form-label`},JP={class:`form-label`},YP={class:`form-button-wrapper`},XP={class:`form-label`},ZP={key:0},QP={key:1},$P={class:`form-button-wrapper`},eF={class:`form-label`},tF={key:0},nF={key:1},rF=HN(P({__name:`LoginPage`,setup(e){let t=JM(),n=aj(),r=sD(),i=k(``),a=k(``),o=k(``),s=k(!1),c=k(!1),l=V(()=>[`@mail.ru`,`@yandex.ru`,`@gmail.com`].map(e=>{let t=a.value.split(`@`)[0];return{label:t+e,value:t+e}}));async function u(){if(!await t.login(a.value,o.value)&&t.error!=null){r.error(t.error);return}n.push(`/office`)}async function d(){if(!(!s.value||!c.value)){if(!await t.signup(i.value,a.value,s.value,c.value)&&t.error!=null){r.error(t.error);return}r.info(`Пароль отправлен на почту`),s.value=!1,c.value=!1}}async function f(){if(!await t.refreshPassword(a.value)&&t.error!=null){r.error(t.error);return}r.info(`Пароль отправлен на почту`)}return(e,n)=>(I(),L(`div`,HP,[z(A(OT),{style:{"margin-bottom":`16px`},class:`sign-card`},{default:M(()=>[z(A(rA),{type:`line`,animated:``},{default:M(()=>[z(A($k),{name:`signin`,tab:`Вход`},{default:M(()=>[z(A(jD),{vertical:``},{default:M(()=>[n[7]||=R(`div`,{class:`form-label`},`Почта`,-1),z(A(Bw),{value:a.value,"onUpdate:value":n[0]||=e=>a.value=e,"input-props":{autocomplete:`disabled`},options:l.value,placeholder:`detective@mail.ru`,clearable:``},null,8,[`value`,`options`]),n[8]||=R(`div`,{class:`form-label`},`Пароль`,-1),z(A(Ow),{value:o.value,"onUpdate:value":n[1]||=e=>o.value=e,type:`password`,placeholder:`********`},null,8,[`value`]),R(`div`,UP,[R(`div`,WP,[z(A($),{onClick:u,disabled:a.value.length==0||o.value.length==0},{default:M(()=>[A(t).isLoading?(I(),L(`span`,KP,` Подождите... `)):(I(),L(`span`,GP,` Вход `))]),_:1},8,[`disabled`])])])]),_:1})]),_:1}),z(A($k),{name:`signup`,tab:`Регистрация`},{default:M(()=>[z(A(jD),{vertical:``},{default:M(()=>[n[11]||=R(`div`,{class:`form-label`},`Позывной`,-1),z(A(Ow),{value:i.value,"onUpdate:value":n[2]||=e=>i.value=e,type:`text`,placeholder:`Шерлок`},null,8,[`value`]),n[12]||=R(`div`,{class:`form-label`},`Почта`,-1),z(A(Bw),{value:a.value,"onUpdate:value":n[3]||=e=>a.value=e,"input-props":{autocomplete:`disabled`},options:l.value,placeholder:`detective@mail.ru`,clearable:``},null,8,[`value`,`options`]),R(`div`,qP,[z(A(VT),{checked:s.value,"onUpdate:checked":n[4]||=e=>s.value=e},{default:M(()=>[...n[9]||=[B(` Я принимаю условия `,-1),R(`a`,{href:`/user-agreement`,target:`_blank`,class:`docs-link`},`пользовательского соглашения`,-1)]]),_:1},8,[`checked`])]),R(`div`,JP,[z(A(VT),{checked:c.value,"onUpdate:checked":n[5]||=e=>c.value=e},{default:M(()=>[...n[10]||=[B(` Я даю согласие на обработку `,-1),R(`a`,{href:`/privacy-policy`,target:`_blank`,class:`docs-link`},`персональных данных`,-1)]]),_:1},8,[`checked`])]),R(`div`,YP,[R(`div`,XP,[z(A($),{onClick:d,disabled:i.value.length==0||a.value.length==0||!s.value||!c.value},{default:M(()=>[A(t).isLoading?(I(),L(`span`,QP,` Подождите... `)):(I(),L(`span`,ZP,` Регистрация `))]),_:1},8,[`disabled`])])])]),_:1})]),_:1}),z(A($k),{name:`new-password`,tab:`Новый пароль`},{default:M(()=>[z(A(jD),{vertical:``},{default:M(()=>[n[13]||=R(`div`,{class:`form-label`},`Почта`,-1),z(A(Bw),{value:a.value,"onUpdate:value":n[6]||=e=>a.value=e,"input-props":{autocomplete:`disabled`},options:l.value,placeholder:`detective@mail.ru`,clearable:``},null,8,[`value`,`options`]),R(`div`,$P,[R(`div`,eF,[z(A($),{onClick:f,disabled:a.value.length==0},{default:M(()=>[A(t).isLoading?(I(),L(`span`,nF,` Подождите... `)):(I(),L(`span`,tF,` Прислать новый пароль `))]),_:1},8,[`disabled`])])])]),_:1})]),_:1})]),_:1})]),_:1})]))}}),[[`__scopeId`,`data-v-33c96af1`]]),iF=P({__name:`LoginView`,setup(e){return(e,t)=>(I(),L(F,null,[z(rF),z(UN)],64))}}),aF={class:`center-block-custom`},oF={class:`width700`},sF={class:`danger-zone`},cF={key:0,class:`delete-modal-error`},lF={class:`delete-modal-buttons`},uF=HN(P({__name:`OfficePage`,setup(e){let t=JM(),n=aj(),r=sD(),i=YM(),a=k([]);async function o(){a.value=[];let e=await i.GetPermissions({});a.value=e.permissions}o();function s(){let e=new Date,t=e.getDay(),n=e.getDate(),r=e.getMonth()+1,i=t===1,a=t===5&&n===13,o=r===1&&n===1||r===12&&n===31,s=r>=6&&r<=8,c=r===12||r<=2,l=n%5==0,u=[`Всегда носи с собой запасную ручку — признания любят записывать в самый неподходящий момент.`,`Если подозреваемый слишком вежлив, он либо дипломат, либо прячет труп в гараже.`,`Кофе в участке — это не напиток, это яд для улик. Пей только свой.`,`Следы на месте преступления всегда ведут к тому, кто забыл закрыть дверь.`,`Лучший способ разговорить молчуна — предложить ему чай с тремя ложками сахара.`,`Если всё указывает на дворецкого, ищи того, кто нанимал дворецкого.`,`Записывай каждую мелочь. Особенно цвет носков убитого.`,`Не верь алиби, которое начинается со слов 'Я бы никогда...'`,`Преступник всегда возвращается на место преступления. Или за забытым телефоном.`,`Ищи того, кому есть что терять, кроме своего времени.`,`Если женщина плачет в кабинете — дай ей платок. Если мужчина — дай ему стакан воды.`,`Самое опасное оружие — не пистолет, а бухгалтерская книга.`,`Собака всегда знает убийцу. Но она не говорит, потому что у неё контракт.`,`Проверяй чеки, билеты и смс. Ложь не терпит документации.`,`Если у тела нет врагов — ты плохо искал врагов.`,`Лупа нужна не для увеличения улик, а для того, чтобы выглядеть умнее.`,`Интуиция — это когда ты уже знаешь ответ, но хочешь убедиться, что не ошибся.`,`Подозревай всех, даже самого себя. Иногда преступник — это ты в прошлом.`,`Хороший детектив видит улики. Великий — видит их отсутствие.`,`Никогда не допрашивай свидетеля на голодный желудок. И себя тоже.`,`Если дело зашло в тупик, переверни бумаги вверх ногами.`,`Самый ценный свидетель — это камера наблюдения, у которой сломана защита.`,`Не ищи мотив. Ищи возможность.`,`Преступник не оставляет следов. Он оставляет выбор.`,`Если дверь была закрыта изнутри — ищи люк, который открывается снаружи.`,`Лучший детектив — тот, кого не замечают в толпе.`,`Учись читать по губам. Пригодится на допросах с адвокатом.`,`Запах духов на месте преступления важнее запаха пороха.`,`Если ты нашел отпечаток пальца — проверь, не твой ли он.`,`Раскрыть дело — это искусство. Не раскрыть — тоже искусство, но другое.`,`Никогда не спорь с баллистикой. Она всегда права, даже если ты не согласен.`,`В каждом деле есть одна странная деталь. Найди её — и пазл сложится.`,`Если преступник умный — он оставит ложный след. Если глупый — он оставит следы в соцсетях.`,`Лучший друг детектива — тишина. Второй друг — кофе.`,`Если свидетель говорит слишком много, он врет. Если молчит — он тоже врет.`,`Преступление редко бывает идеальным. Идеальным бывает только алиби жены.`,`Всегда смотри на часы на трупе. Возможно, они показывают время, когда он перестал верить в людей.`,`Воры любят темноту. Детективы — свет. А маньяки — полную луну.`,`Если ты поймал преступника, не радуйся раньше времени — может, он просто лжец.`,`В каждом городе есть одно место, где собираются все сплетники. Начни оттуда.`,`Не верь в совпадения. Но верь в удачу.`,`Если у тебя нет улик — придумай их. Но только мысленно, чтобы знать, где искать.`,`Жертва всегда знала убийцу. Даже если она не знала, что знает.`,`Проверяй алиби на разрыв. Если оно выдерживает — ты ошибся.`,`Самый страшный враг детектива — не маньяк, а его собственная лень.`,`Если преступник оставил записку — прочитай её. И сожги, чтобы никто не узнал твой почерк.`,`Всегда носи с собой фонарик. Даже днём. Для эффекта.`,`В деле важно всё: от укуса комара до размера обуви.`,`Если ты думаешь, что дело простое — значит, ты не додумал.`,`Убийца всегда ищет внимания. Или наоборот, избегает его.`,`Стук в дверь в полночь — это либо полиция, либо заказчик.`,`Никогда не давай обещаний родственникам жертвы. Только факты.`,`Если у тебя есть три версии — выбирай четвёртую.`,`Лучшее оружие — это бумага. На ней можно написать что угодно.`,`Когда ты смотришь на улику, смотри на неё глазами преступника.`,`Все любят детективы, пока не становятся подозреваемыми.`,`Следы крови важны. Но важнее — следы лжи.`,`Если ты не спишь третьи сутки, значит, ты либо гений, либо дурак.`,`Проверяй каждого, кто говорит 'Я ничего не видел'.`,`В каждом деле есть один человек, который знает всё. И он не говорит.`,`Не суди преступника по одежде. Суди по тому, как он её снимал.`,`Дыра в алиби — это как дыра в лодке. Рано или поздно она утонет.`,`Если преступник использует перчатки — он профессионал. Если нет — он любитель.`,`Запомни: первая версия — всегда неверная.`,`Если у тебя кончились идеи, иди в бар. Там всегда есть кто-то, кто расскажет тебе дело.`,`Свидетель с фотороботом — это как слепой с компасом.`,`Никогда не смейся над уликами. Они могут обидеться и исчезнуть.`,`Если ты нашёл оружие — не трогай его. Иначе твои отпечатки будут на нём.`,`Преступник умён, но ты умнее. Потому что ты пьёшь правильный кофе.`,`Всегда пересматривай видеозаписи. Особенно в два раза медленнее.`,`Если на месте преступления есть кот — он видел всё. Но он не скажет.`,`Лучший способ поймать преступника — пригласить его на обед.`,`Если подозреваемый улыбается, он либо невиновен, либо психопат.`,`Проверяй мусор. В нём всегда есть что-то полезное.`,`Никогда не доверяй красивым историям. Только уродливым фактам.`,`Если ты нашёл улику слишком легко — это ловушка.`,`Убийца всегда оставляет послание. Даже если это просто тишина.`,`Если ты запнулся на допросе — делай вид, что так и задумано.`,`Помни: все врут. Даже я тебе советую.`,`Если ты боишься темноты — стань детективом. Страх пройдёт.`,`Самые лучшие признания случаются под утро, когда все устали.`,`Если преступник использовал компьютер, значит, он либо хакер, либо дурак.`,`Следы шин — это как подпись на дороге.`,`Никогда не забывай про запах. Он помнит дольше, чем люди.`,`Если ты не знаешь, что делать — съешь шоколадку.`,`В каждом деле есть одна минута слабости. Найди её.`,`Преступник всегда нервничает. Даже если он не нервничает.`,`Если у тебя есть подозреваемый и нет улик — подожди. Улики появятся.`,`Не верь в чудеса. Верь в логику.`,`Если ты устал — возьми отпуск. Преступление никуда не денется.`,`Запомни: самый опасный преступник — тот, кто читал детективы.`,`Если ты думаешь, что всё кончено — значит, ты пропустил поворот.`,`Следы на полу важнее следов в душе.`,`Если преступник оставил окурок — он курил. Или хотел, чтобы ты так думал.`,`Хороший детектив всегда голоден. Это помогает мыслить.`,`Не суди по первому впечатлению. Суди по второму, когда увидишь его в наручниках.`,`Если у тебя есть тайный агент — не доверяй ему.`,`В деле всегда есть тот, кто знает больше, чем говорит.`,`Если ты не можешь найти убийцу — стань им (в мыслях).`,`И последнее: всегда проверяй, закрыл ли ты дверь участка.`],d=[];i&&d.push(`☕ Понедельник: Сегодня даже преступники не хотят работать. Проверь тех, кто был слишком бодр.`),a&&d.push(`🔮 Пятница 13-е: Если улики ведут к чёрной кошке, ищи чёрного кота с алиби.`),o&&d.push(`🎄 Новый год: Свидетель в костюме Деда Мороза врёт. Настоящий Дед Мороз всегда в отпуске.`),s&&d.push(`☀️ Лето: В жару преступники забывают улики в карманах, потому что снимают пиджаки.`),c&&d.push(`❄️ Зима: Следы на снегу ведут к тому, у кого самые холодные руки.`),l&&d.push(`🌕 Полнолуние: Если подозреваемый воет на луну, он либо оборотень, либо фанат рока.`);let f=u.concat(d),p=f[Math.floor(Math.random()*f.length)],m=[`🔍 Заметки сыщика:`,`📓 Из дневника инспектора:`,`🕵️ Мудрость Шерлока:`,`🧠 Гениально и просто:`,`📌 Правило большого пальца:`,`☕ Кофейная истина:`];return{header:m[Math.floor(Math.random()*m.length)],text:p}}let c=s(),l=k(!1),u=k(``),d=k(``);async function f(){if(d.value=``,!await t.deleteAccount(u.value)){d.value=t.error||`Не удалось удалить аккаунт`;return}r.success(`Аккаунт и персональные данные удалены`),l.value=!1,n.push(`/login`)}return(e,n)=>(I(),L(F,null,[R(`div`,aF,[R(`div`,oF,[z(A(uw),{title:A(c).header,"show-icon":!1,type:`info`,style:{"margin-bottom":`20px`}},{default:M(()=>[B(O(A(c).text),1)]),_:1},8,[`title`]),R(`p`,null,`Доброго времени суток, `+O(A(t).username)+`.`,1),R(`div`,sF,[n[5]||=R(`div`,{class:`danger-zone-text`},[R(`div`,{class:`danger-zone-title`},`Удаление аккаунта`),R(`div`,{class:`danger-zone-hint`},` Удаление необратимо: аккаунт и все персональные данные будут стёрты (ст. 21 152-ФЗ). `)],-1),z(A($),{type:`error`,ghost:``,onClick:n[0]||=e=>l.value=!0},{default:M(()=>[...n[4]||=[B(`Удалить аккаунт`,-1)]]),_:1})])])]),z(A(KE),{show:l.value,"onUpdate:show":n[3]||=e=>l.value=e,preset:`card`,title:`Удаление аккаунта`,class:`delete-modal`},{default:M(()=>[n[8]||=R(`p`,{class:`delete-modal-text`},` Это действие необратимо. Для подтверждения удаления введите пароль от учётной записи — он понадобится, чтобы убедиться, что аккаунт удаляет его владелец. `,-1),z(A(Ow),{value:u.value,"onUpdate:value":n[1]||=e=>u.value=e,type:`password`,placeholder:`Пароль для подтверждения`,onKeyup:Ns(f,[`enter`])},null,8,[`value`]),d.value?(I(),L(`p`,cF,O(d.value),1)):Pa(``,!0),R(`div`,lF,[z(A($),{onClick:n[2]||=e=>l.value=!1},{default:M(()=>[...n[6]||=[B(`Отмена`,-1)]]),_:1}),z(A($),{type:`error`,disabled:u.value.length==0,loading:A(t).isLoading,onClick:f},{default:M(()=>[...n[7]||=[B(` Удалить навсегда `,-1)]]),_:1},8,[`disabled`,`loading`])])]),_:1},8,[`show`]),z(UN,{active:`office`})],64))}}),[[`__scopeId`,`data-v-e477f47a`]]),dF=P({__name:`OfficeView`,setup(e){return(e,t)=>(I(),Ea(uF))}}),fF=P({__name:`PrivacyPolicyView`,setup(e){return(e,t)=>(I(),L(F,null,[z(lP,{kind:`privacy`}),z(UN)],64))}});function pF(){let e=JM();return mF(e.refreshTokenAction,e.getToken)}function mF(e,t){async function n(n,r){let i={},a=t();a&&(i.Authorization=`Bearer ${a}`);let o=await fetch(`${qM()}/${n}`,{...r,headers:{...i,...r.headers}});if(o.status==401){await e();let a=t();a&&(i.Authorization=`Bearer ${a}`),o=await fetch(`${qM()}/${n}`,{...r,headers:{...i,...r.headers}})}return o}async function r(e){let t=await n(`api/scenarios/${e}/archive`,{method:`GET`});if(!t.ok)throw Error(await gF(t));return{blob:await t.blob(),filename:hF(t.headers.get(`Content-Disposition`))||`scenario-${e}.zip`}}async function i(e){let t=await n(`api/scenarios/archive`,{method:`POST`,headers:{"Content-Type":e.type||`application/zip`},body:e}),r=await t.json().catch(()=>null);if(!t.ok)return{id:null,error:r?.message||`Ошибка сервера (${t.status})`};let i=typeof r?.error==`string`&&r.error!==``?r.error:null;return{id:typeof r?.id==`number`?r.id:null,error:i}}return{downloadScenarioArchive:r,uploadScenarioArchive:i}}function hF(e){if(!e)return``;let t=e.match(/filename="?([^";]+)"?/i);return(t?t[1]:``).replace(/[\\/:*?"<>|]/g,`_`)}async function gF(e){let t=await e.json().catch(()=>null);return t&&typeof t.message==`string`&&t.message!==``?t.message:`Ошибка сервера (${e.status})`}var _F={xmlns:`http://www.w3.org/2000/svg`,"xmlns:xlink":`http://www.w3.org/1999/xlink`,viewBox:`0 0 24 24`},vF=P({name:`Key24Regular`,render:function(e,t){return I(),L(`svg`,_F,t[0]||=[R(`g`,{fill:`none`},[R(`path`,{d:`M18.25 7a1.25 1.25 0 1 1-2.5 0a1.25 1.25 0 0 1 2.5 0zM15.5 2.05A6.554 6.554 0 0 0 8.95 8.6c0 .387.05.76.11 1.104a.275.275 0 0 1-.07.244l-6.235 6.236a2.75 2.75 0 0 0-.806 1.944V20.3c0 .966.784 1.75 1.75 1.75h2.5a1.75 1.75 0 0 0 1.75-1.75v-1.25H9.7c.69 0 1.25-.56 1.25-1.25v-1.75h1.75a1.25 1.25 0 0 0 1.25-1.204c.496.128 1.02.204 1.55.204a6.554 6.554 0 0 0 6.55-6.55c0-3.631-2.953-6.45-6.55-6.45zM10.45 8.6a5.054 5.054 0 0 1 5.05-5.05c2.802 0 5.05 2.181 5.05 4.95a5.054 5.054 0 0 1-5.05 5.05c-.68 0-1.38-.171-2.005-.44a.75.75 0 0 0-1.046.69v.75H10.7c-.69 0-1.25.56-1.25 1.25v1.75H7.7c-.69 0-1.25.56-1.25 1.25v1.5a.25.25 0 0 1-.25.25H3.7a.25.25 0 0 1-.25-.25v-2.172c0-.331.132-.65.366-.884l6.236-6.235a1.774 1.774 0 0 0 .486-1.564a4.917 4.917 0 0 1-.088-.845z`,fill:`currentColor`})],-1)])}}),yF={class:`main`},bF={class:`message-cloud`},xF=HN(P({__name:`MessagePaper`,setup(e){return(e,t)=>(I(),L(`div`,yF,[t[0]||=R(`div`,{class:`message-cloud-3`},null,-1),t[1]||=R(`div`,{class:`message-cloud-2`},null,-1),R(`div`,bF,[ni(e.$slots,`default`,{},void 0,!0)])]))}}),[[`__scopeId`,`data-v-dfe3093b`]]),SF={key:1,class:`place-block`},CF={class:`message-header`},wF={class:`message-content`},TF={key:0},EF={class:`message-image-border`},DF=[`src`],OF={key:0,class:`hr`},kF={class:`gray-block`},AF={key:0},jF={class:`key-block`},MF={key:3},NF={class:`message-show-header font`},PF={class:`message-show-content font`},FF={key:0},IF={class:`message-image-border`},LF=[`src`],RF={key:0,class:`show-hr`},zF=[`onClick`],BF={class:`button-dialog-text`},VF={key:1,class:`show-hr`},HF={key:4},UF={class:`message-header font`},WF={key:5,class:`place-block`},GF=[`src`],KF={style:{display:`flex`,"align-items":`center`,width:`100%`}},qF={style:{display:`flex`,"flex-direction":`column`}},JF={style:{display:`flex`,"flex-direction":`column`,width:`100%`}},YF={class:`door-add-block`},XF={class:`door-field`},ZF={style:{display:`flex`,"align-items":`center`,width:`100%`}},QF={style:{display:`flex`,"align-items":`center`,width:`100%`}},$F={class:`slot-block`},eI=HN(P({__name:`PlaceBlock`,props:{newPlaceCode:{type:String},newPlaceName:{type:String},newPlaceText:{type:String},place:{type:Object},mode:{type:String,required:!0},addAction:{type:Function}},emits:[`update:newPlaceCode`,`update:newPlaceName`,`update:newPlaceText`,`update:mode`],setup(e,{emit:t}){let n=e,r=t,i=e=>{r(`update:newPlaceCode`,e)},a=e=>{r(`update:newPlaceName`,e)},o=e=>{r(`update:newPlaceText`,e)},s=e=>{r(`update:mode`,e)};function c(){return{name:void 0,image:void 0}}function l(){return{code:void 0,name:void 0,keys:void 0}}function u(){return{name:void 0}}return(t,r)=>(I(),L(F,null,[e.mode==`mini-add`?(I(),L(`div`,{key:0,class:`place-block-hover show-editor-block`,onClick:r[0]||=e=>s(`add`)},[...r[14]||=[R(`p`,{class:`place-image-plus`},`+`,-1)]])):Pa(``,!0),e.mode==`add`?(I(),L(`div`,SF,[z(A(jD),{vertical:``},{default:M(()=>[z(A(Aw),null,{default:M(()=>[z(A(Ow),{style:{width:`20%`},value:e.newPlaceCode,"onUpdate:value":i,type:`text`,placeholder:`Ы-1`},null,8,[`value`]),z(A(Ow),{style:{width:`80%`},value:e.newPlaceName,"onUpdate:value":a,type:`text`,placeholder:`Дом №Ы`},null,8,[`value`])]),_:1}),z(A(Ow),{value:e.newPlaceText,"onUpdate:value":o,type:`textarea`,autosize:{minRows:3},placeholder:`В начале было слово...`},null,8,[`value`]),ni(t.$slots,`default`,{},void 0,!0)]),_:3})])):Pa(``,!0),e.mode==`show-editor`?(I(),L(`div`,{key:2,class:`place-block-hover show-editor-block`,onClick:r[1]||=e=>s(`edit`)},[R(`div`,CF,O(n.place?.code)+`: `+O(n.place?.name),1),r[15]||=R(`hr`,{class:`hr`},null,-1),R(`div`,wF,[n.place?.image?(I(),L(`div`,TF,[R(`div`,EF,[R(`img`,{src:n.place?.image,class:`message-image`},null,8,DF)])])):Pa(``,!0),B(` `+O(n.place?.text),1)]),(I(!0),L(F,null,ti(n.place?.doors,e=>(I(),L(`div`,{key:e.code,class:`door-block`},[B(O(e.name)+` `,1),(I(!0),L(F,null,ti(e.keys,e=>(I(),L(`span`,{key:e.name,class:`key-block`},[z(A(RN),{class:`lock-icon`},{default:M(()=>[z(A(tN))]),_:1}),B(` `+O(e.name),1)]))),128))]))),128)),n.place?.applications?.length?(I(),L(`hr`,OF)):Pa(``,!0),(I(!0),L(F,null,ti(n.place?.applications,e=>(I(),L(`div`,{class:`message-footer application-block`,key:e.name},` Приложение: `+O(e.name),1))),128)),R(`p`,kF,[n.place?.hidden?(I(),L(`span`,AF,` Скрытая точка `)):Pa(``,!0),(I(!0),L(F,null,ti(n.place?.keys,e=>(I(),L(`span`,jF,[z(A(RN),{class:`lock-icon`},{default:M(()=>[z(A(vF))]),_:1}),B(` `+O(e.name),1)]))),256))])])):Pa(``,!0),e.mode==`show`?(I(),L(`div`,MF,[z(xF,null,{default:M(()=>[R(`div`,NF,[B(O(e.place?.code)+`: `+O(e.place?.name)+` `,1),R(`span`,{class:`collapse-icon collapse-icon-up`,onClick:r[2]||=e=>s(`show-collapse`)})]),r[16]||=R(`hr`,{class:`show-hr`},null,-1),R(`div`,PF,[e.place?.image?.length?(I(),L(`div`,FF,[R(`div`,IF,[R(`img`,{src:e.place?.image,class:`message-image`},null,8,LF)])])):Pa(``,!0),B(` `+O(e.place?.text),1)]),n.place?.doors?.length?(I(),L(`hr`,RF)):Pa(``,!0),(I(!0),L(F,null,ti(n.place?.doors,t=>(I(),L(`div`,{key:t.code,class:`button-dialog font`,onClick:n=>e.addAction(t.code)},[R(`div`,BF,O(t.code)+` `+O(t.name),1)],8,zF))),128)),n.place?.applications?.length?(I(),L(`hr`,VF)):Pa(``,!0),(I(!0),L(F,null,ti(n.place?.applications,e=>(I(),L(`div`,{class:`message-show-footer font`,key:e.name},` Приложение: `+O(e.name),1))),128))]),_:1})])):Pa(``,!0),e.mode==`show-collapse`?(I(),L(`div`,HF,[z(xF,null,{default:M(()=>[R(`div`,UF,[B(O(e.place?.code)+`: `+O(e.place?.name)+` `,1),R(`span`,{class:`collapse-icon`,onClick:r[3]||=e=>s(`show`)})])]),_:1})])):Pa(``,!0),e.mode==`edit`?(I(),L(`div`,WF,[z(A(jD),{vertical:``},{default:M(()=>[z(A(Aw),null,{default:M(()=>[z(A(Ow),{style:{width:`20%`},value:n.place.code,"onUpdate:value":r[4]||=e=>n.place.code=e,type:`text`,placeholder:`Ы-1`},null,8,[`value`]),z(A(Ow),{style:{width:`80%`},value:n.place.name,"onUpdate:value":r[5]||=e=>n.place.name=e,type:`text`,placeholder:`Дом №Ы`},null,8,[`value`])]),_:1}),z(A(Ow),{value:n.place.text,"onUpdate:value":r[6]||=e=>n.place.text=e,type:`textarea`,autosize:{minRows:3},placeholder:`В начале было слово...`},null,8,[`value`]),r[28]||=R(`p`,{class:`settings-header`},`Картинка`,-1),R(`div`,null,[z(A(jD),null,{default:M(()=>[z(A(jD),{vertical:``},{default:M(()=>[R(`img`,{src:n.place.image,class:`message-edit-image`},null,8,GF),z(A($),{onClick:r[7]||=e=>(n.place.image=``,n.place.fileList=null)},{default:M(()=>[...r[17]||=[B(`Убрать картинку`,-1)]]),_:1})]),_:1}),z(A(jD),{vertical:``},{default:M(()=>[z(A(Ow),{value:n.place.image,"onUpdate:value":r[8]||=e=>n.place.image=e,type:`text`,placeholder:`Не задано`,disabled:``},null,8,[`value`]),z(A(VA),{"directory-dnd":``,max:1,"file-list":n.place.fileList,"onUpdate:fileList":r[9]||=e=>n.place.fileList=e},{default:M(()=>[z(A(fA),null,{default:M(()=>[z(A(lA),{style:{"font-size":`16px`}},{default:M(()=>[...r[18]||=[B(` Щелкните или перетащите файл в эту область для загрузки `,-1)]]),_:1})]),_:1})]),_:1},8,[`file-list`])]),_:1})]),_:1})]),r[29]||=R(`p`,{class:`settings-header`},`Видимость точки`,-1),z(A(Xk),{value:n.place.hidden,"onUpdate:value":r[10]||=e=>n.place.hidden=e},{checked:M(()=>[...r[19]||=[B(` Скрытая точка `,-1)]]),unchecked:M(()=>[...r[20]||=[B(` Обычная точка `,-1)]]),_:1},8,[`value`]),r[30]||=B(` Улики `,-1),z(A(wD),{value:n.place.applications,"onUpdate:value":r[11]||=e=>n.place.applications=e,"on-create":c},{"create-button-default":M(()=>[...r[21]||=[B(` Добавить улику `,-1)]]),default:M(({value:e})=>[R(`div`,KF,[z(A(Ow),{value:e.name,"onUpdate:value":t=>e.name=t,type:`text`,placeholder:`Название`},null,8,[`value`,`onUpdate:value`])])]),_:1},8,[`value`]),r[31]||=B(` Действия `,-1),z(A(wD),{value:n.place.doors,"onUpdate:value":r[12]||=e=>n.place.doors=e,"on-create":l},{"create-button-default":M(()=>[...r[22]||=[B(` Добавить действие `,-1)]]),action:M(({index:e,create:t,remove:n})=>[R(`div`,qF,[z(A($),{onClick:()=>t(e),class:`plus-minus-buttons`},{default:M(()=>[...r[23]||=[B(`+`,-1)]]),_:1},8,[`onClick`]),z(A($),{onClick:()=>n(e),class:`plus-minus-buttons`},{default:M(()=>[...r[24]||=[B(`-`,-1)]]),_:1},8,[`onClick`])])]),default:M(({value:e})=>[R(`div`,JF,[R(`div`,YF,[z(A(Aw),null,{default:M(()=>[z(A(Ow),{style:{width:`30%`},value:e.code,"onUpdate:value":t=>e.code=t,type:`text`,placeholder:`Код`},null,8,[`value`,`onUpdate:value`]),z(A(Ow),{style:{width:`70%`},value:e.name,"onUpdate:value":t=>e.name=t,type:`text`,placeholder:`Название`},null,8,[`value`,`onUpdate:value`])]),_:2},1024),r[26]||=R(`p`,{class:`need-keys-text`},`Требуемые ключи`,-1),R(`div`,XF,[z(A(wD),{value:e.keys,"onUpdate:value":t=>e.keys=t,"on-create":u},{"create-button-default":M(()=>[...r[25]||=[B(` Добавить ключ `,-1)]]),default:M(({value:e})=>[R(`div`,ZF,[z(A(Ow),{value:e.name,"onUpdate:value":t=>e.name=t,type:`text`,placeholder:`Название`},null,8,[`value`,`onUpdate:value`])])]),_:1},8,[`value`,`onUpdate:value`])])])])]),_:1},8,[`value`]),r[32]||=B(` Получаемые ключи `,-1),z(A(wD),{value:n.place.keys,"onUpdate:value":r[13]||=e=>n.place.keys=e,"on-create":u},{"create-button-default":M(()=>[...r[27]||=[B(` Добавить ключ `,-1)]]),default:M(({value:e})=>[R(`div`,QF,[z(A(Ow),{value:e.name,"onUpdate:value":t=>e.name=t,type:`text`,placeholder:`Название`},null,8,[`value`,`onUpdate:value`])])]),_:1},8,[`value`]),R(`div`,$F,[ni(t.$slots,`default`,{},void 0,!0)])]),_:3})])):Pa(``,!0)],64))}}),[[`__scopeId`,`data-v-93891f39`]]),tI={class:`center-block-custom`},nI={class:`width700`},rI={class:`places-container`},iI={class:`settings-block`},aI=HN(P({__name:`ScenariosEditorPage`,setup(e){let t=JM(),n=YM(),r=pF(),i=oj().params.id,a=k(!1),o=k(``),s=k(``),c=k(!1),l=sD(),u=k([]),d=k({id:void 0,name:void 0,story:void 0,author:void 0,status:void 0,updatedAt:void 0,createdAt:void 0,publishedAt:void 0});async function f(e){let t=await n.GetFullScenario({id:e});if(t.error!=``){l.error(t.error);return}d.value=t.scenario,d.value.story?.places?.forEach(e=>{e.oldCode=e.code,e.mode=`show-editor`})}f(Number(i));async function p(e){let t=await n.DeleteScenario({id:e});if(t.error!=``){l.error(t.error);return}uL.push(`/scenarios`)}async function m(e){let t=await n.PublicScenario({id:e});if(t.error!=``){l.error(t.error);return}await f(Number(i)),o.value=``,a.value=!1}async function h(e,t){let r=new Date().toISOString(),i=await n.AddGame({name:(`Тестовая игра: `+e).trim(),description:`Тестовая игра`,startAt:r,scenarioId:t});if(i.error!=``){l.error(i.error);return}let a=await n.AddTeam({name:`Тестовая команда`,gameId:i.id});if(a.error!=``){l.error(a.error);return}uL.push(`/team-story/`+a.id+`?password=`+a.password)}async function g(e){let t=await n.DraftScenario({id:e});if(t.error!=``){l.error(t.error);return}await f(Number(i)),o.value=``,a.value=!1}async function _(){c.value=!0;try{let{blob:e,filename:t}=await r.downloadScenarioArchive(d.value.id),n=URL.createObjectURL(e),i=document.createElement(`a`);i.href=n,i.download=t,document.body.appendChild(i),i.click(),i.remove(),setTimeout(()=>URL.revokeObjectURL(n),1e3),l.success(`Архив сценария скачан`)}catch(e){l.error(e instanceof Error?e.message:`Не удалось скачать архив`)}finally{c.value=!1}}async function v(e,t){if(!e)return``;let r=await e.arrayBuffer(),i=new Uint8Array(r),a=await n.UploadFile({filename:t,data:b(i)});return a.error==``?a.filename||``:(l.error(a.error),``)}async function y(){let e=``;if(u.value&&u.value.length>0){let t=u.value[0].file||null;if(t==null||(e=await v(t,`scenarios_`+d.value.id+`_`+t.name),e===``))return}let t=await n.UpdateScenario({id:d.value.id,name:d.value.name,description:d.value.description,image:e});if(t.error!=``){l.error(t.error);return}await f(Number(i)),a.value=!1}function b(e){let t=x(e);return btoa(t)}function x(e){let t=``;for(let n=0;ne.code==r.code)==null){let t=await n.AddScenarioPlace({id:e.id,place:{code:r.code,name:r.name,text:void 0,image:void 0,hidden:!0,applications:void 0,doors:void 0,keys:void 0}});if(t.error!=``){l.error(t.error);return}}}async function te(e){await f(Number(i)),e.mode=`show-editor`}async function ne(e){if(e.fileList&&e.fileList.length>0){let t=e.fileList[0].file||null;if(t==null)return;let n=await v(t,`scenarios_`+d.value.id+`_place_`+e.code+`_`+t.name);if(n===``)return;e.image=n}await D(d.value,e);let t=await n.UpdateScenarioPlace({id:d.value.id,code:e.oldCode,place:e});if(t.error!=``){l.error(t.error);return}await f(Number(i)),e.mode=`show-editor`}async function re(e){let t=await n.DeleteScenarioPlace({id:d.value.id,code:e.oldCode});if(t.error!=``){l.error(t.error);return}await f(Number(i))}function ie(){let e=[{text:`Настя, ты просто ослепительна сегодня!`,nameForm:`Настя`},{text:`У Насти невероятный вкус!`,nameForm:`Насти`},{text:`Настенька, твоя улыбка делает мир ярче.`,nameForm:`Настенька`},{text:`С Настей всегда интересно общаться.`,nameForm:`Настей`},{text:`Настя, ты — источник вдохновения для всех вокруг.`,nameForm:`Настя`},{text:`Мне нравится, как Настя смотрит на мир.`,nameForm:`Настя`},{text:`Настюха, ты супер!`,nameForm:`Настюха`},{text:`Талант Насти поражает!`,nameForm:`Насти`},{text:`Настя, твоя энергия заряжает батарейки!`,nameForm:`Настя`},{text:`С Настей хочется проводить каждую минуту.`,nameForm:`Настей`},{text:`Настенька, ты — самое красивое, что случилось в этом мире.`,nameForm:`Настенька`},{text:`У Насти золотое сердце.`,nameForm:`Насти`}];return e[Math.floor(Math.random()*e.length)].text}return(e,n)=>(I(),L(F,null,[R(`div`,tI,[R(`div`,nI,[R(`div`,rI,[d.value.status==`public`?(I(),Ea(A(uw),{key:0,title:`Сценарий опубликован`,type:`warning`,style:{"margin-bottom":`20px`}},{default:M(()=>[...n[21]||=[B(` Не рекомендуется редактировать сценарий когда он опубликован. `,-1)]]),_:1})):Pa(``,!0),A(t).user?.id==2?(I(),Ea(A(uw),{key:1,title:ie(),type:`info`,style:{"margin-bottom":`20px`}},null,8,[`title`])):Pa(``,!0),R(`div`,iI,[B(` Точек: `+O(d.value.story?.places?.length)+` `,1),z(A($),{quaternary:``,onClick:n[0]||=e=>a.value=!0,class:`settings-button`},{default:M(()=>[z(A(RN),{class:`settings-icon`},{default:M(()=>[z(A(kP))]),_:1}),n[22]||=B(` Настройки `,-1)]),_:1})]),z(eI,{mode:T.value,"onUpdate:mode":n[3]||=e=>T.value=e,newPlaceCode:S.value,"onUpdate:newPlaceCode":n[4]||=e=>S.value=e,newPlaceName:C.value,"onUpdate:newPlaceName":n[5]||=e=>C.value=e,newPlaceText:w.value,"onUpdate:newPlaceText":n[6]||=e=>w.value=e},{default:M(()=>[z(A(RD),{justify:`end`},{default:M(()=>[z(A($),{onClick:n[1]||=e=>E()},{default:M(()=>[...n[23]||=[B(`Отмена`,-1)]]),_:1}),z(A($),{onClick:n[2]||=e=>ee(),disabled:!S.value},{default:M(()=>[...n[24]||=[B(`Добавить точку`,-1)]]),_:1},8,[`disabled`])]),_:1})]),_:1},8,[`mode`,`newPlaceCode`,`newPlaceName`,`newPlaceText`]),(I(!0),L(F,null,ti(d.value.story?.places,e=>(I(),Ea(eI,{place:e,mode:e.mode,"onUpdate:mode":t=>e.mode=t,key:e.oldCode},{default:M(()=>[z(A(RD),{justify:`end`},{default:M(()=>[z(A($),{onClick:t=>re(e),type:`error`,ghost:``},{default:M(()=>[...n[25]||=[B(`Удалить`,-1)]]),_:1},8,[`onClick`]),z(A($),{onClick:t=>te(e)},{default:M(()=>[...n[26]||=[B(`Отмена`,-1)]]),_:1},8,[`onClick`]),z(A($),{onClick:t=>ne(e),disabled:e.code==``},{default:M(()=>[...n[27]||=[B(`Сохранить`,-1)]]),_:1},8,[`onClick`,`disabled`])]),_:2},1024)]),_:2},1032,[`place`,`mode`,`onUpdate:mode`]))),128))])])]),z(A(KE),{show:a.value,"onUpdate:show":n[20]||=e=>a.value=e},{default:M(()=>[z(A(OT),{style:{width:`600px`},title:`Настройки сценария`,bordered:!1,size:`huge`,role:`dialog`,"aria-modal":`true`},{"header-extra":M(()=>[z(A($),{onClick:n[7]||=e=>a.value=!1},{default:M(()=>[...n[28]||=[B(` x `,-1)]]),_:1})]),footer:M(()=>[...n[52]||=[]]),default:M(()=>[z(A(jD),{vertical:``},{default:M(()=>[n[41]||=R(`p`,null,`Название`,-1),z(A(Ow),{value:d.value.name,"onUpdate:value":n[8]||=e=>d.value.name=e,type:`text`,placeholder:`Дело №0 "Следствие ведут овечки"`},null,8,[`value`]),n[42]||=R(`p`,{class:`settings-header`},`Описание`,-1),z(A(Ow),{value:d.value.description,"onUpdate:value":n[9]||=e=>d.value.description=e,type:`textarea`,placeholder:`Убийство пастуха...`},null,8,[`value`]),n[43]||=R(`p`,{class:`settings-header`},`Картинка`,-1),z(A(Ow),{value:d.value.image,"onUpdate:value":n[10]||=e=>d.value.image=e,type:`text`,placeholder:`default_scenario.png`,disabled:``},null,8,[`value`]),z(A(VA),{"directory-dnd":``,max:1,"file-list":u.value,"onUpdate:fileList":n[11]||=e=>u.value=e},{default:M(()=>[z(A(fA),null,{default:M(()=>[z(A(lA),{style:{"font-size":`16px`}},{default:M(()=>[...n[29]||=[B(` Щелкните или перетащите файл в эту область для загрузки `,-1)]]),_:1})]),_:1})]),_:1},8,[`file-list`]),z(A($),{onClick:n[12]||=e=>y(),ghost:``},{default:M(()=>[...n[30]||=[B(` Сохранить изменения `,-1)]]),_:1}),n[44]||=R(`hr`,{class:`settings-hr`},null,-1),n[45]||=R(`p`,{class:`settings-header`},`Архив сценария`,-1),n[46]||=R(`p`,{class:`settings-hint`},` Скачайте сценарий ZIP-архивом (scenario.json + изображения) и импортируйте его в другом аккаунте. `,-1),z(A($),{loading:c.value,disabled:!d.value.id,ghost:``,onClick:n[13]||=e=>_()},{default:M(()=>[...n[31]||=[B(` Скачать архив (.zip) `,-1)]]),_:1},8,[`loading`,`disabled`]),n[47]||=R(`hr`,{class:`settings-hr`},null,-1),n[48]||=R(`p`,null,`Создать тестовую игру`,-1),z(A($),{onClick:n[14]||=e=>h(d.value.name||``,d.value.id),ghost:``},{default:M(()=>[...n[32]||=[B(` Создать игру `,-1)]]),_:1}),n[49]||=R(`hr`,{class:`settings-hr`},null,-1),n[50]||=R(`p`,null,`Публикация`,-1),R(`p`,null,[d.value.status==`public`?(I(),Ea(A(qC),{key:0,bordered:!1,type:`success`,class:`status-block`},{default:M(()=>[...n[33]||=[B(` Опубликовано `,-1)]]),_:1})):Pa(``,!0),d.value.status==`draft`?(I(),Ea(A(qC),{key:1,bordered:!1,type:`warning`,class:`status-block`},{default:M(()=>[...n[34]||=[B(` В разработке `,-1)]]),_:1})):Pa(``,!0)]),R(`p`,null,[n[35]||=B(` Введите название сценария `,-1),z(A(lA),{class:`name-text`,strong:``},{default:M(()=>[B(O(d.value.name),1)]),_:1})]),z(A(Ow),{value:o.value,"onUpdate:value":n[15]||=e=>o.value=e,type:`text`,placeholder:`Дело №0 "Следствие ведут овечки"`},null,8,[`value`]),d.value.status==`public`?Pa(``,!0):(I(),Ea(A($),{key:0,onClick:n[16]||=e=>m(d.value.id),ghost:``,disabled:o.value!=d.value.name},{default:M(()=>[...n[36]||=[B(` Опубликовать сценарий `,-1)]]),_:1},8,[`disabled`])),d.value.status==`draft`?Pa(``,!0):(I(),Ea(A($),{key:1,onClick:n[17]||=e=>g(d.value.id),ghost:``,disabled:o.value!=d.value.name},{default:M(()=>[...n[37]||=[B(` Снять сценарий с публикации `,-1)]]),_:1},8,[`disabled`])),n[51]||=R(`hr`,{class:`settings-hr`},null,-1),R(`p`,null,[n[38]||=B(` Введите название сценария `,-1),z(A(lA),{class:`name-text`,strong:``},{default:M(()=>[B(O(d.value.name),1)]),_:1}),n[39]||=B(` чтобы удалить его `,-1)]),z(A(Ow),{value:s.value,"onUpdate:value":n[18]||=e=>s.value=e,type:`text`,placeholder:`Дело №0 "Следствие ведут овечки"`},null,8,[`value`]),z(A($),{onClick:n[19]||=e=>p(d.value.id),type:`error`,ghost:``,disabled:s.value!=d.value.name},{default:M(()=>[...n[40]||=[B(` Удалить сценарий `,-1)]]),_:1},8,[`disabled`])]),_:1})]),_:1})]),_:1},8,[`show`]),z(UN,{active:`scenarios`})],64))}}),[[`__scopeId`,`data-v-66ee2261`]]),oI=P({__name:`ScenariosEditorView`,setup(e){return(e,t)=>(I(),Ea(aI))}}),sI={class:`center-block-custom`},cI={class:`width1200 display-table`},lI={class:`scenario-image-block scenario-image-plus import-icon`},uI=[`onClick`],dI={class:`scenario-content-block`},fI={class:`scenario-title`},pI={class:`scenario-label`},mI=HN(P({__name:`ScenariosPage`,setup(e){let t=YM(),n=pF(),r=k([]),i=aj(),a=sD(),o=k(!1),s=k(``),c=k(!1),l=k([]),u=k(!1);async function d(){r.value=[];let e=await t.GetMyScenarios({});r.value=e.scenarios}async function f(e){let n=await t.AddScenario({name:e});if(n.error!=``){a.error(n.error);return}await p(n.id)}async function p(e){i.push(`/scenarios/`+e+`/editor`)}function m(){l.value=[],c.value=!1}async function h(){let e=l.value[0]?.file;if(e){u.value=!0;try{let t=await n.uploadScenarioArchive(e);if(t.error){a.error(t.error);return}a.success(`Сценарий импортирован из архива`),m(),await p(t.id)}catch(e){a.error(e instanceof Error?e.message:`Не удалось импортировать архив`)}finally{u.value=!1}}}return d(),(e,t)=>(I(),L(F,null,[R(`div`,sI,[R(`div`,cI,[R(`div`,{class:`scenario-block`,onClick:t[0]||=e=>o.value=!0},[...t[11]||=[R(`div`,{class:`scenario-image-block scenario-image-plus`},`+`,-1),R(`div`,{class:`scenario-content-block`},[R(`p`,{class:`scenario-title`},`Создать новый сценарий`)],-1)]]),R(`div`,{class:`scenario-block`,onClick:t[1]||=e=>c.value=!0},[R(`div`,lI,[z(A(RN),null,{default:M(()=>[z(A(yP))]),_:1})]),t[12]||=R(`div`,{class:`scenario-content-block`},[R(`p`,{class:`scenario-title`},`Импортировать из архива`)],-1)]),(I(!0),L(F,null,ti(r.value,e=>(I(),L(`div`,{class:`scenario-block`,onClick:t=>p(e.id),key:e.id},[R(`div`,{class:`scenario-image-block scenario-image`,style:fe({backgroundImage:`url(${e.image})`})},null,4),R(`div`,dI,[R(`p`,fI,O(e.name),1),R(`p`,pI,[e.status==`public`?(I(),Ea(A(qC),{key:0,bordered:!1,type:`success`,class:`status-block`},{default:M(()=>[...t[13]||=[B(`Опубликовано`,-1)]]),_:1})):Pa(``,!0),e.status==`draft`?(I(),Ea(A(qC),{key:1,bordered:!1,type:`warning`,class:`status-block`},{default:M(()=>[...t[14]||=[B(`В разработке`,-1)]]),_:1})):Pa(``,!0)])])],8,uI))),128))])]),z(A(KE),{show:o.value,"onUpdate:show":t[5]||=e=>o.value=e},{default:M(()=>[z(A(OT),{style:{width:`600px`},title:`Создание сценария`,bordered:!1,size:`huge`,role:`dialog`,"aria-modal":`true`},{"header-extra":M(()=>[z(A($),{onClick:t[2]||=e=>o.value=!1},{default:M(()=>[...t[15]||=[B(` x `,-1)]]),_:1})]),footer:M(()=>[z(A(RD),{justify:`end`},{default:M(()=>[z(A($),{onClick:t[4]||=e=>f(s.value),disabled:s.value.length==0},{default:M(()=>[...t[16]||=[B(` Создать `,-1)]]),_:1},8,[`disabled`])]),_:1})]),default:M(()=>[z(A(Ow),{value:s.value,"onUpdate:value":t[3]||=e=>s.value=e,type:`text`,placeholder:`Дело №0 "Следствие ведут овечки"`},null,8,[`value`])]),_:1})]),_:1},8,[`show`]),z(A(KE),{show:c.value,"onUpdate:show":t[10]||=e=>c.value=e},{default:M(()=>[z(A(OT),{style:{width:`600px`},title:`Импорт сценария из архива`,bordered:!1,size:`huge`,role:`dialog`,"aria-modal":`true`},{"header-extra":M(()=>[z(A($),{onClick:t[6]||=e=>m()},{default:M(()=>[...t[17]||=[B(` x `,-1)]]),_:1})]),footer:M(()=>[z(A(RD),{justify:`end`},{default:M(()=>[z(A($),{onClick:t[8]||=e=>m()},{default:M(()=>[...t[19]||=[B(`Отмена`,-1)]]),_:1}),z(A($),{type:`primary`,loading:u.value,disabled:l.value.length==0,onClick:t[9]||=e=>h()},{default:M(()=>[...t[20]||=[B(` Импортировать `,-1)]]),_:1},8,[`loading`,`disabled`])]),_:1})]),default:M(()=>[t[21]||=R(`p`,{class:`import-hint`},` Выберите ZIP-архив сценария (файл scenario.json + папка images). Архив можно получить через «Скачать архив» в настройках сценария. `,-1),z(A(VA),{max:1,"file-list":l.value,"onUpdate:fileList":t[7]||=e=>l.value=e,accept:`.zip,application/zip,application/x-zip-compressed,application/octet-stream`},{default:M(()=>[z(A(fA),null,{default:M(()=>[z(A(lA),{style:{"font-size":`16px`}},{default:M(()=>[...t[18]||=[B(` Щелкните или перетащите ZIP-архив в эту область `,-1)]]),_:1})]),_:1})]),_:1},8,[`file-list`])]),_:1})]),_:1},8,[`show`]),z(UN,{active:`scenarios`})],64))}}),[[`__scopeId`,`data-v-57b81e7c`]]),hI=P({__name:`ScenariosView`,setup(e){return(e,t)=>(I(),Ea(mI))}}),gI={class:`center-block-custom`},_I={class:`width700`},vI={class:`scenario-title`},yI=[`src`],bI={class:`scenario-description`},xI={class:`scenario-author`},SI=HN(P({__name:`ScenarioPage`,setup(e){let t=sD(),n=YM(),r=oj().params.id,i=k({id:void 0,name:void 0,story:void 0,author:void 0,status:void 0,updatedAt:void 0,createdAt:void 0,publishedAt:void 0});async function a(e){let r=await n.GetScenario({id:e});if(r.error!=``){t.error(r.error);return}i.value=r.scenario}return a(Number(r)),(e,t)=>(I(),L(F,null,[R(`div`,gI,[R(`div`,_I,[R(`div`,vI,O(i.value.name),1),R(`img`,{class:`scenario-image`,src:i.value.image},null,8,yI),R(`div`,bI,O(i.value.description),1),R(`div`,xI,[z(A(qC),{bordered:!1,type:`success`,class:`status-block`},{default:M(()=>[B(`Автор: `+O(i.value.author?.username),1)]),_:1})])])]),z(UN,{active:`catalog`})],64))}}),[[`__scopeId`,`data-v-2c9a6669`]]),CI=P({__name:`ScenarioView`,setup(e){return(e,t)=>(I(),Ea(SI))}}),wI={xmlns:`http://www.w3.org/2000/svg`,"xmlns:xlink":`http://www.w3.org/1999/xlink`,viewBox:`0 0 512 512`},TI=P({name:`Footsteps`,render:function(e,t){return I(),L(`svg`,wI,t[0]||=[R(`path`,{d:`M133.83 361.27c-22.61 0-41-8.17-54.79-24.39s-22.84-40.29-28.11-75.31c-7.76-51.61-.06-95.11 21.68-122.48c12.8-16.12 29.6-25.44 48.58-26.94c16.25-1.3 40.54 5.29 64 44c14.69 24.24 25.86 56.44 30.65 88.34c5.79 38.51 1.48 66.86-13.18 86.65c-11.64 15.72-29.54 25.46-53.21 29a106.46 106.46 0 0 1-15.62 1.13z`,fill:`currentColor`},null,-1),R(`path`,{d:`M173 496c-13.21 0-26.6-4.23-38.66-12.36a79.79 79.79 0 0 1-33.52-50.6c-2.85-14.66-1.14-26.31 5.22-35.64c10.33-15.15 28.87-18.56 48.49-22.18c2.07-.38 4.17-.76 6.3-1.17c4.52-.86 9.14-2 13.62-3.11c16.78-4.14 34.14-8.43 48.47 1.75c9.59 6.8 15 18.36 16.62 35.32c1.84 19.57-2.36 39.1-11.83 55c-10.19 17.11-25.47 28.42-43 31.86A61 61 0 0 1 173 496z`,fill:`currentColor`},null,-1),R(`path`,{d:`M378.17 265.27a106.69 106.69 0 0 1-15.6-1.2c-23.66-3.5-41.56-13.25-53.2-29c-14.66-19.79-19-48.13-13.18-86.65c4.79-31.93 15.93-64.1 30.55-88.25c23.34-38.57 47.66-45.26 64-44.08c18.92 1.38 35.69 10.57 48.51 26.6c21.89 27.37 29.65 71 21.86 122.84c-5.27 35-14.2 58.95-28.11 75.31s-32.22 24.43-54.83 24.43z`,fill:`currentColor`},null,-1),R(`path`,{d:`M339 400a61 61 0 0 1-11.68-1.13c-17.56-3.44-32.84-14.75-43-31.86c-9.47-15.9-13.67-35.43-11.83-55c1.6-17 7-28.52 16.62-35.33c14.33-10.17 31.69-5.89 48.47-1.74c4.48 1.1 9.1 2.24 13.62 3.11l6.29 1.17c19.63 3.61 38.17 7 48.5 22.17c6.36 9.33 8.07 21 5.22 35.64a79.78 79.78 0 0 1-33.52 50.61C365.56 395.78 352.17 400 339 400z`,fill:`currentColor`},null,-1)])}}),EI={},DI={class:`belt-block`};function OI(e,t){return I(),L(`div`,null,[t[0]||=R(`div`,{class:`shadow shadow-top`},null,-1),t[1]||=R(`div`,{class:`shadow shadow-bottom`},null,-1),R(`div`,DI,[ni(e.$slots,`default`,{},void 0,!0)])])}var kI=HN(EI,[[`render`,OI],[`__scopeId`,`data-v-82aef99e`]]),AI={},jI={class:`plate-block`},MI={class:`metal-plate-block`};function NI(e,t){return I(),L(`div`,jI,[R(`div`,MI,[ni(e.$slots,`default`,{},void 0,!0)]),t[0]||=R(`div`,{class:`pin pin-top-left`},null,-1),t[1]||=R(`div`,{class:`pin pin-top-right`},null,-1),t[2]||=R(`div`,{class:`pin pin-bottom-right`},null,-1),t[3]||=R(`div`,{class:`pin pin-bottom-left`},null,-1)])}var PI=HN(AI,[[`render`,NI],[`__scopeId`,`data-v-35e450f5`]]),FI={class:`form-custom`},II={class:`center-block-700`},LI={class:`controller`},RI={class:`counters-block`},zI={class:`counter-block`},BI={class:`places-text`},VI={class:`places-text places-text-number`},HI={class:`counter-block`},UI={class:`places-text`},WI={class:`places-text places-text-number`},GI={class:`game-input`},KI=[`placeholder`,`disabled`],qI=[`disabled`],JI=HN(P({__name:`GameInputForm`,props:{addAction:{type:Function,required:!0},allPlacesCount:{type:Number,required:!0},newPlacesCount:{type:Number,required:!0},gameStatus:{type:String,required:!0}},setup(e){let t=k(``),n=e;async function r(){await n.addAction(t.value),t.value=``}function i(e){e%=100;let t=Math.floor(e/10)%10,n=e%10,r=`–`,i=`–`;return t>0&&(r=String(t)),(n>0||t>0)&&(i=String(n)),[r,i]}return(a,o)=>(I(),L(`div`,FI,[z(kI,{class:`input-form`},{default:M(()=>[z(PI,{class:`controller-metal controller-metal-left`}),z(PI,{class:`controller-metal controller-metal-right`}),R(`div`,II,[R(`div`,LI,[R(`div`,RI,[R(`div`,zI,[R(`div`,BI,[z(A(RN),{class:`icon-for-counter`},{default:M(()=>[z(A(TI))]),_:1})]),(I(!0),L(F,null,ti(i(e.allPlacesCount),e=>(I(),L(`div`,VI,O(e),1))),256))]),R(`div`,HI,[R(`div`,UI,[z(A(RN),{class:`icon-for-counter`},{default:M(()=>[z(A($M))]),_:1})]),(I(!0),L(F,null,ti(i(e.newPlacesCount),e=>(I(),L(`div`,WI,O(e),1))),256))])]),R(`div`,GI,[Vn(R(`input`,{id:`run`,class:`game-input-run`,"onUpdate:modelValue":o[0]||=e=>t.value=e,type:`text`,placeholder:n.gameStatus==`run`?`Место назначения`:`Ходы запрещены`,disabled:n.gameStatus!=`run`},null,8,KI),[[js,t.value]])]),o[4]||=R(`div`,{class:`game-button-run-shadow`},null,-1),R(`button`,{class:`game-button-run`,type:`submit`,disabled:t.value.length==0,onClick:r},[n.gameStatus==`run`?(I(),Ea(eP,{key:0},{default:M(()=>[...o[1]||=[B(`Поехали`,-1)]]),_:1})):Pa(``,!0),n.gameStatus==`pause`||n.gameStatus==`draft`?(I(),Ea(eP,{key:1},{default:M(()=>[...o[2]||=[B(`Ждём`,-1)]]),_:1})):Pa(``,!0),n.gameStatus==`finish`?(I(),Ea(eP,{key:2},{default:M(()=>[...o[3]||=[B(`Всё`,-1)]]),_:1})):Pa(``,!0)],8,qI)])])]),_:1})]))}}),[[`__scopeId`,`data-v-a21d8a4f`]]),YI={class:`width700`},XI={class:`qr-block`},ZI={key:0,class:`qr-main-block-text`},QI={key:1,class:`qr-main-block-text`},$I={key:1,class:`edit-panel`},eL=HN(P({__name:`TeamStoryPage`,setup(e){let t=JM(),n=YM(),r=sD();aj();let i=oj(),a=i.params.id,o=i.query.password,s=k(0),c=k(),l=k({places:[]}),u=k({id:void 0,name:void 0,description:void 0,startAt:void 0,status:void 0,scenario:void 0,teams:void 0}),d=k(``),f=window.location.href,p=()=>{let e=c.value;return e?e.scrollHeight-e.scrollTop-e.clientHeight<1:!1};async function m(){let e=l.value,t=await n.GetTeamStory({id:Number(a),password:o});if(t.error!=``){r.error(t.error);return}u.value=t.game;let i=p();i&&(s.value=0);let d=l.value.places.length;l.value={places:t.story.places?.map((t,n)=>(console.log(e?.places[n]?.mode),{place:t,mode:e?.places[n]?.mode||`show`}))||[]};let f=l.value.places.length;if(f>d&&d!=0&&(s.value+=f-d),await kn(),i&&d!=0){let e=c.value;if(!e)return!1;e.scrollTop=e.scrollHeight}}m();async function h(e){let t=await n.AddTeamAction({id:Number(a),password:o,code:e});if(t.error!=``){r.error(t.error);return}await m(),d.value=``,await kn(),s.value=0}async function g(){let e=await n.DeleteLastTeamAction({id:Number(a)});if(e.error!=``){r.error(e.error);return}await m(),d.value=``}return AP(()=>{m()},2e3),(e,n)=>{let r=Zr(`n-space`);return I(),L(F,null,[R(`div`,{class:`center-block-custom bottom-margin smooth-scroll`,ref_key:`scrollContainer`,ref:c},[R(`div`,YI,[z(JI,{addAction:h,allPlacesCount:l.value.places.length,newPlacesCount:s.value,gameStatus:u.value?.status||``},null,8,[`allPlacesCount`,`newPlacesCount`,`gameStatus`]),(I(!0),L(F,null,ti(l.value.places,e=>(I(),Ea(eI,{place:e.place,mode:e.mode,"onUpdate:mode":t=>e.mode=t,key:e.place.code,addAction:h},null,8,[`place`,`mode`,`onUpdate:mode`]))),128)),l.value.places.length==0?(I(),Ea(xF,{key:0,class:`qr-main-block`},{default:M(()=>[z(r,{vertical:``},{default:M(()=>[n[0]||=R(`h2`,{class:`qr-main-block-text`},`Это код этого дела`,-1),n[1]||=R(`p`,{class:`qr-main-block-text`},`Поделись с командой`,-1),R(`div`,XI,[z(A(Vk),{value:A(f),size:300,padding:0},null,8,[`value`])]),u.value?.status==`draft`?(I(),L(`p`,ZI,`Игра скоро начнется`)):Pa(``,!0),u.value?.status==`run`?(I(),L(`p`,QI,`Игра началась!!!`)):Pa(``,!0)]),_:1})]),_:1})):Pa(``,!0),A(t).hasRole(`author`)&&l.value.places.length>0?(I(),L(`div`,$I,[z(A(RD),{justify:`end`},{default:M(()=>[z(A($),{onClick:g},{default:M(()=>[...n[2]||=[B(`Удалить последний ход`,-1)]]),_:1})]),_:1})])):Pa(``,!0)])],512),z(UN,{active:`games`})],64)}}}),[[`__scopeId`,`data-v-374fdb93`]]),tL=P({__name:`TeamStoryView`,setup(e){return(e,t)=>(I(),Ea(eL))}}),nL=P({__name:`UserAgreementView`,setup(e){return(e,t)=>(I(),L(F,null,[z(lP,{kind:`terms`}),z(UN)],64))}}),rL={class:`center-block-custom`},iL={class:`width700`},aL={class:`user-field`},oL={class:`user-field`},sL={class:`user-field`},cL=HN(P({__name:`UsersPage`,setup(e){let t=YM(),n=sD(),r=k([]);async function i(){let e=await t.GetUsers({});if(e.error!=``){n.error(e.error);return}r.value=e.users}i();async function a(e,r){let a=await t.AddUserRole({id:e,role:r});if(a.error!=``){n.error(a.error);return}await i()}async function o(e,r){let a=await t.DeleteUserRole({id:e,role:r});if(a.error!=``){n.error(a.error);return}await i()}return(e,t)=>(I(),L(F,null,[R(`div`,rL,[R(`div`,iL,[(I(!0),L(F,null,ti(r.value,e=>(I(),L(`div`,{key:e.id,class:`user-block`},[R(`div`,aL,` Позывной: `+O(e.username),1),R(`div`,oL,` Почта: `+O(e.email),1),R(`div`,sL,[z(A(jD),null,{default:M(()=>[t[0]||=B(` Роли: `,-1),(I(!0),L(F,null,ti(e.roles,e=>(I(),Ea(A(qC),{bordered:!1,key:e},{default:M(()=>[B(O(e),1)]),_:2},1024))),128))]),_:2},1024)]),z(A(RD),{justify:`end`,class:`roles-buttons-block`},{default:M(()=>[e.roles?.includes(`author`)?(I(),Ea(A($),{key:1,onClick:t=>o(e.id,`author`)},{default:M(()=>[...t[2]||=[B(`Забрать роль автора`,-1)]]),_:1},8,[`onClick`])):(I(),Ea(A($),{key:0,onClick:t=>a(e.id,`author`)},{default:M(()=>[...t[1]||=[B(`Сделать автором`,-1)]]),_:1},8,[`onClick`])),e.roles?.includes(`organizer`)?(I(),Ea(A($),{key:3,onClick:t=>o(e.id,`organizer`)},{default:M(()=>[...t[4]||=[B(`Забрать роль организатора`,-1)]]),_:1},8,[`onClick`])):(I(),Ea(A($),{key:2,onClick:t=>a(e.id,`organizer`)},{default:M(()=>[...t[3]||=[B(`Сделать организатором`,-1)]]),_:1},8,[`onClick`]))]),_:2},1024)]))),128))])]),z(UN,{active:`users`})],64))}}),[[`__scopeId`,`data-v-4af0a140`]]),lL=P({__name:`UsersView`,setup(e){return(e,t)=>(I(),Ea(cL))}}),uL=HM({history:uM(`/`),routes:[{path:`/`,name:`home`,component:VP},{path:`/login`,name:`login`,component:iF},{path:`/office`,name:`office`,component:dF},{path:`/user-agreement`,name:`user-agreement`,component:nL},{path:`/privacy-policy`,name:`privacy-policy`,component:fF},{path:`/consent`,name:`consent`,component:uP},{path:`/games`,name:`games`,component:_P},{path:`/games/:id`,name:`game`,component:BP},{path:`/team-story/:id`,name:`team-story`,component:tL},{path:`/scenarios`,name:`scenarios`,component:hI},{path:`/catalog`,name:`catalog`,component:QN},{path:`/scenarios/:id/editor`,name:`scenario-editor`,component:oI},{path:`/scenarios/:id`,name:`scenario`,component:CI},{path:`/users`,name:`users`,component:lL}]}),dL=Ls(UM);dL.use(ic()),dL.use(uL),dL.mount(`#app`); \ No newline at end of file diff --git a/dist/index.html b/dist/index.html index 6497244..b049d0a 100644 --- a/dist/index.html +++ b/dist/index.html @@ -5,8 +5,8 @@ Вечерний детектив - - + +
diff --git a/src/api/archive_client.ts b/src/api/archive_client.ts new file mode 100644 index 0000000..f7b4751 --- /dev/null +++ b/src/api/archive_client.ts @@ -0,0 +1,103 @@ +import { useAuthStore } from '@/stores/auth' + +import { getURL } from './generated/crabs/evening_detective_server/client' + +export type DownloadArchiveResult = { + blob: Blob + filename: string +} + +export type UploadArchiveResult = { + id: number | null + error: string | null +} + +// Клиент для бинарных операций со сценарием (ZIP-архив). Сгенерированный +// HTTP-хендлер всегда парсит ответ как JSON, поэтому для архивов используем +// сырой fetch: скачивание отдаёт байты архива, загрузка принимает их напрямую. +export function getArchiveClient() { + const authStore = useAuthStore() + return buildArchiveClient(authStore.refreshTokenAction, authStore.getToken) +} + +function buildArchiveClient( + refreshTokens: () => Promise, + getToken: () => string | null, +) { + async function request(path: string, init: RequestInit): Promise { + const headers: Record = {} + const token = getToken() + if (token) { + headers['Authorization'] = `Bearer ${token}` + } + + let response = await fetch(`${getURL()}/${path}`, { + ...init, + headers: { ...headers, ...(init.headers as Record) }, + }) + + // Токен протух — обновляем и повторяем запрос один раз. + if (response.status == 401) { + await refreshTokens() + const newToken = getToken() + if (newToken) { + headers['Authorization'] = `Bearer ${newToken}` + } + response = await fetch(`${getURL()}/${path}`, { + ...init, + headers: { ...headers, ...(init.headers as Record) }, + }) + } + + return response + } + + async function downloadScenarioArchive(id: number): Promise { + const response = await request(`api/scenarios/${id}/archive`, { method: 'GET' }) + if (!response.ok) { + throw new Error(await gatewayErrorMessage(response)) + } + const blob = await response.blob() + const filename = + parseContentDispositionFilename(response.headers.get('Content-Disposition')) || `scenario-${id}.zip` + return { blob, filename } + } + + async function uploadScenarioArchive(file: File): Promise { + const contentType = file.type || 'application/zip' + const response = await request('api/scenarios/archive', { + method: 'POST', + headers: { 'Content-Type': contentType }, + body: file, + }) + + const data = await response.json().catch(() => null) + if (!response.ok) { + return { id: null, error: data?.message || `Ошибка сервера (${response.status})` } + } + + const error = typeof data?.error === 'string' && data.error !== '' ? data.error : null + return { id: typeof data?.id === 'number' ? data.id : null, error } + } + + return { downloadScenarioArchive, uploadScenarioArchive } +} + +// Извлекает имя файла из Content-Disposition: attachment; filename="name.zip" +function parseContentDispositionFilename(value: string | null): string { + if (!value) { + return '' + } + const match = value.match(/filename="?([^";]+)"?/i) + const filename = match ? match[1] : '' + return filename.replace(/[\\/:*?"<>|]/g, '_') +} + +// Ошибки grpc-gateway приходят JSON-объектом {"code": ..., "message": ...} +async function gatewayErrorMessage(response: Response): Promise { + const data = await response.json().catch(() => null) + if (data && typeof data.message === 'string' && data.message !== '') { + return data.message + } + return `Ошибка сервера (${response.status})` +} diff --git a/src/components/ScenariosEditorPage.vue b/src/components/ScenariosEditorPage.vue index 23cba79..f34d8ad 100644 --- a/src/components/ScenariosEditorPage.vue +++ b/src/components/ScenariosEditorPage.vue @@ -6,6 +6,7 @@ import { NAlert, NCard, NFlex, NInput, NModal, NSpace, NTag, NText, NUpload, NUp import { ref } from 'vue' import { useRoute } from 'vue-router' +import { getArchiveClient } from '@/api/archive_client' import { getAuthClient } from '@/api/auth_client' import type { Place, Scenario } from '@/api/generated/crabs/evening_detective_server' import HeaderMenu from '@/components/HeaderMenu.vue' @@ -15,12 +16,14 @@ import { useAuthStore } from '@/stores/auth' const authStore = useAuthStore() const client = getAuthClient() +const archiveClient = getArchiveClient() const route = useRoute() const scenarioId = route.params.id const showSettingsModal = ref(false) const statusScenarioName = ref('') const deletedScenarioName = ref('') +const isDownloadingArchive = ref(false) const message = useMessage() @@ -105,6 +108,27 @@ async function draftScenario(id: number) { showSettingsModal.value = false } +async function downloadArchive() { + isDownloadingArchive.value = true + try { + const { blob, filename } = await archiveClient.downloadScenarioArchive(scenario.value.id!) + const url = URL.createObjectURL(blob) + const link = document.createElement('a') + link.href = url + link.download = filename + document.body.appendChild(link) + link.click() + link.remove() + // Отзываем URL после того как браузер начал скачивание + setTimeout(() => URL.revokeObjectURL(url), 1000) + message.success('Архив сценария скачан') + } catch (err) { + message.error(err instanceof Error ? err.message : 'Не удалось скачать архив') + } finally { + isDownloadingArchive.value = false + } +} + async function uploadFile(file: File | null, filename: string): Promise { if (!file) { return '' @@ -370,6 +394,15 @@ function getRandomComplimentForNastya() { Сохранить изменения +
+

Архив сценария

+

+ Скачайте сценарий ZIP-архивом (scenario.json + изображения) и импортируйте его в другом аккаунте. +

+ + Скачать архив (.zip) + +

Создать тестовую игру

@@ -443,6 +476,11 @@ function getRandomComplimentForNastya() { margin-top: 20px; } +.settings-hint { + color: #999; + margin-bottom: 10px; +} + .settings-hr { margin: 20px 0; } diff --git a/src/components/ScenariosPage.vue b/src/components/ScenariosPage.vue index d75c2ea..825d179 100644 --- a/src/components/ScenariosPage.vue +++ b/src/components/ScenariosPage.vue @@ -1,14 +1,18 @@ @@ -51,6 +86,17 @@ getScenarios() +
+
+ + + +
+
+

Импортировать из архива

+
+
+
@@ -86,6 +132,37 @@ getScenarios() + + + + +

+ Выберите ZIP-архив сценария (файл scenario.json + папка images). Архив можно получить + через «Скачать архив» в настройках сценария. +

+ + + + Щелкните или перетащите ZIP-архив в эту область + + + + +
+
+ @@ -126,6 +203,16 @@ getScenarios() background-color: #111; } +.import-icon svg { + height: 100px; + width: 100px; +} + +.import-hint { + color: #aaa; + margin-bottom: 16px; +} + .scenario-image { background-size: cover; background-position: center;