From a4cd465bd7840d8a93f484f95d86ef6730e959e5 Mon Sep 17 00:00:00 2001 From: Sander Vonk <10799950+sandervonk@users.noreply.github.com> Date: Mon, 2 Sep 2024 14:10:01 -0400 Subject: [PATCH] Updates --- 404.html | 6 +- css/{368.e8fbe82b.css => 383.cfa0386b.css} | 2 +- docs/global.html | 2 +- docs/main.actions.html | 2 +- docs/main.getters.html | 2 +- docs/main.state.html | 2 +- docs/store_index.js.html | 5 + index.html | 6 +- js/239.4117d4e9.js | 2 - js/239.4117d4e9.js.map | 1 - js/239.a8814a0a.js | 2 + js/239.a8814a0a.js.map | 1 + js/{368.5c753034.js => 383.f72461fc.js} | 4 +- ...68.5c753034.js.map => 383.f72461fc.js.map} | 2 +- js/chunk-vendors.4601cf94.js.map | 1 - ....4601cf94.js => chunk-vendors.8480e6a0.js} | 340 +++++++++--------- js/chunk-vendors.8480e6a0.js.map | 1 + js/main.14c5bab8.js | 2 + js/main.14c5bab8.js.map | 1 + js/main.cf59faef.js | 2 - js/main.cf59faef.js.map | 1 - service-worker.js | 2 +- service-worker.js.map | 2 +- 23 files changed, 198 insertions(+), 193 deletions(-) rename css/{368.e8fbe82b.css => 383.cfa0386b.css} (83%) delete mode 100644 js/239.4117d4e9.js delete mode 100644 js/239.4117d4e9.js.map create mode 100644 js/239.a8814a0a.js create mode 100644 js/239.a8814a0a.js.map rename js/{368.5c753034.js => 383.f72461fc.js} (99%) rename js/{368.5c753034.js.map => 383.f72461fc.js.map} (96%) delete mode 100644 js/chunk-vendors.4601cf94.js.map rename js/{chunk-vendors.4601cf94.js => chunk-vendors.8480e6a0.js} (83%) create mode 100644 js/chunk-vendors.8480e6a0.js.map create mode 100644 js/main.14c5bab8.js create mode 100644 js/main.14c5bab8.js.map delete mode 100644 js/main.cf59faef.js delete mode 100644 js/main.cf59faef.js.map diff --git a/404.html b/404.html index ce64de78..d1246c3e 100644 --- a/404.html +++ b/404.html @@ -1,4 +1,4 @@ -MV Task Tracker | Home
\ No newline at end of file + document.querySelector(".versioning").remove(); \ No newline at end of file diff --git a/css/368.e8fbe82b.css b/css/383.cfa0386b.css similarity index 83% rename from css/368.e8fbe82b.css rename to css/383.cfa0386b.css index 99c9de2c..28e7507f 100644 --- a/css/368.e8fbe82b.css +++ b/css/383.cfa0386b.css @@ -1 +1 @@ -.sidebar_toggle[data-v-2e4cb15c]{display:none;position:absolute;bottom:calc(var(--padding-sidebar)/1.5);left:calc(var(--padding-sidebar)/1.5);height:var(--size-sidebar-button);width:var(--size-sidebar-button);cursor:pointer;z-index:1;border-radius:calc(var(--radius-sidebar) - var(--padding-sidebar)/3);border:none;background-color:var(--color-on-bg);padding:0}.sidebar_toggle.right[data-v-2e4cb15c]{left:unset;right:calc(var(--padding-sidebar)/2)}.sidebar_toggle .arrow-icon[data-v-2e4cb15c]{filter:var(--filter-icon)}.arrow-icon[data-v-2e4cb15c]{height:100%;width:100%;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAE8SURBVHgB7ZbNcYMwEEaXkCMHl0A6cAlOCTkx3HAHdGBSgUuQc+KviLgTu4Q0AOTbmRyUsQ9atNz2zTCgHQFvJO1KRIZhGIZhSHDO7cZxPJASL6RI27Z5lmW3ZVm+h2FwpICqYJqmB8jt/ppV3/dnikRVcJqmu99OkqSGZEMRqAqWZXmF5NGPQfIUI6kqyEDygmlu/BhLdl1X0woS2giM2glijR+DeFUUxRcJEAkiM/f46Rk/ygNfeeiHJfDOS4ECeSUBkHOQ21MEyHQuP2+h/UVr0Cshq8E3fiT9RSMIPnC5UFGMeP4kdiQBWyZJw9nrx9YkiXqZYZ7JzfNcS+UY9RFEple4/duHuS5C7pNWoCrIhwVk6c2Pxcgx6ocFvx0rx2gfFq6QuvMz1twlVm4TeJp5xyHDMAzDMEL4Bba/hFzaarEOAAAAAElFTkSuQmCC);background-image:url(/img/arrow-right.b158c98b.svg);background-repeat:no-repeat;background-size:contain;background-position:50%;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:none}.sidebar_toggle.right .arrow-icon[data-v-2e4cb15c]{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAFQSURBVHgB7ZbBbYMwFIYfpdy7QekG3SDqEAghDiUbNBOEbNANSE8IOHSEthOkIzACdwT0t0QkWvlg48ep75MiK8bAJ9vvN0SCIAiCIJhQ1/VjWZYhMXNDDFRVdUZz8X3/g1vSWRByued5z/PfMAiCHTHiJDjLHZd9fd9/ESOrBXVy0zRlSZK0xMgqwaZpXjRyeRzHb8SMR5agWjM0xbJvljvRBlgJqihBc9FcasmMDnt0n6bpt+F4uiULsKwFZkt3KSRDUOXvaB5Mx1vtQcjdkSN4Rmcz3moGh2HYqzDWvLQ1uR8r0OJ3IAusiwQnRQbJv0VyQpHktAHWMYOcO4/j+GsWVOSoXKQNsJ7BKxA6Qixf9qmg5s7C1YIKnST26RNm+ZOYcDqLVThD8HXZhxi5J0acv2aiKDpgaa/L2nF/LLCBU2ZXFIVzTgqCIAjCP+MHRLZ8H+zjfrcAAAAASUVORK5CYII=);background-image:url(/img/arrow-left.f0f6e9ed.svg)}@media (max-width:1200px){.sidebar_toggle[data-v-2e4cb15c]{display:block}}.class_list_header[data-v-67c6aa9f]{display:flex;flex-flow:row nowrap;align-items:center;justify-content:stretch;margin:0;height:27px;width:100%;-webkit-user-select:none;-moz-user-select:none;user-select:none;gap:var(--spacing-classes)}.class_list_header h5[data-v-67c6aa9f]{flex-grow:1}.class_list_header button[data-v-67c6aa9f]{background-color:var(--color-on-bg);padding:var(--spacing-classes-alt) calc(var(--spacing-classes-alt)*2);border-radius:5px;border:none;height:100%}.class_list[data-v-67c6aa9f]{margin:auto 0;width:100%;flex-grow:1;display:flex;flex-flow:column nowrap;align-items:stretch;justify-content:center;flex-basis:200px;flex-shrink:1}.class_list__not_empty[data-v-67c6aa9f]{flex-shrink:1;padding-bottom:40px}h5[data-v-67c6aa9f]{font-size:17px;font-weight:600;letter-spacing:.015rem;line-height:27px;text-align:center;border-radius:8px;-webkit-user-select:none;-moz-user-select:none;user-select:none}.class_list_hr[data-v-67c6aa9f]{margin:5px 0;border:none;border-top:2px solid var(--color-task-separator)}.classes_container_class[data-v-67c6aa9f]{display:flex;flex-flow:row nowrap;align-items:center;justify-content:stretch;margin:var(--spacing-classes) 0;-webkit-user-select:none;-moz-user-select:none;user-select:none;border-radius:5px;padding:var(--spacing-classes-alt);color:var(--color-text);text-decoration:none;font-weight:500}.classes_container_class[data-v-67c6aa9f]:hover{background-color:var(--color-on-bg)}.filtering .classes_container_class[data-v-67c6aa9f]:not(.classes_container_class__add_class){opacity:.7}.classes_container_class.classes_container_class__dragging[data-v-67c6aa9f],.filtering .classes_container_class.filter_active[data-v-67c6aa9f]{background-color:var(--color-class-alt);opacity:1}.classes_container_class__add_class[data-v-67c6aa9f],.classes_container_class__create_class[data-v-67c6aa9f]{background-color:var(--color-on-bg);padding:var(--spacing-classes-alt);border-radius:10px;cursor:pointer}.classes_container_class__add_class .class_name[data-v-67c6aa9f],.classes_container_class__create_class .class_name[data-v-67c6aa9f]{font-size:.8em;opacity:.7;text-align:center;flex-grow:1;padding-right:35px}.classes_container_class[data-v-67c6aa9f]>*{-webkit-user-select:none;-moz-user-select:none;user-select:none}.class_container__empty[data-v-67c6aa9f]{font-size:.8em;padding:15px 20px;border-radius:10px;text-align:center}.class_swatch__add_icon[data-v-67c6aa9f]{width:100%;height:100%;filter:var(--filter-icon);background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAADgSURBVHgB7ZfNDYMwDIWdTMBywLHdgHYDOkEZgSvJcpkgqXuo1J9UNfKrRCt/F5CFzFOQvwQiwzAMY9M4ArEsy+i9H673Oee57/sjAYAEDCFMfBkeGjs3tm17IiWeAHCY3XOtlHIgAJCAHKaplBsCAAn4TSygls0HFGvm5rk3AyF/oXNpjSdFAWue0yL1pOgT1zynRerJvxmSicDwCs6S58RDEmM8c9M96XeIxH0mHhLRPo06LJRaves6dX8TtRYLqAV1YE2VciIAqBV88aTUc5+A/TTdeZLWeM4wDMP4cS7cl04e+z7zNQAAAABJRU5ErkJggg==);background-image:url(/img/add.69c298e9.svg);background-size:contain;background-repeat:no-repeat;background-position:50%}.class_swatch__icon[data-v-67c6aa9f]{opacity:0;width:100%;height:100%;filter:var(--filter-swatch-icon);background-size:16px;background-repeat:no-repeat;background-position:50%;transition:opacity .2s ease-in-out}.class_swatch_remove__icon[data-v-67c6aa9f]{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAABUSURBVHgB7dPBCYAwEETRj42bDqIlWKElaLyKBzeyIOE/mOPCMLAgSZIkDWZu2VuOYK6bSrJKvNg9hUQ9yz0t+drEz0ULrny3kWyh/0kKkiRJ0khOpq1BxnxINkMAAAAASUVORK5CYII=);background-image:url(/img/remove.3efba5d3.svg)}.class_swatch_edit__icon[data-v-67c6aa9f]{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAADBSURBVHgB7dbBDYMwDEbhN0JH8GZlpG4QNmEERmAERmiDFC6VSVKpYAv5Sf8tQt8BRCCKoqiV5E15a1nKe+AkyVvy3l+bcYAUdJwLpFDHmSLlADcWkClSKjgKREO+uCBp4KggV05OOH7nnsr5pJwzwWlIDZc4KaHva92RGm4pz7kMN+YN9KFNcHsDjnEtpAvcVgpc4P7Q7BmHd5wGdIWDNtAUB3WgOQ76/qlmuF+AJritFce4rYH6nW/CEBdFUXT3Pq3hFbq8LkYgAAAAAElFTkSuQmCC);background-image:url(/img/edit.8aa929f0.svg)}.class_swatch:active .class_swatch__icon[data-v-67c6aa9f],.class_swatch:hover .class_swatch__icon[data-v-67c6aa9f]{opacity:1}.class_swatch[data-v-67c6aa9f]{display:inline-block;width:20px;height:20px;border-radius:30%;margin-right:15px;background-color:var(--color-class);filter:var(--filter-calendar-task);flex:0 0 auto}.classes_container_class__add_class .class_swatch[data-v-67c6aa9f],.classes_container_class__create_class .class_swatch[data-v-67c6aa9f]{background-color:var(--color-bg);filter:none}.class_name[data-v-67c6aa9f]{font-size:14px;font-weight:500;letter-spacing:.015rem;text-align:left}.action_add_shortcut_hint.out{animation:slideOut .5s forwards}.teacher_actions{display:flex;flex-flow:column nowrap;align-items:stretch;justify-content:center;flex-grow:0;flex-shrink:1;flex-basis:100px;margin:10px 0}.teacher_actions .teacher_action{display:flex;flex-flow:row nowrap;align-items:center;-webkit-user-select:none;-moz-user-select:none;user-select:none;justify-content:flex-start;flex-grow:0;height:var(--height-sidebar-action);width:100%;cursor:pointer;background-color:var(--color-bg);border-radius:10px;padding:10px;padding-left:0}.teacher_actions .teacher_action[disabled=true]{cursor:not-allowed;opacity:.5}.teacher_actions .teacher_action[disabled=true] *{pointer-events:none}.teacher_actions .teacher_action:not([disabled=true]):hover{background-color:var(--color-on-bg)}.teacher_actions .teacher_action:not(:first-child){margin-top:15px}.teacher_action__icon{display:block;flex-grow:0;flex-shrink:0;flex-basis:40px;height:40px;width:40px;background-size:40px 40px;background-repeat:no-repeat;background-position:50%;background-color:var(--color-on-bg);border-radius:10px;margin-right:10px;scale:.9;transition:scale .1s ease-out}.teacher_actions .teacher_action:not([disabled=true]):hover .teacher_action__icon{scale:.8}.teacher_action__icon>*{flex-shrink:0;filter:var(--filter-icon)}.icon__add{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAADFSURBVHgB7dTRCYMwEAbgM5O4STuFIW92ktpJ6ltIpmg3cZEkTYpPRdsrOUHw/yAQOQk/HPxEAABwHN77vhwS1JCQOdh9/rx0XTeSAEVCUkrt0r2WWMCtIGAtBKy1+4DsHiw9960+lFKnPD+/H22aR4zxufZvnk/cnmQF/ChhKawyZ604hEDSuG+yV2yt7fMa27X5PyvOs8kYM5JkwF+cc0MOdi33HPSmtR5IAGqmFgLWQsBaYgFLty3dd6WUeTkEAADH8QJjsU9mRbJObAAAAABJRU5ErkJggg==);background-image:url(/img/add.6b7bc49a.svg)}.icon__create{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAHASURBVHgB7ZfBbcIwFIZfQjghpIxAN2gnKJ2gzQEkToUNYALoBIwQekKCQ+kGbNBu0IwQCcEN6P9oVAUXwosdUCX8ScEGO/bv38/yg8hisViuG4cMmU6n/e1220XVV5oix3FGjUbjhQzQFhiGoV+pVIaotrP6ua47WiwWvU6nE5MGYoHj8bjmeV4It25p3614vV4HrVZrrvSvl0qlN/rr7Az9e+gfUVECWRwm+1AnwxbOIbjXbDY/j72XLKquNPGi7iQiPRJQLpeHm83Gx0Svq9WqK92uRMAD7QseYJxnFp5uO4ZLAiDuKSkHurFEiWAI4wNFSaicRORgegIuJ5PJF4qa0hxhq2+OtP22B0EQow9/90mAyMED1NIT45nRYVHG5HJQYYSnjifAYXnElu3CgF2iAtF1kE9wvFwu71C9h7gBnQltB/n2qFarPg5OO/37qRiknOg6GPGHIi6iM6DlYJYT/yYGL4WWgxlxlsVFY/BiFB6DRWNjMMV1xyCnWD6n+ZxumcQg54R5+oscxL27y5hxtQ3zTpCGF4jMvM913ELvkneMUn4DxCm/yEEeiAekn7zPSBj/j5GKs1gsFgvRN7YzxcfQl3i5AAAAAElFTkSuQmCC);background-image:url(/img/create.4ae5f24c.svg)}.left-bar[data-v-eb5465b8]{border-radius:0 var(--radius-sidebar) var(--radius-sidebar) 0}@media (min-width:1270px) and (max-height:1200px){main.portal .portal_sidebar[data-v-eb5465b8]{border-right:3px solid var(--color-on-bg)}}@media (max-width:1270px){main.portal .portal_sidebar[data-v-eb5465b8]{transform:translate(calc(-100% + 15px))}main.portal .portal_sidebar[data-v-eb5465b8]:hover{transform:translate(calc(-100% + 25px))}main.portal .portal_sidebar[data-v-eb5465b8]:not(.active):not(.paged) *{pointer-events:none!important;-webkit-user-select:none!important;-moz-user-select:none!important;user-select:none!important}}.theme_button[data-v-eb5465b8]{bottom:calc(var(--padding-sidebar)/1.5);left:calc(var(--padding-sidebar)/1.5);position:absolute}.sidebar_overflow[data-v-eb5465b8]::-webkit-scrollbar{display:none}.sidebar_overflow[data-v-eb5465b8]{overflow-y:auto;display:flex;flex-flow:column nowrap;width:100%;height:100%;padding:var(--padding-sidebar);padding-bottom:calc(var(--padding-sidebar) + var(--height-sidebar-action))}.task_card{display:flex;flex-flow:row nowrap;justify-content:stretch;align-items:stretch;height:var(--height-task-card);margin:10px 0;color:inherit!important}.task_card,.task_card *{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.task_card_icon{height:100%;width:var(--height-task-card);border-radius:30%;border:solid 2px var(--color-calendar-task);box-sizing:border-box;filter:var(--filter-calendar-task);overflow:hidden;flex-shrink:0}.task_card_icon_container{height:100%;width:100%;filter:var(--filter-task-card-icon);background-color:var(--color-task-card-icon)}.task_card_icon_container__img{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAYAAADhAJiYAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAHlSURBVHgB7ZY/VgIxEMZn0d5wAllOADfAE6ilHZwAvAGeQDiBtlZ4A/AEUNrtlnaGzm79Jsz6Am9xk+C+Z5Hfe3lZZvPnYzKzGaJIJNIsCQXSAejGSZJwr0p7URQbdPMcUABBglgMhCz58ciQHMKuQkQ5CcL+PQh4tASYHpvOYJ/ZY2EbwjYthUm/gf3eRWCtIPHGmnbHoqUZMVh/fmTOkHbHqWSemSte29AppGm6QCuwyZgC6Xa7E14DbVk3ttZDWCRDp7Isa/NvPj6yghho/tcVdgPerWSdTx6LddLf9jsnN7SIGUgw7wF7W46VKt715Zg0OeAqqArOpAcIeUK7wPMItsuDMdo3ZkIEmZTmB8m8nTHPn+kPCBHUQRu3Wq0Ewm5KIwcufl8fjOXMGkGs03GFCDILwzO8ub3plkVS9YdySo7x4y1IsokD+KK0sRj2AAevbbffkQdBQY2N7M+FghgldjoVL0Fyhaw95/R9Ms3XQ5xhr1TxATzCz1XTiCCJh1tqEO8YkjvN1UPMvLG0lxia+czBEa/QvbmOdxVkPCJpPyB3tlZAl+XLaXDJIOXHhAIpyw+ssagb61Kg9eSG3yvQPLALtH5d1XhGNWitP5RSL6xNKkBfvqTwv4OWd4pEIpF/zjd0jOVFNTKKzwAAAABJRU5ErkJggg==);background-image:url(/img/test-icon.d01e01a2.svg);background-repeat:no-repeat;background-size:contain;background-position:50%;padding:var(--padding-task-card-icon);filter:var(--filter-icon);height:100%;width:100%}.task_card_details{padding-left:20px;flex-grow:1;display:flex;flex-flow:column nowrap;align-items:stretch;justify-content:space-evenly}.task_card_details>*{white-space:nowrap;overflow:hidden;max-width:100%;text-overflow:ellipsis}.task_card_details__title{font-size:14px;font-weight:500}.task_card_details__extended{opacity:.5;font-size:12px;font-weight:400;display:flex;flex-flow:row nowrap;align-items:center;justify-content:flex-start}.task_card_details__extended__date{flex:auto 0 1}.task_card_details__extended__type{flex:0px 1 1}.upcoming-group-move[data-v-73205d16]{transition:transform .2s ease-out}.upcoming-group-enter-active[data-v-73205d16]{animation:slide-in-73205d16 .2s ease-out}.upcoming-group-leave-active[data-v-73205d16]{animation:slide-out-73205d16 .2s ease-out}@keyframes slide-in-73205d16{0%{scale:.8;opacity:0;margin-bottom:-50px}to{scale:1;opacity:1;margin-bottom:0}}@keyframes slide-out-73205d16{0%{scale:1;opacity:1;margin-bottom:0}to{scale:.8;opacity:0;margin-bottom:-50px}}.tasks_container_task[data-v-73205d16]{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;margin:0;transform-origin:top center}.upcoming_tasks[data-v-73205d16]{margin:auto 0;width:100%;flex-grow:1;display:flex;flex-flow:column nowrap;align-items:stretch;justify-content:center;flex-basis:200px;flex-shrink:1}.tasks_container[data-v-73205d16]{display:flex;flex-flow:column nowrap;gap:10px;margin-top:10px;max-height:290px}.tasks_container_task[data-v-73205d16]{flex:0 0 40px;height:40px}.upcoming_tasks__not_empty[data-v-73205d16]{flex-shrink:1;padding-bottom:40px}h5[data-v-73205d16]{font-size:17px;font-weight:600;letter-spacing:.015rem;line-height:27px;text-align:center}.upcoming_tasks__title[data-v-73205d16]{color:inherit}.upcoming_tasks_hr[data-v-73205d16]{margin:5px 0;border:none;border-top:2px solid var(--color-task-separator)}.loading_tasks[data-v-73205d16]{min-width:100%;max-height:150px}.right-bar[data-v-47567720]{border-radius:var(--radius-sidebar) 0 0 var(--radius-sidebar)}.sidebar_first_block[data-v-47567720]{display:flex;flex-flow:row nowrap;align-items:center;justify-content:stretch;margin-bottom:var(--padding-sidebar);gap:5px;width:calc(100% + 20px);padding:10px 8px 10px 10px;margin-top:-10px;margin-left:-10px;background:var(--color-on-bg);border-radius:calc(var(--radius-sidebar) - 10px)}.active_acc_icon[data-v-47567720],.linked_acc_icon[data-v-47567720]{flex:0 0 30px;height:30px;width:30px;display:flex;align-items:center;justify-content:center}.linked_acc_icon[data-v-47567720]{filter:var(--filter-icon)}.active_acc_icon[data-v-47567720]{border-radius:calc(var(--radius-sidebar) - var(--padding-sidebar)/2);overflow:hidden;margin-right:5px;border:solid 2px var(--color-on-bg)}.auth_logout[data-v-47567720]{flex:1 1 auto}.auth-action[data-v-47567720]{cursor:pointer}.can_logout[data-v-47567720]{height:30px;font-size:18px;line-height:30px;color:var(--color-text);font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:space-between;-webkit-user-select:none;-moz-user-select:none;user-select:none}.can_logout[data-v-47567720]:after{content:"";height:30px;width:30px;display:inline-block;filter:var(--filter-icon);background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAFiSURBVHgB7ZiBTcMwEEUfiAHYoMcGZQLCBJQJCpMgJmCEdgQ2gA1gg5oJYAPwKamc0tL4kthA5Sd9yars6MvnO58LhULhf3NkmCvYcGSi8nrx+jRq5TUjMTPsxr6rYgBdIdZdkGa8JD5s4nXTjF+9zkmAEHZhgZ1Fa/2EnhxHznPYcYxArMFfI7dBTToNvTACQjhDd9iZUifZU+u3d0IJEgYiDDO4i3Y9jTKZO8TXhOQR6t2VfQtyG3Rel2ybPP1pwQnjo2fvqmPOM6GQC7VJNf6BAaHfGVzR70p82PWxP18HU4RYQzXvmCOEECt6X99jRBi/zKy/2z4Ge8tN7hALm6XFsZnVW+Q2aDKnpDQo1Fdb+6pb1ztHhDklpcF5Y6gi9IO31I1vlDklRRbv47FRNAfTDwp2hBHoejRpezRtxkv6PZqc1xmJqBj+7MzyNu7TAOjuXzAQy18fE2y8USgUCnwBzD2Oux/Wv+sAAAAASUVORK5CYII=);background-image:url(/img/logout.3e85d292.svg);background-repeat:no-repeat;background-size:contain;background-position:100%}@media (min-width:1270px) and (max-height:1200px){main.portal .portal_sidebar[data-v-47567720]{border-left:3px solid var(--color-on-bg)}}@media (max-width:1270px){main.portal .portal_sidebar[data-v-47567720]{transform:translate(calc(100% - 15px))}main.portal .portal_sidebar[data-v-47567720]:hover{transform:translate(calc(100% - 25px))}main.portal .portal_sidebar[data-v-47567720]:not(.active):not(.paged) *{pointer-events:none!important;-webkit-user-select:none!important;-moz-user-select:none!important;user-select:none!important}}.admin_button[data-v-47567720],.settings_button[data-v-47567720]{position:absolute;display:block;bottom:calc(var(--padding-sidebar)/1.5);right:calc(var(--padding-sidebar)/1.5);z-index:1}.admin_button[data-v-47567720]{right:calc(var(--padding-sidebar)/.75 + var(--size-sidebar-button))}.sidebar_overflow[data-v-47567720]::-webkit-scrollbar{display:none}.sidebar_overflow[data-v-47567720]{overflow-y:auto;display:flex;flex-flow:column nowrap;width:100%;height:100%;padding:var(--padding-sidebar);padding-bottom:calc(var(--padding-sidebar) + var(--height-sidebar-action))}.calendar_width,main.portal_main_block{max-width:750px}@media (max-width:1270px){.calendar_width,main.portal_main_block{max-width:1000px}}@media (max-width:1270px) and (min-height:725px) and (max-height:1100px){.calendar_width,main.portal_main_block{max-width:calc(130vh - 50px)}}@media (min-height:900px) and (max-height:1200px){.calendar_width,main.portal_main_block{max-width:calc(100vh - 150px)}}@media (min-height:1200px){.calendar_width,main.portal_main_block{max-width:1300px}}@media (min-width:1270px) and (max-height:800px){main.portal_main_block{background-color:var(--color-calendar-alt)}}main.portal_main_block{width:100%;margin:0 auto;box-sizing:border-box;padding:var(--padding-calendar);padding-top:calc(var(--padding-calendar)*1.5 + var(--size-calendar-header));position:relative;background-color:var(--color-calendar);border-radius:var(--radius-calendar);box-shadow:var(--shadow-highlight);overflow:hidden}@media (max-width:600px),(min-width:1270px) and (max-height:1200px){main.portal_main_block{border:3px solid var(--color-on-bg);box-shadow:none}}@media (max-width:630px){main.portal_main_block{padding:calc(var(--padding-calendar) - var(--spacing-calendar-day))}}@media (min-width:631px){.parent.simplified .portal_main_block,.parent.simplified .study{--padding-calendar:30px;padding:15px;padding-top:calc(30px + var(--size-calendar-header))}}.portal_main_block_header{position:absolute;top:calc(var(--padding-calendar)/2);right:calc(var(--padding-calendar)/2);height:var(--size-calendar-header);width:calc(100% - var(--padding-calendar));display:flex;flex-flow:row nowrap;justify-content:space-between;align-items:stretch}.portal_main_block_header__left{height:var(--size-calendar-header);display:flex;flex-flow:row wrap;justify-content:flex-start;align-items:flex-start;gap:10px}.portal_main_block_title{font-size:1rem;font-weight:600;color:var(--color-on-calendar);background-color:var(--color-calendar-header);border-radius:calc(var(--radius-calendar)/2);padding:0 calc(var(--padding-calendar)/2);display:flex;flex-shrink:0;justify-content:center;align-items:center;-webkit-user-select:none;-moz-user-select:none;user-select:none;height:var(--size-calendar-header)}.portal_main_block_actions_wrapper{display:flex;flex-flow:row wrap;justify-content:flex-end;align-items:flex-start;gap:10px}.portal_main_block_actions{display:flex;flex-flow:row nowrap;flex-grow:0;flex-basis:calc(var(--size-calendar-header)*3);flex-shrink:0;justify-content:center;align-items:center;box-sizing:border-box;height:var(--size-calendar-header);border-radius:calc(var(--radius-calendar)/2);overflow:hidden}.portal_main_block_actions.portal_main_block_actions_freeform{flex:1 1 auto;height:unset}@media (max-width:299px){.portal_main_block_actions.portal_main_block_actions_freeform{flex-wrap:wrap}}.portal_main_block_action{height:var(--size-calendar-header);width:var(--size-calendar-header);background-color:var(--color-calendar-header);border:none;padding:0}.portal_main_block_actions_freeform{justify-content:stretch}.portal_main_block_action.portal_main_block_action_freeform{width:unset;padding:0 calc(var(--padding-calendar)/2);flex-grow:1;text-align:center}.portal_main_block_action.portal_main_block_action_alt{border-radius:calc(var(--radius-calendar)/2)}.portal_main_block_action__text{font-size:.9em;font-weight:600;color:var(--color-on-calendar);-webkit-user-select:none;-moz-user-select:none;user-select:none}.portal_main_block_action__text.active{color:var(--color-on-calendar-header-alt)}.portal_main_block_action.active,.portal_main_block_action:hover{background-color:var(--color-calendar-header-hover)}.portal_main_block_action>div{width:100%;height:100%;display:flex;flex-flow:row nowrap;justify-content:center;align-items:center;cursor:pointer;filter:var(--filter-icon);background-repeat:no-repeat;background-position:50%;background-size:contain}.portal_main_block_action .expand-icon{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAEsSURBVHgB7ZbLDYMwDIbNYwBGoJuUJZA4djKOSCzBKM0IHYBHbalIKQrEebUXfxdysJQf/8kfAwiCIAhCCBlEYhiGuizLftu2+qouyzI1z/Oj6zoFDEqIxEfc3VZHP1AURY/LBhjkEAnc2KW85hZG6+CyLA/qjG4x2lnhp4IAop3BI3QmUfAE5m6ptm1vwCCaxToWcU5EF2gSh7YrtPsFHkQVeCZuXdcGv14C2Zdkzzlam3LsShzVjuMIPrAF6jl3zDGbOAiAbfHhhag9xJ2tLwnKQZfO7Tm5r4EJOwfxDD01IQo3aVLZquN7i6tfiCN8Lf56wlKJI4JzMKU4InhYyPO8wldi2nPOdd6zESwQO3i022nes+FisYI/wO6gad4zQRa75JwgCIIgpOUNje3Q6CpNk7oAAAAASUVORK5CYII=);background-image:url(/img/expand.4ae6f575.svg)}.portal_main_block_action .expand-icon.alt{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAF2SURBVHgB7ZfLbYQwEIaHh7hwIRWEdJJ0sAghxClKKekgHZCcEAeEUsGWkBJCOtgzz8xIQUJoiQew2Ys/yeIxNvo1Hv82ABqNRqORSpqmXlmW/tb4HBMkkmWZ77ruV9M033mel2vjygXatv2MF5/uDcM4FUVxDxNxlmWdl+KHCFxiLo4YhqEKw/BHNFa5wCVxfd8/ccYrFVjX9cOSuCRJKs43bFAI1mSJgrzxea04QmkG94ojlGZwwsU0zRfHcWD0wCAIKs7AQ1Yx4mEGz+R/Y7uJD66B64OsKSar+DPhf8Es3QETrg+yBJJV4Ad9Tl/s94b1dhH167ruAxgIBVL2YOJjIkhcFEWvIAlhDZItYFY+4UawFkkcxyecZn9s+OoRi1w4jTJgr2IqaGq4fRn4+D41YZWssplrGz+iNJNsgUunElyNASiE7YN7jkx7YGVw75FpD0KBcx88UhyxygeviZvH27Zl7RDSoY2dfhm3xjUajUazjV9oO/Y7xqKPHAAAAABJRU5ErkJggg==);background-image:url(/img/expand-alt.696ce13b.svg)}.portal_main_block_action .arrow-icon.left{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAFQSURBVHgB7ZbBbYMwFIYfpdy7QekG3SDqEAghDiUbNBOEbNANSE8IOHSEthOkIzACdwT0t0QkWvlg48ep75MiK8bAJ9vvN0SCIAiCIJhQ1/VjWZYhMXNDDFRVdUZz8X3/g1vSWRByued5z/PfMAiCHTHiJDjLHZd9fd9/ESOrBXVy0zRlSZK0xMgqwaZpXjRyeRzHb8SMR5agWjM0xbJvljvRBlgJqihBc9FcasmMDnt0n6bpt+F4uiULsKwFZkt3KSRDUOXvaB5Mx1vtQcjdkSN4Rmcz3moGh2HYqzDWvLQ1uR8r0OJ3IAusiwQnRQbJv0VyQpHktAHWMYOcO4/j+GsWVOSoXKQNsJ7BKxA6Qixf9qmg5s7C1YIKnST26RNm+ZOYcDqLVThD8HXZhxi5J0acv2aiKDpgaa/L2nF/LLCBU2ZXFIVzTgqCIAjCP+MHRLZ8H+zjfrcAAAAASUVORK5CYII=);background-image:url(/img/arrow-left.f0f6e9ed.svg)}.portal_main_block_action .todo-icon{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAADFSURBVHgB7dbBDcIwDAXQH5o9KFNVPcEmlEmgp6pdglU6SKvgHCIuINkJFQL9d2kPVuQkdmSAiIiIvslZgsdx7JxzZxQIIVyapum08TsYlCaXs4YpQdl9h0KfWIP+iqmL35mm6STFv9fELsvSt207Q8mjUExOPlcpflV8VVUx/gAlUxe/sq6rKV67kaT4BOW6bsMwwHuvumLZUA+ip6xnRmqulm68y28No02HhUQa4oiM5KJNh4UkPrZyEjMycFggIiL6LQ/rvj/rxW7oUwAAAABJRU5ErkJggg==);background-image:url(/img/todo-icon.9cfc8f6e.svg)}.portal_main_block_action .todo-icon.alt{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAEySURBVHgB7dVRSsNAEADQ2Y1fguAR4kUEf6u/CeTLeALrCbqeQHsC069A8qvfEb1I7yDqV3Y6A4VC24TdbEOhzIOwSzIkk2RnFkAIIYQQx6R8guu6niGigQBKKZMkybNrvAYPockNuYdvgs5vPuY9xEnxquIuVVXltLZil1hrbZFl2RIcnUEgTo6GN2ofTvFRFN3TcAWOvKp4n7ZtYUzBX5B+V1GWJWitY5d4/sUgxMagNkNrLqZqbGgad4QUaZo+8OT/ezJrrZryXCsozq8/nsDDoCqmgsh7kuPKXvD493X7Yq0y9BUu+UCE6W8zMTB2gutKXHZdp8r+5JESynefqB7Bw6A2s94JnJttiOBG3cdanG+fQ4sL8HCQvbjPT3P3qjXy9kYJq/nFzbsBIYQQp2MFmI5jeNePQswAAAAASUVORK5CYII=);background-image:url(/img/todo-icon-alt.2a07a74f.svg)}.portal_main_block_action .session-icon{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAJtSURBVHgB7VfLceJAEG3EcicDyxGYDFabgTnwO62JwLsRIGWwGbA+UXyqcAbGGeAIPI7A3Pn5NTXCY9loegbdrFclTw/umXmMXn8gKlGiRInvjQoVgOl0Gu33+5AfngdBsMKwbLVaCzoT3gTn83m42WxuQeoG0/oJNwWyi2q1mjSbTUUe8CI4m81ud7tdnEPs80GVSowbTcgRTgRxa/X1ej2EeZ351+GmttvtiyZzhaGBJ8z43ddqtT5uc0VC/CAHZMmByAJDckprWptDg+g19uCxSUKIbxCHDXBYnM5hJ51OJzZ9JpPJDY/tdvu/+fl4PI7xZQbpHPL42+12/5EAgcSJA8JGTmOonw9gX15zPDQIBrwnFUUQ2hoYU3WCXC54jZYEg7X8R7JORBCvJEptHNInf5hR/FuywEqQhU7vIlfnJF+9VulpXe+dC8kNNgz7ic4EtPho2KHN30oQr7dubLgkASwBoIz98vwOEGnQAYr/IACeOS1RAbASRFAow77I80X+u0zTCacl5MXnrA/q8lVqw8daUZwIApHNn9MJ0tIlGa/SBCRz1DTIWiUjqiS4iVfSjQEI//KNZF36HvRU8Y3b1kg1eGfY3trSdTnFQrJGWkm4bq70IZFPAOg1obGnqPUSEez1egqv9rghB4ALya8aDd5TstapH4QW5/SxF2Ti/bx2CwOTi4yP76E9cbvl1A9ys6n7uZQkdzkPIK5gL2EfKg2i84Lr9xeJ+NCwkgO8Wv5sfyfACoQTaQ9owvtH02g0CtHXMdGf9Lm1PxLDc8dBJtUcFUXQhNZaI63bnNz5KeJnZ4kSJUp8d7wBNywzZcx0lbYAAAAASUVORK5CYII=);background-image:url(/img/session-icon.d4b6a97d.svg)}.portal_main_block_action .cal-icon{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFAAAABQCAYAAACOEfKtAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAH9SURBVHgB7drbbRpBFMbxw0U8IB5cwpaQDuKUwAOgfQpUYKeC4AqCK4A8rQT0kKQDl7Al8MTbQs5YRorii2yfmbOL9f9JiMtKA/sxl92ZEQEAAAAAAAAAvEpLHG02m+/H4/H6/otbrdVoNPom7xCrnBjcAtST/nE66RN9fzOZTObyBrHKiaUtTvQkp/9/prXnSt4oVjmxuAWoLl75mVc5USRpwsvl8mIwGIRacak15lJ83enjdjwer8RB9ACLosg6nc4vfZlJvcqqqr7keV5KQtGbcEPCC+7/yNAaJKGoAa7X66k0I7yTrN/vX0tCUQOsczR8Trvd/iwJRQ1QB4xP0jCpBzHPy5gPiQCNCNCIAI264kDvClwmLfQy6ijOqIFGBGhEgEYEaESARgRoRIBGBGhEgEYEaORyK/ev7Xb79XA4LOTxSlqpc3dzXd/9KWfEvQZqeHN5ehky0xnthZyZOppw9sKx2tZ334s+0IgAjQjQqI4Ady8cK+XMuAdYVVXYy1c+cSgEeyNnxv06MM/zlT6t5IOgDzQiQCOXJlzHapmX2JuLfkvz3ElCUQPU+9w/0jA66t9KQlED7PV6YTKglOYoH0b9ZKIGOBwOd2FbrTQjxPLhtySVbMtFURTTbrd75b1nMPTDoSvZ7/eL2Wy2EwAAAAAAAAAAAKBufwERz5Z0OqP59QAAAABJRU5ErkJggg==);background-image:url(/img/cal-icon.e18a9802.svg)}.portal_main_block_action .cal-icon.alt{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFAAAABQCAYAAACOEfKtAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAALkSURBVHgB7dtNbtpAGAbgb0wEFWVBT1DnBukJAruq3RRFSQSb0hOQnqDkBCUngK6Q+JHYtFvgBHCDuieARbpABU+/oUGiaQpO5gecvI9kJbaRE7+ZP3smRAAAAAAAAAAAAAAQiSCH2u32JynlxfIHC9E4PT39SA9g6jomOAuQb/rz6qZXeP/y/Py8Svdg6jqmeOQI32T59jEuPRW6J1PXMcVZgCwb8Zir6xhhpQrX6/VsJpNRpSLHJSZHbo15uzo7O2uQA8YDbDabfiKR6PO3Pu1WsFgs8sViMSCLjFfhPQlPWf4hVW0gi4wG2Gq1yrQf4a346XT6giwyGuAue8P/8TzvmCwyGiB3GEe0Z2x3Yi6HMY8SAtSEADUhQE0H5AA/FTh5acHDKEmOoQRqQoCaEKAmBKgJAWpCgJoQoCYEqAkBakKAmpw8yq3rdDrvwzCs0b8zaQG/u6vy/O4XihHnJZDDq9Ld05A+v9GuUczsogr7G87tbH73odAGanpUAarXZmrj+eBDbk8LvFlvT513Ii7cTKarrccT/VWyaBclcLrhXECGxW5lwjZcvdRavuCOUyrYS4oZ51WYS0SDvzTIkEk/l312kK5IKXJSUu7m8FiG8iqT/9Ygy2LdiUz6r/2k93wUhqK6Fp5yJDxR/zl8+119hiyKdYBJb+tCJl99RpVSssRJFTYxWzafzwulUqm32r/uvylTtIVMfpKWC4yqZIHpxUUDsiSVSo3+OuBFX8gkEsLaAiOjAfJz7pAsOTk5+bG+zxPNkRcy3WofjTIaYDKZVC8DAnpCjAZYKBSmalktWQix2+2+XN+XggYU3ZgsMd4Lq5E/P48ecpAfuE009ovPZrNX6/tyISM3F2pMSJY4/U8lkyb9d9mU92skt/TEfINB+vjrIVkS23Hgi3xvKsJFXmxoLtQ59RmyKLYlcN1yTChERYg/PTP3ugN+tBtm6Lom8oMpAQAAAAAAAAAAAADE3m9BcO24/u6wNQAAAABJRU5ErkJggg==);background-image:url(/img/cal-icon-alt.2b775a5c.svg)}.portal_main_block_actions .arrow-icon.right{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAE8SURBVHgB7ZbNcYMwEEaXkCMHl0A6cAlOCTkx3HAHdGBSgUuQc+KviLgTu4Q0AOTbmRyUsQ9atNz2zTCgHQFvJO1KRIZhGIZhSHDO7cZxPJASL6RI27Z5lmW3ZVm+h2FwpICqYJqmB8jt/ppV3/dnikRVcJqmu99OkqSGZEMRqAqWZXmF5NGPQfIUI6kqyEDygmlu/BhLdl1X0woS2giM2glijR+DeFUUxRcJEAkiM/f46Rk/ygNfeeiHJfDOS4ECeSUBkHOQ21MEyHQuP2+h/UVr0Cshq8E3fiT9RSMIPnC5UFGMeP4kdiQBWyZJw9nrx9YkiXqZYZ7JzfNcS+UY9RFEple4/duHuS5C7pNWoCrIhwVk6c2Pxcgx6ocFvx0rx2gfFq6QuvMz1twlVm4TeJp5xyHDMAzDMEL4Bba/hFzaarEOAAAAAElFTkSuQmCC);background-image:url(/img/arrow-right.b158c98b.svg)}@media (max-width:630px){.portal_main_block_header{position:unset;flex-flow:row wrap;justify-content:stretch;align-items:stretch;height:unset;margin:0;width:100%;gap:var(--gap-calendar-header);margin-bottom:var(--margin-calendar-header)}.portal_main_block_header>*{flex-basis:100px;flex-shrink:1;flex-grow:1;width:100%}.portal_main_block_title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;text-align:center;line-height:var(--size-calendar-header);height:var(--size-calendar-header);flex:1 1 auto}.portal_main_block_actions>.portal_main_block_action{flex-grow:1}}.loading_cover[data-v-523271bf]{position:absolute;top:0;left:0;width:100%;height:100%;z-index:1;display:flex;flex-flow:column nowrap;align-items:center;justify-content:center;pointer-events:all;cursor:wait;z-index:10;box-sizing:border-box}.loading_cover__overlay[data-v-523271bf]{position:absolute;top:0;left:0;width:100%;height:100%;background-color:var(--color-loading-overlay,var(--color-overlay));-webkit-backdrop-filter:var(--bg-filter-loading);backdrop-filter:var(--bg-filter-loading);z-index:2047}.parent.simplified .loading_cover__overlay[data-v-523271bf]{background-color:var(--color-calendar)}.loading_cover__content[data-v-523271bf]{z-index:2048}.loading_cover__content__text[data-v-523271bf]{font-size:1.5rem;font-weight:500;color:var(--color-overlay-text);text-align:center;margin-top:1rem;width:100%}circle[data-v-523271bf]{fill:var(--color-loading-dot);r:var(--dot-size,3px)}.loading_cover[data-v-523271bf],.loading_cover__content[data-v-523271bf]{display:flex;flex-flow:column nowrap;align-items:stretch;justify-content:stretch;height:100%}.loading_cover__content__icon[data-v-523271bf]{display:flex;flex-flow:row nowrap;align-items:center;justify-content:center;flex-grow:1}.study-group-move[data-v-ab6e49c6],.study_list:not(.study-group-move) .study-list-move[data-v-ab6e49c6]{transition:transform .2s ease-out}.study-group-enter-active[data-v-ab6e49c6]{animation:scale-in-ab6e49c6 .15s ease-out}.study-group-leave-active[data-v-ab6e49c6]{animation:scale-out-ab6e49c6 .15s ease-in}.parent.simplified .study_list_group[data-v-ab6e49c6] *{transition:none!important;animation:none!important}@keyframes scale-in-ab6e49c6{0%{scale:.9;opacity:0}to{scale:1;opacity:1}}@keyframes scale-out-ab6e49c6{0%{scale:1;opacity:1}to{scale:.8;opacity:0}}.study_name[data-v-ab6e49c6]{max-width:-moz-fit-content;max-width:fit-content}.study_list_group[data-v-ab6e49c6]:empty:before{content:"No upcoming tasks found";color:var(--text-color);font-weight:500;opacity:.5;text-align:center;width:100%;height:100%;padding-bottom:calc(var(--padding-calendar)*.5 + var(--size-calendar-header));display:flex;align-items:center;justify-content:center}.study_list_group.filtered[data-v-ab6e49c6]:empty:before{content:"No upcoming tasks found in selected classes"}.study_list_group[data-v-ab6e49c6]:not(:empty){display:flex;align-content:flex-start;justify-content:flex-start;flex-flow:column wrap;gap:10px;max-height:450px;height:70vh;overflow-y:auto}.study_list_group[data-v-ab6e49c6]:not(:empty)::-webkit-scrollbar-corner{display:none}.study_list_group[data-v-ab6e49c6]:not(:empty)::-webkit-scrollbar{background:var(--color-calendar);height:16px;width:16px}.study_list_group[data-v-ab6e49c6]:not(:empty)::-webkit-scrollbar-thumb{width:8px;height:8px;background:var(--color-calendar-header);border-radius:10px;border:4px solid var(--color-calendar)}.study_list_group[data-v-ab6e49c6]:empty{max-height:70vh;height:450px}.study_list[data-v-ab6e49c6]{color:var(--color-class);background-color:var(--color-class-alt);padding:var(--padding-study-class);border-radius:var(--radius-calendar-day);display:flex;flex-flow:column nowrap;gap:var(--gap-study-class);flex:1 1 160px;width:50%;max-width:300px}.study_list .study_list__name[data-v-ab6e49c6]{font-size:.8rem;font-weight:600;color:var(--color-class)}.study_list hr.study_list__separator[data-v-ab6e49c6]{border:0;height:2px;background-color:var(--color-class);opacity:.5;margin:0}.study_list_tasks[data-v-ab6e49c6]{display:flex;flex-flow:column nowrap;gap:10px}.study_list_tasks .study_list_task[data-v-ab6e49c6]{display:flex;flex-flow:row nowrap;align-items:stretch}.study_list_tasks .study_list_task .study_list_task_checkbox[data-v-ab6e49c6]{height:var(--height-calendar-task);opacity:0;width:0;scale:0;transform-origin:center center;flex-shrink:0;flex-grow:0;border-radius:5px;transition:width .15s ease-in-out,opacity .125s ease-in-out 25ms,scale .15s ease-in-out;display:flex;flex-flow:row nowrap;justify-content:center;align-items:center;cursor:pointer;overflow:hidden;position:relative}.study_list_task_checkbox .study_list_task_checkbox__fixed[data-v-ab6e49c6]{height:var(--height-calendar-task);min-width:var(--height-calendar-task);display:flex;position:relative}.study_list_task_checkbox__dot[data-v-ab6e49c6]{border-radius:5px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);height:80%;width:80%;opacity:.75;background-color:var(--color-class);transition:width .15s ease-in-out,height .15s ease-in-out,opacity .15s ease-in-out,border-radius .15s ease-in-out}.study_list_task[finished=true] .study_list_task_checkbox__dot[data-v-ab6e49c6]{border-radius:var(--height-calendar-task);height:8px;width:8px;opacity:.4}.study_list_task[finished=true] .study_list_task_checkbox__fixed:hover:not(.study-list-move) .study_list_task_checkbox__dot[data-v-ab6e49c6]{opacity:.6}.study_list_task_checkbox__fixed:hover:not(.study-list-move) .study_list_task_checkbox__dot[data-v-ab6e49c6]{height:12px;width:12px;border-radius:4px}.study_list_tasks .study_list_task .study_list_task__boxed[data-v-ab6e49c6]{white-space:nowrap;flex:1 1 auto;overflow:hidden;text-overflow:clip;position:relative;font-size:.8rem;font-weight:600;border-radius:5px;height:var(--height-calendar-task);display:flex;flex-flow:row nowrap;justify-content:center;align-items:center;transition:margin-left .15s ease-in-out,padding .15s ease-in-out,width .15s ease-out,opacity .15s ease-out}.study_list_tasks .study_list_task .study_list_task__date[data-v-ab6e49c6]{margin-left:var(--gap-study-checkbox);flex-shrink:0;flex-grow:0;width:4em;opacity:.6;-webkit-user-select:none;-moz-user-select:none;user-select:none;cursor:default;white-space:nowrap;overflow:hidden;text-align:center;text-overflow:clip}.study_list_tasks .study_list_task[finished=true] .study_list_task__boxed.study_list_task__date[data-v-ab6e49c6]{opacity:0;padding:var(--padding-calendar-task) 0;width:0;margin-left:0}.study_list_tasks .study_list_task .study_list_task__name[data-v-ab6e49c6]{cursor:pointer}.study_list_tasks .study_list_task .study_list_task__name .study_list_task__name__text[data-v-ab6e49c6]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%;display:inline-block}.study_list_tasks .study_list_task:not([finished=true]) .study_list_task__boxed[data-v-ab6e49c6]{filter:var(--filter-calendar-task);padding:var(--padding-calendar-task);color:var(--color-on-calendar-task);background-color:var(--color-class)}.study_list_tasks .study_list_task[finished=true] .study_list_task__boxed[data-v-ab6e49c6]{text-decoration:line-through;filter:var(--filter-calendar-task);padding:var(--padding-calendar-task);color:var(--color-class);opacity:.5}.study_list_task:hover:not(.study-list-move) .study_list_task_checkbox[data-v-ab6e49c6]{width:var(--height-calendar-task);opacity:1;scale:1}.study_list_tasks .study_list_task:hover:not(.study-list-move) .study_list_task__boxed[data-v-ab6e49c6]{margin-left:var(--gap-study-checkbox)}@media (max-width:630px){.study_list_group[data-v-ab6e49c6]{padding:var(--spacing-calendar-day)}.study_list_tasks .study_list_task .study_list_task_checkbox[data-v-ab6e49c6]{width:var(--height-calendar-task);opacity:1;scale:1}.study_list_tasks .study_list_task .study_list_task__boxed[data-v-ab6e49c6]{margin-left:var(--gap-study-checkbox)}.study_list_group[data-v-ab6e49c6]:not(:empty){display:flex;flex-flow:column nowrap;gap:10px;max-height:unset;height:auto}.study_list[data-v-ab6e49c6]{flex:1 1 auto;max-width:unset;width:100%}@media (max-width:450px){.portal_main_block_title.study_name[data-v-ab6e49c6]{display:none}}}@media (max-width:1270px) and (min-width:600px){.study_list[data-v-ab6e49c6]{max-width:33.33%;min-height:120px;flex-basis:auto;flex-shrink:0}}@media (max-width:800px) and (min-width:600px){.study_list_group[data-v-ab6e49c6]:not(:empty){flex-flow:row wrap}.study_list[data-v-ab6e49c6]{flex-basis:33.33%;max-width:calc(50% - 5px)}}.fullpage_toggle_button[data-v-ab6e49c6]{display:none;background:transparent;border:solid var(--color-calendar-header) 2px}@media (max-width:1285px) and (min-width:1270px),(min-width:630px) and (max-width:805px){.may_break_text[data-v-ab6e49c6]{display:none}}@media (min-width:695px){main.study.study_fullpage[data-v-ab6e49c6]{border:none;box-shadow:none;border-radius:0;top:0;left:0;position:fixed;max-width:unset;width:100%;height:100%;box-sizing:border-box;overflow-y:hidden;z-index:4}.portal_bottom_bar_container+main.study.study_fullpage[data-v-ab6e49c6]{padding-bottom:calc(var(--height-bottom-bar) + var(--padding-calendar))}.fullpage_toggle_button[data-v-ab6e49c6]{display:flex}main.study.study_fullpage .study_list_group[data-v-ab6e49c6]:not(:empty){max-height:unset;height:100%}}@media (min-width:800px){main.study.study_fullpage .study_list_group[data-v-ab6e49c6]:not(:empty){max-height:550px;align-content:center}}@media (min-width:800px) and (min-height:720px){main.study.study_fullpage .study_list_group[data-v-ab6e49c6]:not(:empty){margin-top:calc(50vh - var(--padding-calendar)*1.5/2 - var(--size-calendar-header)/2 - var(--padding-calendar)/2 - 275px)}.portal_bottom_bar_container+main.study.study_fullpage .study_list_group[data-v-ab6e49c6]:not(:empty){margin-top:calc(50vh - var(--padding-calendar)*1.5/2 - var(--size-calendar-header)/2 - var(--height-bottom-bar)/2 - var(--padding-calendar)/2 - 275px)}}@media (min-width:675px){.portal:has(main.study.study_fullpage) .portal_sidebar{z-index:0}}.fullpage_toggle_button[data-v-26a03c10]{display:none;background:transparent;border:solid var(--color-calendar-header) 2px}main.calendar[data-v-26a03c10]{overscroll-behavior-x:contain}@media (min-width:675px){main.calendar.calendar_fullpage[data-v-26a03c10]{border:none;box-shadow:none;border-radius:0;top:0;left:0;position:fixed;max-width:unset;width:100%;height:100%;box-sizing:border-box;overflow-y:hidden;z-index:4}.fullpage_toggle_button[data-v-26a03c10]{display:flex}.portal_bottom_bar_container+main.calendar.calendar_fullpage[data-v-26a03c10]{padding-bottom:calc(var(--height-bottom-bar) + var(--padding-calendar))}main.calendar.calendar_fullpage .calendar_days_container[data-v-26a03c10]{height:100%;width:100%;overflow-y:auto}main.calendar.calendar_fullpage .calendar_days_container[data-v-26a03c10]:before{display:none}main.calendar.calendar_fullpage .calendar_days[data-v-26a03c10]{position:relative;grid-template-rows:var(--height-calendar-weekday-label) repeat(6,minmax(100px,1fr))}}.calendar_days_container[data-v-26a03c10]{width:100%;position:relative}.calendar_days_container[data-v-26a03c10]:before{content:"";display:block;padding-top:80%}.calendar_days[data-v-26a03c10]{position:absolute;top:0;left:0;width:100%;height:100%;display:grid;grid-template-columns:repeat(7,1fr);grid-template-rows:var(--height-calendar-weekday-label) repeat(6,1fr);grid-gap:var(--gap-calendar-day);box-sizing:border-box;padding:0}.calendar_days[data-v-26a03c10]:empty:after{content:"No tasks scheduled";font-size:1.5rem;font-weight:600;color:var(--color-on-calendar);text-align:center;margin:1.5rem 0}.calendar_day[data-v-26a03c10]{height:100%;display:flex;flex-flow:column nowrap;justify-content:stretch;align-items:stretch;background-color:var(--color-calendar-day);border-radius:var(--radius-calendar-day);-webkit-user-select:none;-moz-user-select:none;user-select:none;position:relative;overflow:hidden}.calendar_day__today[data-v-26a03c10]{--color-calendar-day:var(--color-calendar-day-today)}.calendar_day[data-v-26a03c10]:after{content:"";display:block;position:absolute;bottom:-1px;left:0;width:100%;height:calc(var(--spacing-calendar-day) + 1px);-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:none;background:linear-gradient(to bottom,hsla(0,0%,100%,0) 0,var(--color-calendar-day) var(--spacing-calendar-day));z-index:5}.calendar_day_date[data-v-26a03c10]{display:flex;flex-flow:row nowrap;justify-content:center;align-items:center;font-weight:700;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background-color:var(--color-calendar-date);font-size:11px;color:var(--color-on-calendar-date);margin:var(--spacing-calendar-day);height:var(--size-calendar-day-date);width:var(--size-calendar-day-date);border-radius:calc(var(--radius-calendar-day)/1.5);-webkit-user-select:none;-moz-user-select:none;user-select:none;z-index:2}.calendar_day__weekday_label[data-v-26a03c10]{padding:5px;line-height:calc(var(--height-calendar-weekday-label) - 10px);color:var(--color-calendar-weekday-label);font-weight:600;font-size:.8em}.calendar_day__weekday_label span.calendar_day__weekday_label__text[data-v-26a03c10]{text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.calendar_day[data-v-26a03c10]:before{opacity:0;transition:opacity .2s ease-out;content:""}.calendar_day.calendar_day__drag_to[data-v-26a03c10]:not(.calendar_day__drag_from):before{display:flex;flex-flow:row nowrap;justify-content:center;align-items:center;position:absolute;top:0;left:0;width:100%;height:100%;content:"🠻";font-size:30px;font-weight:700;color:var(--color-dragging);background-color:var(--color-dragging-alt);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:6;opacity:1}.calendar_day.calendar_day__drag_class_to[data-v-26a03c10]:not(.calendar_day__drag_from):before{content:"+"}.calendar_day.calendar_day__placeholder[data-v-26a03c10]>*{opacity:.2;transition:opacity .2s ease-out}.calendar_day.calendar_day__placeholder.calendar_day__drag_to[data-v-26a03c10]>*,.calendar_day.calendar_day__placeholder[data-v-26a03c10]:hover>*{opacity:1;transition-duration:.5s}.calendar_day.calendar_day__placeholder.calendar_day__drag_to>.calendar_day_tasks[data-v-26a03c10],.calendar_day.calendar_day__placeholder:hover>.calendar_day_tasks[data-v-26a03c10]{visibility:visible}.calendar_day.calendar_day__placeholder[data-v-26a03c10]{opacity:.5;scale:.9;transition:opacity .2s ease-out,scale .2s ease-out}.calendar_day.calendar_day__placeholder.calendar_day__drag_to[data-v-26a03c10],.calendar_day.calendar_day__placeholder[data-v-26a03c10]:hover{opacity:.85;scale:1}.calendar_day_tasks[data-v-26a03c10]{height:100%;width:100%;position:absolute;padding:var(--spacing-calendar-day);padding-top:calc(var(--size-calendar-day-date) + var(--spacing-calendar-day)*2);overflow-y:auto;z-index:1;display:flex;flex-flow:column nowrap;justify-content:flex-start;align-items:stretch}.calendar_day_tasks[data-v-26a03c10]::-webkit-scrollbar{display:none}.calendar_day_tasks[data-v-26a03c10]{-ms-overflow-style:none;scrollbar-width:none}.calendar_day_task[data-v-26a03c10]{white-space:nowrap;flex-shrink:0;overflow:hidden;text-overflow:clip;position:relative;padding:var(--padding-calendar-task);color:var(--color-on-calendar-task);background-color:var(--color-calendar-task);font-size:.8rem;font-weight:600;border-radius:5px;text-align:center;height:var(--height-calendar-task);filter:var(--filter-calendar-task);cursor:pointer;display:flex;flex-flow:row nowrap;justify-content:flex-start;align-items:center}.calendar_day_task[data-v-26a03c10]:first-of-type{margin-top:auto}.calendar_day_task[data-v-26a03c10]:not(:last-of-type){margin-bottom:var(--spacing-calendar-day)}.calendar_day_task>span[data-v-26a03c10]{text-align:center;width:100%;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.calendar_day_task[is_note=true][data-v-26a03c10]{padding:0}.calendar_day_task[is_note=true]>span[data-v-26a03c10]{width:100%;height:100%;display:flex;flex-flow:row nowrap;background-color:var(--color-calendar-note)}.calendar_day_task[is_note=true]>span>.calendar_day_task__swatch[data-v-26a03c10]{display:block;height:calc(var(--height-calendar-task) - 8px);flex:0 0 calc(var(--height-calendar-task) - 8px);margin:4px;border-radius:3px;background-color:var(--color-calendar-task)}.calendar_day_task[is_note=true]>span>.calendar_day_task__note[data-v-26a03c10]{display:block;flex:1 1;color:var(--color-on-calendar-note);font-size:.9em;font-weight:700;line-height:var(--height-calendar-task);padding:0 var(--padding-calendar-task)}.calendar_day_task .calendar_day_task_editable[data-v-26a03c10]{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;flex-flow:row nowrap;justify-content:center;align-items:center;overflow:hidden;border-radius:5px;background-color:var(--color-calendar-task);opacity:0;z-index:2;transition:opacity .2s ease-out}.calendar_day_task.calendar_day_task__dragging .calendar_day_task_editable[data-v-26a03c10],.calendar_day_task:active .calendar_day_task_editable[data-v-26a03c10],.calendar_day_task:hover .calendar_day_task_editable[data-v-26a03c10]{opacity:1}.calendar_day_task.calendar_day_task__dragging[data-v-26a03c10]:not(.calendar_day_task__loading){opacity:.001}.calendar_day_task.calendar_day_task__finished[data-v-26a03c10]{text-decoration:line-through;color:var(--color-calendar-task);background:none;transition:opacity .1s ease-out;opacity:.5;border:solid 2px var(--color-calendar-task)}main .calendar_day_task__finished[data-v-26a03c10]:hover:not(:active){transform:none}.calendar_day_task.calendar_day_task__finished[data-v-26a03c10]:hover{opacity:1}.calendar_day_task__finished[data-v-26a03c10]:has(.calendar_day_task_editable):hover,.calendar_day_task__loading.calendar_day_task__finished[data-v-26a03c10]{border:none}.task_icon[data-v-26a03c10]{width:100%;height:100%;background-size:20px}.task_icon.loading_bg[data-v-26a03c10]{background-size:40px;filter:none}.task_edit__icon[data-v-26a03c10]{filter:var(--filter-swatch-icon);background-repeat:no-repeat;background-position:50%;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAADBSURBVHgB7dbBDYMwDEbhN0JH8GZlpG4QNmEERmAERmiDFC6VSVKpYAv5Sf8tQt8BRCCKoqiV5E15a1nKe+AkyVvy3l+bcYAUdJwLpFDHmSLlADcWkClSKjgKREO+uCBp4KggV05OOH7nnsr5pJwzwWlIDZc4KaHva92RGm4pz7kMN+YN9KFNcHsDjnEtpAvcVgpc4P7Q7BmHd5wGdIWDNtAUB3WgOQ76/qlmuF+AJritFce4rYH6nW/CEBdFUXT3Pq3hFbq8LkYgAAAAAElFTkSuQmCC);background-image:url(/img/edit.8aa929f0.svg)}.calendar_day_task[is_note=false][data-v-26a03c10]:not(.calendar_day__weekday_label,.calendar_day_task__finished):after{content:"";display:block;width:calc(var(--padding-calendar-task) + 2px);height:100%;right:0;top:0;position:absolute;background:linear-gradient(to right,hsla(0,0%,100%,0) 0,var(--color-calendar-task) 100%);margin-top:5px;z-index:1}@media (max-width:630px){.calendar_days_container[data-v-26a03c10]:before{display:none}.calendar_days_container[data-v-26a03c10]{padding:var(--spacing-calendar-day)}.calendar_days[data-v-26a03c10]{position:unset;top:unset;left:unset;height:unset;display:flex;flex-flow:column nowrap;justify-content:stretch;align-items:stretch}.calendar_day.calendar_day__placeholder[data-v-26a03c10],.calendar_day[data-v-26a03c10]:not(.calendar_day__hastask),.calendar_days.calendar_days__current:not(.calendar_days__changed) .calendar_day__past[data-v-26a03c10]{display:none}.calendar_day[data-v-26a03c10]{flex-shrink:0;margin-bottom:var(--spacing-calendar-day);height:unset;max-height:unset;align-items:flex-start}.calendar_day_date[data-v-26a03c10]{width:unset;padding:.25rem .5rem}.calendar_day_date__short[data-v-26a03c10]{display:none}.calendar__no_tasks[data-v-26a03c10],.calendar_day_date__long[data-v-26a03c10]{display:unset!important}.calendar_day_date[data-v-26a03c10]{height:unset}.calendar__no_tasks[data-v-26a03c10]{color:var(--color-text-on-calendar);font-weight:500;text-align:center;margin:10% 0}.calendar_day_tasks[data-v-26a03c10]{position:unset;padding:0;padding-top:10px;flex-flow:row wrap;flex-basis:calc(var(--height-calendar-task) + var(--spacing-calendar-day)*2);box-sizing:content-box;overflow-y:unset}.calendar_day[data-v-26a03c10]:after,.calendar_day_tasks[data-v-26a03c10]:after{display:none}.calendar_day_task[data-v-26a03c10]{margin:var(--spacing-calendar-day)!important;flex-grow:1;white-space:normal;height:unset;min-height:var(--height-calendar-task);flex-basis:70px}}@media (min-width:631px){.parent.simplified .calendar_days_container[data-v-26a03c10]{border-radius:var(--radius-calendar-day);overflow:hidden}.parent.simplified .calendar_days_container .calendar_days[data-v-26a03c10]{--radius-calendar-day:0px;--gap-calendar-day:2px}.parent.simplified .calendar_days_container .calendar_days .calendar_day_date[data-v-26a03c10]{--radius-calendar-day:5px}}@media (min-width:630px){.portal:has(main.calendar.calendar_fullpage) .portal_sidebar{z-index:0}}.class_bar[data-v-cff590be]{flex-flow:row nowrap;align-items:center;justify-content:space-between;gap:10px;overflow-x:auto}.class_bar[data-v-cff590be]::-webkit-scrollbar{display:none}.class_bar_item[data-v-cff590be]{border-radius:calc(var(--radius-bottom-bar) - 10px);height:calc(var(--height-bottom-bar) - 6px - var(--padding-bottom-bar)*2);display:flex;justify-content:center;align-items:center;flex:0 0 auto}.class_bar_item__button[data-v-cff590be]{padding:0 10px;background:var(--color-on-bg);font-size:.8em;color:var(--color-text);font-weight:600;cursor:pointer;border:none;width:-moz-max-content;width:max-content}.class_bar_item__button[data-v-cff590be]:disabled{opacity:.5;cursor:not-allowed}.class_bar_item__button span[data-v-cff590be]{opacity:.7}.class_bar_class[data-v-cff590be]{font-size:16px;width:calc(var(--height-bottom-bar) - 6px - var(--padding-bottom-bar)*2);filter:var(--filter-calendar-task);color:var(--color-class);background:var(--color-class-alt);border:solid 2px var(--color-class)}.class_container__empty[data-v-cff590be]{opacity:.75;width:6px;height:6px;border-radius:3px;background:var(--color-on-bg)}.class_container__empty .parent.simplified .class_bar_class[data-v-cff590be]{color:var(--color-on-calendar-task);background:var(--color-class);border:none}.class_bar.filtering .class_bar_class.filter_active[data-v-cff590be]{background:var(--color-class);color:var(--color-on-calendar-task)}.class_bar.filtering .class_bar_class[data-v-cff590be]:not(.filter_active){background:none}.parent.simplified .class_bar.filtering .class_bar_class[data-v-cff590be]:not(.filter_active){background:var(--color-class-alt)}.class_bar_class.classes_container_class__dragging[data-v-cff590be]{width:-moz-max-content;width:max-content;padding:0 10px;font-size:14px}main.portal[data-v-1b996766]{background-color:var(--color-secondary);width:100%;height:100%;display:flex;flex-flow:row nowrap;justify-content:space-between}main.portal .portal_sidebar[data-v-1b996766]{box-shadow:var(--shadow-highlight);flex-basis:300px;width:300px;flex-grow:0;flex-shrink:0;background-color:var(--color-bg);position:relative;box-sizing:border-box;padding:0}main.portal .portal_bottom_bar_container[data-v-1b996766]{position:fixed;z-index:5;bottom:calc(var(--padding-calendar)/2);left:50%;max-width:calc(100% - 20px);transform:translateX(-50%);gap:10px;height:var(--height-bottom-bar)}main.portal .portal_bottom_bar_container .portal_bottom_bar[data-v-1b996766]{background-color:var(--color-bg);border:3px solid var(--color-on-bg);border-radius:var(--radius-bottom-bar);padding:var(--padding-bottom-bar);display:flex;height:var(--height-bottom-bar)}main.portal .portal_bottom_bar_container .portal_bottom_button_wrapper[data-v-1b996766]{display:flex;gap:10px;flex:0 0 auto;justify-content:center;align-items:center;height:var(--height-bottom-bar)}main.portal .portal_sidebar[data-v-1b996766]{height:100%;transition:transform .3s ease-out,box-shadow .3s ease-out,border-width .3s ease-out,border-radius .3s ease-out;display:flex;flex-flow:column nowrap}@media (min-height:800px){main.portal .portal_sidebar[data-v-1b996766]{max-height:800px;top:calc(50% - 400px)}}@media (max-width:600px),(min-width:1270px) and (max-height:1200px){main.portal .portal_sidebar[data-v-1b996766]{--radius-sidebar:15px;border-radius:0!important;box-shadow:none!important;height:100%;top:0;max-height:unset}main.portal[data-v-1b996766]{background-color:var(--color-bg)}}@media (max-width:1270px){main.portal .portal_content[data-v-1b996766]{position:absolute;z-index:1;height:100%;width:100%;top:0;left:0}main.portal .portal_sidebar[data-v-1b996766]{z-index:2;position:fixed}.portal_sidebar.left-bar[data-v-1b996766]{left:0}.portal_sidebar.right-bar[data-v-1b996766]{right:0}main.portal .portal_sidebar[data-v-1b996766]:not(.active):not(.paged){cursor:pointer}main.portal .portal_sidebar.active[data-v-1b996766],main.portal .portal_sidebar[active=true][data-v-1b996766]{transform:translate(0)}}header.portal_info[data-v-1b996766]{margin:0 auto;margin-bottom:20px}.portal_info_usertype[data-v-1b996766]{font-size:26px;font-weight:700;letter-spacing:.065em;line-height:49px;text-align:center}.portal_info_date[data-v-1b996766]{font-size:15px;letter-spacing:.04em;line-height:27px;text-align:center}.portal_info_welcome[data-v-1b996766]{font-size:19px;letter-spacing:.08em;font-style:italic;line-height:27px}.portal_content[data-v-1b996766]{flex-grow:1;padding:var(--padding-portal);overflow-y:auto}.portal_content[data-v-1b996766]::-webkit-scrollbar{display:none}.portal_content__spaced[data-v-1b996766]{display:flex;flex-flow:column nowrap;justify-content:center;align-items:stretch;min-height:100%}@media (max-width:600px){.portal_content__spaced[data-v-1b996766]{justify-content:start}.portal_content[data-v-1b996766]{padding:var(--padding-portal-mobile)}}.portal_info>div[data-v-1b996766],.portal_info[data-v-1b996766]{width:100%}.portal_info_title[data-v-1b996766]{display:flex;flex-flow:row wrap;justify-content:space-between;align-items:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media (max-width:400px){main.portal .portal_sidebar[data-v-1b996766]{min-width:300px;position:fixed;top:0}}@media (max-width:340px){main.portal .portal_sidebar[data-v-1b996766]{min-width:calc(100% - 40px)}}@media (max-width:600px){main.portal .portal_sidebar[data-v-1b996766]{width:100%;height:calc(100% - var(--height-portal-mobile-nav));max-height:calc(100% - var(--height-portal-mobile-nav));top:0;left:0;right:0;transition:transform .3s ease-out,border-radius .3s ease-out,top .3s ease-out,height .3s ease-out,max-height .3s ease-out,left .3s ease-out,right .3s ease-out;border-radius:0!important}main.portal .portal_sidebar.left-bar[data-v-1b996766]{transform:translateX(-100%)}main.portal .portal_sidebar.right-bar[data-v-1b996766]{transform:translateX(100%)}main.portal[page=left] .portal_sidebar.left-bar[data-v-1b996766],main.portal[page=right] .portal_sidebar.right-bar[data-v-1b996766]{transform:translateX(0)}main.portal .portal_content[data-v-1b996766]{transition:transform .3s ease-out,opacity .3s ease-out,filter .3s ease-out}main.portal:not([page=block]) .portal_content[data-v-1b996766]{transform:scale(.9);opacity:.7;filter:blur(3px)}main.portal[data-v-1b996766]{flex-flow:column nowrap}main.portal .portal_content[data-v-1b996766]{position:unset}}.portal_mobile_nav[data-v-1b996766]{height:var(--height-portal-mobile-nav);flex:0 0 var(--height-portal-mobile-nav);width:100%;background:var(--color-bg);border-top:3px solid var(--color-on-bg);flex-flow:row nowrap;justify-content:stretch;align-items:stretch;display:none}.portal_mobile_nav .portal_mobile_nav_page[data-v-1b996766]{flex:1 1 33%;border:none;background:none;display:flex;justify-content:center;align-items:center}@media print{main.portal .portal_sidebar[data-v-1b996766]{display:none}main.portal .portal_content[data-v-1b996766]{padding:0}}.portal_mobile_nav_page__icon[data-v-1b996766]{height:40px;width:40px;background-size:contain;background-repeat:no-repeat;background-position:50%;filter:var(--filter-icon);transition:opacity .2s ease-out,scale .2s ease-out;scale:1;opacity:.5}.portal_mobile_nav_page__icon.alt[data-v-1b996766]{opacity:1;scale:1.2}.portal_mobile_nav_page__icon[src=portal-left-icon][data-v-1b996766]{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFAAAABQCAYAAACOEfKtAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAI8SURBVHgB7do/TipRFAbwM8NLgM4lsARfQkmBK/DZvU4sSKCSHYgrkIo/oVBLK3UFWlJQ4A5wB9pBQsDvxDFRI4MJmXPvJd8vMVe9k5B8mTv3nDuIEBERERERERERERERERHRLovEI41Go7RarQ7jOH7u9Xp3EgBvAkR4NQyXn/41LRQKfzudzot4LBYPNJvNf/I1PFWazWan4jnnAdbr9f3lcnn50xyW87547o84lDzzHqIo2pNAObsDNTwMm8Jri+ecBPgRHn5KKZe1B4PBk3jOfBf+bXj9fv9cAmB6B7ZarT0s2VvZkfCUaYDz+fxhw856FVJ4ymwXxtK9SgsPc3d45p1IYEyegQivjeFs3TzC026jhuX9KltC9zKx7F4yD3BTeBk5x6OgLQYyDRDhVeV9x3XhACE+SsYy3USwJA/FEavP9uIwIWSZBojN4V7cMTlPzEmGxuPxtFwu669VsaXF+LUYMCljcN53gbuxtW5ey5hcLldLypmt5PP5p50qYz5oIY3heN18UkgfSWBMDxMQopY01ZRLtJULqhsx3YXRJRyhvJikXFJLCu9gZLqJfDcajWaVSuVmsVj8x5/rDlKr2HgibECPEgDTAJWGiIC0vNEXScGH6Oy15i8PVk3asW0460QQzBTDwYbS5Vg857SV0xDxSjMtxJJ4znkvPBwOJ3Ec/1i6aG0onvPiMCH5HsyXELXcKRaLJu3YNrz8chHaumm323V5EEFERERERERERERERERERETkgTd4OshibxRgXwAAAABJRU5ErkJggg==);background-image:url(/img/left.1a536ad5.svg)}.portal_mobile_nav_page__icon[src=portal-block-icon][data-v-1b996766]{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFAAAABQCAYAAACOEfKtAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAHhSURBVHgB7do/UsJAFMfxR7RI6RFyBAsKO+EkWtIRK0u5gbECOjwJ2FNwhBzBkor4dsQZxwEHefsn4Pczs5MhzGTCj93NZndFAAAAAAAAAAAH6Uhkg8Fg1DTNcPtxNp1OH+QIvq5jdSER6Y+u9PDY6XTybbnpdruyXC7fUlzHh0wi0hpzt+NcKX/k6zo+RA1Qa8rVIediXceHYH1gWZZX6/Xa1YpbLT2JSMNc6aEaj8evEliQALWPKvQw11JIWrWW/mQyqSWQUE24DeE5hZa5aw0SiPcAtfbdSzvC+1JoVzKUQLwHqP1PsJs16Ekg3gPU4cS1tE9PAok6jDlHBGhEgEYEaHQpkehgNsrMjw6jGomIGmhEgEYEaESARgRoRIBGBGhEgEYEaESARtFe5b5zs9Y6b/i8YyWt1nOjGItBvqSqgU97liGLzWZTyQlJFWCx74tU67vHog80IkAjAjRKEqA+gd9/+bqWE5IkQH1QuL189c/zLlg3jJETkmQcqNP7Mz3M5AzQBxoRoFG0Jhx7tSyWEDVwIS2jD6eVBPIvAsyyLNj7tfcA8zx/kXaN5eqQszveA6yqyg2S+9KOEGv5vJdggm63cPN+bsNlgj2DC1dca9j+oQAAAAAAAAAAAEA6H+tKgRnawxkTAAAAAElFTkSuQmCC);background-image:url(/img/block.1b74e0f7.svg)}.portal_mobile_nav_page__icon[src=portal-right-icon][data-v-1b996766]{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFAAAABQCAYAAACOEfKtAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAJFSURBVHgB7do9bhpBHAXwB4kEpW8QynQhgpLCdOnwDWIXiI8m5ASBG8QVIArj0pXNCbA7CgqOsEdwCQXgNzK2LItFK1k788d6v2ZhGQnpaT7+M7uAiIiIiIiIiIiIiIiIiIh8ZhkY12q1zjabzbdMJjMZDAYRjDEbYKfTOVmtVtPtdlt8uccQz/v9/jUMycIohnf+NjyH38euR8IQswEyrNq++xzOV/V6vQgjzAZI0b6bHMYn2Wx22mw2CzDAcoCxc50LkRcTIX6BUfP5PCqXy+7jaUwTF+IZ20zY9hGBmA3QYTAPSUKsVCrXs9lsiQBMB+gkCXG9Xv9iiDchQrQ8B75iAd3DgTnRlTvL5fIWAZjvgS/YE+9KpVKRC8j3mCYF9tQC203gkZediNtVsId8uHZzq6+rA3er8F7sjf+Hw+FfeJJ6gCw1urz8g189DvsuPEg1QIZ3yssUYVQZ4j1SluoiwqFWQyC+/vsoVmHLUg2QE7rXFfGdO3iQahmTYDuWli7nPy/nht7KGJ7v/cAHufKFu47xoTIGz+H14In5I/23Go3GLcM7dKA6ZngX8OhoAmRJNObld9zvDHbB4/6f8OwoVuFdMX4wvFwuV0UA5ntggp1MhOeiOUIApgO0Hp5jNsAE28AIgcNzzM6BnNf+xP3GAt0d4QcPz/mKI+PC45FWdTQaRTDA8nPhxb77fKR5wfAWMMJsgPl8/hLvng3vXu3wssdNynwZ0263a9y+Fay+XCQiIiIiIiIiIiIiIiIiIiKSnidGeM9koKlfMQAAAABJRU5ErkJggg==);background-image:url(/img/right.1c358130.svg)}@media (max-width:600px){main.portal .sidebar_toggle{display:none}main.portal .portal_mobile_nav{display:flex}}.portal_bottom_bar_container{display:none}@media (min-width:675px){:has(main.calendar)>.portal_bottom_bar_container{display:flex}}@media (min-width:695px){.portal_bottom_bar_container{display:flex}} \ No newline at end of file +.sidebar_toggle[data-v-2e4cb15c]{display:none;position:absolute;bottom:calc(var(--padding-sidebar)/1.5);left:calc(var(--padding-sidebar)/1.5);height:var(--size-sidebar-button);width:var(--size-sidebar-button);cursor:pointer;z-index:1;border-radius:calc(var(--radius-sidebar) - var(--padding-sidebar)/3);border:none;background-color:var(--color-on-bg);padding:0}.sidebar_toggle.right[data-v-2e4cb15c]{left:unset;right:calc(var(--padding-sidebar)/2)}.sidebar_toggle .arrow-icon[data-v-2e4cb15c]{filter:var(--filter-icon)}.arrow-icon[data-v-2e4cb15c]{height:100%;width:100%;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAE8SURBVHgB7ZbNcYMwEEaXkCMHl0A6cAlOCTkx3HAHdGBSgUuQc+KviLgTu4Q0AOTbmRyUsQ9atNz2zTCgHQFvJO1KRIZhGIZhSHDO7cZxPJASL6RI27Z5lmW3ZVm+h2FwpICqYJqmB8jt/ppV3/dnikRVcJqmu99OkqSGZEMRqAqWZXmF5NGPQfIUI6kqyEDygmlu/BhLdl1X0woS2giM2glijR+DeFUUxRcJEAkiM/f46Rk/ygNfeeiHJfDOS4ECeSUBkHOQ21MEyHQuP2+h/UVr0Cshq8E3fiT9RSMIPnC5UFGMeP4kdiQBWyZJw9nrx9YkiXqZYZ7JzfNcS+UY9RFEple4/duHuS5C7pNWoCrIhwVk6c2Pxcgx6ocFvx0rx2gfFq6QuvMz1twlVm4TeJp5xyHDMAzDMEL4Bba/hFzaarEOAAAAAElFTkSuQmCC);background-image:url(/img/arrow-right.b158c98b.svg);background-repeat:no-repeat;background-size:contain;background-position:50%;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:none}.sidebar_toggle.right .arrow-icon[data-v-2e4cb15c]{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAFQSURBVHgB7ZbBbYMwFIYfpdy7QekG3SDqEAghDiUbNBOEbNANSE8IOHSEthOkIzACdwT0t0QkWvlg48ep75MiK8bAJ9vvN0SCIAiCIJhQ1/VjWZYhMXNDDFRVdUZz8X3/g1vSWRByued5z/PfMAiCHTHiJDjLHZd9fd9/ESOrBXVy0zRlSZK0xMgqwaZpXjRyeRzHb8SMR5agWjM0xbJvljvRBlgJqihBc9FcasmMDnt0n6bpt+F4uiULsKwFZkt3KSRDUOXvaB5Mx1vtQcjdkSN4Rmcz3moGh2HYqzDWvLQ1uR8r0OJ3IAusiwQnRQbJv0VyQpHktAHWMYOcO4/j+GsWVOSoXKQNsJ7BKxA6Qixf9qmg5s7C1YIKnST26RNm+ZOYcDqLVThD8HXZhxi5J0acv2aiKDpgaa/L2nF/LLCBU2ZXFIVzTgqCIAjCP+MHRLZ8H+zjfrcAAAAASUVORK5CYII=);background-image:url(/img/arrow-left.f0f6e9ed.svg)}@media (max-width:1200px){.sidebar_toggle[data-v-2e4cb15c]{display:block}}.class_list_header[data-v-67c6aa9f]{display:flex;flex-flow:row nowrap;align-items:center;justify-content:stretch;margin:0;height:27px;width:100%;-webkit-user-select:none;-moz-user-select:none;user-select:none;gap:var(--spacing-classes)}.class_list_header h5[data-v-67c6aa9f]{flex-grow:1}.class_list_header button[data-v-67c6aa9f]{background-color:var(--color-on-bg);padding:var(--spacing-classes-alt) calc(var(--spacing-classes-alt)*2);border-radius:5px;border:none;height:100%}.class_list[data-v-67c6aa9f]{margin:auto 0;width:100%;flex-grow:1;display:flex;flex-flow:column nowrap;align-items:stretch;justify-content:center;flex-basis:200px;flex-shrink:1}.class_list__not_empty[data-v-67c6aa9f]{flex-shrink:1;padding-bottom:40px}h5[data-v-67c6aa9f]{font-size:17px;font-weight:600;letter-spacing:.015rem;line-height:27px;text-align:center;border-radius:8px;-webkit-user-select:none;-moz-user-select:none;user-select:none}.class_list_hr[data-v-67c6aa9f]{margin:5px 0;border:none;border-top:2px solid var(--color-task-separator)}.classes_container_class[data-v-67c6aa9f]{display:flex;flex-flow:row nowrap;align-items:center;justify-content:stretch;margin:var(--spacing-classes) 0;-webkit-user-select:none;-moz-user-select:none;user-select:none;border-radius:5px;padding:var(--spacing-classes-alt);color:var(--color-text);text-decoration:none;font-weight:500}.classes_container_class[data-v-67c6aa9f]:hover{background-color:var(--color-on-bg)}.filtering .classes_container_class[data-v-67c6aa9f]:not(.classes_container_class__add_class){opacity:.7}.classes_container_class.classes_container_class__dragging[data-v-67c6aa9f],.filtering .classes_container_class.filter_active[data-v-67c6aa9f]{background-color:var(--color-class-alt);opacity:1}.classes_container_class__add_class[data-v-67c6aa9f],.classes_container_class__create_class[data-v-67c6aa9f]{background-color:var(--color-on-bg);padding:var(--spacing-classes-alt);border-radius:10px;cursor:pointer}.classes_container_class__add_class .class_name[data-v-67c6aa9f],.classes_container_class__create_class .class_name[data-v-67c6aa9f]{font-size:.8em;opacity:.7;text-align:center;flex-grow:1;padding-right:35px}.classes_container_class[data-v-67c6aa9f]>*{-webkit-user-select:none;-moz-user-select:none;user-select:none}.class_container__empty[data-v-67c6aa9f]{font-size:.8em;padding:15px 20px;border-radius:10px;text-align:center}.class_swatch__add_icon[data-v-67c6aa9f]{width:100%;height:100%;filter:var(--filter-icon);background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAADgSURBVHgB7ZfNDYMwDIWdTMBywLHdgHYDOkEZgSvJcpkgqXuo1J9UNfKrRCt/F5CFzFOQvwQiwzAMY9M4ArEsy+i9H673Oee57/sjAYAEDCFMfBkeGjs3tm17IiWeAHCY3XOtlHIgAJCAHKaplBsCAAn4TSygls0HFGvm5rk3AyF/oXNpjSdFAWue0yL1pOgT1zynRerJvxmSicDwCs6S58RDEmM8c9M96XeIxH0mHhLRPo06LJRaves6dX8TtRYLqAV1YE2VciIAqBV88aTUc5+A/TTdeZLWeM4wDMP4cS7cl04e+z7zNQAAAABJRU5ErkJggg==);background-image:url(/img/add.69c298e9.svg);background-size:contain;background-repeat:no-repeat;background-position:50%}.class_swatch__icon[data-v-67c6aa9f]{opacity:0;width:100%;height:100%;filter:var(--filter-swatch-icon);background-size:16px;background-repeat:no-repeat;background-position:50%;transition:opacity .2s ease-in-out}.class_swatch_remove__icon[data-v-67c6aa9f]{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAABUSURBVHgB7dPBCYAwEETRj42bDqIlWKElaLyKBzeyIOE/mOPCMLAgSZIkDWZu2VuOYK6bSrJKvNg9hUQ9yz0t+drEz0ULrny3kWyh/0kKkiRJ0khOpq1BxnxINkMAAAAASUVORK5CYII=);background-image:url(/img/remove.3efba5d3.svg)}.class_swatch_edit__icon[data-v-67c6aa9f]{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAADBSURBVHgB7dbBDYMwDEbhN0JH8GZlpG4QNmEERmAERmiDFC6VSVKpYAv5Sf8tQt8BRCCKoqiV5E15a1nKe+AkyVvy3l+bcYAUdJwLpFDHmSLlADcWkClSKjgKREO+uCBp4KggV05OOH7nnsr5pJwzwWlIDZc4KaHva92RGm4pz7kMN+YN9KFNcHsDjnEtpAvcVgpc4P7Q7BmHd5wGdIWDNtAUB3WgOQ76/qlmuF+AJritFce4rYH6nW/CEBdFUXT3Pq3hFbq8LkYgAAAAAElFTkSuQmCC);background-image:url(/img/edit.8aa929f0.svg)}.class_swatch:active .class_swatch__icon[data-v-67c6aa9f],.class_swatch:hover .class_swatch__icon[data-v-67c6aa9f]{opacity:1}.class_swatch[data-v-67c6aa9f]{display:inline-block;width:20px;height:20px;border-radius:30%;margin-right:15px;background-color:var(--color-class);filter:var(--filter-calendar-task);flex:0 0 auto}.classes_container_class__add_class .class_swatch[data-v-67c6aa9f],.classes_container_class__create_class .class_swatch[data-v-67c6aa9f]{background-color:var(--color-bg);filter:none}.class_name[data-v-67c6aa9f]{font-size:14px;font-weight:500;letter-spacing:.015rem;text-align:left}.action_add_shortcut_hint.out{animation:slideOut .5s forwards}.teacher_actions{display:flex;flex-flow:column nowrap;align-items:stretch;justify-content:center;flex-grow:0;flex-shrink:1;flex-basis:100px;margin:10px 0}.teacher_actions .teacher_action{display:flex;flex-flow:row nowrap;align-items:center;-webkit-user-select:none;-moz-user-select:none;user-select:none;justify-content:flex-start;flex-grow:0;height:var(--height-sidebar-action);width:100%;cursor:pointer;background-color:var(--color-bg);border-radius:10px;padding:10px;padding-left:0}.teacher_actions .teacher_action[disabled=true]{cursor:not-allowed;opacity:.5}.teacher_actions .teacher_action[disabled=true] *{pointer-events:none}.teacher_actions .teacher_action:not([disabled=true]):hover{background-color:var(--color-on-bg)}.teacher_actions .teacher_action:not(:first-child){margin-top:15px}.teacher_action__icon{display:block;flex-grow:0;flex-shrink:0;flex-basis:40px;height:40px;width:40px;background-size:40px 40px;background-repeat:no-repeat;background-position:50%;background-color:var(--color-on-bg);border-radius:10px;margin-right:10px;scale:.9;transition:scale .1s ease-out}.teacher_actions .teacher_action:not([disabled=true]):hover .teacher_action__icon{scale:.8}.teacher_action__icon>*{flex-shrink:0;filter:var(--filter-icon)}.icon__add{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAADFSURBVHgB7dTRCYMwEAbgM5O4STuFIW92ktpJ6ltIpmg3cZEkTYpPRdsrOUHw/yAQOQk/HPxEAABwHN77vhwS1JCQOdh9/rx0XTeSAEVCUkrt0r2WWMCtIGAtBKy1+4DsHiw9960+lFKnPD+/H22aR4zxufZvnk/cnmQF/ChhKawyZ604hEDSuG+yV2yt7fMa27X5PyvOs8kYM5JkwF+cc0MOdi33HPSmtR5IAGqmFgLWQsBaYgFLty3dd6WUeTkEAADH8QJjsU9mRbJObAAAAABJRU5ErkJggg==);background-image:url(/img/add.6b7bc49a.svg)}.icon__create{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAHASURBVHgB7ZfBbcIwFIZfQjghpIxAN2gnKJ2gzQEkToUNYALoBIwQekKCQ+kGbNBu0IwQCcEN6P9oVAUXwosdUCX8ScEGO/bv38/yg8hisViuG4cMmU6n/e1220XVV5oix3FGjUbjhQzQFhiGoV+pVIaotrP6ua47WiwWvU6nE5MGYoHj8bjmeV4It25p3614vV4HrVZrrvSvl0qlN/rr7Az9e+gfUVECWRwm+1AnwxbOIbjXbDY/j72XLKquNPGi7iQiPRJQLpeHm83Gx0Svq9WqK92uRMAD7QseYJxnFp5uO4ZLAiDuKSkHurFEiWAI4wNFSaicRORgegIuJ5PJF4qa0hxhq2+OtP22B0EQow9/90mAyMED1NIT45nRYVHG5HJQYYSnjifAYXnElu3CgF2iAtF1kE9wvFwu71C9h7gBnQltB/n2qFarPg5OO/37qRiknOg6GPGHIi6iM6DlYJYT/yYGL4WWgxlxlsVFY/BiFB6DRWNjMMV1xyCnWD6n+ZxumcQg54R5+oscxL27y5hxtQ3zTpCGF4jMvM913ELvkneMUn4DxCm/yEEeiAekn7zPSBj/j5GKs1gsFgvRN7YzxcfQl3i5AAAAAElFTkSuQmCC);background-image:url(/img/create.4ae5f24c.svg)}.left-bar[data-v-eb5465b8]{border-radius:0 var(--radius-sidebar) var(--radius-sidebar) 0}@media (min-width:1270px) and (max-height:1200px){main.portal .portal_sidebar[data-v-eb5465b8]{border-right:3px solid var(--color-on-bg)}}@media (max-width:1270px){main.portal .portal_sidebar[data-v-eb5465b8]{transform:translate(calc(-100% + 15px))}main.portal .portal_sidebar[data-v-eb5465b8]:hover{transform:translate(calc(-100% + 25px))}main.portal .portal_sidebar[data-v-eb5465b8]:not(.active):not(.paged) *{pointer-events:none!important;-webkit-user-select:none!important;-moz-user-select:none!important;user-select:none!important}}.theme_button[data-v-eb5465b8]{bottom:calc(var(--padding-sidebar)/1.5);left:calc(var(--padding-sidebar)/1.5);position:absolute}.sidebar_overflow[data-v-eb5465b8]::-webkit-scrollbar{display:none}.sidebar_overflow[data-v-eb5465b8]{overflow-y:auto;display:flex;flex-flow:column nowrap;width:100%;height:100%;padding:var(--padding-sidebar);padding-bottom:calc(var(--padding-sidebar) + var(--height-sidebar-action))}.task_card{display:flex;flex-flow:row nowrap;justify-content:stretch;align-items:stretch;height:var(--height-task-card);margin:10px 0;color:inherit!important}.task_card,.task_card *{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.task_card_icon{height:100%;width:var(--height-task-card);border-radius:30%;border:solid 2px var(--color-calendar-task);box-sizing:border-box;filter:var(--filter-calendar-task);overflow:hidden;flex-shrink:0}.task_card_icon_container{height:100%;width:100%;filter:var(--filter-task-card-icon);background-color:var(--color-task-card-icon)}.task_card_icon_container__img{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAYAAADhAJiYAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAHlSURBVHgB7ZY/VgIxEMZn0d5wAllOADfAE6ilHZwAvAGeQDiBtlZ4A/AEUNrtlnaGzm79Jsz6Am9xk+C+Z5Hfe3lZZvPnYzKzGaJIJNIsCQXSAejGSZJwr0p7URQbdPMcUABBglgMhCz58ciQHMKuQkQ5CcL+PQh4tASYHpvOYJ/ZY2EbwjYthUm/gf3eRWCtIPHGmnbHoqUZMVh/fmTOkHbHqWSemSte29AppGm6QCuwyZgC6Xa7E14DbVk3ttZDWCRDp7Isa/NvPj6yghho/tcVdgPerWSdTx6LddLf9jsnN7SIGUgw7wF7W46VKt715Zg0OeAqqArOpAcIeUK7wPMItsuDMdo3ZkIEmZTmB8m8nTHPn+kPCBHUQRu3Wq0Ewm5KIwcufl8fjOXMGkGs03GFCDILwzO8ub3plkVS9YdySo7x4y1IsokD+KK0sRj2AAevbbffkQdBQY2N7M+FghgldjoVL0Fyhaw95/R9Ms3XQ5xhr1TxATzCz1XTiCCJh1tqEO8YkjvN1UPMvLG0lxia+czBEa/QvbmOdxVkPCJpPyB3tlZAl+XLaXDJIOXHhAIpyw+ssagb61Kg9eSG3yvQPLALtH5d1XhGNWitP5RSL6xNKkBfvqTwv4OWd4pEIpF/zjd0jOVFNTKKzwAAAABJRU5ErkJggg==);background-image:url(/img/test-icon.d01e01a2.svg);background-repeat:no-repeat;background-size:contain;background-position:50%;padding:var(--padding-task-card-icon);filter:var(--filter-icon);height:100%;width:100%}.task_card_details{padding-left:20px;flex-grow:1;display:flex;flex-flow:column nowrap;align-items:stretch;justify-content:space-evenly}.task_card_details>*{white-space:nowrap;overflow:hidden;max-width:100%;text-overflow:ellipsis}.task_card_details__title{font-size:14px;font-weight:500}.task_card_details__extended{opacity:.5;font-size:12px;font-weight:400;display:flex;flex-flow:row nowrap;align-items:center;justify-content:flex-start}.task_card_details__extended__date{flex:auto 0 1}.task_card_details__extended__type{flex:0px 1 1}.upcoming-group-move[data-v-73205d16]{transition:transform .2s ease-out}.upcoming-group-enter-active[data-v-73205d16]{animation:slide-in-73205d16 .2s ease-out}.upcoming-group-leave-active[data-v-73205d16]{animation:slide-out-73205d16 .2s ease-out}@keyframes slide-in-73205d16{0%{scale:.8;opacity:0;margin-bottom:-50px}to{scale:1;opacity:1;margin-bottom:0}}@keyframes slide-out-73205d16{0%{scale:1;opacity:1;margin-bottom:0}to{scale:.8;opacity:0;margin-bottom:-50px}}.tasks_container_task[data-v-73205d16]{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;margin:0;transform-origin:top center}.upcoming_tasks[data-v-73205d16]{margin:auto 0;width:100%;flex-grow:1;display:flex;flex-flow:column nowrap;align-items:stretch;justify-content:center;flex-basis:200px;flex-shrink:1}.tasks_container[data-v-73205d16]{display:flex;flex-flow:column nowrap;gap:10px;margin-top:10px;max-height:290px}.tasks_container_task[data-v-73205d16]{flex:0 0 40px;height:40px}.upcoming_tasks__not_empty[data-v-73205d16]{flex-shrink:1;padding-bottom:40px}h5[data-v-73205d16]{font-size:17px;font-weight:600;letter-spacing:.015rem;line-height:27px;text-align:center}.upcoming_tasks__title[data-v-73205d16]{color:inherit}.upcoming_tasks_hr[data-v-73205d16]{margin:5px 0;border:none;border-top:2px solid var(--color-task-separator)}.loading_tasks[data-v-73205d16]{min-width:100%;max-height:150px}.right-bar[data-v-47567720]{border-radius:var(--radius-sidebar) 0 0 var(--radius-sidebar)}.sidebar_first_block[data-v-47567720]{display:flex;flex-flow:row nowrap;align-items:center;justify-content:stretch;margin-bottom:var(--padding-sidebar);gap:5px;width:calc(100% + 20px);padding:10px 8px 10px 10px;margin-top:-10px;margin-left:-10px;background:var(--color-on-bg);border-radius:calc(var(--radius-sidebar) - 10px)}.active_acc_icon[data-v-47567720],.linked_acc_icon[data-v-47567720]{flex:0 0 30px;height:30px;width:30px;display:flex;align-items:center;justify-content:center}.linked_acc_icon[data-v-47567720]{filter:var(--filter-icon)}.active_acc_icon[data-v-47567720]{border-radius:calc(var(--radius-sidebar) - var(--padding-sidebar)/2);overflow:hidden;margin-right:5px;border:solid 2px var(--color-on-bg)}.auth_logout[data-v-47567720]{flex:1 1 auto}.auth-action[data-v-47567720]{cursor:pointer}.can_logout[data-v-47567720]{height:30px;font-size:18px;line-height:30px;color:var(--color-text);font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:space-between;-webkit-user-select:none;-moz-user-select:none;user-select:none}.can_logout[data-v-47567720]:after{content:"";height:30px;width:30px;display:inline-block;filter:var(--filter-icon);background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAFiSURBVHgB7ZiBTcMwEEUfiAHYoMcGZQLCBJQJCpMgJmCEdgQ2gA1gg5oJYAPwKamc0tL4kthA5Sd9yars6MvnO58LhULhf3NkmCvYcGSi8nrx+jRq5TUjMTPsxr6rYgBdIdZdkGa8JD5s4nXTjF+9zkmAEHZhgZ1Fa/2EnhxHznPYcYxArMFfI7dBTToNvTACQjhDd9iZUifZU+u3d0IJEgYiDDO4i3Y9jTKZO8TXhOQR6t2VfQtyG3Rel2ybPP1pwQnjo2fvqmPOM6GQC7VJNf6BAaHfGVzR70p82PWxP18HU4RYQzXvmCOEECt6X99jRBi/zKy/2z4Ge8tN7hALm6XFsZnVW+Q2aDKnpDQo1Fdb+6pb1ztHhDklpcF5Y6gi9IO31I1vlDklRRbv47FRNAfTDwp2hBHoejRpezRtxkv6PZqc1xmJqBj+7MzyNu7TAOjuXzAQy18fE2y8USgUCnwBzD2Oux/Wv+sAAAAASUVORK5CYII=);background-image:url(/img/logout.3e85d292.svg);background-repeat:no-repeat;background-size:contain;background-position:100%}@media (min-width:1270px) and (max-height:1200px){main.portal .portal_sidebar[data-v-47567720]{border-left:3px solid var(--color-on-bg)}}@media (max-width:1270px){main.portal .portal_sidebar[data-v-47567720]{transform:translate(calc(100% - 15px))}main.portal .portal_sidebar[data-v-47567720]:hover{transform:translate(calc(100% - 25px))}main.portal .portal_sidebar[data-v-47567720]:not(.active):not(.paged) *{pointer-events:none!important;-webkit-user-select:none!important;-moz-user-select:none!important;user-select:none!important}}.admin_button[data-v-47567720],.settings_button[data-v-47567720]{position:absolute;display:block;bottom:calc(var(--padding-sidebar)/1.5);right:calc(var(--padding-sidebar)/1.5);z-index:1}.admin_button[data-v-47567720]{right:calc(var(--padding-sidebar)/.75 + var(--size-sidebar-button))}.sidebar_overflow[data-v-47567720]::-webkit-scrollbar{display:none}.sidebar_overflow[data-v-47567720]{overflow-y:auto;display:flex;flex-flow:column nowrap;width:100%;height:100%;padding:var(--padding-sidebar);padding-bottom:calc(var(--padding-sidebar) + var(--height-sidebar-action))}.calendar_width,main.portal_main_block{max-width:750px}@media (max-width:1270px){.calendar_width,main.portal_main_block{max-width:1000px}}@media (max-width:1270px) and (min-height:725px) and (max-height:1100px){.calendar_width,main.portal_main_block{max-width:calc(130vh - 50px)}}@media (min-height:900px) and (max-height:1200px){.calendar_width,main.portal_main_block{max-width:calc(100vh - 150px)}}@media (min-height:1200px){.calendar_width,main.portal_main_block{max-width:1300px}}@media (min-width:1270px) and (max-height:800px){main.portal_main_block{background-color:var(--color-calendar-alt)}}main.portal_main_block{width:100%;margin:0 auto;box-sizing:border-box;padding:var(--padding-calendar);padding-top:calc(var(--padding-calendar)*1.5 + var(--size-calendar-header));position:relative;background-color:var(--color-calendar);border-radius:var(--radius-calendar);box-shadow:var(--shadow-highlight);overflow:hidden}@media (max-width:600px),(min-width:1270px) and (max-height:1200px){main.portal_main_block{border:3px solid var(--color-on-bg);box-shadow:none}}@media (max-width:630px){main.portal_main_block{padding:calc(var(--padding-calendar) - var(--spacing-calendar-day))}}@media (min-width:631px){.parent.simplified .portal_main_block,.parent.simplified .study{--padding-calendar:30px;padding:15px;padding-top:calc(30px + var(--size-calendar-header))}}.portal_main_block_header{position:absolute;top:calc(var(--padding-calendar)/2);right:calc(var(--padding-calendar)/2);height:var(--size-calendar-header);width:calc(100% - var(--padding-calendar));display:flex;flex-flow:row nowrap;justify-content:space-between;align-items:stretch}.portal_main_block_header__left{height:var(--size-calendar-header);display:flex;flex-flow:row wrap;justify-content:flex-start;align-items:flex-start;gap:10px}.portal_main_block_title{font-size:1rem;font-weight:600;color:var(--color-on-calendar);background-color:var(--color-calendar-header);border-radius:calc(var(--radius-calendar)/2);padding:0 calc(var(--padding-calendar)/2);display:flex;flex-shrink:0;justify-content:center;align-items:center;-webkit-user-select:none;-moz-user-select:none;user-select:none;height:var(--size-calendar-header)}.portal_main_block_actions_wrapper{display:flex;flex-flow:row wrap;justify-content:flex-end;align-items:flex-start;gap:10px}.portal_main_block_actions{display:flex;flex-flow:row nowrap;flex-grow:0;flex-basis:calc(var(--size-calendar-header)*3);flex-shrink:0;justify-content:center;align-items:center;box-sizing:border-box;height:var(--size-calendar-header);border-radius:calc(var(--radius-calendar)/2);overflow:hidden}.portal_main_block_actions.portal_main_block_actions_freeform{flex:1 1 auto;height:unset}@media (max-width:299px){.portal_main_block_actions.portal_main_block_actions_freeform{flex-wrap:wrap}}.portal_main_block_action{height:var(--size-calendar-header);width:var(--size-calendar-header);background-color:var(--color-calendar-header);border:none;padding:0}.portal_main_block_actions_freeform{justify-content:stretch}.portal_main_block_action.portal_main_block_action_freeform{width:unset;padding:0 calc(var(--padding-calendar)/2);flex-grow:1;text-align:center}.portal_main_block_action.portal_main_block_action_alt{border-radius:calc(var(--radius-calendar)/2)}.portal_main_block_action__text{font-size:.9em;font-weight:600;color:var(--color-on-calendar);-webkit-user-select:none;-moz-user-select:none;user-select:none}.portal_main_block_action__text.active{color:var(--color-on-calendar-header-alt)}.portal_main_block_action.active,.portal_main_block_action:hover{background-color:var(--color-calendar-header-hover)}.portal_main_block_action>div{width:100%;height:100%;display:flex;flex-flow:row nowrap;justify-content:center;align-items:center;cursor:pointer;filter:var(--filter-icon);background-repeat:no-repeat;background-position:50%;background-size:contain}.portal_main_block_action .expand-icon{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAEsSURBVHgB7ZbLDYMwDIbNYwBGoJuUJZA4djKOSCzBKM0IHYBHbalIKQrEebUXfxdysJQf/8kfAwiCIAhCCBlEYhiGuizLftu2+qouyzI1z/Oj6zoFDEqIxEfc3VZHP1AURY/LBhjkEAnc2KW85hZG6+CyLA/qjG4x2lnhp4IAop3BI3QmUfAE5m6ptm1vwCCaxToWcU5EF2gSh7YrtPsFHkQVeCZuXdcGv14C2Zdkzzlam3LsShzVjuMIPrAF6jl3zDGbOAiAbfHhhag9xJ2tLwnKQZfO7Tm5r4EJOwfxDD01IQo3aVLZquN7i6tfiCN8Lf56wlKJI4JzMKU4InhYyPO8wldi2nPOdd6zESwQO3i022nes+FisYI/wO6gad4zQRa75JwgCIIgpOUNje3Q6CpNk7oAAAAASUVORK5CYII=);background-image:url(/img/expand.4ae6f575.svg)}.portal_main_block_action .expand-icon.alt{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAF2SURBVHgB7ZfLbYQwEIaHh7hwIRWEdJJ0sAghxClKKekgHZCcEAeEUsGWkBJCOtgzz8xIQUJoiQew2Ys/yeIxNvo1Hv82ABqNRqORSpqmXlmW/tb4HBMkkmWZ77ruV9M033mel2vjygXatv2MF5/uDcM4FUVxDxNxlmWdl+KHCFxiLo4YhqEKw/BHNFa5wCVxfd8/ccYrFVjX9cOSuCRJKs43bFAI1mSJgrzxea04QmkG94ojlGZwwsU0zRfHcWD0wCAIKs7AQ1Yx4mEGz+R/Y7uJD66B64OsKSar+DPhf8Es3QETrg+yBJJV4Ad9Tl/s94b1dhH167ruAxgIBVL2YOJjIkhcFEWvIAlhDZItYFY+4UawFkkcxyecZn9s+OoRi1w4jTJgr2IqaGq4fRn4+D41YZWssplrGz+iNJNsgUunElyNASiE7YN7jkx7YGVw75FpD0KBcx88UhyxygeviZvH27Zl7RDSoY2dfhm3xjUajUazjV9oO/Y7xqKPHAAAAABJRU5ErkJggg==);background-image:url(/img/expand-alt.696ce13b.svg)}.portal_main_block_action .arrow-icon.left{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAFQSURBVHgB7ZbBbYMwFIYfpdy7QekG3SDqEAghDiUbNBOEbNANSE8IOHSEthOkIzACdwT0t0QkWvlg48ep75MiK8bAJ9vvN0SCIAiCIJhQ1/VjWZYhMXNDDFRVdUZz8X3/g1vSWRByued5z/PfMAiCHTHiJDjLHZd9fd9/ESOrBXVy0zRlSZK0xMgqwaZpXjRyeRzHb8SMR5agWjM0xbJvljvRBlgJqihBc9FcasmMDnt0n6bpt+F4uiULsKwFZkt3KSRDUOXvaB5Mx1vtQcjdkSN4Rmcz3moGh2HYqzDWvLQ1uR8r0OJ3IAusiwQnRQbJv0VyQpHktAHWMYOcO4/j+GsWVOSoXKQNsJ7BKxA6Qixf9qmg5s7C1YIKnST26RNm+ZOYcDqLVThD8HXZhxi5J0acv2aiKDpgaa/L2nF/LLCBU2ZXFIVzTgqCIAjCP+MHRLZ8H+zjfrcAAAAASUVORK5CYII=);background-image:url(/img/arrow-left.f0f6e9ed.svg)}.portal_main_block_action .todo-icon{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAADFSURBVHgB7dbBDcIwDAXQH5o9KFNVPcEmlEmgp6pdglU6SKvgHCIuINkJFQL9d2kPVuQkdmSAiIiIvslZgsdx7JxzZxQIIVyapum08TsYlCaXs4YpQdl9h0KfWIP+iqmL35mm6STFv9fELsvSt207Q8mjUExOPlcpflV8VVUx/gAlUxe/sq6rKV67kaT4BOW6bsMwwHuvumLZUA+ip6xnRmqulm68y28No02HhUQa4oiM5KJNh4UkPrZyEjMycFggIiL6LQ/rvj/rxW7oUwAAAABJRU5ErkJggg==);background-image:url(/img/todo-icon.9cfc8f6e.svg)}.portal_main_block_action .todo-icon.alt{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAEySURBVHgB7dVRSsNAEADQ2Y1fguAR4kUEf6u/CeTLeALrCbqeQHsC069A8qvfEb1I7yDqV3Y6A4VC24TdbEOhzIOwSzIkk2RnFkAIIYQQx6R8guu6niGigQBKKZMkybNrvAYPockNuYdvgs5vPuY9xEnxquIuVVXltLZil1hrbZFl2RIcnUEgTo6GN2ofTvFRFN3TcAWOvKp4n7ZtYUzBX5B+V1GWJWitY5d4/sUgxMagNkNrLqZqbGgad4QUaZo+8OT/ezJrrZryXCsozq8/nsDDoCqmgsh7kuPKXvD493X7Yq0y9BUu+UCE6W8zMTB2gutKXHZdp8r+5JESynefqB7Bw6A2s94JnJttiOBG3cdanG+fQ4sL8HCQvbjPT3P3qjXy9kYJq/nFzbsBIYQQp2MFmI5jeNePQswAAAAASUVORK5CYII=);background-image:url(/img/todo-icon-alt.2a07a74f.svg)}.portal_main_block_action .session-icon{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAJtSURBVHgB7VfLceJAEG3EcicDyxGYDFabgTnwO62JwLsRIGWwGbA+UXyqcAbGGeAIPI7A3Pn5NTXCY9loegbdrFclTw/umXmMXn8gKlGiRInvjQoVgOl0Gu33+5AfngdBsMKwbLVaCzoT3gTn83m42WxuQeoG0/oJNwWyi2q1mjSbTUUe8CI4m81ud7tdnEPs80GVSowbTcgRTgRxa/X1ej2EeZ351+GmttvtiyZzhaGBJ8z43ddqtT5uc0VC/CAHZMmByAJDckprWptDg+g19uCxSUKIbxCHDXBYnM5hJ51OJzZ9JpPJDY/tdvu/+fl4PI7xZQbpHPL42+12/5EAgcSJA8JGTmOonw9gX15zPDQIBrwnFUUQ2hoYU3WCXC54jZYEg7X8R7JORBCvJEptHNInf5hR/FuywEqQhU7vIlfnJF+9VulpXe+dC8kNNgz7ic4EtPho2KHN30oQr7dubLgkASwBoIz98vwOEGnQAYr/IACeOS1RAbASRFAow77I80X+u0zTCacl5MXnrA/q8lVqw8daUZwIApHNn9MJ0tIlGa/SBCRz1DTIWiUjqiS4iVfSjQEI//KNZF36HvRU8Y3b1kg1eGfY3trSdTnFQrJGWkm4bq70IZFPAOg1obGnqPUSEez1egqv9rghB4ALya8aDd5TstapH4QW5/SxF2Ti/bx2CwOTi4yP76E9cbvl1A9ys6n7uZQkdzkPIK5gL2EfKg2i84Lr9xeJ+NCwkgO8Wv5sfyfACoQTaQ9owvtH02g0CtHXMdGf9Lm1PxLDc8dBJtUcFUXQhNZaI63bnNz5KeJnZ4kSJUp8d7wBNywzZcx0lbYAAAAASUVORK5CYII=);background-image:url(/img/session-icon.d4b6a97d.svg)}.portal_main_block_action .cal-icon{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFAAAABQCAYAAACOEfKtAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAH9SURBVHgB7drbbRpBFMbxw0U8IB5cwpaQDuKUwAOgfQpUYKeC4AqCK4A8rQT0kKQDl7Al8MTbQs5YRorii2yfmbOL9f9JiMtKA/sxl92ZEQEAAAAAAAAAvEpLHG02m+/H4/H6/otbrdVoNPom7xCrnBjcAtST/nE66RN9fzOZTObyBrHKiaUtTvQkp/9/prXnSt4oVjmxuAWoLl75mVc5USRpwsvl8mIwGIRacak15lJ83enjdjwer8RB9ACLosg6nc4vfZlJvcqqqr7keV5KQtGbcEPCC+7/yNAaJKGoAa7X66k0I7yTrN/vX0tCUQOsczR8Trvd/iwJRQ1QB4xP0jCpBzHPy5gPiQCNCNCIAI264kDvClwmLfQy6ijOqIFGBGhEgEYEaESARgRoRIBGBGhEgEYEaORyK/ev7Xb79XA4LOTxSlqpc3dzXd/9KWfEvQZqeHN5ehky0xnthZyZOppw9sKx2tZ334s+0IgAjQjQqI4Ady8cK+XMuAdYVVXYy1c+cSgEeyNnxv06MM/zlT6t5IOgDzQiQCOXJlzHapmX2JuLfkvz3ElCUQPU+9w/0jA66t9KQlED7PV6YTKglOYoH0b9ZKIGOBwOd2FbrTQjxPLhtySVbMtFURTTbrd75b1nMPTDoSvZ7/eL2Wy2EwAAAAAAAAAAAKBufwERz5Z0OqP59QAAAABJRU5ErkJggg==);background-image:url(/img/cal-icon.e18a9802.svg)}.portal_main_block_action .cal-icon.alt{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFAAAABQCAYAAACOEfKtAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAALkSURBVHgB7dtNbtpAGAbgb0wEFWVBT1DnBukJAruq3RRFSQSb0hOQnqDkBCUngK6Q+JHYtFvgBHCDuieARbpABU+/oUGiaQpO5gecvI9kJbaRE7+ZP3smRAAAAAAAAAAAAAAQiSCH2u32JynlxfIHC9E4PT39SA9g6jomOAuQb/rz6qZXeP/y/Py8Svdg6jqmeOQI32T59jEuPRW6J1PXMcVZgCwb8Zir6xhhpQrX6/VsJpNRpSLHJSZHbo15uzo7O2uQA8YDbDabfiKR6PO3Pu1WsFgs8sViMSCLjFfhPQlPWf4hVW0gi4wG2Gq1yrQf4a346XT6giwyGuAue8P/8TzvmCwyGiB3GEe0Z2x3Yi6HMY8SAtSEADUhQE0H5AA/FTh5acHDKEmOoQRqQoCaEKAmBKgJAWpCgJoQoCYEqAkBakKAmpw8yq3rdDrvwzCs0b8zaQG/u6vy/O4XihHnJZDDq9Ld05A+v9GuUczsogr7G87tbH73odAGanpUAarXZmrj+eBDbk8LvFlvT513Ii7cTKarrccT/VWyaBclcLrhXECGxW5lwjZcvdRavuCOUyrYS4oZ51WYS0SDvzTIkEk/l312kK5IKXJSUu7m8FiG8iqT/9Ygy2LdiUz6r/2k93wUhqK6Fp5yJDxR/zl8+119hiyKdYBJb+tCJl99RpVSssRJFTYxWzafzwulUqm32r/uvylTtIVMfpKWC4yqZIHpxUUDsiSVSo3+OuBFX8gkEsLaAiOjAfJz7pAsOTk5+bG+zxPNkRcy3WofjTIaYDKZVC8DAnpCjAZYKBSmalktWQix2+2+XN+XggYU3ZgsMd4Lq5E/P48ecpAfuE009ovPZrNX6/tyISM3F2pMSJY4/U8lkyb9d9mU92skt/TEfINB+vjrIVkS23Hgi3xvKsJFXmxoLtQ59RmyKLYlcN1yTChERYg/PTP3ugN+tBtm6Lom8oMpAQAAAAAAAAAAAADE3m9BcO24/u6wNQAAAABJRU5ErkJggg==);background-image:url(/img/cal-icon-alt.2b775a5c.svg)}.portal_main_block_actions .arrow-icon.right{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAE8SURBVHgB7ZbNcYMwEEaXkCMHl0A6cAlOCTkx3HAHdGBSgUuQc+KviLgTu4Q0AOTbmRyUsQ9atNz2zTCgHQFvJO1KRIZhGIZhSHDO7cZxPJASL6RI27Z5lmW3ZVm+h2FwpICqYJqmB8jt/ppV3/dnikRVcJqmu99OkqSGZEMRqAqWZXmF5NGPQfIUI6kqyEDygmlu/BhLdl1X0woS2giM2glijR+DeFUUxRcJEAkiM/f46Rk/ygNfeeiHJfDOS4ECeSUBkHOQ21MEyHQuP2+h/UVr0Cshq8E3fiT9RSMIPnC5UFGMeP4kdiQBWyZJw9nrx9YkiXqZYZ7JzfNcS+UY9RFEple4/duHuS5C7pNWoCrIhwVk6c2Pxcgx6ocFvx0rx2gfFq6QuvMz1twlVm4TeJp5xyHDMAzDMEL4Bba/hFzaarEOAAAAAElFTkSuQmCC);background-image:url(/img/arrow-right.b158c98b.svg)}@media (max-width:630px){.portal_main_block_header{position:unset;flex-flow:row wrap;justify-content:stretch;align-items:stretch;height:unset;margin:0;width:100%;gap:var(--gap-calendar-header);margin-bottom:var(--margin-calendar-header)}.portal_main_block_header>*{flex-basis:100px;flex-shrink:1;flex-grow:1;width:100%}.portal_main_block_title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;text-align:center;line-height:var(--size-calendar-header);height:var(--size-calendar-header);flex:1 1 auto}.portal_main_block_actions>.portal_main_block_action{flex-grow:1}}.loading_cover[data-v-523271bf]{position:absolute;top:0;left:0;width:100%;height:100%;z-index:1;display:flex;flex-flow:column nowrap;align-items:center;justify-content:center;pointer-events:all;cursor:wait;z-index:10;box-sizing:border-box}.loading_cover__overlay[data-v-523271bf]{position:absolute;top:0;left:0;width:100%;height:100%;background-color:var(--color-loading-overlay,var(--color-overlay));-webkit-backdrop-filter:var(--bg-filter-loading);backdrop-filter:var(--bg-filter-loading);z-index:2047}.parent.simplified .loading_cover__overlay[data-v-523271bf]{background-color:var(--color-calendar)}.loading_cover__content[data-v-523271bf]{z-index:2048}.loading_cover__content__text[data-v-523271bf]{font-size:1.5rem;font-weight:500;color:var(--color-overlay-text);text-align:center;margin-top:1rem;width:100%}circle[data-v-523271bf]{fill:var(--color-loading-dot);r:var(--dot-size,3px)}.loading_cover[data-v-523271bf],.loading_cover__content[data-v-523271bf]{display:flex;flex-flow:column nowrap;align-items:stretch;justify-content:stretch;height:100%}.loading_cover__content__icon[data-v-523271bf]{display:flex;flex-flow:row nowrap;align-items:center;justify-content:center;flex-grow:1}.study-group-move[data-v-ab6e49c6],.study_list:not(.study-group-move) .study-list-move[data-v-ab6e49c6]{transition:transform .2s ease-out}.study-group-enter-active[data-v-ab6e49c6]{animation:scale-in-ab6e49c6 .15s ease-out}.study-group-leave-active[data-v-ab6e49c6]{animation:scale-out-ab6e49c6 .15s ease-in}.parent.simplified .study_list_group[data-v-ab6e49c6] *{transition:none!important;animation:none!important}@keyframes scale-in-ab6e49c6{0%{scale:.9;opacity:0}to{scale:1;opacity:1}}@keyframes scale-out-ab6e49c6{0%{scale:1;opacity:1}to{scale:.8;opacity:0}}.study_name[data-v-ab6e49c6]{max-width:-moz-fit-content;max-width:fit-content}.study_list_group[data-v-ab6e49c6]:empty:before{content:"No upcoming tasks found";color:var(--text-color);font-weight:500;opacity:.5;text-align:center;width:100%;height:100%;padding-bottom:calc(var(--padding-calendar)*.5 + var(--size-calendar-header));display:flex;align-items:center;justify-content:center}.study_list_group.filtered[data-v-ab6e49c6]:empty:before{content:"No upcoming tasks found in selected classes"}.study_list_group[data-v-ab6e49c6]:not(:empty){display:flex;align-content:flex-start;justify-content:flex-start;flex-flow:column wrap;gap:10px;max-height:450px;height:70vh;overflow-y:auto}.study_list_group[data-v-ab6e49c6]:not(:empty)::-webkit-scrollbar-corner{display:none}.study_list_group[data-v-ab6e49c6]:not(:empty)::-webkit-scrollbar{background:var(--color-calendar);height:16px;width:16px}.study_list_group[data-v-ab6e49c6]:not(:empty)::-webkit-scrollbar-thumb{width:8px;height:8px;background:var(--color-calendar-header);border-radius:10px;border:4px solid var(--color-calendar)}.study_list_group[data-v-ab6e49c6]:empty{max-height:70vh;height:450px}.study_list[data-v-ab6e49c6]{color:var(--color-class);background-color:var(--color-class-alt);padding:var(--padding-study-class);border-radius:var(--radius-calendar-day);display:flex;flex-flow:column nowrap;gap:var(--gap-study-class);flex:1 1 160px;width:50%;max-width:300px}.study_list .study_list__name[data-v-ab6e49c6]{font-size:.8rem;font-weight:600;color:var(--color-class)}.study_list hr.study_list__separator[data-v-ab6e49c6]{border:0;height:2px;background-color:var(--color-class);opacity:.5;margin:0}.study_list_tasks[data-v-ab6e49c6]{display:flex;flex-flow:column nowrap;gap:10px}.study_list_tasks .study_list_task[data-v-ab6e49c6]{display:flex;flex-flow:row nowrap;align-items:stretch}.study_list_tasks .study_list_task .study_list_task_checkbox[data-v-ab6e49c6]{height:var(--height-calendar-task);opacity:0;width:0;scale:0;transform-origin:center center;flex-shrink:0;flex-grow:0;border-radius:5px;transition:width .15s ease-in-out,opacity .125s ease-in-out 25ms,scale .15s ease-in-out;display:flex;flex-flow:row nowrap;justify-content:center;align-items:center;cursor:pointer;overflow:hidden;position:relative}.study_list_task_checkbox .study_list_task_checkbox__fixed[data-v-ab6e49c6]{height:var(--height-calendar-task);min-width:var(--height-calendar-task);display:flex;position:relative}.study_list_task_checkbox__dot[data-v-ab6e49c6]{border-radius:5px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);height:80%;width:80%;opacity:.75;background-color:var(--color-class);transition:width .15s ease-in-out,height .15s ease-in-out,opacity .15s ease-in-out,border-radius .15s ease-in-out}.study_list_task[finished=true] .study_list_task_checkbox__dot[data-v-ab6e49c6]{border-radius:var(--height-calendar-task);height:8px;width:8px;opacity:.4}.study_list_task[finished=true] .study_list_task_checkbox__fixed:hover:not(.study-list-move) .study_list_task_checkbox__dot[data-v-ab6e49c6]{opacity:.6}.study_list_task_checkbox__fixed:hover:not(.study-list-move) .study_list_task_checkbox__dot[data-v-ab6e49c6]{height:12px;width:12px;border-radius:4px}.study_list_tasks .study_list_task .study_list_task__boxed[data-v-ab6e49c6]{white-space:nowrap;flex:1 1 auto;overflow:hidden;text-overflow:clip;position:relative;font-size:.8rem;font-weight:600;border-radius:5px;height:var(--height-calendar-task);display:flex;flex-flow:row nowrap;justify-content:center;align-items:center;transition:margin-left .15s ease-in-out,padding .15s ease-in-out,width .15s ease-out,opacity .15s ease-out}.study_list_tasks .study_list_task .study_list_task__date[data-v-ab6e49c6]{margin-left:var(--gap-study-checkbox);flex-shrink:0;flex-grow:0;width:4em;opacity:.6;-webkit-user-select:none;-moz-user-select:none;user-select:none;cursor:default;white-space:nowrap;overflow:hidden;text-align:center;text-overflow:clip}.study_list_tasks .study_list_task[finished=true] .study_list_task__boxed.study_list_task__date[data-v-ab6e49c6]{opacity:0;padding:var(--padding-calendar-task) 0;width:0;margin-left:0}.study_list_tasks .study_list_task .study_list_task__name[data-v-ab6e49c6]{cursor:pointer}.study_list_tasks .study_list_task .study_list_task__name .study_list_task__name__text[data-v-ab6e49c6]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%;display:inline-block}.study_list_tasks .study_list_task:not([finished=true]) .study_list_task__boxed[data-v-ab6e49c6]{filter:var(--filter-calendar-task);padding:var(--padding-calendar-task);color:var(--color-on-calendar-task);background-color:var(--color-class)}.study_list_tasks .study_list_task[finished=true] .study_list_task__boxed[data-v-ab6e49c6]{text-decoration:line-through;filter:var(--filter-calendar-task);padding:var(--padding-calendar-task);color:var(--color-class);opacity:.5}.study_list_task:hover:not(.study-list-move) .study_list_task_checkbox[data-v-ab6e49c6]{width:var(--height-calendar-task);opacity:1;scale:1}.study_list_tasks .study_list_task:hover:not(.study-list-move) .study_list_task__boxed[data-v-ab6e49c6]{margin-left:var(--gap-study-checkbox)}@media (max-width:630px){.study_list_group[data-v-ab6e49c6]{padding:var(--spacing-calendar-day)}.study_list_tasks .study_list_task .study_list_task_checkbox[data-v-ab6e49c6]{width:var(--height-calendar-task);opacity:1;scale:1}.study_list_tasks .study_list_task .study_list_task__boxed[data-v-ab6e49c6]{margin-left:var(--gap-study-checkbox)}.study_list_group[data-v-ab6e49c6]:not(:empty){display:flex;flex-flow:column nowrap;gap:10px;max-height:unset;height:auto}.study_list[data-v-ab6e49c6]{flex:1 1 auto;max-width:unset;width:100%}@media (max-width:450px){.portal_main_block_title.study_name[data-v-ab6e49c6]{display:none}}}@media (max-width:1270px) and (min-width:600px){.study_list[data-v-ab6e49c6]{max-width:33.33%;min-height:120px;flex-basis:auto;flex-shrink:0}}@media (max-width:800px) and (min-width:600px){.study_list_group[data-v-ab6e49c6]:not(:empty){flex-flow:row wrap}.study_list[data-v-ab6e49c6]{flex-basis:33.33%;max-width:calc(50% - 5px)}}.fullpage_toggle_button[data-v-ab6e49c6]{display:none;background:transparent;border:solid var(--color-calendar-header) 2px}@media (max-width:1285px) and (min-width:1270px),(min-width:630px) and (max-width:805px){.may_break_text[data-v-ab6e49c6]{display:none}}@media (min-width:695px){main.study.study_fullpage[data-v-ab6e49c6]{border:none;box-shadow:none;border-radius:0;top:0;left:0;position:fixed;max-width:unset;width:100%;height:100%;box-sizing:border-box;overflow-y:hidden;z-index:4}.portal_bottom_bar_container+main.study.study_fullpage[data-v-ab6e49c6]{padding-bottom:calc(var(--height-bottom-bar) + var(--padding-calendar))}.fullpage_toggle_button[data-v-ab6e49c6]{display:flex}main.study.study_fullpage .study_list_group[data-v-ab6e49c6]:not(:empty){max-height:unset;height:100%}}@media (min-width:800px){main.study.study_fullpage .study_list_group[data-v-ab6e49c6]:not(:empty){max-height:550px;align-content:center}}@media (min-width:800px) and (min-height:720px){main.study.study_fullpage .study_list_group[data-v-ab6e49c6]:not(:empty){margin-top:calc(50vh - var(--padding-calendar)*1.5/2 - var(--size-calendar-header)/2 - var(--padding-calendar)/2 - 275px)}.portal_bottom_bar_container+main.study.study_fullpage .study_list_group[data-v-ab6e49c6]:not(:empty){margin-top:calc(50vh - var(--padding-calendar)*1.5/2 - var(--size-calendar-header)/2 - var(--height-bottom-bar)/2 - var(--padding-calendar)/2 - 275px)}}@media (min-width:675px){.portal:has(main.study.study_fullpage) .portal_sidebar{z-index:0}}.fullpage_toggle_button[data-v-26a03c10]{display:none;background:transparent;border:solid var(--color-calendar-header) 2px}main.calendar[data-v-26a03c10]{overscroll-behavior-x:contain}@media (min-width:675px){main.calendar.calendar_fullpage[data-v-26a03c10]{border:none;box-shadow:none;border-radius:0;top:0;left:0;position:fixed;max-width:unset;width:100%;height:100%;box-sizing:border-box;overflow-y:hidden;z-index:4}.fullpage_toggle_button[data-v-26a03c10]{display:flex}.portal_bottom_bar_container+main.calendar.calendar_fullpage[data-v-26a03c10]{padding-bottom:calc(var(--height-bottom-bar) + var(--padding-calendar))}main.calendar.calendar_fullpage .calendar_days_container[data-v-26a03c10]{height:100%;width:100%;overflow-y:auto}main.calendar.calendar_fullpage .calendar_days_container[data-v-26a03c10]:before{display:none}main.calendar.calendar_fullpage .calendar_days[data-v-26a03c10]{position:relative;grid-template-rows:var(--height-calendar-weekday-label) repeat(6,minmax(100px,1fr))}}.calendar_days_container[data-v-26a03c10]{width:100%;position:relative}.calendar_days_container[data-v-26a03c10]:before{content:"";display:block;padding-top:80%}.calendar_days[data-v-26a03c10]{position:absolute;top:0;left:0;width:100%;height:100%;display:grid;grid-template-columns:repeat(7,1fr);grid-template-rows:var(--height-calendar-weekday-label) repeat(6,1fr);grid-gap:var(--gap-calendar-day);box-sizing:border-box;padding:0}.calendar_days[data-v-26a03c10]:empty:after{content:"No tasks scheduled";font-size:1.5rem;font-weight:600;color:var(--color-on-calendar);text-align:center;margin:1.5rem 0}.calendar_day[data-v-26a03c10]{height:100%;display:flex;flex-flow:column nowrap;justify-content:stretch;align-items:stretch;background-color:var(--color-calendar-day);border-radius:var(--radius-calendar-day);-webkit-user-select:none;-moz-user-select:none;user-select:none;position:relative;overflow:hidden}.calendar_day__today[data-v-26a03c10]{--color-calendar-day:var(--color-calendar-day-today)}.calendar_day[data-v-26a03c10]:after{content:"";display:block;position:absolute;bottom:-1px;left:0;width:100%;height:calc(var(--spacing-calendar-day) + 1px);-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:none;background:linear-gradient(to bottom,hsla(0,0%,100%,0) 0,var(--color-calendar-day) var(--spacing-calendar-day));z-index:5}.calendar_day_date[data-v-26a03c10]{display:flex;flex-flow:row nowrap;justify-content:center;align-items:center;font-weight:700;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background-color:var(--color-calendar-date);font-size:11px;color:var(--color-on-calendar-date);margin:var(--spacing-calendar-day);height:var(--size-calendar-day-date);width:var(--size-calendar-day-date);border-radius:calc(var(--radius-calendar-day)/1.5);-webkit-user-select:none;-moz-user-select:none;user-select:none;z-index:2}.calendar_day__weekday_label[data-v-26a03c10]{padding:5px;line-height:calc(var(--height-calendar-weekday-label) - 10px);color:var(--color-calendar-weekday-label);font-weight:600;font-size:.8em}.calendar_day__weekday_label span.calendar_day__weekday_label__text[data-v-26a03c10]{text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.calendar_day[data-v-26a03c10]:before{opacity:0;transition:opacity .2s ease-out;content:""}.calendar_day.calendar_day__drag_to[data-v-26a03c10]:not(.calendar_day__drag_from):before{display:flex;flex-flow:row nowrap;justify-content:center;align-items:center;position:absolute;top:0;left:0;width:100%;height:100%;content:"🠻";font-size:30px;font-weight:700;color:var(--color-dragging);background-color:var(--color-dragging-alt);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:6;opacity:1}.calendar_day.calendar_day__drag_class_to[data-v-26a03c10]:not(.calendar_day__drag_from):before{content:"+"}.calendar_day.calendar_day__placeholder[data-v-26a03c10]>*{opacity:.2;transition:opacity .2s ease-out}.calendar_day.calendar_day__placeholder.calendar_day__drag_to[data-v-26a03c10]>*,.calendar_day.calendar_day__placeholder[data-v-26a03c10]:hover>*{opacity:1;transition-duration:.5s}.calendar_day.calendar_day__placeholder.calendar_day__drag_to>.calendar_day_tasks[data-v-26a03c10],.calendar_day.calendar_day__placeholder:hover>.calendar_day_tasks[data-v-26a03c10]{visibility:visible}.calendar_day.calendar_day__placeholder[data-v-26a03c10]{opacity:.5;scale:.9;transition:opacity .2s ease-out,scale .2s ease-out}.calendar_day.calendar_day__placeholder.calendar_day__drag_to[data-v-26a03c10],.calendar_day.calendar_day__placeholder[data-v-26a03c10]:hover{opacity:.85;scale:1}.calendar_day_tasks[data-v-26a03c10]{height:100%;width:100%;position:absolute;padding:var(--spacing-calendar-day);padding-top:calc(var(--size-calendar-day-date) + var(--spacing-calendar-day)*2);overflow-y:auto;z-index:1;display:flex;flex-flow:column nowrap;justify-content:flex-start;align-items:stretch}.calendar_day_tasks[data-v-26a03c10]::-webkit-scrollbar{display:none}.calendar_day_tasks[data-v-26a03c10]{-ms-overflow-style:none;scrollbar-width:none}.calendar_day_task[data-v-26a03c10]{white-space:nowrap;flex-shrink:0;overflow:hidden;text-overflow:clip;position:relative;padding:var(--padding-calendar-task);color:var(--color-on-calendar-task);background-color:var(--color-calendar-task);font-size:.8rem;font-weight:600;border-radius:5px;text-align:center;height:var(--height-calendar-task);filter:var(--filter-calendar-task);cursor:pointer;display:flex;flex-flow:row nowrap;justify-content:flex-start;align-items:center}.calendar_day_task[data-v-26a03c10]:first-of-type{margin-top:auto}.calendar_day_task[data-v-26a03c10]:not(:last-of-type){margin-bottom:var(--spacing-calendar-day)}.calendar_day_task>span[data-v-26a03c10]{text-align:center;width:100%;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.calendar_day_task[is_note=true][data-v-26a03c10]{padding:0}.calendar_day_task[is_note=true]>span[data-v-26a03c10]{width:100%;height:100%;display:flex;flex-flow:row nowrap;background-color:var(--color-calendar-note)}.calendar_day_task[is_note=true]>span>.calendar_day_task__swatch[data-v-26a03c10]{display:block;height:calc(var(--height-calendar-task) - 8px);flex:0 0 calc(var(--height-calendar-task) - 8px);margin:4px;border-radius:3px;background-color:var(--color-calendar-task)}.calendar_day_task[is_note=true]>span>.calendar_day_task__note[data-v-26a03c10]{display:block;flex:1 1;color:var(--color-on-calendar-note);font-size:.9em;font-weight:700;line-height:var(--height-calendar-task);padding:0 var(--padding-calendar-task)}.calendar_day_task .calendar_day_task_editable[data-v-26a03c10]{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;flex-flow:row nowrap;justify-content:center;align-items:center;overflow:hidden;border-radius:5px;background-color:var(--color-calendar-task);opacity:0;z-index:2;transition:opacity .2s ease-out}.calendar_day_task.calendar_day_task__dragging .calendar_day_task_editable[data-v-26a03c10],.calendar_day_task:active .calendar_day_task_editable[data-v-26a03c10],.calendar_day_task:hover .calendar_day_task_editable[data-v-26a03c10]{opacity:1}.calendar_day_task.calendar_day_task__dragging[data-v-26a03c10]:not(.calendar_day_task__loading){opacity:.001}.calendar_day_task.calendar_day_task__finished[data-v-26a03c10]{text-decoration:line-through;color:var(--color-calendar-task);background:none;transition:opacity .1s ease-out;opacity:.5;border:solid 2px var(--color-calendar-task)}main .calendar_day_task__finished[data-v-26a03c10]:hover:not(:active){transform:none}.calendar_day_task.calendar_day_task__finished[data-v-26a03c10]:hover{opacity:1}.calendar_day_task__finished[data-v-26a03c10]:has(.calendar_day_task_editable):hover,.calendar_day_task__loading.calendar_day_task__finished[data-v-26a03c10]{border:none}.task_icon[data-v-26a03c10]{width:100%;height:100%;background-size:20px}.task_icon.loading_bg[data-v-26a03c10]{background-size:40px;filter:none}.task_edit__icon[data-v-26a03c10]{filter:var(--filter-swatch-icon);background-repeat:no-repeat;background-position:50%;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAADBSURBVHgB7dbBDYMwDEbhN0JH8GZlpG4QNmEERmAERmiDFC6VSVKpYAv5Sf8tQt8BRCCKoqiV5E15a1nKe+AkyVvy3l+bcYAUdJwLpFDHmSLlADcWkClSKjgKREO+uCBp4KggV05OOH7nnsr5pJwzwWlIDZc4KaHva92RGm4pz7kMN+YN9KFNcHsDjnEtpAvcVgpc4P7Q7BmHd5wGdIWDNtAUB3WgOQ76/qlmuF+AJritFce4rYH6nW/CEBdFUXT3Pq3hFbq8LkYgAAAAAElFTkSuQmCC);background-image:url(/img/edit.8aa929f0.svg)}.calendar_day_task[is_note=false][data-v-26a03c10]:not(.calendar_day__weekday_label,.calendar_day_task__finished):after{content:"";display:block;width:calc(var(--padding-calendar-task) + 2px);height:100%;right:0;top:0;position:absolute;background:linear-gradient(to right,hsla(0,0%,100%,0) 0,var(--color-calendar-task) 100%);margin-top:5px;z-index:1}@media (max-width:630px){.calendar_days_container[data-v-26a03c10]:before{display:none}.calendar_days_container[data-v-26a03c10]{padding:var(--spacing-calendar-day)}.calendar_days[data-v-26a03c10]{position:unset;top:unset;left:unset;height:unset;display:flex;flex-flow:column nowrap;justify-content:stretch;align-items:stretch}.calendar_day.calendar_day__placeholder[data-v-26a03c10],.calendar_day[data-v-26a03c10]:not(.calendar_day__hastask),.calendar_days.calendar_days__current:not(.calendar_days__changed) .calendar_day__past[data-v-26a03c10]{display:none}.calendar_day[data-v-26a03c10]{flex-shrink:0;margin-bottom:var(--spacing-calendar-day);height:unset;max-height:unset;align-items:flex-start}.calendar_day_date[data-v-26a03c10]{width:unset;padding:.25rem .5rem}.calendar_day_date__short[data-v-26a03c10]{display:none}.calendar__no_tasks[data-v-26a03c10],.calendar_day_date__long[data-v-26a03c10]{display:unset!important}.calendar_day_date[data-v-26a03c10]{height:unset}.calendar__no_tasks[data-v-26a03c10]{color:var(--color-text-on-calendar);font-weight:500;text-align:center;margin:10% 0}.calendar_day_tasks[data-v-26a03c10]{position:unset;padding:0;padding-top:10px;flex-flow:row wrap;flex-basis:calc(var(--height-calendar-task) + var(--spacing-calendar-day)*2);box-sizing:content-box;overflow-y:unset}.calendar_day[data-v-26a03c10]:after,.calendar_day_tasks[data-v-26a03c10]:after{display:none}.calendar_day_task[data-v-26a03c10]{margin:var(--spacing-calendar-day)!important;flex-grow:1;white-space:normal;height:unset;min-height:var(--height-calendar-task);flex-basis:70px}}@media (min-width:631px){.parent.simplified .calendar_days_container[data-v-26a03c10]{border-radius:var(--radius-calendar-day);overflow:hidden}.parent.simplified .calendar_days_container .calendar_days[data-v-26a03c10]{--radius-calendar-day:0px;--gap-calendar-day:2px}.parent.simplified .calendar_days_container .calendar_days .calendar_day_date[data-v-26a03c10]{--radius-calendar-day:5px}}@media (min-width:630px){.portal:has(main.calendar.calendar_fullpage) .portal_sidebar{z-index:0}}.class_bar[data-v-b0bc2fda]{flex-flow:row nowrap;align-items:center;justify-content:space-between;gap:10px;overflow-x:auto}.class_bar[data-v-b0bc2fda]::-webkit-scrollbar{display:none}.class_bar_item[data-v-b0bc2fda]{border-radius:calc(var(--radius-bottom-bar) - 10px);height:calc(var(--height-bottom-bar) - 6px - var(--padding-bottom-bar)*2);display:flex;justify-content:center;align-items:center;flex:0 0 auto}.class_bar_item__button[data-v-b0bc2fda]{padding:0 10px;background:var(--color-on-bg);font-size:.8em;color:var(--color-text);font-weight:600;cursor:pointer;border:none;width:-moz-max-content;width:max-content}.class_bar_item__button[data-v-b0bc2fda]:disabled{opacity:.5;cursor:not-allowed}.class_bar_item__button span[data-v-b0bc2fda]{opacity:.7}.class_bar_class[data-v-b0bc2fda]{font-size:16px;width:calc(var(--height-bottom-bar) - 6px - var(--padding-bottom-bar)*2);filter:var(--filter-calendar-task);color:var(--color-class);background:var(--color-class-alt);border:solid 2px var(--color-class)}.class_container__empty[data-v-b0bc2fda]{opacity:.75;width:6px;height:6px;border-radius:3px;background:var(--color-on-bg)}.class_container__empty .parent.simplified .class_bar_class[data-v-b0bc2fda]{color:var(--color-on-calendar-task);background:var(--color-class);border:none}.class_bar.filtering .class_bar_class.filter_active[data-v-b0bc2fda]{background:var(--color-class);color:var(--color-on-calendar-task)}.class_bar.filtering .class_bar_class[data-v-b0bc2fda]:not(.filter_active){background:none}.parent.simplified .class_bar.filtering .class_bar_class[data-v-b0bc2fda]:not(.filter_active){background:var(--color-class-alt)}.class_bar_class.classes_container_class__dragging[data-v-b0bc2fda]{width:-moz-max-content;width:max-content;padding:0 10px;font-size:14px;transform:translate(0)}main.portal[data-v-1b996766]{background-color:var(--color-secondary);width:100%;height:100%;display:flex;flex-flow:row nowrap;justify-content:space-between}main.portal .portal_sidebar[data-v-1b996766]{box-shadow:var(--shadow-highlight);flex-basis:300px;width:300px;flex-grow:0;flex-shrink:0;background-color:var(--color-bg);position:relative;box-sizing:border-box;padding:0}main.portal .portal_bottom_bar_container[data-v-1b996766]{position:fixed;z-index:5;bottom:calc(var(--padding-calendar)/2);left:50%;max-width:calc(100% - 20px);transform:translateX(-50%);gap:10px;height:var(--height-bottom-bar)}main.portal .portal_bottom_bar_container .portal_bottom_bar[data-v-1b996766]{background-color:var(--color-bg);border:3px solid var(--color-on-bg);border-radius:var(--radius-bottom-bar);padding:var(--padding-bottom-bar);display:flex;height:var(--height-bottom-bar)}main.portal .portal_bottom_bar_container .portal_bottom_button_wrapper[data-v-1b996766]{display:flex;gap:10px;flex:0 0 auto;justify-content:center;align-items:center;height:var(--height-bottom-bar)}main.portal .portal_sidebar[data-v-1b996766]{height:100%;transition:transform .3s ease-out,box-shadow .3s ease-out,border-width .3s ease-out,border-radius .3s ease-out;display:flex;flex-flow:column nowrap}@media (min-height:800px){main.portal .portal_sidebar[data-v-1b996766]{max-height:800px;top:calc(50% - 400px)}}@media (max-width:600px),(min-width:1270px) and (max-height:1200px){main.portal .portal_sidebar[data-v-1b996766]{--radius-sidebar:15px;border-radius:0!important;box-shadow:none!important;height:100%;top:0;max-height:unset}main.portal[data-v-1b996766]{background-color:var(--color-bg)}}@media (max-width:1270px){main.portal .portal_content[data-v-1b996766]{position:absolute;z-index:1;height:100%;width:100%;top:0;left:0}main.portal .portal_sidebar[data-v-1b996766]{z-index:2;position:fixed}.portal_sidebar.left-bar[data-v-1b996766]{left:0}.portal_sidebar.right-bar[data-v-1b996766]{right:0}main.portal .portal_sidebar[data-v-1b996766]:not(.active):not(.paged){cursor:pointer}main.portal .portal_sidebar.active[data-v-1b996766],main.portal .portal_sidebar[active=true][data-v-1b996766]{transform:translate(0)}}header.portal_info[data-v-1b996766]{margin:0 auto;margin-bottom:20px}.portal_info_usertype[data-v-1b996766]{font-size:26px;font-weight:700;letter-spacing:.065em;line-height:49px;text-align:center}.portal_info_date[data-v-1b996766]{font-size:15px;letter-spacing:.04em;line-height:27px;text-align:center}.portal_info_welcome[data-v-1b996766]{font-size:19px;letter-spacing:.08em;font-style:italic;line-height:27px}.portal_content[data-v-1b996766]{flex-grow:1;padding:var(--padding-portal);overflow-y:auto}.portal_content[data-v-1b996766]::-webkit-scrollbar{display:none}.portal_content__spaced[data-v-1b996766]{display:flex;flex-flow:column nowrap;justify-content:center;align-items:stretch;min-height:100%}@media (max-width:600px){.portal_content__spaced[data-v-1b996766]{justify-content:start}.portal_content[data-v-1b996766]{padding:var(--padding-portal-mobile)}}.portal_info>div[data-v-1b996766],.portal_info[data-v-1b996766]{width:100%}.portal_info_title[data-v-1b996766]{display:flex;flex-flow:row wrap;justify-content:space-between;align-items:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media (max-width:400px){main.portal .portal_sidebar[data-v-1b996766]{min-width:300px;position:fixed;top:0}}@media (max-width:340px){main.portal .portal_sidebar[data-v-1b996766]{min-width:calc(100% - 40px)}}@media (max-width:600px){main.portal .portal_sidebar[data-v-1b996766]{width:100%;height:calc(100% - var(--height-portal-mobile-nav));max-height:calc(100% - var(--height-portal-mobile-nav));top:0;left:0;right:0;transition:transform .3s ease-out,border-radius .3s ease-out,top .3s ease-out,height .3s ease-out,max-height .3s ease-out,left .3s ease-out,right .3s ease-out;border-radius:0!important}main.portal .portal_sidebar.left-bar[data-v-1b996766]{transform:translateX(-100%)}main.portal .portal_sidebar.right-bar[data-v-1b996766]{transform:translateX(100%)}main.portal[page=left] .portal_sidebar.left-bar[data-v-1b996766],main.portal[page=right] .portal_sidebar.right-bar[data-v-1b996766]{transform:translateX(0)}main.portal .portal_content[data-v-1b996766]{transition:transform .3s ease-out,opacity .3s ease-out,filter .3s ease-out}main.portal:not([page=block]) .portal_content[data-v-1b996766]{transform:scale(.9);opacity:.7;filter:blur(3px)}main.portal[data-v-1b996766]{flex-flow:column nowrap}main.portal .portal_content[data-v-1b996766]{position:unset}}.portal_mobile_nav[data-v-1b996766]{height:var(--height-portal-mobile-nav);flex:0 0 var(--height-portal-mobile-nav);width:100%;background:var(--color-bg);border-top:3px solid var(--color-on-bg);flex-flow:row nowrap;justify-content:stretch;align-items:stretch;display:none}.portal_mobile_nav .portal_mobile_nav_page[data-v-1b996766]{flex:1 1 33%;border:none;background:none;display:flex;justify-content:center;align-items:center}@media print{main.portal .portal_sidebar[data-v-1b996766]{display:none}main.portal .portal_content[data-v-1b996766]{padding:0}}.portal_mobile_nav_page__icon[data-v-1b996766]{height:40px;width:40px;background-size:contain;background-repeat:no-repeat;background-position:50%;filter:var(--filter-icon);transition:opacity .2s ease-out,scale .2s ease-out;scale:1;opacity:.5}.portal_mobile_nav_page__icon.alt[data-v-1b996766]{opacity:1;scale:1.2}.portal_mobile_nav_page__icon[src=portal-left-icon][data-v-1b996766]{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFAAAABQCAYAAACOEfKtAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAI8SURBVHgB7do/TipRFAbwM8NLgM4lsARfQkmBK/DZvU4sSKCSHYgrkIo/oVBLK3UFWlJQ4A5wB9pBQsDvxDFRI4MJmXPvJd8vMVe9k5B8mTv3nDuIEBERERERERERERERERHRLovEI41Go7RarQ7jOH7u9Xp3EgBvAkR4NQyXn/41LRQKfzudzot4LBYPNJvNf/I1PFWazWan4jnnAdbr9f3lcnn50xyW87547o84lDzzHqIo2pNAObsDNTwMm8Jri+ecBPgRHn5KKZe1B4PBk3jOfBf+bXj9fv9cAmB6B7ZarT0s2VvZkfCUaYDz+fxhw856FVJ4ymwXxtK9SgsPc3d45p1IYEyegQivjeFs3TzC026jhuX9KltC9zKx7F4yD3BTeBk5x6OgLQYyDRDhVeV9x3XhACE+SsYy3USwJA/FEavP9uIwIWSZBojN4V7cMTlPzEmGxuPxtFwu669VsaXF+LUYMCljcN53gbuxtW5ey5hcLldLypmt5PP5p50qYz5oIY3heN18UkgfSWBMDxMQopY01ZRLtJULqhsx3YXRJRyhvJikXFJLCu9gZLqJfDcajWaVSuVmsVj8x5/rDlKr2HgibECPEgDTAJWGiIC0vNEXScGH6Oy15i8PVk3asW0460QQzBTDwYbS5Vg857SV0xDxSjMtxJJ4znkvPBwOJ3Ec/1i6aG0onvPiMCH5HsyXELXcKRaLJu3YNrz8chHaumm323V5EEFERERERERERERERERERETkgTd4OshibxRgXwAAAABJRU5ErkJggg==);background-image:url(/img/left.1a536ad5.svg)}.portal_mobile_nav_page__icon[src=portal-block-icon][data-v-1b996766]{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFAAAABQCAYAAACOEfKtAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAHhSURBVHgB7do/UsJAFMfxR7RI6RFyBAsKO+EkWtIRK0u5gbECOjwJ2FNwhBzBkor4dsQZxwEHefsn4Pczs5MhzGTCj93NZndFAAAAAAAAAAAH6Uhkg8Fg1DTNcPtxNp1OH+QIvq5jdSER6Y+u9PDY6XTybbnpdruyXC7fUlzHh0wi0hpzt+NcKX/k6zo+RA1Qa8rVIediXceHYH1gWZZX6/Xa1YpbLT2JSMNc6aEaj8evEliQALWPKvQw11JIWrWW/mQyqSWQUE24DeE5hZa5aw0SiPcAtfbdSzvC+1JoVzKUQLwHqP1PsJs16Ekg3gPU4cS1tE9PAok6jDlHBGhEgEYEaHQpkehgNsrMjw6jGomIGmhEgEYEaESARgRoRIBGBGhEgEYEaESARtFe5b5zs9Y6b/i8YyWt1nOjGItBvqSqgU97liGLzWZTyQlJFWCx74tU67vHog80IkAjAjRKEqA+gd9/+bqWE5IkQH1QuL189c/zLlg3jJETkmQcqNP7Mz3M5AzQBxoRoFG0Jhx7tSyWEDVwIS2jD6eVBPIvAsyyLNj7tfcA8zx/kXaN5eqQszveA6yqyg2S+9KOEGv5vJdggm63cPN+bsNlgj2DC1dca9j+oQAAAAAAAAAAAEA6H+tKgRnawxkTAAAAAElFTkSuQmCC);background-image:url(/img/block.1b74e0f7.svg)}.portal_mobile_nav_page__icon[src=portal-right-icon][data-v-1b996766]{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFAAAABQCAYAAACOEfKtAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAJFSURBVHgB7do9bhpBHAXwB4kEpW8QynQhgpLCdOnwDWIXiI8m5ASBG8QVIArj0pXNCbA7CgqOsEdwCQXgNzK2LItFK1k788d6v2ZhGQnpaT7+M7uAiIiIiIiIiIiIiIiIiIh8ZhkY12q1zjabzbdMJjMZDAYRjDEbYKfTOVmtVtPtdlt8uccQz/v9/jUMycIohnf+NjyH38euR8IQswEyrNq++xzOV/V6vQgjzAZI0b6bHMYn2Wx22mw2CzDAcoCxc50LkRcTIX6BUfP5PCqXy+7jaUwTF+IZ20zY9hGBmA3QYTAPSUKsVCrXs9lsiQBMB+gkCXG9Xv9iiDchQrQ8B75iAd3DgTnRlTvL5fIWAZjvgS/YE+9KpVKRC8j3mCYF9tQC203gkZediNtVsId8uHZzq6+rA3er8F7sjf+Hw+FfeJJ6gCw1urz8g189DvsuPEg1QIZ3yssUYVQZ4j1SluoiwqFWQyC+/vsoVmHLUg2QE7rXFfGdO3iQahmTYDuWli7nPy/nht7KGJ7v/cAHufKFu47xoTIGz+H14In5I/23Go3GLcM7dKA6ZngX8OhoAmRJNObld9zvDHbB4/6f8OwoVuFdMX4wvFwuV0UA5ntggp1MhOeiOUIApgO0Hp5jNsAE28AIgcNzzM6BnNf+xP3GAt0d4QcPz/mKI+PC45FWdTQaRTDA8nPhxb77fKR5wfAWMMJsgPl8/hLvng3vXu3wssdNynwZ0263a9y+Fay+XCQiIiIiIiIiIiIiIiIiIiKSnidGeM9koKlfMQAAAABJRU5ErkJggg==);background-image:url(/img/right.1c358130.svg)}@media (max-width:600px){main.portal .sidebar_toggle{display:none}main.portal .portal_mobile_nav{display:flex}}.portal_bottom_bar_container{display:none}@media (min-width:675px){:has(main.calendar)>.portal_bottom_bar_container{display:flex}}@media (min-width:695px){.portal_bottom_bar_container{display:flex}} \ No newline at end of file diff --git a/docs/global.html b/docs/global.html index 5ab9f66e..cef1eced 100644 --- a/docs/global.html +++ b/docs/global.html @@ -1,3 +1,3 @@ Global
On this page

Members

(constant) _status

Properties
NameTypeDescription
printfunction

Prints a message to the console with the current tone

logfunction

Logs a message to the console

infofunction

Logs an info message to the console

debugfunction

Logs a debug message to the console

warnfunction

Logs a warning message to the console

errorfunction

Logs an error message to the console

_getTonefunction

Gets the current tone

_setTonefunction

Sets the current tone

_resetTonefunction

Resets the current tone to "info"

Example
_status.log("Hello world!");

Methods

_log(args)

Log function, takes any number of arguments. If the first character is nonstandard and followed by a space, it'll use that as a tag

Parameters:
NameTypeDescription
argsany

Any number of arguments

Example
_log("Hello world!");

_statuslog()

A bound version of _log with the tone set to "info"

Example
_statuslog("Hello world!");

compatDateObj(date) → {Date}

Converts a date string to a Date object (in a format that Safari can handle)

Parameters:
NameTypeDescription
dateString
Returns:
Type: 
Date

downloadLogData()

downloads a file with given log data

getFirstNonStandardCharacter()

Imperfect helper for _status.log()

msToTime(ms) → {String}

Converts milliseconds to hours:minutes:seconds timestamp; only includes hours if non-zero

Parameters:
NameTypeDescription
msNumber
Returns:
Type: 
String

save()

Save log to file

state()

Function to create a clean store state, used for initialization. Will attempt to load from window.localStorage variable to save on firebase calls -> isn't always stable after app update that changes state keyings

\ No newline at end of file +
On this page

Members

(constant) _status

Properties
NameTypeDescription
printfunction

Prints a message to the console with the current tone

logfunction

Logs a message to the console

infofunction

Logs an info message to the console

debugfunction

Logs a debug message to the console

warnfunction

Logs a warning message to the console

errorfunction

Logs an error message to the console

_getTonefunction

Gets the current tone

_setTonefunction

Sets the current tone

_resetTonefunction

Resets the current tone to "info"

Example
_status.log("Hello world!");

Methods

_log(args)

Log function, takes any number of arguments. If the first character is nonstandard and followed by a space, it'll use that as a tag

Parameters:
NameTypeDescription
argsany

Any number of arguments

Example
_log("Hello world!");

_statuslog()

A bound version of _log with the tone set to "info"

Example
_statuslog("Hello world!");

compatDateObj(date) → {Date}

Converts a date string to a Date object (in a format that Safari can handle)

Parameters:
NameTypeDescription
dateString
Returns:
Type: 
Date

downloadLogData()

downloads a file with given log data

getFirstNonStandardCharacter()

Imperfect helper for _status.log()

msToTime(ms) → {String}

Converts milliseconds to hours:minutes:seconds timestamp; only includes hours if non-zero

Parameters:
NameTypeDescription
msNumber
Returns:
Type: 
String

save()

Save log to file

state()

Function to create a clean store state, used for initialization. Will attempt to load from window.localStorage variable to save on firebase calls -> isn't always stable after app update that changes state keyings

\ No newline at end of file diff --git a/docs/main.actions.html b/docs/main.actions.html index 7e7f7819..2ab197c7 100644 --- a/docs/main.actions.html +++ b/docs/main.actions.html @@ -1,3 +1,3 @@ Namespace: actions
On this page

store.main. actions

The actions to manipulate the store state

Methods

(static) add_class(teacher_email, class_id, class_name, class_period) → {Promise}

Add a class to the active user's document, and show a toast saying that the class was added

Parameters:
NameTypeDescription
teacher_emailString

The email of the teacher whose class it is

class_idString

The id of the class to add

class_nameString

The name of the class being added

class_periodNumber

The period of the class being added

See
  • classes
Returns:

A promise that resolves to nothing or rejects with an {String} error

Type: 
Promise

(static) archive_task(task_ref) → {Promise}

Archive an instance of a task from a class (for teachers). Intended to be preformed from the ViewTask Modal

Parameters:
NameTypeDescription
task_refString

the "email/class_id" String representation of the task ref in firebase

See
  • create_task
Returns:

A promise that resolves to nothing or rejects with an {String} error

Type: 
Promise

(static) class_from_ref(ref) → {Promise}

Get the class object from a class reference

Parameters:
NameTypeDescription
refString

The class reference to get the class object from

Returns:

A promise that resolves to the class object or rejects with an error

Type: 
Promise

(static) class_text(class_obj) → {String}

get the smart text associated with a given class

Parameters:
NameTypeDescription
class_objString
Returns:

text - the formatted name text associated with the class data

Type: 
String

(static) clear()

Reset the store state and local storage, and redirect to home if page requires auth

(static) code_from_ref(ref)

Create a proxy code from a ref (email/uid)

Parameters:
NameTypeDescription
refString

ref in email/uid format

See
  • hash

(static) create_class(class_obj) → {Promise}

Create a class with the given object, and add it to the active user's document. (for teachers)

Parameters:
NameTypeDescription
class_objObject

The class object to with the class data, document will be created in /classes under the teacher's email with these contents

See
  • is_teacher
  • teacher
Returns:

A promise that resolves to nothing or rejects with an {String} error

Type: 
Promise

(static) create_doc()

Create the user's document in the remote database, create a teacher document if the user is a teacher, and create a personal account if the user is using a personal account. Also preforms onboarding for non-teacher

See
  • create_teacher_doc
  • update_remote
  • get_remote

(static) create_task(task_obj, task_classes) → {Promise}

Create a task with the given object, and add it to the classes specified in the object. (for teachers)

Parameters:
NameTypeDescription
task_objObject

The task object to with the task data, data will be added to /classes docs

task_classesArray

The classes to add the task to

Returns:

A promise that resolves to nothing or rejects with an {String} error

Type: 
Promise

(static) create_teacher_doc()

Create the teacher document for the user, and redirect to the create class page

See
  • create_doc
  • is_teacher

(static) doc_from_uid(uid) → {Promise}

Get a user document from a uid

Parameters:
NameTypeDescription
uidString

The uid of the user to get the document for

See
  • getDoc
  • link_account_uid
Returns:

A promise that resolves to the {Object} user document or rejects with an {String} error

Type: 
Promise

(static) fetch_classes() → {Array}

Fetch all classes from the user's document and combine them into an array, while checking for duplicates and invalid classes

See
  • classes
  • fetch_classes_by_email
  • remove_invalid
  • remove_class
  • remove_class_id_helper
Returns:

Array of all (unique) classes from the user's document

Type: 
Array

(static) fetch_classes_by_email(email)

Fetch all classes for a given email, and set the loaded classes to the result

Parameters:
NameTypeDescription
emailString

The email to fetch classes for

See
  • loaded_classes
  • loaded_email
  • fetch_classes

(static) finish_tutorial() → {Promise}

Set the user's tutorial status to finished

See
  • done_tutorial
Returns:

A promise that resolves to nothing or rejects with an {String} error

Type: 
Promise

(static) get_cached_surveys(dates) → {Promise}

Get the survey data for the given dates for this user, using the cached data in the active doc. If the data does not include the given dates, get the data from the server and save it to use as the cashe

Parameters:
NameTypeDescription
datesArray

Array of dates to get the survey data for

See
  • save_daily_survey
  • done_daily_survey
Returns:

Promise resolving to survey data for the given dates, with date objects added to each object

Type: 
Promise

(static) get_remote()

Get the user's document from the remote database, and create it if it doesn't exist. Preforms additional checks for personal accounts, and removes the linked account if it doesn't exist

See
  • create_doc
  • update_remote
  • active_doc

(static) get_surveys(dates) → {Array}

Get the survey data for the given dates for this user

Parameters:
NameTypeDescription
datesArray

Array of dates to get the survey data for

See
  • save_daily_survey
  • done_daily_survey
Returns:

The survey data for the given dates, with date objects added to each object

Type: 
Array

(static) get_tasks() → {Promise}

Get all tasks from all classes

Default Value
  • []
See
  • fetch_classes
Returns:

Promise that resolves to Array of all tasks from all classes, with class name and color added

Type: 
Promise

(static) hash(ref) → {String}

Parameters:
NameTypeDescription
refString

ref in email/uid format

See
  • code_from_ref
Returns:

6-character code from ref

Type: 
String

(static) hide_timeout()

Hide the popup saying that the session has timed out

See
  • show_timeout
  • refresh_timeout

(static) invite_linked(email) → {Promise}

Invite a user account to link to another user's account (for personal accounts only,) including sending them an email with the code to join

Parameters:
NameTypeDescription
emailString

The email of the user to invite (and send an invite email to)

Returns:

A promise that resolves to nothing or rejects with an {String} error

Type: 
Promise

Link a user account to another user's account by uid (for personal accounts only)

Parameters:
NameTypeDescription
uidString

The uid of the user to link to

See
  • invite_linked
Returns:

A promise that resolves to nothing or rejects with an {String} error

Type: 
Promise

(static) login() → {Promise}

Log the user in with Google OAuth (using the appropriate prompt type based on window support), and set the user object.

See
  • user
  • logout
Returns:

A promise that resolves to nothing or rejects with an {String} error

Type: 
Promise

(static) login_personal() → {Promise}

Most things that login() does, but for personal accounts (does not preform org account check, enforce sign-in domain, or redirect)

See
  • personal_account
  • user
  • login
Returns:

A promise that resolves to nothing or rejects with an {String} error

Type: 
Promise

(static) login_promise() → {Promise}

A wrapper for the store.user state, to wait for the user to be set

See
  • user
  • login
Returns:

A promise that resolves to the user object

Type: 
Promise

(static) logout()

Log the user out and clear the store state

See
  • clear

(static) note_for(ref) → {String}

Get the note for the given ref

Parameters:
NameTypeDescription
refString

The ref of the task to get the note for

See
  • set_note
  • notes
Returns:

The note for the given ref

Type: 
String

(static) path_to_ref(path) → {String}

Convert a path to a ref (email~class_id?~task_id)

Parameters:
NameTypeDescription
pathString

The path to convert

Default Value
  • null
Returns:

The ref (email~class_id?~task_id)

Type: 
String

(static) ref_from_code(code) → {Promise}

Get the ref (email/uid) from a code

Parameters:
NameTypeDescription
codeString

The code to get the ref for

Returns:

A promise that resolves to the ref (email/uid) or rejects with an error

Type: 
Promise

(static) ref_to_path(path) → {String}

Convert a ref to a path (email/class_id?/task_id)

Parameters:
NameTypeDescription
pathString

The path to convert

Default Value
  • null
Returns:

The ref (email/class_id?/task_id)

Type: 
String

(static) refresh_timeout(delay)

A proxy for the refreshTimeout function in firebase.ts (to reduce unnecessary onSnapshot calls)

Parameters:
NameTypeDescription
delayNumber

The delay in milliseconds to refresh the timeout for (default 1000 set in firebase.ts)

See
  • refreshTimeout

(static) remove_class()

Remove a class from the active user's document, and show a toast saying that the class was removed manually

See
  • remove_class_id_helper

(static) remove_class_id_helper()

Helper function to remove a class from the active user's document and save changes to remote

See
  • remove_class
  • remove_invalid
  • fetch_classes

(static) remove_invalid()

Remove a class from the active user's document, and show a toast saying that the class was removed because it was invalid

See
  • remove_class_id_helper

(static) report_logs() → {Promise}

save logs to server for debugging later, with some session data attached

Returns:
Type: 
Promise

(static) save_daily_survey(responses) → {Promise}

Save the responses from the daily survey to the active user's document

Parameters:
NameTypeDescription
responsesObject

The responses from the daily survey to save

See
  • done_daily_survey
Returns:

A promise that resolves to nothing or rejects with an {String} error

Type: 
Promise

(static) save_join_form(responses) → {Promise}

Save the responses from the join form to the active user's document

Parameters:
NameTypeDescription
responsesObject

The responses from the join form to save

Returns:

A promise that resolves to nothing or rejects with an {String} error

Type: 
Promise

(static) set_account_pref(pref, value) → {Promise}

Set a preference in the account doc

Parameters:
NameTypeDescription
prefString

The preference to set

valueString

The value to set the preference to

Returns:

A promise that resolves to nothing or rejects with an {String} error

Type: 
Promise

(static) set_active(data)

Set the active document (the signed-in account's doc, or the linked account's if it exists) to the provided document

Parameters:
NameTypeDescription
dataObject

The document data to replace the active document (account_doc or linked_doc) with

(static) set_finished(finished, ref) → {Promise}

set a task with the given ref to finished in the finished array of the active doc (remove if finished is false, add path if finished is true)

Parameters:
NameTypeDescription
finishedBoolean

The finished status to set

refString

The ref of the task to check

See
  • is_finished
Returns:

A promise that resolves to nothing or rejects with an {String} error

Type: 
Promise

(static) set_note(note, ref) → {Promise}

set a task with the given path to have a note in the keyed "notes" property of the active doc (remove if value is falsey, add note if truthy)

Parameters:
NameTypeDescription
noteString

The note to set

refString

The ref of the task to set the note for

See
  • note_for
  • notes
Returns:

A promise that resolves to nothing or rejects with an {String} error

Type: 
Promise

(static) set_user()

Set the user object and load the user's document, with some additional checks and error handling. Also set the user's document if it exists, or create it if it doesn't, and logs them out if the account is deemed invalid

See
  • user
  • authChangeAction
  • account_doc
  • linked_account_doc
  • personal_account

(static) show_timeout()

Show a popup saying that the session has timed out

See
  • hide_timeout
  • refresh_timeout

(static) task_from_ref(ref) → {Promise}

Get the task object from a task reference

Parameters:
NameTypeDescription
refString

The task reference to get the task object from

Returns:

A promise that resolves to the task object or rejects with an {String} error

Type: 
Promise

(static) toggle_simplified()

Toggle the simplified display view

See
  • account_doc

(static) toggle_teacher() → {Promise}

Toggle teacher mode (for testing)

See
  • is_teacher
Returns:

A promise that resolves to nothing or rejects with an {String} error

Type: 
Promise

(static) toggle_theme()

Toggle the theme between light and dark, and save to local storage and user account doc

See
  • get_theme
  • theme

(static) uninvite_linked() → {Promise}

Unlink a user account from another user's account (for personal accounts only)

See
  • invite_linked
Returns:

A promise that resolves to nothing or rejects with an {String} error

Type: 
Promise

(static) upcoming_from_ref(ref, class_obj)

Get the next 4 upcoming task objects for a given class reference

Parameters:
NameTypeDescription
refString
class_objObject

(static) update_class(class_ref, class_obj) → {Promise}

Update an instance of a class (for teachers). Intended to be preformed from the EditClass Modal

Parameters:
NameTypeDescription
class_refString

the "email/class_id" String representation of the class ref in firebase

class_objObject

The updated class object

Returns:

A promise that resolves to nothing or rejects with an error

Type: 
Promise

(static) update_remote()

Update the active user's document in the remote database

See
  • get_remote
  • active_doc
  • active_ref

(static) update_task(task_ref, task_obj) → {Promise}

Update an instance of a task from a class (for teachers). Intended to be preformed from the EditTask Modal

Parameters:
NameTypeDescription
task_refString

the "email/class_id/task_id" String representation of the task ref in firebase

task_objObject

The updated task object

Returns:

A promise that resolves to nothing or rejects with an {String} error

Type: 
Promise

(static) update_wrapper_acc_doc()

Update the authenticated user's document in the remote database (for personal accounts only)

See
  • update_remote
  • personal_account

(static) update_wrapper_acc_doc()

Update the authenticated user's document in the remote database with the data given (for personal accounts only)

See
  • update_remote
  • personal_account
  • update_wrapper_acc_doc
\ No newline at end of file +
On this page

store.main. actions

The actions to manipulate the store state

Methods

(static) add_class(teacher_email, class_id, class_name, class_period) → {Promise}

Add a class to the active user's document, and show a toast saying that the class was added

Parameters:
NameTypeDescription
teacher_emailString

The email of the teacher whose class it is

class_idString

The id of the class to add

class_nameString

The name of the class being added

class_periodNumber

The period of the class being added

See
  • classes
Returns:

A promise that resolves to nothing or rejects with an {String} error

Type: 
Promise

(static) archive_task(task_ref) → {Promise}

Archive an instance of a task from a class (for teachers). Intended to be preformed from the ViewTask Modal

Parameters:
NameTypeDescription
task_refString

the "email/class_id" String representation of the task ref in firebase

See
  • create_task
Returns:

A promise that resolves to nothing or rejects with an {String} error

Type: 
Promise

(static) class_from_ref(ref) → {Promise}

Get the class object from a class reference

Parameters:
NameTypeDescription
refString

The class reference to get the class object from

Returns:

A promise that resolves to the class object or rejects with an error

Type: 
Promise

(static) class_text(class_obj) → {String}

get the smart text associated with a given class

Parameters:
NameTypeDescription
class_objString
Returns:

text - the formatted name text associated with the class data

Type: 
String

(static) clear()

Reset the store state and local storage, and redirect to home if page requires auth

(static) code_from_ref(ref)

Create a proxy code from a ref (email/uid)

Parameters:
NameTypeDescription
refString

ref in email/uid format

See
  • hash

(static) create_class(class_obj) → {Promise}

Create a class with the given object, and add it to the active user's document. (for teachers)

Parameters:
NameTypeDescription
class_objObject

The class object to with the class data, document will be created in /classes under the teacher's email with these contents

See
  • is_teacher
  • teacher
Returns:

A promise that resolves to nothing or rejects with an {String} error

Type: 
Promise

(static) create_doc()

Create the user's document in the remote database, create a teacher document if the user is a teacher, and create a personal account if the user is using a personal account. Also preforms onboarding for non-teacher

See
  • create_teacher_doc
  • update_remote
  • get_remote

(static) create_task(task_obj, task_classes) → {Promise}

Create a task with the given object, and add it to the classes specified in the object. (for teachers)

Parameters:
NameTypeDescription
task_objObject

The task object to with the task data, data will be added to /classes docs

task_classesArray

The classes to add the task to

Returns:

A promise that resolves to nothing or rejects with an {String} error

Type: 
Promise

(static) create_teacher_doc()

Create the teacher document for the user, and redirect to the create class page

See
  • create_doc
  • is_teacher

(static) doc_from_uid(uid) → {Promise}

Get a user document from a uid

Parameters:
NameTypeDescription
uidString

The uid of the user to get the document for

See
  • getDoc
  • link_account_uid
Returns:

A promise that resolves to the {Object} user document or rejects with an {String} error

Type: 
Promise

(static) fetch_classes() → {Array}

Fetch all classes from the user's document and combine them into an array, while checking for duplicates and invalid classes

See
  • classes
  • fetch_classes_by_email
  • remove_invalid
  • remove_class
  • remove_class_id_helper
Returns:

Array of all (unique) classes from the user's document

Type: 
Array

(static) fetch_classes_by_email(email)

Fetch all classes for a given email, and set the loaded classes to the result

Parameters:
NameTypeDescription
emailString

The email to fetch classes for

See
  • loaded_classes
  • loaded_email
  • fetch_classes

(static) finish_tutorial() → {Promise}

Set the user's tutorial status to finished

See
  • done_tutorial
Returns:

A promise that resolves to nothing or rejects with an {String} error

Type: 
Promise

(static) get_cached_surveys(dates) → {Promise}

Get the survey data for the given dates for this user, using the cached data in the active doc. If the data does not include the given dates, get the data from the server and save it to use as the cashe

Parameters:
NameTypeDescription
datesArray

Array of dates to get the survey data for

See
  • save_daily_survey
  • done_daily_survey
Returns:

Promise resolving to survey data for the given dates, with date objects added to each object

Type: 
Promise

(static) get_remote()

Get the user's document from the remote database, and create it if it doesn't exist. Preforms additional checks for personal accounts, and removes the linked account if it doesn't exist

See
  • create_doc
  • update_remote
  • active_doc

(static) get_surveys(dates) → {Array}

Get the survey data for the given dates for this user

Parameters:
NameTypeDescription
datesArray

Array of dates to get the survey data for

See
  • save_daily_survey
  • done_daily_survey
Returns:

The survey data for the given dates, with date objects added to each object

Type: 
Array

(static) get_tasks() → {Promise}

Get all tasks from all classes

Default Value
  • []
See
  • fetch_classes
Returns:

Promise that resolves to Array of all tasks from all classes, with class name and color added

Type: 
Promise

(static) hash(ref) → {String}

Parameters:
NameTypeDescription
refString

ref in email/uid format

See
  • code_from_ref
Returns:

6-character code from ref

Type: 
String

(static) hide_timeout()

Hide the popup saying that the session has timed out

See
  • show_timeout
  • refresh_timeout

(static) invite_linked(email) → {Promise}

Invite a user account to link to another user's account (for personal accounts only,) including sending them an email with the code to join

Parameters:
NameTypeDescription
emailString

The email of the user to invite (and send an invite email to)

Returns:

A promise that resolves to nothing or rejects with an {String} error

Type: 
Promise

Link a user account to another user's account by uid (for personal accounts only)

Parameters:
NameTypeDescription
uidString

The uid of the user to link to

See
  • invite_linked
Returns:

A promise that resolves to nothing or rejects with an {String} error

Type: 
Promise

(static) login() → {Promise}

Log the user in with Google OAuth (using the appropriate prompt type based on window support), and set the user object.

See
  • user
  • logout
Returns:

A promise that resolves to nothing or rejects with an {String} error

Type: 
Promise

(static) login_personal() → {Promise}

Most things that login() does, but for personal accounts (does not preform org account check, enforce sign-in domain, or redirect)

See
  • personal_account
  • user
  • login
Returns:

A promise that resolves to nothing or rejects with an {String} error

Type: 
Promise

(static) login_promise() → {Promise}

A wrapper for the store.user state, to wait for the user to be set

See
  • user
  • login
Returns:

A promise that resolves to the user object

Type: 
Promise

(static) logout()

Log the user out and clear the store state

See
  • clear

(static) note_for(ref) → {String}

Get the note for the given ref

Parameters:
NameTypeDescription
refString

The ref of the task to get the note for

See
  • set_note
  • notes
Returns:

The note for the given ref

Type: 
String

(static) path_to_ref(path) → {String}

Convert a path to a ref (email~class_id?~task_id)

Parameters:
NameTypeDescription
pathString

The path to convert

Default Value
  • null
Returns:

The ref (email~class_id?~task_id)

Type: 
String

(static) ref_from_code(code) → {Promise}

Get the ref (email/uid) from a code

Parameters:
NameTypeDescription
codeString

The code to get the ref for

Returns:

A promise that resolves to the ref (email/uid) or rejects with an error

Type: 
Promise

(static) ref_to_path(path) → {String}

Convert a ref to a path (email/class_id?/task_id)

Parameters:
NameTypeDescription
pathString

The path to convert

Default Value
  • null
Returns:

The ref (email/class_id?/task_id)

Type: 
String

(static) refresh_timeout(delay)

A proxy for the refreshTimeout function in firebase.ts (to reduce unnecessary onSnapshot calls)

Parameters:
NameTypeDescription
delayNumber

The delay in milliseconds to refresh the timeout for (default 1000 set in firebase.ts)

See
  • refreshTimeout

(static) remove_class()

Remove a class from the active user's document, and show a toast saying that the class was removed manually

See
  • remove_class_id_helper

(static) remove_class_id_helper()

Helper function to remove a class from the active user's document and save changes to remote

See
  • remove_class
  • remove_invalid
  • fetch_classes

(static) remove_invalid()

Remove a class from the active user's document, and show a toast saying that the class was removed because it was invalid

See
  • remove_class_id_helper

(static) report_logs() → {Promise}

save logs to server for debugging later, with some session data attached

Returns:
Type: 
Promise

(static) save_daily_survey(responses) → {Promise}

Save the responses from the daily survey to the active user's document

Parameters:
NameTypeDescription
responsesObject

The responses from the daily survey to save

See
  • done_daily_survey
Returns:

A promise that resolves to nothing or rejects with an {String} error

Type: 
Promise

(static) save_join_form(responses) → {Promise}

Save the responses from the join form to the active user's document

Parameters:
NameTypeDescription
responsesObject

The responses from the join form to save

Returns:

A promise that resolves to nothing or rejects with an {String} error

Type: 
Promise

(static) set_account_pref(pref, value) → {Promise}

Set a preference in the account doc

Parameters:
NameTypeDescription
prefString

The preference to set

valueString

The value to set the preference to

Returns:

A promise that resolves to nothing or rejects with an {String} error

Type: 
Promise

(static) set_active(data)

Set the active document (the signed-in account's doc, or the linked account's if it exists) to the provided document

Parameters:
NameTypeDescription
dataObject

The document data to replace the active document (account_doc or linked_doc) with

(static) set_finished(finished, ref) → {Promise}

set a task with the given ref to finished in the finished array of the active doc (remove if finished is false, add path if finished is true)

Parameters:
NameTypeDescription
finishedBoolean

The finished status to set

refString

The ref of the task to check

See
  • is_finished
Returns:

A promise that resolves to nothing or rejects with an {String} error

Type: 
Promise

(static) set_note(note, ref) → {Promise}

set a task with the given path to have a note in the keyed "notes" property of the active doc (remove if value is falsey, add note if truthy)

Parameters:
NameTypeDescription
noteString

The note to set

refString

The ref of the task to set the note for

See
  • note_for
  • notes
Returns:

A promise that resolves to nothing or rejects with an {String} error

Type: 
Promise

(static) set_user()

Set the user object and load the user's document, with some additional checks and error handling. Also set the user's document if it exists, or create it if it doesn't, and logs them out if the account is deemed invalid

See
  • user
  • authChangeAction
  • account_doc
  • linked_account_doc
  • personal_account

(static) show_timeout()

Show a popup saying that the session has timed out

See
  • hide_timeout
  • refresh_timeout

(static) task_from_ref(ref) → {Promise}

Get the task object from a task reference

Parameters:
NameTypeDescription
refString

The task reference to get the task object from

Returns:

A promise that resolves to the task object or rejects with an {String} error

Type: 
Promise

(static) toggle_simplified()

Toggle the simplified display view

See
  • account_doc

(static) toggle_teacher() → {Promise}

Toggle teacher mode (for testing)

See
  • is_teacher
Returns:

A promise that resolves to nothing or rejects with an {String} error

Type: 
Promise

(static) toggle_theme()

Toggle the theme between light and dark, and save to local storage and user account doc

See
  • get_theme
  • theme

(static) uninvite_linked() → {Promise}

Unlink a user account from another user's account (for personal accounts only)

See
  • invite_linked
Returns:

A promise that resolves to nothing or rejects with an {String} error

Type: 
Promise

(static) upcoming_from_ref(ref, class_obj)

Get the next 4 upcoming task objects for a given class reference

Parameters:
NameTypeDescription
refString
class_objObject

(static) update_class(class_ref, class_obj) → {Promise}

Update an instance of a class (for teachers). Intended to be preformed from the EditClass Modal

Parameters:
NameTypeDescription
class_refString

the "email/class_id" String representation of the class ref in firebase

class_objObject

The updated class object

Returns:

A promise that resolves to nothing or rejects with an error

Type: 
Promise

(static) update_remote()

Update the active user's document in the remote database

See
  • get_remote
  • active_doc
  • active_ref

(static) update_task(task_ref, task_obj) → {Promise}

Update an instance of a task from a class (for teachers). Intended to be preformed from the EditTask Modal

Parameters:
NameTypeDescription
task_refString

the "email/class_id/task_id" String representation of the task ref in firebase

task_objObject

The updated task object

Returns:

A promise that resolves to nothing or rejects with an {String} error

Type: 
Promise

(static) update_wrapper_acc_doc()

Update the authenticated user's document in the remote database (for personal accounts only)

See
  • update_remote
  • personal_account

(static) update_wrapper_acc_doc()

Update the authenticated user's document in the remote database with the data given (for personal accounts only)

See
  • update_remote
  • personal_account
  • update_wrapper_acc_doc
\ No newline at end of file diff --git a/docs/main.getters.html b/docs/main.getters.html index 0c89864c..6696de7e 100644 --- a/docs/main.getters.html +++ b/docs/main.getters.html @@ -1,3 +1,3 @@ Namespace: getters
On this page

store.main. getters

The getters to get data that's based off of the store state, but requires manipulation

Methods

(static) ORG_DOMAIN() → {String}

Get the domain of the organization (@domain.tld)

Returns:

The domain of the organization

Type: 
String

(static) account_ref() → {Object}

Get the user's absolute document reference (the signed-in account, even if it's a linked account)

Default Value
  • null
Returns:

The firebase document reference for the user's account

Type: 
Object

(static) active_doc() → {Object}

Get the user's active document (the signed-in account's doc, or the linked account's if it exists)

Default Value
  • null
See
  • active_ref
Returns:

The local copy of the document being used for dashboard data

Type: 
Object

(static) active_ref() → {Object}

Get the user's active document reference (the signed-in account's doc ref, or the linked account's if it exists)

Default Value
  • null
Returns:

The firebase document reference for the user's active account

Type: 
Object

(static) done_daily_survey() → {Boolean}

Check if user has completed the daily survey, or is a teacher

Default Value
  • false
See
  • save_daily_survey
Returns:

if the user / proxy for the user has completed the join form

Type: 
Boolean

(static) done_join_form() → {Boolean}

Check if user has completed the join form

Default Value
  • false
Returns:

if the user / proxy for the user has completed the join form

Type: 
Boolean

(static) done_tutorial() → {Boolean}

Check if user has completed the tutorial

Default Value
  • false
Returns:

if the user / proxy for the user has completed the tutorial

Type: 
Boolean

(static) finished_tasks() → {Array}

return all the finished tasks

Default Value
  • false
See
  • set_finished
Returns:

Finished Tasks

Type: 
Array

(static) get_loaded_classes() → {Array}

Get the classes that have been loaded for the loaded_email, and set the .is_joined property on each

Default Value
  • []
See
  • loaded_classes
  • loaded_email
  • fetch_classes_by_email
Returns:

Array of classes that have been loaded for the loaded_email

Type: 
Array

(static) get_theme() → {Theme}

Get theme from local storage or user doc

Default Value
  • Theme.Light
Returns:

Theme.Light or Theme.Dark

Type: 
Theme

(static) is_admin() → {Boolean}

Check if user is a admin - currently true for all users for testing purposes TODO

Default Value
  • false
Returns:

if the user is an admin

Type: 
Boolean

(static) is_teacher() → {Boolean}

Check if user is a teacher, or is in teacher mode locally (for testing)

Default Value
  • false
Returns:

if the user is a teacher

Type: 
Boolean

(static) linked_account_ref() → {Object}

Get the user's linked account document reference (the account that the user is linked to, if it exists)

Default Value
  • null
Returns:

The firebase document reference for the user's linked account

Type: 
Object

(static) linked_accounts() → {Array}

Get all linked accounts from active_doc.linked

Default Value
  • []
Returns:

Array of linked account emails

Type: 
Array

(static) non_recent_signin() → {Boolean}

Check if user signed in within the last 24 hours

Default Value
  • false
Returns:

if the user's session started within the last 24 hours

Type: 
Boolean

(static) notes() → {Object}

return all the notes in a dictionary with the ref as the key

Default Value
  • {}
Returns:

Dictionary of notes with refs as keys

Type: 
Object

(static) recently_joined() → {Boolean}

Check if user joined within the last 12 hours

Default Value
  • false
Returns:

if the user's account was created within the last 12 hours

Type: 
Boolean

(static) simplified() → {Boolean}

Get if the user is using a simplified view (true) or not (false)

Returns:

If the user is using a simplified view

Type: 
Boolean

(static) upcoming() → {Array}

et the upcoming tasks (after 8AM today)

Default Value
  • []
See
  • tasks
  • upcoming_todo
Returns:

Array of upcoming tasks

Type: 
Array

(static) upcoming_todo() → {Array}

Get the upcoming tasks (after 8AM today) that havent been marked as done

Default Value
  • []
See
  • tasks
  • upcoming
Returns:

Array of upcoming tasks

Type: 
Array
\ No newline at end of file +
On this page

store.main. getters

The getters to get data that's based off of the store state, but requires manipulation

Methods

(static) ORG_DOMAIN() → {String}

Get the domain of the organization (@domain.tld)

Returns:

The domain of the organization

Type: 
String

(static) account_ref() → {Object}

Get the user's absolute document reference (the signed-in account, even if it's a linked account)

Default Value
  • null
Returns:

The firebase document reference for the user's account

Type: 
Object

(static) active_doc() → {Object}

Get the user's active document (the signed-in account's doc, or the linked account's if it exists)

Default Value
  • null
See
  • active_ref
Returns:

The local copy of the document being used for dashboard data

Type: 
Object

(static) active_ref() → {Object}

Get the user's active document reference (the signed-in account's doc ref, or the linked account's if it exists)

Default Value
  • null
Returns:

The firebase document reference for the user's active account

Type: 
Object

(static) done_daily_survey() → {Boolean}

Check if user has completed the daily survey, or is a teacher

Default Value
  • false
See
  • save_daily_survey
Returns:

if the user / proxy for the user has completed the join form

Type: 
Boolean

(static) done_join_form() → {Boolean}

Check if user has completed the join form

Default Value
  • false
Returns:

if the user / proxy for the user has completed the join form

Type: 
Boolean

(static) done_tutorial() → {Boolean}

Check if user has completed the tutorial

Default Value
  • false
Returns:

if the user / proxy for the user has completed the tutorial

Type: 
Boolean

(static) finished_tasks() → {Array}

return all the finished tasks

Default Value
  • false
See
  • set_finished
Returns:

Finished Tasks

Type: 
Array

(static) get_loaded_classes() → {Array}

Get the classes that have been loaded for the loaded_email, and set the .is_joined property on each

Default Value
  • []
See
  • loaded_classes
  • loaded_email
  • fetch_classes_by_email
Returns:

Array of classes that have been loaded for the loaded_email

Type: 
Array

(static) get_theme() → {Theme}

Get theme from local storage or user doc

Default Value
  • Theme.Light
Returns:

Theme.Light or Theme.Dark

Type: 
Theme

(static) is_admin() → {Boolean}

Check if user is a admin - currently true for all users for testing purposes TODO

Default Value
  • false
Returns:

if the user is an admin

Type: 
Boolean

(static) is_teacher() → {Boolean}

Check if user is a teacher, or is in teacher mode locally (for testing)

Default Value
  • false
Returns:

if the user is a teacher

Type: 
Boolean

(static) linked_account_ref() → {Object}

Get the user's linked account document reference (the account that the user is linked to, if it exists)

Default Value
  • null
Returns:

The firebase document reference for the user's linked account

Type: 
Object

(static) linked_accounts() → {Array}

Get all linked accounts from active_doc.linked

Default Value
  • []
Returns:

Array of linked account emails

Type: 
Array

(static) non_recent_signin() → {Boolean}

Check if user signed in within the last 24 hours

Default Value
  • false
Returns:

if the user's session started within the last 24 hours

Type: 
Boolean

(static) notes() → {Object}

return all the notes in a dictionary with the ref as the key

Default Value
  • {}
Returns:

Dictionary of notes with refs as keys

Type: 
Object

(static) recently_joined() → {Boolean}

Check if user joined within the last 12 hours

Default Value
  • false
Returns:

if the user's account was created within the last 12 hours

Type: 
Boolean

(static) simplified() → {Boolean}

Get if the user is using a simplified view (true) or not (false)

Returns:

If the user is using a simplified view

Type: 
Boolean

(static) upcoming() → {Array}

et the upcoming tasks (after 8AM today)

Default Value
  • []
See
  • tasks
  • upcoming_todo
Returns:

Array of upcoming tasks

Type: 
Array

(static) upcoming_todo() → {Array}

Get the upcoming tasks (after 8AM today) that havent been marked as done

Default Value
  • []
See
  • tasks
  • upcoming
Returns:

Array of upcoming tasks

Type: 
Array
\ No newline at end of file diff --git a/docs/main.state.html b/docs/main.state.html index f8c5c3e1..a773fe58 100644 --- a/docs/main.state.html +++ b/docs/main.state.html @@ -1,3 +1,3 @@ Namespace: state
On this page

store.main. state

The state of the main store

Members

(static) account_doc

Properties
NameTypeDescription
account_docObject

The authenticated user's document from the users collection in firestore

Default Value
  • null
See
  • active_doc

(static) classes

Properties
NameTypeDescription
classesArray

Collection of the firebase document ids of classes that the user is in

Default Value
  • []
See
  • fetch_classes
  • get_tasks
  • tasks

(static) linked_account_doc

Properties
NameTypeDescription
linked_account_docObject

The linked account document from the users collection in firestore

Default Value
  • null
See
  • active_doc

(static) loaded_classes

Properties
NameTypeDescription
loaded_classesArray

The classes that have been loaded for the loaded_email (for previews in AddClass.vue)

Default Value
  • null
See
  • loaded_email
  • fetch_classes_by_email

(static) loaded_email

Properties
NameTypeDescription
loaded_emailString

The email of the user that the classes have been loaded for (for previews in AddClass.vue)

Default Value
  • null
See
  • loaded_classes
  • fetch_classes_by_email

(static) logout_prompt

Properties
NameTypeDescription
logout_promptBoolean

If the app is showing a logout prompt (true) or not (false)

Default Value
  • false

(static) paused

Properties
NameTypeDescription
pausedBoolean

If the app is paused (true) or not (false)

Default Value
  • false
See
  • show_timeout
  • hide_timeout

(static) personal_account

Properties
NameTypeDescription
personal_accountBoolean

If the user is using their personal account (true) or a valid org account (false)

Default Value
  • false
See
  • linked_account_doc
  • linked_account_ref
  • active_doc
  • active_ref

(static) tasks

Properties
NameTypeDescription
tasksArray

Collection of the processed task objects

Default Value
  • []
See
  • get_tasks

(static) teacher

Properties
NameTypeDescription
teacherObject

The teacher object, with doc_ref and collection_ref

Default Value
  • {doc_ref: null, collection_ref: null}
See
  • is_teacher
  • create_teacher_doc

(static) theme

Properties
NameTypeDescription
themeTheme

The theme of the app, either Theme.Light or Theme.Dark

Default Value
  • null
See
  • get_theme
  • toggle_theme
  • clear

(static) user

Properties
NameTypeDescription
userObject

The user object from firebase auth

Default Value
  • null
\ No newline at end of file +
On this page

store.main. state

The state of the main store

Members

(static) account_doc

Properties
NameTypeDescription
account_docObject

The authenticated user's document from the users collection in firestore

Default Value
  • null
See
  • active_doc

(static) classes

Properties
NameTypeDescription
classesArray

Collection of the firebase document ids of classes that the user is in

Default Value
  • []
See
  • fetch_classes
  • get_tasks
  • tasks

(static) linked_account_doc

Properties
NameTypeDescription
linked_account_docObject

The linked account document from the users collection in firestore

Default Value
  • null
See
  • active_doc

(static) loaded_classes

Properties
NameTypeDescription
loaded_classesArray

The classes that have been loaded for the loaded_email (for previews in AddClass.vue)

Default Value
  • null
See
  • loaded_email
  • fetch_classes_by_email

(static) loaded_email

Properties
NameTypeDescription
loaded_emailString

The email of the user that the classes have been loaded for (for previews in AddClass.vue)

Default Value
  • null
See
  • loaded_classes
  • fetch_classes_by_email

(static) logout_prompt

Properties
NameTypeDescription
logout_promptBoolean

If the app is showing a logout prompt (true) or not (false)

Default Value
  • false

(static) paused

Properties
NameTypeDescription
pausedBoolean

If the app is paused (true) or not (false)

Default Value
  • false
See
  • show_timeout
  • hide_timeout

(static) personal_account

Properties
NameTypeDescription
personal_accountBoolean

If the user is using their personal account (true) or a valid org account (false)

Default Value
  • false
See
  • linked_account_doc
  • linked_account_ref
  • active_doc
  • active_ref

(static) tasks

Properties
NameTypeDescription
tasksArray

Collection of the processed task objects

Default Value
  • []
See
  • get_tasks

(static) teacher

Properties
NameTypeDescription
teacherObject

The teacher object, with doc_ref and collection_ref

Default Value
  • {doc_ref: null, collection_ref: null}
See
  • is_teacher
  • create_teacher_doc

(static) theme

Properties
NameTypeDescription
themeTheme

The theme of the app, either Theme.Light or Theme.Dark

Default Value
  • null
See
  • get_theme
  • toggle_theme
  • clear

(static) user

Properties
NameTypeDescription
userObject

The user object from firebase auth

Default Value
  • null
\ No newline at end of file diff --git a/docs/store_index.js.html b/docs/store_index.js.html index ae7545a4..51b3f2f7 100644 --- a/docs/store_index.js.html +++ b/docs/store_index.js.html @@ -47,6 +47,9 @@ login_hint: "username" + ORG_DOMAIN, // hd: ORG_DOMAIN, }); +// setup class name handlebars template +import Handlebars from "handlebars"; +const CLASS_TEXT = Handlebars.compile(process.env.VUE_APP_CLASS_TEXT); // import router import router from "@/router"; import { useMagic } from "@/store/magic"; @@ -605,6 +608,8 @@ class_text(class_obj) { if (!class_obj) return; + if (class_obj.period) + return CLASS_TEXT(class_obj); if (class_obj.period) return `P${class_obj.period} - ${class_obj.name}`; return class_obj.name; diff --git a/index.html b/index.html index ce64de78..d1246c3e 100644 --- a/index.html +++ b/index.html @@ -1,4 +1,4 @@ -MV Task Tracker | Home
\ No newline at end of file + document.querySelector(".versioning").remove(); \ No newline at end of file diff --git a/js/239.4117d4e9.js b/js/239.4117d4e9.js deleted file mode 100644 index 526033b2..00000000 --- a/js/239.4117d4e9.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self["webpackChunkmvtime"]=self["webpackChunkmvtime"]||[]).push([[239],{8144:function(t,e,s){function a(t){return t&&t.__esModule?t:{default:t}}e.__esModule=!0;var i=s(9210),n=a(i),r=s(2865),o=a(r),l=s(2364),c=s(5480),p=s(7922),h=a(p),u=s(4903),d=a(u),m=s(3735),f=a(m),_=n["default"].create;function g(){var t=_();return t.compile=function(e,s){return c.compile(e,s,t)},t.precompile=function(e,s){return c.precompile(e,s,t)},t.AST=o["default"],t.Compiler=c.Compiler,t.JavaScriptCompiler=h["default"],t.Parser=l.parser,t.parse=l.parse,t.parseWithoutProcessing=l.parseWithoutProcessing,t}var v=g();v.create=g,f["default"](v),v.Visitor=d["default"],v["default"]=v,e["default"]=v,t.exports=e["default"]},9210:function(t,e,s){function a(t){return t&&t.__esModule?t:{default:t}}function i(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var s in t)Object.prototype.hasOwnProperty.call(t,s)&&(e[s]=t[s]);return e["default"]=t,e}e.__esModule=!0;var n=s(2282),r=i(n),o=s(3014),l=a(o),c=s(8734),p=a(c),h=s(4210),u=i(h),d=s(5615),m=i(d),f=s(3735),_=a(f);function g(){var t=new r.HandlebarsEnvironment;return u.extend(t,r),t.SafeString=l["default"],t.Exception=p["default"],t.Utils=u,t.escapeExpression=u.escapeExpression,t.VM=m,t.template=function(e){return m.template(e,t)},t}var v=g();v.create=g,_["default"](v),v["default"]=v,e["default"]=v,t.exports=e["default"]},2282:function(t,e,s){function a(t){return t&&t.__esModule?t:{default:t}}e.__esModule=!0,e.HandlebarsEnvironment=g;var i=s(4210),n=s(8734),r=a(n),o=s(5430),l=s(8233),c=s(9839),p=a(c),h=s(9498),u="4.7.8";e.VERSION=u;var d=8;e.COMPILER_REVISION=d;var m=7;e.LAST_COMPATIBLE_COMPILER_REVISION=m;var f={1:"<= 1.0.rc.2",2:"== 1.0.0-rc.3",3:"== 1.0.0-rc.4",4:"== 1.x.x",5:"== 2.0.0-alpha.x",6:">= 2.0.0-beta.1",7:">= 4.0.0 <4.3.0",8:">= 4.3.0"};e.REVISION_CHANGES=f;var _="[object Object]";function g(t,e,s){this.helpers=t||{},this.partials=e||{},this.decorators=s||{},o.registerDefaultHelpers(this),l.registerDefaultDecorators(this)}g.prototype={constructor:g,logger:p["default"],log:p["default"].log,registerHelper:function(t,e){if(i.toString.call(t)===_){if(e)throw new r["default"]("Arg not supported with multiple helpers");i.extend(this.helpers,t)}else this.helpers[t]=e},unregisterHelper:function(t){delete this.helpers[t]},registerPartial:function(t,e){if(i.toString.call(t)===_)i.extend(this.partials,t);else{if("undefined"===typeof e)throw new r["default"]('Attempting to register a partial called "'+t+'" as undefined');this.partials[t]=e}},unregisterPartial:function(t){delete this.partials[t]},registerDecorator:function(t,e){if(i.toString.call(t)===_){if(e)throw new r["default"]("Arg not supported with multiple decorators");i.extend(this.decorators,t)}else this.decorators[t]=e},unregisterDecorator:function(t){delete this.decorators[t]},resetLoggedPropertyAccesses:function(){h.resetLoggedProperties()}};var v=p["default"].log;e.log=v,e.createFrame=i.createFrame,e.logger=p["default"]},2865:function(t,e){e.__esModule=!0;var s={helpers:{helperExpression:function(t){return"SubExpression"===t.type||("MustacheStatement"===t.type||"BlockStatement"===t.type)&&!!(t.params&&t.params.length||t.hash)},scopedId:function(t){return/^\.|this\b/.test(t.original)},simpleId:function(t){return 1===t.parts.length&&!s.helpers.scopedId(t)&&!t.depth}}};e["default"]=s,t.exports=e["default"]},2364:function(t,e,s){function a(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var s in t)Object.prototype.hasOwnProperty.call(t,s)&&(e[s]=t[s]);return e["default"]=t,e}function i(t){return t&&t.__esModule?t:{default:t}}e.__esModule=!0,e.parseWithoutProcessing=d,e.parse=m;var n=s(5814),r=i(n),o=s(2412),l=i(o),c=s(2964),p=a(c),h=s(4210);e.parser=r["default"];var u={};function d(t,e){if("Program"===t.type)return t;r["default"].yy=u,u.locInfo=function(t){return new u.SourceLocation(e&&e.srcName,t)};var s=r["default"].parse(t);return s}function m(t,e){var s=d(t,e),a=new l["default"](e);return a.accept(s)}h.extend(u,p)},7963:function(t,e,s){s(4114),e.__esModule=!0;var a=s(4210),i=void 0;try{}catch(o){}function n(t,e,s){if(a.isArray(t)){for(var i=[],n=0,r=t.length;n1)throw new n["default"]("Unsupported number of partial arguments: "+s.length,t);s.length||(this.options.explicitPartialContext?this.opcode("pushLiteral","undefined"):s.push({type:"PathExpression",parts:[],depth:0}));var a=t.name.original,i="SubExpression"===t.name.type;i&&this.accept(t.name),this.setupFullMustacheParams(t,e,void 0,!0);var r=t.indent||"";this.options.preventIndent&&r&&(this.opcode("appendContent",r),r=""),this.opcode("invokePartial",i,a,r),this.opcode("append")},PartialBlockStatement:function(t){this.PartialStatement(t)},MustacheStatement:function(t){this.SubExpression(t),t.escaped&&!this.options.noEscape?this.opcode("appendEscaped"):this.opcode("append")},Decorator:function(t){this.DecoratorBlock(t)},ContentStatement:function(t){t.value&&this.opcode("appendContent",t.value)},CommentStatement:function(){},SubExpression:function(t){m(t);var e=this.classifySexpr(t);"simple"===e?this.simpleSexpr(t):"helper"===e?this.helperSexpr(t):this.ambiguousSexpr(t)},ambiguousSexpr:function(t,e,s){var a=t.path,i=a.parts[0],n=null!=e||null!=s;this.opcode("getContext",a.depth),this.opcode("pushProgram",e),this.opcode("pushProgram",s),a.strict=!0,this.accept(a),this.opcode("invokeAmbiguous",i,n)},simpleSexpr:function(t){var e=t.path;e.strict=!0,this.accept(e),this.opcode("resolvePossibleLambda")},helperSexpr:function(t,e,s){var a=this.setupFullMustacheParams(t,e,s),i=t.path,r=i.parts[0];if(this.options.knownHelpers[r])this.opcode("invokeKnownHelper",a.length,r);else{if(this.options.knownHelpersOnly)throw new n["default"]("You specified knownHelpersOnly, but used the unknown helper "+r,t);i.strict=!0,i.falsy=!0,this.accept(i),this.opcode("invokeHelper",a.length,i.original,l["default"].helpers.simpleId(i))}},PathExpression:function(t){this.addDepth(t.depth),this.opcode("getContext",t.depth);var e=t.parts[0],s=l["default"].helpers.scopedId(t),a=!t.depth&&!s&&this.blockParamIndex(e);a?this.opcode("lookupBlockParam",a,t.parts):e?t.data?(this.options.data=!0,this.opcode("lookupData",t.depth,t.parts,t.strict)):this.opcode("lookupOnContext",t.parts,t.falsy,t.strict,s):this.opcode("pushContext")},StringLiteral:function(t){this.opcode("pushString",t.value)},NumberLiteral:function(t){this.opcode("pushLiteral",t.value)},BooleanLiteral:function(t){this.opcode("pushLiteral",t.value)},UndefinedLiteral:function(){this.opcode("pushLiteral","undefined")},NullLiteral:function(){this.opcode("pushLiteral","null")},Hash:function(t){var e=t.pairs,s=0,a=e.length;for(this.opcode("pushHash");s=0)return[e,i]}}}},2964:function(t,e,s){function a(t){return t&&t.__esModule?t:{default:t}}s(4114),e.__esModule=!0,e.SourceLocation=o,e.id=l,e.stripFlags=c,e.stripComment=p,e.preparePath=h,e.prepareMustache=u,e.prepareRawBlock=d,e.prepareBlock=m,e.prepareProgram=f,e.preparePartialBlock=_;var i=s(8734),n=a(i);function r(t,e){if(e=e.path?e.path.original:e,t.path.original!==e){var s={loc:t.path.loc};throw new n["default"](t.path.original+" doesn't match "+e,s)}}function o(t,e){this.source=t,this.start={line:e.first_line,column:e.first_column},this.end={line:e.last_line,column:e.last_column}}function l(t){return/^\[.*\]$/.test(t)?t.substring(1,t.length-1):t}function c(t,e){return{open:"~"===t.charAt(2),close:"~"===e.charAt(e.length-3)}}function p(t){return t.replace(/^\{\{~?!-?-?/,"").replace(/-?-?~?\}\}$/,"")}function h(t,e,s){s=this.locInfo(s);for(var a=t?"@":"",i=[],r=0,o=0,l=e.length;o0)throw new n["default"]("Invalid path: "+a,{loc:s});".."===c&&r++}}return{type:"PathExpression",data:t,depth:r,parts:i,original:a,loc:s}}function u(t,e,s,a,i,n){var r=a.charAt(3)||a.charAt(2),o="{"!==r&&"&"!==r,l=/\*/.test(a);return{type:l?"Decorator":"MustacheStatement",path:t,params:e,hash:s,escaped:o,strip:i,loc:this.locInfo(n)}}function d(t,e,s,a){r(t,s),a=this.locInfo(a);var i={type:"Program",body:e,strip:{},loc:a};return{type:"BlockStatement",path:t.path,params:t.params,hash:t.hash,program:i,openStrip:{},inverseStrip:{},closeStrip:{},loc:a}}function m(t,e,s,a,i,o){a&&a.path&&r(t,a);var l=/\*/.test(t.open);e.blockParams=t.blockParams;var c=void 0,p=void 0;if(s){if(l)throw new n["default"]("Unexpected inverse block on decorator",s);s.chain&&(s.program.body[0].closeStrip=a.strip),p=s.strip,c=s.program}return i&&(i=c,c=e,e=i),{type:l?"DecoratorBlock":"BlockStatement",path:t.path,params:t.params,hash:t.hash,program:e,inverse:c,openStrip:t.strip,inverseStrip:p,closeStrip:a&&a.strip,loc:this.locInfo(o)}}function f(t,e){if(!e&&t.length){var s=t[0].loc,a=t[t.length-1].loc;s&&a&&(e={source:s.source,start:{line:s.start.line,column:s.start.column},end:{line:a.end.line,column:a.end.column}})}return{type:"Program",body:t,strip:{},loc:e}}function _(t,e,s,a){return r(t,s),{type:"PartialBlockStatement",name:t.path,params:t.params,hash:t.hash,program:e,openStrip:t.strip,closeStrip:s&&s.strip,loc:this.locInfo(a)}}},7922:function(t,e,s){function a(t){return t&&t.__esModule?t:{default:t}}s(4114),e.__esModule=!0;var i=s(2282),n=s(8734),r=a(n),o=s(4210),l=s(7963),c=a(l);function p(t){this.value=t}function h(){}function u(t,e,s,a,i){var n=e.popStack(),r=s.length;for(t&&r--;a0&&(s+=", "+a.join(", "));var i=0;Object.keys(this.aliases).forEach((function(t){var a=e.aliases[t];a.children&&a.referenceCount>1&&(s+=", alias"+ ++i+"="+t,a.children[0]="alias"+i)})),this.lookupPropertyFunctionIsUsed&&(s+=", "+this.lookupPropertyFunctionVarDeclaration());var n=["container","depth0","helpers","partials","data"];(this.useBlockParams||this.useDepths)&&n.push("blockParams"),this.useDepths&&n.push("depths");var r=this.mergeSource(s);return t?(n.push(r),Function.apply(this,n)):this.source.wrap(["function(",n.join(","),") {\n ",r,"}"])},mergeSource:function(t){var e=this.environment.isSimple,s=!this.forceBuffer,a=void 0,i=void 0,n=void 0,r=void 0;return this.source.each((function(t){t.appendToBuffer?(n?t.prepend(" + "):n=t,r=t):(n&&(i?n.prepend("buffer += "):a=!0,r.add(";"),n=r=void 0),i=!0,e||(s=!1))})),s?n?(n.prepend("return "),r.add(";")):i||this.source.push('return "";'):(t+=", buffer = "+(a?"":this.initializeBuffer()),n?(n.prepend("return buffer + "),r.add(";")):this.source.push("return buffer;")),t&&this.source.prepend("var "+t.substring(2)+(a?"":";\n")),this.source.merge()},lookupPropertyFunctionVarDeclaration:function(){return"\n lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n }\n ".trim()},blockValue:function(t){var e=this.aliasable("container.hooks.blockHelperMissing"),s=[this.contextName(0)];this.setupHelperArgs(t,0,s);var a=this.popStack();s.splice(1,0,a),this.push(this.source.functionCall(e,"call",s))},ambiguousBlockValue:function(){var t=this.aliasable("container.hooks.blockHelperMissing"),e=[this.contextName(0)];this.setupHelperArgs("",0,e,!0),this.flushInline();var s=this.topStack();e.splice(1,0,s),this.pushSource(["if (!",this.lastHelper,") { ",s," = ",this.source.functionCall(t,"call",e),"}"])},appendContent:function(t){this.pendingContent?t=this.pendingContent+t:this.pendingLocation=this.source.currentLocation,this.pendingContent=t},append:function(){if(this.isInline())this.replaceStack((function(t){return[" != null ? ",t,' : ""']})),this.pushSource(this.appendToBuffer(this.popStack()));else{var t=this.popStack();this.pushSource(["if (",t," != null) { ",this.appendToBuffer(t,void 0,!0)," }"]),this.environment.isSimple&&this.pushSource(["else { ",this.appendToBuffer("''",void 0,!0)," }"])}},appendEscaped:function(){this.pushSource(this.appendToBuffer([this.aliasable("container.escapeExpression"),"(",this.popStack(),")"]))},getContext:function(t){this.lastContext=t},pushContext:function(){this.pushStackLiteral(this.contextName(this.lastContext))},lookupOnContext:function(t,e,s,a){var i=0;a||!this.options.compat||this.lastContext?this.pushContext():this.push(this.depthedLookup(t[i++])),this.resolvePath("context",t,i,e,s)},lookupBlockParam:function(t,e){this.useBlockParams=!0,this.push(["blockParams[",t[0],"][",t[1],"]"]),this.resolvePath("context",e,1)},lookupData:function(t,e,s){t?this.pushStackLiteral("container.data(data, "+t+")"):this.pushStackLiteral("data"),this.resolvePath("data",e,0,!0,s)},resolvePath:function(t,e,s,a,i){var n=this;if(this.options.strict||this.options.assumeObjects)this.push(u(this.options.strict&&i,this,e,s,t));else for(var r=e.length;sthis.stackVars.length&&this.stackVars.push("stack"+this.stackSlot),this.topStackName()},topStackName:function(){return"stack"+this.stackSlot},flushInline:function(){var t=this.inlineStack;this.inlineStack=[];for(var e=0,s=t.length;e2&&b.push("'"+this.terminals_[v]+"'");w=this.lexer.showPosition?"Parse error on line "+(o+1)+":\n"+this.lexer.showPosition()+"\nExpecting "+b.join(", ")+", got '"+(this.terminals_[d]||d)+"'":"Parse error on line "+(o+1)+": Unexpected "+(1==d?"end of input":"'"+(this.terminals_[d]||d)+"'"),this.parseError(w,{text:this.lexer.match,token:this.terminals_[d]||d,line:this.lexer.yylineno,loc:p,expected:b})}}if(_[0]instanceof Array&&_.length>1)throw new Error("Parse Error: multiple actions possible at state: "+f+", token: "+d);switch(_[0]){case 1:s.push(d),a.push(this.lexer.yytext),i.push(this.lexer.yylloc),s.push(_[1]),d=null,m?(d=m,m=null):(l=this.lexer.yyleng,r=this.lexer.yytext,o=this.lexer.yylineno,p=this.lexer.yylloc,c>0&&c--);break;case 2:if(y=this.productions_[_[1]][1],S.$=a[a.length-y],S._$={first_line:i[i.length-(y||1)].first_line,last_line:i[i.length-1].last_line,first_column:i[i.length-(y||1)].first_column,last_column:i[i.length-1].last_column},h&&(S._$.range=[i[i.length-(y||1)].range[0],i[i.length-1].range[1]]),g=this.performAction.call(S,r,l,o,this.yy,_[1],a,i),"undefined"!==typeof g)return g;y&&(s=s.slice(0,-1*y*2),a=a.slice(0,-1*y),i=i.slice(0,-1*y)),s.push(this.productions_[_[1]][0]),a.push(S.$),i.push(S._$),k=n[s[s.length-2]][s[s.length-1]],s.push(k);break;case 3:return!0}}return!0}},e=function(){var t={EOF:1,parseError:function(t,e){if(!this.yy.parser)throw new Error(t);this.yy.parser.parseError(t,e)},setInput:function(t){return this._input=t,this._more=this._less=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var t=this._input[0];this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t;var e=t.match(/(?:\r\n?|\n).*/g);return e?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),t},unput:function(t){var e=t.length,s=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-e-1),this.offset-=e;var a=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),s.length-1&&(this.yylineno-=s.length-1);var i=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:s?(s.length===a.length?this.yylloc.first_column:0)+a[a.length-s.length].length-s[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[i[0],i[0]+this.yyleng-e]),this},more:function(){return this._more=!0,this},less:function(t){this.unput(this.match.slice(t))},pastInput:function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var t=this.match;return t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var t=this.pastInput(),e=new Array(t.length+1).join("-");return t+this.upcomingInput()+"\n"+e+"^"},next:function(){if(this.done)return this.EOF;var t,e,s,a,i;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var n=this._currentRules(),r=0;re[0].length)&&(e=s,a=r,!this.options.flex))break;return e?(i=e[0].match(/(?:\r\n?|\n).*/g),i&&(this.yylineno+=i.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:i?i[i.length-1].length-i[i.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+e[0].length},this.yytext+=e[0],this.match+=e[0],this.matches=e,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._input=this._input.slice(e[0].length),this.matched+=e[0],t=this.performAction.call(this,this.yy,this,n[a],this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),t||void 0):""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var t=this.next();return"undefined"!==typeof t?t:this.lex()},begin:function(t){this.conditionStack.push(t)},popState:function(){return this.conditionStack.pop()},_currentRules:function(){return this.conditions[this.conditionStack[this.conditionStack.length-1]].rules},topState:function(){return this.conditionStack[this.conditionStack.length-2]},pushState:function(t){this.begin(t)},options:{},performAction:function(t,e,s,a){function i(t,s){return e.yytext=e.yytext.substring(t,e.yyleng-s+t)}switch(s){case 0:if("\\\\"===e.yytext.slice(-2)?(i(0,1),this.begin("mu")):"\\"===e.yytext.slice(-1)?(i(0,1),this.begin("emu")):this.begin("mu"),e.yytext)return 15;break;case 1:return 15;case 2:return this.popState(),15;case 3:return this.begin("raw"),15;case 4:return this.popState(),"raw"===this.conditionStack[this.conditionStack.length-1]?15:(i(5,9),"END_RAW_BLOCK");case 5:return 15;case 6:return this.popState(),14;case 7:return 65;case 8:return 68;case 9:return 19;case 10:return this.popState(),this.begin("raw"),23;case 11:return 55;case 12:return 60;case 13:return 29;case 14:return 47;case 15:return this.popState(),44;case 16:return this.popState(),44;case 17:return 34;case 18:return 39;case 19:return 51;case 20:return 48;case 21:this.unput(e.yytext),this.popState(),this.begin("com");break;case 22:return this.popState(),14;case 23:return 48;case 24:return 73;case 25:return 72;case 26:return 72;case 27:return 87;case 28:break;case 29:return this.popState(),54;case 30:return this.popState(),33;case 31:return e.yytext=i(1,2).replace(/\\"/g,'"'),80;case 32:return e.yytext=i(1,2).replace(/\\'/g,"'"),80;case 33:return 85;case 34:return 82;case 35:return 82;case 36:return 83;case 37:return 84;case 38:return 81;case 39:return 75;case 40:return 77;case 41:return 72;case 42:return e.yytext=e.yytext.replace(/\\([\\\]])/g,"$1"),72;case 43:return"INVALID";case 44:return 5}},rules:[/^(?:[^\x00]*?(?=(\{\{)))/,/^(?:[^\x00]+)/,/^(?:[^\x00]{2,}?(?=(\{\{|\\\{\{|\\\\\{\{|$)))/,/^(?:\{\{\{\{(?=[^/]))/,/^(?:\{\{\{\{\/[^\s!"#%-,\.\/;->@\[-\^`\{-~]+(?=[=}\s\/.])\}\}\}\})/,/^(?:[^\x00]+?(?=(\{\{\{\{)))/,/^(?:[\s\S]*?--(~)?\}\})/,/^(?:\()/,/^(?:\))/,/^(?:\{\{\{\{)/,/^(?:\}\}\}\})/,/^(?:\{\{(~)?>)/,/^(?:\{\{(~)?#>)/,/^(?:\{\{(~)?#\*?)/,/^(?:\{\{(~)?\/)/,/^(?:\{\{(~)?\^\s*(~)?\}\})/,/^(?:\{\{(~)?\s*else\s*(~)?\}\})/,/^(?:\{\{(~)?\^)/,/^(?:\{\{(~)?\s*else\b)/,/^(?:\{\{(~)?\{)/,/^(?:\{\{(~)?&)/,/^(?:\{\{(~)?!--)/,/^(?:\{\{(~)?![\s\S]*?\}\})/,/^(?:\{\{(~)?\*?)/,/^(?:=)/,/^(?:\.\.)/,/^(?:\.(?=([=~}\s\/.)|])))/,/^(?:[\/.])/,/^(?:\s+)/,/^(?:\}(~)?\}\})/,/^(?:(~)?\}\})/,/^(?:"(\\["]|[^"])*")/,/^(?:'(\\[']|[^'])*')/,/^(?:@)/,/^(?:true(?=([~}\s)])))/,/^(?:false(?=([~}\s)])))/,/^(?:undefined(?=([~}\s)])))/,/^(?:null(?=([~}\s)])))/,/^(?:-?[0-9]+(?:\.[0-9]+)?(?=([~}\s)])))/,/^(?:as\s+\|)/,/^(?:\|)/,/^(?:([^\s!"#%-,\.\/;->@\[-\^`\{-~]+(?=([=~}\s\/.)|]))))/,/^(?:\[(\\\]|[^\]])*\])/,/^(?:.)/,/^(?:$)/],conditions:{mu:{rules:[7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44],inclusive:!1},emu:{rules:[2],inclusive:!1},com:{rules:[6],inclusive:!1},raw:{rules:[3,4,5],inclusive:!1},INITIAL:{rules:[0,1,44],inclusive:!0}}};return t}();function s(){this.yy={}}return t.lexer=e,s.prototype=t,t.Parser=s,new s}();e["default"]=a,t.exports=e["default"]},4903:function(t,e,s){function a(t){return t&&t.__esModule?t:{default:t}}e.__esModule=!0;var i=s(8734),n=a(i);function r(){this.parents=[]}function o(t){this.acceptRequired(t,"path"),this.acceptArray(t.params),this.acceptKey(t,"hash")}function l(t){o.call(this,t),this.acceptKey(t,"program"),this.acceptKey(t,"inverse")}function c(t){this.acceptRequired(t,"name"),this.acceptArray(t.params),this.acceptKey(t,"hash")}r.prototype={constructor:r,mutating:!1,acceptKey:function(t,e){var s=this.accept(t[e]);if(this.mutating){if(s&&!r.prototype[s.type])throw new n["default"]('Unexpected node type "'+s.type+'" found when accepting '+e+" on "+t.type);t[e]=s}},acceptRequired:function(t,e){if(this.acceptKey(t,e),!t[e])throw new n["default"](t.type+" requires "+e)},acceptArray:function(t){for(var e=0,s=t.length;e0?(s.ids&&(s.ids=[s.name]),t.helpers.each(e,s)):i(this);if(s.data&&s.ids){var r=a.createFrame(s.data);r.contextPath=a.appendContextPath(s.data.contextPath,s.name),s={data:r}}return n(e,s)}))},t.exports=e["default"]},2512:function(t,e,s){function a(t){return t&&t.__esModule?t:{default:t}}s(4114),e.__esModule=!0;var i=s(4210),n=s(8734),r=a(n);e["default"]=function(t){t.registerHelper("each",(function(t,e){if(!e)throw new r["default"]("Must pass iterator to #each");var s=e.fn,a=e.inverse,n=0,o="",l=void 0,c=void 0;function p(e,a,n){l&&(l.key=e,l.index=a,l.first=0===a,l.last=!!n,c&&(l.contextPath=c+e)),o+=s(t[e],{data:l,blockParams:i.blockParams([t[e],e],[c+e,null])})}if(e.data&&e.ids&&(c=i.appendContextPath(e.data.contextPath,e.ids[0])+"."),i.isFunction(t)&&(t=t.call(this)),e.data&&(l=i.createFrame(e.data)),t&&"object"===typeof t)if(i.isArray(t))for(var h=t.length;n=0?e:parseInt(t,10)}return t},log:function(t){if(t=i.lookupLevel(t),"undefined"!==typeof console&&i.lookupLevel(i.level)<=t){var e=i.methodMap[t];console[e]||(e="log");for(var s=arguments.length,a=Array(s>1?s-1:0),n=1;n=c.LAST_COMPATIBLE_COMPILER_REVISION&&e<=c.COMPILER_REVISION)){if(e":">",'"':""","'":"'","`":"`","=":"="},a=/[&<>"'`=]/g,i=/[&<>"'`=]/;function n(t){return s[t]}function r(t){for(var e=1;e((0,a.Qi)("data-v-521703de"),t=t(),(0,a.jt)(),t),r=["disabled"],o=n((()=>(0,a.Lk)("span",{class:"loading_bg"},null,-1))),l=[o],c=n((()=>(0,a.Lk)("div",{class:"toggle_switch_knob"},null,-1)));function p(t,e,s,n,o,p){return(0,a.uX)(),(0,a.CE)("div",{class:(0,i.C4)(["toggle_switch",{toggle_switch__on:o.is_on,transition:!s.loads}]),disabled:s.disabled,onClick:e[0]||(e[0]=(...t)=>p.toggle&&p.toggle(...t))},[s.loads?((0,a.uX)(),(0,a.CE)("div",{key:0,class:(0,i.C4)(["toggle_switch__loading",{is_loading:o.loading}])},l,2)):(0,a.Q3)("",!0),c],10,r)}var h={name:"ToggleBar",props:{value:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},loads:{type:Boolean,default:!1}},emits:["update"],data(){return{is_on:this.value,loading:!1}},watch:{value(){this.is_on=this.value,this.loading=!1}},methods:{toggle(){this.disabled||(this.loads?this.loading=!0:this.is_on=!this.is_on,this.$emit("update",!this.is_on))}}},u=s(1241);const d=(0,u.A)(h,[["render",p],["__scopeId","data-v-521703de"]]);var m=d},1620:function(t,e,s){s.r(e),s.d(e,{default:function(){return Gt}});var a=s(6768),i=s(4232),n=s(5130);const r=t=>((0,a.Qi)("data-v-20c7a614"),t=t(),(0,a.jt)(),t),o=["page"],l={key:0,class:"msg_choose"},c=["onClick","disabled"],p={key:1,class:"msg_page_wrapper"},h={key:0,class:"msg_page_info admin_in",style:{animationDelay:"0.1s"}},u=r((()=>(0,a.Lk)("div",{class:"msg_page__back__icon themed_icon"},null,-1))),d=[u],m={class:"msg_page_info__text"},f=r((()=>(0,a.Lk)("hr",{class:"msg_page_wrapper__separator admin_in",style:{animationDelay:3*.05+"s"}},null,-1))),_={class:"msg_page_container admin_in",style:{animationDelay:"0.2s"}},g={key:0,class:"msg_page msg__view"},v={class:"msg_page_list msg__view_list"},y={class:"msg_page_list_header msg__view_list_header"},k=r((()=>(0,a.Lk)("th",{style:{flex:"1 2 6em","min-width":"6em"}},"Recepient",-1))),b=r((()=>(0,a.Lk)("th",{class:"msg__nomobile",style:{flex:"1 1 6em"}},"Template",-1))),S=r((()=>(0,a.Lk)("th",{style:{flex:"2 1 6.5em"}},"Date",-1))),w=r((()=>(0,a.Lk)("th",{style:{flex:"0 0 5em"}},"Status",-1))),P={style:{flex:"1 2 6em","min-width":"6em"}},x=["title"],E=["title"],L=["title"],C={class:"msg__nomobile",style:{flex:"1 1 6em"}},N={style:{flex:"2 1 6.5em"}},O={style:{flex:"0 0 5em"}},I={key:0,class:"msg_page_list_item_content msg_view_preview"},A={class:"msg_view_preview__json"},$=["onClick"],M=["title"],B={key:0,class:"msg_page_list_item__empty admin_in",style:{animationDelay:"0.26s"}},D=r((()=>(0,a.Lk)("span",null,"No sent messages exist yet",-1))),H=[D],T=r((()=>(0,a.Lk)("div",{class:"part_loading_animation msg_page_list_item_loading_button"},null,-1))),j=[T],R={key:1,class:"msg_page msg__send"},F={class:"msg__send_form"},V={class:"msg__send_form_item"},X={class:"msg__send_form_item msg__send_form_pair"},U=r((()=>(0,a.Lk)("label",{for:"msg__send_to"},"To:",-1))),K={class:"msg__send_form_item msg__send_form_pair"},Q=r((()=>(0,a.Lk)("label",{for:"msg__send_cc"},"CC:",-1))),q={class:"msg__send_form_item msg__send_form_pair"},J=r((()=>(0,a.Lk)("label",{for:"msg__send_bcc"},"BCC:",-1))),W={class:"msg__send_form_item msg__send_form_pair"},G=r((()=>(0,a.Lk)("label",{for:"msg__send_from"},"From:",-1))),Y=["placeholder"],z={class:"msg__send_form_item msg__send_form_template"},Z={class:"msg__send_form_item msg__send_form_pair"},tt=r((()=>(0,a.Lk)("label",{for:"msg__send_template"},"Template:",-1))),et={value:"",disabled:"",selected:""},st=r((()=>(0,a.Lk)("option",{value:"custom"},"[custom] - Create your own message",-1))),at=["value"],it={key:0,class:"msg__send_template_options msg__send_form_item"},nt={key:0,class:"msg__send_form_item"},rt={class:"toggle_line"},ot=r((()=>(0,a.Lk)("span",null,"Display w/o Handlebars",-1))),lt={class:"toggle_line"},ct=r((()=>(0,a.Lk)("span",null,"Display as raw HTML markdown",-1))),pt={class:"msg__send_form_item"},ht={class:"msg_page_list_item_content msg__send_preview"},ut={key:0,class:"msg_page_list_item_content__html msg__send_preview__html msg__send_template_preview__html"},dt={key:0},mt=["innerHTML"],ft={key:1,class:"msg_page_list_item_content__html msg__send_preview__text msg__send_custom_preview__html_text"},_t=["innerHTML"],gt={key:3,class:"msg_page_list_item_content__html msg__send_preview__html"},vt=r((()=>(0,a.Lk)("span",null,"Select a template to preview it here",-1))),yt=[vt],kt={key:2,class:"msg_page msg__templates"},bt={class:"msg_page_list msg__templates_list"},St={class:"msg_page_list_header msg__templates_list_header"},wt=r((()=>(0,a.Lk)("th",{style:{flex:"0 1 10em"}},"Template",-1))),Pt=r((()=>(0,a.Lk)("th",{style:{flex:"1 4 20em"}},"Subject",-1))),xt=r((()=>(0,a.Lk)("th",{class:"msg__nomobile",style:{flex:"4 10 20em"}},"Text",-1))),Et={style:{flex:"1 1 10em"}},Lt={style:{flex:"2 4 20em"}},Ct={class:"msg__nomobile",style:{flex:"8 10 20em"}},Nt={key:0,class:"msg_page_list_item_content msg_templates_preview"},Ot=["innerHTML"],It={key:1,class:"msg_page_list_item_content msg_templates_preview"},At=["innerHTML"],$t=["onClick"],Mt=["title"],Bt={key:0,class:"msg_page_list_item__empty admin_in",style:{animationDelay:"0.26s"}},Dt=r((()=>(0,a.Lk)("span",null,"No templates exist yet",-1))),Ht=[Dt],Tt=r((()=>(0,a.Lk)("div",{class:"part_loading_animation msg_page_list_item_loading_button"},null,-1))),jt=[Tt];function Rt(t,e,s,r,u,D){const T=(0,a.g2)("ToggleBar");return(0,a.uX)(),(0,a.CE)("div",{class:"messagesalerts",page:u.page},["choose"==u.page?((0,a.uX)(),(0,a.CE)("div",l,[((0,a.uX)(!0),(0,a.CE)(a.FK,null,(0,a.pI)(u.choices,((t,e,s)=>((0,a.uX)(),(0,a.CE)("div",{class:(0,i.C4)(`msg_choose_page msg_choose__${e} admin_in`),key:e,onClick:s=>{t.disabled||(u.page=e)},style:(0,i.Tr)({animationDelay:.05*(s+2)+"s"}),disabled:t.disabled},(0,i.v_)(t.name),15,c)))),128))])):((0,a.uX)(),(0,a.CE)("div",p,["choose"!=u.page?((0,a.uX)(),(0,a.CE)("div",h,[(0,a.Lk)("button",{class:"msg_page__back",onClick:e[0]||(e[0]=t=>u.page="choose")},d),(0,a.Lk)("div",m,(0,i.v_)(u.choices[u.page].active),1)])):(0,a.Q3)("",!0),f,(0,a.Lk)("div",_,["view"==u.page?((0,a.uX)(),(0,a.CE)("div",g,[(0,a.Lk)("table",v,[(0,a.Lk)("tr",y,[k,u.data.view.active?(0,a.Q3)("",!0):((0,a.uX)(),(0,a.CE)(a.FK,{key:0},[b,S,w],64))]),u.data.view.loading?((0,a.uX)(!0),(0,a.CE)(a.FK,{key:1},(0,a.pI)(D.placeholder(3),(t=>((0,a.uX)(),(0,a.CE)("tr",{class:"msg_page_list_item msg_page_list_item_loading msg__view_list_item part_loading_animation",key:t},j)))),128)):((0,a.uX)(),(0,a.CE)(a.FK,{key:0},[((0,a.uX)(!0),(0,a.CE)(a.FK,null,(0,a.pI)(u.data.view.list,((t,e,s)=>((0,a.uX)(),(0,a.CE)("tr",{class:(0,i.C4)(["msg_page_list_item msg__view_list_item admin_in",{active:u.data.view.active==e}]),key:e,style:(0,i.Tr)({animationDelay:.03*(s+2)+.2+"s"})},[(0,a.Lk)("td",P,[t.to?((0,a.uX)(),(0,a.CE)("span",{key:0,class:"msg__view_to",title:`TO: ${Array.isArray(t.to)?t.to.join(", ")||"empty":t.to}`},(0,i.v_)(Array.isArray(t.to)?t.to.length+" emails":t.to.split("@")[0])+" ",9,x)):(0,a.Q3)("",!0),t.cc?((0,a.uX)(),(0,a.CE)("span",{key:1,class:"msg__view_cc",title:`CC: ${Array.isArray(t.cc)?t.cc.join(", ")||"empty":t.cc}`},"[cc] ",8,E)):(0,a.Q3)("",!0),t.bcc?((0,a.uX)(),(0,a.CE)("span",{key:2,class:"msg__view_bcc",title:`BCC: ${Array.isArray(t.cc)?t.bcc.join(", ")||"empty":t.bcc}`},"[bcc]",8,L)):(0,a.Q3)("",!0)]),(0,a.Lk)("td",C,(0,i.v_)(t.template&&t.template.name),1),(0,a.Lk)("td",N,(0,i.v_)(D.date_of(t)),1),(0,a.Lk)("td",O,(0,i.v_)(D.status_of(t)),1),u.data.view.active==e?((0,a.uX)(),(0,a.CE)("div",I,[(0,a.Lk)("div",A,[(0,a.Lk)("pre",null,(0,i.v_)(JSON.stringify(t,null,2)),1)])])):(0,a.Q3)("",!0),(0,a.Lk)("button",{class:(0,i.C4)(["msg__view_list_item__toggle msg_list_item__toggle",{click_escape:u.data.view.active==e}]),onClick:t=>u.data.view.active=u.data.view.active==e?null:e,title:"Close email data"},[(0,a.Lk)("div",{class:"msg_list_item__toggle__icon themed_icon",title:`${u.data.view.active==e?"Collapse":"Expand"} preview of ${e}`},null,8,M)],10,$)],6)))),128)),Object.keys(u.data.view.list).length?(0,a.Q3)("",!0):((0,a.uX)(),(0,a.CE)("tr",B,H))],64))])])):"send"==u.page?((0,a.uX)(),(0,a.CE)("div",R,[(0,a.Lk)("form",{onSubmit:e[15]||(e[15]=(0,n.D$)(((...t)=>D.send_message&&D.send_message(...t)),["prevent"])),style:{"max-width":"100%"}},[(0,a.Lk)("div",F,[(0,a.Lk)("div",V,[(0,a.Lk)("div",X,[U,(0,a.bo)((0,a.Lk)("input",{"onUpdate:modelValue":e[1]||(e[1]=t=>u.data.send.to=t),type:"text",id:"msg__send_to",name:"to",placeholder:"Email address(es)"},null,512),[[n.Jo,u.data.send.to]])]),(0,a.Lk)("div",K,[Q,(0,a.bo)((0,a.Lk)("input",{"onUpdate:modelValue":e[2]||(e[2]=t=>u.data.send.cc=t),type:"text",id:"msg__send_cc",name:"cc",placeholder:"Email address(es)"},null,512),[[n.Jo,u.data.send.cc]])]),(0,a.Lk)("div",q,[J,(0,a.bo)((0,a.Lk)("input",{"onUpdate:modelValue":e[3]||(e[3]=t=>u.data.send.bcc=t),type:"text",id:"msg__send_bcc",name:"bcc",placeholder:"Email address(es)"},null,512),[[n.Jo,u.data.send.bcc]])]),(0,a.Lk)("div",W,[G,(0,a.bo)((0,a.Lk)("input",{"onUpdate:modelValue":e[4]||(e[4]=t=>u.data.send.from=t),type:"text",id:"msg__send_from",name:"from",placeholder:`The ${this.$env.VUE_APP_BRAND_NAME_LONG} Team`},null,8,Y),[[n.Jo,u.data.send.from]])])]),(0,a.Lk)("div",z,[(0,a.Lk)("div",Z,[tt,(0,a.bo)((0,a.Lk)("select",{"onUpdate:modelValue":e[5]||(e[5]=t=>u.data.send.template=t),id:"msg__send_template",name:"template",onClick:e[6]||(e[6]=t=>{u.data.templates.loading&&D.fetch_templates()})},[(0,a.Lk)("option",et,(0,i.v_)(u.data.templates.loading?u.data.templates.load_triggered?"Loading...":"Click to load options":"Select a template"),1),st,((0,a.uX)(!0),(0,a.CE)(a.FK,null,(0,a.pI)(u.data.templates.list,((t,e)=>((0,a.uX)(),(0,a.CE)("option",{key:e,value:e},[(0,a.eW)(" ["),(0,a.Lk)("strong",null,(0,i.v_)(e),1),(0,a.eW)('] - "'+(0,i.v_)(t.subject)+'" ',1)],8,at)))),128))],512),[[n.u1,u.data.send.template]])]),u.data.send.template?((0,a.uX)(),(0,a.CE)("div",it,["custom"==u.data.send.template?((0,a.uX)(),(0,a.CE)(a.FK,{key:0},[(0,a.bo)((0,a.Lk)("input",{"onUpdate:modelValue":e[7]||(e[7]=t=>u.data.send.subject=t),type:"text",id:"msg__send_subject",placeholder:"Enter the subject of your message",title:"Enter the subject of your message"},null,512),[[n.Jo,u.data.send.subject]]),(0,a.bo)((0,a.Lk)("textarea",{"onUpdate:modelValue":e[8]||(e[8]=t=>u.data.send.content=t),id:"msg__send_contents",placeholder:"Enter the primary (HTML) content of your message - note that most email clients will strip out \n","import { render } from \"./ToggleBar.vue?vue&type=template&id=521703de&scoped=true\"\nimport script from \"./ToggleBar.vue?vue&type=script&lang=js\"\nexport * from \"./ToggleBar.vue?vue&type=script&lang=js\"\n\nimport \"./ToggleBar.vue?vue&type=style&index=0&id=521703de&scoped=true&lang=css\"\n\nimport exportComponent from \"../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-521703de\"]])\n\nexport default __exports__","