From 3a00815642f03df8b4fcb8e7927bdfabd3df1287 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 19 Oct 2023 14:54:20 +0000 Subject: [PATCH] Deploy to GitHub pages --- build/bundle.css | 24 + build/bundle.js | 20 + build/bundle.js.map | 1 + build/icons/search.svg | 1 + demo/build/bundle.css | 24 + demo/build/bundle.js | 64729 ++++++++++++++++++++++++++++++++++ demo/build/bundle.js.map | 1 + demo/build/icons/search.svg | 1 + demo/favicon.png | Bin 0 -> 3127 bytes demo/global.css | 71 + demo/index.html | 18 + demo/leihlokal.png | Bin 0 -> 4150 bytes demo/manifest.json | 17 + demo/service-worker.js | 62 + favicon.png | Bin 0 -> 3127 bytes global.css | 71 + index.html | 18 + leihlokal.png | Bin 0 -> 4150 bytes manifest.json | 17 + service-worker.js | 62 + 20 files changed, 65137 insertions(+) create mode 100644 build/bundle.css create mode 100644 build/bundle.js create mode 100644 build/bundle.js.map create mode 100644 build/icons/search.svg create mode 100644 demo/build/bundle.css create mode 100644 demo/build/bundle.js create mode 100644 demo/build/bundle.js.map create mode 100644 demo/build/icons/search.svg create mode 100644 demo/favicon.png create mode 100644 demo/global.css create mode 100644 demo/index.html create mode 100644 demo/leihlokal.png create mode 100644 demo/manifest.json create mode 100644 demo/service-worker.js create mode 100644 favicon.png create mode 100644 global.css create mode 100644 index.html create mode 100644 leihlokal.png create mode 100644 manifest.json create mode 100644 service-worker.js diff --git a/build/bundle.css b/build/bundle.css new file mode 100644 index 00000000..8955147d --- /dev/null +++ b/build/bundle.css @@ -0,0 +1,24 @@ +body, html{height:100%;width:100%;overflow:hidden;margin:0;padding:0;font-family:Tahoma, Verdana, Segoe, sans-serif}.container.svelte-zebrrh{height:100%;display:flex;flex-direction:column}:root{--highligh-color:#b8b8b8;--red:#ff2c5d;--yellow:#ffcd58;--green:#00d39a;--blue:#008cba;--darkblue:#003b4e}nav.svelte-dgsre0{position:sticky;top:0;width:100vw;height:50px;background-color:var(--blue);z-index:1}li.svelte-dgsre0{list-style-type:none;margin:5px 2vw;font-size:30px}li.left.svelte-dgsre0{float:left}li.right.svelte-dgsre0{float:right;margin-right:10px}a.active,svg.active{color:var(--yellow) !important}.left.svelte-dgsre0:hover{transition:0.25s all;transform:scale(1.05)}a.svelte-dgsre0{color:white;text-decoration:none;padding:0 2vw}ul.svelte-dgsre0{margin:0;padding:0;list-style:none}.container.svelte-wezv84{width:100%;height:100%;display:flex;justify-content:center}.svelte-wezv84{box-sizing:border-box}input[type="text"].svelte-wezv84,input[type="password"].svelte-wezv84{width:100%;padding:12px;border:1px solid #ccc;border-radius:4px;resize:vertical}label.svelte-wezv84{padding:12px 12px 12px 0;display:inline-block}.content.svelte-wezv84{border-radius:5px;padding:20px;min-width:80%}.col-25.svelte-wezv84{float:left;width:25%;margin-top:6px}.col-75.svelte-wezv84{float:left;width:75%;margin-top:6px}.row.svelte-wezv84:after{content:"";display:table;clear:both}@media screen and (max-width: 600px){.col-25.svelte-wezv84,.col-75.svelte-wezv84{width:100%}}.content.svelte-1jmp5ie{padding:0 1rem 1rem 1rem;width:100%;height:100%;overflow-y:scroll}.dashboardcontent.svelte-1tr6ndy{width:100%;height:100%;background-color:rgb(230, 230, 230);padding:1rem;box-sizing:border-box;overflow-y:scroll}.container.svelte-1tr6ndy{padding:0.4rem}.checkbox.svelte-d8g7vy.svelte-d8g7vy{--checkbox-color-primary:#242432;--checkbox-color-secondary:#d8d8ea;--checkbox-border-width:4%;--checkbox-border-width-active:7%;position:relative}.checkbox.svelte-d8g7vy input.svelte-d8g7vy{opacity:0;width:100%;height:100%;position:absolute;top:0;right:0;margin:0;padding:0;cursor:pointer}.checkbox__svg.svelte-d8g7vy.svelte-d8g7vy{width:100%;height:100%}.checkbox__check.svelte-d8g7vy.svelte-d8g7vy,.checkbox__border.svelte-d8g7vy.svelte-d8g7vy{stroke-width:var(--checkbox-border-width);fill:none;stroke-linecap:round;stroke-linejoin:round}.checkbox__border.svelte-d8g7vy.svelte-d8g7vy{width:calc(100% - (var(--checkbox-border-width) * 2));height:calc(100% - (var(--checkbox-border-width) * 2));transform:translate( + calc(var(--checkbox-border-width) * -1), + var(--checkbox-border-width) + ) + rotate(90deg);stroke:var(--checkbox-color-secondary);transition:0.2s;transform-origin:50% 50%}.checkbox__border.-active.svelte-d8g7vy.svelte-d8g7vy{stroke:var(--checkbox-color-primary);transition:none}.checkbox.svelte-d8g7vy:hover .checkbox__border.svelte-d8g7vy,.checkbox.-checked.svelte-d8g7vy .checkbox__border.svelte-d8g7vy{--checkbox-border-width:var(--checkbox-border-width-active)}.checkbox.-changeBg.svelte-d8g7vy .checkbox__border.svelte-d8g7vy{stroke:var(--checkbox-color-primary)}.checkbox__check.svelte-d8g7vy.svelte-d8g7vy{--checkbox-border-width:var(--checkbox-border-width-active);stroke:var(--checkbox-color-primary)}.dropbtn.svelte-6wx36t{color:white;border:none;cursor:pointer;padding:0}svg.svelte-6wx36t{width:auto;height:100%}.dropdown.svelte-6wx36t{position:relative;display:block}.dropdown-content.svelte-6wx36t{max-height:var(--max-height);position:absolute;background-color:rgb(0, 140, 186);color:#ffffff;right:0;font-size:1.4rem;width:15rem;-webkit-transition:all 0.2s linear 0s;-moz-transition:all 0.2s linear 0s;-ms-transition:all 0.2s linear 0s;-o-transition:all 0.2s linear 0s;transition:all 0.2s linear 0s;overflow:hidden}li.svelte-6wx36t{display:block;text-align:left;width:100%;cursor:pointer;padding:5px 10px;border-bottom:1px solid white}li.svelte-6wx36t:last-child{border-bottom:none}li.svelte-6wx36t:hover{color:rgb(255, 208, 0)}ul.svelte-6wx36t{list-style-type:none;padding:0}button.svelte-x15bm0{width:70px;height:70px;background-color:var(--blue);border-width:0px;border-radius:50%;box-shadow:0 6px 10px 0 #000000;transition:all 0.1s ease-in-out;font-size:50px;color:white;text-align:center;line-height:0px;padding-bottom:-20px;position:absolute;right:50px;bottom:50px;cursor:pointer}button.svelte-x15bm0:focus{box-shadow:0 6px 14px 0 #000000;transform:scale(1.05)}.container.svelte-13z3r12{display:flex;flex-direction:column;align-items:stretch;padding:0px}.searchFilterBar.svelte-13z3r12{width:calc(100% - 20px);margin:10px}.searchInput.svelte-13z3r12{width:calc(50% - 35px);height:42px;margin:0;padding:0 6px 0 16px;float:left}.searchFilterBar.svelte-13z3r12 .selectContainer{width:calc(50% - 35px);float:right}.container.svelte-1a9z21r.svelte-1a9z21r{position:absolute;bottom:0px;width:100%;display:flex;justify-content:center;align-items:center;height:60px}.pagination.svelte-1a9z21r.svelte-1a9z21r{display:flex;flex-shrink:0;align-self:center;justify-content:space-around;font-size:18px;padding:10px;width:60%;background-color:transparent}.pagination.svelte-1a9z21r a.svelte-1a9z21r{color:black;float:left;padding:8px 16px;text-decoration:none;border-radius:4px}a.svelte-1a9z21r.svelte-1a9z21r{color:var(--darkblue)}.pagination.svelte-1a9z21r a.active.svelte-1a9z21r{background-color:var(--blue);color:white}.pagination.svelte-1a9z21r a.svelte-1a9z21r:hover:not(.active):not(.disabled){background-color:#ddd}table.svelte-8zltn7{width:100%;table-layout:auto;position:relative;overflow-y:scroll;border-spacing:1px;padding:0 5px 0 5px}.tablecontainer.svelte-8zltn7{height:100%;overflow-x:scroll;-ms-overflow-style:none;scrollbar-width:none}.tablecontainer.svelte-8zltn7::-webkit-scrollbar{display:none}.error.svelte-8zltn7{position:absolute;color:red;font-size:2em;margin:20px;width:100%}.notescontainer.svelte-t4qyib{display:flex;flex-direction:column;background-color:white;--note-width:24rem}.notescontainerheader.svelte-t4qyib{font-size:1.7rem;padding:1rem 1rem 0 1rem;font-weight:bold}.notescontainercontent.svelte-t4qyib{display:flex;flex-direction:row;flex-wrap:wrap}.statscontainer.svelte-3chnvp{background-color:white;padding:1rem 1rem 1rem 1rem}.statscontainerheader.svelte-3chnvp{font-size:1.7rem;font-weight:bold;padding-bottom:1rem}.toasts.svelte-vlqkf6.svelte-vlqkf6.svelte-vlqkf6{list-style:none;position:fixed;top:0;right:0;padding:0;margin:0;z-index:9999}.toasts.svelte-vlqkf6>.toast.svelte-vlqkf6.svelte-vlqkf6{display:flex;align-items:center;position:relative;margin:1vh 1vw;min-width:98vw;position:relative;animation:svelte-vlqkf6-animate-in 600ms forwards;color:#fff;min-height:8vh}.toasts.svelte-vlqkf6>.toast.svelte-vlqkf6>button.svelte-vlqkf6{position:absolute;font-size:18px;right:0;margin:6px;color:#fff;outline:none;border:0;background-color:transparent}.toasts.svelte-vlqkf6>.toast.svelte-vlqkf6>.content.svelte-vlqkf6{padding:1vw;display:flex;font-weight:500;margin-right:20px}.toasts.svelte-vlqkf6>.toast.svelte-vlqkf6>.progress.svelte-vlqkf6{position:absolute;bottom:0;background-color:rgb(0, 0, 0, 0.3);height:6px;width:100%;animation-name:svelte-vlqkf6-shrink;animation-timing-function:linear;animation-fill-mode:forwards}.toasts.svelte-vlqkf6>.toast.svelte-vlqkf6.svelte-vlqkf6:before,.toasts.svelte-vlqkf6>.toast.svelte-vlqkf6.svelte-vlqkf6:after{content:"";position:absolute;z-index:-1;top:50%;bottom:0;left:1vw;right:1vw;border-radius:100px / 10px}.toasts.svelte-vlqkf6>.toast.svelte-vlqkf6.svelte-vlqkf6:after{right:1vw;left:auto;transform:skew(8deg) rotate(3deg)}@keyframes svelte-vlqkf6-animate-in{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215, .61, .355, 1);animation-timing-function:cubic-bezier(.215, .61, .355, 1)}0%{opacity:0;transform:translate3d(3000px, 0, 0)}60%{opacity:1;transform:translate3d(-25px, 0, 0)}75%{transform:translate3d(10px, 0, 0)}90%{transform:translate3d(-5px, 0, 0)}to{transform:none}}@keyframes svelte-vlqkf6-shrink{0%{width:98vw}100%{width:0}}@media(min-width: 480px){@keyframes svelte-vlqkf6-animate-in{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215, .61, .355, 1);animation-timing-function:cubic-bezier(.215, .61, .355, 1)}0%{opacity:0;transform:translate3d(3000px, 0, 0)}60%{opacity:1;transform:translate3d(-25px, 0, 0)}75%{transform:translate3d(10px, 0, 0)}90%{transform:translate3d(-5px, 0, 0)}to{transform:none}}@keyframes svelte-vlqkf6-shrink{0%{width:40vw}100%{width:0}}}@media screen and (min-width: 600px){.toasts.svelte-vlqkf6>.toast.svelte-vlqkf6.svelte-vlqkf6{min-width:40vw;min-height:auto}.toasts.svelte-vlqkf6>.toast.svelte-vlqkf6>.content.svelte-vlqkf6{justify-content:flex-start}}h1.svelte-pq99q7{color:var(--color);text-align:center;padding-top:0;margin-top:0}.container.svelte-pq99q7{width:400px;left:50%;top:50%;margin-left:-200px;margin-top:calc(var(--container-height) / -2);display:flex;align-items:center;flex-direction:column;padding:20px;border-radius:10px;background-color:transparent;z-index:99999999}.positionFixed.svelte-pq99q7{position:fixed}.fullscreenoverlay.svelte-pq99q7{position:absolute;left:0;top:0;width:100vw;height:100vh;z-index:99999998;background-color:rgba(20, 20, 20, 0.6)}input[type="text"].svelte-l8uxpu{width:100% !important;padding:0 0.7rem 0 0.7rem !important;border:1px solid #ccc !important;border-radius:4px !important;resize:vertical !important;height:2rem !important}textarea.svelte-l8uxpu{width:100% !important;resize:none;overflow:hidden}.container.svelte-7dr695 .autocomplete{width:100%}.container.svelte-7dr695 .autocomplete-input{border:1px solid #ccc;border-radius:4px;height:2.5rem}input.svelte-d77rmw{width:100%;padding:0.2rem 0.7rem 0.2rem 0.7rem;height:2rem;border:1px solid #ccc;border-radius:4px;resize:vertical;cursor:pointer;background-color:white;color:black}input[disabled].svelte-d77rmw{color:#dcdad1;background-color:rgba(239, 239, 239, 0.3)}.checkbox{margin-top:0.3rem}th.svelte-whzxrs{border-bottom:2px solid #000000;position:sticky;top:0;background-color:white}tr.svelte-whzxrs{height:40px}th.clickable.svelte-whzxrs{cursor:pointer}span.svelte-whzxrs{display:none}.visible.svelte-whzxrs{display:inline}tr.svelte-xkfbgl:hover td{background-color:var(--highligh-color) !important;color:white !important}.autocomplete.svelte-1nqq7zl.svelte-1nqq7zl{min-width:200px;display:inline-block;max-width:100%;position:relative;vertical-align:top;height:2.25em}.autocomplete.svelte-1nqq7zl.svelte-1nqq7zl:not(.hide-arrow):not(.is-loading)::after{border:3px solid;border-radius:2px;border-right:0;border-top:0;content:" ";display:block;height:0.625em;margin-top:-0.4375em;pointer-events:none;position:absolute;top:50%;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);-webkit-transform-origin:center;transform-origin:center;width:0.625em;border-color:#3273dc;right:1.125em;z-index:4}.autocomplete.show-clear.svelte-1nqq7zl.svelte-1nqq7zl:not(.hide-arrow)::after{right:2.3em}.autocomplete.svelte-1nqq7zl .svelte-1nqq7zl{box-sizing:border-box}.autocomplete-input.svelte-1nqq7zl.svelte-1nqq7zl{font:inherit;width:100%;height:100%;padding:5px 11px}.autocomplete.svelte-1nqq7zl:not(.hide-arrow) .autocomplete-input.svelte-1nqq7zl{padding-right:2em}.autocomplete.show-clear.svelte-1nqq7zl:not(.hide-arrow) .autocomplete-input.svelte-1nqq7zl{padding-right:3.2em}.autocomplete.hide-arrow.show-clear.svelte-1nqq7zl .autocomplete-input.svelte-1nqq7zl{padding-right:2em}.autocomplete-list.svelte-1nqq7zl.svelte-1nqq7zl{background:#fff;position:relative;width:100%;overflow-y:auto;z-index:99;padding:10px 0;top:0px;border:1px solid #999;max-height:calc(15 * (1rem + 10px) + 15px);user-select:none}.autocomplete-list.svelte-1nqq7zl.svelte-1nqq7zl:empty{padding:0}.autocomplete-list-item.svelte-1nqq7zl.svelte-1nqq7zl{padding:5px 15px;color:#333;cursor:pointer;line-height:1}.autocomplete-list-item.confirmed.svelte-1nqq7zl.svelte-1nqq7zl{background-color:#789fed;color:#fff}.autocomplete-list-item.selected.svelte-1nqq7zl.svelte-1nqq7zl{background-color:#2e69e2;color:#fff}.autocomplete-list-item-no-results.svelte-1nqq7zl.svelte-1nqq7zl{padding:5px 15px;color:#999;line-height:1}.autocomplete-list-item-create.svelte-1nqq7zl.svelte-1nqq7zl{padding:5px 15px;line-height:1}.autocomplete-list-item-loading.svelte-1nqq7zl.svelte-1nqq7zl{padding:5px 15px;line-height:1}.autocomplete-list.hidden.svelte-1nqq7zl.svelte-1nqq7zl{display:none}.autocomplete.show-clear.svelte-1nqq7zl .autocomplete-clear-button.svelte-1nqq7zl{cursor:pointer;display:block;text-align:center;position:absolute;right:0.1em;padding:0.3em 0.6em;top:50%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);z-index:4}.autocomplete.svelte-1nqq7zl:not(.show-clear) .autocomplete-clear-button.svelte-1nqq7zl{display:none}.autocomplete.svelte-1nqq7zl select.svelte-1nqq7zl{display:none}.autocomplete.is-multiple.svelte-1nqq7zl .input-container.svelte-1nqq7zl{height:auto;box-shadow:inset 0 1px 2px rgba(10, 10, 10, 0.1);border-radius:4px;border:1px solid #b5b5b5;padding-left:0.4em;padding-right:0.4em;display:flex;flex-wrap:wrap;align-items:stretch;background-color:#fff}.autocomplete.is-multiple.svelte-1nqq7zl .tag.svelte-1nqq7zl{display:flex;margin-top:0.5em;margin-bottom:0.3em}.autocomplete.is-multiple.svelte-1nqq7zl .tag.is-delete.svelte-1nqq7zl{cursor:pointer}.autocomplete.is-multiple.svelte-1nqq7zl .tags.svelte-1nqq7zl{margin-right:0.3em;margin-bottom:0}.autocomplete.is-multiple.svelte-1nqq7zl .autocomplete-input.svelte-1nqq7zl{display:flex;width:100%;flex:1 1 50px;min-width:3em;border:none;box-shadow:none;background:none}label.svelte-cqmlvo{padding:0.5rem 0.5rem 0.5rem 0;display:inline-block}.col-label.svelte-cqmlvo{float:left;width:40%}.col-input.svelte-cqmlvo{float:left;width:60%}row.svelte-cqmlvo{padding:0.3rem 0 0.3rem 0;display:inline-block;width:100%}h1.svelte-cqmlvo{height:2rem;padding:0;margin:0}.container.svelte-cqmlvo{width:100%;height:100%;display:flex;flex-direction:column;flex-wrap:nowrap;justify-content:center}.contentContainer.svelte-cqmlvo{display:block;height:100%;overflow-y:scroll;overflow-x:hidden}.content.svelte-cqmlvo{column-count:2}@media(max-width: 1045px){.content.svelte-cqmlvo{column-count:1}}.header.svelte-cqmlvo{flex-shrink:0;width:calc(100% - 1rem);padding:0.5rem 0.5rem 1rem 0.5rem;background-color:rgb(0, 140, 186);color:white;font-weight:normal}.footer.svelte-cqmlvo{border-top:1px solid rgb(204, 204, 204);flex-shrink:0}.note.svelte-1c1kny{display:flex;background-color:transparent}.noteview.svelte-1c1kny{padding:0.5rem 0.5rem 0.2rem 0.5rem;width:var(--note-width);height:var(--note-height);font-size:1.2rem;display:flex;flex-direction:column;justify-content:space-between;box-sizing:border-box;resize:both;overflow:auto}.notecontainer.svelte-1c1kny{padding:1rem;background-color:transparent}.noteview *{margin:0}.footer.svelte-1c1kny{font-style:italic;font-size:0.9rem;width:100%;display:flex;justify-content:space-between;align-items:center;padding-top:0.3rem;box-sizing:border-box}.deletebutton.svelte-1c1kny:hover{transition:0.25s all;transform:scale(1.1)}.noteviewcontent.svelte-1c1kny{width:100%;height:100%;cursor:pointer}.helptext.svelte-1c1kny{width:100%;height:100%;display:flex;justify-content:center;align-items:center;font-size:1.4rem;font-weight:bold;color:rgb(120, 120, 120)}.addnote.svelte-13ow87f.svelte-13ow87f{padding:0.5rem 0.5rem 0.2rem 0.5rem;width:var(--note-width);height:var(--note-width);box-sizing:border-box;font-size:1.2rem;cursor:pointer;border:4px solid var(--color)}.addnote.svelte-13ow87f .svelte-13ow87f{color:var(--color);fill:var(--color)}.addnote.svelte-13ow87f.svelte-13ow87f:hover{border-color:#000000}.addnote.svelte-13ow87f:hover .svelte-13ow87f{color:#000000;fill:#000000}.addnote.svelte-13ow87f.svelte-13ow87f,.addnote.svelte-13ow87f .svelte-13ow87f{-moz-transition:all 0.2s ease-in;-o-transition:all 0.2s ease-in;-webkit-transition:all 0.2s ease-in;transition:all 0.2s ease-in}.addnotecontainer.svelte-13ow87f.svelte-13ow87f{padding:1rem;--color:rgb(220, 220, 220)}.addnotecontent.svelte-13ow87f.svelte-13ow87f{padding:15%;align-items:center;display:flex;flex-direction:column;justify-content:space-around;box-sizing:border-box;width:100%;height:100%}.text.svelte-13ow87f.svelte-13ow87f{font-size:2rem}.circle.svelte-14upwad{height:var(--size);width:var(--size);border-color:var(--color) transparent var(--color) var(--color);border-width:calc(var(--size) / 15);border-style:solid;border-image:initial;border-radius:50%;animation:var(--duration) linear 0s infinite normal none running svelte-14upwad-rotate}@keyframes svelte-14upwad-rotate{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}.circle.svelte-1vclic6{width:var(--size);height:var(--size);box-sizing:border-box;position:relative;border:3px solid transparent;border-top-color:var(--colorOuter);border-radius:50%;animation:svelte-1vclic6-circleSpin var(--durationOuter) linear infinite}.circle.svelte-1vclic6:before,.circle.svelte-1vclic6:after{content:"";box-sizing:border-box;position:absolute;border:3px solid transparent;border-radius:50%}.circle.svelte-1vclic6:after{border-top-color:var(--colorInner);top:9px;left:9px;right:9px;bottom:9px;animation:svelte-1vclic6-circleSpin var(--durationInner) linear infinite}.circle.svelte-1vclic6:before{border-top-color:var(--colorCenter);top:3px;left:3px;right:3px;bottom:3px;animation:svelte-1vclic6-circleSpin var(--durationCenter) linear infinite}@keyframes svelte-1vclic6-circleSpin{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}.wrapper.svelte-1vf8im1{width:var(--size);height:var(--size);display:flex;justify-content:center;align-items:center;line-height:0;box-sizing:border-box}.inner.svelte-1vf8im1{transform:scale(calc(var(--floatSize) / 52))}.ball-container.svelte-1vf8im1{animation:svelte-1vf8im1-ballTwo var(--duration) infinite;width:44px;height:44px;flex-shrink:0;position:relative}.single-ball.svelte-1vf8im1{width:44px;height:44px;position:absolute}.ball.svelte-1vf8im1{width:20px;height:20px;border-radius:50%;position:absolute;animation:svelte-1vf8im1-ballOne var(--duration) infinite ease}.ball-top-left.svelte-1vf8im1{background-color:var(--ballTopLeftColor);top:0;left:0}.ball-top-right.svelte-1vf8im1{background-color:var(--ballTopRightColor);top:0;left:24px}.ball-bottom-left.svelte-1vf8im1{background-color:var(--ballBottomLeftColor);top:24px;left:0}.ball-bottom-right.svelte-1vf8im1{background-color:var(--ballBottomRightColor);top:24px;left:24px}@keyframes svelte-1vf8im1-ballOne{0%{position:absolute}50%{top:12px;left:12px;position:absolute;opacity:0.5}100%{position:absolute}}@keyframes svelte-1vf8im1-ballTwo{0%{transform:rotate(0deg) scale(1)}50%{transform:rotate(360deg) scale(1.3)}100%{transform:rotate(720deg) scale(1)}}.wrapper.svelte-h1a2xs{position:relative;width:var(--size);height:var(--size)}.circle.svelte-h1a2xs{position:absolute;width:var(--size);height:var(--size);background-color:var(--color);border-radius:100%;opacity:0.6;top:0;left:0;animation-fill-mode:both;animation-name:svelte-h1a2xs-bounce !important}@keyframes svelte-h1a2xs-bounce{0%,100%{transform:scale(0)}50%{transform:scale(1)}}.svelte-1exboqr{overflow:hidden;position:relative;text-indent:-9999px;display:inline-block;background:#f86;border-radius:50%;transform:rotateZ(90deg);transform-origin:50% 50%;animation:svelte-1exboqr-plus-loader-background var(--duration) infinite ease-in-out}.svelte-1exboqr:after{background:#f86;border-radius:50% 0 0 50%;content:"";position:absolute;right:50%;top:0;width:50%;height:100%;transform-origin:100% 50%;animation:svelte-1exboqr-plus-loader-top var(--duration) infinite linear}.svelte-1exboqr:before{background:#fc6;border-radius:50% 0 0 50%;content:"";position:absolute;right:50%;top:0;width:50%;height:100%;transform-origin:100% 50%;animation:svelte-1exboqr-plus-loader-bottom var(--duration) infinite linear}@keyframes svelte-1exboqr-plus-loader-top{2.5%{background:#f86;transform:rotateY(0deg);animation-timing-function:ease-in}13.75%{background:#ff430d;transform:rotateY(90deg);animation-timing-function:step-start}13.76%{background:#ffae0d;transform:rotateY(90deg);animation-timing-function:ease-out}25%{background:#fc6;transform:rotateY(180deg)}27.5%{background:#fc6;transform:rotateY(180deg);animation-timing-function:ease-in}41.25%{background:#ffae0d;transform:rotateY(90deg);animation-timing-function:step-start}41.26%{background:#2cc642;transform:rotateY(90deg);animation-timing-function:ease-out}50%{background:#6d7;transform:rotateY(0deg)}52.5%{background:#6d7;transform:rotateY(0deg);animation-timing-function:ease-in}63.75%{background:#2cc642;transform:rotateY(90deg);animation-timing-function:step-start}63.76%{background:#1386d2;transform:rotateY(90deg);animation-timing-function:ease-out}75%{background:#4ae;transform:rotateY(180deg)}77.5%{background:#4ae;transform:rotateY(180deg);animation-timing-function:ease-in}91.25%{background:#1386d2;transform:rotateY(90deg);animation-timing-function:step-start}91.26%{background:#ff430d;transform:rotateY(90deg);animation-timing-function:ease-in}100%{background:#f86;transform:rotateY(0deg);animation-timing-function:step-start}}@keyframes svelte-1exboqr-plus-loader-bottom{0%{background:#fc6;animation-timing-function:step-start}50%{background:#fc6;animation-timing-function:step-start}75%{background:#4ae;animation-timing-function:step-start}100%{background:#4ae;animation-timing-function:step-start}}@keyframes svelte-1exboqr-plus-loader-background{0%{background:#f86;transform:rotateZ(180deg)}25%{background:#f86;transform:rotateZ(180deg);animation-timing-function:step-start}27.5%{background:#6d7;transform:rotateZ(90deg)}50%{background:#6d7;transform:rotateZ(90deg);animation-timing-function:step-start}52.5%{background:#6d7;transform:rotateZ(0deg)}75%{background:#6d7;transform:rotateZ(0deg);animation-timing-function:step-start}77.5%{background:#f86;transform:rotateZ(270deg)}100%{background:#f86;transform:rotateZ(270deg);animation-timing-function:step-start}}.wrapper.svelte-9juun5{width:var(--size);height:var(--size)}.circle.svelte-9juun5{width:var(--size);height:var(--size);background-color:var(--color);animation-duration:var(--duration);border-radius:100%;display:inline-block;animation:svelte-9juun5-scaleOut var(--duration) ease-in-out infinite}@keyframes svelte-9juun5-scaleOut{0%{transform:scale(0)}100%{transform:scale(1);opacity:0}}.wrapper.svelte-1wp57lu{width:var(--size);height:var(--stroke);transform:scale(calc(var(--floatSize) / 75));display:flex;justify-content:center;align-items:center}.line.svelte-1wp57lu{width:var(--size);height:var(--stroke);background:var(--color);border-radius:var(--stroke);transform-origin:center center;animation:svelte-1wp57lu-spineLine var(--duration) ease infinite}@keyframes svelte-1wp57lu-spineLine{0%{transform:rotate(-20deg);height:5px;width:75px}5%{height:5px;width:75px}30%{transform:rotate(380deg);height:5px;width:75px}40%{transform:rotate(360deg);height:5px;width:75px}55%{transform:rotate(0deg);height:5px;width:5px}65%{transform:rotate(0deg);height:5px;width:85px}68%{transform:rotate(0deg);height:5px}75%{transform:rotate(0deg);height:5px;width:1px}78%{height:5px;width:5px}90%{height:5px;width:75px;transform:rotate(0deg)}99%,100%{height:5px;width:75px;transform:rotate(-20deg)}}.wrapper.svelte-1uxpkwt{height:var(--size);width:var(--size);display:inline-block;text-align:center;font-size:10px}.rect.svelte-1uxpkwt{height:100%;width:10%;display:inline-block;margin-right:4px;background-color:var(--color);animation:svelte-1uxpkwt-stretch var(--duration) ease-in-out infinite}@keyframes svelte-1uxpkwt-stretch{0%,40%,100%{transform:scaleY(0.4)}20%{transform:scaleY(1)}}.wrapper.svelte-vhcw6{height:calc(var(--size) / 15);width:calc(var(--size) * 2);background-color:var(--rgba);position:relative;overflow:hidden;background-clip:padding-box}.lines.svelte-vhcw6{height:calc(var(--size) / 15);background-color:var(--color)}.small-lines.svelte-vhcw6{position:absolute;overflow:hidden;background-clip:padding-box;display:block;border-radius:2px;will-change:left, right;animation-fill-mode:forwards}.small-lines.\31 .svelte-vhcw6{animation:var(--duration) cubic-bezier(0.65, 0.815, 0.735, 0.395) 0s + infinite normal none running svelte-vhcw6-long}.small-lines.\32 .svelte-vhcw6{animation:var(--duration) cubic-bezier(0.165, 0.84, 0.44, 1) + calc((var(--duration)+0.1) / 2) infinite normal none running svelte-vhcw6-short}@keyframes svelte-vhcw6-long{0%{left:-35%;right:100%}60%{left:100%;right:-90%}100%{left:100%;right:-90%}}@keyframes svelte-vhcw6-short{0%{left:-200%;right:100%}60%{left:107%;right:-8%}100%{left:107%;right:-8%}}.wrapper.svelte-1cy66mt{width:var(--size);height:var(--size)}.circle.svelte-1cy66mt{border-radius:100%;animation-fill-mode:both;position:absolute;opacity:0;width:var(--size);height:var(--size);background-color:var(--color);animation:svelte-1cy66mt-bounce var(--duration) linear infinite}@keyframes svelte-1cy66mt-bounce{0%{opacity:0;transform:scale(0)}5%{opacity:1}100%{opacity:0;transform:scale(1)}}.wrapper.svelte-17ey38u{position:relative;width:var(--size);height:var(--size)}.border.svelte-17ey38u{border-color:var(--color);position:absolute;top:0px;left:0px;width:var(--size);height:var(--size);opacity:0.4;perspective:800px;border-width:6px;border-style:solid;border-image:initial;border-radius:100%}.border.\31 .svelte-17ey38u{animation:var(--duration) linear 0s infinite normal none running svelte-17ey38u-ringOne}.border.\32 .svelte-17ey38u{animation:var(--duration) linear 0s infinite normal none running svelte-17ey38u-ringTwo}@keyframes svelte-17ey38u-ringOne{0%{transform:rotateX(0deg) rotateY(0deg) rotateZ(0deg)}100%{transform:rotateX(360deg) rotateY(180deg) rotateZ(360deg)}}@keyframes svelte-17ey38u-ringTwo{0%{transform:rotateX(0deg) rotateY(0deg) rotateZ(0deg)}100%{transform:rotateX(180deg) rotateY(360deg) rotateZ(360deg)}}.wrapper.svelte-14w6xk7{height:var(--size);width:var(--size);display:flex;align-items:center;justify-content:center}.dot.svelte-14w6xk7{height:var(--dotSize);width:var(--dotSize);background-color:var(--color);margin:2px;display:inline-block;border-radius:100%;animation:svelte-14w6xk7-sync var(--duration) ease-in-out infinite alternate both running}@-webkit-keyframes svelte-14w6xk7-sync{33%{-webkit-transform:translateY(10px);transform:translateY(10px)}66%{-webkit-transform:translateY(-10px);transform:translateY(-10px)}100%{-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes svelte-14w6xk7-sync{33%{-webkit-transform:translateY(10px);transform:translateY(10px)}66%{-webkit-transform:translateY(-10px);transform:translateY(-10px)}100%{-webkit-transform:translateY(0);transform:translateY(0)}}.wrapper.svelte-1fuumrt{width:var(--size);height:calc(var(--size) / 2);overflow:hidden}.rainbow.svelte-1fuumrt{width:var(--size);height:var(--size);border-left-color:transparent;border-bottom-color:transparent;border-top-color:var(--color);border-right-color:var(--color);box-sizing:border-box;transform:rotate(-200deg);border-radius:50%;border-style:solid;animation:var(--duration) ease-in-out 0s infinite normal none running + svelte-1fuumrt-rotate}@keyframes svelte-1fuumrt-rotate{0%{border-width:10px}25%{border-width:3px}50%{transform:rotate(115deg);border-width:10px}75%{border-width:3px}100%{border-width:10px}}.wrapper.svelte-8cmcz4{position:relative;display:flex;justify-content:center;align-items:center;width:calc(var(--size) * 2.5);height:var(--size);overflow:hidden}.bar.svelte-8cmcz4{position:absolute;top:calc(var(--size) / 10);width:calc(var(--size) / 5);height:calc(var(--size) / 10);margin-top:calc(var(--size) - var(--size) / 10);transform:skewY(0deg);background-color:var(--color);animation:svelte-8cmcz4-motion var(--duration) ease-in-out infinite}@keyframes svelte-8cmcz4-motion{25%{transform:skewY(25deg)}50%{height:100%;margin-top:0}75%{transform:skewY(-25deg)}}.wrapper.svelte-1x2s7pr{width:calc(var(--size) * 1.3);height:calc(var(--size) * 1.3);display:flex;justify-content:center;align-items:center}.firework.svelte-1x2s7pr{border:calc(var(--size) / 10) dotted var(--color);width:var(--size);height:var(--size);border-radius:50%;animation:svelte-1x2s7pr-fire var(--duration) cubic-bezier(0.165, 0.84, 0.44, 1) infinite}@keyframes svelte-1x2s7pr-fire{0%{opacity:1;transform:scale(0.1)}25%{opacity:0.85}100%{transform:scale(1);opacity:0}}.wrapper.svelte-446r86{position:relative;display:flex;justify-content:center;align-items:center;width:var(--size);height:calc(var(--size) / 2.5)}.cube.svelte-446r86{position:absolute;top:0px;width:calc(var(--size) / 5);height:calc(var(--size) / 2.5);background-color:var(--color);animation:svelte-446r86-motion var(--duration) cubic-bezier(0.895, 0.03, 0.685, 0.22) + infinite}@keyframes svelte-446r86-motion{0%{opacity:1}50%{opacity:0}100%{opacity:1}}.wrapper.svelte-1v1mfqa{position:relative;display:flex;justify-content:center;align-items:center;width:var(--size);height:var(--size)}.ring.svelte-1v1mfqa{position:absolute;border:2px solid var(--color);border-radius:50%;background-color:transparent;animation:svelte-1v1mfqa-motion var(--duration) ease infinite}@keyframes svelte-1v1mfqa-motion{0%{transform:translateY(var(--motionOne))}50%{transform:translateY(var(--motionTwo))}100%{transform:translateY(var(--motionThree))}}.wrapper.svelte-1unnvn6{height:var(--size);width:var(--size);display:flex;justify-content:center;align-items:center}.spinner.svelte-1unnvn6{height:var(--size);width:var(--size);animation:svelte-1unnvn6-rotate var(--duration) infinite linear}.dot.svelte-1unnvn6{width:60%;height:60%;display:inline-block;position:absolute;top:0;background-color:var(--color);border-radius:100%;animation:svelte-1unnvn6-bounce var(--duration) infinite ease-in-out}@keyframes svelte-1unnvn6-rotate{100%{transform:rotate(360deg)}}@keyframes svelte-1unnvn6-bounce{0%,100%{transform:scale(0)}50%{transform:scale(1)}}.wrapper.svelte-tycttu{position:relative;display:flex;justify-content:center;align-items:center;width:var(--size);height:var(--size)}.shadow.svelte-tycttu{color:var(--color);font-size:var(--size);overflow:hidden;width:var(--size);height:var(--size);border-radius:50%;margin:28px auto;position:relative;transform:translateZ(0);animation:svelte-tycttu-load var(--duration) infinite ease, + svelte-tycttu-round var(--duration) infinite ease}@keyframes svelte-tycttu-load{0%{box-shadow:0 -0.83em 0 -0.4em, 0 -0.83em 0 -0.42em, 0 -0.83em 0 -0.44em, + 0 -0.83em 0 -0.46em, 0 -0.83em 0 -0.477em}5%,95%{box-shadow:0 -0.83em 0 -0.4em, 0 -0.83em 0 -0.42em, 0 -0.83em 0 -0.44em, + 0 -0.83em 0 -0.46em, 0 -0.83em 0 -0.477em}10%,59%{box-shadow:0 -0.83em 0 -0.4em, -0.087em -0.825em 0 -0.42em, + -0.173em -0.812em 0 -0.44em, -0.256em -0.789em 0 -0.46em, + -0.297em -0.775em 0 -0.477em}20%{box-shadow:0 -0.83em 0 -0.4em, -0.338em -0.758em 0 -0.42em, + -0.555em -0.617em 0 -0.44em, -0.671em -0.488em 0 -0.46em, + -0.749em -0.34em 0 -0.477em}38%{box-shadow:0 -0.83em 0 -0.4em, -0.377em -0.74em 0 -0.42em, + -0.645em -0.522em 0 -0.44em, -0.775em -0.297em 0 -0.46em, + -0.82em -0.09em 0 -0.477em}100%{box-shadow:0 -0.83em 0 -0.4em, 0 -0.83em 0 -0.42em, 0 -0.83em 0 -0.44em, + 0 -0.83em 0 -0.46em, 0 -0.83em 0 -0.477em}}@keyframes svelte-tycttu-round{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}.square.svelte-btmyrn{height:var(--size);width:var(--size);background-color:var(--color);animation:svelte-btmyrn-squareDelay var(--duration) 0s infinite + cubic-bezier(0.09, 0.57, 0.49, 0.9);animation-fill-mode:both;perspective:100px;display:inline-block}@keyframes svelte-btmyrn-squareDelay{25%{-webkit-transform:rotateX(180deg) rotateY(0);transform:rotateX(180deg) rotateY(0)}50%{-webkit-transform:rotateX(180deg) rotateY(180deg);transform:rotateX(180deg) rotateY(180deg)}75%{-webkit-transform:rotateX(0) rotateY(180deg);transform:rotateX(0) rotateY(180deg)}100%{-webkit-transform:rotateX(0) rotateY(0);transform:rotateX(0) rotateY(0)}}.wrapper.svelte-nlgli4{height:var(--size);width:var(--size);border-radius:100%;animation:svelte-nlgli4-moonStretchDelay var(--duration) 0s infinite linear;animation-fill-mode:forwards;position:relative}.circle-one.svelte-nlgli4{top:var(--moonSize);background-color:var(--color);width:calc(var(--size) / 7);height:calc(var(--size) / 7);border-radius:100%;animation:svelte-nlgli4-moonStretchDelay var(--duration) 0s infinite linear;animation-fill-mode:forwards;opacity:0.8;position:absolute}.circle-two.svelte-nlgli4{opacity:0.1;border:calc(var(--size) / 7) solid var(--color);height:var(--size);width:var(--size);border-radius:100%;box-sizing:border-box}@keyframes svelte-nlgli4-moonStretchDelay{100%{transform:rotate(360deg)}}.wrapper.svelte-1sqavxm.svelte-1sqavxm{height:var(--size);width:var(--size);position:relative;display:flex;justify-content:center;align-items:center}.wrapper.svelte-1sqavxm .svelte-1sqavxm{line-height:0;box-sizing:border-box}.spinner-inner.svelte-1sqavxm.svelte-1sqavxm{height:var(--size);width:var(--size);transform:scale(calc(var(--size) / 70))}.mask.svelte-1sqavxm.svelte-1sqavxm{position:absolute;border-radius:2px;overflow:hidden;perspective:1000;backface-visibility:hidden}.plane.svelte-1sqavxm.svelte-1sqavxm{background:var(--color);width:400%;height:100%;position:absolute;z-index:100;perspective:1000;backface-visibility:hidden}#top.svelte-1sqavxm .plane.svelte-1sqavxm{z-index:2000;animation:svelte-1sqavxm-trans1 var(--duration) ease-in infinite 0s backwards}#middle.svelte-1sqavxm .plane.svelte-1sqavxm{transform:translate3d(0px, 0, 0);background:var(--rgba);animation:svelte-1sqavxm-trans2 var(--duration) linear infinite calc(var(--duration) / 4) + backwards}#bottom.svelte-1sqavxm .plane.svelte-1sqavxm{z-index:2000;animation:svelte-1sqavxm-trans3 var(--duration) ease-out infinite + calc(var(--duration) / 2) backwards}#top.svelte-1sqavxm.svelte-1sqavxm{width:53px;height:20px;left:20px;top:5px;transform:skew(-15deg, 0);z-index:100}#middle.svelte-1sqavxm.svelte-1sqavxm{width:33px;height:20px;left:20px;top:21px;transform:skew(-15deg, 40deg)}#bottom.svelte-1sqavxm.svelte-1sqavxm{width:53px;height:20px;top:35px;transform:skew(-15deg, 0)}@keyframes svelte-1sqavxm-trans1{from{transform:translate3d(53px, 0, 0)}to{transform:translate3d(-250px, 0, 0)}}@keyframes svelte-1sqavxm-trans2{from{transform:translate3d(-160px, 0, 0)}to{transform:translate3d(53px, 0, 0)}}@keyframes svelte-1sqavxm-trans3{from{transform:translate3d(53px, 0, 0)}to{transform:translate3d(-220px, 0, 0)}}span.svelte-evhfle{width:var(--size);height:calc(var(--size) / 4);position:relative;display:block}div.svelte-evhfle{width:calc(var(--size) / 4);height:calc(var(--size) / 4);position:absolute;left:0;top:0;border-radius:2px;background:var(--color);transform:translateX(-50%) rotate(45deg) scale(0);animation:svelte-evhfle-diamonds var(--duration) linear infinite}div.svelte-evhfle:nth-child(1){animation-delay:calc(var(--duration) * 2 / 3 * -1)}div.svelte-evhfle:nth-child(2){animation-delay:calc(var(--duration) * 2 / 3 * -2)}div.svelte-evhfle:nth-child(3){animation-delay:calc(var(--duration) * 2 / 3 * -3)}@keyframes svelte-evhfle-diamonds{50%{left:50%;transform:translateX(-50%) rotate(45deg) scale(1)}100%{left:100%;transform:translateX(-50%) rotate(45deg) scale(0)}}div.svelte-1cgj772{position:relative;width:var(--size);height:var(--size);background-color:transparent;box-shadow:inset 0px 0px 0px 2px var(--color);border-radius:50%}div.svelte-1cgj772::before,div.svelte-1cgj772:after{position:absolute;content:"";background-color:var(--color)}div.svelte-1cgj772:after{width:calc(var(--size) / 2.4);height:2px;top:calc(var(--size) / 2);left:calc(var(--size) / 2);transform-origin:1px 1px;animation:svelte-1cgj772-rotate calc(var(--duration) / 4) linear infinite}div.svelte-1cgj772:before{width:calc(var(--size) / 3);height:2px;top:calc((var(--size) / 2));left:calc((var(--size) / 2));transform-origin:1px 1px;animation:svelte-1cgj772-rotate var(--duration) linear infinite}@keyframes svelte-1cgj772-rotate{100%{transform:rotate(360deg)}}.svelte-g4wg3a{box-sizing:border-box}.bg.svelte-g4wg3a{position:fixed;z-index:1000;top:0;left:0;display:flex;flex-direction:column;justify-content:center;width:100vw;height:100vh;background:rgba(0, 0, 0, 0.66)}.wrap.svelte-g4wg3a{position:relative;margin:2rem;max-height:100%}.window.svelte-g4wg3a{position:relative;width:40rem;max-width:100%;max-height:100%;margin:2rem auto;color:black;border-radius:0.5rem;background:white}.content.svelte-g4wg3a{position:relative;padding:1rem;max-height:calc(100vh - 4rem);overflow:auto}.close.svelte-g4wg3a{display:block;box-sizing:border-box;position:absolute;z-index:1000;top:1rem;right:1rem;margin:0;padding:0;width:1.5rem;height:1.5rem;border:0;color:black;border-radius:1.5rem;background:white;box-shadow:0 0 0 1px black;transition:transform 0.2s cubic-bezier(0.25, 0.1, 0.25, 1), + background 0.2s cubic-bezier(0.25, 0.1, 0.25, 1);-webkit-appearance:none}.close.svelte-g4wg3a:before,.close.svelte-g4wg3a:after{content:'';display:block;box-sizing:border-box;position:absolute;top:50%;width:1rem;height:1px;background:black;transform-origin:center;transition:height 0.2s cubic-bezier(0.25, 0.1, 0.25, 1), + background 0.2s cubic-bezier(0.25, 0.1, 0.25, 1)}.close.svelte-g4wg3a:before{-webkit-transform:translate(0, -50%) rotate(45deg);-moz-transform:translate(0, -50%) rotate(45deg);transform:translate(0, -50%) rotate(45deg);left:0.25rem}.close.svelte-g4wg3a:after{-webkit-transform:translate(0, -50%) rotate(-45deg);-moz-transform:translate(0, -50%) rotate(-45deg);transform:translate(0, -50%) rotate(-45deg);left:0.25rem}.close.svelte-g4wg3a:hover{background:black}.close.svelte-g4wg3a:hover:before,.close.svelte-g4wg3a:hover:after{height:2px;background:white}.close.svelte-g4wg3a:focus{border-color:#3399ff;box-shadow:0 0 0 2px #3399ff}.close.svelte-g4wg3a:active{transform:scale(0.9)}.close.svelte-g4wg3a:hover,.close.svelte-g4wg3a:focus,.close.svelte-g4wg3a:active{outline:none}.button-tight.svelte-jklzts{height:1.5rem;font-size:smaller;line-height:0.75rem;margin-top:0.25rem;margin-left:0.1rem}.button-tight.svelte-jklzts:hover{transition:0.25s all;transform:scale(1.02)}.clear.svelte-a9z6xt{position:absolute;right:10px;top:50%;transform:translate(0, -50%);width:20px;color:#c5cacf;cursor:pointer}.clear.svelte-a9z6xt:hover{color:#2c3e50}.clear.svelte-a9z6xt{color:#3f4f5f}.cell.svelte-1ebmzyw.svelte-1ebmzyw{overflow:hidden;text-overflow:ellipsis}img.svelte-1ebmzyw.svelte-1ebmzyw{height:100%;display:block}td.svelte-1ebmzyw:hover>img.svelte-1ebmzyw{height:50vh;position:fixed;left:25vw;top:25vh;z-index:1}td.svelte-1ebmzyw.svelte-1ebmzyw{cursor:pointer;padding:0px;padding-left:2px;padding-right:2px}.footer.svelte-iinr0q{height:2rem;padding:0.5rem;margin:0;flex-shrink:0;display:flex;justify-content:space-between}.outerbox.svelte-rb892u{padding:0.6rem;width:26rem;break-inside:avoid}.group.svelte-rb892u{border:1px solid rgb(204, 204, 204);padding:1rem 1rem 0.5rem 1rem;border-radius:5px;display:flex;flex-direction:column}h3.svelte-rb892u{margin:0;padding:0 0 0.5em 0}#notes-content{width:var(--editor-width)}.cl-button:last-child{width:auto !important;float:right;background-color:#8de3ff !important}.selectContainer.svelte-b8sh3g.svelte-b8sh3g{--padding:0 16px;border:var(--border, 1px solid #d8dbdf);border-radius:var(--borderRadius, 3px);box-sizing:border-box;height:var(--height, 42px);position:relative;display:flex;align-items:center;padding:var(--padding);background:var(--background, #fff);margin:var(--margin, 0)}.selectContainer.svelte-b8sh3g input.svelte-b8sh3g{cursor:default;border:none;color:var(--inputColor, #3f4f5f);height:var(--height, 42px);line-height:var(--height, 42px);padding:var(--inputPadding, var(--padding));width:100%;background:transparent;font-size:var(--inputFontSize, 14px);letter-spacing:var(--inputLetterSpacing, -0.08px);position:absolute;left:var(--inputLeft, 0);margin:var(--inputMargin, 0)}.selectContainer.svelte-b8sh3g input.svelte-b8sh3g::placeholder{color:var(--placeholderColor, #78848f);opacity:var(--placeholderOpacity, 1)}.selectContainer.svelte-b8sh3g input.svelte-b8sh3g:focus{outline:none}.selectContainer.svelte-b8sh3g.svelte-b8sh3g:hover{border-color:var(--borderHoverColor, #b2b8bf)}.selectContainer.focused.svelte-b8sh3g.svelte-b8sh3g{border-color:var(--borderFocusColor, #006fe8)}.selectContainer.disabled.svelte-b8sh3g.svelte-b8sh3g{background:var(--disabledBackground, #ebedef);border-color:var(--disabledBorderColor, #ebedef);color:var(--disabledColor, #c1c6cc)}.selectContainer.disabled.svelte-b8sh3g input.svelte-b8sh3g::placeholder{color:var(--disabledPlaceholderColor, #c1c6cc);opacity:var(--disabledPlaceholderOpacity, 1)}.selectedItem.svelte-b8sh3g.svelte-b8sh3g{line-height:var(--height, 42px);height:var(--height, 42px);overflow-x:hidden;padding:var(--selectedItemPadding, 0 20px 0 0)}.selectedItem.svelte-b8sh3g.svelte-b8sh3g:focus{outline:none}.clearSelect.svelte-b8sh3g.svelte-b8sh3g{position:absolute;right:var(--clearSelectRight, 10px);top:var(--clearSelectTop, 11px);bottom:var(--clearSelectBottom, 11px);width:var(--clearSelectWidth, 20px);color:var(--clearSelectColor, #c5cacf);flex:none !important}.clearSelect.svelte-b8sh3g.svelte-b8sh3g:hover{color:var(--clearSelectHoverColor, #2c3e50)}.selectContainer.focused.svelte-b8sh3g .clearSelect.svelte-b8sh3g{color:var(--clearSelectFocusColor, #3f4f5f)}.indicator.svelte-b8sh3g.svelte-b8sh3g{position:absolute;right:var(--indicatorRight, 10px);top:var(--indicatorTop, 11px);width:var(--indicatorWidth, 20px);height:var(--indicatorHeight, 20px);color:var(--indicatorColor, #c5cacf)}.indicator.svelte-b8sh3g svg.svelte-b8sh3g{display:inline-block;fill:var(--indicatorFill, currentcolor);line-height:1;stroke:var(--indicatorStroke, currentcolor);stroke-width:0}.spinner.svelte-b8sh3g.svelte-b8sh3g{position:absolute;right:var(--spinnerRight, 10px);top:var(--spinnerLeft, 11px);width:var(--spinnerWidth, 20px);height:var(--spinnerHeight, 20px);color:var(--spinnerColor, #51ce6c);animation:svelte-b8sh3g-rotate 0.75s linear infinite}.spinner_icon.svelte-b8sh3g.svelte-b8sh3g{display:block;height:100%;transform-origin:center center;width:100%;position:absolute;top:0;bottom:0;left:0;right:0;margin:auto;-webkit-transform:none}.spinner_path.svelte-b8sh3g.svelte-b8sh3g{stroke-dasharray:90;stroke-linecap:round}.multiSelect.svelte-b8sh3g.svelte-b8sh3g{display:flex;padding:var(--multiSelectPadding, 0 35px 0 16px);height:auto;flex-wrap:wrap;align-items:stretch}.multiSelect.svelte-b8sh3g>.svelte-b8sh3g{flex:1 1 50px}.selectContainer.multiSelect.svelte-b8sh3g input.svelte-b8sh3g{padding:var(--multiSelectInputPadding, 0);position:relative;margin:var(--multiSelectInputMargin, 0)}.hasError.svelte-b8sh3g.svelte-b8sh3g{border:var(--errorBorder, 1px solid #ff2d55);background:var(--errorBackground, #fff)}.a11yText.svelte-b8sh3g.svelte-b8sh3g{z-index:9999;border:0px;clip:rect(1px, 1px, 1px, 1px);height:1px;width:1px;position:absolute;overflow:hidden;padding:0px;white-space:nowrap}@keyframes svelte-b8sh3g-rotate{100%{transform:rotate(360deg)}}.fa-svelte.svelte-1d15yci{width:1em;height:1em;overflow:visible;display:inline-block}.datepicker.svelte-19zfrtc{display:inline-block;text-align:center;overflow:visible;width:var(--datepicker-width)}.calendar-button.svelte-19zfrtc{padding:10px 20px;border:1px solid var(--button-border-color);display:block;text-align:center;width:var(--button-width);text-decoration:none;cursor:pointer;background:var(--button-background-color);color:var(--button-text-color);border-radius:7px;box-shadow:0px 0px 3px rgba(0, 0, 0, 0.1)}.svelte-19zfrtc,.svelte-19zfrtc:before,.svelte-19zfrtc:after{box-sizing:inherit}.contents.svelte-19zfrtc{min-width:320px;width:100%;display:flex;flex-direction:column;background:var(--content-background)}.view.svelte-19zfrtc{display:flex;flex-direction:column;align-items:center}@media(min-width: 680px){.view.svelte-19zfrtc{flex-direction:row;justify-content:center}}button.svelte-144mn5m{background-color:var(--color);border:none;border-radius:4px;color:white;padding:0.2rem 0.4rem;text-align:center;text-decoration:none;font-size:1.2rem;cursor:pointer}button.svelte-144mn5m:hover{transition:0.25s all;transform:scale(1.02)}.listContainer.svelte-1uyqfml{box-shadow:var(--listShadow, 0 2px 3px 0 rgba(44, 62, 80, 0.24));border-radius:var(--listBorderRadius, 4px);max-height:var(--listMaxHeight, 250px);overflow-y:auto;background:var(--listBackground, #fff);border:var(--listBorder, none);position:var(--listPosition, absolute);z-index:var(--listZIndex, 2);width:100%;left:var(--listLeft, 0);right:var(--listRight, 0)}.virtualList.svelte-1uyqfml{height:var(--virtualListHeight, 200px)}.listGroupTitle.svelte-1uyqfml{color:var(--groupTitleColor, #8f8f8f);cursor:default;font-size:var(--groupTitleFontSize, 12px);font-weight:var(--groupTitleFontWeight, 600);height:var(--height, 42px);line-height:var(--height, 42px);padding:var(--groupTitlePadding, 0 20px);text-overflow:ellipsis;overflow-x:hidden;white-space:nowrap;text-transform:var(--groupTitleTextTransform, uppercase)}.empty.svelte-1uyqfml{text-align:var(--listEmptyTextAlign, center);padding:var(--listEmptyPadding, 20px 0);color:var(--listEmptyColor, #78848f)}.item.svelte-3e0qet{cursor:default;height:var(--height, 42px);line-height:var(--height, 42px);padding:var(--itemPadding, 0 20px);color:var(--itemColor, inherit);text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.groupHeader.svelte-3e0qet{text-transform:var(--groupTitleTextTransform, uppercase)}.groupItem.svelte-3e0qet{padding-left:var(--groupItemPaddingLeft, 40px)}.item.svelte-3e0qet:active{background:var(--itemActiveBackground, #b9daff)}.item.active.svelte-3e0qet{background:var(--itemIsActiveBG, #007aff);color:var(--itemIsActiveColor, #fff)}.item.notSelectable.svelte-3e0qet{color:var(--itemIsNotSelectableColor, #999)}.item.first.svelte-3e0qet{border-radius:var(--itemFirstBorderRadius, 4px 4px 0 0)}.item.hover.svelte-3e0qet:not(.active){background:var(--itemHoverBG, #e7f2ff);color:var(--itemHoverColor, inherit)}.selection.svelte-pu1q1n{text-overflow:ellipsis;overflow-x:hidden;white-space:nowrap}.multiSelectItem.svelte-liu9pa.svelte-liu9pa{background:var(--multiItemBG, #ebedef);margin:var(--multiItemMargin, 5px 5px 0 0);border-radius:var(--multiItemBorderRadius, 16px);height:var(--multiItemHeight, 32px);line-height:var(--multiItemHeight, 32px);display:flex;cursor:default;padding:var(--multiItemPadding, 0 10px 0 15px);max-width:100%}.multiSelectItem_label.svelte-liu9pa.svelte-liu9pa{margin:var(--multiLabelMargin, 0 5px 0 0);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.multiSelectItem.svelte-liu9pa.svelte-liu9pa:hover,.multiSelectItem.active.svelte-liu9pa.svelte-liu9pa{background-color:var(--multiItemActiveBG, #006fff);color:var(--multiItemActiveColor, #fff)}.multiSelectItem.disabled.svelte-liu9pa.svelte-liu9pa:hover{background:var(--multiItemDisabledHoverBg, #ebedef);color:var(--multiItemDisabledHoverColor, #c1c6cc)}.multiSelectItem_clear.svelte-liu9pa.svelte-liu9pa{border-radius:var(--multiClearRadius, 50%);background:var(--multiClearBG, #52616f);min-width:var(--multiClearWidth, 16px);max-width:var(--multiClearWidth, 16px);height:var(--multiClearHeight, 16px);position:relative;top:var(--multiClearTop, 8px);text-align:var(--multiClearTextAlign, center);padding:var(--multiClearPadding, 1px)}.multiSelectItem_clear.svelte-liu9pa.svelte-liu9pa:hover,.active.svelte-liu9pa .multiSelectItem_clear.svelte-liu9pa{background:var(--multiClearHoverBG, #fff)}.multiSelectItem_clear.svelte-liu9pa:hover svg.svelte-liu9pa,.active.svelte-liu9pa .multiSelectItem_clear svg.svelte-liu9pa{fill:var(--multiClearHoverFill, #006fff)}.multiSelectItem_clear.svelte-liu9pa svg.svelte-liu9pa{fill:var(--multiClearFill, #ebedef);vertical-align:top}svelte-virtual-list-viewport.svelte-g2cagw{position:relative;overflow-y:auto;-webkit-overflow-scrolling:touch;display:block}svelte-virtual-list-contents.svelte-g2cagw,svelte-virtual-list-row.svelte-g2cagw{display:block}svelte-virtual-list-row.svelte-g2cagw{overflow:hidden}.sc-popover.svelte-10d3skr.svelte-10d3skr{position:relative}.contents-wrapper.svelte-10d3skr.svelte-10d3skr{position:fixed;transition:none;z-index:2;display:none}.contents-wrapper.visible.svelte-10d3skr.svelte-10d3skr{display:block}.contents-wrapper.visible.is-fullscreen.svelte-10d3skr.svelte-10d3skr{display:flex;width:100vw;height:100%;padding-bottom:80px;overflow:scroll}.contents-wrapper.visible.svelte-10d3skr .wrapper.svelte-10d3skr{opacity:1;transform:scale(1);display:block}.contents-wrapper.shrink.svelte-10d3skr .wrapper.svelte-10d3skr{animation:svelte-10d3skr-shrink 150ms forwards cubic-bezier(.92,.09,.18,1.05)}.wrapper.svelte-10d3skr.svelte-10d3skr{background:#fff;box-shadow:0px 10px 26px rgba(0,0,0,0.4) ;opacity:.8;padding-top:0;display:none;animation:svelte-10d3skr-grow 200ms forwards cubic-bezier(.92,.09,.18,1.05)}.contents-inner.svelte-10d3skr.svelte-10d3skr{animation:svelte-10d3skr-fadeIn 400ms forwards}@keyframes svelte-10d3skr-grow{0%{transform:scale(.9,.1);opacity:0}30%{opacity:1}100%{transform:scale(1)}}@keyframes svelte-10d3skr-shrink{0%{transform:scale(1);opacity:1}70%{opacity:1}100%{opacity:0;transform:scale(.9,.1)}}@keyframes svelte-10d3skr-fadeIn{0%{opacity:0}50%{opacity:0}100%{opacity:1}}.toolbar.svelte-hbl86k{padding:0;display:flex;flex:1 0 auto;justify-content:center}.button.svelte-hbl86k{font-size:16px;flex:1 0 auto;padding:12px 6px;border:0;font-weight:500;color:var(--time-confirm-button-text-color);background-color:var(--time-confirm-button-color);max-width:340px}@media(min-width: 600px){.toolbar.svelte-hbl86k{border-top:1px solid var(--toolbar-border-color);padding:6px;justify-content:flex-end}.button.svelte-hbl86k{flex:0 0 auto;padding:6px 12px;border-radius:5px}}.calendar.svelte-1sgbxd0{box-sizing:border-box;position:relative;user-select:none;width:100%;padding-top:0;width:340px;height:345px}.cl.svelte-1a534py .svelte-1a534py{box-sizing:border-box}.cl.svelte-1a534py.svelte-1a534py{box-shadow:0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1);box-sizing:border-box;width:100%;position:relative}.cl-content.svelte-1a534py.svelte-1a534py{height:300px;outline:0;overflow-y:auto;padding:10px;width:100%;background-color:white}.cl-actionbar.svelte-1a534py.svelte-1a534py{background-color:#ecf0f1;border-bottom:1px solid rgba(10, 10, 10, 0.1);width:100%}.cl-button.svelte-1a534py.svelte-1a534py{background-color:transparent;border:none;cursor:pointer;height:35px;outline:0;width:35px;vertical-align:top;position:relative}.cl-button.svelte-1a534py.svelte-1a534py:hover,.cl-button.active.svelte-1a534py.svelte-1a534py{background-color:#fff}.cl-button.svelte-1a534py.svelte-1a534py:disabled{opacity:.5;pointer-events:none}.cl-textarea.svelte-1a534py.svelte-1a534py{display:none;max-width:100%;min-width:100%;border:none;padding:10px}.cl-textarea.svelte-1a534py.svelte-1a534py:focus{outline:none}.cl-editor-modal.svelte-42yfje.svelte-42yfje{position:absolute;top:37px;left:50%;-webkit-transform:translateX(-50%);transform:translateX(-50%);max-width:520px;width:100%;height:140px;backface-visibility:hidden;z-index:11}.cl-editor-overlay.svelte-42yfje.svelte-42yfje{position:absolute;background-color:rgba(255,255,255,.5);height:100%;width:100%;left:0;top:0;z-index:10}.modal-box.svelte-42yfje.svelte-42yfje{position:absolute;top:0;left:50%;-webkit-transform:translateX(-50%);transform:translateX(-50%);max-width:500px;width:calc(100% - 20px);padding-bottom:36px;z-index:1;background-color:#FFF;text-align:center;font-size:14px;box-shadow:rgba(0,0,0,.2) 0 2px 3px;-webkit-backface-visibility:hidden;backface-visibility:hidden}.modal-title.svelte-42yfje.svelte-42yfje{font-size:24px;font-weight:700;margin:0 0 20px;padding:2px 0 4px;display:block;border-bottom:1px solid #EEE;color:#333;background:#fbfcfc}.modal-label.svelte-42yfje.svelte-42yfje{display:block;position:relative;margin:15px 12px;height:29px;line-height:29px;overflow:hidden}.modal-label.svelte-42yfje input.svelte-42yfje{position:absolute;top:0;right:0;height:27px;line-height:25px;border:1px solid #DEDEDE;background:#fff;font-size:14px;max-width:330px;width:70%;padding:0 7px;transition:all 150ms}.modal-label.svelte-42yfje input.svelte-42yfje:focus{outline:none}.input-error.svelte-42yfje input.svelte-42yfje{border:1px solid #e74c3c}.input-info.svelte-42yfje.svelte-42yfje{display:block;text-align:left;height:25px;line-height:25px;transition:all 150ms}.input-info.svelte-42yfje span.svelte-42yfje{display:block;color:#69878f;background-color:#fbfcfc;border:1px solid #DEDEDE;padding:1px 7px;width:150px}.input-error.svelte-42yfje .input-info.svelte-42yfje{margin-top:-29px}.input-error.svelte-42yfje .msg-error.svelte-42yfje{color:#e74c3c}.modal-button.svelte-42yfje.svelte-42yfje{position:absolute;bottom:10px;right:0;text-decoration:none;color:#FFF;display:block;width:100px;height:35px;line-height:33px;margin:0 10px;background-color:#333;border:none;cursor:pointer;font-family:"Lato",Helvetica,Verdana,sans-serif;font-size:16px;transition:all 150ms}.modal-submit.svelte-42yfje.svelte-42yfje{right:110px;background:#2bc06a}.modal-reset.svelte-42yfje.svelte-42yfje{color:#555;background:#e6e6e6}.color-picker-wrapper.svelte-njq4pk{border:1px solid #ecf0f1;border-top:none;background:#FFF;box-shadow:rgba(0,0,0,.1) 0 2px 3px;width:290px;left:50%;-webkit-transform:translateX(-50%);transform:translateX(-50%);padding:0;position:absolute;top:37px;z-index:11}.color-picker-overlay.svelte-njq4pk{position:absolute;background-color:rgba(255,255,255,.5);height:100%;width:100%;left:0;top:0;z-index:10}.color-picker-btn.svelte-njq4pk{display:block;position:relative;float:left;height:20px;width:20px;border:1px solid #333;padding:0;margin:2px;line-height:35px;text-decoration:none;background:#FFF;color:#333!important;cursor:pointer;text-align:left;font-size:15px;transition:all 150ms;line-height:20px;padding:0px 5px}.color-picker-btn.svelte-njq4pk:hover::after{content:" ";display:block;position:absolute;top:-5px;left:-5px;height:27px;width:27px;background:inherit;border:1px solid #FFF;box-shadow:#000 0 0 2px;z-index:10}div.svelte-3fib5n{padding:10px}.time-container.svelte-17tznc2.svelte-17tznc2{padding:10px;display:flex;flex:1 0 auto;flex-direction:column;justify-content:space-evenly;align-items:center;background-color:var(--time-day-mode-background-color);transition:background 0.15s ease;min-height:100%}.chosen-date.svelte-17tznc2.svelte-17tznc2{margin:6px 0 12px 0;color:var(--time-selected-text-color);font-weight:600;font-size:20px}.time-container.is-night.svelte-17tznc2 .chosen-date.svelte-17tznc2{color:var(--time-night-mode-text-color)}.time-container.is-night.svelte-17tznc2.svelte-17tznc2{background-color:var(--time-night-mode-background-color)}.month-dates.svelte-lktis3.svelte-lktis3{width:100%;display:-ms-grid;display:grid;-ms-grid-columns:1fr;-ms-grid-rows:1fr}.legend.svelte-lktis3.svelte-lktis3{display:none;grid-row:1 / 2;color:#4a4a4a;padding:10px 0;margin-bottom:5px;color:var(--legend-text-color);display:grid}.month-container.svelte-lktis3.svelte-lktis3{display:flex}.month-week.svelte-lktis3.svelte-lktis3{width:100%}.legend.svelte-lktis3 span.svelte-lktis3{width:14.285714%;display:inline-block;text-align:center}.heading-section.svelte-1c4p61v.svelte-1c4p61v{font-size:16px;padding:6px 15px;display:flex;width:100%;justify-content:space-between;color:#3d4548;font-weight:bold}.label.svelte-1c4p61v.svelte-1c4p61v{color:var(--month-year-text-color)}.heading-section.svelte-1c4p61v.svelte-1c4p61v{padding:12px 15px}.label.svelte-1c4p61v.svelte-1c4p61v,.title.svelte-1c4p61v.svelte-1c4p61v{cursor:pointer;display:flex}.month-selector.svelte-1c4p61v.svelte-1c4p61v{position:absolute;top:75px;left:0;right:0;bottom:0;background-color:#fff;transition:all 300ms;transform:scale(0.8);opacity:0;visibility:hidden;z-index:2;text-align:center}.month-selector.open.svelte-1c4p61v.svelte-1c4p61v{transform:scale(1);visibility:visible;opacity:1}.month-selector--month.svelte-1c4p61v.svelte-1c4p61v{width:31.333%;margin:.5%;height:21.5%;display:inline-block;color:#4a4a4a;background:none;border:1px solid #efefef;opacity:0.2}.month-selector--month.svelte-1c4p61v.svelte-1c4p61v:enabled{opacity:1}.month-selector--month.svelte-1c4p61v.svelte-1c4p61v:enabled:hover{cursor:pointer;box-shadow:0px 0px 3px rgba(0,0,0,0.15)}.month-selector--month.selected.svelte-1c4p61v.svelte-1c4p61v{background:var(--highlight-color);color:#fff}.month-selector--month.svelte-1c4p61v.svelte-1c4p61v:before{content:' ';display:inline-block;height:100%;vertical-align:middle}.month-selector--month.svelte-1c4p61v span.svelte-1c4p61v{vertical-align:middle;display:inline-block}.control.svelte-1c4p61v.svelte-1c4p61v,.label.svelte-1c4p61v.svelte-1c4p61v{background:none;border:none}.control.svelte-1c4p61v.svelte-1c4p61v{padding:0 3px;opacity:0.2;transform:translateY(3px)}.control.svelte-1c4p61v.svelte-1c4p61v:enabled{opacity:1;cursor:pointer}.arrow.svelte-1c4p61v.svelte-1c4p61v{display:inline-block;width:15px;height:15px;border-style:solid;border-color:#a9a9a9;border-width:0;border-bottom-width:2px;border-right-width:2px}.arrow.right.svelte-1c4p61v.svelte-1c4p61v{transform:rotate(-45deg);-webkit-transform:rotate(-45deg)}.arrow.left.svelte-1c4p61v.svelte-1c4p61v{transform:rotate(135deg);-webkit-transform:rotate(135deg)}.arrow.svelte-1c4p61v.svelte-1c4p61v{width:18px;height:18px}.control.svelte-1c4p61v.svelte-1c4p61v{padding:0 8px}.heading-section.svelte-1c4p61v.svelte-1c4p61v{font-size:20px}.label.svelte-1c4p61v.svelte-1c4p61v{margin-left:5%}.time-picker.svelte-w5vedm.svelte-w5vedm{display:flex;flex-direction:column;color:var(--highlight-color);width:80%}@media(min-width: 600px){.time-picker.svelte-w5vedm.svelte-w5vedm{width:60%}}.time-picker.is-night.svelte-w5vedm.svelte-w5vedm{color:var(--time-night-mode-text-color)}.time-picker.is-night.svelte-w5vedm input.svelte-w5vedm{color:var(--time-night-mode-text-color)}input.svelte-w5vedm.svelte-w5vedm{background-color:transparent;display:flex;border-width:0 0 1px 0;border-color:inherit;font-family:inherit;font-size:42px;line-height:42px;text-align:center;letter-spacing:16px;color:var(--time-input-text-color)}.controls.svelte-w5vedm.svelte-w5vedm{display:flex;justify-content:space-around;color:var(--highlight-color)}.week.svelte-1gcp452.svelte-1gcp452{margin:3px 0;display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:-webkit-flex;display:flex}.week.svelte-1gcp452.svelte-1gcp452:nth-child(6n + 1){-ms-grid-row:7;grid-row:7}.week.svelte-1gcp452.svelte-1gcp452:nth-child(6n + 2){-ms-grid-row:2;grid-row:2}.week.svelte-1gcp452.svelte-1gcp452:nth-child(6n + 3){-ms-grid-row:3;grid-row:3}.week.svelte-1gcp452.svelte-1gcp452:nth-child(6n + 4){-ms-grid-row:4;grid-row:4}.week.svelte-1gcp452.svelte-1gcp452:nth-child(6n + 5){-ms-grid-row:5;grid-row:5}.week.svelte-1gcp452.svelte-1gcp452:nth-child(6n + 6){-ms-grid-row:6;grid-row:6}.day.svelte-1gcp452.svelte-1gcp452{flex:1 0 auto;height:32px;display:flex;flex-basis:0;justify-content:center;position:relative}.day.outside-month.svelte-1gcp452.svelte-1gcp452,.day.is-disabled.svelte-1gcp452.svelte-1gcp452{opacity:0.35}.day.svelte-1gcp452.svelte-1gcp452:before{content:'';float:left}.day--label.svelte-1gcp452.svelte-1gcp452{color:var(--day-text-color);display:flex;justify-content:center;width:32px;height:32px;position:relative;border:1px solid var(--button-background-color);border-radius:50%;align-items:center;background:var(--day-background-color);cursor:pointer;transition:all 100ms linear;border:none;outline:none}.day.is-night.svelte-1gcp452 .day--label.svelte-1gcp452{color:var(--day-text-color-is-night);background:var(--day-background-color-is-night)}.day--label.disabled.svelte-1gcp452.svelte-1gcp452{cursor:default}.day--label.shake-date.svelte-1gcp452.svelte-1gcp452{animation:svelte-1gcp452-shake 0.4s 1 linear}.day.is-today.selection-end.svelte-1gcp452:not(.outside-month) .day--label.svelte-1gcp452,.day.selection-end.svelte-1gcp452:not(.outside-month) .day--label.svelte-1gcp452{background-color:var(--highlight-color);border:var(--highlight-color) 1px solid}.day.selection-end.svelte-1gcp452:not(.outside-month) .day--label.svelte-1gcp452:hover,.day.selection-start.svelte-1gcp452:not(.outside-month) .day--label.svelte-1gcp452{background-color:var(--highlight-color);color:var(--selected-day-text-color)}.day.part-of-range.svelte-1gcp452.svelte-1gcp452:before,.day.selection-start.svelte-1gcp452.svelte-1gcp452:before,.day.selection-end.svelte-1gcp452.svelte-1gcp452:before{content:"";position:absolute;height:32px;width:100%}.day.is-range-picker.part-of-range.svelte-1gcp452.svelte-1gcp452:before,.day.is-range-picker.selection-start.svelte-1gcp452.svelte-1gcp452:before,.day.is-range-picker.selection-end.svelte-1gcp452.svelte-1gcp452:before{background-color:var(--passive-highlight-color)}.day.is-range-picker.selection-start.svelte-1gcp452:not(.selection-end) .day--label.svelte-1gcp452{border-radius:50% 0 0 50%}.day.is-range-picker.selection-end.svelte-1gcp452:not(.selection-start) .day--label.svelte-1gcp452{border-radius:0 50% 50% 0}.day.selection-start.svelte-1gcp452.svelte-1gcp452:before,.day.selection-end.svelte-1gcp452.svelte-1gcp452:before{width:50%}.day.selection-start.svelte-1gcp452.svelte-1gcp452:before{right:0}.day.selection-end.svelte-1gcp452.svelte-1gcp452:before{left:0}.day.is-range-picker.part-of-range.svelte-1gcp452.svelte-1gcp452:hover{background-color:var(--passive-highlight-color);border-color:var(--passive-highlight-color);color:var(--button-background-color)}.day.is-range-picker.selection-start.svelte-1gcp452 .day--label.svelte-1gcp452:hover{background-color:var(--passive-highlight-color);border:var(--highlight-color) 1px solid}@media(min-width: 480px){.day--label.highlighted.svelte-1gcp452.svelte-1gcp452,.day--label.svelte-1gcp452.svelte-1gcp452:not(.disabled):hover{background:var(--day-highlighted-background-color);border-color:var(--day-highlighted-background-color);color:var(--day-highlighted-text-color)}}.day.outside-month.selection-start.selection-end.is-today.svelte-1gcp452 .day--label.highlighted.svelte-1gcp452,.day.outside-month.is-today.svelte-1gcp452 .day--label.highlighted.svelte-1gcp452,.day.outside-month.part-of-range.svelte-1gcp452.svelte-1gcp452:before,.day.outside-month.part-of-range.svelte-1gcp452.svelte-1gcp452:hover,.day.outside-month.part-of-range.svelte-1gcp452.svelte-1gcp452,.day.outside-month.selection-end.svelte-1gcp452.svelte-1gcp452:before,.day.outside-month.selection-start.svelte-1gcp452.svelte-1gcp452:before,.day.outside-month.selection-end.svelte-1gcp452.svelte-1gcp452,.day.outside-month.selection-start.svelte-1gcp452.svelte-1gcp452,.day.selection-start.selection-end.svelte-1gcp452.svelte-1gcp452:before,.day.first-of-month:not(.outside-month).part-of-range.svelte-1gcp452.svelte-1gcp452:before,.day.last-of-month:not(.outside-month).part-of-range.svelte-1gcp452.svelte-1gcp452:before{background-color:var(--day-background-color);border:none;color:var(--day-text-color)}.day.part-of-range.svelte-1gcp452:not(.outside-month) .day--label.highlighted.svelte-1gcp452{background-color:transparent}.day.part-of-range.svelte-1gcp452:not(.outside-month) .day--label.svelte-1gcp452:hover{background-color:var(--highlight-color)}.day:not(.outside-month).part-of-range.svelte-1gcp452 .day--label.svelte-1gcp452{color:var(--day-text-color-in-range)}.day.is-range-picker.first-of-month:not(.outside-month).selection-end.svelte-1gcp452.svelte-1gcp452:not(.selection-start):before,.day.is-range-picker.first-of-month:not(.outside-month).part-of-range.svelte-1gcp452.svelte-1gcp452{background:linear-gradient(to left, var(--passive-highlight-color) 70%, transparent)}.day.is-range-picker.last-of-month:not(.outside-month).selection-start.svelte-1gcp452.svelte-1gcp452:not(.selection-end):before,.day.is-range-picker.last-of-month:not(.outside-month).part-of-range.svelte-1gcp452.svelte-1gcp452{background:linear-gradient(to right, var(--passive-highlight-color) 70%, transparent)}.day.is-today.svelte-1gcp452 .day--label.svelte-1gcp452,.day.selection-start.selection-end.is-today.svelte-1gcp452 .day--label.svelte-1gcp452{opacity:1;background:none;border:var(--highlight-color) 1px solid;color:var(--current-day-text-color)}@keyframes svelte-1gcp452-shake{0%{transform:translate(7px)}20%{transform:translate(-7px)}40%{transform:translate(3px)}60%{transform:translate(-3px)}80%{transform:translate(1px)}100%{transform:translate(0px)}}.chevron.svelte-twxu81{margin-left:-16px}.chevron.svelte-twxu81::before{margin:8px;border-style:solid;border-width:0.4em 0.4em 0 0;content:'';display:inline-block;height:0.75em;left:0.15em;position:relative;top:0.15em;transform:rotate(-45deg);vertical-align:top;width:0.75em}.chevron.bottom.svelte-twxu81:before{top:0;transform:rotate(135deg)} \ No newline at end of file diff --git a/build/bundle.js b/build/bundle.js new file mode 100644 index 00000000..f4fa56fb --- /dev/null +++ b/build/bundle.js @@ -0,0 +1,20 @@ +var app=function(){"use strict";function t(){}const e=t=>t;function n(t,e){for(const n in e)t[n]=e[n];return t}function i(t){return t()}function r(){return Object.create(null)}function o(t){t.forEach(i)}function s(t){return"function"==typeof t}function a(t,e){return t!=t?e==e:t!==e||t&&"object"==typeof t||"function"==typeof t}let l;function c(t,e){return l||(l=document.createElement("a")),l.href=e,t===l.href}function u(e,...n){if(null==e)return t;const i=e.subscribe(...n);return i.unsubscribe?()=>i.unsubscribe():i}function d(t){let e;return u(t,(t=>e=t))(),e}function h(t,e,n){t.$$.on_destroy.push(u(e,n))}function f(t,e,n,i){if(t){const r=p(t,e,n,i);return t[0](r)}}function p(t,e,i,r){return t[1]&&r?n(i.ctx.slice(),t[1](r(e))):i.ctx}function g(t,e,n,i){if(t[2]&&i){const r=t[2](i(n));if(void 0===e.dirty)return r;if("object"==typeof r){const t=[],n=Math.max(e.dirty.length,r.length);for(let i=0;i32){const e=[],n=t.ctx.length/32;for(let t=0;twindow.performance.now():()=>Date.now(),$=x?t=>requestAnimationFrame(t):t;const S=new Set;function C(t){S.forEach((e=>{e.c(t)||(S.delete(e),e.f())})),0!==S.size&&$(C)}function M(t){let e;return 0===S.size&&$(C),{promise:new Promise((n=>{S.add(e={c:t,f:n})})),abort(){S.delete(e)}}}function O(t,e){t.appendChild(e)}function D(t){if(!t)return document;const e=t.getRootNode?t.getRootNode():t.ownerDocument;return e&&e.host?e:t.ownerDocument}function T(t){const e=I("style");return function(t,e){O(t.head||t,e)}(D(t),e),e}function L(t,e,n){t.insertBefore(e,n||null)}function A(t){t.parentNode.removeChild(t)}function E(t,e){for(let n=0;nt.removeEventListener(e,n,i)}function N(t){return function(e){return e.preventDefault(),t.call(this,e)}}function j(t){return function(e){return e.stopPropagation(),t.call(this,e)}}function H(t,e,n){null==n?t.removeAttribute(e):t.getAttribute(e)!==n&&t.setAttribute(e,n)}function q(t,e){const n=Object.getOwnPropertyDescriptors(t.__proto__);for(const i in e)null==e[i]?t.removeAttribute(i):"style"===i?t.style.cssText=e[i]:"__value"===i?t.value=t[i]=e[i]:n[i]&&n[i].set?t[i]=e[i]:H(t,i,e[i])}function W(t,e,n){e in t?t[e]="boolean"==typeof t[e]&&""===n||n:H(t,e,n)}function V(t,e){e=""+e,t.wholeText!==e&&(t.data=e)}function U(t,e){t.value=null==e?"":e}function G(t,e,n,i){t.style.setProperty(e,n,i?"important":"")}let K;function Y(){if(void 0===K){K=!1;try{"undefined"!=typeof window&&window.parent&&window.parent.document}catch(t){K=!0}}return K}function J(t,e){"static"===getComputedStyle(t).position&&(t.style.position="relative");const n=I("iframe");n.setAttribute("style","display: block; position: absolute; top: 0; left: 0; width: 100%; height: 100%; overflow: hidden; border: 0; opacity: 0; pointer-events: none; z-index: -1;"),n.setAttribute("aria-hidden","true"),n.tabIndex=-1;const i=Y();let r;return i?(n.src="data:text/html,\";\n unsubscribe = listen(window, 'message', (event) => {\n if (event.source === iframe.contentWindow)\n fn();\n });\n }\n else {\n iframe.src = 'about:blank';\n iframe.onload = () => {\n unsubscribe = listen(iframe.contentWindow, 'resize', fn);\n };\n }\n append(node, iframe);\n return () => {\n if (crossorigin) {\n unsubscribe();\n }\n else if (unsubscribe && iframe.contentWindow) {\n unsubscribe();\n }\n detach(iframe);\n };\n}\nfunction toggle_class(element, name, toggle) {\n element.classList[toggle ? 'add' : 'remove'](name);\n}\nfunction custom_event(type, detail, bubbles = false) {\n const e = document.createEvent('CustomEvent');\n e.initCustomEvent(type, bubbles, false, detail);\n return e;\n}\nfunction query_selector_all(selector, parent = document.body) {\n return Array.from(parent.querySelectorAll(selector));\n}\nclass HtmlTag {\n constructor() {\n this.e = this.n = null;\n }\n c(html) {\n this.h(html);\n }\n m(html, target, anchor = null) {\n if (!this.e) {\n this.e = element(target.nodeName);\n this.t = target;\n this.c(html);\n }\n this.i(anchor);\n }\n h(html) {\n this.e.innerHTML = html;\n this.n = Array.from(this.e.childNodes);\n }\n i(anchor) {\n for (let i = 0; i < this.n.length; i += 1) {\n insert(this.t, this.n[i], anchor);\n }\n }\n p(html) {\n this.d();\n this.h(html);\n this.i(this.a);\n }\n d() {\n this.n.forEach(detach);\n }\n}\nclass HtmlTagHydration extends HtmlTag {\n constructor(claimed_nodes) {\n super();\n this.e = this.n = null;\n this.l = claimed_nodes;\n }\n c(html) {\n if (this.l) {\n this.n = this.l;\n }\n else {\n super.c(html);\n }\n }\n i(anchor) {\n for (let i = 0; i < this.n.length; i += 1) {\n insert_hydration(this.t, this.n[i], anchor);\n }\n }\n}\nfunction attribute_to_object(attributes) {\n const result = {};\n for (const attribute of attributes) {\n result[attribute.name] = attribute.value;\n }\n return result;\n}\nfunction get_custom_elements_slots(element) {\n const result = {};\n element.childNodes.forEach((node) => {\n result[node.slot || 'default'] = true;\n });\n return result;\n}\n\nconst active_docs = new Set();\nlet active = 0;\n// https://github.com/darkskyapp/string-hash/blob/master/index.js\nfunction hash(str) {\n let hash = 5381;\n let i = str.length;\n while (i--)\n hash = ((hash << 5) - hash) ^ str.charCodeAt(i);\n return hash >>> 0;\n}\nfunction create_rule(node, a, b, duration, delay, ease, fn, uid = 0) {\n const step = 16.666 / duration;\n let keyframes = '{\\n';\n for (let p = 0; p <= 1; p += step) {\n const t = a + (b - a) * ease(p);\n keyframes += p * 100 + `%{${fn(t, 1 - t)}}\\n`;\n }\n const rule = keyframes + `100% {${fn(b, 1 - b)}}\\n}`;\n const name = `__svelte_${hash(rule)}_${uid}`;\n const doc = get_root_for_style(node);\n active_docs.add(doc);\n const stylesheet = doc.__svelte_stylesheet || (doc.__svelte_stylesheet = append_empty_stylesheet(node).sheet);\n const current_rules = doc.__svelte_rules || (doc.__svelte_rules = {});\n if (!current_rules[name]) {\n current_rules[name] = true;\n stylesheet.insertRule(`@keyframes ${name} ${rule}`, stylesheet.cssRules.length);\n }\n const animation = node.style.animation || '';\n node.style.animation = `${animation ? `${animation}, ` : ''}${name} ${duration}ms linear ${delay}ms 1 both`;\n active += 1;\n return name;\n}\nfunction delete_rule(node, name) {\n const previous = (node.style.animation || '').split(', ');\n const next = previous.filter(name\n ? anim => anim.indexOf(name) < 0 // remove specific animation\n : anim => anim.indexOf('__svelte') === -1 // remove all Svelte animations\n );\n const deleted = previous.length - next.length;\n if (deleted) {\n node.style.animation = next.join(', ');\n active -= deleted;\n if (!active)\n clear_rules();\n }\n}\nfunction clear_rules() {\n raf(() => {\n if (active)\n return;\n active_docs.forEach(doc => {\n const stylesheet = doc.__svelte_stylesheet;\n let i = stylesheet.cssRules.length;\n while (i--)\n stylesheet.deleteRule(i);\n doc.__svelte_rules = {};\n });\n active_docs.clear();\n });\n}\n\nfunction create_animation(node, from, fn, params) {\n if (!from)\n return noop;\n const to = node.getBoundingClientRect();\n if (from.left === to.left && from.right === to.right && from.top === to.top && from.bottom === to.bottom)\n return noop;\n const { delay = 0, duration = 300, easing = identity, \n // @ts-ignore todo: should this be separated from destructuring? Or start/end added to public api and documentation?\n start: start_time = now() + delay, \n // @ts-ignore todo:\n end = start_time + duration, tick = noop, css } = fn(node, { from, to }, params);\n let running = true;\n let started = false;\n let name;\n function start() {\n if (css) {\n name = create_rule(node, 0, 1, duration, delay, easing, css);\n }\n if (!delay) {\n started = true;\n }\n }\n function stop() {\n if (css)\n delete_rule(node, name);\n running = false;\n }\n loop(now => {\n if (!started && now >= start_time) {\n started = true;\n }\n if (started && now >= end) {\n tick(1, 0);\n stop();\n }\n if (!running) {\n return false;\n }\n if (started) {\n const p = now - start_time;\n const t = 0 + 1 * easing(p / duration);\n tick(t, 1 - t);\n }\n return true;\n });\n start();\n tick(0, 1);\n return stop;\n}\nfunction fix_position(node) {\n const style = getComputedStyle(node);\n if (style.position !== 'absolute' && style.position !== 'fixed') {\n const { width, height } = style;\n const a = node.getBoundingClientRect();\n node.style.position = 'absolute';\n node.style.width = width;\n node.style.height = height;\n add_transform(node, a);\n }\n}\nfunction add_transform(node, a) {\n const b = node.getBoundingClientRect();\n if (a.left !== b.left || a.top !== b.top) {\n const style = getComputedStyle(node);\n const transform = style.transform === 'none' ? '' : style.transform;\n node.style.transform = `${transform} translate(${a.left - b.left}px, ${a.top - b.top}px)`;\n }\n}\n\nlet current_component;\nfunction set_current_component(component) {\n current_component = component;\n}\nfunction get_current_component() {\n if (!current_component)\n throw new Error('Function called outside component initialization');\n return current_component;\n}\nfunction beforeUpdate(fn) {\n get_current_component().$$.before_update.push(fn);\n}\nfunction onMount(fn) {\n get_current_component().$$.on_mount.push(fn);\n}\nfunction afterUpdate(fn) {\n get_current_component().$$.after_update.push(fn);\n}\nfunction onDestroy(fn) {\n get_current_component().$$.on_destroy.push(fn);\n}\nfunction createEventDispatcher() {\n const component = get_current_component();\n return (type, detail) => {\n const callbacks = component.$$.callbacks[type];\n if (callbacks) {\n // TODO are there situations where events could be dispatched\n // in a server (non-DOM) environment?\n const event = custom_event(type, detail);\n callbacks.slice().forEach(fn => {\n fn.call(component, event);\n });\n }\n };\n}\nfunction setContext(key, context) {\n get_current_component().$$.context.set(key, context);\n}\nfunction getContext(key) {\n return get_current_component().$$.context.get(key);\n}\nfunction getAllContexts() {\n return get_current_component().$$.context;\n}\nfunction hasContext(key) {\n return get_current_component().$$.context.has(key);\n}\n// TODO figure out if we still want to support\n// shorthand events, or if we want to implement\n// a real bubbling mechanism\nfunction bubble(component, event) {\n const callbacks = component.$$.callbacks[event.type];\n if (callbacks) {\n // @ts-ignore\n callbacks.slice().forEach(fn => fn.call(this, event));\n }\n}\n\nconst dirty_components = [];\nconst intros = { enabled: false };\nconst binding_callbacks = [];\nconst render_callbacks = [];\nconst flush_callbacks = [];\nconst resolved_promise = Promise.resolve();\nlet update_scheduled = false;\nfunction schedule_update() {\n if (!update_scheduled) {\n update_scheduled = true;\n resolved_promise.then(flush);\n }\n}\nfunction tick() {\n schedule_update();\n return resolved_promise;\n}\nfunction add_render_callback(fn) {\n render_callbacks.push(fn);\n}\nfunction add_flush_callback(fn) {\n flush_callbacks.push(fn);\n}\nlet flushing = false;\nconst seen_callbacks = new Set();\nfunction flush() {\n if (flushing)\n return;\n flushing = true;\n do {\n // first, call beforeUpdate functions\n // and update components\n for (let i = 0; i < dirty_components.length; i += 1) {\n const component = dirty_components[i];\n set_current_component(component);\n update(component.$$);\n }\n set_current_component(null);\n dirty_components.length = 0;\n while (binding_callbacks.length)\n binding_callbacks.pop()();\n // then, once components are updated, call\n // afterUpdate functions. This may cause\n // subsequent updates...\n for (let i = 0; i < render_callbacks.length; i += 1) {\n const callback = render_callbacks[i];\n if (!seen_callbacks.has(callback)) {\n // ...so guard against infinite loops\n seen_callbacks.add(callback);\n callback();\n }\n }\n render_callbacks.length = 0;\n } while (dirty_components.length);\n while (flush_callbacks.length) {\n flush_callbacks.pop()();\n }\n update_scheduled = false;\n flushing = false;\n seen_callbacks.clear();\n}\nfunction update($$) {\n if ($$.fragment !== null) {\n $$.update();\n run_all($$.before_update);\n const dirty = $$.dirty;\n $$.dirty = [-1];\n $$.fragment && $$.fragment.p($$.ctx, dirty);\n $$.after_update.forEach(add_render_callback);\n }\n}\n\nlet promise;\nfunction wait() {\n if (!promise) {\n promise = Promise.resolve();\n promise.then(() => {\n promise = null;\n });\n }\n return promise;\n}\nfunction dispatch(node, direction, kind) {\n node.dispatchEvent(custom_event(`${direction ? 'intro' : 'outro'}${kind}`));\n}\nconst outroing = new Set();\nlet outros;\nfunction group_outros() {\n outros = {\n r: 0,\n c: [],\n p: outros // parent group\n };\n}\nfunction check_outros() {\n if (!outros.r) {\n run_all(outros.c);\n }\n outros = outros.p;\n}\nfunction transition_in(block, local) {\n if (block && block.i) {\n outroing.delete(block);\n block.i(local);\n }\n}\nfunction transition_out(block, local, detach, callback) {\n if (block && block.o) {\n if (outroing.has(block))\n return;\n outroing.add(block);\n outros.c.push(() => {\n outroing.delete(block);\n if (callback) {\n if (detach)\n block.d(1);\n callback();\n }\n });\n block.o(local);\n }\n}\nconst null_transition = { duration: 0 };\nfunction create_in_transition(node, fn, params) {\n let config = fn(node, params);\n let running = false;\n let animation_name;\n let task;\n let uid = 0;\n function cleanup() {\n if (animation_name)\n delete_rule(node, animation_name);\n }\n function go() {\n const { delay = 0, duration = 300, easing = identity, tick = noop, css } = config || null_transition;\n if (css)\n animation_name = create_rule(node, 0, 1, duration, delay, easing, css, uid++);\n tick(0, 1);\n const start_time = now() + delay;\n const end_time = start_time + duration;\n if (task)\n task.abort();\n running = true;\n add_render_callback(() => dispatch(node, true, 'start'));\n task = loop(now => {\n if (running) {\n if (now >= end_time) {\n tick(1, 0);\n dispatch(node, true, 'end');\n cleanup();\n return running = false;\n }\n if (now >= start_time) {\n const t = easing((now - start_time) / duration);\n tick(t, 1 - t);\n }\n }\n return running;\n });\n }\n let started = false;\n return {\n start() {\n if (started)\n return;\n started = true;\n delete_rule(node);\n if (is_function(config)) {\n config = config();\n wait().then(go);\n }\n else {\n go();\n }\n },\n invalidate() {\n started = false;\n },\n end() {\n if (running) {\n cleanup();\n running = false;\n }\n }\n };\n}\nfunction create_out_transition(node, fn, params) {\n let config = fn(node, params);\n let running = true;\n let animation_name;\n const group = outros;\n group.r += 1;\n function go() {\n const { delay = 0, duration = 300, easing = identity, tick = noop, css } = config || null_transition;\n if (css)\n animation_name = create_rule(node, 1, 0, duration, delay, easing, css);\n const start_time = now() + delay;\n const end_time = start_time + duration;\n add_render_callback(() => dispatch(node, false, 'start'));\n loop(now => {\n if (running) {\n if (now >= end_time) {\n tick(0, 1);\n dispatch(node, false, 'end');\n if (!--group.r) {\n // this will result in `end()` being called,\n // so we don't need to clean up here\n run_all(group.c);\n }\n return false;\n }\n if (now >= start_time) {\n const t = easing((now - start_time) / duration);\n tick(1 - t, t);\n }\n }\n return running;\n });\n }\n if (is_function(config)) {\n wait().then(() => {\n // @ts-ignore\n config = config();\n go();\n });\n }\n else {\n go();\n }\n return {\n end(reset) {\n if (reset && config.tick) {\n config.tick(1, 0);\n }\n if (running) {\n if (animation_name)\n delete_rule(node, animation_name);\n running = false;\n }\n }\n };\n}\nfunction create_bidirectional_transition(node, fn, params, intro) {\n let config = fn(node, params);\n let t = intro ? 0 : 1;\n let running_program = null;\n let pending_program = null;\n let animation_name = null;\n function clear_animation() {\n if (animation_name)\n delete_rule(node, animation_name);\n }\n function init(program, duration) {\n const d = (program.b - t);\n duration *= Math.abs(d);\n return {\n a: t,\n b: program.b,\n d,\n duration,\n start: program.start,\n end: program.start + duration,\n group: program.group\n };\n }\n function go(b) {\n const { delay = 0, duration = 300, easing = identity, tick = noop, css } = config || null_transition;\n const program = {\n start: now() + delay,\n b\n };\n if (!b) {\n // @ts-ignore todo: improve typings\n program.group = outros;\n outros.r += 1;\n }\n if (running_program || pending_program) {\n pending_program = program;\n }\n else {\n // if this is an intro, and there's a delay, we need to do\n // an initial tick and/or apply CSS animation immediately\n if (css) {\n clear_animation();\n animation_name = create_rule(node, t, b, duration, delay, easing, css);\n }\n if (b)\n tick(0, 1);\n running_program = init(program, duration);\n add_render_callback(() => dispatch(node, b, 'start'));\n loop(now => {\n if (pending_program && now > pending_program.start) {\n running_program = init(pending_program, duration);\n pending_program = null;\n dispatch(node, running_program.b, 'start');\n if (css) {\n clear_animation();\n animation_name = create_rule(node, t, running_program.b, running_program.duration, 0, easing, config.css);\n }\n }\n if (running_program) {\n if (now >= running_program.end) {\n tick(t = running_program.b, 1 - t);\n dispatch(node, running_program.b, 'end');\n if (!pending_program) {\n // we're done\n if (running_program.b) {\n // intro — we can tidy up immediately\n clear_animation();\n }\n else {\n // outro — needs to be coordinated\n if (!--running_program.group.r)\n run_all(running_program.group.c);\n }\n }\n running_program = null;\n }\n else if (now >= running_program.start) {\n const p = now - running_program.start;\n t = running_program.a + running_program.d * easing(p / running_program.duration);\n tick(t, 1 - t);\n }\n }\n return !!(running_program || pending_program);\n });\n }\n }\n return {\n run(b) {\n if (is_function(config)) {\n wait().then(() => {\n // @ts-ignore\n config = config();\n go(b);\n });\n }\n else {\n go(b);\n }\n },\n end() {\n clear_animation();\n running_program = pending_program = null;\n }\n };\n}\n\nfunction handle_promise(promise, info) {\n const token = info.token = {};\n function update(type, index, key, value) {\n if (info.token !== token)\n return;\n info.resolved = value;\n let child_ctx = info.ctx;\n if (key !== undefined) {\n child_ctx = child_ctx.slice();\n child_ctx[key] = value;\n }\n const block = type && (info.current = type)(child_ctx);\n let needs_flush = false;\n if (info.block) {\n if (info.blocks) {\n info.blocks.forEach((block, i) => {\n if (i !== index && block) {\n group_outros();\n transition_out(block, 1, 1, () => {\n if (info.blocks[i] === block) {\n info.blocks[i] = null;\n }\n });\n check_outros();\n }\n });\n }\n else {\n info.block.d(1);\n }\n block.c();\n transition_in(block, 1);\n block.m(info.mount(), info.anchor);\n needs_flush = true;\n }\n info.block = block;\n if (info.blocks)\n info.blocks[index] = block;\n if (needs_flush) {\n flush();\n }\n }\n if (is_promise(promise)) {\n const current_component = get_current_component();\n promise.then(value => {\n set_current_component(current_component);\n update(info.then, 1, info.value, value);\n set_current_component(null);\n }, error => {\n set_current_component(current_component);\n update(info.catch, 2, info.error, error);\n set_current_component(null);\n if (!info.hasCatch) {\n throw error;\n }\n });\n // if we previously had a then/catch block, destroy it\n if (info.current !== info.pending) {\n update(info.pending, 0);\n return true;\n }\n }\n else {\n if (info.current !== info.then) {\n update(info.then, 1, info.value, promise);\n return true;\n }\n info.resolved = promise;\n }\n}\nfunction update_await_block_branch(info, ctx, dirty) {\n const child_ctx = ctx.slice();\n const { resolved } = info;\n if (info.current === info.then) {\n child_ctx[info.value] = resolved;\n }\n if (info.current === info.catch) {\n child_ctx[info.error] = resolved;\n }\n info.block.p(child_ctx, dirty);\n}\n\nconst globals = (typeof window !== 'undefined'\n ? window\n : typeof globalThis !== 'undefined'\n ? globalThis\n : global);\n\nfunction destroy_block(block, lookup) {\n block.d(1);\n lookup.delete(block.key);\n}\nfunction outro_and_destroy_block(block, lookup) {\n transition_out(block, 1, 1, () => {\n lookup.delete(block.key);\n });\n}\nfunction fix_and_destroy_block(block, lookup) {\n block.f();\n destroy_block(block, lookup);\n}\nfunction fix_and_outro_and_destroy_block(block, lookup) {\n block.f();\n outro_and_destroy_block(block, lookup);\n}\nfunction update_keyed_each(old_blocks, dirty, get_key, dynamic, ctx, list, lookup, node, destroy, create_each_block, next, get_context) {\n let o = old_blocks.length;\n let n = list.length;\n let i = o;\n const old_indexes = {};\n while (i--)\n old_indexes[old_blocks[i].key] = i;\n const new_blocks = [];\n const new_lookup = new Map();\n const deltas = new Map();\n i = n;\n while (i--) {\n const child_ctx = get_context(ctx, list, i);\n const key = get_key(child_ctx);\n let block = lookup.get(key);\n if (!block) {\n block = create_each_block(key, child_ctx);\n block.c();\n }\n else if (dynamic) {\n block.p(child_ctx, dirty);\n }\n new_lookup.set(key, new_blocks[i] = block);\n if (key in old_indexes)\n deltas.set(key, Math.abs(i - old_indexes[key]));\n }\n const will_move = new Set();\n const did_move = new Set();\n function insert(block) {\n transition_in(block, 1);\n block.m(node, next);\n lookup.set(block.key, block);\n next = block.first;\n n--;\n }\n while (o && n) {\n const new_block = new_blocks[n - 1];\n const old_block = old_blocks[o - 1];\n const new_key = new_block.key;\n const old_key = old_block.key;\n if (new_block === old_block) {\n // do nothing\n next = new_block.first;\n o--;\n n--;\n }\n else if (!new_lookup.has(old_key)) {\n // remove old block\n destroy(old_block, lookup);\n o--;\n }\n else if (!lookup.has(new_key) || will_move.has(new_key)) {\n insert(new_block);\n }\n else if (did_move.has(old_key)) {\n o--;\n }\n else if (deltas.get(new_key) > deltas.get(old_key)) {\n did_move.add(new_key);\n insert(new_block);\n }\n else {\n will_move.add(old_key);\n o--;\n }\n }\n while (o--) {\n const old_block = old_blocks[o];\n if (!new_lookup.has(old_block.key))\n destroy(old_block, lookup);\n }\n while (n)\n insert(new_blocks[n - 1]);\n return new_blocks;\n}\nfunction validate_each_keys(ctx, list, get_context, get_key) {\n const keys = new Set();\n for (let i = 0; i < list.length; i++) {\n const key = get_key(get_context(ctx, list, i));\n if (keys.has(key)) {\n throw new Error('Cannot have duplicate keys in a keyed each');\n }\n keys.add(key);\n }\n}\n\nfunction get_spread_update(levels, updates) {\n const update = {};\n const to_null_out = {};\n const accounted_for = { $$scope: 1 };\n let i = levels.length;\n while (i--) {\n const o = levels[i];\n const n = updates[i];\n if (n) {\n for (const key in o) {\n if (!(key in n))\n to_null_out[key] = 1;\n }\n for (const key in n) {\n if (!accounted_for[key]) {\n update[key] = n[key];\n accounted_for[key] = 1;\n }\n }\n levels[i] = n;\n }\n else {\n for (const key in o) {\n accounted_for[key] = 1;\n }\n }\n }\n for (const key in to_null_out) {\n if (!(key in update))\n update[key] = undefined;\n }\n return update;\n}\nfunction get_spread_object(spread_props) {\n return typeof spread_props === 'object' && spread_props !== null ? spread_props : {};\n}\n\n// source: https://html.spec.whatwg.org/multipage/indices.html\nconst boolean_attributes = new Set([\n 'allowfullscreen',\n 'allowpaymentrequest',\n 'async',\n 'autofocus',\n 'autoplay',\n 'checked',\n 'controls',\n 'default',\n 'defer',\n 'disabled',\n 'formnovalidate',\n 'hidden',\n 'ismap',\n 'loop',\n 'multiple',\n 'muted',\n 'nomodule',\n 'novalidate',\n 'open',\n 'playsinline',\n 'readonly',\n 'required',\n 'reversed',\n 'selected'\n]);\n\nconst invalid_attribute_name_character = /[\\s'\">/=\\u{FDD0}-\\u{FDEF}\\u{FFFE}\\u{FFFF}\\u{1FFFE}\\u{1FFFF}\\u{2FFFE}\\u{2FFFF}\\u{3FFFE}\\u{3FFFF}\\u{4FFFE}\\u{4FFFF}\\u{5FFFE}\\u{5FFFF}\\u{6FFFE}\\u{6FFFF}\\u{7FFFE}\\u{7FFFF}\\u{8FFFE}\\u{8FFFF}\\u{9FFFE}\\u{9FFFF}\\u{AFFFE}\\u{AFFFF}\\u{BFFFE}\\u{BFFFF}\\u{CFFFE}\\u{CFFFF}\\u{DFFFE}\\u{DFFFF}\\u{EFFFE}\\u{EFFFF}\\u{FFFFE}\\u{FFFFF}\\u{10FFFE}\\u{10FFFF}]/u;\n// https://html.spec.whatwg.org/multipage/syntax.html#attributes-2\n// https://infra.spec.whatwg.org/#noncharacter\nfunction spread(args, classes_to_add) {\n const attributes = Object.assign({}, ...args);\n if (classes_to_add) {\n if (attributes.class == null) {\n attributes.class = classes_to_add;\n }\n else {\n attributes.class += ' ' + classes_to_add;\n }\n }\n let str = '';\n Object.keys(attributes).forEach(name => {\n if (invalid_attribute_name_character.test(name))\n return;\n const value = attributes[name];\n if (value === true)\n str += ' ' + name;\n else if (boolean_attributes.has(name.toLowerCase())) {\n if (value)\n str += ' ' + name;\n }\n else if (value != null) {\n str += ` ${name}=\"${value}\"`;\n }\n });\n return str;\n}\nconst escaped = {\n '\"': '"',\n \"'\": ''',\n '&': '&',\n '<': '<',\n '>': '>'\n};\nfunction escape(html) {\n return String(html).replace(/[\"'&<>]/g, match => escaped[match]);\n}\nfunction escape_attribute_value(value) {\n return typeof value === 'string' ? escape(value) : value;\n}\nfunction escape_object(obj) {\n const result = {};\n for (const key in obj) {\n result[key] = escape_attribute_value(obj[key]);\n }\n return result;\n}\nfunction each(items, fn) {\n let str = '';\n for (let i = 0; i < items.length; i += 1) {\n str += fn(items[i], i);\n }\n return str;\n}\nconst missing_component = {\n $$render: () => ''\n};\nfunction validate_component(component, name) {\n if (!component || !component.$$render) {\n if (name === 'svelte:component')\n name += ' this={...}';\n throw new Error(`<${name}> is not a valid SSR component. You may need to review your build config to ensure that dependencies are compiled, rather than imported as pre-compiled modules`);\n }\n return component;\n}\nfunction debug(file, line, column, values) {\n console.log(`{@debug} ${file ? file + ' ' : ''}(${line}:${column})`); // eslint-disable-line no-console\n console.log(values); // eslint-disable-line no-console\n return '';\n}\nlet on_destroy;\nfunction create_ssr_component(fn) {\n function $$render(result, props, bindings, slots, context) {\n const parent_component = current_component;\n const $$ = {\n on_destroy,\n context: new Map(parent_component ? parent_component.$$.context : context || []),\n // these will be immediately discarded\n on_mount: [],\n before_update: [],\n after_update: [],\n callbacks: blank_object()\n };\n set_current_component({ $$ });\n const html = fn(result, props, bindings, slots);\n set_current_component(parent_component);\n return html;\n }\n return {\n render: (props = {}, { $$slots = {}, context = new Map() } = {}) => {\n on_destroy = [];\n const result = { title: '', head: '', css: new Set() };\n const html = $$render(result, props, {}, $$slots, context);\n run_all(on_destroy);\n return {\n html,\n css: {\n code: Array.from(result.css).map(css => css.code).join('\\n'),\n map: null // TODO\n },\n head: result.title + result.head\n };\n },\n $$render\n };\n}\nfunction add_attribute(name, value, boolean) {\n if (value == null || (boolean && !value))\n return '';\n return ` ${name}${value === true ? '' : `=${typeof value === 'string' ? JSON.stringify(escape(value)) : `\"${value}\"`}`}`;\n}\nfunction add_classes(classes) {\n return classes ? ` class=\"${classes}\"` : '';\n}\n\nfunction bind(component, name, callback) {\n const index = component.$$.props[name];\n if (index !== undefined) {\n component.$$.bound[index] = callback;\n callback(component.$$.ctx[index]);\n }\n}\nfunction create_component(block) {\n block && block.c();\n}\nfunction claim_component(block, parent_nodes) {\n block && block.l(parent_nodes);\n}\nfunction mount_component(component, target, anchor, customElement) {\n const { fragment, on_mount, on_destroy, after_update } = component.$$;\n fragment && fragment.m(target, anchor);\n if (!customElement) {\n // onMount happens before the initial afterUpdate\n add_render_callback(() => {\n const new_on_destroy = on_mount.map(run).filter(is_function);\n if (on_destroy) {\n on_destroy.push(...new_on_destroy);\n }\n else {\n // Edge case - component was destroyed immediately,\n // most likely as a result of a binding initialising\n run_all(new_on_destroy);\n }\n component.$$.on_mount = [];\n });\n }\n after_update.forEach(add_render_callback);\n}\nfunction destroy_component(component, detaching) {\n const $$ = component.$$;\n if ($$.fragment !== null) {\n run_all($$.on_destroy);\n $$.fragment && $$.fragment.d(detaching);\n // TODO null out other refs, including component.$$ (but need to\n // preserve final state?)\n $$.on_destroy = $$.fragment = null;\n $$.ctx = [];\n }\n}\nfunction make_dirty(component, i) {\n if (component.$$.dirty[0] === -1) {\n dirty_components.push(component);\n schedule_update();\n component.$$.dirty.fill(0);\n }\n component.$$.dirty[(i / 31) | 0] |= (1 << (i % 31));\n}\nfunction init(component, options, instance, create_fragment, not_equal, props, append_styles, dirty = [-1]) {\n const parent_component = current_component;\n set_current_component(component);\n const $$ = component.$$ = {\n fragment: null,\n ctx: null,\n // state\n props,\n update: noop,\n not_equal,\n bound: blank_object(),\n // lifecycle\n on_mount: [],\n on_destroy: [],\n on_disconnect: [],\n before_update: [],\n after_update: [],\n context: new Map(parent_component ? parent_component.$$.context : options.context || []),\n // everything else\n callbacks: blank_object(),\n dirty,\n skip_bound: false,\n root: options.target || parent_component.$$.root\n };\n append_styles && append_styles($$.root);\n let ready = false;\n $$.ctx = instance\n ? instance(component, options.props || {}, (i, ret, ...rest) => {\n const value = rest.length ? rest[0] : ret;\n if ($$.ctx && not_equal($$.ctx[i], $$.ctx[i] = value)) {\n if (!$$.skip_bound && $$.bound[i])\n $$.bound[i](value);\n if (ready)\n make_dirty(component, i);\n }\n return ret;\n })\n : [];\n $$.update();\n ready = true;\n run_all($$.before_update);\n // `false` as a special case of no DOM component\n $$.fragment = create_fragment ? create_fragment($$.ctx) : false;\n if (options.target) {\n if (options.hydrate) {\n start_hydrating();\n const nodes = children(options.target);\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n $$.fragment && $$.fragment.l(nodes);\n nodes.forEach(detach);\n }\n else {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n $$.fragment && $$.fragment.c();\n }\n if (options.intro)\n transition_in(component.$$.fragment);\n mount_component(component, options.target, options.anchor, options.customElement);\n end_hydrating();\n flush();\n }\n set_current_component(parent_component);\n}\nlet SvelteElement;\nif (typeof HTMLElement === 'function') {\n SvelteElement = class extends HTMLElement {\n constructor() {\n super();\n this.attachShadow({ mode: 'open' });\n }\n connectedCallback() {\n const { on_mount } = this.$$;\n this.$$.on_disconnect = on_mount.map(run).filter(is_function);\n // @ts-ignore todo: improve typings\n for (const key in this.$$.slotted) {\n // @ts-ignore todo: improve typings\n this.appendChild(this.$$.slotted[key]);\n }\n }\n attributeChangedCallback(attr, _oldValue, newValue) {\n this[attr] = newValue;\n }\n disconnectedCallback() {\n run_all(this.$$.on_disconnect);\n }\n $destroy() {\n destroy_component(this, 1);\n this.$destroy = noop;\n }\n $on(type, callback) {\n // TODO should this delegate to addEventListener?\n const callbacks = (this.$$.callbacks[type] || (this.$$.callbacks[type] = []));\n callbacks.push(callback);\n return () => {\n const index = callbacks.indexOf(callback);\n if (index !== -1)\n callbacks.splice(index, 1);\n };\n }\n $set($$props) {\n if (this.$$set && !is_empty($$props)) {\n this.$$.skip_bound = true;\n this.$$set($$props);\n this.$$.skip_bound = false;\n }\n }\n };\n}\n/**\n * Base class for Svelte components. Used when dev=false.\n */\nclass SvelteComponent {\n $destroy() {\n destroy_component(this, 1);\n this.$destroy = noop;\n }\n $on(type, callback) {\n const callbacks = (this.$$.callbacks[type] || (this.$$.callbacks[type] = []));\n callbacks.push(callback);\n return () => {\n const index = callbacks.indexOf(callback);\n if (index !== -1)\n callbacks.splice(index, 1);\n };\n }\n $set($$props) {\n if (this.$$set && !is_empty($$props)) {\n this.$$.skip_bound = true;\n this.$$set($$props);\n this.$$.skip_bound = false;\n }\n }\n}\n\nfunction dispatch_dev(type, detail) {\n document.dispatchEvent(custom_event(type, Object.assign({ version: '3.42.4' }, detail), true));\n}\nfunction append_dev(target, node) {\n dispatch_dev('SvelteDOMInsert', { target, node });\n append(target, node);\n}\nfunction append_hydration_dev(target, node) {\n dispatch_dev('SvelteDOMInsert', { target, node });\n append_hydration(target, node);\n}\nfunction insert_dev(target, node, anchor) {\n dispatch_dev('SvelteDOMInsert', { target, node, anchor });\n insert(target, node, anchor);\n}\nfunction insert_hydration_dev(target, node, anchor) {\n dispatch_dev('SvelteDOMInsert', { target, node, anchor });\n insert_hydration(target, node, anchor);\n}\nfunction detach_dev(node) {\n dispatch_dev('SvelteDOMRemove', { node });\n detach(node);\n}\nfunction detach_between_dev(before, after) {\n while (before.nextSibling && before.nextSibling !== after) {\n detach_dev(before.nextSibling);\n }\n}\nfunction detach_before_dev(after) {\n while (after.previousSibling) {\n detach_dev(after.previousSibling);\n }\n}\nfunction detach_after_dev(before) {\n while (before.nextSibling) {\n detach_dev(before.nextSibling);\n }\n}\nfunction listen_dev(node, event, handler, options, has_prevent_default, has_stop_propagation) {\n const modifiers = options === true ? ['capture'] : options ? Array.from(Object.keys(options)) : [];\n if (has_prevent_default)\n modifiers.push('preventDefault');\n if (has_stop_propagation)\n modifiers.push('stopPropagation');\n dispatch_dev('SvelteDOMAddEventListener', { node, event, handler, modifiers });\n const dispose = listen(node, event, handler, options);\n return () => {\n dispatch_dev('SvelteDOMRemoveEventListener', { node, event, handler, modifiers });\n dispose();\n };\n}\nfunction attr_dev(node, attribute, value) {\n attr(node, attribute, value);\n if (value == null)\n dispatch_dev('SvelteDOMRemoveAttribute', { node, attribute });\n else\n dispatch_dev('SvelteDOMSetAttribute', { node, attribute, value });\n}\nfunction prop_dev(node, property, value) {\n node[property] = value;\n dispatch_dev('SvelteDOMSetProperty', { node, property, value });\n}\nfunction dataset_dev(node, property, value) {\n node.dataset[property] = value;\n dispatch_dev('SvelteDOMSetDataset', { node, property, value });\n}\nfunction set_data_dev(text, data) {\n data = '' + data;\n if (text.wholeText === data)\n return;\n dispatch_dev('SvelteDOMSetData', { node: text, data });\n text.data = data;\n}\nfunction validate_each_argument(arg) {\n if (typeof arg !== 'string' && !(arg && typeof arg === 'object' && 'length' in arg)) {\n let msg = '{#each} only iterates over array-like objects.';\n if (typeof Symbol === 'function' && arg && Symbol.iterator in arg) {\n msg += ' You can use a spread to convert this iterable into an array.';\n }\n throw new Error(msg);\n }\n}\nfunction validate_slots(name, slot, keys) {\n for (const slot_key of Object.keys(slot)) {\n if (!~keys.indexOf(slot_key)) {\n console.warn(`<${name}> received an unexpected slot \"${slot_key}\".`);\n }\n }\n}\n/**\n * Base class for Svelte components with some minor dev-enhancements. Used when dev=true.\n */\nclass SvelteComponentDev extends SvelteComponent {\n constructor(options) {\n if (!options || (!options.target && !options.$$inline)) {\n throw new Error(\"'target' is a required option\");\n }\n super();\n }\n $destroy() {\n super.$destroy();\n this.$destroy = () => {\n console.warn('Component was already destroyed'); // eslint-disable-line no-console\n };\n }\n $capture_state() { }\n $inject_state() { }\n}\n/**\n * Base class to create strongly typed Svelte components.\n * This only exists for typing purposes and should be used in `.d.ts` files.\n *\n * ### Example:\n *\n * You have component library on npm called `component-library`, from which\n * you export a component called `MyComponent`. For Svelte+TypeScript users,\n * you want to provide typings. Therefore you create a `index.d.ts`:\n * ```ts\n * import { SvelteComponentTyped } from \"svelte\";\n * export class MyComponent extends SvelteComponentTyped<{foo: string}> {}\n * ```\n * Typing this makes it possible for IDEs like VS Code with the Svelte extension\n * to provide intellisense and to use the component like this in a Svelte file\n * with TypeScript:\n * ```svelte\n * \n * \n * ```\n *\n * #### Why not make this part of `SvelteComponent(Dev)`?\n * Because\n * ```ts\n * class ASubclassOfSvelteComponent extends SvelteComponent<{foo: string}> {}\n * const component: typeof SvelteComponent = ASubclassOfSvelteComponent;\n * ```\n * will throw a type error, so we need to separate the more strictly typed class.\n */\nclass SvelteComponentTyped extends SvelteComponentDev {\n constructor(options) {\n super(options);\n }\n}\nfunction loop_guard(timeout) {\n const start = Date.now();\n return () => {\n if (Date.now() - start > timeout) {\n throw new Error('Infinite loop detected');\n }\n };\n}\n\nexport { HtmlTag, HtmlTagHydration, SvelteComponent, SvelteComponentDev, SvelteComponentTyped, SvelteElement, action_destroyer, add_attribute, add_classes, add_flush_callback, add_location, add_render_callback, add_resize_listener, add_transform, afterUpdate, append, append_dev, append_empty_stylesheet, append_hydration, append_hydration_dev, append_styles, assign, attr, attr_dev, attribute_to_object, beforeUpdate, bind, binding_callbacks, blank_object, bubble, check_outros, children, claim_component, claim_element, claim_html_tag, claim_space, claim_svg_element, claim_text, clear_loops, component_subscribe, compute_rest_props, compute_slots, createEventDispatcher, create_animation, create_bidirectional_transition, create_component, create_in_transition, create_out_transition, create_slot, create_ssr_component, current_component, custom_event, dataset_dev, debug, destroy_block, destroy_component, destroy_each, detach, detach_after_dev, detach_before_dev, detach_between_dev, detach_dev, dirty_components, dispatch_dev, each, element, element_is, empty, end_hydrating, escape, escape_attribute_value, escape_object, escaped, exclude_internal_props, fix_and_destroy_block, fix_and_outro_and_destroy_block, fix_position, flush, getAllContexts, getContext, get_all_dirty_from_scope, get_binding_group_value, get_current_component, get_custom_elements_slots, get_root_for_style, get_slot_changes, get_spread_object, get_spread_update, get_store_value, globals, group_outros, handle_promise, hasContext, has_prop, identity, init, insert, insert_dev, insert_hydration, insert_hydration_dev, intros, invalid_attribute_name_character, is_client, is_crossorigin, is_empty, is_function, is_promise, listen, listen_dev, loop, loop_guard, missing_component, mount_component, noop, not_equal, now, null_to_empty, object_without_properties, onDestroy, onMount, once, outro_and_destroy_block, prevent_default, prop_dev, query_selector_all, raf, run, run_all, safe_not_equal, schedule_update, select_multiple_value, select_option, select_options, select_value, self, setContext, set_attributes, set_current_component, set_custom_element_data, set_data, set_data_dev, set_input_type, set_input_value, set_now, set_raf, set_store_value, set_style, set_svg_attributes, space, spread, src_url_equal, start_hydrating, stop_propagation, subscribe, svg_element, text, tick, time_ranges_to_array, to_number, toggle_class, transition_in, transition_out, trusted, update_await_block_branch, update_keyed_each, update_slot, update_slot_base, validate_component, validate_each_argument, validate_each_keys, validate_slots, validate_store, xlink_attr };\n","/**\n * @typedef {Object} WrappedComponent Object returned by the `wrap` method\n * @property {SvelteComponent} component - Component to load (this is always asynchronous)\n * @property {RoutePrecondition[]} [conditions] - Route pre-conditions to validate\n * @property {Object} [props] - Optional dictionary of static props\n * @property {Object} [userData] - Optional user data dictionary\n * @property {bool} _sveltesparouter - Internal flag; always set to true\n */\n\n/**\n * @callback AsyncSvelteComponent\n * @returns {Promise} Returns a Promise that resolves with a Svelte component\n */\n\n/**\n * @callback RoutePrecondition\n * @param {RouteDetail} detail - Route detail object\n * @returns {boolean|Promise} If the callback returns a false-y value, it's interpreted as the precondition failed, so it aborts loading the component (and won't process other pre-condition callbacks)\n */\n\n/**\n * @typedef {Object} WrapOptions Options object for the call to `wrap`\n * @property {SvelteComponent} [component] - Svelte component to load (this is incompatible with `asyncComponent`)\n * @property {AsyncSvelteComponent} [asyncComponent] - Function that returns a Promise that fulfills with a Svelte component (e.g. `{asyncComponent: () => import('Foo.svelte')}`)\n * @property {SvelteComponent} [loadingComponent] - Svelte component to be displayed while the async route is loading (as a placeholder); when unset or false-y, no component is shown while component\n * @property {object} [loadingParams] - Optional dictionary passed to the `loadingComponent` component as params (for an exported prop called `params`)\n * @property {object} [userData] - Optional object that will be passed to events such as `routeLoading`, `routeLoaded`, `conditionsFailed`\n * @property {object} [props] - Optional key-value dictionary of static props that will be passed to the component. The props are expanded with {...props}, so the key in the dictionary becomes the name of the prop.\n * @property {RoutePrecondition[]|RoutePrecondition} [conditions] - Route pre-conditions to add, which will be executed in order\n */\n\n/**\n * Wraps a component to enable multiple capabilities:\n * 1. Using dynamically-imported component, with (e.g. `{asyncComponent: () => import('Foo.svelte')}`), which also allows bundlers to do code-splitting.\n * 2. Adding route pre-conditions (e.g. `{conditions: [...]}`)\n * 3. Adding static props that are passed to the component\n * 4. Adding custom userData, which is passed to route events (e.g. route loaded events) or to route pre-conditions (e.g. `{userData: {foo: 'bar}}`)\n * \n * @param {WrapOptions} args - Arguments object\n * @returns {WrappedComponent} Wrapped component\n */\nexport function wrap(args) {\n if (!args) {\n throw Error('Parameter args is required')\n }\n\n // We need to have one and only one of component and asyncComponent\n // This does a \"XNOR\"\n if (!args.component == !args.asyncComponent) {\n throw Error('One and only one of component and asyncComponent is required')\n }\n\n // If the component is not async, wrap it into a function returning a Promise\n if (args.component) {\n args.asyncComponent = () => Promise.resolve(args.component)\n }\n\n // Parameter asyncComponent and each item of conditions must be functions\n if (typeof args.asyncComponent != 'function') {\n throw Error('Parameter asyncComponent must be a function')\n }\n if (args.conditions) {\n // Ensure it's an array\n if (!Array.isArray(args.conditions)) {\n args.conditions = [args.conditions]\n }\n for (let i = 0; i < args.conditions.length; i++) {\n if (!args.conditions[i] || typeof args.conditions[i] != 'function') {\n throw Error('Invalid parameter conditions[' + i + ']')\n }\n }\n }\n\n // Check if we have a placeholder component\n if (args.loadingComponent) {\n args.asyncComponent.loading = args.loadingComponent\n args.asyncComponent.loadingParams = args.loadingParams || undefined\n }\n\n // Returns an object that contains all the functions to execute too\n // The _sveltesparouter flag is to confirm the object was created by this router\n const obj = {\n component: args.asyncComponent,\n userData: args.userData,\n conditions: (args.conditions && args.conditions.length) ? args.conditions : undefined,\n props: (args.props && Object.keys(args.props).length) ? args.props : {},\n _sveltesparouter: true\n }\n\n return obj\n}\n\nexport default wrap\n","import { noop, safe_not_equal, subscribe, run_all, is_function } from '../internal/index.mjs';\nexport { get_store_value as get } from '../internal/index.mjs';\n\nconst subscriber_queue = [];\n/**\n * Creates a `Readable` store that allows reading by subscription.\n * @param value initial value\n * @param {StartStopNotifier}start start and stop notifications for subscriptions\n */\nfunction readable(value, start) {\n return {\n subscribe: writable(value, start).subscribe\n };\n}\n/**\n * Create a `Writable` store that allows both updating and reading by subscription.\n * @param {*=}value initial value\n * @param {StartStopNotifier=}start start and stop notifications for subscriptions\n */\nfunction writable(value, start = noop) {\n let stop;\n const subscribers = new Set();\n function set(new_value) {\n if (safe_not_equal(value, new_value)) {\n value = new_value;\n if (stop) { // store is ready\n const run_queue = !subscriber_queue.length;\n for (const subscriber of subscribers) {\n subscriber[1]();\n subscriber_queue.push(subscriber, value);\n }\n if (run_queue) {\n for (let i = 0; i < subscriber_queue.length; i += 2) {\n subscriber_queue[i][0](subscriber_queue[i + 1]);\n }\n subscriber_queue.length = 0;\n }\n }\n }\n }\n function update(fn) {\n set(fn(value));\n }\n function subscribe(run, invalidate = noop) {\n const subscriber = [run, invalidate];\n subscribers.add(subscriber);\n if (subscribers.size === 1) {\n stop = start(set) || noop;\n }\n run(value);\n return () => {\n subscribers.delete(subscriber);\n if (subscribers.size === 0) {\n stop();\n stop = null;\n }\n };\n }\n return { set, update, subscribe };\n}\nfunction derived(stores, fn, initial_value) {\n const single = !Array.isArray(stores);\n const stores_array = single\n ? [stores]\n : stores;\n const auto = fn.length < 2;\n return readable(initial_value, (set) => {\n let inited = false;\n const values = [];\n let pending = 0;\n let cleanup = noop;\n const sync = () => {\n if (pending) {\n return;\n }\n cleanup();\n const result = fn(single ? values[0] : values, set);\n if (auto) {\n set(result);\n }\n else {\n cleanup = is_function(result) ? result : noop;\n }\n };\n const unsubscribers = stores_array.map((store, i) => subscribe(store, (value) => {\n values[i] = value;\n pending &= ~(1 << i);\n if (inited) {\n sync();\n }\n }, () => {\n pending |= (1 << i);\n }));\n inited = true;\n sync();\n return function stop() {\n run_all(unsubscribers);\n cleanup();\n };\n });\n}\n\nexport { derived, readable, writable };\n","export function parse(str, loose) {\n\tif (str instanceof RegExp) return { keys:false, pattern:str };\n\tvar c, o, tmp, ext, keys=[], pattern='', arr = str.split('/');\n\tarr[0] || arr.shift();\n\n\twhile (tmp = arr.shift()) {\n\t\tc = tmp[0];\n\t\tif (c === '*') {\n\t\t\tkeys.push('wild');\n\t\t\tpattern += '/(.*)';\n\t\t} else if (c === ':') {\n\t\t\to = tmp.indexOf('?', 1);\n\t\t\text = tmp.indexOf('.', 1);\n\t\t\tkeys.push( tmp.substring(1, !!~o ? o : !!~ext ? ext : tmp.length) );\n\t\t\tpattern += !!~o && !~ext ? '(?:/([^/]+?))?' : '/([^/]+?)';\n\t\t\tif (!!~ext) pattern += (!!~o ? '?' : '') + '\\\\' + tmp.substring(ext);\n\t\t} else {\n\t\t\tpattern += '/' + tmp;\n\t\t}\n\t}\n\n\treturn {\n\t\tkeys: keys,\n\t\tpattern: new RegExp('^' + pattern + (loose ? '(?=$|\\/)' : '\\/?$'), 'i')\n\t};\n}\n\nvar RGX = /*#__PURE__*/ /(\\/|^)([:*][^/]*?)(\\?)?(?=[/.]|$)/g;\n\n// error if key missing?\nexport function inject(route, values) {\n\treturn route.replace(RGX, (x, lead, key, optional) => {\n\t\tx = values[key=='*' ? 'wild' : key.substring(1)];\n\t\treturn x ? '/'+x : (optional || key=='*') ? '' : '/' + key;\n\t});\n}\n","\n\n{#if componentParams}\n \n{:else}\n \n{/if}\n\n\n","import { writable } from 'svelte/store'\n\nexport const notification = writable()\n","\nimport { notification } from './store.js'\nimport { tick } from 'svelte'\n\nasync function toaster (node, sessionKey) {\n const unsubscribe = notification.subscribe(value => {\n if (!value) { return }\n node.dispatchEvent(\n new CustomEvent('notify', { detail: value })\n )\n notification.set()\n })\n\n await tick()\n try {\n const existing = JSON.parse(\n sessionStorage.getItem(sessionKey)\n )\n for (const n of existing) {\n notification.set(n)\n }\n } catch (e) {\n } finally {\n try {\n sessionStorage.removeItem(sessionKey)\n } catch (e2) {}\n }\n\n return {\n destroy () {\n unsubscribe()\n }\n }\n}\n\nexport {\n toaster\n}\n","
    \n {#each toasts as toast (toast.id)}\n
  • \n {#if toast.persist}\n \n {/if}\n
    \n {toast.message}\n
    \n
    maybePurge(toast) }>\n
    \n
  • \n {/each}\n
\n\n\n\n\n","import { notification } from './store.js'\n\nfunction parseLegacyOptions (options) {\n return typeof options === 'number' ? { timeout: options } : options\n}\n\nexport function send (message, type = 'default', options) {\n notification.set({ type, message, options: parseLegacyOptions(options) })\n}\n\nexport function danger (message, options) {\n send(message, 'danger', options)\n}\n\nexport function warning (message, options) {\n send(message, 'warning', options)\n}\n\nexport function info (message, options) {\n send(message, 'info', options)\n}\n\nexport function success (message, options) {\n send(message, 'success', options)\n}\n","import {parse} from 'regexparam'\nimport {loc} from './Router.svelte'\n\n// List of nodes to update\nconst nodes = []\n\n// Current location\nlet location\n\n// Function that updates all nodes marking the active ones\nfunction checkActive(el) {\n const matchesLocation = el.pattern.test(location)\n toggleClasses(el, el.className, matchesLocation)\n toggleClasses(el, el.inactiveClassName, !matchesLocation)\n}\n\nfunction toggleClasses(el, className, shouldAdd) {\n (className || '').split(' ').forEach((cls) => {\n if (!cls) {\n return\n }\n // Remove the class firsts\n el.node.classList.remove(cls)\n\n // If the pattern doesn't match, then set the class\n if (shouldAdd) {\n el.node.classList.add(cls)\n }\n })\n}\n\n// Listen to changes in the location\nloc.subscribe((value) => {\n // Update the location\n location = value.location + (value.querystring ? '?' + value.querystring : '')\n\n // Update all nodes\n nodes.map(checkActive)\n})\n\n/**\n * @typedef {Object} ActiveOptions\n * @property {string|RegExp} [path] - Path expression that makes the link active when matched (must start with '/' or '*'); default is the link's href\n * @property {string} [className] - CSS class to apply to the element when active; default value is \"active\"\n */\n\n/**\n * Svelte Action for automatically adding the \"active\" class to elements (links, or any other DOM element) when the current location matches a certain path.\n * \n * @param {HTMLElement} node - The target node (automatically set by Svelte)\n * @param {ActiveOptions|string|RegExp} [opts] - Can be an object of type ActiveOptions, or a string (or regular expressions) representing ActiveOptions.path.\n * @returns {{destroy: function(): void}} Destroy function\n */\nexport default function active(node, opts) {\n // Check options\n if (opts && (typeof opts == 'string' || (typeof opts == 'object' && opts instanceof RegExp))) {\n // Interpret strings and regular expressions as opts.path\n opts = {\n path: opts\n }\n }\n else {\n // Ensure opts is a dictionary\n opts = opts || {}\n }\n\n // Path defaults to link target\n if (!opts.path && node.hasAttribute('href')) {\n opts.path = node.getAttribute('href')\n if (opts.path && opts.path.length > 1 && opts.path.charAt(0) == '#') {\n opts.path = opts.path.substring(1)\n }\n }\n\n // Default class name\n if (!opts.className) {\n opts.className = 'active'\n }\n\n // If path is a string, it must start with '/' or '*'\n if (!opts.path || \n typeof opts.path == 'string' && (opts.path.length < 1 || (opts.path.charAt(0) != '/' && opts.path.charAt(0) != '*'))\n ) {\n throw Error('Invalid value for \"path\" argument')\n }\n\n // If path is not a regular expression already, make it\n const {pattern} = typeof opts.path == 'string' ?\n parse(opts.path) :\n {pattern: opts.path}\n\n // Add the node to the list\n const el = {\n node,\n className: opts.className,\n inactiveClassName: opts.inactiveClassName,\n pattern\n }\n nodes.push(el)\n\n // Trigger the action right away\n checkActive(el)\n\n return {\n // When the element is destroyed, remove it from the list\n destroy() {\n nodes.splice(nodes.indexOf(el), 1)\n }\n }\n}\n","export default (typeof global !== \"undefined\" ? global :\n typeof self !== \"undefined\" ? self :\n typeof window !== \"undefined\" ? window : {});","// shim for using process in browser\n// based off https://github.com/defunctzombie/node-process/blob/master/browser.js\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\nvar cachedSetTimeout = defaultSetTimout;\nvar cachedClearTimeout = defaultClearTimeout;\nif (typeof global.setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n}\nif (typeof global.clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n}\n\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\nfunction nextTick(fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n}\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nvar title = 'browser';\nvar platform = 'browser';\nvar browser = true;\nvar env = {};\nvar argv = [];\nvar version = ''; // empty string to avoid regexp issues\nvar versions = {};\nvar release = {};\nvar config = {};\n\nfunction noop() {}\n\nvar on = noop;\nvar addListener = noop;\nvar once = noop;\nvar off = noop;\nvar removeListener = noop;\nvar removeAllListeners = noop;\nvar emit = noop;\n\nfunction binding(name) {\n throw new Error('process.binding is not supported');\n}\n\nfunction cwd () { return '/' }\nfunction chdir (dir) {\n throw new Error('process.chdir is not supported');\n}function umask() { return 0; }\n\n// from https://github.com/kumavis/browser-process-hrtime/blob/master/index.js\nvar performance = global.performance || {};\nvar performanceNow =\n performance.now ||\n performance.mozNow ||\n performance.msNow ||\n performance.oNow ||\n performance.webkitNow ||\n function(){ return (new Date()).getTime() };\n\n// generate timestamp or delta\n// see http://nodejs.org/api/process.html#process_process_hrtime\nfunction hrtime(previousTimestamp){\n var clocktime = performanceNow.call(performance)*1e-3;\n var seconds = Math.floor(clocktime);\n var nanoseconds = Math.floor((clocktime%1)*1e9);\n if (previousTimestamp) {\n seconds = seconds - previousTimestamp[0];\n nanoseconds = nanoseconds - previousTimestamp[1];\n if (nanoseconds<0) {\n seconds--;\n nanoseconds += 1e9;\n }\n }\n return [seconds,nanoseconds]\n}\n\nvar startTime = new Date();\nfunction uptime() {\n var currentTime = new Date();\n var dif = currentTime - startTime;\n return dif / 1000;\n}\n\nvar browser$1 = {\n nextTick: nextTick,\n title: title,\n browser: browser,\n env: env,\n argv: argv,\n version: version,\n versions: versions,\n on: on,\n addListener: addListener,\n once: once,\n off: off,\n removeListener: removeListener,\n removeAllListeners: removeAllListeners,\n emit: emit,\n binding: binding,\n cwd: cwd,\n chdir: chdir,\n umask: umask,\n hrtime: hrtime,\n platform: platform,\n release: release,\n config: config,\n uptime: uptime\n};\n\nexport default browser$1;\nexport { addListener, argv, binding, browser, chdir, config, cwd, emit, env, hrtime, nextTick, off, on, once, platform, release, removeAllListeners, removeListener, title, umask, uptime, version, versions };\n","'use strict';\nexports.test = function () {\n return typeof global.queueMicrotask === 'function';\n};\n\nexports.install = function (func) {\n return function () {\n global.queueMicrotask(func);\n };\n};\n","'use strict';\n//based off rsvp https://github.com/tildeio/rsvp.js\n//license https://github.com/tildeio/rsvp.js/blob/master/LICENSE\n//https://github.com/tildeio/rsvp.js/blob/master/lib/rsvp/asap.js\n\nvar Mutation = global.MutationObserver || global.WebKitMutationObserver;\n\nexports.test = function () {\n return Mutation;\n};\n\nexports.install = function (handle) {\n var called = 0;\n var observer = new Mutation(handle);\n var element = global.document.createTextNode('');\n observer.observe(element, {\n characterData: true\n });\n return function () {\n element.data = (called = ++called % 2);\n };\n};","'use strict';\nvar types = [\n require('./nextTick'),\n require('./queueMicrotask'),\n require('./mutation.js'),\n require('./messageChannel'),\n require('./stateChange'),\n require('./timeout')\n];\nvar draining;\nvar currentQueue;\nvar queueIndex = -1;\nvar queue = [];\nvar scheduled = false;\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n nextTick();\n }\n}\n\n//named nextTick for less confusing stack traces\nfunction nextTick() {\n if (draining) {\n return;\n }\n scheduled = false;\n draining = true;\n var len = queue.length;\n var timeout = setTimeout(cleanUpNextTick);\n while (len) {\n currentQueue = queue;\n queue = [];\n while (currentQueue && ++queueIndex < len) {\n currentQueue[queueIndex].run();\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n queueIndex = -1;\n draining = false;\n clearTimeout(timeout);\n}\nvar scheduleDrain;\nvar i = -1;\nvar len = types.length;\nwhile (++i < len) {\n if (types[i] && types[i].test && types[i].test()) {\n scheduleDrain = types[i].install(nextTick);\n break;\n }\n}\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n var fun = this.fun;\n var array = this.array;\n switch (array.length) {\n case 0:\n return fun();\n case 1:\n return fun(array[0]);\n case 2:\n return fun(array[0], array[1]);\n case 3:\n return fun(array[0], array[1], array[2]);\n default:\n return fun.apply(null, array);\n }\n\n};\nmodule.exports = immediate;\nfunction immediate(task) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(task, args));\n if (!scheduled && !draining) {\n scheduled = true;\n scheduleDrain();\n }\n}\n","'use strict';\n\nexports.test = function () {\n if (global.setImmediate) {\n // we can only get here in IE10\n // which doesn't handel postMessage well\n return false;\n }\n return typeof global.MessageChannel !== 'undefined';\n};\n\nexports.install = function (func) {\n var channel = new global.MessageChannel();\n channel.port1.onmessage = func;\n return function () {\n channel.port2.postMessage(0);\n };\n};","'use strict';\n\nexports.test = function () {\n return 'document' in global && 'onreadystatechange' in global.document.createElement('script');\n};\n\nexports.install = function (handle) {\n return function () {\n\n // Create a \n","/** Dispatch event on click outside of node */\nexport function clickOutside(node) {\n const handleClick = (event) => {\n if (node && !node.contains(event.target) && !event.defaultPrevented) {\n node.dispatchEvent(new CustomEvent(\"click_outside\", node));\n }\n };\n\n document.addEventListener(\"click\", handleClick, true);\n\n return {\n destroy() {\n document.removeEventListener(\"click\", handleClick, true);\n },\n };\n}\n","\n\n
(show = false)}>\n
(show = !show)} class=\"dropbtn\">\n \n
\n \n
    \n {#each menuItems as menuItem}\n {\n show = false;\n menuItem.onClick();\n }}\n >\n {menuItem.title}\n \n {/each}\n
\n
\n\n\n\n","\n\n\n\n\n","\n\n\n","\n\n\n\n
\n {@html getOptionLabel(item, filterText)}\n
\n","\n\n\n\n\n\n\n {#if isVirtualList}\n \n handleHover(i)}\n on:focus={() => handleHover(i)}\n on:click={(event) => handleClick({ item, i, event })}\n class=\"listItem\">\n \n \n \n {:else}\n {#each items as item, i}\n {#if item.isGroupHeader && !item.isSelectable}\n
{getGroupHeaderLabel(item)}
\n {:else}\n handleHover(i)}\n on:focus={() => handleHover(i)}\n on:click={(event) => handleClick({ item, i, event })}\n class=\"listItem\"\n tabindex=\"-1\">\n \n \n {/if}\n {:else}\n {#if !hideEmptyState}\n
{noOptionsMessage}
\n {/if}\n {/each}\n {/if}\n\n","export default function (elem) {\n const bounding = elem.getBoundingClientRect();\n const out = {};\n\n out.top = bounding.top < 0;\n out.left = bounding.left < 0;\n out.bottom =\n bounding.bottom >\n (window.innerHeight || document.documentElement.clientHeight);\n out.right =\n bounding.right >\n (window.innerWidth || document.documentElement.clientWidth);\n out.any = out.top || out.left || out.bottom || out.right;\n\n return out;\n}\n","\n\n\n\n
\n {@html getSelectionLabel(item)}\n
\n","\n\n\n\n{#each value as item, i}\n \n multiFullItemClearable ? handleClear(i, event) : {}}>\n
\n {@html getSelectionLabel(item)}\n
\n {#if !isDisabled && !multiFullItemClearable}\n handleClear(i, event)}>\n \n \n \n \n {/if}\n \n{/each}\n","\n\n\n\n\n \n {#each visible as row (row.index)}\n \n Missing template\n \n {/each}\n \n\n","\n \n\n","\n\n\n\n\n\n\n \n {#if isFocused}\n {ariaSelection}\n \n {ariaContext}\n \n {/if}\n \n\n {#if Icon}\n \n {/if}\n\n {#if showMultiSelect}\n \n {/if}\n\n \n\n {#if !isMulti && showSelectedItem}\n
\n \n
\n {/if}\n\n {#if showClearIcon}\n \n \n \n {/if}\n\n {#if !showClearIcon && (showIndicator || (showChevron && !value) || (!isSearchable && !isDisabled && !isWaiting && ((showSelectedItem && !isClearable) || !showSelectedItem)))}\n
\n {#if indicatorSvg}\n {@html indicatorSvg}\n {:else}\n \n \n \n {/if}\n
\n {/if}\n\n {#if isWaiting}\n
\n \n \n \n
\n {/if}\n\n {#if listOpen}\n \n {/if}\n\n {#if !isMulti || (isMulti && !showMultiSelect)}\n \n {/if}\n\n {#if isMulti && showMultiSelect}\n {#each value as item}\n \n {/each}\n {/if}\n\n","export default function debounce(func, wait, immediate) {\n let timeout;\n\n return function executedFunction() {\n let context = this;\n let args = arguments;\n\n let later = function () {\n timeout = null;\n if (!immediate) func.apply(context, args);\n };\n\n let callNow = immediate && !timeout;\n\n clearTimeout(timeout);\n\n timeout = setTimeout(later, wait);\n\n if (callNow) func.apply(context, args);\n };\n}\n","\n\n {\n let selection = event.detail;\n if (selection) {\n if (!Array.isArray(selection)) selection = [selection];\n value = selection.map((item) => item.value).join(\", \");\n } else {\n value = \"\";\n }\n }}\n on:clear={(event) => (value = \"\")}\n isDisabled={disabled}\n {isMulti}\n {isCreatable}\n {isClearable}\n {placeholder}\n/>\n","\n\n
\n
\n debounce(() => (searchTerm = event.target.value))}\n placeholder=\"Suche\"\n />\n \n
\n
\n\n\n","export const durationUnitRegex = /[a-zA-Z]/;\r\nexport const calculateRgba = (color, opacity) => {\r\n if (color[0] === \"#\") {\r\n color = color.slice(1);\r\n }\r\n if (color.length === 3) {\r\n let res = \"\";\r\n color.split(\"\").forEach((c) => {\r\n res += c;\r\n res += c;\r\n });\r\n color = res;\r\n }\r\n const rgbValues = (color.match(/.{2}/g) || [])\r\n .map((hex) => parseInt(hex, 16))\r\n .join(\", \");\r\n return `rgba(${rgbValues}, ${opacity})`;\r\n};\r\nexport const range = (size, startAt = 0) => [...Array(size).keys()].map(i => i + startAt);\r\n// export const characterRange = (startChar, endChar) =>\r\n// String.fromCharCode(\r\n// ...range(\r\n// endChar.charCodeAt(0) - startChar.charCodeAt(0),\r\n// startChar.charCodeAt(0)\r\n// )\r\n// );\r\n// export const zip = (arr, ...arrs) =>\r\n// arr.map((val, i) => arrs.reduce((list, curr) => [...list, curr[i]], [val]));\r\n//# sourceMappingURL=utils.js.map","\r\n\r\n\r\n\r\n\r\n {#each range(3, 0) as version}\r\n \r\n {/each}\r\n\r\n","\r\n\r\n\r\n\r\n\r\n
\r\n
\r\n
\r\n\r\n","\n\n\n\n\n","\n\n\n {#await valueFunction() then value}\n {#if isImage}\n {#if value && value !== \"\"}\n \"item\"\n {/if}\n {:else}\n
\n {value}\n
\n {/if}\n {/await}\n\n\n\n","\n\n\n {#each columns as col, i}\n displayValue(col, item)}\n backgroundColor={cellBackgroundColors[i]}\n />\n {/each}\n\n\n\n","\r\n \r\n\r\n\r\n\r\n","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nvar prefix = 'fas';\nvar iconName = 'sort';\nvar width = 320;\nvar height = 512;\nvar ligatures = [];\nvar unicode = 'f0dc';\nvar svgPathData = 'M41 288h238c21.4 0 32.1 25.9 17 41L177 448c-9.4 9.4-24.6 9.4-33.9 0L24 329c-15.1-15.1-4.4-41 17-41zm255-105L177 64c-9.4-9.4-24.6-9.4-33.9 0L24 183c-15.1 15.1-4.4 41 17 41h238c21.4 0 32.1-25.9 17-41z';\n\nexports.definition = {\n prefix: prefix,\n iconName: iconName,\n icon: [\n width,\n height,\n ligatures,\n unicode,\n svgPathData\n ]};\n\nexports.faSort = exports.definition;\nexports.prefix = prefix;\nexports.iconName = iconName;\nexports.width = width;\nexports.height = height;\nexports.ligatures = ligatures;\nexports.unicode = unicode;\nexports.svgPathData = svgPathData;","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nvar prefix = 'fas';\nvar iconName = 'sort-down';\nvar width = 320;\nvar height = 512;\nvar ligatures = [];\nvar unicode = 'f0dd';\nvar svgPathData = 'M41 288h238c21.4 0 32.1 25.9 17 41L177 448c-9.4 9.4-24.6 9.4-33.9 0L24 329c-15.1-15.1-4.4-41 17-41z';\n\nexports.definition = {\n prefix: prefix,\n iconName: iconName,\n icon: [\n width,\n height,\n ligatures,\n unicode,\n svgPathData\n ]};\n\nexports.faSortDown = exports.definition;\nexports.prefix = prefix;\nexports.iconName = iconName;\nexports.width = width;\nexports.height = height;\nexports.ligatures = ligatures;\nexports.unicode = unicode;\nexports.svgPathData = svgPathData;","\n\n\n \n {#each columns as col, i}\n {#if col.disableSort}\n \n {col.title}\n \n {:else}\n (mouseOverColHeader = {})}\n on:mouseover={() => {\n mouseOverColHeader = {};\n mouseOverColHeader[col.key] = true;\n }}\n on:click={() => dispatch(\"colHeaderClicked\", col)}\n class=\"clickable\"\n >\n {col.title}\n \n \n \n \n \n \n \n \n \n \n {/if}\n {/each}\n \n\n\n\n","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nvar prefix = 'fas';\nvar iconName = 'sort-up';\nvar width = 320;\nvar height = 512;\nvar ligatures = [];\nvar unicode = 'f0de';\nvar svgPathData = 'M279 224H41c-21.4 0-32.1-25.9-17-41L143 64c9.4-9.4 24.6-9.4 33.9 0l119 119c15.2 15.1 4.5 41-16.9 41z';\n\nexports.definition = {\n prefix: prefix,\n iconName: iconName,\n icon: [\n width,\n height,\n ligatures,\n unicode,\n svgPathData\n ]};\n\nexports.faSortUp = exports.definition;\nexports.prefix = prefix;\nexports.iconName = iconName;\nexports.width = width;\nexports.height = height;\nexports.ligatures = ligatures;\nexports.unicode = unicode;\nexports.svgPathData = svgPathData;","export { identity as linear } from '../internal/index.mjs';\n\n/*\nAdapted from https://github.com/mattdesl\nDistributed under MIT License https://github.com/mattdesl/eases/blob/master/LICENSE.md\n*/\nfunction backInOut(t) {\n const s = 1.70158 * 1.525;\n if ((t *= 2) < 1)\n return 0.5 * (t * t * ((s + 1) * t - s));\n return 0.5 * ((t -= 2) * t * ((s + 1) * t + s) + 2);\n}\nfunction backIn(t) {\n const s = 1.70158;\n return t * t * ((s + 1) * t - s);\n}\nfunction backOut(t) {\n const s = 1.70158;\n return --t * t * ((s + 1) * t + s) + 1;\n}\nfunction bounceOut(t) {\n const a = 4.0 / 11.0;\n const b = 8.0 / 11.0;\n const c = 9.0 / 10.0;\n const ca = 4356.0 / 361.0;\n const cb = 35442.0 / 1805.0;\n const cc = 16061.0 / 1805.0;\n const t2 = t * t;\n return t < a\n ? 7.5625 * t2\n : t < b\n ? 9.075 * t2 - 9.9 * t + 3.4\n : t < c\n ? ca * t2 - cb * t + cc\n : 10.8 * t * t - 20.52 * t + 10.72;\n}\nfunction bounceInOut(t) {\n return t < 0.5\n ? 0.5 * (1.0 - bounceOut(1.0 - t * 2.0))\n : 0.5 * bounceOut(t * 2.0 - 1.0) + 0.5;\n}\nfunction bounceIn(t) {\n return 1.0 - bounceOut(1.0 - t);\n}\nfunction circInOut(t) {\n if ((t *= 2) < 1)\n return -0.5 * (Math.sqrt(1 - t * t) - 1);\n return 0.5 * (Math.sqrt(1 - (t -= 2) * t) + 1);\n}\nfunction circIn(t) {\n return 1.0 - Math.sqrt(1.0 - t * t);\n}\nfunction circOut(t) {\n return Math.sqrt(1 - --t * t);\n}\nfunction cubicInOut(t) {\n return t < 0.5 ? 4.0 * t * t * t : 0.5 * Math.pow(2.0 * t - 2.0, 3.0) + 1.0;\n}\nfunction cubicIn(t) {\n return t * t * t;\n}\nfunction cubicOut(t) {\n const f = t - 1.0;\n return f * f * f + 1.0;\n}\nfunction elasticInOut(t) {\n return t < 0.5\n ? 0.5 *\n Math.sin(((+13.0 * Math.PI) / 2) * 2.0 * t) *\n Math.pow(2.0, 10.0 * (2.0 * t - 1.0))\n : 0.5 *\n Math.sin(((-13.0 * Math.PI) / 2) * (2.0 * t - 1.0 + 1.0)) *\n Math.pow(2.0, -10.0 * (2.0 * t - 1.0)) +\n 1.0;\n}\nfunction elasticIn(t) {\n return Math.sin((13.0 * t * Math.PI) / 2) * Math.pow(2.0, 10.0 * (t - 1.0));\n}\nfunction elasticOut(t) {\n return (Math.sin((-13.0 * (t + 1.0) * Math.PI) / 2) * Math.pow(2.0, -10.0 * t) + 1.0);\n}\nfunction expoInOut(t) {\n return t === 0.0 || t === 1.0\n ? t\n : t < 0.5\n ? +0.5 * Math.pow(2.0, 20.0 * t - 10.0)\n : -0.5 * Math.pow(2.0, 10.0 - t * 20.0) + 1.0;\n}\nfunction expoIn(t) {\n return t === 0.0 ? t : Math.pow(2.0, 10.0 * (t - 1.0));\n}\nfunction expoOut(t) {\n return t === 1.0 ? t : 1.0 - Math.pow(2.0, -10.0 * t);\n}\nfunction quadInOut(t) {\n t /= 0.5;\n if (t < 1)\n return 0.5 * t * t;\n t--;\n return -0.5 * (t * (t - 2) - 1);\n}\nfunction quadIn(t) {\n return t * t;\n}\nfunction quadOut(t) {\n return -t * (t - 2.0);\n}\nfunction quartInOut(t) {\n return t < 0.5\n ? +8.0 * Math.pow(t, 4.0)\n : -8.0 * Math.pow(t - 1.0, 4.0) + 1.0;\n}\nfunction quartIn(t) {\n return Math.pow(t, 4.0);\n}\nfunction quartOut(t) {\n return Math.pow(t - 1.0, 3.0) * (1.0 - t) + 1.0;\n}\nfunction quintInOut(t) {\n if ((t *= 2) < 1)\n return 0.5 * t * t * t * t * t;\n return 0.5 * ((t -= 2) * t * t * t * t + 2);\n}\nfunction quintIn(t) {\n return t * t * t * t * t;\n}\nfunction quintOut(t) {\n return --t * t * t * t * t + 1;\n}\nfunction sineInOut(t) {\n return -0.5 * (Math.cos(Math.PI * t) - 1);\n}\nfunction sineIn(t) {\n const v = Math.cos(t * Math.PI * 0.5);\n if (Math.abs(v) < 1e-14)\n return 1;\n else\n return 1 - v;\n}\nfunction sineOut(t) {\n return Math.sin((t * Math.PI) / 2);\n}\n\nexport { backIn, backInOut, backOut, bounceIn, bounceInOut, bounceOut, circIn, circInOut, circOut, cubicIn, cubicInOut, cubicOut, elasticIn, elasticInOut, elasticOut, expoIn, expoInOut, expoOut, quadIn, quadInOut, quadOut, quartIn, quartInOut, quartOut, quintIn, quintInOut, quintOut, sineIn, sineInOut, sineOut };\n","import { cubicInOut, linear, cubicOut } from '../easing/index.mjs';\nimport { is_function, assign } from '../internal/index.mjs';\n\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n\r\nfunction __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\n\nfunction blur(node, { delay = 0, duration = 400, easing = cubicInOut, amount = 5, opacity = 0 } = {}) {\n const style = getComputedStyle(node);\n const target_opacity = +style.opacity;\n const f = style.filter === 'none' ? '' : style.filter;\n const od = target_opacity * (1 - opacity);\n return {\n delay,\n duration,\n easing,\n css: (_t, u) => `opacity: ${target_opacity - (od * u)}; filter: ${f} blur(${u * amount}px);`\n };\n}\nfunction fade(node, { delay = 0, duration = 400, easing = linear } = {}) {\n const o = +getComputedStyle(node).opacity;\n return {\n delay,\n duration,\n easing,\n css: t => `opacity: ${t * o}`\n };\n}\nfunction fly(node, { delay = 0, duration = 400, easing = cubicOut, x = 0, y = 0, opacity = 0 } = {}) {\n const style = getComputedStyle(node);\n const target_opacity = +style.opacity;\n const transform = style.transform === 'none' ? '' : style.transform;\n const od = target_opacity * (1 - opacity);\n return {\n delay,\n duration,\n easing,\n css: (t, u) => `\n\t\t\ttransform: ${transform} translate(${(1 - t) * x}px, ${(1 - t) * y}px);\n\t\t\topacity: ${target_opacity - (od * u)}`\n };\n}\nfunction slide(node, { delay = 0, duration = 400, easing = cubicOut } = {}) {\n const style = getComputedStyle(node);\n const opacity = +style.opacity;\n const height = parseFloat(style.height);\n const padding_top = parseFloat(style.paddingTop);\n const padding_bottom = parseFloat(style.paddingBottom);\n const margin_top = parseFloat(style.marginTop);\n const margin_bottom = parseFloat(style.marginBottom);\n const border_top_width = parseFloat(style.borderTopWidth);\n const border_bottom_width = parseFloat(style.borderBottomWidth);\n return {\n delay,\n duration,\n easing,\n css: t => 'overflow: hidden;' +\n `opacity: ${Math.min(t * 20, 1) * opacity};` +\n `height: ${t * height}px;` +\n `padding-top: ${t * padding_top}px;` +\n `padding-bottom: ${t * padding_bottom}px;` +\n `margin-top: ${t * margin_top}px;` +\n `margin-bottom: ${t * margin_bottom}px;` +\n `border-top-width: ${t * border_top_width}px;` +\n `border-bottom-width: ${t * border_bottom_width}px;`\n };\n}\nfunction scale(node, { delay = 0, duration = 400, easing = cubicOut, start = 0, opacity = 0 } = {}) {\n const style = getComputedStyle(node);\n const target_opacity = +style.opacity;\n const transform = style.transform === 'none' ? '' : style.transform;\n const sd = 1 - start;\n const od = target_opacity * (1 - opacity);\n return {\n delay,\n duration,\n easing,\n css: (_t, u) => `\n\t\t\ttransform: ${transform} scale(${1 - (sd * u)});\n\t\t\topacity: ${target_opacity - (od * u)}\n\t\t`\n };\n}\nfunction draw(node, { delay = 0, speed, duration, easing = cubicInOut } = {}) {\n const len = node.getTotalLength();\n if (duration === undefined) {\n if (speed === undefined) {\n duration = 800;\n }\n else {\n duration = len / speed;\n }\n }\n else if (typeof duration === 'function') {\n duration = duration(len);\n }\n return {\n delay,\n duration,\n easing,\n css: (t, u) => `stroke-dasharray: ${t * len} ${u * len}`\n };\n}\nfunction crossfade(_a) {\n var { fallback } = _a, defaults = __rest(_a, [\"fallback\"]);\n const to_receive = new Map();\n const to_send = new Map();\n function crossfade(from, node, params) {\n const { delay = 0, duration = d => Math.sqrt(d) * 30, easing = cubicOut } = assign(assign({}, defaults), params);\n const to = node.getBoundingClientRect();\n const dx = from.left - to.left;\n const dy = from.top - to.top;\n const dw = from.width / to.width;\n const dh = from.height / to.height;\n const d = Math.sqrt(dx * dx + dy * dy);\n const style = getComputedStyle(node);\n const transform = style.transform === 'none' ? '' : style.transform;\n const opacity = +style.opacity;\n return {\n delay,\n duration: is_function(duration) ? duration(d) : duration,\n easing,\n css: (t, u) => `\n\t\t\t\topacity: ${t * opacity};\n\t\t\t\ttransform-origin: top left;\n\t\t\t\ttransform: ${transform} translate(${u * dx}px,${u * dy}px) scale(${t + (1 - t) * dw}, ${t + (1 - t) * dh});\n\t\t\t`\n };\n }\n function transition(items, counterparts, intro) {\n return (node, params) => {\n items.set(params.key, {\n rect: node.getBoundingClientRect()\n });\n return () => {\n if (counterparts.has(params.key)) {\n const { rect } = counterparts.get(params.key);\n counterparts.delete(params.key);\n return crossfade(rect, node, params);\n }\n // if the node is disappearing altogether\n // (i.e. wasn't claimed by the other list)\n // then we need to supply an outro\n items.delete(params.key);\n return fallback && fallback(node, params, intro);\n };\n };\n }\n return [\n transition(to_send, to_receive, false),\n transition(to_receive, to_send, true)\n ];\n}\n\nexport { blur, crossfade, draw, fade, fly, scale, slide };\n","\n\n{#if fullScreenOverlay}\n
\n{/if}\n\n {#if text}\n

{text}

\n {/if}\n \n
\n\n\n","\n\n
\n \n
\n {#await loadData}\n \n {:then data}\n
\n {#each data as row, i (row._id)}\n dispatch(\"rowClicked\", row)}\n />\n {/each}\n \n {:catch error}\n

\n {@html onLoadDataErrorText(error)}\n

\n {/await}\n
\n
\n\n\n","\n\n\n\n\n\n{#if Component}\n \n \n \n {#if state.closeButton}\n {#if isFunction(state.closeButton)}\n \n {:else}\n \n {/if}\n {/if}\n \n \n
\n
\n
\n \n{/if}\n\n\n\n","\n\n\n\n\n","\n\n{#if loadingText}\n \n{/if}\n
\n {#each buttons.filter((button) => !button.hidden) as button}\n {\n button.disabled = true;\n loadingText = button.loadingText;\n await button.onClick();\n loadingText = false;\n button.disabled = false;\n }}\n text={button.text}\n color={button.color ?? \"blue\"}\n />\n {/each}\n
\n\n\n","\n\n
\n
\n

{title}

\n \n
\n
\n\n\n","\n\n
\n

{title}

\n
\n
\n {#each groups.filter( (group) => groupedInputs[group].some((input) => !isHidden(input)) ) as group}\n \n {#each groupedInputs[group].filter((input) => !isHidden(input)) as input}\n \n {#if input.label && input.label.length > 0}\n
\n \n
\n {/if}\n
\n {#if input.nobind}\n \n {:else}\n \n {/if}\n
\n
\n {/each}\n
\n {/each}\n
\n
\n
\n
\n
\n
\n\n\n","\n\n\n","\n\n\n\n\n\n ({\n value: filter,\n label: filter,\n }))}\n {activeFilters}\n bind:searchTerm\n on:filtersChanged={(event) => {\n if (JSON.stringify(event.detail) !== JSON.stringify(activeFilters)) {\n activeFilters = event.detail;\n }\n }}\n bind:this={searchInputRef}\n/>\n\n\n Promise.all(\n columnsToDisplay.map((column) => column.backgroundColor(customer))\n )}\n {indicateSort}\n onLoadDataErrorText={(error) => {\n if (error.status === 401) {\n return \"Benutzername oder Passwort für die Datenbank ist nicht korrekt. Bitte in den Einstellungen (Zahnrad rechts oben) überprüfen.\";\n } else {\n return `Keine Verbindung zur Datenbank.
${\n error.hasOwnProperty(\"message\") ? error.message : \"\"\n }`;\n }\n }}\n on:rowClicked={(event) => {\n popupIsOpen = true;\n popupFormular.show(\n {\n doc: event.detail,\n createNew: false,\n config: inputs,\n },\n onPopupClosed\n );\n }}\n on:colHeaderClicked={(event) => {\n if (sortByColKey == event.detail.key) sortReverse = !sortReverse;\n else sortReverse = false;\n sortByColKey = event.detail.key;\n const col = columnsToDisplay.find((col) => col.key === sortByColKey);\n sort = col.sort ?? [sortByColKey];\n }}\n/>\n\n\n\n {\n popupIsOpen = true;\n popupFormular.show(\n {\n createNew: true,\n config: inputs,\n },\n onPopupClosed\n );\n }}\n/>\n","import { writable } from '../store/index.mjs';\nimport { now, loop, assign } from '../internal/index.mjs';\nimport { linear } from '../easing/index.mjs';\n\nfunction is_date(obj) {\n return Object.prototype.toString.call(obj) === '[object Date]';\n}\n\nfunction tick_spring(ctx, last_value, current_value, target_value) {\n if (typeof current_value === 'number' || is_date(current_value)) {\n // @ts-ignore\n const delta = target_value - current_value;\n // @ts-ignore\n const velocity = (current_value - last_value) / (ctx.dt || 1 / 60); // guard div by 0\n const spring = ctx.opts.stiffness * delta;\n const damper = ctx.opts.damping * velocity;\n const acceleration = (spring - damper) * ctx.inv_mass;\n const d = (velocity + acceleration) * ctx.dt;\n if (Math.abs(d) < ctx.opts.precision && Math.abs(delta) < ctx.opts.precision) {\n return target_value; // settled\n }\n else {\n ctx.settled = false; // signal loop to keep ticking\n // @ts-ignore\n return is_date(current_value) ?\n new Date(current_value.getTime() + d) : current_value + d;\n }\n }\n else if (Array.isArray(current_value)) {\n // @ts-ignore\n return current_value.map((_, i) => tick_spring(ctx, last_value[i], current_value[i], target_value[i]));\n }\n else if (typeof current_value === 'object') {\n const next_value = {};\n for (const k in current_value) {\n // @ts-ignore\n next_value[k] = tick_spring(ctx, last_value[k], current_value[k], target_value[k]);\n }\n // @ts-ignore\n return next_value;\n }\n else {\n throw new Error(`Cannot spring ${typeof current_value} values`);\n }\n}\nfunction spring(value, opts = {}) {\n const store = writable(value);\n const { stiffness = 0.15, damping = 0.8, precision = 0.01 } = opts;\n let last_time;\n let task;\n let current_token;\n let last_value = value;\n let target_value = value;\n let inv_mass = 1;\n let inv_mass_recovery_rate = 0;\n let cancel_task = false;\n function set(new_value, opts = {}) {\n target_value = new_value;\n const token = current_token = {};\n if (value == null || opts.hard || (spring.stiffness >= 1 && spring.damping >= 1)) {\n cancel_task = true; // cancel any running animation\n last_time = now();\n last_value = new_value;\n store.set(value = target_value);\n return Promise.resolve();\n }\n else if (opts.soft) {\n const rate = opts.soft === true ? .5 : +opts.soft;\n inv_mass_recovery_rate = 1 / (rate * 60);\n inv_mass = 0; // infinite mass, unaffected by spring forces\n }\n if (!task) {\n last_time = now();\n cancel_task = false;\n task = loop(now => {\n if (cancel_task) {\n cancel_task = false;\n task = null;\n return false;\n }\n inv_mass = Math.min(inv_mass + inv_mass_recovery_rate, 1);\n const ctx = {\n inv_mass,\n opts: spring,\n settled: true,\n dt: (now - last_time) * 60 / 1000\n };\n const next_value = tick_spring(ctx, last_value, value, target_value);\n last_time = now;\n last_value = value;\n store.set(value = next_value);\n if (ctx.settled) {\n task = null;\n }\n return !ctx.settled;\n });\n }\n return new Promise(fulfil => {\n task.promise.then(() => {\n if (token === current_token)\n fulfil();\n });\n });\n }\n const spring = {\n set,\n update: (fn, opts) => set(fn(target_value, value), opts),\n subscribe: store.subscribe,\n stiffness,\n damping,\n precision\n };\n return spring;\n}\n\nfunction get_interpolator(a, b) {\n if (a === b || a !== a)\n return () => a;\n const type = typeof a;\n if (type !== typeof b || Array.isArray(a) !== Array.isArray(b)) {\n throw new Error('Cannot interpolate values of different type');\n }\n if (Array.isArray(a)) {\n const arr = b.map((bi, i) => {\n return get_interpolator(a[i], bi);\n });\n return t => arr.map(fn => fn(t));\n }\n if (type === 'object') {\n if (!a || !b)\n throw new Error('Object cannot be null');\n if (is_date(a) && is_date(b)) {\n a = a.getTime();\n b = b.getTime();\n const delta = b - a;\n return t => new Date(a + t * delta);\n }\n const keys = Object.keys(b);\n const interpolators = {};\n keys.forEach(key => {\n interpolators[key] = get_interpolator(a[key], b[key]);\n });\n return t => {\n const result = {};\n keys.forEach(key => {\n result[key] = interpolators[key](t);\n });\n return result;\n };\n }\n if (type === 'number') {\n const delta = b - a;\n return t => a + t * delta;\n }\n throw new Error(`Cannot interpolate ${type} values`);\n}\nfunction tweened(value, defaults = {}) {\n const store = writable(value);\n let task;\n let target_value = value;\n function set(new_value, opts) {\n if (value == null) {\n store.set(value = new_value);\n return Promise.resolve();\n }\n target_value = new_value;\n let previous_task = task;\n let started = false;\n let { delay = 0, duration = 400, easing = linear, interpolate = get_interpolator } = assign(assign({}, defaults), opts);\n if (duration === 0) {\n if (previous_task) {\n previous_task.abort();\n previous_task = null;\n }\n store.set(value = target_value);\n return Promise.resolve();\n }\n const start = now() + delay;\n let fn;\n task = loop(now => {\n if (now < start)\n return true;\n if (!started) {\n fn = interpolate(value, new_value);\n if (typeof duration === 'function')\n duration = duration(value, new_value);\n started = true;\n }\n if (previous_task) {\n previous_task.abort();\n previous_task = null;\n }\n const elapsed = now - start;\n if (elapsed > duration) {\n store.set(value = new_value);\n return false;\n }\n // @ts-ignore\n store.set(value = fn(easing(elapsed / duration)));\n return true;\n });\n return task.promise;\n }\n return {\n set,\n update: (fn, opts) => set(fn(target_value, value), opts),\n subscribe: store.subscribe\n };\n}\n\nexport { spring, tweened };\n","import { tweened } from \"svelte/motion\";\n\nconst createStyle = ({\n from = 0,\n to = 1,\n reverse = false,\n duration = 300,\n delay = 0,\n css = {},\n onChange = () => false,\n onEnd = () => false,\n easing\n}) => {\n const animation = tweened(reverse ? to : from, {\n duration,\n delay,\n easing\n });\n animation.subscribe(t => {\n let newStyle = \"\";\n for (let item in css) {\n const {\n input,\n output,\n onComplete = () => false,\n beforeStart = () => false\n } = css[item];\n const inRange = input.filter(i => i <= t).reverse()[0];\n const index = input.indexOf(inRange);\n let val;\n if (!inRange && inRange !== 0) {\n val = output[0];\n beforeStart();\n } else {\n if (input.length - 1 === index) {\n val = output[output.length - 1];\n input[input.length - 1] <= t && onComplete();\n } else {\n const endRange = input[index + 1];\n const percent = ((t - inRange) * 100) / (endRange - inRange);\n const firstItem = output[index];\n const lastItem = output[index + 1];\n if (typeof lastItem === \"object\") {\n val = \"\";\n lastItem.map(i => {\n val += firstItem + ((i - firstItem) * percent) / 100;\n val += \" \";\n });\n } else {\n val = firstItem + ((lastItem - firstItem) * percent) / 100;\n }\n }\n }\n newStyle += `${item}: ${val};`;\n }\n onChange(newStyle);\n if (t === to || t === from) {\n onEnd();\n }\n });\n return {\n play: () => animation.set(to),\n reverse: () => animation.set(from)\n };\n};\n\nexport { createStyle };\n","\n\n\n\n\n \n \n \n \n \n \n\n","\n\n
\n
\n
\n
\n

Datenbank

\n
\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n \n
\n
\n \n
\n
\n\n
\n
\n

WooCommerce

\n
\n
\n\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n\n\n","\n\n\n\n\n","\n\n
\n {#if multiline}\n {\n resizeTextArea();\n dispatch(\"change\", event.target.value);\n }}\n />\n {:else}\n \n event.key === \"Enter\" ? event.preventDefault() : event}\n on:input={(event) => dispatch(\"change\", event.target.value)}\n />\n {/if}\n\n\n{#each Object.entries(quickset) as [target, text]}\n {\n value = target;\n }}\n />\n{/each}\n\n\n","\n\n\n \n
\n {#if multiple && selectedItem}\n {#each selectedItem as tagItem}\n \n
\n {safeLabelFunction(tagItem)}\n \n
\n
\n {/each}\n {/if}\n \n {#if clearable}\n \n {/if}\n
\n \n {#if filteredListItems && filteredListItems.length > 0}\n {#each filteredListItems as listItem, i}\n {#if listItem && (maxItemsToShowInList <= 0 || i < maxItemsToShowInList)}\n onListItemClick(listItem)}\n on:pointerenter={() => {\n highlightIndex = i\n }}\n >\n \n {#if listItem.highlighted}\n {@html listItem.highlighted}\n {:else}\n {@html listItem.label}\n {/if}\n
\n \n {/if}\n {/each}\n\n {#if maxItemsToShowInList > 0 && filteredListItems.length > maxItemsToShowInList}\n {#if moreItemsText}\n
\n ...{filteredListItems.length - maxItemsToShowInList}\n {moreItemsText}\n
\n {/if}\n {/if}\n {:else if loading && loadingText}\n
\n {loadingText}\n
\n {:else if create}\n
\n {createText}\n
\n {:else if noResultsText}\n
\n {noResultsText}\n
\n {/if}\n \n\n\n\n\n\n","\n\n
\n (value = text)}\n labelFunction={(item) => {\n if (typeof item === \"undefined\") return \"\";\n const values = Object.values(item);\n if (values.length === 0) return \"\";\n else if (values.length === 1 && Object.keys(item)[0] === \"attr\")\n return item.attr;\n else if (suggestionFormat) {\n return suggestionFormat(...values);\n } else {\n return item[valueField];\n }\n }}\n beforeChange={(prevSelectedObject, selectedObject) => {\n if (valueField) value = selectedObject[valueField];\n onSelected(selectedObject);\n }}\n inputId={id}\n {noResultsText}\n {disabled}\n {localSorting}\n hideArrow={true}\n {sortByMatchedKeywords}\n {itemSortFunction}\n localSearch={false}\n {localFiltering}\n valueFieldName={valueField}\n selectedItem={{ attr: value }}\n html5autocomplete={false}\n />\n
\n\n\n","export function restrictInputToNumbers(node, enable = true) {\n const onKeyPress = (event) => {\n const keys = [\"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\"];\n if (!keys.includes(event.key)) {\n event.returnValue = false;\n if (event.preventDefault) event.preventDefault();\n }\n };\n\n if (enable) {\n node.addEventListener(\"keypress\", onKeyPress);\n }\n\n return {\n destroy() {\n node.removeEventListener(\"keypress\", onKeyPress);\n },\n };\n}\n","!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs=e()}(this,(function(){\"use strict\";var t=1e3,e=6e4,n=36e5,r=\"millisecond\",i=\"second\",s=\"minute\",u=\"hour\",a=\"day\",o=\"week\",f=\"month\",h=\"quarter\",c=\"year\",d=\"date\",$=\"Invalid Date\",l=/^(\\d{4})[-/]?(\\d{1,2})?[-/]?(\\d{0,2})[Tt\\s]*(\\d{1,2})?:?(\\d{1,2})?:?(\\d{1,2})?[.:]?(\\d+)?$/,y=/\\[([^\\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,M={name:\"en\",weekdays:\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),months:\"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\")},m=function(t,e,n){var r=String(t);return!r||r.length>=e?t:\"\"+Array(e+1-r.length).join(n)+t},g={s:m,z:function(t){var e=-t.utcOffset(),n=Math.abs(e),r=Math.floor(n/60),i=n%60;return(e<=0?\"+\":\"-\")+m(r,2,\"0\")+\":\"+m(i,2,\"0\")},m:function t(e,n){if(e.date()0&&(n=n[0]);t=n[0];for(var i=1;i {\n const isInRange = date.isSameOrAfter(start, 'day') && date.isSameOrBefore(end, 'day')\n return {\n isInRange,\n selectable: isInRange && (!selectableCallback || selectableCallback(date.toDate())),\n isToday: date.isSame(dayjs(), 'day')\n }\n }\n}\n\nexport {\n buildDaySelectionValidator\n}\n","import { dayjs } from './date-utils'\n\nfunction moveDateWithinAllowedRange (date, config, isStart) {\n const isOutsideRange = (\n date.valueOf() < config.start.valueOf() ||\n date.valueOf() > config.end.valueOf()\n )\n\n if (isOutsideRange) {\n console.warn('Provided date', date.format(), 'is outside specified start-and-end range', config.start.format(), 'to', config.end.format())\n return isStart ? config.start : config.end\n }\n\n return date\n}\n\nfunction sanitizeInitialValue (value, config) {\n let isDateChosen = false\n let chosen\n\n if (config.isRangePicker) {\n const [ from, to ] = value || []\n isDateChosen = Boolean(from).valueOf() && Boolean(to).valueOf()\n chosen = isDateChosen ? value.map(dayjs) : [ dayjs.max(dayjs(), config.start), dayjs.min(dayjs().add(1, 'month'), config.end) ]\n } else {\n isDateChosen = Boolean(value).valueOf()\n chosen = [ isDateChosen ? dayjs(value) : dayjs.max(dayjs(), config.start) ]\n }\n\n const [ from, to ] = chosen\n\n return {\n isDateChosen,\n chosen: [\n moveDateWithinAllowedRange(from, config, true),\n ...config.isRangePicker ? [ moveDateWithinAllowedRange(to, config, false) ] : []\n ]\n }\n}\n\nexport {\n sanitizeInitialValue\n}\n","import dayjs from 'dayjs'\nimport localeData from 'dayjs/plugin/localeData'\nimport minMax from 'dayjs/plugin/minMax'\nimport isSameOrBefore from 'dayjs/plugin/isSameOrBefore'\nimport isSameOrAfter from 'dayjs/plugin/isSameOrAfter'\nimport de from 'dayjs/locale/de'\n\ndayjs.extend(localeData)\ndayjs.extend(minMax)\ndayjs.extend(isSameOrBefore)\ndayjs.extend(isSameOrAfter)\ndayjs.locale(de)\n\nexport {\n dayjs\n}\n","import { writable } from 'svelte/store'\nimport { createFormatter } from './formatter.js'\nimport { getMonths } from './calendar.js'\nimport { sanitizeInitialValue } from './sanitization.js'\nimport { dayjs } from './date-utils.js'\nimport { ensureFutureMonth } from './date-manipulation.js'\n\nconst contextKey = {}\n\nfunction setup (given, config) {\n const today = dayjs().startOf('day')\n\n const { isDateChosen, chosen: [ preSelectedStart, preSelectedEnd ] } = sanitizeInitialValue(given, config)\n const selectedStartDate = writable(preSelectedStart)\n const selectedEndDate = writable(preSelectedEnd)\n const { formatter } = createFormatter(selectedStartDate, selectedEndDate, config)\n const component = writable('date-view')\n\n const leftDate = preSelectedStart.startOf('month')\n const rightDate = config.isRangePicker ? ensureFutureMonth(preSelectedStart, preSelectedEnd).startOf('month') : null\n\n return {\n months: getMonths(config),\n component,\n today,\n selectedStartDate,\n selectedEndDate,\n leftCalendarDate: writable(leftDate),\n rightCalendarDate: writable(rightDate),\n config,\n shouldShakeDate: writable(false),\n isOpen: writable(false),\n isClosing: writable(false),\n highlighted: writable(today),\n formatter,\n isDateChosen: writable(isDateChosen),\n resetView: () => {\n component.set('date-view')\n },\n isSelectingFirstDate: writable(true)\n }\n}\n\nexport {\n contextKey,\n setup\n}\n","import { derived } from 'svelte/store'\n\nfunction createFormatter (selectedStartDate, selectedEndDate, config) {\n const formatter = derived([ selectedStartDate, selectedEndDate ], ([ $selectedStartDate, $selectedEndDate ]) => {\n const formattedSelected = $selectedStartDate && $selectedStartDate.format(config.format)\n const formattedSelectedEnd = config.isRangePicker && $selectedEndDate && $selectedEndDate.format(config.format)\n\n return {\n formattedSelected,\n formattedSelectedEnd,\n formattedCombined: config.isRangePicker ? `${formattedSelected} - ${formattedSelectedEnd}` : formattedSelected\n }\n })\n\n return { formatter }\n}\n\nexport {\n createFormatter\n}\n","function sizes (w) {\n const contentWidth = [ ...w.document.body.children ].reduce((a, el) => Math.max(\n a, el.getBoundingClientRect().right), 0\n ) - w.document.body.getBoundingClientRect().x\n\n return {\n pageWidth: Math.min(w.document.body.scrollWidth, contentWidth),\n pageHeight: w.document.body.scrollHeight,\n viewportHeight: w.innerHeight,\n viewportWidth: w.innerWidth\n }\n}\n\nconst dimensions = {\n page: {\n padding: 6,\n deadzone: 80\n },\n content: {\n medium: {\n single: {\n height: 410,\n width: 340\n },\n range: {\n height: 410,\n width: 680\n }\n },\n small: {\n single: {\n height: 410,\n width: 340\n },\n range: {\n height: 786,\n width: 340\n }\n }\n }\n}\n\nfunction getPosition (w, e, config) {\n const { isRangePicker } = config\n const { pageWidth, viewportHeight, viewportWidth } = sizes(w)\n\n const display = pageWidth < 480 ? 'small' : 'medium'\n const mode = isRangePicker ? 'range' : 'single'\n const { padding, deadzone } = dimensions.page\n const { width, height } = dimensions.content[display][mode]\n\n if (viewportHeight < (height + padding + deadzone) || viewportWidth < (width + padding)) {\n return {\n fullscreen: true,\n top: 0,\n left: 0\n }\n }\n\n let left = Math.max(padding, e.pageX - (width / 2))\n\n if ((left + width) > pageWidth) {\n left = (pageWidth - width) - padding\n }\n\n let top = Math.max(padding, e.pageY - (height / 2))\n\n const willExceedViewableArea = (top + height) > viewportHeight\n if (willExceedViewableArea) {\n top = viewportHeight - height - padding\n }\n\n return { top, left }\n}\n\nexport {\n getPosition\n}\n","\nconst once = (el, evt, cb) => {\n if (!el) { return }\n function handler () {\n cb.apply(this, arguments)\n el.removeEventListener(evt, handler)\n }\n el.addEventListener(evt, handler)\n}\n\nexport {\n once\n}\n","\n\n\n
\n
\n \n \n
\n
\n
\n
\n \n
\n
\n
\n
\n\n\n","'use strict'\n\nclass CalendarStyle {\n constructor (overrides = {}) {\n this.style = ''\n this.buttonBackgroundColor = '#fff'\n this.buttonBorderColor = '#eee'\n this.buttonTextColor = '#333'\n this.buttonWidth = '300px'\n this.highlightColor = '#f7901e'\n this.passiveHighlightColor = '#FCD9B1'\n\n this.dayBackgroundColor = 'none'\n this.dayBackgroundColorIsNight = 'none'\n this.dayTextColor = '#4a4a4a'\n this.dayTextColorIsNight = '#4a4a4a'\n this.dayTextColorInRange = 'white'\n this.dayHighlightedBackgroundColor = '#efefef'\n this.dayHighlightedTextColor = '#4a4a4a'\n\n this.currentDayTextColor = '#000'\n this.selectedDayTextColor = 'white'\n\n this.timeNightModeTextColor = 'white'\n this.timeNightModeBackgroundColor = '#808080'\n this.timeDayModeTextColor = 'white'\n this.timeDayModeBackgroundColor = 'white'\n this.timeSelectedTextColor = '#3d4548'\n this.timeInputTextColor = '#3d4548'\n this.timeConfirmButtonColor = '#2196F3'\n this.timeConfirmButtonTextColor = 'white'\n\n this.toolbarBorderColor = '#888'\n\n this.contentBackground = 'white'\n\n this.monthYearTextColor = '#3d4548'\n this.legendTextColor = '#4a4a4a'\n\n this.datepickerWidth = 'auto'\n\n Object.entries(overrides).forEach(([ prop, value ]) => {\n this[prop] = value\n })\n }\n\n toWrapperStyle () {\n return `\n --button-background-color: ${this.buttonBackgroundColor};\n --button-border-color: ${this.buttonBorderColor};\n --button-text-color: ${this.buttonTextColor};\n --button-width: ${this.buttonWidth};\n --highlight-color: ${this.highlightColor};\n --passive-highlight-color: ${this.passiveHighlightColor};\n\n --day-background-color: ${this.dayBackgroundColor};\n --day-background-color-is-night: ${this.dayBackgroundColorIsNight};\n --day-text-color: ${this.dayTextColor};\n --day-text-color-in-range: ${this.dayTextColorInRange};\n --day-text-color-is-night: ${this.dayTextColorIsNight};\n --day-highlighted-background-color: ${this.dayHighlightedBackgroundColor};\n --day-highlighted-text-color: ${this.dayHighlightedTextColor};\n\n --current-day-text-color: ${this.currentDayTextColor};\n --selected-day-text-color: ${this.selectedDayTextColor};\n\n --time-night-mode-text-color: ${this.timeNightModeTextColor};\n --time-night-mode-background-color: ${this.timeNightModeBackgroundColor};\n --time-day-mode-text-color: ${this.timeDayModeTextColor};\n --time-day-mode-background-color: ${this.timeDayModeBackgroundColor};\n\n --time-selected-text-color: ${this.timeSelectedTextColor};\n --time-input-text-color: ${this.timeInputTextColor};\n --time-confirm-button-text-color: ${this.timeConfirmButtonTextColor};\n --time-confirm-button-color: ${this.timeConfirmButtonColor};\n\n --toolbar-border-color: ${this.toolbarBorderColor};\n\n --content-background: ${this.contentBackground};\n\n --month-year-text-color: ${this.monthYearTextColor};\n --legend-text-color: ${this.legendTextColor};\n --datepicker-width: ${this.datepickerWidth};\n\n ${this.style}\n `\n }\n}\n\nexport {\n CalendarStyle\n}\n","export function isDateBetweenSelected (a, b, c) {\n const start = a.startOf('day').toDate()\n const stop = b.startOf('day').toDate()\n const day = c.startOf('day').toDate()\n return day > start && day < stop\n}\n","\n
\n {#each days as day}\n
\n \n
\n {/each}\n
\n\n\n","\n\n
\n
\n
\n
\n {#each dayjs.weekdaysShort(true) as day}\n {day}\n {/each}\n
\n
\n {#each $monthView.visibleMonth.weeks as week (week.id)}\n \n {/each}\n
\n
\n\n\n","\n\n
\n
\n \n \n \n
\n
\n {#each availableMonths as monthDefinition, index}\n \n {/each}\n
\n
\n\n\n","let shakeHighlightTimeout\n\nfunction getDay (months, m, d, y) {\n const theMonth = months.find(aMonth => aMonth.month === m && aMonth.year === y)\n if (!theMonth) {\n return null\n }\n\n for (let i = 0; i < theMonth.weeks.length; i += 1) {\n for (let j = 0; j < theMonth.weeks[i].days.length; j += 1) {\n const aDay = theMonth.weeks[i].days[j]\n if (aDay.month === m && aDay.day === d && aDay.year === y) return aDay\n }\n }\n return null\n}\n\nfunction checkIfVisibleDateIsSelectable (months, date) {\n const proposedDay = getDay(\n months,\n date.month(),\n date.date(),\n date.year()\n )\n return proposedDay && proposedDay.selectable\n}\n\nfunction shakeDate (shouldShakeDate, date) {\n clearTimeout(shakeHighlightTimeout)\n shouldShakeDate.set(date)\n shakeHighlightTimeout = setTimeout(() => {\n shouldShakeDate.set(false)\n }, 700)\n}\n\nexport {\n checkIfVisibleDateIsSelectable,\n shakeDate\n}\n","
\n \n registerSelection(e.detail.date)} />\n
\n\n\n\n","'use strict'\n\nimport { dayjs } from './date-utils'\nimport DateView from '../view/date-view/DateView.svelte'\nimport { derived } from 'svelte/store'\n\nfunction createMonthView (months, displayedDate) {\n return derived([ displayedDate ], ([ $displayedDate ]) => {\n let monthIndex = 0\n\n const month = $displayedDate.month()\n const year = $displayedDate.year()\n for (let i = 0; i < months.length; i += 1) {\n if (months[i].month === month && months[i].year === year) {\n monthIndex = i\n }\n }\n\n return {\n monthIndex,\n visibleMonth: months[monthIndex]\n }\n })\n}\n\nfunction createViewContext (isStart, mainContext) {\n const { config, months, leftCalendarDate, rightCalendarDate, selectedStartDate, selectedEndDate } = mainContext\n const [ date, displayedDate ] = isStart ? [ selectedStartDate, leftCalendarDate ] : [ selectedEndDate, rightCalendarDate ]\n const isDaytime = derived(date, $date => {\n if (!$date) { return true }\n const [ h ] = dayjs($date).format('HH:mm').split(':').map(d => parseInt(d))\n return h > config.morning && h < config.night\n })\n\n return {\n isStart,\n date,\n view: DateView,\n isDaytime,\n displayedDate,\n monthView: createMonthView(months, displayedDate)\n }\n}\n\nexport {\n createViewContext\n}\n","
\n \n
\n\n\n\n","\n \n\n\n","import { get } from 'svelte/store'\n\nfunction timeInput (node, store) {\n node.addEventListener('keydown', types)\n node.addEventListener('focus', resetTime)\n node.addEventListener('blur', attemptValuePersist)\n\n let time\n\n const unsubscribe = store.subscribe(given => {\n time = given.split('')\n syncInput()\n })\n\n function syncInput () {\n node.value = time.join('')\n }\n\n function resetTime () {\n time = []\n syncInput()\n }\n\n function persistTime () {\n store.set(time.join(''))\n syncInput()\n }\n\n function attemptValuePersist () {\n if (time.digits === 5) {\n persistTime()\n return\n }\n\n time = get(store).split('')\n syncInput()\n }\n\n function types (e) {\n e.preventDefault()\n const k = e.which\n\n if (k >= 48 && k <= 57) {\n addDigit(k)\n }\n\n if (k === 8) {\n deleteDigit()\n }\n }\n\n function deleteDigit () {\n time.pop()\n time.length === 3 && time.pop()\n syncInput()\n }\n\n function isInvalidDigit (digit) {\n const tooManyDigits = time.length > 4\n const invalidFirstDigit = time.length === 0 && ![ 0, 1, 2 ].includes(digit)\n const invalidSecondDigit = time.length === 1 && time[0] === 2 && digit > 3\n const invalidThirdDigit = time.length === 3 && digit > 5\n return tooManyDigits || invalidFirstDigit || invalidSecondDigit || invalidThirdDigit\n }\n\n function addDigit (k) {\n const digit = k - 48\n if (isInvalidDigit(digit)) { return }\n\n time.length === 2 && time.push(':')\n time.push(digit)\n\n if (time.length === 5) {\n persistTime()\n }\n\n syncInput()\n }\n\n return {\n destroy () {\n unsubscribe()\n node.removeEventListener('keydown', types)\n node.removeEventListener('focus', resetTime)\n node.removeEventListener('blur', attemptValuePersist)\n }\n }\n}\n\nexport {\n timeInput\n}\n","import { writable } from 'svelte/store'\nimport { dayjs } from '../../lib/date-utils.js'\n\nfunction format (h, m) {\n return [\n String(h).padStart(2, '0'),\n String(m).padStart(2, '0')\n ].join(':')\n}\n\nfunction createStore (date, config) {\n const time = writable(dayjs(date).format('HH:mm'))\n\n function increment (segment) {\n time.update(t => {\n let [ h, m ] = t.split(':')\n if (segment === 'hour' && h < 23) { ++h }\n if (segment === 'minute' && m < 59) {\n m = Math.min(59, parseInt(m) + config.minuteStep)\n }\n return format(h, m)\n })\n }\n\n function decrement (segment) {\n time.update(t => {\n let [ h, m ] = t.split(':')\n if (segment === 'hour' && h > 0) { --h }\n if (segment === 'minute' && m > 0) {\n m = Math.max(0, parseInt(m) - config.minuteStep)\n }\n return format(h, m)\n })\n }\n\n function set (t) {\n time.set(t)\n }\n return {\n increment,\n decrement,\n time,\n set\n }\n}\n\nexport {\n createStore\n}\n","
\n
\n increment('hour')} />\n increment('minute')} />\n
\n \n
\n decrement('hour')} />\n decrement('minute')} />\n
\n
\n\n\n\n","\n\n
\n {dayjs($date).format(config.format)}\n \n
\n\n","
\n \n
\n\n\n\n","\n\n\n\n\n dispatch('close')}>\n
\n \n {#if !trigger}\n \n {/if}\n \n
\n
\n
\n \n {#if config.isRangePicker}\n \n {/if}\n
\n \n
\n \n\n","\n\n{#if visible}\n
\n \n \n \n
\n{/if}\n\n\n","\n\n{#if disabled}\n \n{:else}\n {\n const date = event.detail.date;\n const newTimeMillis =\n date.getTime() - getTimeZoneOffsetMs(date.getTime());\n if (millisAtStartOfDay(value) !== millisAtStartOfDay(newTimeMillis)) {\n value = millisAtStartOfDay(newTimeMillis);\n dispatch(\"change\", date);\n }\n if (\n showAlertOnPastDateSelection &&\n millisAtStartOfDay(newTimeMillis) < millisAtStartOfToday()\n ) {\n alert(\n \"Achtung: Dieses Datum liegt in der Vergangenheit, bitte prüfe ob es korrekt ist.\"\n );\n }\n }}\n format={\"#{d}.#{m}.#{Y}\"}\n start={new Date(2018, 1, 1)}\n end={inTwoMonths()}\n continueText={\"Speichern\"}\n >\n \n {\n value = 0;\n dispatch(\"change\", undefined);\n }}\n visible={value !== 0}\n />\n \n{/if}\n\n{#each Object.entries(quickset) as [days, text]}\n addDays(parseInt(days))} />\n{/each}\n\n\n","\n\n {\n if (onChange) {\n onChange(event.detail);\n }\n }}\n {...$$props}\n/>\n\n\n","import TextInput from \"../../components/Input/TextInput.svelte\";\nimport AutocompleteInput from \"../../components/Input/AutocompleteInput.svelte\";\nimport DateInput from \"../../components/Input/DateInput.svelte\";\nimport SelectInput from \"../../components/Input/SelectInput.svelte\";\nimport Checkbox from \"../../components/Input/Checkbox.svelte\";\nimport Database from \"../../database/ENV_DATABASE\";\nimport ColorDefs from \"../../components/Input/ColorDefs\";\nimport onSave from \"./onSave\";\nimport onDelete from \"./onDelete\";\nimport initialValues from \"./initialValues\";\n\nexport default {\n title: (context) => `Nutzer:in ${context.createNew ? \"anlegen\" : \"bearbeiten\"}`,\n initialValues,\n footerButtons: (context) => [\n {\n text: \"Abbrechen\",\n onClick: context.closePopup,\n },\n {\n text: \"Löschen\",\n onClick: () => onDelete(context.doc, context.closePopup),\n color: \"red\",\n hidden: context.createNew,\n loadingText: \"Nutzer:in wird gelöscht\",\n },\n {\n text: \"Speichern\",\n onClick: () => onSave(context.doc, context.closePopup, context.createNew),\n loadingText: \"Nutzer:in wird gespeichert\",\n },\n ],\n inputs: [\n {\n id: \"id\",\n label: \"Nutzernummer\",\n group: \"ID und Name\",\n component: TextInput,\n props: {\n onlyNumbers: true,\n },\n },\n {\n id: \"firstname\",\n label: \"Vorname\",\n group: \"ID und Name\",\n component: TextInput,\n },\n {\n id: \"lastname\",\n label: \"Nachname\",\n group: \"ID und Name\",\n component: TextInput,\n },\n {\n id: \"street\",\n label: \"Straße\",\n group: \"Adresse\",\n component: AutocompleteInput,\n props: {\n searchFunction: (context) => (searchTerm) =>\n Database.fetchUniqueCustomerFieldValues(\"street\", searchTerm),\n noResultsText: \"Straße noch nicht in Datenbank\",\n valueField: \"street\",\n },\n },\n {\n id: \"house_number\",\n label: \"Hausnummer\",\n group: \"Adresse\",\n component: TextInput,\n },\n {\n id: \"postal_code\",\n label: \"Postleitzahl\",\n group: \"Adresse\",\n component: AutocompleteInput,\n props: {\n onlyNumbers: true,\n searchFunction: (context) => (searchTerm) =>\n Database.fetchUniqueCustomerFieldValues(\n \"postal_code\",\n searchTerm,\n true\n ),\n valueField: \"postal_code\",\n\n noResultsText: \"PLZ noch nicht in Datenbank\",\n },\n },\n {\n id: \"city\",\n label: \"Stadt\",\n group: \"Adresse\",\n component: AutocompleteInput,\n props: {\n searchFunction: (context) => (searchTerm) =>\n Database.fetchUniqueCustomerFieldValues(\"city\", searchTerm),\n valueField: \"city\",\n noResultsText: \"Stadt noch nicht in Datenbank\",\n },\n },\n {\n id: \"email\",\n label: \"E-Mail\",\n group: \"Kontakt\",\n component: TextInput,\n },\n {\n id: \"telephone_number\",\n label: \"Telefonnummer\",\n group: \"Kontakt\",\n component: TextInput,\n },\n {\n id: \"subscribed_to_newsletter\",\n label: \"Newsletter\",\n group: \"Kontakt\",\n component: Checkbox,\n },\n {\n id: \"registration_date\",\n label: \"Beitritt\",\n group: \"Mitgliedschaft\",\n component: DateInput,\n props: {\n container: (context) => context.container,\n },\n },\n {\n id: \"renewed_on\",\n label: \"Verlängert am\",\n group: \"Mitgliedschaft\",\n component: DateInput,\n hidden: (context) => context.createNew,\n props: {\n quickset: { 0: \"Heute\" },\n container: (context) => context.container,\n },\n },\n {\n id: \"heard\",\n label: \"Aufmerksam geworden\",\n group: \"Mitgliedschaft\",\n component: SelectInput,\n props: {\n selectionOptions: [\n \"Internet\",\n \"Freunde & Bekannte\",\n \"Zeitung / Medien\",\n \"Nachbarschaft\",\n ],\n isCreatable: true,\n isMulti: true,\n isClearable: true,\n },\n },\n {\n id: \"remark\",\n label: \"Bemerkung\",\n group: \"Sonstiges\",\n component: TextInput,\n },\n {\n id: \"highlight\",\n label: \"Markieren\",\n group: \"Sonstiges\",\n component: SelectInput,\n props: {\n selectionOptions: [\n { value: \"\", label: \"Nicht markieren\" },\n {\n value: ColorDefs.HIGHLIGHT_GREEN,\n label:\n \"
Grün\",\n },\n {\n value: ColorDefs.HIGHLIGHT_BLUE,\n label:\n \" Blau\",\n },\n {\n value: ColorDefs.HIGHLIGHT_YELLOW,\n label:\n \" Gelb\",\n },\n {\n value: ColorDefs.HIGHLIGHT_RED,\n label:\n \" Rot\",\n },\n ],\n isClearable: true,\n isMulti: false,\n },\n },\n ],\n};\n","import { millisAtStartOfToday } from \"../../utils/utils\";\nimport Database from \"../../database/ENV_DATABASE\";\n\n// initial values for new customers\n\nexport default {\n id: () => Database.nextUnusedId(\"customer\"),\n registration_date: () => millisAtStartOfToday(),\n type: () => \"customer\",\n lastname: () => \"\",\n firstname: () => \"\",\n renewed_on: () => 0,\n remark: () => \"\",\n subscribed_to_newsletter: () => false,\n email: () => \"\",\n street: () => \"\",\n house_number: () => \"\",\n postal_code: () => \"\",\n city: () => \"\",\n telephone_number: () => \"\",\n heard: () => \"\",\n highlight: () => \"\",\n};\n","import Database from \"../../database/ENV_DATABASE\";\nimport { notifier } from \"@beyonk/svelte-notifications\";\nimport Logger from \"js-logger\";\n\nexport default (customer, closePopup) => {\n if (confirm(\"Soll diese/r Nutzer:in wirklich gelöscht werden?\")) {\n return Database.removeDoc(customer)\n .then(() => notifier.success(\"Nutzer:in gelöscht!\"))\n .then(closePopup)\n .catch((error) => {\n Logger.error(error);\n notifier.danger(\"Nutzer:in konnte nicht gelöscht werden!\", {\n persist: true,\n });\n });\n }\n};\n","import Database from \"../../database/ENV_DATABASE\";\nimport { notifier } from \"@beyonk/svelte-notifications\";\nimport Logger from \"js-logger\";\n\nexport default async (customer, closePopup, createNew) => {\n if (\n await Database.fetchByIdAndType(customer.id, \"customer\").then((results) => {\n if (createNew) {\n return results.length > 0;\n } else {\n return results.some((result) => result._id !== customer._id);\n }\n })\n ) {\n notifier.danger(\"Ein/e Nutzer:in mit dieser Nummer existiert bereits!\", 6000);\n return;\n }\n\n await (createNew\n ? Database.createDoc(customer)\n : Database.updateDoc(customer)\n )\n .then((result) => notifier.success(\"Nutzer:in gespeichert!\"))\n .then(closePopup)\n .catch((error) => {\n notifier.danger(\"Nutzer:in konnte nicht gespeichert werden!\", {\n persist: true,\n });\n Logger.error(error);\n });\n};\n","const ONE_YEAR_AGO_MILLIS = new Date().getTime() - 1000 * 60 * 60 * 24 * 365;\n\nexport default {\n filters: {\n \"Newsletter: Ja\": {\n required_fields: [\"subscribed_to_newsletter\"],\n selectors: {\n subscribed_to_newsletter: {\n $eq: true,\n },\n },\n },\n \"Newsletter: Nein\": {\n required_fields: [\"subscribed_to_newsletter\"],\n selectors: {\n subscribed_to_newsletter: {\n $eq: false,\n },\n },\n },\n \"Beitritt vor > 1 Jahr\": {\n required_fields: [\"registration_date\"],\n selectors: {\n registration_date: {\n $lt: ONE_YEAR_AGO_MILLIS,\n },\n },\n },\n \"Beitritt vor < 1 Jahr\": {\n required_fields: [\"registration_date\"],\n selectors: {\n registration_date: {\n $gt: ONE_YEAR_AGO_MILLIS,\n },\n },\n },\n \"Verlängert vor > 1 Jahr\": {\n required_fields: [\"renewed_on\"],\n selectors: {\n renewed_on: {\n $lt: ONE_YEAR_AGO_MILLIS,\n },\n },\n },\n \"Verlängert vor < 1 Jahr\": {\n required_fields: [\"renewed_on\"],\n selectors: {\n renewed_on: {\n $gt: ONE_YEAR_AGO_MILLIS,\n },\n },\n },\n },\n activeByDefault: [],\n};\n","import { get } from \"svelte/store\";\nimport { settingsStore } from \"../utils/settingsStore\";\nimport Logger from \"js-logger\";\n\nconst WC_CATEGORIES = {\n Küche: {\n id: 73,\n name: \"Küche\",\n slug: \"kueche\",\n },\n Garten: {\n id: 28,\n name: \"Garten\",\n slug: \"garten\",\n },\n Freizeit: {\n id: 32,\n name: \"Freizeit\",\n slug: \"freizeit\",\n },\n Haushalt: {\n id: 26,\n name: \"Haushalt\",\n slug: \"haushalt\",\n },\n Kinder: {\n id: 31,\n name: \"Kinder\",\n slug: \"kinder\",\n },\n Heimwerker: {\n id: 29,\n name: \"Heimwerker\",\n slug: \"heimwerker\",\n },\n};\n\nclass WoocommerceClient {\n _settings() {\n return get(settingsStore);\n }\n\n _productsUrl() {\n return `${this._settings().wcUrl}/products?consumer_key=${\n this._settings().wcKey\n }&consumer_secret=${this._settings().wcSecret}`;\n }\n\n _productUrl(productId) {\n return `${this._settings().wcUrl}/products/${productId}?consumer_key=${\n this._settings().wcKey\n }&consumer_secret=${this._settings().wcSecret}`;\n }\n\n _translateItemAttributesForWc(item) {\n const translateStatus = (status) =>\n status === \"reserved\" ? \"outofstock\" : status;\n\n const hasSynonyms = item.synonyms && item.synonyms.trim().length > 0;\n const isRentedAndHasReturnDateInFuture =\n item.expected_return_date && item.status == \"outofstock\" ? true : false;\n\n return {\n name: item.name,\n sku: String(item.id),\n stock_status: translateStatus(item.status),\n attributes: [\n {\n id: 1,\n name: \"Pfand\",\n position: 0,\n visible: true,\n variation: false,\n options: [(item.deposit ?? \"0\") + \" €\"],\n },\n ],\n categories: item.category\n .split(\", \")\n .filter((category) => category in WC_CATEGORIES)\n .map((category) => WC_CATEGORIES[category]),\n // line break after closing div below is intended\n short_description: `
Art.Nr.: ${item.id}
\n ${\n item.description ?? \"\"\n }
${\n hasSynonyms ? `(Synonyme: ${item.synonyms})` : \"\"\n }`,\n meta_data: [\n {\n key: \"marke\",\n value: item.brand ?? \"-\",\n },\n {\n key: \"typenbezeichnung\",\n value: item.itype ?? \"-\",\n },\n {\n key: \"anzahl_teile\",\n value: item.parts ?? \"-\",\n },\n {\n key: \"zuruckerwartet\",\n value: isRentedAndHasReturnDateInFuture\n ? item.expected_return_date\n : \"\",\n },\n ],\n };\n }\n\n async fetchWithRetry(url, body = {}, retries = 0) {\n try {\n let response = await fetch(url, body);\n if (response.ok) {\n return response;\n } else {\n throw new Error(\n `Failed to fetch '${url}', response code ${response.status}`\n );\n }\n } catch (e) {\n if (retries < 3) {\n Logger.warn(e);\n return await this.fetchWithRetry(url, body, retries + 1);\n } else {\n throw e;\n }\n }\n }\n\n async fetchItem(wcItemId) {\n var response = await this.fetchWithRetry(this._productUrl(wcItemId));\n response = await response.json();\n return response;\n }\n\n async updateItem(item) {\n await this.fetchWithRetry(this._productUrl(item.wc_id), {\n method: \"PUT\",\n headers: {\n \"Content-type\": \"application/json\",\n },\n body: JSON.stringify(this._translateItemAttributesForWc(item)),\n });\n }\n\n async createItem(item) {\n var response = await this.fetchWithRetry(this._productsUrl(), {\n method: \"POST\",\n headers: {\n \"Content-type\": \"application/json\",\n },\n body: JSON.stringify(this._translateItemAttributesForWc(item)),\n });\n return await response.json();\n }\n\n async deleteItem(item) {\n await this.fetchWithRetry(this._productUrl(item.wc_id), {\n method: \"DELETE\",\n });\n }\n}\n\nexport default new WoocommerceClient();\n","const setNumericValuesDefault0 = (doc, columns) => {\n Object.keys(doc).forEach((key) => {\n const colForKey = columns.find((col) => col.key === key);\n if (colForKey && colForKey.numeric && doc[key] === \"\") {\n doc[key] = 0; // default value for numbers\n }\n });\n};\n\nexport { setNumericValuesDefault0 };\n","import TextInput from \"../../components/Input/TextInput.svelte\";\nimport DateInput from \"../../components/Input/DateInput.svelte\";\nimport SelectInput from \"../../components/Input/SelectInput.svelte\";\nimport Checkbox from \"../../components/Input/Checkbox.svelte\";\nimport ColorDefs from \"../../components/Input/ColorDefs\";\nimport onCreate from \"./onCreate\";\nimport onDelete from \"./onDelete\";\nimport onUpdate from \"./onUpdate\";\nimport onRestore from \"./onRestore\";\nimport initialValues from \"./initialValues\";\n\nconst isDeleted = (context) => context.doc.status === \"deleted\";\n\nexport default {\n title: (context) =>\n `Gegenstand ${context.createNew ? \"anlegen\" : \"bearbeiten\"}`,\n initialValues,\n height: \"20rem\",\n footerButtons: (context) => [\n {\n text: \"Abbrechen\",\n onClick: context.closePopup,\n },\n {\n text: \"Löschen\",\n onClick: () => onDelete(context.doc, context.closePopup),\n color: \"red\",\n hidden: context.doc.status === \"deleted\" || context.createNew,\n loadingText: \"Gegenstand wird gelöscht\",\n },\n {\n text: \"Wiederherstellen\",\n onClick: () => onRestore(context.doc, context.closePopup),\n color: \"green\",\n hidden: context.doc.status !== \"deleted\",\n loadingText: \"Gegenstand wird wiederhergestellt\",\n },\n {\n text: \"Speichern\",\n onClick: context.createNew\n ? () => onCreate(context.doc, context.closePopup)\n : () => onUpdate(context.doc, context.closePopup),\n loadingText: \"Gegenstand wird gespeichert\",\n },\n ],\n inputs: [\n {\n id: \"id\",\n label: \"Nr\",\n group: \"Bezeichnung\",\n component: TextInput,\n props: {\n onlyNumbers: true,\n disabled: isDeleted,\n },\n },\n {\n id: \"name\",\n label: \"Name\",\n group: \"Bezeichnung\",\n component: TextInput,\n props: {\n disabled: isDeleted,\n },\n },\n {\n id: \"brand\",\n label: \"Marke\",\n group: \"Bezeichnung\",\n component: TextInput,\n props: {\n disabled: isDeleted,\n },\n },\n {\n id: \"itype\",\n label: \"Typbezeichnung\",\n group: \"Bezeichnung\",\n component: TextInput,\n props: {\n disabled: isDeleted,\n },\n },\n {\n id: \"category\",\n label: \"Kategorie\",\n group: \"Eigenschaften\",\n component: SelectInput,\n props: {\n disabled: isDeleted,\n selectionOptions: [\n \"Küche\",\n \"Haushalt\",\n \"Garten\",\n \"Kinder\",\n \"Freizeit\",\n \"Heimwerker\",\n ],\n isCreatable: false,\n isMulti: true,\n isClearable: true,\n },\n },\n {\n id: \"deposit\",\n label: \"Pfand\",\n group: \"Eigenschaften\",\n component: TextInput,\n props: {\n onlyNumbers: true,\n disabled: isDeleted,\n },\n },\n {\n id: \"added\",\n label: \"Erfasst am\",\n group: \"Eigenschaften\",\n component: DateInput,\n props: {\n disabled: isDeleted,\n container: (context) => context.container,\n },\n },\n {\n id: \"description\",\n label: \"Beschreibung\",\n group: \"Beschreibung\",\n component: TextInput,\n props: {\n multiline: true,\n disabled: isDeleted,\n },\n },\n {\n id: \"synonyms\",\n label: \"Synonyme\",\n group: \"Beschreibung\",\n component: SelectInput,\n props: {\n isCreatable: true,\n isMulti: true,\n isClearable: true,\n placeholder: \"Synonyme anlegen\",\n disabled: isDeleted,\n },\n },\n\n {\n id: \"parts\",\n label: \"Anzahl Teile\",\n group: \"Eigenschaften\",\n component: TextInput,\n props: {\n disabled: isDeleted,\n },\n },\n\n {\n id: \"image\",\n label: \"Bild\",\n group: \"Bild\",\n component: TextInput,\n props: {\n disabled: isDeleted,\n },\n },\n\n {\n id: \"status\",\n label: \"Status\",\n group: \"Status\",\n component: SelectInput,\n props: {\n selectionOptions: [\n { value: \"instock\", label: \"verfügbar\" },\n { value: \"outofstock\", label: \"verliehen\" },\n { value: \"onbackorder\", label: \"nicht verleihbar\" },\n { value: \"reserved\", label: \"reserviert\" },\n ],\n isCreatable: false,\n isMulti: false,\n isClearable: false,\n disabled: isDeleted,\n },\n },\n {\n id: \"exists_more_than_once\",\n label: \"Mehrmals vorhanden\",\n group: \"Status\",\n component: Checkbox,\n props: {\n disabled: isDeleted,\n },\n },\n {\n id: \"highlight\",\n label: \"Markieren\",\n group: \"Status\",\n component: SelectInput,\n props: {\n selectionOptions: [\n { value: \"\", label: \"Nicht markieren\" },\n {\n value: ColorDefs.HIGHLIGHT_GREEN,\n label:\n \" Grün\",\n },\n {\n value: ColorDefs.HIGHLIGHT_BLUE,\n label:\n \" Blau\",\n },\n {\n value: ColorDefs.HIGHLIGHT_YELLOW,\n label:\n \" Gelb\",\n },\n {\n value: ColorDefs.HIGHLIGHT_RED,\n label:\n \" Rot\",\n },\n ],\n isClearable: true,\n isMulti: false,\n disabled: isDeleted,\n },\n },\n {\n id: \"internal_note\",\n label: \"Interne Notiz\",\n group: \"Status\",\n component: TextInput,\n props: {\n multiline: true,\n },\n },\n ],\n};\n","import { millisAtStartOfToday } from \"../../utils/utils\";\nimport Database from \"../../database/ENV_DATABASE\";\n\n// initial values for new customers\n\nexport default {\n id: () => Database.nextUnusedId(\"item\"),\n added: () => millisAtStartOfToday(),\n status: () => \"instock\",\n type: () => \"item\",\n name: () => \"\",\n brand: () => \"\",\n itype: () => \"\",\n category: () => \"\",\n deposit: () => \"\",\n parts: () => \"\",\n exists_more_than_once: () => false,\n manual: () => \"\",\n package: () => \"\",\n wc_url: () => \"\",\n wc_id: () => \"\",\n image: () => \"\",\n highlight: () => \"\",\n synonyms: () => \"\",\n description: () => \"\",\n};\n","import Database from \"../../database/ENV_DATABASE\";\nimport WoocommerceClient from \"../../database/ENV_WC_CLIENT\";\nimport { notifier } from \"@beyonk/svelte-notifications\";\nimport Logger from \"js-logger\";\n\nexport default async (item, closePopup) => {\n if (confirm(\"Soll dieser Gegenstand wirklich gelöscht werden?\")) {\n item.status = \"deleted\";\n await Database.updateDoc(item)\n .then(() => notifier.success(\"Gegenstand als gelöscht markiert!\"))\n .then(closePopup)\n .catch((error) => {\n Logger.error(error);\n notifier.danger(\"Gegenstand konnte nicht gelöscht werden!\", {\n persist: true,\n });\n });\n\n await WoocommerceClient.deleteItem(item)\n .then(() =>\n notifier.success(\"Gegenstand von der Webseite gelöscht!\", 3000)\n )\n .catch((error) => {\n notifier.warning(\n \"Gegenstand konnte nicht von der Webseite gelöscht werden!\",\n {\n persist: true,\n }\n );\n Logger.error(error);\n });\n }\n};\n","import Database from \"../../database/ENV_DATABASE\";\nimport WoocommerceClient from \"../../database/ENV_WC_CLIENT\";\nimport { notifier } from \"@beyonk/svelte-notifications\";\nimport { itemById } from \"../selectors\";\nimport Logger from \"js-logger\";\n\nexport default async (item, closePopup) => {\n if (confirm(\"Soll dieser Gegenstand wiederhergestellt werden?\")) {\n let doc = (await Database.fetchDocsBySelector(itemById(item.id)))[0];\n doc.status = \"instock\";\n await WoocommerceClient.createItem(doc)\n .then((wcDoc) => {\n notifier.success(\"Gegenstand auf der Webseite erstellt!\", 3000);\n doc.wc_url = wcDoc.permalink;\n doc.wc_id = wcDoc.id;\n return Database.updateDoc(doc);\n })\n .then(closePopup)\n .catch((error) => {\n notifier.warning(\n \"Gegenstand konnte auf der Webseite nicht erstellt werden!\",\n 6000\n );\n Logger.error(error);\n });\n }\n};\n","import Database from \"../../database/ENV_DATABASE\";\nimport { notifier } from \"@beyonk/svelte-notifications\";\nimport WoocommerceClient from \"../../database/ENV_WC_CLIENT\";\nimport columns from \"./columns\";\nimport { setNumericValuesDefault0 } from \"../utils\";\nimport Logger from \"js-logger\";\n\nexport default async (item, closePopup) => {\n if (\n await Database.fetchByIdAndType(item.id, \"item\").then(\n (results) => results.length > 0\n )\n ) {\n notifier.danger(\n \"Ein Gegenstand mit dieser Nummer existiert bereits!\",\n 6000\n );\n return;\n }\n\n setNumericValuesDefault0(item, columns);\n\n // create item on woocommerce first to store wc_id in db afterwards\n // await needed here so that a wc_id is created and stored in db before the user can edit the item again\n await WoocommerceClient.createItem(item)\n .then((wcDoc) => {\n item.wc_url = wcDoc.permalink;\n item.wc_id = wcDoc.id;\n notifier.success(\"Gegenstand auf der Webseite erstellt!\", 3000);\n })\n .catch((error) => {\n notifier.warning(\n \"Gegenstand konnte auf der Webseite nicht erstellt werden!\",\n {\n persist: true,\n }\n );\n Logger.error(error);\n })\n // create in db even if creating item in woocommerce fails\n .then(() => Database.createDoc(item))\n .then(closePopup)\n .then(() => notifier.success(\"Gegenstand gespeichert!\"))\n .catch((error) => {\n notifier.danger(\"Gegenstand konnte nicht gespeichert werden!\", {\n persist: true,\n });\n Logger.error(error);\n });\n};\n","import Database from \"../../database/ENV_DATABASE\";\nimport WoocommerceClient from \"../../database/ENV_WC_CLIENT\";\nimport { notifier } from \"@beyonk/svelte-notifications\";\nimport columns from \"./columns\";\nimport { setNumericValuesDefault0 } from \"../utils\";\nimport Logger from \"js-logger\";\n\nexport default async (item, closePopup) => {\n if (\n await Database.fetchByIdAndType(item.id, \"item\").then((results) =>\n results.some((result) => result._id !== item._id)\n )\n ) {\n notifier.danger(\n \"Ein Gegenstand mit dieser Nummer existiert bereits!\",\n 6000\n );\n return;\n }\n\n setNumericValuesDefault0(item, columns);\n\n await Database.updateDoc(item)\n .then(closePopup)\n .then(() => notifier.success(\"Gegenstand gespeichert!\"))\n .catch((error) => {\n notifier.danger(\"Gegenstand konnte nicht gespeichert werden!\", 6000);\n Logger.error(error);\n });\n\n // no await to update woocommerce in background\n WoocommerceClient.updateItem(item)\n .then(() =>\n notifier.success(\"Gegenstand auf der Webseite aktualisiert!\", 3000)\n )\n .catch((error) => {\n notifier.warning(\n \"Gegenstand auf der Webseite konnte nicht aktualisiert werden!\",\n 6000\n );\n Logger.error(error);\n });\n};\n","import { writable } from \"svelte/store\";\n\nconst createKeyValueStore = () => {\n const store = writable({});\n\n return {\n ...store,\n setValue: (key, value) =>\n store.update((formularStore) => ({\n ...formularStore,\n [key]: value,\n })),\n removeValue: (key) =>\n store.update((formularStore) => {\n const { [key]: _, ...rest } = formularStore;\n return rest;\n }),\n };\n};\n\nconst createRecentEmployeesArray = () => {\n // the array will simply keep growing and items will be double.\n // however we should never run into performance problems\n // as there are only a couple of dozens of entries created per day\n const store = writable(new Array());\n\n return {\n ...store,\n add: (string) =>\n store.update((prevStore) =>\n string ? [...prevStore, string] : prevStore\n ),\n };\n};\n\nexport const keyValueStore = createKeyValueStore();\nexport const recentEmployeesStore = createRecentEmployeesArray();\n","import Database from \"../../database/ENV_DATABASE\";\nimport { recentEmployeesStore } from \"../../utils/stores\";\nimport { notifier } from \"@beyonk/svelte-notifications\";\nimport WoocommerceClient from \"../../database/ENV_WC_CLIENT\";\nimport columns from \"./columns\";\nimport { setNumericValuesDefault0 } from \"../utils\";\nimport { itemById } from \"../selectors\";\nimport Logger from \"js-logger\";\nimport {\n millisAtStartOfToday,\n saveParseTimestampToString,\n} from \"../../utils/utils\";\n\n\nconst fetchItemById = async (itemId) => {\n try {\n return (await Database.fetchDocsBySelector(itemById(itemId)))[0];\n } catch (error) {\n Logger.error(error);\n throw `Failed to load item with id ${itemId}`;\n }\n};\n\nconst newItemStatus = (rental) => {\n if (\n (rental.returned_on &&\n rental.returned_on !== 0 &&\n rental.returned_on <= new Date().getTime()) || // already returned\n rental.rented_on > new Date().getTime() // or not yet rented\n ) {\n return \"instock\";\n } else {\n return \"outofstock\";\n }\n};\n\nconst getExpReturnDate = (item, rental) => {\n const hasReturnDateInFuture =\n item.status === \"outofstock\" &&\n rental &&\n rental.to_return_on &&\n rental.to_return_on >= millisAtStartOfToday() &&\n !rental.returned_on;\n\n let expReturnDate = \"\";\n if (item.status === \"reserved\") {\n expReturnDate = \"Reserviert und noch nicht abgeholt\";\n } else if (hasReturnDateInFuture) {\n expReturnDate = saveParseTimestampToString(rental.to_return_on);\n }\n return expReturnDate;\n};\n\nconst updateItemStatus = async (item, status, rental) => {\n item.status = status;\n item.expected_return_date = getExpReturnDate(item, rental);\n await Database.updateDoc(item);\n await WoocommerceClient.updateItem(item);\n notifier.success(\n `'${item.name}' wurde als ${\n item.status === \"instock\" ? \"verfügbar\" : \"verliehen\"\n } markiert.`\n );\n};\n\nexport async function onReturnAndSave(context, employee) {\n const { doc, closePopup, createNew, contextVars } = context;\n\n if (createNew) {\n Logger.error(\"createNew is true if it should be false\");\n return; // just for safety\n }\n doc.deposit_returned = doc.deposit_returned\n ? doc.deposit_returned\n : doc.deposit;\n doc.receiving_employee = doc.receiving_employee\n ? doc.receiving_employee\n : employee;\n doc.returned_on = doc.returned_on ? doc.returned_on : millisAtStartOfToday();\n await onSave(context);\n}\n\nexport default async function onSave(context) {\n const { doc, closePopup, createNew, contextVars } = context;\n setNumericValuesDefault0(doc, columns);\n // item changed, reset initial item to status available\n if (\n contextVars.initialItemId !== undefined &&\n contextVars.initialItemId !== doc.item_id\n ) {\n try {\n const initialItem = await fetchItemById(contextVars.initialItemId);\n await updateItemStatus(initialItem, \"instock\");\n notifier.warning(\n `Status von '${contextVars.initialItemName}' wurde auf 'verfügbar' geändert. Bitter überprüfe ob das stimmt.`,\n { persist: true }\n );\n } catch (error) {\n Logger.error(\n `Failed to update status of initial item with name ${contextVars.initialItemName} id ${contextVars.initialItemId}, ${error}`\n );\n notifier.warning(\n `Status von '${contextVars.initialItemName}' konnte nicht aktualisiert werden. Bitte überprüfe den Status dieses Gegenstandes.`,\n { persist: true }\n );\n }\n }\n\n if (contextVars.updateItemStatus) {\n try {\n const item = await fetchItemById(doc.item_id);\n doc.image = item.image;\n await updateItemStatus(item, newItemStatus(doc), doc);\n } catch (error) {\n Logger.error(\n `Failed to update status of item with id ${doc.item_id}, ${error}`\n );\n\n notifier.danger(\n `Status des Gegenstandes mit ID '${doc.item_id}' konnte nicht aktualisiert werden!`,\n { persist: true }\n );\n }\n } else {\n Logger.debug(\n `Did not update item of rental ${doc._id} because updateItemStatus is false.`\n );\n }\n\n await (createNew ? Database.createDoc(doc) : Database.updateDoc(doc))\n .then((_) => notifier.success(\"Leihvorgang gespeichert!\"))\n .then(() => recentEmployeesStore.add(doc.passing_out_employee))\n .then(() => recentEmployeesStore.add(doc.receiving_employee))\n .then(closePopup)\n .catch((error) => {\n notifier.danger(\"Leihvorgang konnte nicht gespeichert werden!\", {\n persist: true,\n });\n Logger.error(error);\n });\n}\n","import TextInput from \"../../components/Input/TextInput.svelte\";\nimport AutocompleteInput from \"../../components/Input/AutocompleteInput.svelte\";\nimport DateInput from \"../../components/Input/DateInput.svelte\";\nimport Checkbox from \"../../components/Input/Checkbox.svelte\";\nimport Database from \"../../database/ENV_DATABASE\";\nimport onSave from \"./onSave\";\nimport { onReturnAndSave } from \"./onSave\";\nimport onDelete from \"./onDelete\";\nimport {\n customerColorToDescription,\n itemColorToDescription,\n} from \"../../components/Input/ColorDefs\";\nimport { recentEmployeesStore } from \"../../utils/stores\";\nimport initialValues from \"./initialValues\";\nimport { notifier } from \"@beyonk/svelte-notifications\";\nimport { get } from \"svelte/store\";\nimport {\n customerIdStartsWithSelector,\n itemIdStartsWithAndNotDeletedSelector,\n customerAttributeStartsWithIgnoreCaseSelector,\n itemAttributeStartsWithIgnoreCaseAndNotDeletedSelector,\n activeRentalsForCustomerSelector,\n customerById,\n itemById,\n} from \"../selectors\";\n\n/**\n * Whether the toggle for updateStatusOnWebsite is hidden.\n */\nvar hideToggleUpdateItemStatus = false;\n\nconst updateToggleStatus = (context, itemExistsMoreThanOnce) => {\n if (itemExistsMoreThanOnce) {\n context.contextVars.updateItemStatus = false;\n hideToggleUpdateItemStatus = true;\n } else {\n hideToggleUpdateItemStatus = false;\n }\n};\n\nfunction getRecentEmployees() {\n var employeeObj = {};\n for (let employee of get(recentEmployeesStore)) {\n employeeObj[employee] = employee;\n }\n return employeeObj;\n}\n\nfunction suggestReceivingEmployee(context) {\n if (context.doc.receiving_employee != \"\") {\n return context.doc.receiving_employee;\n }\n\n let mostRecent;\n // retrieve last element of array\n for (mostRecent of get(recentEmployeesStore));\n\n if (!mostRecent) {\n // if none is in the store, assume the passing out employee is currently working\n mostRecent = context.doc.passing_out_employee;\n }\n return mostRecent;\n}\n\nconst updateItemOfRental = (context, item) => {\n if (context.doc.item_id !== item.id) {\n context.updateDoc({\n item_id: item.id,\n item_name: item.name,\n deposit: item.deposit,\n });\n updateToggleStatus(context, item.exists_more_than_once);\n showNotificationsForItem(item);\n }\n};\n\nconst updateCustomerOfRental = (context, customer) => {\n context.updateDoc({\n customer_name: customer.lastname,\n customer_id: customer.id,\n });\n showNotificationsForCustomer(customer.id);\n};\n\nconst showNotificationsForItem = async (item) => {\n // show notification if not available\n var statusMapping = {\n instock: \"verfügbar\",\n outofstock: \"verliehen\",\n reserved: \"reserviert\",\n onbackorder: \"temporär nicht verfügbar / in Reparatur\",\n };\n var status = statusMapping[item.status];\n if ([\"outofstock\", \"reserved\", \"onbackorder\"].includes(item.status)) {\n notifier.danger(\n `${item.name} (${item.id}) ist nicht verfügbar, hat Status: ${status}`,\n 10000\n );\n } else if (item.status == \"undefined\") {\n notifier.warning(\n `Fehler beim Statuscheck, ${item.name} (${item.id}) hat Status: ${status}`,\n 10000\n );\n }\n // show notification it item is highlighted in a color\n if (item.highlight && item.highlight !== \"\") {\n const colorDescription = itemColorToDescription(item.highlight);\n notifier.info(\n `${item.name} (${item.id}) wurde farblich markiert: ${colorDescription}`,\n {\n persist: true,\n }\n );\n }\n};\n\nlet sortItemByIdOrName = (itemA, itemB) => {\n // check if itemX exists at all\n if ((itemA == undefined) | (itemB == undefined)) {\n return 0;\n }\n // if has id and id is numerical compare id\n if (\n (itemA.id !== undefined) &\n (itemB.id !== undefined) &\n !(isNaN(itemA.id) | isNaN(itemB.id))\n ) {\n return itemA.id - itemB.id;\n }\n\n // maybe itemA and itemB themselve are numerical?\n if (!(isNaN(itemA) | isNaN(itemB))) {\n return itemA - itemB;\n }\n\n // inputs are not numerically sortable\n return 0;\n};\n\nconst showNotificationsForCustomer = async (customerId) => {\n Database.fetchAllDocsBySelector(\n activeRentalsForCustomerSelector(customerId),\n [\"item_name\"]\n )\n .then((results) => results.map((doc) => doc[\"item_name\"]))\n .then((activeRentals) => {\n if (activeRentals.length > 0 && activeRentals.length < 3) {\n notifier.warning(\n `Nutzer:in hat schon diese Gegenstände ausgeliehen: ${activeRentals.join(\n \", \"\n )}`,\n 6000\n );\n } else if (activeRentals.length >= 3) {\n notifier.danger(\n `Nutzer:in hat schon mehr als 2 Gegenstände ausgeliehen: ${activeRentals.join(\n \", \"\n )}`,\n 6000\n );\n }\n });\n\n Database.fetchAllDocsBySelector(customerById(customerId), [\n \"remark\",\n \"highlight\",\n ]).then((results) => {\n if (\n // first check if there is a remark\n results.length > 0 &&\n results[0][\"remark\"] &&\n results[0][\"remark\"] !== \"\"\n ) {\n notifier.danger(results[0][\"remark\"], { persist: true });\n }\n if (\n // then check if customer is highlighted\n results.length > 0 &&\n results[0][\"highlight\"] &&\n results[0][\"highlight\"] !== \"\"\n ) {\n const colorDescription = customerColorToDescription(\n results[0][\"highlight\"]\n );\n notifier.info(\n \"Diese/r Nutzer:in wurde farblich markiert: \" + colorDescription,\n { persist: true }\n );\n }\n });\n};\n\nexport default {\n title: (context) =>\n `Leihvorgang ${context.createNew ? \"anlegen\" : \"bearbeiten\"}`,\n initialValues,\n onMount: (context) => () => {\n hideToggleUpdateItemStatus = false;\n /**\n * Whether the status of the selected item should be updated when a rental is created or completed.\n * For items existing more than once this should always be false. For other items this can be toggled by the user.\n */\n context.contextVars.updateItemStatus = true;\n\n /**\n * The id of the item that belongs to this rental at the time of opening the input form. This is required to\n * check if the item was changed when saving the rental.\n */\n context.contextVars.initialItemId = context.doc.item_id;\n context.contextVars.initialItemName = context.doc.item_name;\n\n if (context.doc.item_id) {\n Database.fetchDocsBySelector(itemById(context.doc.item_id), [\n \"id\",\n \"name\",\n \"deposit\",\n \"exists_more_than_once\",\n ]).then((items) => updateItemOfRental(context, items[0]));\n }\n },\n footerButtons: (context) => [\n {\n text: \"Abbrechen\",\n onClick: context.closePopup,\n },\n {\n text: \"Löschen\",\n onClick: () => onDelete(context.doc, context.closePopup),\n color: \"red\",\n hidden: context.createNew,\n loadingText: \"Leihvorgang wird gelöscht\",\n },\n {\n text: `Zurückgeben ${\n suggestReceivingEmployee(context)\n ? `\\n(als ${suggestReceivingEmployee(context)})`\n : \"\"\n }`,\n onClick: () =>\n onReturnAndSave(context, suggestReceivingEmployee(context)),\n color: \"green\",\n hidden: context.createNew,\n loadingText: \"Leihvorgang wird abgeschlossen\",\n },\n\n {\n text: \"Speichern\",\n onClick: () => onSave(context),\n loadingText: \"Leihvorgang wird gespeichert\",\n },\n ],\n inputs: [\n {\n id: \"item_id\",\n label: \"Nr\",\n group: \"Gegenstand\",\n component: AutocompleteInput,\n nobind: true,\n props: {\n localSorting: true,\n sortByMatchedKeywords: true,\n itemSortFunction: () => sortItemByIdOrName,\n valueField: \"id\",\n onlyNumbers: true,\n searchFunction: (context) => (searchTerm) =>\n Database.fetchDocsBySelector(\n itemIdStartsWithAndNotDeletedSelector(searchTerm),\n [\n \"id\",\n \"name\",\n \"deposit\",\n \"exists_more_than_once\",\n \"status\",\n \"highlight\",\n ]\n ),\n suggestionFormat: (context) => (id, item_name) =>\n `${String(id).padStart(4, \"0\")}: ${item_name}`,\n noResultsText: \"Kein Gegenstand mit dieser Id\",\n onSelected: (context) => (selectedItem) => {\n updateItemOfRental(context, selectedItem);\n },\n },\n },\n\n {\n id: \"item_name\",\n label: \"Name\",\n group: \"Gegenstand\",\n component: AutocompleteInput,\n nobind: true,\n props: {\n valueField: \"name\",\n searchFunction: (context) => (searchTerm) =>\n Database.fetchDocsBySelector(\n itemAttributeStartsWithIgnoreCaseAndNotDeletedSelector(\n \"name\",\n searchTerm\n ),\n [\"id\", \"name\", \"deposit\", \"exists_more_than_once\"]\n ),\n suggestionFormat: (context) => (id, item_name) =>\n `${String(id).padStart(4, \"0\")}: ${item_name}`,\n noResultsText: \"Kein Gegenstand mit diesem Name\",\n onSelected: (context) => (selectedItem) => {\n updateItemOfRental(context, selectedItem);\n },\n },\n },\n {\n id: \"update_status\",\n label: \"Status aktualisieren\",\n group: \"Gegenstand\",\n component: Checkbox,\n nobind: true,\n hidden: () => hideToggleUpdateItemStatus,\n props: {\n value: (context) => context.contextVars.updateItemStatus,\n // onChange callback necessary because bind only works for doc attributes\n onChange: (context) => (value) =>\n (context.contextVars.updateItemStatus = value),\n },\n },\n\n {\n id: \"rented_on\",\n label: \"Ausgeliehen am\",\n group: \"Zeitraum\",\n component: DateInput,\n props: {\n container: (context) => context.container,\n },\n },\n {\n id: \"extended_on\",\n label: \"Verlängert am\",\n group: \"Zeitraum\",\n hidden: (context) => context.createNew,\n component: DateInput,\n props: {\n quickset: { 0: \"Heute\" },\n container: (context) => context.container,\n },\n },\n {\n id: \"to_return_on\",\n label: \"Zurückerwartet am\",\n group: \"Zeitraum\",\n component: DateInput,\n props: {\n quickset: { 7: \"1 Woche\", 14: \"2 Wochen\", 21: \"3 Wochen\" },\n container: (context) => context.container,\n showAlertOnPastDateSelection: true,\n },\n },\n {\n id: \"returned_on\",\n label: \"Zurückgegeben am\",\n group: \"Zeitraum\",\n component: DateInput,\n hidden: (context) => context.createNew,\n props: {\n quickset: { 0: \"Heute\" },\n container: (context) => context.container,\n },\n },\n\n {\n id: \"customer_id\",\n label: \"Nr\",\n group: \"Nutzer:in\",\n component: AutocompleteInput,\n nobind: true,\n props: {\n localSorting: true,\n sortByMatchedKeywords: true,\n itemSortFunction: () => sortItemByIdOrName,\n localFiltering: true,\n valueField: \"id\",\n onlyNumbers: true,\n searchFunction: (context) => (searchTerm) =>\n Database.fetchDocsBySelector(\n customerIdStartsWithSelector(searchTerm),\n [\"id\", \"firstname\", \"lastname\"],\n [\"id\"]\n ),\n suggestionFormat: (context) => (id, firstname, lastname) =>\n `${id}: ${firstname} ${lastname}`,\n noResultsText: \"Kein/e Nutzer:in mit dieser Nummer\",\n onSelected: (context) => (selectedCustomer) => {\n updateCustomerOfRental(context, selectedCustomer);\n },\n },\n },\n {\n id: \"customer_name\",\n label: \"Nachname\",\n group: \"Nutzer:in\",\n component: AutocompleteInput,\n nobind: true,\n props: {\n valueField: \"lastname\",\n searchFunction: (context) => (searchTerm) =>\n Database.fetchDocsBySelector(\n customerAttributeStartsWithIgnoreCaseSelector(\n \"lastname\",\n searchTerm\n ),\n [\"id\", \"firstname\", \"lastname\"]\n ),\n suggestionFormat: (context) => (id, firstname, lastname) =>\n `${id}: ${firstname} ${lastname}`,\n noResultsText: \"Kein/e Nutzer:in mit diesem Name\",\n onSelected: (context) => (selectedCustomer) => {\n updateCustomerOfRental(context, selectedCustomer);\n },\n },\n },\n\n {\n id: \"deposit\",\n label: \"Pfand\",\n group: \"Pfand\",\n component: TextInput,\n props: {\n onlyNumbers: true,\n },\n },\n\n {\n id: \"deposit_returned\",\n label: \"Pfand zurück\",\n group: \"Pfand\",\n hidden: (context) => context.createNew,\n component: TextInput,\n props: {\n quickset: (context) => ({ [context.doc.deposit]: context.doc.deposit }),\n onlyNumbers: true,\n },\n },\n\n {\n id: \"passing_out_employee\",\n label: \"Ausgabe\",\n group: \"Mitarbeiter\",\n component: TextInput,\n props: {\n quickset: getRecentEmployees,\n },\n },\n {\n id: \"receiving_employee\",\n label: \"Rücknahme\",\n group: \"Mitarbeiter\",\n hidden: (context) => context.createNew,\n component: TextInput,\n props: {\n quickset: getRecentEmployees,\n },\n },\n {\n id: \"remark\",\n label: \"Bemerkung\",\n group: \"Mitarbeiter\",\n component: TextInput,\n props: {\n multiline: true,\n },\n },\n ],\n};\n","import { millisAtStartOfToday, millisAtStartOfDay } from \"../../utils/utils\";\n\n// initial values for new customers\n\nexport default {\n rented_on: () => millisAtStartOfToday(),\n to_return_on: () =>\n millisAtStartOfDay(new Date().getTime() + 7 * 24 * 60 * 60 * 1000),\n returned_on: () => 0,\n extended_on: () => 0,\n type: () => \"rental\",\n image: () => \"\",\n item_id: () => \"\",\n item_name: () => \"\",\n customer_id: () => \"\",\n customer_name: () => \"\",\n passing_out_employee: () => \"\",\n receiving_employee: () => \"\",\n deposit: () => \"\",\n deposit_returned: () => \"\",\n remark: () => \"\",\n};\n","import Database from \"../../database/ENV_DATABASE\";\nimport { notifier } from \"@beyonk/svelte-notifications\";\nimport Logger from \"js-logger\";\n\nexport default async (rental, closePopup) => {\n if (confirm(\"Soll dieser Leihvorgang wirklich gelöscht werden?\")) {\n Database.removeDoc(rental)\n .then(() => notifier.success(\"Leihvorgang gelöscht!\"))\n .then(closePopup)\n .catch((error) => {\n Logger.error(error);\n notifier.danger(\"Leihvorgang konnte nicht gelöscht werden!\", 6000);\n });\n }\n};\n","import { millisAtStartOfToday } from \"../../utils/utils\";\n\nconst MILLIS_PER_DAY = 86400 * 1000;\nconst START_OF_TODAY = millisAtStartOfToday();\n\nexport default {\n filters: {\n aktuell: {\n required_fields: [\"returned_on\"],\n selectors: {\n $or: [\n {\n returned_on: {\n $eq: 0,\n },\n },\n {\n returned_on: {\n $exists: false,\n },\n },\n {\n $and: [\n {\n returned_on: {\n $gte: START_OF_TODAY,\n },\n },\n {\n returned_on: {\n $lt: START_OF_TODAY + MILLIS_PER_DAY,\n },\n },\n ],\n },\n ],\n },\n },\n abgeschlossen: {\n required_fields: [\"returned_on\"],\n selectors: {\n returned_on: {\n $gt: 0,\n },\n },\n },\n \"Rückgabe heute\": {\n required_fields: [\"to_return_on\"],\n selectors: {\n $and: [\n {\n to_return_on: {\n $gte: START_OF_TODAY,\n },\n },\n {\n to_return_on: {\n $lt: START_OF_TODAY + MILLIS_PER_DAY,\n },\n },\n ],\n },\n },\n verspätet: {\n required_fields: [\"returned_on\", \"to_return_on\"],\n selectors: {\n $and: [\n {\n to_return_on: {\n $gt: 0,\n },\n },\n {\n returned_on: {\n $eq: 0,\n },\n },\n {\n to_return_on: {\n $lt: START_OF_TODAY,\n },\n },\n ],\n },\n },\n },\n activeByDefault: [\"aktuell\"],\n};\n","import customerColumns from \"./customer/columns\";\nimport customerInputs from \"./customer/inputs\";\nimport customerFilters from \"./customer/filters\";\n\nimport itemColumns from \"./item/columns\";\nimport itemInputs from \"./item/inputs\";\nimport itemFilters from \"./item/filters\";\n\nimport rentalColumns from \"./rental/columns\";\nimport rentalInputs from \"./rental/inputs\";\nimport rentalFilters from \"./rental/filters\";\n\nexport default [\n {\n route: \"/customers\",\n inputs: customerInputs,\n columns: customerColumns,\n filters: customerFilters,\n docType: \"customer\",\n title: \"Nutzer:innen\",\n },\n {\n route: \"/items\",\n inputs: itemInputs,\n columns: itemColumns,\n filters: itemFilters,\n docType: \"item\",\n title: \"Gegenstände\",\n },\n {\n route: \"/rentals\",\n inputs: rentalInputs,\n columns: rentalColumns,\n filters: rentalFilters,\n docType: \"rental\",\n title: \"Leihvorgänge\",\n },\n];\n","export default {\n filters: {\n \"nicht gelöscht\": {\n required_fields: [\"status\"],\n selectors: {\n status: {\n $ne: \"deleted\",\n },\n },\n },\n gelöscht: {\n required_fields: [\"status\"],\n selectors: {\n status: {\n $eq: \"deleted\",\n },\n },\n },\n verfügbar: {\n required_fields: [\"status\"],\n selectors: {\n status: {\n $eq: \"instock\",\n },\n },\n },\n ausgeliehen: {\n required_fields: [\"status\"],\n selectors: {\n status: {\n $eq: \"outofstock\",\n },\n },\n },\n reserviert: {\n required_fields: [\"status\"],\n selectors: {\n status: {\n $eq: \"reserved\",\n },\n },\n },\n \"nicht verleihbar\": {\n required_fields: [\"status\"],\n selectors: {\n status: {\n $eq: \"onbackorder\",\n },\n },\n },\n \"Kategorie Küche\": {\n required_fields: [\"category\"],\n selectors: {\n category: {\n $eq: \"Küche\",\n },\n },\n },\n \"Kategorie Haushalt\": {\n required_fields: [\"category\"],\n selectors: {\n category: {\n $eq: \"Haushalt\",\n },\n },\n },\n \"Kategorie Garten\": {\n required_fields: [\"category\"],\n selectors: {\n category: {\n $eq: \"Garten\",\n },\n },\n },\n \"Kategorie Heimwerker\": {\n required_fields: [\"category\"],\n selectors: {\n category: {\n $eq: \"Heimwerker\",\n },\n },\n },\n \"Kategorie Kinder\": {\n required_fields: [\"category\"],\n selectors: {\n category: {\n $eq: \"Kinder\",\n },\n },\n },\n \"Kategorie Freizeit\": {\n required_fields: [\"category\"],\n selectors: {\n category: {\n $eq: \"Freizeit\",\n },\n },\n },\n },\n activeByDefault: [\"nicht gelöscht\"],\n};\n","import customerColumns from \"./customer/columns\";\nimport rentalColumns from \"./rental/columns\";\nimport itemColumns from \"./item/columns\";\nimport Database from \"../database/ENV_DATABASE\";\n\nvar indexCreated = false;\n\nconst createIndex = async () => {\n if (!indexCreated) {\n // create index for each column for sorting\n await Promise.all(\n [...customerColumns, ...itemColumns, ...rentalColumns]\n .filter((column) => !column.disableSort)\n .map((column) =>\n Database.createIndex({\n index: {\n fields: column.sort\n ? [\"type\", ...column.sort]\n : [\"type\", column.key],\n },\n })\n )\n );\n\n await Database.createIndex({ index: { fields: [\"type\"] } });\n\n indexCreated = true;\n }\n};\n\nexport default createIndex;\n","const MAX_LOG_AGE_MS = 7 * 24 * 60 * 60 * 1000; // 1 week\nconst currentMs = new Date().getTime();\n\nconst loadLogs = () => JSON.parse(localStorage.getItem(\"logs\") ?? \"[]\");\n\nconst persistLogs = (logs) =>\n localStorage.setItem(\n \"logs\",\n JSON.stringify(logs.filter((log) => currentMs - log.time < MAX_LOG_AGE_MS))\n );\n\nconst appendLog = (log) => persistLogs([...loadLogs(), log]);\n\nexport { loadLogs, appendLog };\n","\n","\n\n
\n
\n

Logs

\n \n
\n {#each loadLogs() as log}\n {formatLog(log)}
\n {/each}\n
\n\n\n","import { cubicOut } from '../easing/index.mjs';\nimport { is_function } from '../internal/index.mjs';\n\nfunction flip(node, { from, to }, params = {}) {\n const style = getComputedStyle(node);\n const transform = style.transform === 'none' ? '' : style.transform;\n const [ox, oy] = style.transformOrigin.split(' ').map(parseFloat);\n const dx = (from.left + from.width * ox / to.width) - (to.left + ox);\n const dy = (from.top + from.height * oy / to.height) - (to.top + oy);\n const { delay = 0, duration = (d) => Math.sqrt(d) * 120, easing = cubicOut } = params;\n return {\n delay,\n duration: is_function(duration) ? duration(Math.sqrt(dx * dx + dy * dy)) : duration,\n easing,\n css: (t, u) => {\n const x = u * dx;\n const y = u * dy;\n const sx = t + u * from.width / to.width;\n const sy = t + u * from.height / to.height;\n return `transform: ${transform} translate(${x}px, ${y}px) scale(${sx}, ${sy});`;\n }\n };\n}\n\nexport { flip };\n","// Unique ID creation requires a high quality random # generator. In the browser we therefore\n// require the crypto API and do not support built-in fallback to lower quality random number\n// generators (like Math.random()).\nvar getRandomValues;\nvar rnds8 = new Uint8Array(16);\nexport default function rng() {\n // lazy load so that environments that need to polyfill have a chance to do so\n if (!getRandomValues) {\n // getRandomValues needs to be invoked in a context where \"this\" is a Crypto implementation. Also,\n // find the complete implementation of crypto (msCrypto) on IE11.\n getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto) || typeof msCrypto !== 'undefined' && typeof msCrypto.getRandomValues === 'function' && msCrypto.getRandomValues.bind(msCrypto);\n\n if (!getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n }\n\n return getRandomValues(rnds8);\n}","export default /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;","import REGEX from './regex.js';\n\nfunction validate(uuid) {\n return typeof uuid === 'string' && REGEX.test(uuid);\n}\n\nexport default validate;","import validate from './validate.js';\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\n\nvar byteToHex = [];\n\nfor (var i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).substr(1));\n}\n\nfunction stringify(arr) {\n var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n var uuid = (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase(); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n\n return uuid;\n}\n\nexport default stringify;","import rng from './rng.js';\nimport stringify from './stringify.js';\n\nfunction v4(options, buf, offset) {\n options = options || {};\n var rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n offset = offset || 0;\n\n for (var i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n\n return buf;\n }\n\n return stringify(rnds);\n}\n\nexport default v4;","/** Dispatch event on click outside of node */\nexport function observeResize(node, onResize) {\n const resizeObserver = new ResizeObserver(onResize);\n resizeObserver.observe(node);\n\n return {\n destroy() {\n resizeObserver.unobserve(node);\n },\n };\n}\n","\n","let t = {};\n\nexport const exec = (command, value = null) => {\n document.execCommand(command, false, value)\n}\n\nexport const getTagsRecursive = (element, tags) => {\n tags = tags || (element && element.tagName ? [element.tagName] : []);\n\n if (element && element.parentNode) {\n element = element.parentNode;\n } else {\n return tags;\n }\n\n const tag = element.tagName;\n if (element.style && element.getAttribute) {\n [element.style.textAlign || element.getAttribute('align'), element.style.color || tag === 'FONT' && 'forecolor', element.style.backgroundColor && 'backcolor']\n .filter((item) => item)\n .forEach((item) => tags.push(item));\n }\n\n if (tag === 'DIV') {\n return tags;\n }\n\n tags.push(tag);\n\n return getTagsRecursive(element, tags).filter((_tag) => _tag != null);\n}\n\nexport const saveRange = (editor) => {\n const documentSelection = document.getSelection();\n\n t.range = null;\n\n if (documentSelection.rangeCount) {\n let savedRange = t.range = documentSelection.getRangeAt(0);\n let range = document.createRange();\n let rangeStart;\n range.selectNodeContents(editor);\n range.setEnd(savedRange.startContainer, savedRange.startOffset);\n rangeStart = (range + '').length;\n t.metaRange = {\n start: rangeStart,\n end: rangeStart + (savedRange + '').length\n };\n }\n}\nexport const restoreRange = (editor) => {\n let metaRange = t.metaRange;\n let savedRange = t.range;\n let documentSelection = document.getSelection();\n let range;\n\n if (!savedRange) {\n return;\n }\n\n if (metaRange && metaRange.start !== metaRange.end) { // Algorithm from http://jsfiddle.net/WeWy7/3/\n let charIndex = 0,\n nodeStack = [editor],\n node,\n foundStart = false,\n stop = false;\n\n range = document.createRange();\n\n while (!stop && (node = nodeStack.pop())) {\n if (node.nodeType === 3) {\n let nextCharIndex = charIndex + node.length;\n if (!foundStart && metaRange.start >= charIndex && metaRange.start <= nextCharIndex) {\n range.setStart(node, metaRange.start - charIndex);\n foundStart = true;\n }\n if (foundStart && metaRange.end >= charIndex && metaRange.end <= nextCharIndex) {\n range.setEnd(node, metaRange.end - charIndex);\n stop = true;\n }\n charIndex = nextCharIndex;\n } else {\n let cn = node.childNodes;\n let i = cn.length;\n\n while (i > 0) {\n i -= 1;\n nodeStack.push(cn[i]);\n }\n }\n }\n }\n\n documentSelection.removeAllRanges();\n documentSelection.addRange(range || savedRange);\n}\n\nexport const cleanHtml = (input) => {\n const html = input.match(/(.*?)/);\n let output = html && html[1] || input;\n output = output\n .replace(/\\r?\\n|\\r/g, ' ')\n .replace(//g, '')\n .replace(new RegExp('<(/)*(meta|link|span|\\\\?xml:|st1:|o:|font|w:sdt)(.*?)>', 'gi'), '')\n .replace(/(.*?)/gi, '')\n .replace(/style=\"[^\"]*\"/gi, '')\n .replace(/style='[^']*'/gi, '')\n .replace(/ /gi, ' ')\n .replace(/>(\\s+)<')\n .replace(/class=\"[^\"]*\"/gi, '')\n .replace(/class='[^']*'/gi, '')\n .replace(/<[^/].*?>/g, i => i.split(/[ >]/g)[0] + '>')\n .trim()\n\n output = removeBadTags(output);\n return output;\n}\n\nexport const unwrap = (wrapper) => {\n\tconst docFrag = document.createDocumentFragment();\n\twhile (wrapper.firstChild) {\n\t\tconst child = wrapper.removeChild(wrapper.firstChild);\n\t\tdocFrag.appendChild(child);\n\t}\n\n\t// replace wrapper with document fragment\n\twrapper.parentNode.replaceChild(docFrag, wrapper);\n}\n\nexport const removeBlockTagsRecursive = (elements, tagsToRemove) => {\n Array.from(elements).forEach((item) => {\n if (tagsToRemove.some((tag) => tag === item.tagName.toLowerCase())) {\n if (item.children.length) {\n removeBlockTagsRecursive(item.children, tagsToRemove);\n }\n unwrap(item);\n }\n });\n}\n\nexport const getActionBtns = (actions) => {\n return Object.keys(actions).map((action) => actions[action]);\n}\n\nexport const getNewActionObj = (actions, userActions = []) => {\n if (userActions && userActions.length) {\n const newActions = {};\n userActions.forEach((action) => {\n if (typeof action === 'string') {\n newActions[action] = Object.assign({}, actions[action]);\n } else if (actions[action.name]) {\n newActions[action.name] = Object.assign(actions[action.name], action);\n } else {\n newActions[action.name] = Object.assign({}, action);\n }\n });\n\n return newActions;\n } else {\n return actions;\n }\n}\n\nexport const removeBadTags = (html) => {\n ['style', 'script', 'applet', 'embed', 'noframes', 'noscript'].forEach((badTag) => {\n html = html.replace(new RegExp(`<${badTag}.*?${badTag}(.*?)>`, 'gi'), '')\n });\n\n return html;\n}\n\nexport const isEditorClick = (target, editorWrapper) => {\n if (target === editorWrapper) {\n return true;\n }\n if (target.parentElement) {\n return isEditorClick(target.parentElement, editorWrapper);\n }\n return false;\n}\n","import {\n\texec,\n\tremoveBlockTagsRecursive,\n\tgetActionBtns,\n\tsaveRange,\n\trestoreRange\n} from \"./util\";\n\nimport { get } from \"svelte/store\";\n\nconst linkSvg =\n\t'';\nconst unlinkSvg =\n\t'';\n\nexport default {\n\tviewHtml: {\n\t\ticon:\n\t\t\t'',\n\t\ttitle: \"View HTML\",\n\t\tresult: function() {\n\t\t\tlet refs = get(this.references);\n\t\t\tlet actionObj = get(this.state).actionObj;\n\t\t\tlet helper = get(this.helper);\n\n\t\t\thelper.showEditor = !helper.showEditor;\n\t\t\trefs.editor.style.display = helper.showEditor ? \"block\" : \"none\";\n\t\t\trefs.raw.style.display = helper.showEditor ? \"none\" : \"block\";\n\t\t\tif (helper.showEditor) {\n\t\t\t\trefs.editor.innerHTML = refs.raw.value;\n\t\t\t} else {\n\t\t\t\trefs.raw.value = refs.editor.innerHTML;\n\t\t\t}\n\t\t\tsetTimeout(() => {\n\t\t\t\tObject.keys(actionObj).forEach(\n\t\t\t\t\taction => (actionObj[action].disabled = !helper.showEditor)\n\t\t\t\t);\n\t\t\t\tactionObj.viewHtml.disabled = false;\n\t\t\t\tactionObj.viewHtml.active = !helper.showEditor;\n\n\t\t\t\tthis.state.update(state => {\n\t\t\t\t\tstate.actionBtns = getActionBtns(actionObj);\n\t\t\t\t\tstate.actionObj = actionObj;\n\t\t\t\t\treturn state;\n\t\t\t\t});\n\t\t\t});\n\t\t}\n\t},\n\tundo: {\n\t\ticon:\n\t\t\t'',\n\t\ttitle: \"Undo\",\n\t\tresult: () => exec(\"undo\")\n\t},\n\tredo: {\n\t\ticon:\n\t\t\t'',\n\t\ttitle: \"Redo\",\n\t\tresult: () => exec(\"redo\")\n\t},\n\tb: {\n\t\ticon: \"B\",\n\t\ttitle: \"Bold\",\n\t\tresult: () => exec(\"bold\")\n\t},\n\ti: {\n\t\ticon: \"I\",\n\t\ttitle: \"Italic\",\n\t\tresult: () => exec(\"italic\")\n\t},\n\tu: {\n\t\ticon: \"U\",\n\t\ttitle: \"Underline\",\n\t\tresult: () => exec(\"underline\")\n\t},\n\tstrike: {\n\t\ticon: \"S\",\n\t\ttitle: \"Strike-through\",\n\t\tresult: () => exec(\"strikeThrough\")\n\t},\n\tsup: {\n\t\ticon: \"A2\",\n\t\ttitle: \"Superscript\",\n\t\tresult: () => exec(\"superscript\")\n\t},\n\tsub: {\n\t\ticon: \"A2\",\n\t\ttitle: \"Subscript\",\n\t\tresult: () => exec(\"subscript\")\n\t},\n\th1: {\n\t\ticon: \"H1\",\n\t\ttitle: \"Heading 1\",\n\t\tresult: () => exec(\"formatBlock\", \"

\")\n\t},\n\th2: {\n\t\ticon: \"H2\",\n\t\ttitle: \"Heading 2\",\n\t\tresult: () => exec(\"formatBlock\", \"

\")\n\t},\n\tp: {\n\t\ticon: \"¶\",\n\t\ttitle: \"Paragraph\",\n\t\tresult: () => exec(\"formatBlock\", \"

\")\n\t},\n\tblockquote: {\n\t\ticon: \"“ ”\",\n\t\ttitle: \"Quote\",\n\t\tresult: () => exec(\"formatBlock\", \"

\")\n\t},\n\tol: {\n\t\ticon:\n\t\t\t'',\n\t\ttitle: \"Ordered List\",\n\t\tresult: () => exec(\"insertOrderedList\")\n\t},\n\tul: {\n\t\ticon:\n\t\t\t'',\n\t\ttitle: \"Unordered List\",\n\t\tresult: () => exec(\"insertUnorderedList\")\n\t},\n\thr: {\n\t\ticon: \"―\",\n\t\ttitle: \"Horizontal Line\",\n\t\tresult: () => exec(\"insertHorizontalRule\")\n\t},\n\tleft: {\n\t\ticon:\n\t\t\t'',\n\t\ttitle: \"Justify left\",\n\t\tresult: () => exec(\"justifyLeft\")\n\t},\n\tright: {\n\t\ticon:\n\t\t\t'',\n\t\ttitle: \"Justify right\",\n\t\tresult: () => exec(\"justifyRight\")\n\t},\n\tcenter: {\n\t\ticon:\n\t\t\t'',\n\t\ttitle: \"Justify center\",\n\t\tresult: () => exec(\"justifyCenter\")\n\t},\n\tjustify: {\n\t\ticon:\n\t\t\t'',\n\t\ttitle: \"Justify full\",\n\t\tresult: () => exec(\"justifyFull\")\n\t},\n\ta: {\n\t\ticon: linkSvg,\n\t\ttitle: \"Insert link\",\n\t\tresult: function() {\n\t\t\tconst actionObj = get(this.state).actionObj;\n\t\t\tconst refs = get(this.references);\n\n\t\t\tif (actionObj.a.active) {\n\t\t\t\tconst selection = window.getSelection();\n\t\t\t\tconst range = document.createRange();\n\t\t\t\trange.selectNodeContents(document.getSelection().focusNode);\n\t\t\t\tselection.removeAllRanges();\n\t\t\t\tselection.addRange(range);\n\t\t\t\texec(\"unlink\");\n\t\t\t\tactionObj.a.title = \"Insert link\";\n\t\t\t\tactionObj.a.icon = linkSvg;\n\t\t\t\tthis.state.update(state => {\n\t\t\t\t\tstate.actionBtn = getActionBtns(actionObj);\n\t\t\t\t\tstate.actionObj = actionObj;\n\t\t\t\t\treturn state;\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tsaveRange(refs.editor);\n\t\t\t\trefs.modal.$set({\n\t\t\t\t\tshow: true,\n\t\t\t\t\tevent: \"linkUrl\",\n\t\t\t\t\ttitle: \"Insert link\",\n\t\t\t\t\tlabel: \"Url\"\n\t\t\t\t});\n\t\t\t\tif (!get(this.helper).link) {\n\t\t\t\t\tthis.helper.update(state => {\n\t\t\t\t\t\tstate.link = true;\n\t\t\t\t\t\treturn state;\n\t\t\t\t\t});\n\t\t\t\t\trefs.modal.$on(\"linkUrl\", event => {\n\t\t\t\t\t\trestoreRange(refs.editor);\n\t\t\t\t\t\texec(\"createLink\", event.detail);\n\t\t\t\t\t\tactionObj.a.title = \"Unlink\";\n\t\t\t\t\t\tactionObj.a.icon = unlinkSvg;\n\n\t\t\t\t\t\tthis.state.update(state => {\n\t\t\t\t\t\t\tstate.actionBtn = getActionBtns(actionObj);\n\t\t\t\t\t\t\tstate.actionObj = actionObj;\n\t\t\t\t\t\t\treturn state;\n\t\t\t\t\t\t});\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\timage: {\n\t\ticon:\n\t\t\t'',\n\t\ttitle: \"Image\",\n\t\tresult: function() {\n\t\t\tconst refs = get(this.references);\n\t\t\tsaveRange(refs.editor);\n\t\t\trefs.modal.$set({\n\t\t\t\tshow: true,\n\t\t\t\tevent: \"imageUrl\",\n\t\t\t\ttitle: \"Insert image\",\n\t\t\t\tlabel: \"Url\"\n\t\t\t});\n\t\t\tif (!get(this.helper).image) {\n\t\t\t\tthis.helper.update(state => {\n\t\t\t\t\tstate.image = true;\n\t\t\t\t\treturn state;\n\t\t\t\t});\n\t\t\t\trefs.modal.$on(\"imageUrl\", event => {\n\t\t\t\t\trestoreRange(refs.editor);\n\t\t\t\t\texec(\"insertImage\", event.detail);\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t},\n\tforecolor: {\n\t\ticon:\n\t\t\t'',\n\t\ttitle: \"Text color\",\n\t\tcolorPicker: true,\n\t\tresult: function() {\n\t\t\tshowColorPicker.call(this, \"foreColor\");\n\t\t}\n\t},\n\tbackcolor: {\n\t\ticon:\n\t\t\t'',\n\t\ttitle: \"Background color\",\n\t\tcolorPicker: true,\n\t\tresult: function() {\n\t\t\tshowColorPicker.call(this, \"backColor\");\n\t\t}\n\t},\n\tremoveFormat: {\n\t\ticon:\n\t\t\t'',\n\t\ttitle: \"Remove format\",\n\t\tresult: function() {\n\t\t\tconst refs = get(this.references);\n\t\t\tconst selection = window.getSelection();\n\t\t\tif (!selection.toString().length) {\n\t\t\t\tremoveBlockTagsRecursive(\n\t\t\t\t\trefs.editor.children,\n\t\t\t\t\tthis.removeFormatTags\n\t\t\t\t);\n\t\t\t\tconst range = document.createRange();\n\t\t\t\trange.selectNodeContents(refs.editor);\n\t\t\t\tselection.removeAllRanges();\n\t\t\t\tselection.addRange(range);\n\t\t\t}\n\t\t\texec(\"removeFormat\");\n\t\t\tselection.removeAllRanges();\n\t\t}\n\t}\n};\n\nconst showColorPicker = function(cmd) {\n\tconst refs = get(this.references);\n\tsaveRange(refs.editor);\n\tconsole.log(refs.colorPicker);\n\trefs.colorPicker.$set({show: true, event: cmd});\n\tif (!get(this.helper)[cmd]) {\n\t\tthis.helper.update(state => {\n\t\t\tstate[cmd] = true;\n\t\t\treturn state;\n\t\t});\n\t\trefs.colorPicker.$on(cmd, event => {\n\t\t\tlet item = event.detail;\n\t\t\tif (item.modal) {\n\t\t\t\tthis.modal.$set({\n\t\t\t\t\tshow: true,\n\t\t\t\t\tevent: \"colorHref\",\n\t\t\t\t\ttitle: \"Text color\",\n\t\t\t\t\tlabel:\n\t\t\t\t\t\tcmd === \"foreColor\" ? \"Text color\" : \"Background color\"\n\t\t\t\t});\n\t\t\t\tconst command = cmd;\n\t\t\t\tif (!get(this.helper)[`${command}Modal`]) {\n\t\t\t\t\tget(this.helper)[`${command}Modal`] = true;\n\t\t\t\t\tthis.modal.$on(\"colorHref\", event => {\n\t\t\t\t\t\tlet color = event.detail;\n\t\t\t\t\t\trestoreRange(refs.editor);\n\t\t\t\t\t\texec(command, color);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\trestoreRange(refs.editor);\n\t\t\t\texec(cmd, item.color);\n\t\t\t}\n\t\t});\n\t}\n};\n","\n
\n
\n
\n
\n {title}\n
confirm()}\">\n \n \n \n
\n
\n
\n
\n\n\n\n\n","
\n
\n
\n {#each btns as btn}\n \n {/each}\n
\n
\n\n\n\n\n","import {writable} from \"svelte/store\";\n\nconst state = (function(name) {\n let state = {\n actionBtns: [],\n actionObj: {}\n }\n\n const { subscribe, set, update } = writable(state);\n\n return {\n name,\n set,\n update,\n subscribe\n }\n});\n\nexport const createStateStore = state;\n","\n _documentClick(event) }\" />\n\n
\n
\n {#each $state.actionBtns as action}\n \n {/each}\n
\n
_onChange(event.target.innerHTML)}\"\n on:mouseup=\"{() => _handleButtonStatus()}\"\n on:keyup=\"{() => _handleButtonStatus()}\"\n on:paste=\"{event => _onPaste(event)}\">\n
\n\n \n \n \n
\n\n\n\n\n","\n\n\n {\n contentHtml = evt.detail;\n dispatch(\"change\");\n }}\n actions={[\n \"b\",\n \"i\",\n \"u\",\n \"ul\",\n \"ol\",\n \"h1\",\n \"h2\",\n \"forecolor\",\n {\n name: \"save\", // required\n icon: \"Speichern\", // string or html string (ex. ...)\n title: \"Speichern\",\n result: () => {\n dispatch(\"save\");\n },\n },\n ]}\n height={heightPx - actionBarHeightPx + \"px\"}\n contentId=\"notes-content\"\n />\n\n\n\n","\n\n
\n
\n {#if editMode}\n (contentChanged = true)}\n on:save={disableEditMode}\n />\n {:else}\n \n
\n {@html contentHtml}\n {#if contentHtml === \"\"}\n
Zum Bearbeiten hier klicken
\n {/if}\n
\n
\n
\n \n
\n
\n {toDateString(new Date(timestamp))}\n
\n
\n
\n {/if}\n
\n\n\n\n","\n \n \n \n \n \n\n","\n\n
\n
\n
\n \n
Neue Notiz
\n
\n
\n
\n\n\n","\n\n
\n
Notizen
\n
\n {#each notes as note, index (note._id)}\n
\n onNoteDeleted(note._id)}\n on:change={(e) => onNoteChanged(note._id, e.detail)}\n on:dragstart={(event) => onNoteDragStart(event, index)}\n on:drop={(event) => onNoteDrop(event, index)}\n />\n
\n {/each}\n \n
\n
\n\n\n","/*!\n * Chart.js v3.6.0\n * https://www.chartjs.org\n * (c) 2021 Chart.js Contributors\n * Released under the MIT License\n */\nfunction fontString(pixelSize, fontStyle, fontFamily) {\n return fontStyle + ' ' + pixelSize + 'px ' + fontFamily;\n}\nconst requestAnimFrame = (function() {\n if (typeof window === 'undefined') {\n return function(callback) {\n return callback();\n };\n }\n return window.requestAnimationFrame;\n}());\nfunction throttled(fn, thisArg, updateFn) {\n const updateArgs = updateFn || ((args) => Array.prototype.slice.call(args));\n let ticking = false;\n let args = [];\n return function(...rest) {\n args = updateArgs(rest);\n if (!ticking) {\n ticking = true;\n requestAnimFrame.call(window, () => {\n ticking = false;\n fn.apply(thisArg, args);\n });\n }\n };\n}\nfunction debounce(fn, delay) {\n let timeout;\n return function(...args) {\n if (delay) {\n clearTimeout(timeout);\n timeout = setTimeout(fn, delay, args);\n } else {\n fn.apply(this, args);\n }\n return delay;\n };\n}\nconst _toLeftRightCenter = (align) => align === 'start' ? 'left' : align === 'end' ? 'right' : 'center';\nconst _alignStartEnd = (align, start, end) => align === 'start' ? start : align === 'end' ? end : (start + end) / 2;\nconst _textX = (align, left, right, rtl) => {\n const check = rtl ? 'left' : 'right';\n return align === check ? right : align === 'center' ? (left + right) / 2 : left;\n};\n\nfunction noop() {}\nconst uid = (function() {\n let id = 0;\n return function() {\n return id++;\n };\n}());\nfunction isNullOrUndef(value) {\n return value === null || typeof value === 'undefined';\n}\nfunction isArray(value) {\n if (Array.isArray && Array.isArray(value)) {\n return true;\n }\n const type = Object.prototype.toString.call(value);\n if (type.substr(0, 7) === '[object' && type.substr(-6) === 'Array]') {\n return true;\n }\n return false;\n}\nfunction isObject(value) {\n return value !== null && Object.prototype.toString.call(value) === '[object Object]';\n}\nconst isNumberFinite = (value) => (typeof value === 'number' || value instanceof Number) && isFinite(+value);\nfunction finiteOrDefault(value, defaultValue) {\n return isNumberFinite(value) ? value : defaultValue;\n}\nfunction valueOrDefault(value, defaultValue) {\n return typeof value === 'undefined' ? defaultValue : value;\n}\nconst toPercentage = (value, dimension) =>\n typeof value === 'string' && value.endsWith('%') ?\n parseFloat(value) / 100\n : value / dimension;\nconst toDimension = (value, dimension) =>\n typeof value === 'string' && value.endsWith('%') ?\n parseFloat(value) / 100 * dimension\n : +value;\nfunction callback(fn, args, thisArg) {\n if (fn && typeof fn.call === 'function') {\n return fn.apply(thisArg, args);\n }\n}\nfunction each(loopable, fn, thisArg, reverse) {\n let i, len, keys;\n if (isArray(loopable)) {\n len = loopable.length;\n if (reverse) {\n for (i = len - 1; i >= 0; i--) {\n fn.call(thisArg, loopable[i], i);\n }\n } else {\n for (i = 0; i < len; i++) {\n fn.call(thisArg, loopable[i], i);\n }\n }\n } else if (isObject(loopable)) {\n keys = Object.keys(loopable);\n len = keys.length;\n for (i = 0; i < len; i++) {\n fn.call(thisArg, loopable[keys[i]], keys[i]);\n }\n }\n}\nfunction _elementsEqual(a0, a1) {\n let i, ilen, v0, v1;\n if (!a0 || !a1 || a0.length !== a1.length) {\n return false;\n }\n for (i = 0, ilen = a0.length; i < ilen; ++i) {\n v0 = a0[i];\n v1 = a1[i];\n if (v0.datasetIndex !== v1.datasetIndex || v0.index !== v1.index) {\n return false;\n }\n }\n return true;\n}\nfunction clone$1(source) {\n if (isArray(source)) {\n return source.map(clone$1);\n }\n if (isObject(source)) {\n const target = Object.create(null);\n const keys = Object.keys(source);\n const klen = keys.length;\n let k = 0;\n for (; k < klen; ++k) {\n target[keys[k]] = clone$1(source[keys[k]]);\n }\n return target;\n }\n return source;\n}\nfunction isValidKey(key) {\n return ['__proto__', 'prototype', 'constructor'].indexOf(key) === -1;\n}\nfunction _merger(key, target, source, options) {\n if (!isValidKey(key)) {\n return;\n }\n const tval = target[key];\n const sval = source[key];\n if (isObject(tval) && isObject(sval)) {\n merge(tval, sval, options);\n } else {\n target[key] = clone$1(sval);\n }\n}\nfunction merge(target, source, options) {\n const sources = isArray(source) ? source : [source];\n const ilen = sources.length;\n if (!isObject(target)) {\n return target;\n }\n options = options || {};\n const merger = options.merger || _merger;\n for (let i = 0; i < ilen; ++i) {\n source = sources[i];\n if (!isObject(source)) {\n continue;\n }\n const keys = Object.keys(source);\n for (let k = 0, klen = keys.length; k < klen; ++k) {\n merger(keys[k], target, source, options);\n }\n }\n return target;\n}\nfunction mergeIf(target, source) {\n return merge(target, source, {merger: _mergerIf});\n}\nfunction _mergerIf(key, target, source) {\n if (!isValidKey(key)) {\n return;\n }\n const tval = target[key];\n const sval = source[key];\n if (isObject(tval) && isObject(sval)) {\n mergeIf(tval, sval);\n } else if (!Object.prototype.hasOwnProperty.call(target, key)) {\n target[key] = clone$1(sval);\n }\n}\nfunction _deprecated(scope, value, previous, current) {\n if (value !== undefined) {\n console.warn(scope + ': \"' + previous +\n\t\t\t'\" is deprecated. Please use \"' + current + '\" instead');\n }\n}\nconst emptyString = '';\nconst dot = '.';\nfunction indexOfDotOrLength(key, start) {\n const idx = key.indexOf(dot, start);\n return idx === -1 ? key.length : idx;\n}\nfunction resolveObjectKey(obj, key) {\n if (key === emptyString) {\n return obj;\n }\n let pos = 0;\n let idx = indexOfDotOrLength(key, pos);\n while (obj && idx > pos) {\n obj = obj[key.substr(pos, idx - pos)];\n pos = idx + 1;\n idx = indexOfDotOrLength(key, pos);\n }\n return obj;\n}\nfunction _capitalize(str) {\n return str.charAt(0).toUpperCase() + str.slice(1);\n}\nconst defined = (value) => typeof value !== 'undefined';\nconst isFunction = (value) => typeof value === 'function';\nconst setsEqual = (a, b) => {\n if (a.size !== b.size) {\n return false;\n }\n for (const item of a) {\n if (!b.has(item)) {\n return false;\n }\n }\n return true;\n};\n\nconst PI = Math.PI;\nconst TAU = 2 * PI;\nconst PITAU = TAU + PI;\nconst INFINITY = Number.POSITIVE_INFINITY;\nconst RAD_PER_DEG = PI / 180;\nconst HALF_PI = PI / 2;\nconst QUARTER_PI = PI / 4;\nconst TWO_THIRDS_PI = PI * 2 / 3;\nconst log10 = Math.log10;\nconst sign = Math.sign;\nfunction niceNum(range) {\n const roundedRange = Math.round(range);\n range = almostEquals(range, roundedRange, range / 1000) ? roundedRange : range;\n const niceRange = Math.pow(10, Math.floor(log10(range)));\n const fraction = range / niceRange;\n const niceFraction = fraction <= 1 ? 1 : fraction <= 2 ? 2 : fraction <= 5 ? 5 : 10;\n return niceFraction * niceRange;\n}\nfunction _factorize(value) {\n const result = [];\n const sqrt = Math.sqrt(value);\n let i;\n for (i = 1; i < sqrt; i++) {\n if (value % i === 0) {\n result.push(i);\n result.push(value / i);\n }\n }\n if (sqrt === (sqrt | 0)) {\n result.push(sqrt);\n }\n result.sort((a, b) => a - b).pop();\n return result;\n}\nfunction isNumber(n) {\n return !isNaN(parseFloat(n)) && isFinite(n);\n}\nfunction almostEquals(x, y, epsilon) {\n return Math.abs(x - y) < epsilon;\n}\nfunction almostWhole(x, epsilon) {\n const rounded = Math.round(x);\n return ((rounded - epsilon) <= x) && ((rounded + epsilon) >= x);\n}\nfunction _setMinAndMaxByKey(array, target, property) {\n let i, ilen, value;\n for (i = 0, ilen = array.length; i < ilen; i++) {\n value = array[i][property];\n if (!isNaN(value)) {\n target.min = Math.min(target.min, value);\n target.max = Math.max(target.max, value);\n }\n }\n}\nfunction toRadians(degrees) {\n return degrees * (PI / 180);\n}\nfunction toDegrees(radians) {\n return radians * (180 / PI);\n}\nfunction _decimalPlaces(x) {\n if (!isNumberFinite(x)) {\n return;\n }\n let e = 1;\n let p = 0;\n while (Math.round(x * e) / e !== x) {\n e *= 10;\n p++;\n }\n return p;\n}\nfunction getAngleFromPoint(centrePoint, anglePoint) {\n const distanceFromXCenter = anglePoint.x - centrePoint.x;\n const distanceFromYCenter = anglePoint.y - centrePoint.y;\n const radialDistanceFromCenter = Math.sqrt(distanceFromXCenter * distanceFromXCenter + distanceFromYCenter * distanceFromYCenter);\n let angle = Math.atan2(distanceFromYCenter, distanceFromXCenter);\n if (angle < (-0.5 * PI)) {\n angle += TAU;\n }\n return {\n angle,\n distance: radialDistanceFromCenter\n };\n}\nfunction distanceBetweenPoints(pt1, pt2) {\n return Math.sqrt(Math.pow(pt2.x - pt1.x, 2) + Math.pow(pt2.y - pt1.y, 2));\n}\nfunction _angleDiff(a, b) {\n return (a - b + PITAU) % TAU - PI;\n}\nfunction _normalizeAngle(a) {\n return (a % TAU + TAU) % TAU;\n}\nfunction _angleBetween(angle, start, end, sameAngleIsFullCircle) {\n const a = _normalizeAngle(angle);\n const s = _normalizeAngle(start);\n const e = _normalizeAngle(end);\n const angleToStart = _normalizeAngle(s - a);\n const angleToEnd = _normalizeAngle(e - a);\n const startToAngle = _normalizeAngle(a - s);\n const endToAngle = _normalizeAngle(a - e);\n return a === s || a === e || (sameAngleIsFullCircle && s === e)\n || (angleToStart > angleToEnd && startToAngle < endToAngle);\n}\nfunction _limitValue(value, min, max) {\n return Math.max(min, Math.min(max, value));\n}\nfunction _int16Range(value) {\n return _limitValue(value, -32768, 32767);\n}\n\nconst atEdge = (t) => t === 0 || t === 1;\nconst elasticIn = (t, s, p) => -(Math.pow(2, 10 * (t -= 1)) * Math.sin((t - s) * TAU / p));\nconst elasticOut = (t, s, p) => Math.pow(2, -10 * t) * Math.sin((t - s) * TAU / p) + 1;\nconst effects = {\n linear: t => t,\n easeInQuad: t => t * t,\n easeOutQuad: t => -t * (t - 2),\n easeInOutQuad: t => ((t /= 0.5) < 1)\n ? 0.5 * t * t\n : -0.5 * ((--t) * (t - 2) - 1),\n easeInCubic: t => t * t * t,\n easeOutCubic: t => (t -= 1) * t * t + 1,\n easeInOutCubic: t => ((t /= 0.5) < 1)\n ? 0.5 * t * t * t\n : 0.5 * ((t -= 2) * t * t + 2),\n easeInQuart: t => t * t * t * t,\n easeOutQuart: t => -((t -= 1) * t * t * t - 1),\n easeInOutQuart: t => ((t /= 0.5) < 1)\n ? 0.5 * t * t * t * t\n : -0.5 * ((t -= 2) * t * t * t - 2),\n easeInQuint: t => t * t * t * t * t,\n easeOutQuint: t => (t -= 1) * t * t * t * t + 1,\n easeInOutQuint: t => ((t /= 0.5) < 1)\n ? 0.5 * t * t * t * t * t\n : 0.5 * ((t -= 2) * t * t * t * t + 2),\n easeInSine: t => -Math.cos(t * HALF_PI) + 1,\n easeOutSine: t => Math.sin(t * HALF_PI),\n easeInOutSine: t => -0.5 * (Math.cos(PI * t) - 1),\n easeInExpo: t => (t === 0) ? 0 : Math.pow(2, 10 * (t - 1)),\n easeOutExpo: t => (t === 1) ? 1 : -Math.pow(2, -10 * t) + 1,\n easeInOutExpo: t => atEdge(t) ? t : t < 0.5\n ? 0.5 * Math.pow(2, 10 * (t * 2 - 1))\n : 0.5 * (-Math.pow(2, -10 * (t * 2 - 1)) + 2),\n easeInCirc: t => (t >= 1) ? t : -(Math.sqrt(1 - t * t) - 1),\n easeOutCirc: t => Math.sqrt(1 - (t -= 1) * t),\n easeInOutCirc: t => ((t /= 0.5) < 1)\n ? -0.5 * (Math.sqrt(1 - t * t) - 1)\n : 0.5 * (Math.sqrt(1 - (t -= 2) * t) + 1),\n easeInElastic: t => atEdge(t) ? t : elasticIn(t, 0.075, 0.3),\n easeOutElastic: t => atEdge(t) ? t : elasticOut(t, 0.075, 0.3),\n easeInOutElastic(t) {\n const s = 0.1125;\n const p = 0.45;\n return atEdge(t) ? t :\n t < 0.5\n ? 0.5 * elasticIn(t * 2, s, p)\n : 0.5 + 0.5 * elasticOut(t * 2 - 1, s, p);\n },\n easeInBack(t) {\n const s = 1.70158;\n return t * t * ((s + 1) * t - s);\n },\n easeOutBack(t) {\n const s = 1.70158;\n return (t -= 1) * t * ((s + 1) * t + s) + 1;\n },\n easeInOutBack(t) {\n let s = 1.70158;\n if ((t /= 0.5) < 1) {\n return 0.5 * (t * t * (((s *= (1.525)) + 1) * t - s));\n }\n return 0.5 * ((t -= 2) * t * (((s *= (1.525)) + 1) * t + s) + 2);\n },\n easeInBounce: t => 1 - effects.easeOutBounce(1 - t),\n easeOutBounce(t) {\n const m = 7.5625;\n const d = 2.75;\n if (t < (1 / d)) {\n return m * t * t;\n }\n if (t < (2 / d)) {\n return m * (t -= (1.5 / d)) * t + 0.75;\n }\n if (t < (2.5 / d)) {\n return m * (t -= (2.25 / d)) * t + 0.9375;\n }\n return m * (t -= (2.625 / d)) * t + 0.984375;\n },\n easeInOutBounce: t => (t < 0.5)\n ? effects.easeInBounce(t * 2) * 0.5\n : effects.easeOutBounce(t * 2 - 1) * 0.5 + 0.5,\n};\n\n/*!\n * @kurkle/color v0.1.9\n * https://github.com/kurkle/color#readme\n * (c) 2020 Jukka Kurkela\n * Released under the MIT License\n */\nconst map = {0: 0, 1: 1, 2: 2, 3: 3, 4: 4, 5: 5, 6: 6, 7: 7, 8: 8, 9: 9, A: 10, B: 11, C: 12, D: 13, E: 14, F: 15, a: 10, b: 11, c: 12, d: 13, e: 14, f: 15};\nconst hex = '0123456789ABCDEF';\nconst h1 = (b) => hex[b & 0xF];\nconst h2 = (b) => hex[(b & 0xF0) >> 4] + hex[b & 0xF];\nconst eq = (b) => (((b & 0xF0) >> 4) === (b & 0xF));\nfunction isShort(v) {\n\treturn eq(v.r) && eq(v.g) && eq(v.b) && eq(v.a);\n}\nfunction hexParse(str) {\n\tvar len = str.length;\n\tvar ret;\n\tif (str[0] === '#') {\n\t\tif (len === 4 || len === 5) {\n\t\t\tret = {\n\t\t\t\tr: 255 & map[str[1]] * 17,\n\t\t\t\tg: 255 & map[str[2]] * 17,\n\t\t\t\tb: 255 & map[str[3]] * 17,\n\t\t\t\ta: len === 5 ? map[str[4]] * 17 : 255\n\t\t\t};\n\t\t} else if (len === 7 || len === 9) {\n\t\t\tret = {\n\t\t\t\tr: map[str[1]] << 4 | map[str[2]],\n\t\t\t\tg: map[str[3]] << 4 | map[str[4]],\n\t\t\t\tb: map[str[5]] << 4 | map[str[6]],\n\t\t\t\ta: len === 9 ? (map[str[7]] << 4 | map[str[8]]) : 255\n\t\t\t};\n\t\t}\n\t}\n\treturn ret;\n}\nfunction hexString(v) {\n\tvar f = isShort(v) ? h1 : h2;\n\treturn v\n\t\t? '#' + f(v.r) + f(v.g) + f(v.b) + (v.a < 255 ? f(v.a) : '')\n\t\t: v;\n}\nfunction round(v) {\n\treturn v + 0.5 | 0;\n}\nconst lim = (v, l, h) => Math.max(Math.min(v, h), l);\nfunction p2b(v) {\n\treturn lim(round(v * 2.55), 0, 255);\n}\nfunction n2b(v) {\n\treturn lim(round(v * 255), 0, 255);\n}\nfunction b2n(v) {\n\treturn lim(round(v / 2.55) / 100, 0, 1);\n}\nfunction n2p(v) {\n\treturn lim(round(v * 100), 0, 100);\n}\nconst RGB_RE = /^rgba?\\(\\s*([-+.\\d]+)(%)?[\\s,]+([-+.e\\d]+)(%)?[\\s,]+([-+.e\\d]+)(%)?(?:[\\s,/]+([-+.e\\d]+)(%)?)?\\s*\\)$/;\nfunction rgbParse(str) {\n\tconst m = RGB_RE.exec(str);\n\tlet a = 255;\n\tlet r, g, b;\n\tif (!m) {\n\t\treturn;\n\t}\n\tif (m[7] !== r) {\n\t\tconst v = +m[7];\n\t\ta = 255 & (m[8] ? p2b(v) : v * 255);\n\t}\n\tr = +m[1];\n\tg = +m[3];\n\tb = +m[5];\n\tr = 255 & (m[2] ? p2b(r) : r);\n\tg = 255 & (m[4] ? p2b(g) : g);\n\tb = 255 & (m[6] ? p2b(b) : b);\n\treturn {\n\t\tr: r,\n\t\tg: g,\n\t\tb: b,\n\t\ta: a\n\t};\n}\nfunction rgbString(v) {\n\treturn v && (\n\t\tv.a < 255\n\t\t\t? `rgba(${v.r}, ${v.g}, ${v.b}, ${b2n(v.a)})`\n\t\t\t: `rgb(${v.r}, ${v.g}, ${v.b})`\n\t);\n}\nconst HUE_RE = /^(hsla?|hwb|hsv)\\(\\s*([-+.e\\d]+)(?:deg)?[\\s,]+([-+.e\\d]+)%[\\s,]+([-+.e\\d]+)%(?:[\\s,]+([-+.e\\d]+)(%)?)?\\s*\\)$/;\nfunction hsl2rgbn(h, s, l) {\n\tconst a = s * Math.min(l, 1 - l);\n\tconst f = (n, k = (n + h / 30) % 12) => l - a * Math.max(Math.min(k - 3, 9 - k, 1), -1);\n\treturn [f(0), f(8), f(4)];\n}\nfunction hsv2rgbn(h, s, v) {\n\tconst f = (n, k = (n + h / 60) % 6) => v - v * s * Math.max(Math.min(k, 4 - k, 1), 0);\n\treturn [f(5), f(3), f(1)];\n}\nfunction hwb2rgbn(h, w, b) {\n\tconst rgb = hsl2rgbn(h, 1, 0.5);\n\tlet i;\n\tif (w + b > 1) {\n\t\ti = 1 / (w + b);\n\t\tw *= i;\n\t\tb *= i;\n\t}\n\tfor (i = 0; i < 3; i++) {\n\t\trgb[i] *= 1 - w - b;\n\t\trgb[i] += w;\n\t}\n\treturn rgb;\n}\nfunction rgb2hsl(v) {\n\tconst range = 255;\n\tconst r = v.r / range;\n\tconst g = v.g / range;\n\tconst b = v.b / range;\n\tconst max = Math.max(r, g, b);\n\tconst min = Math.min(r, g, b);\n\tconst l = (max + min) / 2;\n\tlet h, s, d;\n\tif (max !== min) {\n\t\td = max - min;\n\t\ts = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n\t\th = max === r\n\t\t\t? ((g - b) / d) + (g < b ? 6 : 0)\n\t\t\t: max === g\n\t\t\t\t? (b - r) / d + 2\n\t\t\t\t: (r - g) / d + 4;\n\t\th = h * 60 + 0.5;\n\t}\n\treturn [h | 0, s || 0, l];\n}\nfunction calln(f, a, b, c) {\n\treturn (\n\t\tArray.isArray(a)\n\t\t\t? f(a[0], a[1], a[2])\n\t\t\t: f(a, b, c)\n\t).map(n2b);\n}\nfunction hsl2rgb(h, s, l) {\n\treturn calln(hsl2rgbn, h, s, l);\n}\nfunction hwb2rgb(h, w, b) {\n\treturn calln(hwb2rgbn, h, w, b);\n}\nfunction hsv2rgb(h, s, v) {\n\treturn calln(hsv2rgbn, h, s, v);\n}\nfunction hue(h) {\n\treturn (h % 360 + 360) % 360;\n}\nfunction hueParse(str) {\n\tconst m = HUE_RE.exec(str);\n\tlet a = 255;\n\tlet v;\n\tif (!m) {\n\t\treturn;\n\t}\n\tif (m[5] !== v) {\n\t\ta = m[6] ? p2b(+m[5]) : n2b(+m[5]);\n\t}\n\tconst h = hue(+m[2]);\n\tconst p1 = +m[3] / 100;\n\tconst p2 = +m[4] / 100;\n\tif (m[1] === 'hwb') {\n\t\tv = hwb2rgb(h, p1, p2);\n\t} else if (m[1] === 'hsv') {\n\t\tv = hsv2rgb(h, p1, p2);\n\t} else {\n\t\tv = hsl2rgb(h, p1, p2);\n\t}\n\treturn {\n\t\tr: v[0],\n\t\tg: v[1],\n\t\tb: v[2],\n\t\ta: a\n\t};\n}\nfunction rotate(v, deg) {\n\tvar h = rgb2hsl(v);\n\th[0] = hue(h[0] + deg);\n\th = hsl2rgb(h);\n\tv.r = h[0];\n\tv.g = h[1];\n\tv.b = h[2];\n}\nfunction hslString(v) {\n\tif (!v) {\n\t\treturn;\n\t}\n\tconst a = rgb2hsl(v);\n\tconst h = a[0];\n\tconst s = n2p(a[1]);\n\tconst l = n2p(a[2]);\n\treturn v.a < 255\n\t\t? `hsla(${h}, ${s}%, ${l}%, ${b2n(v.a)})`\n\t\t: `hsl(${h}, ${s}%, ${l}%)`;\n}\nconst map$1 = {\n\tx: 'dark',\n\tZ: 'light',\n\tY: 're',\n\tX: 'blu',\n\tW: 'gr',\n\tV: 'medium',\n\tU: 'slate',\n\tA: 'ee',\n\tT: 'ol',\n\tS: 'or',\n\tB: 'ra',\n\tC: 'lateg',\n\tD: 'ights',\n\tR: 'in',\n\tQ: 'turquois',\n\tE: 'hi',\n\tP: 'ro',\n\tO: 'al',\n\tN: 'le',\n\tM: 'de',\n\tL: 'yello',\n\tF: 'en',\n\tK: 'ch',\n\tG: 'arks',\n\tH: 'ea',\n\tI: 'ightg',\n\tJ: 'wh'\n};\nconst names = {\n\tOiceXe: 'f0f8ff',\n\tantiquewEte: 'faebd7',\n\taqua: 'ffff',\n\taquamarRe: '7fffd4',\n\tazuY: 'f0ffff',\n\tbeige: 'f5f5dc',\n\tbisque: 'ffe4c4',\n\tblack: '0',\n\tblanKedOmond: 'ffebcd',\n\tXe: 'ff',\n\tXeviTet: '8a2be2',\n\tbPwn: 'a52a2a',\n\tburlywood: 'deb887',\n\tcaMtXe: '5f9ea0',\n\tKartYuse: '7fff00',\n\tKocTate: 'd2691e',\n\tcSO: 'ff7f50',\n\tcSnflowerXe: '6495ed',\n\tcSnsilk: 'fff8dc',\n\tcrimson: 'dc143c',\n\tcyan: 'ffff',\n\txXe: '8b',\n\txcyan: '8b8b',\n\txgTMnPd: 'b8860b',\n\txWay: 'a9a9a9',\n\txgYF: '6400',\n\txgYy: 'a9a9a9',\n\txkhaki: 'bdb76b',\n\txmagFta: '8b008b',\n\txTivegYF: '556b2f',\n\txSange: 'ff8c00',\n\txScEd: '9932cc',\n\txYd: '8b0000',\n\txsOmon: 'e9967a',\n\txsHgYF: '8fbc8f',\n\txUXe: '483d8b',\n\txUWay: '2f4f4f',\n\txUgYy: '2f4f4f',\n\txQe: 'ced1',\n\txviTet: '9400d3',\n\tdAppRk: 'ff1493',\n\tdApskyXe: 'bfff',\n\tdimWay: '696969',\n\tdimgYy: '696969',\n\tdodgerXe: '1e90ff',\n\tfiYbrick: 'b22222',\n\tflSOwEte: 'fffaf0',\n\tfoYstWAn: '228b22',\n\tfuKsia: 'ff00ff',\n\tgaRsbSo: 'dcdcdc',\n\tghostwEte: 'f8f8ff',\n\tgTd: 'ffd700',\n\tgTMnPd: 'daa520',\n\tWay: '808080',\n\tgYF: '8000',\n\tgYFLw: 'adff2f',\n\tgYy: '808080',\n\thoneyMw: 'f0fff0',\n\thotpRk: 'ff69b4',\n\tRdianYd: 'cd5c5c',\n\tRdigo: '4b0082',\n\tivSy: 'fffff0',\n\tkhaki: 'f0e68c',\n\tlavFMr: 'e6e6fa',\n\tlavFMrXsh: 'fff0f5',\n\tlawngYF: '7cfc00',\n\tNmoncEffon: 'fffacd',\n\tZXe: 'add8e6',\n\tZcSO: 'f08080',\n\tZcyan: 'e0ffff',\n\tZgTMnPdLw: 'fafad2',\n\tZWay: 'd3d3d3',\n\tZgYF: '90ee90',\n\tZgYy: 'd3d3d3',\n\tZpRk: 'ffb6c1',\n\tZsOmon: 'ffa07a',\n\tZsHgYF: '20b2aa',\n\tZskyXe: '87cefa',\n\tZUWay: '778899',\n\tZUgYy: '778899',\n\tZstAlXe: 'b0c4de',\n\tZLw: 'ffffe0',\n\tlime: 'ff00',\n\tlimegYF: '32cd32',\n\tlRF: 'faf0e6',\n\tmagFta: 'ff00ff',\n\tmaPon: '800000',\n\tVaquamarRe: '66cdaa',\n\tVXe: 'cd',\n\tVScEd: 'ba55d3',\n\tVpurpN: '9370db',\n\tVsHgYF: '3cb371',\n\tVUXe: '7b68ee',\n\tVsprRggYF: 'fa9a',\n\tVQe: '48d1cc',\n\tVviTetYd: 'c71585',\n\tmidnightXe: '191970',\n\tmRtcYam: 'f5fffa',\n\tmistyPse: 'ffe4e1',\n\tmoccasR: 'ffe4b5',\n\tnavajowEte: 'ffdead',\n\tnavy: '80',\n\tTdlace: 'fdf5e6',\n\tTive: '808000',\n\tTivedBb: '6b8e23',\n\tSange: 'ffa500',\n\tSangeYd: 'ff4500',\n\tScEd: 'da70d6',\n\tpOegTMnPd: 'eee8aa',\n\tpOegYF: '98fb98',\n\tpOeQe: 'afeeee',\n\tpOeviTetYd: 'db7093',\n\tpapayawEp: 'ffefd5',\n\tpHKpuff: 'ffdab9',\n\tperu: 'cd853f',\n\tpRk: 'ffc0cb',\n\tplum: 'dda0dd',\n\tpowMrXe: 'b0e0e6',\n\tpurpN: '800080',\n\tYbeccapurpN: '663399',\n\tYd: 'ff0000',\n\tPsybrown: 'bc8f8f',\n\tPyOXe: '4169e1',\n\tsaddNbPwn: '8b4513',\n\tsOmon: 'fa8072',\n\tsandybPwn: 'f4a460',\n\tsHgYF: '2e8b57',\n\tsHshell: 'fff5ee',\n\tsiFna: 'a0522d',\n\tsilver: 'c0c0c0',\n\tskyXe: '87ceeb',\n\tUXe: '6a5acd',\n\tUWay: '708090',\n\tUgYy: '708090',\n\tsnow: 'fffafa',\n\tsprRggYF: 'ff7f',\n\tstAlXe: '4682b4',\n\ttan: 'd2b48c',\n\tteO: '8080',\n\ttEstN: 'd8bfd8',\n\ttomato: 'ff6347',\n\tQe: '40e0d0',\n\tviTet: 'ee82ee',\n\tJHt: 'f5deb3',\n\twEte: 'ffffff',\n\twEtesmoke: 'f5f5f5',\n\tLw: 'ffff00',\n\tLwgYF: '9acd32'\n};\nfunction unpack() {\n\tconst unpacked = {};\n\tconst keys = Object.keys(names);\n\tconst tkeys = Object.keys(map$1);\n\tlet i, j, k, ok, nk;\n\tfor (i = 0; i < keys.length; i++) {\n\t\tok = nk = keys[i];\n\t\tfor (j = 0; j < tkeys.length; j++) {\n\t\t\tk = tkeys[j];\n\t\t\tnk = nk.replace(k, map$1[k]);\n\t\t}\n\t\tk = parseInt(names[ok], 16);\n\t\tunpacked[nk] = [k >> 16 & 0xFF, k >> 8 & 0xFF, k & 0xFF];\n\t}\n\treturn unpacked;\n}\nlet names$1;\nfunction nameParse(str) {\n\tif (!names$1) {\n\t\tnames$1 = unpack();\n\t\tnames$1.transparent = [0, 0, 0, 0];\n\t}\n\tconst a = names$1[str.toLowerCase()];\n\treturn a && {\n\t\tr: a[0],\n\t\tg: a[1],\n\t\tb: a[2],\n\t\ta: a.length === 4 ? a[3] : 255\n\t};\n}\nfunction modHSL(v, i, ratio) {\n\tif (v) {\n\t\tlet tmp = rgb2hsl(v);\n\t\ttmp[i] = Math.max(0, Math.min(tmp[i] + tmp[i] * ratio, i === 0 ? 360 : 1));\n\t\ttmp = hsl2rgb(tmp);\n\t\tv.r = tmp[0];\n\t\tv.g = tmp[1];\n\t\tv.b = tmp[2];\n\t}\n}\nfunction clone(v, proto) {\n\treturn v ? Object.assign(proto || {}, v) : v;\n}\nfunction fromObject(input) {\n\tvar v = {r: 0, g: 0, b: 0, a: 255};\n\tif (Array.isArray(input)) {\n\t\tif (input.length >= 3) {\n\t\t\tv = {r: input[0], g: input[1], b: input[2], a: 255};\n\t\t\tif (input.length > 3) {\n\t\t\t\tv.a = n2b(input[3]);\n\t\t\t}\n\t\t}\n\t} else {\n\t\tv = clone(input, {r: 0, g: 0, b: 0, a: 1});\n\t\tv.a = n2b(v.a);\n\t}\n\treturn v;\n}\nfunction functionParse(str) {\n\tif (str.charAt(0) === 'r') {\n\t\treturn rgbParse(str);\n\t}\n\treturn hueParse(str);\n}\nclass Color {\n\tconstructor(input) {\n\t\tif (input instanceof Color) {\n\t\t\treturn input;\n\t\t}\n\t\tconst type = typeof input;\n\t\tlet v;\n\t\tif (type === 'object') {\n\t\t\tv = fromObject(input);\n\t\t} else if (type === 'string') {\n\t\t\tv = hexParse(input) || nameParse(input) || functionParse(input);\n\t\t}\n\t\tthis._rgb = v;\n\t\tthis._valid = !!v;\n\t}\n\tget valid() {\n\t\treturn this._valid;\n\t}\n\tget rgb() {\n\t\tvar v = clone(this._rgb);\n\t\tif (v) {\n\t\t\tv.a = b2n(v.a);\n\t\t}\n\t\treturn v;\n\t}\n\tset rgb(obj) {\n\t\tthis._rgb = fromObject(obj);\n\t}\n\trgbString() {\n\t\treturn this._valid ? rgbString(this._rgb) : this._rgb;\n\t}\n\thexString() {\n\t\treturn this._valid ? hexString(this._rgb) : this._rgb;\n\t}\n\thslString() {\n\t\treturn this._valid ? hslString(this._rgb) : this._rgb;\n\t}\n\tmix(color, weight) {\n\t\tconst me = this;\n\t\tif (color) {\n\t\t\tconst c1 = me.rgb;\n\t\t\tconst c2 = color.rgb;\n\t\t\tlet w2;\n\t\t\tconst p = weight === w2 ? 0.5 : weight;\n\t\t\tconst w = 2 * p - 1;\n\t\t\tconst a = c1.a - c2.a;\n\t\t\tconst w1 = ((w * a === -1 ? w : (w + a) / (1 + w * a)) + 1) / 2.0;\n\t\t\tw2 = 1 - w1;\n\t\t\tc1.r = 0xFF & w1 * c1.r + w2 * c2.r + 0.5;\n\t\t\tc1.g = 0xFF & w1 * c1.g + w2 * c2.g + 0.5;\n\t\t\tc1.b = 0xFF & w1 * c1.b + w2 * c2.b + 0.5;\n\t\t\tc1.a = p * c1.a + (1 - p) * c2.a;\n\t\t\tme.rgb = c1;\n\t\t}\n\t\treturn me;\n\t}\n\tclone() {\n\t\treturn new Color(this.rgb);\n\t}\n\talpha(a) {\n\t\tthis._rgb.a = n2b(a);\n\t\treturn this;\n\t}\n\tclearer(ratio) {\n\t\tconst rgb = this._rgb;\n\t\trgb.a *= 1 - ratio;\n\t\treturn this;\n\t}\n\tgreyscale() {\n\t\tconst rgb = this._rgb;\n\t\tconst val = round(rgb.r * 0.3 + rgb.g * 0.59 + rgb.b * 0.11);\n\t\trgb.r = rgb.g = rgb.b = val;\n\t\treturn this;\n\t}\n\topaquer(ratio) {\n\t\tconst rgb = this._rgb;\n\t\trgb.a *= 1 + ratio;\n\t\treturn this;\n\t}\n\tnegate() {\n\t\tconst v = this._rgb;\n\t\tv.r = 255 - v.r;\n\t\tv.g = 255 - v.g;\n\t\tv.b = 255 - v.b;\n\t\treturn this;\n\t}\n\tlighten(ratio) {\n\t\tmodHSL(this._rgb, 2, ratio);\n\t\treturn this;\n\t}\n\tdarken(ratio) {\n\t\tmodHSL(this._rgb, 2, -ratio);\n\t\treturn this;\n\t}\n\tsaturate(ratio) {\n\t\tmodHSL(this._rgb, 1, ratio);\n\t\treturn this;\n\t}\n\tdesaturate(ratio) {\n\t\tmodHSL(this._rgb, 1, -ratio);\n\t\treturn this;\n\t}\n\trotate(deg) {\n\t\trotate(this._rgb, deg);\n\t\treturn this;\n\t}\n}\nfunction index_esm(input) {\n\treturn new Color(input);\n}\n\nconst isPatternOrGradient = (value) => value instanceof CanvasGradient || value instanceof CanvasPattern;\nfunction color(value) {\n return isPatternOrGradient(value) ? value : index_esm(value);\n}\nfunction getHoverColor(value) {\n return isPatternOrGradient(value)\n ? value\n : index_esm(value).saturate(0.5).darken(0.1).hexString();\n}\n\nconst overrides = Object.create(null);\nconst descriptors = Object.create(null);\nfunction getScope$1(node, key) {\n if (!key) {\n return node;\n }\n const keys = key.split('.');\n for (let i = 0, n = keys.length; i < n; ++i) {\n const k = keys[i];\n node = node[k] || (node[k] = Object.create(null));\n }\n return node;\n}\nfunction set(root, scope, values) {\n if (typeof scope === 'string') {\n return merge(getScope$1(root, scope), values);\n }\n return merge(getScope$1(root, ''), scope);\n}\nclass Defaults {\n constructor(_descriptors) {\n this.animation = undefined;\n this.backgroundColor = 'rgba(0,0,0,0.1)';\n this.borderColor = 'rgba(0,0,0,0.1)';\n this.color = '#666';\n this.datasets = {};\n this.devicePixelRatio = (context) => context.chart.platform.getDevicePixelRatio();\n this.elements = {};\n this.events = [\n 'mousemove',\n 'mouseout',\n 'click',\n 'touchstart',\n 'touchmove'\n ];\n this.font = {\n family: \"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif\",\n size: 12,\n style: 'normal',\n lineHeight: 1.2,\n weight: null\n };\n this.hover = {};\n this.hoverBackgroundColor = (ctx, options) => getHoverColor(options.backgroundColor);\n this.hoverBorderColor = (ctx, options) => getHoverColor(options.borderColor);\n this.hoverColor = (ctx, options) => getHoverColor(options.color);\n this.indexAxis = 'x';\n this.interaction = {\n mode: 'nearest',\n intersect: true\n };\n this.maintainAspectRatio = true;\n this.onHover = null;\n this.onClick = null;\n this.parsing = true;\n this.plugins = {};\n this.responsive = true;\n this.scale = undefined;\n this.scales = {};\n this.showLine = true;\n this.describe(_descriptors);\n }\n set(scope, values) {\n return set(this, scope, values);\n }\n get(scope) {\n return getScope$1(this, scope);\n }\n describe(scope, values) {\n return set(descriptors, scope, values);\n }\n override(scope, values) {\n return set(overrides, scope, values);\n }\n route(scope, name, targetScope, targetName) {\n const scopeObject = getScope$1(this, scope);\n const targetScopeObject = getScope$1(this, targetScope);\n const privateName = '_' + name;\n Object.defineProperties(scopeObject, {\n [privateName]: {\n value: scopeObject[name],\n writable: true\n },\n [name]: {\n enumerable: true,\n get() {\n const local = this[privateName];\n const target = targetScopeObject[targetName];\n if (isObject(local)) {\n return Object.assign({}, target, local);\n }\n return valueOrDefault(local, target);\n },\n set(value) {\n this[privateName] = value;\n }\n }\n });\n }\n}\nvar defaults = new Defaults({\n _scriptable: (name) => !name.startsWith('on'),\n _indexable: (name) => name !== 'events',\n hover: {\n _fallback: 'interaction'\n },\n interaction: {\n _scriptable: false,\n _indexable: false,\n }\n});\n\nfunction toFontString(font) {\n if (!font || isNullOrUndef(font.size) || isNullOrUndef(font.family)) {\n return null;\n }\n return (font.style ? font.style + ' ' : '')\n\t\t+ (font.weight ? font.weight + ' ' : '')\n\t\t+ font.size + 'px '\n\t\t+ font.family;\n}\nfunction _measureText(ctx, data, gc, longest, string) {\n let textWidth = data[string];\n if (!textWidth) {\n textWidth = data[string] = ctx.measureText(string).width;\n gc.push(string);\n }\n if (textWidth > longest) {\n longest = textWidth;\n }\n return longest;\n}\nfunction _longestText(ctx, font, arrayOfThings, cache) {\n cache = cache || {};\n let data = cache.data = cache.data || {};\n let gc = cache.garbageCollect = cache.garbageCollect || [];\n if (cache.font !== font) {\n data = cache.data = {};\n gc = cache.garbageCollect = [];\n cache.font = font;\n }\n ctx.save();\n ctx.font = font;\n let longest = 0;\n const ilen = arrayOfThings.length;\n let i, j, jlen, thing, nestedThing;\n for (i = 0; i < ilen; i++) {\n thing = arrayOfThings[i];\n if (thing !== undefined && thing !== null && isArray(thing) !== true) {\n longest = _measureText(ctx, data, gc, longest, thing);\n } else if (isArray(thing)) {\n for (j = 0, jlen = thing.length; j < jlen; j++) {\n nestedThing = thing[j];\n if (nestedThing !== undefined && nestedThing !== null && !isArray(nestedThing)) {\n longest = _measureText(ctx, data, gc, longest, nestedThing);\n }\n }\n }\n }\n ctx.restore();\n const gcLen = gc.length / 2;\n if (gcLen > arrayOfThings.length) {\n for (i = 0; i < gcLen; i++) {\n delete data[gc[i]];\n }\n gc.splice(0, gcLen);\n }\n return longest;\n}\nfunction _alignPixel(chart, pixel, width) {\n const devicePixelRatio = chart.currentDevicePixelRatio;\n const halfWidth = width !== 0 ? Math.max(width / 2, 0.5) : 0;\n return Math.round((pixel - halfWidth) * devicePixelRatio) / devicePixelRatio + halfWidth;\n}\nfunction clearCanvas(canvas, ctx) {\n ctx = ctx || canvas.getContext('2d');\n ctx.save();\n ctx.resetTransform();\n ctx.clearRect(0, 0, canvas.width, canvas.height);\n ctx.restore();\n}\nfunction drawPoint(ctx, options, x, y) {\n let type, xOffset, yOffset, size, cornerRadius;\n const style = options.pointStyle;\n const rotation = options.rotation;\n const radius = options.radius;\n let rad = (rotation || 0) * RAD_PER_DEG;\n if (style && typeof style === 'object') {\n type = style.toString();\n if (type === '[object HTMLImageElement]' || type === '[object HTMLCanvasElement]') {\n ctx.save();\n ctx.translate(x, y);\n ctx.rotate(rad);\n ctx.drawImage(style, -style.width / 2, -style.height / 2, style.width, style.height);\n ctx.restore();\n return;\n }\n }\n if (isNaN(radius) || radius <= 0) {\n return;\n }\n ctx.beginPath();\n switch (style) {\n default:\n ctx.arc(x, y, radius, 0, TAU);\n ctx.closePath();\n break;\n case 'triangle':\n ctx.moveTo(x + Math.sin(rad) * radius, y - Math.cos(rad) * radius);\n rad += TWO_THIRDS_PI;\n ctx.lineTo(x + Math.sin(rad) * radius, y - Math.cos(rad) * radius);\n rad += TWO_THIRDS_PI;\n ctx.lineTo(x + Math.sin(rad) * radius, y - Math.cos(rad) * radius);\n ctx.closePath();\n break;\n case 'rectRounded':\n cornerRadius = radius * 0.516;\n size = radius - cornerRadius;\n xOffset = Math.cos(rad + QUARTER_PI) * size;\n yOffset = Math.sin(rad + QUARTER_PI) * size;\n ctx.arc(x - xOffset, y - yOffset, cornerRadius, rad - PI, rad - HALF_PI);\n ctx.arc(x + yOffset, y - xOffset, cornerRadius, rad - HALF_PI, rad);\n ctx.arc(x + xOffset, y + yOffset, cornerRadius, rad, rad + HALF_PI);\n ctx.arc(x - yOffset, y + xOffset, cornerRadius, rad + HALF_PI, rad + PI);\n ctx.closePath();\n break;\n case 'rect':\n if (!rotation) {\n size = Math.SQRT1_2 * radius;\n ctx.rect(x - size, y - size, 2 * size, 2 * size);\n break;\n }\n rad += QUARTER_PI;\n case 'rectRot':\n xOffset = Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n ctx.moveTo(x - xOffset, y - yOffset);\n ctx.lineTo(x + yOffset, y - xOffset);\n ctx.lineTo(x + xOffset, y + yOffset);\n ctx.lineTo(x - yOffset, y + xOffset);\n ctx.closePath();\n break;\n case 'crossRot':\n rad += QUARTER_PI;\n case 'cross':\n xOffset = Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n ctx.moveTo(x - xOffset, y - yOffset);\n ctx.lineTo(x + xOffset, y + yOffset);\n ctx.moveTo(x + yOffset, y - xOffset);\n ctx.lineTo(x - yOffset, y + xOffset);\n break;\n case 'star':\n xOffset = Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n ctx.moveTo(x - xOffset, y - yOffset);\n ctx.lineTo(x + xOffset, y + yOffset);\n ctx.moveTo(x + yOffset, y - xOffset);\n ctx.lineTo(x - yOffset, y + xOffset);\n rad += QUARTER_PI;\n xOffset = Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n ctx.moveTo(x - xOffset, y - yOffset);\n ctx.lineTo(x + xOffset, y + yOffset);\n ctx.moveTo(x + yOffset, y - xOffset);\n ctx.lineTo(x - yOffset, y + xOffset);\n break;\n case 'line':\n xOffset = Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n ctx.moveTo(x - xOffset, y - yOffset);\n ctx.lineTo(x + xOffset, y + yOffset);\n break;\n case 'dash':\n ctx.moveTo(x, y);\n ctx.lineTo(x + Math.cos(rad) * radius, y + Math.sin(rad) * radius);\n break;\n }\n ctx.fill();\n if (options.borderWidth > 0) {\n ctx.stroke();\n }\n}\nfunction _isPointInArea(point, area, margin) {\n margin = margin || 0.5;\n return !area || (point && point.x > area.left - margin && point.x < area.right + margin &&\n\t\tpoint.y > area.top - margin && point.y < area.bottom + margin);\n}\nfunction clipArea(ctx, area) {\n ctx.save();\n ctx.beginPath();\n ctx.rect(area.left, area.top, area.right - area.left, area.bottom - area.top);\n ctx.clip();\n}\nfunction unclipArea(ctx) {\n ctx.restore();\n}\nfunction _steppedLineTo(ctx, previous, target, flip, mode) {\n if (!previous) {\n return ctx.lineTo(target.x, target.y);\n }\n if (mode === 'middle') {\n const midpoint = (previous.x + target.x) / 2.0;\n ctx.lineTo(midpoint, previous.y);\n ctx.lineTo(midpoint, target.y);\n } else if (mode === 'after' !== !!flip) {\n ctx.lineTo(previous.x, target.y);\n } else {\n ctx.lineTo(target.x, previous.y);\n }\n ctx.lineTo(target.x, target.y);\n}\nfunction _bezierCurveTo(ctx, previous, target, flip) {\n if (!previous) {\n return ctx.lineTo(target.x, target.y);\n }\n ctx.bezierCurveTo(\n flip ? previous.cp1x : previous.cp2x,\n flip ? previous.cp1y : previous.cp2y,\n flip ? target.cp2x : target.cp1x,\n flip ? target.cp2y : target.cp1y,\n target.x,\n target.y);\n}\nfunction renderText(ctx, text, x, y, font, opts = {}) {\n const lines = isArray(text) ? text : [text];\n const stroke = opts.strokeWidth > 0 && opts.strokeColor !== '';\n let i, line;\n ctx.save();\n ctx.font = font.string;\n setRenderOpts(ctx, opts);\n for (i = 0; i < lines.length; ++i) {\n line = lines[i];\n if (stroke) {\n if (opts.strokeColor) {\n ctx.strokeStyle = opts.strokeColor;\n }\n if (!isNullOrUndef(opts.strokeWidth)) {\n ctx.lineWidth = opts.strokeWidth;\n }\n ctx.strokeText(line, x, y, opts.maxWidth);\n }\n ctx.fillText(line, x, y, opts.maxWidth);\n decorateText(ctx, x, y, line, opts);\n y += font.lineHeight;\n }\n ctx.restore();\n}\nfunction setRenderOpts(ctx, opts) {\n if (opts.translation) {\n ctx.translate(opts.translation[0], opts.translation[1]);\n }\n if (!isNullOrUndef(opts.rotation)) {\n ctx.rotate(opts.rotation);\n }\n if (opts.color) {\n ctx.fillStyle = opts.color;\n }\n if (opts.textAlign) {\n ctx.textAlign = opts.textAlign;\n }\n if (opts.textBaseline) {\n ctx.textBaseline = opts.textBaseline;\n }\n}\nfunction decorateText(ctx, x, y, line, opts) {\n if (opts.strikethrough || opts.underline) {\n const metrics = ctx.measureText(line);\n const left = x - metrics.actualBoundingBoxLeft;\n const right = x + metrics.actualBoundingBoxRight;\n const top = y - metrics.actualBoundingBoxAscent;\n const bottom = y + metrics.actualBoundingBoxDescent;\n const yDecoration = opts.strikethrough ? (top + bottom) / 2 : bottom;\n ctx.strokeStyle = ctx.fillStyle;\n ctx.beginPath();\n ctx.lineWidth = opts.decorationWidth || 2;\n ctx.moveTo(left, yDecoration);\n ctx.lineTo(right, yDecoration);\n ctx.stroke();\n }\n}\nfunction addRoundedRectPath(ctx, rect) {\n const {x, y, w, h, radius} = rect;\n ctx.arc(x + radius.topLeft, y + radius.topLeft, radius.topLeft, -HALF_PI, PI, true);\n ctx.lineTo(x, y + h - radius.bottomLeft);\n ctx.arc(x + radius.bottomLeft, y + h - radius.bottomLeft, radius.bottomLeft, PI, HALF_PI, true);\n ctx.lineTo(x + w - radius.bottomRight, y + h);\n ctx.arc(x + w - radius.bottomRight, y + h - radius.bottomRight, radius.bottomRight, HALF_PI, 0, true);\n ctx.lineTo(x + w, y + radius.topRight);\n ctx.arc(x + w - radius.topRight, y + radius.topRight, radius.topRight, 0, -HALF_PI, true);\n ctx.lineTo(x + radius.topLeft, y);\n}\n\nconst LINE_HEIGHT = new RegExp(/^(normal|(\\d+(?:\\.\\d+)?)(px|em|%)?)$/);\nconst FONT_STYLE = new RegExp(/^(normal|italic|initial|inherit|unset|(oblique( -?[0-9]?[0-9]deg)?))$/);\nfunction toLineHeight(value, size) {\n const matches = ('' + value).match(LINE_HEIGHT);\n if (!matches || matches[1] === 'normal') {\n return size * 1.2;\n }\n value = +matches[2];\n switch (matches[3]) {\n case 'px':\n return value;\n case '%':\n value /= 100;\n break;\n }\n return size * value;\n}\nconst numberOrZero = v => +v || 0;\nfunction _readValueToProps(value, props) {\n const ret = {};\n const objProps = isObject(props);\n const keys = objProps ? Object.keys(props) : props;\n const read = isObject(value)\n ? objProps\n ? prop => valueOrDefault(value[prop], value[props[prop]])\n : prop => value[prop]\n : () => value;\n for (const prop of keys) {\n ret[prop] = numberOrZero(read(prop));\n }\n return ret;\n}\nfunction toTRBL(value) {\n return _readValueToProps(value, {top: 'y', right: 'x', bottom: 'y', left: 'x'});\n}\nfunction toTRBLCorners(value) {\n return _readValueToProps(value, ['topLeft', 'topRight', 'bottomLeft', 'bottomRight']);\n}\nfunction toPadding(value) {\n const obj = toTRBL(value);\n obj.width = obj.left + obj.right;\n obj.height = obj.top + obj.bottom;\n return obj;\n}\nfunction toFont(options, fallback) {\n options = options || {};\n fallback = fallback || defaults.font;\n let size = valueOrDefault(options.size, fallback.size);\n if (typeof size === 'string') {\n size = parseInt(size, 10);\n }\n let style = valueOrDefault(options.style, fallback.style);\n if (style && !('' + style).match(FONT_STYLE)) {\n console.warn('Invalid font style specified: \"' + style + '\"');\n style = '';\n }\n const font = {\n family: valueOrDefault(options.family, fallback.family),\n lineHeight: toLineHeight(valueOrDefault(options.lineHeight, fallback.lineHeight), size),\n size,\n style,\n weight: valueOrDefault(options.weight, fallback.weight),\n string: ''\n };\n font.string = toFontString(font);\n return font;\n}\nfunction resolve(inputs, context, index, info) {\n let cacheable = true;\n let i, ilen, value;\n for (i = 0, ilen = inputs.length; i < ilen; ++i) {\n value = inputs[i];\n if (value === undefined) {\n continue;\n }\n if (context !== undefined && typeof value === 'function') {\n value = value(context);\n cacheable = false;\n }\n if (index !== undefined && isArray(value)) {\n value = value[index % value.length];\n cacheable = false;\n }\n if (value !== undefined) {\n if (info && !cacheable) {\n info.cacheable = false;\n }\n return value;\n }\n }\n}\nfunction _addGrace(minmax, grace, beginAtZero) {\n const {min, max} = minmax;\n const change = toDimension(grace, (max - min) / 2);\n const keepZero = (value, add) => beginAtZero && value === 0 ? 0 : value + add;\n return {\n min: keepZero(min, -Math.abs(change)),\n max: keepZero(max, change)\n };\n}\nfunction createContext(parentContext, context) {\n return Object.assign(Object.create(parentContext), context);\n}\n\nfunction _lookup(table, value, cmp) {\n cmp = cmp || ((index) => table[index] < value);\n let hi = table.length - 1;\n let lo = 0;\n let mid;\n while (hi - lo > 1) {\n mid = (lo + hi) >> 1;\n if (cmp(mid)) {\n lo = mid;\n } else {\n hi = mid;\n }\n }\n return {lo, hi};\n}\nconst _lookupByKey = (table, key, value) =>\n _lookup(table, value, index => table[index][key] < value);\nconst _rlookupByKey = (table, key, value) =>\n _lookup(table, value, index => table[index][key] >= value);\nfunction _filterBetween(values, min, max) {\n let start = 0;\n let end = values.length;\n while (start < end && values[start] < min) {\n start++;\n }\n while (end > start && values[end - 1] > max) {\n end--;\n }\n return start > 0 || end < values.length\n ? values.slice(start, end)\n : values;\n}\nconst arrayEvents = ['push', 'pop', 'shift', 'splice', 'unshift'];\nfunction listenArrayEvents(array, listener) {\n if (array._chartjs) {\n array._chartjs.listeners.push(listener);\n return;\n }\n Object.defineProperty(array, '_chartjs', {\n configurable: true,\n enumerable: false,\n value: {\n listeners: [listener]\n }\n });\n arrayEvents.forEach((key) => {\n const method = '_onData' + _capitalize(key);\n const base = array[key];\n Object.defineProperty(array, key, {\n configurable: true,\n enumerable: false,\n value(...args) {\n const res = base.apply(this, args);\n array._chartjs.listeners.forEach((object) => {\n if (typeof object[method] === 'function') {\n object[method](...args);\n }\n });\n return res;\n }\n });\n });\n}\nfunction unlistenArrayEvents(array, listener) {\n const stub = array._chartjs;\n if (!stub) {\n return;\n }\n const listeners = stub.listeners;\n const index = listeners.indexOf(listener);\n if (index !== -1) {\n listeners.splice(index, 1);\n }\n if (listeners.length > 0) {\n return;\n }\n arrayEvents.forEach((key) => {\n delete array[key];\n });\n delete array._chartjs;\n}\nfunction _arrayUnique(items) {\n const set = new Set();\n let i, ilen;\n for (i = 0, ilen = items.length; i < ilen; ++i) {\n set.add(items[i]);\n }\n if (set.size === ilen) {\n return items;\n }\n return Array.from(set);\n}\n\nfunction _createResolver(scopes, prefixes = [''], rootScopes = scopes, fallback, getTarget = () => scopes[0]) {\n if (!defined(fallback)) {\n fallback = _resolve('_fallback', scopes);\n }\n const cache = {\n [Symbol.toStringTag]: 'Object',\n _cacheable: true,\n _scopes: scopes,\n _rootScopes: rootScopes,\n _fallback: fallback,\n _getTarget: getTarget,\n override: (scope) => _createResolver([scope, ...scopes], prefixes, rootScopes, fallback),\n };\n return new Proxy(cache, {\n deleteProperty(target, prop) {\n delete target[prop];\n delete target._keys;\n delete scopes[0][prop];\n return true;\n },\n get(target, prop) {\n return _cached(target, prop,\n () => _resolveWithPrefixes(prop, prefixes, scopes, target));\n },\n getOwnPropertyDescriptor(target, prop) {\n return Reflect.getOwnPropertyDescriptor(target._scopes[0], prop);\n },\n getPrototypeOf() {\n return Reflect.getPrototypeOf(scopes[0]);\n },\n has(target, prop) {\n return getKeysFromAllScopes(target).includes(prop);\n },\n ownKeys(target) {\n return getKeysFromAllScopes(target);\n },\n set(target, prop, value) {\n const storage = target._storage || (target._storage = getTarget());\n storage[prop] = value;\n delete target[prop];\n delete target._keys;\n return true;\n }\n });\n}\nfunction _attachContext(proxy, context, subProxy, descriptorDefaults) {\n const cache = {\n _cacheable: false,\n _proxy: proxy,\n _context: context,\n _subProxy: subProxy,\n _stack: new Set(),\n _descriptors: _descriptors(proxy, descriptorDefaults),\n setContext: (ctx) => _attachContext(proxy, ctx, subProxy, descriptorDefaults),\n override: (scope) => _attachContext(proxy.override(scope), context, subProxy, descriptorDefaults)\n };\n return new Proxy(cache, {\n deleteProperty(target, prop) {\n delete target[prop];\n delete proxy[prop];\n return true;\n },\n get(target, prop, receiver) {\n return _cached(target, prop,\n () => _resolveWithContext(target, prop, receiver));\n },\n getOwnPropertyDescriptor(target, prop) {\n return target._descriptors.allKeys\n ? Reflect.has(proxy, prop) ? {enumerable: true, configurable: true} : undefined\n : Reflect.getOwnPropertyDescriptor(proxy, prop);\n },\n getPrototypeOf() {\n return Reflect.getPrototypeOf(proxy);\n },\n has(target, prop) {\n return Reflect.has(proxy, prop);\n },\n ownKeys() {\n return Reflect.ownKeys(proxy);\n },\n set(target, prop, value) {\n proxy[prop] = value;\n delete target[prop];\n return true;\n }\n });\n}\nfunction _descriptors(proxy, defaults = {scriptable: true, indexable: true}) {\n const {_scriptable = defaults.scriptable, _indexable = defaults.indexable, _allKeys = defaults.allKeys} = proxy;\n return {\n allKeys: _allKeys,\n scriptable: _scriptable,\n indexable: _indexable,\n isScriptable: isFunction(_scriptable) ? _scriptable : () => _scriptable,\n isIndexable: isFunction(_indexable) ? _indexable : () => _indexable\n };\n}\nconst readKey = (prefix, name) => prefix ? prefix + _capitalize(name) : name;\nconst needsSubResolver = (prop, value) => isObject(value) && prop !== 'adapters';\nfunction _cached(target, prop, resolve) {\n if (Object.prototype.hasOwnProperty.call(target, prop)) {\n return target[prop];\n }\n const value = resolve();\n target[prop] = value;\n return value;\n}\nfunction _resolveWithContext(target, prop, receiver) {\n const {_proxy, _context, _subProxy, _descriptors: descriptors} = target;\n let value = _proxy[prop];\n if (isFunction(value) && descriptors.isScriptable(prop)) {\n value = _resolveScriptable(prop, value, target, receiver);\n }\n if (isArray(value) && value.length) {\n value = _resolveArray(prop, value, target, descriptors.isIndexable);\n }\n if (needsSubResolver(prop, value)) {\n value = _attachContext(value, _context, _subProxy && _subProxy[prop], descriptors);\n }\n return value;\n}\nfunction _resolveScriptable(prop, value, target, receiver) {\n const {_proxy, _context, _subProxy, _stack} = target;\n if (_stack.has(prop)) {\n throw new Error('Recursion detected: ' + Array.from(_stack).join('->') + '->' + prop);\n }\n _stack.add(prop);\n value = value(_context, _subProxy || receiver);\n _stack.delete(prop);\n if (isObject(value)) {\n value = createSubResolver(_proxy._scopes, _proxy, prop, value);\n }\n return value;\n}\nfunction _resolveArray(prop, value, target, isIndexable) {\n const {_proxy, _context, _subProxy, _descriptors: descriptors} = target;\n if (defined(_context.index) && isIndexable(prop)) {\n value = value[_context.index % value.length];\n } else if (isObject(value[0])) {\n const arr = value;\n const scopes = _proxy._scopes.filter(s => s !== arr);\n value = [];\n for (const item of arr) {\n const resolver = createSubResolver(scopes, _proxy, prop, item);\n value.push(_attachContext(resolver, _context, _subProxy && _subProxy[prop], descriptors));\n }\n }\n return value;\n}\nfunction resolveFallback(fallback, prop, value) {\n return isFunction(fallback) ? fallback(prop, value) : fallback;\n}\nconst getScope = (key, parent) => key === true ? parent\n : typeof key === 'string' ? resolveObjectKey(parent, key) : undefined;\nfunction addScopes(set, parentScopes, key, parentFallback) {\n for (const parent of parentScopes) {\n const scope = getScope(key, parent);\n if (scope) {\n set.add(scope);\n const fallback = resolveFallback(scope._fallback, key, scope);\n if (defined(fallback) && fallback !== key && fallback !== parentFallback) {\n return fallback;\n }\n } else if (scope === false && defined(parentFallback) && key !== parentFallback) {\n return null;\n }\n }\n return false;\n}\nfunction createSubResolver(parentScopes, resolver, prop, value) {\n const rootScopes = resolver._rootScopes;\n const fallback = resolveFallback(resolver._fallback, prop, value);\n const allScopes = [...parentScopes, ...rootScopes];\n const set = new Set();\n set.add(value);\n let key = addScopesFromKey(set, allScopes, prop, fallback || prop);\n if (key === null) {\n return false;\n }\n if (defined(fallback) && fallback !== prop) {\n key = addScopesFromKey(set, allScopes, fallback, key);\n if (key === null) {\n return false;\n }\n }\n return _createResolver(Array.from(set), [''], rootScopes, fallback,\n () => subGetTarget(resolver, prop, value));\n}\nfunction addScopesFromKey(set, allScopes, key, fallback) {\n while (key) {\n key = addScopes(set, allScopes, key, fallback);\n }\n return key;\n}\nfunction subGetTarget(resolver, prop, value) {\n const parent = resolver._getTarget();\n if (!(prop in parent)) {\n parent[prop] = {};\n }\n const target = parent[prop];\n if (isArray(target) && isObject(value)) {\n return value;\n }\n return target;\n}\nfunction _resolveWithPrefixes(prop, prefixes, scopes, proxy) {\n let value;\n for (const prefix of prefixes) {\n value = _resolve(readKey(prefix, prop), scopes);\n if (defined(value)) {\n return needsSubResolver(prop, value)\n ? createSubResolver(scopes, proxy, prop, value)\n : value;\n }\n }\n}\nfunction _resolve(key, scopes) {\n for (const scope of scopes) {\n if (!scope) {\n continue;\n }\n const value = scope[key];\n if (defined(value)) {\n return value;\n }\n }\n}\nfunction getKeysFromAllScopes(target) {\n let keys = target._keys;\n if (!keys) {\n keys = target._keys = resolveKeysFromAllScopes(target._scopes);\n }\n return keys;\n}\nfunction resolveKeysFromAllScopes(scopes) {\n const set = new Set();\n for (const scope of scopes) {\n for (const key of Object.keys(scope).filter(k => !k.startsWith('_'))) {\n set.add(key);\n }\n }\n return Array.from(set);\n}\n\nconst EPSILON = Number.EPSILON || 1e-14;\nconst getPoint = (points, i) => i < points.length && !points[i].skip && points[i];\nconst getValueAxis = (indexAxis) => indexAxis === 'x' ? 'y' : 'x';\nfunction splineCurve(firstPoint, middlePoint, afterPoint, t) {\n const previous = firstPoint.skip ? middlePoint : firstPoint;\n const current = middlePoint;\n const next = afterPoint.skip ? middlePoint : afterPoint;\n const d01 = distanceBetweenPoints(current, previous);\n const d12 = distanceBetweenPoints(next, current);\n let s01 = d01 / (d01 + d12);\n let s12 = d12 / (d01 + d12);\n s01 = isNaN(s01) ? 0 : s01;\n s12 = isNaN(s12) ? 0 : s12;\n const fa = t * s01;\n const fb = t * s12;\n return {\n previous: {\n x: current.x - fa * (next.x - previous.x),\n y: current.y - fa * (next.y - previous.y)\n },\n next: {\n x: current.x + fb * (next.x - previous.x),\n y: current.y + fb * (next.y - previous.y)\n }\n };\n}\nfunction monotoneAdjust(points, deltaK, mK) {\n const pointsLen = points.length;\n let alphaK, betaK, tauK, squaredMagnitude, pointCurrent;\n let pointAfter = getPoint(points, 0);\n for (let i = 0; i < pointsLen - 1; ++i) {\n pointCurrent = pointAfter;\n pointAfter = getPoint(points, i + 1);\n if (!pointCurrent || !pointAfter) {\n continue;\n }\n if (almostEquals(deltaK[i], 0, EPSILON)) {\n mK[i] = mK[i + 1] = 0;\n continue;\n }\n alphaK = mK[i] / deltaK[i];\n betaK = mK[i + 1] / deltaK[i];\n squaredMagnitude = Math.pow(alphaK, 2) + Math.pow(betaK, 2);\n if (squaredMagnitude <= 9) {\n continue;\n }\n tauK = 3 / Math.sqrt(squaredMagnitude);\n mK[i] = alphaK * tauK * deltaK[i];\n mK[i + 1] = betaK * tauK * deltaK[i];\n }\n}\nfunction monotoneCompute(points, mK, indexAxis = 'x') {\n const valueAxis = getValueAxis(indexAxis);\n const pointsLen = points.length;\n let delta, pointBefore, pointCurrent;\n let pointAfter = getPoint(points, 0);\n for (let i = 0; i < pointsLen; ++i) {\n pointBefore = pointCurrent;\n pointCurrent = pointAfter;\n pointAfter = getPoint(points, i + 1);\n if (!pointCurrent) {\n continue;\n }\n const iPixel = pointCurrent[indexAxis];\n const vPixel = pointCurrent[valueAxis];\n if (pointBefore) {\n delta = (iPixel - pointBefore[indexAxis]) / 3;\n pointCurrent[`cp1${indexAxis}`] = iPixel - delta;\n pointCurrent[`cp1${valueAxis}`] = vPixel - delta * mK[i];\n }\n if (pointAfter) {\n delta = (pointAfter[indexAxis] - iPixel) / 3;\n pointCurrent[`cp2${indexAxis}`] = iPixel + delta;\n pointCurrent[`cp2${valueAxis}`] = vPixel + delta * mK[i];\n }\n }\n}\nfunction splineCurveMonotone(points, indexAxis = 'x') {\n const valueAxis = getValueAxis(indexAxis);\n const pointsLen = points.length;\n const deltaK = Array(pointsLen).fill(0);\n const mK = Array(pointsLen);\n let i, pointBefore, pointCurrent;\n let pointAfter = getPoint(points, 0);\n for (i = 0; i < pointsLen; ++i) {\n pointBefore = pointCurrent;\n pointCurrent = pointAfter;\n pointAfter = getPoint(points, i + 1);\n if (!pointCurrent) {\n continue;\n }\n if (pointAfter) {\n const slopeDelta = pointAfter[indexAxis] - pointCurrent[indexAxis];\n deltaK[i] = slopeDelta !== 0 ? (pointAfter[valueAxis] - pointCurrent[valueAxis]) / slopeDelta : 0;\n }\n mK[i] = !pointBefore ? deltaK[i]\n : !pointAfter ? deltaK[i - 1]\n : (sign(deltaK[i - 1]) !== sign(deltaK[i])) ? 0\n : (deltaK[i - 1] + deltaK[i]) / 2;\n }\n monotoneAdjust(points, deltaK, mK);\n monotoneCompute(points, mK, indexAxis);\n}\nfunction capControlPoint(pt, min, max) {\n return Math.max(Math.min(pt, max), min);\n}\nfunction capBezierPoints(points, area) {\n let i, ilen, point, inArea, inAreaPrev;\n let inAreaNext = _isPointInArea(points[0], area);\n for (i = 0, ilen = points.length; i < ilen; ++i) {\n inAreaPrev = inArea;\n inArea = inAreaNext;\n inAreaNext = i < ilen - 1 && _isPointInArea(points[i + 1], area);\n if (!inArea) {\n continue;\n }\n point = points[i];\n if (inAreaPrev) {\n point.cp1x = capControlPoint(point.cp1x, area.left, area.right);\n point.cp1y = capControlPoint(point.cp1y, area.top, area.bottom);\n }\n if (inAreaNext) {\n point.cp2x = capControlPoint(point.cp2x, area.left, area.right);\n point.cp2y = capControlPoint(point.cp2y, area.top, area.bottom);\n }\n }\n}\nfunction _updateBezierControlPoints(points, options, area, loop, indexAxis) {\n let i, ilen, point, controlPoints;\n if (options.spanGaps) {\n points = points.filter((pt) => !pt.skip);\n }\n if (options.cubicInterpolationMode === 'monotone') {\n splineCurveMonotone(points, indexAxis);\n } else {\n let prev = loop ? points[points.length - 1] : points[0];\n for (i = 0, ilen = points.length; i < ilen; ++i) {\n point = points[i];\n controlPoints = splineCurve(\n prev,\n point,\n points[Math.min(i + 1, ilen - (loop ? 0 : 1)) % ilen],\n options.tension\n );\n point.cp1x = controlPoints.previous.x;\n point.cp1y = controlPoints.previous.y;\n point.cp2x = controlPoints.next.x;\n point.cp2y = controlPoints.next.y;\n prev = point;\n }\n }\n if (options.capBezierPoints) {\n capBezierPoints(points, area);\n }\n}\n\nfunction _isDomSupported() {\n return typeof window !== 'undefined' && typeof document !== 'undefined';\n}\nfunction _getParentNode(domNode) {\n let parent = domNode.parentNode;\n if (parent && parent.toString() === '[object ShadowRoot]') {\n parent = parent.host;\n }\n return parent;\n}\nfunction parseMaxStyle(styleValue, node, parentProperty) {\n let valueInPixels;\n if (typeof styleValue === 'string') {\n valueInPixels = parseInt(styleValue, 10);\n if (styleValue.indexOf('%') !== -1) {\n valueInPixels = valueInPixels / 100 * node.parentNode[parentProperty];\n }\n } else {\n valueInPixels = styleValue;\n }\n return valueInPixels;\n}\nconst getComputedStyle = (element) => window.getComputedStyle(element, null);\nfunction getStyle(el, property) {\n return getComputedStyle(el).getPropertyValue(property);\n}\nconst positions = ['top', 'right', 'bottom', 'left'];\nfunction getPositionedStyle(styles, style, suffix) {\n const result = {};\n suffix = suffix ? '-' + suffix : '';\n for (let i = 0; i < 4; i++) {\n const pos = positions[i];\n result[pos] = parseFloat(styles[style + '-' + pos + suffix]) || 0;\n }\n result.width = result.left + result.right;\n result.height = result.top + result.bottom;\n return result;\n}\nconst useOffsetPos = (x, y, target) => (x > 0 || y > 0) && (!target || !target.shadowRoot);\nfunction getCanvasPosition(evt, canvas) {\n const e = evt.native || evt;\n const touches = e.touches;\n const source = touches && touches.length ? touches[0] : e;\n const {offsetX, offsetY} = source;\n let box = false;\n let x, y;\n if (useOffsetPos(offsetX, offsetY, e.target)) {\n x = offsetX;\n y = offsetY;\n } else {\n const rect = canvas.getBoundingClientRect();\n x = source.clientX - rect.left;\n y = source.clientY - rect.top;\n box = true;\n }\n return {x, y, box};\n}\nfunction getRelativePosition(evt, chart) {\n const {canvas, currentDevicePixelRatio} = chart;\n const style = getComputedStyle(canvas);\n const borderBox = style.boxSizing === 'border-box';\n const paddings = getPositionedStyle(style, 'padding');\n const borders = getPositionedStyle(style, 'border', 'width');\n const {x, y, box} = getCanvasPosition(evt, canvas);\n const xOffset = paddings.left + (box && borders.left);\n const yOffset = paddings.top + (box && borders.top);\n let {width, height} = chart;\n if (borderBox) {\n width -= paddings.width + borders.width;\n height -= paddings.height + borders.height;\n }\n return {\n x: Math.round((x - xOffset) / width * canvas.width / currentDevicePixelRatio),\n y: Math.round((y - yOffset) / height * canvas.height / currentDevicePixelRatio)\n };\n}\nfunction getContainerSize(canvas, width, height) {\n let maxWidth, maxHeight;\n if (width === undefined || height === undefined) {\n const container = _getParentNode(canvas);\n if (!container) {\n width = canvas.clientWidth;\n height = canvas.clientHeight;\n } else {\n const rect = container.getBoundingClientRect();\n const containerStyle = getComputedStyle(container);\n const containerBorder = getPositionedStyle(containerStyle, 'border', 'width');\n const containerPadding = getPositionedStyle(containerStyle, 'padding');\n width = rect.width - containerPadding.width - containerBorder.width;\n height = rect.height - containerPadding.height - containerBorder.height;\n maxWidth = parseMaxStyle(containerStyle.maxWidth, container, 'clientWidth');\n maxHeight = parseMaxStyle(containerStyle.maxHeight, container, 'clientHeight');\n }\n }\n return {\n width,\n height,\n maxWidth: maxWidth || INFINITY,\n maxHeight: maxHeight || INFINITY\n };\n}\nconst round1 = v => Math.round(v * 10) / 10;\nfunction getMaximumSize(canvas, bbWidth, bbHeight, aspectRatio) {\n const style = getComputedStyle(canvas);\n const margins = getPositionedStyle(style, 'margin');\n const maxWidth = parseMaxStyle(style.maxWidth, canvas, 'clientWidth') || INFINITY;\n const maxHeight = parseMaxStyle(style.maxHeight, canvas, 'clientHeight') || INFINITY;\n const containerSize = getContainerSize(canvas, bbWidth, bbHeight);\n let {width, height} = containerSize;\n if (style.boxSizing === 'content-box') {\n const borders = getPositionedStyle(style, 'border', 'width');\n const paddings = getPositionedStyle(style, 'padding');\n width -= paddings.width + borders.width;\n height -= paddings.height + borders.height;\n }\n width = Math.max(0, width - margins.width);\n height = Math.max(0, aspectRatio ? Math.floor(width / aspectRatio) : height - margins.height);\n width = round1(Math.min(width, maxWidth, containerSize.maxWidth));\n height = round1(Math.min(height, maxHeight, containerSize.maxHeight));\n if (width && !height) {\n height = round1(width / 2);\n }\n return {\n width,\n height\n };\n}\nfunction retinaScale(chart, forceRatio, forceStyle) {\n const pixelRatio = forceRatio || 1;\n const deviceHeight = Math.floor(chart.height * pixelRatio);\n const deviceWidth = Math.floor(chart.width * pixelRatio);\n chart.height = deviceHeight / pixelRatio;\n chart.width = deviceWidth / pixelRatio;\n const canvas = chart.canvas;\n if (canvas.style && (forceStyle || (!canvas.style.height && !canvas.style.width))) {\n canvas.style.height = `${chart.height}px`;\n canvas.style.width = `${chart.width}px`;\n }\n if (chart.currentDevicePixelRatio !== pixelRatio\n || canvas.height !== deviceHeight\n || canvas.width !== deviceWidth) {\n chart.currentDevicePixelRatio = pixelRatio;\n canvas.height = deviceHeight;\n canvas.width = deviceWidth;\n chart.ctx.setTransform(pixelRatio, 0, 0, pixelRatio, 0, 0);\n return true;\n }\n return false;\n}\nconst supportsEventListenerOptions = (function() {\n let passiveSupported = false;\n try {\n const options = {\n get passive() {\n passiveSupported = true;\n return false;\n }\n };\n window.addEventListener('test', null, options);\n window.removeEventListener('test', null, options);\n } catch (e) {\n }\n return passiveSupported;\n}());\nfunction readUsedSize(element, property) {\n const value = getStyle(element, property);\n const matches = value && value.match(/^(\\d+)(\\.\\d+)?px$/);\n return matches ? +matches[1] : undefined;\n}\n\nfunction _pointInLine(p1, p2, t, mode) {\n return {\n x: p1.x + t * (p2.x - p1.x),\n y: p1.y + t * (p2.y - p1.y)\n };\n}\nfunction _steppedInterpolation(p1, p2, t, mode) {\n return {\n x: p1.x + t * (p2.x - p1.x),\n y: mode === 'middle' ? t < 0.5 ? p1.y : p2.y\n : mode === 'after' ? t < 1 ? p1.y : p2.y\n : t > 0 ? p2.y : p1.y\n };\n}\nfunction _bezierInterpolation(p1, p2, t, mode) {\n const cp1 = {x: p1.cp2x, y: p1.cp2y};\n const cp2 = {x: p2.cp1x, y: p2.cp1y};\n const a = _pointInLine(p1, cp1, t);\n const b = _pointInLine(cp1, cp2, t);\n const c = _pointInLine(cp2, p2, t);\n const d = _pointInLine(a, b, t);\n const e = _pointInLine(b, c, t);\n return _pointInLine(d, e, t);\n}\n\nconst intlCache = new Map();\nfunction getNumberFormat(locale, options) {\n options = options || {};\n const cacheKey = locale + JSON.stringify(options);\n let formatter = intlCache.get(cacheKey);\n if (!formatter) {\n formatter = new Intl.NumberFormat(locale, options);\n intlCache.set(cacheKey, formatter);\n }\n return formatter;\n}\nfunction formatNumber(num, locale, options) {\n return getNumberFormat(locale, options).format(num);\n}\n\nconst getRightToLeftAdapter = function(rectX, width) {\n return {\n x(x) {\n return rectX + rectX + width - x;\n },\n setWidth(w) {\n width = w;\n },\n textAlign(align) {\n if (align === 'center') {\n return align;\n }\n return align === 'right' ? 'left' : 'right';\n },\n xPlus(x, value) {\n return x - value;\n },\n leftForLtr(x, itemWidth) {\n return x - itemWidth;\n },\n };\n};\nconst getLeftToRightAdapter = function() {\n return {\n x(x) {\n return x;\n },\n setWidth(w) {\n },\n textAlign(align) {\n return align;\n },\n xPlus(x, value) {\n return x + value;\n },\n leftForLtr(x, _itemWidth) {\n return x;\n },\n };\n};\nfunction getRtlAdapter(rtl, rectX, width) {\n return rtl ? getRightToLeftAdapter(rectX, width) : getLeftToRightAdapter();\n}\nfunction overrideTextDirection(ctx, direction) {\n let style, original;\n if (direction === 'ltr' || direction === 'rtl') {\n style = ctx.canvas.style;\n original = [\n style.getPropertyValue('direction'),\n style.getPropertyPriority('direction'),\n ];\n style.setProperty('direction', direction, 'important');\n ctx.prevTextDirection = original;\n }\n}\nfunction restoreTextDirection(ctx, original) {\n if (original !== undefined) {\n delete ctx.prevTextDirection;\n ctx.canvas.style.setProperty('direction', original[0], original[1]);\n }\n}\n\nfunction propertyFn(property) {\n if (property === 'angle') {\n return {\n between: _angleBetween,\n compare: _angleDiff,\n normalize: _normalizeAngle,\n };\n }\n return {\n between: (n, s, e) => n >= Math.min(s, e) && n <= Math.max(e, s),\n compare: (a, b) => a - b,\n normalize: x => x\n };\n}\nfunction normalizeSegment({start, end, count, loop, style}) {\n return {\n start: start % count,\n end: end % count,\n loop: loop && (end - start + 1) % count === 0,\n style\n };\n}\nfunction getSegment(segment, points, bounds) {\n const {property, start: startBound, end: endBound} = bounds;\n const {between, normalize} = propertyFn(property);\n const count = points.length;\n let {start, end, loop} = segment;\n let i, ilen;\n if (loop) {\n start += count;\n end += count;\n for (i = 0, ilen = count; i < ilen; ++i) {\n if (!between(normalize(points[start % count][property]), startBound, endBound)) {\n break;\n }\n start--;\n end--;\n }\n start %= count;\n end %= count;\n }\n if (end < start) {\n end += count;\n }\n return {start, end, loop, style: segment.style};\n}\nfunction _boundSegment(segment, points, bounds) {\n if (!bounds) {\n return [segment];\n }\n const {property, start: startBound, end: endBound} = bounds;\n const count = points.length;\n const {compare, between, normalize} = propertyFn(property);\n const {start, end, loop, style} = getSegment(segment, points, bounds);\n const result = [];\n let inside = false;\n let subStart = null;\n let value, point, prevValue;\n const startIsBefore = () => between(startBound, prevValue, value) && compare(startBound, prevValue) !== 0;\n const endIsBefore = () => compare(endBound, value) === 0 || between(endBound, prevValue, value);\n const shouldStart = () => inside || startIsBefore();\n const shouldStop = () => !inside || endIsBefore();\n for (let i = start, prev = start; i <= end; ++i) {\n point = points[i % count];\n if (point.skip) {\n continue;\n }\n value = normalize(point[property]);\n if (value === prevValue) {\n continue;\n }\n inside = between(value, startBound, endBound);\n if (subStart === null && shouldStart()) {\n subStart = compare(value, startBound) === 0 ? i : prev;\n }\n if (subStart !== null && shouldStop()) {\n result.push(normalizeSegment({start: subStart, end: i, loop, count, style}));\n subStart = null;\n }\n prev = i;\n prevValue = value;\n }\n if (subStart !== null) {\n result.push(normalizeSegment({start: subStart, end, loop, count, style}));\n }\n return result;\n}\nfunction _boundSegments(line, bounds) {\n const result = [];\n const segments = line.segments;\n for (let i = 0; i < segments.length; i++) {\n const sub = _boundSegment(segments[i], line.points, bounds);\n if (sub.length) {\n result.push(...sub);\n }\n }\n return result;\n}\nfunction findStartAndEnd(points, count, loop, spanGaps) {\n let start = 0;\n let end = count - 1;\n if (loop && !spanGaps) {\n while (start < count && !points[start].skip) {\n start++;\n }\n }\n while (start < count && points[start].skip) {\n start++;\n }\n start %= count;\n if (loop) {\n end += start;\n }\n while (end > start && points[end % count].skip) {\n end--;\n }\n end %= count;\n return {start, end};\n}\nfunction solidSegments(points, start, max, loop) {\n const count = points.length;\n const result = [];\n let last = start;\n let prev = points[start];\n let end;\n for (end = start + 1; end <= max; ++end) {\n const cur = points[end % count];\n if (cur.skip || cur.stop) {\n if (!prev.skip) {\n loop = false;\n result.push({start: start % count, end: (end - 1) % count, loop});\n start = last = cur.stop ? end : null;\n }\n } else {\n last = end;\n if (prev.skip) {\n start = end;\n }\n }\n prev = cur;\n }\n if (last !== null) {\n result.push({start: start % count, end: last % count, loop});\n }\n return result;\n}\nfunction _computeSegments(line, segmentOptions) {\n const points = line.points;\n const spanGaps = line.options.spanGaps;\n const count = points.length;\n if (!count) {\n return [];\n }\n const loop = !!line._loop;\n const {start, end} = findStartAndEnd(points, count, loop, spanGaps);\n if (spanGaps === true) {\n return splitByStyles(line, [{start, end, loop}], points, segmentOptions);\n }\n const max = end < start ? end + count : end;\n const completeLoop = !!line._fullLoop && start === 0 && end === count - 1;\n return splitByStyles(line, solidSegments(points, start, max, completeLoop), points, segmentOptions);\n}\nfunction splitByStyles(line, segments, points, segmentOptions) {\n if (!segmentOptions || !segmentOptions.setContext || !points) {\n return segments;\n }\n return doSplitByStyles(line, segments, points, segmentOptions);\n}\nfunction doSplitByStyles(line, segments, points, segmentOptions) {\n const chartContext = line._chart.getContext();\n const baseStyle = readStyle(line.options);\n const {_datasetIndex: datasetIndex, options: {spanGaps}} = line;\n const count = points.length;\n const result = [];\n let prevStyle = baseStyle;\n let start = segments[0].start;\n let i = start;\n function addStyle(s, e, l, st) {\n const dir = spanGaps ? -1 : 1;\n if (s === e) {\n return;\n }\n s += count;\n while (points[s % count].skip) {\n s -= dir;\n }\n while (points[e % count].skip) {\n e += dir;\n }\n if (s % count !== e % count) {\n result.push({start: s % count, end: e % count, loop: l, style: st});\n prevStyle = st;\n start = e % count;\n }\n }\n for (const segment of segments) {\n start = spanGaps ? start : segment.start;\n let prev = points[start % count];\n let style;\n for (i = start + 1; i <= segment.end; i++) {\n const pt = points[i % count];\n style = readStyle(segmentOptions.setContext(createContext(chartContext, {\n type: 'segment',\n p0: prev,\n p1: pt,\n p0DataIndex: (i - 1) % count,\n p1DataIndex: i % count,\n datasetIndex\n })));\n if (styleChanged(style, prevStyle)) {\n addStyle(start, i - 1, segment.loop, prevStyle);\n }\n prev = pt;\n prevStyle = style;\n }\n if (start < i - 1) {\n addStyle(start, i - 1, segment.loop, prevStyle);\n }\n }\n return result;\n}\nfunction readStyle(options) {\n return {\n backgroundColor: options.backgroundColor,\n borderCapStyle: options.borderCapStyle,\n borderDash: options.borderDash,\n borderDashOffset: options.borderDashOffset,\n borderJoinStyle: options.borderJoinStyle,\n borderWidth: options.borderWidth,\n borderColor: options.borderColor\n };\n}\nfunction styleChanged(style, prevStyle) {\n return prevStyle && JSON.stringify(style) !== JSON.stringify(prevStyle);\n}\n\nexport { _alignStartEnd as $, _rlookupByKey as A, toPadding as B, each as C, getMaximumSize as D, _getParentNode as E, readUsedSize as F, throttled as G, HALF_PI as H, supportsEventListenerOptions as I, _isDomSupported as J, log10 as K, _factorize as L, finiteOrDefault as M, callback as N, _addGrace as O, PI as P, toDegrees as Q, _measureText as R, _int16Range as S, TAU as T, _alignPixel as U, clipArea as V, renderText as W, unclipArea as X, toFont as Y, _toLeftRightCenter as Z, _arrayUnique as _, resolve as a, overrides as a0, merge as a1, _capitalize as a2, descriptors as a3, isFunction as a4, _attachContext as a5, _createResolver as a6, _descriptors as a7, mergeIf as a8, uid as a9, distanceBetweenPoints as aA, _setMinAndMaxByKey as aB, niceNum as aC, almostWhole as aD, almostEquals as aE, _decimalPlaces as aF, _longestText as aG, _filterBetween as aH, _lookup as aI, getHoverColor as aJ, clone$1 as aK, _merger as aL, _mergerIf as aM, _deprecated as aN, toFontString as aO, splineCurve as aP, splineCurveMonotone as aQ, getStyle as aR, fontString as aS, toLineHeight as aT, PITAU as aU, INFINITY as aV, RAD_PER_DEG as aW, QUARTER_PI as aX, TWO_THIRDS_PI as aY, _angleDiff as aZ, debounce as aa, retinaScale as ab, clearCanvas as ac, setsEqual as ad, _elementsEqual as ae, getAngleFromPoint as af, _readValueToProps as ag, _updateBezierControlPoints as ah, _computeSegments as ai, _boundSegments as aj, _steppedInterpolation as ak, _bezierInterpolation as al, _pointInLine as am, _steppedLineTo as an, _bezierCurveTo as ao, drawPoint as ap, addRoundedRectPath as aq, toTRBL as ar, toTRBLCorners as as, _boundSegment as at, _normalizeAngle as au, getRtlAdapter as av, overrideTextDirection as aw, _textX as ax, restoreTextDirection as ay, noop as az, isArray as b, color as c, defaults as d, effects as e, resolveObjectKey as f, isNumberFinite as g, createContext as h, isObject as i, defined as j, isNullOrUndef as k, listenArrayEvents as l, toPercentage as m, toDimension as n, formatNumber as o, _angleBetween as p, isNumber as q, requestAnimFrame as r, sign as s, toRadians as t, unlistenArrayEvents as u, valueOrDefault as v, _limitValue as w, _lookupByKey as x, getRelativePosition as y, _isPointInArea as z };\n","/*!\n * Chart.js v3.6.0\n * https://www.chartjs.org\n * (c) 2021 Chart.js Contributors\n * Released under the MIT License\n */\nimport { r as requestAnimFrame, a as resolve, e as effects, c as color, d as defaults, i as isObject, b as isArray, v as valueOrDefault, u as unlistenArrayEvents, l as listenArrayEvents, f as resolveObjectKey, g as isNumberFinite, h as createContext, j as defined, s as sign, k as isNullOrUndef, _ as _arrayUnique, t as toRadians, m as toPercentage, n as toDimension, T as TAU, o as formatNumber, p as _angleBetween, H as HALF_PI, P as PI, q as isNumber, w as _limitValue, x as _lookupByKey, y as getRelativePosition$1, z as _isPointInArea, A as _rlookupByKey, B as toPadding, C as each, D as getMaximumSize, E as _getParentNode, F as readUsedSize, G as throttled, I as supportsEventListenerOptions, J as _isDomSupported, K as log10, L as _factorize, M as finiteOrDefault, N as callback, O as _addGrace, Q as toDegrees, R as _measureText, S as _int16Range, U as _alignPixel, V as clipArea, W as renderText, X as unclipArea, Y as toFont, Z as _toLeftRightCenter, $ as _alignStartEnd, a0 as overrides, a1 as merge, a2 as _capitalize, a3 as descriptors, a4 as isFunction, a5 as _attachContext, a6 as _createResolver, a7 as _descriptors, a8 as mergeIf, a9 as uid, aa as debounce, ab as retinaScale, ac as clearCanvas, ad as setsEqual, ae as _elementsEqual, af as getAngleFromPoint, ag as _readValueToProps, ah as _updateBezierControlPoints, ai as _computeSegments, aj as _boundSegments, ak as _steppedInterpolation, al as _bezierInterpolation, am as _pointInLine, an as _steppedLineTo, ao as _bezierCurveTo, ap as drawPoint, aq as addRoundedRectPath, ar as toTRBL, as as toTRBLCorners, at as _boundSegment, au as _normalizeAngle, av as getRtlAdapter, aw as overrideTextDirection, ax as _textX, ay as restoreTextDirection, az as noop, aA as distanceBetweenPoints, aB as _setMinAndMaxByKey, aC as niceNum, aD as almostWhole, aE as almostEquals, aF as _decimalPlaces, aG as _longestText, aH as _filterBetween, aI as _lookup } from './chunks/helpers.segment.js';\nexport { d as defaults } from './chunks/helpers.segment.js';\n\nclass Animator {\n constructor() {\n this._request = null;\n this._charts = new Map();\n this._running = false;\n this._lastDate = undefined;\n }\n _notify(chart, anims, date, type) {\n const callbacks = anims.listeners[type];\n const numSteps = anims.duration;\n callbacks.forEach(fn => fn({\n chart,\n initial: anims.initial,\n numSteps,\n currentStep: Math.min(date - anims.start, numSteps)\n }));\n }\n _refresh() {\n if (this._request) {\n return;\n }\n this._running = true;\n this._request = requestAnimFrame.call(window, () => {\n this._update();\n this._request = null;\n if (this._running) {\n this._refresh();\n }\n });\n }\n _update(date = Date.now()) {\n let remaining = 0;\n this._charts.forEach((anims, chart) => {\n if (!anims.running || !anims.items.length) {\n return;\n }\n const items = anims.items;\n let i = items.length - 1;\n let draw = false;\n let item;\n for (; i >= 0; --i) {\n item = items[i];\n if (item._active) {\n if (item._total > anims.duration) {\n anims.duration = item._total;\n }\n item.tick(date);\n draw = true;\n } else {\n items[i] = items[items.length - 1];\n items.pop();\n }\n }\n if (draw) {\n chart.draw();\n this._notify(chart, anims, date, 'progress');\n }\n if (!items.length) {\n anims.running = false;\n this._notify(chart, anims, date, 'complete');\n anims.initial = false;\n }\n remaining += items.length;\n });\n this._lastDate = date;\n if (remaining === 0) {\n this._running = false;\n }\n }\n _getAnims(chart) {\n const charts = this._charts;\n let anims = charts.get(chart);\n if (!anims) {\n anims = {\n running: false,\n initial: true,\n items: [],\n listeners: {\n complete: [],\n progress: []\n }\n };\n charts.set(chart, anims);\n }\n return anims;\n }\n listen(chart, event, cb) {\n this._getAnims(chart).listeners[event].push(cb);\n }\n add(chart, items) {\n if (!items || !items.length) {\n return;\n }\n this._getAnims(chart).items.push(...items);\n }\n has(chart) {\n return this._getAnims(chart).items.length > 0;\n }\n start(chart) {\n const anims = this._charts.get(chart);\n if (!anims) {\n return;\n }\n anims.running = true;\n anims.start = Date.now();\n anims.duration = anims.items.reduce((acc, cur) => Math.max(acc, cur._duration), 0);\n this._refresh();\n }\n running(chart) {\n if (!this._running) {\n return false;\n }\n const anims = this._charts.get(chart);\n if (!anims || !anims.running || !anims.items.length) {\n return false;\n }\n return true;\n }\n stop(chart) {\n const anims = this._charts.get(chart);\n if (!anims || !anims.items.length) {\n return;\n }\n const items = anims.items;\n let i = items.length - 1;\n for (; i >= 0; --i) {\n items[i].cancel();\n }\n anims.items = [];\n this._notify(chart, anims, Date.now(), 'complete');\n }\n remove(chart) {\n return this._charts.delete(chart);\n }\n}\nvar animator = new Animator();\n\nconst transparent = 'transparent';\nconst interpolators = {\n boolean(from, to, factor) {\n return factor > 0.5 ? to : from;\n },\n color(from, to, factor) {\n const c0 = color(from || transparent);\n const c1 = c0.valid && color(to || transparent);\n return c1 && c1.valid\n ? c1.mix(c0, factor).hexString()\n : to;\n },\n number(from, to, factor) {\n return from + (to - from) * factor;\n }\n};\nclass Animation {\n constructor(cfg, target, prop, to) {\n const currentValue = target[prop];\n to = resolve([cfg.to, to, currentValue, cfg.from]);\n const from = resolve([cfg.from, currentValue, to]);\n this._active = true;\n this._fn = cfg.fn || interpolators[cfg.type || typeof from];\n this._easing = effects[cfg.easing] || effects.linear;\n this._start = Math.floor(Date.now() + (cfg.delay || 0));\n this._duration = this._total = Math.floor(cfg.duration);\n this._loop = !!cfg.loop;\n this._target = target;\n this._prop = prop;\n this._from = from;\n this._to = to;\n this._promises = undefined;\n }\n active() {\n return this._active;\n }\n update(cfg, to, date) {\n if (this._active) {\n this._notify(false);\n const currentValue = this._target[this._prop];\n const elapsed = date - this._start;\n const remain = this._duration - elapsed;\n this._start = date;\n this._duration = Math.floor(Math.max(remain, cfg.duration));\n this._total += elapsed;\n this._loop = !!cfg.loop;\n this._to = resolve([cfg.to, to, currentValue, cfg.from]);\n this._from = resolve([cfg.from, currentValue, to]);\n }\n }\n cancel() {\n if (this._active) {\n this.tick(Date.now());\n this._active = false;\n this._notify(false);\n }\n }\n tick(date) {\n const elapsed = date - this._start;\n const duration = this._duration;\n const prop = this._prop;\n const from = this._from;\n const loop = this._loop;\n const to = this._to;\n let factor;\n this._active = from !== to && (loop || (elapsed < duration));\n if (!this._active) {\n this._target[prop] = to;\n this._notify(true);\n return;\n }\n if (elapsed < 0) {\n this._target[prop] = from;\n return;\n }\n factor = (elapsed / duration) % 2;\n factor = loop && factor > 1 ? 2 - factor : factor;\n factor = this._easing(Math.min(1, Math.max(0, factor)));\n this._target[prop] = this._fn(from, to, factor);\n }\n wait() {\n const promises = this._promises || (this._promises = []);\n return new Promise((res, rej) => {\n promises.push({res, rej});\n });\n }\n _notify(resolved) {\n const method = resolved ? 'res' : 'rej';\n const promises = this._promises || [];\n for (let i = 0; i < promises.length; i++) {\n promises[i][method]();\n }\n }\n}\n\nconst numbers = ['x', 'y', 'borderWidth', 'radius', 'tension'];\nconst colors = ['color', 'borderColor', 'backgroundColor'];\ndefaults.set('animation', {\n delay: undefined,\n duration: 1000,\n easing: 'easeOutQuart',\n fn: undefined,\n from: undefined,\n loop: undefined,\n to: undefined,\n type: undefined,\n});\nconst animationOptions = Object.keys(defaults.animation);\ndefaults.describe('animation', {\n _fallback: false,\n _indexable: false,\n _scriptable: (name) => name !== 'onProgress' && name !== 'onComplete' && name !== 'fn',\n});\ndefaults.set('animations', {\n colors: {\n type: 'color',\n properties: colors\n },\n numbers: {\n type: 'number',\n properties: numbers\n },\n});\ndefaults.describe('animations', {\n _fallback: 'animation',\n});\ndefaults.set('transitions', {\n active: {\n animation: {\n duration: 400\n }\n },\n resize: {\n animation: {\n duration: 0\n }\n },\n show: {\n animations: {\n colors: {\n from: 'transparent'\n },\n visible: {\n type: 'boolean',\n duration: 0\n },\n }\n },\n hide: {\n animations: {\n colors: {\n to: 'transparent'\n },\n visible: {\n type: 'boolean',\n easing: 'linear',\n fn: v => v | 0\n },\n }\n }\n});\nclass Animations {\n constructor(chart, config) {\n this._chart = chart;\n this._properties = new Map();\n this.configure(config);\n }\n configure(config) {\n if (!isObject(config)) {\n return;\n }\n const animatedProps = this._properties;\n Object.getOwnPropertyNames(config).forEach(key => {\n const cfg = config[key];\n if (!isObject(cfg)) {\n return;\n }\n const resolved = {};\n for (const option of animationOptions) {\n resolved[option] = cfg[option];\n }\n (isArray(cfg.properties) && cfg.properties || [key]).forEach((prop) => {\n if (prop === key || !animatedProps.has(prop)) {\n animatedProps.set(prop, resolved);\n }\n });\n });\n }\n _animateOptions(target, values) {\n const newOptions = values.options;\n const options = resolveTargetOptions(target, newOptions);\n if (!options) {\n return [];\n }\n const animations = this._createAnimations(options, newOptions);\n if (newOptions.$shared) {\n awaitAll(target.options.$animations, newOptions).then(() => {\n target.options = newOptions;\n }, () => {\n });\n }\n return animations;\n }\n _createAnimations(target, values) {\n const animatedProps = this._properties;\n const animations = [];\n const running = target.$animations || (target.$animations = {});\n const props = Object.keys(values);\n const date = Date.now();\n let i;\n for (i = props.length - 1; i >= 0; --i) {\n const prop = props[i];\n if (prop.charAt(0) === '$') {\n continue;\n }\n if (prop === 'options') {\n animations.push(...this._animateOptions(target, values));\n continue;\n }\n const value = values[prop];\n let animation = running[prop];\n const cfg = animatedProps.get(prop);\n if (animation) {\n if (cfg && animation.active()) {\n animation.update(cfg, value, date);\n continue;\n } else {\n animation.cancel();\n }\n }\n if (!cfg || !cfg.duration) {\n target[prop] = value;\n continue;\n }\n running[prop] = animation = new Animation(cfg, target, prop, value);\n animations.push(animation);\n }\n return animations;\n }\n update(target, values) {\n if (this._properties.size === 0) {\n Object.assign(target, values);\n return;\n }\n const animations = this._createAnimations(target, values);\n if (animations.length) {\n animator.add(this._chart, animations);\n return true;\n }\n }\n}\nfunction awaitAll(animations, properties) {\n const running = [];\n const keys = Object.keys(properties);\n for (let i = 0; i < keys.length; i++) {\n const anim = animations[keys[i]];\n if (anim && anim.active()) {\n running.push(anim.wait());\n }\n }\n return Promise.all(running);\n}\nfunction resolveTargetOptions(target, newOptions) {\n if (!newOptions) {\n return;\n }\n let options = target.options;\n if (!options) {\n target.options = newOptions;\n return;\n }\n if (options.$shared) {\n target.options = options = Object.assign({}, options, {$shared: false, $animations: {}});\n }\n return options;\n}\n\nfunction scaleClip(scale, allowedOverflow) {\n const opts = scale && scale.options || {};\n const reverse = opts.reverse;\n const min = opts.min === undefined ? allowedOverflow : 0;\n const max = opts.max === undefined ? allowedOverflow : 0;\n return {\n start: reverse ? max : min,\n end: reverse ? min : max\n };\n}\nfunction defaultClip(xScale, yScale, allowedOverflow) {\n if (allowedOverflow === false) {\n return false;\n }\n const x = scaleClip(xScale, allowedOverflow);\n const y = scaleClip(yScale, allowedOverflow);\n return {\n top: y.end,\n right: x.end,\n bottom: y.start,\n left: x.start\n };\n}\nfunction toClip(value) {\n let t, r, b, l;\n if (isObject(value)) {\n t = value.top;\n r = value.right;\n b = value.bottom;\n l = value.left;\n } else {\n t = r = b = l = value;\n }\n return {\n top: t,\n right: r,\n bottom: b,\n left: l,\n disabled: value === false\n };\n}\nfunction getSortedDatasetIndices(chart, filterVisible) {\n const keys = [];\n const metasets = chart._getSortedDatasetMetas(filterVisible);\n let i, ilen;\n for (i = 0, ilen = metasets.length; i < ilen; ++i) {\n keys.push(metasets[i].index);\n }\n return keys;\n}\nfunction applyStack(stack, value, dsIndex, options = {}) {\n const keys = stack.keys;\n const singleMode = options.mode === 'single';\n let i, ilen, datasetIndex, otherValue;\n if (value === null) {\n return;\n }\n for (i = 0, ilen = keys.length; i < ilen; ++i) {\n datasetIndex = +keys[i];\n if (datasetIndex === dsIndex) {\n if (options.all) {\n continue;\n }\n break;\n }\n otherValue = stack.values[datasetIndex];\n if (isNumberFinite(otherValue) && (singleMode || (value === 0 || sign(value) === sign(otherValue)))) {\n value += otherValue;\n }\n }\n return value;\n}\nfunction convertObjectDataToArray(data) {\n const keys = Object.keys(data);\n const adata = new Array(keys.length);\n let i, ilen, key;\n for (i = 0, ilen = keys.length; i < ilen; ++i) {\n key = keys[i];\n adata[i] = {\n x: key,\n y: data[key]\n };\n }\n return adata;\n}\nfunction isStacked(scale, meta) {\n const stacked = scale && scale.options.stacked;\n return stacked || (stacked === undefined && meta.stack !== undefined);\n}\nfunction getStackKey(indexScale, valueScale, meta) {\n return `${indexScale.id}.${valueScale.id}.${meta.stack || meta.type}`;\n}\nfunction getUserBounds(scale) {\n const {min, max, minDefined, maxDefined} = scale.getUserBounds();\n return {\n min: minDefined ? min : Number.NEGATIVE_INFINITY,\n max: maxDefined ? max : Number.POSITIVE_INFINITY\n };\n}\nfunction getOrCreateStack(stacks, stackKey, indexValue) {\n const subStack = stacks[stackKey] || (stacks[stackKey] = {});\n return subStack[indexValue] || (subStack[indexValue] = {});\n}\nfunction getLastIndexInStack(stack, vScale, positive, type) {\n for (const meta of vScale.getMatchingVisibleMetas(type).reverse()) {\n const value = stack[meta.index];\n if ((positive && value > 0) || (!positive && value < 0)) {\n return meta.index;\n }\n }\n return null;\n}\nfunction updateStacks(controller, parsed) {\n const {chart, _cachedMeta: meta} = controller;\n const stacks = chart._stacks || (chart._stacks = {});\n const {iScale, vScale, index: datasetIndex} = meta;\n const iAxis = iScale.axis;\n const vAxis = vScale.axis;\n const key = getStackKey(iScale, vScale, meta);\n const ilen = parsed.length;\n let stack;\n for (let i = 0; i < ilen; ++i) {\n const item = parsed[i];\n const {[iAxis]: index, [vAxis]: value} = item;\n const itemStacks = item._stacks || (item._stacks = {});\n stack = itemStacks[vAxis] = getOrCreateStack(stacks, key, index);\n stack[datasetIndex] = value;\n stack._top = getLastIndexInStack(stack, vScale, true, meta.type);\n stack._bottom = getLastIndexInStack(stack, vScale, false, meta.type);\n }\n}\nfunction getFirstScaleId(chart, axis) {\n const scales = chart.scales;\n return Object.keys(scales).filter(key => scales[key].axis === axis).shift();\n}\nfunction createDatasetContext(parent, index) {\n return createContext(parent,\n {\n active: false,\n dataset: undefined,\n datasetIndex: index,\n index,\n mode: 'default',\n type: 'dataset'\n }\n );\n}\nfunction createDataContext(parent, index, element) {\n return createContext(parent, {\n active: false,\n dataIndex: index,\n parsed: undefined,\n raw: undefined,\n element,\n index,\n mode: 'default',\n type: 'data'\n });\n}\nfunction clearStacks(meta, items) {\n const datasetIndex = meta.controller.index;\n const axis = meta.vScale && meta.vScale.axis;\n if (!axis) {\n return;\n }\n items = items || meta._parsed;\n for (const parsed of items) {\n const stacks = parsed._stacks;\n if (!stacks || stacks[axis] === undefined || stacks[axis][datasetIndex] === undefined) {\n return;\n }\n delete stacks[axis][datasetIndex];\n }\n}\nconst isDirectUpdateMode = (mode) => mode === 'reset' || mode === 'none';\nconst cloneIfNotShared = (cached, shared) => shared ? cached : Object.assign({}, cached);\nconst createStack = (canStack, meta, chart) => canStack && !meta.hidden && meta._stacked\n && {keys: getSortedDatasetIndices(chart, true), values: null};\nclass DatasetController {\n constructor(chart, datasetIndex) {\n this.chart = chart;\n this._ctx = chart.ctx;\n this.index = datasetIndex;\n this._cachedDataOpts = {};\n this._cachedMeta = this.getMeta();\n this._type = this._cachedMeta.type;\n this.options = undefined;\n this._parsing = false;\n this._data = undefined;\n this._objectData = undefined;\n this._sharedOptions = undefined;\n this._drawStart = undefined;\n this._drawCount = undefined;\n this.enableOptionSharing = false;\n this.$context = undefined;\n this._syncList = [];\n this.initialize();\n }\n initialize() {\n const meta = this._cachedMeta;\n this.configure();\n this.linkScales();\n meta._stacked = isStacked(meta.vScale, meta);\n this.addElements();\n }\n updateIndex(datasetIndex) {\n if (this.index !== datasetIndex) {\n clearStacks(this._cachedMeta);\n }\n this.index = datasetIndex;\n }\n linkScales() {\n const chart = this.chart;\n const meta = this._cachedMeta;\n const dataset = this.getDataset();\n const chooseId = (axis, x, y, r) => axis === 'x' ? x : axis === 'r' ? r : y;\n const xid = meta.xAxisID = valueOrDefault(dataset.xAxisID, getFirstScaleId(chart, 'x'));\n const yid = meta.yAxisID = valueOrDefault(dataset.yAxisID, getFirstScaleId(chart, 'y'));\n const rid = meta.rAxisID = valueOrDefault(dataset.rAxisID, getFirstScaleId(chart, 'r'));\n const indexAxis = meta.indexAxis;\n const iid = meta.iAxisID = chooseId(indexAxis, xid, yid, rid);\n const vid = meta.vAxisID = chooseId(indexAxis, yid, xid, rid);\n meta.xScale = this.getScaleForId(xid);\n meta.yScale = this.getScaleForId(yid);\n meta.rScale = this.getScaleForId(rid);\n meta.iScale = this.getScaleForId(iid);\n meta.vScale = this.getScaleForId(vid);\n }\n getDataset() {\n return this.chart.data.datasets[this.index];\n }\n getMeta() {\n return this.chart.getDatasetMeta(this.index);\n }\n getScaleForId(scaleID) {\n return this.chart.scales[scaleID];\n }\n _getOtherScale(scale) {\n const meta = this._cachedMeta;\n return scale === meta.iScale\n ? meta.vScale\n : meta.iScale;\n }\n reset() {\n this._update('reset');\n }\n _destroy() {\n const meta = this._cachedMeta;\n if (this._data) {\n unlistenArrayEvents(this._data, this);\n }\n if (meta._stacked) {\n clearStacks(meta);\n }\n }\n _dataCheck() {\n const dataset = this.getDataset();\n const data = dataset.data || (dataset.data = []);\n const _data = this._data;\n if (isObject(data)) {\n this._data = convertObjectDataToArray(data);\n } else if (_data !== data) {\n if (_data) {\n unlistenArrayEvents(_data, this);\n const meta = this._cachedMeta;\n clearStacks(meta);\n meta._parsed = [];\n }\n if (data && Object.isExtensible(data)) {\n listenArrayEvents(data, this);\n }\n this._syncList = [];\n this._data = data;\n }\n }\n addElements() {\n const meta = this._cachedMeta;\n this._dataCheck();\n if (this.datasetElementType) {\n meta.dataset = new this.datasetElementType();\n }\n }\n buildOrUpdateElements(resetNewElements) {\n const meta = this._cachedMeta;\n const dataset = this.getDataset();\n let stackChanged = false;\n this._dataCheck();\n const oldStacked = meta._stacked;\n meta._stacked = isStacked(meta.vScale, meta);\n if (meta.stack !== dataset.stack) {\n stackChanged = true;\n clearStacks(meta);\n meta.stack = dataset.stack;\n }\n this._resyncElements(resetNewElements);\n if (stackChanged || oldStacked !== meta._stacked) {\n updateStacks(this, meta._parsed);\n }\n }\n configure() {\n const config = this.chart.config;\n const scopeKeys = config.datasetScopeKeys(this._type);\n const scopes = config.getOptionScopes(this.getDataset(), scopeKeys, true);\n this.options = config.createResolver(scopes, this.getContext());\n this._parsing = this.options.parsing;\n }\n parse(start, count) {\n const {_cachedMeta: meta, _data: data} = this;\n const {iScale, _stacked} = meta;\n const iAxis = iScale.axis;\n let sorted = start === 0 && count === data.length ? true : meta._sorted;\n let prev = start > 0 && meta._parsed[start - 1];\n let i, cur, parsed;\n if (this._parsing === false) {\n meta._parsed = data;\n meta._sorted = true;\n parsed = data;\n } else {\n if (isArray(data[start])) {\n parsed = this.parseArrayData(meta, data, start, count);\n } else if (isObject(data[start])) {\n parsed = this.parseObjectData(meta, data, start, count);\n } else {\n parsed = this.parsePrimitiveData(meta, data, start, count);\n }\n const isNotInOrderComparedToPrev = () => cur[iAxis] === null || (prev && cur[iAxis] < prev[iAxis]);\n for (i = 0; i < count; ++i) {\n meta._parsed[i + start] = cur = parsed[i];\n if (sorted) {\n if (isNotInOrderComparedToPrev()) {\n sorted = false;\n }\n prev = cur;\n }\n }\n meta._sorted = sorted;\n }\n if (_stacked) {\n updateStacks(this, parsed);\n }\n }\n parsePrimitiveData(meta, data, start, count) {\n const {iScale, vScale} = meta;\n const iAxis = iScale.axis;\n const vAxis = vScale.axis;\n const labels = iScale.getLabels();\n const singleScale = iScale === vScale;\n const parsed = new Array(count);\n let i, ilen, index;\n for (i = 0, ilen = count; i < ilen; ++i) {\n index = i + start;\n parsed[i] = {\n [iAxis]: singleScale || iScale.parse(labels[index], index),\n [vAxis]: vScale.parse(data[index], index)\n };\n }\n return parsed;\n }\n parseArrayData(meta, data, start, count) {\n const {xScale, yScale} = meta;\n const parsed = new Array(count);\n let i, ilen, index, item;\n for (i = 0, ilen = count; i < ilen; ++i) {\n index = i + start;\n item = data[index];\n parsed[i] = {\n x: xScale.parse(item[0], index),\n y: yScale.parse(item[1], index)\n };\n }\n return parsed;\n }\n parseObjectData(meta, data, start, count) {\n const {xScale, yScale} = meta;\n const {xAxisKey = 'x', yAxisKey = 'y'} = this._parsing;\n const parsed = new Array(count);\n let i, ilen, index, item;\n for (i = 0, ilen = count; i < ilen; ++i) {\n index = i + start;\n item = data[index];\n parsed[i] = {\n x: xScale.parse(resolveObjectKey(item, xAxisKey), index),\n y: yScale.parse(resolveObjectKey(item, yAxisKey), index)\n };\n }\n return parsed;\n }\n getParsed(index) {\n return this._cachedMeta._parsed[index];\n }\n getDataElement(index) {\n return this._cachedMeta.data[index];\n }\n applyStack(scale, parsed, mode) {\n const chart = this.chart;\n const meta = this._cachedMeta;\n const value = parsed[scale.axis];\n const stack = {\n keys: getSortedDatasetIndices(chart, true),\n values: parsed._stacks[scale.axis]\n };\n return applyStack(stack, value, meta.index, {mode});\n }\n updateRangeFromParsed(range, scale, parsed, stack) {\n const parsedValue = parsed[scale.axis];\n let value = parsedValue === null ? NaN : parsedValue;\n const values = stack && parsed._stacks[scale.axis];\n if (stack && values) {\n stack.values = values;\n value = applyStack(stack, parsedValue, this._cachedMeta.index);\n }\n range.min = Math.min(range.min, value);\n range.max = Math.max(range.max, value);\n }\n getMinMax(scale, canStack) {\n const meta = this._cachedMeta;\n const _parsed = meta._parsed;\n const sorted = meta._sorted && scale === meta.iScale;\n const ilen = _parsed.length;\n const otherScale = this._getOtherScale(scale);\n const stack = createStack(canStack, meta, this.chart);\n const range = {min: Number.POSITIVE_INFINITY, max: Number.NEGATIVE_INFINITY};\n const {min: otherMin, max: otherMax} = getUserBounds(otherScale);\n let i, parsed;\n function _skip() {\n parsed = _parsed[i];\n const otherValue = parsed[otherScale.axis];\n return !isNumberFinite(parsed[scale.axis]) || otherMin > otherValue || otherMax < otherValue;\n }\n for (i = 0; i < ilen; ++i) {\n if (_skip()) {\n continue;\n }\n this.updateRangeFromParsed(range, scale, parsed, stack);\n if (sorted) {\n break;\n }\n }\n if (sorted) {\n for (i = ilen - 1; i >= 0; --i) {\n if (_skip()) {\n continue;\n }\n this.updateRangeFromParsed(range, scale, parsed, stack);\n break;\n }\n }\n return range;\n }\n getAllParsedValues(scale) {\n const parsed = this._cachedMeta._parsed;\n const values = [];\n let i, ilen, value;\n for (i = 0, ilen = parsed.length; i < ilen; ++i) {\n value = parsed[i][scale.axis];\n if (isNumberFinite(value)) {\n values.push(value);\n }\n }\n return values;\n }\n getMaxOverflow() {\n return false;\n }\n getLabelAndValue(index) {\n const meta = this._cachedMeta;\n const iScale = meta.iScale;\n const vScale = meta.vScale;\n const parsed = this.getParsed(index);\n return {\n label: iScale ? '' + iScale.getLabelForValue(parsed[iScale.axis]) : '',\n value: vScale ? '' + vScale.getLabelForValue(parsed[vScale.axis]) : ''\n };\n }\n _update(mode) {\n const meta = this._cachedMeta;\n this.configure();\n this._cachedDataOpts = {};\n this.update(mode || 'default');\n meta._clip = toClip(valueOrDefault(this.options.clip, defaultClip(meta.xScale, meta.yScale, this.getMaxOverflow())));\n }\n update(mode) {}\n draw() {\n const ctx = this._ctx;\n const chart = this.chart;\n const meta = this._cachedMeta;\n const elements = meta.data || [];\n const area = chart.chartArea;\n const active = [];\n const start = this._drawStart || 0;\n const count = this._drawCount || (elements.length - start);\n let i;\n if (meta.dataset) {\n meta.dataset.draw(ctx, area, start, count);\n }\n for (i = start; i < start + count; ++i) {\n const element = elements[i];\n if (element.hidden) {\n continue;\n }\n if (element.active) {\n active.push(element);\n } else {\n element.draw(ctx, area);\n }\n }\n for (i = 0; i < active.length; ++i) {\n active[i].draw(ctx, area);\n }\n }\n getStyle(index, active) {\n const mode = active ? 'active' : 'default';\n return index === undefined && this._cachedMeta.dataset\n ? this.resolveDatasetElementOptions(mode)\n : this.resolveDataElementOptions(index || 0, mode);\n }\n getContext(index, active, mode) {\n const dataset = this.getDataset();\n let context;\n if (index >= 0 && index < this._cachedMeta.data.length) {\n const element = this._cachedMeta.data[index];\n context = element.$context ||\n (element.$context = createDataContext(this.getContext(), index, element));\n context.parsed = this.getParsed(index);\n context.raw = dataset.data[index];\n context.index = context.dataIndex = index;\n } else {\n context = this.$context ||\n (this.$context = createDatasetContext(this.chart.getContext(), this.index));\n context.dataset = dataset;\n context.index = context.datasetIndex = this.index;\n }\n context.active = !!active;\n context.mode = mode;\n return context;\n }\n resolveDatasetElementOptions(mode) {\n return this._resolveElementOptions(this.datasetElementType.id, mode);\n }\n resolveDataElementOptions(index, mode) {\n return this._resolveElementOptions(this.dataElementType.id, mode, index);\n }\n _resolveElementOptions(elementType, mode = 'default', index) {\n const active = mode === 'active';\n const cache = this._cachedDataOpts;\n const cacheKey = elementType + '-' + mode;\n const cached = cache[cacheKey];\n const sharing = this.enableOptionSharing && defined(index);\n if (cached) {\n return cloneIfNotShared(cached, sharing);\n }\n const config = this.chart.config;\n const scopeKeys = config.datasetElementScopeKeys(this._type, elementType);\n const prefixes = active ? [`${elementType}Hover`, 'hover', elementType, ''] : [elementType, ''];\n const scopes = config.getOptionScopes(this.getDataset(), scopeKeys);\n const names = Object.keys(defaults.elements[elementType]);\n const context = () => this.getContext(index, active);\n const values = config.resolveNamedOptions(scopes, names, context, prefixes);\n if (values.$shared) {\n values.$shared = sharing;\n cache[cacheKey] = Object.freeze(cloneIfNotShared(values, sharing));\n }\n return values;\n }\n _resolveAnimations(index, transition, active) {\n const chart = this.chart;\n const cache = this._cachedDataOpts;\n const cacheKey = `animation-${transition}`;\n const cached = cache[cacheKey];\n if (cached) {\n return cached;\n }\n let options;\n if (chart.options.animation !== false) {\n const config = this.chart.config;\n const scopeKeys = config.datasetAnimationScopeKeys(this._type, transition);\n const scopes = config.getOptionScopes(this.getDataset(), scopeKeys);\n options = config.createResolver(scopes, this.getContext(index, active, transition));\n }\n const animations = new Animations(chart, options && options.animations);\n if (options && options._cacheable) {\n cache[cacheKey] = Object.freeze(animations);\n }\n return animations;\n }\n getSharedOptions(options) {\n if (!options.$shared) {\n return;\n }\n return this._sharedOptions || (this._sharedOptions = Object.assign({}, options));\n }\n includeOptions(mode, sharedOptions) {\n return !sharedOptions || isDirectUpdateMode(mode) || this.chart._animationsDisabled;\n }\n updateElement(element, index, properties, mode) {\n if (isDirectUpdateMode(mode)) {\n Object.assign(element, properties);\n } else {\n this._resolveAnimations(index, mode).update(element, properties);\n }\n }\n updateSharedOptions(sharedOptions, mode, newOptions) {\n if (sharedOptions && !isDirectUpdateMode(mode)) {\n this._resolveAnimations(undefined, mode).update(sharedOptions, newOptions);\n }\n }\n _setStyle(element, index, mode, active) {\n element.active = active;\n const options = this.getStyle(index, active);\n this._resolveAnimations(index, mode, active).update(element, {\n options: (!active && this.getSharedOptions(options)) || options\n });\n }\n removeHoverStyle(element, datasetIndex, index) {\n this._setStyle(element, index, 'active', false);\n }\n setHoverStyle(element, datasetIndex, index) {\n this._setStyle(element, index, 'active', true);\n }\n _removeDatasetHoverStyle() {\n const element = this._cachedMeta.dataset;\n if (element) {\n this._setStyle(element, undefined, 'active', false);\n }\n }\n _setDatasetHoverStyle() {\n const element = this._cachedMeta.dataset;\n if (element) {\n this._setStyle(element, undefined, 'active', true);\n }\n }\n _resyncElements(resetNewElements) {\n const data = this._data;\n const elements = this._cachedMeta.data;\n for (const [method, arg1, arg2] of this._syncList) {\n this[method](arg1, arg2);\n }\n this._syncList = [];\n const numMeta = elements.length;\n const numData = data.length;\n const count = Math.min(numData, numMeta);\n if (count) {\n this.parse(0, count);\n }\n if (numData > numMeta) {\n this._insertElements(numMeta, numData - numMeta, resetNewElements);\n } else if (numData < numMeta) {\n this._removeElements(numData, numMeta - numData);\n }\n }\n _insertElements(start, count, resetNewElements = true) {\n const meta = this._cachedMeta;\n const data = meta.data;\n const end = start + count;\n let i;\n const move = (arr) => {\n arr.length += count;\n for (i = arr.length - 1; i >= end; i--) {\n arr[i] = arr[i - count];\n }\n };\n move(data);\n for (i = start; i < end; ++i) {\n data[i] = new this.dataElementType();\n }\n if (this._parsing) {\n move(meta._parsed);\n }\n this.parse(start, count);\n if (resetNewElements) {\n this.updateElements(data, start, count, 'reset');\n }\n }\n updateElements(element, start, count, mode) {}\n _removeElements(start, count) {\n const meta = this._cachedMeta;\n if (this._parsing) {\n const removed = meta._parsed.splice(start, count);\n if (meta._stacked) {\n clearStacks(meta, removed);\n }\n }\n meta.data.splice(start, count);\n }\n _sync(args) {\n if (this._parsing) {\n this._syncList.push(args);\n } else {\n const [method, arg1, arg2] = args;\n this[method](arg1, arg2);\n }\n }\n _onDataPush() {\n const count = arguments.length;\n this._sync(['_insertElements', this.getDataset().data.length - count, count]);\n }\n _onDataPop() {\n this._sync(['_removeElements', this._cachedMeta.data.length - 1, 1]);\n }\n _onDataShift() {\n this._sync(['_removeElements', 0, 1]);\n }\n _onDataSplice(start, count) {\n this._sync(['_removeElements', start, count]);\n this._sync(['_insertElements', start, arguments.length - 2]);\n }\n _onDataUnshift() {\n this._sync(['_insertElements', 0, arguments.length]);\n }\n}\nDatasetController.defaults = {};\nDatasetController.prototype.datasetElementType = null;\nDatasetController.prototype.dataElementType = null;\n\nfunction getAllScaleValues(scale, type) {\n if (!scale._cache.$bar) {\n const visibleMetas = scale.getMatchingVisibleMetas(type);\n let values = [];\n for (let i = 0, ilen = visibleMetas.length; i < ilen; i++) {\n values = values.concat(visibleMetas[i].controller.getAllParsedValues(scale));\n }\n scale._cache.$bar = _arrayUnique(values.sort((a, b) => a - b));\n }\n return scale._cache.$bar;\n}\nfunction computeMinSampleSize(meta) {\n const scale = meta.iScale;\n const values = getAllScaleValues(scale, meta.type);\n let min = scale._length;\n let i, ilen, curr, prev;\n const updateMinAndPrev = () => {\n if (curr === 32767 || curr === -32768) {\n return;\n }\n if (defined(prev)) {\n min = Math.min(min, Math.abs(curr - prev) || min);\n }\n prev = curr;\n };\n for (i = 0, ilen = values.length; i < ilen; ++i) {\n curr = scale.getPixelForValue(values[i]);\n updateMinAndPrev();\n }\n prev = undefined;\n for (i = 0, ilen = scale.ticks.length; i < ilen; ++i) {\n curr = scale.getPixelForTick(i);\n updateMinAndPrev();\n }\n return min;\n}\nfunction computeFitCategoryTraits(index, ruler, options, stackCount) {\n const thickness = options.barThickness;\n let size, ratio;\n if (isNullOrUndef(thickness)) {\n size = ruler.min * options.categoryPercentage;\n ratio = options.barPercentage;\n } else {\n size = thickness * stackCount;\n ratio = 1;\n }\n return {\n chunk: size / stackCount,\n ratio,\n start: ruler.pixels[index] - (size / 2)\n };\n}\nfunction computeFlexCategoryTraits(index, ruler, options, stackCount) {\n const pixels = ruler.pixels;\n const curr = pixels[index];\n let prev = index > 0 ? pixels[index - 1] : null;\n let next = index < pixels.length - 1 ? pixels[index + 1] : null;\n const percent = options.categoryPercentage;\n if (prev === null) {\n prev = curr - (next === null ? ruler.end - ruler.start : next - curr);\n }\n if (next === null) {\n next = curr + curr - prev;\n }\n const start = curr - (curr - Math.min(prev, next)) / 2 * percent;\n const size = Math.abs(next - prev) / 2 * percent;\n return {\n chunk: size / stackCount,\n ratio: options.barPercentage,\n start\n };\n}\nfunction parseFloatBar(entry, item, vScale, i) {\n const startValue = vScale.parse(entry[0], i);\n const endValue = vScale.parse(entry[1], i);\n const min = Math.min(startValue, endValue);\n const max = Math.max(startValue, endValue);\n let barStart = min;\n let barEnd = max;\n if (Math.abs(min) > Math.abs(max)) {\n barStart = max;\n barEnd = min;\n }\n item[vScale.axis] = barEnd;\n item._custom = {\n barStart,\n barEnd,\n start: startValue,\n end: endValue,\n min,\n max\n };\n}\nfunction parseValue(entry, item, vScale, i) {\n if (isArray(entry)) {\n parseFloatBar(entry, item, vScale, i);\n } else {\n item[vScale.axis] = vScale.parse(entry, i);\n }\n return item;\n}\nfunction parseArrayOrPrimitive(meta, data, start, count) {\n const iScale = meta.iScale;\n const vScale = meta.vScale;\n const labels = iScale.getLabels();\n const singleScale = iScale === vScale;\n const parsed = [];\n let i, ilen, item, entry;\n for (i = start, ilen = start + count; i < ilen; ++i) {\n entry = data[i];\n item = {};\n item[iScale.axis] = singleScale || iScale.parse(labels[i], i);\n parsed.push(parseValue(entry, item, vScale, i));\n }\n return parsed;\n}\nfunction isFloatBar(custom) {\n return custom && custom.barStart !== undefined && custom.barEnd !== undefined;\n}\nfunction barSign(size, vScale, actualBase) {\n if (size !== 0) {\n return sign(size);\n }\n return (vScale.isHorizontal() ? 1 : -1) * (vScale.min >= actualBase ? 1 : -1);\n}\nfunction borderProps(properties) {\n let reverse, start, end, top, bottom;\n if (properties.horizontal) {\n reverse = properties.base > properties.x;\n start = 'left';\n end = 'right';\n } else {\n reverse = properties.base < properties.y;\n start = 'bottom';\n end = 'top';\n }\n if (reverse) {\n top = 'end';\n bottom = 'start';\n } else {\n top = 'start';\n bottom = 'end';\n }\n return {start, end, reverse, top, bottom};\n}\nfunction setBorderSkipped(properties, options, stack, index) {\n let edge = options.borderSkipped;\n const res = {};\n if (!edge) {\n properties.borderSkipped = res;\n return;\n }\n const {start, end, reverse, top, bottom} = borderProps(properties);\n if (edge === 'middle' && stack) {\n properties.enableBorderRadius = true;\n if ((stack._top || 0) === index) {\n edge = top;\n } else if ((stack._bottom || 0) === index) {\n edge = bottom;\n } else {\n res[parseEdge(bottom, start, end, reverse)] = true;\n edge = top;\n }\n }\n res[parseEdge(edge, start, end, reverse)] = true;\n properties.borderSkipped = res;\n}\nfunction parseEdge(edge, a, b, reverse) {\n if (reverse) {\n edge = swap(edge, a, b);\n edge = startEnd(edge, b, a);\n } else {\n edge = startEnd(edge, a, b);\n }\n return edge;\n}\nfunction swap(orig, v1, v2) {\n return orig === v1 ? v2 : orig === v2 ? v1 : orig;\n}\nfunction startEnd(v, start, end) {\n return v === 'start' ? start : v === 'end' ? end : v;\n}\nfunction setInflateAmount(properties, {inflateAmount}, ratio) {\n properties.inflateAmount = inflateAmount === 'auto'\n ? ratio === 1 ? 0.33 : 0\n : inflateAmount;\n}\nclass BarController extends DatasetController {\n parsePrimitiveData(meta, data, start, count) {\n return parseArrayOrPrimitive(meta, data, start, count);\n }\n parseArrayData(meta, data, start, count) {\n return parseArrayOrPrimitive(meta, data, start, count);\n }\n parseObjectData(meta, data, start, count) {\n const {iScale, vScale} = meta;\n const {xAxisKey = 'x', yAxisKey = 'y'} = this._parsing;\n const iAxisKey = iScale.axis === 'x' ? xAxisKey : yAxisKey;\n const vAxisKey = vScale.axis === 'x' ? xAxisKey : yAxisKey;\n const parsed = [];\n let i, ilen, item, obj;\n for (i = start, ilen = start + count; i < ilen; ++i) {\n obj = data[i];\n item = {};\n item[iScale.axis] = iScale.parse(resolveObjectKey(obj, iAxisKey), i);\n parsed.push(parseValue(resolveObjectKey(obj, vAxisKey), item, vScale, i));\n }\n return parsed;\n }\n updateRangeFromParsed(range, scale, parsed, stack) {\n super.updateRangeFromParsed(range, scale, parsed, stack);\n const custom = parsed._custom;\n if (custom && scale === this._cachedMeta.vScale) {\n range.min = Math.min(range.min, custom.min);\n range.max = Math.max(range.max, custom.max);\n }\n }\n getMaxOverflow() {\n return 0;\n }\n getLabelAndValue(index) {\n const meta = this._cachedMeta;\n const {iScale, vScale} = meta;\n const parsed = this.getParsed(index);\n const custom = parsed._custom;\n const value = isFloatBar(custom)\n ? '[' + custom.start + ', ' + custom.end + ']'\n : '' + vScale.getLabelForValue(parsed[vScale.axis]);\n return {\n label: '' + iScale.getLabelForValue(parsed[iScale.axis]),\n value\n };\n }\n initialize() {\n this.enableOptionSharing = true;\n super.initialize();\n const meta = this._cachedMeta;\n meta.stack = this.getDataset().stack;\n }\n update(mode) {\n const meta = this._cachedMeta;\n this.updateElements(meta.data, 0, meta.data.length, mode);\n }\n updateElements(bars, start, count, mode) {\n const reset = mode === 'reset';\n const {index, _cachedMeta: {vScale}} = this;\n const base = vScale.getBasePixel();\n const horizontal = vScale.isHorizontal();\n const ruler = this._getRuler();\n const firstOpts = this.resolveDataElementOptions(start, mode);\n const sharedOptions = this.getSharedOptions(firstOpts);\n const includeOptions = this.includeOptions(mode, sharedOptions);\n this.updateSharedOptions(sharedOptions, mode, firstOpts);\n for (let i = start; i < start + count; i++) {\n const parsed = this.getParsed(i);\n const vpixels = reset || isNullOrUndef(parsed[vScale.axis]) ? {base, head: base} : this._calculateBarValuePixels(i);\n const ipixels = this._calculateBarIndexPixels(i, ruler);\n const stack = (parsed._stacks || {})[vScale.axis];\n const properties = {\n horizontal,\n base: vpixels.base,\n enableBorderRadius: !stack || isFloatBar(parsed._custom) || (index === stack._top || index === stack._bottom),\n x: horizontal ? vpixels.head : ipixels.center,\n y: horizontal ? ipixels.center : vpixels.head,\n height: horizontal ? ipixels.size : Math.abs(vpixels.size),\n width: horizontal ? Math.abs(vpixels.size) : ipixels.size\n };\n if (includeOptions) {\n properties.options = sharedOptions || this.resolveDataElementOptions(i, bars[i].active ? 'active' : mode);\n }\n const options = properties.options || bars[i].options;\n setBorderSkipped(properties, options, stack, index);\n setInflateAmount(properties, options, ruler.ratio);\n this.updateElement(bars[i], i, properties, mode);\n }\n }\n _getStacks(last, dataIndex) {\n const meta = this._cachedMeta;\n const iScale = meta.iScale;\n const metasets = iScale.getMatchingVisibleMetas(this._type);\n const stacked = iScale.options.stacked;\n const ilen = metasets.length;\n const stacks = [];\n let i, item;\n for (i = 0; i < ilen; ++i) {\n item = metasets[i];\n if (!item.controller.options.grouped) {\n continue;\n }\n if (typeof dataIndex !== 'undefined') {\n const val = item.controller.getParsed(dataIndex)[\n item.controller._cachedMeta.vScale.axis\n ];\n if (isNullOrUndef(val) || isNaN(val)) {\n continue;\n }\n }\n if (stacked === false || stacks.indexOf(item.stack) === -1 ||\n\t\t\t\t(stacked === undefined && item.stack === undefined)) {\n stacks.push(item.stack);\n }\n if (item.index === last) {\n break;\n }\n }\n if (!stacks.length) {\n stacks.push(undefined);\n }\n return stacks;\n }\n _getStackCount(index) {\n return this._getStacks(undefined, index).length;\n }\n _getStackIndex(datasetIndex, name, dataIndex) {\n const stacks = this._getStacks(datasetIndex, dataIndex);\n const index = (name !== undefined)\n ? stacks.indexOf(name)\n : -1;\n return (index === -1)\n ? stacks.length - 1\n : index;\n }\n _getRuler() {\n const opts = this.options;\n const meta = this._cachedMeta;\n const iScale = meta.iScale;\n const pixels = [];\n let i, ilen;\n for (i = 0, ilen = meta.data.length; i < ilen; ++i) {\n pixels.push(iScale.getPixelForValue(this.getParsed(i)[iScale.axis], i));\n }\n const barThickness = opts.barThickness;\n const min = barThickness || computeMinSampleSize(meta);\n return {\n min,\n pixels,\n start: iScale._startPixel,\n end: iScale._endPixel,\n stackCount: this._getStackCount(),\n scale: iScale,\n grouped: opts.grouped,\n ratio: barThickness ? 1 : opts.categoryPercentage * opts.barPercentage\n };\n }\n _calculateBarValuePixels(index) {\n const {_cachedMeta: {vScale, _stacked}, options: {base: baseValue, minBarLength}} = this;\n const actualBase = baseValue || 0;\n const parsed = this.getParsed(index);\n const custom = parsed._custom;\n const floating = isFloatBar(custom);\n let value = parsed[vScale.axis];\n let start = 0;\n let length = _stacked ? this.applyStack(vScale, parsed, _stacked) : value;\n let head, size;\n if (length !== value) {\n start = length - value;\n length = value;\n }\n if (floating) {\n value = custom.barStart;\n length = custom.barEnd - custom.barStart;\n if (value !== 0 && sign(value) !== sign(custom.barEnd)) {\n start = 0;\n }\n start += value;\n }\n const startValue = !isNullOrUndef(baseValue) && !floating ? baseValue : start;\n let base = vScale.getPixelForValue(startValue);\n if (this.chart.getDataVisibility(index)) {\n head = vScale.getPixelForValue(start + length);\n } else {\n head = base;\n }\n size = head - base;\n if (Math.abs(size) < minBarLength) {\n size = barSign(size, vScale, actualBase) * minBarLength;\n if (value === actualBase) {\n base -= size / 2;\n }\n head = base + size;\n }\n if (base === vScale.getPixelForValue(actualBase)) {\n const halfGrid = sign(size) * vScale.getLineWidthForValue(actualBase) / 2;\n base += halfGrid;\n size -= halfGrid;\n }\n return {\n size,\n base,\n head,\n center: head + size / 2\n };\n }\n _calculateBarIndexPixels(index, ruler) {\n const scale = ruler.scale;\n const options = this.options;\n const skipNull = options.skipNull;\n const maxBarThickness = valueOrDefault(options.maxBarThickness, Infinity);\n let center, size;\n if (ruler.grouped) {\n const stackCount = skipNull ? this._getStackCount(index) : ruler.stackCount;\n const range = options.barThickness === 'flex'\n ? computeFlexCategoryTraits(index, ruler, options, stackCount)\n : computeFitCategoryTraits(index, ruler, options, stackCount);\n const stackIndex = this._getStackIndex(this.index, this._cachedMeta.stack, skipNull ? index : undefined);\n center = range.start + (range.chunk * stackIndex) + (range.chunk / 2);\n size = Math.min(maxBarThickness, range.chunk * range.ratio);\n } else {\n center = scale.getPixelForValue(this.getParsed(index)[scale.axis], index);\n size = Math.min(maxBarThickness, ruler.min * ruler.ratio);\n }\n return {\n base: center - size / 2,\n head: center + size / 2,\n center,\n size\n };\n }\n draw() {\n const meta = this._cachedMeta;\n const vScale = meta.vScale;\n const rects = meta.data;\n const ilen = rects.length;\n let i = 0;\n for (; i < ilen; ++i) {\n if (this.getParsed(i)[vScale.axis] !== null) {\n rects[i].draw(this._ctx);\n }\n }\n }\n}\nBarController.id = 'bar';\nBarController.defaults = {\n datasetElementType: false,\n dataElementType: 'bar',\n categoryPercentage: 0.8,\n barPercentage: 0.9,\n grouped: true,\n animations: {\n numbers: {\n type: 'number',\n properties: ['x', 'y', 'base', 'width', 'height']\n }\n }\n};\nBarController.overrides = {\n scales: {\n _index_: {\n type: 'category',\n offset: true,\n grid: {\n offset: true\n }\n },\n _value_: {\n type: 'linear',\n beginAtZero: true,\n }\n }\n};\n\nclass BubbleController extends DatasetController {\n initialize() {\n this.enableOptionSharing = true;\n super.initialize();\n }\n parsePrimitiveData(meta, data, start, count) {\n const parsed = super.parsePrimitiveData(meta, data, start, count);\n for (let i = 0; i < parsed.length; i++) {\n parsed[i]._custom = this.resolveDataElementOptions(i + start).radius;\n }\n return parsed;\n }\n parseArrayData(meta, data, start, count) {\n const parsed = super.parseArrayData(meta, data, start, count);\n for (let i = 0; i < parsed.length; i++) {\n const item = data[start + i];\n parsed[i]._custom = valueOrDefault(item[2], this.resolveDataElementOptions(i + start).radius);\n }\n return parsed;\n }\n parseObjectData(meta, data, start, count) {\n const parsed = super.parseObjectData(meta, data, start, count);\n for (let i = 0; i < parsed.length; i++) {\n const item = data[start + i];\n parsed[i]._custom = valueOrDefault(item && item.r && +item.r, this.resolveDataElementOptions(i + start).radius);\n }\n return parsed;\n }\n getMaxOverflow() {\n const data = this._cachedMeta.data;\n let max = 0;\n for (let i = data.length - 1; i >= 0; --i) {\n max = Math.max(max, data[i].size(this.resolveDataElementOptions(i)) / 2);\n }\n return max > 0 && max;\n }\n getLabelAndValue(index) {\n const meta = this._cachedMeta;\n const {xScale, yScale} = meta;\n const parsed = this.getParsed(index);\n const x = xScale.getLabelForValue(parsed.x);\n const y = yScale.getLabelForValue(parsed.y);\n const r = parsed._custom;\n return {\n label: meta.label,\n value: '(' + x + ', ' + y + (r ? ', ' + r : '') + ')'\n };\n }\n update(mode) {\n const points = this._cachedMeta.data;\n this.updateElements(points, 0, points.length, mode);\n }\n updateElements(points, start, count, mode) {\n const reset = mode === 'reset';\n const {iScale, vScale} = this._cachedMeta;\n const firstOpts = this.resolveDataElementOptions(start, mode);\n const sharedOptions = this.getSharedOptions(firstOpts);\n const includeOptions = this.includeOptions(mode, sharedOptions);\n const iAxis = iScale.axis;\n const vAxis = vScale.axis;\n for (let i = start; i < start + count; i++) {\n const point = points[i];\n const parsed = !reset && this.getParsed(i);\n const properties = {};\n const iPixel = properties[iAxis] = reset ? iScale.getPixelForDecimal(0.5) : iScale.getPixelForValue(parsed[iAxis]);\n const vPixel = properties[vAxis] = reset ? vScale.getBasePixel() : vScale.getPixelForValue(parsed[vAxis]);\n properties.skip = isNaN(iPixel) || isNaN(vPixel);\n if (includeOptions) {\n properties.options = this.resolveDataElementOptions(i, point.active ? 'active' : mode);\n if (reset) {\n properties.options.radius = 0;\n }\n }\n this.updateElement(point, i, properties, mode);\n }\n this.updateSharedOptions(sharedOptions, mode, firstOpts);\n }\n resolveDataElementOptions(index, mode) {\n const parsed = this.getParsed(index);\n let values = super.resolveDataElementOptions(index, mode);\n if (values.$shared) {\n values = Object.assign({}, values, {$shared: false});\n }\n const radius = values.radius;\n if (mode !== 'active') {\n values.radius = 0;\n }\n values.radius += valueOrDefault(parsed && parsed._custom, radius);\n return values;\n }\n}\nBubbleController.id = 'bubble';\nBubbleController.defaults = {\n datasetElementType: false,\n dataElementType: 'point',\n animations: {\n numbers: {\n type: 'number',\n properties: ['x', 'y', 'borderWidth', 'radius']\n }\n }\n};\nBubbleController.overrides = {\n scales: {\n x: {\n type: 'linear'\n },\n y: {\n type: 'linear'\n }\n },\n plugins: {\n tooltip: {\n callbacks: {\n title() {\n return '';\n }\n }\n }\n }\n};\n\nfunction getRatioAndOffset(rotation, circumference, cutout) {\n let ratioX = 1;\n let ratioY = 1;\n let offsetX = 0;\n let offsetY = 0;\n if (circumference < TAU) {\n const startAngle = rotation;\n const endAngle = startAngle + circumference;\n const startX = Math.cos(startAngle);\n const startY = Math.sin(startAngle);\n const endX = Math.cos(endAngle);\n const endY = Math.sin(endAngle);\n const calcMax = (angle, a, b) => _angleBetween(angle, startAngle, endAngle, true) ? 1 : Math.max(a, a * cutout, b, b * cutout);\n const calcMin = (angle, a, b) => _angleBetween(angle, startAngle, endAngle, true) ? -1 : Math.min(a, a * cutout, b, b * cutout);\n const maxX = calcMax(0, startX, endX);\n const maxY = calcMax(HALF_PI, startY, endY);\n const minX = calcMin(PI, startX, endX);\n const minY = calcMin(PI + HALF_PI, startY, endY);\n ratioX = (maxX - minX) / 2;\n ratioY = (maxY - minY) / 2;\n offsetX = -(maxX + minX) / 2;\n offsetY = -(maxY + minY) / 2;\n }\n return {ratioX, ratioY, offsetX, offsetY};\n}\nclass DoughnutController extends DatasetController {\n constructor(chart, datasetIndex) {\n super(chart, datasetIndex);\n this.enableOptionSharing = true;\n this.innerRadius = undefined;\n this.outerRadius = undefined;\n this.offsetX = undefined;\n this.offsetY = undefined;\n }\n linkScales() {}\n parse(start, count) {\n const data = this.getDataset().data;\n const meta = this._cachedMeta;\n if (this._parsing === false) {\n meta._parsed = data;\n } else {\n let getter = (i) => +data[i];\n if (isObject(data[start])) {\n const {key = 'value'} = this._parsing;\n getter = (i) => +resolveObjectKey(data[i], key);\n }\n let i, ilen;\n for (i = start, ilen = start + count; i < ilen; ++i) {\n meta._parsed[i] = getter(i);\n }\n }\n }\n _getRotation() {\n return toRadians(this.options.rotation - 90);\n }\n _getCircumference() {\n return toRadians(this.options.circumference);\n }\n _getRotationExtents() {\n let min = TAU;\n let max = -TAU;\n for (let i = 0; i < this.chart.data.datasets.length; ++i) {\n if (this.chart.isDatasetVisible(i)) {\n const controller = this.chart.getDatasetMeta(i).controller;\n const rotation = controller._getRotation();\n const circumference = controller._getCircumference();\n min = Math.min(min, rotation);\n max = Math.max(max, rotation + circumference);\n }\n }\n return {\n rotation: min,\n circumference: max - min,\n };\n }\n update(mode) {\n const chart = this.chart;\n const {chartArea} = chart;\n const meta = this._cachedMeta;\n const arcs = meta.data;\n const spacing = this.getMaxBorderWidth() + this.getMaxOffset(arcs) + this.options.spacing;\n const maxSize = Math.max((Math.min(chartArea.width, chartArea.height) - spacing) / 2, 0);\n const cutout = Math.min(toPercentage(this.options.cutout, maxSize), 1);\n const chartWeight = this._getRingWeight(this.index);\n const {circumference, rotation} = this._getRotationExtents();\n const {ratioX, ratioY, offsetX, offsetY} = getRatioAndOffset(rotation, circumference, cutout);\n const maxWidth = (chartArea.width - spacing) / ratioX;\n const maxHeight = (chartArea.height - spacing) / ratioY;\n const maxRadius = Math.max(Math.min(maxWidth, maxHeight) / 2, 0);\n const outerRadius = toDimension(this.options.radius, maxRadius);\n const innerRadius = Math.max(outerRadius * cutout, 0);\n const radiusLength = (outerRadius - innerRadius) / this._getVisibleDatasetWeightTotal();\n this.offsetX = offsetX * outerRadius;\n this.offsetY = offsetY * outerRadius;\n meta.total = this.calculateTotal();\n this.outerRadius = outerRadius - radiusLength * this._getRingWeightOffset(this.index);\n this.innerRadius = Math.max(this.outerRadius - radiusLength * chartWeight, 0);\n this.updateElements(arcs, 0, arcs.length, mode);\n }\n _circumference(i, reset) {\n const opts = this.options;\n const meta = this._cachedMeta;\n const circumference = this._getCircumference();\n if ((reset && opts.animation.animateRotate) || !this.chart.getDataVisibility(i) || meta._parsed[i] === null || meta.data[i].hidden) {\n return 0;\n }\n return this.calculateCircumference(meta._parsed[i] * circumference / TAU);\n }\n updateElements(arcs, start, count, mode) {\n const reset = mode === 'reset';\n const chart = this.chart;\n const chartArea = chart.chartArea;\n const opts = chart.options;\n const animationOpts = opts.animation;\n const centerX = (chartArea.left + chartArea.right) / 2;\n const centerY = (chartArea.top + chartArea.bottom) / 2;\n const animateScale = reset && animationOpts.animateScale;\n const innerRadius = animateScale ? 0 : this.innerRadius;\n const outerRadius = animateScale ? 0 : this.outerRadius;\n const firstOpts = this.resolveDataElementOptions(start, mode);\n const sharedOptions = this.getSharedOptions(firstOpts);\n const includeOptions = this.includeOptions(mode, sharedOptions);\n let startAngle = this._getRotation();\n let i;\n for (i = 0; i < start; ++i) {\n startAngle += this._circumference(i, reset);\n }\n for (i = start; i < start + count; ++i) {\n const circumference = this._circumference(i, reset);\n const arc = arcs[i];\n const properties = {\n x: centerX + this.offsetX,\n y: centerY + this.offsetY,\n startAngle,\n endAngle: startAngle + circumference,\n circumference,\n outerRadius,\n innerRadius\n };\n if (includeOptions) {\n properties.options = sharedOptions || this.resolveDataElementOptions(i, arc.active ? 'active' : mode);\n }\n startAngle += circumference;\n this.updateElement(arc, i, properties, mode);\n }\n this.updateSharedOptions(sharedOptions, mode, firstOpts);\n }\n calculateTotal() {\n const meta = this._cachedMeta;\n const metaData = meta.data;\n let total = 0;\n let i;\n for (i = 0; i < metaData.length; i++) {\n const value = meta._parsed[i];\n if (value !== null && !isNaN(value) && this.chart.getDataVisibility(i) && !metaData[i].hidden) {\n total += Math.abs(value);\n }\n }\n return total;\n }\n calculateCircumference(value) {\n const total = this._cachedMeta.total;\n if (total > 0 && !isNaN(value)) {\n return TAU * (Math.abs(value) / total);\n }\n return 0;\n }\n getLabelAndValue(index) {\n const meta = this._cachedMeta;\n const chart = this.chart;\n const labels = chart.data.labels || [];\n const value = formatNumber(meta._parsed[index], chart.options.locale);\n return {\n label: labels[index] || '',\n value,\n };\n }\n getMaxBorderWidth(arcs) {\n let max = 0;\n const chart = this.chart;\n let i, ilen, meta, controller, options;\n if (!arcs) {\n for (i = 0, ilen = chart.data.datasets.length; i < ilen; ++i) {\n if (chart.isDatasetVisible(i)) {\n meta = chart.getDatasetMeta(i);\n arcs = meta.data;\n controller = meta.controller;\n if (controller !== this) {\n controller.configure();\n }\n break;\n }\n }\n }\n if (!arcs) {\n return 0;\n }\n for (i = 0, ilen = arcs.length; i < ilen; ++i) {\n options = controller.resolveDataElementOptions(i);\n if (options.borderAlign !== 'inner') {\n max = Math.max(max, options.borderWidth || 0, options.hoverBorderWidth || 0);\n }\n }\n return max;\n }\n getMaxOffset(arcs) {\n let max = 0;\n for (let i = 0, ilen = arcs.length; i < ilen; ++i) {\n const options = this.resolveDataElementOptions(i);\n max = Math.max(max, options.offset || 0, options.hoverOffset || 0);\n }\n return max;\n }\n _getRingWeightOffset(datasetIndex) {\n let ringWeightOffset = 0;\n for (let i = 0; i < datasetIndex; ++i) {\n if (this.chart.isDatasetVisible(i)) {\n ringWeightOffset += this._getRingWeight(i);\n }\n }\n return ringWeightOffset;\n }\n _getRingWeight(datasetIndex) {\n return Math.max(valueOrDefault(this.chart.data.datasets[datasetIndex].weight, 1), 0);\n }\n _getVisibleDatasetWeightTotal() {\n return this._getRingWeightOffset(this.chart.data.datasets.length) || 1;\n }\n}\nDoughnutController.id = 'doughnut';\nDoughnutController.defaults = {\n datasetElementType: false,\n dataElementType: 'arc',\n animation: {\n animateRotate: true,\n animateScale: false\n },\n animations: {\n numbers: {\n type: 'number',\n properties: ['circumference', 'endAngle', 'innerRadius', 'outerRadius', 'startAngle', 'x', 'y', 'offset', 'borderWidth', 'spacing']\n },\n },\n cutout: '50%',\n rotation: 0,\n circumference: 360,\n radius: '100%',\n spacing: 0,\n indexAxis: 'r',\n};\nDoughnutController.descriptors = {\n _scriptable: (name) => name !== 'spacing',\n _indexable: (name) => name !== 'spacing',\n};\nDoughnutController.overrides = {\n aspectRatio: 1,\n plugins: {\n legend: {\n labels: {\n generateLabels(chart) {\n const data = chart.data;\n if (data.labels.length && data.datasets.length) {\n const {labels: {pointStyle}} = chart.legend.options;\n return data.labels.map((label, i) => {\n const meta = chart.getDatasetMeta(0);\n const style = meta.controller.getStyle(i);\n return {\n text: label,\n fillStyle: style.backgroundColor,\n strokeStyle: style.borderColor,\n lineWidth: style.borderWidth,\n pointStyle: pointStyle,\n hidden: !chart.getDataVisibility(i),\n index: i\n };\n });\n }\n return [];\n }\n },\n onClick(e, legendItem, legend) {\n legend.chart.toggleDataVisibility(legendItem.index);\n legend.chart.update();\n }\n },\n tooltip: {\n callbacks: {\n title() {\n return '';\n },\n label(tooltipItem) {\n let dataLabel = tooltipItem.label;\n const value = ': ' + tooltipItem.formattedValue;\n if (isArray(dataLabel)) {\n dataLabel = dataLabel.slice();\n dataLabel[0] += value;\n } else {\n dataLabel += value;\n }\n return dataLabel;\n }\n }\n }\n }\n};\n\nclass LineController extends DatasetController {\n initialize() {\n this.enableOptionSharing = true;\n super.initialize();\n }\n update(mode) {\n const meta = this._cachedMeta;\n const {dataset: line, data: points = [], _dataset} = meta;\n const animationsDisabled = this.chart._animationsDisabled;\n let {start, count} = getStartAndCountOfVisiblePoints(meta, points, animationsDisabled);\n this._drawStart = start;\n this._drawCount = count;\n if (scaleRangesChanged(meta)) {\n start = 0;\n count = points.length;\n }\n line._chart = this.chart;\n line._datasetIndex = this.index;\n line._decimated = !!_dataset._decimated;\n line.points = points;\n const options = this.resolveDatasetElementOptions(mode);\n if (!this.options.showLine) {\n options.borderWidth = 0;\n }\n options.segment = this.options.segment;\n this.updateElement(line, undefined, {\n animated: !animationsDisabled,\n options\n }, mode);\n this.updateElements(points, start, count, mode);\n }\n updateElements(points, start, count, mode) {\n const reset = mode === 'reset';\n const {iScale, vScale, _stacked, _dataset} = this._cachedMeta;\n const firstOpts = this.resolveDataElementOptions(start, mode);\n const sharedOptions = this.getSharedOptions(firstOpts);\n const includeOptions = this.includeOptions(mode, sharedOptions);\n const iAxis = iScale.axis;\n const vAxis = vScale.axis;\n const {spanGaps, segment} = this.options;\n const maxGapLength = isNumber(spanGaps) ? spanGaps : Number.POSITIVE_INFINITY;\n const directUpdate = this.chart._animationsDisabled || reset || mode === 'none';\n let prevParsed = start > 0 && this.getParsed(start - 1);\n for (let i = start; i < start + count; ++i) {\n const point = points[i];\n const parsed = this.getParsed(i);\n const properties = directUpdate ? point : {};\n const nullData = isNullOrUndef(parsed[vAxis]);\n const iPixel = properties[iAxis] = iScale.getPixelForValue(parsed[iAxis], i);\n const vPixel = properties[vAxis] = reset || nullData ? vScale.getBasePixel() : vScale.getPixelForValue(_stacked ? this.applyStack(vScale, parsed, _stacked) : parsed[vAxis], i);\n properties.skip = isNaN(iPixel) || isNaN(vPixel) || nullData;\n properties.stop = i > 0 && (parsed[iAxis] - prevParsed[iAxis]) > maxGapLength;\n if (segment) {\n properties.parsed = parsed;\n properties.raw = _dataset.data[i];\n }\n if (includeOptions) {\n properties.options = sharedOptions || this.resolveDataElementOptions(i, point.active ? 'active' : mode);\n }\n if (!directUpdate) {\n this.updateElement(point, i, properties, mode);\n }\n prevParsed = parsed;\n }\n this.updateSharedOptions(sharedOptions, mode, firstOpts);\n }\n getMaxOverflow() {\n const meta = this._cachedMeta;\n const dataset = meta.dataset;\n const border = dataset.options && dataset.options.borderWidth || 0;\n const data = meta.data || [];\n if (!data.length) {\n return border;\n }\n const firstPoint = data[0].size(this.resolveDataElementOptions(0));\n const lastPoint = data[data.length - 1].size(this.resolveDataElementOptions(data.length - 1));\n return Math.max(border, firstPoint, lastPoint) / 2;\n }\n draw() {\n const meta = this._cachedMeta;\n meta.dataset.updateControlPoints(this.chart.chartArea, meta.iScale.axis);\n super.draw();\n }\n}\nLineController.id = 'line';\nLineController.defaults = {\n datasetElementType: 'line',\n dataElementType: 'point',\n showLine: true,\n spanGaps: false,\n};\nLineController.overrides = {\n scales: {\n _index_: {\n type: 'category',\n },\n _value_: {\n type: 'linear',\n },\n }\n};\nfunction getStartAndCountOfVisiblePoints(meta, points, animationsDisabled) {\n const pointCount = points.length;\n let start = 0;\n let count = pointCount;\n if (meta._sorted) {\n const {iScale, _parsed} = meta;\n const axis = iScale.axis;\n const {min, max, minDefined, maxDefined} = iScale.getUserBounds();\n if (minDefined) {\n start = _limitValue(Math.min(\n _lookupByKey(_parsed, iScale.axis, min).lo,\n animationsDisabled ? pointCount : _lookupByKey(points, axis, iScale.getPixelForValue(min)).lo),\n 0, pointCount - 1);\n }\n if (maxDefined) {\n count = _limitValue(Math.max(\n _lookupByKey(_parsed, iScale.axis, max).hi + 1,\n animationsDisabled ? 0 : _lookupByKey(points, axis, iScale.getPixelForValue(max)).hi + 1),\n start, pointCount) - start;\n } else {\n count = pointCount - start;\n }\n }\n return {start, count};\n}\nfunction scaleRangesChanged(meta) {\n const {xScale, yScale, _scaleRanges} = meta;\n const newRanges = {\n xmin: xScale.min,\n xmax: xScale.max,\n ymin: yScale.min,\n ymax: yScale.max\n };\n if (!_scaleRanges) {\n meta._scaleRanges = newRanges;\n return true;\n }\n const changed = _scaleRanges.xmin !== xScale.min\n\t\t|| _scaleRanges.xmax !== xScale.max\n\t\t|| _scaleRanges.ymin !== yScale.min\n\t\t|| _scaleRanges.ymax !== yScale.max;\n Object.assign(_scaleRanges, newRanges);\n return changed;\n}\n\nclass PolarAreaController extends DatasetController {\n constructor(chart, datasetIndex) {\n super(chart, datasetIndex);\n this.innerRadius = undefined;\n this.outerRadius = undefined;\n }\n getLabelAndValue(index) {\n const meta = this._cachedMeta;\n const chart = this.chart;\n const labels = chart.data.labels || [];\n const value = formatNumber(meta._parsed[index].r, chart.options.locale);\n return {\n label: labels[index] || '',\n value,\n };\n }\n update(mode) {\n const arcs = this._cachedMeta.data;\n this._updateRadius();\n this.updateElements(arcs, 0, arcs.length, mode);\n }\n _updateRadius() {\n const chart = this.chart;\n const chartArea = chart.chartArea;\n const opts = chart.options;\n const minSize = Math.min(chartArea.right - chartArea.left, chartArea.bottom - chartArea.top);\n const outerRadius = Math.max(minSize / 2, 0);\n const innerRadius = Math.max(opts.cutoutPercentage ? (outerRadius / 100) * (opts.cutoutPercentage) : 1, 0);\n const radiusLength = (outerRadius - innerRadius) / chart.getVisibleDatasetCount();\n this.outerRadius = outerRadius - (radiusLength * this.index);\n this.innerRadius = this.outerRadius - radiusLength;\n }\n updateElements(arcs, start, count, mode) {\n const reset = mode === 'reset';\n const chart = this.chart;\n const dataset = this.getDataset();\n const opts = chart.options;\n const animationOpts = opts.animation;\n const scale = this._cachedMeta.rScale;\n const centerX = scale.xCenter;\n const centerY = scale.yCenter;\n const datasetStartAngle = scale.getIndexAngle(0) - 0.5 * PI;\n let angle = datasetStartAngle;\n let i;\n const defaultAngle = 360 / this.countVisibleElements();\n for (i = 0; i < start; ++i) {\n angle += this._computeAngle(i, mode, defaultAngle);\n }\n for (i = start; i < start + count; i++) {\n const arc = arcs[i];\n let startAngle = angle;\n let endAngle = angle + this._computeAngle(i, mode, defaultAngle);\n let outerRadius = chart.getDataVisibility(i) ? scale.getDistanceFromCenterForValue(dataset.data[i]) : 0;\n angle = endAngle;\n if (reset) {\n if (animationOpts.animateScale) {\n outerRadius = 0;\n }\n if (animationOpts.animateRotate) {\n startAngle = endAngle = datasetStartAngle;\n }\n }\n const properties = {\n x: centerX,\n y: centerY,\n innerRadius: 0,\n outerRadius,\n startAngle,\n endAngle,\n options: this.resolveDataElementOptions(i, arc.active ? 'active' : mode)\n };\n this.updateElement(arc, i, properties, mode);\n }\n }\n countVisibleElements() {\n const dataset = this.getDataset();\n const meta = this._cachedMeta;\n let count = 0;\n meta.data.forEach((element, index) => {\n if (!isNaN(dataset.data[index]) && this.chart.getDataVisibility(index)) {\n count++;\n }\n });\n return count;\n }\n _computeAngle(index, mode, defaultAngle) {\n return this.chart.getDataVisibility(index)\n ? toRadians(this.resolveDataElementOptions(index, mode).angle || defaultAngle)\n : 0;\n }\n}\nPolarAreaController.id = 'polarArea';\nPolarAreaController.defaults = {\n dataElementType: 'arc',\n animation: {\n animateRotate: true,\n animateScale: true\n },\n animations: {\n numbers: {\n type: 'number',\n properties: ['x', 'y', 'startAngle', 'endAngle', 'innerRadius', 'outerRadius']\n },\n },\n indexAxis: 'r',\n startAngle: 0,\n};\nPolarAreaController.overrides = {\n aspectRatio: 1,\n plugins: {\n legend: {\n labels: {\n generateLabels(chart) {\n const data = chart.data;\n if (data.labels.length && data.datasets.length) {\n const {labels: {pointStyle}} = chart.legend.options;\n return data.labels.map((label, i) => {\n const meta = chart.getDatasetMeta(0);\n const style = meta.controller.getStyle(i);\n return {\n text: label,\n fillStyle: style.backgroundColor,\n strokeStyle: style.borderColor,\n lineWidth: style.borderWidth,\n pointStyle: pointStyle,\n hidden: !chart.getDataVisibility(i),\n index: i\n };\n });\n }\n return [];\n }\n },\n onClick(e, legendItem, legend) {\n legend.chart.toggleDataVisibility(legendItem.index);\n legend.chart.update();\n }\n },\n tooltip: {\n callbacks: {\n title() {\n return '';\n },\n label(context) {\n return context.chart.data.labels[context.dataIndex] + ': ' + context.formattedValue;\n }\n }\n }\n },\n scales: {\n r: {\n type: 'radialLinear',\n angleLines: {\n display: false\n },\n beginAtZero: true,\n grid: {\n circular: true\n },\n pointLabels: {\n display: false\n },\n startAngle: 0\n }\n }\n};\n\nclass PieController extends DoughnutController {\n}\nPieController.id = 'pie';\nPieController.defaults = {\n cutout: 0,\n rotation: 0,\n circumference: 360,\n radius: '100%'\n};\n\nclass RadarController extends DatasetController {\n getLabelAndValue(index) {\n const vScale = this._cachedMeta.vScale;\n const parsed = this.getParsed(index);\n return {\n label: vScale.getLabels()[index],\n value: '' + vScale.getLabelForValue(parsed[vScale.axis])\n };\n }\n update(mode) {\n const meta = this._cachedMeta;\n const line = meta.dataset;\n const points = meta.data || [];\n const labels = meta.iScale.getLabels();\n line.points = points;\n if (mode !== 'resize') {\n const options = this.resolveDatasetElementOptions(mode);\n if (!this.options.showLine) {\n options.borderWidth = 0;\n }\n const properties = {\n _loop: true,\n _fullLoop: labels.length === points.length,\n options\n };\n this.updateElement(line, undefined, properties, mode);\n }\n this.updateElements(points, 0, points.length, mode);\n }\n updateElements(points, start, count, mode) {\n const dataset = this.getDataset();\n const scale = this._cachedMeta.rScale;\n const reset = mode === 'reset';\n for (let i = start; i < start + count; i++) {\n const point = points[i];\n const options = this.resolveDataElementOptions(i, point.active ? 'active' : mode);\n const pointPosition = scale.getPointPositionForValue(i, dataset.data[i]);\n const x = reset ? scale.xCenter : pointPosition.x;\n const y = reset ? scale.yCenter : pointPosition.y;\n const properties = {\n x,\n y,\n angle: pointPosition.angle,\n skip: isNaN(x) || isNaN(y),\n options\n };\n this.updateElement(point, i, properties, mode);\n }\n }\n}\nRadarController.id = 'radar';\nRadarController.defaults = {\n datasetElementType: 'line',\n dataElementType: 'point',\n indexAxis: 'r',\n showLine: true,\n elements: {\n line: {\n fill: 'start'\n }\n },\n};\nRadarController.overrides = {\n aspectRatio: 1,\n scales: {\n r: {\n type: 'radialLinear',\n }\n }\n};\n\nclass ScatterController extends LineController {\n}\nScatterController.id = 'scatter';\nScatterController.defaults = {\n showLine: false,\n fill: false\n};\nScatterController.overrides = {\n interaction: {\n mode: 'point'\n },\n plugins: {\n tooltip: {\n callbacks: {\n title() {\n return '';\n },\n label(item) {\n return '(' + item.label + ', ' + item.formattedValue + ')';\n }\n }\n }\n },\n scales: {\n x: {\n type: 'linear'\n },\n y: {\n type: 'linear'\n }\n }\n};\n\nvar controllers = /*#__PURE__*/Object.freeze({\n__proto__: null,\nBarController: BarController,\nBubbleController: BubbleController,\nDoughnutController: DoughnutController,\nLineController: LineController,\nPolarAreaController: PolarAreaController,\nPieController: PieController,\nRadarController: RadarController,\nScatterController: ScatterController\n});\n\nfunction abstract() {\n throw new Error('This method is not implemented: Check that a complete date adapter is provided.');\n}\nclass DateAdapter {\n constructor(options) {\n this.options = options || {};\n }\n formats() {\n return abstract();\n }\n parse(value, format) {\n return abstract();\n }\n format(timestamp, format) {\n return abstract();\n }\n add(timestamp, amount, unit) {\n return abstract();\n }\n diff(a, b, unit) {\n return abstract();\n }\n startOf(timestamp, unit, weekday) {\n return abstract();\n }\n endOf(timestamp, unit) {\n return abstract();\n }\n}\nDateAdapter.override = function(members) {\n Object.assign(DateAdapter.prototype, members);\n};\nvar adapters = {\n _date: DateAdapter\n};\n\nfunction getRelativePosition(e, chart) {\n if ('native' in e) {\n return {\n x: e.x,\n y: e.y\n };\n }\n return getRelativePosition$1(e, chart);\n}\nfunction evaluateAllVisibleItems(chart, handler) {\n const metasets = chart.getSortedVisibleDatasetMetas();\n let index, data, element;\n for (let i = 0, ilen = metasets.length; i < ilen; ++i) {\n ({index, data} = metasets[i]);\n for (let j = 0, jlen = data.length; j < jlen; ++j) {\n element = data[j];\n if (!element.skip) {\n handler(element, index, j);\n }\n }\n }\n}\nfunction binarySearch(metaset, axis, value, intersect) {\n const {controller, data, _sorted} = metaset;\n const iScale = controller._cachedMeta.iScale;\n if (iScale && axis === iScale.axis && _sorted && data.length) {\n const lookupMethod = iScale._reversePixels ? _rlookupByKey : _lookupByKey;\n if (!intersect) {\n return lookupMethod(data, axis, value);\n } else if (controller._sharedOptions) {\n const el = data[0];\n const range = typeof el.getRange === 'function' && el.getRange(axis);\n if (range) {\n const start = lookupMethod(data, axis, value - range);\n const end = lookupMethod(data, axis, value + range);\n return {lo: start.lo, hi: end.hi};\n }\n }\n }\n return {lo: 0, hi: data.length - 1};\n}\nfunction optimizedEvaluateItems(chart, axis, position, handler, intersect) {\n const metasets = chart.getSortedVisibleDatasetMetas();\n const value = position[axis];\n for (let i = 0, ilen = metasets.length; i < ilen; ++i) {\n const {index, data} = metasets[i];\n const {lo, hi} = binarySearch(metasets[i], axis, value, intersect);\n for (let j = lo; j <= hi; ++j) {\n const element = data[j];\n if (!element.skip) {\n handler(element, index, j);\n }\n }\n }\n}\nfunction getDistanceMetricForAxis(axis) {\n const useX = axis.indexOf('x') !== -1;\n const useY = axis.indexOf('y') !== -1;\n return function(pt1, pt2) {\n const deltaX = useX ? Math.abs(pt1.x - pt2.x) : 0;\n const deltaY = useY ? Math.abs(pt1.y - pt2.y) : 0;\n return Math.sqrt(Math.pow(deltaX, 2) + Math.pow(deltaY, 2));\n };\n}\nfunction getIntersectItems(chart, position, axis, useFinalPosition) {\n const items = [];\n if (!_isPointInArea(position, chart.chartArea, chart._minPadding)) {\n return items;\n }\n const evaluationFunc = function(element, datasetIndex, index) {\n if (element.inRange(position.x, position.y, useFinalPosition)) {\n items.push({element, datasetIndex, index});\n }\n };\n optimizedEvaluateItems(chart, axis, position, evaluationFunc, true);\n return items;\n}\nfunction getNearestItems(chart, position, axis, intersect, useFinalPosition) {\n const distanceMetric = getDistanceMetricForAxis(axis);\n let minDistance = Number.POSITIVE_INFINITY;\n let items = [];\n if (!_isPointInArea(position, chart.chartArea, chart._minPadding)) {\n return items;\n }\n const evaluationFunc = function(element, datasetIndex, index) {\n if (intersect && !element.inRange(position.x, position.y, useFinalPosition)) {\n return;\n }\n const center = element.getCenterPoint(useFinalPosition);\n if (!_isPointInArea(center, chart.chartArea, chart._minPadding) && !element.inRange(position.x, position.y, useFinalPosition)) {\n return;\n }\n const distance = distanceMetric(position, center);\n if (distance < minDistance) {\n items = [{element, datasetIndex, index}];\n minDistance = distance;\n } else if (distance === minDistance) {\n items.push({element, datasetIndex, index});\n }\n };\n optimizedEvaluateItems(chart, axis, position, evaluationFunc);\n return items;\n}\nfunction getAxisItems(chart, e, options, useFinalPosition) {\n const position = getRelativePosition(e, chart);\n const items = [];\n const axis = options.axis;\n const rangeMethod = axis === 'x' ? 'inXRange' : 'inYRange';\n let intersectsItem = false;\n evaluateAllVisibleItems(chart, (element, datasetIndex, index) => {\n if (element[rangeMethod](position[axis], useFinalPosition)) {\n items.push({element, datasetIndex, index});\n }\n if (element.inRange(position.x, position.y, useFinalPosition)) {\n intersectsItem = true;\n }\n });\n if (options.intersect && !intersectsItem) {\n return [];\n }\n return items;\n}\nvar Interaction = {\n modes: {\n index(chart, e, options, useFinalPosition) {\n const position = getRelativePosition(e, chart);\n const axis = options.axis || 'x';\n const items = options.intersect\n ? getIntersectItems(chart, position, axis, useFinalPosition)\n : getNearestItems(chart, position, axis, false, useFinalPosition);\n const elements = [];\n if (!items.length) {\n return [];\n }\n chart.getSortedVisibleDatasetMetas().forEach((meta) => {\n const index = items[0].index;\n const element = meta.data[index];\n if (element && !element.skip) {\n elements.push({element, datasetIndex: meta.index, index});\n }\n });\n return elements;\n },\n dataset(chart, e, options, useFinalPosition) {\n const position = getRelativePosition(e, chart);\n const axis = options.axis || 'xy';\n let items = options.intersect\n ? getIntersectItems(chart, position, axis, useFinalPosition) :\n getNearestItems(chart, position, axis, false, useFinalPosition);\n if (items.length > 0) {\n const datasetIndex = items[0].datasetIndex;\n const data = chart.getDatasetMeta(datasetIndex).data;\n items = [];\n for (let i = 0; i < data.length; ++i) {\n items.push({element: data[i], datasetIndex, index: i});\n }\n }\n return items;\n },\n point(chart, e, options, useFinalPosition) {\n const position = getRelativePosition(e, chart);\n const axis = options.axis || 'xy';\n return getIntersectItems(chart, position, axis, useFinalPosition);\n },\n nearest(chart, e, options, useFinalPosition) {\n const position = getRelativePosition(e, chart);\n const axis = options.axis || 'xy';\n return getNearestItems(chart, position, axis, options.intersect, useFinalPosition);\n },\n x(chart, e, options, useFinalPosition) {\n options.axis = 'x';\n return getAxisItems(chart, e, options, useFinalPosition);\n },\n y(chart, e, options, useFinalPosition) {\n options.axis = 'y';\n return getAxisItems(chart, e, options, useFinalPosition);\n }\n }\n};\n\nconst STATIC_POSITIONS = ['left', 'top', 'right', 'bottom'];\nfunction filterByPosition(array, position) {\n return array.filter(v => v.pos === position);\n}\nfunction filterDynamicPositionByAxis(array, axis) {\n return array.filter(v => STATIC_POSITIONS.indexOf(v.pos) === -1 && v.box.axis === axis);\n}\nfunction sortByWeight(array, reverse) {\n return array.sort((a, b) => {\n const v0 = reverse ? b : a;\n const v1 = reverse ? a : b;\n return v0.weight === v1.weight ?\n v0.index - v1.index :\n v0.weight - v1.weight;\n });\n}\nfunction wrapBoxes(boxes) {\n const layoutBoxes = [];\n let i, ilen, box, pos, stack, stackWeight;\n for (i = 0, ilen = (boxes || []).length; i < ilen; ++i) {\n box = boxes[i];\n ({position: pos, options: {stack, stackWeight = 1}} = box);\n layoutBoxes.push({\n index: i,\n box,\n pos,\n horizontal: box.isHorizontal(),\n weight: box.weight,\n stack: stack && (pos + stack),\n stackWeight\n });\n }\n return layoutBoxes;\n}\nfunction buildStacks(layouts) {\n const stacks = {};\n for (const wrap of layouts) {\n const {stack, pos, stackWeight} = wrap;\n if (!stack || !STATIC_POSITIONS.includes(pos)) {\n continue;\n }\n const _stack = stacks[stack] || (stacks[stack] = {count: 0, placed: 0, weight: 0, size: 0});\n _stack.count++;\n _stack.weight += stackWeight;\n }\n return stacks;\n}\nfunction setLayoutDims(layouts, params) {\n const stacks = buildStacks(layouts);\n const {vBoxMaxWidth, hBoxMaxHeight} = params;\n let i, ilen, layout;\n for (i = 0, ilen = layouts.length; i < ilen; ++i) {\n layout = layouts[i];\n const {fullSize} = layout.box;\n const stack = stacks[layout.stack];\n const factor = stack && layout.stackWeight / stack.weight;\n if (layout.horizontal) {\n layout.width = factor ? factor * vBoxMaxWidth : fullSize && params.availableWidth;\n layout.height = hBoxMaxHeight;\n } else {\n layout.width = vBoxMaxWidth;\n layout.height = factor ? factor * hBoxMaxHeight : fullSize && params.availableHeight;\n }\n }\n return stacks;\n}\nfunction buildLayoutBoxes(boxes) {\n const layoutBoxes = wrapBoxes(boxes);\n const fullSize = sortByWeight(layoutBoxes.filter(wrap => wrap.box.fullSize), true);\n const left = sortByWeight(filterByPosition(layoutBoxes, 'left'), true);\n const right = sortByWeight(filterByPosition(layoutBoxes, 'right'));\n const top = sortByWeight(filterByPosition(layoutBoxes, 'top'), true);\n const bottom = sortByWeight(filterByPosition(layoutBoxes, 'bottom'));\n const centerHorizontal = filterDynamicPositionByAxis(layoutBoxes, 'x');\n const centerVertical = filterDynamicPositionByAxis(layoutBoxes, 'y');\n return {\n fullSize,\n leftAndTop: left.concat(top),\n rightAndBottom: right.concat(centerVertical).concat(bottom).concat(centerHorizontal),\n chartArea: filterByPosition(layoutBoxes, 'chartArea'),\n vertical: left.concat(right).concat(centerVertical),\n horizontal: top.concat(bottom).concat(centerHorizontal)\n };\n}\nfunction getCombinedMax(maxPadding, chartArea, a, b) {\n return Math.max(maxPadding[a], chartArea[a]) + Math.max(maxPadding[b], chartArea[b]);\n}\nfunction updateMaxPadding(maxPadding, boxPadding) {\n maxPadding.top = Math.max(maxPadding.top, boxPadding.top);\n maxPadding.left = Math.max(maxPadding.left, boxPadding.left);\n maxPadding.bottom = Math.max(maxPadding.bottom, boxPadding.bottom);\n maxPadding.right = Math.max(maxPadding.right, boxPadding.right);\n}\nfunction updateDims(chartArea, params, layout, stacks) {\n const {pos, box} = layout;\n const maxPadding = chartArea.maxPadding;\n if (!isObject(pos)) {\n if (layout.size) {\n chartArea[pos] -= layout.size;\n }\n const stack = stacks[layout.stack] || {size: 0, count: 1};\n stack.size = Math.max(stack.size, layout.horizontal ? box.height : box.width);\n layout.size = stack.size / stack.count;\n chartArea[pos] += layout.size;\n }\n if (box.getPadding) {\n updateMaxPadding(maxPadding, box.getPadding());\n }\n const newWidth = Math.max(0, params.outerWidth - getCombinedMax(maxPadding, chartArea, 'left', 'right'));\n const newHeight = Math.max(0, params.outerHeight - getCombinedMax(maxPadding, chartArea, 'top', 'bottom'));\n const widthChanged = newWidth !== chartArea.w;\n const heightChanged = newHeight !== chartArea.h;\n chartArea.w = newWidth;\n chartArea.h = newHeight;\n return layout.horizontal\n ? {same: widthChanged, other: heightChanged}\n : {same: heightChanged, other: widthChanged};\n}\nfunction handleMaxPadding(chartArea) {\n const maxPadding = chartArea.maxPadding;\n function updatePos(pos) {\n const change = Math.max(maxPadding[pos] - chartArea[pos], 0);\n chartArea[pos] += change;\n return change;\n }\n chartArea.y += updatePos('top');\n chartArea.x += updatePos('left');\n updatePos('right');\n updatePos('bottom');\n}\nfunction getMargins(horizontal, chartArea) {\n const maxPadding = chartArea.maxPadding;\n function marginForPositions(positions) {\n const margin = {left: 0, top: 0, right: 0, bottom: 0};\n positions.forEach((pos) => {\n margin[pos] = Math.max(chartArea[pos], maxPadding[pos]);\n });\n return margin;\n }\n return horizontal\n ? marginForPositions(['left', 'right'])\n : marginForPositions(['top', 'bottom']);\n}\nfunction fitBoxes(boxes, chartArea, params, stacks) {\n const refitBoxes = [];\n let i, ilen, layout, box, refit, changed;\n for (i = 0, ilen = boxes.length, refit = 0; i < ilen; ++i) {\n layout = boxes[i];\n box = layout.box;\n box.update(\n layout.width || chartArea.w,\n layout.height || chartArea.h,\n getMargins(layout.horizontal, chartArea)\n );\n const {same, other} = updateDims(chartArea, params, layout, stacks);\n refit |= same && refitBoxes.length;\n changed = changed || other;\n if (!box.fullSize) {\n refitBoxes.push(layout);\n }\n }\n return refit && fitBoxes(refitBoxes, chartArea, params, stacks) || changed;\n}\nfunction setBoxDims(box, left, top, width, height) {\n box.top = top;\n box.left = left;\n box.right = left + width;\n box.bottom = top + height;\n box.width = width;\n box.height = height;\n}\nfunction placeBoxes(boxes, chartArea, params, stacks) {\n const userPadding = params.padding;\n let {x, y} = chartArea;\n for (const layout of boxes) {\n const box = layout.box;\n const stack = stacks[layout.stack] || {count: 1, placed: 0, weight: 1};\n const weight = (layout.stackWeight / stack.weight) || 1;\n if (layout.horizontal) {\n const width = chartArea.w * weight;\n const height = stack.size || box.height;\n if (defined(stack.start)) {\n y = stack.start;\n }\n if (box.fullSize) {\n setBoxDims(box, userPadding.left, y, params.outerWidth - userPadding.right - userPadding.left, height);\n } else {\n setBoxDims(box, chartArea.left + stack.placed, y, width, height);\n }\n stack.start = y;\n stack.placed += width;\n y = box.bottom;\n } else {\n const height = chartArea.h * weight;\n const width = stack.size || box.width;\n if (defined(stack.start)) {\n x = stack.start;\n }\n if (box.fullSize) {\n setBoxDims(box, x, userPadding.top, width, params.outerHeight - userPadding.bottom - userPadding.top);\n } else {\n setBoxDims(box, x, chartArea.top + stack.placed, width, height);\n }\n stack.start = x;\n stack.placed += height;\n x = box.right;\n }\n }\n chartArea.x = x;\n chartArea.y = y;\n}\ndefaults.set('layout', {\n autoPadding: true,\n padding: {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n }\n});\nvar layouts = {\n addBox(chart, item) {\n if (!chart.boxes) {\n chart.boxes = [];\n }\n item.fullSize = item.fullSize || false;\n item.position = item.position || 'top';\n item.weight = item.weight || 0;\n item._layers = item._layers || function() {\n return [{\n z: 0,\n draw(chartArea) {\n item.draw(chartArea);\n }\n }];\n };\n chart.boxes.push(item);\n },\n removeBox(chart, layoutItem) {\n const index = chart.boxes ? chart.boxes.indexOf(layoutItem) : -1;\n if (index !== -1) {\n chart.boxes.splice(index, 1);\n }\n },\n configure(chart, item, options) {\n item.fullSize = options.fullSize;\n item.position = options.position;\n item.weight = options.weight;\n },\n update(chart, width, height, minPadding) {\n if (!chart) {\n return;\n }\n const padding = toPadding(chart.options.layout.padding);\n const availableWidth = Math.max(width - padding.width, 0);\n const availableHeight = Math.max(height - padding.height, 0);\n const boxes = buildLayoutBoxes(chart.boxes);\n const verticalBoxes = boxes.vertical;\n const horizontalBoxes = boxes.horizontal;\n each(chart.boxes, box => {\n if (typeof box.beforeLayout === 'function') {\n box.beforeLayout();\n }\n });\n const visibleVerticalBoxCount = verticalBoxes.reduce((total, wrap) =>\n wrap.box.options && wrap.box.options.display === false ? total : total + 1, 0) || 1;\n const params = Object.freeze({\n outerWidth: width,\n outerHeight: height,\n padding,\n availableWidth,\n availableHeight,\n vBoxMaxWidth: availableWidth / 2 / visibleVerticalBoxCount,\n hBoxMaxHeight: availableHeight / 2\n });\n const maxPadding = Object.assign({}, padding);\n updateMaxPadding(maxPadding, toPadding(minPadding));\n const chartArea = Object.assign({\n maxPadding,\n w: availableWidth,\n h: availableHeight,\n x: padding.left,\n y: padding.top\n }, padding);\n const stacks = setLayoutDims(verticalBoxes.concat(horizontalBoxes), params);\n fitBoxes(boxes.fullSize, chartArea, params, stacks);\n fitBoxes(verticalBoxes, chartArea, params, stacks);\n if (fitBoxes(horizontalBoxes, chartArea, params, stacks)) {\n fitBoxes(verticalBoxes, chartArea, params, stacks);\n }\n handleMaxPadding(chartArea);\n placeBoxes(boxes.leftAndTop, chartArea, params, stacks);\n chartArea.x += chartArea.w;\n chartArea.y += chartArea.h;\n placeBoxes(boxes.rightAndBottom, chartArea, params, stacks);\n chart.chartArea = {\n left: chartArea.left,\n top: chartArea.top,\n right: chartArea.left + chartArea.w,\n bottom: chartArea.top + chartArea.h,\n height: chartArea.h,\n width: chartArea.w,\n };\n each(boxes.chartArea, (layout) => {\n const box = layout.box;\n Object.assign(box, chart.chartArea);\n box.update(chartArea.w, chartArea.h);\n });\n }\n};\n\nclass BasePlatform {\n acquireContext(canvas, aspectRatio) {}\n releaseContext(context) {\n return false;\n }\n addEventListener(chart, type, listener) {}\n removeEventListener(chart, type, listener) {}\n getDevicePixelRatio() {\n return 1;\n }\n getMaximumSize(element, width, height, aspectRatio) {\n width = Math.max(0, width || element.width);\n height = height || element.height;\n return {\n width,\n height: Math.max(0, aspectRatio ? Math.floor(width / aspectRatio) : height)\n };\n }\n isAttached(canvas) {\n return true;\n }\n updateConfig(config) {\n }\n}\n\nclass BasicPlatform extends BasePlatform {\n acquireContext(item) {\n return item && item.getContext && item.getContext('2d') || null;\n }\n updateConfig(config) {\n config.options.animation = false;\n }\n}\n\nconst EXPANDO_KEY = '$chartjs';\nconst EVENT_TYPES = {\n touchstart: 'mousedown',\n touchmove: 'mousemove',\n touchend: 'mouseup',\n pointerenter: 'mouseenter',\n pointerdown: 'mousedown',\n pointermove: 'mousemove',\n pointerup: 'mouseup',\n pointerleave: 'mouseout',\n pointerout: 'mouseout'\n};\nconst isNullOrEmpty = value => value === null || value === '';\nfunction initCanvas(canvas, aspectRatio) {\n const style = canvas.style;\n const renderHeight = canvas.getAttribute('height');\n const renderWidth = canvas.getAttribute('width');\n canvas[EXPANDO_KEY] = {\n initial: {\n height: renderHeight,\n width: renderWidth,\n style: {\n display: style.display,\n height: style.height,\n width: style.width\n }\n }\n };\n style.display = style.display || 'block';\n style.boxSizing = style.boxSizing || 'border-box';\n if (isNullOrEmpty(renderWidth)) {\n const displayWidth = readUsedSize(canvas, 'width');\n if (displayWidth !== undefined) {\n canvas.width = displayWidth;\n }\n }\n if (isNullOrEmpty(renderHeight)) {\n if (canvas.style.height === '') {\n canvas.height = canvas.width / (aspectRatio || 2);\n } else {\n const displayHeight = readUsedSize(canvas, 'height');\n if (displayHeight !== undefined) {\n canvas.height = displayHeight;\n }\n }\n }\n return canvas;\n}\nconst eventListenerOptions = supportsEventListenerOptions ? {passive: true} : false;\nfunction addListener(node, type, listener) {\n node.addEventListener(type, listener, eventListenerOptions);\n}\nfunction removeListener(chart, type, listener) {\n chart.canvas.removeEventListener(type, listener, eventListenerOptions);\n}\nfunction fromNativeEvent(event, chart) {\n const type = EVENT_TYPES[event.type] || event.type;\n const {x, y} = getRelativePosition$1(event, chart);\n return {\n type,\n chart,\n native: event,\n x: x !== undefined ? x : null,\n y: y !== undefined ? y : null,\n };\n}\nfunction createAttachObserver(chart, type, listener) {\n const canvas = chart.canvas;\n const observer = new MutationObserver(entries => {\n for (const entry of entries) {\n for (const node of entry.addedNodes) {\n if (node === canvas || node.contains(canvas)) {\n return listener();\n }\n }\n }\n });\n observer.observe(document, {childList: true, subtree: true});\n return observer;\n}\nfunction createDetachObserver(chart, type, listener) {\n const canvas = chart.canvas;\n const observer = new MutationObserver(entries => {\n for (const entry of entries) {\n for (const node of entry.removedNodes) {\n if (node === canvas || node.contains(canvas)) {\n return listener();\n }\n }\n }\n });\n observer.observe(document, {childList: true, subtree: true});\n return observer;\n}\nconst drpListeningCharts = new Map();\nlet oldDevicePixelRatio = 0;\nfunction onWindowResize() {\n const dpr = window.devicePixelRatio;\n if (dpr === oldDevicePixelRatio) {\n return;\n }\n oldDevicePixelRatio = dpr;\n drpListeningCharts.forEach((resize, chart) => {\n if (chart.currentDevicePixelRatio !== dpr) {\n resize();\n }\n });\n}\nfunction listenDevicePixelRatioChanges(chart, resize) {\n if (!drpListeningCharts.size) {\n window.addEventListener('resize', onWindowResize);\n }\n drpListeningCharts.set(chart, resize);\n}\nfunction unlistenDevicePixelRatioChanges(chart) {\n drpListeningCharts.delete(chart);\n if (!drpListeningCharts.size) {\n window.removeEventListener('resize', onWindowResize);\n }\n}\nfunction createResizeObserver(chart, type, listener) {\n const canvas = chart.canvas;\n const container = canvas && _getParentNode(canvas);\n if (!container) {\n return;\n }\n const resize = throttled((width, height) => {\n const w = container.clientWidth;\n listener(width, height);\n if (w < container.clientWidth) {\n listener();\n }\n }, window);\n const observer = new ResizeObserver(entries => {\n const entry = entries[0];\n const width = entry.contentRect.width;\n const height = entry.contentRect.height;\n if (width === 0 && height === 0) {\n return;\n }\n resize(width, height);\n });\n observer.observe(container);\n listenDevicePixelRatioChanges(chart, resize);\n return observer;\n}\nfunction releaseObserver(chart, type, observer) {\n if (observer) {\n observer.disconnect();\n }\n if (type === 'resize') {\n unlistenDevicePixelRatioChanges(chart);\n }\n}\nfunction createProxyAndListen(chart, type, listener) {\n const canvas = chart.canvas;\n const proxy = throttled((event) => {\n if (chart.ctx !== null) {\n listener(fromNativeEvent(event, chart));\n }\n }, chart, (args) => {\n const event = args[0];\n return [event, event.offsetX, event.offsetY];\n });\n addListener(canvas, type, proxy);\n return proxy;\n}\nclass DomPlatform extends BasePlatform {\n acquireContext(canvas, aspectRatio) {\n const context = canvas && canvas.getContext && canvas.getContext('2d');\n if (context && context.canvas === canvas) {\n initCanvas(canvas, aspectRatio);\n return context;\n }\n return null;\n }\n releaseContext(context) {\n const canvas = context.canvas;\n if (!canvas[EXPANDO_KEY]) {\n return false;\n }\n const initial = canvas[EXPANDO_KEY].initial;\n ['height', 'width'].forEach((prop) => {\n const value = initial[prop];\n if (isNullOrUndef(value)) {\n canvas.removeAttribute(prop);\n } else {\n canvas.setAttribute(prop, value);\n }\n });\n const style = initial.style || {};\n Object.keys(style).forEach((key) => {\n canvas.style[key] = style[key];\n });\n canvas.width = canvas.width;\n delete canvas[EXPANDO_KEY];\n return true;\n }\n addEventListener(chart, type, listener) {\n this.removeEventListener(chart, type);\n const proxies = chart.$proxies || (chart.$proxies = {});\n const handlers = {\n attach: createAttachObserver,\n detach: createDetachObserver,\n resize: createResizeObserver\n };\n const handler = handlers[type] || createProxyAndListen;\n proxies[type] = handler(chart, type, listener);\n }\n removeEventListener(chart, type) {\n const proxies = chart.$proxies || (chart.$proxies = {});\n const proxy = proxies[type];\n if (!proxy) {\n return;\n }\n const handlers = {\n attach: releaseObserver,\n detach: releaseObserver,\n resize: releaseObserver\n };\n const handler = handlers[type] || removeListener;\n handler(chart, type, proxy);\n proxies[type] = undefined;\n }\n getDevicePixelRatio() {\n return window.devicePixelRatio;\n }\n getMaximumSize(canvas, width, height, aspectRatio) {\n return getMaximumSize(canvas, width, height, aspectRatio);\n }\n isAttached(canvas) {\n const container = _getParentNode(canvas);\n return !!(container && container.isConnected);\n }\n}\n\nfunction _detectPlatform(canvas) {\n if (!_isDomSupported() || (typeof OffscreenCanvas !== 'undefined' && canvas instanceof OffscreenCanvas)) {\n return BasicPlatform;\n }\n return DomPlatform;\n}\n\nclass Element {\n constructor() {\n this.x = undefined;\n this.y = undefined;\n this.active = false;\n this.options = undefined;\n this.$animations = undefined;\n }\n tooltipPosition(useFinalPosition) {\n const {x, y} = this.getProps(['x', 'y'], useFinalPosition);\n return {x, y};\n }\n hasValue() {\n return isNumber(this.x) && isNumber(this.y);\n }\n getProps(props, final) {\n const anims = this.$animations;\n if (!final || !anims) {\n return this;\n }\n const ret = {};\n props.forEach(prop => {\n ret[prop] = anims[prop] && anims[prop].active() ? anims[prop]._to : this[prop];\n });\n return ret;\n }\n}\nElement.defaults = {};\nElement.defaultRoutes = undefined;\n\nconst formatters = {\n values(value) {\n return isArray(value) ? value : '' + value;\n },\n numeric(tickValue, index, ticks) {\n if (tickValue === 0) {\n return '0';\n }\n const locale = this.chart.options.locale;\n let notation;\n let delta = tickValue;\n if (ticks.length > 1) {\n const maxTick = Math.max(Math.abs(ticks[0].value), Math.abs(ticks[ticks.length - 1].value));\n if (maxTick < 1e-4 || maxTick > 1e+15) {\n notation = 'scientific';\n }\n delta = calculateDelta(tickValue, ticks);\n }\n const logDelta = log10(Math.abs(delta));\n const numDecimal = Math.max(Math.min(-1 * Math.floor(logDelta), 20), 0);\n const options = {notation, minimumFractionDigits: numDecimal, maximumFractionDigits: numDecimal};\n Object.assign(options, this.options.ticks.format);\n return formatNumber(tickValue, locale, options);\n },\n logarithmic(tickValue, index, ticks) {\n if (tickValue === 0) {\n return '0';\n }\n const remain = tickValue / (Math.pow(10, Math.floor(log10(tickValue))));\n if (remain === 1 || remain === 2 || remain === 5) {\n return formatters.numeric.call(this, tickValue, index, ticks);\n }\n return '';\n }\n};\nfunction calculateDelta(tickValue, ticks) {\n let delta = ticks.length > 3 ? ticks[2].value - ticks[1].value : ticks[1].value - ticks[0].value;\n if (Math.abs(delta) >= 1 && tickValue !== Math.floor(tickValue)) {\n delta = tickValue - Math.floor(tickValue);\n }\n return delta;\n}\nvar Ticks = {formatters};\n\ndefaults.set('scale', {\n display: true,\n offset: false,\n reverse: false,\n beginAtZero: false,\n bounds: 'ticks',\n grace: 0,\n grid: {\n display: true,\n lineWidth: 1,\n drawBorder: true,\n drawOnChartArea: true,\n drawTicks: true,\n tickLength: 8,\n tickWidth: (_ctx, options) => options.lineWidth,\n tickColor: (_ctx, options) => options.color,\n offset: false,\n borderDash: [],\n borderDashOffset: 0.0,\n borderWidth: 1\n },\n title: {\n display: false,\n text: '',\n padding: {\n top: 4,\n bottom: 4\n }\n },\n ticks: {\n minRotation: 0,\n maxRotation: 50,\n mirror: false,\n textStrokeWidth: 0,\n textStrokeColor: '',\n padding: 3,\n display: true,\n autoSkip: true,\n autoSkipPadding: 3,\n labelOffset: 0,\n callback: Ticks.formatters.values,\n minor: {},\n major: {},\n align: 'center',\n crossAlign: 'near',\n showLabelBackdrop: false,\n backdropColor: 'rgba(255, 255, 255, 0.75)',\n backdropPadding: 2,\n }\n});\ndefaults.route('scale.ticks', 'color', '', 'color');\ndefaults.route('scale.grid', 'color', '', 'borderColor');\ndefaults.route('scale.grid', 'borderColor', '', 'borderColor');\ndefaults.route('scale.title', 'color', '', 'color');\ndefaults.describe('scale', {\n _fallback: false,\n _scriptable: (name) => !name.startsWith('before') && !name.startsWith('after') && name !== 'callback' && name !== 'parser',\n _indexable: (name) => name !== 'borderDash' && name !== 'tickBorderDash',\n});\ndefaults.describe('scales', {\n _fallback: 'scale',\n});\ndefaults.describe('scale.ticks', {\n _scriptable: (name) => name !== 'backdropPadding' && name !== 'callback',\n _indexable: (name) => name !== 'backdropPadding',\n});\n\nfunction autoSkip(scale, ticks) {\n const tickOpts = scale.options.ticks;\n const ticksLimit = tickOpts.maxTicksLimit || determineMaxTicks(scale);\n const majorIndices = tickOpts.major.enabled ? getMajorIndices(ticks) : [];\n const numMajorIndices = majorIndices.length;\n const first = majorIndices[0];\n const last = majorIndices[numMajorIndices - 1];\n const newTicks = [];\n if (numMajorIndices > ticksLimit) {\n skipMajors(ticks, newTicks, majorIndices, numMajorIndices / ticksLimit);\n return newTicks;\n }\n const spacing = calculateSpacing(majorIndices, ticks, ticksLimit);\n if (numMajorIndices > 0) {\n let i, ilen;\n const avgMajorSpacing = numMajorIndices > 1 ? Math.round((last - first) / (numMajorIndices - 1)) : null;\n skip(ticks, newTicks, spacing, isNullOrUndef(avgMajorSpacing) ? 0 : first - avgMajorSpacing, first);\n for (i = 0, ilen = numMajorIndices - 1; i < ilen; i++) {\n skip(ticks, newTicks, spacing, majorIndices[i], majorIndices[i + 1]);\n }\n skip(ticks, newTicks, spacing, last, isNullOrUndef(avgMajorSpacing) ? ticks.length : last + avgMajorSpacing);\n return newTicks;\n }\n skip(ticks, newTicks, spacing);\n return newTicks;\n}\nfunction determineMaxTicks(scale) {\n const offset = scale.options.offset;\n const tickLength = scale._tickSize();\n const maxScale = scale._length / tickLength + (offset ? 0 : 1);\n const maxChart = scale._maxLength / tickLength;\n return Math.floor(Math.min(maxScale, maxChart));\n}\nfunction calculateSpacing(majorIndices, ticks, ticksLimit) {\n const evenMajorSpacing = getEvenSpacing(majorIndices);\n const spacing = ticks.length / ticksLimit;\n if (!evenMajorSpacing) {\n return Math.max(spacing, 1);\n }\n const factors = _factorize(evenMajorSpacing);\n for (let i = 0, ilen = factors.length - 1; i < ilen; i++) {\n const factor = factors[i];\n if (factor > spacing) {\n return factor;\n }\n }\n return Math.max(spacing, 1);\n}\nfunction getMajorIndices(ticks) {\n const result = [];\n let i, ilen;\n for (i = 0, ilen = ticks.length; i < ilen; i++) {\n if (ticks[i].major) {\n result.push(i);\n }\n }\n return result;\n}\nfunction skipMajors(ticks, newTicks, majorIndices, spacing) {\n let count = 0;\n let next = majorIndices[0];\n let i;\n spacing = Math.ceil(spacing);\n for (i = 0; i < ticks.length; i++) {\n if (i === next) {\n newTicks.push(ticks[i]);\n count++;\n next = majorIndices[count * spacing];\n }\n }\n}\nfunction skip(ticks, newTicks, spacing, majorStart, majorEnd) {\n const start = valueOrDefault(majorStart, 0);\n const end = Math.min(valueOrDefault(majorEnd, ticks.length), ticks.length);\n let count = 0;\n let length, i, next;\n spacing = Math.ceil(spacing);\n if (majorEnd) {\n length = majorEnd - majorStart;\n spacing = length / Math.floor(length / spacing);\n }\n next = start;\n while (next < 0) {\n count++;\n next = Math.round(start + count * spacing);\n }\n for (i = Math.max(start, 0); i < end; i++) {\n if (i === next) {\n newTicks.push(ticks[i]);\n count++;\n next = Math.round(start + count * spacing);\n }\n }\n}\nfunction getEvenSpacing(arr) {\n const len = arr.length;\n let i, diff;\n if (len < 2) {\n return false;\n }\n for (diff = arr[0], i = 1; i < len; ++i) {\n if (arr[i] - arr[i - 1] !== diff) {\n return false;\n }\n }\n return diff;\n}\n\nconst reverseAlign = (align) => align === 'left' ? 'right' : align === 'right' ? 'left' : align;\nconst offsetFromEdge = (scale, edge, offset) => edge === 'top' || edge === 'left' ? scale[edge] + offset : scale[edge] - offset;\nfunction sample(arr, numItems) {\n const result = [];\n const increment = arr.length / numItems;\n const len = arr.length;\n let i = 0;\n for (; i < len; i += increment) {\n result.push(arr[Math.floor(i)]);\n }\n return result;\n}\nfunction getPixelForGridLine(scale, index, offsetGridLines) {\n const length = scale.ticks.length;\n const validIndex = Math.min(index, length - 1);\n const start = scale._startPixel;\n const end = scale._endPixel;\n const epsilon = 1e-6;\n let lineValue = scale.getPixelForTick(validIndex);\n let offset;\n if (offsetGridLines) {\n if (length === 1) {\n offset = Math.max(lineValue - start, end - lineValue);\n } else if (index === 0) {\n offset = (scale.getPixelForTick(1) - lineValue) / 2;\n } else {\n offset = (lineValue - scale.getPixelForTick(validIndex - 1)) / 2;\n }\n lineValue += validIndex < index ? offset : -offset;\n if (lineValue < start - epsilon || lineValue > end + epsilon) {\n return;\n }\n }\n return lineValue;\n}\nfunction garbageCollect(caches, length) {\n each(caches, (cache) => {\n const gc = cache.gc;\n const gcLen = gc.length / 2;\n let i;\n if (gcLen > length) {\n for (i = 0; i < gcLen; ++i) {\n delete cache.data[gc[i]];\n }\n gc.splice(0, gcLen);\n }\n });\n}\nfunction getTickMarkLength(options) {\n return options.drawTicks ? options.tickLength : 0;\n}\nfunction getTitleHeight(options, fallback) {\n if (!options.display) {\n return 0;\n }\n const font = toFont(options.font, fallback);\n const padding = toPadding(options.padding);\n const lines = isArray(options.text) ? options.text.length : 1;\n return (lines * font.lineHeight) + padding.height;\n}\nfunction createScaleContext(parent, scale) {\n return createContext(parent, {\n scale,\n type: 'scale'\n });\n}\nfunction createTickContext(parent, index, tick) {\n return createContext(parent, {\n tick,\n index,\n type: 'tick'\n });\n}\nfunction titleAlign(align, position, reverse) {\n let ret = _toLeftRightCenter(align);\n if ((reverse && position !== 'right') || (!reverse && position === 'right')) {\n ret = reverseAlign(ret);\n }\n return ret;\n}\nfunction titleArgs(scale, offset, position, align) {\n const {top, left, bottom, right, chart} = scale;\n const {chartArea, scales} = chart;\n let rotation = 0;\n let maxWidth, titleX, titleY;\n const height = bottom - top;\n const width = right - left;\n if (scale.isHorizontal()) {\n titleX = _alignStartEnd(align, left, right);\n if (isObject(position)) {\n const positionAxisID = Object.keys(position)[0];\n const value = position[positionAxisID];\n titleY = scales[positionAxisID].getPixelForValue(value) + height - offset;\n } else if (position === 'center') {\n titleY = (chartArea.bottom + chartArea.top) / 2 + height - offset;\n } else {\n titleY = offsetFromEdge(scale, position, offset);\n }\n maxWidth = right - left;\n } else {\n if (isObject(position)) {\n const positionAxisID = Object.keys(position)[0];\n const value = position[positionAxisID];\n titleX = scales[positionAxisID].getPixelForValue(value) - width + offset;\n } else if (position === 'center') {\n titleX = (chartArea.left + chartArea.right) / 2 - width + offset;\n } else {\n titleX = offsetFromEdge(scale, position, offset);\n }\n titleY = _alignStartEnd(align, bottom, top);\n rotation = position === 'left' ? -HALF_PI : HALF_PI;\n }\n return {titleX, titleY, maxWidth, rotation};\n}\nclass Scale extends Element {\n constructor(cfg) {\n super();\n this.id = cfg.id;\n this.type = cfg.type;\n this.options = undefined;\n this.ctx = cfg.ctx;\n this.chart = cfg.chart;\n this.top = undefined;\n this.bottom = undefined;\n this.left = undefined;\n this.right = undefined;\n this.width = undefined;\n this.height = undefined;\n this._margins = {\n left: 0,\n right: 0,\n top: 0,\n bottom: 0\n };\n this.maxWidth = undefined;\n this.maxHeight = undefined;\n this.paddingTop = undefined;\n this.paddingBottom = undefined;\n this.paddingLeft = undefined;\n this.paddingRight = undefined;\n this.axis = undefined;\n this.labelRotation = undefined;\n this.min = undefined;\n this.max = undefined;\n this._range = undefined;\n this.ticks = [];\n this._gridLineItems = null;\n this._labelItems = null;\n this._labelSizes = null;\n this._length = 0;\n this._maxLength = 0;\n this._longestTextCache = {};\n this._startPixel = undefined;\n this._endPixel = undefined;\n this._reversePixels = false;\n this._userMax = undefined;\n this._userMin = undefined;\n this._suggestedMax = undefined;\n this._suggestedMin = undefined;\n this._ticksLength = 0;\n this._borderValue = 0;\n this._cache = {};\n this._dataLimitsCached = false;\n this.$context = undefined;\n }\n init(options) {\n this.options = options.setContext(this.getContext());\n this.axis = options.axis;\n this._userMin = this.parse(options.min);\n this._userMax = this.parse(options.max);\n this._suggestedMin = this.parse(options.suggestedMin);\n this._suggestedMax = this.parse(options.suggestedMax);\n }\n parse(raw, index) {\n return raw;\n }\n getUserBounds() {\n let {_userMin, _userMax, _suggestedMin, _suggestedMax} = this;\n _userMin = finiteOrDefault(_userMin, Number.POSITIVE_INFINITY);\n _userMax = finiteOrDefault(_userMax, Number.NEGATIVE_INFINITY);\n _suggestedMin = finiteOrDefault(_suggestedMin, Number.POSITIVE_INFINITY);\n _suggestedMax = finiteOrDefault(_suggestedMax, Number.NEGATIVE_INFINITY);\n return {\n min: finiteOrDefault(_userMin, _suggestedMin),\n max: finiteOrDefault(_userMax, _suggestedMax),\n minDefined: isNumberFinite(_userMin),\n maxDefined: isNumberFinite(_userMax)\n };\n }\n getMinMax(canStack) {\n let {min, max, minDefined, maxDefined} = this.getUserBounds();\n let range;\n if (minDefined && maxDefined) {\n return {min, max};\n }\n const metas = this.getMatchingVisibleMetas();\n for (let i = 0, ilen = metas.length; i < ilen; ++i) {\n range = metas[i].controller.getMinMax(this, canStack);\n if (!minDefined) {\n min = Math.min(min, range.min);\n }\n if (!maxDefined) {\n max = Math.max(max, range.max);\n }\n }\n min = maxDefined && min > max ? max : min;\n max = minDefined && min > max ? min : max;\n return {\n min: finiteOrDefault(min, finiteOrDefault(max, min)),\n max: finiteOrDefault(max, finiteOrDefault(min, max))\n };\n }\n getPadding() {\n return {\n left: this.paddingLeft || 0,\n top: this.paddingTop || 0,\n right: this.paddingRight || 0,\n bottom: this.paddingBottom || 0\n };\n }\n getTicks() {\n return this.ticks;\n }\n getLabels() {\n const data = this.chart.data;\n return this.options.labels || (this.isHorizontal() ? data.xLabels : data.yLabels) || data.labels || [];\n }\n beforeLayout() {\n this._cache = {};\n this._dataLimitsCached = false;\n }\n beforeUpdate() {\n callback(this.options.beforeUpdate, [this]);\n }\n update(maxWidth, maxHeight, margins) {\n const {beginAtZero, grace, ticks: tickOpts} = this.options;\n const sampleSize = tickOpts.sampleSize;\n this.beforeUpdate();\n this.maxWidth = maxWidth;\n this.maxHeight = maxHeight;\n this._margins = margins = Object.assign({\n left: 0,\n right: 0,\n top: 0,\n bottom: 0\n }, margins);\n this.ticks = null;\n this._labelSizes = null;\n this._gridLineItems = null;\n this._labelItems = null;\n this.beforeSetDimensions();\n this.setDimensions();\n this.afterSetDimensions();\n this._maxLength = this.isHorizontal()\n ? this.width + margins.left + margins.right\n : this.height + margins.top + margins.bottom;\n if (!this._dataLimitsCached) {\n this.beforeDataLimits();\n this.determineDataLimits();\n this.afterDataLimits();\n this._range = _addGrace(this, grace, beginAtZero);\n this._dataLimitsCached = true;\n }\n this.beforeBuildTicks();\n this.ticks = this.buildTicks() || [];\n this.afterBuildTicks();\n const samplingEnabled = sampleSize < this.ticks.length;\n this._convertTicksToLabels(samplingEnabled ? sample(this.ticks, sampleSize) : this.ticks);\n this.configure();\n this.beforeCalculateLabelRotation();\n this.calculateLabelRotation();\n this.afterCalculateLabelRotation();\n if (tickOpts.display && (tickOpts.autoSkip || tickOpts.source === 'auto')) {\n this.ticks = autoSkip(this, this.ticks);\n this._labelSizes = null;\n }\n if (samplingEnabled) {\n this._convertTicksToLabels(this.ticks);\n }\n this.beforeFit();\n this.fit();\n this.afterFit();\n this.afterUpdate();\n }\n configure() {\n let reversePixels = this.options.reverse;\n let startPixel, endPixel;\n if (this.isHorizontal()) {\n startPixel = this.left;\n endPixel = this.right;\n } else {\n startPixel = this.top;\n endPixel = this.bottom;\n reversePixels = !reversePixels;\n }\n this._startPixel = startPixel;\n this._endPixel = endPixel;\n this._reversePixels = reversePixels;\n this._length = endPixel - startPixel;\n this._alignToPixels = this.options.alignToPixels;\n }\n afterUpdate() {\n callback(this.options.afterUpdate, [this]);\n }\n beforeSetDimensions() {\n callback(this.options.beforeSetDimensions, [this]);\n }\n setDimensions() {\n if (this.isHorizontal()) {\n this.width = this.maxWidth;\n this.left = 0;\n this.right = this.width;\n } else {\n this.height = this.maxHeight;\n this.top = 0;\n this.bottom = this.height;\n }\n this.paddingLeft = 0;\n this.paddingTop = 0;\n this.paddingRight = 0;\n this.paddingBottom = 0;\n }\n afterSetDimensions() {\n callback(this.options.afterSetDimensions, [this]);\n }\n _callHooks(name) {\n this.chart.notifyPlugins(name, this.getContext());\n callback(this.options[name], [this]);\n }\n beforeDataLimits() {\n this._callHooks('beforeDataLimits');\n }\n determineDataLimits() {}\n afterDataLimits() {\n this._callHooks('afterDataLimits');\n }\n beforeBuildTicks() {\n this._callHooks('beforeBuildTicks');\n }\n buildTicks() {\n return [];\n }\n afterBuildTicks() {\n this._callHooks('afterBuildTicks');\n }\n beforeTickToLabelConversion() {\n callback(this.options.beforeTickToLabelConversion, [this]);\n }\n generateTickLabels(ticks) {\n const tickOpts = this.options.ticks;\n let i, ilen, tick;\n for (i = 0, ilen = ticks.length; i < ilen; i++) {\n tick = ticks[i];\n tick.label = callback(tickOpts.callback, [tick.value, i, ticks], this);\n }\n }\n afterTickToLabelConversion() {\n callback(this.options.afterTickToLabelConversion, [this]);\n }\n beforeCalculateLabelRotation() {\n callback(this.options.beforeCalculateLabelRotation, [this]);\n }\n calculateLabelRotation() {\n const options = this.options;\n const tickOpts = options.ticks;\n const numTicks = this.ticks.length;\n const minRotation = tickOpts.minRotation || 0;\n const maxRotation = tickOpts.maxRotation;\n let labelRotation = minRotation;\n let tickWidth, maxHeight, maxLabelDiagonal;\n if (!this._isVisible() || !tickOpts.display || minRotation >= maxRotation || numTicks <= 1 || !this.isHorizontal()) {\n this.labelRotation = minRotation;\n return;\n }\n const labelSizes = this._getLabelSizes();\n const maxLabelWidth = labelSizes.widest.width;\n const maxLabelHeight = labelSizes.highest.height;\n const maxWidth = _limitValue(this.chart.width - maxLabelWidth, 0, this.maxWidth);\n tickWidth = options.offset ? this.maxWidth / numTicks : maxWidth / (numTicks - 1);\n if (maxLabelWidth + 6 > tickWidth) {\n tickWidth = maxWidth / (numTicks - (options.offset ? 0.5 : 1));\n maxHeight = this.maxHeight - getTickMarkLength(options.grid)\n\t\t\t\t- tickOpts.padding - getTitleHeight(options.title, this.chart.options.font);\n maxLabelDiagonal = Math.sqrt(maxLabelWidth * maxLabelWidth + maxLabelHeight * maxLabelHeight);\n labelRotation = toDegrees(Math.min(\n Math.asin(_limitValue((labelSizes.highest.height + 6) / tickWidth, -1, 1)),\n Math.asin(_limitValue(maxHeight / maxLabelDiagonal, -1, 1)) - Math.asin(_limitValue(maxLabelHeight / maxLabelDiagonal, -1, 1))\n ));\n labelRotation = Math.max(minRotation, Math.min(maxRotation, labelRotation));\n }\n this.labelRotation = labelRotation;\n }\n afterCalculateLabelRotation() {\n callback(this.options.afterCalculateLabelRotation, [this]);\n }\n beforeFit() {\n callback(this.options.beforeFit, [this]);\n }\n fit() {\n const minSize = {\n width: 0,\n height: 0\n };\n const {chart, options: {ticks: tickOpts, title: titleOpts, grid: gridOpts}} = this;\n const display = this._isVisible();\n const isHorizontal = this.isHorizontal();\n if (display) {\n const titleHeight = getTitleHeight(titleOpts, chart.options.font);\n if (isHorizontal) {\n minSize.width = this.maxWidth;\n minSize.height = getTickMarkLength(gridOpts) + titleHeight;\n } else {\n minSize.height = this.maxHeight;\n minSize.width = getTickMarkLength(gridOpts) + titleHeight;\n }\n if (tickOpts.display && this.ticks.length) {\n const {first, last, widest, highest} = this._getLabelSizes();\n const tickPadding = tickOpts.padding * 2;\n const angleRadians = toRadians(this.labelRotation);\n const cos = Math.cos(angleRadians);\n const sin = Math.sin(angleRadians);\n if (isHorizontal) {\n const labelHeight = tickOpts.mirror ? 0 : sin * widest.width + cos * highest.height;\n minSize.height = Math.min(this.maxHeight, minSize.height + labelHeight + tickPadding);\n } else {\n const labelWidth = tickOpts.mirror ? 0 : cos * widest.width + sin * highest.height;\n minSize.width = Math.min(this.maxWidth, minSize.width + labelWidth + tickPadding);\n }\n this._calculatePadding(first, last, sin, cos);\n }\n }\n this._handleMargins();\n if (isHorizontal) {\n this.width = this._length = chart.width - this._margins.left - this._margins.right;\n this.height = minSize.height;\n } else {\n this.width = minSize.width;\n this.height = this._length = chart.height - this._margins.top - this._margins.bottom;\n }\n }\n _calculatePadding(first, last, sin, cos) {\n const {ticks: {align, padding}, position} = this.options;\n const isRotated = this.labelRotation !== 0;\n const labelsBelowTicks = position !== 'top' && this.axis === 'x';\n if (this.isHorizontal()) {\n const offsetLeft = this.getPixelForTick(0) - this.left;\n const offsetRight = this.right - this.getPixelForTick(this.ticks.length - 1);\n let paddingLeft = 0;\n let paddingRight = 0;\n if (isRotated) {\n if (labelsBelowTicks) {\n paddingLeft = cos * first.width;\n paddingRight = sin * last.height;\n } else {\n paddingLeft = sin * first.height;\n paddingRight = cos * last.width;\n }\n } else if (align === 'start') {\n paddingRight = last.width;\n } else if (align === 'end') {\n paddingLeft = first.width;\n } else {\n paddingLeft = first.width / 2;\n paddingRight = last.width / 2;\n }\n this.paddingLeft = Math.max((paddingLeft - offsetLeft + padding) * this.width / (this.width - offsetLeft), 0);\n this.paddingRight = Math.max((paddingRight - offsetRight + padding) * this.width / (this.width - offsetRight), 0);\n } else {\n let paddingTop = last.height / 2;\n let paddingBottom = first.height / 2;\n if (align === 'start') {\n paddingTop = 0;\n paddingBottom = first.height;\n } else if (align === 'end') {\n paddingTop = last.height;\n paddingBottom = 0;\n }\n this.paddingTop = paddingTop + padding;\n this.paddingBottom = paddingBottom + padding;\n }\n }\n _handleMargins() {\n if (this._margins) {\n this._margins.left = Math.max(this.paddingLeft, this._margins.left);\n this._margins.top = Math.max(this.paddingTop, this._margins.top);\n this._margins.right = Math.max(this.paddingRight, this._margins.right);\n this._margins.bottom = Math.max(this.paddingBottom, this._margins.bottom);\n }\n }\n afterFit() {\n callback(this.options.afterFit, [this]);\n }\n isHorizontal() {\n const {axis, position} = this.options;\n return position === 'top' || position === 'bottom' || axis === 'x';\n }\n isFullSize() {\n return this.options.fullSize;\n }\n _convertTicksToLabels(ticks) {\n this.beforeTickToLabelConversion();\n this.generateTickLabels(ticks);\n let i, ilen;\n for (i = 0, ilen = ticks.length; i < ilen; i++) {\n if (isNullOrUndef(ticks[i].label)) {\n ticks.splice(i, 1);\n ilen--;\n i--;\n }\n }\n this.afterTickToLabelConversion();\n }\n _getLabelSizes() {\n let labelSizes = this._labelSizes;\n if (!labelSizes) {\n const sampleSize = this.options.ticks.sampleSize;\n let ticks = this.ticks;\n if (sampleSize < ticks.length) {\n ticks = sample(ticks, sampleSize);\n }\n this._labelSizes = labelSizes = this._computeLabelSizes(ticks, ticks.length);\n }\n return labelSizes;\n }\n _computeLabelSizes(ticks, length) {\n const {ctx, _longestTextCache: caches} = this;\n const widths = [];\n const heights = [];\n let widestLabelSize = 0;\n let highestLabelSize = 0;\n let i, j, jlen, label, tickFont, fontString, cache, lineHeight, width, height, nestedLabel;\n for (i = 0; i < length; ++i) {\n label = ticks[i].label;\n tickFont = this._resolveTickFontOptions(i);\n ctx.font = fontString = tickFont.string;\n cache = caches[fontString] = caches[fontString] || {data: {}, gc: []};\n lineHeight = tickFont.lineHeight;\n width = height = 0;\n if (!isNullOrUndef(label) && !isArray(label)) {\n width = _measureText(ctx, cache.data, cache.gc, width, label);\n height = lineHeight;\n } else if (isArray(label)) {\n for (j = 0, jlen = label.length; j < jlen; ++j) {\n nestedLabel = label[j];\n if (!isNullOrUndef(nestedLabel) && !isArray(nestedLabel)) {\n width = _measureText(ctx, cache.data, cache.gc, width, nestedLabel);\n height += lineHeight;\n }\n }\n }\n widths.push(width);\n heights.push(height);\n widestLabelSize = Math.max(width, widestLabelSize);\n highestLabelSize = Math.max(height, highestLabelSize);\n }\n garbageCollect(caches, length);\n const widest = widths.indexOf(widestLabelSize);\n const highest = heights.indexOf(highestLabelSize);\n const valueAt = (idx) => ({width: widths[idx] || 0, height: heights[idx] || 0});\n return {\n first: valueAt(0),\n last: valueAt(length - 1),\n widest: valueAt(widest),\n highest: valueAt(highest),\n widths,\n heights,\n };\n }\n getLabelForValue(value) {\n return value;\n }\n getPixelForValue(value, index) {\n return NaN;\n }\n getValueForPixel(pixel) {}\n getPixelForTick(index) {\n const ticks = this.ticks;\n if (index < 0 || index > ticks.length - 1) {\n return null;\n }\n return this.getPixelForValue(ticks[index].value);\n }\n getPixelForDecimal(decimal) {\n if (this._reversePixels) {\n decimal = 1 - decimal;\n }\n const pixel = this._startPixel + decimal * this._length;\n return _int16Range(this._alignToPixels ? _alignPixel(this.chart, pixel, 0) : pixel);\n }\n getDecimalForPixel(pixel) {\n const decimal = (pixel - this._startPixel) / this._length;\n return this._reversePixels ? 1 - decimal : decimal;\n }\n getBasePixel() {\n return this.getPixelForValue(this.getBaseValue());\n }\n getBaseValue() {\n const {min, max} = this;\n return min < 0 && max < 0 ? max :\n min > 0 && max > 0 ? min :\n 0;\n }\n getContext(index) {\n const ticks = this.ticks || [];\n if (index >= 0 && index < ticks.length) {\n const tick = ticks[index];\n return tick.$context ||\n\t\t\t\t(tick.$context = createTickContext(this.getContext(), index, tick));\n }\n return this.$context ||\n\t\t\t(this.$context = createScaleContext(this.chart.getContext(), this));\n }\n _tickSize() {\n const optionTicks = this.options.ticks;\n const rot = toRadians(this.labelRotation);\n const cos = Math.abs(Math.cos(rot));\n const sin = Math.abs(Math.sin(rot));\n const labelSizes = this._getLabelSizes();\n const padding = optionTicks.autoSkipPadding || 0;\n const w = labelSizes ? labelSizes.widest.width + padding : 0;\n const h = labelSizes ? labelSizes.highest.height + padding : 0;\n return this.isHorizontal()\n ? h * cos > w * sin ? w / cos : h / sin\n : h * sin < w * cos ? h / cos : w / sin;\n }\n _isVisible() {\n const display = this.options.display;\n if (display !== 'auto') {\n return !!display;\n }\n return this.getMatchingVisibleMetas().length > 0;\n }\n _computeGridLineItems(chartArea) {\n const axis = this.axis;\n const chart = this.chart;\n const options = this.options;\n const {grid, position} = options;\n const offset = grid.offset;\n const isHorizontal = this.isHorizontal();\n const ticks = this.ticks;\n const ticksLength = ticks.length + (offset ? 1 : 0);\n const tl = getTickMarkLength(grid);\n const items = [];\n const borderOpts = grid.setContext(this.getContext());\n const axisWidth = borderOpts.drawBorder ? borderOpts.borderWidth : 0;\n const axisHalfWidth = axisWidth / 2;\n const alignBorderValue = function(pixel) {\n return _alignPixel(chart, pixel, axisWidth);\n };\n let borderValue, i, lineValue, alignedLineValue;\n let tx1, ty1, tx2, ty2, x1, y1, x2, y2;\n if (position === 'top') {\n borderValue = alignBorderValue(this.bottom);\n ty1 = this.bottom - tl;\n ty2 = borderValue - axisHalfWidth;\n y1 = alignBorderValue(chartArea.top) + axisHalfWidth;\n y2 = chartArea.bottom;\n } else if (position === 'bottom') {\n borderValue = alignBorderValue(this.top);\n y1 = chartArea.top;\n y2 = alignBorderValue(chartArea.bottom) - axisHalfWidth;\n ty1 = borderValue + axisHalfWidth;\n ty2 = this.top + tl;\n } else if (position === 'left') {\n borderValue = alignBorderValue(this.right);\n tx1 = this.right - tl;\n tx2 = borderValue - axisHalfWidth;\n x1 = alignBorderValue(chartArea.left) + axisHalfWidth;\n x2 = chartArea.right;\n } else if (position === 'right') {\n borderValue = alignBorderValue(this.left);\n x1 = chartArea.left;\n x2 = alignBorderValue(chartArea.right) - axisHalfWidth;\n tx1 = borderValue + axisHalfWidth;\n tx2 = this.left + tl;\n } else if (axis === 'x') {\n if (position === 'center') {\n borderValue = alignBorderValue((chartArea.top + chartArea.bottom) / 2 + 0.5);\n } else if (isObject(position)) {\n const positionAxisID = Object.keys(position)[0];\n const value = position[positionAxisID];\n borderValue = alignBorderValue(this.chart.scales[positionAxisID].getPixelForValue(value));\n }\n y1 = chartArea.top;\n y2 = chartArea.bottom;\n ty1 = borderValue + axisHalfWidth;\n ty2 = ty1 + tl;\n } else if (axis === 'y') {\n if (position === 'center') {\n borderValue = alignBorderValue((chartArea.left + chartArea.right) / 2);\n } else if (isObject(position)) {\n const positionAxisID = Object.keys(position)[0];\n const value = position[positionAxisID];\n borderValue = alignBorderValue(this.chart.scales[positionAxisID].getPixelForValue(value));\n }\n tx1 = borderValue - axisHalfWidth;\n tx2 = tx1 - tl;\n x1 = chartArea.left;\n x2 = chartArea.right;\n }\n const limit = valueOrDefault(options.ticks.maxTicksLimit, ticksLength);\n const step = Math.max(1, Math.ceil(ticksLength / limit));\n for (i = 0; i < ticksLength; i += step) {\n const optsAtIndex = grid.setContext(this.getContext(i));\n const lineWidth = optsAtIndex.lineWidth;\n const lineColor = optsAtIndex.color;\n const borderDash = grid.borderDash || [];\n const borderDashOffset = optsAtIndex.borderDashOffset;\n const tickWidth = optsAtIndex.tickWidth;\n const tickColor = optsAtIndex.tickColor;\n const tickBorderDash = optsAtIndex.tickBorderDash || [];\n const tickBorderDashOffset = optsAtIndex.tickBorderDashOffset;\n lineValue = getPixelForGridLine(this, i, offset);\n if (lineValue === undefined) {\n continue;\n }\n alignedLineValue = _alignPixel(chart, lineValue, lineWidth);\n if (isHorizontal) {\n tx1 = tx2 = x1 = x2 = alignedLineValue;\n } else {\n ty1 = ty2 = y1 = y2 = alignedLineValue;\n }\n items.push({\n tx1,\n ty1,\n tx2,\n ty2,\n x1,\n y1,\n x2,\n y2,\n width: lineWidth,\n color: lineColor,\n borderDash,\n borderDashOffset,\n tickWidth,\n tickColor,\n tickBorderDash,\n tickBorderDashOffset,\n });\n }\n this._ticksLength = ticksLength;\n this._borderValue = borderValue;\n return items;\n }\n _computeLabelItems(chartArea) {\n const axis = this.axis;\n const options = this.options;\n const {position, ticks: optionTicks} = options;\n const isHorizontal = this.isHorizontal();\n const ticks = this.ticks;\n const {align, crossAlign, padding, mirror} = optionTicks;\n const tl = getTickMarkLength(options.grid);\n const tickAndPadding = tl + padding;\n const hTickAndPadding = mirror ? -padding : tickAndPadding;\n const rotation = -toRadians(this.labelRotation);\n const items = [];\n let i, ilen, tick, label, x, y, textAlign, pixel, font, lineHeight, lineCount, textOffset;\n let textBaseline = 'middle';\n if (position === 'top') {\n y = this.bottom - hTickAndPadding;\n textAlign = this._getXAxisLabelAlignment();\n } else if (position === 'bottom') {\n y = this.top + hTickAndPadding;\n textAlign = this._getXAxisLabelAlignment();\n } else if (position === 'left') {\n const ret = this._getYAxisLabelAlignment(tl);\n textAlign = ret.textAlign;\n x = ret.x;\n } else if (position === 'right') {\n const ret = this._getYAxisLabelAlignment(tl);\n textAlign = ret.textAlign;\n x = ret.x;\n } else if (axis === 'x') {\n if (position === 'center') {\n y = ((chartArea.top + chartArea.bottom) / 2) + tickAndPadding;\n } else if (isObject(position)) {\n const positionAxisID = Object.keys(position)[0];\n const value = position[positionAxisID];\n y = this.chart.scales[positionAxisID].getPixelForValue(value) + tickAndPadding;\n }\n textAlign = this._getXAxisLabelAlignment();\n } else if (axis === 'y') {\n if (position === 'center') {\n x = ((chartArea.left + chartArea.right) / 2) - tickAndPadding;\n } else if (isObject(position)) {\n const positionAxisID = Object.keys(position)[0];\n const value = position[positionAxisID];\n x = this.chart.scales[positionAxisID].getPixelForValue(value);\n }\n textAlign = this._getYAxisLabelAlignment(tl).textAlign;\n }\n if (axis === 'y') {\n if (align === 'start') {\n textBaseline = 'top';\n } else if (align === 'end') {\n textBaseline = 'bottom';\n }\n }\n const labelSizes = this._getLabelSizes();\n for (i = 0, ilen = ticks.length; i < ilen; ++i) {\n tick = ticks[i];\n label = tick.label;\n const optsAtIndex = optionTicks.setContext(this.getContext(i));\n pixel = this.getPixelForTick(i) + optionTicks.labelOffset;\n font = this._resolveTickFontOptions(i);\n lineHeight = font.lineHeight;\n lineCount = isArray(label) ? label.length : 1;\n const halfCount = lineCount / 2;\n const color = optsAtIndex.color;\n const strokeColor = optsAtIndex.textStrokeColor;\n const strokeWidth = optsAtIndex.textStrokeWidth;\n if (isHorizontal) {\n x = pixel;\n if (position === 'top') {\n if (crossAlign === 'near' || rotation !== 0) {\n textOffset = -lineCount * lineHeight + lineHeight / 2;\n } else if (crossAlign === 'center') {\n textOffset = -labelSizes.highest.height / 2 - halfCount * lineHeight + lineHeight;\n } else {\n textOffset = -labelSizes.highest.height + lineHeight / 2;\n }\n } else {\n if (crossAlign === 'near' || rotation !== 0) {\n textOffset = lineHeight / 2;\n } else if (crossAlign === 'center') {\n textOffset = labelSizes.highest.height / 2 - halfCount * lineHeight;\n } else {\n textOffset = labelSizes.highest.height - lineCount * lineHeight;\n }\n }\n if (mirror) {\n textOffset *= -1;\n }\n } else {\n y = pixel;\n textOffset = (1 - lineCount) * lineHeight / 2;\n }\n let backdrop;\n if (optsAtIndex.showLabelBackdrop) {\n const labelPadding = toPadding(optsAtIndex.backdropPadding);\n const height = labelSizes.heights[i];\n const width = labelSizes.widths[i];\n let top = y + textOffset - labelPadding.top;\n let left = x - labelPadding.left;\n switch (textBaseline) {\n case 'middle':\n top -= height / 2;\n break;\n case 'bottom':\n top -= height;\n break;\n }\n switch (textAlign) {\n case 'center':\n left -= width / 2;\n break;\n case 'right':\n left -= width;\n break;\n }\n backdrop = {\n left,\n top,\n width: width + labelPadding.width,\n height: height + labelPadding.height,\n color: optsAtIndex.backdropColor,\n };\n }\n items.push({\n rotation,\n label,\n font,\n color,\n strokeColor,\n strokeWidth,\n textOffset,\n textAlign,\n textBaseline,\n translation: [x, y],\n backdrop,\n });\n }\n return items;\n }\n _getXAxisLabelAlignment() {\n const {position, ticks} = this.options;\n const rotation = -toRadians(this.labelRotation);\n if (rotation) {\n return position === 'top' ? 'left' : 'right';\n }\n let align = 'center';\n if (ticks.align === 'start') {\n align = 'left';\n } else if (ticks.align === 'end') {\n align = 'right';\n }\n return align;\n }\n _getYAxisLabelAlignment(tl) {\n const {position, ticks: {crossAlign, mirror, padding}} = this.options;\n const labelSizes = this._getLabelSizes();\n const tickAndPadding = tl + padding;\n const widest = labelSizes.widest.width;\n let textAlign;\n let x;\n if (position === 'left') {\n if (mirror) {\n x = this.right + padding;\n if (crossAlign === 'near') {\n textAlign = 'left';\n } else if (crossAlign === 'center') {\n textAlign = 'center';\n x += (widest / 2);\n } else {\n textAlign = 'right';\n x += widest;\n }\n } else {\n x = this.right - tickAndPadding;\n if (crossAlign === 'near') {\n textAlign = 'right';\n } else if (crossAlign === 'center') {\n textAlign = 'center';\n x -= (widest / 2);\n } else {\n textAlign = 'left';\n x = this.left;\n }\n }\n } else if (position === 'right') {\n if (mirror) {\n x = this.left + padding;\n if (crossAlign === 'near') {\n textAlign = 'right';\n } else if (crossAlign === 'center') {\n textAlign = 'center';\n x -= (widest / 2);\n } else {\n textAlign = 'left';\n x -= widest;\n }\n } else {\n x = this.left + tickAndPadding;\n if (crossAlign === 'near') {\n textAlign = 'left';\n } else if (crossAlign === 'center') {\n textAlign = 'center';\n x += widest / 2;\n } else {\n textAlign = 'right';\n x = this.right;\n }\n }\n } else {\n textAlign = 'right';\n }\n return {textAlign, x};\n }\n _computeLabelArea() {\n if (this.options.ticks.mirror) {\n return;\n }\n const chart = this.chart;\n const position = this.options.position;\n if (position === 'left' || position === 'right') {\n return {top: 0, left: this.left, bottom: chart.height, right: this.right};\n } if (position === 'top' || position === 'bottom') {\n return {top: this.top, left: 0, bottom: this.bottom, right: chart.width};\n }\n }\n drawBackground() {\n const {ctx, options: {backgroundColor}, left, top, width, height} = this;\n if (backgroundColor) {\n ctx.save();\n ctx.fillStyle = backgroundColor;\n ctx.fillRect(left, top, width, height);\n ctx.restore();\n }\n }\n getLineWidthForValue(value) {\n const grid = this.options.grid;\n if (!this._isVisible() || !grid.display) {\n return 0;\n }\n const ticks = this.ticks;\n const index = ticks.findIndex(t => t.value === value);\n if (index >= 0) {\n const opts = grid.setContext(this.getContext(index));\n return opts.lineWidth;\n }\n return 0;\n }\n drawGrid(chartArea) {\n const grid = this.options.grid;\n const ctx = this.ctx;\n const items = this._gridLineItems || (this._gridLineItems = this._computeGridLineItems(chartArea));\n let i, ilen;\n const drawLine = (p1, p2, style) => {\n if (!style.width || !style.color) {\n return;\n }\n ctx.save();\n ctx.lineWidth = style.width;\n ctx.strokeStyle = style.color;\n ctx.setLineDash(style.borderDash || []);\n ctx.lineDashOffset = style.borderDashOffset;\n ctx.beginPath();\n ctx.moveTo(p1.x, p1.y);\n ctx.lineTo(p2.x, p2.y);\n ctx.stroke();\n ctx.restore();\n };\n if (grid.display) {\n for (i = 0, ilen = items.length; i < ilen; ++i) {\n const item = items[i];\n if (grid.drawOnChartArea) {\n drawLine(\n {x: item.x1, y: item.y1},\n {x: item.x2, y: item.y2},\n item\n );\n }\n if (grid.drawTicks) {\n drawLine(\n {x: item.tx1, y: item.ty1},\n {x: item.tx2, y: item.ty2},\n {\n color: item.tickColor,\n width: item.tickWidth,\n borderDash: item.tickBorderDash,\n borderDashOffset: item.tickBorderDashOffset\n }\n );\n }\n }\n }\n }\n drawBorder() {\n const {chart, ctx, options: {grid}} = this;\n const borderOpts = grid.setContext(this.getContext());\n const axisWidth = grid.drawBorder ? borderOpts.borderWidth : 0;\n if (!axisWidth) {\n return;\n }\n const lastLineWidth = grid.setContext(this.getContext(0)).lineWidth;\n const borderValue = this._borderValue;\n let x1, x2, y1, y2;\n if (this.isHorizontal()) {\n x1 = _alignPixel(chart, this.left, axisWidth) - axisWidth / 2;\n x2 = _alignPixel(chart, this.right, lastLineWidth) + lastLineWidth / 2;\n y1 = y2 = borderValue;\n } else {\n y1 = _alignPixel(chart, this.top, axisWidth) - axisWidth / 2;\n y2 = _alignPixel(chart, this.bottom, lastLineWidth) + lastLineWidth / 2;\n x1 = x2 = borderValue;\n }\n ctx.save();\n ctx.lineWidth = borderOpts.borderWidth;\n ctx.strokeStyle = borderOpts.borderColor;\n ctx.beginPath();\n ctx.moveTo(x1, y1);\n ctx.lineTo(x2, y2);\n ctx.stroke();\n ctx.restore();\n }\n drawLabels(chartArea) {\n const optionTicks = this.options.ticks;\n if (!optionTicks.display) {\n return;\n }\n const ctx = this.ctx;\n const area = this._computeLabelArea();\n if (area) {\n clipArea(ctx, area);\n }\n const items = this._labelItems || (this._labelItems = this._computeLabelItems(chartArea));\n let i, ilen;\n for (i = 0, ilen = items.length; i < ilen; ++i) {\n const item = items[i];\n const tickFont = item.font;\n const label = item.label;\n if (item.backdrop) {\n ctx.fillStyle = item.backdrop.color;\n ctx.fillRect(item.backdrop.left, item.backdrop.top, item.backdrop.width, item.backdrop.height);\n }\n let y = item.textOffset;\n renderText(ctx, label, 0, y, tickFont, item);\n }\n if (area) {\n unclipArea(ctx);\n }\n }\n drawTitle() {\n const {ctx, options: {position, title, reverse}} = this;\n if (!title.display) {\n return;\n }\n const font = toFont(title.font);\n const padding = toPadding(title.padding);\n const align = title.align;\n let offset = font.lineHeight / 2;\n if (position === 'bottom' || position === 'center' || isObject(position)) {\n offset += padding.bottom;\n if (isArray(title.text)) {\n offset += font.lineHeight * (title.text.length - 1);\n }\n } else {\n offset += padding.top;\n }\n const {titleX, titleY, maxWidth, rotation} = titleArgs(this, offset, position, align);\n renderText(ctx, title.text, 0, 0, font, {\n color: title.color,\n maxWidth,\n rotation,\n textAlign: titleAlign(align, position, reverse),\n textBaseline: 'middle',\n translation: [titleX, titleY],\n });\n }\n draw(chartArea) {\n if (!this._isVisible()) {\n return;\n }\n this.drawBackground();\n this.drawGrid(chartArea);\n this.drawBorder();\n this.drawTitle();\n this.drawLabels(chartArea);\n }\n _layers() {\n const opts = this.options;\n const tz = opts.ticks && opts.ticks.z || 0;\n const gz = valueOrDefault(opts.grid && opts.grid.z, -1);\n if (!this._isVisible() || this.draw !== Scale.prototype.draw) {\n return [{\n z: tz,\n draw: (chartArea) => {\n this.draw(chartArea);\n }\n }];\n }\n return [{\n z: gz,\n draw: (chartArea) => {\n this.drawBackground();\n this.drawGrid(chartArea);\n this.drawTitle();\n }\n }, {\n z: gz + 1,\n draw: () => {\n this.drawBorder();\n }\n }, {\n z: tz,\n draw: (chartArea) => {\n this.drawLabels(chartArea);\n }\n }];\n }\n getMatchingVisibleMetas(type) {\n const metas = this.chart.getSortedVisibleDatasetMetas();\n const axisID = this.axis + 'AxisID';\n const result = [];\n let i, ilen;\n for (i = 0, ilen = metas.length; i < ilen; ++i) {\n const meta = metas[i];\n if (meta[axisID] === this.id && (!type || meta.type === type)) {\n result.push(meta);\n }\n }\n return result;\n }\n _resolveTickFontOptions(index) {\n const opts = this.options.ticks.setContext(this.getContext(index));\n return toFont(opts.font);\n }\n _maxDigits() {\n const fontSize = this._resolveTickFontOptions(0).lineHeight;\n return (this.isHorizontal() ? this.width : this.height) / fontSize;\n }\n}\n\nclass TypedRegistry {\n constructor(type, scope, override) {\n this.type = type;\n this.scope = scope;\n this.override = override;\n this.items = Object.create(null);\n }\n isForType(type) {\n return Object.prototype.isPrototypeOf.call(this.type.prototype, type.prototype);\n }\n register(item) {\n const proto = Object.getPrototypeOf(item);\n let parentScope;\n if (isIChartComponent(proto)) {\n parentScope = this.register(proto);\n }\n const items = this.items;\n const id = item.id;\n const scope = this.scope + '.' + id;\n if (!id) {\n throw new Error('class does not have id: ' + item);\n }\n if (id in items) {\n return scope;\n }\n items[id] = item;\n registerDefaults(item, scope, parentScope);\n if (this.override) {\n defaults.override(item.id, item.overrides);\n }\n return scope;\n }\n get(id) {\n return this.items[id];\n }\n unregister(item) {\n const items = this.items;\n const id = item.id;\n const scope = this.scope;\n if (id in items) {\n delete items[id];\n }\n if (scope && id in defaults[scope]) {\n delete defaults[scope][id];\n if (this.override) {\n delete overrides[id];\n }\n }\n }\n}\nfunction registerDefaults(item, scope, parentScope) {\n const itemDefaults = merge(Object.create(null), [\n parentScope ? defaults.get(parentScope) : {},\n defaults.get(scope),\n item.defaults\n ]);\n defaults.set(scope, itemDefaults);\n if (item.defaultRoutes) {\n routeDefaults(scope, item.defaultRoutes);\n }\n if (item.descriptors) {\n defaults.describe(scope, item.descriptors);\n }\n}\nfunction routeDefaults(scope, routes) {\n Object.keys(routes).forEach(property => {\n const propertyParts = property.split('.');\n const sourceName = propertyParts.pop();\n const sourceScope = [scope].concat(propertyParts).join('.');\n const parts = routes[property].split('.');\n const targetName = parts.pop();\n const targetScope = parts.join('.');\n defaults.route(sourceScope, sourceName, targetScope, targetName);\n });\n}\nfunction isIChartComponent(proto) {\n return 'id' in proto && 'defaults' in proto;\n}\n\nclass Registry {\n constructor() {\n this.controllers = new TypedRegistry(DatasetController, 'datasets', true);\n this.elements = new TypedRegistry(Element, 'elements');\n this.plugins = new TypedRegistry(Object, 'plugins');\n this.scales = new TypedRegistry(Scale, 'scales');\n this._typedRegistries = [this.controllers, this.scales, this.elements];\n }\n add(...args) {\n this._each('register', args);\n }\n remove(...args) {\n this._each('unregister', args);\n }\n addControllers(...args) {\n this._each('register', args, this.controllers);\n }\n addElements(...args) {\n this._each('register', args, this.elements);\n }\n addPlugins(...args) {\n this._each('register', args, this.plugins);\n }\n addScales(...args) {\n this._each('register', args, this.scales);\n }\n getController(id) {\n return this._get(id, this.controllers, 'controller');\n }\n getElement(id) {\n return this._get(id, this.elements, 'element');\n }\n getPlugin(id) {\n return this._get(id, this.plugins, 'plugin');\n }\n getScale(id) {\n return this._get(id, this.scales, 'scale');\n }\n removeControllers(...args) {\n this._each('unregister', args, this.controllers);\n }\n removeElements(...args) {\n this._each('unregister', args, this.elements);\n }\n removePlugins(...args) {\n this._each('unregister', args, this.plugins);\n }\n removeScales(...args) {\n this._each('unregister', args, this.scales);\n }\n _each(method, args, typedRegistry) {\n [...args].forEach(arg => {\n const reg = typedRegistry || this._getRegistryForType(arg);\n if (typedRegistry || reg.isForType(arg) || (reg === this.plugins && arg.id)) {\n this._exec(method, reg, arg);\n } else {\n each(arg, item => {\n const itemReg = typedRegistry || this._getRegistryForType(item);\n this._exec(method, itemReg, item);\n });\n }\n });\n }\n _exec(method, registry, component) {\n const camelMethod = _capitalize(method);\n callback(component['before' + camelMethod], [], component);\n registry[method](component);\n callback(component['after' + camelMethod], [], component);\n }\n _getRegistryForType(type) {\n for (let i = 0; i < this._typedRegistries.length; i++) {\n const reg = this._typedRegistries[i];\n if (reg.isForType(type)) {\n return reg;\n }\n }\n return this.plugins;\n }\n _get(id, typedRegistry, type) {\n const item = typedRegistry.get(id);\n if (item === undefined) {\n throw new Error('\"' + id + '\" is not a registered ' + type + '.');\n }\n return item;\n }\n}\nvar registry = new Registry();\n\nclass PluginService {\n constructor() {\n this._init = [];\n }\n notify(chart, hook, args, filter) {\n if (hook === 'beforeInit') {\n this._init = this._createDescriptors(chart, true);\n this._notify(this._init, chart, 'install');\n }\n const descriptors = filter ? this._descriptors(chart).filter(filter) : this._descriptors(chart);\n const result = this._notify(descriptors, chart, hook, args);\n if (hook === 'destroy') {\n this._notify(descriptors, chart, 'stop');\n this._notify(this._init, chart, 'uninstall');\n }\n return result;\n }\n _notify(descriptors, chart, hook, args) {\n args = args || {};\n for (const descriptor of descriptors) {\n const plugin = descriptor.plugin;\n const method = plugin[hook];\n const params = [chart, args, descriptor.options];\n if (callback(method, params, plugin) === false && args.cancelable) {\n return false;\n }\n }\n return true;\n }\n invalidate() {\n if (!isNullOrUndef(this._cache)) {\n this._oldCache = this._cache;\n this._cache = undefined;\n }\n }\n _descriptors(chart) {\n if (this._cache) {\n return this._cache;\n }\n const descriptors = this._cache = this._createDescriptors(chart);\n this._notifyStateChanges(chart);\n return descriptors;\n }\n _createDescriptors(chart, all) {\n const config = chart && chart.config;\n const options = valueOrDefault(config.options && config.options.plugins, {});\n const plugins = allPlugins(config);\n return options === false && !all ? [] : createDescriptors(chart, plugins, options, all);\n }\n _notifyStateChanges(chart) {\n const previousDescriptors = this._oldCache || [];\n const descriptors = this._cache;\n const diff = (a, b) => a.filter(x => !b.some(y => x.plugin.id === y.plugin.id));\n this._notify(diff(previousDescriptors, descriptors), chart, 'stop');\n this._notify(diff(descriptors, previousDescriptors), chart, 'start');\n }\n}\nfunction allPlugins(config) {\n const plugins = [];\n const keys = Object.keys(registry.plugins.items);\n for (let i = 0; i < keys.length; i++) {\n plugins.push(registry.getPlugin(keys[i]));\n }\n const local = config.plugins || [];\n for (let i = 0; i < local.length; i++) {\n const plugin = local[i];\n if (plugins.indexOf(plugin) === -1) {\n plugins.push(plugin);\n }\n }\n return plugins;\n}\nfunction getOpts(options, all) {\n if (!all && options === false) {\n return null;\n }\n if (options === true) {\n return {};\n }\n return options;\n}\nfunction createDescriptors(chart, plugins, options, all) {\n const result = [];\n const context = chart.getContext();\n for (let i = 0; i < plugins.length; i++) {\n const plugin = plugins[i];\n const id = plugin.id;\n const opts = getOpts(options[id], all);\n if (opts === null) {\n continue;\n }\n result.push({\n plugin,\n options: pluginOpts(chart.config, plugin, opts, context)\n });\n }\n return result;\n}\nfunction pluginOpts(config, plugin, opts, context) {\n const keys = config.pluginScopeKeys(plugin);\n const scopes = config.getOptionScopes(opts, keys);\n return config.createResolver(scopes, context, [''], {scriptable: false, indexable: false, allKeys: true});\n}\n\nfunction getIndexAxis(type, options) {\n const datasetDefaults = defaults.datasets[type] || {};\n const datasetOptions = (options.datasets || {})[type] || {};\n return datasetOptions.indexAxis || options.indexAxis || datasetDefaults.indexAxis || 'x';\n}\nfunction getAxisFromDefaultScaleID(id, indexAxis) {\n let axis = id;\n if (id === '_index_') {\n axis = indexAxis;\n } else if (id === '_value_') {\n axis = indexAxis === 'x' ? 'y' : 'x';\n }\n return axis;\n}\nfunction getDefaultScaleIDFromAxis(axis, indexAxis) {\n return axis === indexAxis ? '_index_' : '_value_';\n}\nfunction axisFromPosition(position) {\n if (position === 'top' || position === 'bottom') {\n return 'x';\n }\n if (position === 'left' || position === 'right') {\n return 'y';\n }\n}\nfunction determineAxis(id, scaleOptions) {\n if (id === 'x' || id === 'y') {\n return id;\n }\n return scaleOptions.axis || axisFromPosition(scaleOptions.position) || id.charAt(0).toLowerCase();\n}\nfunction mergeScaleConfig(config, options) {\n const chartDefaults = overrides[config.type] || {scales: {}};\n const configScales = options.scales || {};\n const chartIndexAxis = getIndexAxis(config.type, options);\n const firstIDs = Object.create(null);\n const scales = Object.create(null);\n Object.keys(configScales).forEach(id => {\n const scaleConf = configScales[id];\n if (!isObject(scaleConf)) {\n return console.error(`Invalid scale configuration for scale: ${id}`);\n }\n if (scaleConf._proxy) {\n return console.warn(`Ignoring resolver passed as options for scale: ${id}`);\n }\n const axis = determineAxis(id, scaleConf);\n const defaultId = getDefaultScaleIDFromAxis(axis, chartIndexAxis);\n const defaultScaleOptions = chartDefaults.scales || {};\n firstIDs[axis] = firstIDs[axis] || id;\n scales[id] = mergeIf(Object.create(null), [{axis}, scaleConf, defaultScaleOptions[axis], defaultScaleOptions[defaultId]]);\n });\n config.data.datasets.forEach(dataset => {\n const type = dataset.type || config.type;\n const indexAxis = dataset.indexAxis || getIndexAxis(type, options);\n const datasetDefaults = overrides[type] || {};\n const defaultScaleOptions = datasetDefaults.scales || {};\n Object.keys(defaultScaleOptions).forEach(defaultID => {\n const axis = getAxisFromDefaultScaleID(defaultID, indexAxis);\n const id = dataset[axis + 'AxisID'] || firstIDs[axis] || axis;\n scales[id] = scales[id] || Object.create(null);\n mergeIf(scales[id], [{axis}, configScales[id], defaultScaleOptions[defaultID]]);\n });\n });\n Object.keys(scales).forEach(key => {\n const scale = scales[key];\n mergeIf(scale, [defaults.scales[scale.type], defaults.scale]);\n });\n return scales;\n}\nfunction initOptions(config) {\n const options = config.options || (config.options = {});\n options.plugins = valueOrDefault(options.plugins, {});\n options.scales = mergeScaleConfig(config, options);\n}\nfunction initData(data) {\n data = data || {};\n data.datasets = data.datasets || [];\n data.labels = data.labels || [];\n return data;\n}\nfunction initConfig(config) {\n config = config || {};\n config.data = initData(config.data);\n initOptions(config);\n return config;\n}\nconst keyCache = new Map();\nconst keysCached = new Set();\nfunction cachedKeys(cacheKey, generate) {\n let keys = keyCache.get(cacheKey);\n if (!keys) {\n keys = generate();\n keyCache.set(cacheKey, keys);\n keysCached.add(keys);\n }\n return keys;\n}\nconst addIfFound = (set, obj, key) => {\n const opts = resolveObjectKey(obj, key);\n if (opts !== undefined) {\n set.add(opts);\n }\n};\nclass Config {\n constructor(config) {\n this._config = initConfig(config);\n this._scopeCache = new Map();\n this._resolverCache = new Map();\n }\n get platform() {\n return this._config.platform;\n }\n get type() {\n return this._config.type;\n }\n set type(type) {\n this._config.type = type;\n }\n get data() {\n return this._config.data;\n }\n set data(data) {\n this._config.data = initData(data);\n }\n get options() {\n return this._config.options;\n }\n set options(options) {\n this._config.options = options;\n }\n get plugins() {\n return this._config.plugins;\n }\n update() {\n const config = this._config;\n this.clearCache();\n initOptions(config);\n }\n clearCache() {\n this._scopeCache.clear();\n this._resolverCache.clear();\n }\n datasetScopeKeys(datasetType) {\n return cachedKeys(datasetType,\n () => [[\n `datasets.${datasetType}`,\n ''\n ]]);\n }\n datasetAnimationScopeKeys(datasetType, transition) {\n return cachedKeys(`${datasetType}.transition.${transition}`,\n () => [\n [\n `datasets.${datasetType}.transitions.${transition}`,\n `transitions.${transition}`,\n ],\n [\n `datasets.${datasetType}`,\n ''\n ]\n ]);\n }\n datasetElementScopeKeys(datasetType, elementType) {\n return cachedKeys(`${datasetType}-${elementType}`,\n () => [[\n `datasets.${datasetType}.elements.${elementType}`,\n `datasets.${datasetType}`,\n `elements.${elementType}`,\n ''\n ]]);\n }\n pluginScopeKeys(plugin) {\n const id = plugin.id;\n const type = this.type;\n return cachedKeys(`${type}-plugin-${id}`,\n () => [[\n `plugins.${id}`,\n ...plugin.additionalOptionScopes || [],\n ]]);\n }\n _cachedScopes(mainScope, resetCache) {\n const _scopeCache = this._scopeCache;\n let cache = _scopeCache.get(mainScope);\n if (!cache || resetCache) {\n cache = new Map();\n _scopeCache.set(mainScope, cache);\n }\n return cache;\n }\n getOptionScopes(mainScope, keyLists, resetCache) {\n const {options, type} = this;\n const cache = this._cachedScopes(mainScope, resetCache);\n const cached = cache.get(keyLists);\n if (cached) {\n return cached;\n }\n const scopes = new Set();\n keyLists.forEach(keys => {\n if (mainScope) {\n scopes.add(mainScope);\n keys.forEach(key => addIfFound(scopes, mainScope, key));\n }\n keys.forEach(key => addIfFound(scopes, options, key));\n keys.forEach(key => addIfFound(scopes, overrides[type] || {}, key));\n keys.forEach(key => addIfFound(scopes, defaults, key));\n keys.forEach(key => addIfFound(scopes, descriptors, key));\n });\n const array = Array.from(scopes);\n if (array.length === 0) {\n array.push(Object.create(null));\n }\n if (keysCached.has(keyLists)) {\n cache.set(keyLists, array);\n }\n return array;\n }\n chartOptionScopes() {\n const {options, type} = this;\n return [\n options,\n overrides[type] || {},\n defaults.datasets[type] || {},\n {type},\n defaults,\n descriptors\n ];\n }\n resolveNamedOptions(scopes, names, context, prefixes = ['']) {\n const result = {$shared: true};\n const {resolver, subPrefixes} = getResolver(this._resolverCache, scopes, prefixes);\n let options = resolver;\n if (needContext(resolver, names)) {\n result.$shared = false;\n context = isFunction(context) ? context() : context;\n const subResolver = this.createResolver(scopes, context, subPrefixes);\n options = _attachContext(resolver, context, subResolver);\n }\n for (const prop of names) {\n result[prop] = options[prop];\n }\n return result;\n }\n createResolver(scopes, context, prefixes = [''], descriptorDefaults) {\n const {resolver} = getResolver(this._resolverCache, scopes, prefixes);\n return isObject(context)\n ? _attachContext(resolver, context, undefined, descriptorDefaults)\n : resolver;\n }\n}\nfunction getResolver(resolverCache, scopes, prefixes) {\n let cache = resolverCache.get(scopes);\n if (!cache) {\n cache = new Map();\n resolverCache.set(scopes, cache);\n }\n const cacheKey = prefixes.join();\n let cached = cache.get(cacheKey);\n if (!cached) {\n const resolver = _createResolver(scopes, prefixes);\n cached = {\n resolver,\n subPrefixes: prefixes.filter(p => !p.toLowerCase().includes('hover'))\n };\n cache.set(cacheKey, cached);\n }\n return cached;\n}\nconst hasFunction = value => isObject(value)\n && Object.getOwnPropertyNames(value).reduce((acc, key) => acc || isFunction(value[key]), false);\nfunction needContext(proxy, names) {\n const {isScriptable, isIndexable} = _descriptors(proxy);\n for (const prop of names) {\n const scriptable = isScriptable(prop);\n const indexable = isIndexable(prop);\n const value = (indexable || scriptable) && proxy[prop];\n if ((scriptable && (isFunction(value) || hasFunction(value)))\n || (indexable && isArray(value))) {\n return true;\n }\n }\n return false;\n}\n\nvar version = \"3.6.0\";\n\nconst KNOWN_POSITIONS = ['top', 'bottom', 'left', 'right', 'chartArea'];\nfunction positionIsHorizontal(position, axis) {\n return position === 'top' || position === 'bottom' || (KNOWN_POSITIONS.indexOf(position) === -1 && axis === 'x');\n}\nfunction compare2Level(l1, l2) {\n return function(a, b) {\n return a[l1] === b[l1]\n ? a[l2] - b[l2]\n : a[l1] - b[l1];\n };\n}\nfunction onAnimationsComplete(context) {\n const chart = context.chart;\n const animationOptions = chart.options.animation;\n chart.notifyPlugins('afterRender');\n callback(animationOptions && animationOptions.onComplete, [context], chart);\n}\nfunction onAnimationProgress(context) {\n const chart = context.chart;\n const animationOptions = chart.options.animation;\n callback(animationOptions && animationOptions.onProgress, [context], chart);\n}\nfunction getCanvas(item) {\n if (_isDomSupported() && typeof item === 'string') {\n item = document.getElementById(item);\n } else if (item && item.length) {\n item = item[0];\n }\n if (item && item.canvas) {\n item = item.canvas;\n }\n return item;\n}\nconst instances = {};\nconst getChart = (key) => {\n const canvas = getCanvas(key);\n return Object.values(instances).filter((c) => c.canvas === canvas).pop();\n};\nclass Chart {\n constructor(item, userConfig) {\n const config = this.config = new Config(userConfig);\n const initialCanvas = getCanvas(item);\n const existingChart = getChart(initialCanvas);\n if (existingChart) {\n throw new Error(\n 'Canvas is already in use. Chart with ID \\'' + existingChart.id + '\\'' +\n\t\t\t\t' must be destroyed before the canvas can be reused.'\n );\n }\n const options = config.createResolver(config.chartOptionScopes(), this.getContext());\n this.platform = new (config.platform || _detectPlatform(initialCanvas))();\n this.platform.updateConfig(config);\n const context = this.platform.acquireContext(initialCanvas, options.aspectRatio);\n const canvas = context && context.canvas;\n const height = canvas && canvas.height;\n const width = canvas && canvas.width;\n this.id = uid();\n this.ctx = context;\n this.canvas = canvas;\n this.width = width;\n this.height = height;\n this._options = options;\n this._aspectRatio = this.aspectRatio;\n this._layers = [];\n this._metasets = [];\n this._stacks = undefined;\n this.boxes = [];\n this.currentDevicePixelRatio = undefined;\n this.chartArea = undefined;\n this._active = [];\n this._lastEvent = undefined;\n this._listeners = {};\n this._responsiveListeners = undefined;\n this._sortedMetasets = [];\n this.scales = {};\n this._plugins = new PluginService();\n this.$proxies = {};\n this._hiddenIndices = {};\n this.attached = false;\n this._animationsDisabled = undefined;\n this.$context = undefined;\n this._doResize = debounce(mode => this.update(mode), options.resizeDelay || 0);\n instances[this.id] = this;\n if (!context || !canvas) {\n console.error(\"Failed to create chart: can't acquire context from the given item\");\n return;\n }\n animator.listen(this, 'complete', onAnimationsComplete);\n animator.listen(this, 'progress', onAnimationProgress);\n this._initialize();\n if (this.attached) {\n this.update();\n }\n }\n get aspectRatio() {\n const {options: {aspectRatio, maintainAspectRatio}, width, height, _aspectRatio} = this;\n if (!isNullOrUndef(aspectRatio)) {\n return aspectRatio;\n }\n if (maintainAspectRatio && _aspectRatio) {\n return _aspectRatio;\n }\n return height ? width / height : null;\n }\n get data() {\n return this.config.data;\n }\n set data(data) {\n this.config.data = data;\n }\n get options() {\n return this._options;\n }\n set options(options) {\n this.config.options = options;\n }\n _initialize() {\n this.notifyPlugins('beforeInit');\n if (this.options.responsive) {\n this.resize();\n } else {\n retinaScale(this, this.options.devicePixelRatio);\n }\n this.bindEvents();\n this.notifyPlugins('afterInit');\n return this;\n }\n clear() {\n clearCanvas(this.canvas, this.ctx);\n return this;\n }\n stop() {\n animator.stop(this);\n return this;\n }\n resize(width, height) {\n if (!animator.running(this)) {\n this._resize(width, height);\n } else {\n this._resizeBeforeDraw = {width, height};\n }\n }\n _resize(width, height) {\n const options = this.options;\n const canvas = this.canvas;\n const aspectRatio = options.maintainAspectRatio && this.aspectRatio;\n const newSize = this.platform.getMaximumSize(canvas, width, height, aspectRatio);\n const newRatio = options.devicePixelRatio || this.platform.getDevicePixelRatio();\n const mode = this.width ? 'resize' : 'attach';\n this.width = newSize.width;\n this.height = newSize.height;\n this._aspectRatio = this.aspectRatio;\n if (!retinaScale(this, newRatio, true)) {\n return;\n }\n this.notifyPlugins('resize', {size: newSize});\n callback(options.onResize, [this, newSize], this);\n if (this.attached) {\n if (this._doResize(mode)) {\n this.render();\n }\n }\n }\n ensureScalesHaveIDs() {\n const options = this.options;\n const scalesOptions = options.scales || {};\n each(scalesOptions, (axisOptions, axisID) => {\n axisOptions.id = axisID;\n });\n }\n buildOrUpdateScales() {\n const options = this.options;\n const scaleOpts = options.scales;\n const scales = this.scales;\n const updated = Object.keys(scales).reduce((obj, id) => {\n obj[id] = false;\n return obj;\n }, {});\n let items = [];\n if (scaleOpts) {\n items = items.concat(\n Object.keys(scaleOpts).map((id) => {\n const scaleOptions = scaleOpts[id];\n const axis = determineAxis(id, scaleOptions);\n const isRadial = axis === 'r';\n const isHorizontal = axis === 'x';\n return {\n options: scaleOptions,\n dposition: isRadial ? 'chartArea' : isHorizontal ? 'bottom' : 'left',\n dtype: isRadial ? 'radialLinear' : isHorizontal ? 'category' : 'linear'\n };\n })\n );\n }\n each(items, (item) => {\n const scaleOptions = item.options;\n const id = scaleOptions.id;\n const axis = determineAxis(id, scaleOptions);\n const scaleType = valueOrDefault(scaleOptions.type, item.dtype);\n if (scaleOptions.position === undefined || positionIsHorizontal(scaleOptions.position, axis) !== positionIsHorizontal(item.dposition)) {\n scaleOptions.position = item.dposition;\n }\n updated[id] = true;\n let scale = null;\n if (id in scales && scales[id].type === scaleType) {\n scale = scales[id];\n } else {\n const scaleClass = registry.getScale(scaleType);\n scale = new scaleClass({\n id,\n type: scaleType,\n ctx: this.ctx,\n chart: this\n });\n scales[scale.id] = scale;\n }\n scale.init(scaleOptions, options);\n });\n each(updated, (hasUpdated, id) => {\n if (!hasUpdated) {\n delete scales[id];\n }\n });\n each(scales, (scale) => {\n layouts.configure(this, scale, scale.options);\n layouts.addBox(this, scale);\n });\n }\n _updateMetasets() {\n const metasets = this._metasets;\n const numData = this.data.datasets.length;\n const numMeta = metasets.length;\n metasets.sort((a, b) => a.index - b.index);\n if (numMeta > numData) {\n for (let i = numData; i < numMeta; ++i) {\n this._destroyDatasetMeta(i);\n }\n metasets.splice(numData, numMeta - numData);\n }\n this._sortedMetasets = metasets.slice(0).sort(compare2Level('order', 'index'));\n }\n _removeUnreferencedMetasets() {\n const {_metasets: metasets, data: {datasets}} = this;\n if (metasets.length > datasets.length) {\n delete this._stacks;\n }\n metasets.forEach((meta, index) => {\n if (datasets.filter(x => x === meta._dataset).length === 0) {\n this._destroyDatasetMeta(index);\n }\n });\n }\n buildOrUpdateControllers() {\n const newControllers = [];\n const datasets = this.data.datasets;\n let i, ilen;\n this._removeUnreferencedMetasets();\n for (i = 0, ilen = datasets.length; i < ilen; i++) {\n const dataset = datasets[i];\n let meta = this.getDatasetMeta(i);\n const type = dataset.type || this.config.type;\n if (meta.type && meta.type !== type) {\n this._destroyDatasetMeta(i);\n meta = this.getDatasetMeta(i);\n }\n meta.type = type;\n meta.indexAxis = dataset.indexAxis || getIndexAxis(type, this.options);\n meta.order = dataset.order || 0;\n meta.index = i;\n meta.label = '' + dataset.label;\n meta.visible = this.isDatasetVisible(i);\n if (meta.controller) {\n meta.controller.updateIndex(i);\n meta.controller.linkScales();\n } else {\n const ControllerClass = registry.getController(type);\n const {datasetElementType, dataElementType} = defaults.datasets[type];\n Object.assign(ControllerClass.prototype, {\n dataElementType: registry.getElement(dataElementType),\n datasetElementType: datasetElementType && registry.getElement(datasetElementType)\n });\n meta.controller = new ControllerClass(this, i);\n newControllers.push(meta.controller);\n }\n }\n this._updateMetasets();\n return newControllers;\n }\n _resetElements() {\n each(this.data.datasets, (dataset, datasetIndex) => {\n this.getDatasetMeta(datasetIndex).controller.reset();\n }, this);\n }\n reset() {\n this._resetElements();\n this.notifyPlugins('reset');\n }\n update(mode) {\n const config = this.config;\n config.update();\n const options = this._options = config.createResolver(config.chartOptionScopes(), this.getContext());\n each(this.scales, (scale) => {\n layouts.removeBox(this, scale);\n });\n const animsDisabled = this._animationsDisabled = !options.animation;\n this.ensureScalesHaveIDs();\n this.buildOrUpdateScales();\n const existingEvents = new Set(Object.keys(this._listeners));\n const newEvents = new Set(options.events);\n if (!setsEqual(existingEvents, newEvents) || !!this._responsiveListeners !== options.responsive) {\n this.unbindEvents();\n this.bindEvents();\n }\n this._plugins.invalidate();\n if (this.notifyPlugins('beforeUpdate', {mode, cancelable: true}) === false) {\n return;\n }\n const newControllers = this.buildOrUpdateControllers();\n this.notifyPlugins('beforeElementsUpdate');\n let minPadding = 0;\n for (let i = 0, ilen = this.data.datasets.length; i < ilen; i++) {\n const {controller} = this.getDatasetMeta(i);\n const reset = !animsDisabled && newControllers.indexOf(controller) === -1;\n controller.buildOrUpdateElements(reset);\n minPadding = Math.max(+controller.getMaxOverflow(), minPadding);\n }\n minPadding = this._minPadding = options.layout.autoPadding ? minPadding : 0;\n this._updateLayout(minPadding);\n if (!animsDisabled) {\n each(newControllers, (controller) => {\n controller.reset();\n });\n }\n this._updateDatasets(mode);\n this.notifyPlugins('afterUpdate', {mode});\n this._layers.sort(compare2Level('z', '_idx'));\n if (this._lastEvent) {\n this._eventHandler(this._lastEvent, true);\n }\n this.render();\n }\n _updateLayout(minPadding) {\n if (this.notifyPlugins('beforeLayout', {cancelable: true}) === false) {\n return;\n }\n layouts.update(this, this.width, this.height, minPadding);\n const area = this.chartArea;\n const noArea = area.width <= 0 || area.height <= 0;\n this._layers = [];\n each(this.boxes, (box) => {\n if (noArea && box.position === 'chartArea') {\n return;\n }\n if (box.configure) {\n box.configure();\n }\n this._layers.push(...box._layers());\n }, this);\n this._layers.forEach((item, index) => {\n item._idx = index;\n });\n this.notifyPlugins('afterLayout');\n }\n _updateDatasets(mode) {\n if (this.notifyPlugins('beforeDatasetsUpdate', {mode, cancelable: true}) === false) {\n return;\n }\n for (let i = 0, ilen = this.data.datasets.length; i < ilen; ++i) {\n this._updateDataset(i, isFunction(mode) ? mode({datasetIndex: i}) : mode);\n }\n this.notifyPlugins('afterDatasetsUpdate', {mode});\n }\n _updateDataset(index, mode) {\n const meta = this.getDatasetMeta(index);\n const args = {meta, index, mode, cancelable: true};\n if (this.notifyPlugins('beforeDatasetUpdate', args) === false) {\n return;\n }\n meta.controller._update(mode);\n args.cancelable = false;\n this.notifyPlugins('afterDatasetUpdate', args);\n }\n render() {\n if (this.notifyPlugins('beforeRender', {cancelable: true}) === false) {\n return;\n }\n if (animator.has(this)) {\n if (this.attached && !animator.running(this)) {\n animator.start(this);\n }\n } else {\n this.draw();\n onAnimationsComplete({chart: this});\n }\n }\n draw() {\n let i;\n if (this._resizeBeforeDraw) {\n const {width, height} = this._resizeBeforeDraw;\n this._resize(width, height);\n this._resizeBeforeDraw = null;\n }\n this.clear();\n if (this.width <= 0 || this.height <= 0) {\n return;\n }\n if (this.notifyPlugins('beforeDraw', {cancelable: true}) === false) {\n return;\n }\n const layers = this._layers;\n for (i = 0; i < layers.length && layers[i].z <= 0; ++i) {\n layers[i].draw(this.chartArea);\n }\n this._drawDatasets();\n for (; i < layers.length; ++i) {\n layers[i].draw(this.chartArea);\n }\n this.notifyPlugins('afterDraw');\n }\n _getSortedDatasetMetas(filterVisible) {\n const metasets = this._sortedMetasets;\n const result = [];\n let i, ilen;\n for (i = 0, ilen = metasets.length; i < ilen; ++i) {\n const meta = metasets[i];\n if (!filterVisible || meta.visible) {\n result.push(meta);\n }\n }\n return result;\n }\n getSortedVisibleDatasetMetas() {\n return this._getSortedDatasetMetas(true);\n }\n _drawDatasets() {\n if (this.notifyPlugins('beforeDatasetsDraw', {cancelable: true}) === false) {\n return;\n }\n const metasets = this.getSortedVisibleDatasetMetas();\n for (let i = metasets.length - 1; i >= 0; --i) {\n this._drawDataset(metasets[i]);\n }\n this.notifyPlugins('afterDatasetsDraw');\n }\n _drawDataset(meta) {\n const ctx = this.ctx;\n const clip = meta._clip;\n const useClip = !clip.disabled;\n const area = this.chartArea;\n const args = {\n meta,\n index: meta.index,\n cancelable: true\n };\n if (this.notifyPlugins('beforeDatasetDraw', args) === false) {\n return;\n }\n if (useClip) {\n clipArea(ctx, {\n left: clip.left === false ? 0 : area.left - clip.left,\n right: clip.right === false ? this.width : area.right + clip.right,\n top: clip.top === false ? 0 : area.top - clip.top,\n bottom: clip.bottom === false ? this.height : area.bottom + clip.bottom\n });\n }\n meta.controller.draw();\n if (useClip) {\n unclipArea(ctx);\n }\n args.cancelable = false;\n this.notifyPlugins('afterDatasetDraw', args);\n }\n getElementsAtEventForMode(e, mode, options, useFinalPosition) {\n const method = Interaction.modes[mode];\n if (typeof method === 'function') {\n return method(this, e, options, useFinalPosition);\n }\n return [];\n }\n getDatasetMeta(datasetIndex) {\n const dataset = this.data.datasets[datasetIndex];\n const metasets = this._metasets;\n let meta = metasets.filter(x => x && x._dataset === dataset).pop();\n if (!meta) {\n meta = {\n type: null,\n data: [],\n dataset: null,\n controller: null,\n hidden: null,\n xAxisID: null,\n yAxisID: null,\n order: dataset && dataset.order || 0,\n index: datasetIndex,\n _dataset: dataset,\n _parsed: [],\n _sorted: false\n };\n metasets.push(meta);\n }\n return meta;\n }\n getContext() {\n return this.$context || (this.$context = createContext(null, {chart: this, type: 'chart'}));\n }\n getVisibleDatasetCount() {\n return this.getSortedVisibleDatasetMetas().length;\n }\n isDatasetVisible(datasetIndex) {\n const dataset = this.data.datasets[datasetIndex];\n if (!dataset) {\n return false;\n }\n const meta = this.getDatasetMeta(datasetIndex);\n return typeof meta.hidden === 'boolean' ? !meta.hidden : !dataset.hidden;\n }\n setDatasetVisibility(datasetIndex, visible) {\n const meta = this.getDatasetMeta(datasetIndex);\n meta.hidden = !visible;\n }\n toggleDataVisibility(index) {\n this._hiddenIndices[index] = !this._hiddenIndices[index];\n }\n getDataVisibility(index) {\n return !this._hiddenIndices[index];\n }\n _updateVisibility(datasetIndex, dataIndex, visible) {\n const mode = visible ? 'show' : 'hide';\n const meta = this.getDatasetMeta(datasetIndex);\n const anims = meta.controller._resolveAnimations(undefined, mode);\n if (defined(dataIndex)) {\n meta.data[dataIndex].hidden = !visible;\n this.update();\n } else {\n this.setDatasetVisibility(datasetIndex, visible);\n anims.update(meta, {visible});\n this.update((ctx) => ctx.datasetIndex === datasetIndex ? mode : undefined);\n }\n }\n hide(datasetIndex, dataIndex) {\n this._updateVisibility(datasetIndex, dataIndex, false);\n }\n show(datasetIndex, dataIndex) {\n this._updateVisibility(datasetIndex, dataIndex, true);\n }\n _destroyDatasetMeta(datasetIndex) {\n const meta = this._metasets[datasetIndex];\n if (meta && meta.controller) {\n meta.controller._destroy();\n }\n delete this._metasets[datasetIndex];\n }\n _stop() {\n let i, ilen;\n this.stop();\n animator.remove(this);\n for (i = 0, ilen = this.data.datasets.length; i < ilen; ++i) {\n this._destroyDatasetMeta(i);\n }\n }\n destroy() {\n const {canvas, ctx} = this;\n this._stop();\n this.config.clearCache();\n if (canvas) {\n this.unbindEvents();\n clearCanvas(canvas, ctx);\n this.platform.releaseContext(ctx);\n this.canvas = null;\n this.ctx = null;\n }\n this.notifyPlugins('destroy');\n delete instances[this.id];\n }\n toBase64Image(...args) {\n return this.canvas.toDataURL(...args);\n }\n bindEvents() {\n this.bindUserEvents();\n if (this.options.responsive) {\n this.bindResponsiveEvents();\n } else {\n this.attached = true;\n }\n }\n bindUserEvents() {\n const listeners = this._listeners;\n const platform = this.platform;\n const _add = (type, listener) => {\n platform.addEventListener(this, type, listener);\n listeners[type] = listener;\n };\n const listener = (e, x, y) => {\n e.offsetX = x;\n e.offsetY = y;\n this._eventHandler(e);\n };\n each(this.options.events, (type) => _add(type, listener));\n }\n bindResponsiveEvents() {\n if (!this._responsiveListeners) {\n this._responsiveListeners = {};\n }\n const listeners = this._responsiveListeners;\n const platform = this.platform;\n const _add = (type, listener) => {\n platform.addEventListener(this, type, listener);\n listeners[type] = listener;\n };\n const _remove = (type, listener) => {\n if (listeners[type]) {\n platform.removeEventListener(this, type, listener);\n delete listeners[type];\n }\n };\n const listener = (width, height) => {\n if (this.canvas) {\n this.resize(width, height);\n }\n };\n let detached;\n const attached = () => {\n _remove('attach', attached);\n this.attached = true;\n this.resize();\n _add('resize', listener);\n _add('detach', detached);\n };\n detached = () => {\n this.attached = false;\n _remove('resize', listener);\n this._stop();\n this._resize(0, 0);\n _add('attach', attached);\n };\n if (platform.isAttached(this.canvas)) {\n attached();\n } else {\n detached();\n }\n }\n unbindEvents() {\n each(this._listeners, (listener, type) => {\n this.platform.removeEventListener(this, type, listener);\n });\n this._listeners = {};\n each(this._responsiveListeners, (listener, type) => {\n this.platform.removeEventListener(this, type, listener);\n });\n this._responsiveListeners = undefined;\n }\n updateHoverStyle(items, mode, enabled) {\n const prefix = enabled ? 'set' : 'remove';\n let meta, item, i, ilen;\n if (mode === 'dataset') {\n meta = this.getDatasetMeta(items[0].datasetIndex);\n meta.controller['_' + prefix + 'DatasetHoverStyle']();\n }\n for (i = 0, ilen = items.length; i < ilen; ++i) {\n item = items[i];\n const controller = item && this.getDatasetMeta(item.datasetIndex).controller;\n if (controller) {\n controller[prefix + 'HoverStyle'](item.element, item.datasetIndex, item.index);\n }\n }\n }\n getActiveElements() {\n return this._active || [];\n }\n setActiveElements(activeElements) {\n const lastActive = this._active || [];\n const active = activeElements.map(({datasetIndex, index}) => {\n const meta = this.getDatasetMeta(datasetIndex);\n if (!meta) {\n throw new Error('No dataset found at index ' + datasetIndex);\n }\n return {\n datasetIndex,\n element: meta.data[index],\n index,\n };\n });\n const changed = !_elementsEqual(active, lastActive);\n if (changed) {\n this._active = active;\n this._updateHoverStyles(active, lastActive);\n }\n }\n notifyPlugins(hook, args, filter) {\n return this._plugins.notify(this, hook, args, filter);\n }\n _updateHoverStyles(active, lastActive, replay) {\n const hoverOptions = this.options.hover;\n const diff = (a, b) => a.filter(x => !b.some(y => x.datasetIndex === y.datasetIndex && x.index === y.index));\n const deactivated = diff(lastActive, active);\n const activated = replay ? active : diff(active, lastActive);\n if (deactivated.length) {\n this.updateHoverStyle(deactivated, hoverOptions.mode, false);\n }\n if (activated.length && hoverOptions.mode) {\n this.updateHoverStyle(activated, hoverOptions.mode, true);\n }\n }\n _eventHandler(e, replay) {\n const args = {event: e, replay, cancelable: true};\n const eventFilter = (plugin) => (plugin.options.events || this.options.events).includes(e.native.type);\n if (this.notifyPlugins('beforeEvent', args, eventFilter) === false) {\n return;\n }\n const changed = this._handleEvent(e, replay);\n args.cancelable = false;\n this.notifyPlugins('afterEvent', args, eventFilter);\n if (changed || args.changed) {\n this.render();\n }\n return this;\n }\n _handleEvent(e, replay) {\n const {_active: lastActive = [], options} = this;\n const hoverOptions = options.hover;\n const useFinalPosition = replay;\n let active = [];\n let changed = false;\n let lastEvent = null;\n if (e.type !== 'mouseout') {\n active = this.getElementsAtEventForMode(e, hoverOptions.mode, hoverOptions, useFinalPosition);\n lastEvent = e.type === 'click' ? this._lastEvent : e;\n }\n this._lastEvent = null;\n if (_isPointInArea(e, this.chartArea, this._minPadding)) {\n callback(options.onHover, [e, active, this], this);\n if (e.type === 'mouseup' || e.type === 'click' || e.type === 'contextmenu') {\n callback(options.onClick, [e, active, this], this);\n }\n }\n changed = !_elementsEqual(active, lastActive);\n if (changed || replay) {\n this._active = active;\n this._updateHoverStyles(active, lastActive, replay);\n }\n this._lastEvent = lastEvent;\n return changed;\n }\n}\nconst invalidatePlugins = () => each(Chart.instances, (chart) => chart._plugins.invalidate());\nconst enumerable = true;\nObject.defineProperties(Chart, {\n defaults: {\n enumerable,\n value: defaults\n },\n instances: {\n enumerable,\n value: instances\n },\n overrides: {\n enumerable,\n value: overrides\n },\n registry: {\n enumerable,\n value: registry\n },\n version: {\n enumerable,\n value: version\n },\n getChart: {\n enumerable,\n value: getChart\n },\n register: {\n enumerable,\n value: (...items) => {\n registry.add(...items);\n invalidatePlugins();\n }\n },\n unregister: {\n enumerable,\n value: (...items) => {\n registry.remove(...items);\n invalidatePlugins();\n }\n }\n});\n\nfunction clipArc(ctx, element, endAngle) {\n const {startAngle, pixelMargin, x, y, outerRadius, innerRadius} = element;\n let angleMargin = pixelMargin / outerRadius;\n ctx.beginPath();\n ctx.arc(x, y, outerRadius, startAngle - angleMargin, endAngle + angleMargin);\n if (innerRadius > pixelMargin) {\n angleMargin = pixelMargin / innerRadius;\n ctx.arc(x, y, innerRadius, endAngle + angleMargin, startAngle - angleMargin, true);\n } else {\n ctx.arc(x, y, pixelMargin, endAngle + HALF_PI, startAngle - HALF_PI);\n }\n ctx.closePath();\n ctx.clip();\n}\nfunction toRadiusCorners(value) {\n return _readValueToProps(value, ['outerStart', 'outerEnd', 'innerStart', 'innerEnd']);\n}\nfunction parseBorderRadius$1(arc, innerRadius, outerRadius, angleDelta) {\n const o = toRadiusCorners(arc.options.borderRadius);\n const halfThickness = (outerRadius - innerRadius) / 2;\n const innerLimit = Math.min(halfThickness, angleDelta * innerRadius / 2);\n const computeOuterLimit = (val) => {\n const outerArcLimit = (outerRadius - Math.min(halfThickness, val)) * angleDelta / 2;\n return _limitValue(val, 0, Math.min(halfThickness, outerArcLimit));\n };\n return {\n outerStart: computeOuterLimit(o.outerStart),\n outerEnd: computeOuterLimit(o.outerEnd),\n innerStart: _limitValue(o.innerStart, 0, innerLimit),\n innerEnd: _limitValue(o.innerEnd, 0, innerLimit),\n };\n}\nfunction rThetaToXY(r, theta, x, y) {\n return {\n x: x + r * Math.cos(theta),\n y: y + r * Math.sin(theta),\n };\n}\nfunction pathArc(ctx, element, offset, spacing, end) {\n const {x, y, startAngle: start, pixelMargin, innerRadius: innerR} = element;\n const outerRadius = Math.max(element.outerRadius + spacing + offset - pixelMargin, 0);\n const innerRadius = innerR > 0 ? innerR + spacing + offset + pixelMargin : 0;\n let spacingOffset = 0;\n const alpha = end - start;\n if (spacing) {\n const noSpacingInnerRadius = innerR > 0 ? innerR - spacing : 0;\n const noSpacingOuterRadius = outerRadius > 0 ? outerRadius - spacing : 0;\n const avNogSpacingRadius = (noSpacingInnerRadius + noSpacingOuterRadius) / 2;\n const adjustedAngle = avNogSpacingRadius !== 0 ? (alpha * avNogSpacingRadius) / (avNogSpacingRadius + spacing) : alpha;\n spacingOffset = (alpha - adjustedAngle) / 2;\n }\n const beta = Math.max(0.001, alpha * outerRadius - offset / PI) / outerRadius;\n const angleOffset = (alpha - beta) / 2;\n const startAngle = start + angleOffset + spacingOffset;\n const endAngle = end - angleOffset - spacingOffset;\n const {outerStart, outerEnd, innerStart, innerEnd} = parseBorderRadius$1(element, innerRadius, outerRadius, endAngle - startAngle);\n const outerStartAdjustedRadius = outerRadius - outerStart;\n const outerEndAdjustedRadius = outerRadius - outerEnd;\n const outerStartAdjustedAngle = startAngle + outerStart / outerStartAdjustedRadius;\n const outerEndAdjustedAngle = endAngle - outerEnd / outerEndAdjustedRadius;\n const innerStartAdjustedRadius = innerRadius + innerStart;\n const innerEndAdjustedRadius = innerRadius + innerEnd;\n const innerStartAdjustedAngle = startAngle + innerStart / innerStartAdjustedRadius;\n const innerEndAdjustedAngle = endAngle - innerEnd / innerEndAdjustedRadius;\n ctx.beginPath();\n ctx.arc(x, y, outerRadius, outerStartAdjustedAngle, outerEndAdjustedAngle);\n if (outerEnd > 0) {\n const pCenter = rThetaToXY(outerEndAdjustedRadius, outerEndAdjustedAngle, x, y);\n ctx.arc(pCenter.x, pCenter.y, outerEnd, outerEndAdjustedAngle, endAngle + HALF_PI);\n }\n const p4 = rThetaToXY(innerEndAdjustedRadius, endAngle, x, y);\n ctx.lineTo(p4.x, p4.y);\n if (innerEnd > 0) {\n const pCenter = rThetaToXY(innerEndAdjustedRadius, innerEndAdjustedAngle, x, y);\n ctx.arc(pCenter.x, pCenter.y, innerEnd, endAngle + HALF_PI, innerEndAdjustedAngle + Math.PI);\n }\n ctx.arc(x, y, innerRadius, endAngle - (innerEnd / innerRadius), startAngle + (innerStart / innerRadius), true);\n if (innerStart > 0) {\n const pCenter = rThetaToXY(innerStartAdjustedRadius, innerStartAdjustedAngle, x, y);\n ctx.arc(pCenter.x, pCenter.y, innerStart, innerStartAdjustedAngle + Math.PI, startAngle - HALF_PI);\n }\n const p8 = rThetaToXY(outerStartAdjustedRadius, startAngle, x, y);\n ctx.lineTo(p8.x, p8.y);\n if (outerStart > 0) {\n const pCenter = rThetaToXY(outerStartAdjustedRadius, outerStartAdjustedAngle, x, y);\n ctx.arc(pCenter.x, pCenter.y, outerStart, startAngle - HALF_PI, outerStartAdjustedAngle);\n }\n ctx.closePath();\n}\nfunction drawArc(ctx, element, offset, spacing) {\n const {fullCircles, startAngle, circumference} = element;\n let endAngle = element.endAngle;\n if (fullCircles) {\n pathArc(ctx, element, offset, spacing, startAngle + TAU);\n for (let i = 0; i < fullCircles; ++i) {\n ctx.fill();\n }\n if (!isNaN(circumference)) {\n endAngle = startAngle + circumference % TAU;\n if (circumference % TAU === 0) {\n endAngle += TAU;\n }\n }\n }\n pathArc(ctx, element, offset, spacing, endAngle);\n ctx.fill();\n return endAngle;\n}\nfunction drawFullCircleBorders(ctx, element, inner) {\n const {x, y, startAngle, pixelMargin, fullCircles} = element;\n const outerRadius = Math.max(element.outerRadius - pixelMargin, 0);\n const innerRadius = element.innerRadius + pixelMargin;\n let i;\n if (inner) {\n clipArc(ctx, element, startAngle + TAU);\n }\n ctx.beginPath();\n ctx.arc(x, y, innerRadius, startAngle + TAU, startAngle, true);\n for (i = 0; i < fullCircles; ++i) {\n ctx.stroke();\n }\n ctx.beginPath();\n ctx.arc(x, y, outerRadius, startAngle, startAngle + TAU);\n for (i = 0; i < fullCircles; ++i) {\n ctx.stroke();\n }\n}\nfunction drawBorder(ctx, element, offset, spacing, endAngle) {\n const {options} = element;\n const inner = options.borderAlign === 'inner';\n if (!options.borderWidth) {\n return;\n }\n if (inner) {\n ctx.lineWidth = options.borderWidth * 2;\n ctx.lineJoin = 'round';\n } else {\n ctx.lineWidth = options.borderWidth;\n ctx.lineJoin = 'bevel';\n }\n if (element.fullCircles) {\n drawFullCircleBorders(ctx, element, inner);\n }\n if (inner) {\n clipArc(ctx, element, endAngle);\n }\n pathArc(ctx, element, offset, spacing, endAngle);\n ctx.stroke();\n}\nclass ArcElement extends Element {\n constructor(cfg) {\n super();\n this.options = undefined;\n this.circumference = undefined;\n this.startAngle = undefined;\n this.endAngle = undefined;\n this.innerRadius = undefined;\n this.outerRadius = undefined;\n this.pixelMargin = 0;\n this.fullCircles = 0;\n if (cfg) {\n Object.assign(this, cfg);\n }\n }\n inRange(chartX, chartY, useFinalPosition) {\n const point = this.getProps(['x', 'y'], useFinalPosition);\n const {angle, distance} = getAngleFromPoint(point, {x: chartX, y: chartY});\n const {startAngle, endAngle, innerRadius, outerRadius, circumference} = this.getProps([\n 'startAngle',\n 'endAngle',\n 'innerRadius',\n 'outerRadius',\n 'circumference'\n ], useFinalPosition);\n const rAdjust = this.options.spacing / 2;\n const betweenAngles = circumference >= TAU || _angleBetween(angle, startAngle, endAngle);\n const withinRadius = (distance >= innerRadius + rAdjust && distance <= outerRadius + rAdjust);\n return (betweenAngles && withinRadius);\n }\n getCenterPoint(useFinalPosition) {\n const {x, y, startAngle, endAngle, innerRadius, outerRadius} = this.getProps([\n 'x',\n 'y',\n 'startAngle',\n 'endAngle',\n 'innerRadius',\n 'outerRadius',\n 'circumference',\n ], useFinalPosition);\n const {offset, spacing} = this.options;\n const halfAngle = (startAngle + endAngle) / 2;\n const halfRadius = (innerRadius + outerRadius + spacing + offset) / 2;\n return {\n x: x + Math.cos(halfAngle) * halfRadius,\n y: y + Math.sin(halfAngle) * halfRadius\n };\n }\n tooltipPosition(useFinalPosition) {\n return this.getCenterPoint(useFinalPosition);\n }\n draw(ctx) {\n const {options, circumference} = this;\n const offset = (options.offset || 0) / 2;\n const spacing = (options.spacing || 0) / 2;\n this.pixelMargin = (options.borderAlign === 'inner') ? 0.33 : 0;\n this.fullCircles = circumference > TAU ? Math.floor(circumference / TAU) : 0;\n if (circumference === 0 || this.innerRadius < 0 || this.outerRadius < 0) {\n return;\n }\n ctx.save();\n let radiusOffset = 0;\n if (offset) {\n radiusOffset = offset / 2;\n const halfAngle = (this.startAngle + this.endAngle) / 2;\n ctx.translate(Math.cos(halfAngle) * radiusOffset, Math.sin(halfAngle) * radiusOffset);\n if (this.circumference >= PI) {\n radiusOffset = offset;\n }\n }\n ctx.fillStyle = options.backgroundColor;\n ctx.strokeStyle = options.borderColor;\n const endAngle = drawArc(ctx, this, radiusOffset, spacing);\n drawBorder(ctx, this, radiusOffset, spacing, endAngle);\n ctx.restore();\n }\n}\nArcElement.id = 'arc';\nArcElement.defaults = {\n borderAlign: 'center',\n borderColor: '#fff',\n borderRadius: 0,\n borderWidth: 2,\n offset: 0,\n spacing: 0,\n angle: undefined,\n};\nArcElement.defaultRoutes = {\n backgroundColor: 'backgroundColor'\n};\n\nfunction setStyle(ctx, options, style = options) {\n ctx.lineCap = valueOrDefault(style.borderCapStyle, options.borderCapStyle);\n ctx.setLineDash(valueOrDefault(style.borderDash, options.borderDash));\n ctx.lineDashOffset = valueOrDefault(style.borderDashOffset, options.borderDashOffset);\n ctx.lineJoin = valueOrDefault(style.borderJoinStyle, options.borderJoinStyle);\n ctx.lineWidth = valueOrDefault(style.borderWidth, options.borderWidth);\n ctx.strokeStyle = valueOrDefault(style.borderColor, options.borderColor);\n}\nfunction lineTo(ctx, previous, target) {\n ctx.lineTo(target.x, target.y);\n}\nfunction getLineMethod(options) {\n if (options.stepped) {\n return _steppedLineTo;\n }\n if (options.tension || options.cubicInterpolationMode === 'monotone') {\n return _bezierCurveTo;\n }\n return lineTo;\n}\nfunction pathVars(points, segment, params = {}) {\n const count = points.length;\n const {start: paramsStart = 0, end: paramsEnd = count - 1} = params;\n const {start: segmentStart, end: segmentEnd} = segment;\n const start = Math.max(paramsStart, segmentStart);\n const end = Math.min(paramsEnd, segmentEnd);\n const outside = paramsStart < segmentStart && paramsEnd < segmentStart || paramsStart > segmentEnd && paramsEnd > segmentEnd;\n return {\n count,\n start,\n loop: segment.loop,\n ilen: end < start && !outside ? count + end - start : end - start\n };\n}\nfunction pathSegment(ctx, line, segment, params) {\n const {points, options} = line;\n const {count, start, loop, ilen} = pathVars(points, segment, params);\n const lineMethod = getLineMethod(options);\n let {move = true, reverse} = params || {};\n let i, point, prev;\n for (i = 0; i <= ilen; ++i) {\n point = points[(start + (reverse ? ilen - i : i)) % count];\n if (point.skip) {\n continue;\n } else if (move) {\n ctx.moveTo(point.x, point.y);\n move = false;\n } else {\n lineMethod(ctx, prev, point, reverse, options.stepped);\n }\n prev = point;\n }\n if (loop) {\n point = points[(start + (reverse ? ilen : 0)) % count];\n lineMethod(ctx, prev, point, reverse, options.stepped);\n }\n return !!loop;\n}\nfunction fastPathSegment(ctx, line, segment, params) {\n const points = line.points;\n const {count, start, ilen} = pathVars(points, segment, params);\n const {move = true, reverse} = params || {};\n let avgX = 0;\n let countX = 0;\n let i, point, prevX, minY, maxY, lastY;\n const pointIndex = (index) => (start + (reverse ? ilen - index : index)) % count;\n const drawX = () => {\n if (minY !== maxY) {\n ctx.lineTo(avgX, maxY);\n ctx.lineTo(avgX, minY);\n ctx.lineTo(avgX, lastY);\n }\n };\n if (move) {\n point = points[pointIndex(0)];\n ctx.moveTo(point.x, point.y);\n }\n for (i = 0; i <= ilen; ++i) {\n point = points[pointIndex(i)];\n if (point.skip) {\n continue;\n }\n const x = point.x;\n const y = point.y;\n const truncX = x | 0;\n if (truncX === prevX) {\n if (y < minY) {\n minY = y;\n } else if (y > maxY) {\n maxY = y;\n }\n avgX = (countX * avgX + x) / ++countX;\n } else {\n drawX();\n ctx.lineTo(x, y);\n prevX = truncX;\n countX = 0;\n minY = maxY = y;\n }\n lastY = y;\n }\n drawX();\n}\nfunction _getSegmentMethod(line) {\n const opts = line.options;\n const borderDash = opts.borderDash && opts.borderDash.length;\n const useFastPath = !line._decimated && !line._loop && !opts.tension && opts.cubicInterpolationMode !== 'monotone' && !opts.stepped && !borderDash;\n return useFastPath ? fastPathSegment : pathSegment;\n}\nfunction _getInterpolationMethod(options) {\n if (options.stepped) {\n return _steppedInterpolation;\n }\n if (options.tension || options.cubicInterpolationMode === 'monotone') {\n return _bezierInterpolation;\n }\n return _pointInLine;\n}\nfunction strokePathWithCache(ctx, line, start, count) {\n let path = line._path;\n if (!path) {\n path = line._path = new Path2D();\n if (line.path(path, start, count)) {\n path.closePath();\n }\n }\n setStyle(ctx, line.options);\n ctx.stroke(path);\n}\nfunction strokePathDirect(ctx, line, start, count) {\n const {segments, options} = line;\n const segmentMethod = _getSegmentMethod(line);\n for (const segment of segments) {\n setStyle(ctx, options, segment.style);\n ctx.beginPath();\n if (segmentMethod(ctx, line, segment, {start, end: start + count - 1})) {\n ctx.closePath();\n }\n ctx.stroke();\n }\n}\nconst usePath2D = typeof Path2D === 'function';\nfunction draw(ctx, line, start, count) {\n if (usePath2D && !line.options.segment) {\n strokePathWithCache(ctx, line, start, count);\n } else {\n strokePathDirect(ctx, line, start, count);\n }\n}\nclass LineElement extends Element {\n constructor(cfg) {\n super();\n this.animated = true;\n this.options = undefined;\n this._chart = undefined;\n this._loop = undefined;\n this._fullLoop = undefined;\n this._path = undefined;\n this._points = undefined;\n this._segments = undefined;\n this._decimated = false;\n this._pointsUpdated = false;\n this._datasetIndex = undefined;\n if (cfg) {\n Object.assign(this, cfg);\n }\n }\n updateControlPoints(chartArea, indexAxis) {\n const options = this.options;\n if ((options.tension || options.cubicInterpolationMode === 'monotone') && !options.stepped && !this._pointsUpdated) {\n const loop = options.spanGaps ? this._loop : this._fullLoop;\n _updateBezierControlPoints(this._points, options, chartArea, loop, indexAxis);\n this._pointsUpdated = true;\n }\n }\n set points(points) {\n this._points = points;\n delete this._segments;\n delete this._path;\n this._pointsUpdated = false;\n }\n get points() {\n return this._points;\n }\n get segments() {\n return this._segments || (this._segments = _computeSegments(this, this.options.segment));\n }\n first() {\n const segments = this.segments;\n const points = this.points;\n return segments.length && points[segments[0].start];\n }\n last() {\n const segments = this.segments;\n const points = this.points;\n const count = segments.length;\n return count && points[segments[count - 1].end];\n }\n interpolate(point, property) {\n const options = this.options;\n const value = point[property];\n const points = this.points;\n const segments = _boundSegments(this, {property, start: value, end: value});\n if (!segments.length) {\n return;\n }\n const result = [];\n const _interpolate = _getInterpolationMethod(options);\n let i, ilen;\n for (i = 0, ilen = segments.length; i < ilen; ++i) {\n const {start, end} = segments[i];\n const p1 = points[start];\n const p2 = points[end];\n if (p1 === p2) {\n result.push(p1);\n continue;\n }\n const t = Math.abs((value - p1[property]) / (p2[property] - p1[property]));\n const interpolated = _interpolate(p1, p2, t, options.stepped);\n interpolated[property] = point[property];\n result.push(interpolated);\n }\n return result.length === 1 ? result[0] : result;\n }\n pathSegment(ctx, segment, params) {\n const segmentMethod = _getSegmentMethod(this);\n return segmentMethod(ctx, this, segment, params);\n }\n path(ctx, start, count) {\n const segments = this.segments;\n const segmentMethod = _getSegmentMethod(this);\n let loop = this._loop;\n start = start || 0;\n count = count || (this.points.length - start);\n for (const segment of segments) {\n loop &= segmentMethod(ctx, this, segment, {start, end: start + count - 1});\n }\n return !!loop;\n }\n draw(ctx, chartArea, start, count) {\n const options = this.options || {};\n const points = this.points || [];\n if (points.length && options.borderWidth) {\n ctx.save();\n draw(ctx, this, start, count);\n ctx.restore();\n }\n if (this.animated) {\n this._pointsUpdated = false;\n this._path = undefined;\n }\n }\n}\nLineElement.id = 'line';\nLineElement.defaults = {\n borderCapStyle: 'butt',\n borderDash: [],\n borderDashOffset: 0,\n borderJoinStyle: 'miter',\n borderWidth: 3,\n capBezierPoints: true,\n cubicInterpolationMode: 'default',\n fill: false,\n spanGaps: false,\n stepped: false,\n tension: 0,\n};\nLineElement.defaultRoutes = {\n backgroundColor: 'backgroundColor',\n borderColor: 'borderColor'\n};\nLineElement.descriptors = {\n _scriptable: true,\n _indexable: (name) => name !== 'borderDash' && name !== 'fill',\n};\n\nfunction inRange$1(el, pos, axis, useFinalPosition) {\n const options = el.options;\n const {[axis]: value} = el.getProps([axis], useFinalPosition);\n return (Math.abs(pos - value) < options.radius + options.hitRadius);\n}\nclass PointElement extends Element {\n constructor(cfg) {\n super();\n this.options = undefined;\n this.parsed = undefined;\n this.skip = undefined;\n this.stop = undefined;\n if (cfg) {\n Object.assign(this, cfg);\n }\n }\n inRange(mouseX, mouseY, useFinalPosition) {\n const options = this.options;\n const {x, y} = this.getProps(['x', 'y'], useFinalPosition);\n return ((Math.pow(mouseX - x, 2) + Math.pow(mouseY - y, 2)) < Math.pow(options.hitRadius + options.radius, 2));\n }\n inXRange(mouseX, useFinalPosition) {\n return inRange$1(this, mouseX, 'x', useFinalPosition);\n }\n inYRange(mouseY, useFinalPosition) {\n return inRange$1(this, mouseY, 'y', useFinalPosition);\n }\n getCenterPoint(useFinalPosition) {\n const {x, y} = this.getProps(['x', 'y'], useFinalPosition);\n return {x, y};\n }\n size(options) {\n options = options || this.options || {};\n let radius = options.radius || 0;\n radius = Math.max(radius, radius && options.hoverRadius || 0);\n const borderWidth = radius && options.borderWidth || 0;\n return (radius + borderWidth) * 2;\n }\n draw(ctx, area) {\n const options = this.options;\n if (this.skip || options.radius < 0.1 || !_isPointInArea(this, area, this.size(options) / 2)) {\n return;\n }\n ctx.strokeStyle = options.borderColor;\n ctx.lineWidth = options.borderWidth;\n ctx.fillStyle = options.backgroundColor;\n drawPoint(ctx, options, this.x, this.y);\n }\n getRange() {\n const options = this.options || {};\n return options.radius + options.hitRadius;\n }\n}\nPointElement.id = 'point';\nPointElement.defaults = {\n borderWidth: 1,\n hitRadius: 1,\n hoverBorderWidth: 1,\n hoverRadius: 4,\n pointStyle: 'circle',\n radius: 3,\n rotation: 0\n};\nPointElement.defaultRoutes = {\n backgroundColor: 'backgroundColor',\n borderColor: 'borderColor'\n};\n\nfunction getBarBounds(bar, useFinalPosition) {\n const {x, y, base, width, height} = bar.getProps(['x', 'y', 'base', 'width', 'height'], useFinalPosition);\n let left, right, top, bottom, half;\n if (bar.horizontal) {\n half = height / 2;\n left = Math.min(x, base);\n right = Math.max(x, base);\n top = y - half;\n bottom = y + half;\n } else {\n half = width / 2;\n left = x - half;\n right = x + half;\n top = Math.min(y, base);\n bottom = Math.max(y, base);\n }\n return {left, top, right, bottom};\n}\nfunction skipOrLimit(skip, value, min, max) {\n return skip ? 0 : _limitValue(value, min, max);\n}\nfunction parseBorderWidth(bar, maxW, maxH) {\n const value = bar.options.borderWidth;\n const skip = bar.borderSkipped;\n const o = toTRBL(value);\n return {\n t: skipOrLimit(skip.top, o.top, 0, maxH),\n r: skipOrLimit(skip.right, o.right, 0, maxW),\n b: skipOrLimit(skip.bottom, o.bottom, 0, maxH),\n l: skipOrLimit(skip.left, o.left, 0, maxW)\n };\n}\nfunction parseBorderRadius(bar, maxW, maxH) {\n const {enableBorderRadius} = bar.getProps(['enableBorderRadius']);\n const value = bar.options.borderRadius;\n const o = toTRBLCorners(value);\n const maxR = Math.min(maxW, maxH);\n const skip = bar.borderSkipped;\n const enableBorder = enableBorderRadius || isObject(value);\n return {\n topLeft: skipOrLimit(!enableBorder || skip.top || skip.left, o.topLeft, 0, maxR),\n topRight: skipOrLimit(!enableBorder || skip.top || skip.right, o.topRight, 0, maxR),\n bottomLeft: skipOrLimit(!enableBorder || skip.bottom || skip.left, o.bottomLeft, 0, maxR),\n bottomRight: skipOrLimit(!enableBorder || skip.bottom || skip.right, o.bottomRight, 0, maxR)\n };\n}\nfunction boundingRects(bar) {\n const bounds = getBarBounds(bar);\n const width = bounds.right - bounds.left;\n const height = bounds.bottom - bounds.top;\n const border = parseBorderWidth(bar, width / 2, height / 2);\n const radius = parseBorderRadius(bar, width / 2, height / 2);\n return {\n outer: {\n x: bounds.left,\n y: bounds.top,\n w: width,\n h: height,\n radius\n },\n inner: {\n x: bounds.left + border.l,\n y: bounds.top + border.t,\n w: width - border.l - border.r,\n h: height - border.t - border.b,\n radius: {\n topLeft: Math.max(0, radius.topLeft - Math.max(border.t, border.l)),\n topRight: Math.max(0, radius.topRight - Math.max(border.t, border.r)),\n bottomLeft: Math.max(0, radius.bottomLeft - Math.max(border.b, border.l)),\n bottomRight: Math.max(0, radius.bottomRight - Math.max(border.b, border.r)),\n }\n }\n };\n}\nfunction inRange(bar, x, y, useFinalPosition) {\n const skipX = x === null;\n const skipY = y === null;\n const skipBoth = skipX && skipY;\n const bounds = bar && !skipBoth && getBarBounds(bar, useFinalPosition);\n return bounds\n\t\t&& (skipX || x >= bounds.left && x <= bounds.right)\n\t\t&& (skipY || y >= bounds.top && y <= bounds.bottom);\n}\nfunction hasRadius(radius) {\n return radius.topLeft || radius.topRight || radius.bottomLeft || radius.bottomRight;\n}\nfunction addNormalRectPath(ctx, rect) {\n ctx.rect(rect.x, rect.y, rect.w, rect.h);\n}\nfunction inflateRect(rect, amount, refRect = {}) {\n const x = rect.x !== refRect.x ? -amount : 0;\n const y = rect.y !== refRect.y ? -amount : 0;\n const w = (rect.x + rect.w !== refRect.x + refRect.w ? amount : 0) - x;\n const h = (rect.y + rect.h !== refRect.y + refRect.h ? amount : 0) - y;\n return {\n x: rect.x + x,\n y: rect.y + y,\n w: rect.w + w,\n h: rect.h + h,\n radius: rect.radius\n };\n}\nclass BarElement extends Element {\n constructor(cfg) {\n super();\n this.options = undefined;\n this.horizontal = undefined;\n this.base = undefined;\n this.width = undefined;\n this.height = undefined;\n this.inflateAmount = undefined;\n if (cfg) {\n Object.assign(this, cfg);\n }\n }\n draw(ctx) {\n const {inflateAmount, options: {borderColor, backgroundColor}} = this;\n const {inner, outer} = boundingRects(this);\n const addRectPath = hasRadius(outer.radius) ? addRoundedRectPath : addNormalRectPath;\n ctx.save();\n if (outer.w !== inner.w || outer.h !== inner.h) {\n ctx.beginPath();\n addRectPath(ctx, inflateRect(outer, inflateAmount, inner));\n ctx.clip();\n addRectPath(ctx, inflateRect(inner, -inflateAmount, outer));\n ctx.fillStyle = borderColor;\n ctx.fill('evenodd');\n }\n ctx.beginPath();\n addRectPath(ctx, inflateRect(inner, inflateAmount));\n ctx.fillStyle = backgroundColor;\n ctx.fill();\n ctx.restore();\n }\n inRange(mouseX, mouseY, useFinalPosition) {\n return inRange(this, mouseX, mouseY, useFinalPosition);\n }\n inXRange(mouseX, useFinalPosition) {\n return inRange(this, mouseX, null, useFinalPosition);\n }\n inYRange(mouseY, useFinalPosition) {\n return inRange(this, null, mouseY, useFinalPosition);\n }\n getCenterPoint(useFinalPosition) {\n const {x, y, base, horizontal} = this.getProps(['x', 'y', 'base', 'horizontal'], useFinalPosition);\n return {\n x: horizontal ? (x + base) / 2 : x,\n y: horizontal ? y : (y + base) / 2\n };\n }\n getRange(axis) {\n return axis === 'x' ? this.width / 2 : this.height / 2;\n }\n}\nBarElement.id = 'bar';\nBarElement.defaults = {\n borderSkipped: 'start',\n borderWidth: 0,\n borderRadius: 0,\n inflateAmount: 'auto',\n pointStyle: undefined\n};\nBarElement.defaultRoutes = {\n backgroundColor: 'backgroundColor',\n borderColor: 'borderColor'\n};\n\nvar elements = /*#__PURE__*/Object.freeze({\n__proto__: null,\nArcElement: ArcElement,\nLineElement: LineElement,\nPointElement: PointElement,\nBarElement: BarElement\n});\n\nfunction lttbDecimation(data, start, count, availableWidth, options) {\n const samples = options.samples || availableWidth;\n if (samples >= count) {\n return data.slice(start, start + count);\n }\n const decimated = [];\n const bucketWidth = (count - 2) / (samples - 2);\n let sampledIndex = 0;\n const endIndex = start + count - 1;\n let a = start;\n let i, maxAreaPoint, maxArea, area, nextA;\n decimated[sampledIndex++] = data[a];\n for (i = 0; i < samples - 2; i++) {\n let avgX = 0;\n let avgY = 0;\n let j;\n const avgRangeStart = Math.floor((i + 1) * bucketWidth) + 1 + start;\n const avgRangeEnd = Math.min(Math.floor((i + 2) * bucketWidth) + 1, count) + start;\n const avgRangeLength = avgRangeEnd - avgRangeStart;\n for (j = avgRangeStart; j < avgRangeEnd; j++) {\n avgX += data[j].x;\n avgY += data[j].y;\n }\n avgX /= avgRangeLength;\n avgY /= avgRangeLength;\n const rangeOffs = Math.floor(i * bucketWidth) + 1 + start;\n const rangeTo = Math.min(Math.floor((i + 1) * bucketWidth) + 1, count) + start;\n const {x: pointAx, y: pointAy} = data[a];\n maxArea = area = -1;\n for (j = rangeOffs; j < rangeTo; j++) {\n area = 0.5 * Math.abs(\n (pointAx - avgX) * (data[j].y - pointAy) -\n (pointAx - data[j].x) * (avgY - pointAy)\n );\n if (area > maxArea) {\n maxArea = area;\n maxAreaPoint = data[j];\n nextA = j;\n }\n }\n decimated[sampledIndex++] = maxAreaPoint;\n a = nextA;\n }\n decimated[sampledIndex++] = data[endIndex];\n return decimated;\n}\nfunction minMaxDecimation(data, start, count, availableWidth) {\n let avgX = 0;\n let countX = 0;\n let i, point, x, y, prevX, minIndex, maxIndex, startIndex, minY, maxY;\n const decimated = [];\n const endIndex = start + count - 1;\n const xMin = data[start].x;\n const xMax = data[endIndex].x;\n const dx = xMax - xMin;\n for (i = start; i < start + count; ++i) {\n point = data[i];\n x = (point.x - xMin) / dx * availableWidth;\n y = point.y;\n const truncX = x | 0;\n if (truncX === prevX) {\n if (y < minY) {\n minY = y;\n minIndex = i;\n } else if (y > maxY) {\n maxY = y;\n maxIndex = i;\n }\n avgX = (countX * avgX + point.x) / ++countX;\n } else {\n const lastIndex = i - 1;\n if (!isNullOrUndef(minIndex) && !isNullOrUndef(maxIndex)) {\n const intermediateIndex1 = Math.min(minIndex, maxIndex);\n const intermediateIndex2 = Math.max(minIndex, maxIndex);\n if (intermediateIndex1 !== startIndex && intermediateIndex1 !== lastIndex) {\n decimated.push({\n ...data[intermediateIndex1],\n x: avgX,\n });\n }\n if (intermediateIndex2 !== startIndex && intermediateIndex2 !== lastIndex) {\n decimated.push({\n ...data[intermediateIndex2],\n x: avgX\n });\n }\n }\n if (i > 0 && lastIndex !== startIndex) {\n decimated.push(data[lastIndex]);\n }\n decimated.push(point);\n prevX = truncX;\n countX = 0;\n minY = maxY = y;\n minIndex = maxIndex = startIndex = i;\n }\n }\n return decimated;\n}\nfunction cleanDecimatedDataset(dataset) {\n if (dataset._decimated) {\n const data = dataset._data;\n delete dataset._decimated;\n delete dataset._data;\n Object.defineProperty(dataset, 'data', {value: data});\n }\n}\nfunction cleanDecimatedData(chart) {\n chart.data.datasets.forEach((dataset) => {\n cleanDecimatedDataset(dataset);\n });\n}\nfunction getStartAndCountOfVisiblePointsSimplified(meta, points) {\n const pointCount = points.length;\n let start = 0;\n let count;\n const {iScale} = meta;\n const {min, max, minDefined, maxDefined} = iScale.getUserBounds();\n if (minDefined) {\n start = _limitValue(_lookupByKey(points, iScale.axis, min).lo, 0, pointCount - 1);\n }\n if (maxDefined) {\n count = _limitValue(_lookupByKey(points, iScale.axis, max).hi + 1, start, pointCount) - start;\n } else {\n count = pointCount - start;\n }\n return {start, count};\n}\nvar plugin_decimation = {\n id: 'decimation',\n defaults: {\n algorithm: 'min-max',\n enabled: false,\n },\n beforeElementsUpdate: (chart, args, options) => {\n if (!options.enabled) {\n cleanDecimatedData(chart);\n return;\n }\n const availableWidth = chart.width;\n chart.data.datasets.forEach((dataset, datasetIndex) => {\n const {_data, indexAxis} = dataset;\n const meta = chart.getDatasetMeta(datasetIndex);\n const data = _data || dataset.data;\n if (resolve([indexAxis, chart.options.indexAxis]) === 'y') {\n return;\n }\n if (meta.type !== 'line') {\n return;\n }\n const xAxis = chart.scales[meta.xAxisID];\n if (xAxis.type !== 'linear' && xAxis.type !== 'time') {\n return;\n }\n if (chart.options.parsing) {\n return;\n }\n let {start, count} = getStartAndCountOfVisiblePointsSimplified(meta, data);\n const threshold = options.threshold || 4 * availableWidth;\n if (count <= threshold) {\n cleanDecimatedDataset(dataset);\n return;\n }\n if (isNullOrUndef(_data)) {\n dataset._data = data;\n delete dataset.data;\n Object.defineProperty(dataset, 'data', {\n configurable: true,\n enumerable: true,\n get: function() {\n return this._decimated;\n },\n set: function(d) {\n this._data = d;\n }\n });\n }\n let decimated;\n switch (options.algorithm) {\n case 'lttb':\n decimated = lttbDecimation(data, start, count, availableWidth, options);\n break;\n case 'min-max':\n decimated = minMaxDecimation(data, start, count, availableWidth);\n break;\n default:\n throw new Error(`Unsupported decimation algorithm '${options.algorithm}'`);\n }\n dataset._decimated = decimated;\n });\n },\n destroy(chart) {\n cleanDecimatedData(chart);\n }\n};\n\nfunction getLineByIndex(chart, index) {\n const meta = chart.getDatasetMeta(index);\n const visible = meta && chart.isDatasetVisible(index);\n return visible ? meta.dataset : null;\n}\nfunction parseFillOption(line) {\n const options = line.options;\n const fillOption = options.fill;\n let fill = valueOrDefault(fillOption && fillOption.target, fillOption);\n if (fill === undefined) {\n fill = !!options.backgroundColor;\n }\n if (fill === false || fill === null) {\n return false;\n }\n if (fill === true) {\n return 'origin';\n }\n return fill;\n}\nfunction decodeFill(line, index, count) {\n const fill = parseFillOption(line);\n if (isObject(fill)) {\n return isNaN(fill.value) ? false : fill;\n }\n let target = parseFloat(fill);\n if (isNumberFinite(target) && Math.floor(target) === target) {\n if (fill[0] === '-' || fill[0] === '+') {\n target = index + target;\n }\n if (target === index || target < 0 || target >= count) {\n return false;\n }\n return target;\n }\n return ['origin', 'start', 'end', 'stack', 'shape'].indexOf(fill) >= 0 && fill;\n}\nfunction computeLinearBoundary(source) {\n const {scale = {}, fill} = source;\n let target = null;\n let horizontal;\n if (fill === 'start') {\n target = scale.bottom;\n } else if (fill === 'end') {\n target = scale.top;\n } else if (isObject(fill)) {\n target = scale.getPixelForValue(fill.value);\n } else if (scale.getBasePixel) {\n target = scale.getBasePixel();\n }\n if (isNumberFinite(target)) {\n horizontal = scale.isHorizontal();\n return {\n x: horizontal ? target : null,\n y: horizontal ? null : target\n };\n }\n return null;\n}\nclass simpleArc {\n constructor(opts) {\n this.x = opts.x;\n this.y = opts.y;\n this.radius = opts.radius;\n }\n pathSegment(ctx, bounds, opts) {\n const {x, y, radius} = this;\n bounds = bounds || {start: 0, end: TAU};\n ctx.arc(x, y, radius, bounds.end, bounds.start, true);\n return !opts.bounds;\n }\n interpolate(point) {\n const {x, y, radius} = this;\n const angle = point.angle;\n return {\n x: x + Math.cos(angle) * radius,\n y: y + Math.sin(angle) * radius,\n angle\n };\n }\n}\nfunction computeCircularBoundary(source) {\n const {scale, fill} = source;\n const options = scale.options;\n const length = scale.getLabels().length;\n const target = [];\n const start = options.reverse ? scale.max : scale.min;\n const end = options.reverse ? scale.min : scale.max;\n let i, center, value;\n if (fill === 'start') {\n value = start;\n } else if (fill === 'end') {\n value = end;\n } else if (isObject(fill)) {\n value = fill.value;\n } else {\n value = scale.getBaseValue();\n }\n if (options.grid.circular) {\n center = scale.getPointPositionForValue(0, start);\n return new simpleArc({\n x: center.x,\n y: center.y,\n radius: scale.getDistanceFromCenterForValue(value)\n });\n }\n for (i = 0; i < length; ++i) {\n target.push(scale.getPointPositionForValue(i, value));\n }\n return target;\n}\nfunction computeBoundary(source) {\n const scale = source.scale || {};\n if (scale.getPointPositionForValue) {\n return computeCircularBoundary(source);\n }\n return computeLinearBoundary(source);\n}\nfunction findSegmentEnd(start, end, points) {\n for (;end > start; end--) {\n const point = points[end];\n if (!isNaN(point.x) && !isNaN(point.y)) {\n break;\n }\n }\n return end;\n}\nfunction pointsFromSegments(boundary, line) {\n const {x = null, y = null} = boundary || {};\n const linePoints = line.points;\n const points = [];\n line.segments.forEach(({start, end}) => {\n end = findSegmentEnd(start, end, linePoints);\n const first = linePoints[start];\n const last = linePoints[end];\n if (y !== null) {\n points.push({x: first.x, y});\n points.push({x: last.x, y});\n } else if (x !== null) {\n points.push({x, y: first.y});\n points.push({x, y: last.y});\n }\n });\n return points;\n}\nfunction buildStackLine(source) {\n const {scale, index, line} = source;\n const points = [];\n const segments = line.segments;\n const sourcePoints = line.points;\n const linesBelow = getLinesBelow(scale, index);\n linesBelow.push(createBoundaryLine({x: null, y: scale.bottom}, line));\n for (let i = 0; i < segments.length; i++) {\n const segment = segments[i];\n for (let j = segment.start; j <= segment.end; j++) {\n addPointsBelow(points, sourcePoints[j], linesBelow);\n }\n }\n return new LineElement({points, options: {}});\n}\nfunction getLinesBelow(scale, index) {\n const below = [];\n const metas = scale.getMatchingVisibleMetas('line');\n for (let i = 0; i < metas.length; i++) {\n const meta = metas[i];\n if (meta.index === index) {\n break;\n }\n if (!meta.hidden) {\n below.unshift(meta.dataset);\n }\n }\n return below;\n}\nfunction addPointsBelow(points, sourcePoint, linesBelow) {\n const postponed = [];\n for (let j = 0; j < linesBelow.length; j++) {\n const line = linesBelow[j];\n const {first, last, point} = findPoint(line, sourcePoint, 'x');\n if (!point || (first && last)) {\n continue;\n }\n if (first) {\n postponed.unshift(point);\n } else {\n points.push(point);\n if (!last) {\n break;\n }\n }\n }\n points.push(...postponed);\n}\nfunction findPoint(line, sourcePoint, property) {\n const point = line.interpolate(sourcePoint, property);\n if (!point) {\n return {};\n }\n const pointValue = point[property];\n const segments = line.segments;\n const linePoints = line.points;\n let first = false;\n let last = false;\n for (let i = 0; i < segments.length; i++) {\n const segment = segments[i];\n const firstValue = linePoints[segment.start][property];\n const lastValue = linePoints[segment.end][property];\n if (pointValue >= firstValue && pointValue <= lastValue) {\n first = pointValue === firstValue;\n last = pointValue === lastValue;\n break;\n }\n }\n return {first, last, point};\n}\nfunction getTarget(source) {\n const {chart, fill, line} = source;\n if (isNumberFinite(fill)) {\n return getLineByIndex(chart, fill);\n }\n if (fill === 'stack') {\n return buildStackLine(source);\n }\n if (fill === 'shape') {\n return true;\n }\n const boundary = computeBoundary(source);\n if (boundary instanceof simpleArc) {\n return boundary;\n }\n return createBoundaryLine(boundary, line);\n}\nfunction createBoundaryLine(boundary, line) {\n let points = [];\n let _loop = false;\n if (isArray(boundary)) {\n _loop = true;\n points = boundary;\n } else {\n points = pointsFromSegments(boundary, line);\n }\n return points.length ? new LineElement({\n points,\n options: {tension: 0},\n _loop,\n _fullLoop: _loop\n }) : null;\n}\nfunction resolveTarget(sources, index, propagate) {\n const source = sources[index];\n let fill = source.fill;\n const visited = [index];\n let target;\n if (!propagate) {\n return fill;\n }\n while (fill !== false && visited.indexOf(fill) === -1) {\n if (!isNumberFinite(fill)) {\n return fill;\n }\n target = sources[fill];\n if (!target) {\n return false;\n }\n if (target.visible) {\n return fill;\n }\n visited.push(fill);\n fill = target.fill;\n }\n return false;\n}\nfunction _clip(ctx, target, clipY) {\n ctx.beginPath();\n target.path(ctx);\n ctx.lineTo(target.last().x, clipY);\n ctx.lineTo(target.first().x, clipY);\n ctx.closePath();\n ctx.clip();\n}\nfunction getBounds(property, first, last, loop) {\n if (loop) {\n return;\n }\n let start = first[property];\n let end = last[property];\n if (property === 'angle') {\n start = _normalizeAngle(start);\n end = _normalizeAngle(end);\n }\n return {property, start, end};\n}\nfunction _getEdge(a, b, prop, fn) {\n if (a && b) {\n return fn(a[prop], b[prop]);\n }\n return a ? a[prop] : b ? b[prop] : 0;\n}\nfunction _segments(line, target, property) {\n const segments = line.segments;\n const points = line.points;\n const tpoints = target.points;\n const parts = [];\n for (const segment of segments) {\n let {start, end} = segment;\n end = findSegmentEnd(start, end, points);\n const bounds = getBounds(property, points[start], points[end], segment.loop);\n if (!target.segments) {\n parts.push({\n source: segment,\n target: bounds,\n start: points[start],\n end: points[end]\n });\n continue;\n }\n const targetSegments = _boundSegments(target, bounds);\n for (const tgt of targetSegments) {\n const subBounds = getBounds(property, tpoints[tgt.start], tpoints[tgt.end], tgt.loop);\n const fillSources = _boundSegment(segment, points, subBounds);\n for (const fillSource of fillSources) {\n parts.push({\n source: fillSource,\n target: tgt,\n start: {\n [property]: _getEdge(bounds, subBounds, 'start', Math.max)\n },\n end: {\n [property]: _getEdge(bounds, subBounds, 'end', Math.min)\n }\n });\n }\n }\n }\n return parts;\n}\nfunction clipBounds(ctx, scale, bounds) {\n const {top, bottom} = scale.chart.chartArea;\n const {property, start, end} = bounds || {};\n if (property === 'x') {\n ctx.beginPath();\n ctx.rect(start, top, end - start, bottom - top);\n ctx.clip();\n }\n}\nfunction interpolatedLineTo(ctx, target, point, property) {\n const interpolatedPoint = target.interpolate(point, property);\n if (interpolatedPoint) {\n ctx.lineTo(interpolatedPoint.x, interpolatedPoint.y);\n }\n}\nfunction _fill(ctx, cfg) {\n const {line, target, property, color, scale} = cfg;\n const segments = _segments(line, target, property);\n for (const {source: src, target: tgt, start, end} of segments) {\n const {style: {backgroundColor = color} = {}} = src;\n const notShape = target !== true;\n ctx.save();\n ctx.fillStyle = backgroundColor;\n clipBounds(ctx, scale, notShape && getBounds(property, start, end));\n ctx.beginPath();\n const lineLoop = !!line.pathSegment(ctx, src);\n let loop;\n if (notShape) {\n if (lineLoop) {\n ctx.closePath();\n } else {\n interpolatedLineTo(ctx, target, end, property);\n }\n const targetLoop = !!target.pathSegment(ctx, tgt, {move: lineLoop, reverse: true});\n loop = lineLoop && targetLoop;\n if (!loop) {\n interpolatedLineTo(ctx, target, start, property);\n }\n }\n ctx.closePath();\n ctx.fill(loop ? 'evenodd' : 'nonzero');\n ctx.restore();\n }\n}\nfunction doFill(ctx, cfg) {\n const {line, target, above, below, area, scale} = cfg;\n const property = line._loop ? 'angle' : cfg.axis;\n ctx.save();\n if (property === 'x' && below !== above) {\n _clip(ctx, target, area.top);\n _fill(ctx, {line, target, color: above, scale, property});\n ctx.restore();\n ctx.save();\n _clip(ctx, target, area.bottom);\n }\n _fill(ctx, {line, target, color: below, scale, property});\n ctx.restore();\n}\nfunction drawfill(ctx, source, area) {\n const target = getTarget(source);\n const {line, scale, axis} = source;\n const lineOpts = line.options;\n const fillOption = lineOpts.fill;\n const color = lineOpts.backgroundColor;\n const {above = color, below = color} = fillOption || {};\n if (target && line.points.length) {\n clipArea(ctx, area);\n doFill(ctx, {line, target, above, below, area, scale, axis});\n unclipArea(ctx);\n }\n}\nvar plugin_filler = {\n id: 'filler',\n afterDatasetsUpdate(chart, _args, options) {\n const count = (chart.data.datasets || []).length;\n const sources = [];\n let meta, i, line, source;\n for (i = 0; i < count; ++i) {\n meta = chart.getDatasetMeta(i);\n line = meta.dataset;\n source = null;\n if (line && line.options && line instanceof LineElement) {\n source = {\n visible: chart.isDatasetVisible(i),\n index: i,\n fill: decodeFill(line, i, count),\n chart,\n axis: meta.controller.options.indexAxis,\n scale: meta.vScale,\n line,\n };\n }\n meta.$filler = source;\n sources.push(source);\n }\n for (i = 0; i < count; ++i) {\n source = sources[i];\n if (!source || source.fill === false) {\n continue;\n }\n source.fill = resolveTarget(sources, i, options.propagate);\n }\n },\n beforeDraw(chart, _args, options) {\n const draw = options.drawTime === 'beforeDraw';\n const metasets = chart.getSortedVisibleDatasetMetas();\n const area = chart.chartArea;\n for (let i = metasets.length - 1; i >= 0; --i) {\n const source = metasets[i].$filler;\n if (!source) {\n continue;\n }\n source.line.updateControlPoints(area, source.axis);\n if (draw) {\n drawfill(chart.ctx, source, area);\n }\n }\n },\n beforeDatasetsDraw(chart, _args, options) {\n if (options.drawTime !== 'beforeDatasetsDraw') {\n return;\n }\n const metasets = chart.getSortedVisibleDatasetMetas();\n for (let i = metasets.length - 1; i >= 0; --i) {\n const source = metasets[i].$filler;\n if (source) {\n drawfill(chart.ctx, source, chart.chartArea);\n }\n }\n },\n beforeDatasetDraw(chart, args, options) {\n const source = args.meta.$filler;\n if (!source || source.fill === false || options.drawTime !== 'beforeDatasetDraw') {\n return;\n }\n drawfill(chart.ctx, source, chart.chartArea);\n },\n defaults: {\n propagate: true,\n drawTime: 'beforeDatasetDraw'\n }\n};\n\nconst getBoxSize = (labelOpts, fontSize) => {\n let {boxHeight = fontSize, boxWidth = fontSize} = labelOpts;\n if (labelOpts.usePointStyle) {\n boxHeight = Math.min(boxHeight, fontSize);\n boxWidth = Math.min(boxWidth, fontSize);\n }\n return {\n boxWidth,\n boxHeight,\n itemHeight: Math.max(fontSize, boxHeight)\n };\n};\nconst itemsEqual = (a, b) => a !== null && b !== null && a.datasetIndex === b.datasetIndex && a.index === b.index;\nclass Legend extends Element {\n constructor(config) {\n super();\n this._added = false;\n this.legendHitBoxes = [];\n this._hoveredItem = null;\n this.doughnutMode = false;\n this.chart = config.chart;\n this.options = config.options;\n this.ctx = config.ctx;\n this.legendItems = undefined;\n this.columnSizes = undefined;\n this.lineWidths = undefined;\n this.maxHeight = undefined;\n this.maxWidth = undefined;\n this.top = undefined;\n this.bottom = undefined;\n this.left = undefined;\n this.right = undefined;\n this.height = undefined;\n this.width = undefined;\n this._margins = undefined;\n this.position = undefined;\n this.weight = undefined;\n this.fullSize = undefined;\n }\n update(maxWidth, maxHeight, margins) {\n this.maxWidth = maxWidth;\n this.maxHeight = maxHeight;\n this._margins = margins;\n this.setDimensions();\n this.buildLabels();\n this.fit();\n }\n setDimensions() {\n if (this.isHorizontal()) {\n this.width = this.maxWidth;\n this.left = this._margins.left;\n this.right = this.width;\n } else {\n this.height = this.maxHeight;\n this.top = this._margins.top;\n this.bottom = this.height;\n }\n }\n buildLabels() {\n const labelOpts = this.options.labels || {};\n let legendItems = callback(labelOpts.generateLabels, [this.chart], this) || [];\n if (labelOpts.filter) {\n legendItems = legendItems.filter((item) => labelOpts.filter(item, this.chart.data));\n }\n if (labelOpts.sort) {\n legendItems = legendItems.sort((a, b) => labelOpts.sort(a, b, this.chart.data));\n }\n if (this.options.reverse) {\n legendItems.reverse();\n }\n this.legendItems = legendItems;\n }\n fit() {\n const {options, ctx} = this;\n if (!options.display) {\n this.width = this.height = 0;\n return;\n }\n const labelOpts = options.labels;\n const labelFont = toFont(labelOpts.font);\n const fontSize = labelFont.size;\n const titleHeight = this._computeTitleHeight();\n const {boxWidth, itemHeight} = getBoxSize(labelOpts, fontSize);\n let width, height;\n ctx.font = labelFont.string;\n if (this.isHorizontal()) {\n width = this.maxWidth;\n height = this._fitRows(titleHeight, fontSize, boxWidth, itemHeight) + 10;\n } else {\n height = this.maxHeight;\n width = this._fitCols(titleHeight, fontSize, boxWidth, itemHeight) + 10;\n }\n this.width = Math.min(width, options.maxWidth || this.maxWidth);\n this.height = Math.min(height, options.maxHeight || this.maxHeight);\n }\n _fitRows(titleHeight, fontSize, boxWidth, itemHeight) {\n const {ctx, maxWidth, options: {labels: {padding}}} = this;\n const hitboxes = this.legendHitBoxes = [];\n const lineWidths = this.lineWidths = [0];\n const lineHeight = itemHeight + padding;\n let totalHeight = titleHeight;\n ctx.textAlign = 'left';\n ctx.textBaseline = 'middle';\n let row = -1;\n let top = -lineHeight;\n this.legendItems.forEach((legendItem, i) => {\n const itemWidth = boxWidth + (fontSize / 2) + ctx.measureText(legendItem.text).width;\n if (i === 0 || lineWidths[lineWidths.length - 1] + itemWidth + 2 * padding > maxWidth) {\n totalHeight += lineHeight;\n lineWidths[lineWidths.length - (i > 0 ? 0 : 1)] = 0;\n top += lineHeight;\n row++;\n }\n hitboxes[i] = {left: 0, top, row, width: itemWidth, height: itemHeight};\n lineWidths[lineWidths.length - 1] += itemWidth + padding;\n });\n return totalHeight;\n }\n _fitCols(titleHeight, fontSize, boxWidth, itemHeight) {\n const {ctx, maxHeight, options: {labels: {padding}}} = this;\n const hitboxes = this.legendHitBoxes = [];\n const columnSizes = this.columnSizes = [];\n const heightLimit = maxHeight - titleHeight;\n let totalWidth = padding;\n let currentColWidth = 0;\n let currentColHeight = 0;\n let left = 0;\n let col = 0;\n this.legendItems.forEach((legendItem, i) => {\n const itemWidth = boxWidth + (fontSize / 2) + ctx.measureText(legendItem.text).width;\n if (i > 0 && currentColHeight + itemHeight + 2 * padding > heightLimit) {\n totalWidth += currentColWidth + padding;\n columnSizes.push({width: currentColWidth, height: currentColHeight});\n left += currentColWidth + padding;\n col++;\n currentColWidth = currentColHeight = 0;\n }\n hitboxes[i] = {left, top: currentColHeight, col, width: itemWidth, height: itemHeight};\n currentColWidth = Math.max(currentColWidth, itemWidth);\n currentColHeight += itemHeight + padding;\n });\n totalWidth += currentColWidth;\n columnSizes.push({width: currentColWidth, height: currentColHeight});\n return totalWidth;\n }\n adjustHitBoxes() {\n if (!this.options.display) {\n return;\n }\n const titleHeight = this._computeTitleHeight();\n const {legendHitBoxes: hitboxes, options: {align, labels: {padding}, rtl}} = this;\n const rtlHelper = getRtlAdapter(rtl, this.left, this.width);\n if (this.isHorizontal()) {\n let row = 0;\n let left = _alignStartEnd(align, this.left + padding, this.right - this.lineWidths[row]);\n for (const hitbox of hitboxes) {\n if (row !== hitbox.row) {\n row = hitbox.row;\n left = _alignStartEnd(align, this.left + padding, this.right - this.lineWidths[row]);\n }\n hitbox.top += this.top + titleHeight + padding;\n hitbox.left = rtlHelper.leftForLtr(rtlHelper.x(left), hitbox.width);\n left += hitbox.width + padding;\n }\n } else {\n let col = 0;\n let top = _alignStartEnd(align, this.top + titleHeight + padding, this.bottom - this.columnSizes[col].height);\n for (const hitbox of hitboxes) {\n if (hitbox.col !== col) {\n col = hitbox.col;\n top = _alignStartEnd(align, this.top + titleHeight + padding, this.bottom - this.columnSizes[col].height);\n }\n hitbox.top = top;\n hitbox.left += this.left + padding;\n hitbox.left = rtlHelper.leftForLtr(rtlHelper.x(hitbox.left), hitbox.width);\n top += hitbox.height + padding;\n }\n }\n }\n isHorizontal() {\n return this.options.position === 'top' || this.options.position === 'bottom';\n }\n draw() {\n if (this.options.display) {\n const ctx = this.ctx;\n clipArea(ctx, this);\n this._draw();\n unclipArea(ctx);\n }\n }\n _draw() {\n const {options: opts, columnSizes, lineWidths, ctx} = this;\n const {align, labels: labelOpts} = opts;\n const defaultColor = defaults.color;\n const rtlHelper = getRtlAdapter(opts.rtl, this.left, this.width);\n const labelFont = toFont(labelOpts.font);\n const {color: fontColor, padding} = labelOpts;\n const fontSize = labelFont.size;\n const halfFontSize = fontSize / 2;\n let cursor;\n this.drawTitle();\n ctx.textAlign = rtlHelper.textAlign('left');\n ctx.textBaseline = 'middle';\n ctx.lineWidth = 0.5;\n ctx.font = labelFont.string;\n const {boxWidth, boxHeight, itemHeight} = getBoxSize(labelOpts, fontSize);\n const drawLegendBox = function(x, y, legendItem) {\n if (isNaN(boxWidth) || boxWidth <= 0 || isNaN(boxHeight) || boxHeight < 0) {\n return;\n }\n ctx.save();\n const lineWidth = valueOrDefault(legendItem.lineWidth, 1);\n ctx.fillStyle = valueOrDefault(legendItem.fillStyle, defaultColor);\n ctx.lineCap = valueOrDefault(legendItem.lineCap, 'butt');\n ctx.lineDashOffset = valueOrDefault(legendItem.lineDashOffset, 0);\n ctx.lineJoin = valueOrDefault(legendItem.lineJoin, 'miter');\n ctx.lineWidth = lineWidth;\n ctx.strokeStyle = valueOrDefault(legendItem.strokeStyle, defaultColor);\n ctx.setLineDash(valueOrDefault(legendItem.lineDash, []));\n if (labelOpts.usePointStyle) {\n const drawOptions = {\n radius: boxWidth * Math.SQRT2 / 2,\n pointStyle: legendItem.pointStyle,\n rotation: legendItem.rotation,\n borderWidth: lineWidth\n };\n const centerX = rtlHelper.xPlus(x, boxWidth / 2);\n const centerY = y + halfFontSize;\n drawPoint(ctx, drawOptions, centerX, centerY);\n } else {\n const yBoxTop = y + Math.max((fontSize - boxHeight) / 2, 0);\n const xBoxLeft = rtlHelper.leftForLtr(x, boxWidth);\n const borderRadius = toTRBLCorners(legendItem.borderRadius);\n ctx.beginPath();\n if (Object.values(borderRadius).some(v => v !== 0)) {\n addRoundedRectPath(ctx, {\n x: xBoxLeft,\n y: yBoxTop,\n w: boxWidth,\n h: boxHeight,\n radius: borderRadius,\n });\n } else {\n ctx.rect(xBoxLeft, yBoxTop, boxWidth, boxHeight);\n }\n ctx.fill();\n if (lineWidth !== 0) {\n ctx.stroke();\n }\n }\n ctx.restore();\n };\n const fillText = function(x, y, legendItem) {\n renderText(ctx, legendItem.text, x, y + (itemHeight / 2), labelFont, {\n strikethrough: legendItem.hidden,\n textAlign: rtlHelper.textAlign(legendItem.textAlign)\n });\n };\n const isHorizontal = this.isHorizontal();\n const titleHeight = this._computeTitleHeight();\n if (isHorizontal) {\n cursor = {\n x: _alignStartEnd(align, this.left + padding, this.right - lineWidths[0]),\n y: this.top + padding + titleHeight,\n line: 0\n };\n } else {\n cursor = {\n x: this.left + padding,\n y: _alignStartEnd(align, this.top + titleHeight + padding, this.bottom - columnSizes[0].height),\n line: 0\n };\n }\n overrideTextDirection(this.ctx, opts.textDirection);\n const lineHeight = itemHeight + padding;\n this.legendItems.forEach((legendItem, i) => {\n ctx.strokeStyle = legendItem.fontColor || fontColor;\n ctx.fillStyle = legendItem.fontColor || fontColor;\n const textWidth = ctx.measureText(legendItem.text).width;\n const textAlign = rtlHelper.textAlign(legendItem.textAlign || (legendItem.textAlign = labelOpts.textAlign));\n const width = boxWidth + halfFontSize + textWidth;\n let x = cursor.x;\n let y = cursor.y;\n rtlHelper.setWidth(this.width);\n if (isHorizontal) {\n if (i > 0 && x + width + padding > this.right) {\n y = cursor.y += lineHeight;\n cursor.line++;\n x = cursor.x = _alignStartEnd(align, this.left + padding, this.right - lineWidths[cursor.line]);\n }\n } else if (i > 0 && y + lineHeight > this.bottom) {\n x = cursor.x = x + columnSizes[cursor.line].width + padding;\n cursor.line++;\n y = cursor.y = _alignStartEnd(align, this.top + titleHeight + padding, this.bottom - columnSizes[cursor.line].height);\n }\n const realX = rtlHelper.x(x);\n drawLegendBox(realX, y, legendItem);\n x = _textX(textAlign, x + boxWidth + halfFontSize, isHorizontal ? x + width : this.right, opts.rtl);\n fillText(rtlHelper.x(x), y, legendItem);\n if (isHorizontal) {\n cursor.x += width + padding;\n } else {\n cursor.y += lineHeight;\n }\n });\n restoreTextDirection(this.ctx, opts.textDirection);\n }\n drawTitle() {\n const opts = this.options;\n const titleOpts = opts.title;\n const titleFont = toFont(titleOpts.font);\n const titlePadding = toPadding(titleOpts.padding);\n if (!titleOpts.display) {\n return;\n }\n const rtlHelper = getRtlAdapter(opts.rtl, this.left, this.width);\n const ctx = this.ctx;\n const position = titleOpts.position;\n const halfFontSize = titleFont.size / 2;\n const topPaddingPlusHalfFontSize = titlePadding.top + halfFontSize;\n let y;\n let left = this.left;\n let maxWidth = this.width;\n if (this.isHorizontal()) {\n maxWidth = Math.max(...this.lineWidths);\n y = this.top + topPaddingPlusHalfFontSize;\n left = _alignStartEnd(opts.align, left, this.right - maxWidth);\n } else {\n const maxHeight = this.columnSizes.reduce((acc, size) => Math.max(acc, size.height), 0);\n y = topPaddingPlusHalfFontSize + _alignStartEnd(opts.align, this.top, this.bottom - maxHeight - opts.labels.padding - this._computeTitleHeight());\n }\n const x = _alignStartEnd(position, left, left + maxWidth);\n ctx.textAlign = rtlHelper.textAlign(_toLeftRightCenter(position));\n ctx.textBaseline = 'middle';\n ctx.strokeStyle = titleOpts.color;\n ctx.fillStyle = titleOpts.color;\n ctx.font = titleFont.string;\n renderText(ctx, titleOpts.text, x, y, titleFont);\n }\n _computeTitleHeight() {\n const titleOpts = this.options.title;\n const titleFont = toFont(titleOpts.font);\n const titlePadding = toPadding(titleOpts.padding);\n return titleOpts.display ? titleFont.lineHeight + titlePadding.height : 0;\n }\n _getLegendItemAt(x, y) {\n let i, hitBox, lh;\n if (x >= this.left && x <= this.right && y >= this.top && y <= this.bottom) {\n lh = this.legendHitBoxes;\n for (i = 0; i < lh.length; ++i) {\n hitBox = lh[i];\n if (x >= hitBox.left && x <= hitBox.left + hitBox.width && y >= hitBox.top && y <= hitBox.top + hitBox.height) {\n return this.legendItems[i];\n }\n }\n }\n return null;\n }\n handleEvent(e) {\n const opts = this.options;\n if (!isListened(e.type, opts)) {\n return;\n }\n const hoveredItem = this._getLegendItemAt(e.x, e.y);\n if (e.type === 'mousemove') {\n const previous = this._hoveredItem;\n const sameItem = itemsEqual(previous, hoveredItem);\n if (previous && !sameItem) {\n callback(opts.onLeave, [e, previous, this], this);\n }\n this._hoveredItem = hoveredItem;\n if (hoveredItem && !sameItem) {\n callback(opts.onHover, [e, hoveredItem, this], this);\n }\n } else if (hoveredItem) {\n callback(opts.onClick, [e, hoveredItem, this], this);\n }\n }\n}\nfunction isListened(type, opts) {\n if (type === 'mousemove' && (opts.onHover || opts.onLeave)) {\n return true;\n }\n if (opts.onClick && (type === 'click' || type === 'mouseup')) {\n return true;\n }\n return false;\n}\nvar plugin_legend = {\n id: 'legend',\n _element: Legend,\n start(chart, _args, options) {\n const legend = chart.legend = new Legend({ctx: chart.ctx, options, chart});\n layouts.configure(chart, legend, options);\n layouts.addBox(chart, legend);\n },\n stop(chart) {\n layouts.removeBox(chart, chart.legend);\n delete chart.legend;\n },\n beforeUpdate(chart, _args, options) {\n const legend = chart.legend;\n layouts.configure(chart, legend, options);\n legend.options = options;\n },\n afterUpdate(chart) {\n const legend = chart.legend;\n legend.buildLabels();\n legend.adjustHitBoxes();\n },\n afterEvent(chart, args) {\n if (!args.replay) {\n chart.legend.handleEvent(args.event);\n }\n },\n defaults: {\n display: true,\n position: 'top',\n align: 'center',\n fullSize: true,\n reverse: false,\n weight: 1000,\n onClick(e, legendItem, legend) {\n const index = legendItem.datasetIndex;\n const ci = legend.chart;\n if (ci.isDatasetVisible(index)) {\n ci.hide(index);\n legendItem.hidden = true;\n } else {\n ci.show(index);\n legendItem.hidden = false;\n }\n },\n onHover: null,\n onLeave: null,\n labels: {\n color: (ctx) => ctx.chart.options.color,\n boxWidth: 40,\n padding: 10,\n generateLabels(chart) {\n const datasets = chart.data.datasets;\n const {labels: {usePointStyle, pointStyle, textAlign, color}} = chart.legend.options;\n return chart._getSortedDatasetMetas().map((meta) => {\n const style = meta.controller.getStyle(usePointStyle ? 0 : undefined);\n const borderWidth = toPadding(style.borderWidth);\n return {\n text: datasets[meta.index].label,\n fillStyle: style.backgroundColor,\n fontColor: color,\n hidden: !meta.visible,\n lineCap: style.borderCapStyle,\n lineDash: style.borderDash,\n lineDashOffset: style.borderDashOffset,\n lineJoin: style.borderJoinStyle,\n lineWidth: (borderWidth.width + borderWidth.height) / 4,\n strokeStyle: style.borderColor,\n pointStyle: pointStyle || style.pointStyle,\n rotation: style.rotation,\n textAlign: textAlign || style.textAlign,\n borderRadius: 0,\n datasetIndex: meta.index\n };\n }, this);\n }\n },\n title: {\n color: (ctx) => ctx.chart.options.color,\n display: false,\n position: 'center',\n text: '',\n }\n },\n descriptors: {\n _scriptable: (name) => !name.startsWith('on'),\n labels: {\n _scriptable: (name) => !['generateLabels', 'filter', 'sort'].includes(name),\n }\n },\n};\n\nclass Title extends Element {\n constructor(config) {\n super();\n this.chart = config.chart;\n this.options = config.options;\n this.ctx = config.ctx;\n this._padding = undefined;\n this.top = undefined;\n this.bottom = undefined;\n this.left = undefined;\n this.right = undefined;\n this.width = undefined;\n this.height = undefined;\n this.position = undefined;\n this.weight = undefined;\n this.fullSize = undefined;\n }\n update(maxWidth, maxHeight) {\n const opts = this.options;\n this.left = 0;\n this.top = 0;\n if (!opts.display) {\n this.width = this.height = this.right = this.bottom = 0;\n return;\n }\n this.width = this.right = maxWidth;\n this.height = this.bottom = maxHeight;\n const lineCount = isArray(opts.text) ? opts.text.length : 1;\n this._padding = toPadding(opts.padding);\n const textSize = lineCount * toFont(opts.font).lineHeight + this._padding.height;\n if (this.isHorizontal()) {\n this.height = textSize;\n } else {\n this.width = textSize;\n }\n }\n isHorizontal() {\n const pos = this.options.position;\n return pos === 'top' || pos === 'bottom';\n }\n _drawArgs(offset) {\n const {top, left, bottom, right, options} = this;\n const align = options.align;\n let rotation = 0;\n let maxWidth, titleX, titleY;\n if (this.isHorizontal()) {\n titleX = _alignStartEnd(align, left, right);\n titleY = top + offset;\n maxWidth = right - left;\n } else {\n if (options.position === 'left') {\n titleX = left + offset;\n titleY = _alignStartEnd(align, bottom, top);\n rotation = PI * -0.5;\n } else {\n titleX = right - offset;\n titleY = _alignStartEnd(align, top, bottom);\n rotation = PI * 0.5;\n }\n maxWidth = bottom - top;\n }\n return {titleX, titleY, maxWidth, rotation};\n }\n draw() {\n const ctx = this.ctx;\n const opts = this.options;\n if (!opts.display) {\n return;\n }\n const fontOpts = toFont(opts.font);\n const lineHeight = fontOpts.lineHeight;\n const offset = lineHeight / 2 + this._padding.top;\n const {titleX, titleY, maxWidth, rotation} = this._drawArgs(offset);\n renderText(ctx, opts.text, 0, 0, fontOpts, {\n color: opts.color,\n maxWidth,\n rotation,\n textAlign: _toLeftRightCenter(opts.align),\n textBaseline: 'middle',\n translation: [titleX, titleY],\n });\n }\n}\nfunction createTitle(chart, titleOpts) {\n const title = new Title({\n ctx: chart.ctx,\n options: titleOpts,\n chart\n });\n layouts.configure(chart, title, titleOpts);\n layouts.addBox(chart, title);\n chart.titleBlock = title;\n}\nvar plugin_title = {\n id: 'title',\n _element: Title,\n start(chart, _args, options) {\n createTitle(chart, options);\n },\n stop(chart) {\n const titleBlock = chart.titleBlock;\n layouts.removeBox(chart, titleBlock);\n delete chart.titleBlock;\n },\n beforeUpdate(chart, _args, options) {\n const title = chart.titleBlock;\n layouts.configure(chart, title, options);\n title.options = options;\n },\n defaults: {\n align: 'center',\n display: false,\n font: {\n weight: 'bold',\n },\n fullSize: true,\n padding: 10,\n position: 'top',\n text: '',\n weight: 2000\n },\n defaultRoutes: {\n color: 'color'\n },\n descriptors: {\n _scriptable: true,\n _indexable: false,\n },\n};\n\nconst map = new WeakMap();\nvar plugin_subtitle = {\n id: 'subtitle',\n start(chart, _args, options) {\n const title = new Title({\n ctx: chart.ctx,\n options,\n chart\n });\n layouts.configure(chart, title, options);\n layouts.addBox(chart, title);\n map.set(chart, title);\n },\n stop(chart) {\n layouts.removeBox(chart, map.get(chart));\n map.delete(chart);\n },\n beforeUpdate(chart, _args, options) {\n const title = map.get(chart);\n layouts.configure(chart, title, options);\n title.options = options;\n },\n defaults: {\n align: 'center',\n display: false,\n font: {\n weight: 'normal',\n },\n fullSize: true,\n padding: 0,\n position: 'top',\n text: '',\n weight: 1500\n },\n defaultRoutes: {\n color: 'color'\n },\n descriptors: {\n _scriptable: true,\n _indexable: false,\n },\n};\n\nconst positioners = {\n average(items) {\n if (!items.length) {\n return false;\n }\n let i, len;\n let x = 0;\n let y = 0;\n let count = 0;\n for (i = 0, len = items.length; i < len; ++i) {\n const el = items[i].element;\n if (el && el.hasValue()) {\n const pos = el.tooltipPosition();\n x += pos.x;\n y += pos.y;\n ++count;\n }\n }\n return {\n x: x / count,\n y: y / count\n };\n },\n nearest(items, eventPosition) {\n if (!items.length) {\n return false;\n }\n let x = eventPosition.x;\n let y = eventPosition.y;\n let minDistance = Number.POSITIVE_INFINITY;\n let i, len, nearestElement;\n for (i = 0, len = items.length; i < len; ++i) {\n const el = items[i].element;\n if (el && el.hasValue()) {\n const center = el.getCenterPoint();\n const d = distanceBetweenPoints(eventPosition, center);\n if (d < minDistance) {\n minDistance = d;\n nearestElement = el;\n }\n }\n }\n if (nearestElement) {\n const tp = nearestElement.tooltipPosition();\n x = tp.x;\n y = tp.y;\n }\n return {\n x,\n y\n };\n }\n};\nfunction pushOrConcat(base, toPush) {\n if (toPush) {\n if (isArray(toPush)) {\n Array.prototype.push.apply(base, toPush);\n } else {\n base.push(toPush);\n }\n }\n return base;\n}\nfunction splitNewlines(str) {\n if ((typeof str === 'string' || str instanceof String) && str.indexOf('\\n') > -1) {\n return str.split('\\n');\n }\n return str;\n}\nfunction createTooltipItem(chart, item) {\n const {element, datasetIndex, index} = item;\n const controller = chart.getDatasetMeta(datasetIndex).controller;\n const {label, value} = controller.getLabelAndValue(index);\n return {\n chart,\n label,\n parsed: controller.getParsed(index),\n raw: chart.data.datasets[datasetIndex].data[index],\n formattedValue: value,\n dataset: controller.getDataset(),\n dataIndex: index,\n datasetIndex,\n element\n };\n}\nfunction getTooltipSize(tooltip, options) {\n const ctx = tooltip._chart.ctx;\n const {body, footer, title} = tooltip;\n const {boxWidth, boxHeight} = options;\n const bodyFont = toFont(options.bodyFont);\n const titleFont = toFont(options.titleFont);\n const footerFont = toFont(options.footerFont);\n const titleLineCount = title.length;\n const footerLineCount = footer.length;\n const bodyLineItemCount = body.length;\n const padding = toPadding(options.padding);\n let height = padding.height;\n let width = 0;\n let combinedBodyLength = body.reduce((count, bodyItem) => count + bodyItem.before.length + bodyItem.lines.length + bodyItem.after.length, 0);\n combinedBodyLength += tooltip.beforeBody.length + tooltip.afterBody.length;\n if (titleLineCount) {\n height += titleLineCount * titleFont.lineHeight\n\t\t\t+ (titleLineCount - 1) * options.titleSpacing\n\t\t\t+ options.titleMarginBottom;\n }\n if (combinedBodyLength) {\n const bodyLineHeight = options.displayColors ? Math.max(boxHeight, bodyFont.lineHeight) : bodyFont.lineHeight;\n height += bodyLineItemCount * bodyLineHeight\n\t\t\t+ (combinedBodyLength - bodyLineItemCount) * bodyFont.lineHeight\n\t\t\t+ (combinedBodyLength - 1) * options.bodySpacing;\n }\n if (footerLineCount) {\n height += options.footerMarginTop\n\t\t\t+ footerLineCount * footerFont.lineHeight\n\t\t\t+ (footerLineCount - 1) * options.footerSpacing;\n }\n let widthPadding = 0;\n const maxLineWidth = function(line) {\n width = Math.max(width, ctx.measureText(line).width + widthPadding);\n };\n ctx.save();\n ctx.font = titleFont.string;\n each(tooltip.title, maxLineWidth);\n ctx.font = bodyFont.string;\n each(tooltip.beforeBody.concat(tooltip.afterBody), maxLineWidth);\n widthPadding = options.displayColors ? (boxWidth + 2 + options.boxPadding) : 0;\n each(body, (bodyItem) => {\n each(bodyItem.before, maxLineWidth);\n each(bodyItem.lines, maxLineWidth);\n each(bodyItem.after, maxLineWidth);\n });\n widthPadding = 0;\n ctx.font = footerFont.string;\n each(tooltip.footer, maxLineWidth);\n ctx.restore();\n width += padding.width;\n return {width, height};\n}\nfunction determineYAlign(chart, size) {\n const {y, height} = size;\n if (y < height / 2) {\n return 'top';\n } else if (y > (chart.height - height / 2)) {\n return 'bottom';\n }\n return 'center';\n}\nfunction doesNotFitWithAlign(xAlign, chart, options, size) {\n const {x, width} = size;\n const caret = options.caretSize + options.caretPadding;\n if (xAlign === 'left' && x + width + caret > chart.width) {\n return true;\n }\n if (xAlign === 'right' && x - width - caret < 0) {\n return true;\n }\n}\nfunction determineXAlign(chart, options, size, yAlign) {\n const {x, width} = size;\n const {width: chartWidth, chartArea: {left, right}} = chart;\n let xAlign = 'center';\n if (yAlign === 'center') {\n xAlign = x <= (left + right) / 2 ? 'left' : 'right';\n } else if (x <= width / 2) {\n xAlign = 'left';\n } else if (x >= chartWidth - width / 2) {\n xAlign = 'right';\n }\n if (doesNotFitWithAlign(xAlign, chart, options, size)) {\n xAlign = 'center';\n }\n return xAlign;\n}\nfunction determineAlignment(chart, options, size) {\n const yAlign = options.yAlign || determineYAlign(chart, size);\n return {\n xAlign: options.xAlign || determineXAlign(chart, options, size, yAlign),\n yAlign\n };\n}\nfunction alignX(size, xAlign) {\n let {x, width} = size;\n if (xAlign === 'right') {\n x -= width;\n } else if (xAlign === 'center') {\n x -= (width / 2);\n }\n return x;\n}\nfunction alignY(size, yAlign, paddingAndSize) {\n let {y, height} = size;\n if (yAlign === 'top') {\n y += paddingAndSize;\n } else if (yAlign === 'bottom') {\n y -= height + paddingAndSize;\n } else {\n y -= (height / 2);\n }\n return y;\n}\nfunction getBackgroundPoint(options, size, alignment, chart) {\n const {caretSize, caretPadding, cornerRadius} = options;\n const {xAlign, yAlign} = alignment;\n const paddingAndSize = caretSize + caretPadding;\n const {topLeft, topRight, bottomLeft, bottomRight} = toTRBLCorners(cornerRadius);\n let x = alignX(size, xAlign);\n const y = alignY(size, yAlign, paddingAndSize);\n if (yAlign === 'center') {\n if (xAlign === 'left') {\n x += paddingAndSize;\n } else if (xAlign === 'right') {\n x -= paddingAndSize;\n }\n } else if (xAlign === 'left') {\n x -= Math.max(topLeft, bottomLeft) + caretPadding;\n } else if (xAlign === 'right') {\n x += Math.max(topRight, bottomRight) + caretPadding;\n }\n return {\n x: _limitValue(x, 0, chart.width - size.width),\n y: _limitValue(y, 0, chart.height - size.height)\n };\n}\nfunction getAlignedX(tooltip, align, options) {\n const padding = toPadding(options.padding);\n return align === 'center'\n ? tooltip.x + tooltip.width / 2\n : align === 'right'\n ? tooltip.x + tooltip.width - padding.right\n : tooltip.x + padding.left;\n}\nfunction getBeforeAfterBodyLines(callback) {\n return pushOrConcat([], splitNewlines(callback));\n}\nfunction createTooltipContext(parent, tooltip, tooltipItems) {\n return createContext(parent, {\n tooltip,\n tooltipItems,\n type: 'tooltip'\n });\n}\nfunction overrideCallbacks(callbacks, context) {\n const override = context && context.dataset && context.dataset.tooltip && context.dataset.tooltip.callbacks;\n return override ? callbacks.override(override) : callbacks;\n}\nclass Tooltip extends Element {\n constructor(config) {\n super();\n this.opacity = 0;\n this._active = [];\n this._chart = config._chart;\n this._eventPosition = undefined;\n this._size = undefined;\n this._cachedAnimations = undefined;\n this._tooltipItems = [];\n this.$animations = undefined;\n this.$context = undefined;\n this.options = config.options;\n this.dataPoints = undefined;\n this.title = undefined;\n this.beforeBody = undefined;\n this.body = undefined;\n this.afterBody = undefined;\n this.footer = undefined;\n this.xAlign = undefined;\n this.yAlign = undefined;\n this.x = undefined;\n this.y = undefined;\n this.height = undefined;\n this.width = undefined;\n this.caretX = undefined;\n this.caretY = undefined;\n this.labelColors = undefined;\n this.labelPointStyles = undefined;\n this.labelTextColors = undefined;\n }\n initialize(options) {\n this.options = options;\n this._cachedAnimations = undefined;\n this.$context = undefined;\n }\n _resolveAnimations() {\n const cached = this._cachedAnimations;\n if (cached) {\n return cached;\n }\n const chart = this._chart;\n const options = this.options.setContext(this.getContext());\n const opts = options.enabled && chart.options.animation && options.animations;\n const animations = new Animations(this._chart, opts);\n if (opts._cacheable) {\n this._cachedAnimations = Object.freeze(animations);\n }\n return animations;\n }\n getContext() {\n return this.$context ||\n\t\t\t(this.$context = createTooltipContext(this._chart.getContext(), this, this._tooltipItems));\n }\n getTitle(context, options) {\n const {callbacks} = options;\n const beforeTitle = callbacks.beforeTitle.apply(this, [context]);\n const title = callbacks.title.apply(this, [context]);\n const afterTitle = callbacks.afterTitle.apply(this, [context]);\n let lines = [];\n lines = pushOrConcat(lines, splitNewlines(beforeTitle));\n lines = pushOrConcat(lines, splitNewlines(title));\n lines = pushOrConcat(lines, splitNewlines(afterTitle));\n return lines;\n }\n getBeforeBody(tooltipItems, options) {\n return getBeforeAfterBodyLines(options.callbacks.beforeBody.apply(this, [tooltipItems]));\n }\n getBody(tooltipItems, options) {\n const {callbacks} = options;\n const bodyItems = [];\n each(tooltipItems, (context) => {\n const bodyItem = {\n before: [],\n lines: [],\n after: []\n };\n const scoped = overrideCallbacks(callbacks, context);\n pushOrConcat(bodyItem.before, splitNewlines(scoped.beforeLabel.call(this, context)));\n pushOrConcat(bodyItem.lines, scoped.label.call(this, context));\n pushOrConcat(bodyItem.after, splitNewlines(scoped.afterLabel.call(this, context)));\n bodyItems.push(bodyItem);\n });\n return bodyItems;\n }\n getAfterBody(tooltipItems, options) {\n return getBeforeAfterBodyLines(options.callbacks.afterBody.apply(this, [tooltipItems]));\n }\n getFooter(tooltipItems, options) {\n const {callbacks} = options;\n const beforeFooter = callbacks.beforeFooter.apply(this, [tooltipItems]);\n const footer = callbacks.footer.apply(this, [tooltipItems]);\n const afterFooter = callbacks.afterFooter.apply(this, [tooltipItems]);\n let lines = [];\n lines = pushOrConcat(lines, splitNewlines(beforeFooter));\n lines = pushOrConcat(lines, splitNewlines(footer));\n lines = pushOrConcat(lines, splitNewlines(afterFooter));\n return lines;\n }\n _createItems(options) {\n const active = this._active;\n const data = this._chart.data;\n const labelColors = [];\n const labelPointStyles = [];\n const labelTextColors = [];\n let tooltipItems = [];\n let i, len;\n for (i = 0, len = active.length; i < len; ++i) {\n tooltipItems.push(createTooltipItem(this._chart, active[i]));\n }\n if (options.filter) {\n tooltipItems = tooltipItems.filter((element, index, array) => options.filter(element, index, array, data));\n }\n if (options.itemSort) {\n tooltipItems = tooltipItems.sort((a, b) => options.itemSort(a, b, data));\n }\n each(tooltipItems, (context) => {\n const scoped = overrideCallbacks(options.callbacks, context);\n labelColors.push(scoped.labelColor.call(this, context));\n labelPointStyles.push(scoped.labelPointStyle.call(this, context));\n labelTextColors.push(scoped.labelTextColor.call(this, context));\n });\n this.labelColors = labelColors;\n this.labelPointStyles = labelPointStyles;\n this.labelTextColors = labelTextColors;\n this.dataPoints = tooltipItems;\n return tooltipItems;\n }\n update(changed, replay) {\n const options = this.options.setContext(this.getContext());\n const active = this._active;\n let properties;\n let tooltipItems = [];\n if (!active.length) {\n if (this.opacity !== 0) {\n properties = {\n opacity: 0\n };\n }\n } else {\n const position = positioners[options.position].call(this, active, this._eventPosition);\n tooltipItems = this._createItems(options);\n this.title = this.getTitle(tooltipItems, options);\n this.beforeBody = this.getBeforeBody(tooltipItems, options);\n this.body = this.getBody(tooltipItems, options);\n this.afterBody = this.getAfterBody(tooltipItems, options);\n this.footer = this.getFooter(tooltipItems, options);\n const size = this._size = getTooltipSize(this, options);\n const positionAndSize = Object.assign({}, position, size);\n const alignment = determineAlignment(this._chart, options, positionAndSize);\n const backgroundPoint = getBackgroundPoint(options, positionAndSize, alignment, this._chart);\n this.xAlign = alignment.xAlign;\n this.yAlign = alignment.yAlign;\n properties = {\n opacity: 1,\n x: backgroundPoint.x,\n y: backgroundPoint.y,\n width: size.width,\n height: size.height,\n caretX: position.x,\n caretY: position.y\n };\n }\n this._tooltipItems = tooltipItems;\n this.$context = undefined;\n if (properties) {\n this._resolveAnimations().update(this, properties);\n }\n if (changed && options.external) {\n options.external.call(this, {chart: this._chart, tooltip: this, replay});\n }\n }\n drawCaret(tooltipPoint, ctx, size, options) {\n const caretPosition = this.getCaretPosition(tooltipPoint, size, options);\n ctx.lineTo(caretPosition.x1, caretPosition.y1);\n ctx.lineTo(caretPosition.x2, caretPosition.y2);\n ctx.lineTo(caretPosition.x3, caretPosition.y3);\n }\n getCaretPosition(tooltipPoint, size, options) {\n const {xAlign, yAlign} = this;\n const {caretSize, cornerRadius} = options;\n const {topLeft, topRight, bottomLeft, bottomRight} = toTRBLCorners(cornerRadius);\n const {x: ptX, y: ptY} = tooltipPoint;\n const {width, height} = size;\n let x1, x2, x3, y1, y2, y3;\n if (yAlign === 'center') {\n y2 = ptY + (height / 2);\n if (xAlign === 'left') {\n x1 = ptX;\n x2 = x1 - caretSize;\n y1 = y2 + caretSize;\n y3 = y2 - caretSize;\n } else {\n x1 = ptX + width;\n x2 = x1 + caretSize;\n y1 = y2 - caretSize;\n y3 = y2 + caretSize;\n }\n x3 = x1;\n } else {\n if (xAlign === 'left') {\n x2 = ptX + Math.max(topLeft, bottomLeft) + (caretSize);\n } else if (xAlign === 'right') {\n x2 = ptX + width - Math.max(topRight, bottomRight) - caretSize;\n } else {\n x2 = this.caretX;\n }\n if (yAlign === 'top') {\n y1 = ptY;\n y2 = y1 - caretSize;\n x1 = x2 - caretSize;\n x3 = x2 + caretSize;\n } else {\n y1 = ptY + height;\n y2 = y1 + caretSize;\n x1 = x2 + caretSize;\n x3 = x2 - caretSize;\n }\n y3 = y1;\n }\n return {x1, x2, x3, y1, y2, y3};\n }\n drawTitle(pt, ctx, options) {\n const title = this.title;\n const length = title.length;\n let titleFont, titleSpacing, i;\n if (length) {\n const rtlHelper = getRtlAdapter(options.rtl, this.x, this.width);\n pt.x = getAlignedX(this, options.titleAlign, options);\n ctx.textAlign = rtlHelper.textAlign(options.titleAlign);\n ctx.textBaseline = 'middle';\n titleFont = toFont(options.titleFont);\n titleSpacing = options.titleSpacing;\n ctx.fillStyle = options.titleColor;\n ctx.font = titleFont.string;\n for (i = 0; i < length; ++i) {\n ctx.fillText(title[i], rtlHelper.x(pt.x), pt.y + titleFont.lineHeight / 2);\n pt.y += titleFont.lineHeight + titleSpacing;\n if (i + 1 === length) {\n pt.y += options.titleMarginBottom - titleSpacing;\n }\n }\n }\n }\n _drawColorBox(ctx, pt, i, rtlHelper, options) {\n const labelColors = this.labelColors[i];\n const labelPointStyle = this.labelPointStyles[i];\n const {boxHeight, boxWidth, boxPadding} = options;\n const bodyFont = toFont(options.bodyFont);\n const colorX = getAlignedX(this, 'left', options);\n const rtlColorX = rtlHelper.x(colorX);\n const yOffSet = boxHeight < bodyFont.lineHeight ? (bodyFont.lineHeight - boxHeight) / 2 : 0;\n const colorY = pt.y + yOffSet;\n if (options.usePointStyle) {\n const drawOptions = {\n radius: Math.min(boxWidth, boxHeight) / 2,\n pointStyle: labelPointStyle.pointStyle,\n rotation: labelPointStyle.rotation,\n borderWidth: 1\n };\n const centerX = rtlHelper.leftForLtr(rtlColorX, boxWidth) + boxWidth / 2;\n const centerY = colorY + boxHeight / 2;\n ctx.strokeStyle = options.multiKeyBackground;\n ctx.fillStyle = options.multiKeyBackground;\n drawPoint(ctx, drawOptions, centerX, centerY);\n ctx.strokeStyle = labelColors.borderColor;\n ctx.fillStyle = labelColors.backgroundColor;\n drawPoint(ctx, drawOptions, centerX, centerY);\n } else {\n ctx.lineWidth = labelColors.borderWidth || 1;\n ctx.strokeStyle = labelColors.borderColor;\n ctx.setLineDash(labelColors.borderDash || []);\n ctx.lineDashOffset = labelColors.borderDashOffset || 0;\n const outerX = rtlHelper.leftForLtr(rtlColorX, boxWidth - boxPadding);\n const innerX = rtlHelper.leftForLtr(rtlHelper.xPlus(rtlColorX, 1), boxWidth - boxPadding - 2);\n const borderRadius = toTRBLCorners(labelColors.borderRadius);\n if (Object.values(borderRadius).some(v => v !== 0)) {\n ctx.beginPath();\n ctx.fillStyle = options.multiKeyBackground;\n addRoundedRectPath(ctx, {\n x: outerX,\n y: colorY,\n w: boxWidth,\n h: boxHeight,\n radius: borderRadius,\n });\n ctx.fill();\n ctx.stroke();\n ctx.fillStyle = labelColors.backgroundColor;\n ctx.beginPath();\n addRoundedRectPath(ctx, {\n x: innerX,\n y: colorY + 1,\n w: boxWidth - 2,\n h: boxHeight - 2,\n radius: borderRadius,\n });\n ctx.fill();\n } else {\n ctx.fillStyle = options.multiKeyBackground;\n ctx.fillRect(outerX, colorY, boxWidth, boxHeight);\n ctx.strokeRect(outerX, colorY, boxWidth, boxHeight);\n ctx.fillStyle = labelColors.backgroundColor;\n ctx.fillRect(innerX, colorY + 1, boxWidth - 2, boxHeight - 2);\n }\n }\n ctx.fillStyle = this.labelTextColors[i];\n }\n drawBody(pt, ctx, options) {\n const {body} = this;\n const {bodySpacing, bodyAlign, displayColors, boxHeight, boxWidth, boxPadding} = options;\n const bodyFont = toFont(options.bodyFont);\n let bodyLineHeight = bodyFont.lineHeight;\n let xLinePadding = 0;\n const rtlHelper = getRtlAdapter(options.rtl, this.x, this.width);\n const fillLineOfText = function(line) {\n ctx.fillText(line, rtlHelper.x(pt.x + xLinePadding), pt.y + bodyLineHeight / 2);\n pt.y += bodyLineHeight + bodySpacing;\n };\n const bodyAlignForCalculation = rtlHelper.textAlign(bodyAlign);\n let bodyItem, textColor, lines, i, j, ilen, jlen;\n ctx.textAlign = bodyAlign;\n ctx.textBaseline = 'middle';\n ctx.font = bodyFont.string;\n pt.x = getAlignedX(this, bodyAlignForCalculation, options);\n ctx.fillStyle = options.bodyColor;\n each(this.beforeBody, fillLineOfText);\n xLinePadding = displayColors && bodyAlignForCalculation !== 'right'\n ? bodyAlign === 'center' ? (boxWidth / 2 + boxPadding) : (boxWidth + 2 + boxPadding)\n : 0;\n for (i = 0, ilen = body.length; i < ilen; ++i) {\n bodyItem = body[i];\n textColor = this.labelTextColors[i];\n ctx.fillStyle = textColor;\n each(bodyItem.before, fillLineOfText);\n lines = bodyItem.lines;\n if (displayColors && lines.length) {\n this._drawColorBox(ctx, pt, i, rtlHelper, options);\n bodyLineHeight = Math.max(bodyFont.lineHeight, boxHeight);\n }\n for (j = 0, jlen = lines.length; j < jlen; ++j) {\n fillLineOfText(lines[j]);\n bodyLineHeight = bodyFont.lineHeight;\n }\n each(bodyItem.after, fillLineOfText);\n }\n xLinePadding = 0;\n bodyLineHeight = bodyFont.lineHeight;\n each(this.afterBody, fillLineOfText);\n pt.y -= bodySpacing;\n }\n drawFooter(pt, ctx, options) {\n const footer = this.footer;\n const length = footer.length;\n let footerFont, i;\n if (length) {\n const rtlHelper = getRtlAdapter(options.rtl, this.x, this.width);\n pt.x = getAlignedX(this, options.footerAlign, options);\n pt.y += options.footerMarginTop;\n ctx.textAlign = rtlHelper.textAlign(options.footerAlign);\n ctx.textBaseline = 'middle';\n footerFont = toFont(options.footerFont);\n ctx.fillStyle = options.footerColor;\n ctx.font = footerFont.string;\n for (i = 0; i < length; ++i) {\n ctx.fillText(footer[i], rtlHelper.x(pt.x), pt.y + footerFont.lineHeight / 2);\n pt.y += footerFont.lineHeight + options.footerSpacing;\n }\n }\n }\n drawBackground(pt, ctx, tooltipSize, options) {\n const {xAlign, yAlign} = this;\n const {x, y} = pt;\n const {width, height} = tooltipSize;\n const {topLeft, topRight, bottomLeft, bottomRight} = toTRBLCorners(options.cornerRadius);\n ctx.fillStyle = options.backgroundColor;\n ctx.strokeStyle = options.borderColor;\n ctx.lineWidth = options.borderWidth;\n ctx.beginPath();\n ctx.moveTo(x + topLeft, y);\n if (yAlign === 'top') {\n this.drawCaret(pt, ctx, tooltipSize, options);\n }\n ctx.lineTo(x + width - topRight, y);\n ctx.quadraticCurveTo(x + width, y, x + width, y + topRight);\n if (yAlign === 'center' && xAlign === 'right') {\n this.drawCaret(pt, ctx, tooltipSize, options);\n }\n ctx.lineTo(x + width, y + height - bottomRight);\n ctx.quadraticCurveTo(x + width, y + height, x + width - bottomRight, y + height);\n if (yAlign === 'bottom') {\n this.drawCaret(pt, ctx, tooltipSize, options);\n }\n ctx.lineTo(x + bottomLeft, y + height);\n ctx.quadraticCurveTo(x, y + height, x, y + height - bottomLeft);\n if (yAlign === 'center' && xAlign === 'left') {\n this.drawCaret(pt, ctx, tooltipSize, options);\n }\n ctx.lineTo(x, y + topLeft);\n ctx.quadraticCurveTo(x, y, x + topLeft, y);\n ctx.closePath();\n ctx.fill();\n if (options.borderWidth > 0) {\n ctx.stroke();\n }\n }\n _updateAnimationTarget(options) {\n const chart = this._chart;\n const anims = this.$animations;\n const animX = anims && anims.x;\n const animY = anims && anims.y;\n if (animX || animY) {\n const position = positioners[options.position].call(this, this._active, this._eventPosition);\n if (!position) {\n return;\n }\n const size = this._size = getTooltipSize(this, options);\n const positionAndSize = Object.assign({}, position, this._size);\n const alignment = determineAlignment(chart, options, positionAndSize);\n const point = getBackgroundPoint(options, positionAndSize, alignment, chart);\n if (animX._to !== point.x || animY._to !== point.y) {\n this.xAlign = alignment.xAlign;\n this.yAlign = alignment.yAlign;\n this.width = size.width;\n this.height = size.height;\n this.caretX = position.x;\n this.caretY = position.y;\n this._resolveAnimations().update(this, point);\n }\n }\n }\n draw(ctx) {\n const options = this.options.setContext(this.getContext());\n let opacity = this.opacity;\n if (!opacity) {\n return;\n }\n this._updateAnimationTarget(options);\n const tooltipSize = {\n width: this.width,\n height: this.height\n };\n const pt = {\n x: this.x,\n y: this.y\n };\n opacity = Math.abs(opacity) < 1e-3 ? 0 : opacity;\n const padding = toPadding(options.padding);\n const hasTooltipContent = this.title.length || this.beforeBody.length || this.body.length || this.afterBody.length || this.footer.length;\n if (options.enabled && hasTooltipContent) {\n ctx.save();\n ctx.globalAlpha = opacity;\n this.drawBackground(pt, ctx, tooltipSize, options);\n overrideTextDirection(ctx, options.textDirection);\n pt.y += padding.top;\n this.drawTitle(pt, ctx, options);\n this.drawBody(pt, ctx, options);\n this.drawFooter(pt, ctx, options);\n restoreTextDirection(ctx, options.textDirection);\n ctx.restore();\n }\n }\n getActiveElements() {\n return this._active || [];\n }\n setActiveElements(activeElements, eventPosition) {\n const lastActive = this._active;\n const active = activeElements.map(({datasetIndex, index}) => {\n const meta = this._chart.getDatasetMeta(datasetIndex);\n if (!meta) {\n throw new Error('Cannot find a dataset at index ' + datasetIndex);\n }\n return {\n datasetIndex,\n element: meta.data[index],\n index,\n };\n });\n const changed = !_elementsEqual(lastActive, active);\n const positionChanged = this._positionChanged(active, eventPosition);\n if (changed || positionChanged) {\n this._active = active;\n this._eventPosition = eventPosition;\n this.update(true);\n }\n }\n handleEvent(e, replay) {\n const options = this.options;\n const lastActive = this._active || [];\n let changed = false;\n let active = [];\n if (e.type !== 'mouseout') {\n active = this._chart.getElementsAtEventForMode(e, options.mode, options, replay);\n if (options.reverse) {\n active.reverse();\n }\n }\n const positionChanged = this._positionChanged(active, e);\n changed = replay || !_elementsEqual(active, lastActive) || positionChanged;\n if (changed) {\n this._active = active;\n if (options.enabled || options.external) {\n this._eventPosition = {\n x: e.x,\n y: e.y\n };\n this.update(true, replay);\n }\n }\n return changed;\n }\n _positionChanged(active, e) {\n const {caretX, caretY, options} = this;\n const position = positioners[options.position].call(this, active, e);\n return position !== false && (caretX !== position.x || caretY !== position.y);\n }\n}\nTooltip.positioners = positioners;\nvar plugin_tooltip = {\n id: 'tooltip',\n _element: Tooltip,\n positioners,\n afterInit(chart, _args, options) {\n if (options) {\n chart.tooltip = new Tooltip({_chart: chart, options});\n }\n },\n beforeUpdate(chart, _args, options) {\n if (chart.tooltip) {\n chart.tooltip.initialize(options);\n }\n },\n reset(chart, _args, options) {\n if (chart.tooltip) {\n chart.tooltip.initialize(options);\n }\n },\n afterDraw(chart) {\n const tooltip = chart.tooltip;\n const args = {\n tooltip\n };\n if (chart.notifyPlugins('beforeTooltipDraw', args) === false) {\n return;\n }\n if (tooltip) {\n tooltip.draw(chart.ctx);\n }\n chart.notifyPlugins('afterTooltipDraw', args);\n },\n afterEvent(chart, args) {\n if (chart.tooltip) {\n const useFinalPosition = args.replay;\n if (chart.tooltip.handleEvent(args.event, useFinalPosition)) {\n args.changed = true;\n }\n }\n },\n defaults: {\n enabled: true,\n external: null,\n position: 'average',\n backgroundColor: 'rgba(0,0,0,0.8)',\n titleColor: '#fff',\n titleFont: {\n weight: 'bold',\n },\n titleSpacing: 2,\n titleMarginBottom: 6,\n titleAlign: 'left',\n bodyColor: '#fff',\n bodySpacing: 2,\n bodyFont: {\n },\n bodyAlign: 'left',\n footerColor: '#fff',\n footerSpacing: 2,\n footerMarginTop: 6,\n footerFont: {\n weight: 'bold',\n },\n footerAlign: 'left',\n padding: 6,\n caretPadding: 2,\n caretSize: 5,\n cornerRadius: 6,\n boxHeight: (ctx, opts) => opts.bodyFont.size,\n boxWidth: (ctx, opts) => opts.bodyFont.size,\n multiKeyBackground: '#fff',\n displayColors: true,\n boxPadding: 0,\n borderColor: 'rgba(0,0,0,0)',\n borderWidth: 0,\n animation: {\n duration: 400,\n easing: 'easeOutQuart',\n },\n animations: {\n numbers: {\n type: 'number',\n properties: ['x', 'y', 'width', 'height', 'caretX', 'caretY'],\n },\n opacity: {\n easing: 'linear',\n duration: 200\n }\n },\n callbacks: {\n beforeTitle: noop,\n title(tooltipItems) {\n if (tooltipItems.length > 0) {\n const item = tooltipItems[0];\n const labels = item.chart.data.labels;\n const labelCount = labels ? labels.length : 0;\n if (this && this.options && this.options.mode === 'dataset') {\n return item.dataset.label || '';\n } else if (item.label) {\n return item.label;\n } else if (labelCount > 0 && item.dataIndex < labelCount) {\n return labels[item.dataIndex];\n }\n }\n return '';\n },\n afterTitle: noop,\n beforeBody: noop,\n beforeLabel: noop,\n label(tooltipItem) {\n if (this && this.options && this.options.mode === 'dataset') {\n return tooltipItem.label + ': ' + tooltipItem.formattedValue || tooltipItem.formattedValue;\n }\n let label = tooltipItem.dataset.label || '';\n if (label) {\n label += ': ';\n }\n const value = tooltipItem.formattedValue;\n if (!isNullOrUndef(value)) {\n label += value;\n }\n return label;\n },\n labelColor(tooltipItem) {\n const meta = tooltipItem.chart.getDatasetMeta(tooltipItem.datasetIndex);\n const options = meta.controller.getStyle(tooltipItem.dataIndex);\n return {\n borderColor: options.borderColor,\n backgroundColor: options.backgroundColor,\n borderWidth: options.borderWidth,\n borderDash: options.borderDash,\n borderDashOffset: options.borderDashOffset,\n borderRadius: 0,\n };\n },\n labelTextColor() {\n return this.options.bodyColor;\n },\n labelPointStyle(tooltipItem) {\n const meta = tooltipItem.chart.getDatasetMeta(tooltipItem.datasetIndex);\n const options = meta.controller.getStyle(tooltipItem.dataIndex);\n return {\n pointStyle: options.pointStyle,\n rotation: options.rotation,\n };\n },\n afterLabel: noop,\n afterBody: noop,\n beforeFooter: noop,\n footer: noop,\n afterFooter: noop\n }\n },\n defaultRoutes: {\n bodyFont: 'font',\n footerFont: 'font',\n titleFont: 'font'\n },\n descriptors: {\n _scriptable: (name) => name !== 'filter' && name !== 'itemSort' && name !== 'external',\n _indexable: false,\n callbacks: {\n _scriptable: false,\n _indexable: false,\n },\n animation: {\n _fallback: false\n },\n animations: {\n _fallback: 'animation'\n }\n },\n additionalOptionScopes: ['interaction']\n};\n\nvar plugins = /*#__PURE__*/Object.freeze({\n__proto__: null,\nDecimation: plugin_decimation,\nFiller: plugin_filler,\nLegend: plugin_legend,\nSubTitle: plugin_subtitle,\nTitle: plugin_title,\nTooltip: plugin_tooltip\n});\n\nconst addIfString = (labels, raw, index) => typeof raw === 'string'\n ? labels.push(raw) - 1\n : isNaN(raw) ? null : index;\nfunction findOrAddLabel(labels, raw, index) {\n const first = labels.indexOf(raw);\n if (first === -1) {\n return addIfString(labels, raw, index);\n }\n const last = labels.lastIndexOf(raw);\n return first !== last ? index : first;\n}\nconst validIndex = (index, max) => index === null ? null : _limitValue(Math.round(index), 0, max);\nclass CategoryScale extends Scale {\n constructor(cfg) {\n super(cfg);\n this._startValue = undefined;\n this._valueRange = 0;\n }\n parse(raw, index) {\n if (isNullOrUndef(raw)) {\n return null;\n }\n const labels = this.getLabels();\n index = isFinite(index) && labels[index] === raw ? index\n : findOrAddLabel(labels, raw, valueOrDefault(index, raw));\n return validIndex(index, labels.length - 1);\n }\n determineDataLimits() {\n const {minDefined, maxDefined} = this.getUserBounds();\n let {min, max} = this.getMinMax(true);\n if (this.options.bounds === 'ticks') {\n if (!minDefined) {\n min = 0;\n }\n if (!maxDefined) {\n max = this.getLabels().length - 1;\n }\n }\n this.min = min;\n this.max = max;\n }\n buildTicks() {\n const min = this.min;\n const max = this.max;\n const offset = this.options.offset;\n const ticks = [];\n let labels = this.getLabels();\n labels = (min === 0 && max === labels.length - 1) ? labels : labels.slice(min, max + 1);\n this._valueRange = Math.max(labels.length - (offset ? 0 : 1), 1);\n this._startValue = this.min - (offset ? 0.5 : 0);\n for (let value = min; value <= max; value++) {\n ticks.push({value});\n }\n return ticks;\n }\n getLabelForValue(value) {\n const labels = this.getLabels();\n if (value >= 0 && value < labels.length) {\n return labels[value];\n }\n return value;\n }\n configure() {\n super.configure();\n if (!this.isHorizontal()) {\n this._reversePixels = !this._reversePixels;\n }\n }\n getPixelForValue(value) {\n if (typeof value !== 'number') {\n value = this.parse(value);\n }\n return value === null ? NaN : this.getPixelForDecimal((value - this._startValue) / this._valueRange);\n }\n getPixelForTick(index) {\n const ticks = this.ticks;\n if (index < 0 || index > ticks.length - 1) {\n return null;\n }\n return this.getPixelForValue(ticks[index].value);\n }\n getValueForPixel(pixel) {\n return Math.round(this._startValue + this.getDecimalForPixel(pixel) * this._valueRange);\n }\n getBasePixel() {\n return this.bottom;\n }\n}\nCategoryScale.id = 'category';\nCategoryScale.defaults = {\n ticks: {\n callback: CategoryScale.prototype.getLabelForValue\n }\n};\n\nfunction generateTicks$1(generationOptions, dataRange) {\n const ticks = [];\n const MIN_SPACING = 1e-14;\n const {bounds, step, min, max, precision, count, maxTicks, maxDigits, includeBounds} = generationOptions;\n const unit = step || 1;\n const maxSpaces = maxTicks - 1;\n const {min: rmin, max: rmax} = dataRange;\n const minDefined = !isNullOrUndef(min);\n const maxDefined = !isNullOrUndef(max);\n const countDefined = !isNullOrUndef(count);\n const minSpacing = (rmax - rmin) / (maxDigits + 1);\n let spacing = niceNum((rmax - rmin) / maxSpaces / unit) * unit;\n let factor, niceMin, niceMax, numSpaces;\n if (spacing < MIN_SPACING && !minDefined && !maxDefined) {\n return [{value: rmin}, {value: rmax}];\n }\n numSpaces = Math.ceil(rmax / spacing) - Math.floor(rmin / spacing);\n if (numSpaces > maxSpaces) {\n spacing = niceNum(numSpaces * spacing / maxSpaces / unit) * unit;\n }\n if (!isNullOrUndef(precision)) {\n factor = Math.pow(10, precision);\n spacing = Math.ceil(spacing * factor) / factor;\n }\n if (bounds === 'ticks') {\n niceMin = Math.floor(rmin / spacing) * spacing;\n niceMax = Math.ceil(rmax / spacing) * spacing;\n } else {\n niceMin = rmin;\n niceMax = rmax;\n }\n if (minDefined && maxDefined && step && almostWhole((max - min) / step, spacing / 1000)) {\n numSpaces = Math.round(Math.min((max - min) / spacing, maxTicks));\n spacing = (max - min) / numSpaces;\n niceMin = min;\n niceMax = max;\n } else if (countDefined) {\n niceMin = minDefined ? min : niceMin;\n niceMax = maxDefined ? max : niceMax;\n numSpaces = count - 1;\n spacing = (niceMax - niceMin) / numSpaces;\n } else {\n numSpaces = (niceMax - niceMin) / spacing;\n if (almostEquals(numSpaces, Math.round(numSpaces), spacing / 1000)) {\n numSpaces = Math.round(numSpaces);\n } else {\n numSpaces = Math.ceil(numSpaces);\n }\n }\n const decimalPlaces = Math.max(\n _decimalPlaces(spacing),\n _decimalPlaces(niceMin)\n );\n factor = Math.pow(10, isNullOrUndef(precision) ? decimalPlaces : precision);\n niceMin = Math.round(niceMin * factor) / factor;\n niceMax = Math.round(niceMax * factor) / factor;\n let j = 0;\n if (minDefined) {\n if (includeBounds && niceMin !== min) {\n ticks.push({value: min});\n if (niceMin < min) {\n j++;\n }\n if (almostEquals(Math.round((niceMin + j * spacing) * factor) / factor, min, relativeLabelSize(min, minSpacing, generationOptions))) {\n j++;\n }\n } else if (niceMin < min) {\n j++;\n }\n }\n for (; j < numSpaces; ++j) {\n ticks.push({value: Math.round((niceMin + j * spacing) * factor) / factor});\n }\n if (maxDefined && includeBounds && niceMax !== max) {\n if (ticks.length && almostEquals(ticks[ticks.length - 1].value, max, relativeLabelSize(max, minSpacing, generationOptions))) {\n ticks[ticks.length - 1].value = max;\n } else {\n ticks.push({value: max});\n }\n } else if (!maxDefined || niceMax === max) {\n ticks.push({value: niceMax});\n }\n return ticks;\n}\nfunction relativeLabelSize(value, minSpacing, {horizontal, minRotation}) {\n const rad = toRadians(minRotation);\n const ratio = (horizontal ? Math.sin(rad) : Math.cos(rad)) || 0.001;\n const length = 0.75 * minSpacing * ('' + value).length;\n return Math.min(minSpacing / ratio, length);\n}\nclass LinearScaleBase extends Scale {\n constructor(cfg) {\n super(cfg);\n this.start = undefined;\n this.end = undefined;\n this._startValue = undefined;\n this._endValue = undefined;\n this._valueRange = 0;\n }\n parse(raw, index) {\n if (isNullOrUndef(raw)) {\n return null;\n }\n if ((typeof raw === 'number' || raw instanceof Number) && !isFinite(+raw)) {\n return null;\n }\n return +raw;\n }\n handleTickRangeOptions() {\n const {beginAtZero} = this.options;\n const {minDefined, maxDefined} = this.getUserBounds();\n let {min, max} = this;\n const setMin = v => (min = minDefined ? min : v);\n const setMax = v => (max = maxDefined ? max : v);\n if (beginAtZero) {\n const minSign = sign(min);\n const maxSign = sign(max);\n if (minSign < 0 && maxSign < 0) {\n setMax(0);\n } else if (minSign > 0 && maxSign > 0) {\n setMin(0);\n }\n }\n if (min === max) {\n let offset = 1;\n if (max >= Number.MAX_SAFE_INTEGER || min <= Number.MIN_SAFE_INTEGER) {\n offset = Math.abs(max * 0.05);\n }\n setMax(max + offset);\n if (!beginAtZero) {\n setMin(min - offset);\n }\n }\n this.min = min;\n this.max = max;\n }\n getTickLimit() {\n const tickOpts = this.options.ticks;\n let {maxTicksLimit, stepSize} = tickOpts;\n let maxTicks;\n if (stepSize) {\n maxTicks = Math.ceil(this.max / stepSize) - Math.floor(this.min / stepSize) + 1;\n if (maxTicks > 1000) {\n console.warn(`scales.${this.id}.ticks.stepSize: ${stepSize} would result generating up to ${maxTicks} ticks. Limiting to 1000.`);\n maxTicks = 1000;\n }\n } else {\n maxTicks = this.computeTickLimit();\n maxTicksLimit = maxTicksLimit || 11;\n }\n if (maxTicksLimit) {\n maxTicks = Math.min(maxTicksLimit, maxTicks);\n }\n return maxTicks;\n }\n computeTickLimit() {\n return Number.POSITIVE_INFINITY;\n }\n buildTicks() {\n const opts = this.options;\n const tickOpts = opts.ticks;\n let maxTicks = this.getTickLimit();\n maxTicks = Math.max(2, maxTicks);\n const numericGeneratorOptions = {\n maxTicks,\n bounds: opts.bounds,\n min: opts.min,\n max: opts.max,\n precision: tickOpts.precision,\n step: tickOpts.stepSize,\n count: tickOpts.count,\n maxDigits: this._maxDigits(),\n horizontal: this.isHorizontal(),\n minRotation: tickOpts.minRotation || 0,\n includeBounds: tickOpts.includeBounds !== false\n };\n const dataRange = this._range || this;\n const ticks = generateTicks$1(numericGeneratorOptions, dataRange);\n if (opts.bounds === 'ticks') {\n _setMinAndMaxByKey(ticks, this, 'value');\n }\n if (opts.reverse) {\n ticks.reverse();\n this.start = this.max;\n this.end = this.min;\n } else {\n this.start = this.min;\n this.end = this.max;\n }\n return ticks;\n }\n configure() {\n const ticks = this.ticks;\n let start = this.min;\n let end = this.max;\n super.configure();\n if (this.options.offset && ticks.length) {\n const offset = (end - start) / Math.max(ticks.length - 1, 1) / 2;\n start -= offset;\n end += offset;\n }\n this._startValue = start;\n this._endValue = end;\n this._valueRange = end - start;\n }\n getLabelForValue(value) {\n return formatNumber(value, this.chart.options.locale);\n }\n}\n\nclass LinearScale extends LinearScaleBase {\n determineDataLimits() {\n const {min, max} = this.getMinMax(true);\n this.min = isNumberFinite(min) ? min : 0;\n this.max = isNumberFinite(max) ? max : 1;\n this.handleTickRangeOptions();\n }\n computeTickLimit() {\n const horizontal = this.isHorizontal();\n const length = horizontal ? this.width : this.height;\n const minRotation = toRadians(this.options.ticks.minRotation);\n const ratio = (horizontal ? Math.sin(minRotation) : Math.cos(minRotation)) || 0.001;\n const tickFont = this._resolveTickFontOptions(0);\n return Math.ceil(length / Math.min(40, tickFont.lineHeight / ratio));\n }\n getPixelForValue(value) {\n return value === null ? NaN : this.getPixelForDecimal((value - this._startValue) / this._valueRange);\n }\n getValueForPixel(pixel) {\n return this._startValue + this.getDecimalForPixel(pixel) * this._valueRange;\n }\n}\nLinearScale.id = 'linear';\nLinearScale.defaults = {\n ticks: {\n callback: Ticks.formatters.numeric\n }\n};\n\nfunction isMajor(tickVal) {\n const remain = tickVal / (Math.pow(10, Math.floor(log10(tickVal))));\n return remain === 1;\n}\nfunction generateTicks(generationOptions, dataRange) {\n const endExp = Math.floor(log10(dataRange.max));\n const endSignificand = Math.ceil(dataRange.max / Math.pow(10, endExp));\n const ticks = [];\n let tickVal = finiteOrDefault(generationOptions.min, Math.pow(10, Math.floor(log10(dataRange.min))));\n let exp = Math.floor(log10(tickVal));\n let significand = Math.floor(tickVal / Math.pow(10, exp));\n let precision = exp < 0 ? Math.pow(10, Math.abs(exp)) : 1;\n do {\n ticks.push({value: tickVal, major: isMajor(tickVal)});\n ++significand;\n if (significand === 10) {\n significand = 1;\n ++exp;\n precision = exp >= 0 ? 1 : precision;\n }\n tickVal = Math.round(significand * Math.pow(10, exp) * precision) / precision;\n } while (exp < endExp || (exp === endExp && significand < endSignificand));\n const lastTick = finiteOrDefault(generationOptions.max, tickVal);\n ticks.push({value: lastTick, major: isMajor(tickVal)});\n return ticks;\n}\nclass LogarithmicScale extends Scale {\n constructor(cfg) {\n super(cfg);\n this.start = undefined;\n this.end = undefined;\n this._startValue = undefined;\n this._valueRange = 0;\n }\n parse(raw, index) {\n const value = LinearScaleBase.prototype.parse.apply(this, [raw, index]);\n if (value === 0) {\n this._zero = true;\n return undefined;\n }\n return isNumberFinite(value) && value > 0 ? value : null;\n }\n determineDataLimits() {\n const {min, max} = this.getMinMax(true);\n this.min = isNumberFinite(min) ? Math.max(0, min) : null;\n this.max = isNumberFinite(max) ? Math.max(0, max) : null;\n if (this.options.beginAtZero) {\n this._zero = true;\n }\n this.handleTickRangeOptions();\n }\n handleTickRangeOptions() {\n const {minDefined, maxDefined} = this.getUserBounds();\n let min = this.min;\n let max = this.max;\n const setMin = v => (min = minDefined ? min : v);\n const setMax = v => (max = maxDefined ? max : v);\n const exp = (v, m) => Math.pow(10, Math.floor(log10(v)) + m);\n if (min === max) {\n if (min <= 0) {\n setMin(1);\n setMax(10);\n } else {\n setMin(exp(min, -1));\n setMax(exp(max, +1));\n }\n }\n if (min <= 0) {\n setMin(exp(max, -1));\n }\n if (max <= 0) {\n setMax(exp(min, +1));\n }\n if (this._zero && this.min !== this._suggestedMin && min === exp(this.min, 0)) {\n setMin(exp(min, -1));\n }\n this.min = min;\n this.max = max;\n }\n buildTicks() {\n const opts = this.options;\n const generationOptions = {\n min: this._userMin,\n max: this._userMax\n };\n const ticks = generateTicks(generationOptions, this);\n if (opts.bounds === 'ticks') {\n _setMinAndMaxByKey(ticks, this, 'value');\n }\n if (opts.reverse) {\n ticks.reverse();\n this.start = this.max;\n this.end = this.min;\n } else {\n this.start = this.min;\n this.end = this.max;\n }\n return ticks;\n }\n getLabelForValue(value) {\n return value === undefined ? '0' : formatNumber(value, this.chart.options.locale);\n }\n configure() {\n const start = this.min;\n super.configure();\n this._startValue = log10(start);\n this._valueRange = log10(this.max) - log10(start);\n }\n getPixelForValue(value) {\n if (value === undefined || value === 0) {\n value = this.min;\n }\n if (value === null || isNaN(value)) {\n return NaN;\n }\n return this.getPixelForDecimal(value === this.min\n ? 0\n : (log10(value) - this._startValue) / this._valueRange);\n }\n getValueForPixel(pixel) {\n const decimal = this.getDecimalForPixel(pixel);\n return Math.pow(10, this._startValue + decimal * this._valueRange);\n }\n}\nLogarithmicScale.id = 'logarithmic';\nLogarithmicScale.defaults = {\n ticks: {\n callback: Ticks.formatters.logarithmic,\n major: {\n enabled: true\n }\n }\n};\n\nfunction getTickBackdropHeight(opts) {\n const tickOpts = opts.ticks;\n if (tickOpts.display && opts.display) {\n const padding = toPadding(tickOpts.backdropPadding);\n return valueOrDefault(tickOpts.font && tickOpts.font.size, defaults.font.size) + padding.height;\n }\n return 0;\n}\nfunction measureLabelSize(ctx, font, label) {\n label = isArray(label) ? label : [label];\n return {\n w: _longestText(ctx, font.string, label),\n h: label.length * font.lineHeight\n };\n}\nfunction determineLimits(angle, pos, size, min, max) {\n if (angle === min || angle === max) {\n return {\n start: pos - (size / 2),\n end: pos + (size / 2)\n };\n } else if (angle < min || angle > max) {\n return {\n start: pos - size,\n end: pos\n };\n }\n return {\n start: pos,\n end: pos + size\n };\n}\nfunction fitWithPointLabels(scale) {\n const furthestLimits = {\n l: 0,\n r: scale.width,\n t: 0,\n b: scale.height - scale.paddingTop\n };\n const furthestAngles = {};\n const labelSizes = [];\n const padding = [];\n const valueCount = scale.getLabels().length;\n for (let i = 0; i < valueCount; i++) {\n const opts = scale.options.pointLabels.setContext(scale.getPointLabelContext(i));\n padding[i] = opts.padding;\n const pointPosition = scale.getPointPosition(i, scale.drawingArea + padding[i]);\n const plFont = toFont(opts.font);\n const textSize = measureLabelSize(scale.ctx, plFont, scale._pointLabels[i]);\n labelSizes[i] = textSize;\n const angleRadians = scale.getIndexAngle(i);\n const angle = toDegrees(angleRadians);\n const hLimits = determineLimits(angle, pointPosition.x, textSize.w, 0, 180);\n const vLimits = determineLimits(angle, pointPosition.y, textSize.h, 90, 270);\n if (hLimits.start < furthestLimits.l) {\n furthestLimits.l = hLimits.start;\n furthestAngles.l = angleRadians;\n }\n if (hLimits.end > furthestLimits.r) {\n furthestLimits.r = hLimits.end;\n furthestAngles.r = angleRadians;\n }\n if (vLimits.start < furthestLimits.t) {\n furthestLimits.t = vLimits.start;\n furthestAngles.t = angleRadians;\n }\n if (vLimits.end > furthestLimits.b) {\n furthestLimits.b = vLimits.end;\n furthestAngles.b = angleRadians;\n }\n }\n scale._setReductions(scale.drawingArea, furthestLimits, furthestAngles);\n scale._pointLabelItems = buildPointLabelItems(scale, labelSizes, padding);\n}\nfunction buildPointLabelItems(scale, labelSizes, padding) {\n const items = [];\n const valueCount = scale.getLabels().length;\n const opts = scale.options;\n const tickBackdropHeight = getTickBackdropHeight(opts);\n const outerDistance = scale.getDistanceFromCenterForValue(opts.ticks.reverse ? scale.min : scale.max);\n for (let i = 0; i < valueCount; i++) {\n const extra = (i === 0 ? tickBackdropHeight / 2 : 0);\n const pointLabelPosition = scale.getPointPosition(i, outerDistance + extra + padding[i]);\n const angle = toDegrees(scale.getIndexAngle(i));\n const size = labelSizes[i];\n const y = yForAngle(pointLabelPosition.y, size.h, angle);\n const textAlign = getTextAlignForAngle(angle);\n const left = leftForTextAlign(pointLabelPosition.x, size.w, textAlign);\n items.push({\n x: pointLabelPosition.x,\n y,\n textAlign,\n left,\n top: y,\n right: left + size.w,\n bottom: y + size.h\n });\n }\n return items;\n}\nfunction getTextAlignForAngle(angle) {\n if (angle === 0 || angle === 180) {\n return 'center';\n } else if (angle < 180) {\n return 'left';\n }\n return 'right';\n}\nfunction leftForTextAlign(x, w, align) {\n if (align === 'right') {\n x -= w;\n } else if (align === 'center') {\n x -= (w / 2);\n }\n return x;\n}\nfunction yForAngle(y, h, angle) {\n if (angle === 90 || angle === 270) {\n y -= (h / 2);\n } else if (angle > 270 || angle < 90) {\n y -= h;\n }\n return y;\n}\nfunction drawPointLabels(scale, labelCount) {\n const {ctx, options: {pointLabels}} = scale;\n for (let i = labelCount - 1; i >= 0; i--) {\n const optsAtIndex = pointLabels.setContext(scale.getPointLabelContext(i));\n const plFont = toFont(optsAtIndex.font);\n const {x, y, textAlign, left, top, right, bottom} = scale._pointLabelItems[i];\n const {backdropColor} = optsAtIndex;\n if (!isNullOrUndef(backdropColor)) {\n const padding = toPadding(optsAtIndex.backdropPadding);\n ctx.fillStyle = backdropColor;\n ctx.fillRect(left - padding.left, top - padding.top, right - left + padding.width, bottom - top + padding.height);\n }\n renderText(\n ctx,\n scale._pointLabels[i],\n x,\n y + (plFont.lineHeight / 2),\n plFont,\n {\n color: optsAtIndex.color,\n textAlign: textAlign,\n textBaseline: 'middle'\n }\n );\n }\n}\nfunction pathRadiusLine(scale, radius, circular, labelCount) {\n const {ctx} = scale;\n if (circular) {\n ctx.arc(scale.xCenter, scale.yCenter, radius, 0, TAU);\n } else {\n let pointPosition = scale.getPointPosition(0, radius);\n ctx.moveTo(pointPosition.x, pointPosition.y);\n for (let i = 1; i < labelCount; i++) {\n pointPosition = scale.getPointPosition(i, radius);\n ctx.lineTo(pointPosition.x, pointPosition.y);\n }\n }\n}\nfunction drawRadiusLine(scale, gridLineOpts, radius, labelCount) {\n const ctx = scale.ctx;\n const circular = gridLineOpts.circular;\n const {color, lineWidth} = gridLineOpts;\n if ((!circular && !labelCount) || !color || !lineWidth || radius < 0) {\n return;\n }\n ctx.save();\n ctx.strokeStyle = color;\n ctx.lineWidth = lineWidth;\n ctx.setLineDash(gridLineOpts.borderDash);\n ctx.lineDashOffset = gridLineOpts.borderDashOffset;\n ctx.beginPath();\n pathRadiusLine(scale, radius, circular, labelCount);\n ctx.closePath();\n ctx.stroke();\n ctx.restore();\n}\nfunction numberOrZero(param) {\n return isNumber(param) ? param : 0;\n}\nfunction createPointLabelContext(parent, index, label) {\n return createContext(parent, {\n label,\n index,\n type: 'pointLabel'\n });\n}\nclass RadialLinearScale extends LinearScaleBase {\n constructor(cfg) {\n super(cfg);\n this.xCenter = undefined;\n this.yCenter = undefined;\n this.drawingArea = undefined;\n this._pointLabels = [];\n this._pointLabelItems = [];\n }\n setDimensions() {\n this.width = this.maxWidth;\n this.height = this.maxHeight;\n this.paddingTop = getTickBackdropHeight(this.options) / 2;\n this.xCenter = Math.floor(this.width / 2);\n this.yCenter = Math.floor((this.height - this.paddingTop) / 2);\n this.drawingArea = Math.min(this.height - this.paddingTop, this.width) / 2;\n }\n determineDataLimits() {\n const {min, max} = this.getMinMax(false);\n this.min = isNumberFinite(min) && !isNaN(min) ? min : 0;\n this.max = isNumberFinite(max) && !isNaN(max) ? max : 0;\n this.handleTickRangeOptions();\n }\n computeTickLimit() {\n return Math.ceil(this.drawingArea / getTickBackdropHeight(this.options));\n }\n generateTickLabels(ticks) {\n LinearScaleBase.prototype.generateTickLabels.call(this, ticks);\n this._pointLabels = this.getLabels().map((value, index) => {\n const label = callback(this.options.pointLabels.callback, [value, index], this);\n return label || label === 0 ? label : '';\n });\n }\n fit() {\n const opts = this.options;\n if (opts.display && opts.pointLabels.display) {\n fitWithPointLabels(this);\n } else {\n this.setCenterPoint(0, 0, 0, 0);\n }\n }\n _setReductions(largestPossibleRadius, furthestLimits, furthestAngles) {\n let radiusReductionLeft = furthestLimits.l / Math.sin(furthestAngles.l);\n let radiusReductionRight = Math.max(furthestLimits.r - this.width, 0) / Math.sin(furthestAngles.r);\n let radiusReductionTop = -furthestLimits.t / Math.cos(furthestAngles.t);\n let radiusReductionBottom = -Math.max(furthestLimits.b - (this.height - this.paddingTop), 0) / Math.cos(furthestAngles.b);\n radiusReductionLeft = numberOrZero(radiusReductionLeft);\n radiusReductionRight = numberOrZero(radiusReductionRight);\n radiusReductionTop = numberOrZero(radiusReductionTop);\n radiusReductionBottom = numberOrZero(radiusReductionBottom);\n this.drawingArea = Math.max(largestPossibleRadius / 2, Math.min(\n Math.floor(largestPossibleRadius - (radiusReductionLeft + radiusReductionRight) / 2),\n Math.floor(largestPossibleRadius - (radiusReductionTop + radiusReductionBottom) / 2)));\n this.setCenterPoint(radiusReductionLeft, radiusReductionRight, radiusReductionTop, radiusReductionBottom);\n }\n setCenterPoint(leftMovement, rightMovement, topMovement, bottomMovement) {\n const maxRight = this.width - rightMovement - this.drawingArea;\n const maxLeft = leftMovement + this.drawingArea;\n const maxTop = topMovement + this.drawingArea;\n const maxBottom = (this.height - this.paddingTop) - bottomMovement - this.drawingArea;\n this.xCenter = Math.floor(((maxLeft + maxRight) / 2) + this.left);\n this.yCenter = Math.floor(((maxTop + maxBottom) / 2) + this.top + this.paddingTop);\n }\n getIndexAngle(index) {\n const angleMultiplier = TAU / this.getLabels().length;\n const startAngle = this.options.startAngle || 0;\n return _normalizeAngle(index * angleMultiplier + toRadians(startAngle));\n }\n getDistanceFromCenterForValue(value) {\n if (isNullOrUndef(value)) {\n return NaN;\n }\n const scalingFactor = this.drawingArea / (this.max - this.min);\n if (this.options.reverse) {\n return (this.max - value) * scalingFactor;\n }\n return (value - this.min) * scalingFactor;\n }\n getValueForDistanceFromCenter(distance) {\n if (isNullOrUndef(distance)) {\n return NaN;\n }\n const scaledDistance = distance / (this.drawingArea / (this.max - this.min));\n return this.options.reverse ? this.max - scaledDistance : this.min + scaledDistance;\n }\n getPointLabelContext(index) {\n const pointLabels = this._pointLabels || [];\n if (index >= 0 && index < pointLabels.length) {\n const pointLabel = pointLabels[index];\n return createPointLabelContext(this.getContext(), index, pointLabel);\n }\n }\n getPointPosition(index, distanceFromCenter) {\n const angle = this.getIndexAngle(index) - HALF_PI;\n return {\n x: Math.cos(angle) * distanceFromCenter + this.xCenter,\n y: Math.sin(angle) * distanceFromCenter + this.yCenter,\n angle\n };\n }\n getPointPositionForValue(index, value) {\n return this.getPointPosition(index, this.getDistanceFromCenterForValue(value));\n }\n getBasePosition(index) {\n return this.getPointPositionForValue(index || 0, this.getBaseValue());\n }\n getPointLabelPosition(index) {\n const {left, top, right, bottom} = this._pointLabelItems[index];\n return {\n left,\n top,\n right,\n bottom,\n };\n }\n drawBackground() {\n const {backgroundColor, grid: {circular}} = this.options;\n if (backgroundColor) {\n const ctx = this.ctx;\n ctx.save();\n ctx.beginPath();\n pathRadiusLine(this, this.getDistanceFromCenterForValue(this._endValue), circular, this.getLabels().length);\n ctx.closePath();\n ctx.fillStyle = backgroundColor;\n ctx.fill();\n ctx.restore();\n }\n }\n drawGrid() {\n const ctx = this.ctx;\n const opts = this.options;\n const {angleLines, grid} = opts;\n const labelCount = this.getLabels().length;\n let i, offset, position;\n if (opts.pointLabels.display) {\n drawPointLabels(this, labelCount);\n }\n if (grid.display) {\n this.ticks.forEach((tick, index) => {\n if (index !== 0) {\n offset = this.getDistanceFromCenterForValue(tick.value);\n const optsAtIndex = grid.setContext(this.getContext(index - 1));\n drawRadiusLine(this, optsAtIndex, offset, labelCount);\n }\n });\n }\n if (angleLines.display) {\n ctx.save();\n for (i = this.getLabels().length - 1; i >= 0; i--) {\n const optsAtIndex = angleLines.setContext(this.getPointLabelContext(i));\n const {color, lineWidth} = optsAtIndex;\n if (!lineWidth || !color) {\n continue;\n }\n ctx.lineWidth = lineWidth;\n ctx.strokeStyle = color;\n ctx.setLineDash(optsAtIndex.borderDash);\n ctx.lineDashOffset = optsAtIndex.borderDashOffset;\n offset = this.getDistanceFromCenterForValue(opts.ticks.reverse ? this.min : this.max);\n position = this.getPointPosition(i, offset);\n ctx.beginPath();\n ctx.moveTo(this.xCenter, this.yCenter);\n ctx.lineTo(position.x, position.y);\n ctx.stroke();\n }\n ctx.restore();\n }\n }\n drawBorder() {}\n drawLabels() {\n const ctx = this.ctx;\n const opts = this.options;\n const tickOpts = opts.ticks;\n if (!tickOpts.display) {\n return;\n }\n const startAngle = this.getIndexAngle(0);\n let offset, width;\n ctx.save();\n ctx.translate(this.xCenter, this.yCenter);\n ctx.rotate(startAngle);\n ctx.textAlign = 'center';\n ctx.textBaseline = 'middle';\n this.ticks.forEach((tick, index) => {\n if (index === 0 && !opts.reverse) {\n return;\n }\n const optsAtIndex = tickOpts.setContext(this.getContext(index));\n const tickFont = toFont(optsAtIndex.font);\n offset = this.getDistanceFromCenterForValue(this.ticks[index].value);\n if (optsAtIndex.showLabelBackdrop) {\n ctx.font = tickFont.string;\n width = ctx.measureText(tick.label).width;\n ctx.fillStyle = optsAtIndex.backdropColor;\n const padding = toPadding(optsAtIndex.backdropPadding);\n ctx.fillRect(\n -width / 2 - padding.left,\n -offset - tickFont.size / 2 - padding.top,\n width + padding.width,\n tickFont.size + padding.height\n );\n }\n renderText(ctx, tick.label, 0, -offset, tickFont, {\n color: optsAtIndex.color,\n });\n });\n ctx.restore();\n }\n drawTitle() {}\n}\nRadialLinearScale.id = 'radialLinear';\nRadialLinearScale.defaults = {\n display: true,\n animate: true,\n position: 'chartArea',\n angleLines: {\n display: true,\n lineWidth: 1,\n borderDash: [],\n borderDashOffset: 0.0\n },\n grid: {\n circular: false\n },\n startAngle: 0,\n ticks: {\n showLabelBackdrop: true,\n callback: Ticks.formatters.numeric\n },\n pointLabels: {\n backdropColor: undefined,\n backdropPadding: 2,\n display: true,\n font: {\n size: 10\n },\n callback(label) {\n return label;\n },\n padding: 5\n }\n};\nRadialLinearScale.defaultRoutes = {\n 'angleLines.color': 'borderColor',\n 'pointLabels.color': 'color',\n 'ticks.color': 'color'\n};\nRadialLinearScale.descriptors = {\n angleLines: {\n _fallback: 'grid'\n }\n};\n\nconst INTERVALS = {\n millisecond: {common: true, size: 1, steps: 1000},\n second: {common: true, size: 1000, steps: 60},\n minute: {common: true, size: 60000, steps: 60},\n hour: {common: true, size: 3600000, steps: 24},\n day: {common: true, size: 86400000, steps: 30},\n week: {common: false, size: 604800000, steps: 4},\n month: {common: true, size: 2.628e9, steps: 12},\n quarter: {common: false, size: 7.884e9, steps: 4},\n year: {common: true, size: 3.154e10}\n};\nconst UNITS = (Object.keys(INTERVALS));\nfunction sorter(a, b) {\n return a - b;\n}\nfunction parse(scale, input) {\n if (isNullOrUndef(input)) {\n return null;\n }\n const adapter = scale._adapter;\n const {parser, round, isoWeekday} = scale._parseOpts;\n let value = input;\n if (typeof parser === 'function') {\n value = parser(value);\n }\n if (!isNumberFinite(value)) {\n value = typeof parser === 'string'\n ? adapter.parse(value, parser)\n : adapter.parse(value);\n }\n if (value === null) {\n return null;\n }\n if (round) {\n value = round === 'week' && (isNumber(isoWeekday) || isoWeekday === true)\n ? adapter.startOf(value, 'isoWeek', isoWeekday)\n : adapter.startOf(value, round);\n }\n return +value;\n}\nfunction determineUnitForAutoTicks(minUnit, min, max, capacity) {\n const ilen = UNITS.length;\n for (let i = UNITS.indexOf(minUnit); i < ilen - 1; ++i) {\n const interval = INTERVALS[UNITS[i]];\n const factor = interval.steps ? interval.steps : Number.MAX_SAFE_INTEGER;\n if (interval.common && Math.ceil((max - min) / (factor * interval.size)) <= capacity) {\n return UNITS[i];\n }\n }\n return UNITS[ilen - 1];\n}\nfunction determineUnitForFormatting(scale, numTicks, minUnit, min, max) {\n for (let i = UNITS.length - 1; i >= UNITS.indexOf(minUnit); i--) {\n const unit = UNITS[i];\n if (INTERVALS[unit].common && scale._adapter.diff(max, min, unit) >= numTicks - 1) {\n return unit;\n }\n }\n return UNITS[minUnit ? UNITS.indexOf(minUnit) : 0];\n}\nfunction determineMajorUnit(unit) {\n for (let i = UNITS.indexOf(unit) + 1, ilen = UNITS.length; i < ilen; ++i) {\n if (INTERVALS[UNITS[i]].common) {\n return UNITS[i];\n }\n }\n}\nfunction addTick(ticks, time, timestamps) {\n if (!timestamps) {\n ticks[time] = true;\n } else if (timestamps.length) {\n const {lo, hi} = _lookup(timestamps, time);\n const timestamp = timestamps[lo] >= time ? timestamps[lo] : timestamps[hi];\n ticks[timestamp] = true;\n }\n}\nfunction setMajorTicks(scale, ticks, map, majorUnit) {\n const adapter = scale._adapter;\n const first = +adapter.startOf(ticks[0].value, majorUnit);\n const last = ticks[ticks.length - 1].value;\n let major, index;\n for (major = first; major <= last; major = +adapter.add(major, 1, majorUnit)) {\n index = map[major];\n if (index >= 0) {\n ticks[index].major = true;\n }\n }\n return ticks;\n}\nfunction ticksFromTimestamps(scale, values, majorUnit) {\n const ticks = [];\n const map = {};\n const ilen = values.length;\n let i, value;\n for (i = 0; i < ilen; ++i) {\n value = values[i];\n map[value] = i;\n ticks.push({\n value,\n major: false\n });\n }\n return (ilen === 0 || !majorUnit) ? ticks : setMajorTicks(scale, ticks, map, majorUnit);\n}\nclass TimeScale extends Scale {\n constructor(props) {\n super(props);\n this._cache = {\n data: [],\n labels: [],\n all: []\n };\n this._unit = 'day';\n this._majorUnit = undefined;\n this._offsets = {};\n this._normalized = false;\n this._parseOpts = undefined;\n }\n init(scaleOpts, opts) {\n const time = scaleOpts.time || (scaleOpts.time = {});\n const adapter = this._adapter = new adapters._date(scaleOpts.adapters.date);\n mergeIf(time.displayFormats, adapter.formats());\n this._parseOpts = {\n parser: time.parser,\n round: time.round,\n isoWeekday: time.isoWeekday\n };\n super.init(scaleOpts);\n this._normalized = opts.normalized;\n }\n parse(raw, index) {\n if (raw === undefined) {\n return null;\n }\n return parse(this, raw);\n }\n beforeLayout() {\n super.beforeLayout();\n this._cache = {\n data: [],\n labels: [],\n all: []\n };\n }\n determineDataLimits() {\n const options = this.options;\n const adapter = this._adapter;\n const unit = options.time.unit || 'day';\n let {min, max, minDefined, maxDefined} = this.getUserBounds();\n function _applyBounds(bounds) {\n if (!minDefined && !isNaN(bounds.min)) {\n min = Math.min(min, bounds.min);\n }\n if (!maxDefined && !isNaN(bounds.max)) {\n max = Math.max(max, bounds.max);\n }\n }\n if (!minDefined || !maxDefined) {\n _applyBounds(this._getLabelBounds());\n if (options.bounds !== 'ticks' || options.ticks.source !== 'labels') {\n _applyBounds(this.getMinMax(false));\n }\n }\n min = isNumberFinite(min) && !isNaN(min) ? min : +adapter.startOf(Date.now(), unit);\n max = isNumberFinite(max) && !isNaN(max) ? max : +adapter.endOf(Date.now(), unit) + 1;\n this.min = Math.min(min, max - 1);\n this.max = Math.max(min + 1, max);\n }\n _getLabelBounds() {\n const arr = this.getLabelTimestamps();\n let min = Number.POSITIVE_INFINITY;\n let max = Number.NEGATIVE_INFINITY;\n if (arr.length) {\n min = arr[0];\n max = arr[arr.length - 1];\n }\n return {min, max};\n }\n buildTicks() {\n const options = this.options;\n const timeOpts = options.time;\n const tickOpts = options.ticks;\n const timestamps = tickOpts.source === 'labels' ? this.getLabelTimestamps() : this._generate();\n if (options.bounds === 'ticks' && timestamps.length) {\n this.min = this._userMin || timestamps[0];\n this.max = this._userMax || timestamps[timestamps.length - 1];\n }\n const min = this.min;\n const max = this.max;\n const ticks = _filterBetween(timestamps, min, max);\n this._unit = timeOpts.unit || (tickOpts.autoSkip\n ? determineUnitForAutoTicks(timeOpts.minUnit, this.min, this.max, this._getLabelCapacity(min))\n : determineUnitForFormatting(this, ticks.length, timeOpts.minUnit, this.min, this.max));\n this._majorUnit = !tickOpts.major.enabled || this._unit === 'year' ? undefined\n : determineMajorUnit(this._unit);\n this.initOffsets(timestamps);\n if (options.reverse) {\n ticks.reverse();\n }\n return ticksFromTimestamps(this, ticks, this._majorUnit);\n }\n initOffsets(timestamps) {\n let start = 0;\n let end = 0;\n let first, last;\n if (this.options.offset && timestamps.length) {\n first = this.getDecimalForValue(timestamps[0]);\n if (timestamps.length === 1) {\n start = 1 - first;\n } else {\n start = (this.getDecimalForValue(timestamps[1]) - first) / 2;\n }\n last = this.getDecimalForValue(timestamps[timestamps.length - 1]);\n if (timestamps.length === 1) {\n end = last;\n } else {\n end = (last - this.getDecimalForValue(timestamps[timestamps.length - 2])) / 2;\n }\n }\n const limit = timestamps.length < 3 ? 0.5 : 0.25;\n start = _limitValue(start, 0, limit);\n end = _limitValue(end, 0, limit);\n this._offsets = {start, end, factor: 1 / (start + 1 + end)};\n }\n _generate() {\n const adapter = this._adapter;\n const min = this.min;\n const max = this.max;\n const options = this.options;\n const timeOpts = options.time;\n const minor = timeOpts.unit || determineUnitForAutoTicks(timeOpts.minUnit, min, max, this._getLabelCapacity(min));\n const stepSize = valueOrDefault(timeOpts.stepSize, 1);\n const weekday = minor === 'week' ? timeOpts.isoWeekday : false;\n const hasWeekday = isNumber(weekday) || weekday === true;\n const ticks = {};\n let first = min;\n let time, count;\n if (hasWeekday) {\n first = +adapter.startOf(first, 'isoWeek', weekday);\n }\n first = +adapter.startOf(first, hasWeekday ? 'day' : minor);\n if (adapter.diff(max, min, minor) > 100000 * stepSize) {\n throw new Error(min + ' and ' + max + ' are too far apart with stepSize of ' + stepSize + ' ' + minor);\n }\n const timestamps = options.ticks.source === 'data' && this.getDataTimestamps();\n for (time = first, count = 0; time < max; time = +adapter.add(time, stepSize, minor), count++) {\n addTick(ticks, time, timestamps);\n }\n if (time === max || options.bounds === 'ticks' || count === 1) {\n addTick(ticks, time, timestamps);\n }\n return Object.keys(ticks).sort((a, b) => a - b).map(x => +x);\n }\n getLabelForValue(value) {\n const adapter = this._adapter;\n const timeOpts = this.options.time;\n if (timeOpts.tooltipFormat) {\n return adapter.format(value, timeOpts.tooltipFormat);\n }\n return adapter.format(value, timeOpts.displayFormats.datetime);\n }\n _tickFormatFunction(time, index, ticks, format) {\n const options = this.options;\n const formats = options.time.displayFormats;\n const unit = this._unit;\n const majorUnit = this._majorUnit;\n const minorFormat = unit && formats[unit];\n const majorFormat = majorUnit && formats[majorUnit];\n const tick = ticks[index];\n const major = majorUnit && majorFormat && tick && tick.major;\n const label = this._adapter.format(time, format || (major ? majorFormat : minorFormat));\n const formatter = options.ticks.callback;\n return formatter ? callback(formatter, [label, index, ticks], this) : label;\n }\n generateTickLabels(ticks) {\n let i, ilen, tick;\n for (i = 0, ilen = ticks.length; i < ilen; ++i) {\n tick = ticks[i];\n tick.label = this._tickFormatFunction(tick.value, i, ticks);\n }\n }\n getDecimalForValue(value) {\n return value === null ? NaN : (value - this.min) / (this.max - this.min);\n }\n getPixelForValue(value) {\n const offsets = this._offsets;\n const pos = this.getDecimalForValue(value);\n return this.getPixelForDecimal((offsets.start + pos) * offsets.factor);\n }\n getValueForPixel(pixel) {\n const offsets = this._offsets;\n const pos = this.getDecimalForPixel(pixel) / offsets.factor - offsets.end;\n return this.min + pos * (this.max - this.min);\n }\n _getLabelSize(label) {\n const ticksOpts = this.options.ticks;\n const tickLabelWidth = this.ctx.measureText(label).width;\n const angle = toRadians(this.isHorizontal() ? ticksOpts.maxRotation : ticksOpts.minRotation);\n const cosRotation = Math.cos(angle);\n const sinRotation = Math.sin(angle);\n const tickFontSize = this._resolveTickFontOptions(0).size;\n return {\n w: (tickLabelWidth * cosRotation) + (tickFontSize * sinRotation),\n h: (tickLabelWidth * sinRotation) + (tickFontSize * cosRotation)\n };\n }\n _getLabelCapacity(exampleTime) {\n const timeOpts = this.options.time;\n const displayFormats = timeOpts.displayFormats;\n const format = displayFormats[timeOpts.unit] || displayFormats.millisecond;\n const exampleLabel = this._tickFormatFunction(exampleTime, 0, ticksFromTimestamps(this, [exampleTime], this._majorUnit), format);\n const size = this._getLabelSize(exampleLabel);\n const capacity = Math.floor(this.isHorizontal() ? this.width / size.w : this.height / size.h) - 1;\n return capacity > 0 ? capacity : 1;\n }\n getDataTimestamps() {\n let timestamps = this._cache.data || [];\n let i, ilen;\n if (timestamps.length) {\n return timestamps;\n }\n const metas = this.getMatchingVisibleMetas();\n if (this._normalized && metas.length) {\n return (this._cache.data = metas[0].controller.getAllParsedValues(this));\n }\n for (i = 0, ilen = metas.length; i < ilen; ++i) {\n timestamps = timestamps.concat(metas[i].controller.getAllParsedValues(this));\n }\n return (this._cache.data = this.normalize(timestamps));\n }\n getLabelTimestamps() {\n const timestamps = this._cache.labels || [];\n let i, ilen;\n if (timestamps.length) {\n return timestamps;\n }\n const labels = this.getLabels();\n for (i = 0, ilen = labels.length; i < ilen; ++i) {\n timestamps.push(parse(this, labels[i]));\n }\n return (this._cache.labels = this._normalized ? timestamps : this.normalize(timestamps));\n }\n normalize(values) {\n return _arrayUnique(values.sort(sorter));\n }\n}\nTimeScale.id = 'time';\nTimeScale.defaults = {\n bounds: 'data',\n adapters: {},\n time: {\n parser: false,\n unit: false,\n round: false,\n isoWeekday: false,\n minUnit: 'millisecond',\n displayFormats: {}\n },\n ticks: {\n source: 'auto',\n major: {\n enabled: false\n }\n }\n};\n\nfunction interpolate(table, val, reverse) {\n let lo = 0;\n let hi = table.length - 1;\n let prevSource, nextSource, prevTarget, nextTarget;\n if (reverse) {\n if (val >= table[lo].pos && val <= table[hi].pos) {\n ({lo, hi} = _lookupByKey(table, 'pos', val));\n }\n ({pos: prevSource, time: prevTarget} = table[lo]);\n ({pos: nextSource, time: nextTarget} = table[hi]);\n } else {\n if (val >= table[lo].time && val <= table[hi].time) {\n ({lo, hi} = _lookupByKey(table, 'time', val));\n }\n ({time: prevSource, pos: prevTarget} = table[lo]);\n ({time: nextSource, pos: nextTarget} = table[hi]);\n }\n const span = nextSource - prevSource;\n return span ? prevTarget + (nextTarget - prevTarget) * (val - prevSource) / span : prevTarget;\n}\nclass TimeSeriesScale extends TimeScale {\n constructor(props) {\n super(props);\n this._table = [];\n this._minPos = undefined;\n this._tableRange = undefined;\n }\n initOffsets() {\n const timestamps = this._getTimestampsForTable();\n const table = this._table = this.buildLookupTable(timestamps);\n this._minPos = interpolate(table, this.min);\n this._tableRange = interpolate(table, this.max) - this._minPos;\n super.initOffsets(timestamps);\n }\n buildLookupTable(timestamps) {\n const {min, max} = this;\n const items = [];\n const table = [];\n let i, ilen, prev, curr, next;\n for (i = 0, ilen = timestamps.length; i < ilen; ++i) {\n curr = timestamps[i];\n if (curr >= min && curr <= max) {\n items.push(curr);\n }\n }\n if (items.length < 2) {\n return [\n {time: min, pos: 0},\n {time: max, pos: 1}\n ];\n }\n for (i = 0, ilen = items.length; i < ilen; ++i) {\n next = items[i + 1];\n prev = items[i - 1];\n curr = items[i];\n if (Math.round((next + prev) / 2) !== curr) {\n table.push({time: curr, pos: i / (ilen - 1)});\n }\n }\n return table;\n }\n _getTimestampsForTable() {\n let timestamps = this._cache.all || [];\n if (timestamps.length) {\n return timestamps;\n }\n const data = this.getDataTimestamps();\n const label = this.getLabelTimestamps();\n if (data.length && label.length) {\n timestamps = this.normalize(data.concat(label));\n } else {\n timestamps = data.length ? data : label;\n }\n timestamps = this._cache.all = timestamps;\n return timestamps;\n }\n getDecimalForValue(value) {\n return (interpolate(this._table, value) - this._minPos) / this._tableRange;\n }\n getValueForPixel(pixel) {\n const offsets = this._offsets;\n const decimal = this.getDecimalForPixel(pixel) / offsets.factor - offsets.end;\n return interpolate(this._table, decimal * this._tableRange + this._minPos, true);\n }\n}\nTimeSeriesScale.id = 'timeseries';\nTimeSeriesScale.defaults = TimeScale.defaults;\n\nvar scales = /*#__PURE__*/Object.freeze({\n__proto__: null,\nCategoryScale: CategoryScale,\nLinearScale: LinearScale,\nLogarithmicScale: LogarithmicScale,\nRadialLinearScale: RadialLinearScale,\nTimeScale: TimeScale,\nTimeSeriesScale: TimeSeriesScale\n});\n\nconst registerables = [\n controllers,\n elements,\n plugins,\n scales,\n];\n\nexport { Animation, Animations, ArcElement, BarController, BarElement, BasePlatform, BasicPlatform, BubbleController, CategoryScale, Chart, DatasetController, plugin_decimation as Decimation, DomPlatform, DoughnutController, Element, plugin_filler as Filler, Interaction, plugin_legend as Legend, LineController, LineElement, LinearScale, LogarithmicScale, PieController, PointElement, PolarAreaController, RadarController, RadialLinearScale, Scale, ScatterController, plugin_subtitle as SubTitle, Ticks, TimeScale, TimeSeriesScale, plugin_title as Title, plugin_tooltip as Tooltip, adapters as _adapters, _detectPlatform, animator, controllers, elements, layouts, plugins, registerables, registry, scales };\n","\n\n\n","export function clean($$props, extra_keys) {\n let keys = [\"children\", \"$$scope\", \"$$slots\"].concat(extra_keys)\n const rest = {};\n for (const key of Object.keys($$props)) {\n if (!(keys.includes(key))) {\n rest[key] = $$props[key];\n }\n }\n return rest;\n}\n","\n\n","\n\n
\n
Statistiken
\n {#await calcStats()}\n \n {:then stats}\n \n {:catch error}\n

Statistiken konnten nicht geladen werden :(

\n {/await}\n
\n\n\n","\n\n
\n
\n \n
\n
\n \n
\n
\n\n\n","\n\n\n\n
\n ({\n title: tableEditorConfig.title,\n route: tableEditorConfig.route,\n }))}\n />\n \n
\n\n\n","import App from \"./components/App.svelte\";\n\n// https://github.com/cypress-io/cypress/issues/702\nif (\"serviceWorker\" in navigator && !window.Cypress) {\n window.addEventListener(\"load\", function () {\n if (ENV_SERVICE_WORKER_DISABLED) {\n navigator.serviceWorker.getRegistrations().then(function (registrations) {\n for (let registration of registrations) {\n registration.unregister();\n }\n });\n console.log(\"ServiceWorker is disabled\");\n } else {\n navigator.serviceWorker.register(\"service-worker.js\").then(\n function (registration) {\n // Registration was successful\n console.debug(\n \"ServiceWorker registration successful with scope: \",\n registration.scope\n );\n },\n function (err) {\n // registration failed :(\n console.error(\"ServiceWorker registration failed: \", err);\n }\n );\n }\n });\n}\n\nvar app = new App({\n target: document.body,\n});\n\nexport default app;\n"],"names":["noop","identity","x","assign","tar","src","k","run","fn","blank_object","Object","create","run_all","fns","forEach","is_function","thing","safe_not_equal","a","b","src_url_equal_anchor","src_url_equal","element_src","url","document","createElement","href","subscribe","store","callbacks","unsub","unsubscribe","get_store_value","value","_","component_subscribe","component","callback","$$","on_destroy","push","create_slot","definition","ctx","$$scope","slot_ctx","get_slot_context","slice","get_slot_changes","dirty","lets","undefined","merged","len","Math","max","length","i","update_slot_base","slot","slot_definition","slot_changes","get_slot_context_fn","slot_context","p","get_all_dirty_from_scope","exclude_internal_props","props","result","null_to_empty","set_store_value","ret","set","action_destroyer","action_result","destroy","is_client","window","now","performance","Date","raf","cb","requestAnimationFrame","tasks","Set","run_tasks","task","c","delete","f","size","loop","promise","Promise","fulfill","add","[object Object]","append","target","node","appendChild","get_root_for_style","root","getRootNode","ownerDocument","host","append_empty_stylesheet","style_element","element","style","head","append_stylesheet","insert","anchor","insertBefore","detach","parentNode","removeChild","destroy_each","iterations","detaching","d","name","svg_element","createElementNS","text","data","createTextNode","space","empty","listen","event","handler","options","addEventListener","removeEventListener","prevent_default","preventDefault","call","this","stop_propagation","stopPropagation","attr","attribute","removeAttribute","getAttribute","setAttribute","set_attributes","attributes","descriptors","getOwnPropertyDescriptors","__proto__","key","cssText","set_custom_element_data","prop","set_data","wholeText","set_input_value","input","set_style","important","setProperty","crossorigin","is_crossorigin","parent","error","add_resize_listener","getComputedStyle","position","iframe","tabIndex","source","contentWindow","onload","toggle_class","toggle","classList","custom_event","type","detail","bubbles","e","createEvent","initCustomEvent","HtmlTag","n","html","h","nodeName","t","innerHTML","Array","from","childNodes","active_docs","current_component","active","create_rule","duration","delay","ease","uid","step","keyframes","rule","str","hash","charCodeAt","doc","stylesheet","__svelte_stylesheet","sheet","current_rules","__svelte_rules","insertRule","cssRules","animation","delete_rule","previous","split","next","filter","anim","indexOf","deleted","join","deleteRule","clear","fix_position","width","height","getBoundingClientRect","left","top","transform","add_transform","set_current_component","get_current_component","Error","beforeUpdate","before_update","onMount","on_mount","afterUpdate","after_update","onDestroy","createEventDispatcher","setContext","context","getContext","get","bubble","dirty_components","binding_callbacks","render_callbacks","flush_callbacks","resolved_promise","resolve","update_scheduled","schedule_update","then","flush","tick","add_render_callback","add_flush_callback","flushing","seen_callbacks","update","pop","has","fragment","wait","dispatch","direction","kind","dispatchEvent","outroing","outros","group_outros","r","check_outros","transition_in","block","local","transition_out","o","null_transition","create_in_transition","params","animation_name","config","running","cleanup","go","easing","css","start_time","end_time","abort","started","create_bidirectional_transition","intro","running_program","pending_program","clear_animation","init","program","abs","start","end","group","handle_promise","info","token","index","resolved","child_ctx","current","needs_flush","blocks","m","mount","catch","hasCatch","pending","update_await_block_branch","globals","globalThis","global","outro_and_destroy_block","lookup","fix_and_outro_and_destroy_block","update_keyed_each","old_blocks","get_key","dynamic","list","create_each_block","get_context","old_indexes","new_blocks","new_lookup","Map","deltas","will_move","did_move","first","new_block","old_block","new_key","old_key","get_spread_update","levels","updates","to_null_out","accounted_for","get_spread_object","spread_props","bind","bound","create_component","mount_component","customElement","new_on_destroy","map","destroy_component","instance","create_fragment","not_equal","append_styles","parent_component","on_disconnect","skip_bound","ready","rest","fill","make_dirty","hydrate","nodes","children","l","SvelteComponent","$destroy","splice","$$props","obj","$$set","keys","wrap","args","asyncComponent","conditions","isArray","loadingComponent","loading","loadingParams","userData","_sveltesparouter","subscriber_queue","readable","writable","stop","subscribers","new_value","run_queue","subscriber","invalidate","derived","stores","initial_value","single","stores_array","auto","inited","values","sync","unsubscribers","parse","loose","RegExp","pattern","tmp","ext","arr","shift","substring","getLocation","hashPosition","location","substr","qsPosition","querystring","loc","$loc","replace","charAt","dest","newState","history","state","replaceState","console","warn","Event","link","opts","linkOpts","tagName","toLowerCase","updateLink","updated","disabled","__svelte_spa_router_scrollX","scrollX","__svelte_spa_router_scrollY","scrollY","scrollstateHistoryHandler","currentTarget","val","routes","prefix","restoreScrollState","RouteItem","path","_pattern","_keys","startsWith","match","matches","exec","out","decodeURIComponent","routesList","route","componentParams","dispatchNextTick","previousScrollState","popStateChanged","scrollTo","lastLoc","componentObj","unsubscribeLoc","newLoc","checkConditions","loaded","default","scrollRestoration","notification","async","toaster","sessionKey","CustomEvent","existing","JSON","sessionStorage","getItem","removeItem","e2","message","persist","timeout","background","reset","id","animateOut","themes","danger","success","warning","toasts","maybePurge","toast","purge","setItem","stringify","computedTimeout","random","toString","parseLegacyOptions","send","checkActive","el","matchesLocation","test","toggleClasses","className","inactiveClassName","shouldAdd","cls","remove","hasAttribute","self","defaultSetTimout","defaultClearTimeout","cachedSetTimeout","cachedClearTimeout","runTimeout","fun","setTimeout","clearTimeout","currentQueue","queue","draining","queueIndex","cleanUpNextTick","concat","drainQueue","marker","runClearTimeout","Item","array","prototype","apply","on","addListener","once","off","removeListener","removeAllListeners","emit","performanceNow","mozNow","msNow","oNow","webkitNow","getTime","startTime","nextTick","arguments","title","browser","env","argv","version","versions","binding","cwd","chdir","dir","umask","hrtime","previousTimestamp","clocktime","seconds","floor","nanoseconds","platform","release","uptime","queueMicrotask","func","Mutation","MutationObserver","WebKitMutationObserver","handle","called","observer","observe","characterData","scheduleDrain","setImmediate","MessageChannel","channel","port1","onmessage","port2","postMessage","scriptEl","onreadystatechange","documentElement","types","require$$0","require$$1","require$$2","require$$3","require$$4","require$$5","scheduled","install","lib","defineProperty","rngBrowser","getRandomValues","rnds8","crypto","msCrypto","Uint8Array","bytesToUuid_1","byteToHex","_default","buf","offset","bth","v1_1","_rng","_interopRequireDefault","_bytesToUuid","__esModule","_nodeId","_clockseq","_lastMSecs","_lastNSecs","clockseq","seedBytes","rng","msecs","nsecs","dt","tl","tmh","v35","hashfunc","generateUUID","namespace","unescape","encodeURIComponent","bytes","stringToBytes","uuid","hex","parseInt","uuidToBytes","TypeError","idx","err","DNS","URL","getOutputLength","inputLength8","safeAdd","y","lsw","md5cmn","q","s","num","cnt","md5ff","md5gg","md5hh","md5ii","md5Browser","msg","output","length32","hexTab","md5ToHexEncodedArray","olda","oldb","oldc","oldd","wordsToMd5","length8","Uint32Array","bytesToWords","v3_1","_v","_md","v4_1","rnds","z","ROTL","sha1Browser","K","H","N","ceil","M","j","pow","W","T","v5_1","_sha","exports","enumerable","_v2","_v3","_v4","v1","v3","v4","v5","hex_chr","md5cycle","md5blk","md5blks","md5blk_array","md51","tail","lo","hi","md51_array","subarray","rhex","toUtf8","utf8Str2ArrayBuffer","returnUInt8Array","buff","ArrayBuffer","arrayBuffer2Utf8Str","String","fromCharCode","concatenateArrayBuffers","second","byteLength","buffer","hexToBinaryString","SparkMD5","clamp","min","to","targetArray","sourceArray","begin","appendBinary","contents","_buff","_length","_hash","raw","_finish","getState","setState","hashBinary","content","factory","stack","metaStack","lastMetaElement","lastElementIndex","arrayPrefix","objPrefix","res","hasOwnProperty","collationIndex","parsedNum","numChar","parsedString","lastCh","numConsecutiveSlashes","ch","arrayElement","objElement","parseFloat","argsarray","inherits_browserModule","ctor","superCtor","super_","constructor","configurable","TempCtor","ExportedSet","ExportedMap","EventHandlers","EventEmitter","$getMaxListeners","that","_maxListeners","defaultMaxListeners","emitNone","isFn","listeners","arrayClone","emitOne","arg1","emitTwo","arg2","emitThree","arg3","emitMany","_addListener","listener","prepend","events","_events","newListener","_eventsCount","unshift","warned","w","emitter","count","log","_onceWrap","fired","g","listenerCount","evlistener","copy","mangle","unmangle","Map$1","_store","Set$1","cloneBinaryObject","object","cloneArrayBuffer","webkitSlice","usingDomains","domain","getPrototypeOf","setMaxListeners","isNaN","getMaxListeners","er","doError","domainEmitter","domainThrown","prependListener","prependOnceListener","originalListener","spliceOne","unwrapListeners","eventNames","Reflect","ownKeys","mangled","Symbol","getOwnPropertyDescriptor","species","supportsMapAndSet","funcToString","Function","objectCtorString","clone","newObject","toISOString","Blob","isBinaryObject","proto","Ctor","isPlainObject","getArguments","toPromise","usedCB","reject","resp","mesg","adapterFun","_closed","_destroyed","logArgs","origCallback","responseArgs","logApiCall","taskqueue","isReady","addTask","failed","pick","hasLocal","identityFunction","formatResultForOpenRevsGet","ok","bulkGet","db","requests","docs","requestsById","request","numDocs","numDone","perDocResults","checkDone","results","allRequests","nextBatch","upTo","batch","docId","docIdx","docRequests","docOpts","open_revs","rev","formatResult","param","processBatch","localStorage","hasLocalStorage","Changes","EE","_listeners","attachBrowserEvents","guardedConsole","method","defaultBackOff","maxTimeout","randomNumber","explainError","status","inherits","dbName","inprogress","eventFunction","changesOpts","changes","seq","since","cancelled","onChange","immediate","notifyLocalWindows","notify","$inject_Object_assign","nextSource","nextKey","PouchError","reason","MISSING_BULK_DOCS","MISSING_DOC","REV_CONFLICT","INVALID_ID","MISSING_ID","RESERVED_ID","UNKNOWN_ERROR","BAD_ARG","QUERY_PARSE_ERROR","DOC_VALIDATION","BAD_REQUEST","NOT_AN_OBJECT","IDB_ERROR","INVALID_REV","MISSING_STUB","createError","CustomPouchError","names","getOwnPropertyNames","generateErrorFromResponse","filterChange","req","hasFilter","query","query_params","change","filterReturn","tryFilter","include_docs","attachments","att","_attachments","stub","flatten","arrs","invalidIdError","isRemote","_remote","parseDesignDocFunctionName","parts","normalizeDesignDocFunctionName","normalized","qName","qParser","parser","parseUri","uri","encoded","$0","$1","$2","scopeEval","scope","upsert","diffFun","docRev","_rev","newDoc","_id","put","tryAndPut","thisAtob","atob","thisBtoa","btoa","createBlob","properties","builder","BlobBuilder","MSBlobBuilder","MozBlobBuilder","WebKitBlobBuilder","getBlob","binaryStringToArrayBuffer","bin","binStringToBluffer","binString","b64ToBluffer","b64","readAsBinaryString","blob","reader","FileReader","hasBinaryString","onloadend","binary","arrayBufferToBinaryString","readAsArrayBuffer","blobToBinaryString","blobOrBuffer","blobToBase64","base64","setImmediateShim","appendBlob","sliceBlob","arrayBuffer","appendString","string","binaryMd5","inputIsString","chunkSize","chunks","currentChunk","Md5","loadNextChunk","done","rawToBase64","stringMd5","deterministic_revs","clonedDoc","_rev_tree","winningRev","metadata","winningId","winningPos","winningDeleted","toVisit","rev_tree","tree","ids","branches","pos","traverseRevTree","revs","newCtx","sortByPos","collectLeaves","leaves","isLeaf","acc","sort","reverse","collectConflicts","win","conflicts","leaf","rootToLeaf","paths","sortByPos$1","insertSorted","item","comparator","mid","low","high","binarySearch","pathToTree","numStemmed","currentLeaf","compareTree","mergeTree","in_tree1","in_tree2","tree1","tree2","doMerge","dontExpand","restree","branch","t1","t2","diff","candidateParents","trees","parentIdx","elements","elementsLen","merge","depth","newTree","stemmed","stemmedRevs","revHash","stem","getTrees","isDeleted","isLocalId","Changes$1","complete","ee","cancel","lastSeq","isCancelled","tryCatchInChangeListener","validateChanges","processChange","changeList","_conflicts","compare","right","yankError","compareByIdThenRev","idCompare","_revisions","doNextCompaction","_compactionQueue","last_seq","_compact","AbstractPouchDB","TaskQueue","PouchDB","__opts","auto_compaction","backend","adapter","adapters","preferredAdapters","adapterName","use_prefix","parseAdapter","_adapter","valid","fail","onDestroyed","from_constructor","onClosed","prepareForDestruction","_changesFilterPlugin","validate","doChanges","continuous","live","normalize","shouldFilter","descending","limit","newPromise","_changes","update_seq","post","bulkDocs","_putLocal","_deleted","_removeLocal","oldRevId","newRevNum","newRevId","putDoc","_put","new_edits","force","putAttachment","attachmentId","rev$$1","api","createAttachment","prevrevpos","content_type","revpos","removeAttachment","docOrId","optsOrRev","was_delete","revsDiff","missing","addToMissing","revId","_getRevisionTree","missingForId","processDoc","missingObj","compactDocument","maxHeight","revTree","edges","prnt","edge","computeHeight","candidates","_doCompaction","compact","return_docs","promises","row","all","_getLocal","finishOpenRevs","latest","_get","revs_info","splittedRev","revNo","currentPath","hashIndex","indexOfRev","howMany","_revs_info","_getAttachment","getAttachment","allDocs","skip","start_key","startkey","end_key","endkey","incompatibleOpt","allDocsKeysParse","_allDocs","close","_close","_info","db_name","_type","attachmentError","attachmentNameError","atts","cleanDocs","_bulkDocs","registerDependentDatabase","dependentDb","depDB","dependentDbs","usePrefix","destroyDb","_destroy","localDoc","deletedMap","trueName","execute","AbortController","f$1","fetch","Headers","eventEmitter","Pouch","destructListeners","_destructionListeners","dbList","setUpEventEmitter","addToPreferredAdapters","plugin","__defaults","defaults","defaultOpts","PouchAlt","getFieldFromDoc","parsedField","parseField","fieldName","fields","combinationFields","isCombinationalField","field","getKey","mergeAndedSelectors","selectors","selector","matcher","$eq","fieldMatchers","operator","$gte","$gt","mergeGtGte","$lte","$lt","mergeLtLte","$ne","mergeNe","mergeEq","mergeAndedSelectorsNested","isAndInSelector","isAnd","massageSelector","wasAnded","orOrNor","subSelector","MIN_MAGNITUDE","collate","normalizeKey","ai","bi","stringCollate","arrayCollate","ak","bk","objectCollate","Infinity","origKey","toJSON","indexify","expFormat","toExponential","magnitude","neg","magString","padWith","upToLength","padding","targetLength","pad","factor","factorStr","toFixed","numToIndexableString","toIndexableString","objKey","parseNumber","originalIdx","numAsString","magAsString","filterInMemoryFields","rows","requestDef","inMemoryFields","rowFilter","fieldSorter","getFieldValuesAsArray","sorting","aRow","bRow","collation","createFieldSorter","getValue","every","docFieldValue","some","orMatchers","find","matchCominationalSelector","matchSelector","userOperator","userValue","matchers","fieldExists","fieldIsNotUndefined","arrayContainsValue","$elemMatch","$allMatch","$exists","$mod","divisor","mod","modField","neValue","$in","$nin","$size","arraySize","$all","arrayContainsAllValues","$regex","regexMatch","$type","typeMatch","filterName","view","changesHandler","doc_ids","viewName","ddoc","mapFun","views","rowsMatched","matchesSelector","filterFun","filters","toObject","reduce","reservedWords","dataWords","parseRevisionInfo","parseDoc","newEdits","dbOpts","nRevNum","revInfo","revisions","revisionIds","makeRevTreeFromRevisions","specialKey","preprocessString","blobType","asBinary","parseBase64","digest","preprocessAttachment","md5","preprocessBlob","updateDoc","revLimit","prev","docInfo","writeDoc","splitRev","targetPos","targetId","revExists","previousWinningRev","previouslyDeleted","isRoot","newRev","rev_map","winningRev$$1","winningRevIsDeleted","delta","processDocs","docInfos","fetchedDocs","tx","overallCallback","idsToDocs","docsDone","docsToDo","checkAllDocsDone","currentDoc","resultsIdx","docWritten","nextDoc","rootIsMissing","insertDoc","DOC_STORE","BY_SEQ_STORE","ATTACH_STORE","ATTACH_AND_SEQ_STORE","META_STORE","LOCAL_STORE","DETECT_BLOB_SUPPORT_STORE","safeJsonStringify","json","vuvuzela","idbError","evt","encodeMetadata","deletedOrLocal","decodeMetadata","storedObject","safeJsonParse","decodeDoc","_doc_id_rev","lastIndexOf","readBlobData","body","asBlob","fetchAttachmentsIfNecessary","txn","attObj","objectStore","onsuccess","fetchAttachment","postProcessAttachments","attNames","compactRevs","possiblyOrphanedDigests","seqStore","attStore","attAndSeqStore","IDBKeyRange","deleteOrphanedAttachments","openCursor","only","cursor","digestSeq","primaryKey","continue","openTransactionSafely","idb","mode","transaction","idbBulkDocs","docStore","bySeqStore","attachStore","attachAndSeqStore","metaStore","docInfoError","metaDoc","allDocsProcessed","docCountDelta","preconditionErrored","_meta","blobSupport","onAllDocsProcessed","updateDocCountIfReady","docCount","newRevIsDeleted","isUpdate","collectResults","finishDoc","attachmentSaved","newAtt","saveAttachment","writeAttachments","afterPutDoc","revsToDelete","compactTree","metadataToStore","afterPutMetadata","attsAdded","attsToAdd","onerror","insertAttachmentMappings","putReq","overallErr","docv","recv","processedAttachment","preprocessAttachments","txnResult","onabort","ontimeout","oncomplete","finish","digests","filename","verifyAttachment","attErr","verifyAttachments","numFetched","revs_limit","readMetadata","fetchExistingDocs","startTransaction","runBatchedCursor","keyRange","batchSize","onBatch","keysBatch","valuesBatch","pseudoCursor","onGetAll","onGetAllKeys","onCursor","getAll","getAllKeys","newKeyRange","lastKey","upper","upperOpen","code","lowerBound","idbAllDocs","keyRangeError","inclusiveEnd","inclusive_end","upperBound","createKeyRange","onResultsReady","updateSeq","docIdRevIndex","allDocsInner","fetchDocAsynchronously","batchValues","batchValue","batchKeys","returnVal","total_rows","onSuccess","maxKey","getMaxUpdateSeq","allDocsKeys","applyNext","docIds","numResults","docIdsToMetadata","onGetMetadata","docIdRev","objectStores","winningDocs","metadatas","fetchWinningDocAndMetadata","winningDoc","processMetadataAndWinningDoc","onBatchDone","filtered","blobSupportPromise","cachedDBs","openReqList","IdbPouch","action","tryCode","enqueueTask","thisCallback","createSchema","createObjectStore","keyPath","autoIncrement","createIndex","unique","addDeletedOrLocalIndex","createLocalStoreSchema","migrateLocalStore","localStore","range","seqCursor","addAttachAndSeqStore","migrateAttsAndSeqs","digestMap","migrateMetadata","decodeMetadataCompat","onGetMetadataSeq","fetchMetadataSeq","metadataSeq","instanceId","reqOpts","historyNode","attachId","attachment","blobData","doc_count","idb_attachment_format","oldRev","oStore","oldDoc","openReq","indexedDB","deleteDatabase","cached","open","onupgradeneeded","oldVersion","migrations","migration","onversionchange","storedMetaDoc","completeSetup","storeMetaDocIfReady","instanceKey","countDocs","blob$$1","matchedChrome","navigator","userAgent","matchedEdge","checkBlobSupport","CHANGES_TIMEOUT_BUFFER","supportsBulkGetMap","readAttachmentsAsBlobOrBuffer","encodeDocId","preprocessAttachments$1","getHost","protocol","hasUrlPrefix","user","password","auth","username","genDBUrl","genUrl","pathDel","port","paramsToStr","HttpPouch","dbUrl","setupPromise","ourFetch","headers","credentials","nAuth","ua","isIE","isTrident","isEdge","isGET","shouldCacheBust","adapterFun$$1","setup","fetchJSON","response","v","skip_setup","encodeAttachmentId","uuid$$1","ping","compact_running","interval","doBulkGet","doBulkGetShim","numBatches","onResult","batchNum","subOpts","supportsBulkGet","fetchAttachments","filenames","promiseFactories","doNext","runNextBatch","onError","thisErr","pool","typeFieldDescriptor","fetchData","docOrDocs","contentType","process","Content-Type","paramStr","batch_size","heartbeat","requestTimeout","leftToFetch","feed","seq_interval","param_name","lastFetchedSeq","controller","aborted","fetchOpts","signal","fetched","raw_results_length","finished","QueryParseError","captureStackTrace","NotFoundError","BuiltInError","promisedCallback","sequentialize","promiseFactory","uniq","theSet","mapToKeysArray","createBuiltInError","sum","jLen","jNum","evalFunctionWithEval","TaskQueue$1","createView","sourceDB","reduceFun","temporary","localDocName","cachedViews","viewSignature","createViewSignature","_cachedViews","promiseForView","depDbName","fullViewName","depDbs","lastSeqDoc","persistentQueues","tempViewQueue","parseViewName","emitError","builtInReduce","sumsqr","_sumsqr","abstract","mapper","reducer","ddocValidator","tryMap","tryReduce","rereduce","sortByKeyThenValue","keyCompare","sliceResults","rowToDocId","postprocessAttachments","addHttpParam","paramName","asJson","coerceInteger","integerCandidate","asNumber","Number","checkQueryParseError","startkeyName","endkeyName","group_level","optionName","number","checkPositiveInteger","defaultsTo","getDocsToPersist","docIdsToChangesAndEmits","metaDocId","defaultMetaDoc","docData","indexableKeysToKeyValues","isGenOne","getKeyValueDocs","kvDocsRes","kvDocs","oldKeys","keyValue","newKeys","kvDoc","processKeyValueDocs","getQueue","updateView","mapResults","currentSeq","seqDocId","listOfDocsToPersist","docsToPersist","saveKeyValues","processNextBatch","createDocIdsToChangesAndEmits","createIndexableKeysToKeyValues","emittedKeyValue","complexKey","updateViewInQueue","queryView","totalRows","shouldReduce","fetchFromView","viewOpts","expectedKeys","parsedKeyAndDocId","parsedStr","parseIndexableString","onMapResultsReady","finalResults","shouldGroup","groups","lvl","POSITIVE_INFINITY","last","groupKey","reduceTry","reduceView","allDocsRes","docIdsToDocs","fetchPromises","keyStart","keyEnd","queryViewInQueue","queryPromised","_query","customQuery","keysAsString","httpQuery","finalPromiseFactory","fin","designDocName","stale","coerceOptions","viewCleanup","_viewCleanup","customViewCleanup","httpViewCleanup","docsToViews","viewsToStatus","ddocName","viewDBNames","statusIsGood","viewDBName","destroyPromises","localViewCleanup","createAbstractMapReduce","origMap","reduceFunString","builtIn","getBuiltIn","mapreduce","isGenOne$1","getDocAttachments","getDocs","diffs","resultDocs","fetchRevisionOneDocs","hasConflicts","bulkGetOpts","missingRev","createBulkGetOpts","bulkGetResponse","bulkGetInfo","remoteDoc","doCheckForLocalAttachments","fileHasChanged","getDocAttachmentsFromTargetOrSource","Boolean","REPLICATOR","updateCheckpoint","checkpoint","session","returnValue","session_id","replicator","Checkpointer","writeCheckpoint","updateTarget","updateSource","writeTargetCheckpoint","writeSourceCheckpoint","isForbiddenError","comparisons","targetDoc","sourceDoc","1","srcDoc","tgtDoc","compareReplicationHistory","compareReplicationLogs","sourceHistory","targetHistory","S","sourceRest","targetRest","hasSessionId","sessionId","getCheckpoint","generateReplicationId","queryParams","filterViewName","sortObjectPropertiesByKey","queryData","md5sum","replicate","currentBatch","repId","checkpointer","batches","pendingBatch","writingCheckpoint","changesCompleted","replicationCompleted","batches_limit","changesPending","changedDocs","docs_read","docs_written","doc_write_failures","errors","initCheckpointer","checkpointOpts","writeDocs","bulkOpts","completeReplication","errorsById","errorsNo","errorName","finishBatch","outResult","getChanges","onCheckpointError","getBatchDocs","got","startNextBatch","abortReplication","processPendingBatch","immediate$$1","fatalError","retry","back_off_function","backOffSet","current_back_off","backOff","onChangesComplete","onChangesError","_abortChanges","abortChanges","startChanges","_addedListeners","Replication","toPouch","PouchConstructor","replicateWrapper","replicateRet","Sync","canceled","optsPush","optsPull","pull","pullChange","pushChange","pushDenied","pullDenied","pushPaused","pullPaused","pushActive","pullActive","removed","removeAll","addOneListener","_readyCalled","replicateMethods","other","assign$1","setFieldInDoc","elem","massageCreateIndexRequest","dbFetch","Content-type","explain","getIndexes","deleteIndex","indexDef","callbackify","subArr","mergeObjects","oneArrayIsSubArrayOfOther","arrayEquals","arr1","arr2","createMapper","isShallow","checkShallow","isSingle","createShallowSingleMapper","toEmit","createShallowMultiMapper","createDeepSingleMapper","iLen","createDeepMultiMapper","abstractMapper","base64StringToBlobOrBuffer","abstractMapReduce","mapFunDef","abstractMapper$1","_customFindAbstractMapper","massageIndexDef","getKeyFromDoc","def","getIndexes$1","indexes","language","COLLATE_LO","COLLATE_HI","￿","SHORT_CIRCUIT_QUERY","queryOpts","checkFieldInIndex","indexFields","userOperatorLosesPrecision","sortFieldsByIndex","userFields","aIdx","bIdx","MAX_VALUE","getInMemoryFields","coreInMemoryFields","needToFilterInMemory","getBasicInMemoryFields","getInMemoryFieldsFromNe","checkIndexFieldsMatch","sortOrder","sortMatches","selectorMatches","leftIdx","oneSetIsSubArrayOfOther","logicalMatchers","isNonLogicalMatcher","checkIndexMatches","checkFieldsLogicallySound","findBestMatchingIndex","useIndex","matchingIndexes","findMatchingIndexes","defaultIndex","defaultUsed","userFieldsMap","arrayToObject","useIndexDdoc","useIndexName","maxScore","score","indexField","getSingleFieldCoreQueryPlan","combinedOpts","newQueryOpts","inclusive_start","getSingleFieldQueryOptsFor","getMultiFieldCoreQueryPlan","getCoreQueryPlan","getDefaultQueryPlan","inclusiveStart","usingGtlt","previousKeys","previousWasEq","previousWasSame","userOperators","newOpts","getMultiFieldQueryOpts","planQuery","shouldShortCircuit","userFieldsRes","selectorFields","sortFields","rightIdx","getUserFields","use_index","coreQueryPlan","find$1","cleanedUseIndex","massageSort","validateFindRequest","getIndexesRes","queryPlan","indexToUse","noneIdSorts","sortItem","validateSort","indexes_count","reverseOptions","originalOpts","original_limit","doAllDocs","signature","targetValue","docKey","filterInclusiveStart","createIndexAsCallback","originalIndexDef","getMd5","ascFields","validateIndex","ddocId","hasInvalidLanguage","viewExists","findAsCallback","explainAsCallback","dbname","bookmark","getIndexesAsCallback","deleteIndexAsCallback","perf","AC","AbortSignal","deprecatedOption","opt","instead","shouldWarn","LRUCache","deprecatedMethod","what","emitWarning","isPosInt","isFinite","getUintArray","Uint16Array","MAX_SAFE_INTEGER","ZeroArray","super","Stack","UintArray","heap","ttl","ttlResolution","ttlAutopurge","updateAgeOnGet","allowStale","dispose","disposeAfter","noDisposeOnSet","noUpdateTTL","maxSize","sizeCalculation","fetchMethod","maxAge","keyMap","keyList","valList","free","initialFill","disposed","initializeSizeTracking","initializeTTLTracking","ttls","starts","setItemTTL","isStale","unref","updateItemAge","cachedNow","getNow","getRemainingTTL","calculatedSize","sizes","removeItemSize","requireSize","addItemSize","evict","isValidIndex","rindexes","iterator","entries","getOptions","thisp","prune","purgeStale","entry","newIndex","oldVal","isBackgroundFetch","__abortController","moveToTail","ac","__staleWhileFetching","backgroundFetch","fetching","connect","del","deprecatedProperty","lruCache","SelectorBuilder","currentFieldName","accentGroup","accent","accentGroups","regex","includes","docType","regexIgnoreCase","regexIgnoreCaseAndDiactricis","selectorsForNumbersStartingWith","$and","$or","anySelectors","searchTerm","columns","searchTermWords","trim","searchWord","column","selectorsForSearchWord","columnsToSearch","search","numericSearchTerm","numeric","searchTermWord","defaultSettings","couchdbHost","couchdbHTTPS","couchdbPort","couchdbUser","couchdbPassword","couchdbName","wcUrl","wcKey","wcSecret","settingsKeys","settingsStore","settings","readFromLocalStorage","writeToLocalStorage","createStore","logHandler","Logger","VERSION","contextualLoggersByNameMap","defineLogLevel","TRACE","DEBUG","INFO","TIME","WARN","ERROR","OFF","ContextualLogger","defaultContext","setLevel","filterLevel","newLevel","getLevel","enabledFor","trace","invoke","debug","time","label","timeEnd","level","msgArgs","L","globalLogger","setHandler","createDefaultHandler","formatter","messages","timerStartTimeByLabelMap","invokeConsoleMethod","hdlr","timerLabel","useDefaults","defaultLevel","setDefaults","module","_prevLogger","noConflict","PouchDBFind","queryPaginatedDocsCache","Cache","cache","listenForDocType","changeListeners","cancelAllListeners","database","onConnectedCallback","updatedDoc","updateRev","updatedDocWithRev","last_update","forceRefreshCache","findCached","selectorBuilder","withDocType","build","withField","equals","isInteger","sortBy","rowsPerPage","onDocsChanged","filterbytype","cancelListenerForDocType","onDocsUpdated","cacheKey","sortReverse","currentPage","flatMap","docsMatchingAllSelectorsSortedBy","listenForChanges","forceRefresh","isNumeric","numericFieldStartsWith","startsWithIgnoreCase","uniqueValues","uniqueValue","saveParseTimestampToString","millis","date","getDate","padStart","getMonth","getFullYear","saveParseTimestampToHumanReadableString","dayDiff","date1","date2","ONE_DAY","differenceMs","round","daysBetween","millisAtStartOfToday","millisAtStartOfDay","ColorDefs","freeze","HIGHLIGHT_RED","HIGHLIGHT_GREEN","HIGHLIGHT_BLUE","HIGHLIGHT_YELLOW","ITEM_RESERVED","RENTAL_RETURNED_TODAY_GREEN","RENTAL_LATE_RED","RENTAL_TO_RETURN_TODAY_BLUE","DEFAULT_ROW_BACKGROUND_ODD","DEFAULT_ROW_BACKGROUND_EVEN","backgroundColor","highlight","display","isImageUrl","disableSort","hideInTable","item_id","Database","displayExport","activeRentalsForCustomerSelector","customerId","customerById","itemById","itemId","customer","formattedValue","customer_id","returned_on","hasReturnDate","rental","rentalHighlight","hasBeenReturnedToday","COLORS","to_return_on","shouldBeReturnedToday","shouldHaveBeenReturnedBeforeTodayAndIsNotReturned","customerHighlight","fetchDocsBySelector","customers","itemHighlight","items","highlightByPriority","highlightFunctions","highlightFunction","highlightColors","color","initialSort","columnShouldBeExported","export","rentalColumns","itemColumns","customerColumns","itemType","$location","csv","csvString","col","csvValues","replaceAll","convertToCSV","fetchAll","exportedFilenmae","download","createObjectURL","visibility","click","alert","clickOutside","handleClick","contains","defaultPrevented","menuItems","show","maxHeightPx","menuItem","onClick","tableToCSVExporterRef","tabs","exportCSVFile","isActive","isFirst","isHover","isSelectable","getOptionLabel","filterText","itemClasses","classes","isGroupHeader","isGroupItem","isItemFirst","isItemActive","isItemHover","isItemSelectable","optionIdentifier","itemIndex","hoverItemIndex","selectable","prev_items","listStyle","container","VirtualList","ItemComponent","isVirtualList","labelIdentifier","option","isCreator","getGroupHeaderLabel","itemHeight","hideEmptyState","noOptionsMessage","isMulti","activeItemIndex","listPlacement","listAutoWidth","listOffset","isScrollingTimer","isScrolling","handleSelect","handleHover","closeList","updateHoverItem","increment","isNonSelectableItem","scrollToActiveItem","offsetBounding","focusedElemBounding","querySelector","bottom","scrollTop","computePlacement","bounding","innerHeight","clientHeight","innerWidth","clientWidth","any","isOutOfViewport","_hoverItemIndex","findIndex","hoverItem","getSelectionLabel","activeValue","isDisabled","multiFullItemClearable","handleClear","viewport","visible","mounted","average_height","height_map","viewport_height","getElementsByTagName","content_height","offsetHeight","remaining","refresh","old_start","row_height","expected_height","actual_height","convertStringItemsToObjects","_items","isCreatable","isFocused","placeholder","placeholderAlwaysShow","itemFilter","groupBy","groupFilter","isGroupHeaderSelectable","loadOptions","hasError","containerStyles","createGroupHeaderItem","groupValue","createItem","isSearchable","inputStyles","isClearable","isWaiting","listOpen","loadOptionsInterval","inputAttributes","Icon","iconProps","showChevron","showIndicator","containerClasses","indicatorSvg","ClearIcon","_ClearIcon","_Item","List","_List","Selection","_Selection","MultiSelection","_MultiSelection","_VirtualList","filterMethod","filterResults","matchesFilter","groupValues","sortedGroupedItems","filterGroupedItems","addCreatableItem","_filterText","itemToCreate","prev_value","prev_filterText","prev_isFocused","prev_isMulti","selectedValue","getItems","later","callNow","debounce","details","filteredItems","_inputAttributes","checkValueForDuplicates","noDuplicates","findItem","selection","matchTo","handleMultiItemClear","itemToRemove","handleFocus","focus","ariaValues","ariaListOpen","ariaFocused","updateValueDisplay","autocapitalize","autocomplete","autocorrect","spellcheck","tabindex","aria-autocomplete","readonly","blur","showSelectedItem","showClearIcon","placeholderText","showMultiSelect","listProps","ariaSelection","selected","handleAriaSelection","ariaContext","_item","handleAriaContent","eventTarget","selectionOptions","selectedValuesFromString","valueString","selectedValues","selectedValuesArray","filterOptions","activeFilters","searchInputRef","timer","undebouncedSearchTerm","selectedValuesString","functionAfterDebounce","durationUnitRegex","startAt","unit","durationUnit","durationNum","numberOfPagesPromise","pageButtons","numberOfPages","setPage","page","button","pageButton","isImage","valueFunction","rowHeight","fontColor","isHEX","isRGB","brightnessByColor","cellBackgroundColorsFunction","evenRowNumber","displayValue","cellBackgroundColors","defaultBackgroundColor","newCellBackgroundColors","newColor","icon","viewBox","class","iconName","ligatures","unicode","svgPathData","faSort","faSortUp","faSortDown","indicateSort","mouseOverColHeader","cubicOut","sineInOut","cos","PI","fade","linear","opacity","fly","target_opacity","od","u","containerHeight","fullScreenOverlay","positionFixed","loadData","onLoadDataErrorText","closeButton","classContent","classWindow","ariaLabelledBy","ariaLabel","classWindowWrap","classBg","transitionWindowProps","transitionBgProps","classCloseButton","Component","baseSetContext","svelte.setContext","closeOnEsc","closeOnOuterClick","styleBg","styleWindowWrap","styleWindow","styleContent","styleCloseButton","unstyled","transitionBg","transitionWindow","disableFocusTrap","defaultState","modalWindow","cssBg","cssWindowWrap","cssWindow","cssContent","cssCloseButton","currentTransitionBg","currentTransitionWindow","prevBodyPosition","prevBodyOverflow","prevBodyWidth","outerClickTarget","toCssString","camelCaseToDash","isFunction","toVoid","onOpen","onClose","onOpened","NewComponent","newProps","disableScroll","enableScroll","overflow","isMounted","svelte.onDestroy","svelte.onMount","querySelectorAll","tabbable","activeElement","shiftKey","hidden","loadingText","buttons","nobind","inputContainer","footerButtonsWithContext","createNew","closePopup","groupedInputs","contextVars","injectContext","isHidden","inputs","propKey","initialValues","inputElements","footerButtons","max-width","margin-top","margin-bottom","margin","modal","onCloseCallback","Formular","columnsToDisplay","popupIsOpen","refreshWhenPopupCloses","onPopupClosed","focusSearchInput","rowsOnLastPage","popupFormular","actualRowsFittingOnPage","activeByDefault","sortByColKey","paginationElement","tableHeaderElement","tableRowElement","rowBorderSpacing","tableBodyHeight","shouldBeSortedByInitially","setInitialSortCol","is_date","get_interpolator","interpolators","createStyle","onEnd","target_value","previous_task","interpolate","elapsed","tweened","newStyle","onComplete","beforeStart","inRange","endRange","percent","firstItem","lastItem","play","borderStyle","checkStyle","canChange","changeBg","checked","labelId","primaryColor","secondaryColor","animationOptions","borderAnimation","stroke-dashoffset","stroke-dasharray","checkAnimation","setProp","prevValue","onSettingsChanged","notifier.success","$settingsStore","textAreaRef","multiline","onlyNumbers","quickset","resizeTextArea","scrollHeight","highlighted","safeStringFunction","theFunction","argument","safeFunction","numberOfMatches","listItem","searchWords","itemKeywords","keywords","removeAccents","searchFunction","labelFieldName","keywordsFieldName","valueFieldName","labelFunction","keywordsFunction","forceSingle","multiple","keywordsCleanFunction","textCleanFunction","userEnteredText","beforeChange","oldSelectedItem","newSelectedItem","onFocus","onBlur","onCreate","selectFirstIfEmpty","minCharactersToSearch","maxItemsToShowInList","ignoreAccents","matchAllKeywords","sortByMatchedKeywords","itemFilterFunction","itemSortFunction","lock","localFiltering","localSorting","cleanUserText","closeOnBlur","hideArrow","showClear","showLoadingIndicator","noResultsText","moreItemsText","createText","inputClassName","inputId","selectName","selectId","html5autocomplete","dropdownClassName","noInputStyles","required","selectedItem","highlightedItem","uniqueId","filteredListItems","inputDelayTimeout","opened","highlightIndex","filteredTextLength","listItems","lastRequestId","lastResponseId","safeLabelFunction","safeKeywordsFunction","prepareListItems","timerId","getListItem","textFiltered","prepareUserEnteredText","closeIfMinCharsToSearchReached","currentRequestId","chunk","processListItems","word","tempfilteredListItems","defaultItemFilterFunction","item1","item2","obj1","obj2","defaultItemSortFunction","hlfilter","highlightFilter","afterCreate","createdItem","findItemIndex","selectListItem","newItem","newListItem","selectItem","up","down","scrollIntoViewIfNeeded","scrollIntoView","onListItemClick","unselectItem","tag","processInput","onEsc","onBackspace","resetListToAllItemsAndOpen","notEnoughSearchText","labelLowercase","labelLowercaseNoAc","positions","keyword","keywordLen","pos1","pos2","keywordPatterns","pair","keywordPattern","reg","newHighlighted","showList","clearable","composedPath","Tab","ShiftTab","ArrowDown","ArrowUp","Escape","Backspace","suggestionFormat","onSelected","valueField","enable","onKeyPress","restrictInputToNumbers","getElementById","prevSelectedObject","selectedObject","$","weekdays","months","utcOffset","year","month","D","ms","Q","O","locale","$L","utc","$u","$x","$offset","$d","NaN","UTC","$y","$M","$D","$W","getDay","$H","getHours","$m","getMinutes","$s","getSeconds","$ms","getMilliseconds","$utils","isValid","isSame","startOf","endOf","isAfter","isBefore","$g","unix","valueOf","toDate","$locale","weekStart","$set","daysInMonth","subtract","format","invalidDate","meridiem","YY","YYYY","MM","MMM","monthsShort","MMMM","DD","dd","weekdaysMin","ddd","weekdaysShort","dddd","HH","hh","A","mm","ss","SSS","Z","getTimezoneOffset","toUTCString","extend","$i","isDayjs","en","Ls","formats","toUpperCase","firstDayOfWeek","longDateFormat","ordinal","localeData","isSameOrBefore","isSameOrAfter","yy","yearStart","LTS","LT","LL","LLL","LLLL","relativeTime","future","past","ensureFutureMonth","firstDate","secondDate","getCalendarPage","dayValidator","displayedRangeStart","displayedRangeEnd","weeks","currentDay","weekOfMonth","isRequestedMonth","days","partOfMonth","firstOfMonth","lastOfMonth","day","getMonths","selectableCallback","firstMonth","lastMonth","validator","isInRange","isToday","dayjs","buildDaySelectionValidator","moveDateWithinAllowedRange","isStart","minMax","de","contextKey","given","today","isDateChosen","chosen","preSelectedStart","preSelectedEnd","isRangePicker","sanitizeInitialValue","selectedStartDate","selectedEndDate","$selectedStartDate","$selectedEndDate","formattedSelected","formattedSelectedEnd","formattedCombined","createFormatter","leftDate","rightDate","leftCalendarDate","rightCalendarDate","shouldShakeDate","isOpen","isClosing","resetView","isSelectingFirstDate","dimensions","deadzone","medium","small","getPosition","pageWidth","viewportHeight","viewportWidth","contentWidth","scrollWidth","pageHeight","fullscreen","pageX","pageY","popover","triggerContainer","contentsAnimated","contentsWrapper","isFullscreen","translateY","translateX","trigger","checkForFocusLoss","$isOpen","closeOnFocusLoss","CalendarStyle","overrides","buttonBackgroundColor","buttonBorderColor","buttonTextColor","buttonWidth","highlightColor","passiveHighlightColor","dayBackgroundColor","dayBackgroundColorIsNight","dayTextColor","dayTextColorIsNight","dayTextColorInRange","dayHighlightedBackgroundColor","dayHighlightedTextColor","currentDayTextColor","selectedDayTextColor","timeNightModeTextColor","timeNightModeBackgroundColor","timeDayModeTextColor","timeDayModeBackgroundColor","timeSelectedTextColor","timeInputTextColor","timeConfirmButtonColor","timeConfirmButtonTextColor","toolbarBorderColor","contentBackground","monthYearTextColor","legendTextColor","datepickerWidth","isDateBetweenSelected","viewContextKey","isDaytime","visibleMonth","monthView","lastId","abbrev","displayedDate","availableMonths","monthSelectorOpen","incrementMonth","canIncrementMonth","canDecrementMonth","$displayedDate","toggleMonthSelectorOpen","monthSelected","monthDefinition","selectedMonth","isOnLowerBoundary","isOnUpperBoundary","myPosition","startPosition","$leftCalendarDate","endPosition","$rightCalendarDate","$monthView","monthIndex","shakeHighlightTimeout","registerSelection","proposedDay","theMonth","aMonth","aDay","checkIfVisibleDateIsSelectable","shakeDate","visibleMonthsId","createMonthView","createViewContext","mainContext","$date","morning","night","DateView","continueText","finalise","$component","isTimePicker","timeInput","resetTime","attemptValuePersist","syncInput","persistTime","digits","which","digit","tooManyDigits","invalidFirstDigit","invalidSecondDigit","invalidThirdDigit","isInvalidDigit","addDigit","decrement","timeStore","segment","minuteStep","ts","hour","minute","TimeView","toWrapperStyle","styling","startContextKey","endContextKey","swapDatesIfRequired","$isDateChosen","$isSelectingFirstDate","inTwoMonths","setMonth","getTimeZoneOffsetMs","showAlertOnPastDateSelection","addDays","setDate","newTimeMillis","nextUnusedId","registration_date","lastname","firstname","renewed_on","remark","subscribed_to_newsletter","email","street","house_number","postal_code","city","telephone_number","heard","confirm","removeDoc","notifier.danger","onDelete","fetchByIdAndType","createDoc","onSave","TextInput","AutocompleteInput","fetchUniqueCustomerFieldValues","Checkbox","DateInput","0","SelectInput","ONE_YEAR_AGO_MILLIS","Newsletter: Ja","required_fields","Newsletter: Nein","Beitritt vor > 1 Jahr","Beitritt vor < 1 Jahr","Verlängert vor > 1 Jahr","Verlängert vor < 1 Jahr","WC_CATEGORIES","Küche","slug","Garten","Freizeit","Haushalt","Kinder","Heimwerker","_settings","productId","hasSynonyms","synonyms","isRentedAndHasReturnDateInFuture","expected_return_date","sku","stock_status","variation","deposit","categories","category","short_description","description","meta_data","brand","itype","retries","fetchWithRetry","wcItemId","_productUrl","wc_id","_translateItemAttributesForWc","_productsUrl","setNumericValuesDefault0","colForKey","added","exists_more_than_once","manual","package","wc_url","image","WoocommerceClient","deleteItem","notifier.warning","wcDoc","permalink","onRestore","updateItem","onUpdate","createKeyValueStore","recentEmployeesStore","prevStore","createRecentEmployeesArray","fetchItemById","updateItemStatus","hasReturnDateInFuture","expReturnDate","getExpReturnDate","initialItemId","initialItem","initialItemName","rented_on","passing_out_employee","receiving_employee","hideToggleUpdateItemStatus","getRecentEmployees","employeeObj","employee","suggestReceivingEmployee","mostRecent","updateItemOfRental","item_name","itemExistsMoreThanOnce","updateToggleStatus","showNotificationsForItem","updateCustomerOfRental","customer_name","showNotificationsForCustomer","instock","outofstock","reserved","onbackorder","colorDescription","itemColorToDescription","notifier.info","sortItemByIdOrName","itemA","itemB","fetchAllDocsBySelector","activeRentals","customerColorToDescription","extended_on","deposit_returned","onReturnAndSave","searchValue","isNotEqualTo","7","14","21","selectedCustomer","startsWithIgnoreCaseAndDiacritics","MILLIS_PER_DAY","START_OF_TODAY","customerInputs","customerFilters","itemInputs","nicht gelöscht","gelöscht","verfügbar","ausgeliehen","reserviert","nicht verleihbar","Kategorie Küche","Kategorie Haushalt","Kategorie Garten","Kategorie Heimwerker","Kategorie Kinder","Kategorie Freizeit","rentalInputs","aktuell","abgeschlossen","Rückgabe heute","verspätet","indexCreated","currentMs","loadLogs","appendLog","persistLogs","logs","consoleHandler","formatLog","toLocaleDateString","toLocaleTimeString","getUTCDate","getUTCMonth","flip","ox","oy","transformOrigin","dx","dy","sqrt","sx","sy","REGEX","observeResize","onResize","resizeObserver","ResizeObserver","unobserve","command","execCommand","getTagsRecursive","tags","textAlign","_tag","saveRange","editor","documentSelection","getSelection","rangeCount","rangeStart","savedRange","getRangeAt","createRange","selectNodeContents","setEnd","startContainer","startOffset","metaRange","restoreRange","charIndex","nodeStack","foundStart","nodeType","nextCharIndex","setStart","cn","removeAllRanges","addRange","removeBlockTagsRecursive","tagsToRemove","wrapper","docFrag","createDocumentFragment","firstChild","child","replaceChild","unwrap","getActionBtns","actions","removeBadTags","badTag","isEditorClick","editorWrapper","parentElement","linkSvg","viewHtml","refs","references","actionObj","helper","showEditor","actionBtns","undo","redo","strike","sup","sub","h1","h2","blockquote","ol","ul","hr","center","justify","focusNode","actionBtn","$on","forecolor","colorPicker","showColorPicker","backcolor","removeFormat","removeFormatTags","cmd","dispatcher","colors","btns","selectColor","btn","getBtns","createStateStore","editors","contentId","foreColor","backColor","foreColorModal","backColorModal","blurActive","$state","userActions","newActions","getNewActionObj","defaultActions","getHtml","getText","setHtml","_btnClicked","$references","_handleButtonStatus","clearBtns","_onPaste","clipboardData","getData","cleanHtml","_onChange","_documentClick","$helper","_exec","sanitize","innerText","htmlData","_saveRange","_restoreRange","actionBarHeightPx","heightPx","widthPx","contentHtml","timestamp","INITIAL_WIDTH_HEIGHT","fontSize","noteViewElementWidth","noteViewElementHeight","editMode","contentChanged","lastNoteViewElementWidth","lastNoteViewElementHeight","initialResizeDone","storedSize","padZero","flipDurationMs","notes","loadNotesFromDatabase","fetchByType","noteA","noteB","orderIndex","onNoteDeleted","noteId","noteToRemove","note","onNoteChanged","changedContentHtml","onNoteDrop","dragEndIndex","dataTransfer","dropEffect","dragStartIndex","draggedNote","onNoteDragStart","effectAllowed","startIndex","setData","newNote","uuidv4","requestAnimFrame","throttled","thisArg","updateFn","updateArgs","ticking","_toLeftRightCenter","align","_alignStartEnd","isNullOrUndef","isObject","isNumberFinite","finiteOrDefault","defaultValue","valueOrDefault","toDimension","dimension","endsWith","each","loopable","_elementsEqual","a0","a1","ilen","v0","datasetIndex","clone$1","klen","isValidKey","_merger","tval","sval","sources","merger","mergeIf","_mergerIf","indexOfDotOrLength","resolveObjectKey","_capitalize","defined","TAU","PITAU","INFINITY","RAD_PER_DEG","HALF_PI","QUARTER_PI","TWO_THIRDS_PI","log10","sign","niceNum","roundedRange","almostEquals","niceRange","fraction","isNumber","epsilon","_setMinAndMaxByKey","property","toRadians","degrees","toDegrees","radians","_decimalPlaces","distanceBetweenPoints","pt1","pt2","_angleDiff","_normalizeAngle","_angleBetween","angle","sameAngleIsFullCircle","angleToStart","angleToEnd","startToAngle","endToAngle","_limitValue","atEdge","elasticIn","sin","elasticOut","effects","easeInQuad","easeOutQuad","easeInOutQuad","easeInCubic","easeOutCubic","easeInOutCubic","easeInQuart","easeOutQuart","easeInOutQuart","easeInQuint","easeOutQuint","easeInOutQuint","easeInSine","easeOutSine","easeInOutSine","easeInExpo","easeOutExpo","easeInOutExpo","easeInCirc","easeOutCirc","easeInOutCirc","easeInElastic","easeOutElastic","easeInBounce","easeOutBounce","easeInOutBounce","2","3","4","5","6","8","9","B","C","E","F","eq","hexString","isShort","lim","p2b","n2b","b2n","n2p","RGB_RE","HUE_RE","hsl2rgbn","hsv2rgbn","hwb2rgbn","rgb","rgb2hsl","calln","hsl2rgb","hue","hueParse","p1","p2","hwb2rgb","hsv2rgb","map$1","Y","X","V","U","R","P","G","I","J","OiceXe","antiquewEte","aqua","aquamarRe","azuY","beige","bisque","black","blanKedOmond","Xe","XeviTet","bPwn","burlywood","caMtXe","KartYuse","KocTate","cSO","cSnflowerXe","cSnsilk","crimson","cyan","xXe","xcyan","xgTMnPd","xWay","xgYF","xgYy","xkhaki","xmagFta","xTivegYF","xSange","xScEd","xYd","xsOmon","xsHgYF","xUXe","xUWay","xUgYy","xQe","xviTet","dAppRk","dApskyXe","dimWay","dimgYy","dodgerXe","fiYbrick","flSOwEte","foYstWAn","fuKsia","gaRsbSo","ghostwEte","gTd","gTMnPd","Way","gYF","gYFLw","gYy","honeyMw","hotpRk","RdianYd","Rdigo","ivSy","khaki","lavFMr","lavFMrXsh","lawngYF","NmoncEffon","ZXe","ZcSO","Zcyan","ZgTMnPdLw","ZWay","ZgYF","ZgYy","ZpRk","ZsOmon","ZsHgYF","ZskyXe","ZUWay","ZUgYy","ZstAlXe","ZLw","lime","limegYF","lRF","magFta","maPon","VaquamarRe","VXe","VScEd","VpurpN","VsHgYF","VUXe","VsprRggYF","VQe","VviTetYd","midnightXe","mRtcYam","mistyPse","moccasR","navajowEte","navy","Tdlace","Tive","TivedBb","Sange","SangeYd","ScEd","pOegTMnPd","pOegYF","pOeQe","pOeviTetYd","papayawEp","pHKpuff","peru","pRk","plum","powMrXe","purpN","YbeccapurpN","Yd","Psybrown","PyOXe","saddNbPwn","sOmon","sandybPwn","sHgYF","sHshell","siFna","silver","skyXe","UXe","UWay","UgYy","snow","sprRggYF","stAlXe","tan","teO","tEstN","tomato","Qe","viTet","JHt","wEte","wEtesmoke","Lw","LwgYF","names$1","nameParse","unpacked","tkeys","nk","unpack","transparent","modHSL","ratio","fromObject","functionParse","rgbParse","Color","hexParse","_rgb","_valid","hslString","weight","me","c1","c2","w2","w1","deg","rotate","index_esm","isPatternOrGradient","CanvasGradient","CanvasPattern","getHoverColor","saturate","darken","getScope$1","_descriptors","borderColor","datasets","devicePixelRatio","chart","getDevicePixelRatio","font","family","lineHeight","hover","hoverBackgroundColor","hoverBorderColor","hoverColor","indexAxis","interaction","intersect","maintainAspectRatio","onHover","parsing","plugins","responsive","scale","scales","showLine","describe","targetScope","targetName","scopeObject","targetScopeObject","privateName","defineProperties","_scriptable","_indexable","_fallback","_measureText","gc","longest","textWidth","measureText","_longestText","arrayOfThings","garbageCollect","save","jlen","nestedThing","restore","gcLen","_alignPixel","pixel","currentDevicePixelRatio","halfWidth","clearCanvas","canvas","resetTransform","clearRect","drawPoint","xOffset","yOffset","cornerRadius","pointStyle","rotation","radius","rad","translate","drawImage","beginPath","arc","closePath","moveTo","lineTo","SQRT1_2","rect","borderWidth","stroke","_isPointInArea","point","area","clipArea","clip","unclipArea","_steppedLineTo","midpoint","_bezierCurveTo","bezierCurveTo","cp1x","cp2x","cp1y","cp2y","renderText","lines","strokeWidth","strokeColor","line","translation","fillStyle","textBaseline","setRenderOpts","strokeStyle","lineWidth","strokeText","maxWidth","fillText","decorateText","strikethrough","underline","metrics","actualBoundingBoxLeft","actualBoundingBoxRight","actualBoundingBoxAscent","actualBoundingBoxDescent","yDecoration","decorationWidth","addRoundedRectPath","topLeft","bottomLeft","bottomRight","topRight","LINE_HEIGHT","FONT_STYLE","toLineHeight","_readValueToProps","objProps","read","toTRBL","toTRBLCorners","toPadding","toFont","fallback","toFontString","cacheable","createContext","parentContext","_lookup","table","cmp","_lookupByKey","_rlookupByKey","arrayEvents","unlistenArrayEvents","_chartjs","_arrayUnique","_createResolver","scopes","prefixes","rootScopes","getTarget","_resolve","toStringTag","_cacheable","_scopes","_rootScopes","_getTarget","override","Proxy","deleteProperty","_cached","proxy","readKey","needsSubResolver","createSubResolver","_resolveWithPrefixes","getKeysFromAllScopes","_storage","_attachContext","subProxy","descriptorDefaults","_proxy","_context","_subProxy","_stack","receiver","isScriptable","_resolveScriptable","isIndexable","resolver","_resolveArray","_resolveWithContext","allKeys","scriptable","indexable","_allKeys","resolveFallback","getScope","addScopes","parentScopes","parentFallback","allScopes","addScopesFromKey","subGetTarget","resolveKeysFromAllScopes","EPSILON","getPoint","points","getValueAxis","splineCurve","firstPoint","middlePoint","afterPoint","d01","d12","s01","s12","fa","fb","splineCurveMonotone","valueAxis","pointsLen","deltaK","mK","pointBefore","pointCurrent","pointAfter","slopeDelta","alphaK","betaK","tauK","squaredMagnitude","monotoneAdjust","iPixel","vPixel","monotoneCompute","capControlPoint","pt","_updateBezierControlPoints","controlPoints","spanGaps","cubicInterpolationMode","tension","capBezierPoints","inArea","inAreaPrev","inAreaNext","_isDomSupported","_getParentNode","domNode","parseMaxStyle","styleValue","parentProperty","valueInPixels","getPositionedStyle","styles","suffix","getRelativePosition","borderBox","boxSizing","paddings","borders","box","native","touches","offsetX","offsetY","shadowRoot","useOffsetPos","clientX","clientY","getCanvasPosition","round1","getMaximumSize","bbWidth","bbHeight","aspectRatio","margins","containerSize","containerStyle","containerBorder","containerPadding","getContainerSize","retinaScale","forceRatio","forceStyle","pixelRatio","deviceHeight","deviceWidth","setTransform","supportsEventListenerOptions","passiveSupported","passive","readUsedSize","getPropertyValue","getStyle","_pointInLine","_steppedInterpolation","_bezierInterpolation","cp1","cp2","intlCache","formatNumber","Intl","NumberFormat","getNumberFormat","getRtlAdapter","rtl","rectX","xPlus","leftForLtr","itemWidth","getRightToLeftAdapter","_itemWidth","overrideTextDirection","original","getPropertyPriority","prevTextDirection","restoreTextDirection","propertyFn","between","normalizeSegment","_boundSegment","bounds","startBound","endBound","getSegment","inside","subStart","shouldStart","shouldStop","_boundSegments","segments","splitByStyles","segmentOptions","chartContext","_chart","baseStyle","readStyle","_datasetIndex","prevStyle","addStyle","st","p0","p0DataIndex","p1DataIndex","styleChanged","doSplitByStyles","borderCapStyle","borderDash","borderDashOffset","borderJoinStyle","animator","_request","_charts","_running","_lastDate","anims","numSteps","initial","currentStep","_update","_refresh","draw","_active","_total","_notify","charts","progress","_getAnims","cur","_duration","boolean","c0","mix","Animation","cfg","currentValue","_fn","_easing","_start","_loop","_target","_prop","_from","_to","_promises","remain","rej","numbers","resize","animations","hide","Animations","_properties","configure","animatedProps","newOptions","$shared","$animations","resolveTargetOptions","_createAnimations","awaitAll","_animateOptions","scaleClip","allowedOverflow","getSortedDatasetIndices","filterVisible","metasets","_getSortedDatasetMetas","applyStack","dsIndex","singleMode","otherValue","isStacked","meta","stacked","getOrCreateStack","stacks","stackKey","indexValue","subStack","getLastIndexInStack","vScale","positive","getMatchingVisibleMetas","updateStacks","parsed","_cachedMeta","_stacks","iScale","iAxis","axis","vAxis","indexScale","valueScale","getStackKey","_top","_bottom","getFirstScaleId","clearStacks","_parsed","isDirectUpdateMode","cloneIfNotShared","shared","DatasetController","_ctx","_cachedDataOpts","getMeta","_parsing","_data","_objectData","_sharedOptions","_drawStart","_drawCount","enableOptionSharing","$context","_syncList","initialize","linkScales","_stacked","addElements","dataset","getDataset","chooseId","xid","xAxisID","yid","yAxisID","rid","rAxisID","iid","iAxisID","vid","vAxisID","xScale","getScaleForId","yScale","rScale","getDatasetMeta","scaleID","adata","convertObjectDataToArray","isExtensible","base","_dataCheck","datasetElementType","resetNewElements","stackChanged","oldStacked","_resyncElements","scopeKeys","datasetScopeKeys","getOptionScopes","createResolver","sorted","_sorted","parseArrayData","parseObjectData","parsePrimitiveData","isNotInOrderComparedToPrev","labels","getLabels","singleScale","xAxisKey","yAxisKey","parsedValue","canStack","otherScale","_getOtherScale","createStack","NEGATIVE_INFINITY","otherMin","otherMax","minDefined","maxDefined","getUserBounds","_skip","updateRangeFromParsed","getParsed","getLabelForValue","_clip","toClip","defaultClip","getMaxOverflow","chartArea","resolveDatasetElementOptions","resolveDataElementOptions","dataIndex","createDataContext","createDatasetContext","_resolveElementOptions","dataElementType","elementType","sharing","datasetElementScopeKeys","resolveNamedOptions","transition","datasetAnimationScopeKeys","sharedOptions","_animationsDisabled","_resolveAnimations","getSharedOptions","_setStyle","numMeta","numData","_insertElements","_removeElements","move","updateElements","_sync","computeMinSampleSize","_cache","$bar","visibleMetas","getAllParsedValues","getAllScaleValues","curr","updateMinAndPrev","getPixelForValue","ticks","getPixelForTick","parseValue","startValue","endValue","barStart","barEnd","_custom","parseFloatBar","parseArrayOrPrimitive","isFloatBar","custom","setBorderSkipped","borderSkipped","horizontal","borderProps","enableBorderRadius","parseEdge","startEnd","orig","v2","swap","setInflateAmount","inflateAmount","BarController","iAxisKey","vAxisKey","bars","getBasePixel","isHorizontal","ruler","_getRuler","firstOpts","includeOptions","updateSharedOptions","vpixels","_calculateBarValuePixels","ipixels","_calculateBarIndexPixels","updateElement","grouped","_getStacks","pixels","barThickness","_startPixel","_endPixel","stackCount","_getStackCount","categoryPercentage","barPercentage","baseValue","minBarLength","actualBase","floating","getDataVisibility","barSign","halfGrid","getLineWidthForValue","skipNull","maxBarThickness","computeFlexCategoryTraits","thickness","computeFitCategoryTraits","stackIndex","_getStackIndex","rects","_index_","grid","_value_","beginAtZero","BubbleController","getPixelForDecimal","tooltip","DoughnutController","innerRadius","outerRadius","getter","circumference","isDatasetVisible","_getRotation","_getCircumference","arcs","spacing","getMaxBorderWidth","getMaxOffset","cutout","chartWeight","_getRingWeight","_getRotationExtents","ratioX","ratioY","startAngle","endAngle","startX","startY","endX","endY","calcMax","calcMin","maxX","maxY","minX","minY","getRatioAndOffset","maxRadius","radiusLength","_getVisibleDatasetWeightTotal","total","calculateTotal","_getRingWeightOffset","animateRotate","calculateCircumference","animationOpts","centerX","centerY","animateScale","_circumference","metaData","borderAlign","hoverBorderWidth","hoverOffset","ringWeightOffset","legend","legendItem","toggleDataVisibility","tooltipItem","dataLabel","LineController","_dataset","animationsDisabled","pointCount","getStartAndCountOfVisiblePoints","_scaleRanges","newRanges","xmin","xmax","ymin","ymax","changed","scaleRangesChanged","_decimated","animated","maxGapLength","directUpdate","prevParsed","nullData","border","lastPoint","updateControlPoints","PolarAreaController","_updateRadius","minSize","cutoutPercentage","getVisibleDatasetCount","xCenter","yCenter","datasetStartAngle","getIndexAngle","defaultAngle","countVisibleElements","_computeAngle","getDistanceFromCenterForValue","angleLines","circular","pointLabels","PieController","RadarController","_fullLoop","pointPosition","getPointPositionForValue","ScatterController","controllers","DateAdapter","amount","weekday","members","_date","getRelativePosition$1","metaset","lookupMethod","_reversePixels","getRange","optimizedEvaluateItems","getSortedVisibleDatasetMetas","getIntersectItems","useFinalPosition","_minPadding","getNearestItems","distanceMetric","useX","useY","deltaX","deltaY","getDistanceMetricForAxis","minDistance","getCenterPoint","distance","getAxisItems","rangeMethod","intersectsItem","evaluateAllVisibleItems","Interaction","modes","nearest","STATIC_POSITIONS","filterByPosition","filterDynamicPositionByAxis","sortByWeight","setLayoutDims","layouts","stackWeight","placed","buildStacks","vBoxMaxWidth","hBoxMaxHeight","layout","fullSize","availableWidth","availableHeight","getCombinedMax","maxPadding","updateMaxPadding","boxPadding","updateDims","getPadding","newWidth","outerWidth","newHeight","outerHeight","widthChanged","heightChanged","same","getMargins","marginForPositions","fitBoxes","boxes","refitBoxes","refit","setBoxDims","placeBoxes","userPadding","autoPadding","_layers","layoutItem","minPadding","layoutBoxes","wrapBoxes","centerHorizontal","centerVertical","leftAndTop","rightAndBottom","vertical","buildLayoutBoxes","verticalBoxes","horizontalBoxes","beforeLayout","visibleVerticalBoxCount","updatePos","handleMaxPadding","BasePlatform","BasicPlatform","EVENT_TYPES","touchstart","touchmove","touchend","pointerenter","pointerdown","pointermove","pointerup","pointerleave","pointerout","isNullOrEmpty","eventListenerOptions","createAttachObserver","addedNodes","childList","subtree","createDetachObserver","removedNodes","drpListeningCharts","oldDevicePixelRatio","onWindowResize","dpr","createResizeObserver","contentRect","listenDevicePixelRatioChanges","releaseObserver","disconnect","unlistenDevicePixelRatioChanges","createProxyAndListen","fromNativeEvent","DomPlatform","renderHeight","renderWidth","displayWidth","displayHeight","initCanvas","proxies","$proxies","attach","isConnected","Element","getProps","final","defaultRoutes","formatters","tickValue","notation","maxTick","calculateDelta","logDelta","numDecimal","minimumFractionDigits","maximumFractionDigits","Ticks","autoSkip","tickOpts","ticksLimit","maxTicksLimit","tickLength","_tickSize","maxScale","maxChart","_maxLength","determineMaxTicks","majorIndices","major","enabled","getMajorIndices","numMajorIndices","newTicks","skipMajors","evenMajorSpacing","getEvenSpacing","factors","_factorize","calculateSpacing","avgMajorSpacing","majorStart","majorEnd","grace","drawBorder","drawOnChartArea","drawTicks","tickWidth","tickColor","minRotation","maxRotation","mirror","textStrokeWidth","textStrokeColor","autoSkipPadding","labelOffset","minor","crossAlign","showLabelBackdrop","backdropColor","backdropPadding","offsetFromEdge","sample","numItems","getPixelForGridLine","offsetGridLines","validIndex","lineValue","getTickMarkLength","getTitleHeight","titleAlign","reverseAlign","Scale","_margins","paddingTop","paddingBottom","paddingLeft","paddingRight","labelRotation","_range","_gridLineItems","_labelItems","_labelSizes","_longestTextCache","_userMax","_userMin","_suggestedMax","_suggestedMin","_ticksLength","_borderValue","_dataLimitsCached","suggestedMin","suggestedMax","metas","getMinMax","xLabels","yLabels","sampleSize","beforeSetDimensions","setDimensions","afterSetDimensions","beforeDataLimits","determineDataLimits","afterDataLimits","minmax","keepZero","_addGrace","beforeBuildTicks","buildTicks","afterBuildTicks","samplingEnabled","_convertTicksToLabels","beforeCalculateLabelRotation","calculateLabelRotation","afterCalculateLabelRotation","beforeFit","fit","afterFit","startPixel","endPixel","reversePixels","_alignToPixels","alignToPixels","notifyPlugins","_callHooks","beforeTickToLabelConversion","afterTickToLabelConversion","numTicks","maxLabelDiagonal","_isVisible","labelSizes","_getLabelSizes","maxLabelWidth","widest","maxLabelHeight","highest","asin","titleOpts","gridOpts","titleHeight","tickPadding","angleRadians","labelHeight","labelWidth","_calculatePadding","_handleMargins","isRotated","labelsBelowTicks","offsetLeft","offsetRight","generateTickLabels","_computeLabelSizes","caches","widths","heights","tickFont","fontString","nestedLabel","widestLabelSize","highestLabelSize","_resolveTickFontOptions","valueAt","decimal","getBaseValue","createTickContext","optionTicks","rot","ticksLength","borderOpts","axisWidth","axisHalfWidth","alignBorderValue","borderValue","alignedLineValue","tx1","ty1","tx2","ty2","x1","y1","x2","y2","positionAxisID","optsAtIndex","lineColor","tickBorderDash","tickBorderDashOffset","tickAndPadding","hTickAndPadding","lineCount","textOffset","_getXAxisLabelAlignment","_getYAxisLabelAlignment","halfCount","backdrop","labelPadding","fillRect","_computeGridLineItems","drawLine","setLineDash","lineDashOffset","lastLineWidth","_computeLabelArea","_computeLabelItems","titleX","titleY","titleArgs","drawBackground","drawGrid","drawTitle","drawLabels","tz","gz","axisID","TypedRegistry","isPrototypeOf","parentScope","isIChartComponent","register","itemDefaults","propertyParts","sourceName","sourceScope","routeDefaults","registerDefaults","registry","_typedRegistries","_each","typedRegistry","arg","_getRegistryForType","isForType","itemReg","camelMethod","PluginService","_init","hook","_createDescriptors","descriptor","cancelable","_oldCache","_notifyStateChanges","getPlugin","allPlugins","getOpts","pluginOpts","createDescriptors","previousDescriptors","pluginScopeKeys","getIndexAxis","datasetDefaults","determineAxis","scaleOptions","initOptions","chartDefaults","configScales","chartIndexAxis","firstIDs","scaleConf","defaultId","getDefaultScaleIDFromAxis","defaultScaleOptions","defaultID","getAxisFromDefaultScaleID","mergeScaleConfig","initData","keyCache","keysCached","cachedKeys","generate","addIfFound","Config","_config","initConfig","_scopeCache","_resolverCache","clearCache","datasetType","additionalOptionScopes","mainScope","resetCache","keyLists","_cachedScopes","subPrefixes","getResolver","hasFunction","needContext","resolverCache","KNOWN_POSITIONS","positionIsHorizontal","compare2Level","l1","l2","onAnimationsComplete","onAnimationProgress","onProgress","getCanvas","instances","getChart","Chart","userConfig","initialCanvas","existingChart","chartOptionScopes","OffscreenCanvas","_detectPlatform","updateConfig","acquireContext","_options","_aspectRatio","_metasets","_lastEvent","_responsiveListeners","_sortedMetasets","_plugins","_hiddenIndices","attached","_doResize","resizeDelay","_initialize","bindEvents","_resizeBeforeDraw","_resize","newSize","newRatio","render","axisOptions","scaleOpts","isRadial","dposition","dtype","scaleType","getScale","hasUpdated","addBox","_destroyDatasetMeta","newControllers","_removeUnreferencedMetasets","order","updateIndex","ControllerClass","getController","getElement","_updateMetasets","_resetElements","removeBox","animsDisabled","ensureScalesHaveIDs","buildOrUpdateScales","setsEqual","unbindEvents","buildOrUpdateControllers","buildOrUpdateElements","_updateLayout","_updateDatasets","_eventHandler","noArea","_idx","_updateDataset","layers","_drawDatasets","_drawDataset","useClip","setDatasetVisibility","_updateVisibility","_stop","releaseContext","toDataURL","bindUserEvents","bindResponsiveEvents","_add","_remove","detached","isAttached","activeElements","lastActive","_updateHoverStyles","replay","hoverOptions","deactivated","activated","updateHoverStyle","eventFilter","_handleEvent","lastEvent","getElementsAtEventForMode","invalidatePlugins","clipArc","pixelMargin","angleMargin","parseBorderRadius$1","angleDelta","borderRadius","halfThickness","innerLimit","computeOuterLimit","outerArcLimit","outerStart","outerEnd","innerStart","innerEnd","rThetaToXY","theta","pathArc","innerR","spacingOffset","alpha","avNogSpacingRadius","angleOffset","outerStartAdjustedRadius","outerEndAdjustedRadius","outerStartAdjustedAngle","outerEndAdjustedAngle","innerStartAdjustedRadius","innerEndAdjustedRadius","innerStartAdjustedAngle","innerEndAdjustedAngle","pCenter","p4","p8","inner","lineJoin","fullCircles","drawFullCircleBorders","unregister","ArcElement","chartX","chartY","centrePoint","anglePoint","distanceFromXCenter","distanceFromYCenter","radialDistanceFromCenter","atan2","getAngleFromPoint","rAdjust","halfAngle","halfRadius","radiusOffset","drawArc","setStyle","lineCap","pathVars","paramsStart","paramsEnd","segmentStart","segmentEnd","outside","pathSegment","lineMethod","stepped","getLineMethod","fastPathSegment","prevX","lastY","avgX","countX","pointIndex","drawX","truncX","_getSegmentMethod","usePath2D","Path2D","_path","strokePathWithCache","segmentMethod","strokePathDirect","LineElement","_points","_segments","_pointsUpdated","findStartAndEnd","solidSegments","_computeSegments","_interpolate","_getInterpolationMethod","interpolated","inRange$1","hitRadius","PointElement","mouseX","mouseY","hoverRadius","getBarBounds","bar","half","skipOrLimit","boundingRects","maxW","maxH","parseBorderWidth","maxR","enableBorder","parseBorderRadius","outer","skipX","skipY","addNormalRectPath","inflateRect","refRect","BarElement","addRectPath","cleanDecimatedDataset","cleanDecimatedData","plugin_decimation","algorithm","beforeElementsUpdate","xAxis","getStartAndCountOfVisiblePointsSimplified","threshold","decimated","samples","bucketWidth","sampledIndex","endIndex","maxAreaPoint","maxArea","nextA","avgY","avgRangeStart","avgRangeEnd","avgRangeLength","rangeOffs","rangeTo","pointAx","pointAy","lttbDecimation","minIndex","maxIndex","xMin","lastIndex","intermediateIndex1","intermediateIndex2","minMaxDecimation","decodeFill","fillOption","parseFillOption","simpleArc","computeBoundary","computeCircularBoundary","computeLinearBoundary","findSegmentEnd","addPointsBelow","sourcePoint","linesBelow","postponed","findPoint","pointValue","linePoints","firstValue","lastValue","getLineByIndex","sourcePoints","below","getLinesBelow","createBoundaryLine","buildStackLine","boundary","pointsFromSegments","resolveTarget","propagate","visited","clipY","getBounds","_getEdge","clipBounds","interpolatedLineTo","interpolatedPoint","_fill","tpoints","targetSegments","tgt","subBounds","fillSources","fillSource","notShape","lineLoop","targetLoop","drawfill","lineOpts","above","doFill","plugin_filler","_args","$filler","drawTime","getBoxSize","labelOpts","boxHeight","boxWidth","usePointStyle","Legend","_added","legendHitBoxes","_hoveredItem","doughnutMode","legendItems","columnSizes","lineWidths","buildLabels","generateLabels","labelFont","_computeTitleHeight","_fitRows","_fitCols","hitboxes","totalHeight","heightLimit","totalWidth","currentColWidth","currentColHeight","rtlHelper","hitbox","_draw","defaultColor","halfFontSize","textDirection","setWidth","lineDash","drawOptions","SQRT2","yBoxTop","xBoxLeft","drawLegendBox","_textX","titleFont","titlePadding","topPaddingPlusHalfFontSize","hitBox","lh","onLeave","isListened","hoveredItem","_getLegendItemAt","sameItem","itemsEqual","plugin_legend","_element","adjustHitBoxes","handleEvent","ci","Title","_padding","textSize","fontOpts","_drawArgs","plugin_title","titleBlock","createTitle","WeakMap","plugin_subtitle","positioners","hasValue","tooltipPosition","eventPosition","nearestElement","tp","pushOrConcat","toPush","splitNewlines","createTooltipItem","getLabelAndValue","getTooltipSize","footer","bodyFont","footerFont","titleLineCount","footerLineCount","bodyLineItemCount","combinedBodyLength","bodyItem","before","after","beforeBody","afterBody","titleSpacing","titleMarginBottom","displayColors","bodySpacing","footerMarginTop","footerSpacing","widthPadding","maxLineWidth","determineXAlign","yAlign","chartWidth","xAlign","caret","caretSize","caretPadding","doesNotFitWithAlign","determineAlignment","determineYAlign","getBackgroundPoint","alignment","paddingAndSize","alignX","alignY","getAlignedX","getBeforeAfterBodyLines","overrideCallbacks","Tooltip","_eventPosition","_size","_cachedAnimations","_tooltipItems","dataPoints","caretX","caretY","labelColors","labelPointStyles","labelTextColors","tooltipItems","beforeTitle","afterTitle","bodyItems","scoped","beforeLabel","afterLabel","beforeFooter","afterFooter","itemSort","labelColor","labelPointStyle","labelTextColor","_createItems","getTitle","getBeforeBody","getBody","getAfterBody","getFooter","positionAndSize","backgroundPoint","external","tooltipPoint","caretPosition","getCaretPosition","x3","y3","ptX","ptY","titleColor","colorX","rtlColorX","yOffSet","colorY","multiKeyBackground","outerX","innerX","strokeRect","bodyAlign","bodyLineHeight","xLinePadding","fillLineOfText","bodyAlignForCalculation","textColor","bodyColor","_drawColorBox","footerAlign","footerColor","tooltipSize","drawCaret","quadraticCurveTo","animX","animY","_updateAnimationTarget","hasTooltipContent","globalAlpha","drawBody","drawFooter","positionChanged","_positionChanged","plugin_tooltip","labelCount","Decimation","Filler","SubTitle","findOrAddLabel","addIfString","CategoryScale","_startValue","_valueRange","getDecimalForPixel","generateTicks$1","generationOptions","dataRange","precision","maxTicks","maxDigits","includeBounds","maxSpaces","rmin","rmax","countDefined","minSpacing","niceMin","niceMax","numSpaces","rounded","almostWhole","decimalPlaces","relativeLabelSize","LinearScaleBase","_endValue","setMin","setMax","minSign","maxSign","MIN_SAFE_INTEGER","stepSize","computeTickLimit","getTickLimit","_maxDigits","LinearScale","handleTickRangeOptions","isMajor","tickVal","LogarithmicScale","_zero","exp","endExp","endSignificand","significand","lastTick","generateTicks","getTickBackdropHeight","determineLimits","fitWithPointLabels","furthestLimits","furthestAngles","valueCount","getPointLabelContext","getPointPosition","drawingArea","plFont","_pointLabels","hLimits","vLimits","_setReductions","_pointLabelItems","tickBackdropHeight","outerDistance","extra","pointLabelPosition","yForAngle","getTextAlignForAngle","leftForTextAlign","buildPointLabelItems","pathRadiusLine","numberOrZero","logarithmic","RadialLinearScale","setCenterPoint","largestPossibleRadius","radiusReductionLeft","radiusReductionRight","radiusReductionTop","radiusReductionBottom","leftMovement","rightMovement","topMovement","bottomMovement","maxRight","maxLeft","maxTop","maxBottom","scalingFactor","scaledDistance","pointLabel","createPointLabelContext","distanceFromCenter","drawPointLabels","gridLineOpts","drawRadiusLine","animate","angleLines.color","pointLabels.color","ticks.color","INTERVALS","millisecond","common","steps","week","quarter","UNITS","sorter","isoWeekday","_parseOpts","determineUnitForAutoTicks","minUnit","capacity","addTick","timestamps","ticksFromTimestamps","majorUnit","setMajorTicks","TimeScale","_unit","_majorUnit","_offsets","_normalized","displayFormats","_applyBounds","_getLabelBounds","getLabelTimestamps","timeOpts","_generate","_filterBetween","_getLabelCapacity","determineUnitForFormatting","determineMajorUnit","initOffsets","getDecimalForValue","hasWeekday","getDataTimestamps","tooltipFormat","datetime","minorFormat","majorFormat","_tickFormatFunction","offsets","ticksOpts","tickLabelWidth","cosRotation","sinRotation","tickFontSize","exampleTime","exampleLabel","_getLabelSize","prevSource","prevTarget","nextTarget","span","TimeSeriesScale","_table","_minPos","_tableRange","_getTimestampsForTable","buildLookupTable","registerables","chartRef","yMarkers","yRegions","extra_keys","clean","startOfMonthMs","addMonths","monthsCount","monthDiff","d1","d2","calcStats","cachedStats","statsFromCache","stats","loadFromCache","rentals","withAny","greaterThan","buildSelectors","timestampLiesInMonthsBefore","monthCount","CURRENT_MS","activeCustomerCountsPerMonth","numberOfRentalsCountsPerMonth","newCustomerCountsPerMonth","itemCountPerMonth","monthsAgo","timestampNMonthsAgo","activeCustomerCount","rentalCount","newCustomerCount","itemCount","toLocaleString","lineTension","pointBorderColor","pointBackgroundColor","pointBorderWidth","pointHoverRadius","pointHoverBackgroundColor","pointHoverBorderColor","pointHoverBorderWidth","pointRadius","pointHitRadius","tableEditorConfig","tableViewConfig","TableView","LogView","Settings","Dashboard","onConnected","Cypress","serviceWorker","registration"],"mappings":"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"} \ No newline at end of file diff --git a/build/icons/search.svg b/build/icons/search.svg new file mode 100644 index 00000000..fc34a67e --- /dev/null +++ b/build/icons/search.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/demo/build/bundle.css b/demo/build/bundle.css new file mode 100644 index 00000000..ff1dbf6c --- /dev/null +++ b/demo/build/bundle.css @@ -0,0 +1,24 @@ +body, html{height:100%;width:100%;overflow:hidden;margin:0;padding:0;font-family:Tahoma, Verdana, Segoe, sans-serif}.container.svelte-zebrrh{height:100%;display:flex;flex-direction:column}:root{--highligh-color:#b8b8b8;--red:#ff2c5d;--yellow:#ffcd58;--green:#00d39a;--blue:#008cba;--darkblue:#003b4e}nav.svelte-dgsre0{position:sticky;top:0;width:100vw;height:50px;background-color:var(--blue);z-index:1}li.svelte-dgsre0{list-style-type:none;margin:5px 2vw;font-size:30px}li.left.svelte-dgsre0{float:left}li.right.svelte-dgsre0{float:right;margin-right:10px}a.active,svg.active{color:var(--yellow) !important}.left.svelte-dgsre0:hover{transition:0.25s all;transform:scale(1.05)}a.svelte-dgsre0{color:white;text-decoration:none;padding:0 2vw}ul.svelte-dgsre0{margin:0;padding:0;list-style:none}.container.svelte-wezv84{width:100%;height:100%;display:flex;justify-content:center}.svelte-wezv84{box-sizing:border-box}input[type="text"].svelte-wezv84,input[type="password"].svelte-wezv84{width:100%;padding:12px;border:1px solid #ccc;border-radius:4px;resize:vertical}label.svelte-wezv84{padding:12px 12px 12px 0;display:inline-block}.content.svelte-wezv84{border-radius:5px;padding:20px;min-width:80%}.col-25.svelte-wezv84{float:left;width:25%;margin-top:6px}.col-75.svelte-wezv84{float:left;width:75%;margin-top:6px}.row.svelte-wezv84:after{content:"";display:table;clear:both}@media screen and (max-width: 600px){.col-25.svelte-wezv84,.col-75.svelte-wezv84{width:100%}}.content.svelte-1jmp5ie{padding:0 1rem 1rem 1rem;width:100%;height:100%;overflow-y:scroll}.dashboardcontent.svelte-1tr6ndy{width:100%;height:100%;background-color:rgb(230, 230, 230);padding:1rem;box-sizing:border-box;overflow-y:scroll}.container.svelte-1tr6ndy{padding:0.4rem}.checkbox.svelte-d8g7vy.svelte-d8g7vy{--checkbox-color-primary:#242432;--checkbox-color-secondary:#d8d8ea;--checkbox-border-width:4%;--checkbox-border-width-active:7%;position:relative}.checkbox.svelte-d8g7vy input.svelte-d8g7vy{opacity:0;width:100%;height:100%;position:absolute;top:0;right:0;margin:0;padding:0;cursor:pointer}.checkbox__svg.svelte-d8g7vy.svelte-d8g7vy{width:100%;height:100%}.checkbox__check.svelte-d8g7vy.svelte-d8g7vy,.checkbox__border.svelte-d8g7vy.svelte-d8g7vy{stroke-width:var(--checkbox-border-width);fill:none;stroke-linecap:round;stroke-linejoin:round}.checkbox__border.svelte-d8g7vy.svelte-d8g7vy{width:calc(100% - (var(--checkbox-border-width) * 2));height:calc(100% - (var(--checkbox-border-width) * 2));transform:translate( + calc(var(--checkbox-border-width) * -1), + var(--checkbox-border-width) + ) + rotate(90deg);stroke:var(--checkbox-color-secondary);transition:0.2s;transform-origin:50% 50%}.checkbox__border.-active.svelte-d8g7vy.svelte-d8g7vy{stroke:var(--checkbox-color-primary);transition:none}.checkbox.svelte-d8g7vy:hover .checkbox__border.svelte-d8g7vy,.checkbox.-checked.svelte-d8g7vy .checkbox__border.svelte-d8g7vy{--checkbox-border-width:var(--checkbox-border-width-active)}.checkbox.-changeBg.svelte-d8g7vy .checkbox__border.svelte-d8g7vy{stroke:var(--checkbox-color-primary)}.checkbox__check.svelte-d8g7vy.svelte-d8g7vy{--checkbox-border-width:var(--checkbox-border-width-active);stroke:var(--checkbox-color-primary)}.dropbtn.svelte-6wx36t{color:white;border:none;cursor:pointer;padding:0}svg.svelte-6wx36t{width:auto;height:100%}.dropdown.svelte-6wx36t{position:relative;display:block}.dropdown-content.svelte-6wx36t{max-height:var(--max-height);position:absolute;background-color:rgb(0, 140, 186);color:#ffffff;right:0;font-size:1.4rem;width:15rem;-webkit-transition:all 0.2s linear 0s;-moz-transition:all 0.2s linear 0s;-ms-transition:all 0.2s linear 0s;-o-transition:all 0.2s linear 0s;transition:all 0.2s linear 0s;overflow:hidden}li.svelte-6wx36t{display:block;text-align:left;width:100%;cursor:pointer;padding:5px 10px;border-bottom:1px solid white}li.svelte-6wx36t:last-child{border-bottom:none}li.svelte-6wx36t:hover{color:rgb(255, 208, 0)}ul.svelte-6wx36t{list-style-type:none;padding:0}button.svelte-x15bm0{width:70px;height:70px;background-color:var(--blue);border-width:0px;border-radius:50%;box-shadow:0 6px 10px 0 #000000;transition:all 0.1s ease-in-out;font-size:50px;color:white;text-align:center;line-height:0px;padding-bottom:-20px;position:absolute;right:50px;bottom:50px;cursor:pointer}button.svelte-x15bm0:focus{box-shadow:0 6px 14px 0 #000000;transform:scale(1.05)}.container.svelte-13z3r12{display:flex;flex-direction:column;align-items:stretch;padding:0px}.searchFilterBar.svelte-13z3r12{width:calc(100% - 20px);margin:10px}.searchInput.svelte-13z3r12{width:calc(50% - 35px);height:42px;margin:0;padding:0 6px 0 16px;float:left}.searchFilterBar.svelte-13z3r12 .selectContainer{width:calc(50% - 35px);float:right}.container.svelte-1a9z21r.svelte-1a9z21r{position:absolute;bottom:0px;width:100%;display:flex;justify-content:center;align-items:center;height:60px}.pagination.svelte-1a9z21r.svelte-1a9z21r{display:flex;flex-shrink:0;align-self:center;justify-content:space-around;font-size:18px;padding:10px;width:60%;background-color:transparent}.pagination.svelte-1a9z21r a.svelte-1a9z21r{color:black;float:left;padding:8px 16px;text-decoration:none;border-radius:4px}a.svelte-1a9z21r.svelte-1a9z21r{color:var(--darkblue)}.pagination.svelte-1a9z21r a.active.svelte-1a9z21r{background-color:var(--blue);color:white}.pagination.svelte-1a9z21r a.svelte-1a9z21r:hover:not(.active):not(.disabled){background-color:#ddd}table.svelte-8zltn7{width:100%;table-layout:auto;position:relative;overflow-y:scroll;border-spacing:1px;padding:0 5px 0 5px}.tablecontainer.svelte-8zltn7{height:100%;overflow-x:scroll;-ms-overflow-style:none;scrollbar-width:none}.tablecontainer.svelte-8zltn7::-webkit-scrollbar{display:none}.error.svelte-8zltn7{position:absolute;color:red;font-size:2em;margin:20px;width:100%}.notescontainer.svelte-t4qyib{display:flex;flex-direction:column;background-color:white;--note-width:24rem}.notescontainerheader.svelte-t4qyib{font-size:1.7rem;padding:1rem 1rem 0 1rem;font-weight:bold}.notescontainercontent.svelte-t4qyib{display:flex;flex-direction:row;flex-wrap:wrap}.statscontainer.svelte-3chnvp{background-color:white;padding:1rem 1rem 1rem 1rem}.statscontainerheader.svelte-3chnvp{font-size:1.7rem;font-weight:bold;padding-bottom:1rem}.toasts.svelte-vlqkf6.svelte-vlqkf6.svelte-vlqkf6{list-style:none;position:fixed;top:0;right:0;padding:0;margin:0;z-index:9999}.toasts.svelte-vlqkf6>.toast.svelte-vlqkf6.svelte-vlqkf6{display:flex;align-items:center;position:relative;margin:1vh 1vw;min-width:98vw;position:relative;animation:svelte-vlqkf6-animate-in 600ms forwards;color:#fff;min-height:8vh}.toasts.svelte-vlqkf6>.toast.svelte-vlqkf6>button.svelte-vlqkf6{position:absolute;font-size:18px;right:0;margin:6px;color:#fff;outline:none;border:0;background-color:transparent}.toasts.svelte-vlqkf6>.toast.svelte-vlqkf6>.content.svelte-vlqkf6{padding:1vw;display:flex;font-weight:500;margin-right:20px}.toasts.svelte-vlqkf6>.toast.svelte-vlqkf6>.progress.svelte-vlqkf6{position:absolute;bottom:0;background-color:rgb(0, 0, 0, 0.3);height:6px;width:100%;animation-name:svelte-vlqkf6-shrink;animation-timing-function:linear;animation-fill-mode:forwards}.toasts.svelte-vlqkf6>.toast.svelte-vlqkf6.svelte-vlqkf6:before,.toasts.svelte-vlqkf6>.toast.svelte-vlqkf6.svelte-vlqkf6:after{content:"";position:absolute;z-index:-1;top:50%;bottom:0;left:1vw;right:1vw;border-radius:100px / 10px}.toasts.svelte-vlqkf6>.toast.svelte-vlqkf6.svelte-vlqkf6:after{right:1vw;left:auto;transform:skew(8deg) rotate(3deg)}@keyframes svelte-vlqkf6-animate-in{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215, .61, .355, 1);animation-timing-function:cubic-bezier(.215, .61, .355, 1)}0%{opacity:0;transform:translate3d(3000px, 0, 0)}60%{opacity:1;transform:translate3d(-25px, 0, 0)}75%{transform:translate3d(10px, 0, 0)}90%{transform:translate3d(-5px, 0, 0)}to{transform:none}}@keyframes svelte-vlqkf6-shrink{0%{width:98vw}100%{width:0}}@media(min-width: 480px){@keyframes svelte-vlqkf6-animate-in{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215, .61, .355, 1);animation-timing-function:cubic-bezier(.215, .61, .355, 1)}0%{opacity:0;transform:translate3d(3000px, 0, 0)}60%{opacity:1;transform:translate3d(-25px, 0, 0)}75%{transform:translate3d(10px, 0, 0)}90%{transform:translate3d(-5px, 0, 0)}to{transform:none}}@keyframes svelte-vlqkf6-shrink{0%{width:40vw}100%{width:0}}}@media screen and (min-width: 600px){.toasts.svelte-vlqkf6>.toast.svelte-vlqkf6.svelte-vlqkf6{min-width:40vw;min-height:auto}.toasts.svelte-vlqkf6>.toast.svelte-vlqkf6>.content.svelte-vlqkf6{justify-content:flex-start}}h1.svelte-pq99q7{color:var(--color);text-align:center;padding-top:0;margin-top:0}.container.svelte-pq99q7{width:400px;left:50%;top:50%;margin-left:-200px;margin-top:calc(var(--container-height) / -2);display:flex;align-items:center;flex-direction:column;padding:20px;border-radius:10px;background-color:transparent;z-index:99999999}.positionFixed.svelte-pq99q7{position:fixed}.fullscreenoverlay.svelte-pq99q7{position:absolute;left:0;top:0;width:100vw;height:100vh;z-index:99999998;background-color:rgba(20, 20, 20, 0.6)}input[type="text"].svelte-l8uxpu{width:100% !important;padding:0 0.7rem 0 0.7rem !important;border:1px solid #ccc !important;border-radius:4px !important;resize:vertical !important;height:2rem !important}textarea.svelte-l8uxpu{width:100% !important;resize:none;overflow:hidden}.container.svelte-7dr695 .autocomplete{width:100%}.container.svelte-7dr695 .autocomplete-input{border:1px solid #ccc;border-radius:4px;height:2.5rem}input.svelte-d77rmw{width:100%;padding:0.2rem 0.7rem 0.2rem 0.7rem;height:2rem;border:1px solid #ccc;border-radius:4px;resize:vertical;cursor:pointer;background-color:white;color:black}input[disabled].svelte-d77rmw{color:#dcdad1;background-color:rgba(239, 239, 239, 0.3)}.checkbox{margin-top:0.3rem}tr.svelte-xkfbgl:hover td{background-color:var(--highligh-color) !important;color:white !important}th.svelte-whzxrs{border-bottom:2px solid #000000;position:sticky;top:0;background-color:white}tr.svelte-whzxrs{height:40px}th.clickable.svelte-whzxrs{cursor:pointer}span.svelte-whzxrs{display:none}.visible.svelte-whzxrs{display:inline}.autocomplete.svelte-1nqq7zl.svelte-1nqq7zl{min-width:200px;display:inline-block;max-width:100%;position:relative;vertical-align:top;height:2.25em}.autocomplete.svelte-1nqq7zl.svelte-1nqq7zl:not(.hide-arrow):not(.is-loading)::after{border:3px solid;border-radius:2px;border-right:0;border-top:0;content:" ";display:block;height:0.625em;margin-top:-0.4375em;pointer-events:none;position:absolute;top:50%;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);-webkit-transform-origin:center;transform-origin:center;width:0.625em;border-color:#3273dc;right:1.125em;z-index:4}.autocomplete.show-clear.svelte-1nqq7zl.svelte-1nqq7zl:not(.hide-arrow)::after{right:2.3em}.autocomplete.svelte-1nqq7zl .svelte-1nqq7zl{box-sizing:border-box}.autocomplete-input.svelte-1nqq7zl.svelte-1nqq7zl{font:inherit;width:100%;height:100%;padding:5px 11px}.autocomplete.svelte-1nqq7zl:not(.hide-arrow) .autocomplete-input.svelte-1nqq7zl{padding-right:2em}.autocomplete.show-clear.svelte-1nqq7zl:not(.hide-arrow) .autocomplete-input.svelte-1nqq7zl{padding-right:3.2em}.autocomplete.hide-arrow.show-clear.svelte-1nqq7zl .autocomplete-input.svelte-1nqq7zl{padding-right:2em}.autocomplete-list.svelte-1nqq7zl.svelte-1nqq7zl{background:#fff;position:relative;width:100%;overflow-y:auto;z-index:99;padding:10px 0;top:0px;border:1px solid #999;max-height:calc(15 * (1rem + 10px) + 15px);user-select:none}.autocomplete-list.svelte-1nqq7zl.svelte-1nqq7zl:empty{padding:0}.autocomplete-list-item.svelte-1nqq7zl.svelte-1nqq7zl{padding:5px 15px;color:#333;cursor:pointer;line-height:1}.autocomplete-list-item.confirmed.svelte-1nqq7zl.svelte-1nqq7zl{background-color:#789fed;color:#fff}.autocomplete-list-item.selected.svelte-1nqq7zl.svelte-1nqq7zl{background-color:#2e69e2;color:#fff}.autocomplete-list-item-no-results.svelte-1nqq7zl.svelte-1nqq7zl{padding:5px 15px;color:#999;line-height:1}.autocomplete-list-item-create.svelte-1nqq7zl.svelte-1nqq7zl{padding:5px 15px;line-height:1}.autocomplete-list-item-loading.svelte-1nqq7zl.svelte-1nqq7zl{padding:5px 15px;line-height:1}.autocomplete-list.hidden.svelte-1nqq7zl.svelte-1nqq7zl{display:none}.autocomplete.show-clear.svelte-1nqq7zl .autocomplete-clear-button.svelte-1nqq7zl{cursor:pointer;display:block;text-align:center;position:absolute;right:0.1em;padding:0.3em 0.6em;top:50%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);z-index:4}.autocomplete.svelte-1nqq7zl:not(.show-clear) .autocomplete-clear-button.svelte-1nqq7zl{display:none}.autocomplete.svelte-1nqq7zl select.svelte-1nqq7zl{display:none}.autocomplete.is-multiple.svelte-1nqq7zl .input-container.svelte-1nqq7zl{height:auto;box-shadow:inset 0 1px 2px rgba(10, 10, 10, 0.1);border-radius:4px;border:1px solid #b5b5b5;padding-left:0.4em;padding-right:0.4em;display:flex;flex-wrap:wrap;align-items:stretch;background-color:#fff}.autocomplete.is-multiple.svelte-1nqq7zl .tag.svelte-1nqq7zl{display:flex;margin-top:0.5em;margin-bottom:0.3em}.autocomplete.is-multiple.svelte-1nqq7zl .tag.is-delete.svelte-1nqq7zl{cursor:pointer}.autocomplete.is-multiple.svelte-1nqq7zl .tags.svelte-1nqq7zl{margin-right:0.3em;margin-bottom:0}.autocomplete.is-multiple.svelte-1nqq7zl .autocomplete-input.svelte-1nqq7zl{display:flex;width:100%;flex:1 1 50px;min-width:3em;border:none;box-shadow:none;background:none}label.svelte-cqmlvo{padding:0.5rem 0.5rem 0.5rem 0;display:inline-block}.col-label.svelte-cqmlvo{float:left;width:40%}.col-input.svelte-cqmlvo{float:left;width:60%}row.svelte-cqmlvo{padding:0.3rem 0 0.3rem 0;display:inline-block;width:100%}h1.svelte-cqmlvo{height:2rem;padding:0;margin:0}.container.svelte-cqmlvo{width:100%;height:100%;display:flex;flex-direction:column;flex-wrap:nowrap;justify-content:center}.contentContainer.svelte-cqmlvo{display:block;height:100%;overflow-y:scroll;overflow-x:hidden}.content.svelte-cqmlvo{column-count:2}@media(max-width: 1045px){.content.svelte-cqmlvo{column-count:1}}.header.svelte-cqmlvo{flex-shrink:0;width:calc(100% - 1rem);padding:0.5rem 0.5rem 1rem 0.5rem;background-color:rgb(0, 140, 186);color:white;font-weight:normal}.footer.svelte-cqmlvo{border-top:1px solid rgb(204, 204, 204);flex-shrink:0}.note.svelte-1c1kny{display:flex;background-color:transparent}.noteview.svelte-1c1kny{padding:0.5rem 0.5rem 0.2rem 0.5rem;width:var(--note-width);height:var(--note-height);font-size:1.2rem;display:flex;flex-direction:column;justify-content:space-between;box-sizing:border-box;resize:both;overflow:auto}.notecontainer.svelte-1c1kny{padding:1rem;background-color:transparent}.noteview *{margin:0}.footer.svelte-1c1kny{font-style:italic;font-size:0.9rem;width:100%;display:flex;justify-content:space-between;align-items:center;padding-top:0.3rem;box-sizing:border-box}.deletebutton.svelte-1c1kny:hover{transition:0.25s all;transform:scale(1.1)}.noteviewcontent.svelte-1c1kny{width:100%;height:100%;cursor:pointer}.helptext.svelte-1c1kny{width:100%;height:100%;display:flex;justify-content:center;align-items:center;font-size:1.4rem;font-weight:bold;color:rgb(120, 120, 120)}.addnote.svelte-13ow87f.svelte-13ow87f{padding:0.5rem 0.5rem 0.2rem 0.5rem;width:var(--note-width);height:var(--note-width);box-sizing:border-box;font-size:1.2rem;cursor:pointer;border:4px solid var(--color)}.addnote.svelte-13ow87f .svelte-13ow87f{color:var(--color);fill:var(--color)}.addnote.svelte-13ow87f.svelte-13ow87f:hover{border-color:#000000}.addnote.svelte-13ow87f:hover .svelte-13ow87f{color:#000000;fill:#000000}.addnote.svelte-13ow87f.svelte-13ow87f,.addnote.svelte-13ow87f .svelte-13ow87f{-moz-transition:all 0.2s ease-in;-o-transition:all 0.2s ease-in;-webkit-transition:all 0.2s ease-in;transition:all 0.2s ease-in}.addnotecontainer.svelte-13ow87f.svelte-13ow87f{padding:1rem;--color:rgb(220, 220, 220)}.addnotecontent.svelte-13ow87f.svelte-13ow87f{padding:15%;align-items:center;display:flex;flex-direction:column;justify-content:space-around;box-sizing:border-box;width:100%;height:100%}.text.svelte-13ow87f.svelte-13ow87f{font-size:2rem}.circle.svelte-14upwad{height:var(--size);width:var(--size);border-color:var(--color) transparent var(--color) var(--color);border-width:calc(var(--size) / 15);border-style:solid;border-image:initial;border-radius:50%;animation:var(--duration) linear 0s infinite normal none running svelte-14upwad-rotate}@keyframes svelte-14upwad-rotate{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}.circle.svelte-1vclic6{width:var(--size);height:var(--size);box-sizing:border-box;position:relative;border:3px solid transparent;border-top-color:var(--colorOuter);border-radius:50%;animation:svelte-1vclic6-circleSpin var(--durationOuter) linear infinite}.circle.svelte-1vclic6:before,.circle.svelte-1vclic6:after{content:"";box-sizing:border-box;position:absolute;border:3px solid transparent;border-radius:50%}.circle.svelte-1vclic6:after{border-top-color:var(--colorInner);top:9px;left:9px;right:9px;bottom:9px;animation:svelte-1vclic6-circleSpin var(--durationInner) linear infinite}.circle.svelte-1vclic6:before{border-top-color:var(--colorCenter);top:3px;left:3px;right:3px;bottom:3px;animation:svelte-1vclic6-circleSpin var(--durationCenter) linear infinite}@keyframes svelte-1vclic6-circleSpin{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}.wrapper.svelte-1vf8im1{width:var(--size);height:var(--size);display:flex;justify-content:center;align-items:center;line-height:0;box-sizing:border-box}.inner.svelte-1vf8im1{transform:scale(calc(var(--floatSize) / 52))}.ball-container.svelte-1vf8im1{animation:svelte-1vf8im1-ballTwo var(--duration) infinite;width:44px;height:44px;flex-shrink:0;position:relative}.single-ball.svelte-1vf8im1{width:44px;height:44px;position:absolute}.ball.svelte-1vf8im1{width:20px;height:20px;border-radius:50%;position:absolute;animation:svelte-1vf8im1-ballOne var(--duration) infinite ease}.ball-top-left.svelte-1vf8im1{background-color:var(--ballTopLeftColor);top:0;left:0}.ball-top-right.svelte-1vf8im1{background-color:var(--ballTopRightColor);top:0;left:24px}.ball-bottom-left.svelte-1vf8im1{background-color:var(--ballBottomLeftColor);top:24px;left:0}.ball-bottom-right.svelte-1vf8im1{background-color:var(--ballBottomRightColor);top:24px;left:24px}@keyframes svelte-1vf8im1-ballOne{0%{position:absolute}50%{top:12px;left:12px;position:absolute;opacity:0.5}100%{position:absolute}}@keyframes svelte-1vf8im1-ballTwo{0%{transform:rotate(0deg) scale(1)}50%{transform:rotate(360deg) scale(1.3)}100%{transform:rotate(720deg) scale(1)}}.wrapper.svelte-h1a2xs{position:relative;width:var(--size);height:var(--size)}.circle.svelte-h1a2xs{position:absolute;width:var(--size);height:var(--size);background-color:var(--color);border-radius:100%;opacity:0.6;top:0;left:0;animation-fill-mode:both;animation-name:svelte-h1a2xs-bounce !important}@keyframes svelte-h1a2xs-bounce{0%,100%{transform:scale(0)}50%{transform:scale(1)}}.svelte-1exboqr{overflow:hidden;position:relative;text-indent:-9999px;display:inline-block;background:#f86;border-radius:50%;transform:rotateZ(90deg);transform-origin:50% 50%;animation:svelte-1exboqr-plus-loader-background var(--duration) infinite ease-in-out}.svelte-1exboqr:after{background:#f86;border-radius:50% 0 0 50%;content:"";position:absolute;right:50%;top:0;width:50%;height:100%;transform-origin:100% 50%;animation:svelte-1exboqr-plus-loader-top var(--duration) infinite linear}.svelte-1exboqr:before{background:#fc6;border-radius:50% 0 0 50%;content:"";position:absolute;right:50%;top:0;width:50%;height:100%;transform-origin:100% 50%;animation:svelte-1exboqr-plus-loader-bottom var(--duration) infinite linear}@keyframes svelte-1exboqr-plus-loader-top{2.5%{background:#f86;transform:rotateY(0deg);animation-timing-function:ease-in}13.75%{background:#ff430d;transform:rotateY(90deg);animation-timing-function:step-start}13.76%{background:#ffae0d;transform:rotateY(90deg);animation-timing-function:ease-out}25%{background:#fc6;transform:rotateY(180deg)}27.5%{background:#fc6;transform:rotateY(180deg);animation-timing-function:ease-in}41.25%{background:#ffae0d;transform:rotateY(90deg);animation-timing-function:step-start}41.26%{background:#2cc642;transform:rotateY(90deg);animation-timing-function:ease-out}50%{background:#6d7;transform:rotateY(0deg)}52.5%{background:#6d7;transform:rotateY(0deg);animation-timing-function:ease-in}63.75%{background:#2cc642;transform:rotateY(90deg);animation-timing-function:step-start}63.76%{background:#1386d2;transform:rotateY(90deg);animation-timing-function:ease-out}75%{background:#4ae;transform:rotateY(180deg)}77.5%{background:#4ae;transform:rotateY(180deg);animation-timing-function:ease-in}91.25%{background:#1386d2;transform:rotateY(90deg);animation-timing-function:step-start}91.26%{background:#ff430d;transform:rotateY(90deg);animation-timing-function:ease-in}100%{background:#f86;transform:rotateY(0deg);animation-timing-function:step-start}}@keyframes svelte-1exboqr-plus-loader-bottom{0%{background:#fc6;animation-timing-function:step-start}50%{background:#fc6;animation-timing-function:step-start}75%{background:#4ae;animation-timing-function:step-start}100%{background:#4ae;animation-timing-function:step-start}}@keyframes svelte-1exboqr-plus-loader-background{0%{background:#f86;transform:rotateZ(180deg)}25%{background:#f86;transform:rotateZ(180deg);animation-timing-function:step-start}27.5%{background:#6d7;transform:rotateZ(90deg)}50%{background:#6d7;transform:rotateZ(90deg);animation-timing-function:step-start}52.5%{background:#6d7;transform:rotateZ(0deg)}75%{background:#6d7;transform:rotateZ(0deg);animation-timing-function:step-start}77.5%{background:#f86;transform:rotateZ(270deg)}100%{background:#f86;transform:rotateZ(270deg);animation-timing-function:step-start}}.wrapper.svelte-9juun5{width:var(--size);height:var(--size)}.circle.svelte-9juun5{width:var(--size);height:var(--size);background-color:var(--color);animation-duration:var(--duration);border-radius:100%;display:inline-block;animation:svelte-9juun5-scaleOut var(--duration) ease-in-out infinite}@keyframes svelte-9juun5-scaleOut{0%{transform:scale(0)}100%{transform:scale(1);opacity:0}}.wrapper.svelte-1wp57lu{width:var(--size);height:var(--stroke);transform:scale(calc(var(--floatSize) / 75));display:flex;justify-content:center;align-items:center}.line.svelte-1wp57lu{width:var(--size);height:var(--stroke);background:var(--color);border-radius:var(--stroke);transform-origin:center center;animation:svelte-1wp57lu-spineLine var(--duration) ease infinite}@keyframes svelte-1wp57lu-spineLine{0%{transform:rotate(-20deg);height:5px;width:75px}5%{height:5px;width:75px}30%{transform:rotate(380deg);height:5px;width:75px}40%{transform:rotate(360deg);height:5px;width:75px}55%{transform:rotate(0deg);height:5px;width:5px}65%{transform:rotate(0deg);height:5px;width:85px}68%{transform:rotate(0deg);height:5px}75%{transform:rotate(0deg);height:5px;width:1px}78%{height:5px;width:5px}90%{height:5px;width:75px;transform:rotate(0deg)}99%,100%{height:5px;width:75px;transform:rotate(-20deg)}}.wrapper.svelte-1uxpkwt{height:var(--size);width:var(--size);display:inline-block;text-align:center;font-size:10px}.rect.svelte-1uxpkwt{height:100%;width:10%;display:inline-block;margin-right:4px;background-color:var(--color);animation:svelte-1uxpkwt-stretch var(--duration) ease-in-out infinite}@keyframes svelte-1uxpkwt-stretch{0%,40%,100%{transform:scaleY(0.4)}20%{transform:scaleY(1)}}.wrapper.svelte-vhcw6{height:calc(var(--size) / 15);width:calc(var(--size) * 2);background-color:var(--rgba);position:relative;overflow:hidden;background-clip:padding-box}.lines.svelte-vhcw6{height:calc(var(--size) / 15);background-color:var(--color)}.small-lines.svelte-vhcw6{position:absolute;overflow:hidden;background-clip:padding-box;display:block;border-radius:2px;will-change:left, right;animation-fill-mode:forwards}.small-lines.\31 .svelte-vhcw6{animation:var(--duration) cubic-bezier(0.65, 0.815, 0.735, 0.395) 0s + infinite normal none running svelte-vhcw6-long}.small-lines.\32 .svelte-vhcw6{animation:var(--duration) cubic-bezier(0.165, 0.84, 0.44, 1) + calc((var(--duration)+0.1) / 2) infinite normal none running svelte-vhcw6-short}@keyframes svelte-vhcw6-long{0%{left:-35%;right:100%}60%{left:100%;right:-90%}100%{left:100%;right:-90%}}@keyframes svelte-vhcw6-short{0%{left:-200%;right:100%}60%{left:107%;right:-8%}100%{left:107%;right:-8%}}.wrapper.svelte-1cy66mt{width:var(--size);height:var(--size)}.circle.svelte-1cy66mt{border-radius:100%;animation-fill-mode:both;position:absolute;opacity:0;width:var(--size);height:var(--size);background-color:var(--color);animation:svelte-1cy66mt-bounce var(--duration) linear infinite}@keyframes svelte-1cy66mt-bounce{0%{opacity:0;transform:scale(0)}5%{opacity:1}100%{opacity:0;transform:scale(1)}}.wrapper.svelte-17ey38u{position:relative;width:var(--size);height:var(--size)}.border.svelte-17ey38u{border-color:var(--color);position:absolute;top:0px;left:0px;width:var(--size);height:var(--size);opacity:0.4;perspective:800px;border-width:6px;border-style:solid;border-image:initial;border-radius:100%}.border.\31 .svelte-17ey38u{animation:var(--duration) linear 0s infinite normal none running svelte-17ey38u-ringOne}.border.\32 .svelte-17ey38u{animation:var(--duration) linear 0s infinite normal none running svelte-17ey38u-ringTwo}@keyframes svelte-17ey38u-ringOne{0%{transform:rotateX(0deg) rotateY(0deg) rotateZ(0deg)}100%{transform:rotateX(360deg) rotateY(180deg) rotateZ(360deg)}}@keyframes svelte-17ey38u-ringTwo{0%{transform:rotateX(0deg) rotateY(0deg) rotateZ(0deg)}100%{transform:rotateX(180deg) rotateY(360deg) rotateZ(360deg)}}.wrapper.svelte-14w6xk7{height:var(--size);width:var(--size);display:flex;align-items:center;justify-content:center}.dot.svelte-14w6xk7{height:var(--dotSize);width:var(--dotSize);background-color:var(--color);margin:2px;display:inline-block;border-radius:100%;animation:svelte-14w6xk7-sync var(--duration) ease-in-out infinite alternate both running}@-webkit-keyframes svelte-14w6xk7-sync{33%{-webkit-transform:translateY(10px);transform:translateY(10px)}66%{-webkit-transform:translateY(-10px);transform:translateY(-10px)}100%{-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes svelte-14w6xk7-sync{33%{-webkit-transform:translateY(10px);transform:translateY(10px)}66%{-webkit-transform:translateY(-10px);transform:translateY(-10px)}100%{-webkit-transform:translateY(0);transform:translateY(0)}}.wrapper.svelte-1fuumrt{width:var(--size);height:calc(var(--size) / 2);overflow:hidden}.rainbow.svelte-1fuumrt{width:var(--size);height:var(--size);border-left-color:transparent;border-bottom-color:transparent;border-top-color:var(--color);border-right-color:var(--color);box-sizing:border-box;transform:rotate(-200deg);border-radius:50%;border-style:solid;animation:var(--duration) ease-in-out 0s infinite normal none running + svelte-1fuumrt-rotate}@keyframes svelte-1fuumrt-rotate{0%{border-width:10px}25%{border-width:3px}50%{transform:rotate(115deg);border-width:10px}75%{border-width:3px}100%{border-width:10px}}.wrapper.svelte-8cmcz4{position:relative;display:flex;justify-content:center;align-items:center;width:calc(var(--size) * 2.5);height:var(--size);overflow:hidden}.bar.svelte-8cmcz4{position:absolute;top:calc(var(--size) / 10);width:calc(var(--size) / 5);height:calc(var(--size) / 10);margin-top:calc(var(--size) - var(--size) / 10);transform:skewY(0deg);background-color:var(--color);animation:svelte-8cmcz4-motion var(--duration) ease-in-out infinite}@keyframes svelte-8cmcz4-motion{25%{transform:skewY(25deg)}50%{height:100%;margin-top:0}75%{transform:skewY(-25deg)}}.wrapper.svelte-1x2s7pr{width:calc(var(--size) * 1.3);height:calc(var(--size) * 1.3);display:flex;justify-content:center;align-items:center}.firework.svelte-1x2s7pr{border:calc(var(--size) / 10) dotted var(--color);width:var(--size);height:var(--size);border-radius:50%;animation:svelte-1x2s7pr-fire var(--duration) cubic-bezier(0.165, 0.84, 0.44, 1) infinite}@keyframes svelte-1x2s7pr-fire{0%{opacity:1;transform:scale(0.1)}25%{opacity:0.85}100%{transform:scale(1);opacity:0}}.wrapper.svelte-446r86{position:relative;display:flex;justify-content:center;align-items:center;width:var(--size);height:calc(var(--size) / 2.5)}.cube.svelte-446r86{position:absolute;top:0px;width:calc(var(--size) / 5);height:calc(var(--size) / 2.5);background-color:var(--color);animation:svelte-446r86-motion var(--duration) cubic-bezier(0.895, 0.03, 0.685, 0.22) + infinite}@keyframes svelte-446r86-motion{0%{opacity:1}50%{opacity:0}100%{opacity:1}}.wrapper.svelte-1v1mfqa{position:relative;display:flex;justify-content:center;align-items:center;width:var(--size);height:var(--size)}.ring.svelte-1v1mfqa{position:absolute;border:2px solid var(--color);border-radius:50%;background-color:transparent;animation:svelte-1v1mfqa-motion var(--duration) ease infinite}@keyframes svelte-1v1mfqa-motion{0%{transform:translateY(var(--motionOne))}50%{transform:translateY(var(--motionTwo))}100%{transform:translateY(var(--motionThree))}}.wrapper.svelte-1unnvn6{height:var(--size);width:var(--size);display:flex;justify-content:center;align-items:center}.spinner.svelte-1unnvn6{height:var(--size);width:var(--size);animation:svelte-1unnvn6-rotate var(--duration) infinite linear}.dot.svelte-1unnvn6{width:60%;height:60%;display:inline-block;position:absolute;top:0;background-color:var(--color);border-radius:100%;animation:svelte-1unnvn6-bounce var(--duration) infinite ease-in-out}@keyframes svelte-1unnvn6-rotate{100%{transform:rotate(360deg)}}@keyframes svelte-1unnvn6-bounce{0%,100%{transform:scale(0)}50%{transform:scale(1)}}.wrapper.svelte-tycttu{position:relative;display:flex;justify-content:center;align-items:center;width:var(--size);height:var(--size)}.shadow.svelte-tycttu{color:var(--color);font-size:var(--size);overflow:hidden;width:var(--size);height:var(--size);border-radius:50%;margin:28px auto;position:relative;transform:translateZ(0);animation:svelte-tycttu-load var(--duration) infinite ease, + svelte-tycttu-round var(--duration) infinite ease}@keyframes svelte-tycttu-load{0%{box-shadow:0 -0.83em 0 -0.4em, 0 -0.83em 0 -0.42em, 0 -0.83em 0 -0.44em, + 0 -0.83em 0 -0.46em, 0 -0.83em 0 -0.477em}5%,95%{box-shadow:0 -0.83em 0 -0.4em, 0 -0.83em 0 -0.42em, 0 -0.83em 0 -0.44em, + 0 -0.83em 0 -0.46em, 0 -0.83em 0 -0.477em}10%,59%{box-shadow:0 -0.83em 0 -0.4em, -0.087em -0.825em 0 -0.42em, + -0.173em -0.812em 0 -0.44em, -0.256em -0.789em 0 -0.46em, + -0.297em -0.775em 0 -0.477em}20%{box-shadow:0 -0.83em 0 -0.4em, -0.338em -0.758em 0 -0.42em, + -0.555em -0.617em 0 -0.44em, -0.671em -0.488em 0 -0.46em, + -0.749em -0.34em 0 -0.477em}38%{box-shadow:0 -0.83em 0 -0.4em, -0.377em -0.74em 0 -0.42em, + -0.645em -0.522em 0 -0.44em, -0.775em -0.297em 0 -0.46em, + -0.82em -0.09em 0 -0.477em}100%{box-shadow:0 -0.83em 0 -0.4em, 0 -0.83em 0 -0.42em, 0 -0.83em 0 -0.44em, + 0 -0.83em 0 -0.46em, 0 -0.83em 0 -0.477em}}@keyframes svelte-tycttu-round{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}.square.svelte-btmyrn{height:var(--size);width:var(--size);background-color:var(--color);animation:svelte-btmyrn-squareDelay var(--duration) 0s infinite + cubic-bezier(0.09, 0.57, 0.49, 0.9);animation-fill-mode:both;perspective:100px;display:inline-block}@keyframes svelte-btmyrn-squareDelay{25%{-webkit-transform:rotateX(180deg) rotateY(0);transform:rotateX(180deg) rotateY(0)}50%{-webkit-transform:rotateX(180deg) rotateY(180deg);transform:rotateX(180deg) rotateY(180deg)}75%{-webkit-transform:rotateX(0) rotateY(180deg);transform:rotateX(0) rotateY(180deg)}100%{-webkit-transform:rotateX(0) rotateY(0);transform:rotateX(0) rotateY(0)}}.wrapper.svelte-nlgli4{height:var(--size);width:var(--size);border-radius:100%;animation:svelte-nlgli4-moonStretchDelay var(--duration) 0s infinite linear;animation-fill-mode:forwards;position:relative}.circle-one.svelte-nlgli4{top:var(--moonSize);background-color:var(--color);width:calc(var(--size) / 7);height:calc(var(--size) / 7);border-radius:100%;animation:svelte-nlgli4-moonStretchDelay var(--duration) 0s infinite linear;animation-fill-mode:forwards;opacity:0.8;position:absolute}.circle-two.svelte-nlgli4{opacity:0.1;border:calc(var(--size) / 7) solid var(--color);height:var(--size);width:var(--size);border-radius:100%;box-sizing:border-box}@keyframes svelte-nlgli4-moonStretchDelay{100%{transform:rotate(360deg)}}.wrapper.svelte-1sqavxm.svelte-1sqavxm{height:var(--size);width:var(--size);position:relative;display:flex;justify-content:center;align-items:center}.wrapper.svelte-1sqavxm .svelte-1sqavxm{line-height:0;box-sizing:border-box}.spinner-inner.svelte-1sqavxm.svelte-1sqavxm{height:var(--size);width:var(--size);transform:scale(calc(var(--size) / 70))}.mask.svelte-1sqavxm.svelte-1sqavxm{position:absolute;border-radius:2px;overflow:hidden;perspective:1000;backface-visibility:hidden}.plane.svelte-1sqavxm.svelte-1sqavxm{background:var(--color);width:400%;height:100%;position:absolute;z-index:100;perspective:1000;backface-visibility:hidden}#top.svelte-1sqavxm .plane.svelte-1sqavxm{z-index:2000;animation:svelte-1sqavxm-trans1 var(--duration) ease-in infinite 0s backwards}#middle.svelte-1sqavxm .plane.svelte-1sqavxm{transform:translate3d(0px, 0, 0);background:var(--rgba);animation:svelte-1sqavxm-trans2 var(--duration) linear infinite calc(var(--duration) / 4) + backwards}#bottom.svelte-1sqavxm .plane.svelte-1sqavxm{z-index:2000;animation:svelte-1sqavxm-trans3 var(--duration) ease-out infinite + calc(var(--duration) / 2) backwards}#top.svelte-1sqavxm.svelte-1sqavxm{width:53px;height:20px;left:20px;top:5px;transform:skew(-15deg, 0);z-index:100}#middle.svelte-1sqavxm.svelte-1sqavxm{width:33px;height:20px;left:20px;top:21px;transform:skew(-15deg, 40deg)}#bottom.svelte-1sqavxm.svelte-1sqavxm{width:53px;height:20px;top:35px;transform:skew(-15deg, 0)}@keyframes svelte-1sqavxm-trans1{from{transform:translate3d(53px, 0, 0)}to{transform:translate3d(-250px, 0, 0)}}@keyframes svelte-1sqavxm-trans2{from{transform:translate3d(-160px, 0, 0)}to{transform:translate3d(53px, 0, 0)}}@keyframes svelte-1sqavxm-trans3{from{transform:translate3d(53px, 0, 0)}to{transform:translate3d(-220px, 0, 0)}}span.svelte-evhfle{width:var(--size);height:calc(var(--size) / 4);position:relative;display:block}div.svelte-evhfle{width:calc(var(--size) / 4);height:calc(var(--size) / 4);position:absolute;left:0;top:0;border-radius:2px;background:var(--color);transform:translateX(-50%) rotate(45deg) scale(0);animation:svelte-evhfle-diamonds var(--duration) linear infinite}div.svelte-evhfle:nth-child(1){animation-delay:calc(var(--duration) * 2 / 3 * -1)}div.svelte-evhfle:nth-child(2){animation-delay:calc(var(--duration) * 2 / 3 * -2)}div.svelte-evhfle:nth-child(3){animation-delay:calc(var(--duration) * 2 / 3 * -3)}@keyframes svelte-evhfle-diamonds{50%{left:50%;transform:translateX(-50%) rotate(45deg) scale(1)}100%{left:100%;transform:translateX(-50%) rotate(45deg) scale(0)}}div.svelte-1cgj772{position:relative;width:var(--size);height:var(--size);background-color:transparent;box-shadow:inset 0px 0px 0px 2px var(--color);border-radius:50%}div.svelte-1cgj772::before,div.svelte-1cgj772:after{position:absolute;content:"";background-color:var(--color)}div.svelte-1cgj772:after{width:calc(var(--size) / 2.4);height:2px;top:calc(var(--size) / 2);left:calc(var(--size) / 2);transform-origin:1px 1px;animation:svelte-1cgj772-rotate calc(var(--duration) / 4) linear infinite}div.svelte-1cgj772:before{width:calc(var(--size) / 3);height:2px;top:calc((var(--size) / 2));left:calc((var(--size) / 2));transform-origin:1px 1px;animation:svelte-1cgj772-rotate var(--duration) linear infinite}@keyframes svelte-1cgj772-rotate{100%{transform:rotate(360deg)}}.svelte-g4wg3a{box-sizing:border-box}.bg.svelte-g4wg3a{position:fixed;z-index:1000;top:0;left:0;display:flex;flex-direction:column;justify-content:center;width:100vw;height:100vh;background:rgba(0, 0, 0, 0.66)}.wrap.svelte-g4wg3a{position:relative;margin:2rem;max-height:100%}.window.svelte-g4wg3a{position:relative;width:40rem;max-width:100%;max-height:100%;margin:2rem auto;color:black;border-radius:0.5rem;background:white}.content.svelte-g4wg3a{position:relative;padding:1rem;max-height:calc(100vh - 4rem);overflow:auto}.close.svelte-g4wg3a{display:block;box-sizing:border-box;position:absolute;z-index:1000;top:1rem;right:1rem;margin:0;padding:0;width:1.5rem;height:1.5rem;border:0;color:black;border-radius:1.5rem;background:white;box-shadow:0 0 0 1px black;transition:transform 0.2s cubic-bezier(0.25, 0.1, 0.25, 1), + background 0.2s cubic-bezier(0.25, 0.1, 0.25, 1);-webkit-appearance:none}.close.svelte-g4wg3a:before,.close.svelte-g4wg3a:after{content:'';display:block;box-sizing:border-box;position:absolute;top:50%;width:1rem;height:1px;background:black;transform-origin:center;transition:height 0.2s cubic-bezier(0.25, 0.1, 0.25, 1), + background 0.2s cubic-bezier(0.25, 0.1, 0.25, 1)}.close.svelte-g4wg3a:before{-webkit-transform:translate(0, -50%) rotate(45deg);-moz-transform:translate(0, -50%) rotate(45deg);transform:translate(0, -50%) rotate(45deg);left:0.25rem}.close.svelte-g4wg3a:after{-webkit-transform:translate(0, -50%) rotate(-45deg);-moz-transform:translate(0, -50%) rotate(-45deg);transform:translate(0, -50%) rotate(-45deg);left:0.25rem}.close.svelte-g4wg3a:hover{background:black}.close.svelte-g4wg3a:hover:before,.close.svelte-g4wg3a:hover:after{height:2px;background:white}.close.svelte-g4wg3a:focus{border-color:#3399ff;box-shadow:0 0 0 2px #3399ff}.close.svelte-g4wg3a:active{transform:scale(0.9)}.close.svelte-g4wg3a:hover,.close.svelte-g4wg3a:focus,.close.svelte-g4wg3a:active{outline:none}.button-tight.svelte-jklzts{height:1.5rem;font-size:smaller;line-height:0.75rem;margin-top:0.25rem;margin-left:0.1rem}.button-tight.svelte-jklzts:hover{transition:0.25s all;transform:scale(1.02)}.clear.svelte-a9z6xt{position:absolute;right:10px;top:50%;transform:translate(0, -50%);width:20px;color:#c5cacf;cursor:pointer}.clear.svelte-a9z6xt:hover{color:#2c3e50}.clear.svelte-a9z6xt{color:#3f4f5f}.cell.svelte-1ebmzyw.svelte-1ebmzyw{overflow:hidden;text-overflow:ellipsis}img.svelte-1ebmzyw.svelte-1ebmzyw{height:100%;display:block}td.svelte-1ebmzyw:hover>img.svelte-1ebmzyw{height:50vh;position:fixed;left:25vw;top:25vh;z-index:1}td.svelte-1ebmzyw.svelte-1ebmzyw{cursor:pointer;padding:0px;padding-left:2px;padding-right:2px}.footer.svelte-iinr0q{height:2rem;padding:0.5rem;margin:0;flex-shrink:0;display:flex;justify-content:space-between}.outerbox.svelte-rb892u{padding:0.6rem;width:26rem;break-inside:avoid}.group.svelte-rb892u{border:1px solid rgb(204, 204, 204);padding:1rem 1rem 0.5rem 1rem;border-radius:5px;display:flex;flex-direction:column}h3.svelte-rb892u{margin:0;padding:0 0 0.5em 0}#notes-content{width:var(--editor-width)}.cl-button:last-child{width:auto !important;float:right;background-color:#8de3ff !important}.selectContainer.svelte-b8sh3g.svelte-b8sh3g{--padding:0 16px;border:var(--border, 1px solid #d8dbdf);border-radius:var(--borderRadius, 3px);box-sizing:border-box;height:var(--height, 42px);position:relative;display:flex;align-items:center;padding:var(--padding);background:var(--background, #fff);margin:var(--margin, 0)}.selectContainer.svelte-b8sh3g input.svelte-b8sh3g{cursor:default;border:none;color:var(--inputColor, #3f4f5f);height:var(--height, 42px);line-height:var(--height, 42px);padding:var(--inputPadding, var(--padding));width:100%;background:transparent;font-size:var(--inputFontSize, 14px);letter-spacing:var(--inputLetterSpacing, -0.08px);position:absolute;left:var(--inputLeft, 0);margin:var(--inputMargin, 0)}.selectContainer.svelte-b8sh3g input.svelte-b8sh3g::placeholder{color:var(--placeholderColor, #78848f);opacity:var(--placeholderOpacity, 1)}.selectContainer.svelte-b8sh3g input.svelte-b8sh3g:focus{outline:none}.selectContainer.svelte-b8sh3g.svelte-b8sh3g:hover{border-color:var(--borderHoverColor, #b2b8bf)}.selectContainer.focused.svelte-b8sh3g.svelte-b8sh3g{border-color:var(--borderFocusColor, #006fe8)}.selectContainer.disabled.svelte-b8sh3g.svelte-b8sh3g{background:var(--disabledBackground, #ebedef);border-color:var(--disabledBorderColor, #ebedef);color:var(--disabledColor, #c1c6cc)}.selectContainer.disabled.svelte-b8sh3g input.svelte-b8sh3g::placeholder{color:var(--disabledPlaceholderColor, #c1c6cc);opacity:var(--disabledPlaceholderOpacity, 1)}.selectedItem.svelte-b8sh3g.svelte-b8sh3g{line-height:var(--height, 42px);height:var(--height, 42px);overflow-x:hidden;padding:var(--selectedItemPadding, 0 20px 0 0)}.selectedItem.svelte-b8sh3g.svelte-b8sh3g:focus{outline:none}.clearSelect.svelte-b8sh3g.svelte-b8sh3g{position:absolute;right:var(--clearSelectRight, 10px);top:var(--clearSelectTop, 11px);bottom:var(--clearSelectBottom, 11px);width:var(--clearSelectWidth, 20px);color:var(--clearSelectColor, #c5cacf);flex:none !important}.clearSelect.svelte-b8sh3g.svelte-b8sh3g:hover{color:var(--clearSelectHoverColor, #2c3e50)}.selectContainer.focused.svelte-b8sh3g .clearSelect.svelte-b8sh3g{color:var(--clearSelectFocusColor, #3f4f5f)}.indicator.svelte-b8sh3g.svelte-b8sh3g{position:absolute;right:var(--indicatorRight, 10px);top:var(--indicatorTop, 11px);width:var(--indicatorWidth, 20px);height:var(--indicatorHeight, 20px);color:var(--indicatorColor, #c5cacf)}.indicator.svelte-b8sh3g svg.svelte-b8sh3g{display:inline-block;fill:var(--indicatorFill, currentcolor);line-height:1;stroke:var(--indicatorStroke, currentcolor);stroke-width:0}.spinner.svelte-b8sh3g.svelte-b8sh3g{position:absolute;right:var(--spinnerRight, 10px);top:var(--spinnerLeft, 11px);width:var(--spinnerWidth, 20px);height:var(--spinnerHeight, 20px);color:var(--spinnerColor, #51ce6c);animation:svelte-b8sh3g-rotate 0.75s linear infinite}.spinner_icon.svelte-b8sh3g.svelte-b8sh3g{display:block;height:100%;transform-origin:center center;width:100%;position:absolute;top:0;bottom:0;left:0;right:0;margin:auto;-webkit-transform:none}.spinner_path.svelte-b8sh3g.svelte-b8sh3g{stroke-dasharray:90;stroke-linecap:round}.multiSelect.svelte-b8sh3g.svelte-b8sh3g{display:flex;padding:var(--multiSelectPadding, 0 35px 0 16px);height:auto;flex-wrap:wrap;align-items:stretch}.multiSelect.svelte-b8sh3g>.svelte-b8sh3g{flex:1 1 50px}.selectContainer.multiSelect.svelte-b8sh3g input.svelte-b8sh3g{padding:var(--multiSelectInputPadding, 0);position:relative;margin:var(--multiSelectInputMargin, 0)}.hasError.svelte-b8sh3g.svelte-b8sh3g{border:var(--errorBorder, 1px solid #ff2d55);background:var(--errorBackground, #fff)}.a11yText.svelte-b8sh3g.svelte-b8sh3g{z-index:9999;border:0px;clip:rect(1px, 1px, 1px, 1px);height:1px;width:1px;position:absolute;overflow:hidden;padding:0px;white-space:nowrap}@keyframes svelte-b8sh3g-rotate{100%{transform:rotate(360deg)}}.fa-svelte.svelte-1d15yci{width:1em;height:1em;overflow:visible;display:inline-block}.datepicker.svelte-19zfrtc{display:inline-block;text-align:center;overflow:visible;width:var(--datepicker-width)}.calendar-button.svelte-19zfrtc{padding:10px 20px;border:1px solid var(--button-border-color);display:block;text-align:center;width:var(--button-width);text-decoration:none;cursor:pointer;background:var(--button-background-color);color:var(--button-text-color);border-radius:7px;box-shadow:0px 0px 3px rgba(0, 0, 0, 0.1)}.svelte-19zfrtc,.svelte-19zfrtc:before,.svelte-19zfrtc:after{box-sizing:inherit}.contents.svelte-19zfrtc{min-width:320px;width:100%;display:flex;flex-direction:column;background:var(--content-background)}.view.svelte-19zfrtc{display:flex;flex-direction:column;align-items:center}@media(min-width: 680px){.view.svelte-19zfrtc{flex-direction:row;justify-content:center}}button.svelte-144mn5m{background-color:var(--color);border:none;border-radius:4px;color:white;padding:0.2rem 0.4rem;text-align:center;text-decoration:none;font-size:1.2rem;cursor:pointer}button.svelte-144mn5m:hover{transition:0.25s all;transform:scale(1.02)}.listContainer.svelte-1uyqfml{box-shadow:var(--listShadow, 0 2px 3px 0 rgba(44, 62, 80, 0.24));border-radius:var(--listBorderRadius, 4px);max-height:var(--listMaxHeight, 250px);overflow-y:auto;background:var(--listBackground, #fff);border:var(--listBorder, none);position:var(--listPosition, absolute);z-index:var(--listZIndex, 2);width:100%;left:var(--listLeft, 0);right:var(--listRight, 0)}.virtualList.svelte-1uyqfml{height:var(--virtualListHeight, 200px)}.listGroupTitle.svelte-1uyqfml{color:var(--groupTitleColor, #8f8f8f);cursor:default;font-size:var(--groupTitleFontSize, 12px);font-weight:var(--groupTitleFontWeight, 600);height:var(--height, 42px);line-height:var(--height, 42px);padding:var(--groupTitlePadding, 0 20px);text-overflow:ellipsis;overflow-x:hidden;white-space:nowrap;text-transform:var(--groupTitleTextTransform, uppercase)}.empty.svelte-1uyqfml{text-align:var(--listEmptyTextAlign, center);padding:var(--listEmptyPadding, 20px 0);color:var(--listEmptyColor, #78848f)}.item.svelte-3e0qet{cursor:default;height:var(--height, 42px);line-height:var(--height, 42px);padding:var(--itemPadding, 0 20px);color:var(--itemColor, inherit);text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.groupHeader.svelte-3e0qet{text-transform:var(--groupTitleTextTransform, uppercase)}.groupItem.svelte-3e0qet{padding-left:var(--groupItemPaddingLeft, 40px)}.item.svelte-3e0qet:active{background:var(--itemActiveBackground, #b9daff)}.item.active.svelte-3e0qet{background:var(--itemIsActiveBG, #007aff);color:var(--itemIsActiveColor, #fff)}.item.notSelectable.svelte-3e0qet{color:var(--itemIsNotSelectableColor, #999)}.item.first.svelte-3e0qet{border-radius:var(--itemFirstBorderRadius, 4px 4px 0 0)}.item.hover.svelte-3e0qet:not(.active){background:var(--itemHoverBG, #e7f2ff);color:var(--itemHoverColor, inherit)}.selection.svelte-pu1q1n{text-overflow:ellipsis;overflow-x:hidden;white-space:nowrap}.multiSelectItem.svelte-liu9pa.svelte-liu9pa{background:var(--multiItemBG, #ebedef);margin:var(--multiItemMargin, 5px 5px 0 0);border-radius:var(--multiItemBorderRadius, 16px);height:var(--multiItemHeight, 32px);line-height:var(--multiItemHeight, 32px);display:flex;cursor:default;padding:var(--multiItemPadding, 0 10px 0 15px);max-width:100%}.multiSelectItem_label.svelte-liu9pa.svelte-liu9pa{margin:var(--multiLabelMargin, 0 5px 0 0);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.multiSelectItem.svelte-liu9pa.svelte-liu9pa:hover,.multiSelectItem.active.svelte-liu9pa.svelte-liu9pa{background-color:var(--multiItemActiveBG, #006fff);color:var(--multiItemActiveColor, #fff)}.multiSelectItem.disabled.svelte-liu9pa.svelte-liu9pa:hover{background:var(--multiItemDisabledHoverBg, #ebedef);color:var(--multiItemDisabledHoverColor, #c1c6cc)}.multiSelectItem_clear.svelte-liu9pa.svelte-liu9pa{border-radius:var(--multiClearRadius, 50%);background:var(--multiClearBG, #52616f);min-width:var(--multiClearWidth, 16px);max-width:var(--multiClearWidth, 16px);height:var(--multiClearHeight, 16px);position:relative;top:var(--multiClearTop, 8px);text-align:var(--multiClearTextAlign, center);padding:var(--multiClearPadding, 1px)}.multiSelectItem_clear.svelte-liu9pa.svelte-liu9pa:hover,.active.svelte-liu9pa .multiSelectItem_clear.svelte-liu9pa{background:var(--multiClearHoverBG, #fff)}.multiSelectItem_clear.svelte-liu9pa:hover svg.svelte-liu9pa,.active.svelte-liu9pa .multiSelectItem_clear svg.svelte-liu9pa{fill:var(--multiClearHoverFill, #006fff)}.multiSelectItem_clear.svelte-liu9pa svg.svelte-liu9pa{fill:var(--multiClearFill, #ebedef);vertical-align:top}svelte-virtual-list-viewport.svelte-g2cagw{position:relative;overflow-y:auto;-webkit-overflow-scrolling:touch;display:block}svelte-virtual-list-contents.svelte-g2cagw,svelte-virtual-list-row.svelte-g2cagw{display:block}svelte-virtual-list-row.svelte-g2cagw{overflow:hidden}.sc-popover.svelte-10d3skr.svelte-10d3skr{position:relative}.contents-wrapper.svelte-10d3skr.svelte-10d3skr{position:fixed;transition:none;z-index:2;display:none}.contents-wrapper.visible.svelte-10d3skr.svelte-10d3skr{display:block}.contents-wrapper.visible.is-fullscreen.svelte-10d3skr.svelte-10d3skr{display:flex;width:100vw;height:100%;padding-bottom:80px;overflow:scroll}.contents-wrapper.visible.svelte-10d3skr .wrapper.svelte-10d3skr{opacity:1;transform:scale(1);display:block}.contents-wrapper.shrink.svelte-10d3skr .wrapper.svelte-10d3skr{animation:svelte-10d3skr-shrink 150ms forwards cubic-bezier(.92,.09,.18,1.05)}.wrapper.svelte-10d3skr.svelte-10d3skr{background:#fff;box-shadow:0px 10px 26px rgba(0,0,0,0.4) ;opacity:.8;padding-top:0;display:none;animation:svelte-10d3skr-grow 200ms forwards cubic-bezier(.92,.09,.18,1.05)}.contents-inner.svelte-10d3skr.svelte-10d3skr{animation:svelte-10d3skr-fadeIn 400ms forwards}@keyframes svelte-10d3skr-grow{0%{transform:scale(.9,.1);opacity:0}30%{opacity:1}100%{transform:scale(1)}}@keyframes svelte-10d3skr-shrink{0%{transform:scale(1);opacity:1}70%{opacity:1}100%{opacity:0;transform:scale(.9,.1)}}@keyframes svelte-10d3skr-fadeIn{0%{opacity:0}50%{opacity:0}100%{opacity:1}}.toolbar.svelte-hbl86k{padding:0;display:flex;flex:1 0 auto;justify-content:center}.button.svelte-hbl86k{font-size:16px;flex:1 0 auto;padding:12px 6px;border:0;font-weight:500;color:var(--time-confirm-button-text-color);background-color:var(--time-confirm-button-color);max-width:340px}@media(min-width: 600px){.toolbar.svelte-hbl86k{border-top:1px solid var(--toolbar-border-color);padding:6px;justify-content:flex-end}.button.svelte-hbl86k{flex:0 0 auto;padding:6px 12px;border-radius:5px}}.calendar.svelte-1sgbxd0{box-sizing:border-box;position:relative;user-select:none;width:100%;padding-top:0;width:340px;height:345px}.cl.svelte-1a534py .svelte-1a534py{box-sizing:border-box}.cl.svelte-1a534py.svelte-1a534py{box-shadow:0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1);box-sizing:border-box;width:100%;position:relative}.cl-content.svelte-1a534py.svelte-1a534py{height:300px;outline:0;overflow-y:auto;padding:10px;width:100%;background-color:white}.cl-actionbar.svelte-1a534py.svelte-1a534py{background-color:#ecf0f1;border-bottom:1px solid rgba(10, 10, 10, 0.1);width:100%}.cl-button.svelte-1a534py.svelte-1a534py{background-color:transparent;border:none;cursor:pointer;height:35px;outline:0;width:35px;vertical-align:top;position:relative}.cl-button.svelte-1a534py.svelte-1a534py:hover,.cl-button.active.svelte-1a534py.svelte-1a534py{background-color:#fff}.cl-button.svelte-1a534py.svelte-1a534py:disabled{opacity:.5;pointer-events:none}.cl-textarea.svelte-1a534py.svelte-1a534py{display:none;max-width:100%;min-width:100%;border:none;padding:10px}.cl-textarea.svelte-1a534py.svelte-1a534py:focus{outline:none}.cl-editor-modal.svelte-42yfje.svelte-42yfje{position:absolute;top:37px;left:50%;-webkit-transform:translateX(-50%);transform:translateX(-50%);max-width:520px;width:100%;height:140px;backface-visibility:hidden;z-index:11}.cl-editor-overlay.svelte-42yfje.svelte-42yfje{position:absolute;background-color:rgba(255,255,255,.5);height:100%;width:100%;left:0;top:0;z-index:10}.modal-box.svelte-42yfje.svelte-42yfje{position:absolute;top:0;left:50%;-webkit-transform:translateX(-50%);transform:translateX(-50%);max-width:500px;width:calc(100% - 20px);padding-bottom:36px;z-index:1;background-color:#FFF;text-align:center;font-size:14px;box-shadow:rgba(0,0,0,.2) 0 2px 3px;-webkit-backface-visibility:hidden;backface-visibility:hidden}.modal-title.svelte-42yfje.svelte-42yfje{font-size:24px;font-weight:700;margin:0 0 20px;padding:2px 0 4px;display:block;border-bottom:1px solid #EEE;color:#333;background:#fbfcfc}.modal-label.svelte-42yfje.svelte-42yfje{display:block;position:relative;margin:15px 12px;height:29px;line-height:29px;overflow:hidden}.modal-label.svelte-42yfje input.svelte-42yfje{position:absolute;top:0;right:0;height:27px;line-height:25px;border:1px solid #DEDEDE;background:#fff;font-size:14px;max-width:330px;width:70%;padding:0 7px;transition:all 150ms}.modal-label.svelte-42yfje input.svelte-42yfje:focus{outline:none}.input-error.svelte-42yfje input.svelte-42yfje{border:1px solid #e74c3c}.input-info.svelte-42yfje.svelte-42yfje{display:block;text-align:left;height:25px;line-height:25px;transition:all 150ms}.input-info.svelte-42yfje span.svelte-42yfje{display:block;color:#69878f;background-color:#fbfcfc;border:1px solid #DEDEDE;padding:1px 7px;width:150px}.input-error.svelte-42yfje .input-info.svelte-42yfje{margin-top:-29px}.input-error.svelte-42yfje .msg-error.svelte-42yfje{color:#e74c3c}.modal-button.svelte-42yfje.svelte-42yfje{position:absolute;bottom:10px;right:0;text-decoration:none;color:#FFF;display:block;width:100px;height:35px;line-height:33px;margin:0 10px;background-color:#333;border:none;cursor:pointer;font-family:"Lato",Helvetica,Verdana,sans-serif;font-size:16px;transition:all 150ms}.modal-submit.svelte-42yfje.svelte-42yfje{right:110px;background:#2bc06a}.modal-reset.svelte-42yfje.svelte-42yfje{color:#555;background:#e6e6e6}.color-picker-wrapper.svelte-njq4pk{border:1px solid #ecf0f1;border-top:none;background:#FFF;box-shadow:rgba(0,0,0,.1) 0 2px 3px;width:290px;left:50%;-webkit-transform:translateX(-50%);transform:translateX(-50%);padding:0;position:absolute;top:37px;z-index:11}.color-picker-overlay.svelte-njq4pk{position:absolute;background-color:rgba(255,255,255,.5);height:100%;width:100%;left:0;top:0;z-index:10}.color-picker-btn.svelte-njq4pk{display:block;position:relative;float:left;height:20px;width:20px;border:1px solid #333;padding:0;margin:2px;line-height:35px;text-decoration:none;background:#FFF;color:#333!important;cursor:pointer;text-align:left;font-size:15px;transition:all 150ms;line-height:20px;padding:0px 5px}.color-picker-btn.svelte-njq4pk:hover::after{content:" ";display:block;position:absolute;top:-5px;left:-5px;height:27px;width:27px;background:inherit;border:1px solid #FFF;box-shadow:#000 0 0 2px;z-index:10}div.svelte-3fib5n{padding:10px}.time-container.svelte-17tznc2.svelte-17tznc2{padding:10px;display:flex;flex:1 0 auto;flex-direction:column;justify-content:space-evenly;align-items:center;background-color:var(--time-day-mode-background-color);transition:background 0.15s ease;min-height:100%}.chosen-date.svelte-17tznc2.svelte-17tznc2{margin:6px 0 12px 0;color:var(--time-selected-text-color);font-weight:600;font-size:20px}.time-container.is-night.svelte-17tznc2 .chosen-date.svelte-17tznc2{color:var(--time-night-mode-text-color)}.time-container.is-night.svelte-17tznc2.svelte-17tznc2{background-color:var(--time-night-mode-background-color)}.month-dates.svelte-lktis3.svelte-lktis3{width:100%;display:-ms-grid;display:grid;-ms-grid-columns:1fr;-ms-grid-rows:1fr}.legend.svelte-lktis3.svelte-lktis3{display:none;grid-row:1 / 2;color:#4a4a4a;padding:10px 0;margin-bottom:5px;color:var(--legend-text-color);display:grid}.month-container.svelte-lktis3.svelte-lktis3{display:flex}.month-week.svelte-lktis3.svelte-lktis3{width:100%}.legend.svelte-lktis3 span.svelte-lktis3{width:14.285714%;display:inline-block;text-align:center}.heading-section.svelte-1c4p61v.svelte-1c4p61v{font-size:16px;padding:6px 15px;display:flex;width:100%;justify-content:space-between;color:#3d4548;font-weight:bold}.label.svelte-1c4p61v.svelte-1c4p61v{color:var(--month-year-text-color)}.heading-section.svelte-1c4p61v.svelte-1c4p61v{padding:12px 15px}.label.svelte-1c4p61v.svelte-1c4p61v,.title.svelte-1c4p61v.svelte-1c4p61v{cursor:pointer;display:flex}.month-selector.svelte-1c4p61v.svelte-1c4p61v{position:absolute;top:75px;left:0;right:0;bottom:0;background-color:#fff;transition:all 300ms;transform:scale(0.8);opacity:0;visibility:hidden;z-index:2;text-align:center}.month-selector.open.svelte-1c4p61v.svelte-1c4p61v{transform:scale(1);visibility:visible;opacity:1}.month-selector--month.svelte-1c4p61v.svelte-1c4p61v{width:31.333%;margin:.5%;height:21.5%;display:inline-block;color:#4a4a4a;background:none;border:1px solid #efefef;opacity:0.2}.month-selector--month.svelte-1c4p61v.svelte-1c4p61v:enabled{opacity:1}.month-selector--month.svelte-1c4p61v.svelte-1c4p61v:enabled:hover{cursor:pointer;box-shadow:0px 0px 3px rgba(0,0,0,0.15)}.month-selector--month.selected.svelte-1c4p61v.svelte-1c4p61v{background:var(--highlight-color);color:#fff}.month-selector--month.svelte-1c4p61v.svelte-1c4p61v:before{content:' ';display:inline-block;height:100%;vertical-align:middle}.month-selector--month.svelte-1c4p61v span.svelte-1c4p61v{vertical-align:middle;display:inline-block}.control.svelte-1c4p61v.svelte-1c4p61v,.label.svelte-1c4p61v.svelte-1c4p61v{background:none;border:none}.control.svelte-1c4p61v.svelte-1c4p61v{padding:0 3px;opacity:0.2;transform:translateY(3px)}.control.svelte-1c4p61v.svelte-1c4p61v:enabled{opacity:1;cursor:pointer}.arrow.svelte-1c4p61v.svelte-1c4p61v{display:inline-block;width:15px;height:15px;border-style:solid;border-color:#a9a9a9;border-width:0;border-bottom-width:2px;border-right-width:2px}.arrow.right.svelte-1c4p61v.svelte-1c4p61v{transform:rotate(-45deg);-webkit-transform:rotate(-45deg)}.arrow.left.svelte-1c4p61v.svelte-1c4p61v{transform:rotate(135deg);-webkit-transform:rotate(135deg)}.arrow.svelte-1c4p61v.svelte-1c4p61v{width:18px;height:18px}.control.svelte-1c4p61v.svelte-1c4p61v{padding:0 8px}.heading-section.svelte-1c4p61v.svelte-1c4p61v{font-size:20px}.label.svelte-1c4p61v.svelte-1c4p61v{margin-left:5%}.time-picker.svelte-w5vedm.svelte-w5vedm{display:flex;flex-direction:column;color:var(--highlight-color);width:80%}@media(min-width: 600px){.time-picker.svelte-w5vedm.svelte-w5vedm{width:60%}}.time-picker.is-night.svelte-w5vedm.svelte-w5vedm{color:var(--time-night-mode-text-color)}.time-picker.is-night.svelte-w5vedm input.svelte-w5vedm{color:var(--time-night-mode-text-color)}input.svelte-w5vedm.svelte-w5vedm{background-color:transparent;display:flex;border-width:0 0 1px 0;border-color:inherit;font-family:inherit;font-size:42px;line-height:42px;text-align:center;letter-spacing:16px;color:var(--time-input-text-color)}.controls.svelte-w5vedm.svelte-w5vedm{display:flex;justify-content:space-around;color:var(--highlight-color)}.week.svelte-1gcp452.svelte-1gcp452{margin:3px 0;display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:-webkit-flex;display:flex}.week.svelte-1gcp452.svelte-1gcp452:nth-child(6n + 1){-ms-grid-row:7;grid-row:7}.week.svelte-1gcp452.svelte-1gcp452:nth-child(6n + 2){-ms-grid-row:2;grid-row:2}.week.svelte-1gcp452.svelte-1gcp452:nth-child(6n + 3){-ms-grid-row:3;grid-row:3}.week.svelte-1gcp452.svelte-1gcp452:nth-child(6n + 4){-ms-grid-row:4;grid-row:4}.week.svelte-1gcp452.svelte-1gcp452:nth-child(6n + 5){-ms-grid-row:5;grid-row:5}.week.svelte-1gcp452.svelte-1gcp452:nth-child(6n + 6){-ms-grid-row:6;grid-row:6}.day.svelte-1gcp452.svelte-1gcp452{flex:1 0 auto;height:32px;display:flex;flex-basis:0;justify-content:center;position:relative}.day.outside-month.svelte-1gcp452.svelte-1gcp452,.day.is-disabled.svelte-1gcp452.svelte-1gcp452{opacity:0.35}.day.svelte-1gcp452.svelte-1gcp452:before{content:'';float:left}.day--label.svelte-1gcp452.svelte-1gcp452{color:var(--day-text-color);display:flex;justify-content:center;width:32px;height:32px;position:relative;border:1px solid var(--button-background-color);border-radius:50%;align-items:center;background:var(--day-background-color);cursor:pointer;transition:all 100ms linear;border:none;outline:none}.day.is-night.svelte-1gcp452 .day--label.svelte-1gcp452{color:var(--day-text-color-is-night);background:var(--day-background-color-is-night)}.day--label.disabled.svelte-1gcp452.svelte-1gcp452{cursor:default}.day--label.shake-date.svelte-1gcp452.svelte-1gcp452{animation:svelte-1gcp452-shake 0.4s 1 linear}.day.is-today.selection-end.svelte-1gcp452:not(.outside-month) .day--label.svelte-1gcp452,.day.selection-end.svelte-1gcp452:not(.outside-month) .day--label.svelte-1gcp452{background-color:var(--highlight-color);border:var(--highlight-color) 1px solid}.day.selection-end.svelte-1gcp452:not(.outside-month) .day--label.svelte-1gcp452:hover,.day.selection-start.svelte-1gcp452:not(.outside-month) .day--label.svelte-1gcp452{background-color:var(--highlight-color);color:var(--selected-day-text-color)}.day.part-of-range.svelte-1gcp452.svelte-1gcp452:before,.day.selection-start.svelte-1gcp452.svelte-1gcp452:before,.day.selection-end.svelte-1gcp452.svelte-1gcp452:before{content:"";position:absolute;height:32px;width:100%}.day.is-range-picker.part-of-range.svelte-1gcp452.svelte-1gcp452:before,.day.is-range-picker.selection-start.svelte-1gcp452.svelte-1gcp452:before,.day.is-range-picker.selection-end.svelte-1gcp452.svelte-1gcp452:before{background-color:var(--passive-highlight-color)}.day.is-range-picker.selection-start.svelte-1gcp452:not(.selection-end) .day--label.svelte-1gcp452{border-radius:50% 0 0 50%}.day.is-range-picker.selection-end.svelte-1gcp452:not(.selection-start) .day--label.svelte-1gcp452{border-radius:0 50% 50% 0}.day.selection-start.svelte-1gcp452.svelte-1gcp452:before,.day.selection-end.svelte-1gcp452.svelte-1gcp452:before{width:50%}.day.selection-start.svelte-1gcp452.svelte-1gcp452:before{right:0}.day.selection-end.svelte-1gcp452.svelte-1gcp452:before{left:0}.day.is-range-picker.part-of-range.svelte-1gcp452.svelte-1gcp452:hover{background-color:var(--passive-highlight-color);border-color:var(--passive-highlight-color);color:var(--button-background-color)}.day.is-range-picker.selection-start.svelte-1gcp452 .day--label.svelte-1gcp452:hover{background-color:var(--passive-highlight-color);border:var(--highlight-color) 1px solid}@media(min-width: 480px){.day--label.highlighted.svelte-1gcp452.svelte-1gcp452,.day--label.svelte-1gcp452.svelte-1gcp452:not(.disabled):hover{background:var(--day-highlighted-background-color);border-color:var(--day-highlighted-background-color);color:var(--day-highlighted-text-color)}}.day.outside-month.selection-start.selection-end.is-today.svelte-1gcp452 .day--label.highlighted.svelte-1gcp452,.day.outside-month.is-today.svelte-1gcp452 .day--label.highlighted.svelte-1gcp452,.day.outside-month.part-of-range.svelte-1gcp452.svelte-1gcp452:before,.day.outside-month.part-of-range.svelte-1gcp452.svelte-1gcp452:hover,.day.outside-month.part-of-range.svelte-1gcp452.svelte-1gcp452,.day.outside-month.selection-end.svelte-1gcp452.svelte-1gcp452:before,.day.outside-month.selection-start.svelte-1gcp452.svelte-1gcp452:before,.day.outside-month.selection-end.svelte-1gcp452.svelte-1gcp452,.day.outside-month.selection-start.svelte-1gcp452.svelte-1gcp452,.day.selection-start.selection-end.svelte-1gcp452.svelte-1gcp452:before,.day.first-of-month:not(.outside-month).part-of-range.svelte-1gcp452.svelte-1gcp452:before,.day.last-of-month:not(.outside-month).part-of-range.svelte-1gcp452.svelte-1gcp452:before{background-color:var(--day-background-color);border:none;color:var(--day-text-color)}.day.part-of-range.svelte-1gcp452:not(.outside-month) .day--label.highlighted.svelte-1gcp452{background-color:transparent}.day.part-of-range.svelte-1gcp452:not(.outside-month) .day--label.svelte-1gcp452:hover{background-color:var(--highlight-color)}.day:not(.outside-month).part-of-range.svelte-1gcp452 .day--label.svelte-1gcp452{color:var(--day-text-color-in-range)}.day.is-range-picker.first-of-month:not(.outside-month).selection-end.svelte-1gcp452.svelte-1gcp452:not(.selection-start):before,.day.is-range-picker.first-of-month:not(.outside-month).part-of-range.svelte-1gcp452.svelte-1gcp452{background:linear-gradient(to left, var(--passive-highlight-color) 70%, transparent)}.day.is-range-picker.last-of-month:not(.outside-month).selection-start.svelte-1gcp452.svelte-1gcp452:not(.selection-end):before,.day.is-range-picker.last-of-month:not(.outside-month).part-of-range.svelte-1gcp452.svelte-1gcp452{background:linear-gradient(to right, var(--passive-highlight-color) 70%, transparent)}.day.is-today.svelte-1gcp452 .day--label.svelte-1gcp452,.day.selection-start.selection-end.is-today.svelte-1gcp452 .day--label.svelte-1gcp452{opacity:1;background:none;border:var(--highlight-color) 1px solid;color:var(--current-day-text-color)}@keyframes svelte-1gcp452-shake{0%{transform:translate(7px)}20%{transform:translate(-7px)}40%{transform:translate(3px)}60%{transform:translate(-3px)}80%{transform:translate(1px)}100%{transform:translate(0px)}}.chevron.svelte-twxu81{margin-left:-16px}.chevron.svelte-twxu81::before{margin:8px;border-style:solid;border-width:0.4em 0.4em 0 0;content:'';display:inline-block;height:0.75em;left:0.15em;position:relative;top:0.15em;transform:rotate(-45deg);vertical-align:top;width:0.75em}.chevron.bottom.svelte-twxu81:before{top:0;transform:rotate(135deg)} \ No newline at end of file diff --git a/demo/build/bundle.js b/demo/build/bundle.js new file mode 100644 index 00000000..05099507 --- /dev/null +++ b/demo/build/bundle.js @@ -0,0 +1,64729 @@ +var app = (function () { + 'use strict'; + + function noop$2() { } + const identity = x => x; + function assign$3(tar, src) { + // @ts-ignore + for (const k in src) + tar[k] = src[k]; + return tar; + } + function is_promise(value) { + return value && typeof value === 'object' && typeof value.then === 'function'; + } + function run(fn) { + return fn(); + } + function blank_object() { + return Object.create(null); + } + function run_all(fns) { + fns.forEach(run); + } + function is_function(thing) { + return typeof thing === 'function'; + } + function safe_not_equal(a, b) { + return a != a ? b == b : a !== b || ((a && typeof a === 'object') || typeof a === 'function'); + } + let src_url_equal_anchor; + function src_url_equal(element_src, url) { + if (!src_url_equal_anchor) { + src_url_equal_anchor = document.createElement('a'); + } + src_url_equal_anchor.href = url; + return element_src === src_url_equal_anchor.href; + } + function is_empty(obj) { + return Object.keys(obj).length === 0; + } + function subscribe(store, ...callbacks) { + if (store == null) { + return noop$2; + } + const unsub = store.subscribe(...callbacks); + return unsub.unsubscribe ? () => unsub.unsubscribe() : unsub; + } + function get_store_value(store) { + let value; + subscribe(store, _ => value = _)(); + return value; + } + function component_subscribe(component, store, callback) { + component.$$.on_destroy.push(subscribe(store, callback)); + } + function create_slot(definition, ctx, $$scope, fn) { + if (definition) { + const slot_ctx = get_slot_context(definition, ctx, $$scope, fn); + return definition[0](slot_ctx); + } + } + function get_slot_context(definition, ctx, $$scope, fn) { + return definition[1] && fn + ? assign$3($$scope.ctx.slice(), definition[1](fn(ctx))) + : $$scope.ctx; + } + function get_slot_changes(definition, $$scope, dirty, fn) { + if (definition[2] && fn) { + const lets = definition[2](fn(dirty)); + if ($$scope.dirty === undefined) { + return lets; + } + if (typeof lets === 'object') { + const merged = []; + const len = Math.max($$scope.dirty.length, lets.length); + for (let i = 0; i < len; i += 1) { + merged[i] = $$scope.dirty[i] | lets[i]; + } + return merged; + } + return $$scope.dirty | lets; + } + return $$scope.dirty; + } + function update_slot_base(slot, slot_definition, ctx, $$scope, slot_changes, get_slot_context_fn) { + if (slot_changes) { + const slot_context = get_slot_context(slot_definition, ctx, $$scope, get_slot_context_fn); + slot.p(slot_context, slot_changes); + } + } + function get_all_dirty_from_scope($$scope) { + if ($$scope.ctx.length > 32) { + const dirty = []; + const length = $$scope.ctx.length / 32; + for (let i = 0; i < length; i++) { + dirty[i] = -1; + } + return dirty; + } + return -1; + } + function exclude_internal_props(props) { + const result = {}; + for (const k in props) + if (k[0] !== '$') + result[k] = props[k]; + return result; + } + function null_to_empty(value) { + return value == null ? '' : value; + } + function set_store_value(store, ret, value) { + store.set(value); + return ret; + } + function action_destroyer(action_result) { + return action_result && is_function(action_result.destroy) ? action_result.destroy : noop$2; + } + + const is_client = typeof window !== 'undefined'; + let now = is_client + ? () => window.performance.now() + : () => Date.now(); + let raf = is_client ? cb => requestAnimationFrame(cb) : noop$2; + + const tasks = new Set(); + function run_tasks(now) { + tasks.forEach(task => { + if (!task.c(now)) { + tasks.delete(task); + task.f(); + } + }); + if (tasks.size !== 0) + raf(run_tasks); + } + /** + * Creates a new task that runs on each raf frame + * until it returns a falsy value or is aborted + */ + function loop(callback) { + let task; + if (tasks.size === 0) + raf(run_tasks); + return { + promise: new Promise(fulfill => { + tasks.add(task = { c: callback, f: fulfill }); + }), + abort() { + tasks.delete(task); + } + }; + } + function append(target, node) { + target.appendChild(node); + } + function get_root_for_style(node) { + if (!node) + return document; + const root = node.getRootNode ? node.getRootNode() : node.ownerDocument; + if (root && root.host) { + return root; + } + return node.ownerDocument; + } + function append_empty_stylesheet(node) { + const style_element = element('style'); + append_stylesheet(get_root_for_style(node), style_element); + return style_element; + } + function append_stylesheet(node, style) { + append(node.head || node, style); + } + function insert(target, node, anchor) { + target.insertBefore(node, anchor || null); + } + function detach(node) { + node.parentNode.removeChild(node); + } + function destroy_each(iterations, detaching) { + for (let i = 0; i < iterations.length; i += 1) { + if (iterations[i]) + iterations[i].d(detaching); + } + } + function element(name) { + return document.createElement(name); + } + function svg_element(name) { + return document.createElementNS('http://www.w3.org/2000/svg', name); + } + function text(data) { + return document.createTextNode(data); + } + function space() { + return text(' '); + } + function empty() { + return text(''); + } + function listen(node, event, handler, options) { + node.addEventListener(event, handler, options); + return () => node.removeEventListener(event, handler, options); + } + function prevent_default(fn) { + return function (event) { + event.preventDefault(); + // @ts-ignore + return fn.call(this, event); + }; + } + function stop_propagation(fn) { + return function (event) { + event.stopPropagation(); + // @ts-ignore + return fn.call(this, event); + }; + } + function attr(node, attribute, value) { + if (value == null) + node.removeAttribute(attribute); + else if (node.getAttribute(attribute) !== value) + node.setAttribute(attribute, value); + } + function set_attributes(node, attributes) { + // @ts-ignore + const descriptors = Object.getOwnPropertyDescriptors(node.__proto__); + for (const key in attributes) { + if (attributes[key] == null) { + node.removeAttribute(key); + } + else if (key === 'style') { + node.style.cssText = attributes[key]; + } + else if (key === '__value') { + node.value = node[key] = attributes[key]; + } + else if (descriptors[key] && descriptors[key].set) { + node[key] = attributes[key]; + } + else { + attr(node, key, attributes[key]); + } + } + } + function set_custom_element_data(node, prop, value) { + if (prop in node) { + node[prop] = typeof node[prop] === 'boolean' && value === '' ? true : value; + } + else { + attr(node, prop, value); + } + } + function children(element) { + return Array.from(element.childNodes); + } + function set_data(text, data) { + data = '' + data; + if (text.wholeText !== data) + text.data = data; + } + function set_input_value(input, value) { + input.value = value == null ? '' : value; + } + function set_style(node, key, value, important) { + node.style.setProperty(key, value, important ? 'important' : ''); + } + // unfortunately this can't be a constant as that wouldn't be tree-shakeable + // so we cache the result instead + let crossorigin; + function is_crossorigin() { + if (crossorigin === undefined) { + crossorigin = false; + try { + if (typeof window !== 'undefined' && window.parent) { + void window.parent.document; + } + } + catch (error) { + crossorigin = true; + } + } + return crossorigin; + } + function add_resize_listener(node, fn) { + const computed_style = getComputedStyle(node); + if (computed_style.position === 'static') { + node.style.position = 'relative'; + } + const iframe = element('iframe'); + iframe.setAttribute('style', 'display: block; position: absolute; top: 0; left: 0; width: 100%; height: 100%; ' + + 'overflow: hidden; border: 0; opacity: 0; pointer-events: none; z-index: -1;'); + iframe.setAttribute('aria-hidden', 'true'); + iframe.tabIndex = -1; + const crossorigin = is_crossorigin(); + let unsubscribe; + if (crossorigin) { + iframe.src = "data:text/html,"; + unsubscribe = listen(window, 'message', (event) => { + if (event.source === iframe.contentWindow) + fn(); + }); + } + else { + iframe.src = 'about:blank'; + iframe.onload = () => { + unsubscribe = listen(iframe.contentWindow, 'resize', fn); + }; + } + append(node, iframe); + return () => { + if (crossorigin) { + unsubscribe(); + } + else if (unsubscribe && iframe.contentWindow) { + unsubscribe(); + } + detach(iframe); + }; + } + function toggle_class(element, name, toggle) { + element.classList[toggle ? 'add' : 'remove'](name); + } + function custom_event(type, detail, bubbles = false) { + const e = document.createEvent('CustomEvent'); + e.initCustomEvent(type, bubbles, false, detail); + return e; + } + class HtmlTag { + constructor() { + this.e = this.n = null; + } + c(html) { + this.h(html); + } + m(html, target, anchor = null) { + if (!this.e) { + this.e = element(target.nodeName); + this.t = target; + this.c(html); + } + this.i(anchor); + } + h(html) { + this.e.innerHTML = html; + this.n = Array.from(this.e.childNodes); + } + i(anchor) { + for (let i = 0; i < this.n.length; i += 1) { + insert(this.t, this.n[i], anchor); + } + } + p(html) { + this.d(); + this.h(html); + this.i(this.a); + } + d() { + this.n.forEach(detach); + } + } + + const active_docs = new Set(); + let active$1 = 0; + // https://github.com/darkskyapp/string-hash/blob/master/index.js + function hash(str) { + let hash = 5381; + let i = str.length; + while (i--) + hash = ((hash << 5) - hash) ^ str.charCodeAt(i); + return hash >>> 0; + } + function create_rule(node, a, b, duration, delay, ease, fn, uid = 0) { + const step = 16.666 / duration; + let keyframes = '{\n'; + for (let p = 0; p <= 1; p += step) { + const t = a + (b - a) * ease(p); + keyframes += p * 100 + `%{${fn(t, 1 - t)}}\n`; + } + const rule = keyframes + `100% {${fn(b, 1 - b)}}\n}`; + const name = `__svelte_${hash(rule)}_${uid}`; + const doc = get_root_for_style(node); + active_docs.add(doc); + const stylesheet = doc.__svelte_stylesheet || (doc.__svelte_stylesheet = append_empty_stylesheet(node).sheet); + const current_rules = doc.__svelte_rules || (doc.__svelte_rules = {}); + if (!current_rules[name]) { + current_rules[name] = true; + stylesheet.insertRule(`@keyframes ${name} ${rule}`, stylesheet.cssRules.length); + } + const animation = node.style.animation || ''; + node.style.animation = `${animation ? `${animation}, ` : ''}${name} ${duration}ms linear ${delay}ms 1 both`; + active$1 += 1; + return name; + } + function delete_rule(node, name) { + const previous = (node.style.animation || '').split(', '); + const next = previous.filter(name + ? anim => anim.indexOf(name) < 0 // remove specific animation + : anim => anim.indexOf('__svelte') === -1 // remove all Svelte animations + ); + const deleted = previous.length - next.length; + if (deleted) { + node.style.animation = next.join(', '); + active$1 -= deleted; + if (!active$1) + clear_rules(); + } + } + function clear_rules() { + raf(() => { + if (active$1) + return; + active_docs.forEach(doc => { + const stylesheet = doc.__svelte_stylesheet; + let i = stylesheet.cssRules.length; + while (i--) + stylesheet.deleteRule(i); + doc.__svelte_rules = {}; + }); + active_docs.clear(); + }); + } + + function create_animation(node, from, fn, params) { + if (!from) + return noop$2; + const to = node.getBoundingClientRect(); + if (from.left === to.left && from.right === to.right && from.top === to.top && from.bottom === to.bottom) + return noop$2; + const { delay = 0, duration = 300, easing = identity, + // @ts-ignore todo: should this be separated from destructuring? Or start/end added to public api and documentation? + start: start_time = now() + delay, + // @ts-ignore todo: + end = start_time + duration, tick = noop$2, css } = fn(node, { from, to }, params); + let running = true; + let started = false; + let name; + function start() { + if (css) { + name = create_rule(node, 0, 1, duration, delay, easing, css); + } + if (!delay) { + started = true; + } + } + function stop() { + if (css) + delete_rule(node, name); + running = false; + } + loop(now => { + if (!started && now >= start_time) { + started = true; + } + if (started && now >= end) { + tick(1, 0); + stop(); + } + if (!running) { + return false; + } + if (started) { + const p = now - start_time; + const t = 0 + 1 * easing(p / duration); + tick(t, 1 - t); + } + return true; + }); + start(); + tick(0, 1); + return stop; + } + function fix_position(node) { + const style = getComputedStyle(node); + if (style.position !== 'absolute' && style.position !== 'fixed') { + const { width, height } = style; + const a = node.getBoundingClientRect(); + node.style.position = 'absolute'; + node.style.width = width; + node.style.height = height; + add_transform(node, a); + } + } + function add_transform(node, a) { + const b = node.getBoundingClientRect(); + if (a.left !== b.left || a.top !== b.top) { + const style = getComputedStyle(node); + const transform = style.transform === 'none' ? '' : style.transform; + node.style.transform = `${transform} translate(${a.left - b.left}px, ${a.top - b.top}px)`; + } + } + + let current_component; + function set_current_component(component) { + current_component = component; + } + function get_current_component() { + if (!current_component) + throw new Error('Function called outside component initialization'); + return current_component; + } + function beforeUpdate(fn) { + get_current_component().$$.before_update.push(fn); + } + function onMount(fn) { + get_current_component().$$.on_mount.push(fn); + } + function afterUpdate(fn) { + get_current_component().$$.after_update.push(fn); + } + function onDestroy(fn) { + get_current_component().$$.on_destroy.push(fn); + } + function createEventDispatcher() { + const component = get_current_component(); + return (type, detail) => { + const callbacks = component.$$.callbacks[type]; + if (callbacks) { + // TODO are there situations where events could be dispatched + // in a server (non-DOM) environment? + const event = custom_event(type, detail); + callbacks.slice().forEach(fn => { + fn.call(component, event); + }); + } + }; + } + function setContext(key, context) { + get_current_component().$$.context.set(key, context); + } + function getContext(key) { + return get_current_component().$$.context.get(key); + } + // TODO figure out if we still want to support + // shorthand events, or if we want to implement + // a real bubbling mechanism + function bubble(component, event) { + const callbacks = component.$$.callbacks[event.type]; + if (callbacks) { + // @ts-ignore + callbacks.slice().forEach(fn => fn.call(this, event)); + } + } + + const dirty_components = []; + const binding_callbacks = []; + const render_callbacks = []; + const flush_callbacks = []; + const resolved_promise = Promise.resolve(); + let update_scheduled = false; + function schedule_update() { + if (!update_scheduled) { + update_scheduled = true; + resolved_promise.then(flush); + } + } + function tick() { + schedule_update(); + return resolved_promise; + } + function add_render_callback(fn) { + render_callbacks.push(fn); + } + function add_flush_callback(fn) { + flush_callbacks.push(fn); + } + let flushing = false; + const seen_callbacks = new Set(); + function flush() { + if (flushing) + return; + flushing = true; + do { + // first, call beforeUpdate functions + // and update components + for (let i = 0; i < dirty_components.length; i += 1) { + const component = dirty_components[i]; + set_current_component(component); + update(component.$$); + } + set_current_component(null); + dirty_components.length = 0; + while (binding_callbacks.length) + binding_callbacks.pop()(); + // then, once components are updated, call + // afterUpdate functions. This may cause + // subsequent updates... + for (let i = 0; i < render_callbacks.length; i += 1) { + const callback = render_callbacks[i]; + if (!seen_callbacks.has(callback)) { + // ...so guard against infinite loops + seen_callbacks.add(callback); + callback(); + } + } + render_callbacks.length = 0; + } while (dirty_components.length); + while (flush_callbacks.length) { + flush_callbacks.pop()(); + } + update_scheduled = false; + flushing = false; + seen_callbacks.clear(); + } + function update($$) { + if ($$.fragment !== null) { + $$.update(); + run_all($$.before_update); + const dirty = $$.dirty; + $$.dirty = [-1]; + $$.fragment && $$.fragment.p($$.ctx, dirty); + $$.after_update.forEach(add_render_callback); + } + } + + let promise; + function wait() { + if (!promise) { + promise = Promise.resolve(); + promise.then(() => { + promise = null; + }); + } + return promise; + } + function dispatch(node, direction, kind) { + node.dispatchEvent(custom_event(`${direction ? 'intro' : 'outro'}${kind}`)); + } + const outroing = new Set(); + let outros; + function group_outros() { + outros = { + r: 0, + c: [], + p: outros // parent group + }; + } + function check_outros() { + if (!outros.r) { + run_all(outros.c); + } + outros = outros.p; + } + function transition_in(block, local) { + if (block && block.i) { + outroing.delete(block); + block.i(local); + } + } + function transition_out(block, local, detach, callback) { + if (block && block.o) { + if (outroing.has(block)) + return; + outroing.add(block); + outros.c.push(() => { + outroing.delete(block); + if (callback) { + if (detach) + block.d(1); + callback(); + } + }); + block.o(local); + } + } + const null_transition = { duration: 0 }; + function create_in_transition(node, fn, params) { + let config = fn(node, params); + let running = false; + let animation_name; + let task; + let uid = 0; + function cleanup() { + if (animation_name) + delete_rule(node, animation_name); + } + function go() { + const { delay = 0, duration = 300, easing = identity, tick = noop$2, css } = config || null_transition; + if (css) + animation_name = create_rule(node, 0, 1, duration, delay, easing, css, uid++); + tick(0, 1); + const start_time = now() + delay; + const end_time = start_time + duration; + if (task) + task.abort(); + running = true; + add_render_callback(() => dispatch(node, true, 'start')); + task = loop(now => { + if (running) { + if (now >= end_time) { + tick(1, 0); + dispatch(node, true, 'end'); + cleanup(); + return running = false; + } + if (now >= start_time) { + const t = easing((now - start_time) / duration); + tick(t, 1 - t); + } + } + return running; + }); + } + let started = false; + return { + start() { + if (started) + return; + started = true; + delete_rule(node); + if (is_function(config)) { + config = config(); + wait().then(go); + } + else { + go(); + } + }, + invalidate() { + started = false; + }, + end() { + if (running) { + cleanup(); + running = false; + } + } + }; + } + function create_out_transition(node, fn, params) { + let config = fn(node, params); + let running = true; + let animation_name; + const group = outros; + group.r += 1; + function go() { + const { delay = 0, duration = 300, easing = identity, tick = noop$2, css } = config || null_transition; + if (css) + animation_name = create_rule(node, 1, 0, duration, delay, easing, css); + const start_time = now() + delay; + const end_time = start_time + duration; + add_render_callback(() => dispatch(node, false, 'start')); + loop(now => { + if (running) { + if (now >= end_time) { + tick(0, 1); + dispatch(node, false, 'end'); + if (!--group.r) { + // this will result in `end()` being called, + // so we don't need to clean up here + run_all(group.c); + } + return false; + } + if (now >= start_time) { + const t = easing((now - start_time) / duration); + tick(1 - t, t); + } + } + return running; + }); + } + if (is_function(config)) { + wait().then(() => { + // @ts-ignore + config = config(); + go(); + }); + } + else { + go(); + } + return { + end(reset) { + if (reset && config.tick) { + config.tick(1, 0); + } + if (running) { + if (animation_name) + delete_rule(node, animation_name); + running = false; + } + } + }; + } + function create_bidirectional_transition(node, fn, params, intro) { + let config = fn(node, params); + let t = intro ? 0 : 1; + let running_program = null; + let pending_program = null; + let animation_name = null; + function clear_animation() { + if (animation_name) + delete_rule(node, animation_name); + } + function init(program, duration) { + const d = (program.b - t); + duration *= Math.abs(d); + return { + a: t, + b: program.b, + d, + duration, + start: program.start, + end: program.start + duration, + group: program.group + }; + } + function go(b) { + const { delay = 0, duration = 300, easing = identity, tick = noop$2, css } = config || null_transition; + const program = { + start: now() + delay, + b + }; + if (!b) { + // @ts-ignore todo: improve typings + program.group = outros; + outros.r += 1; + } + if (running_program || pending_program) { + pending_program = program; + } + else { + // if this is an intro, and there's a delay, we need to do + // an initial tick and/or apply CSS animation immediately + if (css) { + clear_animation(); + animation_name = create_rule(node, t, b, duration, delay, easing, css); + } + if (b) + tick(0, 1); + running_program = init(program, duration); + add_render_callback(() => dispatch(node, b, 'start')); + loop(now => { + if (pending_program && now > pending_program.start) { + running_program = init(pending_program, duration); + pending_program = null; + dispatch(node, running_program.b, 'start'); + if (css) { + clear_animation(); + animation_name = create_rule(node, t, running_program.b, running_program.duration, 0, easing, config.css); + } + } + if (running_program) { + if (now >= running_program.end) { + tick(t = running_program.b, 1 - t); + dispatch(node, running_program.b, 'end'); + if (!pending_program) { + // we're done + if (running_program.b) { + // intro — we can tidy up immediately + clear_animation(); + } + else { + // outro — needs to be coordinated + if (!--running_program.group.r) + run_all(running_program.group.c); + } + } + running_program = null; + } + else if (now >= running_program.start) { + const p = now - running_program.start; + t = running_program.a + running_program.d * easing(p / running_program.duration); + tick(t, 1 - t); + } + } + return !!(running_program || pending_program); + }); + } + } + return { + run(b) { + if (is_function(config)) { + wait().then(() => { + // @ts-ignore + config = config(); + go(b); + }); + } + else { + go(b); + } + }, + end() { + clear_animation(); + running_program = pending_program = null; + } + }; + } + + function handle_promise(promise, info) { + const token = info.token = {}; + function update(type, index, key, value) { + if (info.token !== token) + return; + info.resolved = value; + let child_ctx = info.ctx; + if (key !== undefined) { + child_ctx = child_ctx.slice(); + child_ctx[key] = value; + } + const block = type && (info.current = type)(child_ctx); + let needs_flush = false; + if (info.block) { + if (info.blocks) { + info.blocks.forEach((block, i) => { + if (i !== index && block) { + group_outros(); + transition_out(block, 1, 1, () => { + if (info.blocks[i] === block) { + info.blocks[i] = null; + } + }); + check_outros(); + } + }); + } + else { + info.block.d(1); + } + block.c(); + transition_in(block, 1); + block.m(info.mount(), info.anchor); + needs_flush = true; + } + info.block = block; + if (info.blocks) + info.blocks[index] = block; + if (needs_flush) { + flush(); + } + } + if (is_promise(promise)) { + const current_component = get_current_component(); + promise.then(value => { + set_current_component(current_component); + update(info.then, 1, info.value, value); + set_current_component(null); + }, error => { + set_current_component(current_component); + update(info.catch, 2, info.error, error); + set_current_component(null); + if (!info.hasCatch) { + throw error; + } + }); + // if we previously had a then/catch block, destroy it + if (info.current !== info.pending) { + update(info.pending, 0); + return true; + } + } + else { + if (info.current !== info.then) { + update(info.then, 1, info.value, promise); + return true; + } + info.resolved = promise; + } + } + function update_await_block_branch(info, ctx, dirty) { + const child_ctx = ctx.slice(); + const { resolved } = info; + if (info.current === info.then) { + child_ctx[info.value] = resolved; + } + if (info.current === info.catch) { + child_ctx[info.error] = resolved; + } + info.block.p(child_ctx, dirty); + } + + const globals = (typeof window !== 'undefined' + ? window + : typeof globalThis !== 'undefined' + ? globalThis + : global); + function outro_and_destroy_block(block, lookup) { + transition_out(block, 1, 1, () => { + lookup.delete(block.key); + }); + } + function fix_and_outro_and_destroy_block(block, lookup) { + block.f(); + outro_and_destroy_block(block, lookup); + } + function update_keyed_each(old_blocks, dirty, get_key, dynamic, ctx, list, lookup, node, destroy, create_each_block, next, get_context) { + let o = old_blocks.length; + let n = list.length; + let i = o; + const old_indexes = {}; + while (i--) + old_indexes[old_blocks[i].key] = i; + const new_blocks = []; + const new_lookup = new Map(); + const deltas = new Map(); + i = n; + while (i--) { + const child_ctx = get_context(ctx, list, i); + const key = get_key(child_ctx); + let block = lookup.get(key); + if (!block) { + block = create_each_block(key, child_ctx); + block.c(); + } + else if (dynamic) { + block.p(child_ctx, dirty); + } + new_lookup.set(key, new_blocks[i] = block); + if (key in old_indexes) + deltas.set(key, Math.abs(i - old_indexes[key])); + } + const will_move = new Set(); + const did_move = new Set(); + function insert(block) { + transition_in(block, 1); + block.m(node, next); + lookup.set(block.key, block); + next = block.first; + n--; + } + while (o && n) { + const new_block = new_blocks[n - 1]; + const old_block = old_blocks[o - 1]; + const new_key = new_block.key; + const old_key = old_block.key; + if (new_block === old_block) { + // do nothing + next = new_block.first; + o--; + n--; + } + else if (!new_lookup.has(old_key)) { + // remove old block + destroy(old_block, lookup); + o--; + } + else if (!lookup.has(new_key) || will_move.has(new_key)) { + insert(new_block); + } + else if (did_move.has(old_key)) { + o--; + } + else if (deltas.get(new_key) > deltas.get(old_key)) { + did_move.add(new_key); + insert(new_block); + } + else { + will_move.add(old_key); + o--; + } + } + while (o--) { + const old_block = old_blocks[o]; + if (!new_lookup.has(old_block.key)) + destroy(old_block, lookup); + } + while (n) + insert(new_blocks[n - 1]); + return new_blocks; + } + + function get_spread_update(levels, updates) { + const update = {}; + const to_null_out = {}; + const accounted_for = { $$scope: 1 }; + let i = levels.length; + while (i--) { + const o = levels[i]; + const n = updates[i]; + if (n) { + for (const key in o) { + if (!(key in n)) + to_null_out[key] = 1; + } + for (const key in n) { + if (!accounted_for[key]) { + update[key] = n[key]; + accounted_for[key] = 1; + } + } + levels[i] = n; + } + else { + for (const key in o) { + accounted_for[key] = 1; + } + } + } + for (const key in to_null_out) { + if (!(key in update)) + update[key] = undefined; + } + return update; + } + function get_spread_object(spread_props) { + return typeof spread_props === 'object' && spread_props !== null ? spread_props : {}; + } + + function bind$1(component, name, callback) { + const index = component.$$.props[name]; + if (index !== undefined) { + component.$$.bound[index] = callback; + callback(component.$$.ctx[index]); + } + } + function create_component(block) { + block && block.c(); + } + function mount_component(component, target, anchor, customElement) { + const { fragment, on_mount, on_destroy, after_update } = component.$$; + fragment && fragment.m(target, anchor); + if (!customElement) { + // onMount happens before the initial afterUpdate + add_render_callback(() => { + const new_on_destroy = on_mount.map(run).filter(is_function); + if (on_destroy) { + on_destroy.push(...new_on_destroy); + } + else { + // Edge case - component was destroyed immediately, + // most likely as a result of a binding initialising + run_all(new_on_destroy); + } + component.$$.on_mount = []; + }); + } + after_update.forEach(add_render_callback); + } + function destroy_component(component, detaching) { + const $$ = component.$$; + if ($$.fragment !== null) { + run_all($$.on_destroy); + $$.fragment && $$.fragment.d(detaching); + // TODO null out other refs, including component.$$ (but need to + // preserve final state?) + $$.on_destroy = $$.fragment = null; + $$.ctx = []; + } + } + function make_dirty(component, i) { + if (component.$$.dirty[0] === -1) { + dirty_components.push(component); + schedule_update(); + component.$$.dirty.fill(0); + } + component.$$.dirty[(i / 31) | 0] |= (1 << (i % 31)); + } + function init$1(component, options, instance, create_fragment, not_equal, props, append_styles, dirty = [-1]) { + const parent_component = current_component; + set_current_component(component); + const $$ = component.$$ = { + fragment: null, + ctx: null, + // state + props, + update: noop$2, + not_equal, + bound: blank_object(), + // lifecycle + on_mount: [], + on_destroy: [], + on_disconnect: [], + before_update: [], + after_update: [], + context: new Map(parent_component ? parent_component.$$.context : options.context || []), + // everything else + callbacks: blank_object(), + dirty, + skip_bound: false, + root: options.target || parent_component.$$.root + }; + append_styles && append_styles($$.root); + let ready = false; + $$.ctx = instance + ? instance(component, options.props || {}, (i, ret, ...rest) => { + const value = rest.length ? rest[0] : ret; + if ($$.ctx && not_equal($$.ctx[i], $$.ctx[i] = value)) { + if (!$$.skip_bound && $$.bound[i]) + $$.bound[i](value); + if (ready) + make_dirty(component, i); + } + return ret; + }) + : []; + $$.update(); + ready = true; + run_all($$.before_update); + // `false` as a special case of no DOM component + $$.fragment = create_fragment ? create_fragment($$.ctx) : false; + if (options.target) { + if (options.hydrate) { + const nodes = children(options.target); + // eslint-disable-next-line @typescript-eslint/no-non-null-assertion + $$.fragment && $$.fragment.l(nodes); + nodes.forEach(detach); + } + else { + // eslint-disable-next-line @typescript-eslint/no-non-null-assertion + $$.fragment && $$.fragment.c(); + } + if (options.intro) + transition_in(component.$$.fragment); + mount_component(component, options.target, options.anchor, options.customElement); + flush(); + } + set_current_component(parent_component); + } + /** + * Base class for Svelte components. Used when dev=false. + */ + class SvelteComponent { + $destroy() { + destroy_component(this, 1); + this.$destroy = noop$2; + } + $on(type, callback) { + const callbacks = (this.$$.callbacks[type] || (this.$$.callbacks[type] = [])); + callbacks.push(callback); + return () => { + const index = callbacks.indexOf(callback); + if (index !== -1) + callbacks.splice(index, 1); + }; + } + $set($$props) { + if (this.$$set && !is_empty($$props)) { + this.$$.skip_bound = true; + this.$$set($$props); + this.$$.skip_bound = false; + } + } + } + + /** + * @typedef {Object} WrappedComponent Object returned by the `wrap` method + * @property {SvelteComponent} component - Component to load (this is always asynchronous) + * @property {RoutePrecondition[]} [conditions] - Route pre-conditions to validate + * @property {Object} [props] - Optional dictionary of static props + * @property {Object} [userData] - Optional user data dictionary + * @property {bool} _sveltesparouter - Internal flag; always set to true + */ + + /** + * @callback AsyncSvelteComponent + * @returns {Promise} Returns a Promise that resolves with a Svelte component + */ + + /** + * @callback RoutePrecondition + * @param {RouteDetail} detail - Route detail object + * @returns {boolean|Promise} If the callback returns a false-y value, it's interpreted as the precondition failed, so it aborts loading the component (and won't process other pre-condition callbacks) + */ + + /** + * @typedef {Object} WrapOptions Options object for the call to `wrap` + * @property {SvelteComponent} [component] - Svelte component to load (this is incompatible with `asyncComponent`) + * @property {AsyncSvelteComponent} [asyncComponent] - Function that returns a Promise that fulfills with a Svelte component (e.g. `{asyncComponent: () => import('Foo.svelte')}`) + * @property {SvelteComponent} [loadingComponent] - Svelte component to be displayed while the async route is loading (as a placeholder); when unset or false-y, no component is shown while component + * @property {object} [loadingParams] - Optional dictionary passed to the `loadingComponent` component as params (for an exported prop called `params`) + * @property {object} [userData] - Optional object that will be passed to events such as `routeLoading`, `routeLoaded`, `conditionsFailed` + * @property {object} [props] - Optional key-value dictionary of static props that will be passed to the component. The props are expanded with {...props}, so the key in the dictionary becomes the name of the prop. + * @property {RoutePrecondition[]|RoutePrecondition} [conditions] - Route pre-conditions to add, which will be executed in order + */ + + /** + * Wraps a component to enable multiple capabilities: + * 1. Using dynamically-imported component, with (e.g. `{asyncComponent: () => import('Foo.svelte')}`), which also allows bundlers to do code-splitting. + * 2. Adding route pre-conditions (e.g. `{conditions: [...]}`) + * 3. Adding static props that are passed to the component + * 4. Adding custom userData, which is passed to route events (e.g. route loaded events) or to route pre-conditions (e.g. `{userData: {foo: 'bar}}`) + * + * @param {WrapOptions} args - Arguments object + * @returns {WrappedComponent} Wrapped component + */ + function wrap(args) { + if (!args) { + throw Error('Parameter args is required') + } + + // We need to have one and only one of component and asyncComponent + // This does a "XNOR" + if (!args.component == !args.asyncComponent) { + throw Error('One and only one of component and asyncComponent is required') + } + + // If the component is not async, wrap it into a function returning a Promise + if (args.component) { + args.asyncComponent = () => Promise.resolve(args.component); + } + + // Parameter asyncComponent and each item of conditions must be functions + if (typeof args.asyncComponent != 'function') { + throw Error('Parameter asyncComponent must be a function') + } + if (args.conditions) { + // Ensure it's an array + if (!Array.isArray(args.conditions)) { + args.conditions = [args.conditions]; + } + for (let i = 0; i < args.conditions.length; i++) { + if (!args.conditions[i] || typeof args.conditions[i] != 'function') { + throw Error('Invalid parameter conditions[' + i + ']') + } + } + } + + // Check if we have a placeholder component + if (args.loadingComponent) { + args.asyncComponent.loading = args.loadingComponent; + args.asyncComponent.loadingParams = args.loadingParams || undefined; + } + + // Returns an object that contains all the functions to execute too + // The _sveltesparouter flag is to confirm the object was created by this router + const obj = { + component: args.asyncComponent, + userData: args.userData, + conditions: (args.conditions && args.conditions.length) ? args.conditions : undefined, + props: (args.props && Object.keys(args.props).length) ? args.props : {}, + _sveltesparouter: true + }; + + return obj + } + + const subscriber_queue = []; + /** + * Creates a `Readable` store that allows reading by subscription. + * @param value initial value + * @param {StartStopNotifier}start start and stop notifications for subscriptions + */ + function readable(value, start) { + return { + subscribe: writable(value, start).subscribe + }; + } + /** + * Create a `Writable` store that allows both updating and reading by subscription. + * @param {*=}value initial value + * @param {StartStopNotifier=}start start and stop notifications for subscriptions + */ + function writable(value, start = noop$2) { + let stop; + const subscribers = new Set(); + function set(new_value) { + if (safe_not_equal(value, new_value)) { + value = new_value; + if (stop) { // store is ready + const run_queue = !subscriber_queue.length; + for (const subscriber of subscribers) { + subscriber[1](); + subscriber_queue.push(subscriber, value); + } + if (run_queue) { + for (let i = 0; i < subscriber_queue.length; i += 2) { + subscriber_queue[i][0](subscriber_queue[i + 1]); + } + subscriber_queue.length = 0; + } + } + } + } + function update(fn) { + set(fn(value)); + } + function subscribe(run, invalidate = noop$2) { + const subscriber = [run, invalidate]; + subscribers.add(subscriber); + if (subscribers.size === 1) { + stop = start(set) || noop$2; + } + run(value); + return () => { + subscribers.delete(subscriber); + if (subscribers.size === 0) { + stop(); + stop = null; + } + }; + } + return { set, update, subscribe }; + } + function derived(stores, fn, initial_value) { + const single = !Array.isArray(stores); + const stores_array = single + ? [stores] + : stores; + const auto = fn.length < 2; + return readable(initial_value, (set) => { + let inited = false; + const values = []; + let pending = 0; + let cleanup = noop$2; + const sync = () => { + if (pending) { + return; + } + cleanup(); + const result = fn(single ? values[0] : values, set); + if (auto) { + set(result); + } + else { + cleanup = is_function(result) ? result : noop$2; + } + }; + const unsubscribers = stores_array.map((store, i) => subscribe(store, (value) => { + values[i] = value; + pending &= ~(1 << i); + if (inited) { + sync(); + } + }, () => { + pending |= (1 << i); + })); + inited = true; + sync(); + return function stop() { + run_all(unsubscribers); + cleanup(); + }; + }); + } + + function parse$1(str, loose) { + if (str instanceof RegExp) return { keys:false, pattern:str }; + var c, o, tmp, ext, keys=[], pattern='', arr = str.split('/'); + arr[0] || arr.shift(); + + while (tmp = arr.shift()) { + c = tmp[0]; + if (c === '*') { + keys.push('wild'); + pattern += '/(.*)'; + } else if (c === ':') { + o = tmp.indexOf('?', 1); + ext = tmp.indexOf('.', 1); + keys.push( tmp.substring(1, !!~o ? o : !!~ext ? ext : tmp.length) ); + pattern += !!~o && !~ext ? '(?:/([^/]+?))?' : '/([^/]+?)'; + if (!!~ext) pattern += (!!~o ? '?' : '') + '\\' + tmp.substring(ext); + } else { + pattern += '/' + tmp; + } + } + + return { + keys: keys, + pattern: new RegExp('^' + pattern + (loose ? '(?=$|\/)' : '\/?$'), 'i') + }; + } + + /* node_modules/svelte-spa-router/Router.svelte generated by Svelte v3.42.4 */ + + function create_else_block$c(ctx) { + let switch_instance; + let switch_instance_anchor; + let current; + const switch_instance_spread_levels = [/*props*/ ctx[2]]; + var switch_value = /*component*/ ctx[0]; + + function switch_props(ctx) { + let switch_instance_props = {}; + + for (let i = 0; i < switch_instance_spread_levels.length; i += 1) { + switch_instance_props = assign$3(switch_instance_props, switch_instance_spread_levels[i]); + } + + return { props: switch_instance_props }; + } + + if (switch_value) { + switch_instance = new switch_value(switch_props()); + switch_instance.$on("routeEvent", /*routeEvent_handler_1*/ ctx[7]); + } + + return { + c() { + if (switch_instance) create_component(switch_instance.$$.fragment); + switch_instance_anchor = empty(); + }, + m(target, anchor) { + if (switch_instance) { + mount_component(switch_instance, target, anchor); + } + + insert(target, switch_instance_anchor, anchor); + current = true; + }, + p(ctx, dirty) { + const switch_instance_changes = (dirty & /*props*/ 4) + ? get_spread_update(switch_instance_spread_levels, [get_spread_object(/*props*/ ctx[2])]) + : {}; + + if (switch_value !== (switch_value = /*component*/ ctx[0])) { + if (switch_instance) { + group_outros(); + const old_component = switch_instance; + + transition_out(old_component.$$.fragment, 1, 0, () => { + destroy_component(old_component, 1); + }); + + check_outros(); + } + + if (switch_value) { + switch_instance = new switch_value(switch_props()); + switch_instance.$on("routeEvent", /*routeEvent_handler_1*/ ctx[7]); + create_component(switch_instance.$$.fragment); + transition_in(switch_instance.$$.fragment, 1); + mount_component(switch_instance, switch_instance_anchor.parentNode, switch_instance_anchor); + } else { + switch_instance = null; + } + } else if (switch_value) { + switch_instance.$set(switch_instance_changes); + } + }, + i(local) { + if (current) return; + if (switch_instance) transition_in(switch_instance.$$.fragment, local); + current = true; + }, + o(local) { + if (switch_instance) transition_out(switch_instance.$$.fragment, local); + current = false; + }, + d(detaching) { + if (detaching) detach(switch_instance_anchor); + if (switch_instance) destroy_component(switch_instance, detaching); + } + }; + } + + // (244:0) {#if componentParams} + function create_if_block$i(ctx) { + let switch_instance; + let switch_instance_anchor; + let current; + const switch_instance_spread_levels = [{ params: /*componentParams*/ ctx[1] }, /*props*/ ctx[2]]; + var switch_value = /*component*/ ctx[0]; + + function switch_props(ctx) { + let switch_instance_props = {}; + + for (let i = 0; i < switch_instance_spread_levels.length; i += 1) { + switch_instance_props = assign$3(switch_instance_props, switch_instance_spread_levels[i]); + } + + return { props: switch_instance_props }; + } + + if (switch_value) { + switch_instance = new switch_value(switch_props()); + switch_instance.$on("routeEvent", /*routeEvent_handler*/ ctx[6]); + } + + return { + c() { + if (switch_instance) create_component(switch_instance.$$.fragment); + switch_instance_anchor = empty(); + }, + m(target, anchor) { + if (switch_instance) { + mount_component(switch_instance, target, anchor); + } + + insert(target, switch_instance_anchor, anchor); + current = true; + }, + p(ctx, dirty) { + const switch_instance_changes = (dirty & /*componentParams, props*/ 6) + ? get_spread_update(switch_instance_spread_levels, [ + dirty & /*componentParams*/ 2 && { params: /*componentParams*/ ctx[1] }, + dirty & /*props*/ 4 && get_spread_object(/*props*/ ctx[2]) + ]) + : {}; + + if (switch_value !== (switch_value = /*component*/ ctx[0])) { + if (switch_instance) { + group_outros(); + const old_component = switch_instance; + + transition_out(old_component.$$.fragment, 1, 0, () => { + destroy_component(old_component, 1); + }); + + check_outros(); + } + + if (switch_value) { + switch_instance = new switch_value(switch_props()); + switch_instance.$on("routeEvent", /*routeEvent_handler*/ ctx[6]); + create_component(switch_instance.$$.fragment); + transition_in(switch_instance.$$.fragment, 1); + mount_component(switch_instance, switch_instance_anchor.parentNode, switch_instance_anchor); + } else { + switch_instance = null; + } + } else if (switch_value) { + switch_instance.$set(switch_instance_changes); + } + }, + i(local) { + if (current) return; + if (switch_instance) transition_in(switch_instance.$$.fragment, local); + current = true; + }, + o(local) { + if (switch_instance) transition_out(switch_instance.$$.fragment, local); + current = false; + }, + d(detaching) { + if (detaching) detach(switch_instance_anchor); + if (switch_instance) destroy_component(switch_instance, detaching); + } + }; + } + + function create_fragment$10(ctx) { + let current_block_type_index; + let if_block; + let if_block_anchor; + let current; + const if_block_creators = [create_if_block$i, create_else_block$c]; + const if_blocks = []; + + function select_block_type(ctx, dirty) { + if (/*componentParams*/ ctx[1]) return 0; + return 1; + } + + current_block_type_index = select_block_type(ctx); + if_block = if_blocks[current_block_type_index] = if_block_creators[current_block_type_index](ctx); + + return { + c() { + if_block.c(); + if_block_anchor = empty(); + }, + m(target, anchor) { + if_blocks[current_block_type_index].m(target, anchor); + insert(target, if_block_anchor, anchor); + current = true; + }, + p(ctx, [dirty]) { + let previous_block_index = current_block_type_index; + current_block_type_index = select_block_type(ctx); + + if (current_block_type_index === previous_block_index) { + if_blocks[current_block_type_index].p(ctx, dirty); + } else { + group_outros(); + + transition_out(if_blocks[previous_block_index], 1, 1, () => { + if_blocks[previous_block_index] = null; + }); + + check_outros(); + if_block = if_blocks[current_block_type_index]; + + if (!if_block) { + if_block = if_blocks[current_block_type_index] = if_block_creators[current_block_type_index](ctx); + if_block.c(); + } else { + if_block.p(ctx, dirty); + } + + transition_in(if_block, 1); + if_block.m(if_block_anchor.parentNode, if_block_anchor); + } + }, + i(local) { + if (current) return; + transition_in(if_block); + current = true; + }, + o(local) { + transition_out(if_block); + current = false; + }, + d(detaching) { + if_blocks[current_block_type_index].d(detaching); + if (detaching) detach(if_block_anchor); + } + }; + } + + /** + * @typedef {Object} Location + * @property {string} location - Location (page/view), for example `/book` + * @property {string} [querystring] - Querystring from the hash, as a string not parsed + */ + /** + * Returns the current location from the hash. + * + * @returns {Location} Location object + * @private + */ + function getLocation() { + const hashPosition = window.location.href.indexOf('#/'); + + let location = hashPosition > -1 + ? window.location.href.substr(hashPosition + 1) + : '/'; + + // Check if there's a querystring + const qsPosition = location.indexOf('?'); + + let querystring = ''; + + if (qsPosition > -1) { + querystring = location.substr(qsPosition + 1); + location = location.substr(0, qsPosition); + } + + return { location, querystring }; + } + + const loc = readable(null, // eslint-disable-next-line prefer-arrow-callback + function start(set) { + set(getLocation()); + + const update = () => { + set(getLocation()); + }; + + window.addEventListener('hashchange', update, false); + + return function stop() { + window.removeEventListener('hashchange', update, false); + }; + }); + + const location$1 = derived(loc, $loc => $loc.location); + derived(loc, $loc => $loc.querystring); + const params = writable(undefined); + + async function replace(location) { + if (!location || location.length < 1 || location.charAt(0) != '/' && location.indexOf('#/') !== 0) { + throw Error('Invalid parameter location'); + } + + // Execute this code when the current call stack is complete + await tick(); + + const dest = (location.charAt(0) == '#' ? '' : '#') + location; + + try { + const newState = { ...history.state }; + delete newState['__svelte_spa_router_scrollX']; + delete newState['__svelte_spa_router_scrollY']; + window.history.replaceState(newState, undefined, dest); + } catch(e) { + // eslint-disable-next-line no-console + console.warn('Caught exception while replacing the current page. If you\'re running this in the Svelte REPL, please note that the `replace` method might not work in this environment.'); + } + + // The method above doesn't trigger the hashchange event, so let's do that manually + window.dispatchEvent(new Event('hashchange')); + } + + function link(node, opts) { + opts = linkOpts(opts); + + // Only apply to tags + if (!node || !node.tagName || node.tagName.toLowerCase() != 'a') { + throw Error('Action "link" can only be used with tags'); + } + + updateLink(node, opts); + + return { + update(updated) { + updated = linkOpts(updated); + updateLink(node, updated); + } + }; + } + + // Internal function used by the link function + function updateLink(node, opts) { + let href = opts.href || node.getAttribute('href'); + + // Destination must start with '/' or '#/' + if (href && href.charAt(0) == '/') { + // Add # to the href attribute + href = '#' + href; + } else if (!href || href.length < 2 || href.slice(0, 2) != '#/') { + throw Error('Invalid value for "href" attribute: ' + href); + } + + node.setAttribute('href', href); + + node.addEventListener('click', event => { + // Prevent default anchor onclick behaviour + event.preventDefault(); + + if (!opts.disabled) { + scrollstateHistoryHandler(event.currentTarget.getAttribute('href')); + } + }); + } + + // Internal function that ensures the argument of the link action is always an object + function linkOpts(val) { + if (val && typeof val == 'string') { + return { href: val }; + } else { + return val || {}; + } + } + + /** + * The handler attached to an anchor tag responsible for updating the + * current history state with the current scroll state + * + * @param {string} href - Destination + */ + function scrollstateHistoryHandler(href) { + // Setting the url (3rd arg) to href will break clicking for reasons, so don't try to do that + history.replaceState( + { + ...history.state, + __svelte_spa_router_scrollX: window.scrollX, + __svelte_spa_router_scrollY: window.scrollY + }, + undefined, + undefined + ); + + // This will force an update as desired, but this time our scroll state will be attached + window.location.hash = href; + } + + function instance$$($$self, $$props, $$invalidate) { + let { routes = {} } = $$props; + let { prefix = '' } = $$props; + let { restoreScrollState = false } = $$props; + + /** + * Container for a route: path, component + */ + class RouteItem { + /** + * Initializes the object and creates a regular expression from the path, using regexparam. + * + * @param {string} path - Path to the route (must start with '/' or '*') + * @param {SvelteComponent|WrappedComponent} component - Svelte component for the route, optionally wrapped + */ + constructor(path, component) { + if (!component || typeof component != 'function' && (typeof component != 'object' || component._sveltesparouter !== true)) { + throw Error('Invalid component object'); + } + + // Path must be a regular or expression, or a string starting with '/' or '*' + if (!path || typeof path == 'string' && (path.length < 1 || path.charAt(0) != '/' && path.charAt(0) != '*') || typeof path == 'object' && !(path instanceof RegExp)) { + throw Error('Invalid value for "path" argument - strings must start with / or *'); + } + + const { pattern, keys } = parse$1(path); + this.path = path; + + // Check if the component is wrapped and we have conditions + if (typeof component == 'object' && component._sveltesparouter === true) { + this.component = component.component; + this.conditions = component.conditions || []; + this.userData = component.userData; + this.props = component.props || {}; + } else { + // Convert the component to a function that returns a Promise, to normalize it + this.component = () => Promise.resolve(component); + + this.conditions = []; + this.props = {}; + } + + this._pattern = pattern; + this._keys = keys; + } + + /** + * Checks if `path` matches the current route. + * If there's a match, will return the list of parameters from the URL (if any). + * In case of no match, the method will return `null`. + * + * @param {string} path - Path to test + * @returns {null|Object.} List of paramters from the URL if there's a match, or `null` otherwise. + */ + match(path) { + // If there's a prefix, check if it matches the start of the path. + // If not, bail early, else remove it before we run the matching. + if (prefix) { + if (typeof prefix == 'string') { + if (path.startsWith(prefix)) { + path = path.substr(prefix.length) || '/'; + } else { + return null; + } + } else if (prefix instanceof RegExp) { + const match = path.match(prefix); + + if (match && match[0]) { + path = path.substr(match[0].length) || '/'; + } else { + return null; + } + } + } + + // Check if the pattern matches + const matches = this._pattern.exec(path); + + if (matches === null) { + return null; + } + + // If the input was a regular expression, this._keys would be false, so return matches as is + if (this._keys === false) { + return matches; + } + + const out = {}; + let i = 0; + + while (i < this._keys.length) { + // In the match parameters, URL-decode all values + try { + out[this._keys[i]] = decodeURIComponent(matches[i + 1] || '') || null; + } catch(e) { + out[this._keys[i]] = null; + } + + i++; + } + + return out; + } + + /** + * Dictionary with route details passed to the pre-conditions functions, as well as the `routeLoading`, `routeLoaded` and `conditionsFailed` events + * @typedef {Object} RouteDetail + * @property {string|RegExp} route - Route matched as defined in the route definition (could be a string or a reguar expression object) + * @property {string} location - Location path + * @property {string} querystring - Querystring from the hash + * @property {object} [userData] - Custom data passed by the user + * @property {SvelteComponent} [component] - Svelte component (only in `routeLoaded` events) + * @property {string} [name] - Name of the Svelte component (only in `routeLoaded` events) + */ + /** + * Executes all conditions (if any) to control whether the route can be shown. Conditions are executed in the order they are defined, and if a condition fails, the following ones aren't executed. + * + * @param {RouteDetail} detail - Route detail + * @returns {boolean} Returns true if all the conditions succeeded + */ + async checkConditions(detail) { + for (let i = 0; i < this.conditions.length; i++) { + if (!await this.conditions[i](detail)) { + return false; + } + } + + return true; + } + } + + // Set up all routes + const routesList = []; + + if (routes instanceof Map) { + // If it's a map, iterate on it right away + routes.forEach((route, path) => { + routesList.push(new RouteItem(path, route)); + }); + } else { + // We have an object, so iterate on its own properties + Object.keys(routes).forEach(path => { + routesList.push(new RouteItem(path, routes[path])); + }); + } + + // Props for the component to render + let component = null; + + let componentParams = null; + let props = {}; + + // Event dispatcher from Svelte + const dispatch = createEventDispatcher(); + + // Just like dispatch, but executes on the next iteration of the event loop + async function dispatchNextTick(name, detail) { + // Execute this code when the current call stack is complete + await tick(); + + dispatch(name, detail); + } + + // If this is set, then that means we have popped into this var the state of our last scroll position + let previousScrollState = null; + + let popStateChanged = null; + + if (restoreScrollState) { + popStateChanged = event => { + // If this event was from our history.replaceState, event.state will contain + // our scroll history. Otherwise, event.state will be null (like on forward + // navigation) + if (event.state && event.state.__svelte_spa_router_scrollY) { + previousScrollState = event.state; + } else { + previousScrollState = null; + } + }; + + // This is removed in the destroy() invocation below + window.addEventListener('popstate', popStateChanged); + + afterUpdate(() => { + // If this exists, then this is a back navigation: restore the scroll position + if (previousScrollState) { + window.scrollTo(previousScrollState.__svelte_spa_router_scrollX, previousScrollState.__svelte_spa_router_scrollY); + } else { + // Otherwise this is a forward navigation: scroll to top + window.scrollTo(0, 0); + } + }); + } + + // Always have the latest value of loc + let lastLoc = null; + + // Current object of the component loaded + let componentObj = null; + + // Handle hash change events + // Listen to changes in the $loc store and update the page + // Do not use the $: syntax because it gets triggered by too many things + const unsubscribeLoc = loc.subscribe(async newLoc => { + lastLoc = newLoc; + + // Find a route matching the location + let i = 0; + + while (i < routesList.length) { + const match = routesList[i].match(newLoc.location); + + if (!match) { + i++; + continue; + } + + const detail = { + route: routesList[i].path, + location: newLoc.location, + querystring: newLoc.querystring, + userData: routesList[i].userData, + params: match && typeof match == 'object' && Object.keys(match).length + ? match + : null + }; + + // Check if the route can be loaded - if all conditions succeed + if (!await routesList[i].checkConditions(detail)) { + // Don't display anything + $$invalidate(0, component = null); + + componentObj = null; + + // Trigger an event to notify the user, then exit + dispatchNextTick('conditionsFailed', detail); + + return; + } + + // Trigger an event to alert that we're loading the route + // We need to clone the object on every event invocation so we don't risk the object to be modified in the next tick + dispatchNextTick('routeLoading', Object.assign({}, detail)); + + // If there's a component to show while we're loading the route, display it + const obj = routesList[i].component; + + // Do not replace the component if we're loading the same one as before, to avoid the route being unmounted and re-mounted + if (componentObj != obj) { + if (obj.loading) { + $$invalidate(0, component = obj.loading); + componentObj = obj; + $$invalidate(1, componentParams = obj.loadingParams); + $$invalidate(2, props = {}); + + // Trigger the routeLoaded event for the loading component + // Create a copy of detail so we don't modify the object for the dynamic route (and the dynamic route doesn't modify our object too) + dispatchNextTick('routeLoaded', Object.assign({}, detail, { + component, + name: component.name, + params: componentParams + })); + } else { + $$invalidate(0, component = null); + componentObj = null; + } + + // Invoke the Promise + const loaded = await obj(); + + // Now that we're here, after the promise resolved, check if we still want this component, as the user might have navigated to another page in the meanwhile + if (newLoc != lastLoc) { + // Don't update the component, just exit + return; + } + + // If there is a "default" property, which is used by async routes, then pick that + $$invalidate(0, component = loaded && loaded.default || loaded); + + componentObj = obj; + } + + // Set componentParams only if we have a match, to avoid a warning similar to ` was created with unknown prop 'params'` + // Of course, this assumes that developers always add a "params" prop when they are expecting parameters + if (match && typeof match == 'object' && Object.keys(match).length) { + $$invalidate(1, componentParams = match); + } else { + $$invalidate(1, componentParams = null); + } + + // Set static props, if any + $$invalidate(2, props = routesList[i].props); + + // Dispatch the routeLoaded event then exit + // We need to clone the object on every event invocation so we don't risk the object to be modified in the next tick + dispatchNextTick('routeLoaded', Object.assign({}, detail, { + component, + name: component.name, + params: componentParams + })).then(() => { + params.set(componentParams); + }); + + return; + } + + // If we're still here, there was no match, so show the empty component + $$invalidate(0, component = null); + + componentObj = null; + params.set(undefined); + }); + + onDestroy(() => { + unsubscribeLoc(); + popStateChanged && window.removeEventListener('popstate', popStateChanged); + }); + + function routeEvent_handler(event) { + bubble.call(this, $$self, event); + } + + function routeEvent_handler_1(event) { + bubble.call(this, $$self, event); + } + + $$self.$$set = $$props => { + if ('routes' in $$props) $$invalidate(3, routes = $$props.routes); + if ('prefix' in $$props) $$invalidate(4, prefix = $$props.prefix); + if ('restoreScrollState' in $$props) $$invalidate(5, restoreScrollState = $$props.restoreScrollState); + }; + + $$self.$$.update = () => { + if ($$self.$$.dirty & /*restoreScrollState*/ 32) { + // Update history.scrollRestoration depending on restoreScrollState + history.scrollRestoration = restoreScrollState ? 'manual' : 'auto'; + } + }; + + return [ + component, + componentParams, + props, + routes, + prefix, + restoreScrollState, + routeEvent_handler, + routeEvent_handler_1 + ]; + } + + class Router extends SvelteComponent { + constructor(options) { + super(); + + init$1(this, options, instance$$, create_fragment$10, safe_not_equal, { + routes: 3, + prefix: 4, + restoreScrollState: 5 + }); + } + } + + const notification = writable(); + + async function toaster (node, sessionKey) { + const unsubscribe = notification.subscribe(value => { + if (!value) { return } + node.dispatchEvent( + new CustomEvent('notify', { detail: value }) + ); + notification.set(); + }); + + await tick(); + try { + const existing = JSON.parse( + sessionStorage.getItem(sessionKey) + ); + for (const n of existing) { + notification.set(n); + } + } catch (e) { + } finally { + try { + sessionStorage.removeItem(sessionKey); + } catch (e2) {} + } + + return { + destroy () { + unsubscribe(); + } + } + } + + /* node_modules/@beyonk/svelte-notifications/Notifications.svelte generated by Svelte v3.42.4 */ + + function get_each_context$n(ctx, list, i) { + const child_ctx = ctx.slice(); + child_ctx[9] = list[i]; + return child_ctx; + } + + // (4:6) {#if toast.persist} + function create_if_block$h(ctx) { + let button; + let mounted; + let dispose; + + function click_handler() { + return /*click_handler*/ ctx[7](/*toast*/ ctx[9]); + } + + return { + c() { + button = element("button"); + button.textContent = "✕"; + attr(button, "class", "close svelte-vlqkf6"); + }, + m(target, anchor) { + insert(target, button, anchor); + + if (!mounted) { + dispose = listen(button, "click", click_handler); + mounted = true; + } + }, + p(new_ctx, dirty) { + ctx = new_ctx; + }, + d(detaching) { + if (detaching) detach(button); + mounted = false; + dispose(); + } + }; + } + + // (2:2) {#each toasts as toast (toast.id)} + function create_each_block$n(key_1, ctx) { + let li; + let t0; + let div0; + let t1_value = /*toast*/ ctx[9].message + ""; + let t1; + let t2; + let div1; + let t3; + let li_outro; + let current; + let mounted; + let dispose; + let if_block = /*toast*/ ctx[9].persist && create_if_block$h(ctx); + + function animationend_handler() { + return /*animationend_handler*/ ctx[8](/*toast*/ ctx[9]); + } + + return { + key: key_1, + first: null, + c() { + li = element("li"); + if (if_block) if_block.c(); + t0 = space(); + div0 = element("div"); + t1 = text(t1_value); + t2 = space(); + div1 = element("div"); + t3 = space(); + attr(div0, "class", "content svelte-vlqkf6"); + attr(div1, "class", "progress svelte-vlqkf6"); + set_style(div1, "animation-duration", /*toast*/ ctx[9].timeout + "ms"); + attr(li, "class", "toast svelte-vlqkf6"); + set_style(li, "background", /*toast*/ ctx[9].background); + this.first = li; + }, + m(target, anchor) { + insert(target, li, anchor); + if (if_block) if_block.m(li, null); + append(li, t0); + append(li, div0); + append(div0, t1); + append(li, t2); + append(li, div1); + append(li, t3); + current = true; + + if (!mounted) { + dispose = listen(div1, "animationend", animationend_handler); + mounted = true; + } + }, + p(new_ctx, dirty) { + ctx = new_ctx; + + if (/*toast*/ ctx[9].persist) { + if (if_block) { + if_block.p(ctx, dirty); + } else { + if_block = create_if_block$h(ctx); + if_block.c(); + if_block.m(li, t0); + } + } else if (if_block) { + if_block.d(1); + if_block = null; + } + + if ((!current || dirty & /*toasts*/ 2) && t1_value !== (t1_value = /*toast*/ ctx[9].message + "")) set_data(t1, t1_value); + + if (!current || dirty & /*toasts*/ 2) { + set_style(div1, "animation-duration", /*toast*/ ctx[9].timeout + "ms"); + } + + if (!current || dirty & /*toasts*/ 2) { + set_style(li, "background", /*toast*/ ctx[9].background); + } + }, + i(local) { + if (current) return; + if (li_outro) li_outro.end(1); + current = true; + }, + o(local) { + li_outro = create_out_transition(li, animateOut, {}); + current = false; + }, + d(detaching) { + if (detaching) detach(li); + if (if_block) if_block.d(); + if (detaching && li_outro) li_outro.end(); + mounted = false; + dispose(); + } + }; + } + + function create_fragment$$(ctx) { + let ul; + let each_blocks = []; + let each_1_lookup = new Map(); + let toaster_action; + let current; + let mounted; + let dispose; + let each_value = /*toasts*/ ctx[1]; + const get_key = ctx => /*toast*/ ctx[9].id; + + for (let i = 0; i < each_value.length; i += 1) { + let child_ctx = get_each_context$n(ctx, each_value, i); + let key = get_key(child_ctx); + each_1_lookup.set(key, each_blocks[i] = create_each_block$n(key, child_ctx)); + } + + return { + c() { + ul = element("ul"); + + for (let i = 0; i < each_blocks.length; i += 1) { + each_blocks[i].c(); + } + + attr(ul, "class", "toasts svelte-vlqkf6"); + }, + m(target, anchor) { + insert(target, ul, anchor); + + for (let i = 0; i < each_blocks.length; i += 1) { + each_blocks[i].m(ul, null); + } + + current = true; + + if (!mounted) { + dispose = [ + action_destroyer(toaster_action = toaster.call(null, ul, /*sessionKey*/ ctx[0])), + listen(ul, "notify", /*createToast*/ ctx[2]) + ]; + + mounted = true; + } + }, + p(ctx, [dirty]) { + if (dirty & /*toasts, maybePurge, purge*/ 26) { + each_value = /*toasts*/ ctx[1]; + group_outros(); + each_blocks = update_keyed_each(each_blocks, dirty, get_key, 1, ctx, each_value, each_1_lookup, ul, outro_and_destroy_block, create_each_block$n, null, get_each_context$n); + check_outros(); + } + + if (toaster_action && is_function(toaster_action.update) && dirty & /*sessionKey*/ 1) toaster_action.update.call(null, /*sessionKey*/ ctx[0]); + }, + i(local) { + if (current) return; + + for (let i = 0; i < each_value.length; i += 1) { + transition_in(each_blocks[i]); + } + + current = true; + }, + o(local) { + for (let i = 0; i < each_blocks.length; i += 1) { + transition_out(each_blocks[i]); + } + + current = false; + }, + d(detaching) { + if (detaching) detach(ul); + + for (let i = 0; i < each_blocks.length; i += 1) { + each_blocks[i].d(); + } + + mounted = false; + run_all(dispose); + } + }; + } + + function animateOut(node, { delay = 0, duration = 1000 }) { + return { + delay, + duration, + css: t => `opacity: ${(t - 0.7) * 1}; transform-origin: top right;` + }; + } + + function instance$_($$self, $$props, $$invalidate) { + let { themes = { + danger: '#bb2124', + success: '#22bb33', + warning: '#f0ad4e', + info: '#5bc0de', + default: '#aaaaaa' + } } = $$props; + + let { timeout = 3000 } = $$props; + let { sessionKey = 'byk-toasts' } = $$props; + let toasts = []; + + function createToast({ detail }) { + const { message, type, options = {} } = detail; + const background = themes[type] || themes.default; + const persist = options.persist; + const computedTimeout = options.persist ? 0 : options.timeout || timeout; + const id = Math.random().toString(36).replace(/[^a-z]+/g, ''); + + try { + sessionStorage.setItem(sessionKey, JSON.stringify([ + ...JSON.parse(sessionStorage.getItem(sessionKey) || '[]'), + { ...detail, id } + ])); + } catch(e) { + + } + + $$invalidate(1, toasts = [ + { + id, + message, + background, + persist, + timeout: computedTimeout, + width: '100%' + }, + ...toasts + ]); + } + + function maybePurge(toast) { + !toast.persist && purge(toast.id); + } + + function purge(id) { + const filter = t => t.id !== id; + $$invalidate(1, toasts = toasts.filter(filter)); + + try { + sessionStorage.setItem(sessionKey, JSON.stringify(JSON.parse(sessionStorage.getItem(sessionKey) || '[]').filter(filter))); + } catch(e) { + + } + } + + const click_handler = toast => purge(toast.id); + const animationend_handler = toast => maybePurge(toast); + + $$self.$$set = $$props => { + if ('themes' in $$props) $$invalidate(5, themes = $$props.themes); + if ('timeout' in $$props) $$invalidate(6, timeout = $$props.timeout); + if ('sessionKey' in $$props) $$invalidate(0, sessionKey = $$props.sessionKey); + }; + + return [ + sessionKey, + toasts, + createToast, + maybePurge, + purge, + themes, + timeout, + click_handler, + animationend_handler + ]; + } + + class Notifications extends SvelteComponent { + constructor(options) { + super(); + init$1(this, options, instance$_, create_fragment$$, safe_not_equal, { themes: 5, timeout: 6, sessionKey: 0 }); + } + } + + function parseLegacyOptions (options) { + return typeof options === 'number' ? { timeout: options } : options + } + + function send (message, type = 'default', options) { + notification.set({ type, message, options: parseLegacyOptions(options) }); + } + + function danger (message, options) { + send(message, 'danger', options); + } + + function warning (message, options) { + send(message, 'warning', options); + } + + function info (message, options) { + send(message, 'info', options); + } + + function success (message, options) { + send(message, 'success', options); + } + + // List of nodes to update + const nodes = []; + + // Current location + let location; + + // Function that updates all nodes marking the active ones + function checkActive(el) { + const matchesLocation = el.pattern.test(location); + toggleClasses(el, el.className, matchesLocation); + toggleClasses(el, el.inactiveClassName, !matchesLocation); + } + + function toggleClasses(el, className, shouldAdd) { + (className || '').split(' ').forEach((cls) => { + if (!cls) { + return + } + // Remove the class firsts + el.node.classList.remove(cls); + + // If the pattern doesn't match, then set the class + if (shouldAdd) { + el.node.classList.add(cls); + } + }); + } + + // Listen to changes in the location + loc.subscribe((value) => { + // Update the location + location = value.location + (value.querystring ? '?' + value.querystring : ''); + + // Update all nodes + nodes.map(checkActive); + }); + + /** + * @typedef {Object} ActiveOptions + * @property {string|RegExp} [path] - Path expression that makes the link active when matched (must start with '/' or '*'); default is the link's href + * @property {string} [className] - CSS class to apply to the element when active; default value is "active" + */ + + /** + * Svelte Action for automatically adding the "active" class to elements (links, or any other DOM element) when the current location matches a certain path. + * + * @param {HTMLElement} node - The target node (automatically set by Svelte) + * @param {ActiveOptions|string|RegExp} [opts] - Can be an object of type ActiveOptions, or a string (or regular expressions) representing ActiveOptions.path. + * @returns {{destroy: function(): void}} Destroy function + */ + function active(node, opts) { + // Check options + if (opts && (typeof opts == 'string' || (typeof opts == 'object' && opts instanceof RegExp))) { + // Interpret strings and regular expressions as opts.path + opts = { + path: opts + }; + } + else { + // Ensure opts is a dictionary + opts = opts || {}; + } + + // Path defaults to link target + if (!opts.path && node.hasAttribute('href')) { + opts.path = node.getAttribute('href'); + if (opts.path && opts.path.length > 1 && opts.path.charAt(0) == '#') { + opts.path = opts.path.substring(1); + } + } + + // Default class name + if (!opts.className) { + opts.className = 'active'; + } + + // If path is a string, it must start with '/' or '*' + if (!opts.path || + typeof opts.path == 'string' && (opts.path.length < 1 || (opts.path.charAt(0) != '/' && opts.path.charAt(0) != '*')) + ) { + throw Error('Invalid value for "path" argument') + } + + // If path is not a regular expression already, make it + const {pattern} = typeof opts.path == 'string' ? + parse$1(opts.path) : + {pattern: opts.path}; + + // Add the node to the list + const el = { + node, + className: opts.className, + inactiveClassName: opts.inactiveClassName, + pattern + }; + nodes.push(el); + + // Trigger the action right away + checkActive(el); + + return { + // When the element is destroyed, remove it from the list + destroy() { + nodes.splice(nodes.indexOf(el), 1); + } + } + } + + var docs = [ + { + firstname: "Nissy", + lastname: "Tunno", + email: "ntunnol4@princeton.edu", + city: "Shikeng", + street: "Blue Bill Park", + house_number: "6", + telephone_number: "6187969517", + subscribed_to_newsletter: false, + _id: "7e2f6d14-4137-564e-86e7-ca46dcf8cf74", + id: 1, + type: "customer", + registration_date: 1608940800000, + renewed_on: 0, + postal_code: 21810, + heard: "gesehen, vorbeigelaufen", + last_update: 1615075200000, + highlight: "" + }, + { + firstname: "Zilvia", + lastname: "Heaviside", + email: "zheavisidef8@qq.com", + city: "Abeokuta", + street: "Evergreen", + house_number: "851", + telephone_number: "9511662807", + subscribed_to_newsletter: false, + _id: "f8ed73b5-fd2b-58be-8fbb-d7bd0fa38ee2", + id: 2, + type: "customer", + registration_date: 1605139200000, + renewed_on: 0, + postal_code: 92750, + heard: "gesehen, vorbeigelaufen", + last_update: 1616803200000, + highlight: "" + }, + { + firstname: "Quincey", + lastname: "MacAllaster", + email: "qmacallaster6n@independent.co.uk", + city: "Złoty Stok", + postal_code: 48601, + street: "Oxford", + house_number: "66908", + telephone_number: "5742228330", + subscribed_to_newsletter: true, + _id: "f58638c6-3c92-5bc3-bd42-223eca736f1c", + id: 3, + type: "customer", + registration_date: 1598313600000, + renewed_on: 0, + heard: "gesehen, vorbeigelaufen", + last_update: 1614816000000, + highlight: "rgb(247, 239, 10)" + }, + { + firstname: "Enrica", + lastname: "Luetkemeyers", + email: "eluetkemeyerspq@acquirethisname.com", + city: "Karang Kulon", + street: "Ruskin", + house_number: "49", + telephone_number: "8479421710", + subscribed_to_newsletter: false, + _id: "4a2e21d8-12a9-5e07-aee1-953b48399652", + id: 4, + type: "customer", + registration_date: 1586995200000, + renewed_on: 0, + postal_code: 63473, + heard: "gesehen, vorbeigelaufen", + last_update: 1616457600000, + highlight: "" + }, + { + firstname: "Lay", + lastname: "Ogelsby", + email: "logelsbylw@wordpress.com", + city: "Banjar Mambalkajanan", + street: "Iowa", + house_number: "800", + telephone_number: "7174438962", + subscribed_to_newsletter: true, + _id: "3d04a648-8149-5ddd-a33d-bb9671c8f642", + id: 5, + type: "customer", + registration_date: 1586822400000, + renewed_on: 0, + postal_code: 84522, + heard: "gesehen, vorbeigelaufen", + last_update: 1615680000000, + highlight: "" + }, + { + firstname: "Baldwin", + lastname: "Sheilds", + email: "bsheildsoi@netscape.com", + city: "Valday", + postal_code: 86534, + street: "Lakewood Gardens", + house_number: "28", + telephone_number: "6489598645", + subscribed_to_newsletter: true, + _id: "0ead260b-faef-5d6d-ba89-f0114427ad47", + id: 6, + type: "customer", + registration_date: 1601078400000, + renewed_on: 0, + heard: "gesehen, vorbeigelaufen", + last_update: 1615507200000, + highlight: "rgb(247, 239, 10)" + }, + { + firstname: "Kennett", + lastname: "McNish", + email: "kmcnishhm@stumbleupon.com", + city: "Paris 07", + postal_code: 21630, + street: "Clarendon", + house_number: "6437", + telephone_number: "3364449161", + remark: "dui maecenas tristique est et", + subscribed_to_newsletter: true, + _id: "412e2c9d-0f62-5aa9-b1fa-ebec4e8d25e0", + id: 7, + type: "customer", + registration_date: 1602806400000, + renewed_on: 0, + heard: "gesehen, vorbeigelaufen", + last_update: 1616284800000, + highlight: "rgb(45, 144, 224)" + }, + { + firstname: "Nikaniki", + lastname: "Bursnell", + email: "nbursnell8z@house.gov", + city: "Verba", + postal_code: 68753, + street: "Lighthouse Bay", + house_number: "7", + telephone_number: "3223053856", + subscribed_to_newsletter: false, + _id: "5375c2e5-1eb8-58f1-ae58-c4cde86a245f", + id: 8, + type: "customer", + registration_date: 1567036800000, + renewed_on: 0, + heard: "gesehen, vorbeigelaufen", + last_update: 1614902400000, + highlight: "" + }, + { + firstname: "Adler", + lastname: "Murie", + email: "amurieqj@state.gov", + city: "Tibro", + postal_code: 40318, + street: "Fairview", + house_number: "685", + telephone_number: "6309947304", + subscribed_to_newsletter: false, + _id: "9a818eb9-b7ca-51e3-a940-8c4d7090a444", + id: 9, + type: "customer", + registration_date: 1567728000000, + renewed_on: 0, + heard: "gesehen, vorbeigelaufen", + last_update: 1615248000000, + highlight: "" + }, + { + firstname: "Michele", + lastname: "Maceur", + email: "mmaceurj6@weebly.com", + city: "Springfield", + postal_code: 21356, + street: "Grim", + house_number: "8604", + telephone_number: "7819757001", + subscribed_to_newsletter: true, + _id: "1d8db2e5f-22fe-5bd5-aa2c-8b07c1cf213a", + id: 10, + type: "customer", + registration_date: 1583884800000, + renewed_on: 0, + heard: "gesehen, vorbeigelaufen", + last_update: 1614643200000, + highlight: "rgb(247, 239, 10)" + }, + { + firstname: "Conroy", + lastname: "Kubicek", + email: "ckubicekq8@addthis.com", + city: "Provins", + postal_code: 92067, + street: "Center", + house_number: "9", + telephone_number: "9873270667", + subscribed_to_newsletter: true, + _id: "19f352587-c808-54b6-9835-1b569ae98f23", + id: 11, + type: "customer", + registration_date: 1570060800000, + renewed_on: 0, + heard: "gesehen, vorbeigelaufen", + last_update: 1615939200000, + highlight: "" + }, + { + firstname: "Romeo", + lastname: "Marushak", + email: "rmarushakjo@icio.us", + city: "Rogowo", + postal_code: 77053, + street: "Mayer", + house_number: "6922", + telephone_number: "4832908208", + subscribed_to_newsletter: true, + _id: "129abe6ac-4b97-5127-9254-e4cc438caa80", + id: 12, + type: "customer", + registration_date: 1601424000000, + renewed_on: 0, + heard: "gesehen, vorbeigelaufen", + last_update: 1615939200000, + highlight: "" + }, + { + firstname: "Claudianus", + lastname: "Fevier", + email: "cfevierde@xing.com", + city: "Nong Phok", + postal_code: 23811, + street: "Clemons", + house_number: "278", + telephone_number: "2069133956", + subscribed_to_newsletter: true, + _id: "1fcd45fd1-893f-5063-959b-3f4217c31b49", + id: 13, + type: "customer", + registration_date: 1599696000000, + renewed_on: 0, + heard: "gesehen, vorbeigelaufen", + last_update: 1615852800000, + highlight: "" + }, + { + firstname: "Zea", + lastname: "Daville", + email: "zdaville8l@macromedia.com", + city: "Budapest", + postal_code: 46222, + street: "Mockingbird", + house_number: "8", + telephone_number: "1706083031", + subscribed_to_newsletter: false, + _id: "1a7632ae4-420a-5ffe-9202-3fe491662072", + id: 14, + type: "customer", + registration_date: 1568764800000, + renewed_on: 0, + heard: "gesehen, vorbeigelaufen", + last_update: 1615507200000, + highlight: "" + }, + { + firstname: "Garek", + lastname: "Janikowski", + email: "gjanikowski6w@digg.com", + city: "Juhaynah", + street: "Raven", + house_number: "46054", + telephone_number: "5761735353", + remark: "luctus et ultrices", + subscribed_to_newsletter: false, + _id: "1cdbc3f74-9482-5cf0-8b4a-b59b1ab60605", + id: 15, + type: "customer", + registration_date: 1564876800000, + renewed_on: 0, + postal_code: 19530, + heard: "gesehen, vorbeigelaufen", + last_update: 1616112000000, + highlight: "rgb(247, 239, 10)" + }, + { + firstname: "Kale", + lastname: "Lainge", + email: "klainged1@qq.com", + city: "Timba Lauk", + street: "Schlimgen", + house_number: "03714", + telephone_number: "5921089325", + remark: "morbi odio odio elementum eu interdum eu", + subscribed_to_newsletter: false, + _id: "1265f3208-739e-564e-baf1-2d2ed78662fe", + id: 16, + type: "customer", + registration_date: 1592611200000, + renewed_on: 0, + postal_code: 49213, + heard: "gesehen, vorbeigelaufen", + last_update: 1616198400000, + highlight: "" + }, + { + firstname: "Martguerita", + lastname: "Cruft", + email: "mcruftnm@devhub.com", + city: "Arroio Grande", + postal_code: 19960, + street: "Roxbury", + house_number: "957", + telephone_number: "5265199920", + subscribed_to_newsletter: false, + _id: "63b17439e-665a-5d4b-8f1d-6289ce1b83d5", + id: 60, + type: "customer", + registration_date: 1592611200000, + renewed_on: 0, + heard: "gesehen, vorbeigelaufen", + last_update: 1615766400000, + highlight: "" + }, + { + firstname: "Jeana", + lastname: "Collihole", + email: "jcolliholeqs@go.com", + city: "Zhukovo", + postal_code: 11832, + street: "Lotheville", + house_number: "615", + telephone_number: "1237584292", + subscribed_to_newsletter: false, + _id: "1a5cbb347-f3b5-5b7c-ac01-94ac710d1793", + id: 18, + type: "customer", + registration_date: 1556323200000, + renewed_on: 0, + heard: "gesehen, vorbeigelaufen", + last_update: 1614988800000, + highlight: "" + }, + { + firstname: "Zorine", + lastname: "Stichel", + email: "zstichelby@goo.ne.jp", + city: "Carapo", + street: "Burning Wood", + house_number: "9", + telephone_number: "1117290665", + subscribed_to_newsletter: false, + _id: "16b998ef7-3c74-50a3-90ce-536621a2a470", + id: 19, + type: "customer", + registration_date: 1608595200000, + renewed_on: 0, + postal_code: 80629, + heard: "gesehen, vorbeigelaufen", + last_update: 1616716800000, + highlight: "" + }, + { + firstname: "Fax", + lastname: "Moneypenny", + email: "fmoneypennyka@w3.org", + city: "Bol’shaya Setun’", + postal_code: 92795, + street: "Heffernan", + house_number: "6798", + telephone_number: "2892685720", + subscribed_to_newsletter: true, + _id: "2e5455327-fe25-52e9-a755-f1f197639774", + id: 20, + type: "customer", + registration_date: 1573689600000, + renewed_on: 0, + heard: "gesehen, vorbeigelaufen", + last_update: 1615766400000, + highlight: "rgb(45, 144, 224)" + }, + { + firstname: "Jacquie", + lastname: "Costanza", + email: "jcostanza6k@dyndns.org", + city: "Glasgow", + postal_code: 25284, + street: "Pleasure", + house_number: "1", + telephone_number: "5476825732", + subscribed_to_newsletter: false, + _id: "3cf832bcb-0f69-5cbf-b7af-c1ee9255874e", + id: 30, + type: "customer", + registration_date: 1570665600000, + renewed_on: 0, + heard: "gesehen, vorbeigelaufen", + last_update: 1615766400000, + highlight: "" + }, + { + firstname: "Tiphanie", + lastname: "Macauley", + email: "tmacauleypo@nytimes.com", + city: "Daming", + street: "Sutteridge", + house_number: "84679", + telephone_number: "9085448531", + subscribed_to_newsletter: false, + _id: "27b62deaa-1842-57de-b967-567a496870b9", + id: 22, + type: "customer", + registration_date: 1560643200000, + renewed_on: 0, + postal_code: 65039, + heard: "gesehen, vorbeigelaufen", + last_update: 1614988800000, + highlight: "" + }, + { + firstname: "Ronna", + lastname: "Jiggins", + email: "rjigginse3@ebay.com", + city: "Ancahuasi", + street: "Oak", + house_number: "2673", + telephone_number: "6963406050", + subscribed_to_newsletter: true, + _id: "270edf7ba-6009-56b3-916e-384ddb3fb780", + id: 23, + type: "customer", + registration_date: 1587168000000, + renewed_on: 0, + postal_code: 65445, + heard: "gesehen, vorbeigelaufen", + last_update: 1616025600000, + highlight: "" + }, + { + firstname: "Adrianne", + lastname: "Thomkins", + email: "athomkins2x@smh.com.au", + city: "Havana", + street: "Farragut", + house_number: "5441", + telephone_number: "3683299884", + subscribed_to_newsletter: false, + _id: "2d1e8d177-95d1-5c86-8ebe-83866b17851f", + id: 24, + type: "customer", + registration_date: 1611532800000, + renewed_on: 0, + postal_code: 75196, + heard: "gesehen, vorbeigelaufen", + last_update: 1614729600000, + highlight: "" + }, + { + firstname: "Alisa", + lastname: "Kindred", + email: "akindreddm@exblog.jp", + city: "Quellouno", + street: "Clemons", + house_number: "8", + telephone_number: "3967432551", + subscribed_to_newsletter: true, + _id: "2b6074fc2-095b-5ed3-9a94-9041215f48b1", + id: 25, + type: "customer", + registration_date: 1593561600000, + renewed_on: 0, + postal_code: 12656, + heard: "gesehen, vorbeigelaufen", + last_update: 1616112000000, + highlight: "" + }, + { + firstname: "Piggy", + lastname: "Methringham", + email: "pmethringhamm5@buzzfeed.com", + city: "Malanville", + street: "Corry", + house_number: "6145", + telephone_number: "7739808177", + subscribed_to_newsletter: false, + _id: "2cd008802-80b5-5df5-a782-09c070f8d122", + id: 26, + type: "customer", + registration_date: 1598659200000, + renewed_on: 0, + postal_code: 84674, + heard: "gesehen, vorbeigelaufen", + last_update: 1615248000000, + highlight: "" + }, + { + firstname: "Christiano", + lastname: "Jaqueme", + email: "cjaquemecy@netlog.com", + city: "Huangjindong", + street: "Bluestem", + house_number: "5", + telephone_number: "7972262708", + subscribed_to_newsletter: false, + _id: "2e2c9a563-5402-5794-8229-11297a8969cc", + id: 27, + type: "customer", + registration_date: 1599091200000, + renewed_on: 0, + postal_code: 79663, + heard: "gesehen, vorbeigelaufen", + last_update: 1615852800000, + highlight: "" + }, + { + firstname: "Maryanna", + lastname: "Grahl", + email: "mgrahlq5@house.gov", + city: "Mariestad", + postal_code: 12423, + street: "Caliangt", + house_number: "07746", + telephone_number: "5865800348", + subscribed_to_newsletter: false, + _id: "2bd6ddebc-9f56-5977-8b2e-990fa3d5e23f", + id: 28, + type: "customer", + registration_date: 1598659200000, + renewed_on: 0, + heard: "gesehen, vorbeigelaufen", + last_update: 1616544000000, + highlight: "" + }, + { + firstname: "Ellis", + lastname: "Clapperton", + email: "eclapperton57@ox.ac.uk", + city: "Batouri", + street: "Rutledge", + house_number: "5370", + telephone_number: "3007668408", + remark: "rhoncus aliquam lacus morbi quis tortor id", + subscribed_to_newsletter: true, + _id: "2360ce38b-f9f1-5f0b-b3c8-ab7353023e7e", + id: 29, + type: "customer", + registration_date: 1556755200000, + renewed_on: 0, + postal_code: 75162, + heard: "gesehen, vorbeigelaufen", + last_update: 1615852800000, + highlight: "" + }, + { + firstname: "Jacquie", + lastname: "Costanza", + email: "jcostanza6k@dyndns.org", + city: "Glasgow", + postal_code: 25284, + street: "Pleasure", + house_number: "1", + telephone_number: "5476825732", + subscribed_to_newsletter: false, + _id: "317d7be25-ef99-5486-82e8-bebf8c137394", + id: 30, + type: "customer", + registration_date: 1570665600000, + renewed_on: 0, + heard: "gesehen, vorbeigelaufen", + last_update: 1615766400000, + highlight: "" + }, + { + firstname: "Susann", + lastname: "Sunderland", + email: "ssunderlandlm@behance.net", + city: "Guarapari", + postal_code: 22229, + street: "Browning", + house_number: "4", + telephone_number: "1556410065", + subscribed_to_newsletter: false, + _id: "36e2b568a-60ab-5917-8e5a-79dc830bcf64", + id: 31, + type: "customer", + registration_date: 1608336000000, + renewed_on: 0, + heard: "gesehen, vorbeigelaufen", + last_update: 1614643200000, + highlight: "" + }, + { + firstname: "Carly", + lastname: "Cornwell", + email: "ccornwell8e@ed.gov", + city: "Na'ale", + street: "Golf", + house_number: "9602", + telephone_number: "7371856075", + subscribed_to_newsletter: true, + _id: "3b0b3d95d-be1d-5642-ba97-e6997739fb05", + id: 32, + type: "customer", + registration_date: 1564444800000, + renewed_on: 0, + postal_code: 91998, + heard: "gesehen, vorbeigelaufen", + last_update: 1616889600000, + highlight: "" + }, + { + firstname: "Ronica", + lastname: "Phifer", + email: "rphiferoz@usa.gov", + city: "Dengnan", + street: "Eggendart", + house_number: "9458", + telephone_number: "6305604608", + subscribed_to_newsletter: true, + _id: "358c7e58a-0d11-5626-a587-0e8a6727196c", + id: 33, + type: "customer", + registration_date: 1605830400000, + renewed_on: 0, + postal_code: 79854, + heard: "gesehen, vorbeigelaufen", + last_update: 1614556800000, + highlight: "rgb(131, 235, 52)" + }, + { + firstname: "Rustie", + lastname: "Dalglish", + email: "rdalglishlk@canalblog.com", + city: "Nālūt", + street: "Little Fleur", + house_number: "6", + telephone_number: "6538308624", + subscribed_to_newsletter: false, + _id: "3392483b6-7974-53ae-b167-2cac31dfc69e", + id: 34, + type: "customer", + registration_date: 1588550400000, + renewed_on: 0, + postal_code: 96677, + heard: "gesehen, vorbeigelaufen", + last_update: 1616544000000, + highlight: "" + }, + { + firstname: "Latrena", + lastname: "Slym", + email: "lslymqr@studiopress.com", + city: "Zhengdun", + street: "Toban", + house_number: "918", + telephone_number: "6949167944", + subscribed_to_newsletter: true, + _id: "3fe83f0d0-6cc1-5ea0-9b5c-63b746180dbc", + id: 35, + type: "customer", + registration_date: 1608595200000, + renewed_on: 0, + postal_code: 58234, + heard: "gesehen, vorbeigelaufen", + last_update: 1615334400000, + highlight: "" + }, + { + firstname: "Prisca", + lastname: "Mitchener", + email: "pmitchenerda@blogspot.com", + city: "Berëzovka", + postal_code: 98783, + street: "Elka", + house_number: "6384", + telephone_number: "8692116051", + subscribed_to_newsletter: true, + _id: "65e231748-02b7-5d02-bc8f-76e8b160fbb2", + id: 65, + type: "customer", + registration_date: 1587254400000, + renewed_on: 0, + heard: "gesehen, vorbeigelaufen", + last_update: 1616716800000, + highlight: "rgb(131, 235, 52)" + }, + { + firstname: "Virginia", + lastname: "Rosbrough", + email: "vrosbroughe2@ucla.edu", + city: "Orkney", + postal_code: 21203, + street: "Heath", + house_number: "1", + telephone_number: "6105929660", + subscribed_to_newsletter: false, + _id: "3a6801d21-6a7a-56e0-80f9-0d84723e37ca", + id: 37, + type: "customer", + registration_date: 1604448000000, + renewed_on: 0, + heard: "gesehen, vorbeigelaufen", + last_update: 1614816000000, + highlight: "" + }, + { + firstname: "Pat", + lastname: "Tofful", + email: "ptoffulf1@icio.us", + city: "Maogang", + street: "Tomscot", + house_number: "840", + telephone_number: "3408564528", + subscribed_to_newsletter: false, + _id: "350d67f2d-180b-590d-a100-bf75e26fef16", + id: 38, + type: "customer", + registration_date: 1592697600000, + renewed_on: 0, + postal_code: 28319, + heard: "gesehen, vorbeigelaufen", + last_update: 1615420800000, + highlight: "rgb(250, 45, 30)" + }, + { + firstname: "Rockey", + lastname: "Broadbent", + email: "rbroadbentey@geocities.com", + city: "Fuying", + street: "Kropf", + house_number: "45", + telephone_number: "8737230430", + remark: "bibendum felis sed", + subscribed_to_newsletter: false, + _id: "37996de63-001c-5733-bac0-b66ea6dc6e18", + id: 39, + type: "customer", + registration_date: 1562457600000, + renewed_on: 0, + postal_code: 95568, + heard: "gesehen, vorbeigelaufen", + last_update: 1615161600000, + highlight: "" + }, + { + firstname: "Ravid", + lastname: "Barbrick", + email: "rbarbrick6m@flavors.me", + city: "Nice", + postal_code: 17385, + street: "Doe Crossing", + house_number: "682", + telephone_number: "2851403193", + subscribed_to_newsletter: true, + _id: "4a4ff5c0b-c1d7-50ef-bab3-c28c273eba9c", + id: 40, + type: "customer", + registration_date: 1614470400000, + renewed_on: 0, + heard: "gesehen, vorbeigelaufen", + last_update: 1616544000000, + highlight: "" + }, + { + firstname: "Dulcea", + lastname: "Fumagall", + email: "dfumagallf9@printfriendly.com", + city: "Kozel’shchyna", + street: "Weeping Birch", + house_number: "62", + telephone_number: "1451626543", + remark: "pede lobortis ligula sit amet eleifend pede", + subscribed_to_newsletter: false, + _id: "8779c3b3e-da0d-5ed1-a3e4-a69dc1201dd6", + id: 88, + type: "customer", + registration_date: 1571702400000, + renewed_on: 0, + postal_code: 85352, + heard: "gesehen, vorbeigelaufen", + last_update: 1615766400000, + highlight: "rgb(250, 45, 30)" + }, + { + firstname: "Willette", + lastname: "Fieldgate", + email: "wfieldgateco@mysql.com", + city: "Hongcao", + street: "5th", + house_number: "5", + telephone_number: "3914167287", + subscribed_to_newsletter: false, + _id: "418fbf298-4f8e-529f-ace6-e26f2eab4352", + id: 42, + type: "customer", + registration_date: 1586822400000, + renewed_on: 0, + postal_code: 79551, + heard: "gesehen, vorbeigelaufen", + last_update: 1616284800000, + highlight: "" + }, + { + firstname: "Ravid", + lastname: "Conre", + email: "rconremk@answers.com", + city: "Debar", + postal_code: 66591, + street: "Carey", + house_number: "4", + telephone_number: "3156842097", + subscribed_to_newsletter: true, + _id: "4e3d07aa8-da99-5b51-a625-478a9cdf9fb1", + id: 43, + type: "customer", + registration_date: 1595376000000, + renewed_on: 0, + heard: "gesehen, vorbeigelaufen", + last_update: 1616544000000, + highlight: "rgb(250, 45, 30)" + }, + { + firstname: "Jacinthe", + lastname: "Glanester", + email: "jglanester1l@europa.eu", + city: "Sindong", + street: "Stuart", + house_number: "2", + telephone_number: "8585537584", + subscribed_to_newsletter: false, + _id: "421d9a06e-e26c-5df5-b025-c7b2be2d4092", + id: 44, + type: "customer", + registration_date: 1562112000000, + renewed_on: 0, + postal_code: 70790, + heard: "gesehen, vorbeigelaufen", + last_update: 1614729600000, + highlight: "rgb(45, 144, 224)" + }, + { + firstname: "Elisabetta", + lastname: "Dowdle", + email: "edowdlebu@businessinsider.com", + city: "Haiyu", + street: "Lerdahl", + house_number: "508", + telephone_number: "8747036789", + subscribed_to_newsletter: true, + _id: "4e31ec1fc-2dbf-5eee-8df5-fbbcc7fdeeb4", + id: 45, + type: "customer", + registration_date: 1590105600000, + renewed_on: 0, + postal_code: 56191, + heard: "gesehen, vorbeigelaufen", + last_update: 1615593600000, + highlight: "" + }, + { + firstname: "Rori", + lastname: "Breslauer", + email: "rbreslauerr6@nasa.gov", + city: "Portel", + postal_code: 60146, + street: "Mitchell", + house_number: "99669", + telephone_number: "9203299507", + subscribed_to_newsletter: false, + _id: "49ece0cc1-8106-5009-baa1-51fdc9016dc0", + id: 46, + type: "customer", + registration_date: 1580601600000, + renewed_on: 0, + heard: "gesehen, vorbeigelaufen", + last_update: 1616889600000, + highlight: "" + }, + { + firstname: "Fred", + lastname: "MacAndie", + email: "fmacandiep2@tinyurl.com", + city: "Puńsk", + postal_code: 51572, + street: "Steensland", + house_number: "63", + telephone_number: "1719526668", + subscribed_to_newsletter: true, + _id: "46380aea5-f1bb-58e5-b742-6e3decea18c7", + id: 47, + type: "customer", + registration_date: 1597017600000, + renewed_on: 0, + heard: "gesehen, vorbeigelaufen", + last_update: 1616025600000, + highlight: "" + }, + { + firstname: "L;urette", + lastname: "Como", + email: "lcomoqu@independent.co.uk", + city: "Lahat", + street: "Delaware", + house_number: "333", + telephone_number: "2569559477", + subscribed_to_newsletter: true, + _id: "4d8abda05-819b-571c-bdcb-f199970bf39c", + id: 48, + type: "customer", + registration_date: 1605916800000, + renewed_on: 0, + postal_code: 44345, + heard: "gesehen, vorbeigelaufen", + last_update: 1614816000000, + highlight: "rgb(250, 45, 30)" + }, + { + firstname: "Pattie", + lastname: "Beddingham", + email: "pbeddinghamla@usatoday.com", + city: "Jambu", + street: "Northland", + house_number: "3", + telephone_number: "6151878923", + subscribed_to_newsletter: true, + _id: "476c45668-8a5c-5a76-a101-c8706edcdf3f", + id: 49, + type: "customer", + registration_date: 1584921600000, + renewed_on: 0, + postal_code: 89828, + heard: "gesehen, vorbeigelaufen", + last_update: 1615939200000, + highlight: "" + }, + { + firstname: "Ham", + lastname: "Markussen", + email: "hmarkussen5i@fc2.com", + city: "Tamnag", + postal_code: 38234, + street: "Wayridge", + house_number: "80", + telephone_number: "4594890926", + remark: "luctus cum sociis", + subscribed_to_newsletter: false, + _id: "5a75f48cb-d8c6-5557-8872-978e11c7fc30", + id: 50, + type: "customer", + registration_date: 1584230400000, + renewed_on: 0, + heard: "gesehen, vorbeigelaufen", + last_update: 1616544000000, + highlight: "rgb(131, 235, 52)" + }, + { + firstname: "Missie", + lastname: "Crockett", + email: "mcrockettj5@networkadvertising.org", + city: "Vila Nova da Baronia", + postal_code: 91863, + street: "Browning", + house_number: "5197", + telephone_number: "5986241534", + subscribed_to_newsletter: true, + _id: "526c2d78b-10ca-58b3-a98b-ee8bdac23b08", + id: 51, + type: "customer", + registration_date: 1587945600000, + renewed_on: 0, + heard: "gesehen, vorbeigelaufen", + last_update: 1616284800000, + highlight: "" + }, + { + firstname: "Philippa", + lastname: "Sames", + email: "psames3r@nifty.com", + city: "Chashnikovo", + postal_code: 14528, + street: "Independence", + house_number: "9", + telephone_number: "9231351931", + subscribed_to_newsletter: false, + _id: "58c964a9b-c00b-5b38-b219-375fa8d7514d", + id: 52, + type: "customer", + registration_date: 1616889600000, + renewed_on: 0, + heard: "gesehen, vorbeigelaufen", + last_update: 1616457600000, + highlight: "rgb(45, 144, 224)" + }, + { + firstname: "Prince", + lastname: "Ridding", + email: "pridding94@netlog.com", + city: "Stockholm", + postal_code: 60472, + street: "Monterey", + house_number: "7747", + telephone_number: "7256295226", + subscribed_to_newsletter: true, + _id: "5fa54cdb9-88a4-5bc0-824f-2ade87b8088e", + id: 53, + type: "customer", + registration_date: 1610928000000, + renewed_on: 0, + heard: "gesehen, vorbeigelaufen", + last_update: 1615248000000, + highlight: "" + }, + { + firstname: "Trescha", + lastname: "Quesne", + email: "tquesne9g@csmonitor.com", + city: "Jablonec nad Nisou", + postal_code: 51056, + street: "Burning Wood", + house_number: "8645", + telephone_number: "8074604503", + subscribed_to_newsletter: false, + _id: "5237e5fa5-1eea-5c59-a703-7bf4aa9f2206", + id: 54, + type: "customer", + registration_date: 1568246400000, + renewed_on: 0, + heard: "gesehen, vorbeigelaufen", + last_update: 1615075200000, + highlight: "" + }, + { + firstname: "Holli", + lastname: "Gabby", + email: "hgabbyhn@wordpress.com", + city: "Qianjia", + street: "American Ash", + house_number: "57", + telephone_number: "1745044269", + remark: "neque duis bibendum morbi non quam nec dui luctus rutrum", + subscribed_to_newsletter: true, + _id: "5b27745d3-f2b0-5d48-b118-b8e61d0b282d", + id: 55, + type: "customer", + registration_date: 1612051200000, + renewed_on: 0, + postal_code: 52697, + heard: "gesehen, vorbeigelaufen", + last_update: 1614902400000, + highlight: "" + }, + { + firstname: "Jo", + lastname: "Face", + email: "jfacelv@multiply.com", + city: "Biskamzha", + postal_code: 80407, + street: "Schlimgen", + house_number: "60501", + telephone_number: "4855925050", + subscribed_to_newsletter: false, + _id: "5af90201b-657b-505e-a555-673914071375", + id: 56, + type: "customer", + registration_date: 1591574400000, + renewed_on: 0, + heard: "gesehen, vorbeigelaufen", + last_update: 1615420800000, + highlight: "" + }, + { + firstname: "Clive", + lastname: "Edgley", + email: "cedgley1d@tuttocitta.it", + city: "Kurayoshi", + postal_code: 26815, + street: "Monument", + house_number: "88618", + telephone_number: "8624573518", + subscribed_to_newsletter: true, + _id: "50c0b6448-e1b5-5120-b951-fd2fea3010f2", + id: 57, + type: "customer", + registration_date: 1585785600000, + renewed_on: 0, + heard: "gesehen, vorbeigelaufen", + last_update: 1616630400000, + highlight: "" + }, + { + firstname: "Federica", + lastname: "Langstone", + email: "flangstoneh2@imdb.com", + city: "Hongyan", + street: "Duke", + house_number: "3", + telephone_number: "5758393683", + subscribed_to_newsletter: true, + _id: "5cea3993b-e1d4-5bdf-b7e8-a2a10f58160b", + id: 58, + type: "customer", + registration_date: 1564531200000, + renewed_on: 0, + postal_code: 90660, + heard: "gesehen, vorbeigelaufen", + last_update: 1615593600000, + highlight: "" + }, + { + firstname: "Cristina", + lastname: "Orrice", + email: "corricegu@angelfire.com", + city: "La Mohammedia", + street: "Northwestern", + house_number: "8", + telephone_number: "2399567455", + subscribed_to_newsletter: false, + _id: "507c066d5-2900-5336-8a25-94511feb0281", + id: 59, + type: "customer", + registration_date: 1612915200000, + renewed_on: 0, + postal_code: 89250, + heard: "gesehen, vorbeigelaufen", + last_update: 1615852800000, + highlight: "" + }, + { + firstname: "Martguerita", + lastname: "Cruft", + email: "mcruftnm@devhub.com", + city: "Arroio Grande", + postal_code: 19960, + street: "Roxbury", + house_number: "957", + telephone_number: "5265199920", + subscribed_to_newsletter: false, + _id: "69b2db8f1-b060-565b-96d7-ed207775668f", + id: 60, + type: "customer", + registration_date: 1592611200000, + renewed_on: 0, + heard: "gesehen, vorbeigelaufen", + last_update: 1615766400000, + highlight: "" + }, + { + firstname: "Dall", + lastname: "Attyeo", + email: "dattyeoml@skype.com", + city: "Kabīrwāla", + postal_code: 49113, + street: "Kipling", + house_number: "4235", + telephone_number: "6476359443", + subscribed_to_newsletter: true, + _id: "69a58e7e8-a2af-5b9e-8eda-60465b07fc3f", + id: 61, + type: "customer", + registration_date: 1605139200000, + renewed_on: 0, + heard: "gesehen, vorbeigelaufen", + last_update: 1615161600000, + highlight: "" + }, + { + firstname: "Helyn", + lastname: "Hurling", + email: "hhurlingej@storify.com", + city: "Baishuitan", + street: "Old Gate", + house_number: "33", + telephone_number: "9994070428", + subscribed_to_newsletter: true, + _id: "6cc6544b1-40ea-5275-95cb-4852593d9221", + id: 62, + type: "customer", + registration_date: 1610409600000, + renewed_on: 0, + postal_code: 55135, + heard: "gesehen, vorbeigelaufen", + last_update: 1614816000000, + highlight: "" + }, + { + firstname: "Ephrem", + lastname: "Franz", + email: "efranz2z@guardian.co.uk", + city: "Quy Đạt", + street: "Comanche", + house_number: "92245", + telephone_number: "8057275524", + subscribed_to_newsletter: false, + _id: "6585b1715-b9d1-53de-8489-4aa2f63a44a3", + id: 63, + type: "customer", + registration_date: 1611446400000, + renewed_on: 0, + postal_code: 90416, + heard: "gesehen, vorbeigelaufen", + last_update: 1615939200000, + highlight: "rgb(250, 45, 30)" + }, + { + firstname: "Dunn", + lastname: "Smyth", + email: "dsmythq4@amazonaws.com", + city: "Rustam jo Goth", + postal_code: 34271, + street: "Calypso", + house_number: "1885", + telephone_number: "5344915612", + subscribed_to_newsletter: true, + _id: "6b17f9c8f-4732-5255-8d4e-d64b4f826b2a", + id: 64, + type: "customer", + registration_date: 1569196800000, + renewed_on: 0, + heard: "gesehen, vorbeigelaufen", + last_update: 1615420800000, + highlight: "" + }, + { + firstname: "Prisca", + lastname: "Mitchener", + email: "pmitchenerda@blogspot.com", + city: "Berëzovka", + postal_code: 98783, + street: "Elka", + house_number: "6384", + telephone_number: "8692116051", + subscribed_to_newsletter: true, + _id: "63c24db51-8f97-5eea-bf01-5657596a3d97", + id: 65, + type: "customer", + registration_date: 1587254400000, + renewed_on: 0, + heard: "gesehen, vorbeigelaufen", + last_update: 1616716800000, + highlight: "rgb(131, 235, 52)" + }, + { + firstname: "Hendrik", + lastname: "Clunan", + email: "hclunanhp@hc360.com", + city: "Darkton", + street: "Anthes", + house_number: "21", + telephone_number: "4554178902", + subscribed_to_newsletter: false, + _id: "601b8cd54-0693-557b-8492-e222af6c2c04", + id: 66, + type: "customer", + registration_date: 1581292800000, + renewed_on: 0, + postal_code: 29588, + heard: "gesehen, vorbeigelaufen", + last_update: 1616025600000, + highlight: "" + }, + { + firstname: "Winni", + lastname: "Windridge", + email: "wwindridgepk@huffingtonpost.com", + city: "Nebug", + postal_code: 66788, + street: "Dwight", + house_number: "976", + telephone_number: "6814491994", + remark: "nam nulla integer pede", + subscribed_to_newsletter: false, + _id: "6d81d2f51-563c-586a-92fc-de607891653c", + id: 67, + type: "customer", + registration_date: 1589068800000, + renewed_on: 0, + heard: "gesehen, vorbeigelaufen", + last_update: 1614556800000, + highlight: "rgb(247, 239, 10)" + }, + { + firstname: "Charlotte", + lastname: "Bourges", + email: "cbourgesfi@amazonaws.com", + city: "Carson City", + postal_code: 27488, + street: "Thackeray", + house_number: "2984", + telephone_number: "7751917136", + subscribed_to_newsletter: true, + _id: "694049be4-7469-5288-a47d-a9871173a4ce", + id: 68, + type: "customer", + registration_date: 1560988800000, + renewed_on: 0, + heard: "gesehen, vorbeigelaufen", + last_update: 1615248000000, + highlight: "" + }, + { + firstname: "Vergil", + lastname: "Chadwell", + email: "vchadwellmr@stumbleupon.com", + city: "Tabunok", + postal_code: 32922, + street: "Mallard", + house_number: "464", + telephone_number: "5293198615", + subscribed_to_newsletter: true, + _id: "65b2824d8-49b4-5e2c-bc76-34b80280d762", + id: 69, + type: "customer", + registration_date: 1571184000000, + renewed_on: 0, + heard: "gesehen, vorbeigelaufen", + last_update: 1616544000000, + highlight: "" + }, + { + firstname: "Roddy", + lastname: "Maltby", + email: "rmaltby75@blogspot.com", + city: "Igreja", + postal_code: 67938, + street: "Mayer", + house_number: "16316", + telephone_number: "5164800572", + subscribed_to_newsletter: false, + _id: "712804277-7be9-5ab8-a043-41d548e308d2", + id: 70, + type: "customer", + registration_date: 1569369600000, + renewed_on: 0, + heard: "gesehen, vorbeigelaufen", + last_update: 1616457600000, + highlight: "" + }, + { + firstname: "Sena", + lastname: "Kendle", + email: "skendle2@sourceforge.net", + city: "Kolbuszowa", + postal_code: 24547, + street: "Sheridan", + house_number: "63", + telephone_number: "5258167037", + subscribed_to_newsletter: true, + _id: "7d3263fd7-ac16-52e8-95e1-813477d60987", + id: 71, + type: "customer", + registration_date: 1579910400000, + renewed_on: 0, + heard: "gesehen, vorbeigelaufen", + last_update: 1615075200000, + highlight: "" + }, + { + firstname: "Ker", + lastname: "Waything", + email: "kwaything2o@prweb.com", + city: "El Espino", + street: "Mccormick", + house_number: "7731", + telephone_number: "6742829100", + subscribed_to_newsletter: false, + _id: "72060c4ea-5888-538a-9c38-1b25e76d43c5", + id: 72, + type: "customer", + registration_date: 1597708800000, + renewed_on: 0, + postal_code: 86437, + heard: "gesehen, vorbeigelaufen", + last_update: 1614643200000, + highlight: "rgb(45, 144, 224)" + }, + { + firstname: "Janey", + lastname: "Kaley", + email: "jkaleyfk@biglobe.ne.jp", + city: "Wangren", + street: "Coleman", + house_number: "5346", + telephone_number: "3051525272", + subscribed_to_newsletter: true, + _id: "702ca9477-c3fc-5352-be5a-af05c860a6ae", + id: 73, + type: "customer", + registration_date: 1565222400000, + renewed_on: 0, + postal_code: 33282, + heard: "gesehen, vorbeigelaufen", + last_update: 1615420800000, + highlight: "" + }, + { + firstname: "Phyllys", + lastname: "Blenkiron", + email: "pblenkironal@cdbaby.com", + city: "Gaya", + street: "Cody", + house_number: "83", + telephone_number: "6805267107", + subscribed_to_newsletter: true, + _id: "731e0c3ed-15ad-5222-838c-b358c78cd07c", + id: 74, + type: "customer", + registration_date: 1608163200000, + renewed_on: 0, + postal_code: 69042, + heard: "gesehen, vorbeigelaufen", + last_update: 1615507200000, + highlight: "rgb(247, 239, 10)" + }, + { + firstname: "Magdaia", + lastname: "Curlis", + email: "mcurlisq0@nih.gov", + city: "Pagangan", + postal_code: 42003, + street: "Dennis", + house_number: "20255", + telephone_number: "5885921531", + subscribed_to_newsletter: true, + _id: "7ed250c4d-a054-5abe-ade7-5fd5b8a8ddd2", + id: 75, + type: "customer", + registration_date: 1611532800000, + renewed_on: 0, + heard: "gesehen, vorbeigelaufen", + last_update: 1616716800000, + highlight: "" + }, + { + firstname: "Wolfgang", + lastname: "Seville", + email: "wsevillejf@dmoz.org", + city: "Hitachi-Naka", + postal_code: 87115, + street: "Orin", + house_number: "2777", + telephone_number: "1277353453", + subscribed_to_newsletter: true, + _id: "75a2121e2-ef62-5445-9d33-71413c968326", + id: 76, + type: "customer", + registration_date: 1610150400000, + renewed_on: 0, + heard: "gesehen, vorbeigelaufen", + last_update: 1615852800000, + highlight: "rgb(45, 144, 224)" + }, + { + firstname: "Tim", + lastname: "Spare", + email: "tsparep0@amazon.co.jp", + city: "Huagai", + street: "Blue Bill Park", + house_number: "007", + telephone_number: "9195402483", + subscribed_to_newsletter: false, + _id: "7f023d256-05c9-5d4b-8035-cef3f88d442c", + id: 77, + type: "customer", + registration_date: 1592092800000, + renewed_on: 0, + postal_code: 10500, + heard: "gesehen, vorbeigelaufen", + last_update: 1616544000000, + highlight: "rgb(131, 235, 52)" + }, + { + firstname: "Eddie", + lastname: "Camillo", + email: "ecamillol5@hexun.com", + city: "Yancheng", + street: "Artisan", + house_number: "881", + telephone_number: "4335114644", + subscribed_to_newsletter: false, + _id: "7f4d7c17d-91ff-5a44-afd9-d75345dff29f", + id: 78, + type: "customer", + registration_date: 1574899200000, + renewed_on: 0, + postal_code: 74393, + heard: "gesehen, vorbeigelaufen", + last_update: 1615939200000, + highlight: "" + }, + { + firstname: "Napoleon", + lastname: "Strangeways", + email: "nstrangeways7@imageshack.us", + city: "Halayhay", + postal_code: 53007, + street: "Fieldstone", + house_number: "40", + telephone_number: "2156728800", + subscribed_to_newsletter: false, + _id: "78905d2d2-c782-58b0-a92a-444f7158c87b", + id: 79, + type: "customer", + registration_date: 1597363200000, + renewed_on: 0, + heard: "gesehen, vorbeigelaufen", + last_update: 1614729600000, + highlight: "" + }, + { + firstname: "Rona", + lastname: "Solman", + email: "rsolman73@un.org", + city: "Pindobaçu", + postal_code: 34416, + street: "Tony", + house_number: "7", + telephone_number: "2913635920", + remark: "quisque id", + subscribed_to_newsletter: false, + _id: "8be562498-5da4-5d2d-94bf-f94f6fb97d64", + id: 80, + type: "customer", + registration_date: 1589673600000, + renewed_on: 0, + heard: "gesehen, vorbeigelaufen", + last_update: 1616889600000, + highlight: "rgb(45, 144, 224)" + }, + { + firstname: "Diann", + lastname: "Feeham", + email: "dfeeham9r@wired.com", + city: "Yashalta", + postal_code: 10851, + street: "Lunder", + house_number: "91", + telephone_number: "7166131057", + subscribed_to_newsletter: false, + _id: "8dfc7974f-508f-5c66-953a-cb9a12667dd6", + id: 81, + type: "customer", + registration_date: 1595030400000, + renewed_on: 0, + heard: "gesehen, vorbeigelaufen", + last_update: 1614643200000, + highlight: "rgb(250, 45, 30)" + }, + { + firstname: "Elisha", + lastname: "Aliman", + email: "ealimanom@gov.uk", + city: "Rogów", + postal_code: 27706, + street: "Ronald Regan", + house_number: "3691", + telephone_number: "7124227658", + subscribed_to_newsletter: true, + _id: "8629a3e3d-5133-5a21-834a-c967e15c5c76", + id: 82, + type: "customer", + registration_date: 1553904000000, + renewed_on: 0, + heard: "gesehen, vorbeigelaufen", + last_update: 1616112000000, + highlight: "" + }, + { + firstname: "Stevy", + lastname: "Bendare", + email: "sbendare26@buzzfeed.com", + city: "Katrineholm", + postal_code: 15840, + street: "Kedzie", + house_number: "4", + telephone_number: "7578766693", + subscribed_to_newsletter: true, + _id: "8f29ac391-8f43-547c-be9e-aff582945b52", + id: 83, + type: "customer", + registration_date: 1613692800000, + renewed_on: 0, + heard: "gesehen, vorbeigelaufen", + last_update: 1616371200000, + highlight: "rgb(45, 144, 224)" + }, + { + firstname: "Alwyn", + lastname: "Taunton.", + email: "atauntonkt@economist.com", + city: "Marugame", + postal_code: 52594, + street: "Bunting", + house_number: "865", + telephone_number: "2191189434", + subscribed_to_newsletter: true, + _id: "894a9d571-4214-5955-995e-0ebd8f540dab", + id: 84, + type: "customer", + registration_date: 1579996800000, + renewed_on: 0, + heard: "gesehen, vorbeigelaufen", + last_update: 1616284800000, + highlight: "rgb(247, 239, 10)" + }, + { + firstname: "Shannen", + lastname: "McCoish", + email: "smccoishn2@mlb.com", + city: "Versailles", + postal_code: 95450, + street: "Spohn", + house_number: "76", + telephone_number: "6853941937", + remark: "mauris lacinia sapien quis", + subscribed_to_newsletter: false, + _id: "8e5e11c11-ad58-5892-be84-d83df5283cdd", + id: 85, + type: "customer", + registration_date: 1616544000000, + renewed_on: 0, + heard: "gesehen, vorbeigelaufen", + last_update: 1614902400000, + highlight: "rgb(247, 239, 10)" + }, + { + firstname: "Noami", + lastname: "McAnalley", + email: "nmcanalleyik@huffingtonpost.com", + city: "Kiyevskoye", + postal_code: 43431, + street: "Shopko", + house_number: "9", + telephone_number: "4039778719", + subscribed_to_newsletter: false, + _id: "8e6824cb1-023b-5e73-aab3-05325a4de316", + id: 86, + type: "customer", + registration_date: 1560902400000, + renewed_on: 0, + heard: "gesehen, vorbeigelaufen", + last_update: 1614643200000, + highlight: "" + }, + { + firstname: "Leonore", + lastname: "MacDermid", + email: "lmacdermid8w@usa.gov", + city: "Ajuy", + postal_code: 88597, + street: "Erie", + house_number: "668", + telephone_number: "8972565645", + subscribed_to_newsletter: false, + _id: "84040f073-ffed-5d16-a66b-79e12ee3ae57", + id: 87, + type: "customer", + registration_date: 1571270400000, + renewed_on: 0, + heard: "gesehen, vorbeigelaufen", + last_update: 1616112000000, + highlight: "" + }, + { + firstname: "Dulcea", + lastname: "Fumagall", + email: "dfumagallf9@printfriendly.com", + city: "Kozel’shchyna", + street: "Weeping Birch", + house_number: "62", + telephone_number: "1451626543", + remark: "pede lobortis ligula sit amet eleifend pede", + subscribed_to_newsletter: false, + _id: "8e76314e7-0d46-5766-a04c-bd295c3bc2dc", + id: 88, + type: "customer", + registration_date: 1571702400000, + renewed_on: 0, + postal_code: 85352, + heard: "gesehen, vorbeigelaufen", + last_update: 1615766400000, + highlight: "rgb(250, 45, 30)" + }, + { + firstname: "Issy", + lastname: "Stone Fewings", + email: "istonefewingso0@vkontakte.ru", + city: "Šavnik", + street: "Lukken", + house_number: "1", + telephone_number: "5651151894", + subscribed_to_newsletter: false, + _id: "86990fd92-49a7-59fb-a216-3935b8013850", + id: 89, + type: "customer", + registration_date: 1585267200000, + renewed_on: 0, + postal_code: 53533, + heard: "gesehen, vorbeigelaufen", + last_update: 1616284800000, + highlight: "" + }, + { + firstname: "Carny", + lastname: "Frantsev", + email: "cfrantsevd4@symantec.com", + city: "Zhushan Chengguanzhen", + street: "Texas", + house_number: "91", + telephone_number: "9842799404", + subscribed_to_newsletter: true, + _id: "98743b6ab-0efb-5a35-b24c-e290b4528f62", + id: 90, + type: "customer", + registration_date: 1602115200000, + renewed_on: 0, + postal_code: 83402, + heard: "gesehen, vorbeigelaufen", + last_update: 1616630400000, + highlight: "" + }, + { + firstname: "Brandie", + lastname: "Lonsdale", + email: "blonsdaleow@tiny.cc", + city: "Paris La Défense", + postal_code: 88044, + street: "Grasskamp", + house_number: "29", + telephone_number: "6871364109", + subscribed_to_newsletter: true, + _id: "991edb0d6-a7a2-5675-a094-5de45b80cdcf", + id: 91, + type: "customer", + registration_date: 1600992000000, + renewed_on: 0, + heard: "gesehen, vorbeigelaufen", + last_update: 1616112000000, + highlight: "" + }, + { + firstname: "Obadiah", + lastname: "Dumphries", + email: "odumphries2s@odnoklassniki.ru", + city: "Inda Silasē", + street: "Valley Edge", + house_number: "647", + telephone_number: "5913774046", + subscribed_to_newsletter: true, + _id: "9e234f31c-839e-548a-9cb1-c9d8f05a3b56", + id: 92, + type: "customer", + registration_date: 1591660800000, + renewed_on: 0, + postal_code: 38426, + heard: "gesehen, vorbeigelaufen", + last_update: 1614988800000, + highlight: "" + }, + { + firstname: "Juditha", + lastname: "Grise", + email: "jgrisem0@miibeian.gov.cn", + city: "Neftobod", + street: "Sherman", + house_number: "84", + telephone_number: "7798210578", + subscribed_to_newsletter: false, + _id: "92a55f9c6-a552-5b30-a361-0997d51f75b1", + id: 93, + type: "customer", + registration_date: 1569801600000, + renewed_on: 0, + postal_code: 48155, + heard: "gesehen, vorbeigelaufen", + last_update: 1614556800000, + highlight: "" + }, + { + firstname: "Myrvyn", + lastname: "Fittes", + email: "mfittesfn@surveymonkey.com", + city: "Ninomiya", + postal_code: 86398, + street: "Kinsman", + house_number: "497", + telephone_number: "9691603411", + subscribed_to_newsletter: false, + _id: "9c31760df-76f1-538d-b5a3-347f435561bc", + id: 94, + type: "customer", + registration_date: 1596153600000, + renewed_on: 0, + heard: "gesehen, vorbeigelaufen", + last_update: 1615939200000, + highlight: "" + }, + { + firstname: "Albie", + lastname: "Govan", + email: "agovandf@guardian.co.uk", + city: "Tambo", + postal_code: 82128, + street: "Carioca", + house_number: "931", + telephone_number: "4105513709", + subscribed_to_newsletter: false, + _id: "9ee19c652-7497-53e4-b608-371f85e04f7d", + id: 95, + type: "customer", + registration_date: 1576195200000, + renewed_on: 0, + heard: "gesehen, vorbeigelaufen", + last_update: 1615420800000, + highlight: "" + }, + { + firstname: "Aleta", + lastname: "Tilston", + email: "atilston9i@barnesandnoble.com", + city: "Miasteczko Śląskie", + postal_code: 99381, + street: "Mayfield", + house_number: "3", + telephone_number: "9081719310", + subscribed_to_newsletter: false, + _id: "9e3dee01e-100a-51b3-bcbb-ed26ed20aca0", + id: 96, + type: "customer", + registration_date: 1574640000000, + renewed_on: 0, + heard: "gesehen, vorbeigelaufen", + last_update: 1614729600000, + highlight: "rgb(247, 239, 10)" + }, + { + firstname: "Jdavie", + lastname: "Beddin", + email: "jbeddinly@webeden.co.uk", + city: "Madan", + street: "Westport", + house_number: "64633", + telephone_number: "2325769196", + subscribed_to_newsletter: false, + _id: "99ced28a6-f9c8-5f01-8ebd-ac00af1ea99b", + id: 97, + type: "customer", + registration_date: 1554595200000, + renewed_on: 0, + postal_code: 68262, + heard: "gesehen, vorbeigelaufen", + last_update: 1615766400000, + highlight: "" + }, + { + firstname: "Tallulah", + lastname: "Costen", + email: "tcostenqx@nydailynews.com", + city: "Nglengkong", + street: "Jenna", + house_number: "57", + telephone_number: "3535905033", + subscribed_to_newsletter: true, + _id: "9ba7b5d1e-fb88-56c8-80ca-8a4a5074a022", + id: 98, + type: "customer", + registration_date: 1615766400000, + renewed_on: 0, + postal_code: 54790, + heard: "gesehen, vorbeigelaufen", + last_update: 1616630400000, + highlight: "" + }, + { + firstname: "Elliot", + lastname: "Fallis", + email: "efalliseu@cmu.edu", + city: "Rixinhe", + street: "Granby", + house_number: "583", + telephone_number: "4534871698", + subscribed_to_newsletter: true, + _id: "9ffe1084e-7066-5c8f-8035-4f9d0b321f87", + id: 99, + type: "customer", + registration_date: 1564185600000, + renewed_on: 0, + postal_code: 63503, + heard: "gesehen, vorbeigelaufen", + last_update: 1614816000000, + highlight: "rgb(131, 235, 52)" + }, + { + firstname: "Laurette", + lastname: "Palluschek", + email: "lpalluschek2l@rambler.ru", + city: "Cereté", + postal_code: 49591, + street: "Bultman", + house_number: "58840", + telephone_number: "2535673244", + subscribed_to_newsletter: false, + _id: "10c947e90e-2466-5144-a701-acecb041fcdc", + id: 100, + type: "customer", + registration_date: 1605916800000, + renewed_on: 0, + heard: "gesehen, vorbeigelaufen", + last_update: 1615075200000, + highlight: "" + }, + { + _id: "6e8e3f8877ed77c2fc8efa41a8d6a829e098949-0dab-5dbc-9ac6-310ad9c31f7e", + id: 5025, + name: "Campingsessel", + brand: "-", + itype: "-", + category: "Freizeit", + deposit: 5, + parts: "1", + manual: "", + "package": "-", + added: 1551052800000, + status: "instock", + wc_url: "https://www.buergerstiftung-karlsruhe.de/leihlokal/sortiment/freizeit/campingsessel/", + wc_id: "2276", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2019/04/5025.jpg", + highlight: "", + synonyms: "", + description: "rund, klappbar", + exists_more_than_once: 0, + type: "item", + last_update: 1615248000000 + }, + { + _id: "6e8e3f8877ed77c2fc8efa41a8ccc2383882132-8c5f-5fcd-964b-e604e6f60860", + id: 1747, + name: "Tennisschläger", + brand: "Völkl", + itype: "syndro soft", + category: "Freizeit", + deposit: 15, + parts: "1", + manual: "", + "package": "mit Schutzhülle", + added: 1587686400000, + status: "instock", + wc_url: "https://www.buergerstiftung-karlsruhe.de/leihlokal/sortiment/freizeit/tennisschlaeger-3/", + wc_id: "3649", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2020/04/6109.jpg", + highlight: "", + synonyms: "", + description: "", + exists_more_than_once: 0, + type: "item", + last_update: 1615248000000 + }, + { + _id: "6e8e3f8877ed77c2fc8efa41a8bf6600b7eb659-c365-5ef6-a46b-76246ead86e8", + id: 205, + name: "Elektro-Öl-Radiator", + brand: "DeLonghi", + itype: "Venturi", + category: "Haushalt", + deposit: 35, + parts: "1", + manual: "", + "package": "Originalkarton", + added: 1536624000000, + status: "instock", + wc_url: "https://www.buergerstiftung-karlsruhe.de/leihlokal/sortiment/haushalt/elektro-oel-radiator/", + wc_id: "1967", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2019/03/205.jpg", + highlight: "", + synonyms: "", + description: "", + exists_more_than_once: 0, + type: "item", + last_update: 1616112000000 + }, + { + _id: "6e8e3f8877ed77c2fc8efa41a8d8123796d2bd0-dd52-57a6-814e-62f23f8a50e3", + id: 6101, + name: "Faszienrolle", + brand: "Blackroll MED", + itype: "-", + category: "Freizeit", + deposit: 5, + parts: "1", + manual: "Beschreibung auf Karton", + "package": "originalKarton", + added: 1582761600000, + status: "deleted", + wc_url: "", + wc_id: "", + image: "", + highlight: "rgb(247, 239, 10)", + synonyms: "", + description: "", + exists_more_than_once: 0, + type: "item", + last_update: 1615334400000 + }, + { + _id: "6e8e3f8877ed77c2fc8efa41a8d33ab0f7c1979-16f7-5602-b4bd-3328334ab1d2", + id: 2915, + name: "Akkuschrauber", + brand: "Bosch", + itype: "Ixo full set", + category: "Heimwerker", + deposit: 15, + parts: "4", + manual: "in Schriftform vorhanden", + "package": "originalKarton", + added: 1578873600000, + status: "onbackorder", + wc_url: "https://www.buergerstiftung-karlsruhe.de/leihlokal/sortiment/heimwerker/akkuschrauber-5/", + wc_id: "3263", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2020/01/2915.jpg", + highlight: "", + synonyms: "", + description: "Bedienungsanleitung in Schriftform vorhanden,\nmit Exzenter und Winkelaufsatz", + exists_more_than_once: 0, + type: "item", + last_update: 1615161600000 + }, + { + _id: "6e8e3f8877ed77c2fc8efa41a8d1f0a11714b15-e081-5f84-bf0e-393635982532", + id: 2801, + name: "Busvorzelt", + brand: "Carryox", + itype: "10T", + category: "Freizeit", + deposit: 25, + parts: "2", + manual: "", + "package": "Originalverpackung", + added: 1558915200000, + status: "instock", + wc_url: "https://www.buergerstiftung-karlsruhe.de/leihlokal/sortiment/freizeit/vorzelt/", + wc_id: "2376", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2019/06/2801.jpg", + highlight: "", + synonyms: "", + description: "für Busse und Campingvans, 280×300 cm breit, 210 cm hoch, Packmaß 24×74 cm", + exists_more_than_once: 0, + type: "item", + last_update: 1616284800000 + }, + { + _id: "6e8e3f8877ed77c2fc8efa41a8c7efab6adde11-c74b-59d6-81b2-4ff3ef9f0b1d", + id: 1243, + name: "Handmixer", + brand: "KRUPS 3 MIX 3000", + itype: "", + category: "Küche", + deposit: "15", + parts: "5", + manual: "", + "package": "", + added: 1611014400000, + status: "instock", + wc_url: "https://www.buergerstiftung-karlsruhe.de/leihlokal/sortiment/kueche/handmixer-3/", + wc_id: "4632", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2021/01/1243_1.jpg", + highlight: "", + synonyms: "", + description: "", + exists_more_than_once: 0, + type: "item", + last_update: 1616544000000 + }, + { + _id: "6e8e3f8877ed77c2fc8efa41a8c18bf25d8396e-b315-5ce4-8e5c-94ed120e5b2e", + id: 504, + name: "Hörnchen-Automat", + brand: "Komet", + itype: "7117 BE", + category: "Küche", + deposit: 15, + parts: "2", + manual: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2019/03/gedruckte-Bedienungsanleitung.pdf", + "package": "Originalkarton", + added: 1536105600000, + status: "onbackorder", + wc_url: "https://www.buergerstiftung-karlsruhe.de/leihlokal/sortiment/kueche/hoernchen-automat/", + wc_id: "237", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2019/03/504.jpg", + highlight: "", + synonyms: "", + description: "", + exists_more_than_once: 0, + type: "item", + last_update: 1615680000000 + }, + { + _id: "6e8e3f8877ed77c2fc8efa41a8d17c6abab5e69-9cc5-5b34-91e5-2afe3b882850", + id: 2708, + name: "2708 geändert in 1900 nicht neu besetzen", + brand: "", + itype: "", + category: "", + deposit: 0, + parts: "", + manual: "", + "package": "", + added: 0, + status: "deleted", + wc_url: "", + wc_id: "", + image: "", + highlight: "", + synonyms: "", + description: "", + exists_more_than_once: 0, + type: "item", + last_update: 1615766400000 + }, + { + _id: "6e8e3f8877ed77c2fc8efa41a8d0c6341db9d9b-9081-51be-b989-a8554631778f", + id: 2607, + name: "Lötpistole", + brand: "Parkside", + itype: "-", + category: "Heimwerker", + deposit: 25, + parts: "6", + manual: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2019/03/gedruckte-Bedienungsanleitung.pdf", + "package": "OriginalKarton", + added: 1555113600000, + status: "instock", + wc_url: "https://www.buergerstiftung-karlsruhe.de/leihlokal/sortiment/heimwerker/loetpistole/", + wc_id: "2993", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2019/04/2607.jpg", + highlight: "", + synonyms: "", + description: "180W", + exists_more_than_once: 0, + type: "item", + last_update: 1614902400000 + }, + { + _id: "6e8e3f8877ed77c2fc8efa41a8c9b7d28f14478-7e78-5004-ba6b-5107c6e5b2f1", + id: 1506, + name: "el. Kettensäge", + brand: "Dolmar", + itype: "-", + category: "Garten", + deposit: 25, + parts: "1", + manual: "", + "package": "-", + added: 1539561600000, + status: "outofstock", + wc_url: "https://www.buergerstiftung-karlsruhe.de/leihlokal/sortiment/garten/el-kettensaege/", + wc_id: "436", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2019/03/1506.jpg", + highlight: "", + synonyms: "", + description: "Sägeblatt stumpf, muss erneuert werden.\nZum ausleihen muss der Nutzer/ die Nutzerin schriftlich bestätigen, dass er/ sie mit einer Kettensäge umgehen kann und diese nicht im Wald, sondern nur auf dem eigenen Grundstück einsetzt.\nInkl. Verlängerungskabel", + exists_more_than_once: 0, + type: "item", + last_update: 1615852800000 + }, + { + _id: "6e8e3f8877ed77c2fc8efa41a8d62ecbb94f369-49f5-5224-97ec-ff4a0eecfa55", + id: 5010, + name: "Hydraulik-Holzspalter", + brand: "Scheppach", + itype: "HL 650", + category: "Heimwerker", + deposit: 100, + parts: "1", + manual: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2019/03/5010.pdf", + "package": "-", + added: 1542844800000, + status: "instock", + wc_url: "https://www.buergerstiftung-karlsruhe.de/leihlokal/sortiment/heimwerker/1548/", + wc_id: "1548", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2019/04/5010.jpg", + highlight: "", + synonyms: "", + description: "3 PS, Spaltkraft: 6,5 t, Max. Spaltgutlänge: 52 cm, 2.200 W, ca. 50kg", + exists_more_than_once: 0, + type: "item", + last_update: 1616025600000 + }, + { + _id: "6e8e3f8877ed77c2fc8efa41a8c63e48371c3f0-f79e-5e41-92d0-04b31f8e3c8b", + id: 1116, + name: "Sandwichmaker", + brand: "Hit", + itype: "-", + category: "Küche", + deposit: 15, + parts: "1", + manual: "", + "package": "-", + added: 1543536000000, + status: "instock", + wc_url: "https://www.buergerstiftung-karlsruhe.de/leihlokal/sortiment/kueche/sandwichmaker/", + wc_id: "2862", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2019/03/1116.jpg", + highlight: "", + synonyms: "", + description: "", + exists_more_than_once: 0, + type: "item", + last_update: 1616284800000 + }, + { + _id: "6e8e3f8877ed77c2fc8efa41a8d26c578b801f0-5f67-5ce8-8625-c56f742e8084", + id: 2816, + name: "Glätteisen", + brand: "Philips", + itype: "-", + category: "Haushalt", + deposit: 15, + parts: "1", + manual: "", + "package": "-", + added: 1564704000000, + status: "instock", + wc_url: "https://www.buergerstiftung-karlsruhe.de/leihlokal/sortiment/haushalt/glaetteisen/", + wc_id: "3014", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2019/08/2816.jpg", + highlight: "", + synonyms: "", + description: "mit Braun-Tasche", + exists_more_than_once: 0, + type: "item", + last_update: 1614902400000 + }, + { + _id: "6e8e3f8877ed77c2fc8efa41a8c45cd850b8655-d92c-5f71-a92c-7dd6c51ccd22", + id: 830, + name: "Silikonspritze", + brand: "", + itype: "-", + category: "Heimwerker", + deposit: 15, + parts: "1", + manual: "", + "package": "-", + added: 1588550400000, + status: "outofstock", + wc_url: "https://www.buergerstiftung-karlsruhe.de/leihlokal/sortiment/heimwerker/silikonspritze-2/", + wc_id: "3727", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2020/05/814.jpg", + highlight: "", + synonyms: "", + description: "auch: Profi – Kartuschen-Spritze", + exists_more_than_once: 0, + type: "item", + last_update: 1615161600000 + }, + { + _id: "6e8e3f8877ed77c2fc8efa41a8d0b42b86997cc-a708-5433-a8d4-aeb1d6621644", + id: 2605, + name: "Wärmeplatte", + brand: "Salton", + itype: "-", + category: "Küche", + deposit: 15, + parts: "1", + manual: "", + "package": "-", + added: 1554940800000, + status: "instock", + wc_url: "https://www.buergerstiftung-karlsruhe.de/leihlokal/sortiment/kueche/waermeplatte/", + wc_id: "2256", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2019/04/2605.jpg", + highlight: "", + synonyms: "", + description: "", + exists_more_than_once: 0, + type: "item", + last_update: 1616544000000 + }, + { + _id: "6e8e3f8877ed77c2fc8efa41a8d30889a653910-b212-5c14-9873-a7a0913e94f6", + id: 2909, + name: "Multi-Scanner", + brand: "Tevion", + itype: "SPENDENVerKAUF", + category: "Freizeit", + deposit: 15, + parts: "8", + manual: "", + "package": "", + added: 1568160000000, + status: "deleted", + wc_url: "", + wc_id: "", + image: "", + highlight: "", + synonyms: "", + description: "", + exists_more_than_once: 0, + type: "item", + last_update: 1616371200000 + }, + { + _id: "6e8e3f8877ed77c2fc8efa41a8d78e144e4e1ab-8d02-57af-96db-c91e536ac2af", + id: 5055, + name: "Feine-Metall-Feilen", + brand: "-", + itype: "-", + category: "Heimwerker", + deposit: 5, + parts: "-", + manual: "", + "package": "", + added: 1602460800000, + status: "instock", + wc_url: "https://www.buergerstiftung-karlsruhe.de/leihlokal/sortiment/heimwerker/feine-metall-feilen/", + wc_id: "4155", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2020/10/5055.jpg", + highlight: "rgb(250, 45, 30)", + synonyms: "", + description: "verschiedene Größen", + exists_more_than_once: 0, + type: "item", + last_update: 1614902400000 + }, + { + _id: "6e8e3f8877ed77c2fc8efa41a8cf3ff9afba6bb-3c58-5358-9e71-e496e608a440", + id: 2402, + name: "Babywippe", + brand: "chicco", + itype: "SPENDENVERKAUF", + category: "Kinder", + deposit: 15, + parts: "1", + manual: "", + "package": "-", + added: 1551398400000, + status: "deleted", + wc_url: "", + wc_id: "", + image: "", + highlight: "", + synonyms: "", + description: "", + exists_more_than_once: 0, + type: "item", + last_update: 1616198400000 + }, + { + _id: "6e8e3f8877ed77c2fc8efa41a8c5d17ca9c1356-f796-56fe-af66-f5a3b3ae981a", + id: 1101, + name: "Joghurt-Box", + brand: "A.Vogel", + itype: "SPENDENVERKAUF", + category: "Küche", + deposit: 5, + parts: "5", + manual: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2019/03/gedruckte-Bedienungsanleitung.pdf", + "package": "Originalkarton", + added: 1536278400000, + status: "deleted", + wc_url: "", + wc_id: "", + image: "", + highlight: "", + synonyms: "", + description: "", + exists_more_than_once: 0, + type: "item", + last_update: 1614643200000 + }, + { + _id: "6e8e3f8877ed77c2fc8efa41a8c45cd6de2ea5b-991e-5cc0-abac-e47bf0d0a253", + id: 830, + name: "Silikonspritze", + brand: "", + itype: "-", + category: "Heimwerker", + deposit: 15, + parts: "1", + manual: "", + "package": "-", + added: 1588550400000, + status: "outofstock", + wc_url: "https://www.buergerstiftung-karlsruhe.de/leihlokal/sortiment/heimwerker/silikonspritze-2/", + wc_id: "3727", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2020/05/814.jpg", + highlight: "", + synonyms: "", + description: "auch: Profi – Kartuschen-Spritze", + exists_more_than_once: 0, + type: "item", + last_update: 1616025600000 + }, + { + _id: "6e8e3f8877ed77c2fc8efa41a8be200d800b5d8-69ee-5c89-a2ea-dd4dde204546", + id: 15, + name: "Stichsäge", + brand: "TOP Craft", + itype: "TPS 550E", + category: "Heimwerker", + deposit: 15, + parts: "2", + manual: "", + "package": "", + added: 1581292800000, + status: "outofstock", + wc_url: "https://www.buergerstiftung-karlsruhe.de/leihlokal/sortiment/heimwerker/stichsaege-6/", + wc_id: "3423", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2020/02/15.jpg", + highlight: "", + synonyms: "Laubsäge, Laubsägemaschine, Wippsäge", + description: "mit Auffangbeutel von Bosch", + exists_more_than_once: 0, + type: "item", + last_update: 1616889600000 + }, + { + _id: "6e8e3f8877ed77c2fc8efa41a8c402f6c3b8f99-a612-5b33-9a71-0fd240b04b9a", + id: 820, + name: "Rollkoffer", + brand: "eaglecreek", + itype: "-", + category: "Freizeit", + deposit: 15, + parts: "1", + manual: "", + "package": "-", + added: 1539561600000, + status: "instock", + wc_url: "https://www.buergerstiftung-karlsruhe.de/leihlokal/sortiment/freizeit/rollkoffer/", + wc_id: "303", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2019/03/820.jpg", + highlight: "", + synonyms: "Trolley", + description: "mit Tragegestell", + exists_more_than_once: 0, + type: "item", + last_update: 1615593600000 + }, + { + _id: "6e8e3f8877ed77c2fc8efa41a8c78e3703a7591-a9c6-5e4f-ba10-30d391ca37b6", + id: 1231, + name: "Wok", + brand: "Bodum", + itype: "Chambord", + category: "Küche", + deposit: 15, + parts: "4", + manual: "", + "package": "Originalkarton", + added: 1543622400000, + status: "instock", + wc_url: "https://www.buergerstiftung-karlsruhe.de/leihlokal/sortiment/kueche/wok-2/", + wc_id: "2876", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2019/03/1231.jpg", + highlight: "", + synonyms: "Wokpfanne", + description: "Emaille-beschichtet, für alle Herdarten geeignet (incl. Induktion)\n,gusseisern,370 mm", + exists_more_than_once: 0, + type: "item", + last_update: 1615593600000 + }, + { + _id: "6e8e3f8877ed77c2fc8efa41a8c00c8e7fe29e9-c0ee-5398-a2ab-ebe04774ae2d", + id: 308, + name: "Römertopf", + brand: "-", + itype: "-", + category: "Küche", + deposit: 5, + parts: "2", + manual: "", + "package": "-", + added: 1536019200000, + status: "instock", + wc_url: "https://www.buergerstiftung-karlsruhe.de/leihlokal/sortiment/kueche/roemertopf/", + wc_id: "2797", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2019/03/308.jpg", + highlight: "", + synonyms: "", + description: "", + exists_more_than_once: 0, + type: "item", + last_update: 1615334400000 + }, + { + _id: "6e8e3f8877ed77c2fc8efa41a8c2e8ca61bec00-41ee-5ce4-8999-89871b229f32", + id: 626, + name: "Autokindersitz", + brand: "Maxi Cosi", + itype: "-", + category: "Kinder", + deposit: 15, + parts: "1", + manual: "", + "package": "-", + added: 1544659200000, + status: "instock", + wc_url: "https://www.buergerstiftung-karlsruhe.de/leihlokal/sortiment/kinder/autokindersitz/", + wc_id: "172", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2019/03/108.jpg", + highlight: "", + synonyms: "", + description: "Gr. 9-18 kg", + exists_more_than_once: 0, + type: "item", + last_update: 1614902400000 + }, + { + _id: "6e8e3f8877ed77c2fc8efa41a8d5abd2cb265c9-3c73-5315-ad1b-127a41ff652d", + id: 4001, + name: "Geschirr", + brand: "-", + itype: "-", + category: "Küche", + deposit: 5, + parts: "-", + manual: "", + "package": "-", + added: 1541376000000, + status: "instock", + wc_url: "https://www.buergerstiftung-karlsruhe.de/leihlokal/sortiment/kueche/geschirr/", + wc_id: "541", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2019/03/4001.jpg", + highlight: "", + synonyms: "", + description: "ca. 30 Teller, Untertassen, Tassen verschiedener Art", + exists_more_than_once: 0, + type: "item", + last_update: 1615507200000 + }, + { + _id: "6e8e3f8877ed77c2fc8efa41a8c8be28c3b8eca-e7f5-52e0-abda-0d237f393294", + id: 1328, + name: "Kleistermaschine", + brand: "Träkle", + itype: "CUTTERKANT", + category: "Heimwerker", + deposit: 15, + parts: "", + manual: "", + "package": "OriginalKarton", + added: 1597017600000, + status: "instock", + wc_url: "https://www.buergerstiftung-karlsruhe.de/leihlokal/sortiment/heimwerker/kleistermaschine-3/", + wc_id: "4001", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2020/08/1328.jpg", + highlight: "", + synonyms: "", + description: "", + exists_more_than_once: 0, + type: "item", + last_update: 1615075200000 + }, + { + _id: "6e8e3f8877ed77c2fc8efa41a8cf3ff4b484f9f-b5f9-50ad-8f98-fb29900238b3", + id: 2402, + name: "Babywippe", + brand: "chicco", + itype: "SPENDENVERKAUF", + category: "Kinder", + deposit: 15, + parts: "1", + manual: "", + "package": "-", + added: 1551398400000, + status: "deleted", + wc_url: "", + wc_id: "", + image: "", + highlight: "", + synonyms: "", + description: "", + exists_more_than_once: 0, + type: "item", + last_update: 1615593600000 + }, + { + _id: "6e8e3f8877ed77c2fc8efa41a8c25b4425d4cc2-66f6-52e3-af66-0a611f5d0931", + id: 606, + name: "Elektr. Gemüseschneider", + brand: "Moulinex", + itype: "Charlotte HV3", + category: "Küche", + deposit: 15, + parts: "22", + manual: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2019/03/gedruckte-Bedienungsanleitung.pdf", + "package": "Originalkarton", + added: 1536105600000, + status: "instock", + wc_url: "https://www.buergerstiftung-karlsruhe.de/leihlokal/sortiment/kueche/kuechenmaschine-2/", + wc_id: "256", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2019/03/606.jpg", + highlight: "", + synonyms: "", + description: "", + exists_more_than_once: 0, + type: "item", + last_update: 1615248000000 + }, + { + _id: "6e8e3f8877ed77c2fc8efa41a8d84b47c2e63c2-0a92-5be2-b035-be53c320d82d", + id: 6106, + name: "nicht neu besetzen jetzt 1430", + brand: "", + itype: "", + category: "", + deposit: 0, + parts: "", + manual: "", + "package": "", + added: 0, + status: "deleted", + wc_url: "", + wc_id: "", + image: "", + highlight: "", + synonyms: "", + description: "", + exists_more_than_once: 0, + type: "item", + last_update: 1615766400000 + }, + { + _id: "6e8e3f8877ed77c2fc8efa41a8ce87b9c207d9f-ddbd-54df-ab07-c01d821d509f", + id: 2208, + name: "Bohrmaschine", + brand: "AEG", + itype: "-", + category: "Heimwerker", + deposit: 15, + parts: "1", + manual: "", + "package": "-", + added: 1549065600000, + status: "instock", + wc_url: "https://www.buergerstiftung-karlsruhe.de/leihlokal/sortiment/heimwerker/bohrmaschine-3/", + wc_id: "931", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2019/03/2208.jpg", + highlight: "", + synonyms: "Bohrer, Bohrgerät", + description: "750 Watt", + exists_more_than_once: 0, + type: "item", + last_update: 1615766400000 + }, + { + _id: "6e8e3f8877ed77c2fc8efa41a8d1014f240f38a-7de3-541c-a62a-a42b99736968", + id: 2616, + name: "Fahrrad-Kindersitz", + brand: "-", + itype: "-", + category: "Kinder", + deposit: 5, + parts: "1", + manual: "", + "package": "", + added: 1557964800000, + status: "instock", + wc_url: "https://www.buergerstiftung-karlsruhe.de/leihlokal/sortiment/kinder/fahrrad-kindersitz-3/", + wc_id: "2995", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2019/05/2616.jpg", + highlight: "", + synonyms: "", + description: "", + exists_more_than_once: 0, + type: "item", + last_update: 1615161600000 + }, + { + _id: "6e8e3f8877ed77c2fc8efa41a8c6aa0b1582914-57b3-508b-914b-d2287c298708", + id: 1207, + name: "Stabmixer", + brand: "Braun", + itype: "SPENDENVERKAUF", + category: "Küche", + deposit: 5, + parts: "1", + manual: "", + "package": "-", + added: 1536278400000, + status: "instock", + wc_url: "https://www.buergerstiftung-karlsruhe.de/leihlokal/sortiment/kueche/stabmixer-2/", + wc_id: "361", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2019/03/1207.jpg", + highlight: "", + synonyms: "Mixstab, Pürierstab, Zauberstab", + description: "", + exists_more_than_once: 0, + type: "item", + last_update: 1615593600000 + }, + { + _id: "6e8e3f8877ed77c2fc8efa41a8cc929e65a68cc-f386-5eb6-a56e-8aac08860dad", + id: 1742, + name: "Fugenkratzer", + brand: "-", + itype: "-", + category: "Garten", + deposit: 5, + parts: "1", + manual: "", + "package": "-", + added: 1551657600000, + status: "instock", + wc_url: "https://www.buergerstiftung-karlsruhe.de/leihlokal/sortiment/garten/fugenkratzer/", + wc_id: "2931", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2019/03/1742-1.jpg", + highlight: "", + synonyms: "", + description: "", + exists_more_than_once: 0, + type: "item", + last_update: 1616025600000 + }, + { + _id: "6e8e3f8877ed77c2fc8efa41a8d825a6a782c18-b231-5ed7-b302-70949fd57714", + id: 6103, + name: "Strommessgerät", + brand: "ENBW", + itype: "", + category: "Haushalt", + deposit: 5, + parts: "1", + manual: "in Schriftform vorhanden", + "package": "originalKarton", + added: 1582761600000, + status: "deleted", + wc_url: "", + wc_id: "", + image: "", + highlight: "", + synonyms: "", + description: "", + exists_more_than_once: 0, + type: "item", + last_update: 1615161600000 + }, + { + _id: "6e8e3f8877ed77c2fc8efa41a8d57900089e65a-f3e6-58e9-87d3-cee86d1f040c", + id: 3317, + name: "Strandliegen", + brand: "", + itype: "", + category: "Freizeit", + deposit: 15, + parts: "4", + manual: "", + "package": "", + added: 1596153600000, + status: "instock", + wc_url: "https://www.buergerstiftung-karlsruhe.de/leihlokal/sortiment/freizeit/strandliegen/", + wc_id: "3940", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2020/08/3317.jpg", + highlight: "", + synonyms: "", + description: "1 Paar, zerlegbar", + exists_more_than_once: 0, + type: "item", + last_update: 1616025600000 + }, + { + _id: "6e8e3f8877ed77c2fc8efa41a8c4bf301b1e8b5-bef7-5701-b817-ffd948c2c3c1", + id: 912, + name: "Elektrohobel", + brand: "KingCraft", + itype: "WK 900 EH", + category: "Heimwerker", + deposit: 45, + parts: "5", + manual: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2019/03/gedruckte-Bedienungsanleitung.pdf", + "package": "Originalkarton", + added: 1539561600000, + status: "deleted", + wc_url: "", + wc_id: "", + image: "", + highlight: "", + synonyms: "", + description: "", + exists_more_than_once: 0, + type: "item", + last_update: 1614556800000 + }, + { + _id: "6e8e3f8877ed77c2fc8efa41a8c0a15a0caec43-e9a4-524a-9838-515cfa16eea3", + id: 403, + name: "Ski/Snowboardhelm versch. Größen", + brand: "TCM", + itype: "-", + category: "Freizeit", + deposit: 5, + parts: "1", + manual: "", + "package": "-", + added: 1536019200000, + status: "instock", + wc_url: "https://www.buergerstiftung-karlsruhe.de/leihlokal/sortiment/freizeit/ski-snowboardhelm/", + wc_id: "2802", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2019/03/403.jpg", + highlight: "", + synonyms: "", + description: "XS/S 50-53cm, 5 versch. Modelle", + exists_more_than_once: 0, + type: "item", + last_update: 1616371200000 + }, + { + _id: "6e8e3f8877ed77c2fc8efa41a8d7ad91456f759-55f0-5e9b-8a46-dba146d6d323", + id: 5059, + name: "Kabeltrommel", + brand: "-", + itype: "-", + category: "Heimwerker", + deposit: 25, + parts: "1", + manual: "-", + "package": "-", + added: 1605744000000, + status: "outofstock", + wc_url: "https://www.buergerstiftung-karlsruhe.de/leihlokal/sortiment/heimwerker/kabeltrommel/", + wc_id: "4307", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2020/11/5059.jpg", + highlight: "", + synonyms: "", + description: "50m", + exists_more_than_once: 0, + type: "item", + last_update: 1615766400000 + }, + { + _id: "6e8e3f8877ed77c2fc8efa41a8d493871c60c1b-8391-517c-94eb-bdd211665a56", + id: 3212, + name: "Multifunktionsmixer", + brand: "Bullet Express", + itype: "KASCHKA", + category: "Freizeit", + deposit: 15, + parts: "", + manual: "", + "package": "", + added: 1567728000000, + status: "deleted", + wc_url: "", + wc_id: "", + image: "", + highlight: "rgb(45, 144, 224)", + synonyms: "", + description: "", + exists_more_than_once: 0, + type: "item", + last_update: 1615075200000 + }, + { + _id: "6e8e3f8877ed77c2fc8efa41a8d2fc66da4e40f-d044-5384-8eb3-dd880557e359", + id: 2906, + name: "Bohrmaschine", + brand: "Bosch", + itype: "PBH 16 RE", + category: "Heimwerker", + deposit: 15, + parts: "4", + manual: "", + "package": "", + added: 1572220800000, + status: "outofstock", + wc_url: "https://www.buergerstiftung-karlsruhe.de/leihlokal/sortiment/heimwerker/bohrmaschine-5/", + wc_id: "3022", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2019/10/2906.jpg", + highlight: "", + synonyms: "", + description: "", + exists_more_than_once: 0, + type: "item", + last_update: 1615507200000 + }, + { + _id: "6e8e3f8877ed77c2fc8efa41a8c46be9f726bf9-4588-5029-9fb4-0d41efa466e4", + id: 832, + name: "Elektr. Fondue", + brand: "TCM", + itype: "64696", + category: "Küche", + deposit: 15, + parts: "11", + manual: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2019/03/gedruckte-Bedienungsanleitung.pdf", + "package": "Originalkarton", + added: 1596758400000, + status: "deleted", + wc_url: "", + wc_id: "", + image: "", + highlight: "", + synonyms: "", + description: "", + exists_more_than_once: 0, + type: "item", + last_update: 1616544000000 + }, + { + _id: "6e8e3f8877ed77c2fc8efa41a8d2ce8b2d07b87-78ce-56ca-b996-249a4a61d97b", + id: 2900, + name: "Kinder Schlittschuhkuven", + brand: "-", + itype: "-", + category: "Freizeit", + deposit: 5, + parts: "2", + manual: "", + "package": "", + added: 1592179200000, + status: "instock", + wc_url: "https://www.buergerstiftung-karlsruhe.de/leihlokal/sortiment/freizeit/kinder-schlittschuhkuven/", + wc_id: "3823", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2020/06/2900.jpg", + highlight: "", + synonyms: "", + description: "Größe ist auf den jeweiligen Schuh anzupassen -„Eisrutscherle“", + exists_more_than_once: 0, + type: "item", + last_update: 1616284800000 + }, + { + _id: "6e8e3f8877ed77c2fc8efa41a8c3f77487f75f1-c080-547f-b24f-6cb58cc7318a", + id: 819, + name: "Kindertrage", + brand: "fourseasons", + itype: "-", + category: "Freizeit", + deposit: 25, + parts: "1", + manual: "", + "package": "-", + added: 1539043200000, + status: "instock", + wc_url: "https://www.buergerstiftung-karlsruhe.de/leihlokal/sortiment/kinder/kindertrage/", + wc_id: "2044", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2019/03/819.jpg", + highlight: "rgb(250, 45, 30)", + synonyms: "", + description: "bis zu 15 kg", + exists_more_than_once: 0, + type: "item", + last_update: 1616889600000 + }, + { + _id: "6e8e3f8877ed77c2fc8efa41a8d5badb1d93846-69a5-514e-8f06-a4538641dd40", + id: 4003, + name: "Bowle-Set", + brand: "-", + itype: "-", + category: "Freizeit", + deposit: 15, + parts: "9", + manual: "", + "package": "-", + added: 1542326400000, + status: "instock", + wc_url: "https://www.buergerstiftung-karlsruhe.de/leihlokal/sortiment/freizeit/bowle-set/", + wc_id: "3046", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2019/03/4003.jpg", + highlight: "rgb(131, 235, 52)", + synonyms: "", + description: "mit 6 Tassen, Schöpfkelle", + exists_more_than_once: 0, + type: "item", + last_update: 1615420800000 + }, + { + _id: "6e8e3f8877ed77c2fc8efa41a8bf93e74e652c3-d5e0-58c2-b1d7-51e93e091bd9", + id: 212, + name: "Kinderhochstuhl", + brand: "icoo", + itype: "SPENDENVERKAUF", + category: "Kinder", + deposit: 15, + parts: "4", + manual: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2019/03/212.pdf", + "package": "-", + added: 1536624000000, + status: "deleted", + wc_url: "", + wc_id: "", + image: "", + highlight: "", + synonyms: "", + description: "", + exists_more_than_once: 0, + type: "item", + last_update: 1616803200000 + }, + { + _id: "6e8e3f8877ed77c2fc8efa41a8c08ef2547f2a9-649a-5abf-b36c-74d2aa0f40bc", + id: 329, + name: "Schokofondue-Set", + brand: "kela", + itype: "", + category: "Küche", + deposit: "15", + parts: "10", + manual: "", + "package": "", + added: 1611014400000, + status: "instock", + wc_url: "https://www.buergerstiftung-karlsruhe.de/leihlokal/sortiment/kueche/schokofondue-set/", + wc_id: "4631", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2021/01/0329.jpg", + highlight: "rgb(247, 239, 10)", + synonyms: "", + description: "", + exists_more_than_once: 0, + type: "item", + last_update: 1615420800000 + }, + { + _id: "6e8e3f8877ed77c2fc8efa41a8c4ffb2edb67ac-bc84-570e-a388-675ef6423e3c", + id: 921, + name: "Entsafter", + brand: "mia", + itype: "SP2003", + category: "Küche", + deposit: 15, + parts: "6", + manual: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2019/03/921.pdf", + "package": "-", + added: 1544486400000, + status: "instock", + wc_url: "https://www.buergerstiftung-karlsruhe.de/leihlokal/sortiment/kueche/entsafter-2/", + wc_id: "326", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2019/03/921.jpg", + highlight: "", + synonyms: "Fruchtpresse, Kelter, Moster, Mostpresse, Obstpresse, Saftpresse", + description: "", + exists_more_than_once: 0, + type: "item", + last_update: 1616544000000 + }, + { + _id: "6e8e3f8877ed77c2fc8efa41a8cb580b46e334f-3b45-563e-bad2-81dd698c57ab", + id: 1703, + name: "Lötkolben", + brand: "Ersa", + itype: "150", + category: "Heimwerker", + deposit: 15, + parts: "4", + manual: "", + "package": "-", + added: 1537228800000, + status: "instock", + wc_url: "https://www.buergerstiftung-karlsruhe.de/leihlokal/sortiment/heimwerker/loetkolben/", + wc_id: "2157", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2019/03/1703.jpg", + highlight: "", + synonyms: "", + description: "mit Lötfett, -stein, -zinn", + exists_more_than_once: 0, + type: "item", + last_update: 1616198400000 + }, + { + _id: "6e8e3f8877ed77c2fc8efa41a8d7ad9766ded74-9e1e-5163-99c5-b196ebb865fb", + id: 5059, + name: "Kabeltrommel", + brand: "-", + itype: "-", + category: "Heimwerker", + deposit: 25, + parts: "1", + manual: "-", + "package": "-", + added: 1605744000000, + status: "outofstock", + wc_url: "https://www.buergerstiftung-karlsruhe.de/leihlokal/sortiment/heimwerker/kabeltrommel/", + wc_id: "4307", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2020/11/5059.jpg", + highlight: "rgb(45, 144, 224)", + synonyms: "", + description: "50m", + exists_more_than_once: 0, + type: "item", + last_update: 1616457600000 + }, + { + _id: "6e8e3f8877ed77c2fc8efa41a8cd734f41f1f7a-72e9-5ea3-a82b-5b901ea7c2d2", + id: 1907, + name: "belgisches Waffeleisen", + brand: "ambiano", + itype: "-", + category: "Küche", + deposit: 15, + parts: "1", + manual: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2019/03/gedruckte-Bedienungsanleitung.pdf", + "package": "Originalkarton", + added: 1540771200000, + status: "instock", + wc_url: "https://www.buergerstiftung-karlsruhe.de/leihlokal/sortiment/kueche/belgisches-waffeleisen/", + wc_id: "513", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2019/03/1907.jpg", + highlight: "rgb(250, 45, 30)", + synonyms: "", + description: "", + exists_more_than_once: 0, + type: "item", + last_update: 1614556800000 + }, + { + _id: "6e8e3f8877ed77c2fc8efa41a8d7ce53c2a4591-c296-575a-876a-9a1ca87056ec", + id: 6002, + name: "Babysitz", + brand: "bébé comfort", + itype: "", + category: "Kinder", + deposit: 15, + parts: "1", + manual: "", + "package": "", + added: 1581897600000, + status: "deleted", + wc_url: "", + wc_id: "", + image: "", + highlight: "", + synonyms: "", + description: "", + exists_more_than_once: 0, + type: "item", + last_update: 1615507200000 + }, + { + _id: "6e8e3f8877ed77c2fc8efa41a8c25b46d494223-7b48-5771-94e8-1c431a7b771b", + id: 606, + name: "Elektr. Gemüseschneider", + brand: "Moulinex", + itype: "Charlotte HV3", + category: "Küche", + deposit: 15, + parts: "22", + manual: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2019/03/gedruckte-Bedienungsanleitung.pdf", + "package": "Originalkarton", + added: 1536105600000, + status: "instock", + wc_url: "https://www.buergerstiftung-karlsruhe.de/leihlokal/sortiment/kueche/kuechenmaschine-2/", + wc_id: "256", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2019/03/606.jpg", + highlight: "", + synonyms: "", + description: "", + exists_more_than_once: 0, + type: "item", + last_update: 1616630400000 + }, + { + _id: "6e8e3f8877ed77c2fc8efa41a8cb5408dfb453e-debf-5d64-ad21-98bbbc79ee09", + id: 1702, + name: "Ravioli-Former", + brand: "TCM", + itype: "-", + category: "Küche", + deposit: 5, + parts: "3", + manual: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2019/03/gedruckte-Bedienungsanleitung.pdf", + "package": "Originalkarton", + added: 1537228800000, + status: "instock", + wc_url: "https://www.buergerstiftung-karlsruhe.de/leihlokal/sortiment/kueche/ravioli-former/", + wc_id: "463", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2019/03/1702.jpg", + highlight: "", + synonyms: "", + description: "", + exists_more_than_once: 0, + type: "item", + last_update: 1615593600000 + }, + { + _id: "6e8e3f8877ed77c2fc8efa41a8c0beac97e7f68-ab2d-5408-9ed5-04fd1ceb9b72", + id: 409, + name: "Dampfbügelstation", + brand: "TCM", + itype: "KASCHKA", + category: "Haushalt", + deposit: 15, + parts: "1", + manual: "", + "package": "-", + added: 1536019200000, + status: "deleted", + wc_url: "", + wc_id: "", + image: "", + highlight: "rgb(45, 144, 224)", + synonyms: "", + description: "", + exists_more_than_once: 0, + type: "item", + last_update: 1615420800000 + }, + { + _id: "6e8e3f8877ed77c2fc8efa41a8d5fcf32d81b01-3391-57ed-b7ca-a6f15977746f", + id: 5004, + name: "Hammer", + brand: "-", + itype: "-", + category: "Heimwerker", + deposit: 5, + parts: "-", + manual: "", + "package": "-", + added: 1541116800000, + status: "outofstock", + wc_url: "https://www.buergerstiftung-karlsruhe.de/leihlokal/sortiment/heimwerker/hammer/", + wc_id: "1845", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2019/04/5004.jpg", + highlight: "", + synonyms: "Fäustel", + description: "verschiedene Art und Größen", + exists_more_than_once: 0, + type: "item", + last_update: 1615680000000 + }, + { + _id: "6e8e3f8877ed77c2fc8efa41a8d37af3309ec92-21be-579f-920a-d920d5579789", + id: 3004, + name: "Werkzeugkasten", + brand: "-", + itype: "", + category: "Heimwerker", + deposit: 15, + parts: "", + manual: "", + "package": "", + added: 1578096000000, + status: "instock", + wc_url: "https://www.buergerstiftung-karlsruhe.de/leihlokal/sortiment/heimwerker/werkzeugkasten/", + wc_id: "3246", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2020/01/3004.jpg", + highlight: "", + synonyms: "Werkzeugbox, Werkzeugkiste, Werkzeugkoffer", + description: "Mit Säge und Knieschoner usw…,weiterer Zubehör siehe Bild", + exists_more_than_once: 0, + type: "item", + last_update: 1616630400000 + }, + { + _id: "6e8e3f8877ed77c2fc8efa41a8be82068492814-5c8b-50c8-811f-9bc01abdcbdc", + id: 100, + name: "Staubsauger", + brand: "Thomas", + itype: "SPENDENVERKAUF", + category: "Haushalt", + deposit: 5, + parts: "1", + manual: "", + "package": "-", + added: 1539907200000, + status: "deleted", + wc_url: "", + wc_id: "", + image: "", + highlight: "", + synonyms: "", + description: "", + exists_more_than_once: 0, + type: "item", + last_update: 1614729600000 + }, + { + _id: "6e8e3f8877ed77c2fc8efa41a8d1261acf28dc8-d531-5d56-bb75-f3011d3c97d1", + id: 2622, + name: "Metronom", + brand: "Wittner", + itype: "Tactell piccolino", + category: "Freizeit", + deposit: 5, + parts: "1", + manual: "", + "package": "-", + added: 1589500800000, + status: "instock", + wc_url: "https://www.buergerstiftung-karlsruhe.de/leihlokal/sortiment/freizeit/metronom/", + wc_id: "3761", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2020/05/2622.jpg", + highlight: "", + synonyms: "", + description: "made in Germany , Qualität seit 1895", + exists_more_than_once: 0, + type: "item", + last_update: 1614643200000 + }, + { + _id: "6e8e3f8877ed77c2fc8efa41a8c584095a0203e-d196-5afa-a11e-6657f2ce60b2", + id: 1009, + name: "Luftentfeuchter", + brand: "Workzone", + itype: "-", + category: "Heimwerker", + deposit: 25, + parts: "1", + manual: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2019/03/gedruckte-Bedienungsanleitung.pdf", + "package": "-", + added: 1540512000000, + status: "instock", + wc_url: "https://www.buergerstiftung-karlsruhe.de/leihlokal/sortiment/heimwerker/luftentfeuchter/", + wc_id: "2068", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2019/03/1009.jpg", + highlight: "rgb(250, 45, 30)", + synonyms: "", + description: "", + exists_more_than_once: 0, + type: "item", + last_update: 1616198400000 + }, + { + _id: "6e8e3f8877ed77c2fc8efa41a8cb2fd4ab9ccfd-f2e7-5248-84ae-5a70679f882d", + id: 1630, + name: "Inliner GR. 33-36", + brand: "crane", + itype: "Art.-Nr. 91943", + category: "Freizeit", + deposit: 15, + parts: "1", + manual: "", + "package": "", + added: 1581897600000, + status: "instock", + wc_url: "https://www.buergerstiftung-karlsruhe.de/leihlokal/sortiment/kinder/inliner/", + wc_id: "3480", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2020/02/6009.jpg", + highlight: "rgb(45, 144, 224)", + synonyms: "", + description: "für Jungen Gr. 33-36, 72mm", + exists_more_than_once: 0, + type: "item", + last_update: 1615075200000 + }, + { + _id: "6e8e3f8877ed77c2fc8efa41a8d07ee12d8ee8c-bdb0-5a3c-97a8-205e99bc43c3", + id: 2522, + name: "Walkingstöcke", + brand: "-", + itype: "-", + category: "Freizeit", + deposit: 15, + parts: "2", + manual: "", + "package": "-", + added: 1564704000000, + status: "instock", + wc_url: "https://www.buergerstiftung-karlsruhe.de/leihlokal/sortiment/freizeit/walkingstoecke/", + wc_id: "2988", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2019/08/2522.jpg", + highlight: "", + synonyms: "", + description: "Höhe: 110 cm", + exists_more_than_once: 0, + type: "item", + last_update: 1616716800000 + }, + { + _id: "6e8e3f8877ed77c2fc8efa41a8cf3ff4dace921-1ab1-5df2-b129-3d20fe578635", + id: 2402, + name: "Babywippe", + brand: "chicco", + itype: "SPENDENVERKAUF", + category: "Kinder", + deposit: 15, + parts: "1", + manual: "", + "package": "-", + added: 1551398400000, + status: "deleted", + wc_url: "", + wc_id: "", + image: "", + highlight: "", + synonyms: "", + description: "", + exists_more_than_once: 0, + type: "item", + last_update: 1615420800000 + }, + { + _id: "6e8e3f8877ed77c2fc8efa41a8cb924fde4dc39-6d22-5030-9d46-0f12f8a0dc62", + id: 1710, + name: "Tortenring", + brand: "chg", + itype: "-", + category: "Küche", + deposit: 5, + parts: "1", + manual: "", + "package": "-", + added: 1537747200000, + status: "instock", + wc_url: "https://www.buergerstiftung-karlsruhe.de/leihlokal/sortiment/kueche/tortenring/", + wc_id: "2916", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2019/03/1710.jpg", + highlight: "rgb(131, 235, 52)", + synonyms: "", + description: "8,5 cm hoch", + exists_more_than_once: 0, + type: "item", + last_update: 1615420800000 + }, + { + _id: "6e8e3f8877ed77c2fc8efa41a8cccb7522eba62-95f8-5732-9aec-194f7168a99e", + id: 1800, + name: "Speiseeismaschine", + brand: "studio", + itype: "-", + category: "Küche", + deposit: 15, + parts: "5", + manual: "", + "package": "Originalkarton", + added: 1596758400000, + status: "instock", + wc_url: "https://www.buergerstiftung-karlsruhe.de/leihlokal/sortiment/kueche/speiseeismaschine-3/", + wc_id: "3970", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2019/03/1807.jpg", + highlight: "", + synonyms: "", + description: "Kühlflüssigkeit über Nacht kühlstellen", + exists_more_than_once: 0, + type: "item", + last_update: 1616284800000 + }, + { + _id: "6e8e3f8877ed77c2fc8efa41a8d536d16d0819b-e8cb-5310-9d0a-96e521d3925f", + id: 3309, + name: "Navigationsgerät", + brand: "Tomtom", + itype: "", + category: "Freizeit", + deposit: 15, + parts: "2", + manual: "", + "package": "", + added: 1572480000000, + status: "instock", + wc_url: "https://www.buergerstiftung-karlsruhe.de/leihlokal/sortiment/freizeit/navigationsgeraet/", + wc_id: "3045", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2019/10/3309.jpg", + highlight: "", + synonyms: "", + description: "", + exists_more_than_once: 0, + type: "item", + last_update: 1615680000000 + }, + { + _id: "6e8e3f8877ed77c2fc8efa41a8c3397c34d1646-ee64-5074-afd3-ec19b284e644", + id: 708, + name: "Motorradbatterie-Ladegerät", + brand: "smartCharcher", + itype: "-", + category: "Freizeit", + deposit: 15, + parts: "2", + manual: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2019/03/gedruckte-Bedienungsanleitung.pdf", + "package": "Originalkarton", + added: 1539561600000, + status: "instock", + wc_url: "https://www.buergerstiftung-karlsruhe.de/leihlokal/sortiment/freizeit/motorradbatterie-ladegeraet/", + wc_id: "2032", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2019/03/708.jpg", + highlight: "rgb(250, 45, 30)", + synonyms: "", + description: "2x vorhanden, Input 230V Output 12V", + exists_more_than_once: 0, + type: "item", + last_update: 1614556800000 + }, + { + _id: "6e8e3f8877ed77c2fc8efa41a8bf28b529ec261-f758-5017-a410-dcc229a1b34f", + id: 120, + name: "Infrarot-Temperaturmessgerät", + brand: "POWERFIX", + itype: "Profi+", + category: "Heimwerker", + deposit: 25, + parts: "2", + manual: "in Schriftform vorhanden", + "package": "OriginalKarton", + added: 1602720000000, + status: "instock", + wc_url: "https://www.buergerstiftung-karlsruhe.de/leihlokal/sortiment/heimwerker/infrarot-temperaturmessgeraet/", + wc_id: "4166", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2020/10/P1060730.jpg", + highlight: "", + synonyms: "", + description: "Anleitung in Schriftform vorhanden\nZeigt Wärmeverluste an Fenstern, Türen oder Isolierungen", + exists_more_than_once: 0, + type: "item", + last_update: 1616112000000 + }, + { + _id: "6e8e3f8877ed77c2fc8efa41a8c7e63daed8914-6b8a-5a54-b6f4-aa87cf6924ca", + id: 1242, + name: "Laufrad", + brand: "Puky", + itype: "12,5 Zoll", + category: "Kinder", + deposit: "15", + parts: "1", + manual: "", + "package": "", + added: 1610755200000, + status: "instock", + wc_url: "https://www.buergerstiftung-karlsruhe.de/leihlokal/sortiment/kinder/laufrad-2/", + wc_id: "4615", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2021/01/2116.jpg", + highlight: "", + synonyms: "", + description: "", + exists_more_than_once: 0, + type: "item", + last_update: 1616371200000 + }, + { + _id: "6e8e3f8877ed77c2fc8efa41a8cd4fb620b75eb-3748-587c-a9f8-46ae60013650", + id: 1902, + name: "Reithelm", + brand: "SPENDENVERKAF", + itype: "-", + category: "Kinder", + deposit: 15, + parts: "1", + manual: "", + "package": "-", + added: 1539907200000, + status: "deleted", + wc_url: "", + wc_id: "", + image: "", + highlight: "", + synonyms: "", + description: "", + exists_more_than_once: 0, + type: "item", + last_update: 1616025600000 + }, + { + _id: "6e8e3f8877ed77c2fc8efa41a8ca0c9f0c8e1e5-8bde-5319-9ad3-0f180c83a630", + id: 1517, + name: "Einrad", + brand: "-", + itype: "-", + category: "Freizeit", + deposit: 15, + parts: "1", + manual: "", + "package": "-", + added: 1548460800000, + status: "instock", + wc_url: "https://www.buergerstiftung-karlsruhe.de/leihlokal/sortiment/freizeit/einrad/", + wc_id: "888", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2019/03/1517.jpg", + highlight: "rgb(250, 45, 30)", + synonyms: "", + description: "", + exists_more_than_once: 0, + type: "item", + last_update: 1614556800000 + }, + { + _id: "6e8e3f8877ed77c2fc8efa41a8bf867511fe1ed-be02-5e95-bb6a-87d22d68eebb", + id: 210, + name: "Stativleinwand", + brand: "universa", + itype: "-", + category: "Freizeit", + deposit: 15, + parts: "1", + manual: "", + "package": "-", + added: 1539648000000, + status: "instock", + wc_url: "https://www.buergerstiftung-karlsruhe.de/leihlokal/sortiment/freizeit/stativleinwand/", + wc_id: "183", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2019/03/210.jpg", + highlight: "rgb(247, 239, 10)", + synonyms: "", + description: "Maximale Maße der Leinwand: 1,2 m x 1,25 m", + exists_more_than_once: 0, + type: "item", + last_update: 1615852800000 + }, + { + _id: "6e8e3f8877ed77c2fc8efa41a8c3536931f52dc-5151-5cf8-96fa-3fc6458fcbb4", + id: 711, + name: "Küchenmaschine", + brand: "Braun", + itype: "Type 4200", + category: "Küche", + deposit: 35, + parts: "21", + manual: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2019/03/gedruckte-Bedienungsanleitung.pdf", + "package": "Karton", + added: 1539561600000, + status: "outofstock", + wc_url: "https://www.buergerstiftung-karlsruhe.de/leihlokal/sortiment/kueche/kuechenmaschine-3/", + wc_id: "2830", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2019/03/711.jpg", + highlight: "", + synonyms: "", + description: "", + exists_more_than_once: 0, + type: "item", + last_update: 1614988800000 + }, + { + _id: "6e8e3f8877ed77c2fc8efa41a8c48d5158311b6-f776-5081-b33d-786eab2aafc8", + id: 905, + name: "Stichsäge", + brand: "Metabo", + itype: "St EP 560", + category: "Heimwerker", + deposit: 25, + parts: "2", + manual: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2019/03/gedruckte-Bedienungsanleitung.pdf", + "package": "Originalkoffer", + added: 1536192000000, + status: "onbackorder", + wc_url: "https://www.buergerstiftung-karlsruhe.de/leihlokal/sortiment/heimwerker/stichsaege-2/", + wc_id: "310", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2019/03/905.jpg", + highlight: "rgb(131, 235, 52)", + synonyms: "Laubsäge, Laubsägemaschine, Wippsäge", + description: "div. Sägeblätter", + exists_more_than_once: 0, + type: "item", + last_update: 1616544000000 + }, + { + _id: "6e8e3f8877ed77c2fc8efa41a8d5e7c049f5ce9-4d4b-567d-b17c-de91058b930e", + id: 5002, + name: "Schraubenschlüssel", + brand: "-", + itype: "-", + category: "Heimwerker", + deposit: 5, + parts: "-", + manual: "", + "package": "-", + added: 1537747200000, + status: "outofstock", + wc_url: "https://www.buergerstiftung-karlsruhe.de/leihlokal/sortiment/heimwerker/1529/", + wc_id: "1529", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2019/04/5002.jpg", + highlight: "", + synonyms: "", + description: "auch: Gabel-Ringschlüssel, Gabelschlüssel\nverschiedene Größen", + exists_more_than_once: 0, + type: "item", + last_update: 1616544000000 + }, + { + _id: "6e8e3f8877ed77c2fc8efa41a8d612f0b803678-b9b5-52ee-bd60-916e2b36df13", + id: 5006, + name: "Wasserwaage, 100cm, Alu", + brand: "Bauhaus", + itype: "", + category: "Heimwerker", + deposit: "25", + parts: "", + manual: "", + "package": "", + added: 1614038400000, + status: "instock", + wc_url: "https://www.buergerstiftung-karlsruhe.de/leihlokal/sortiment/heimwerker/wasserwaage-100cm-alu/", + wc_id: "4684", + image: "", + highlight: "", + synonyms: "", + description: "", + exists_more_than_once: 0, + type: "item", + last_update: 1614902400000 + }, + { + _id: "6e8e3f8877ed77c2fc8efa41a8c793f2f9ee9c0-5d1a-5d98-867d-a263d9edcbf2", + id: 1232, + name: "Saftpresse", + brand: "-", + itype: "-", + category: "Küche", + deposit: 5, + parts: "1", + manual: "", + "package": "-", + added: 1543622400000, + status: "instock", + wc_url: "https://www.buergerstiftung-karlsruhe.de/leihlokal/sortiment/kueche/saftpresse/", + wc_id: "2877", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2019/03/1232.jpg", + highlight: "", + synonyms: "Entsafter, Fruchtpresse, Kelter, Moster, Mostpresse, Obstpresse", + description: "2x vorhanden", + exists_more_than_once: 0, + type: "item", + last_update: 1615334400000 + }, + { + _id: "6e8e3f8877ed77c2fc8efa41a8d30881629f49e-c0e9-56ca-9e64-5ddf86af39f9", + id: 2909, + name: "Multi-Scanner", + brand: "Tevion", + itype: "SPENDENVerKAUF", + category: "Freizeit", + deposit: 15, + parts: "8", + manual: "", + "package": "", + added: 1568160000000, + status: "deleted", + wc_url: "", + wc_id: "", + image: "", + highlight: "", + synonyms: "", + description: "", + exists_more_than_once: 0, + type: "item", + last_update: 1615852800000 + }, + { + _id: "6e8e3f8877ed77c2fc8efa41a8cf6f28e9043f3-6bf1-5a69-b9c5-856e2bb43ff6", + id: 2407, + name: "Schreibmaschine", + brand: "Olympia", + itype: "", + category: "Freizeit", + deposit: 25, + parts: "1", + manual: "", + "package": "Originalkoffer", + added: 1553126400000, + status: "instock", + wc_url: "https://www.buergerstiftung-karlsruhe.de/leihlokal/sortiment/freizeit/schreibmaschine/", + wc_id: "2236", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2019/03/2407.jpg", + highlight: "", + synonyms: "", + description: "Reiseschreibmaschine mit Tragekoffer", + exists_more_than_once: 0, + type: "item", + last_update: 1616630400000 + }, + { + _id: "6e8e3f8877ed77c2fc8efa41a8be26823bf3c9c-739e-5592-8b06-184e227bd14d", + id: 18, + name: "Filmvorführgerät", + brand: "ELMO", + itype: "SP-F", + category: "Freizeit", + deposit: 15, + parts: "1", + manual: "", + "package": "", + added: 1581292800000, + status: "onbackorder", + wc_url: "https://www.buergerstiftung-karlsruhe.de/leihlokal/sortiment/freizeit/diaprojektor-5/", + wc_id: "3427", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2020/02/18.jpg", + highlight: "", + synonyms: "", + description: "", + exists_more_than_once: 0, + type: "item", + last_update: 1615420800000 + }, + { + _id: "6e8e3f8877ed77c2fc8efa41a8c05c319f9bca6-702d-5f2f-b12c-96c015bc62c5", + id: 321, + name: "Bunsenbrenner", + brand: "campingaz", + itype: "soudagaz 20C", + category: "Heimwerker", + deposit: 5, + parts: "1", + manual: "", + "package": "-", + added: 1542931200000, + status: "instock", + wc_url: "https://www.buergerstiftung-karlsruhe.de/leihlokal/sortiment/heimwerker/loetlampe/", + wc_id: "1984", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2019/03/321.jpg", + highlight: "", + synonyms: "", + description: "mit Gas-Stechkartusche, zum Einsetzen der Kartusche sind 2 Personen benötigt", + exists_more_than_once: 0, + type: "item", + last_update: 1616284800000 + }, + { + _id: "6e8e3f8877ed77c2fc8efa41a8c687db0a71517-1f10-5d8c-8c62-3ba099c3c255", + id: 1202, + name: "Fleischwolf", + brand: "alfa", + itype: "-", + category: "Küche", + deposit: 15, + parts: "7", + manual: "", + "package": "Originalkarton", + added: 1536278400000, + status: "instock", + wc_url: "https://www.buergerstiftung-karlsruhe.de/leihlokal/sortiment/kueche/fleischwolf/", + wc_id: "2864", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2019/03/1202.jpg", + highlight: "", + synonyms: "Faschiermaschine, Fleischmaschine", + description: "", + exists_more_than_once: 0, + type: "item", + last_update: 1616284800000 + }, + { + _id: "6e8e3f8877ed77c2fc8efa41a8cd0ff0954f9d0-0219-545a-8ba0-db157f2acb7e", + id: 1807, + name: "Speiseeismaschine", + brand: "studio", + itype: "-", + category: "Küche", + deposit: 15, + parts: "5", + manual: "", + "package": "Originalkarton", + added: 1542931200000, + status: "instock", + wc_url: "https://www.buergerstiftung-karlsruhe.de/leihlokal/sortiment/kueche/speiseeismaschine/", + wc_id: "497", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2019/03/1807.jpg", + highlight: "", + synonyms: "", + description: "Kühlflüssigkeit über Nacht kühlstellen", + exists_more_than_once: 0, + type: "item", + last_update: 1615075200000 + }, + { + _id: "6e8e3f8877ed77c2fc8efa41a8cd5cfad7904d8-1709-5699-8bc1-4a16878e8f92", + id: 1903, + name: "Reithelm", + brand: "Penta", + itype: "Champion", + category: "Kinder", + deposit: 15, + parts: "1", + manual: "", + "package": "-", + added: 1539907200000, + status: "instock", + wc_url: "https://www.buergerstiftung-karlsruhe.de/leihlokal/sortiment/kinder/reithelm-2/", + wc_id: "2194", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2019/03/1903.jpg", + highlight: "", + synonyms: "", + description: "Größe XS/01 50-54 cm", + exists_more_than_once: 0, + type: "item", + last_update: 1616544000000 + }, + { + _id: "6e8e3f8877ed77c2fc8efa41a8d6e8084fdfcc5-88a2-5024-8d1f-ba5ed3e93657", + id: 5035, + name: "Gartenkralle", + brand: "Garden Claw", + itype: "-", + category: "Garten", + deposit: 5, + parts: "1", + manual: "", + "package": "-", + added: 1530403200000, + status: "instock", + wc_url: "https://www.buergerstiftung-karlsruhe.de/leihlokal/sortiment/garten/gartenkralle/", + wc_id: "2836", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2019/03/814.jpg", + highlight: "", + synonyms: "", + description: "", + exists_more_than_once: 0, + type: "item", + last_update: 1614816000000 + }, + { + _id: "6e8e3f8877ed77c2fc8efa41a8c99aaac601362-b4de-5b3b-a054-221f80f95259", + id: 1501, + name: "Rollator", + brand: "Invacare", + itype: "KA", + category: "Haushalt", + deposit: 25, + parts: "1", + manual: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2019/03/1501.pdf", + "package": "-", + added: 1530403200000, + status: "deleted", + wc_url: "", + wc_id: "", + image: "", + highlight: "", + synonyms: "", + description: "", + exists_more_than_once: 0, + type: "item", + last_update: 1615852800000 + }, + { + _id: "6e8e3f8877ed77c2fc8efa41a8c2957915ab7cb-cc89-50ec-9fe3-c551b5b1b830", + id: 614, + name: "Autokindersitz", + brand: "Nania", + itype: "KASCHKA", + category: "Kinder", + deposit: 5, + parts: "1", + manual: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2019/03/gedruckte-Bedienungsanleitung.pdf", + "package": "-", + added: 1539043200000, + status: "deleted", + wc_url: "", + wc_id: "", + image: "", + highlight: "", + synonyms: "", + description: "", + exists_more_than_once: 0, + type: "item", + last_update: 1616457600000 + }, + { + _id: "6e8e3f8877ed77c2fc8efa41a8d6a829da8cc78-8c9e-5622-aabc-1a041729199f", + id: 5025, + name: "Campingsessel", + brand: "-", + itype: "-", + category: "Freizeit", + deposit: 5, + parts: "1", + manual: "", + "package": "-", + added: 1551052800000, + status: "instock", + wc_url: "https://www.buergerstiftung-karlsruhe.de/leihlokal/sortiment/freizeit/campingsessel/", + wc_id: "2276", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2019/04/5025.jpg", + highlight: "", + synonyms: "", + description: "rund, klappbar", + exists_more_than_once: 0, + type: "item", + last_update: 1616025600000 + }, + { + _id: "6e8e3f8877ed77c2fc8efa41a8c36b0df8470ad-f021-558d-ad23-f5cc14041148", + id: 715, + name: "Multi-Elektrosäge", + brand: "KingCraft", + itype: "KMS 550 E", + category: "Heimwerker", + deposit: 25, + parts: "1", + manual: "", + "package": "OriginalKarton", + added: 1550448000000, + status: "outofstock", + wc_url: "https://www.buergerstiftung-karlsruhe.de/leihlokal/sortiment/heimwerker/multi-elektrosaege/", + wc_id: "2037", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2019/03/715.jpg", + highlight: "", + synonyms: "", + description: "incl. Sägeblätter\nauch: Säbel – Sägemaschine, elektischer Fuchsschwanz", + exists_more_than_once: 0, + type: "item", + last_update: 1616025600000 + }, + { + _id: "6e8e3f8877ed77c2fc8efa41a8bf416f86b3f42-cf0c-55ad-93ae-8e4d0ea6f2e1", + id: 122, + name: "Digital-Multimeter", + brand: "POWERFIX", + itype: "Profi +", + category: "Heimwerker", + deposit: 15, + parts: "3", + manual: "in Schriftform vorhanden", + "package": "original karton", + added: 1605744000000, + status: "instock", + wc_url: "https://www.buergerstiftung-karlsruhe.de/leihlokal/sortiment/heimwerker/digital-multimeter/", + wc_id: "4295", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2020/11/0122.jpg", + highlight: "", + synonyms: "", + description: "Bedienungsanleitung in Schriftform vorhanden", + exists_more_than_once: 0, + type: "item", + last_update: 1615334400000 + }, + { + _id: "6e8e3f8877ed77c2fc8efa41a8d2d3b81f866b2-0a10-5d75-a1d1-cf1889ba0350", + id: 2901, + name: "Schwingschleifer", + brand: "Bosch", + itype: "PSS 23 AE", + category: "Heimwerker", + deposit: 15, + parts: "1", + manual: "", + "package": "-", + added: 1564963200000, + status: "instock", + wc_url: "https://www.buergerstiftung-karlsruhe.de/leihlokal/sortiment/heimwerker/schwingschleifer-2/", + wc_id: "3838", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2020/06/2901.jpg", + highlight: "", + synonyms: "", + description: "mit div. Schleifpapier", + exists_more_than_once: 0, + type: "item", + last_update: 1616025600000 + }, + { + _id: "6e8e3f8877ed77c2fc8efa41a8c188c9840b8dd-8242-5480-b2da-dd53cf5554a6", + id: 502, + name: "Camping Gaskocher", + brand: "Week End", + itype: "-", + category: "Freizeit", + deposit: 15, + parts: "1", + manual: "", + "package": "Originalkarton", + added: 1536105600000, + status: "instock", + wc_url: "https://www.buergerstiftung-karlsruhe.de/leihlokal/sortiment/freizeit/camping-gaskocher/", + wc_id: "2812", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2019/03/502.jpg", + highlight: "", + synonyms: "", + description: "Gasanschluss möglich für Butan/Propan, 2 Kochstellen\nman benötigt eine große Gasflasche & einen Gas-Schlauch-Regler", + exists_more_than_once: 0, + type: "item", + last_update: 1616112000000 + }, + { + _id: "6e8e3f8877ed77c2fc8efa41a8cf302ec817395-2bd4-5e1f-a3af-12ce3ac7a0ca", + id: 2318, + name: "Autokindersitz", + brand: "Cybex", + itype: "ECE R44/ 04", + category: "Kinder", + deposit: 15, + parts: "1", + manual: "in Schriftform vorhanden", + "package": "", + added: 1579219200000, + status: "instock", + wc_url: "https://www.buergerstiftung-karlsruhe.de/leihlokal/sortiment/kinder/autokindersitz-12/", + wc_id: "3298", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2020/01/2800.jpg", + highlight: "", + synonyms: "", + description: "Bedienungsanleitung in Schriftform vorhanden\nca. 3-12 Jahre (15-36kg) <150cm", + exists_more_than_once: 0, + type: "item", + last_update: 1615420800000 + }, + { + _id: "6e8e3f8877ed77c2fc8efa41a8c9eb1f2eec798-d18c-51ba-b0d6-6263536d593f", + id: 1511, + name: "Multifunktionswerkzeug", + brand: "Dremel", + itype: "300", + category: "Heimwerker", + deposit: 15, + parts: "1", + manual: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2019/03/1511.pdf", + "package": "Originalkoffer", + added: 1540512000000, + status: "instock", + wc_url: "https://www.buergerstiftung-karlsruhe.de/leihlokal/sortiment/heimwerker/multifunktionswerkzeug/", + wc_id: "441", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2019/03/1511.jpg", + highlight: "", + synonyms: "", + description: "div. Aufsatzteile", + exists_more_than_once: 0, + type: "item", + last_update: 1615852800000 + }, + { + _id: "6e8e3f8877ed77c2fc8efa41a8c1c79b96efea8-6322-5438-a549-3984cc39b42f", + id: 512, + name: "Kontaktgrill", + brand: "privileg", + itype: "-", + category: "Küche", + deposit: 15, + parts: "1", + manual: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2019/03/gedruckte-Bedienungsanleitung.pdf", + "package": "Originalkarton", + added: 1539561600000, + status: "instock", + wc_url: "https://www.buergerstiftung-karlsruhe.de/leihlokal/sortiment/kueche/kontaktgrill/", + wc_id: "2816", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2019/03/512.jpg", + highlight: "", + synonyms: "", + description: "", + exists_more_than_once: 0, + type: "item", + last_update: 1615766400000 + }, + { + _id: "6e8e3f8877ed77c2fc8efa41a8cdd01d9429dd3-42d3-504d-ba27-82dd5a3bcd13", + id: 1919, + name: "Dörr-Automat", + brand: "ABC Elektrogeräte", + itype: "600.1/601.1", + category: "Küche", + deposit: 15, + parts: "1", + manual: "in Schriftform vorhanden", + "package": "OriginalKarton", + added: 1587686400000, + status: "outofstock", + wc_url: "https://www.buergerstiftung-karlsruhe.de/leihlokal/sortiment/kueche/doerr-automat/", + wc_id: "3654", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2020/04/6114.jpg", + highlight: "rgb(250, 45, 30)", + synonyms: "", + description: "Bedienungsanleitung in Schriftform vorhanden", + exists_more_than_once: 0, + type: "item", + last_update: 1615593600000 + }, + { + _id: "6e8e3f8877ed77c2fc8efa41a8d6e16635cc65e-d86d-508e-864e-5edbf07c9a0b", + id: 5034, + name: "Kabeltrommel", + brand: "", + itype: "", + category: "Heimwerker", + deposit: "25", + parts: "1", + manual: "", + "package": "", + added: 1579824000000, + status: "instock", + wc_url: "https://www.buergerstiftung-karlsruhe.de/leihlokal/sortiment/heimwerker/verlaengerungskabel/", + wc_id: "3353", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2020/01/5034.jpg", + highlight: "rgb(45, 144, 224)", + synonyms: "", + description: "mit 3 Steckdosen, 45m", + exists_more_than_once: 0, + type: "item", + last_update: 1616198400000 + }, + { + _id: "6e8e3f8877ed77c2fc8efa41a8c0289af238f26-08bf-5a76-97b5-e55f6336ffa1", + id: 311, + name: "Getreidemühle", + brand: "Alnatura", + itype: "-", + category: "Küche", + deposit: 25, + parts: "8", + manual: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2019/03/gedruckte-Bedienungsanleitung.pdf", + "package": "Originalkarton", + added: 1536019200000, + status: "instock", + wc_url: "https://www.buergerstiftung-karlsruhe.de/leihlokal/sortiment/kueche/getreidemuehle/", + wc_id: "199", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2019/03/311.jpg", + highlight: "", + synonyms: "", + description: "2 Gummifüße fehlen", + exists_more_than_once: 0, + type: "item", + last_update: 1615766400000 + }, + { + _id: "6e8e3f8877ed77c2fc8efa41a8cd3b58fb328cd-33ea-5dc7-bc01-3391f1bf04b3", + id: 1900, + name: "Dekupiersäge", + brand: "Güde", + itype: "GDS 16 Elektronik", + category: "Heimwerker", + deposit: 55, + parts: 2, + manual: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2019/03/gedruckte-Bedienungsanleitung.pdf", + "package": "OriginalKarton", + added: 1558828800000, + status: "instock", + wc_url: "https://www.buergerstiftung-karlsruhe.de/leihlokal/sortiment/heimwerker/dekupiersaege-2/", + wc_id: "3002", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2019/05/2708.jpg", + highlight: "rgb(247, 239, 10)", + synonyms: "", + description: "", + exists_more_than_once: 0, + type: "item", + last_update: 1614988800000 + }, + { + _id: "8cc2f9de-7fb6-5bf1-b6e8-c4d79a334e37", + rented_on: 1616716800000, + to_return_on: 1617321600000, + returned_on: 0, + extended_on: 0, + type: "rental", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2020/11/5059.jpg", + item_id: 5059, + item_name: "Kabeltrommel", + customer_id: 4, + customer_name: "Luetkemeyers", + passing_out_employee: "ABC", + receiving_employee: "", + deposit: 50, + deposit_returned: 0, + last_update: 1614988800000, + remark: "" + }, + { + _id: "acd86855-ae59-5523-8979-cad97d6ae77e", + rented_on: 1615420800000, + to_return_on: 1617235200000, + returned_on: 1616630400000, + extended_on: 0, + type: "rental", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2019/03/1506.jpg", + item_id: 1506, + item_name: "el. Kettensäge", + customer_id: 5, + customer_name: "Ogelsby", + passing_out_employee: "ABC", + receiving_employee: "ABC", + deposit: 5, + deposit_returned: 5, + last_update: 1616284800000, + remark: "" + }, + { + _id: "8dfa0546-d7b2-5c8a-ab7a-403e3a371bf0", + rented_on: 1614643200000, + to_return_on: 1615248000000, + returned_on: 1615248000000, + extended_on: 0, + type: "rental", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2020/05/814.jpg", + item_id: 830, + item_name: "Silikonspritze", + customer_id: 58, + customer_name: "Langstone", + passing_out_employee: "ABC", + receiving_employee: "ABC", + deposit: 5, + deposit_returned: 5, + last_update: 1616803200000, + remark: "" + }, + { + _id: "4a83c8c6-6eeb-5f82-823b-67a8c4af3463", + rented_on: 1615075200000, + to_return_on: 1616889600000, + returned_on: 0, + extended_on: 0, + type: "rental", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2019/04/5002.jpg", + item_id: 5002, + item_name: "Schraubenschlüssel", + customer_id: 56, + customer_name: "Face", + passing_out_employee: "ABC", + receiving_employee: "", + deposit: 10, + deposit_returned: 0, + last_update: 1616025600000, + remark: "" + }, + { + _id: "558d0834-3671-5c59-b719-66fbd24933d3", + rented_on: 1616371200000, + to_return_on: 1618185600000, + returned_on: 1617580800000, + extended_on: 0, + type: "rental", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2019/03/715.jpg", + item_id: 715, + item_name: "Multi-Elektrosäge", + customer_id: 51, + customer_name: "Crockett", + passing_out_employee: "ABC", + receiving_employee: "ABC", + deposit: 15, + deposit_returned: 15, + last_update: 1616630400000, + remark: "" + }, + { + _id: "85ef9170-d7e0-5622-808c-5df1d01d5fe4", + rented_on: 1616371200000, + to_return_on: 1618185600000, + returned_on: 0, + extended_on: 0, + type: "rental", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2019/03/1506.jpg", + item_id: 1506, + item_name: "el. Kettensäge", + customer_id: 40, + customer_name: "Barbrick", + passing_out_employee: "ABC", + receiving_employee: "", + deposit: 200, + deposit_returned: 0, + last_update: 1616457600000, + remark: "" + }, + { + _id: "1c52c90a-80f1-57b3-b4bb-2744f3fcc1be", + rented_on: 1616371200000, + to_return_on: 1617580800000, + returned_on: 0, + extended_on: 0, + type: "rental", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2020/11/5059.jpg", + item_id: 5059, + item_name: "Kabeltrommel", + customer_id: 84, + customer_name: "Taunton.", + passing_out_employee: "ABC", + receiving_employee: "", + deposit: 5, + deposit_returned: 0, + last_update: 1616198400000, + remark: "" + }, + { + _id: "08dfaf7c-36cf-521b-89dd-b07fc62951c3", + rented_on: 1614729600000, + to_return_on: 1615939200000, + returned_on: 1615593600000, + extended_on: 0, + type: "rental", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2020/05/814.jpg", + item_id: 830, + item_name: "Silikonspritze", + customer_id: 58, + customer_name: "Langstone", + passing_out_employee: "ABC", + receiving_employee: "", + deposit: 5, + deposit_returned: 0, + last_update: 1616803200000, + remark: "" + }, + { + _id: "83083740-445f-551b-ab07-22a8ba9791d7", + rented_on: 1615680000000, + to_return_on: 1616284800000, + returned_on: 1615680000000, + extended_on: 0, + type: "rental", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2020/04/6114.jpg", + item_id: 1919, + item_name: "Dörr-Automat", + customer_id: 59, + customer_name: "Orrice", + passing_out_employee: "ABC", + receiving_employee: "ABC", + deposit: 5, + deposit_returned: 5, + last_update: 1615939200000, + remark: "" + }, + { + _id: "14889f37b-3ce0-5655-87de-350439b31de0", + rented_on: 1616457600000, + to_return_on: 1617667200000, + returned_on: 0, + extended_on: 0, + type: "rental", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2020/04/6114.jpg", + item_id: 1919, + item_name: "Dörr-Automat", + customer_id: 64, + customer_name: "Smyth", + passing_out_employee: "ABC", + receiving_employee: "", + deposit: 200, + deposit_returned: 0, + last_update: 1615334400000, + remark: "" + }, + { + _id: "117b1b981-5d0f-5237-883c-03826beb6b59", + rented_on: 1614902400000, + to_return_on: 1616112000000, + returned_on: 1616716800000, + extended_on: 0, + type: "rental", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2020/11/5059.jpg", + item_id: 5059, + item_name: "Kabeltrommel", + customer_id: 85, + customer_name: "McCoish", + passing_out_employee: "ABC", + receiving_employee: "ABC", + deposit: 50, + deposit_returned: 50, + last_update: 1616112000000, + remark: "" + }, + { + _id: "13f38eb14-4c73-5093-8a10-ac6f17f86d38", + rented_on: 1616630400000, + to_return_on: 1618444800000, + returned_on: 1617840000000, + extended_on: 0, + type: "rental", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2020/05/814.jpg", + item_id: 830, + item_name: "Silikonspritze", + customer_id: 66, + customer_name: "Clunan", + passing_out_employee: "ABC", + receiving_employee: "ABC", + deposit: 10, + deposit_returned: 10, + last_update: 1616112000000, + remark: "" + }, + { + _id: "13dfb4908-cdbb-52cc-8f1f-8da5bdf568a2", + rented_on: 1616198400000, + to_return_on: 1616803200000, + returned_on: 1616803200000, + extended_on: 0, + type: "rental", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2020/04/6114.jpg", + item_id: 1919, + item_name: "Dörr-Automat", + customer_id: 27, + customer_name: "Jaqueme", + passing_out_employee: "ABC", + receiving_employee: "ABC", + deposit: 200, + deposit_returned: 200, + last_update: 1614643200000, + remark: "" + }, + { + _id: "1a0fbb3dd-2bc5-5bc1-a0d7-c4b52c647f51", + rented_on: 1616112000000, + to_return_on: 1616716800000, + returned_on: 1616716800000, + extended_on: 0, + type: "rental", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2020/04/6114.jpg", + item_id: 1919, + item_name: "Dörr-Automat", + customer_id: 12, + customer_name: "Marushak", + passing_out_employee: "ABC", + receiving_employee: "ABC", + deposit: 15, + deposit_returned: 15, + last_update: 1614556800000, + remark: "" + }, + { + _id: "186be0416-7072-5a85-9dfe-0130104e6a69", + rented_on: 1614902400000, + to_return_on: 1616112000000, + returned_on: 1614902400000, + extended_on: 0, + type: "rental", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2020/05/814.jpg", + item_id: 830, + item_name: "Silikonspritze", + customer_id: 30, + customer_name: "Costanza", + passing_out_employee: "ABC", + receiving_employee: "", + deposit: 10, + deposit_returned: 0, + last_update: 1615161600000, + remark: "" + }, + { + _id: "1ae2f84f5-b6da-53fa-9d93-a87df897f288", + rented_on: 1615680000000, + to_return_on: 1617494400000, + returned_on: 0, + extended_on: 0, + type: "rental", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2020/11/5059.jpg", + item_id: 5059, + item_name: "Kabeltrommel", + customer_id: 83, + customer_name: "Bendare", + passing_out_employee: "ABC", + receiving_employee: "", + deposit: 50, + deposit_returned: 0, + last_update: 1614556800000, + remark: "" + }, + { + _id: "1e46579a9-e38f-5b61-96b1-56bb8be5245e", + rented_on: 1616198400000, + to_return_on: 1617408000000, + returned_on: 0, + extended_on: 0, + type: "rental", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2020/05/814.jpg", + item_id: 830, + item_name: "Silikonspritze", + customer_id: 70, + customer_name: "Maltby", + passing_out_employee: "ABC", + receiving_employee: "", + deposit: 15, + deposit_returned: 0, + last_update: 1614643200000, + remark: "" + }, + { + _id: "139276c9e-4e43-5cdb-8d59-53bdc7693d4b", + rented_on: 1615939200000, + to_return_on: 1617148800000, + returned_on: 1616544000000, + extended_on: 0, + type: "rental", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2020/05/814.jpg", + item_id: 830, + item_name: "Silikonspritze", + customer_id: 40, + customer_name: "Barbrick", + passing_out_employee: "ABC", + receiving_employee: "ABC", + deposit: 50, + deposit_returned: 50, + last_update: 1615420800000, + remark: "" + }, + { + _id: "130d1a185-69a7-50c9-a569-9c1011c01601", + rented_on: 1614729600000, + to_return_on: 1616544000000, + returned_on: 0, + extended_on: 0, + type: "rental", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2020/05/814.jpg", + item_id: 830, + item_name: "Silikonspritze", + customer_id: 30, + customer_name: "Costanza", + passing_out_employee: "ABC", + receiving_employee: "", + deposit: 15, + deposit_returned: 0, + last_update: 1616889600000, + remark: "" + }, + { + _id: "2c50348ec-7f21-5f8b-bd12-2e7ca54c880d", + rented_on: 1615680000000, + to_return_on: 1617494400000, + returned_on: 1616889600000, + extended_on: 0, + type: "rental", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2020/05/814.jpg", + item_id: 830, + item_name: "Silikonspritze", + customer_id: 25, + customer_name: "Kindred", + passing_out_employee: "ABC", + receiving_employee: "ABC", + deposit: 200, + deposit_returned: 200, + last_update: 1616371200000, + remark: "" + }, + { + _id: "20212d2c5-ece2-5e7b-9af9-5cc0a0e69251", + rented_on: 1616544000000, + to_return_on: 1617148800000, + returned_on: 1616544000000, + extended_on: 0, + type: "rental", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2020/02/15.jpg", + item_id: 15, + item_name: "Stichsäge", + customer_id: 29, + customer_name: "Clapperton", + passing_out_employee: "ABC", + receiving_employee: "ABC", + deposit: 15, + deposit_returned: 15, + last_update: 1616803200000, + remark: "" + }, + { + _id: "26c485a05-6497-5e8b-9f8a-6f2ae9ee6ca4", + rented_on: 1615593600000, + to_return_on: 1616803200000, + returned_on: 1616198400000, + extended_on: 0, + type: "rental", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2020/04/6114.jpg", + item_id: 1919, + item_name: "Dörr-Automat", + customer_id: 100, + customer_name: "Palluschek", + passing_out_employee: "ABC", + receiving_employee: "ABC", + deposit: 200, + deposit_returned: 200, + last_update: 1615420800000, + remark: "" + }, + { + _id: "263371cbe-c60d-51f9-9b33-0e106d885067", + rented_on: 1616889600000, + to_return_on: 1618099200000, + returned_on: 0, + extended_on: 0, + type: "rental", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2020/05/814.jpg", + item_id: 830, + item_name: "Silikonspritze", + customer_id: 60, + customer_name: "Cruft", + passing_out_employee: "ABC", + receiving_employee: "", + deposit: 200, + deposit_returned: 0, + last_update: 1615507200000, + remark: "" + }, + { + _id: "2061dfff1-c3f8-5939-8daa-8bad465c7910", + rented_on: 1616198400000, + to_return_on: 1618012800000, + returned_on: 0, + extended_on: 0, + type: "rental", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2020/11/5059.jpg", + item_id: 5059, + item_name: "Kabeltrommel", + customer_id: 16, + customer_name: "Lainge", + passing_out_employee: "ABC", + receiving_employee: "", + deposit: 10, + deposit_returned: 0, + last_update: 1615766400000, + remark: "" + }, + { + _id: "28db74051-3815-578a-9fdb-0b5a219ce617", + rented_on: 1616284800000, + to_return_on: 1617494400000, + returned_on: 0, + extended_on: 0, + type: "rental", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2020/05/814.jpg", + item_id: 830, + item_name: "Silikonspritze", + customer_id: 35, + customer_name: "Slym", + passing_out_employee: "ABC", + receiving_employee: "", + deposit: 50, + deposit_returned: 0, + last_update: 1614902400000, + remark: "" + }, + { + _id: "2f30623d8-9e70-54cc-a7f0-07d85a367ca3", + rented_on: 1615507200000, + to_return_on: 1616112000000, + returned_on: 1616112000000, + extended_on: 0, + type: "rental", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2019/03/715.jpg", + item_id: 715, + item_name: "Multi-Elektrosäge", + customer_id: 14, + customer_name: "Daville", + passing_out_employee: "ABC", + receiving_employee: "ABC", + deposit: 15, + deposit_returned: 15, + last_update: 1616371200000, + remark: "" + }, + { + _id: "21daa364b-01d2-51a1-9511-3d364f427cb5", + rented_on: 1616284800000, + to_return_on: 1616889600000, + returned_on: 0, + extended_on: 0, + type: "rental", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2019/04/5002.jpg", + item_id: 5002, + item_name: "Schraubenschlüssel", + customer_id: 73, + customer_name: "Kaley", + passing_out_employee: "ABC", + receiving_employee: "", + deposit: 200, + deposit_returned: 0, + last_update: 1615248000000, + remark: "" + }, + { + _id: "2079442f1-49ff-5b79-939a-b4fdeccdf2c8", + rented_on: 1616457600000, + to_return_on: 1618272000000, + returned_on: 1617667200000, + extended_on: 0, + type: "rental", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2020/05/814.jpg", + item_id: 830, + item_name: "Silikonspritze", + customer_id: 63, + customer_name: "Franz", + passing_out_employee: "ABC", + receiving_employee: "ABC", + deposit: 200, + deposit_returned: 200, + last_update: 1615593600000, + remark: "" + }, + { + _id: "251ba7d92-7ff9-5dfe-96aa-7bb1affaa612", + rented_on: 1615939200000, + to_return_on: 1617148800000, + returned_on: 0, + extended_on: 0, + type: "rental", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2019/03/715.jpg", + item_id: 715, + item_name: "Multi-Elektrosäge", + customer_id: 40, + customer_name: "Barbrick", + passing_out_employee: "ABC", + receiving_employee: "", + deposit: 50, + deposit_returned: 0, + last_update: 1615680000000, + remark: "" + }, + { + _id: "3d812c023-3e6d-573d-acf6-fe78d7e43be9", + rented_on: 1614556800000, + to_return_on: 1616371200000, + returned_on: 1615593600000, + extended_on: 0, + type: "rental", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2020/02/15.jpg", + item_id: 15, + item_name: "Stichsäge", + customer_id: 24, + customer_name: "Thomkins", + passing_out_employee: "ABC", + receiving_employee: "", + deposit: 200, + deposit_returned: 0, + last_update: 1615507200000, + remark: "" + }, + { + _id: "3063cdcd0-cdbb-57c9-9b4e-e1a6e69c071f", + rented_on: 1614988800000, + to_return_on: 1616198400000, + returned_on: 0, + extended_on: 0, + type: "rental", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2020/05/814.jpg", + item_id: 830, + item_name: "Silikonspritze", + customer_id: 4, + customer_name: "Luetkemeyers", + passing_out_employee: "ABC", + receiving_employee: "", + deposit: 50, + deposit_returned: 0, + last_update: 1615248000000, + remark: "" + }, + { + _id: "3665fdcb4-c9bf-56c3-9973-9f3d95c37539", + rented_on: 1614816000000, + to_return_on: 1616630400000, + returned_on: 1616025600000, + extended_on: 0, + type: "rental", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2020/11/5059.jpg", + item_id: 5059, + item_name: "Kabeltrommel", + customer_id: 32, + customer_name: "Cornwell", + passing_out_employee: "ABC", + receiving_employee: "ABC", + deposit: 50, + deposit_returned: 50, + last_update: 1614902400000, + remark: "" + }, + { + _id: "304b8f25d-583b-5e1b-9f01-0d1816f64104", + rented_on: 1614902400000, + to_return_on: 1615507200000, + returned_on: 1616112000000, + extended_on: 0, + type: "rental", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2020/05/814.jpg", + item_id: 830, + item_name: "Silikonspritze", + customer_id: 31, + customer_name: "Sunderland", + passing_out_employee: "ABC", + receiving_employee: "ABC", + deposit: 5, + deposit_returned: 5, + last_update: 1616025600000, + remark: "" + }, + { + _id: "32c13ed1a-1685-50fe-8048-e843ff7660d9", + rented_on: 1616112000000, + to_return_on: 1617926400000, + returned_on: 0, + extended_on: 0, + type: "rental", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2019/03/711.jpg", + item_id: 711, + item_name: "Küchenmaschine", + customer_id: 2, + customer_name: "Heaviside", + passing_out_employee: "ABC", + receiving_employee: "", + deposit: 10, + deposit_returned: 0, + last_update: 1616457600000, + remark: "" + }, + { + _id: "349f0e515-fcfc-51e6-ba2f-7c0be7c204f8", + rented_on: 1616457600000, + to_return_on: 1617667200000, + returned_on: 1617062400000, + extended_on: 0, + type: "rental", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2020/05/814.jpg", + item_id: 830, + item_name: "Silikonspritze", + customer_id: 90, + customer_name: "Frantsev", + passing_out_employee: "ABC", + receiving_employee: "ABC", + deposit: 50, + deposit_returned: 50, + last_update: 1616889600000, + remark: "" + }, + { + _id: "38efef905-baa6-5225-bbe6-3b8fd373bae4", + rented_on: 1615766400000, + to_return_on: 1616976000000, + returned_on: 1616371200000, + extended_on: 0, + type: "rental", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2019/03/715.jpg", + item_id: 715, + item_name: "Multi-Elektrosäge", + customer_id: 8, + customer_name: "Bursnell", + passing_out_employee: "ABC", + receiving_employee: "ABC", + deposit: 15, + deposit_returned: 15, + last_update: 1615248000000, + remark: "" + }, + { + _id: "38cbabea8-260c-5e22-a1d7-4610fce25000", + rented_on: 1615766400000, + to_return_on: 1617580800000, + returned_on: 1616976000000, + extended_on: 0, + type: "rental", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2019/04/5002.jpg", + item_id: 5002, + item_name: "Schraubenschlüssel", + customer_id: 73, + customer_name: "Kaley", + passing_out_employee: "ABC", + receiving_employee: "ABC", + deposit: 5, + deposit_returned: 5, + last_update: 1614643200000, + remark: "" + }, + { + _id: "3143c7af2-596b-52a5-a9d9-25bb1b362ded", + rented_on: 1615334400000, + to_return_on: 1617148800000, + returned_on: 0, + extended_on: 0, + type: "rental", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2020/05/814.jpg", + item_id: 830, + item_name: "Silikonspritze", + customer_id: 52, + customer_name: "Sames", + passing_out_employee: "ABC", + receiving_employee: "", + deposit: 15, + deposit_returned: 0, + last_update: 1616889600000, + remark: "" + }, + { + _id: "390880a08-9472-5153-8eee-2f5f78e17dbb", + rented_on: 1614816000000, + to_return_on: 1616025600000, + returned_on: 1615420800000, + extended_on: 0, + type: "rental", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2019/03/1506.jpg", + item_id: 1506, + item_name: "el. Kettensäge", + customer_id: 86, + customer_name: "McAnalley", + passing_out_employee: "ABC", + receiving_employee: "ABC", + deposit: 200, + deposit_returned: 200, + last_update: 1615075200000, + remark: "" + }, + { + _id: "4760a2462-feb1-5d67-ac74-8371ab5f7335", + rented_on: 1615680000000, + to_return_on: 1616889600000, + returned_on: 1616889600000, + extended_on: 0, + type: "rental", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2020/02/15.jpg", + item_id: 15, + item_name: "Stichsäge", + customer_id: 14, + customer_name: "Daville", + passing_out_employee: "ABC", + receiving_employee: "", + deposit: 10, + deposit_returned: 0, + last_update: 1615680000000, + remark: "" + }, + { + _id: "4f736ec44-a48e-5d11-b50a-5efb116dc92d", + rented_on: 1614643200000, + to_return_on: 1616457600000, + returned_on: 1615852800000, + extended_on: 0, + type: "rental", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2019/04/5002.jpg", + item_id: 5002, + item_name: "Schraubenschlüssel", + customer_id: 96, + customer_name: "Tilston", + passing_out_employee: "ABC", + receiving_employee: "ABC", + deposit: 10, + deposit_returned: 10, + last_update: 1615939200000, + remark: "" + }, + { + _id: "4ae073cb1-c6bb-50ecF-8020-d27f8f1f8d81", + rented_on: 1615334400000, + to_return_on: 1616544000000, + returned_on: 1616544000000, + extended_on: 0, + type: "rental", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2020/05/814.jpg", + item_id: 830, + item_name: "Silikonspritze", + customer_id: 24, + customer_name: "Thomkins", + passing_out_employee: "ABC", + receiving_employee: "", + deposit: 200, + deposit_returned: 0, + last_update: 1615507200000, + remark: "" + }, + { + _id: "429fa87f9-0998-53ef-a8d0-794fa13f6b04", + rented_on: 1615939200000, + to_return_on: 1616544000000, + returned_on: 1616544000000, + extended_on: 0, + type: "rental", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2019/04/5002.jpg", + item_id: 5002, + item_name: "Schraubenschlüssel", + customer_id: 44, + customer_name: "Glanester", + passing_out_employee: "ABC", + receiving_employee: "", + deposit: 200, + deposit_returned: 0, + last_update: 1616544000000, + remark: "" + }, + { + _id: "4cfe3e902-eef3-54cd-81b4-d0351af33277", + rented_on: 1616716800000, + to_return_on: 1617926400000, + returned_on: 1617321600000, + extended_on: 0, + type: "rental", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2020/05/814.jpg", + item_id: 830, + item_name: "Silikonspritze", + customer_id: 87, + customer_name: "MacDermid", + passing_out_employee: "ABC", + receiving_employee: "ABC", + deposit: 10, + deposit_returned: 10, + last_update: 1616889600000, + remark: "" + }, + { + _id: "45d2b85c7-0ef6-5244-9fea-f4acf8c5f31a", + rented_on: 1615680000000, + to_return_on: 1616284800000, + returned_on: 1615680000000, + extended_on: 0, + type: "rental", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2020/02/15.jpg", + item_id: 15, + item_name: "Stichsäge", + customer_id: 71, + customer_name: "Kendle", + passing_out_employee: "ABC", + receiving_employee: "ABC", + deposit: 5, + deposit_returned: 5, + last_update: 1615420800000, + remark: "" + }, + { + _id: "49dd0d6cb-57a8-5bea-b9fe-106b4bdb5063", + rented_on: 1615852800000, + to_return_on: 1617667200000, + returned_on: 1617062400000, + extended_on: 0, + type: "rental", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2020/05/814.jpg", + item_id: 830, + item_name: "Silikonspritze", + customer_id: 29, + customer_name: "Clapperton", + passing_out_employee: "ABC", + receiving_employee: "ABC", + deposit: 15, + deposit_returned: 15, + last_update: 1616544000000, + remark: "" + }, + { + _id: "4cb3881a6-f222-5991-9dbb-6d99898ecd8d", + rented_on: 1615939200000, + to_return_on: 1617753600000, + returned_on: 1617148800000, + extended_on: 0, + type: "rental", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2020/11/5059.jpg", + item_id: 5059, + item_name: "Kabeltrommel", + customer_id: 88, + customer_name: "Fumagall", + passing_out_employee: "ABC", + receiving_employee: "ABC", + deposit: 5, + deposit_returned: 5, + last_update: 1616025600000, + remark: "" + }, + { + _id: "47fc3174b-156b-5024-82d2-e40b789e68d0", + rented_on: 1616457600000, + to_return_on: 1617062400000, + returned_on: 0, + extended_on: 0, + type: "rental", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2020/05/814.jpg", + item_id: 830, + item_name: "Silikonspritze", + customer_id: 98, + customer_name: "Costen", + passing_out_employee: "ABC", + receiving_employee: "", + deposit: 10, + deposit_returned: 0, + last_update: 1615334400000, + remark: "" + }, + { + _id: "4c1116b7b-126c-5951-9575-87948e9b94a6", + rented_on: 1614729600000, + to_return_on: 1616544000000, + returned_on: 1615939200000, + extended_on: 0, + type: "rental", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2020/05/814.jpg", + item_id: 830, + item_name: "Silikonspritze", + customer_id: 84, + customer_name: "Taunton.", + passing_out_employee: "ABC", + receiving_employee: "ABC", + deposit: 50, + deposit_returned: 50, + last_update: 1614902400000, + remark: "" + }, + { + _id: "5fb2ddea3-f9b6-5a8e-b1bf-19edb3f757fe", + rented_on: 1614988800000, + to_return_on: 1616198400000, + returned_on: 1615593600000, + extended_on: 0, + type: "rental", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2020/05/814.jpg", + item_id: 830, + item_name: "Silikonspritze", + customer_id: 81, + customer_name: "Feeham", + passing_out_employee: "ABC", + receiving_employee: "ABC", + deposit: 15, + deposit_returned: 15, + last_update: 1614988800000, + remark: "" + }, + { + _id: "5b51c3d53-70a1-5589-a643-b443ae7a9f5e", + rented_on: 1615334400000, + to_return_on: 1616544000000, + returned_on: 1615939200000, + extended_on: 0, + type: "rental", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2019/03/715.jpg", + item_id: 715, + item_name: "Multi-Elektrosäge", + customer_id: 2, + customer_name: "Heaviside", + passing_out_employee: "ABC", + receiving_employee: "ABC", + deposit: 200, + deposit_returned: 200, + last_update: 1614816000000, + remark: "" + }, + { + _id: "5c12e98a2-04f3-5bea-b557-9fe66d138576", + rented_on: 1615939200000, + to_return_on: 1616544000000, + returned_on: 1615939200000, + extended_on: 0, + type: "rental", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2020/05/814.jpg", + item_id: 830, + item_name: "Silikonspritze", + customer_id: 39, + customer_name: "Broadbent", + passing_out_employee: "ABC", + receiving_employee: "ABC", + deposit: 50, + deposit_returned: 50, + last_update: 1615161600000, + remark: "" + }, + { + _id: "57248d749-bc1b-56e9-819f-9109aea6e170", + rented_on: 1615075200000, + to_return_on: 1616284800000, + returned_on: 0, + extended_on: 0, + type: "rental", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2020/04/6114.jpg", + item_id: 1919, + item_name: "Dörr-Automat", + customer_id: 55, + customer_name: "Gabby", + passing_out_employee: "ABC", + receiving_employee: "", + deposit: 10, + deposit_returned: 0, + last_update: 1616198400000, + remark: "" + }, + { + _id: "571427433-f108-5d53-ad02-8ddd02a960f8", + rented_on: 1616716800000, + to_return_on: 1617321600000, + returned_on: 0, + extended_on: 0, + type: "rental", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2020/11/5059.jpg", + item_id: 5059, + item_name: "Kabeltrommel", + customer_id: 65, + customer_name: "Mitchener", + passing_out_employee: "ABC", + receiving_employee: "", + deposit: 5, + deposit_returned: 0, + last_update: 1615593600000, + remark: "" + }, + { + _id: "58544e7d6-a578-5887-9729-2a72a9af07ea", + rented_on: 1616889600000, + to_return_on: 1617494400000, + returned_on: 1616889600000, + extended_on: 0, + type: "rental", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2020/05/814.jpg", + item_id: 830, + item_name: "Silikonspritze", + customer_id: 88, + customer_name: "Fumagall", + passing_out_employee: "ABC", + receiving_employee: "ABC", + deposit: 5, + deposit_returned: 5, + last_update: 1616630400000, + remark: "" + }, + { + _id: "5b7980e2e-963e-579e-9d17-bbc8e629218c", + rented_on: 1616457600000, + to_return_on: 1618272000000, + returned_on: 0, + extended_on: 0, + type: "rental", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2019/03/715.jpg", + item_id: 715, + item_name: "Multi-Elektrosäge", + customer_id: 38, + customer_name: "Tofful", + passing_out_employee: "ABC", + receiving_employee: "", + deposit: 200, + deposit_returned: 0, + last_update: 1615334400000, + remark: "" + }, + { + _id: "59ec36db2-15bd-5675-aaa0-d24826f38df2", + rented_on: 1614729600000, + to_return_on: 1615939200000, + returned_on: 1615334400000, + extended_on: 0, + type: "rental", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2020/02/15.jpg", + item_id: 15, + item_name: "Stichsäge", + customer_id: 78, + customer_name: "Camillo", + passing_out_employee: "ABC", + receiving_employee: "ABC", + deposit: 200, + deposit_returned: 200, + last_update: 1616803200000, + remark: "" + }, + { + _id: "5f05dd97b-d738-5a5c-9aa6-8254e39ec0c4", + rented_on: 1615593600000, + to_return_on: 1616803200000, + returned_on: 1615593600000, + extended_on: 0, + type: "rental", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2019/03/711.jpg", + item_id: 711, + item_name: "Küchenmaschine", + customer_id: 70, + customer_name: "Maltby", + passing_out_employee: "ABC", + receiving_employee: "", + deposit: 10, + deposit_returned: 0, + last_update: 1616803200000, + remark: "" + }, + { + _id: "5c03a11bd-b1d9-5fb3-8c45-44a941629b80", + rented_on: 1616630400000, + to_return_on: 1617235200000, + returned_on: 1616630400000, + extended_on: 0, + type: "rental", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2019/03/711.jpg", + item_id: 711, + item_name: "Küchenmaschine", + customer_id: 60, + customer_name: "Cruft", + passing_out_employee: "ABC", + receiving_employee: "ABC", + deposit: 50, + deposit_returned: 50, + last_update: 1615075200000, + remark: "" + }, + { + _id: "6d9ec58a9-744c-5b8d-b676-3a00f8baa34e", + rented_on: 1616803200000, + to_return_on: 1617408000000, + returned_on: 1616803200000, + extended_on: 0, + type: "rental", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2019/04/5004.jpg", + item_id: 5004, + item_name: "Hammer", + customer_id: 67, + customer_name: "Windridge", + passing_out_employee: "ABC", + receiving_employee: "ABC", + deposit: 200, + deposit_returned: 200, + last_update: 1615939200000, + remark: "" + }, + { + _id: "6f6f2a299-ca57-50b2-a1c9-7c696ea1c770", + rented_on: 1615852800000, + to_return_on: 1617667200000, + returned_on: 0, + extended_on: 0, + type: "rental", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2020/11/5059.jpg", + item_id: 5059, + item_name: "Kabeltrommel", + customer_id: 98, + customer_name: "Costen", + passing_out_employee: "ABC", + receiving_employee: "", + deposit: 15, + deposit_returned: 0, + last_update: 1614729600000, + remark: "" + }, + { + _id: "66339e2ec-bfb8-5cd2-b6c8-468398410b3b", + rented_on: 1615593600000, + to_return_on: 1616803200000, + returned_on: 1616803200000, + extended_on: 0, + type: "rental", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2019/03/711.jpg", + item_id: 711, + item_name: "Küchenmaschine", + customer_id: 51, + customer_name: "Crockett", + passing_out_employee: "ABC", + receiving_employee: "ABC", + deposit: 200, + deposit_returned: 200, + last_update: 1615507200000, + remark: "" + }, + { + _id: "6cc35223d-a21f-519d-8a9f-ea67d3df92a2", + rented_on: 1614816000000, + to_return_on: 1616025600000, + returned_on: 1615420800000, + extended_on: 0, + type: "rental", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2020/05/814.jpg", + item_id: 830, + item_name: "Silikonspritze", + customer_id: 54, + customer_name: "Quesne", + passing_out_employee: "ABC", + receiving_employee: "ABC", + deposit: 200, + deposit_returned: 200, + last_update: 1615507200000, + remark: "" + }, + { + _id: "6f6aaa958-44d3-5372-87d0-cac9e5da290b", + rented_on: 1616630400000, + to_return_on: 1617235200000, + returned_on: 0, + extended_on: 0, + type: "rental", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2020/11/5059.jpg", + item_id: 5059, + item_name: "Kabeltrommel", + customer_id: 60, + customer_name: "Cruft", + passing_out_employee: "ABC", + receiving_employee: "", + deposit: 50, + deposit_returned: 0, + last_update: 1614816000000, + remark: "" + }, + { + _id: "64b14492c-c9d6-5a92-bf1c-5acce7baebb3", + rented_on: 1616112000000, + to_return_on: 1617926400000, + returned_on: 0, + extended_on: 0, + type: "rental", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2020/11/5059.jpg", + item_id: 5059, + item_name: "Kabeltrommel", + customer_id: 10, + customer_name: "Maceur", + passing_out_employee: "ABC", + receiving_employee: "", + deposit: 5, + deposit_returned: 0, + last_update: 1615334400000, + remark: "" + }, + { + _id: "6f932675f-35a2-5645-a126-f798294ef141", + rented_on: 1615852800000, + to_return_on: 1617062400000, + returned_on: 1616457600000, + extended_on: 0, + type: "rental", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2020/05/814.jpg", + item_id: 830, + item_name: "Silikonspritze", + customer_id: 83, + customer_name: "Bendare", + passing_out_employee: "ABC", + receiving_employee: "ABC", + deposit: 200, + deposit_returned: 200, + last_update: 1614816000000, + remark: "" + }, + { + _id: "64a6bcd81-ef4b-53d0-8ccf-12867e8cca8d", + rented_on: 1615161600000, + to_return_on: 1616371200000, + returned_on: 1616371200000, + extended_on: 0, + type: "rental", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2019/03/715.jpg", + item_id: 715, + item_name: "Multi-Elektrosäge", + customer_id: 84, + customer_name: "Taunton.", + passing_out_employee: "ABC", + receiving_employee: "ABC", + deposit: 15, + deposit_returned: 15, + last_update: 1615939200000, + remark: "" + }, + { + _id: "60a09315e-4e3f-5244-bbb6-beab7389ccd6", + rented_on: 1615680000000, + to_return_on: 1616284800000, + returned_on: 1616284800000, + extended_on: 0, + type: "rental", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2020/11/5059.jpg", + item_id: 5059, + item_name: "Kabeltrommel", + customer_id: 97, + customer_name: "Beddin", + passing_out_employee: "ABC", + receiving_employee: "ABC", + deposit: 15, + deposit_returned: 15, + last_update: 1616284800000, + remark: "" + }, + { + _id: "62d65ad9e-bd4d-5200-89db-e52576328a8b", + rented_on: 1616025600000, + to_return_on: 1617235200000, + returned_on: 1616630400000, + extended_on: 0, + type: "rental", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2020/11/5059.jpg", + item_id: 5059, + item_name: "Kabeltrommel", + customer_id: 42, + customer_name: "Fieldgate", + passing_out_employee: "ABC", + receiving_employee: "ABC", + deposit: 200, + deposit_returned: 200, + last_update: 1615507200000, + remark: "" + }, + { + _id: "72437df33-6aad-5110-9402-184d3fc86c7e", + rented_on: 1614816000000, + to_return_on: 1615420800000, + returned_on: 1614816000000, + extended_on: 0, + type: "rental", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2019/03/711.jpg", + item_id: 711, + item_name: "Küchenmaschine", + customer_id: 75, + customer_name: "Curlis", + passing_out_employee: "ABC", + receiving_employee: "ABC", + deposit: 15, + deposit_returned: 15, + last_update: 1615334400000, + remark: "" + }, + { + _id: "766a2bb77-231c-5453-a4e6-8b35217e4d96", + rented_on: 1615507200000, + to_return_on: 1617321600000, + returned_on: 1616716800000, + extended_on: 0, + type: "rental", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2019/04/5004.jpg", + item_id: 5004, + item_name: "Hammer", + customer_id: 42, + customer_name: "Fieldgate", + passing_out_employee: "ABC", + receiving_employee: "ABC", + deposit: 15, + deposit_returned: 15, + last_update: 1616112000000, + remark: "" + }, + { + _id: "7910c99f0-a5e4-543c-816d-b00475c2483b", + rented_on: 1616198400000, + to_return_on: 1617408000000, + returned_on: 0, + extended_on: 0, + type: "rental", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2020/04/6114.jpg", + item_id: 1919, + item_name: "Dörr-Automat", + customer_id: 60, + customer_name: "Cruft", + passing_out_employee: "ABC", + receiving_employee: "", + deposit: 10, + deposit_returned: 0, + last_update: 1615766400000, + remark: "" + }, + { + _id: "759f2f761-f87e-5124-9a0e-21bc38fefd5c", + rented_on: 1614729600000, + to_return_on: 1615334400000, + returned_on: 1614729600000, + extended_on: 0, + type: "rental", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2019/03/715.jpg", + item_id: 715, + item_name: "Multi-Elektrosäge", + customer_id: 82, + customer_name: "Aliman", + passing_out_employee: "ABC", + receiving_employee: "ABC", + deposit: 5, + deposit_returned: 5, + last_update: 1615507200000, + remark: "" + }, + { + _id: "7ac326c89-6a24-58ae-85b1-d2fde7308f18", + rented_on: 1614643200000, + to_return_on: 1616457600000, + returned_on: 1615593600000, + extended_on: 0, + type: "rental", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2019/03/1506.jpg", + item_id: 1506, + item_name: "el. Kettensäge", + customer_id: 11, + customer_name: "Kubicek", + passing_out_employee: "ABC", + receiving_employee: "", + deposit: 5, + deposit_returned: 0, + last_update: 1615766400000, + remark: "" + }, + { + _id: "7875feb32-aec8-5ed4-ab7d-7ae2a44b146f", + rented_on: 1615507200000, + to_return_on: 1616716800000, + returned_on: 0, + extended_on: 0, + type: "rental", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2019/04/5004.jpg", + item_id: 5004, + item_name: "Hammer", + customer_id: 23, + customer_name: "Jiggins", + passing_out_employee: "ABC", + receiving_employee: "", + deposit: 50, + deposit_returned: 0, + last_update: 1616198400000, + remark: "" + }, + { + _id: "7c8594d62-c8f1-52eb-8a3c-0cd12a7c46f5", + rented_on: 1614729600000, + to_return_on: 1616544000000, + returned_on: 1615939200000, + extended_on: 0, + type: "rental", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2019/04/5002.jpg", + item_id: 5002, + item_name: "Schraubenschlüssel", + customer_id: 50, + customer_name: "Markussen", + passing_out_employee: "ABC", + receiving_employee: "ABC", + deposit: 10, + deposit_returned: 10, + last_update: 1616889600000, + remark: "" + }, + { + _id: "7e8bbb0c4-2e1b-59e0-8c22-4b15eabbf232", + rented_on: 1615334400000, + to_return_on: 1616544000000, + returned_on: 1615939200000, + extended_on: 0, + type: "rental", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2019/03/1506.jpg", + item_id: 1506, + item_name: "el. Kettensäge", + customer_id: 34, + customer_name: "Dalglish", + passing_out_employee: "ABC", + receiving_employee: "ABC", + deposit: 10, + deposit_returned: 10, + last_update: 1615852800000, + remark: "" + }, + { + _id: "7f33cb20c-e8b5-5b97-ade8-a9528efb7fe2", + rented_on: 1616630400000, + to_return_on: 1617235200000, + returned_on: 0, + extended_on: 0, + type: "rental", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2019/03/711.jpg", + item_id: 711, + item_name: "Küchenmaschine", + customer_id: 93, + customer_name: "Grise", + passing_out_employee: "ABC", + receiving_employee: "", + deposit: 50, + deposit_returned: 0, + last_update: 1615939200000, + remark: "" + }, + { + _id: "7085b2bed-980a-5b54-8368-48dc735afd79", + rented_on: 1616889600000, + to_return_on: 1618704000000, + returned_on: 1618099200000, + extended_on: 0, + type: "rental", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2019/04/5002.jpg", + item_id: 5002, + item_name: "Schraubenschlüssel", + customer_id: 32, + customer_name: "Cornwell", + passing_out_employee: "ABC", + receiving_employee: "ABC", + deposit: 5, + deposit_returned: 5, + last_update: 1614556800000, + remark: "" + }, + { + _id: "85caddd2f-76e2-52cc-bae3-4a5081037b81", + rented_on: 1615420800000, + to_return_on: 1616630400000, + returned_on: 0, + extended_on: 0, + type: "rental", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2019/03/715.jpg", + item_id: 715, + item_name: "Multi-Elektrosäge", + customer_id: 78, + customer_name: "Camillo", + passing_out_employee: "ABC", + receiving_employee: "", + deposit: 200, + deposit_returned: 0, + last_update: 1616284800000, + remark: "" + }, + { + _id: "84b2db8e8-09cd-5c46-9f78-19b9d85f4097", + rented_on: 1615420800000, + to_return_on: 1617235200000, + returned_on: 0, + extended_on: 0, + type: "rental", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2020/04/6114.jpg", + item_id: 1919, + item_name: "Dörr-Automat", + customer_id: 33, + customer_name: "Phifer", + passing_out_employee: "ABC", + receiving_employee: "", + deposit: 5, + deposit_returned: 0, + last_update: 1615334400000, + remark: "" + }, + { + _id: "88949f181-e8a8-5b11-b2a1-aa7234106e71", + rented_on: 1614816000000, + to_return_on: 1616025600000, + returned_on: 1616630400000, + extended_on: 0, + type: "rental", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2020/02/15.jpg", + item_id: 15, + item_name: "Stichsäge", + customer_id: 67, + customer_name: "Windridge", + passing_out_employee: "ABC", + receiving_employee: "ABC", + deposit: 50, + deposit_returned: 50, + last_update: 1616889600000, + remark: "" + }, + { + _id: "83714553a-e203-55ff-90d3-41d6f478bcee", + rented_on: 1614988800000, + to_return_on: 1615593600000, + returned_on: 1615593600000, + extended_on: 0, + type: "rental", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2020/05/814.jpg", + item_id: 830, + item_name: "Silikonspritze", + customer_id: 2, + customer_name: "Heaviside", + passing_out_employee: "ABC", + receiving_employee: "ABC", + deposit: 50, + deposit_returned: 50, + last_update: 1616284800000, + remark: "" + }, + { + _id: "89c97bb5a-eeef-52a0-a45d-25a669e7369c", + rented_on: 1614816000000, + to_return_on: 1615420800000, + returned_on: 1616025600000, + extended_on: 0, + type: "rental", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2020/11/5059.jpg", + item_id: 5059, + item_name: "Kabeltrommel", + customer_id: 51, + customer_name: "Crockett", + passing_out_employee: "ABC", + receiving_employee: "ABC", + deposit: 200, + deposit_returned: 200, + last_update: 1616630400000, + remark: "" + }, + { + _id: "8b3469f5c-b07f-5823-bf74-25c62020ec50", + rented_on: 1616457600000, + to_return_on: 1617667200000, + returned_on: 1617062400000, + extended_on: 0, + type: "rental", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2020/02/15.jpg", + item_id: 15, + item_name: "Stichsäge", + customer_id: 85, + customer_name: "McCoish", + passing_out_employee: "ABC", + receiving_employee: "ABC", + deposit: 10, + deposit_returned: 10, + last_update: 1615075200000, + remark: "" + }, + { + _id: "849dd59fc-b72d-501b-b162-e4b4289539b7", + rented_on: 1614729600000, + to_return_on: 1615334400000, + returned_on: 1615334400000, + extended_on: 0, + type: "rental", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2020/02/15.jpg", + item_id: 15, + item_name: "Stichsäge", + customer_id: 84, + customer_name: "Taunton.", + passing_out_employee: "ABC", + receiving_employee: "ABC", + deposit: 5, + deposit_returned: 5, + last_update: 1614556800000, + remark: "" + }, + { + _id: "8b676f1ce-5e6d-5c43-bcf5-ff9e344f746b", + rented_on: 1615507200000, + to_return_on: 1616112000000, + returned_on: 1615507200000, + extended_on: 0, + type: "rental", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2020/05/814.jpg", + item_id: 830, + item_name: "Silikonspritze", + customer_id: 55, + customer_name: "Gabby", + passing_out_employee: "ABC", + receiving_employee: "ABC", + deposit: 10, + deposit_returned: 10, + last_update: 1616198400000, + remark: "" + }, + { + _id: "83bfa8f4d-5654-5a72-b1a9-b2fc5ca0d26c", + rented_on: 1616371200000, + to_return_on: 1618185600000, + returned_on: 1617580800000, + extended_on: 0, + type: "rental", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2020/05/814.jpg", + item_id: 830, + item_name: "Silikonspritze", + customer_id: 61, + customer_name: "Attyeo", + passing_out_employee: "ABC", + receiving_employee: "ABC", + deposit: 10, + deposit_returned: 10, + last_update: 1615852800000, + remark: "" + }, + { + _id: "8742dafcc-9ad1-50f8-b644-454a551574c0", + rented_on: 1615766400000, + to_return_on: 1617580800000, + returned_on: 1616976000000, + extended_on: 0, + type: "rental", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2019/04/5002.jpg", + item_id: 5002, + item_name: "Schraubenschlüssel", + customer_id: 6, + customer_name: "Sheilds", + passing_out_employee: "ABC", + receiving_employee: "ABC", + deposit: 5, + deposit_returned: 5, + last_update: 1614902400000, + remark: "" + }, + { + _id: "97aea42e4-0d90-545b-be80-684ca1d96501", + rented_on: 1616198400000, + to_return_on: 1616803200000, + returned_on: 0, + extended_on: 0, + type: "rental", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2020/05/814.jpg", + item_id: 830, + item_name: "Silikonspritze", + customer_id: 99, + customer_name: "Fallis", + passing_out_employee: "ABC", + receiving_employee: "", + deposit: 15, + deposit_returned: 0, + last_update: 1614729600000, + remark: "" + }, + { + _id: "9229dcb25-1481-52e9-889f-6e7f1af2ff6d", + rented_on: 1615420800000, + to_return_on: 1617235200000, + returned_on: 1616630400000, + extended_on: 0, + type: "rental", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2020/05/814.jpg", + item_id: 830, + item_name: "Silikonspritze", + customer_id: 10, + customer_name: "Maceur", + passing_out_employee: "ABC", + receiving_employee: "ABC", + deposit: 200, + deposit_returned: 200, + last_update: 1614902400000, + remark: "" + }, + { + _id: "993e1c6a4-e049-5682-ac08-f839ee5eaeee", + rented_on: 1615766400000, + to_return_on: 1616371200000, + returned_on: 1616371200000, + extended_on: 0, + type: "rental", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2020/11/5059.jpg", + item_id: 5059, + item_name: "Kabeltrommel", + customer_id: 23, + customer_name: "Jiggins", + passing_out_employee: "ABC", + receiving_employee: "ABC", + deposit: 5, + deposit_returned: 5, + last_update: 1616544000000, + remark: "" + }, + { + _id: "9a86f6124-9667-5f68-94c0-93b82d4cac18", + rented_on: 1616544000000, + to_return_on: 1618358400000, + returned_on: 1617753600000, + extended_on: 0, + type: "rental", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2020/05/814.jpg", + item_id: 830, + item_name: "Silikonspritze", + customer_id: 32, + customer_name: "Cornwell", + passing_out_employee: "ABC", + receiving_employee: "ABC", + deposit: 5, + deposit_returned: 5, + last_update: 1615248000000, + remark: "" + }, + { + _id: "989020351-67c5-5a3e-84e4-86d4b6de4255", + rented_on: 1616889600000, + to_return_on: 1617494400000, + returned_on: 1616889600000, + extended_on: 0, + type: "rental", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2019/10/2906.jpg", + item_id: 2906, + item_name: "Bohrmaschine", + customer_id: 95, + customer_name: "Govan", + passing_out_employee: "ABC", + receiving_employee: "ABC", + deposit: 5, + deposit_returned: 5, + last_update: 1615766400000, + remark: "" + }, + { + _id: "9d43739ce-6644-5e5b-bedf-d81225a4d2aa", + rented_on: 1616803200000, + to_return_on: 1617408000000, + returned_on: 1616803200000, + extended_on: 0, + type: "rental", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2020/05/814.jpg", + item_id: 830, + item_name: "Silikonspritze", + customer_id: 40, + customer_name: "Barbrick", + passing_out_employee: "ABC", + receiving_employee: "ABC", + deposit: 200, + deposit_returned: 200, + last_update: 1614729600000, + remark: "" + }, + { + _id: "9245b89ca-a593-5b1a-a865-7d3b9101e934", + rented_on: 1616371200000, + to_return_on: 1618185600000, + returned_on: 1617580800000, + extended_on: 0, + type: "rental", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2019/03/715.jpg", + item_id: 715, + item_name: "Multi-Elektrosäge", + customer_id: 86, + customer_name: "McAnalley", + passing_out_employee: "ABC", + receiving_employee: "ABC", + deposit: 5, + deposit_returned: 5, + last_update: 1616457600000, + remark: "" + }, + { + _id: "97c59fc88-a15e-5f75-ac5e-faac5f93052e", + rented_on: 1615161600000, + to_return_on: 1616976000000, + returned_on: 1616371200000, + extended_on: 0, + type: "rental", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2019/03/715.jpg", + item_id: 715, + item_name: "Multi-Elektrosäge", + customer_id: 95, + customer_name: "Govan", + passing_out_employee: "ABC", + receiving_employee: "ABC", + deposit: 10, + deposit_returned: 10, + last_update: 1616544000000, + remark: "" + }, + { + _id: "9b8da7a1b-4d1a-5f39-ad30-c1fe61fd0396", + rented_on: 1615161600000, + to_return_on: 1615766400000, + returned_on: 1616889600000, + extended_on: 0, + type: "rental", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2019/04/5002.jpg", + item_id: 5002, + item_name: "Schraubenschlüssel", + customer_id: 90, + customer_name: "Frantsev", + passing_out_employee: "ABC", + receiving_employee: "", + deposit: 200, + deposit_returned: 0, + last_update: 1616716800000, + remark: "" + }, + { + _id: "9c946e17a-baee-5dd0-bdf7-caedd6f86bc4", + rented_on: 1615334400000, + to_return_on: 1617148800000, + returned_on: 0, + extended_on: 0, + type: "rental", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2020/05/814.jpg", + item_id: 830, + item_name: "Silikonspritze", + customer_id: 100, + customer_name: "Palluschek", + passing_out_employee: "ABC", + receiving_employee: "", + deposit: 200, + deposit_returned: 0, + last_update: 1614556800000, + remark: "" + }, + { + _id: "1053f48fbb-5c1f-505b-8a02-be7463d9edb2", + rented_on: 1616803200000, + to_return_on: 1617408000000, + returned_on: 1616803200000, + extended_on: 0, + type: "rental", + image: "https://www.buergerstiftung-karlsruhe.de/wp-content/uploads/2019/04/5004.jpg", + item_id: 5004, + item_name: "Hammer", + customer_id: 77, + customer_name: "Spare", + passing_out_employee: "ABC", + receiving_employee: "ABC", + deposit: 50, + deposit_returned: 50, + last_update: 1615766400000, + remark: "" + } + ]; + var testdata = { + docs: docs + }; + + class SelectorBuilder { + constructor() { + this.selectors = []; + this.currentFieldName = ""; + } + + regexIgnoreCaseAndDiactricis(content) { + // returns a regex with content that has diacricits ignored + let accentGroups = [ + "aâãäåæ", + "eéèêë", + "iíìîï", + "oóòôõöø", + "uúùûü", + "cç", + "nñ", + "yýÿ", + ]; + + let regex = content; + let accentGroup; + let accent; + for (accentGroup of accentGroups) { + for (accent of accentGroup) { + if (content.includes(accent)) { + regex = regex.replace(accent, `[${accentGroup}]`); + } + } + } + return "(?i)" + regex; + } + + regexIgnoreCase(content) { + return "(?i)" + content; + } + + withField(fieldName) { + this.currentFieldName = fieldName; + return this; + } + + withDocType(docType) { + this.selectors.push({ + type: { + $eq: docType, + }, + }); + return this; + } + + containsIgnoreCase(value) { + this.selectors.push({ + [this.currentFieldName]: { + $regex: this.regexIgnoreCase(value), + }, + }); + return this; + } + + startsWithIgnoreCaseAndDiacritics(value) { + this.selectors.push({ + [this.currentFieldName]: { + $regex: this.regexIgnoreCaseAndDiactricis("^" + value), + }, + }); + return this; + } + + startsWithIgnoreCase(value) { + this.selectors.push({ + [this.currentFieldName]: { + $regex: this.regexIgnoreCase("^" + value), + }, + }); + return this; + } + + startsWithIgnoreCaseAndLeadingZeros(value) { + this.selectors.push({ + [this.currentFieldName]: { + $regex: this.regexIgnoreCase("^(0+)?" + value), + }, + }); + return this; + } + + numericFieldStartsWith(value) { + value = parseInt(value); + if (value === 0) return this; + + // e.g. 12 => 120 - 129, 1200 - 1299 + const selectorsForNumbersStartingWith = (factor = 10, selectors = []) => { + selectors.push({ + $and: [ + { + [this.currentFieldName]: { + $gte: value * factor, + }, + }, + { + [this.currentFieldName]: { + $lt: value * factor + factor, + }, + }, + ], + }); + if (value * factor * 10 > 10000) { + return selectors; + } else { + return selectorsForNumbersStartingWith(factor * 10, selectors); + } + }; + this.selectors.push({ + $or: [ + { + [this.currentFieldName]: { + $eq: value, + }, + }, + ...selectorsForNumbersStartingWith(), + ], + }); + return this; + } + + equals(value) { + this.selectors.push({ + [this.currentFieldName]: { + $eq: value, + }, + }); + return this; + } + + isNotEqualTo(value) { + this.selectors.push({ + [this.currentFieldName]: { + $ne: value, + }, + }); + return this; + } + + greaterThan(value) { + this.selectors.push({ + [this.currentFieldName]: { + $gt: value, + }, + }); + return this; + } + + withAny(anySelectors) { + this.selectors.push({ + $or: anySelectors, + }); + return this; + } + + searchTerm(searchTerm, columns) { + const formattedSearchTerm = searchTerm.toLowerCase(); + const searchTermWords = formattedSearchTerm + .split(" ") + .map((searchTerm) => searchTerm.trim()) + .filter((searchTerm) => searchTerm !== ""); + + // e.g. 12 => 120 - 129, 1200 - 1299 + const selectorsForNumbersStartingWith = ( + searchWord, + column, + factor = 10, + selectors = [] + ) => { + const number = Math.abs(parseInt(searchWord, 10)); + if (number === 0) { + // 000 -> 0001 - 0009 + // 00 -> 0010 - 0099 + // 0 -> 0001 - 0009 + return [ + { + $and: [ + { + [column.key]: { + $gte: 1000 / Math.pow(10, searchWord.length), + }, + }, + { + [column.key]: { + $lt: 1000 / Math.pow(10, searchWord.length - 1), + }, + }, + ], + }, + ]; + } else { + selectors.push({ + $and: [ + { + [column.key]: { + $gte: number * factor, + }, + }, + { + [column.key]: { + $lt: number * factor + factor, + }, + }, + ], + }); + } + if (number * factor * 10 > 10000) { + return selectors; + } else { + return selectorsForNumbersStartingWith( + searchWord, + column, + factor * 10, + selectors + ); + } + }; + + const selectorsForSearchWord = (searchWord) => { + if (!isNaN(searchWord)) { + // is number + let selectors = []; + columnsToSearch(true).forEach((column) => { + selectors.push({ + [column.key]: { + $eq: parseInt(searchWord, 10), + }, + }); + selectors = [ + ...selectors, + ...selectorsForNumbersStartingWith(searchWord, column), + ]; + }); + return selectors; + } else { + // is not a number + return columnsToSearch(false).map((column) => ({ + [column.key]: { + $regex: + "(?i)" + + (column?.search === "from_beginning" ? "^(0+?)?" : "") + + searchWord, + }, + })); + } + }; + + const columnsToSearch = (numericSearchTerm = false) => + columns + .filter( + (column) => + (!numericSearchTerm && !column.numeric) || + (numericSearchTerm && column.numeric) + ) + .filter((column) => !column.search || column.search !== "exclude"); + + this.selectors = [ + { + $and: searchTermWords.map((searchTermWord) => ({ + $or: selectorsForSearchWord(searchTermWord), + })), + }, + ]; + return this; + } + + build() { + if (this.selectors.length == 1) { + return this.selectors[0]; + } else { + return { + $and: this.selectors, + }; + } + } + + buildSelectors() { + return this.selectors; + } + } + + class MockDatabase { + onConnectedCallback; + constructor() { + this.data = testdata.docs; + this.writeData(this.data); + } + + onConnected(onConnectedCallback) { + this.onConnectedCallback = onConnectedCallback; + } + + async connect() { + if (this.onConnectedCallback) this.onConnectedCallback(); + } + + matchesSelector(doc, selector) { + for (const [selectorKey, selectorObj] of Object.entries(selector)) { + if (!selector.hasOwnProperty(selectorKey)) { + continue; + } + if (selectorKey === "$or") { + return selectorObj.some((innerSelector) => + this.matchesSelector(doc, innerSelector) + ); + } else if (selectorKey === "$and") { + return selectorObj.every((innerSelector) => + this.matchesSelector(doc, innerSelector) + ); + } else { + let comparator = Object.keys(selectorObj)[0]; + let value = doc[selectorKey]; + let compareToValue = selectorObj[comparator]; + + if (comparator === "$eq") { + return value === compareToValue; + } else if (comparator === "$ne") { + return value !== compareToValue; + } else if (comparator === "$gte") { + return value >= compareToValue; + } else if (comparator === "$gt") { + return value > compareToValue; + } else if (comparator === "$lte") { + return value <= compareToValue; + } else if (comparator === "$lt") { + return value < compareToValue; + } else if (comparator === "$exists") { + return (typeof value !== "undefined") === compareToValue; + } else if (comparator === "$regex") { + if (compareToValue.startsWith("(?i)")) { + compareToValue = new RegExp( + compareToValue.replaceAll("(?i)", ""), + "i" + ); + } + return value && value.match(compareToValue); + } else { + console.warn("unknown comparator: " + comparator); + return false; + } + } + } + } + + async itemWithIdExists(id) { + let docs = this.getData().filter( + (doc) => doc.type === "item" && doc.id === id + ); + return docs.length > 0; + } + + async fetchRentalByItemAndCustomerIds(itemId, customerId) { + let docs = this.getData().filter( + (doc) => + doc.type === "rental" && + doc.item_id === itemId && + doc.customer_id === customerId + ); + return docs.length > 0 ? docs[0] : {}; + } + + async query(options) { + let { + filters, + sortBy, + sortReverse, + rowsPerPage, + currentPage, + searchTerm, + docType, + columns, + } = options; + + let selectors = filters.flatMap((filter) => filter.selectors); + selectors.push({ + type: { + $eq: docType, + }, + }); + + // filter + let dataMatchingFilter = this.getData().filter((doc) => + this.matchesSelector(doc, { $and: selectors }) + ); + searchTerm = searchTerm.trim().toLowerCase(); + if (searchTerm.length > 0) { + dataMatchingFilter = dataMatchingFilter.filter((doc) => + searchTerm.split(" ").every((searchWord) => + Object.entries(doc) + .filter(([key, value]) => columns.find((col) => col.key === key)) + .filter( + ([key, value]) => + columns.find((col) => col.key === key).search !== "exclude" + ) + .filter( + ([key, value]) => + (columns.find((col) => col.key === key).numeric && + !isNaN(searchWord)) || + (!columns.find((col) => col.key === key).numeric && + isNaN(searchWord)) + ) + .some(([key, value]) => + String(doc[key]).toLowerCase().includes(searchWord) + ) + ) + ); + } + + // sort + let sortedData = dataMatchingFilter.sort(function (a, b) { + let i = 0; + let result = 0; + while (i < sortBy.length && result === 0) { + result = + a[sortBy[i]] < b[sortBy[i]] + ? -1 + : a[sortBy[i]] > b[sortBy[i]] + ? 1 + : 0; + i++; + } + if (sortReverse) { + result *= -1; + } + return result; + }); + + // paginate + let paginatedData = sortedData.slice( + rowsPerPage * currentPage, + rowsPerPage * currentPage + rowsPerPage + ); + + return { + docs: paginatedData, + count: Promise.resolve(dataMatchingFilter.length), + }; + } + + cancelListenerForDocType(docType) {} + + async listenForChanges(onDocsChanged, docType) {} + + async updateDoc(updatedDoc) { + await this.removeDoc(updatedDoc); + return await this.createDoc(updatedDoc); + } + + async removeDoc(docToRemove) { + this.writeData(this.getData().filter((doc) => doc._id !== docToRemove._id)); + } + + async createDoc(doc) { + const makeId = () => { + var result = ""; + var characters = + "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"; + var charactersLength = characters.length; + for (var i = 0; i < 10; i++) { + result += characters.charAt( + Math.floor(Math.random() * charactersLength) + ); + } + return result; + }; + + if (!doc.hasOwnProperty("_id")) { + doc["_id"] = makeId(); + doc["_rev"] = makeId(); + } + this.writeData([...this.getData(), doc]); + return doc; + } + + async createIndex(index) {} + + async nextUnusedId(docType) { + let usedIds = this.getData() + .filter((doc) => doc.type === docType) + .map((doc) => doc.id); + return Math.max(...usedIds) + 1; + } + + async findCached(options) { + return this.fetchAllDocsBySelector(options.selector, options.fields).then( + (docs) => ({ + docs, + }) + ); + } + + async fetchDocsBySelector(selector, fields) { + return this.getData() + .filter((doc) => this.matchesSelector(doc, selector)) + .map((doc) => { + if (fields) { + let docWithFields = {}; + fields.forEach((field) => (docWithFields[field] = doc[field])); + return docWithFields; + } else { + return doc; + } + }); + } + + async fetchUniqueCustomerFieldValues(field, startsWith, isNumeric = false) { + let customers = this.getData().filter( + (doc) => + doc.type === "customer" && + doc[field] && + String(doc[field]).startsWith(String(startsWith)) + ); + const uniqueValues = new Set(); + customers.forEach((customer) => { + uniqueValues.add(customer[field]); + }); + return Array.from(uniqueValues).map((uniqueValue) => ({ + [field]: uniqueValue, + })); + } + + fetchByType(type) { + return this.fetchDocsBySelector( + this.selectorBuilder().withDocType(type).build(), + ["_id"] + ); + } + + fetchByIdAndType(id, type) { + return this.fetchDocsBySelector( + this.selectorBuilder() + .withDocType(type) + .withField("id") + .equals(parseInt(id)) + .build(), + ["_id"] + ); + } + + fetchAllDocsBySelector(selector, fields) { + return this.fetchDocsBySelector(selector, fields); + } + + getData() { + if (localStorage.hasOwnProperty("data")) { + return JSON.parse(localStorage.getItem("data")); + } else { + return []; + } + } + + fetchAll() { + return this.getData(); + } + + writeData(data) { + localStorage.setItem("data", JSON.stringify(data)); + } + + selectorBuilder() { + return new SelectorBuilder(); + } + } + + var Database$2 = new MockDatabase(); + + function saveParseTimestampToString(millis) { + const date = new Date(millis); + if (isNaN(date) || date.getTime() === 0) return ""; + else + return `${String(date.getDate()).padStart(2, 0)}.${String( + date.getMonth() + 1 + ).padStart(2, 0)}.${date.getFullYear()}`; + } + + function saveParseTimestampToHumanReadableString(millis) { + const date = new Date(millis); + let dayDiff = daysBetween(millis, millisAtStartOfToday()); + + if (isNaN(date) || date.getTime() === 0) return ""; + else if (dayDiff >= -2 && dayDiff <= 2) { + switch (dayDiff) { + case -2: + return "Vorgestern"; + case -1: + return "Gestern"; + case 0: + return "Heute"; + case 1: + return "Morgen"; + case 2: + return "Übermorgen"; + } + } else if (dayDiff >= -7 && dayDiff < 0) { + return `Vor ${Math.abs(dayDiff)} Tagen`; + } else if (dayDiff <= 7 && dayDiff > 0) { + return `In ${dayDiff} Tagen`; + } else + return `${String(date.getDate()).padStart(2, 0)}.${String( + date.getMonth() + 1 + ).padStart(2, 0)}.${date.getFullYear()}`; + } + + function saveParseStringToBoolean(maybeBoolean) { + return ["true", "ja"].includes(String(maybeBoolean).toLowerCase()); + } + + function millisAtStartOfDay(millis) { + var msPerDay = 86400 * 1000; + return millis - (millis % msPerDay); + } + + function millisAtStartOfToday() { + return millisAtStartOfDay(new Date().getTime()); + } + + function daysBetween(date1, date2) { + // The number of milliseconds in one day + const ONE_DAY = 1000 * 60 * 60 * 24; + // Calculate the difference in milliseconds + const differenceMs = date1 - date2; + // Convert back to days and return + return Math.round(differenceMs / ONE_DAY); + } + + var global$1 = (typeof global !== "undefined" ? global : + typeof self !== "undefined" ? self : + typeof window !== "undefined" ? window : {}); + + // shim for using process in browser + // based off https://github.com/defunctzombie/node-process/blob/master/browser.js + + function defaultSetTimout() { + throw new Error('setTimeout has not been defined'); + } + function defaultClearTimeout () { + throw new Error('clearTimeout has not been defined'); + } + var cachedSetTimeout = defaultSetTimout; + var cachedClearTimeout = defaultClearTimeout; + if (typeof global$1.setTimeout === 'function') { + cachedSetTimeout = setTimeout; + } + if (typeof global$1.clearTimeout === 'function') { + cachedClearTimeout = clearTimeout; + } + + function runTimeout(fun) { + if (cachedSetTimeout === setTimeout) { + //normal enviroments in sane situations + return setTimeout(fun, 0); + } + // if setTimeout wasn't available but was latter defined + if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) { + cachedSetTimeout = setTimeout; + return setTimeout(fun, 0); + } + try { + // when when somebody has screwed with setTimeout but no I.E. maddness + return cachedSetTimeout(fun, 0); + } catch(e){ + try { + // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally + return cachedSetTimeout.call(null, fun, 0); + } catch(e){ + // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error + return cachedSetTimeout.call(this, fun, 0); + } + } + + + } + function runClearTimeout(marker) { + if (cachedClearTimeout === clearTimeout) { + //normal enviroments in sane situations + return clearTimeout(marker); + } + // if clearTimeout wasn't available but was latter defined + if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) { + cachedClearTimeout = clearTimeout; + return clearTimeout(marker); + } + try { + // when when somebody has screwed with setTimeout but no I.E. maddness + return cachedClearTimeout(marker); + } catch (e){ + try { + // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally + return cachedClearTimeout.call(null, marker); + } catch (e){ + // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error. + // Some versions of I.E. have different rules for clearTimeout vs setTimeout + return cachedClearTimeout.call(this, marker); + } + } + + + + } + var queue$2 = []; + var draining$1 = false; + var currentQueue$1; + var queueIndex$1 = -1; + + function cleanUpNextTick$1() { + if (!draining$1 || !currentQueue$1) { + return; + } + draining$1 = false; + if (currentQueue$1.length) { + queue$2 = currentQueue$1.concat(queue$2); + } else { + queueIndex$1 = -1; + } + if (queue$2.length) { + drainQueue(); + } + } + + function drainQueue() { + if (draining$1) { + return; + } + var timeout = runTimeout(cleanUpNextTick$1); + draining$1 = true; + + var len = queue$2.length; + while(len) { + currentQueue$1 = queue$2; + queue$2 = []; + while (++queueIndex$1 < len) { + if (currentQueue$1) { + currentQueue$1[queueIndex$1].run(); + } + } + queueIndex$1 = -1; + len = queue$2.length; + } + currentQueue$1 = null; + draining$1 = false; + runClearTimeout(timeout); + } + function nextTick$1(fun) { + var args = new Array(arguments.length - 1); + if (arguments.length > 1) { + for (var i = 1; i < arguments.length; i++) { + args[i - 1] = arguments[i]; + } + } + queue$2.push(new Item$2(fun, args)); + if (queue$2.length === 1 && !draining$1) { + runTimeout(drainQueue); + } + } + // v8 likes predictible objects + function Item$2(fun, array) { + this.fun = fun; + this.array = array; + } + Item$2.prototype.run = function () { + this.fun.apply(null, this.array); + }; + var title = 'browser'; + var platform = 'browser'; + var browser = true; + var env = {}; + var argv = []; + var version$2 = ''; // empty string to avoid regexp issues + var versions = {}; + var release = {}; + var config$1 = {}; + + function noop$1() {} + + var on = noop$1; + var addListener$1 = noop$1; + var once$3 = noop$1; + var off = noop$1; + var removeListener$1 = noop$1; + var removeAllListeners = noop$1; + var emit = noop$1; + + function binding(name) { + throw new Error('process.binding is not supported'); + } + + function cwd () { return '/' } + function chdir (dir) { + throw new Error('process.chdir is not supported'); + }function umask() { return 0; } + + // from https://github.com/kumavis/browser-process-hrtime/blob/master/index.js + var performance$1 = global$1.performance || {}; + var performanceNow = + performance$1.now || + performance$1.mozNow || + performance$1.msNow || + performance$1.oNow || + performance$1.webkitNow || + function(){ return (new Date()).getTime() }; + + // generate timestamp or delta + // see http://nodejs.org/api/process.html#process_process_hrtime + function hrtime(previousTimestamp){ + var clocktime = performanceNow.call(performance$1)*1e-3; + var seconds = Math.floor(clocktime); + var nanoseconds = Math.floor((clocktime%1)*1e9); + if (previousTimestamp) { + seconds = seconds - previousTimestamp[0]; + nanoseconds = nanoseconds - previousTimestamp[1]; + if (nanoseconds<0) { + seconds--; + nanoseconds += 1e9; + } + } + return [seconds,nanoseconds] + } + + var startTime = new Date(); + function uptime() { + var currentTime = new Date(); + var dif = currentTime - startTime; + return dif / 1000; + } + + var browser$1 = { + nextTick: nextTick$1, + title: title, + browser: browser, + env: env, + argv: argv, + version: version$2, + versions: versions, + on: on, + addListener: addListener$1, + once: once$3, + off: off, + removeListener: removeListener$1, + removeAllListeners: removeAllListeners, + emit: emit, + binding: binding, + cwd: cwd, + chdir: chdir, + umask: umask, + hrtime: hrtime, + platform: platform, + release: release, + config: config$1, + uptime: uptime + }; + + var process = browser$1; + + var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {}; + + function getDefaultExportFromCjs (x) { + return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x; + } + + function getAugmentedNamespace(n) { + if (n.__esModule) return n; + var a = Object.defineProperty({}, '__esModule', {value: true}); + Object.keys(n).forEach(function (k) { + var d = Object.getOwnPropertyDescriptor(n, k); + Object.defineProperty(a, k, d.get ? d : { + enumerable: true, + get: function () { + return n[k]; + } + }); + }); + return a; + } + + var _nodeResolve_empty = {}; + + var _nodeResolve_empty$1 = /*#__PURE__*/Object.freeze({ + __proto__: null, + 'default': _nodeResolve_empty + }); + + var require$$0 = /*@__PURE__*/getAugmentedNamespace(_nodeResolve_empty$1); + + var queueMicrotask = {}; + + queueMicrotask.test = function () { + return typeof commonjsGlobal.queueMicrotask === 'function'; + }; + + queueMicrotask.install = function (func) { + return function () { + commonjsGlobal.queueMicrotask(func); + }; + }; + + var mutation = {}; + + //based off rsvp https://github.com/tildeio/rsvp.js + //license https://github.com/tildeio/rsvp.js/blob/master/LICENSE + //https://github.com/tildeio/rsvp.js/blob/master/lib/rsvp/asap.js + + var Mutation = commonjsGlobal.MutationObserver || commonjsGlobal.WebKitMutationObserver; + + mutation.test = function () { + return Mutation; + }; + + mutation.install = function (handle) { + var called = 0; + var observer = new Mutation(handle); + var element = commonjsGlobal.document.createTextNode(''); + observer.observe(element, { + characterData: true + }); + return function () { + element.data = (called = ++called % 2); + }; + }; + + var messageChannel = {}; + + messageChannel.test = function () { + if (commonjsGlobal.setImmediate) { + // we can only get here in IE10 + // which doesn't handel postMessage well + return false; + } + return typeof commonjsGlobal.MessageChannel !== 'undefined'; + }; + + messageChannel.install = function (func) { + var channel = new commonjsGlobal.MessageChannel(); + channel.port1.onmessage = func; + return function () { + channel.port2.postMessage(0); + }; + }; + + var stateChange = {}; + + stateChange.test = function () { + return 'document' in commonjsGlobal && 'onreadystatechange' in commonjsGlobal.document.createElement('script'); + }; + + stateChange.install = function (handle) { + return function () { + + // Create a \";\n unsubscribe = listen(window, 'message', (event) => {\n if (event.source === iframe.contentWindow)\n fn();\n });\n }\n else {\n iframe.src = 'about:blank';\n iframe.onload = () => {\n unsubscribe = listen(iframe.contentWindow, 'resize', fn);\n };\n }\n append(node, iframe);\n return () => {\n if (crossorigin) {\n unsubscribe();\n }\n else if (unsubscribe && iframe.contentWindow) {\n unsubscribe();\n }\n detach(iframe);\n };\n}\nfunction toggle_class(element, name, toggle) {\n element.classList[toggle ? 'add' : 'remove'](name);\n}\nfunction custom_event(type, detail, bubbles = false) {\n const e = document.createEvent('CustomEvent');\n e.initCustomEvent(type, bubbles, false, detail);\n return e;\n}\nfunction query_selector_all(selector, parent = document.body) {\n return Array.from(parent.querySelectorAll(selector));\n}\nclass HtmlTag {\n constructor() {\n this.e = this.n = null;\n }\n c(html) {\n this.h(html);\n }\n m(html, target, anchor = null) {\n if (!this.e) {\n this.e = element(target.nodeName);\n this.t = target;\n this.c(html);\n }\n this.i(anchor);\n }\n h(html) {\n this.e.innerHTML = html;\n this.n = Array.from(this.e.childNodes);\n }\n i(anchor) {\n for (let i = 0; i < this.n.length; i += 1) {\n insert(this.t, this.n[i], anchor);\n }\n }\n p(html) {\n this.d();\n this.h(html);\n this.i(this.a);\n }\n d() {\n this.n.forEach(detach);\n }\n}\nclass HtmlTagHydration extends HtmlTag {\n constructor(claimed_nodes) {\n super();\n this.e = this.n = null;\n this.l = claimed_nodes;\n }\n c(html) {\n if (this.l) {\n this.n = this.l;\n }\n else {\n super.c(html);\n }\n }\n i(anchor) {\n for (let i = 0; i < this.n.length; i += 1) {\n insert_hydration(this.t, this.n[i], anchor);\n }\n }\n}\nfunction attribute_to_object(attributes) {\n const result = {};\n for (const attribute of attributes) {\n result[attribute.name] = attribute.value;\n }\n return result;\n}\nfunction get_custom_elements_slots(element) {\n const result = {};\n element.childNodes.forEach((node) => {\n result[node.slot || 'default'] = true;\n });\n return result;\n}\n\nconst active_docs = new Set();\nlet active = 0;\n// https://github.com/darkskyapp/string-hash/blob/master/index.js\nfunction hash(str) {\n let hash = 5381;\n let i = str.length;\n while (i--)\n hash = ((hash << 5) - hash) ^ str.charCodeAt(i);\n return hash >>> 0;\n}\nfunction create_rule(node, a, b, duration, delay, ease, fn, uid = 0) {\n const step = 16.666 / duration;\n let keyframes = '{\\n';\n for (let p = 0; p <= 1; p += step) {\n const t = a + (b - a) * ease(p);\n keyframes += p * 100 + `%{${fn(t, 1 - t)}}\\n`;\n }\n const rule = keyframes + `100% {${fn(b, 1 - b)}}\\n}`;\n const name = `__svelte_${hash(rule)}_${uid}`;\n const doc = get_root_for_style(node);\n active_docs.add(doc);\n const stylesheet = doc.__svelte_stylesheet || (doc.__svelte_stylesheet = append_empty_stylesheet(node).sheet);\n const current_rules = doc.__svelte_rules || (doc.__svelte_rules = {});\n if (!current_rules[name]) {\n current_rules[name] = true;\n stylesheet.insertRule(`@keyframes ${name} ${rule}`, stylesheet.cssRules.length);\n }\n const animation = node.style.animation || '';\n node.style.animation = `${animation ? `${animation}, ` : ''}${name} ${duration}ms linear ${delay}ms 1 both`;\n active += 1;\n return name;\n}\nfunction delete_rule(node, name) {\n const previous = (node.style.animation || '').split(', ');\n const next = previous.filter(name\n ? anim => anim.indexOf(name) < 0 // remove specific animation\n : anim => anim.indexOf('__svelte') === -1 // remove all Svelte animations\n );\n const deleted = previous.length - next.length;\n if (deleted) {\n node.style.animation = next.join(', ');\n active -= deleted;\n if (!active)\n clear_rules();\n }\n}\nfunction clear_rules() {\n raf(() => {\n if (active)\n return;\n active_docs.forEach(doc => {\n const stylesheet = doc.__svelte_stylesheet;\n let i = stylesheet.cssRules.length;\n while (i--)\n stylesheet.deleteRule(i);\n doc.__svelte_rules = {};\n });\n active_docs.clear();\n });\n}\n\nfunction create_animation(node, from, fn, params) {\n if (!from)\n return noop;\n const to = node.getBoundingClientRect();\n if (from.left === to.left && from.right === to.right && from.top === to.top && from.bottom === to.bottom)\n return noop;\n const { delay = 0, duration = 300, easing = identity, \n // @ts-ignore todo: should this be separated from destructuring? Or start/end added to public api and documentation?\n start: start_time = now() + delay, \n // @ts-ignore todo:\n end = start_time + duration, tick = noop, css } = fn(node, { from, to }, params);\n let running = true;\n let started = false;\n let name;\n function start() {\n if (css) {\n name = create_rule(node, 0, 1, duration, delay, easing, css);\n }\n if (!delay) {\n started = true;\n }\n }\n function stop() {\n if (css)\n delete_rule(node, name);\n running = false;\n }\n loop(now => {\n if (!started && now >= start_time) {\n started = true;\n }\n if (started && now >= end) {\n tick(1, 0);\n stop();\n }\n if (!running) {\n return false;\n }\n if (started) {\n const p = now - start_time;\n const t = 0 + 1 * easing(p / duration);\n tick(t, 1 - t);\n }\n return true;\n });\n start();\n tick(0, 1);\n return stop;\n}\nfunction fix_position(node) {\n const style = getComputedStyle(node);\n if (style.position !== 'absolute' && style.position !== 'fixed') {\n const { width, height } = style;\n const a = node.getBoundingClientRect();\n node.style.position = 'absolute';\n node.style.width = width;\n node.style.height = height;\n add_transform(node, a);\n }\n}\nfunction add_transform(node, a) {\n const b = node.getBoundingClientRect();\n if (a.left !== b.left || a.top !== b.top) {\n const style = getComputedStyle(node);\n const transform = style.transform === 'none' ? '' : style.transform;\n node.style.transform = `${transform} translate(${a.left - b.left}px, ${a.top - b.top}px)`;\n }\n}\n\nlet current_component;\nfunction set_current_component(component) {\n current_component = component;\n}\nfunction get_current_component() {\n if (!current_component)\n throw new Error('Function called outside component initialization');\n return current_component;\n}\nfunction beforeUpdate(fn) {\n get_current_component().$$.before_update.push(fn);\n}\nfunction onMount(fn) {\n get_current_component().$$.on_mount.push(fn);\n}\nfunction afterUpdate(fn) {\n get_current_component().$$.after_update.push(fn);\n}\nfunction onDestroy(fn) {\n get_current_component().$$.on_destroy.push(fn);\n}\nfunction createEventDispatcher() {\n const component = get_current_component();\n return (type, detail) => {\n const callbacks = component.$$.callbacks[type];\n if (callbacks) {\n // TODO are there situations where events could be dispatched\n // in a server (non-DOM) environment?\n const event = custom_event(type, detail);\n callbacks.slice().forEach(fn => {\n fn.call(component, event);\n });\n }\n };\n}\nfunction setContext(key, context) {\n get_current_component().$$.context.set(key, context);\n}\nfunction getContext(key) {\n return get_current_component().$$.context.get(key);\n}\nfunction getAllContexts() {\n return get_current_component().$$.context;\n}\nfunction hasContext(key) {\n return get_current_component().$$.context.has(key);\n}\n// TODO figure out if we still want to support\n// shorthand events, or if we want to implement\n// a real bubbling mechanism\nfunction bubble(component, event) {\n const callbacks = component.$$.callbacks[event.type];\n if (callbacks) {\n // @ts-ignore\n callbacks.slice().forEach(fn => fn.call(this, event));\n }\n}\n\nconst dirty_components = [];\nconst intros = { enabled: false };\nconst binding_callbacks = [];\nconst render_callbacks = [];\nconst flush_callbacks = [];\nconst resolved_promise = Promise.resolve();\nlet update_scheduled = false;\nfunction schedule_update() {\n if (!update_scheduled) {\n update_scheduled = true;\n resolved_promise.then(flush);\n }\n}\nfunction tick() {\n schedule_update();\n return resolved_promise;\n}\nfunction add_render_callback(fn) {\n render_callbacks.push(fn);\n}\nfunction add_flush_callback(fn) {\n flush_callbacks.push(fn);\n}\nlet flushing = false;\nconst seen_callbacks = new Set();\nfunction flush() {\n if (flushing)\n return;\n flushing = true;\n do {\n // first, call beforeUpdate functions\n // and update components\n for (let i = 0; i < dirty_components.length; i += 1) {\n const component = dirty_components[i];\n set_current_component(component);\n update(component.$$);\n }\n set_current_component(null);\n dirty_components.length = 0;\n while (binding_callbacks.length)\n binding_callbacks.pop()();\n // then, once components are updated, call\n // afterUpdate functions. This may cause\n // subsequent updates...\n for (let i = 0; i < render_callbacks.length; i += 1) {\n const callback = render_callbacks[i];\n if (!seen_callbacks.has(callback)) {\n // ...so guard against infinite loops\n seen_callbacks.add(callback);\n callback();\n }\n }\n render_callbacks.length = 0;\n } while (dirty_components.length);\n while (flush_callbacks.length) {\n flush_callbacks.pop()();\n }\n update_scheduled = false;\n flushing = false;\n seen_callbacks.clear();\n}\nfunction update($$) {\n if ($$.fragment !== null) {\n $$.update();\n run_all($$.before_update);\n const dirty = $$.dirty;\n $$.dirty = [-1];\n $$.fragment && $$.fragment.p($$.ctx, dirty);\n $$.after_update.forEach(add_render_callback);\n }\n}\n\nlet promise;\nfunction wait() {\n if (!promise) {\n promise = Promise.resolve();\n promise.then(() => {\n promise = null;\n });\n }\n return promise;\n}\nfunction dispatch(node, direction, kind) {\n node.dispatchEvent(custom_event(`${direction ? 'intro' : 'outro'}${kind}`));\n}\nconst outroing = new Set();\nlet outros;\nfunction group_outros() {\n outros = {\n r: 0,\n c: [],\n p: outros // parent group\n };\n}\nfunction check_outros() {\n if (!outros.r) {\n run_all(outros.c);\n }\n outros = outros.p;\n}\nfunction transition_in(block, local) {\n if (block && block.i) {\n outroing.delete(block);\n block.i(local);\n }\n}\nfunction transition_out(block, local, detach, callback) {\n if (block && block.o) {\n if (outroing.has(block))\n return;\n outroing.add(block);\n outros.c.push(() => {\n outroing.delete(block);\n if (callback) {\n if (detach)\n block.d(1);\n callback();\n }\n });\n block.o(local);\n }\n}\nconst null_transition = { duration: 0 };\nfunction create_in_transition(node, fn, params) {\n let config = fn(node, params);\n let running = false;\n let animation_name;\n let task;\n let uid = 0;\n function cleanup() {\n if (animation_name)\n delete_rule(node, animation_name);\n }\n function go() {\n const { delay = 0, duration = 300, easing = identity, tick = noop, css } = config || null_transition;\n if (css)\n animation_name = create_rule(node, 0, 1, duration, delay, easing, css, uid++);\n tick(0, 1);\n const start_time = now() + delay;\n const end_time = start_time + duration;\n if (task)\n task.abort();\n running = true;\n add_render_callback(() => dispatch(node, true, 'start'));\n task = loop(now => {\n if (running) {\n if (now >= end_time) {\n tick(1, 0);\n dispatch(node, true, 'end');\n cleanup();\n return running = false;\n }\n if (now >= start_time) {\n const t = easing((now - start_time) / duration);\n tick(t, 1 - t);\n }\n }\n return running;\n });\n }\n let started = false;\n return {\n start() {\n if (started)\n return;\n started = true;\n delete_rule(node);\n if (is_function(config)) {\n config = config();\n wait().then(go);\n }\n else {\n go();\n }\n },\n invalidate() {\n started = false;\n },\n end() {\n if (running) {\n cleanup();\n running = false;\n }\n }\n };\n}\nfunction create_out_transition(node, fn, params) {\n let config = fn(node, params);\n let running = true;\n let animation_name;\n const group = outros;\n group.r += 1;\n function go() {\n const { delay = 0, duration = 300, easing = identity, tick = noop, css } = config || null_transition;\n if (css)\n animation_name = create_rule(node, 1, 0, duration, delay, easing, css);\n const start_time = now() + delay;\n const end_time = start_time + duration;\n add_render_callback(() => dispatch(node, false, 'start'));\n loop(now => {\n if (running) {\n if (now >= end_time) {\n tick(0, 1);\n dispatch(node, false, 'end');\n if (!--group.r) {\n // this will result in `end()` being called,\n // so we don't need to clean up here\n run_all(group.c);\n }\n return false;\n }\n if (now >= start_time) {\n const t = easing((now - start_time) / duration);\n tick(1 - t, t);\n }\n }\n return running;\n });\n }\n if (is_function(config)) {\n wait().then(() => {\n // @ts-ignore\n config = config();\n go();\n });\n }\n else {\n go();\n }\n return {\n end(reset) {\n if (reset && config.tick) {\n config.tick(1, 0);\n }\n if (running) {\n if (animation_name)\n delete_rule(node, animation_name);\n running = false;\n }\n }\n };\n}\nfunction create_bidirectional_transition(node, fn, params, intro) {\n let config = fn(node, params);\n let t = intro ? 0 : 1;\n let running_program = null;\n let pending_program = null;\n let animation_name = null;\n function clear_animation() {\n if (animation_name)\n delete_rule(node, animation_name);\n }\n function init(program, duration) {\n const d = (program.b - t);\n duration *= Math.abs(d);\n return {\n a: t,\n b: program.b,\n d,\n duration,\n start: program.start,\n end: program.start + duration,\n group: program.group\n };\n }\n function go(b) {\n const { delay = 0, duration = 300, easing = identity, tick = noop, css } = config || null_transition;\n const program = {\n start: now() + delay,\n b\n };\n if (!b) {\n // @ts-ignore todo: improve typings\n program.group = outros;\n outros.r += 1;\n }\n if (running_program || pending_program) {\n pending_program = program;\n }\n else {\n // if this is an intro, and there's a delay, we need to do\n // an initial tick and/or apply CSS animation immediately\n if (css) {\n clear_animation();\n animation_name = create_rule(node, t, b, duration, delay, easing, css);\n }\n if (b)\n tick(0, 1);\n running_program = init(program, duration);\n add_render_callback(() => dispatch(node, b, 'start'));\n loop(now => {\n if (pending_program && now > pending_program.start) {\n running_program = init(pending_program, duration);\n pending_program = null;\n dispatch(node, running_program.b, 'start');\n if (css) {\n clear_animation();\n animation_name = create_rule(node, t, running_program.b, running_program.duration, 0, easing, config.css);\n }\n }\n if (running_program) {\n if (now >= running_program.end) {\n tick(t = running_program.b, 1 - t);\n dispatch(node, running_program.b, 'end');\n if (!pending_program) {\n // we're done\n if (running_program.b) {\n // intro — we can tidy up immediately\n clear_animation();\n }\n else {\n // outro — needs to be coordinated\n if (!--running_program.group.r)\n run_all(running_program.group.c);\n }\n }\n running_program = null;\n }\n else if (now >= running_program.start) {\n const p = now - running_program.start;\n t = running_program.a + running_program.d * easing(p / running_program.duration);\n tick(t, 1 - t);\n }\n }\n return !!(running_program || pending_program);\n });\n }\n }\n return {\n run(b) {\n if (is_function(config)) {\n wait().then(() => {\n // @ts-ignore\n config = config();\n go(b);\n });\n }\n else {\n go(b);\n }\n },\n end() {\n clear_animation();\n running_program = pending_program = null;\n }\n };\n}\n\nfunction handle_promise(promise, info) {\n const token = info.token = {};\n function update(type, index, key, value) {\n if (info.token !== token)\n return;\n info.resolved = value;\n let child_ctx = info.ctx;\n if (key !== undefined) {\n child_ctx = child_ctx.slice();\n child_ctx[key] = value;\n }\n const block = type && (info.current = type)(child_ctx);\n let needs_flush = false;\n if (info.block) {\n if (info.blocks) {\n info.blocks.forEach((block, i) => {\n if (i !== index && block) {\n group_outros();\n transition_out(block, 1, 1, () => {\n if (info.blocks[i] === block) {\n info.blocks[i] = null;\n }\n });\n check_outros();\n }\n });\n }\n else {\n info.block.d(1);\n }\n block.c();\n transition_in(block, 1);\n block.m(info.mount(), info.anchor);\n needs_flush = true;\n }\n info.block = block;\n if (info.blocks)\n info.blocks[index] = block;\n if (needs_flush) {\n flush();\n }\n }\n if (is_promise(promise)) {\n const current_component = get_current_component();\n promise.then(value => {\n set_current_component(current_component);\n update(info.then, 1, info.value, value);\n set_current_component(null);\n }, error => {\n set_current_component(current_component);\n update(info.catch, 2, info.error, error);\n set_current_component(null);\n if (!info.hasCatch) {\n throw error;\n }\n });\n // if we previously had a then/catch block, destroy it\n if (info.current !== info.pending) {\n update(info.pending, 0);\n return true;\n }\n }\n else {\n if (info.current !== info.then) {\n update(info.then, 1, info.value, promise);\n return true;\n }\n info.resolved = promise;\n }\n}\nfunction update_await_block_branch(info, ctx, dirty) {\n const child_ctx = ctx.slice();\n const { resolved } = info;\n if (info.current === info.then) {\n child_ctx[info.value] = resolved;\n }\n if (info.current === info.catch) {\n child_ctx[info.error] = resolved;\n }\n info.block.p(child_ctx, dirty);\n}\n\nconst globals = (typeof window !== 'undefined'\n ? window\n : typeof globalThis !== 'undefined'\n ? globalThis\n : global);\n\nfunction destroy_block(block, lookup) {\n block.d(1);\n lookup.delete(block.key);\n}\nfunction outro_and_destroy_block(block, lookup) {\n transition_out(block, 1, 1, () => {\n lookup.delete(block.key);\n });\n}\nfunction fix_and_destroy_block(block, lookup) {\n block.f();\n destroy_block(block, lookup);\n}\nfunction fix_and_outro_and_destroy_block(block, lookup) {\n block.f();\n outro_and_destroy_block(block, lookup);\n}\nfunction update_keyed_each(old_blocks, dirty, get_key, dynamic, ctx, list, lookup, node, destroy, create_each_block, next, get_context) {\n let o = old_blocks.length;\n let n = list.length;\n let i = o;\n const old_indexes = {};\n while (i--)\n old_indexes[old_blocks[i].key] = i;\n const new_blocks = [];\n const new_lookup = new Map();\n const deltas = new Map();\n i = n;\n while (i--) {\n const child_ctx = get_context(ctx, list, i);\n const key = get_key(child_ctx);\n let block = lookup.get(key);\n if (!block) {\n block = create_each_block(key, child_ctx);\n block.c();\n }\n else if (dynamic) {\n block.p(child_ctx, dirty);\n }\n new_lookup.set(key, new_blocks[i] = block);\n if (key in old_indexes)\n deltas.set(key, Math.abs(i - old_indexes[key]));\n }\n const will_move = new Set();\n const did_move = new Set();\n function insert(block) {\n transition_in(block, 1);\n block.m(node, next);\n lookup.set(block.key, block);\n next = block.first;\n n--;\n }\n while (o && n) {\n const new_block = new_blocks[n - 1];\n const old_block = old_blocks[o - 1];\n const new_key = new_block.key;\n const old_key = old_block.key;\n if (new_block === old_block) {\n // do nothing\n next = new_block.first;\n o--;\n n--;\n }\n else if (!new_lookup.has(old_key)) {\n // remove old block\n destroy(old_block, lookup);\n o--;\n }\n else if (!lookup.has(new_key) || will_move.has(new_key)) {\n insert(new_block);\n }\n else if (did_move.has(old_key)) {\n o--;\n }\n else if (deltas.get(new_key) > deltas.get(old_key)) {\n did_move.add(new_key);\n insert(new_block);\n }\n else {\n will_move.add(old_key);\n o--;\n }\n }\n while (o--) {\n const old_block = old_blocks[o];\n if (!new_lookup.has(old_block.key))\n destroy(old_block, lookup);\n }\n while (n)\n insert(new_blocks[n - 1]);\n return new_blocks;\n}\nfunction validate_each_keys(ctx, list, get_context, get_key) {\n const keys = new Set();\n for (let i = 0; i < list.length; i++) {\n const key = get_key(get_context(ctx, list, i));\n if (keys.has(key)) {\n throw new Error('Cannot have duplicate keys in a keyed each');\n }\n keys.add(key);\n }\n}\n\nfunction get_spread_update(levels, updates) {\n const update = {};\n const to_null_out = {};\n const accounted_for = { $$scope: 1 };\n let i = levels.length;\n while (i--) {\n const o = levels[i];\n const n = updates[i];\n if (n) {\n for (const key in o) {\n if (!(key in n))\n to_null_out[key] = 1;\n }\n for (const key in n) {\n if (!accounted_for[key]) {\n update[key] = n[key];\n accounted_for[key] = 1;\n }\n }\n levels[i] = n;\n }\n else {\n for (const key in o) {\n accounted_for[key] = 1;\n }\n }\n }\n for (const key in to_null_out) {\n if (!(key in update))\n update[key] = undefined;\n }\n return update;\n}\nfunction get_spread_object(spread_props) {\n return typeof spread_props === 'object' && spread_props !== null ? spread_props : {};\n}\n\n// source: https://html.spec.whatwg.org/multipage/indices.html\nconst boolean_attributes = new Set([\n 'allowfullscreen',\n 'allowpaymentrequest',\n 'async',\n 'autofocus',\n 'autoplay',\n 'checked',\n 'controls',\n 'default',\n 'defer',\n 'disabled',\n 'formnovalidate',\n 'hidden',\n 'ismap',\n 'loop',\n 'multiple',\n 'muted',\n 'nomodule',\n 'novalidate',\n 'open',\n 'playsinline',\n 'readonly',\n 'required',\n 'reversed',\n 'selected'\n]);\n\nconst invalid_attribute_name_character = /[\\s'\">/=\\u{FDD0}-\\u{FDEF}\\u{FFFE}\\u{FFFF}\\u{1FFFE}\\u{1FFFF}\\u{2FFFE}\\u{2FFFF}\\u{3FFFE}\\u{3FFFF}\\u{4FFFE}\\u{4FFFF}\\u{5FFFE}\\u{5FFFF}\\u{6FFFE}\\u{6FFFF}\\u{7FFFE}\\u{7FFFF}\\u{8FFFE}\\u{8FFFF}\\u{9FFFE}\\u{9FFFF}\\u{AFFFE}\\u{AFFFF}\\u{BFFFE}\\u{BFFFF}\\u{CFFFE}\\u{CFFFF}\\u{DFFFE}\\u{DFFFF}\\u{EFFFE}\\u{EFFFF}\\u{FFFFE}\\u{FFFFF}\\u{10FFFE}\\u{10FFFF}]/u;\n// https://html.spec.whatwg.org/multipage/syntax.html#attributes-2\n// https://infra.spec.whatwg.org/#noncharacter\nfunction spread(args, classes_to_add) {\n const attributes = Object.assign({}, ...args);\n if (classes_to_add) {\n if (attributes.class == null) {\n attributes.class = classes_to_add;\n }\n else {\n attributes.class += ' ' + classes_to_add;\n }\n }\n let str = '';\n Object.keys(attributes).forEach(name => {\n if (invalid_attribute_name_character.test(name))\n return;\n const value = attributes[name];\n if (value === true)\n str += ' ' + name;\n else if (boolean_attributes.has(name.toLowerCase())) {\n if (value)\n str += ' ' + name;\n }\n else if (value != null) {\n str += ` ${name}=\"${value}\"`;\n }\n });\n return str;\n}\nconst escaped = {\n '\"': '"',\n \"'\": ''',\n '&': '&',\n '<': '<',\n '>': '>'\n};\nfunction escape(html) {\n return String(html).replace(/[\"'&<>]/g, match => escaped[match]);\n}\nfunction escape_attribute_value(value) {\n return typeof value === 'string' ? escape(value) : value;\n}\nfunction escape_object(obj) {\n const result = {};\n for (const key in obj) {\n result[key] = escape_attribute_value(obj[key]);\n }\n return result;\n}\nfunction each(items, fn) {\n let str = '';\n for (let i = 0; i < items.length; i += 1) {\n str += fn(items[i], i);\n }\n return str;\n}\nconst missing_component = {\n $$render: () => ''\n};\nfunction validate_component(component, name) {\n if (!component || !component.$$render) {\n if (name === 'svelte:component')\n name += ' this={...}';\n throw new Error(`<${name}> is not a valid SSR component. You may need to review your build config to ensure that dependencies are compiled, rather than imported as pre-compiled modules`);\n }\n return component;\n}\nfunction debug(file, line, column, values) {\n console.log(`{@debug} ${file ? file + ' ' : ''}(${line}:${column})`); // eslint-disable-line no-console\n console.log(values); // eslint-disable-line no-console\n return '';\n}\nlet on_destroy;\nfunction create_ssr_component(fn) {\n function $$render(result, props, bindings, slots, context) {\n const parent_component = current_component;\n const $$ = {\n on_destroy,\n context: new Map(parent_component ? parent_component.$$.context : context || []),\n // these will be immediately discarded\n on_mount: [],\n before_update: [],\n after_update: [],\n callbacks: blank_object()\n };\n set_current_component({ $$ });\n const html = fn(result, props, bindings, slots);\n set_current_component(parent_component);\n return html;\n }\n return {\n render: (props = {}, { $$slots = {}, context = new Map() } = {}) => {\n on_destroy = [];\n const result = { title: '', head: '', css: new Set() };\n const html = $$render(result, props, {}, $$slots, context);\n run_all(on_destroy);\n return {\n html,\n css: {\n code: Array.from(result.css).map(css => css.code).join('\\n'),\n map: null // TODO\n },\n head: result.title + result.head\n };\n },\n $$render\n };\n}\nfunction add_attribute(name, value, boolean) {\n if (value == null || (boolean && !value))\n return '';\n return ` ${name}${value === true ? '' : `=${typeof value === 'string' ? JSON.stringify(escape(value)) : `\"${value}\"`}`}`;\n}\nfunction add_classes(classes) {\n return classes ? ` class=\"${classes}\"` : '';\n}\n\nfunction bind(component, name, callback) {\n const index = component.$$.props[name];\n if (index !== undefined) {\n component.$$.bound[index] = callback;\n callback(component.$$.ctx[index]);\n }\n}\nfunction create_component(block) {\n block && block.c();\n}\nfunction claim_component(block, parent_nodes) {\n block && block.l(parent_nodes);\n}\nfunction mount_component(component, target, anchor, customElement) {\n const { fragment, on_mount, on_destroy, after_update } = component.$$;\n fragment && fragment.m(target, anchor);\n if (!customElement) {\n // onMount happens before the initial afterUpdate\n add_render_callback(() => {\n const new_on_destroy = on_mount.map(run).filter(is_function);\n if (on_destroy) {\n on_destroy.push(...new_on_destroy);\n }\n else {\n // Edge case - component was destroyed immediately,\n // most likely as a result of a binding initialising\n run_all(new_on_destroy);\n }\n component.$$.on_mount = [];\n });\n }\n after_update.forEach(add_render_callback);\n}\nfunction destroy_component(component, detaching) {\n const $$ = component.$$;\n if ($$.fragment !== null) {\n run_all($$.on_destroy);\n $$.fragment && $$.fragment.d(detaching);\n // TODO null out other refs, including component.$$ (but need to\n // preserve final state?)\n $$.on_destroy = $$.fragment = null;\n $$.ctx = [];\n }\n}\nfunction make_dirty(component, i) {\n if (component.$$.dirty[0] === -1) {\n dirty_components.push(component);\n schedule_update();\n component.$$.dirty.fill(0);\n }\n component.$$.dirty[(i / 31) | 0] |= (1 << (i % 31));\n}\nfunction init(component, options, instance, create_fragment, not_equal, props, append_styles, dirty = [-1]) {\n const parent_component = current_component;\n set_current_component(component);\n const $$ = component.$$ = {\n fragment: null,\n ctx: null,\n // state\n props,\n update: noop,\n not_equal,\n bound: blank_object(),\n // lifecycle\n on_mount: [],\n on_destroy: [],\n on_disconnect: [],\n before_update: [],\n after_update: [],\n context: new Map(parent_component ? parent_component.$$.context : options.context || []),\n // everything else\n callbacks: blank_object(),\n dirty,\n skip_bound: false,\n root: options.target || parent_component.$$.root\n };\n append_styles && append_styles($$.root);\n let ready = false;\n $$.ctx = instance\n ? instance(component, options.props || {}, (i, ret, ...rest) => {\n const value = rest.length ? rest[0] : ret;\n if ($$.ctx && not_equal($$.ctx[i], $$.ctx[i] = value)) {\n if (!$$.skip_bound && $$.bound[i])\n $$.bound[i](value);\n if (ready)\n make_dirty(component, i);\n }\n return ret;\n })\n : [];\n $$.update();\n ready = true;\n run_all($$.before_update);\n // `false` as a special case of no DOM component\n $$.fragment = create_fragment ? create_fragment($$.ctx) : false;\n if (options.target) {\n if (options.hydrate) {\n start_hydrating();\n const nodes = children(options.target);\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n $$.fragment && $$.fragment.l(nodes);\n nodes.forEach(detach);\n }\n else {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n $$.fragment && $$.fragment.c();\n }\n if (options.intro)\n transition_in(component.$$.fragment);\n mount_component(component, options.target, options.anchor, options.customElement);\n end_hydrating();\n flush();\n }\n set_current_component(parent_component);\n}\nlet SvelteElement;\nif (typeof HTMLElement === 'function') {\n SvelteElement = class extends HTMLElement {\n constructor() {\n super();\n this.attachShadow({ mode: 'open' });\n }\n connectedCallback() {\n const { on_mount } = this.$$;\n this.$$.on_disconnect = on_mount.map(run).filter(is_function);\n // @ts-ignore todo: improve typings\n for (const key in this.$$.slotted) {\n // @ts-ignore todo: improve typings\n this.appendChild(this.$$.slotted[key]);\n }\n }\n attributeChangedCallback(attr, _oldValue, newValue) {\n this[attr] = newValue;\n }\n disconnectedCallback() {\n run_all(this.$$.on_disconnect);\n }\n $destroy() {\n destroy_component(this, 1);\n this.$destroy = noop;\n }\n $on(type, callback) {\n // TODO should this delegate to addEventListener?\n const callbacks = (this.$$.callbacks[type] || (this.$$.callbacks[type] = []));\n callbacks.push(callback);\n return () => {\n const index = callbacks.indexOf(callback);\n if (index !== -1)\n callbacks.splice(index, 1);\n };\n }\n $set($$props) {\n if (this.$$set && !is_empty($$props)) {\n this.$$.skip_bound = true;\n this.$$set($$props);\n this.$$.skip_bound = false;\n }\n }\n };\n}\n/**\n * Base class for Svelte components. Used when dev=false.\n */\nclass SvelteComponent {\n $destroy() {\n destroy_component(this, 1);\n this.$destroy = noop;\n }\n $on(type, callback) {\n const callbacks = (this.$$.callbacks[type] || (this.$$.callbacks[type] = []));\n callbacks.push(callback);\n return () => {\n const index = callbacks.indexOf(callback);\n if (index !== -1)\n callbacks.splice(index, 1);\n };\n }\n $set($$props) {\n if (this.$$set && !is_empty($$props)) {\n this.$$.skip_bound = true;\n this.$$set($$props);\n this.$$.skip_bound = false;\n }\n }\n}\n\nfunction dispatch_dev(type, detail) {\n document.dispatchEvent(custom_event(type, Object.assign({ version: '3.42.4' }, detail), true));\n}\nfunction append_dev(target, node) {\n dispatch_dev('SvelteDOMInsert', { target, node });\n append(target, node);\n}\nfunction append_hydration_dev(target, node) {\n dispatch_dev('SvelteDOMInsert', { target, node });\n append_hydration(target, node);\n}\nfunction insert_dev(target, node, anchor) {\n dispatch_dev('SvelteDOMInsert', { target, node, anchor });\n insert(target, node, anchor);\n}\nfunction insert_hydration_dev(target, node, anchor) {\n dispatch_dev('SvelteDOMInsert', { target, node, anchor });\n insert_hydration(target, node, anchor);\n}\nfunction detach_dev(node) {\n dispatch_dev('SvelteDOMRemove', { node });\n detach(node);\n}\nfunction detach_between_dev(before, after) {\n while (before.nextSibling && before.nextSibling !== after) {\n detach_dev(before.nextSibling);\n }\n}\nfunction detach_before_dev(after) {\n while (after.previousSibling) {\n detach_dev(after.previousSibling);\n }\n}\nfunction detach_after_dev(before) {\n while (before.nextSibling) {\n detach_dev(before.nextSibling);\n }\n}\nfunction listen_dev(node, event, handler, options, has_prevent_default, has_stop_propagation) {\n const modifiers = options === true ? ['capture'] : options ? Array.from(Object.keys(options)) : [];\n if (has_prevent_default)\n modifiers.push('preventDefault');\n if (has_stop_propagation)\n modifiers.push('stopPropagation');\n dispatch_dev('SvelteDOMAddEventListener', { node, event, handler, modifiers });\n const dispose = listen(node, event, handler, options);\n return () => {\n dispatch_dev('SvelteDOMRemoveEventListener', { node, event, handler, modifiers });\n dispose();\n };\n}\nfunction attr_dev(node, attribute, value) {\n attr(node, attribute, value);\n if (value == null)\n dispatch_dev('SvelteDOMRemoveAttribute', { node, attribute });\n else\n dispatch_dev('SvelteDOMSetAttribute', { node, attribute, value });\n}\nfunction prop_dev(node, property, value) {\n node[property] = value;\n dispatch_dev('SvelteDOMSetProperty', { node, property, value });\n}\nfunction dataset_dev(node, property, value) {\n node.dataset[property] = value;\n dispatch_dev('SvelteDOMSetDataset', { node, property, value });\n}\nfunction set_data_dev(text, data) {\n data = '' + data;\n if (text.wholeText === data)\n return;\n dispatch_dev('SvelteDOMSetData', { node: text, data });\n text.data = data;\n}\nfunction validate_each_argument(arg) {\n if (typeof arg !== 'string' && !(arg && typeof arg === 'object' && 'length' in arg)) {\n let msg = '{#each} only iterates over array-like objects.';\n if (typeof Symbol === 'function' && arg && Symbol.iterator in arg) {\n msg += ' You can use a spread to convert this iterable into an array.';\n }\n throw new Error(msg);\n }\n}\nfunction validate_slots(name, slot, keys) {\n for (const slot_key of Object.keys(slot)) {\n if (!~keys.indexOf(slot_key)) {\n console.warn(`<${name}> received an unexpected slot \"${slot_key}\".`);\n }\n }\n}\n/**\n * Base class for Svelte components with some minor dev-enhancements. Used when dev=true.\n */\nclass SvelteComponentDev extends SvelteComponent {\n constructor(options) {\n if (!options || (!options.target && !options.$$inline)) {\n throw new Error(\"'target' is a required option\");\n }\n super();\n }\n $destroy() {\n super.$destroy();\n this.$destroy = () => {\n console.warn('Component was already destroyed'); // eslint-disable-line no-console\n };\n }\n $capture_state() { }\n $inject_state() { }\n}\n/**\n * Base class to create strongly typed Svelte components.\n * This only exists for typing purposes and should be used in `.d.ts` files.\n *\n * ### Example:\n *\n * You have component library on npm called `component-library`, from which\n * you export a component called `MyComponent`. For Svelte+TypeScript users,\n * you want to provide typings. Therefore you create a `index.d.ts`:\n * ```ts\n * import { SvelteComponentTyped } from \"svelte\";\n * export class MyComponent extends SvelteComponentTyped<{foo: string}> {}\n * ```\n * Typing this makes it possible for IDEs like VS Code with the Svelte extension\n * to provide intellisense and to use the component like this in a Svelte file\n * with TypeScript:\n * ```svelte\n * \n * \n * ```\n *\n * #### Why not make this part of `SvelteComponent(Dev)`?\n * Because\n * ```ts\n * class ASubclassOfSvelteComponent extends SvelteComponent<{foo: string}> {}\n * const component: typeof SvelteComponent = ASubclassOfSvelteComponent;\n * ```\n * will throw a type error, so we need to separate the more strictly typed class.\n */\nclass SvelteComponentTyped extends SvelteComponentDev {\n constructor(options) {\n super(options);\n }\n}\nfunction loop_guard(timeout) {\n const start = Date.now();\n return () => {\n if (Date.now() - start > timeout) {\n throw new Error('Infinite loop detected');\n }\n };\n}\n\nexport { HtmlTag, HtmlTagHydration, SvelteComponent, SvelteComponentDev, SvelteComponentTyped, SvelteElement, action_destroyer, add_attribute, add_classes, add_flush_callback, add_location, add_render_callback, add_resize_listener, add_transform, afterUpdate, append, append_dev, append_empty_stylesheet, append_hydration, append_hydration_dev, append_styles, assign, attr, attr_dev, attribute_to_object, beforeUpdate, bind, binding_callbacks, blank_object, bubble, check_outros, children, claim_component, claim_element, claim_html_tag, claim_space, claim_svg_element, claim_text, clear_loops, component_subscribe, compute_rest_props, compute_slots, createEventDispatcher, create_animation, create_bidirectional_transition, create_component, create_in_transition, create_out_transition, create_slot, create_ssr_component, current_component, custom_event, dataset_dev, debug, destroy_block, destroy_component, destroy_each, detach, detach_after_dev, detach_before_dev, detach_between_dev, detach_dev, dirty_components, dispatch_dev, each, element, element_is, empty, end_hydrating, escape, escape_attribute_value, escape_object, escaped, exclude_internal_props, fix_and_destroy_block, fix_and_outro_and_destroy_block, fix_position, flush, getAllContexts, getContext, get_all_dirty_from_scope, get_binding_group_value, get_current_component, get_custom_elements_slots, get_root_for_style, get_slot_changes, get_spread_object, get_spread_update, get_store_value, globals, group_outros, handle_promise, hasContext, has_prop, identity, init, insert, insert_dev, insert_hydration, insert_hydration_dev, intros, invalid_attribute_name_character, is_client, is_crossorigin, is_empty, is_function, is_promise, listen, listen_dev, loop, loop_guard, missing_component, mount_component, noop, not_equal, now, null_to_empty, object_without_properties, onDestroy, onMount, once, outro_and_destroy_block, prevent_default, prop_dev, query_selector_all, raf, run, run_all, safe_not_equal, schedule_update, select_multiple_value, select_option, select_options, select_value, self, setContext, set_attributes, set_current_component, set_custom_element_data, set_data, set_data_dev, set_input_type, set_input_value, set_now, set_raf, set_store_value, set_style, set_svg_attributes, space, spread, src_url_equal, start_hydrating, stop_propagation, subscribe, svg_element, text, tick, time_ranges_to_array, to_number, toggle_class, transition_in, transition_out, trusted, update_await_block_branch, update_keyed_each, update_slot, update_slot_base, validate_component, validate_each_argument, validate_each_keys, validate_slots, validate_store, xlink_attr };\n","/**\n * @typedef {Object} WrappedComponent Object returned by the `wrap` method\n * @property {SvelteComponent} component - Component to load (this is always asynchronous)\n * @property {RoutePrecondition[]} [conditions] - Route pre-conditions to validate\n * @property {Object} [props] - Optional dictionary of static props\n * @property {Object} [userData] - Optional user data dictionary\n * @property {bool} _sveltesparouter - Internal flag; always set to true\n */\n\n/**\n * @callback AsyncSvelteComponent\n * @returns {Promise} Returns a Promise that resolves with a Svelte component\n */\n\n/**\n * @callback RoutePrecondition\n * @param {RouteDetail} detail - Route detail object\n * @returns {boolean|Promise} If the callback returns a false-y value, it's interpreted as the precondition failed, so it aborts loading the component (and won't process other pre-condition callbacks)\n */\n\n/**\n * @typedef {Object} WrapOptions Options object for the call to `wrap`\n * @property {SvelteComponent} [component] - Svelte component to load (this is incompatible with `asyncComponent`)\n * @property {AsyncSvelteComponent} [asyncComponent] - Function that returns a Promise that fulfills with a Svelte component (e.g. `{asyncComponent: () => import('Foo.svelte')}`)\n * @property {SvelteComponent} [loadingComponent] - Svelte component to be displayed while the async route is loading (as a placeholder); when unset or false-y, no component is shown while component\n * @property {object} [loadingParams] - Optional dictionary passed to the `loadingComponent` component as params (for an exported prop called `params`)\n * @property {object} [userData] - Optional object that will be passed to events such as `routeLoading`, `routeLoaded`, `conditionsFailed`\n * @property {object} [props] - Optional key-value dictionary of static props that will be passed to the component. The props are expanded with {...props}, so the key in the dictionary becomes the name of the prop.\n * @property {RoutePrecondition[]|RoutePrecondition} [conditions] - Route pre-conditions to add, which will be executed in order\n */\n\n/**\n * Wraps a component to enable multiple capabilities:\n * 1. Using dynamically-imported component, with (e.g. `{asyncComponent: () => import('Foo.svelte')}`), which also allows bundlers to do code-splitting.\n * 2. Adding route pre-conditions (e.g. `{conditions: [...]}`)\n * 3. Adding static props that are passed to the component\n * 4. Adding custom userData, which is passed to route events (e.g. route loaded events) or to route pre-conditions (e.g. `{userData: {foo: 'bar}}`)\n * \n * @param {WrapOptions} args - Arguments object\n * @returns {WrappedComponent} Wrapped component\n */\nexport function wrap(args) {\n if (!args) {\n throw Error('Parameter args is required')\n }\n\n // We need to have one and only one of component and asyncComponent\n // This does a \"XNOR\"\n if (!args.component == !args.asyncComponent) {\n throw Error('One and only one of component and asyncComponent is required')\n }\n\n // If the component is not async, wrap it into a function returning a Promise\n if (args.component) {\n args.asyncComponent = () => Promise.resolve(args.component)\n }\n\n // Parameter asyncComponent and each item of conditions must be functions\n if (typeof args.asyncComponent != 'function') {\n throw Error('Parameter asyncComponent must be a function')\n }\n if (args.conditions) {\n // Ensure it's an array\n if (!Array.isArray(args.conditions)) {\n args.conditions = [args.conditions]\n }\n for (let i = 0; i < args.conditions.length; i++) {\n if (!args.conditions[i] || typeof args.conditions[i] != 'function') {\n throw Error('Invalid parameter conditions[' + i + ']')\n }\n }\n }\n\n // Check if we have a placeholder component\n if (args.loadingComponent) {\n args.asyncComponent.loading = args.loadingComponent\n args.asyncComponent.loadingParams = args.loadingParams || undefined\n }\n\n // Returns an object that contains all the functions to execute too\n // The _sveltesparouter flag is to confirm the object was created by this router\n const obj = {\n component: args.asyncComponent,\n userData: args.userData,\n conditions: (args.conditions && args.conditions.length) ? args.conditions : undefined,\n props: (args.props && Object.keys(args.props).length) ? args.props : {},\n _sveltesparouter: true\n }\n\n return obj\n}\n\nexport default wrap\n","import { noop, safe_not_equal, subscribe, run_all, is_function } from '../internal/index.mjs';\nexport { get_store_value as get } from '../internal/index.mjs';\n\nconst subscriber_queue = [];\n/**\n * Creates a `Readable` store that allows reading by subscription.\n * @param value initial value\n * @param {StartStopNotifier}start start and stop notifications for subscriptions\n */\nfunction readable(value, start) {\n return {\n subscribe: writable(value, start).subscribe\n };\n}\n/**\n * Create a `Writable` store that allows both updating and reading by subscription.\n * @param {*=}value initial value\n * @param {StartStopNotifier=}start start and stop notifications for subscriptions\n */\nfunction writable(value, start = noop) {\n let stop;\n const subscribers = new Set();\n function set(new_value) {\n if (safe_not_equal(value, new_value)) {\n value = new_value;\n if (stop) { // store is ready\n const run_queue = !subscriber_queue.length;\n for (const subscriber of subscribers) {\n subscriber[1]();\n subscriber_queue.push(subscriber, value);\n }\n if (run_queue) {\n for (let i = 0; i < subscriber_queue.length; i += 2) {\n subscriber_queue[i][0](subscriber_queue[i + 1]);\n }\n subscriber_queue.length = 0;\n }\n }\n }\n }\n function update(fn) {\n set(fn(value));\n }\n function subscribe(run, invalidate = noop) {\n const subscriber = [run, invalidate];\n subscribers.add(subscriber);\n if (subscribers.size === 1) {\n stop = start(set) || noop;\n }\n run(value);\n return () => {\n subscribers.delete(subscriber);\n if (subscribers.size === 0) {\n stop();\n stop = null;\n }\n };\n }\n return { set, update, subscribe };\n}\nfunction derived(stores, fn, initial_value) {\n const single = !Array.isArray(stores);\n const stores_array = single\n ? [stores]\n : stores;\n const auto = fn.length < 2;\n return readable(initial_value, (set) => {\n let inited = false;\n const values = [];\n let pending = 0;\n let cleanup = noop;\n const sync = () => {\n if (pending) {\n return;\n }\n cleanup();\n const result = fn(single ? values[0] : values, set);\n if (auto) {\n set(result);\n }\n else {\n cleanup = is_function(result) ? result : noop;\n }\n };\n const unsubscribers = stores_array.map((store, i) => subscribe(store, (value) => {\n values[i] = value;\n pending &= ~(1 << i);\n if (inited) {\n sync();\n }\n }, () => {\n pending |= (1 << i);\n }));\n inited = true;\n sync();\n return function stop() {\n run_all(unsubscribers);\n cleanup();\n };\n });\n}\n\nexport { derived, readable, writable };\n","export function parse(str, loose) {\n\tif (str instanceof RegExp) return { keys:false, pattern:str };\n\tvar c, o, tmp, ext, keys=[], pattern='', arr = str.split('/');\n\tarr[0] || arr.shift();\n\n\twhile (tmp = arr.shift()) {\n\t\tc = tmp[0];\n\t\tif (c === '*') {\n\t\t\tkeys.push('wild');\n\t\t\tpattern += '/(.*)';\n\t\t} else if (c === ':') {\n\t\t\to = tmp.indexOf('?', 1);\n\t\t\text = tmp.indexOf('.', 1);\n\t\t\tkeys.push( tmp.substring(1, !!~o ? o : !!~ext ? ext : tmp.length) );\n\t\t\tpattern += !!~o && !~ext ? '(?:/([^/]+?))?' : '/([^/]+?)';\n\t\t\tif (!!~ext) pattern += (!!~o ? '?' : '') + '\\\\' + tmp.substring(ext);\n\t\t} else {\n\t\t\tpattern += '/' + tmp;\n\t\t}\n\t}\n\n\treturn {\n\t\tkeys: keys,\n\t\tpattern: new RegExp('^' + pattern + (loose ? '(?=$|\\/)' : '\\/?$'), 'i')\n\t};\n}\n\nvar RGX = /*#__PURE__*/ /(\\/|^)([:*][^/]*?)(\\?)?(?=[/.]|$)/g;\n\n// error if key missing?\nexport function inject(route, values) {\n\treturn route.replace(RGX, (x, lead, key, optional) => {\n\t\tx = values[key=='*' ? 'wild' : key.substring(1)];\n\t\treturn x ? '/'+x : (optional || key=='*') ? '' : '/' + key;\n\t});\n}\n","\n\n{#if componentParams}\n \n{:else}\n \n{/if}\n\n\n","import { writable } from 'svelte/store'\n\nexport const notification = writable()\n","\nimport { notification } from './store.js'\nimport { tick } from 'svelte'\n\nasync function toaster (node, sessionKey) {\n const unsubscribe = notification.subscribe(value => {\n if (!value) { return }\n node.dispatchEvent(\n new CustomEvent('notify', { detail: value })\n )\n notification.set()\n })\n\n await tick()\n try {\n const existing = JSON.parse(\n sessionStorage.getItem(sessionKey)\n )\n for (const n of existing) {\n notification.set(n)\n }\n } catch (e) {\n } finally {\n try {\n sessionStorage.removeItem(sessionKey)\n } catch (e2) {}\n }\n\n return {\n destroy () {\n unsubscribe()\n }\n }\n}\n\nexport {\n toaster\n}\n","
    \n {#each toasts as toast (toast.id)}\n
  • \n {#if toast.persist}\n \n {/if}\n
    \n {toast.message}\n
    \n
    maybePurge(toast) }>\n
    \n
  • \n {/each}\n
\n\n\n\n\n","import { notification } from './store.js'\n\nfunction parseLegacyOptions (options) {\n return typeof options === 'number' ? { timeout: options } : options\n}\n\nexport function send (message, type = 'default', options) {\n notification.set({ type, message, options: parseLegacyOptions(options) })\n}\n\nexport function danger (message, options) {\n send(message, 'danger', options)\n}\n\nexport function warning (message, options) {\n send(message, 'warning', options)\n}\n\nexport function info (message, options) {\n send(message, 'info', options)\n}\n\nexport function success (message, options) {\n send(message, 'success', options)\n}\n","import {parse} from 'regexparam'\nimport {loc} from './Router.svelte'\n\n// List of nodes to update\nconst nodes = []\n\n// Current location\nlet location\n\n// Function that updates all nodes marking the active ones\nfunction checkActive(el) {\n const matchesLocation = el.pattern.test(location)\n toggleClasses(el, el.className, matchesLocation)\n toggleClasses(el, el.inactiveClassName, !matchesLocation)\n}\n\nfunction toggleClasses(el, className, shouldAdd) {\n (className || '').split(' ').forEach((cls) => {\n if (!cls) {\n return\n }\n // Remove the class firsts\n el.node.classList.remove(cls)\n\n // If the pattern doesn't match, then set the class\n if (shouldAdd) {\n el.node.classList.add(cls)\n }\n })\n}\n\n// Listen to changes in the location\nloc.subscribe((value) => {\n // Update the location\n location = value.location + (value.querystring ? '?' + value.querystring : '')\n\n // Update all nodes\n nodes.map(checkActive)\n})\n\n/**\n * @typedef {Object} ActiveOptions\n * @property {string|RegExp} [path] - Path expression that makes the link active when matched (must start with '/' or '*'); default is the link's href\n * @property {string} [className] - CSS class to apply to the element when active; default value is \"active\"\n */\n\n/**\n * Svelte Action for automatically adding the \"active\" class to elements (links, or any other DOM element) when the current location matches a certain path.\n * \n * @param {HTMLElement} node - The target node (automatically set by Svelte)\n * @param {ActiveOptions|string|RegExp} [opts] - Can be an object of type ActiveOptions, or a string (or regular expressions) representing ActiveOptions.path.\n * @returns {{destroy: function(): void}} Destroy function\n */\nexport default function active(node, opts) {\n // Check options\n if (opts && (typeof opts == 'string' || (typeof opts == 'object' && opts instanceof RegExp))) {\n // Interpret strings and regular expressions as opts.path\n opts = {\n path: opts\n }\n }\n else {\n // Ensure opts is a dictionary\n opts = opts || {}\n }\n\n // Path defaults to link target\n if (!opts.path && node.hasAttribute('href')) {\n opts.path = node.getAttribute('href')\n if (opts.path && opts.path.length > 1 && opts.path.charAt(0) == '#') {\n opts.path = opts.path.substring(1)\n }\n }\n\n // Default class name\n if (!opts.className) {\n opts.className = 'active'\n }\n\n // If path is a string, it must start with '/' or '*'\n if (!opts.path || \n typeof opts.path == 'string' && (opts.path.length < 1 || (opts.path.charAt(0) != '/' && opts.path.charAt(0) != '*'))\n ) {\n throw Error('Invalid value for \"path\" argument')\n }\n\n // If path is not a regular expression already, make it\n const {pattern} = typeof opts.path == 'string' ?\n parse(opts.path) :\n {pattern: opts.path}\n\n // Add the node to the list\n const el = {\n node,\n className: opts.className,\n inactiveClassName: opts.inactiveClassName,\n pattern\n }\n nodes.push(el)\n\n // Trigger the action right away\n checkActive(el)\n\n return {\n // When the element is destroyed, remove it from the list\n destroy() {\n nodes.splice(nodes.indexOf(el), 1)\n }\n }\n}\n","class SelectorBuilder {\n constructor() {\n this.selectors = [];\n this.currentFieldName = \"\";\n }\n\n regexIgnoreCaseAndDiactricis(content) {\n // returns a regex with content that has diacricits ignored\n let accentGroups = [\n \"aâãäåæ\",\n \"eéèêë\",\n \"iíìîï\",\n \"oóòôõöø\",\n \"uúùûü\",\n \"cç\",\n \"nñ\",\n \"yýÿ\",\n ];\n\n let regex = content;\n let accentGroup;\n let accent;\n for (accentGroup of accentGroups) {\n for (accent of accentGroup) {\n if (content.includes(accent)) {\n regex = regex.replace(accent, `[${accentGroup}]`);\n }\n }\n }\n return \"(?i)\" + regex;\n }\n\n regexIgnoreCase(content) {\n return \"(?i)\" + content;\n }\n\n withField(fieldName) {\n this.currentFieldName = fieldName;\n return this;\n }\n\n withDocType(docType) {\n this.selectors.push({\n type: {\n $eq: docType,\n },\n });\n return this;\n }\n\n containsIgnoreCase(value) {\n this.selectors.push({\n [this.currentFieldName]: {\n $regex: this.regexIgnoreCase(value),\n },\n });\n return this;\n }\n\n startsWithIgnoreCaseAndDiacritics(value) {\n this.selectors.push({\n [this.currentFieldName]: {\n $regex: this.regexIgnoreCaseAndDiactricis(\"^\" + value),\n },\n });\n return this;\n }\n\n startsWithIgnoreCase(value) {\n this.selectors.push({\n [this.currentFieldName]: {\n $regex: this.regexIgnoreCase(\"^\" + value),\n },\n });\n return this;\n }\n\n startsWithIgnoreCaseAndLeadingZeros(value) {\n this.selectors.push({\n [this.currentFieldName]: {\n $regex: this.regexIgnoreCase(\"^(0+)?\" + value),\n },\n });\n return this;\n }\n\n numericFieldStartsWith(value) {\n value = parseInt(value);\n if (value === 0) return this;\n\n // e.g. 12 => 120 - 129, 1200 - 1299\n const selectorsForNumbersStartingWith = (factor = 10, selectors = []) => {\n selectors.push({\n $and: [\n {\n [this.currentFieldName]: {\n $gte: value * factor,\n },\n },\n {\n [this.currentFieldName]: {\n $lt: value * factor + factor,\n },\n },\n ],\n });\n if (value * factor * 10 > 10000) {\n return selectors;\n } else {\n return selectorsForNumbersStartingWith(factor * 10, selectors);\n }\n };\n this.selectors.push({\n $or: [\n {\n [this.currentFieldName]: {\n $eq: value,\n },\n },\n ...selectorsForNumbersStartingWith(),\n ],\n });\n return this;\n }\n\n equals(value) {\n this.selectors.push({\n [this.currentFieldName]: {\n $eq: value,\n },\n });\n return this;\n }\n\n isNotEqualTo(value) {\n this.selectors.push({\n [this.currentFieldName]: {\n $ne: value,\n },\n });\n return this;\n }\n\n greaterThan(value) {\n this.selectors.push({\n [this.currentFieldName]: {\n $gt: value,\n },\n });\n return this;\n }\n\n withAny(anySelectors) {\n this.selectors.push({\n $or: anySelectors,\n });\n return this;\n }\n\n searchTerm(searchTerm, columns) {\n const formattedSearchTerm = searchTerm.toLowerCase();\n const searchTermWords = formattedSearchTerm\n .split(\" \")\n .map((searchTerm) => searchTerm.trim())\n .filter((searchTerm) => searchTerm !== \"\");\n\n // e.g. 12 => 120 - 129, 1200 - 1299\n const selectorsForNumbersStartingWith = (\n searchWord,\n column,\n factor = 10,\n selectors = []\n ) => {\n const number = Math.abs(parseInt(searchWord, 10));\n if (number === 0) {\n // 000 -> 0001 - 0009\n // 00 -> 0010 - 0099\n // 0 -> 0001 - 0009\n return [\n {\n $and: [\n {\n [column.key]: {\n $gte: 1000 / Math.pow(10, searchWord.length),\n },\n },\n {\n [column.key]: {\n $lt: 1000 / Math.pow(10, searchWord.length - 1),\n },\n },\n ],\n },\n ];\n } else {\n selectors.push({\n $and: [\n {\n [column.key]: {\n $gte: number * factor,\n },\n },\n {\n [column.key]: {\n $lt: number * factor + factor,\n },\n },\n ],\n });\n }\n if (number * factor * 10 > 10000) {\n return selectors;\n } else {\n return selectorsForNumbersStartingWith(\n searchWord,\n column,\n factor * 10,\n selectors\n );\n }\n };\n\n const selectorsForSearchWord = (searchWord) => {\n if (!isNaN(searchWord)) {\n // is number\n let selectors = [];\n columnsToSearch(true).forEach((column) => {\n selectors.push({\n [column.key]: {\n $eq: parseInt(searchWord, 10),\n },\n });\n selectors = [\n ...selectors,\n ...selectorsForNumbersStartingWith(searchWord, column),\n ];\n });\n return selectors;\n } else {\n // is not a number\n return columnsToSearch(false).map((column) => ({\n [column.key]: {\n $regex:\n \"(?i)\" +\n (column?.search === \"from_beginning\" ? \"^(0+?)?\" : \"\") +\n searchWord,\n },\n }));\n }\n };\n\n const columnsToSearch = (numericSearchTerm = false) =>\n columns\n .filter(\n (column) =>\n (!numericSearchTerm && !column.numeric) ||\n (numericSearchTerm && column.numeric)\n )\n .filter((column) => !column.search || column.search !== \"exclude\");\n\n this.selectors = [\n {\n $and: searchTermWords.map((searchTermWord) => ({\n $or: selectorsForSearchWord(searchTermWord),\n })),\n },\n ];\n return this;\n }\n\n build() {\n if (this.selectors.length == 1) {\n return this.selectors[0];\n } else {\n return {\n $and: this.selectors,\n };\n }\n }\n\n buildSelectors() {\n return this.selectors;\n }\n}\n\nexport default SelectorBuilder;\n","import testdataLarge from \"../../../TestDataGenerator/testdata.json\";\nimport SelectorBuilder from \"./SelectorBuilder\";\n\nclass MockDatabase {\n onConnectedCallback;\n constructor() {\n this.data = testdataLarge.docs;\n this.writeData(this.data);\n }\n\n onConnected(onConnectedCallback) {\n this.onConnectedCallback = onConnectedCallback;\n }\n\n async connect() {\n if (this.onConnectedCallback) this.onConnectedCallback();\n }\n\n matchesSelector(doc, selector) {\n for (const [selectorKey, selectorObj] of Object.entries(selector)) {\n if (!selector.hasOwnProperty(selectorKey)) {\n continue;\n }\n if (selectorKey === \"$or\") {\n return selectorObj.some((innerSelector) =>\n this.matchesSelector(doc, innerSelector)\n );\n } else if (selectorKey === \"$and\") {\n return selectorObj.every((innerSelector) =>\n this.matchesSelector(doc, innerSelector)\n );\n } else {\n let comparator = Object.keys(selectorObj)[0];\n let value = doc[selectorKey];\n let compareToValue = selectorObj[comparator];\n\n if (comparator === \"$eq\") {\n return value === compareToValue;\n } else if (comparator === \"$ne\") {\n return value !== compareToValue;\n } else if (comparator === \"$gte\") {\n return value >= compareToValue;\n } else if (comparator === \"$gt\") {\n return value > compareToValue;\n } else if (comparator === \"$lte\") {\n return value <= compareToValue;\n } else if (comparator === \"$lt\") {\n return value < compareToValue;\n } else if (comparator === \"$exists\") {\n return (typeof value !== \"undefined\") === compareToValue;\n } else if (comparator === \"$regex\") {\n if (compareToValue.startsWith(\"(?i)\")) {\n compareToValue = new RegExp(\n compareToValue.replaceAll(\"(?i)\", \"\"),\n \"i\"\n );\n }\n return value && value.match(compareToValue);\n } else {\n console.warn(\"unknown comparator: \" + comparator);\n return false;\n }\n }\n }\n }\n\n async itemWithIdExists(id) {\n let docs = this.getData().filter(\n (doc) => doc.type === \"item\" && doc.id === id\n );\n return docs.length > 0;\n }\n\n async fetchRentalByItemAndCustomerIds(itemId, customerId) {\n let docs = this.getData().filter(\n (doc) =>\n doc.type === \"rental\" &&\n doc.item_id === itemId &&\n doc.customer_id === customerId\n );\n return docs.length > 0 ? docs[0] : {};\n }\n\n async query(options) {\n let {\n filters,\n sortBy,\n sortReverse,\n rowsPerPage,\n currentPage,\n searchTerm,\n docType,\n columns,\n } = options;\n\n let selectors = filters.flatMap((filter) => filter.selectors);\n selectors.push({\n type: {\n $eq: docType,\n },\n });\n\n // filter\n let dataMatchingFilter = this.getData().filter((doc) =>\n this.matchesSelector(doc, { $and: selectors })\n );\n searchTerm = searchTerm.trim().toLowerCase();\n if (searchTerm.length > 0) {\n dataMatchingFilter = dataMatchingFilter.filter((doc) =>\n searchTerm.split(\" \").every((searchWord) =>\n Object.entries(doc)\n .filter(([key, value]) => columns.find((col) => col.key === key))\n .filter(\n ([key, value]) =>\n columns.find((col) => col.key === key).search !== \"exclude\"\n )\n .filter(\n ([key, value]) =>\n (columns.find((col) => col.key === key).numeric &&\n !isNaN(searchWord)) ||\n (!columns.find((col) => col.key === key).numeric &&\n isNaN(searchWord))\n )\n .some(([key, value]) =>\n String(doc[key]).toLowerCase().includes(searchWord)\n )\n )\n );\n }\n\n // sort\n let sortedData = dataMatchingFilter.sort(function (a, b) {\n let i = 0;\n let result = 0;\n while (i < sortBy.length && result === 0) {\n result =\n a[sortBy[i]] < b[sortBy[i]]\n ? -1\n : a[sortBy[i]] > b[sortBy[i]]\n ? 1\n : 0;\n i++;\n }\n if (sortReverse) {\n result *= -1;\n }\n return result;\n });\n\n // paginate\n let paginatedData = sortedData.slice(\n rowsPerPage * currentPage,\n rowsPerPage * currentPage + rowsPerPage\n );\n\n return {\n docs: paginatedData,\n count: Promise.resolve(dataMatchingFilter.length),\n };\n }\n\n cancelListenerForDocType(docType) {}\n\n async listenForChanges(onDocsChanged, docType) {}\n\n async updateDoc(updatedDoc) {\n await this.removeDoc(updatedDoc);\n return await this.createDoc(updatedDoc);\n }\n\n async removeDoc(docToRemove) {\n this.writeData(this.getData().filter((doc) => doc._id !== docToRemove._id));\n }\n\n async createDoc(doc) {\n const makeId = () => {\n var result = \"\";\n var characters =\n \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\";\n var charactersLength = characters.length;\n for (var i = 0; i < 10; i++) {\n result += characters.charAt(\n Math.floor(Math.random() * charactersLength)\n );\n }\n return result;\n };\n\n if (!doc.hasOwnProperty(\"_id\")) {\n doc[\"_id\"] = makeId();\n doc[\"_rev\"] = makeId();\n }\n this.writeData([...this.getData(), doc]);\n return doc;\n }\n\n async createIndex(index) {}\n\n async nextUnusedId(docType) {\n let usedIds = this.getData()\n .filter((doc) => doc.type === docType)\n .map((doc) => doc.id);\n return Math.max(...usedIds) + 1;\n }\n\n async findCached(options) {\n return this.fetchAllDocsBySelector(options.selector, options.fields).then(\n (docs) => ({\n docs,\n })\n );\n }\n\n async fetchDocsBySelector(selector, fields) {\n return this.getData()\n .filter((doc) => this.matchesSelector(doc, selector))\n .map((doc) => {\n if (fields) {\n let docWithFields = {};\n fields.forEach((field) => (docWithFields[field] = doc[field]));\n return docWithFields;\n } else {\n return doc;\n }\n });\n }\n\n async fetchUniqueCustomerFieldValues(field, startsWith, isNumeric = false) {\n let customers = this.getData().filter(\n (doc) =>\n doc.type === \"customer\" &&\n doc[field] &&\n String(doc[field]).startsWith(String(startsWith))\n );\n const uniqueValues = new Set();\n customers.forEach((customer) => {\n uniqueValues.add(customer[field]);\n });\n return Array.from(uniqueValues).map((uniqueValue) => ({\n [field]: uniqueValue,\n }));\n }\n\n fetchByType(type) {\n return this.fetchDocsBySelector(\n this.selectorBuilder().withDocType(type).build(),\n [\"_id\"]\n );\n }\n\n fetchByIdAndType(id, type) {\n return this.fetchDocsBySelector(\n this.selectorBuilder()\n .withDocType(type)\n .withField(\"id\")\n .equals(parseInt(id))\n .build(),\n [\"_id\"]\n );\n }\n\n fetchAllDocsBySelector(selector, fields) {\n return this.fetchDocsBySelector(selector, fields);\n }\n\n getData() {\n if (localStorage.hasOwnProperty(\"data\")) {\n return JSON.parse(localStorage.getItem(\"data\"));\n } else {\n return [];\n }\n }\n\n fetchAll() {\n return this.getData();\n }\n\n writeData(data) {\n localStorage.setItem(\"data\", JSON.stringify(data));\n }\n\n selectorBuilder() {\n return new SelectorBuilder();\n }\n}\n\nexport default new MockDatabase();\n","function saveParseTimestampToString(millis) {\n const date = new Date(millis);\n if (isNaN(date) || date.getTime() === 0) return \"\";\n else\n return `${String(date.getDate()).padStart(2, 0)}.${String(\n date.getMonth() + 1\n ).padStart(2, 0)}.${date.getFullYear()}`;\n}\n\nfunction saveParseTimestampToHumanReadableString(millis) {\n const date = new Date(millis);\n let dayDiff = daysBetween(millis, millisAtStartOfToday());\n\n if (isNaN(date) || date.getTime() === 0) return \"\";\n else if (dayDiff >= -2 && dayDiff <= 2) {\n switch (dayDiff) {\n case -2:\n return \"Vorgestern\";\n case -1:\n return \"Gestern\";\n case 0:\n return \"Heute\";\n case 1:\n return \"Morgen\";\n case 2:\n return \"Übermorgen\";\n }\n } else if (dayDiff >= -7 && dayDiff < 0) {\n return `Vor ${Math.abs(dayDiff)} Tagen`;\n } else if (dayDiff <= 7 && dayDiff > 0) {\n return `In ${dayDiff} Tagen`;\n } else\n return `${String(date.getDate()).padStart(2, 0)}.${String(\n date.getMonth() + 1\n ).padStart(2, 0)}.${date.getFullYear()}`;\n}\n\nfunction saveParseStringToBoolean(maybeBoolean) {\n return [\"true\", \"ja\"].includes(String(maybeBoolean).toLowerCase());\n}\n\nfunction millisAtStartOfDay(millis) {\n var msPerDay = 86400 * 1000;\n return millis - (millis % msPerDay);\n}\n\nfunction millisAtStartOfToday() {\n return millisAtStartOfDay(new Date().getTime());\n}\n\nfunction daysBetween(date1, date2) {\n // The number of milliseconds in one day\n const ONE_DAY = 1000 * 60 * 60 * 24;\n // Calculate the difference in milliseconds\n const differenceMs = date1 - date2;\n // Convert back to days and return\n return Math.round(differenceMs / ONE_DAY);\n}\n\nexport {\n saveParseTimestampToHumanReadableString,\n saveParseTimestampToString,\n saveParseStringToBoolean,\n millisAtStartOfToday,\n millisAtStartOfDay,\n};\n","export default (typeof global !== \"undefined\" ? global :\n typeof self !== \"undefined\" ? self :\n typeof window !== \"undefined\" ? window : {});","// shim for using process in browser\n// based off https://github.com/defunctzombie/node-process/blob/master/browser.js\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\nvar cachedSetTimeout = defaultSetTimout;\nvar cachedClearTimeout = defaultClearTimeout;\nif (typeof global.setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n}\nif (typeof global.clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n}\n\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\nfunction nextTick(fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n}\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nvar title = 'browser';\nvar platform = 'browser';\nvar browser = true;\nvar env = {};\nvar argv = [];\nvar version = ''; // empty string to avoid regexp issues\nvar versions = {};\nvar release = {};\nvar config = {};\n\nfunction noop() {}\n\nvar on = noop;\nvar addListener = noop;\nvar once = noop;\nvar off = noop;\nvar removeListener = noop;\nvar removeAllListeners = noop;\nvar emit = noop;\n\nfunction binding(name) {\n throw new Error('process.binding is not supported');\n}\n\nfunction cwd () { return '/' }\nfunction chdir (dir) {\n throw new Error('process.chdir is not supported');\n}function umask() { return 0; }\n\n// from https://github.com/kumavis/browser-process-hrtime/blob/master/index.js\nvar performance = global.performance || {};\nvar performanceNow =\n performance.now ||\n performance.mozNow ||\n performance.msNow ||\n performance.oNow ||\n performance.webkitNow ||\n function(){ return (new Date()).getTime() };\n\n// generate timestamp or delta\n// see http://nodejs.org/api/process.html#process_process_hrtime\nfunction hrtime(previousTimestamp){\n var clocktime = performanceNow.call(performance)*1e-3;\n var seconds = Math.floor(clocktime);\n var nanoseconds = Math.floor((clocktime%1)*1e9);\n if (previousTimestamp) {\n seconds = seconds - previousTimestamp[0];\n nanoseconds = nanoseconds - previousTimestamp[1];\n if (nanoseconds<0) {\n seconds--;\n nanoseconds += 1e9;\n }\n }\n return [seconds,nanoseconds]\n}\n\nvar startTime = new Date();\nfunction uptime() {\n var currentTime = new Date();\n var dif = currentTime - startTime;\n return dif / 1000;\n}\n\nvar browser$1 = {\n nextTick: nextTick,\n title: title,\n browser: browser,\n env: env,\n argv: argv,\n version: version,\n versions: versions,\n on: on,\n addListener: addListener,\n once: once,\n off: off,\n removeListener: removeListener,\n removeAllListeners: removeAllListeners,\n emit: emit,\n binding: binding,\n cwd: cwd,\n chdir: chdir,\n umask: umask,\n hrtime: hrtime,\n platform: platform,\n release: release,\n config: config,\n uptime: uptime\n};\n\nexport default browser$1;\nexport { addListener, argv, binding, browser, chdir, config, cwd, emit, env, hrtime, nextTick, off, on, once, platform, release, removeAllListeners, removeListener, title, umask, uptime, version, versions };\n","'use strict';\nexports.test = function () {\n return typeof global.queueMicrotask === 'function';\n};\n\nexports.install = function (func) {\n return function () {\n global.queueMicrotask(func);\n };\n};\n","'use strict';\n//based off rsvp https://github.com/tildeio/rsvp.js\n//license https://github.com/tildeio/rsvp.js/blob/master/LICENSE\n//https://github.com/tildeio/rsvp.js/blob/master/lib/rsvp/asap.js\n\nvar Mutation = global.MutationObserver || global.WebKitMutationObserver;\n\nexports.test = function () {\n return Mutation;\n};\n\nexports.install = function (handle) {\n var called = 0;\n var observer = new Mutation(handle);\n var element = global.document.createTextNode('');\n observer.observe(element, {\n characterData: true\n });\n return function () {\n element.data = (called = ++called % 2);\n };\n};","'use strict';\n\nexports.test = function () {\n if (global.setImmediate) {\n // we can only get here in IE10\n // which doesn't handel postMessage well\n return false;\n }\n return typeof global.MessageChannel !== 'undefined';\n};\n\nexports.install = function (func) {\n var channel = new global.MessageChannel();\n channel.port1.onmessage = func;\n return function () {\n channel.port2.postMessage(0);\n };\n};","'use strict';\n\nexports.test = function () {\n return 'document' in global && 'onreadystatechange' in global.document.createElement('script');\n};\n\nexports.install = function (handle) {\n return function () {\n\n // Create a \n","/** Dispatch event on click outside of node */\nexport function clickOutside(node) {\n const handleClick = (event) => {\n if (node && !node.contains(event.target) && !event.defaultPrevented) {\n node.dispatchEvent(new CustomEvent(\"click_outside\", node));\n }\n };\n\n document.addEventListener(\"click\", handleClick, true);\n\n return {\n destroy() {\n document.removeEventListener(\"click\", handleClick, true);\n },\n };\n}\n","\n\n
(show = false)}>\n
(show = !show)} class=\"dropbtn\">\n \n
\n \n
    \n {#each menuItems as menuItem}\n {\n show = false;\n menuItem.onClick();\n }}\n >\n {menuItem.title}\n \n {/each}\n
\n
\n\n\n\n","\n\n
\n\n\n","\n\n\n","export default function (elem) {\n const bounding = elem.getBoundingClientRect();\n const out = {};\n\n out.top = bounding.top < 0;\n out.left = bounding.left < 0;\n out.bottom =\n bounding.bottom >\n (window.innerHeight || document.documentElement.clientHeight);\n out.right =\n bounding.right >\n (window.innerWidth || document.documentElement.clientWidth);\n out.any = out.top || out.left || out.bottom || out.right;\n\n return out;\n}\n","\n\n\n\n
\n {@html getOptionLabel(item, filterText)}\n
\n","\n\n\n\n\n\n\n {#if isVirtualList}\n \n handleHover(i)}\n on:focus={() => handleHover(i)}\n on:click={(event) => handleClick({ item, i, event })}\n class=\"listItem\">\n \n \n \n {:else}\n {#each items as item, i}\n {#if item.isGroupHeader && !item.isSelectable}\n
{getGroupHeaderLabel(item)}
\n {:else}\n handleHover(i)}\n on:focus={() => handleHover(i)}\n on:click={(event) => handleClick({ item, i, event })}\n class=\"listItem\"\n tabindex=\"-1\">\n \n \n {/if}\n {:else}\n {#if !hideEmptyState}\n
{noOptionsMessage}
\n {/if}\n {/each}\n {/if}\n\n","\n\n\n\n
\n {@html getSelectionLabel(item)}\n
\n","\n\n\n\n{#each value as item, i}\n \n multiFullItemClearable ? handleClear(i, event) : {}}>\n
\n {@html getSelectionLabel(item)}\n
\n {#if !isDisabled && !multiFullItemClearable}\n handleClear(i, event)}>\n \n \n \n \n {/if}\n \n{/each}\n","\n\n\n\n\n \n {#each visible as row (row.index)}\n \n Missing template\n \n {/each}\n \n\n","\n \n\n","export default function debounce(func, wait, immediate) {\n let timeout;\n\n return function executedFunction() {\n let context = this;\n let args = arguments;\n\n let later = function () {\n timeout = null;\n if (!immediate) func.apply(context, args);\n };\n\n let callNow = immediate && !timeout;\n\n clearTimeout(timeout);\n\n timeout = setTimeout(later, wait);\n\n if (callNow) func.apply(context, args);\n };\n}\n","\n\n\n\n\n\n\n \n {#if isFocused}\n {ariaSelection}\n \n {ariaContext}\n \n {/if}\n \n\n {#if Icon}\n \n {/if}\n\n {#if showMultiSelect}\n \n {/if}\n\n \n\n {#if !isMulti && showSelectedItem}\n
\n \n
\n {/if}\n\n {#if showClearIcon}\n \n \n \n {/if}\n\n {#if !showClearIcon && (showIndicator || (showChevron && !value) || (!isSearchable && !isDisabled && !isWaiting && ((showSelectedItem && !isClearable) || !showSelectedItem)))}\n
\n {#if indicatorSvg}\n {@html indicatorSvg}\n {:else}\n \n \n \n {/if}\n
\n {/if}\n\n {#if isWaiting}\n
\n \n \n \n
\n {/if}\n\n {#if listOpen}\n \n {/if}\n\n {#if !isMulti || (isMulti && !showMultiSelect)}\n \n {/if}\n\n {#if isMulti && showMultiSelect}\n {#each value as item}\n \n {/each}\n {/if}\n\n","\n\n {\n let selection = event.detail;\n if (selection) {\n if (!Array.isArray(selection)) selection = [selection];\n value = selection.map((item) => item.value).join(\", \");\n } else {\n value = \"\";\n }\n }}\n on:clear={(event) => (value = \"\")}\n isDisabled={disabled}\n {isMulti}\n {isCreatable}\n {isClearable}\n {placeholder}\n/>\n","\n\n
\n
\n debounce(() => (searchTerm = event.target.value))}\n placeholder=\"Suche\"\n />\n \n
\n
\n\n\n","export const durationUnitRegex = /[a-zA-Z]/;\r\nexport const calculateRgba = (color, opacity) => {\r\n if (color[0] === \"#\") {\r\n color = color.slice(1);\r\n }\r\n if (color.length === 3) {\r\n let res = \"\";\r\n color.split(\"\").forEach((c) => {\r\n res += c;\r\n res += c;\r\n });\r\n color = res;\r\n }\r\n const rgbValues = (color.match(/.{2}/g) || [])\r\n .map((hex) => parseInt(hex, 16))\r\n .join(\", \");\r\n return `rgba(${rgbValues}, ${opacity})`;\r\n};\r\nexport const range = (size, startAt = 0) => [...Array(size).keys()].map(i => i + startAt);\r\n// export const characterRange = (startChar, endChar) =>\r\n// String.fromCharCode(\r\n// ...range(\r\n// endChar.charCodeAt(0) - startChar.charCodeAt(0),\r\n// startChar.charCodeAt(0)\r\n// )\r\n// );\r\n// export const zip = (arr, ...arrs) =>\r\n// arr.map((val, i) => arrs.reduce((list, curr) => [...list, curr[i]], [val]));\r\n//# sourceMappingURL=utils.js.map","\r\n\r\n\r\n\r\n\r\n {#each range(3, 0) as version}\r\n \r\n {/each}\r\n\r\n","\r\n\r\n\r\n\r\n\r\n
\r\n
\r\n
\r\n\r\n","\n\n\n\n\n","\n\n\n {#await valueFunction() then value}\n {#if isImage}\n {#if value && value !== \"\"}\n \"item\"\n {/if}\n {:else}\n
\n {value}\n
\n {/if}\n {/await}\n\n\n\n","\n\n\n {#each columns as col, i}\n displayValue(col, item)}\n backgroundColor={cellBackgroundColors[i]}\n />\n {/each}\n\n\n\n","\r\n \r\n\r\n\r\n\r\n","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nvar prefix = 'fas';\nvar iconName = 'sort';\nvar width = 320;\nvar height = 512;\nvar ligatures = [];\nvar unicode = 'f0dc';\nvar svgPathData = 'M41 288h238c21.4 0 32.1 25.9 17 41L177 448c-9.4 9.4-24.6 9.4-33.9 0L24 329c-15.1-15.1-4.4-41 17-41zm255-105L177 64c-9.4-9.4-24.6-9.4-33.9 0L24 183c-15.1 15.1-4.4 41 17 41h238c21.4 0 32.1-25.9 17-41z';\n\nexports.definition = {\n prefix: prefix,\n iconName: iconName,\n icon: [\n width,\n height,\n ligatures,\n unicode,\n svgPathData\n ]};\n\nexports.faSort = exports.definition;\nexports.prefix = prefix;\nexports.iconName = iconName;\nexports.width = width;\nexports.height = height;\nexports.ligatures = ligatures;\nexports.unicode = unicode;\nexports.svgPathData = svgPathData;","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nvar prefix = 'fas';\nvar iconName = 'sort-down';\nvar width = 320;\nvar height = 512;\nvar ligatures = [];\nvar unicode = 'f0dd';\nvar svgPathData = 'M41 288h238c21.4 0 32.1 25.9 17 41L177 448c-9.4 9.4-24.6 9.4-33.9 0L24 329c-15.1-15.1-4.4-41 17-41z';\n\nexports.definition = {\n prefix: prefix,\n iconName: iconName,\n icon: [\n width,\n height,\n ligatures,\n unicode,\n svgPathData\n ]};\n\nexports.faSortDown = exports.definition;\nexports.prefix = prefix;\nexports.iconName = iconName;\nexports.width = width;\nexports.height = height;\nexports.ligatures = ligatures;\nexports.unicode = unicode;\nexports.svgPathData = svgPathData;","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nvar prefix = 'fas';\nvar iconName = 'sort-up';\nvar width = 320;\nvar height = 512;\nvar ligatures = [];\nvar unicode = 'f0de';\nvar svgPathData = 'M279 224H41c-21.4 0-32.1-25.9-17-41L143 64c9.4-9.4 24.6-9.4 33.9 0l119 119c15.2 15.1 4.5 41-16.9 41z';\n\nexports.definition = {\n prefix: prefix,\n iconName: iconName,\n icon: [\n width,\n height,\n ligatures,\n unicode,\n svgPathData\n ]};\n\nexports.faSortUp = exports.definition;\nexports.prefix = prefix;\nexports.iconName = iconName;\nexports.width = width;\nexports.height = height;\nexports.ligatures = ligatures;\nexports.unicode = unicode;\nexports.svgPathData = svgPathData;","\n\n\n \n {#each columns as col, i}\n {#if col.disableSort}\n \n {col.title}\n \n {:else}\n (mouseOverColHeader = {})}\n on:mouseover={() => {\n mouseOverColHeader = {};\n mouseOverColHeader[col.key] = true;\n }}\n on:click={() => dispatch(\"colHeaderClicked\", col)}\n class=\"clickable\"\n >\n {col.title}\n \n \n \n \n \n \n \n \n \n \n {/if}\n {/each}\n \n\n\n\n","export { identity as linear } from '../internal/index.mjs';\n\n/*\nAdapted from https://github.com/mattdesl\nDistributed under MIT License https://github.com/mattdesl/eases/blob/master/LICENSE.md\n*/\nfunction backInOut(t) {\n const s = 1.70158 * 1.525;\n if ((t *= 2) < 1)\n return 0.5 * (t * t * ((s + 1) * t - s));\n return 0.5 * ((t -= 2) * t * ((s + 1) * t + s) + 2);\n}\nfunction backIn(t) {\n const s = 1.70158;\n return t * t * ((s + 1) * t - s);\n}\nfunction backOut(t) {\n const s = 1.70158;\n return --t * t * ((s + 1) * t + s) + 1;\n}\nfunction bounceOut(t) {\n const a = 4.0 / 11.0;\n const b = 8.0 / 11.0;\n const c = 9.0 / 10.0;\n const ca = 4356.0 / 361.0;\n const cb = 35442.0 / 1805.0;\n const cc = 16061.0 / 1805.0;\n const t2 = t * t;\n return t < a\n ? 7.5625 * t2\n : t < b\n ? 9.075 * t2 - 9.9 * t + 3.4\n : t < c\n ? ca * t2 - cb * t + cc\n : 10.8 * t * t - 20.52 * t + 10.72;\n}\nfunction bounceInOut(t) {\n return t < 0.5\n ? 0.5 * (1.0 - bounceOut(1.0 - t * 2.0))\n : 0.5 * bounceOut(t * 2.0 - 1.0) + 0.5;\n}\nfunction bounceIn(t) {\n return 1.0 - bounceOut(1.0 - t);\n}\nfunction circInOut(t) {\n if ((t *= 2) < 1)\n return -0.5 * (Math.sqrt(1 - t * t) - 1);\n return 0.5 * (Math.sqrt(1 - (t -= 2) * t) + 1);\n}\nfunction circIn(t) {\n return 1.0 - Math.sqrt(1.0 - t * t);\n}\nfunction circOut(t) {\n return Math.sqrt(1 - --t * t);\n}\nfunction cubicInOut(t) {\n return t < 0.5 ? 4.0 * t * t * t : 0.5 * Math.pow(2.0 * t - 2.0, 3.0) + 1.0;\n}\nfunction cubicIn(t) {\n return t * t * t;\n}\nfunction cubicOut(t) {\n const f = t - 1.0;\n return f * f * f + 1.0;\n}\nfunction elasticInOut(t) {\n return t < 0.5\n ? 0.5 *\n Math.sin(((+13.0 * Math.PI) / 2) * 2.0 * t) *\n Math.pow(2.0, 10.0 * (2.0 * t - 1.0))\n : 0.5 *\n Math.sin(((-13.0 * Math.PI) / 2) * (2.0 * t - 1.0 + 1.0)) *\n Math.pow(2.0, -10.0 * (2.0 * t - 1.0)) +\n 1.0;\n}\nfunction elasticIn(t) {\n return Math.sin((13.0 * t * Math.PI) / 2) * Math.pow(2.0, 10.0 * (t - 1.0));\n}\nfunction elasticOut(t) {\n return (Math.sin((-13.0 * (t + 1.0) * Math.PI) / 2) * Math.pow(2.0, -10.0 * t) + 1.0);\n}\nfunction expoInOut(t) {\n return t === 0.0 || t === 1.0\n ? t\n : t < 0.5\n ? +0.5 * Math.pow(2.0, 20.0 * t - 10.0)\n : -0.5 * Math.pow(2.0, 10.0 - t * 20.0) + 1.0;\n}\nfunction expoIn(t) {\n return t === 0.0 ? t : Math.pow(2.0, 10.0 * (t - 1.0));\n}\nfunction expoOut(t) {\n return t === 1.0 ? t : 1.0 - Math.pow(2.0, -10.0 * t);\n}\nfunction quadInOut(t) {\n t /= 0.5;\n if (t < 1)\n return 0.5 * t * t;\n t--;\n return -0.5 * (t * (t - 2) - 1);\n}\nfunction quadIn(t) {\n return t * t;\n}\nfunction quadOut(t) {\n return -t * (t - 2.0);\n}\nfunction quartInOut(t) {\n return t < 0.5\n ? +8.0 * Math.pow(t, 4.0)\n : -8.0 * Math.pow(t - 1.0, 4.0) + 1.0;\n}\nfunction quartIn(t) {\n return Math.pow(t, 4.0);\n}\nfunction quartOut(t) {\n return Math.pow(t - 1.0, 3.0) * (1.0 - t) + 1.0;\n}\nfunction quintInOut(t) {\n if ((t *= 2) < 1)\n return 0.5 * t * t * t * t * t;\n return 0.5 * ((t -= 2) * t * t * t * t + 2);\n}\nfunction quintIn(t) {\n return t * t * t * t * t;\n}\nfunction quintOut(t) {\n return --t * t * t * t * t + 1;\n}\nfunction sineInOut(t) {\n return -0.5 * (Math.cos(Math.PI * t) - 1);\n}\nfunction sineIn(t) {\n const v = Math.cos(t * Math.PI * 0.5);\n if (Math.abs(v) < 1e-14)\n return 1;\n else\n return 1 - v;\n}\nfunction sineOut(t) {\n return Math.sin((t * Math.PI) / 2);\n}\n\nexport { backIn, backInOut, backOut, bounceIn, bounceInOut, bounceOut, circIn, circInOut, circOut, cubicIn, cubicInOut, cubicOut, elasticIn, elasticInOut, elasticOut, expoIn, expoInOut, expoOut, quadIn, quadInOut, quadOut, quartIn, quartInOut, quartOut, quintIn, quintInOut, quintOut, sineIn, sineInOut, sineOut };\n","import { cubicInOut, linear, cubicOut } from '../easing/index.mjs';\nimport { is_function, assign } from '../internal/index.mjs';\n\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n\r\nfunction __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\n\nfunction blur(node, { delay = 0, duration = 400, easing = cubicInOut, amount = 5, opacity = 0 } = {}) {\n const style = getComputedStyle(node);\n const target_opacity = +style.opacity;\n const f = style.filter === 'none' ? '' : style.filter;\n const od = target_opacity * (1 - opacity);\n return {\n delay,\n duration,\n easing,\n css: (_t, u) => `opacity: ${target_opacity - (od * u)}; filter: ${f} blur(${u * amount}px);`\n };\n}\nfunction fade(node, { delay = 0, duration = 400, easing = linear } = {}) {\n const o = +getComputedStyle(node).opacity;\n return {\n delay,\n duration,\n easing,\n css: t => `opacity: ${t * o}`\n };\n}\nfunction fly(node, { delay = 0, duration = 400, easing = cubicOut, x = 0, y = 0, opacity = 0 } = {}) {\n const style = getComputedStyle(node);\n const target_opacity = +style.opacity;\n const transform = style.transform === 'none' ? '' : style.transform;\n const od = target_opacity * (1 - opacity);\n return {\n delay,\n duration,\n easing,\n css: (t, u) => `\n\t\t\ttransform: ${transform} translate(${(1 - t) * x}px, ${(1 - t) * y}px);\n\t\t\topacity: ${target_opacity - (od * u)}`\n };\n}\nfunction slide(node, { delay = 0, duration = 400, easing = cubicOut } = {}) {\n const style = getComputedStyle(node);\n const opacity = +style.opacity;\n const height = parseFloat(style.height);\n const padding_top = parseFloat(style.paddingTop);\n const padding_bottom = parseFloat(style.paddingBottom);\n const margin_top = parseFloat(style.marginTop);\n const margin_bottom = parseFloat(style.marginBottom);\n const border_top_width = parseFloat(style.borderTopWidth);\n const border_bottom_width = parseFloat(style.borderBottomWidth);\n return {\n delay,\n duration,\n easing,\n css: t => 'overflow: hidden;' +\n `opacity: ${Math.min(t * 20, 1) * opacity};` +\n `height: ${t * height}px;` +\n `padding-top: ${t * padding_top}px;` +\n `padding-bottom: ${t * padding_bottom}px;` +\n `margin-top: ${t * margin_top}px;` +\n `margin-bottom: ${t * margin_bottom}px;` +\n `border-top-width: ${t * border_top_width}px;` +\n `border-bottom-width: ${t * border_bottom_width}px;`\n };\n}\nfunction scale(node, { delay = 0, duration = 400, easing = cubicOut, start = 0, opacity = 0 } = {}) {\n const style = getComputedStyle(node);\n const target_opacity = +style.opacity;\n const transform = style.transform === 'none' ? '' : style.transform;\n const sd = 1 - start;\n const od = target_opacity * (1 - opacity);\n return {\n delay,\n duration,\n easing,\n css: (_t, u) => `\n\t\t\ttransform: ${transform} scale(${1 - (sd * u)});\n\t\t\topacity: ${target_opacity - (od * u)}\n\t\t`\n };\n}\nfunction draw(node, { delay = 0, speed, duration, easing = cubicInOut } = {}) {\n const len = node.getTotalLength();\n if (duration === undefined) {\n if (speed === undefined) {\n duration = 800;\n }\n else {\n duration = len / speed;\n }\n }\n else if (typeof duration === 'function') {\n duration = duration(len);\n }\n return {\n delay,\n duration,\n easing,\n css: (t, u) => `stroke-dasharray: ${t * len} ${u * len}`\n };\n}\nfunction crossfade(_a) {\n var { fallback } = _a, defaults = __rest(_a, [\"fallback\"]);\n const to_receive = new Map();\n const to_send = new Map();\n function crossfade(from, node, params) {\n const { delay = 0, duration = d => Math.sqrt(d) * 30, easing = cubicOut } = assign(assign({}, defaults), params);\n const to = node.getBoundingClientRect();\n const dx = from.left - to.left;\n const dy = from.top - to.top;\n const dw = from.width / to.width;\n const dh = from.height / to.height;\n const d = Math.sqrt(dx * dx + dy * dy);\n const style = getComputedStyle(node);\n const transform = style.transform === 'none' ? '' : style.transform;\n const opacity = +style.opacity;\n return {\n delay,\n duration: is_function(duration) ? duration(d) : duration,\n easing,\n css: (t, u) => `\n\t\t\t\topacity: ${t * opacity};\n\t\t\t\ttransform-origin: top left;\n\t\t\t\ttransform: ${transform} translate(${u * dx}px,${u * dy}px) scale(${t + (1 - t) * dw}, ${t + (1 - t) * dh});\n\t\t\t`\n };\n }\n function transition(items, counterparts, intro) {\n return (node, params) => {\n items.set(params.key, {\n rect: node.getBoundingClientRect()\n });\n return () => {\n if (counterparts.has(params.key)) {\n const { rect } = counterparts.get(params.key);\n counterparts.delete(params.key);\n return crossfade(rect, node, params);\n }\n // if the node is disappearing altogether\n // (i.e. wasn't claimed by the other list)\n // then we need to supply an outro\n items.delete(params.key);\n return fallback && fallback(node, params, intro);\n };\n };\n }\n return [\n transition(to_send, to_receive, false),\n transition(to_receive, to_send, true)\n ];\n}\n\nexport { blur, crossfade, draw, fade, fly, scale, slide };\n","\n\n{#if fullScreenOverlay}\n
\n{/if}\n\n {#if text}\n

{text}

\n {/if}\n \n
\n\n\n","\n\n
\n \n
\n {#await loadData}\n \n {:then data}\n
\n {#each data as row, i (row._id)}\n dispatch(\"rowClicked\", row)}\n />\n {/each}\n \n {:catch error}\n

\n {@html onLoadDataErrorText(error)}\n

\n {/await}\n
\n
\n\n\n","\n\n\n\n\n\n{#if Component}\n \n \n \n {#if state.closeButton}\n {#if isFunction(state.closeButton)}\n \n {:else}\n \n {/if}\n {/if}\n \n \n
\n
\n
\n \n{/if}\n\n\n\n","\n\n\n\n\n","\n\n{#if loadingText}\n \n{/if}\n
\n {#each buttons.filter((button) => !button.hidden) as button}\n {\n button.disabled = true;\n loadingText = button.loadingText;\n await button.onClick();\n loadingText = false;\n button.disabled = false;\n }}\n text={button.text}\n color={button.color ?? \"blue\"}\n />\n {/each}\n
\n\n\n","\n\n
\n
\n

{title}

\n \n
\n
\n\n\n","\n\n
\n

{title}

\n
\n
\n {#each groups.filter( (group) => groupedInputs[group].some((input) => !isHidden(input)) ) as group}\n \n {#each groupedInputs[group].filter((input) => !isHidden(input)) as input}\n \n {#if input.label && input.label.length > 0}\n
\n \n
\n {/if}\n
\n {#if input.nobind}\n \n {:else}\n \n {/if}\n
\n
\n {/each}\n
\n {/each}\n
\n
\n
\n
\n
\n
\n\n\n","\n\n\n","\n\n\n\n\n\n ({\n value: filter,\n label: filter,\n }))}\n {activeFilters}\n bind:searchTerm\n on:filtersChanged={(event) => {\n if (JSON.stringify(event.detail) !== JSON.stringify(activeFilters)) {\n activeFilters = event.detail;\n }\n }}\n bind:this={searchInputRef}\n/>\n\n\n Promise.all(\n columnsToDisplay.map((column) => column.backgroundColor(customer))\n )}\n {indicateSort}\n onLoadDataErrorText={(error) => {\n if (error.status === 401) {\n return \"Benutzername oder Passwort für die Datenbank ist nicht korrekt. Bitte in den Einstellungen (Zahnrad rechts oben) überprüfen.\";\n } else {\n return `Keine Verbindung zur Datenbank.
${\n error.hasOwnProperty(\"message\") ? error.message : \"\"\n }`;\n }\n }}\n on:rowClicked={(event) => {\n popupIsOpen = true;\n popupFormular.show(\n {\n doc: event.detail,\n createNew: false,\n config: inputs,\n },\n onPopupClosed\n );\n }}\n on:colHeaderClicked={(event) => {\n if (sortByColKey == event.detail.key) sortReverse = !sortReverse;\n else sortReverse = false;\n sortByColKey = event.detail.key;\n const col = columnsToDisplay.find((col) => col.key === sortByColKey);\n sort = col.sort ?? [sortByColKey];\n }}\n/>\n\n\n\n {\n popupIsOpen = true;\n popupFormular.show(\n {\n createNew: true,\n config: inputs,\n },\n onPopupClosed\n );\n }}\n/>\n","import { writable } from '../store/index.mjs';\nimport { now, loop, assign } from '../internal/index.mjs';\nimport { linear } from '../easing/index.mjs';\n\nfunction is_date(obj) {\n return Object.prototype.toString.call(obj) === '[object Date]';\n}\n\nfunction tick_spring(ctx, last_value, current_value, target_value) {\n if (typeof current_value === 'number' || is_date(current_value)) {\n // @ts-ignore\n const delta = target_value - current_value;\n // @ts-ignore\n const velocity = (current_value - last_value) / (ctx.dt || 1 / 60); // guard div by 0\n const spring = ctx.opts.stiffness * delta;\n const damper = ctx.opts.damping * velocity;\n const acceleration = (spring - damper) * ctx.inv_mass;\n const d = (velocity + acceleration) * ctx.dt;\n if (Math.abs(d) < ctx.opts.precision && Math.abs(delta) < ctx.opts.precision) {\n return target_value; // settled\n }\n else {\n ctx.settled = false; // signal loop to keep ticking\n // @ts-ignore\n return is_date(current_value) ?\n new Date(current_value.getTime() + d) : current_value + d;\n }\n }\n else if (Array.isArray(current_value)) {\n // @ts-ignore\n return current_value.map((_, i) => tick_spring(ctx, last_value[i], current_value[i], target_value[i]));\n }\n else if (typeof current_value === 'object') {\n const next_value = {};\n for (const k in current_value) {\n // @ts-ignore\n next_value[k] = tick_spring(ctx, last_value[k], current_value[k], target_value[k]);\n }\n // @ts-ignore\n return next_value;\n }\n else {\n throw new Error(`Cannot spring ${typeof current_value} values`);\n }\n}\nfunction spring(value, opts = {}) {\n const store = writable(value);\n const { stiffness = 0.15, damping = 0.8, precision = 0.01 } = opts;\n let last_time;\n let task;\n let current_token;\n let last_value = value;\n let target_value = value;\n let inv_mass = 1;\n let inv_mass_recovery_rate = 0;\n let cancel_task = false;\n function set(new_value, opts = {}) {\n target_value = new_value;\n const token = current_token = {};\n if (value == null || opts.hard || (spring.stiffness >= 1 && spring.damping >= 1)) {\n cancel_task = true; // cancel any running animation\n last_time = now();\n last_value = new_value;\n store.set(value = target_value);\n return Promise.resolve();\n }\n else if (opts.soft) {\n const rate = opts.soft === true ? .5 : +opts.soft;\n inv_mass_recovery_rate = 1 / (rate * 60);\n inv_mass = 0; // infinite mass, unaffected by spring forces\n }\n if (!task) {\n last_time = now();\n cancel_task = false;\n task = loop(now => {\n if (cancel_task) {\n cancel_task = false;\n task = null;\n return false;\n }\n inv_mass = Math.min(inv_mass + inv_mass_recovery_rate, 1);\n const ctx = {\n inv_mass,\n opts: spring,\n settled: true,\n dt: (now - last_time) * 60 / 1000\n };\n const next_value = tick_spring(ctx, last_value, value, target_value);\n last_time = now;\n last_value = value;\n store.set(value = next_value);\n if (ctx.settled) {\n task = null;\n }\n return !ctx.settled;\n });\n }\n return new Promise(fulfil => {\n task.promise.then(() => {\n if (token === current_token)\n fulfil();\n });\n });\n }\n const spring = {\n set,\n update: (fn, opts) => set(fn(target_value, value), opts),\n subscribe: store.subscribe,\n stiffness,\n damping,\n precision\n };\n return spring;\n}\n\nfunction get_interpolator(a, b) {\n if (a === b || a !== a)\n return () => a;\n const type = typeof a;\n if (type !== typeof b || Array.isArray(a) !== Array.isArray(b)) {\n throw new Error('Cannot interpolate values of different type');\n }\n if (Array.isArray(a)) {\n const arr = b.map((bi, i) => {\n return get_interpolator(a[i], bi);\n });\n return t => arr.map(fn => fn(t));\n }\n if (type === 'object') {\n if (!a || !b)\n throw new Error('Object cannot be null');\n if (is_date(a) && is_date(b)) {\n a = a.getTime();\n b = b.getTime();\n const delta = b - a;\n return t => new Date(a + t * delta);\n }\n const keys = Object.keys(b);\n const interpolators = {};\n keys.forEach(key => {\n interpolators[key] = get_interpolator(a[key], b[key]);\n });\n return t => {\n const result = {};\n keys.forEach(key => {\n result[key] = interpolators[key](t);\n });\n return result;\n };\n }\n if (type === 'number') {\n const delta = b - a;\n return t => a + t * delta;\n }\n throw new Error(`Cannot interpolate ${type} values`);\n}\nfunction tweened(value, defaults = {}) {\n const store = writable(value);\n let task;\n let target_value = value;\n function set(new_value, opts) {\n if (value == null) {\n store.set(value = new_value);\n return Promise.resolve();\n }\n target_value = new_value;\n let previous_task = task;\n let started = false;\n let { delay = 0, duration = 400, easing = linear, interpolate = get_interpolator } = assign(assign({}, defaults), opts);\n if (duration === 0) {\n if (previous_task) {\n previous_task.abort();\n previous_task = null;\n }\n store.set(value = target_value);\n return Promise.resolve();\n }\n const start = now() + delay;\n let fn;\n task = loop(now => {\n if (now < start)\n return true;\n if (!started) {\n fn = interpolate(value, new_value);\n if (typeof duration === 'function')\n duration = duration(value, new_value);\n started = true;\n }\n if (previous_task) {\n previous_task.abort();\n previous_task = null;\n }\n const elapsed = now - start;\n if (elapsed > duration) {\n store.set(value = new_value);\n return false;\n }\n // @ts-ignore\n store.set(value = fn(easing(elapsed / duration)));\n return true;\n });\n return task.promise;\n }\n return {\n set,\n update: (fn, opts) => set(fn(target_value, value), opts),\n subscribe: store.subscribe\n };\n}\n\nexport { spring, tweened };\n","import { tweened } from \"svelte/motion\";\n\nconst createStyle = ({\n from = 0,\n to = 1,\n reverse = false,\n duration = 300,\n delay = 0,\n css = {},\n onChange = () => false,\n onEnd = () => false,\n easing\n}) => {\n const animation = tweened(reverse ? to : from, {\n duration,\n delay,\n easing\n });\n animation.subscribe(t => {\n let newStyle = \"\";\n for (let item in css) {\n const {\n input,\n output,\n onComplete = () => false,\n beforeStart = () => false\n } = css[item];\n const inRange = input.filter(i => i <= t).reverse()[0];\n const index = input.indexOf(inRange);\n let val;\n if (!inRange && inRange !== 0) {\n val = output[0];\n beforeStart();\n } else {\n if (input.length - 1 === index) {\n val = output[output.length - 1];\n input[input.length - 1] <= t && onComplete();\n } else {\n const endRange = input[index + 1];\n const percent = ((t - inRange) * 100) / (endRange - inRange);\n const firstItem = output[index];\n const lastItem = output[index + 1];\n if (typeof lastItem === \"object\") {\n val = \"\";\n lastItem.map(i => {\n val += firstItem + ((i - firstItem) * percent) / 100;\n val += \" \";\n });\n } else {\n val = firstItem + ((lastItem - firstItem) * percent) / 100;\n }\n }\n }\n newStyle += `${item}: ${val};`;\n }\n onChange(newStyle);\n if (t === to || t === from) {\n onEnd();\n }\n });\n return {\n play: () => animation.set(to),\n reverse: () => animation.set(from)\n };\n};\n\nexport { createStyle };\n","\n\n\n\n\n \n \n \n \n \n \n\n","\n\n
\n
\n
\n
\n

Datenbank

\n
\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n \n
\n
\n \n
\n
\n\n
\n
\n

WooCommerce

\n
\n
\n\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n\n\n","export function restrictInputToNumbers(node, enable = true) {\n const onKeyPress = (event) => {\n const keys = [\"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\"];\n if (!keys.includes(event.key)) {\n event.returnValue = false;\n if (event.preventDefault) event.preventDefault();\n }\n };\n\n if (enable) {\n node.addEventListener(\"keypress\", onKeyPress);\n }\n\n return {\n destroy() {\n node.removeEventListener(\"keypress\", onKeyPress);\n },\n };\n}\n","\n\n\n\n\n","\n\n
\n {#if multiline}\n {\n resizeTextArea();\n dispatch(\"change\", event.target.value);\n }}\n />\n {:else}\n \n event.key === \"Enter\" ? event.preventDefault() : event}\n on:input={(event) => dispatch(\"change\", event.target.value)}\n />\n {/if}\n\n\n{#each Object.entries(quickset) as [target, text]}\n {\n value = target;\n }}\n />\n{/each}\n\n\n","\n\n\n \n
\n {#if multiple && selectedItem}\n {#each selectedItem as tagItem}\n \n
\n {safeLabelFunction(tagItem)}\n \n
\n
\n {/each}\n {/if}\n \n {#if clearable}\n \n {/if}\n
\n \n {#if filteredListItems && filteredListItems.length > 0}\n {#each filteredListItems as listItem, i}\n {#if listItem && (maxItemsToShowInList <= 0 || i < maxItemsToShowInList)}\n onListItemClick(listItem)}\n on:pointerenter={() => {\n highlightIndex = i\n }}\n >\n \n {#if listItem.highlighted}\n {@html listItem.highlighted}\n {:else}\n {@html listItem.label}\n {/if}\n
\n \n {/if}\n {/each}\n\n {#if maxItemsToShowInList > 0 && filteredListItems.length > maxItemsToShowInList}\n {#if moreItemsText}\n
\n ...{filteredListItems.length - maxItemsToShowInList}\n {moreItemsText}\n
\n {/if}\n {/if}\n {:else if loading && loadingText}\n
\n {loadingText}\n
\n {:else if create}\n
\n {createText}\n
\n {:else if noResultsText}\n
\n {noResultsText}\n
\n {/if}\n \n\n\n\n\n\n","\n\n
\n (value = text)}\n labelFunction={(item) => {\n if (typeof item === \"undefined\") return \"\";\n const values = Object.values(item);\n if (values.length === 0) return \"\";\n else if (values.length === 1 && Object.keys(item)[0] === \"attr\")\n return item.attr;\n else if (suggestionFormat) {\n return suggestionFormat(...values);\n } else {\n return item[valueField];\n }\n }}\n beforeChange={(prevSelectedObject, selectedObject) => {\n if (valueField) value = selectedObject[valueField];\n onSelected(selectedObject);\n }}\n inputId={id}\n {noResultsText}\n {disabled}\n {localSorting}\n hideArrow={true}\n {sortByMatchedKeywords}\n {itemSortFunction}\n localSearch={false}\n {localFiltering}\n valueFieldName={valueField}\n selectedItem={{ attr: value }}\n html5autocomplete={false}\n />\n
\n\n\n","import { derived } from 'svelte/store'\n\nfunction createFormatter (selectedStartDate, selectedEndDate, config) {\n const formatter = derived([ selectedStartDate, selectedEndDate ], ([ $selectedStartDate, $selectedEndDate ]) => {\n const formattedSelected = $selectedStartDate && $selectedStartDate.format(config.format)\n const formattedSelectedEnd = config.isRangePicker && $selectedEndDate && $selectedEndDate.format(config.format)\n\n return {\n formattedSelected,\n formattedSelectedEnd,\n formattedCombined: config.isRangePicker ? `${formattedSelected} - ${formattedSelectedEnd}` : formattedSelected\n }\n })\n\n return { formatter }\n}\n\nexport {\n createFormatter\n}\n","!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs=e()}(this,(function(){\"use strict\";var t=1e3,e=6e4,n=36e5,r=\"millisecond\",i=\"second\",s=\"minute\",u=\"hour\",a=\"day\",o=\"week\",f=\"month\",h=\"quarter\",c=\"year\",d=\"date\",$=\"Invalid Date\",l=/^(\\d{4})[-/]?(\\d{1,2})?[-/]?(\\d{0,2})[Tt\\s]*(\\d{1,2})?:?(\\d{1,2})?:?(\\d{1,2})?[.:]?(\\d+)?$/,y=/\\[([^\\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,M={name:\"en\",weekdays:\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),months:\"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\")},m=function(t,e,n){var r=String(t);return!r||r.length>=e?t:\"\"+Array(e+1-r.length).join(n)+t},g={s:m,z:function(t){var e=-t.utcOffset(),n=Math.abs(e),r=Math.floor(n/60),i=n%60;return(e<=0?\"+\":\"-\")+m(r,2,\"0\")+\":\"+m(i,2,\"0\")},m:function t(e,n){if(e.date()0&&(n=n[0]);t=n[0];for(var i=1;i {\n const isInRange = date.isSameOrAfter(start, 'day') && date.isSameOrBefore(end, 'day')\n return {\n isInRange,\n selectable: isInRange && (!selectableCallback || selectableCallback(date.toDate())),\n isToday: date.isSame(dayjs(), 'day')\n }\n }\n}\n\nexport {\n buildDaySelectionValidator\n}\n","function getCalendarPage (date, dayValidator) {\n const displayedRangeStart = date.startOf('month').startOf('week')\n const displayedRangeEnd = date.endOf('month').endOf('week').add(1, 'day')\n\n const weeks = []\n let currentDay = displayedRangeStart\n while (currentDay.isBefore(displayedRangeEnd, 'day')) {\n const weekOfMonth = Math.floor(currentDay.diff(displayedRangeStart, 'days') / 7)\n const isRequestedMonth = currentDay.isSame(date, 'month')\n weeks[weekOfMonth] = weeks[weekOfMonth] || { days: [], id: `${currentDay.format('YYYYMMYYYY')}${weekOfMonth}` }\n weeks[weekOfMonth].days.push(\n Object.assign({\n partOfMonth: isRequestedMonth,\n firstOfMonth: isRequestedMonth && currentDay.date() === 1,\n lastOfMonth: isRequestedMonth && currentDay.date() === date.daysInMonth(),\n day: currentDay.date(),\n month: currentDay.month(),\n year: currentDay.year(),\n date: currentDay\n }, dayValidator(currentDay))\n )\n currentDay = currentDay.add(1, 'day')\n }\n\n return { month: date.month(), year: date.year(), weeks }\n}\n\nexport {\n getCalendarPage\n}\n","import { dayjs } from './date-utils'\nimport { ensureFutureMonth } from './date-manipulation.js'\nimport { buildDaySelectionValidator } from './day-selection-validator.js'\nimport { getCalendarPage } from './calendar-page.js'\n\nfunction getMonths (config) {\n const { start, end, selectableCallback } = config\n const firstMonth = start.startOf('month').startOf('day')\n const lastMonth = ensureFutureMonth(firstMonth, end.startOf('month').startOf('day'))\n\n const months = []\n const validator = buildDaySelectionValidator(start, end, selectableCallback)\n let date = dayjs(firstMonth)\n while (date.isSameOrBefore(lastMonth)) {\n months.push(getCalendarPage(date, validator))\n date = date.add(1, 'month')\n }\n return months\n}\n\nexport {\n getMonths\n}\n","import { dayjs } from './date-utils'\n\nfunction moveDateWithinAllowedRange (date, config, isStart) {\n const isOutsideRange = (\n date.valueOf() < config.start.valueOf() ||\n date.valueOf() > config.end.valueOf()\n )\n\n if (isOutsideRange) {\n console.warn('Provided date', date.format(), 'is outside specified start-and-end range', config.start.format(), 'to', config.end.format())\n return isStart ? config.start : config.end\n }\n\n return date\n}\n\nfunction sanitizeInitialValue (value, config) {\n let isDateChosen = false\n let chosen\n\n if (config.isRangePicker) {\n const [ from, to ] = value || []\n isDateChosen = Boolean(from).valueOf() && Boolean(to).valueOf()\n chosen = isDateChosen ? value.map(dayjs) : [ dayjs.max(dayjs(), config.start), dayjs.min(dayjs().add(1, 'month'), config.end) ]\n } else {\n isDateChosen = Boolean(value).valueOf()\n chosen = [ isDateChosen ? dayjs(value) : dayjs.max(dayjs(), config.start) ]\n }\n\n const [ from, to ] = chosen\n\n return {\n isDateChosen,\n chosen: [\n moveDateWithinAllowedRange(from, config, true),\n ...config.isRangePicker ? [ moveDateWithinAllowedRange(to, config, false) ] : []\n ]\n }\n}\n\nexport {\n sanitizeInitialValue\n}\n","import { writable } from 'svelte/store'\nimport { createFormatter } from './formatter.js'\nimport { getMonths } from './calendar.js'\nimport { sanitizeInitialValue } from './sanitization.js'\nimport { dayjs } from './date-utils.js'\nimport { ensureFutureMonth } from './date-manipulation.js'\n\nconst contextKey = {}\n\nfunction setup (given, config) {\n const today = dayjs().startOf('day')\n\n const { isDateChosen, chosen: [ preSelectedStart, preSelectedEnd ] } = sanitizeInitialValue(given, config)\n const selectedStartDate = writable(preSelectedStart)\n const selectedEndDate = writable(preSelectedEnd)\n const { formatter } = createFormatter(selectedStartDate, selectedEndDate, config)\n const component = writable('date-view')\n\n const leftDate = preSelectedStart.startOf('month')\n const rightDate = config.isRangePicker ? ensureFutureMonth(preSelectedStart, preSelectedEnd).startOf('month') : null\n\n return {\n months: getMonths(config),\n component,\n today,\n selectedStartDate,\n selectedEndDate,\n leftCalendarDate: writable(leftDate),\n rightCalendarDate: writable(rightDate),\n config,\n shouldShakeDate: writable(false),\n isOpen: writable(false),\n isClosing: writable(false),\n highlighted: writable(today),\n formatter,\n isDateChosen: writable(isDateChosen),\n resetView: () => {\n component.set('date-view')\n },\n isSelectingFirstDate: writable(true)\n }\n}\n\nexport {\n contextKey,\n setup\n}\n","function sizes (w) {\n const contentWidth = [ ...w.document.body.children ].reduce((a, el) => Math.max(\n a, el.getBoundingClientRect().right), 0\n ) - w.document.body.getBoundingClientRect().x\n\n return {\n pageWidth: Math.min(w.document.body.scrollWidth, contentWidth),\n pageHeight: w.document.body.scrollHeight,\n viewportHeight: w.innerHeight,\n viewportWidth: w.innerWidth\n }\n}\n\nconst dimensions = {\n page: {\n padding: 6,\n deadzone: 80\n },\n content: {\n medium: {\n single: {\n height: 410,\n width: 340\n },\n range: {\n height: 410,\n width: 680\n }\n },\n small: {\n single: {\n height: 410,\n width: 340\n },\n range: {\n height: 786,\n width: 340\n }\n }\n }\n}\n\nfunction getPosition (w, e, config) {\n const { isRangePicker } = config\n const { pageWidth, viewportHeight, viewportWidth } = sizes(w)\n\n const display = pageWidth < 480 ? 'small' : 'medium'\n const mode = isRangePicker ? 'range' : 'single'\n const { padding, deadzone } = dimensions.page\n const { width, height } = dimensions.content[display][mode]\n\n if (viewportHeight < (height + padding + deadzone) || viewportWidth < (width + padding)) {\n return {\n fullscreen: true,\n top: 0,\n left: 0\n }\n }\n\n let left = Math.max(padding, e.pageX - (width / 2))\n\n if ((left + width) > pageWidth) {\n left = (pageWidth - width) - padding\n }\n\n let top = Math.max(padding, e.pageY - (height / 2))\n\n const willExceedViewableArea = (top + height) > viewportHeight\n if (willExceedViewableArea) {\n top = viewportHeight - height - padding\n }\n\n return { top, left }\n}\n\nexport {\n getPosition\n}\n","\nconst once = (el, evt, cb) => {\n if (!el) { return }\n function handler () {\n cb.apply(this, arguments)\n el.removeEventListener(evt, handler)\n }\n el.addEventListener(evt, handler)\n}\n\nexport {\n once\n}\n","\n\n\n
\n
\n \n \n
\n
\n
\n
\n \n
\n
\n
\n
\n\n\n","'use strict'\n\nclass CalendarStyle {\n constructor (overrides = {}) {\n this.style = ''\n this.buttonBackgroundColor = '#fff'\n this.buttonBorderColor = '#eee'\n this.buttonTextColor = '#333'\n this.buttonWidth = '300px'\n this.highlightColor = '#f7901e'\n this.passiveHighlightColor = '#FCD9B1'\n\n this.dayBackgroundColor = 'none'\n this.dayBackgroundColorIsNight = 'none'\n this.dayTextColor = '#4a4a4a'\n this.dayTextColorIsNight = '#4a4a4a'\n this.dayTextColorInRange = 'white'\n this.dayHighlightedBackgroundColor = '#efefef'\n this.dayHighlightedTextColor = '#4a4a4a'\n\n this.currentDayTextColor = '#000'\n this.selectedDayTextColor = 'white'\n\n this.timeNightModeTextColor = 'white'\n this.timeNightModeBackgroundColor = '#808080'\n this.timeDayModeTextColor = 'white'\n this.timeDayModeBackgroundColor = 'white'\n this.timeSelectedTextColor = '#3d4548'\n this.timeInputTextColor = '#3d4548'\n this.timeConfirmButtonColor = '#2196F3'\n this.timeConfirmButtonTextColor = 'white'\n\n this.toolbarBorderColor = '#888'\n\n this.contentBackground = 'white'\n\n this.monthYearTextColor = '#3d4548'\n this.legendTextColor = '#4a4a4a'\n\n this.datepickerWidth = 'auto'\n\n Object.entries(overrides).forEach(([ prop, value ]) => {\n this[prop] = value\n })\n }\n\n toWrapperStyle () {\n return `\n --button-background-color: ${this.buttonBackgroundColor};\n --button-border-color: ${this.buttonBorderColor};\n --button-text-color: ${this.buttonTextColor};\n --button-width: ${this.buttonWidth};\n --highlight-color: ${this.highlightColor};\n --passive-highlight-color: ${this.passiveHighlightColor};\n\n --day-background-color: ${this.dayBackgroundColor};\n --day-background-color-is-night: ${this.dayBackgroundColorIsNight};\n --day-text-color: ${this.dayTextColor};\n --day-text-color-in-range: ${this.dayTextColorInRange};\n --day-text-color-is-night: ${this.dayTextColorIsNight};\n --day-highlighted-background-color: ${this.dayHighlightedBackgroundColor};\n --day-highlighted-text-color: ${this.dayHighlightedTextColor};\n\n --current-day-text-color: ${this.currentDayTextColor};\n --selected-day-text-color: ${this.selectedDayTextColor};\n\n --time-night-mode-text-color: ${this.timeNightModeTextColor};\n --time-night-mode-background-color: ${this.timeNightModeBackgroundColor};\n --time-day-mode-text-color: ${this.timeDayModeTextColor};\n --time-day-mode-background-color: ${this.timeDayModeBackgroundColor};\n\n --time-selected-text-color: ${this.timeSelectedTextColor};\n --time-input-text-color: ${this.timeInputTextColor};\n --time-confirm-button-text-color: ${this.timeConfirmButtonTextColor};\n --time-confirm-button-color: ${this.timeConfirmButtonColor};\n\n --toolbar-border-color: ${this.toolbarBorderColor};\n\n --content-background: ${this.contentBackground};\n\n --month-year-text-color: ${this.monthYearTextColor};\n --legend-text-color: ${this.legendTextColor};\n --datepicker-width: ${this.datepickerWidth};\n\n ${this.style}\n `\n }\n}\n\nexport {\n CalendarStyle\n}\n","export function isDateBetweenSelected (a, b, c) {\n const start = a.startOf('day').toDate()\n const stop = b.startOf('day').toDate()\n const day = c.startOf('day').toDate()\n return day > start && day < stop\n}\n","\n
\n {#each days as day}\n
\n \n
\n {/each}\n
\n\n\n","\n\n
\n
\n
\n
\n {#each dayjs.weekdaysShort(true) as day}\n {day}\n {/each}\n
\n
\n {#each $monthView.visibleMonth.weeks as week (week.id)}\n \n {/each}\n
\n
\n\n\n","\n\n
\n
\n \n \n \n
\n
\n {#each availableMonths as monthDefinition, index}\n \n {/each}\n
\n
\n\n\n","let shakeHighlightTimeout\n\nfunction getDay (months, m, d, y) {\n const theMonth = months.find(aMonth => aMonth.month === m && aMonth.year === y)\n if (!theMonth) {\n return null\n }\n\n for (let i = 0; i < theMonth.weeks.length; i += 1) {\n for (let j = 0; j < theMonth.weeks[i].days.length; j += 1) {\n const aDay = theMonth.weeks[i].days[j]\n if (aDay.month === m && aDay.day === d && aDay.year === y) return aDay\n }\n }\n return null\n}\n\nfunction checkIfVisibleDateIsSelectable (months, date) {\n const proposedDay = getDay(\n months,\n date.month(),\n date.date(),\n date.year()\n )\n return proposedDay && proposedDay.selectable\n}\n\nfunction shakeDate (shouldShakeDate, date) {\n clearTimeout(shakeHighlightTimeout)\n shouldShakeDate.set(date)\n shakeHighlightTimeout = setTimeout(() => {\n shouldShakeDate.set(false)\n }, 700)\n}\n\nexport {\n checkIfVisibleDateIsSelectable,\n shakeDate\n}\n","
\n \n registerSelection(e.detail.date)} />\n
\n\n\n\n","'use strict'\n\nimport { dayjs } from './date-utils'\nimport DateView from '../view/date-view/DateView.svelte'\nimport { derived } from 'svelte/store'\n\nfunction createMonthView (months, displayedDate) {\n return derived([ displayedDate ], ([ $displayedDate ]) => {\n let monthIndex = 0\n\n const month = $displayedDate.month()\n const year = $displayedDate.year()\n for (let i = 0; i < months.length; i += 1) {\n if (months[i].month === month && months[i].year === year) {\n monthIndex = i\n }\n }\n\n return {\n monthIndex,\n visibleMonth: months[monthIndex]\n }\n })\n}\n\nfunction createViewContext (isStart, mainContext) {\n const { config, months, leftCalendarDate, rightCalendarDate, selectedStartDate, selectedEndDate } = mainContext\n const [ date, displayedDate ] = isStart ? [ selectedStartDate, leftCalendarDate ] : [ selectedEndDate, rightCalendarDate ]\n const isDaytime = derived(date, $date => {\n if (!$date) { return true }\n const [ h ] = dayjs($date).format('HH:mm').split(':').map(d => parseInt(d))\n return h > config.morning && h < config.night\n })\n\n return {\n isStart,\n date,\n view: DateView,\n isDaytime,\n displayedDate,\n monthView: createMonthView(months, displayedDate)\n }\n}\n\nexport {\n createViewContext\n}\n","
\n \n
\n\n\n\n","\n \n\n\n","import { get } from 'svelte/store'\n\nfunction timeInput (node, store) {\n node.addEventListener('keydown', types)\n node.addEventListener('focus', resetTime)\n node.addEventListener('blur', attemptValuePersist)\n\n let time\n\n const unsubscribe = store.subscribe(given => {\n time = given.split('')\n syncInput()\n })\n\n function syncInput () {\n node.value = time.join('')\n }\n\n function resetTime () {\n time = []\n syncInput()\n }\n\n function persistTime () {\n store.set(time.join(''))\n syncInput()\n }\n\n function attemptValuePersist () {\n if (time.digits === 5) {\n persistTime()\n return\n }\n\n time = get(store).split('')\n syncInput()\n }\n\n function types (e) {\n e.preventDefault()\n const k = e.which\n\n if (k >= 48 && k <= 57) {\n addDigit(k)\n }\n\n if (k === 8) {\n deleteDigit()\n }\n }\n\n function deleteDigit () {\n time.pop()\n time.length === 3 && time.pop()\n syncInput()\n }\n\n function isInvalidDigit (digit) {\n const tooManyDigits = time.length > 4\n const invalidFirstDigit = time.length === 0 && ![ 0, 1, 2 ].includes(digit)\n const invalidSecondDigit = time.length === 1 && time[0] === 2 && digit > 3\n const invalidThirdDigit = time.length === 3 && digit > 5\n return tooManyDigits || invalidFirstDigit || invalidSecondDigit || invalidThirdDigit\n }\n\n function addDigit (k) {\n const digit = k - 48\n if (isInvalidDigit(digit)) { return }\n\n time.length === 2 && time.push(':')\n time.push(digit)\n\n if (time.length === 5) {\n persistTime()\n }\n\n syncInput()\n }\n\n return {\n destroy () {\n unsubscribe()\n node.removeEventListener('keydown', types)\n node.removeEventListener('focus', resetTime)\n node.removeEventListener('blur', attemptValuePersist)\n }\n }\n}\n\nexport {\n timeInput\n}\n","import { writable } from 'svelte/store'\nimport { dayjs } from '../../lib/date-utils.js'\n\nfunction format (h, m) {\n return [\n String(h).padStart(2, '0'),\n String(m).padStart(2, '0')\n ].join(':')\n}\n\nfunction createStore (date, config) {\n const time = writable(dayjs(date).format('HH:mm'))\n\n function increment (segment) {\n time.update(t => {\n let [ h, m ] = t.split(':')\n if (segment === 'hour' && h < 23) { ++h }\n if (segment === 'minute' && m < 59) {\n m = Math.min(59, parseInt(m) + config.minuteStep)\n }\n return format(h, m)\n })\n }\n\n function decrement (segment) {\n time.update(t => {\n let [ h, m ] = t.split(':')\n if (segment === 'hour' && h > 0) { --h }\n if (segment === 'minute' && m > 0) {\n m = Math.max(0, parseInt(m) - config.minuteStep)\n }\n return format(h, m)\n })\n }\n\n function set (t) {\n time.set(t)\n }\n return {\n increment,\n decrement,\n time,\n set\n }\n}\n\nexport {\n createStore\n}\n","
\n
\n increment('hour')} />\n increment('minute')} />\n
\n \n
\n decrement('hour')} />\n decrement('minute')} />\n
\n
\n\n\n\n","\n\n
\n {dayjs($date).format(config.format)}\n \n
\n\n","
\n \n
\n\n\n\n","\n\n\n\n\n dispatch('close')}>\n
\n \n {#if !trigger}\n \n {/if}\n \n
\n
\n
\n \n {#if config.isRangePicker}\n \n {/if}\n
\n \n
\n \n\n","\n\n{#if visible}\n
\n \n \n \n
\n{/if}\n\n\n","\n\n{#if disabled}\n \n{:else}\n {\n const date = event.detail.date;\n const newTimeMillis =\n date.getTime() - getTimeZoneOffsetMs(date.getTime());\n if (millisAtStartOfDay(value) !== millisAtStartOfDay(newTimeMillis)) {\n value = millisAtStartOfDay(newTimeMillis);\n dispatch(\"change\", date);\n }\n if (\n showAlertOnPastDateSelection &&\n millisAtStartOfDay(newTimeMillis) < millisAtStartOfToday()\n ) {\n alert(\n \"Achtung: Dieses Datum liegt in der Vergangenheit, bitte prüfe ob es korrekt ist.\"\n );\n }\n }}\n format={\"#{d}.#{m}.#{Y}\"}\n start={new Date(2018, 1, 1)}\n end={inTwoMonths()}\n continueText={\"Speichern\"}\n >\n \n {\n value = 0;\n dispatch(\"change\", undefined);\n }}\n visible={value !== 0}\n />\n \n{/if}\n\n{#each Object.entries(quickset) as [days, text]}\n addDays(parseInt(days))} />\n{/each}\n\n\n","\n\n {\n if (onChange) {\n onChange(event.detail);\n }\n }}\n {...$$props}\n/>\n\n\n","import Database from \"../../database/ENV_DATABASE\";\nimport { notifier } from \"@beyonk/svelte-notifications\";\nimport Logger from \"js-logger\";\n\nexport default async (customer, closePopup, createNew) => {\n if (\n await Database.fetchByIdAndType(customer.id, \"customer\").then((results) => {\n if (createNew) {\n return results.length > 0;\n } else {\n return results.some((result) => result._id !== customer._id);\n }\n })\n ) {\n notifier.danger(\"Ein/e Nutzer:in mit dieser Nummer existiert bereits!\", 6000);\n return;\n }\n\n await (createNew\n ? Database.createDoc(customer)\n : Database.updateDoc(customer)\n )\n .then((result) => notifier.success(\"Nutzer:in gespeichert!\"))\n .then(closePopup)\n .catch((error) => {\n notifier.danger(\"Nutzer:in konnte nicht gespeichert werden!\", {\n persist: true,\n });\n Logger.error(error);\n });\n};\n","import Database from \"../../database/ENV_DATABASE\";\nimport { notifier } from \"@beyonk/svelte-notifications\";\nimport Logger from \"js-logger\";\n\nexport default (customer, closePopup) => {\n if (confirm(\"Soll diese/r Nutzer:in wirklich gelöscht werden?\")) {\n return Database.removeDoc(customer)\n .then(() => notifier.success(\"Nutzer:in gelöscht!\"))\n .then(closePopup)\n .catch((error) => {\n Logger.error(error);\n notifier.danger(\"Nutzer:in konnte nicht gelöscht werden!\", {\n persist: true,\n });\n });\n }\n};\n","import { millisAtStartOfToday } from \"../../utils/utils\";\nimport Database from \"../../database/ENV_DATABASE\";\n\n// initial values for new customers\n\nexport default {\n id: () => Database.nextUnusedId(\"customer\"),\n registration_date: () => millisAtStartOfToday(),\n type: () => \"customer\",\n lastname: () => \"\",\n firstname: () => \"\",\n renewed_on: () => 0,\n remark: () => \"\",\n subscribed_to_newsletter: () => false,\n email: () => \"\",\n street: () => \"\",\n house_number: () => \"\",\n postal_code: () => \"\",\n city: () => \"\",\n telephone_number: () => \"\",\n heard: () => \"\",\n highlight: () => \"\",\n};\n","import TextInput from \"../../components/Input/TextInput.svelte\";\nimport AutocompleteInput from \"../../components/Input/AutocompleteInput.svelte\";\nimport DateInput from \"../../components/Input/DateInput.svelte\";\nimport SelectInput from \"../../components/Input/SelectInput.svelte\";\nimport Checkbox from \"../../components/Input/Checkbox.svelte\";\nimport Database from \"../../database/ENV_DATABASE\";\nimport ColorDefs from \"../../components/Input/ColorDefs\";\nimport onSave from \"./onSave\";\nimport onDelete from \"./onDelete\";\nimport initialValues from \"./initialValues\";\n\nexport default {\n title: (context) => `Nutzer:in ${context.createNew ? \"anlegen\" : \"bearbeiten\"}`,\n initialValues,\n footerButtons: (context) => [\n {\n text: \"Abbrechen\",\n onClick: context.closePopup,\n },\n {\n text: \"Löschen\",\n onClick: () => onDelete(context.doc, context.closePopup),\n color: \"red\",\n hidden: context.createNew,\n loadingText: \"Nutzer:in wird gelöscht\",\n },\n {\n text: \"Speichern\",\n onClick: () => onSave(context.doc, context.closePopup, context.createNew),\n loadingText: \"Nutzer:in wird gespeichert\",\n },\n ],\n inputs: [\n {\n id: \"id\",\n label: \"Nutzernummer\",\n group: \"ID und Name\",\n component: TextInput,\n props: {\n onlyNumbers: true,\n },\n },\n {\n id: \"firstname\",\n label: \"Vorname\",\n group: \"ID und Name\",\n component: TextInput,\n },\n {\n id: \"lastname\",\n label: \"Nachname\",\n group: \"ID und Name\",\n component: TextInput,\n },\n {\n id: \"street\",\n label: \"Straße\",\n group: \"Adresse\",\n component: AutocompleteInput,\n props: {\n searchFunction: (context) => (searchTerm) =>\n Database.fetchUniqueCustomerFieldValues(\"street\", searchTerm),\n noResultsText: \"Straße noch nicht in Datenbank\",\n valueField: \"street\",\n },\n },\n {\n id: \"house_number\",\n label: \"Hausnummer\",\n group: \"Adresse\",\n component: TextInput,\n },\n {\n id: \"postal_code\",\n label: \"Postleitzahl\",\n group: \"Adresse\",\n component: AutocompleteInput,\n props: {\n onlyNumbers: true,\n searchFunction: (context) => (searchTerm) =>\n Database.fetchUniqueCustomerFieldValues(\n \"postal_code\",\n searchTerm,\n true\n ),\n valueField: \"postal_code\",\n\n noResultsText: \"PLZ noch nicht in Datenbank\",\n },\n },\n {\n id: \"city\",\n label: \"Stadt\",\n group: \"Adresse\",\n component: AutocompleteInput,\n props: {\n searchFunction: (context) => (searchTerm) =>\n Database.fetchUniqueCustomerFieldValues(\"city\", searchTerm),\n valueField: \"city\",\n noResultsText: \"Stadt noch nicht in Datenbank\",\n },\n },\n {\n id: \"email\",\n label: \"E-Mail\",\n group: \"Kontakt\",\n component: TextInput,\n },\n {\n id: \"telephone_number\",\n label: \"Telefonnummer\",\n group: \"Kontakt\",\n component: TextInput,\n },\n {\n id: \"subscribed_to_newsletter\",\n label: \"Newsletter\",\n group: \"Kontakt\",\n component: Checkbox,\n },\n {\n id: \"registration_date\",\n label: \"Beitritt\",\n group: \"Mitgliedschaft\",\n component: DateInput,\n props: {\n container: (context) => context.container,\n },\n },\n {\n id: \"renewed_on\",\n label: \"Verlängert am\",\n group: \"Mitgliedschaft\",\n component: DateInput,\n hidden: (context) => context.createNew,\n props: {\n quickset: { 0: \"Heute\" },\n container: (context) => context.container,\n },\n },\n {\n id: \"heard\",\n label: \"Aufmerksam geworden\",\n group: \"Mitgliedschaft\",\n component: SelectInput,\n props: {\n selectionOptions: [\n \"Internet\",\n \"Freunde & Bekannte\",\n \"Zeitung / Medien\",\n \"Nachbarschaft\",\n ],\n isCreatable: true,\n isMulti: true,\n isClearable: true,\n },\n },\n {\n id: \"remark\",\n label: \"Bemerkung\",\n group: \"Sonstiges\",\n component: TextInput,\n },\n {\n id: \"highlight\",\n label: \"Markieren\",\n group: \"Sonstiges\",\n component: SelectInput,\n props: {\n selectionOptions: [\n { value: \"\", label: \"Nicht markieren\" },\n {\n value: ColorDefs.HIGHLIGHT_GREEN,\n label:\n \"
Grün\",\n },\n {\n value: ColorDefs.HIGHLIGHT_BLUE,\n label:\n \" Blau\",\n },\n {\n value: ColorDefs.HIGHLIGHT_YELLOW,\n label:\n \" Gelb\",\n },\n {\n value: ColorDefs.HIGHLIGHT_RED,\n label:\n \" Rot\",\n },\n ],\n isClearable: true,\n isMulti: false,\n },\n },\n ],\n};\n","const ONE_YEAR_AGO_MILLIS = new Date().getTime() - 1000 * 60 * 60 * 24 * 365;\n\nexport default {\n filters: {\n \"Newsletter: Ja\": {\n required_fields: [\"subscribed_to_newsletter\"],\n selectors: {\n subscribed_to_newsletter: {\n $eq: true,\n },\n },\n },\n \"Newsletter: Nein\": {\n required_fields: [\"subscribed_to_newsletter\"],\n selectors: {\n subscribed_to_newsletter: {\n $eq: false,\n },\n },\n },\n \"Beitritt vor > 1 Jahr\": {\n required_fields: [\"registration_date\"],\n selectors: {\n registration_date: {\n $lt: ONE_YEAR_AGO_MILLIS,\n },\n },\n },\n \"Beitritt vor < 1 Jahr\": {\n required_fields: [\"registration_date\"],\n selectors: {\n registration_date: {\n $gt: ONE_YEAR_AGO_MILLIS,\n },\n },\n },\n \"Verlängert vor > 1 Jahr\": {\n required_fields: [\"renewed_on\"],\n selectors: {\n renewed_on: {\n $lt: ONE_YEAR_AGO_MILLIS,\n },\n },\n },\n \"Verlängert vor < 1 Jahr\": {\n required_fields: [\"renewed_on\"],\n selectors: {\n renewed_on: {\n $gt: ONE_YEAR_AGO_MILLIS,\n },\n },\n },\n },\n activeByDefault: [],\n};\n","import testdata from \"../../../TestDataGenerator/testdata.json\";\n\nclass WoocommerceClientMock {\n constructor() {}\n\n async fetchItem(wcItemId) {\n await new Promise((r) => setTimeout(r, 1500));\n const item = testdata.docs.find((item) => item.wc_id == wcItemId);\n if (wcItemId && item) {\n return {\n stock_status: item.status,\n attributes: [\n {\n options: [item.deposit + \" €\"],\n },\n ],\n ...(item.image && {\n images: [\n {\n src: item.image,\n },\n ],\n }),\n permalink: item.wc_url,\n categories: [\n {\n name: item.category,\n },\n ],\n };\n } else {\n throw new Error(\"Failed to load wc product, http response code 404\");\n }\n }\n\n _translateItemAttributesForWc(item) {\n const isRentedAndHasReturnDateInFuture =\n item.expected_return_date && item.status == \"outofstock\" ? true : false;\n\n console.log(\n \"expected return date\",\n item.expected_return_date,\n isRentedAndHasReturnDateInFuture\n );\n }\n\n async updateItem(item) {\n this._translateItemAttributesForWc(item);\n await new Promise((r) => setTimeout(r, 1500));\n }\n\n async deleteItem(item) {\n await new Promise((r) => setTimeout(r, 1500));\n }\n\n async createItem(item) {\n this._translateItemAttributesForWc(item);\n await new Promise((r) => setTimeout(r, 1500));\n return {\n permalink: \"link\",\n id: \"wcId\",\n };\n }\n}\n\nexport default new WoocommerceClientMock();\n","const setNumericValuesDefault0 = (doc, columns) => {\n Object.keys(doc).forEach((key) => {\n const colForKey = columns.find((col) => col.key === key);\n if (colForKey && colForKey.numeric && doc[key] === \"\") {\n doc[key] = 0; // default value for numbers\n }\n });\n};\n\nexport { setNumericValuesDefault0 };\n","import Database from \"../../database/ENV_DATABASE\";\nimport { notifier } from \"@beyonk/svelte-notifications\";\nimport WoocommerceClient from \"../../database/ENV_WC_CLIENT\";\nimport columns from \"./columns\";\nimport { setNumericValuesDefault0 } from \"../utils\";\nimport Logger from \"js-logger\";\n\nexport default async (item, closePopup) => {\n if (\n await Database.fetchByIdAndType(item.id, \"item\").then(\n (results) => results.length > 0\n )\n ) {\n notifier.danger(\n \"Ein Gegenstand mit dieser Nummer existiert bereits!\",\n 6000\n );\n return;\n }\n\n setNumericValuesDefault0(item, columns);\n\n // create item on woocommerce first to store wc_id in db afterwards\n // await needed here so that a wc_id is created and stored in db before the user can edit the item again\n await WoocommerceClient.createItem(item)\n .then((wcDoc) => {\n item.wc_url = wcDoc.permalink;\n item.wc_id = wcDoc.id;\n notifier.success(\"Gegenstand auf der Webseite erstellt!\", 3000);\n })\n .catch((error) => {\n notifier.warning(\n \"Gegenstand konnte auf der Webseite nicht erstellt werden!\",\n {\n persist: true,\n }\n );\n Logger.error(error);\n })\n // create in db even if creating item in woocommerce fails\n .then(() => Database.createDoc(item))\n .then(closePopup)\n .then(() => notifier.success(\"Gegenstand gespeichert!\"))\n .catch((error) => {\n notifier.danger(\"Gegenstand konnte nicht gespeichert werden!\", {\n persist: true,\n });\n Logger.error(error);\n });\n};\n","import Database from \"../../database/ENV_DATABASE\";\nimport WoocommerceClient from \"../../database/ENV_WC_CLIENT\";\nimport { notifier } from \"@beyonk/svelte-notifications\";\nimport Logger from \"js-logger\";\n\nexport default async (item, closePopup) => {\n if (confirm(\"Soll dieser Gegenstand wirklich gelöscht werden?\")) {\n item.status = \"deleted\";\n await Database.updateDoc(item)\n .then(() => notifier.success(\"Gegenstand als gelöscht markiert!\"))\n .then(closePopup)\n .catch((error) => {\n Logger.error(error);\n notifier.danger(\"Gegenstand konnte nicht gelöscht werden!\", {\n persist: true,\n });\n });\n\n await WoocommerceClient.deleteItem(item)\n .then(() =>\n notifier.success(\"Gegenstand von der Webseite gelöscht!\", 3000)\n )\n .catch((error) => {\n notifier.warning(\n \"Gegenstand konnte nicht von der Webseite gelöscht werden!\",\n {\n persist: true,\n }\n );\n Logger.error(error);\n });\n }\n};\n","import Database from \"../../database/ENV_DATABASE\";\nimport WoocommerceClient from \"../../database/ENV_WC_CLIENT\";\nimport { notifier } from \"@beyonk/svelte-notifications\";\nimport columns from \"./columns\";\nimport { setNumericValuesDefault0 } from \"../utils\";\nimport Logger from \"js-logger\";\n\nexport default async (item, closePopup) => {\n if (\n await Database.fetchByIdAndType(item.id, \"item\").then((results) =>\n results.some((result) => result._id !== item._id)\n )\n ) {\n notifier.danger(\n \"Ein Gegenstand mit dieser Nummer existiert bereits!\",\n 6000\n );\n return;\n }\n\n setNumericValuesDefault0(item, columns);\n\n await Database.updateDoc(item)\n .then(closePopup)\n .then(() => notifier.success(\"Gegenstand gespeichert!\"))\n .catch((error) => {\n notifier.danger(\"Gegenstand konnte nicht gespeichert werden!\", 6000);\n Logger.error(error);\n });\n\n // no await to update woocommerce in background\n WoocommerceClient.updateItem(item)\n .then(() =>\n notifier.success(\"Gegenstand auf der Webseite aktualisiert!\", 3000)\n )\n .catch((error) => {\n notifier.warning(\n \"Gegenstand auf der Webseite konnte nicht aktualisiert werden!\",\n 6000\n );\n Logger.error(error);\n });\n};\n","import Database from \"../../database/ENV_DATABASE\";\nimport WoocommerceClient from \"../../database/ENV_WC_CLIENT\";\nimport { notifier } from \"@beyonk/svelte-notifications\";\nimport { itemById } from \"../selectors\";\nimport Logger from \"js-logger\";\n\nexport default async (item, closePopup) => {\n if (confirm(\"Soll dieser Gegenstand wiederhergestellt werden?\")) {\n let doc = (await Database.fetchDocsBySelector(itemById(item.id)))[0];\n doc.status = \"instock\";\n await WoocommerceClient.createItem(doc)\n .then((wcDoc) => {\n notifier.success(\"Gegenstand auf der Webseite erstellt!\", 3000);\n doc.wc_url = wcDoc.permalink;\n doc.wc_id = wcDoc.id;\n return Database.updateDoc(doc);\n })\n .then(closePopup)\n .catch((error) => {\n notifier.warning(\n \"Gegenstand konnte auf der Webseite nicht erstellt werden!\",\n 6000\n );\n Logger.error(error);\n });\n }\n};\n","import { millisAtStartOfToday } from \"../../utils/utils\";\nimport Database from \"../../database/ENV_DATABASE\";\n\n// initial values for new customers\n\nexport default {\n id: () => Database.nextUnusedId(\"item\"),\n added: () => millisAtStartOfToday(),\n status: () => \"instock\",\n type: () => \"item\",\n name: () => \"\",\n brand: () => \"\",\n itype: () => \"\",\n category: () => \"\",\n deposit: () => \"\",\n parts: () => \"\",\n exists_more_than_once: () => false,\n manual: () => \"\",\n package: () => \"\",\n wc_url: () => \"\",\n wc_id: () => \"\",\n image: () => \"\",\n highlight: () => \"\",\n synonyms: () => \"\",\n description: () => \"\",\n};\n","import TextInput from \"../../components/Input/TextInput.svelte\";\nimport DateInput from \"../../components/Input/DateInput.svelte\";\nimport SelectInput from \"../../components/Input/SelectInput.svelte\";\nimport Checkbox from \"../../components/Input/Checkbox.svelte\";\nimport ColorDefs from \"../../components/Input/ColorDefs\";\nimport onCreate from \"./onCreate\";\nimport onDelete from \"./onDelete\";\nimport onUpdate from \"./onUpdate\";\nimport onRestore from \"./onRestore\";\nimport initialValues from \"./initialValues\";\n\nconst isDeleted = (context) => context.doc.status === \"deleted\";\n\nexport default {\n title: (context) =>\n `Gegenstand ${context.createNew ? \"anlegen\" : \"bearbeiten\"}`,\n initialValues,\n height: \"20rem\",\n footerButtons: (context) => [\n {\n text: \"Abbrechen\",\n onClick: context.closePopup,\n },\n {\n text: \"Löschen\",\n onClick: () => onDelete(context.doc, context.closePopup),\n color: \"red\",\n hidden: context.doc.status === \"deleted\" || context.createNew,\n loadingText: \"Gegenstand wird gelöscht\",\n },\n {\n text: \"Wiederherstellen\",\n onClick: () => onRestore(context.doc, context.closePopup),\n color: \"green\",\n hidden: context.doc.status !== \"deleted\",\n loadingText: \"Gegenstand wird wiederhergestellt\",\n },\n {\n text: \"Speichern\",\n onClick: context.createNew\n ? () => onCreate(context.doc, context.closePopup)\n : () => onUpdate(context.doc, context.closePopup),\n loadingText: \"Gegenstand wird gespeichert\",\n },\n ],\n inputs: [\n {\n id: \"id\",\n label: \"Nr\",\n group: \"Bezeichnung\",\n component: TextInput,\n props: {\n onlyNumbers: true,\n disabled: isDeleted,\n },\n },\n {\n id: \"name\",\n label: \"Name\",\n group: \"Bezeichnung\",\n component: TextInput,\n props: {\n disabled: isDeleted,\n },\n },\n {\n id: \"brand\",\n label: \"Marke\",\n group: \"Bezeichnung\",\n component: TextInput,\n props: {\n disabled: isDeleted,\n },\n },\n {\n id: \"itype\",\n label: \"Typbezeichnung\",\n group: \"Bezeichnung\",\n component: TextInput,\n props: {\n disabled: isDeleted,\n },\n },\n {\n id: \"category\",\n label: \"Kategorie\",\n group: \"Eigenschaften\",\n component: SelectInput,\n props: {\n disabled: isDeleted,\n selectionOptions: [\n \"Küche\",\n \"Haushalt\",\n \"Garten\",\n \"Kinder\",\n \"Freizeit\",\n \"Heimwerker\",\n ],\n isCreatable: false,\n isMulti: true,\n isClearable: true,\n },\n },\n {\n id: \"deposit\",\n label: \"Pfand\",\n group: \"Eigenschaften\",\n component: TextInput,\n props: {\n onlyNumbers: true,\n disabled: isDeleted,\n },\n },\n {\n id: \"added\",\n label: \"Erfasst am\",\n group: \"Eigenschaften\",\n component: DateInput,\n props: {\n disabled: isDeleted,\n container: (context) => context.container,\n },\n },\n {\n id: \"description\",\n label: \"Beschreibung\",\n group: \"Beschreibung\",\n component: TextInput,\n props: {\n multiline: true,\n disabled: isDeleted,\n },\n },\n {\n id: \"synonyms\",\n label: \"Synonyme\",\n group: \"Beschreibung\",\n component: SelectInput,\n props: {\n isCreatable: true,\n isMulti: true,\n isClearable: true,\n placeholder: \"Synonyme anlegen\",\n disabled: isDeleted,\n },\n },\n\n {\n id: \"parts\",\n label: \"Anzahl Teile\",\n group: \"Eigenschaften\",\n component: TextInput,\n props: {\n disabled: isDeleted,\n },\n },\n\n {\n id: \"image\",\n label: \"Bild\",\n group: \"Bild\",\n component: TextInput,\n props: {\n disabled: isDeleted,\n },\n },\n\n {\n id: \"status\",\n label: \"Status\",\n group: \"Status\",\n component: SelectInput,\n props: {\n selectionOptions: [\n { value: \"instock\", label: \"verfügbar\" },\n { value: \"outofstock\", label: \"verliehen\" },\n { value: \"onbackorder\", label: \"nicht verleihbar\" },\n { value: \"reserved\", label: \"reserviert\" },\n ],\n isCreatable: false,\n isMulti: false,\n isClearable: false,\n disabled: isDeleted,\n },\n },\n {\n id: \"exists_more_than_once\",\n label: \"Mehrmals vorhanden\",\n group: \"Status\",\n component: Checkbox,\n props: {\n disabled: isDeleted,\n },\n },\n {\n id: \"highlight\",\n label: \"Markieren\",\n group: \"Status\",\n component: SelectInput,\n props: {\n selectionOptions: [\n { value: \"\", label: \"Nicht markieren\" },\n {\n value: ColorDefs.HIGHLIGHT_GREEN,\n label:\n \" Grün\",\n },\n {\n value: ColorDefs.HIGHLIGHT_BLUE,\n label:\n \" Blau\",\n },\n {\n value: ColorDefs.HIGHLIGHT_YELLOW,\n label:\n \" Gelb\",\n },\n {\n value: ColorDefs.HIGHLIGHT_RED,\n label:\n \" Rot\",\n },\n ],\n isClearable: true,\n isMulti: false,\n disabled: isDeleted,\n },\n },\n {\n id: \"internal_note\",\n label: \"Interne Notiz\",\n group: \"Status\",\n component: TextInput,\n props: {\n multiline: true,\n },\n },\n ],\n};\n","export default {\n filters: {\n \"nicht gelöscht\": {\n required_fields: [\"status\"],\n selectors: {\n status: {\n $ne: \"deleted\",\n },\n },\n },\n gelöscht: {\n required_fields: [\"status\"],\n selectors: {\n status: {\n $eq: \"deleted\",\n },\n },\n },\n verfügbar: {\n required_fields: [\"status\"],\n selectors: {\n status: {\n $eq: \"instock\",\n },\n },\n },\n ausgeliehen: {\n required_fields: [\"status\"],\n selectors: {\n status: {\n $eq: \"outofstock\",\n },\n },\n },\n reserviert: {\n required_fields: [\"status\"],\n selectors: {\n status: {\n $eq: \"reserved\",\n },\n },\n },\n \"nicht verleihbar\": {\n required_fields: [\"status\"],\n selectors: {\n status: {\n $eq: \"onbackorder\",\n },\n },\n },\n \"Kategorie Küche\": {\n required_fields: [\"category\"],\n selectors: {\n category: {\n $eq: \"Küche\",\n },\n },\n },\n \"Kategorie Haushalt\": {\n required_fields: [\"category\"],\n selectors: {\n category: {\n $eq: \"Haushalt\",\n },\n },\n },\n \"Kategorie Garten\": {\n required_fields: [\"category\"],\n selectors: {\n category: {\n $eq: \"Garten\",\n },\n },\n },\n \"Kategorie Heimwerker\": {\n required_fields: [\"category\"],\n selectors: {\n category: {\n $eq: \"Heimwerker\",\n },\n },\n },\n \"Kategorie Kinder\": {\n required_fields: [\"category\"],\n selectors: {\n category: {\n $eq: \"Kinder\",\n },\n },\n },\n \"Kategorie Freizeit\": {\n required_fields: [\"category\"],\n selectors: {\n category: {\n $eq: \"Freizeit\",\n },\n },\n },\n },\n activeByDefault: [\"nicht gelöscht\"],\n};\n","import { writable } from \"svelte/store\";\n\nconst createKeyValueStore = () => {\n const store = writable({});\n\n return {\n ...store,\n setValue: (key, value) =>\n store.update((formularStore) => ({\n ...formularStore,\n [key]: value,\n })),\n removeValue: (key) =>\n store.update((formularStore) => {\n const { [key]: _, ...rest } = formularStore;\n return rest;\n }),\n };\n};\n\nconst createRecentEmployeesArray = () => {\n // the array will simply keep growing and items will be double.\n // however we should never run into performance problems\n // as there are only a couple of dozens of entries created per day\n const store = writable(new Array());\n\n return {\n ...store,\n add: (string) =>\n store.update((prevStore) =>\n string ? [...prevStore, string] : prevStore\n ),\n };\n};\n\nexport const keyValueStore = createKeyValueStore();\nexport const recentEmployeesStore = createRecentEmployeesArray();\n","import Database from \"../../database/ENV_DATABASE\";\nimport { recentEmployeesStore } from \"../../utils/stores\";\nimport { notifier } from \"@beyonk/svelte-notifications\";\nimport WoocommerceClient from \"../../database/ENV_WC_CLIENT\";\nimport columns from \"./columns\";\nimport { setNumericValuesDefault0 } from \"../utils\";\nimport { itemById } from \"../selectors\";\nimport Logger from \"js-logger\";\nimport {\n millisAtStartOfToday,\n saveParseTimestampToString,\n} from \"../../utils/utils\";\n\n\nconst fetchItemById = async (itemId) => {\n try {\n return (await Database.fetchDocsBySelector(itemById(itemId)))[0];\n } catch (error) {\n Logger.error(error);\n throw `Failed to load item with id ${itemId}`;\n }\n};\n\nconst newItemStatus = (rental) => {\n if (\n (rental.returned_on &&\n rental.returned_on !== 0 &&\n rental.returned_on <= new Date().getTime()) || // already returned\n rental.rented_on > new Date().getTime() // or not yet rented\n ) {\n return \"instock\";\n } else {\n return \"outofstock\";\n }\n};\n\nconst getExpReturnDate = (item, rental) => {\n const hasReturnDateInFuture =\n item.status === \"outofstock\" &&\n rental &&\n rental.to_return_on &&\n rental.to_return_on >= millisAtStartOfToday() &&\n !rental.returned_on;\n\n let expReturnDate = \"\";\n if (item.status === \"reserved\") {\n expReturnDate = \"Reserviert und noch nicht abgeholt\";\n } else if (hasReturnDateInFuture) {\n expReturnDate = saveParseTimestampToString(rental.to_return_on);\n }\n return expReturnDate;\n};\n\nconst updateItemStatus = async (item, status, rental) => {\n item.status = status;\n item.expected_return_date = getExpReturnDate(item, rental);\n await Database.updateDoc(item);\n await WoocommerceClient.updateItem(item);\n notifier.success(\n `'${item.name}' wurde als ${\n item.status === \"instock\" ? \"verfügbar\" : \"verliehen\"\n } markiert.`\n );\n};\n\nexport async function onReturnAndSave(context, employee) {\n const { doc, closePopup, createNew, contextVars } = context;\n\n if (createNew) {\n Logger.error(\"createNew is true if it should be false\");\n return; // just for safety\n }\n doc.deposit_returned = doc.deposit_returned\n ? doc.deposit_returned\n : doc.deposit;\n doc.receiving_employee = doc.receiving_employee\n ? doc.receiving_employee\n : employee;\n doc.returned_on = doc.returned_on ? doc.returned_on : millisAtStartOfToday();\n await onSave(context);\n}\n\nexport default async function onSave(context) {\n const { doc, closePopup, createNew, contextVars } = context;\n setNumericValuesDefault0(doc, columns);\n // item changed, reset initial item to status available\n if (\n contextVars.initialItemId !== undefined &&\n contextVars.initialItemId !== doc.item_id\n ) {\n try {\n const initialItem = await fetchItemById(contextVars.initialItemId);\n await updateItemStatus(initialItem, \"instock\");\n notifier.warning(\n `Status von '${contextVars.initialItemName}' wurde auf 'verfügbar' geändert. Bitter überprüfe ob das stimmt.`,\n { persist: true }\n );\n } catch (error) {\n Logger.error(\n `Failed to update status of initial item with name ${contextVars.initialItemName} id ${contextVars.initialItemId}, ${error}`\n );\n notifier.warning(\n `Status von '${contextVars.initialItemName}' konnte nicht aktualisiert werden. Bitte überprüfe den Status dieses Gegenstandes.`,\n { persist: true }\n );\n }\n }\n\n if (contextVars.updateItemStatus) {\n try {\n const item = await fetchItemById(doc.item_id);\n doc.image = item.image;\n await updateItemStatus(item, newItemStatus(doc), doc);\n } catch (error) {\n Logger.error(\n `Failed to update status of item with id ${doc.item_id}, ${error}`\n );\n\n notifier.danger(\n `Status des Gegenstandes mit ID '${doc.item_id}' konnte nicht aktualisiert werden!`,\n { persist: true }\n );\n }\n } else {\n Logger.debug(\n `Did not update item of rental ${doc._id} because updateItemStatus is false.`\n );\n }\n\n await (createNew ? Database.createDoc(doc) : Database.updateDoc(doc))\n .then((_) => notifier.success(\"Leihvorgang gespeichert!\"))\n .then(() => recentEmployeesStore.add(doc.passing_out_employee))\n .then(() => recentEmployeesStore.add(doc.receiving_employee))\n .then(closePopup)\n .catch((error) => {\n notifier.danger(\"Leihvorgang konnte nicht gespeichert werden!\", {\n persist: true,\n });\n Logger.error(error);\n });\n}\n","import Database from \"../../database/ENV_DATABASE\";\nimport { notifier } from \"@beyonk/svelte-notifications\";\nimport Logger from \"js-logger\";\n\nexport default async (rental, closePopup) => {\n if (confirm(\"Soll dieser Leihvorgang wirklich gelöscht werden?\")) {\n Database.removeDoc(rental)\n .then(() => notifier.success(\"Leihvorgang gelöscht!\"))\n .then(closePopup)\n .catch((error) => {\n Logger.error(error);\n notifier.danger(\"Leihvorgang konnte nicht gelöscht werden!\", 6000);\n });\n }\n};\n","import { millisAtStartOfToday, millisAtStartOfDay } from \"../../utils/utils\";\n\n// initial values for new customers\n\nexport default {\n rented_on: () => millisAtStartOfToday(),\n to_return_on: () =>\n millisAtStartOfDay(new Date().getTime() + 7 * 24 * 60 * 60 * 1000),\n returned_on: () => 0,\n extended_on: () => 0,\n type: () => \"rental\",\n image: () => \"\",\n item_id: () => \"\",\n item_name: () => \"\",\n customer_id: () => \"\",\n customer_name: () => \"\",\n passing_out_employee: () => \"\",\n receiving_employee: () => \"\",\n deposit: () => \"\",\n deposit_returned: () => \"\",\n remark: () => \"\",\n};\n","import TextInput from \"../../components/Input/TextInput.svelte\";\nimport AutocompleteInput from \"../../components/Input/AutocompleteInput.svelte\";\nimport DateInput from \"../../components/Input/DateInput.svelte\";\nimport Checkbox from \"../../components/Input/Checkbox.svelte\";\nimport Database from \"../../database/ENV_DATABASE\";\nimport onSave from \"./onSave\";\nimport { onReturnAndSave } from \"./onSave\";\nimport onDelete from \"./onDelete\";\nimport {\n customerColorToDescription,\n itemColorToDescription,\n} from \"../../components/Input/ColorDefs\";\nimport { recentEmployeesStore } from \"../../utils/stores\";\nimport initialValues from \"./initialValues\";\nimport { notifier } from \"@beyonk/svelte-notifications\";\nimport { get } from \"svelte/store\";\nimport {\n customerIdStartsWithSelector,\n itemIdStartsWithAndNotDeletedSelector,\n customerAttributeStartsWithIgnoreCaseSelector,\n itemAttributeStartsWithIgnoreCaseAndNotDeletedSelector,\n activeRentalsForCustomerSelector,\n customerById,\n itemById,\n} from \"../selectors\";\n\n/**\n * Whether the toggle for updateStatusOnWebsite is hidden.\n */\nvar hideToggleUpdateItemStatus = false;\n\nconst updateToggleStatus = (context, itemExistsMoreThanOnce) => {\n if (itemExistsMoreThanOnce) {\n context.contextVars.updateItemStatus = false;\n hideToggleUpdateItemStatus = true;\n } else {\n hideToggleUpdateItemStatus = false;\n }\n};\n\nfunction getRecentEmployees() {\n var employeeObj = {};\n for (let employee of get(recentEmployeesStore)) {\n employeeObj[employee] = employee;\n }\n return employeeObj;\n}\n\nfunction suggestReceivingEmployee(context) {\n if (context.doc.receiving_employee != \"\") {\n return context.doc.receiving_employee;\n }\n\n let mostRecent;\n // retrieve last element of array\n for (mostRecent of get(recentEmployeesStore));\n\n if (!mostRecent) {\n // if none is in the store, assume the passing out employee is currently working\n mostRecent = context.doc.passing_out_employee;\n }\n return mostRecent;\n}\n\nconst updateItemOfRental = (context, item) => {\n if (context.doc.item_id !== item.id) {\n context.updateDoc({\n item_id: item.id,\n item_name: item.name,\n deposit: item.deposit,\n });\n updateToggleStatus(context, item.exists_more_than_once);\n showNotificationsForItem(item);\n }\n};\n\nconst updateCustomerOfRental = (context, customer) => {\n context.updateDoc({\n customer_name: customer.lastname,\n customer_id: customer.id,\n });\n showNotificationsForCustomer(customer.id);\n};\n\nconst showNotificationsForItem = async (item) => {\n // show notification if not available\n var statusMapping = {\n instock: \"verfügbar\",\n outofstock: \"verliehen\",\n reserved: \"reserviert\",\n onbackorder: \"temporär nicht verfügbar / in Reparatur\",\n };\n var status = statusMapping[item.status];\n if ([\"outofstock\", \"reserved\", \"onbackorder\"].includes(item.status)) {\n notifier.danger(\n `${item.name} (${item.id}) ist nicht verfügbar, hat Status: ${status}`,\n 10000\n );\n } else if (item.status == \"undefined\") {\n notifier.warning(\n `Fehler beim Statuscheck, ${item.name} (${item.id}) hat Status: ${status}`,\n 10000\n );\n }\n // show notification it item is highlighted in a color\n if (item.highlight && item.highlight !== \"\") {\n const colorDescription = itemColorToDescription(item.highlight);\n notifier.info(\n `${item.name} (${item.id}) wurde farblich markiert: ${colorDescription}`,\n {\n persist: true,\n }\n );\n }\n};\n\nlet sortItemByIdOrName = (itemA, itemB) => {\n // check if itemX exists at all\n if ((itemA == undefined) | (itemB == undefined)) {\n return 0;\n }\n // if has id and id is numerical compare id\n if (\n (itemA.id !== undefined) &\n (itemB.id !== undefined) &\n !(isNaN(itemA.id) | isNaN(itemB.id))\n ) {\n return itemA.id - itemB.id;\n }\n\n // maybe itemA and itemB themselve are numerical?\n if (!(isNaN(itemA) | isNaN(itemB))) {\n return itemA - itemB;\n }\n\n // inputs are not numerically sortable\n return 0;\n};\n\nconst showNotificationsForCustomer = async (customerId) => {\n Database.fetchAllDocsBySelector(\n activeRentalsForCustomerSelector(customerId),\n [\"item_name\"]\n )\n .then((results) => results.map((doc) => doc[\"item_name\"]))\n .then((activeRentals) => {\n if (activeRentals.length > 0 && activeRentals.length < 3) {\n notifier.warning(\n `Nutzer:in hat schon diese Gegenstände ausgeliehen: ${activeRentals.join(\n \", \"\n )}`,\n 6000\n );\n } else if (activeRentals.length >= 3) {\n notifier.danger(\n `Nutzer:in hat schon mehr als 2 Gegenstände ausgeliehen: ${activeRentals.join(\n \", \"\n )}`,\n 6000\n );\n }\n });\n\n Database.fetchAllDocsBySelector(customerById(customerId), [\n \"remark\",\n \"highlight\",\n ]).then((results) => {\n if (\n // first check if there is a remark\n results.length > 0 &&\n results[0][\"remark\"] &&\n results[0][\"remark\"] !== \"\"\n ) {\n notifier.danger(results[0][\"remark\"], { persist: true });\n }\n if (\n // then check if customer is highlighted\n results.length > 0 &&\n results[0][\"highlight\"] &&\n results[0][\"highlight\"] !== \"\"\n ) {\n const colorDescription = customerColorToDescription(\n results[0][\"highlight\"]\n );\n notifier.info(\n \"Diese/r Nutzer:in wurde farblich markiert: \" + colorDescription,\n { persist: true }\n );\n }\n });\n};\n\nexport default {\n title: (context) =>\n `Leihvorgang ${context.createNew ? \"anlegen\" : \"bearbeiten\"}`,\n initialValues,\n onMount: (context) => () => {\n hideToggleUpdateItemStatus = false;\n /**\n * Whether the status of the selected item should be updated when a rental is created or completed.\n * For items existing more than once this should always be false. For other items this can be toggled by the user.\n */\n context.contextVars.updateItemStatus = true;\n\n /**\n * The id of the item that belongs to this rental at the time of opening the input form. This is required to\n * check if the item was changed when saving the rental.\n */\n context.contextVars.initialItemId = context.doc.item_id;\n context.contextVars.initialItemName = context.doc.item_name;\n\n if (context.doc.item_id) {\n Database.fetchDocsBySelector(itemById(context.doc.item_id), [\n \"id\",\n \"name\",\n \"deposit\",\n \"exists_more_than_once\",\n ]).then((items) => updateItemOfRental(context, items[0]));\n }\n },\n footerButtons: (context) => [\n {\n text: \"Abbrechen\",\n onClick: context.closePopup,\n },\n {\n text: \"Löschen\",\n onClick: () => onDelete(context.doc, context.closePopup),\n color: \"red\",\n hidden: context.createNew,\n loadingText: \"Leihvorgang wird gelöscht\",\n },\n {\n text: `Zurückgeben ${\n suggestReceivingEmployee(context)\n ? `\\n(als ${suggestReceivingEmployee(context)})`\n : \"\"\n }`,\n onClick: () =>\n onReturnAndSave(context, suggestReceivingEmployee(context)),\n color: \"green\",\n hidden: context.createNew,\n loadingText: \"Leihvorgang wird abgeschlossen\",\n },\n\n {\n text: \"Speichern\",\n onClick: () => onSave(context),\n loadingText: \"Leihvorgang wird gespeichert\",\n },\n ],\n inputs: [\n {\n id: \"item_id\",\n label: \"Nr\",\n group: \"Gegenstand\",\n component: AutocompleteInput,\n nobind: true,\n props: {\n localSorting: true,\n sortByMatchedKeywords: true,\n itemSortFunction: () => sortItemByIdOrName,\n valueField: \"id\",\n onlyNumbers: true,\n searchFunction: (context) => (searchTerm) =>\n Database.fetchDocsBySelector(\n itemIdStartsWithAndNotDeletedSelector(searchTerm),\n [\n \"id\",\n \"name\",\n \"deposit\",\n \"exists_more_than_once\",\n \"status\",\n \"highlight\",\n ]\n ),\n suggestionFormat: (context) => (id, item_name) =>\n `${String(id).padStart(4, \"0\")}: ${item_name}`,\n noResultsText: \"Kein Gegenstand mit dieser Id\",\n onSelected: (context) => (selectedItem) => {\n updateItemOfRental(context, selectedItem);\n },\n },\n },\n\n {\n id: \"item_name\",\n label: \"Name\",\n group: \"Gegenstand\",\n component: AutocompleteInput,\n nobind: true,\n props: {\n valueField: \"name\",\n searchFunction: (context) => (searchTerm) =>\n Database.fetchDocsBySelector(\n itemAttributeStartsWithIgnoreCaseAndNotDeletedSelector(\n \"name\",\n searchTerm\n ),\n [\"id\", \"name\", \"deposit\", \"exists_more_than_once\"]\n ),\n suggestionFormat: (context) => (id, item_name) =>\n `${String(id).padStart(4, \"0\")}: ${item_name}`,\n noResultsText: \"Kein Gegenstand mit diesem Name\",\n onSelected: (context) => (selectedItem) => {\n updateItemOfRental(context, selectedItem);\n },\n },\n },\n {\n id: \"update_status\",\n label: \"Status aktualisieren\",\n group: \"Gegenstand\",\n component: Checkbox,\n nobind: true,\n hidden: () => hideToggleUpdateItemStatus,\n props: {\n value: (context) => context.contextVars.updateItemStatus,\n // onChange callback necessary because bind only works for doc attributes\n onChange: (context) => (value) =>\n (context.contextVars.updateItemStatus = value),\n },\n },\n\n {\n id: \"rented_on\",\n label: \"Ausgeliehen am\",\n group: \"Zeitraum\",\n component: DateInput,\n props: {\n container: (context) => context.container,\n },\n },\n {\n id: \"extended_on\",\n label: \"Verlängert am\",\n group: \"Zeitraum\",\n hidden: (context) => context.createNew,\n component: DateInput,\n props: {\n quickset: { 0: \"Heute\" },\n container: (context) => context.container,\n },\n },\n {\n id: \"to_return_on\",\n label: \"Zurückerwartet am\",\n group: \"Zeitraum\",\n component: DateInput,\n props: {\n quickset: { 7: \"1 Woche\", 14: \"2 Wochen\", 21: \"3 Wochen\" },\n container: (context) => context.container,\n showAlertOnPastDateSelection: true,\n },\n },\n {\n id: \"returned_on\",\n label: \"Zurückgegeben am\",\n group: \"Zeitraum\",\n component: DateInput,\n hidden: (context) => context.createNew,\n props: {\n quickset: { 0: \"Heute\" },\n container: (context) => context.container,\n },\n },\n\n {\n id: \"customer_id\",\n label: \"Nr\",\n group: \"Nutzer:in\",\n component: AutocompleteInput,\n nobind: true,\n props: {\n localSorting: true,\n sortByMatchedKeywords: true,\n itemSortFunction: () => sortItemByIdOrName,\n localFiltering: true,\n valueField: \"id\",\n onlyNumbers: true,\n searchFunction: (context) => (searchTerm) =>\n Database.fetchDocsBySelector(\n customerIdStartsWithSelector(searchTerm),\n [\"id\", \"firstname\", \"lastname\"],\n [\"id\"]\n ),\n suggestionFormat: (context) => (id, firstname, lastname) =>\n `${id}: ${firstname} ${lastname}`,\n noResultsText: \"Kein/e Nutzer:in mit dieser Nummer\",\n onSelected: (context) => (selectedCustomer) => {\n updateCustomerOfRental(context, selectedCustomer);\n },\n },\n },\n {\n id: \"customer_name\",\n label: \"Nachname\",\n group: \"Nutzer:in\",\n component: AutocompleteInput,\n nobind: true,\n props: {\n valueField: \"lastname\",\n searchFunction: (context) => (searchTerm) =>\n Database.fetchDocsBySelector(\n customerAttributeStartsWithIgnoreCaseSelector(\n \"lastname\",\n searchTerm\n ),\n [\"id\", \"firstname\", \"lastname\"]\n ),\n suggestionFormat: (context) => (id, firstname, lastname) =>\n `${id}: ${firstname} ${lastname}`,\n noResultsText: \"Kein/e Nutzer:in mit diesem Name\",\n onSelected: (context) => (selectedCustomer) => {\n updateCustomerOfRental(context, selectedCustomer);\n },\n },\n },\n\n {\n id: \"deposit\",\n label: \"Pfand\",\n group: \"Pfand\",\n component: TextInput,\n props: {\n onlyNumbers: true,\n },\n },\n\n {\n id: \"deposit_returned\",\n label: \"Pfand zurück\",\n group: \"Pfand\",\n hidden: (context) => context.createNew,\n component: TextInput,\n props: {\n quickset: (context) => ({ [context.doc.deposit]: context.doc.deposit }),\n onlyNumbers: true,\n },\n },\n\n {\n id: \"passing_out_employee\",\n label: \"Ausgabe\",\n group: \"Mitarbeiter\",\n component: TextInput,\n props: {\n quickset: getRecentEmployees,\n },\n },\n {\n id: \"receiving_employee\",\n label: \"Rücknahme\",\n group: \"Mitarbeiter\",\n hidden: (context) => context.createNew,\n component: TextInput,\n props: {\n quickset: getRecentEmployees,\n },\n },\n {\n id: \"remark\",\n label: \"Bemerkung\",\n group: \"Mitarbeiter\",\n component: TextInput,\n props: {\n multiline: true,\n },\n },\n ],\n};\n","import { millisAtStartOfToday } from \"../../utils/utils\";\n\nconst MILLIS_PER_DAY = 86400 * 1000;\nconst START_OF_TODAY = millisAtStartOfToday();\n\nexport default {\n filters: {\n aktuell: {\n required_fields: [\"returned_on\"],\n selectors: {\n $or: [\n {\n returned_on: {\n $eq: 0,\n },\n },\n {\n returned_on: {\n $exists: false,\n },\n },\n {\n $and: [\n {\n returned_on: {\n $gte: START_OF_TODAY,\n },\n },\n {\n returned_on: {\n $lt: START_OF_TODAY + MILLIS_PER_DAY,\n },\n },\n ],\n },\n ],\n },\n },\n abgeschlossen: {\n required_fields: [\"returned_on\"],\n selectors: {\n returned_on: {\n $gt: 0,\n },\n },\n },\n \"Rückgabe heute\": {\n required_fields: [\"to_return_on\"],\n selectors: {\n $and: [\n {\n to_return_on: {\n $gte: START_OF_TODAY,\n },\n },\n {\n to_return_on: {\n $lt: START_OF_TODAY + MILLIS_PER_DAY,\n },\n },\n ],\n },\n },\n verspätet: {\n required_fields: [\"returned_on\", \"to_return_on\"],\n selectors: {\n $and: [\n {\n to_return_on: {\n $gt: 0,\n },\n },\n {\n returned_on: {\n $eq: 0,\n },\n },\n {\n to_return_on: {\n $lt: START_OF_TODAY,\n },\n },\n ],\n },\n },\n },\n activeByDefault: [\"aktuell\"],\n};\n","import customerColumns from \"./customer/columns\";\nimport customerInputs from \"./customer/inputs\";\nimport customerFilters from \"./customer/filters\";\n\nimport itemColumns from \"./item/columns\";\nimport itemInputs from \"./item/inputs\";\nimport itemFilters from \"./item/filters\";\n\nimport rentalColumns from \"./rental/columns\";\nimport rentalInputs from \"./rental/inputs\";\nimport rentalFilters from \"./rental/filters\";\n\nexport default [\n {\n route: \"/customers\",\n inputs: customerInputs,\n columns: customerColumns,\n filters: customerFilters,\n docType: \"customer\",\n title: \"Nutzer:innen\",\n },\n {\n route: \"/items\",\n inputs: itemInputs,\n columns: itemColumns,\n filters: itemFilters,\n docType: \"item\",\n title: \"Gegenstände\",\n },\n {\n route: \"/rentals\",\n inputs: rentalInputs,\n columns: rentalColumns,\n filters: rentalFilters,\n docType: \"rental\",\n title: \"Leihvorgänge\",\n },\n];\n","import customerColumns from \"./customer/columns\";\nimport rentalColumns from \"./rental/columns\";\nimport itemColumns from \"./item/columns\";\nimport Database from \"../database/ENV_DATABASE\";\n\nvar indexCreated = false;\n\nconst createIndex = async () => {\n if (!indexCreated) {\n // create index for each column for sorting\n await Promise.all(\n [...customerColumns, ...itemColumns, ...rentalColumns]\n .filter((column) => !column.disableSort)\n .map((column) =>\n Database.createIndex({\n index: {\n fields: column.sort\n ? [\"type\", ...column.sort]\n : [\"type\", column.key],\n },\n })\n )\n );\n\n await Database.createIndex({ index: { fields: [\"type\"] } });\n\n indexCreated = true;\n }\n};\n\nexport default createIndex;\n","const MAX_LOG_AGE_MS = 7 * 24 * 60 * 60 * 1000; // 1 week\nconst currentMs = new Date().getTime();\n\nconst loadLogs = () => JSON.parse(localStorage.getItem(\"logs\") ?? \"[]\");\n\nconst persistLogs = (logs) =>\n localStorage.setItem(\n \"logs\",\n JSON.stringify(logs.filter((log) => currentMs - log.time < MAX_LOG_AGE_MS))\n );\n\nconst appendLog = (log) => persistLogs([...loadLogs(), log]);\n\nexport { loadLogs, appendLog };\n","\n","\n\n
\n
\n

Logs

\n \n
\n {#each loadLogs() as log}\n {formatLog(log)}
\n {/each}\n
\n\n\n","import { cubicOut } from '../easing/index.mjs';\nimport { is_function } from '../internal/index.mjs';\n\nfunction flip(node, { from, to }, params = {}) {\n const style = getComputedStyle(node);\n const transform = style.transform === 'none' ? '' : style.transform;\n const [ox, oy] = style.transformOrigin.split(' ').map(parseFloat);\n const dx = (from.left + from.width * ox / to.width) - (to.left + ox);\n const dy = (from.top + from.height * oy / to.height) - (to.top + oy);\n const { delay = 0, duration = (d) => Math.sqrt(d) * 120, easing = cubicOut } = params;\n return {\n delay,\n duration: is_function(duration) ? duration(Math.sqrt(dx * dx + dy * dy)) : duration,\n easing,\n css: (t, u) => {\n const x = u * dx;\n const y = u * dy;\n const sx = t + u * from.width / to.width;\n const sy = t + u * from.height / to.height;\n return `transform: ${transform} translate(${x}px, ${y}px) scale(${sx}, ${sy});`;\n }\n };\n}\n\nexport { flip };\n","// Unique ID creation requires a high quality random # generator. In the browser we therefore\n// require the crypto API and do not support built-in fallback to lower quality random number\n// generators (like Math.random()).\nvar getRandomValues;\nvar rnds8 = new Uint8Array(16);\nexport default function rng() {\n // lazy load so that environments that need to polyfill have a chance to do so\n if (!getRandomValues) {\n // getRandomValues needs to be invoked in a context where \"this\" is a Crypto implementation. Also,\n // find the complete implementation of crypto (msCrypto) on IE11.\n getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto) || typeof msCrypto !== 'undefined' && typeof msCrypto.getRandomValues === 'function' && msCrypto.getRandomValues.bind(msCrypto);\n\n if (!getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n }\n\n return getRandomValues(rnds8);\n}","export default /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;","import REGEX from './regex.js';\n\nfunction validate(uuid) {\n return typeof uuid === 'string' && REGEX.test(uuid);\n}\n\nexport default validate;","import validate from './validate.js';\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\n\nvar byteToHex = [];\n\nfor (var i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).substr(1));\n}\n\nfunction stringify(arr) {\n var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n var uuid = (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase(); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n\n return uuid;\n}\n\nexport default stringify;","import rng from './rng.js';\nimport stringify from './stringify.js';\n\nfunction v4(options, buf, offset) {\n options = options || {};\n var rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n offset = offset || 0;\n\n for (var i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n\n return buf;\n }\n\n return stringify(rnds);\n}\n\nexport default v4;","/** Dispatch event on click outside of node */\nexport function observeResize(node, onResize) {\n const resizeObserver = new ResizeObserver(onResize);\n resizeObserver.observe(node);\n\n return {\n destroy() {\n resizeObserver.unobserve(node);\n },\n };\n}\n","\n","let t = {};\n\nexport const exec = (command, value = null) => {\n document.execCommand(command, false, value)\n}\n\nexport const getTagsRecursive = (element, tags) => {\n tags = tags || (element && element.tagName ? [element.tagName] : []);\n\n if (element && element.parentNode) {\n element = element.parentNode;\n } else {\n return tags;\n }\n\n const tag = element.tagName;\n if (element.style && element.getAttribute) {\n [element.style.textAlign || element.getAttribute('align'), element.style.color || tag === 'FONT' && 'forecolor', element.style.backgroundColor && 'backcolor']\n .filter((item) => item)\n .forEach((item) => tags.push(item));\n }\n\n if (tag === 'DIV') {\n return tags;\n }\n\n tags.push(tag);\n\n return getTagsRecursive(element, tags).filter((_tag) => _tag != null);\n}\n\nexport const saveRange = (editor) => {\n const documentSelection = document.getSelection();\n\n t.range = null;\n\n if (documentSelection.rangeCount) {\n let savedRange = t.range = documentSelection.getRangeAt(0);\n let range = document.createRange();\n let rangeStart;\n range.selectNodeContents(editor);\n range.setEnd(savedRange.startContainer, savedRange.startOffset);\n rangeStart = (range + '').length;\n t.metaRange = {\n start: rangeStart,\n end: rangeStart + (savedRange + '').length\n };\n }\n}\nexport const restoreRange = (editor) => {\n let metaRange = t.metaRange;\n let savedRange = t.range;\n let documentSelection = document.getSelection();\n let range;\n\n if (!savedRange) {\n return;\n }\n\n if (metaRange && metaRange.start !== metaRange.end) { // Algorithm from http://jsfiddle.net/WeWy7/3/\n let charIndex = 0,\n nodeStack = [editor],\n node,\n foundStart = false,\n stop = false;\n\n range = document.createRange();\n\n while (!stop && (node = nodeStack.pop())) {\n if (node.nodeType === 3) {\n let nextCharIndex = charIndex + node.length;\n if (!foundStart && metaRange.start >= charIndex && metaRange.start <= nextCharIndex) {\n range.setStart(node, metaRange.start - charIndex);\n foundStart = true;\n }\n if (foundStart && metaRange.end >= charIndex && metaRange.end <= nextCharIndex) {\n range.setEnd(node, metaRange.end - charIndex);\n stop = true;\n }\n charIndex = nextCharIndex;\n } else {\n let cn = node.childNodes;\n let i = cn.length;\n\n while (i > 0) {\n i -= 1;\n nodeStack.push(cn[i]);\n }\n }\n }\n }\n\n documentSelection.removeAllRanges();\n documentSelection.addRange(range || savedRange);\n}\n\nexport const cleanHtml = (input) => {\n const html = input.match(/(.*?)/);\n let output = html && html[1] || input;\n output = output\n .replace(/\\r?\\n|\\r/g, ' ')\n .replace(//g, '')\n .replace(new RegExp('<(/)*(meta|link|span|\\\\?xml:|st1:|o:|font|w:sdt)(.*?)>', 'gi'), '')\n .replace(/(.*?)/gi, '')\n .replace(/style=\"[^\"]*\"/gi, '')\n .replace(/style='[^']*'/gi, '')\n .replace(/ /gi, ' ')\n .replace(/>(\\s+)<')\n .replace(/class=\"[^\"]*\"/gi, '')\n .replace(/class='[^']*'/gi, '')\n .replace(/<[^/].*?>/g, i => i.split(/[ >]/g)[0] + '>')\n .trim()\n\n output = removeBadTags(output);\n return output;\n}\n\nexport const unwrap = (wrapper) => {\n\tconst docFrag = document.createDocumentFragment();\n\twhile (wrapper.firstChild) {\n\t\tconst child = wrapper.removeChild(wrapper.firstChild);\n\t\tdocFrag.appendChild(child);\n\t}\n\n\t// replace wrapper with document fragment\n\twrapper.parentNode.replaceChild(docFrag, wrapper);\n}\n\nexport const removeBlockTagsRecursive = (elements, tagsToRemove) => {\n Array.from(elements).forEach((item) => {\n if (tagsToRemove.some((tag) => tag === item.tagName.toLowerCase())) {\n if (item.children.length) {\n removeBlockTagsRecursive(item.children, tagsToRemove);\n }\n unwrap(item);\n }\n });\n}\n\nexport const getActionBtns = (actions) => {\n return Object.keys(actions).map((action) => actions[action]);\n}\n\nexport const getNewActionObj = (actions, userActions = []) => {\n if (userActions && userActions.length) {\n const newActions = {};\n userActions.forEach((action) => {\n if (typeof action === 'string') {\n newActions[action] = Object.assign({}, actions[action]);\n } else if (actions[action.name]) {\n newActions[action.name] = Object.assign(actions[action.name], action);\n } else {\n newActions[action.name] = Object.assign({}, action);\n }\n });\n\n return newActions;\n } else {\n return actions;\n }\n}\n\nexport const removeBadTags = (html) => {\n ['style', 'script', 'applet', 'embed', 'noframes', 'noscript'].forEach((badTag) => {\n html = html.replace(new RegExp(`<${badTag}.*?${badTag}(.*?)>`, 'gi'), '')\n });\n\n return html;\n}\n\nexport const isEditorClick = (target, editorWrapper) => {\n if (target === editorWrapper) {\n return true;\n }\n if (target.parentElement) {\n return isEditorClick(target.parentElement, editorWrapper);\n }\n return false;\n}\n","import {\n\texec,\n\tremoveBlockTagsRecursive,\n\tgetActionBtns,\n\tsaveRange,\n\trestoreRange\n} from \"./util\";\n\nimport { get } from \"svelte/store\";\n\nconst linkSvg =\n\t'';\nconst unlinkSvg =\n\t'';\n\nexport default {\n\tviewHtml: {\n\t\ticon:\n\t\t\t'',\n\t\ttitle: \"View HTML\",\n\t\tresult: function() {\n\t\t\tlet refs = get(this.references);\n\t\t\tlet actionObj = get(this.state).actionObj;\n\t\t\tlet helper = get(this.helper);\n\n\t\t\thelper.showEditor = !helper.showEditor;\n\t\t\trefs.editor.style.display = helper.showEditor ? \"block\" : \"none\";\n\t\t\trefs.raw.style.display = helper.showEditor ? \"none\" : \"block\";\n\t\t\tif (helper.showEditor) {\n\t\t\t\trefs.editor.innerHTML = refs.raw.value;\n\t\t\t} else {\n\t\t\t\trefs.raw.value = refs.editor.innerHTML;\n\t\t\t}\n\t\t\tsetTimeout(() => {\n\t\t\t\tObject.keys(actionObj).forEach(\n\t\t\t\t\taction => (actionObj[action].disabled = !helper.showEditor)\n\t\t\t\t);\n\t\t\t\tactionObj.viewHtml.disabled = false;\n\t\t\t\tactionObj.viewHtml.active = !helper.showEditor;\n\n\t\t\t\tthis.state.update(state => {\n\t\t\t\t\tstate.actionBtns = getActionBtns(actionObj);\n\t\t\t\t\tstate.actionObj = actionObj;\n\t\t\t\t\treturn state;\n\t\t\t\t});\n\t\t\t});\n\t\t}\n\t},\n\tundo: {\n\t\ticon:\n\t\t\t'',\n\t\ttitle: \"Undo\",\n\t\tresult: () => exec(\"undo\")\n\t},\n\tredo: {\n\t\ticon:\n\t\t\t'',\n\t\ttitle: \"Redo\",\n\t\tresult: () => exec(\"redo\")\n\t},\n\tb: {\n\t\ticon: \"B\",\n\t\ttitle: \"Bold\",\n\t\tresult: () => exec(\"bold\")\n\t},\n\ti: {\n\t\ticon: \"I\",\n\t\ttitle: \"Italic\",\n\t\tresult: () => exec(\"italic\")\n\t},\n\tu: {\n\t\ticon: \"U\",\n\t\ttitle: \"Underline\",\n\t\tresult: () => exec(\"underline\")\n\t},\n\tstrike: {\n\t\ticon: \"S\",\n\t\ttitle: \"Strike-through\",\n\t\tresult: () => exec(\"strikeThrough\")\n\t},\n\tsup: {\n\t\ticon: \"A2\",\n\t\ttitle: \"Superscript\",\n\t\tresult: () => exec(\"superscript\")\n\t},\n\tsub: {\n\t\ticon: \"A2\",\n\t\ttitle: \"Subscript\",\n\t\tresult: () => exec(\"subscript\")\n\t},\n\th1: {\n\t\ticon: \"H1\",\n\t\ttitle: \"Heading 1\",\n\t\tresult: () => exec(\"formatBlock\", \"

\")\n\t},\n\th2: {\n\t\ticon: \"H2\",\n\t\ttitle: \"Heading 2\",\n\t\tresult: () => exec(\"formatBlock\", \"

\")\n\t},\n\tp: {\n\t\ticon: \"¶\",\n\t\ttitle: \"Paragraph\",\n\t\tresult: () => exec(\"formatBlock\", \"

\")\n\t},\n\tblockquote: {\n\t\ticon: \"“ ”\",\n\t\ttitle: \"Quote\",\n\t\tresult: () => exec(\"formatBlock\", \"

\")\n\t},\n\tol: {\n\t\ticon:\n\t\t\t'',\n\t\ttitle: \"Ordered List\",\n\t\tresult: () => exec(\"insertOrderedList\")\n\t},\n\tul: {\n\t\ticon:\n\t\t\t'',\n\t\ttitle: \"Unordered List\",\n\t\tresult: () => exec(\"insertUnorderedList\")\n\t},\n\thr: {\n\t\ticon: \"―\",\n\t\ttitle: \"Horizontal Line\",\n\t\tresult: () => exec(\"insertHorizontalRule\")\n\t},\n\tleft: {\n\t\ticon:\n\t\t\t'',\n\t\ttitle: \"Justify left\",\n\t\tresult: () => exec(\"justifyLeft\")\n\t},\n\tright: {\n\t\ticon:\n\t\t\t'',\n\t\ttitle: \"Justify right\",\n\t\tresult: () => exec(\"justifyRight\")\n\t},\n\tcenter: {\n\t\ticon:\n\t\t\t'',\n\t\ttitle: \"Justify center\",\n\t\tresult: () => exec(\"justifyCenter\")\n\t},\n\tjustify: {\n\t\ticon:\n\t\t\t'',\n\t\ttitle: \"Justify full\",\n\t\tresult: () => exec(\"justifyFull\")\n\t},\n\ta: {\n\t\ticon: linkSvg,\n\t\ttitle: \"Insert link\",\n\t\tresult: function() {\n\t\t\tconst actionObj = get(this.state).actionObj;\n\t\t\tconst refs = get(this.references);\n\n\t\t\tif (actionObj.a.active) {\n\t\t\t\tconst selection = window.getSelection();\n\t\t\t\tconst range = document.createRange();\n\t\t\t\trange.selectNodeContents(document.getSelection().focusNode);\n\t\t\t\tselection.removeAllRanges();\n\t\t\t\tselection.addRange(range);\n\t\t\t\texec(\"unlink\");\n\t\t\t\tactionObj.a.title = \"Insert link\";\n\t\t\t\tactionObj.a.icon = linkSvg;\n\t\t\t\tthis.state.update(state => {\n\t\t\t\t\tstate.actionBtn = getActionBtns(actionObj);\n\t\t\t\t\tstate.actionObj = actionObj;\n\t\t\t\t\treturn state;\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tsaveRange(refs.editor);\n\t\t\t\trefs.modal.$set({\n\t\t\t\t\tshow: true,\n\t\t\t\t\tevent: \"linkUrl\",\n\t\t\t\t\ttitle: \"Insert link\",\n\t\t\t\t\tlabel: \"Url\"\n\t\t\t\t});\n\t\t\t\tif (!get(this.helper).link) {\n\t\t\t\t\tthis.helper.update(state => {\n\t\t\t\t\t\tstate.link = true;\n\t\t\t\t\t\treturn state;\n\t\t\t\t\t});\n\t\t\t\t\trefs.modal.$on(\"linkUrl\", event => {\n\t\t\t\t\t\trestoreRange(refs.editor);\n\t\t\t\t\t\texec(\"createLink\", event.detail);\n\t\t\t\t\t\tactionObj.a.title = \"Unlink\";\n\t\t\t\t\t\tactionObj.a.icon = unlinkSvg;\n\n\t\t\t\t\t\tthis.state.update(state => {\n\t\t\t\t\t\t\tstate.actionBtn = getActionBtns(actionObj);\n\t\t\t\t\t\t\tstate.actionObj = actionObj;\n\t\t\t\t\t\t\treturn state;\n\t\t\t\t\t\t});\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\timage: {\n\t\ticon:\n\t\t\t'',\n\t\ttitle: \"Image\",\n\t\tresult: function() {\n\t\t\tconst refs = get(this.references);\n\t\t\tsaveRange(refs.editor);\n\t\t\trefs.modal.$set({\n\t\t\t\tshow: true,\n\t\t\t\tevent: \"imageUrl\",\n\t\t\t\ttitle: \"Insert image\",\n\t\t\t\tlabel: \"Url\"\n\t\t\t});\n\t\t\tif (!get(this.helper).image) {\n\t\t\t\tthis.helper.update(state => {\n\t\t\t\t\tstate.image = true;\n\t\t\t\t\treturn state;\n\t\t\t\t});\n\t\t\t\trefs.modal.$on(\"imageUrl\", event => {\n\t\t\t\t\trestoreRange(refs.editor);\n\t\t\t\t\texec(\"insertImage\", event.detail);\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t},\n\tforecolor: {\n\t\ticon:\n\t\t\t'',\n\t\ttitle: \"Text color\",\n\t\tcolorPicker: true,\n\t\tresult: function() {\n\t\t\tshowColorPicker.call(this, \"foreColor\");\n\t\t}\n\t},\n\tbackcolor: {\n\t\ticon:\n\t\t\t'',\n\t\ttitle: \"Background color\",\n\t\tcolorPicker: true,\n\t\tresult: function() {\n\t\t\tshowColorPicker.call(this, \"backColor\");\n\t\t}\n\t},\n\tremoveFormat: {\n\t\ticon:\n\t\t\t'',\n\t\ttitle: \"Remove format\",\n\t\tresult: function() {\n\t\t\tconst refs = get(this.references);\n\t\t\tconst selection = window.getSelection();\n\t\t\tif (!selection.toString().length) {\n\t\t\t\tremoveBlockTagsRecursive(\n\t\t\t\t\trefs.editor.children,\n\t\t\t\t\tthis.removeFormatTags\n\t\t\t\t);\n\t\t\t\tconst range = document.createRange();\n\t\t\t\trange.selectNodeContents(refs.editor);\n\t\t\t\tselection.removeAllRanges();\n\t\t\t\tselection.addRange(range);\n\t\t\t}\n\t\t\texec(\"removeFormat\");\n\t\t\tselection.removeAllRanges();\n\t\t}\n\t}\n};\n\nconst showColorPicker = function(cmd) {\n\tconst refs = get(this.references);\n\tsaveRange(refs.editor);\n\tconsole.log(refs.colorPicker);\n\trefs.colorPicker.$set({show: true, event: cmd});\n\tif (!get(this.helper)[cmd]) {\n\t\tthis.helper.update(state => {\n\t\t\tstate[cmd] = true;\n\t\t\treturn state;\n\t\t});\n\t\trefs.colorPicker.$on(cmd, event => {\n\t\t\tlet item = event.detail;\n\t\t\tif (item.modal) {\n\t\t\t\tthis.modal.$set({\n\t\t\t\t\tshow: true,\n\t\t\t\t\tevent: \"colorHref\",\n\t\t\t\t\ttitle: \"Text color\",\n\t\t\t\t\tlabel:\n\t\t\t\t\t\tcmd === \"foreColor\" ? \"Text color\" : \"Background color\"\n\t\t\t\t});\n\t\t\t\tconst command = cmd;\n\t\t\t\tif (!get(this.helper)[`${command}Modal`]) {\n\t\t\t\t\tget(this.helper)[`${command}Modal`] = true;\n\t\t\t\t\tthis.modal.$on(\"colorHref\", event => {\n\t\t\t\t\t\tlet color = event.detail;\n\t\t\t\t\t\trestoreRange(refs.editor);\n\t\t\t\t\t\texec(command, color);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\trestoreRange(refs.editor);\n\t\t\t\texec(cmd, item.color);\n\t\t\t}\n\t\t});\n\t}\n};\n","\n
\n
\n
\n
\n {title}\n
confirm()}\">\n \n \n \n
\n
\n
\n
\n\n\n\n\n","
\n
\n
\n {#each btns as btn}\n \n {/each}\n
\n
\n\n\n\n\n","import {writable} from \"svelte/store\";\n\nconst state = (function(name) {\n let state = {\n actionBtns: [],\n actionObj: {}\n }\n\n const { subscribe, set, update } = writable(state);\n\n return {\n name,\n set,\n update,\n subscribe\n }\n});\n\nexport const createStateStore = state;\n","\n _documentClick(event) }\" />\n\n
\n
\n {#each $state.actionBtns as action}\n \n {/each}\n
\n
_onChange(event.target.innerHTML)}\"\n on:mouseup=\"{() => _handleButtonStatus()}\"\n on:keyup=\"{() => _handleButtonStatus()}\"\n on:paste=\"{event => _onPaste(event)}\">\n
\n\n \n \n \n
\n\n\n\n\n","\n\n\n {\n contentHtml = evt.detail;\n dispatch(\"change\");\n }}\n actions={[\n \"b\",\n \"i\",\n \"u\",\n \"ul\",\n \"ol\",\n \"h1\",\n \"h2\",\n \"forecolor\",\n {\n name: \"save\", // required\n icon: \"Speichern\", // string or html string (ex. ...)\n title: \"Speichern\",\n result: () => {\n dispatch(\"save\");\n },\n },\n ]}\n height={heightPx - actionBarHeightPx + \"px\"}\n contentId=\"notes-content\"\n />\n\n\n\n","\n\n
\n
\n {#if editMode}\n (contentChanged = true)}\n on:save={disableEditMode}\n />\n {:else}\n \n
\n {@html contentHtml}\n {#if contentHtml === \"\"}\n
Zum Bearbeiten hier klicken
\n {/if}\n
\n
\n
\n \n
\n
\n {toDateString(new Date(timestamp))}\n
\n
\n
\n {/if}\n
\n\n\n\n","\n \n \n \n \n \n\n","\n\n
\n
\n
\n \n
Neue Notiz
\n
\n
\n
\n\n\n","\n\n
\n
Notizen
\n
\n {#each notes as note, index (note._id)}\n
\n onNoteDeleted(note._id)}\n on:change={(e) => onNoteChanged(note._id, e.detail)}\n on:dragstart={(event) => onNoteDragStart(event, index)}\n on:drop={(event) => onNoteDrop(event, index)}\n />\n
\n {/each}\n \n
\n
\n\n\n","export function clean($$props, extra_keys) {\n let keys = [\"children\", \"$$scope\", \"$$slots\"].concat(extra_keys)\n const rest = {};\n for (const key of Object.keys($$props)) {\n if (!(keys.includes(key))) {\n rest[key] = $$props[key];\n }\n }\n return rest;\n}\n","/*!\n * Chart.js v3.6.0\n * https://www.chartjs.org\n * (c) 2021 Chart.js Contributors\n * Released under the MIT License\n */\nfunction fontString(pixelSize, fontStyle, fontFamily) {\n return fontStyle + ' ' + pixelSize + 'px ' + fontFamily;\n}\nconst requestAnimFrame = (function() {\n if (typeof window === 'undefined') {\n return function(callback) {\n return callback();\n };\n }\n return window.requestAnimationFrame;\n}());\nfunction throttled(fn, thisArg, updateFn) {\n const updateArgs = updateFn || ((args) => Array.prototype.slice.call(args));\n let ticking = false;\n let args = [];\n return function(...rest) {\n args = updateArgs(rest);\n if (!ticking) {\n ticking = true;\n requestAnimFrame.call(window, () => {\n ticking = false;\n fn.apply(thisArg, args);\n });\n }\n };\n}\nfunction debounce(fn, delay) {\n let timeout;\n return function(...args) {\n if (delay) {\n clearTimeout(timeout);\n timeout = setTimeout(fn, delay, args);\n } else {\n fn.apply(this, args);\n }\n return delay;\n };\n}\nconst _toLeftRightCenter = (align) => align === 'start' ? 'left' : align === 'end' ? 'right' : 'center';\nconst _alignStartEnd = (align, start, end) => align === 'start' ? start : align === 'end' ? end : (start + end) / 2;\nconst _textX = (align, left, right, rtl) => {\n const check = rtl ? 'left' : 'right';\n return align === check ? right : align === 'center' ? (left + right) / 2 : left;\n};\n\nfunction noop() {}\nconst uid = (function() {\n let id = 0;\n return function() {\n return id++;\n };\n}());\nfunction isNullOrUndef(value) {\n return value === null || typeof value === 'undefined';\n}\nfunction isArray(value) {\n if (Array.isArray && Array.isArray(value)) {\n return true;\n }\n const type = Object.prototype.toString.call(value);\n if (type.substr(0, 7) === '[object' && type.substr(-6) === 'Array]') {\n return true;\n }\n return false;\n}\nfunction isObject(value) {\n return value !== null && Object.prototype.toString.call(value) === '[object Object]';\n}\nconst isNumberFinite = (value) => (typeof value === 'number' || value instanceof Number) && isFinite(+value);\nfunction finiteOrDefault(value, defaultValue) {\n return isNumberFinite(value) ? value : defaultValue;\n}\nfunction valueOrDefault(value, defaultValue) {\n return typeof value === 'undefined' ? defaultValue : value;\n}\nconst toPercentage = (value, dimension) =>\n typeof value === 'string' && value.endsWith('%') ?\n parseFloat(value) / 100\n : value / dimension;\nconst toDimension = (value, dimension) =>\n typeof value === 'string' && value.endsWith('%') ?\n parseFloat(value) / 100 * dimension\n : +value;\nfunction callback(fn, args, thisArg) {\n if (fn && typeof fn.call === 'function') {\n return fn.apply(thisArg, args);\n }\n}\nfunction each(loopable, fn, thisArg, reverse) {\n let i, len, keys;\n if (isArray(loopable)) {\n len = loopable.length;\n if (reverse) {\n for (i = len - 1; i >= 0; i--) {\n fn.call(thisArg, loopable[i], i);\n }\n } else {\n for (i = 0; i < len; i++) {\n fn.call(thisArg, loopable[i], i);\n }\n }\n } else if (isObject(loopable)) {\n keys = Object.keys(loopable);\n len = keys.length;\n for (i = 0; i < len; i++) {\n fn.call(thisArg, loopable[keys[i]], keys[i]);\n }\n }\n}\nfunction _elementsEqual(a0, a1) {\n let i, ilen, v0, v1;\n if (!a0 || !a1 || a0.length !== a1.length) {\n return false;\n }\n for (i = 0, ilen = a0.length; i < ilen; ++i) {\n v0 = a0[i];\n v1 = a1[i];\n if (v0.datasetIndex !== v1.datasetIndex || v0.index !== v1.index) {\n return false;\n }\n }\n return true;\n}\nfunction clone$1(source) {\n if (isArray(source)) {\n return source.map(clone$1);\n }\n if (isObject(source)) {\n const target = Object.create(null);\n const keys = Object.keys(source);\n const klen = keys.length;\n let k = 0;\n for (; k < klen; ++k) {\n target[keys[k]] = clone$1(source[keys[k]]);\n }\n return target;\n }\n return source;\n}\nfunction isValidKey(key) {\n return ['__proto__', 'prototype', 'constructor'].indexOf(key) === -1;\n}\nfunction _merger(key, target, source, options) {\n if (!isValidKey(key)) {\n return;\n }\n const tval = target[key];\n const sval = source[key];\n if (isObject(tval) && isObject(sval)) {\n merge(tval, sval, options);\n } else {\n target[key] = clone$1(sval);\n }\n}\nfunction merge(target, source, options) {\n const sources = isArray(source) ? source : [source];\n const ilen = sources.length;\n if (!isObject(target)) {\n return target;\n }\n options = options || {};\n const merger = options.merger || _merger;\n for (let i = 0; i < ilen; ++i) {\n source = sources[i];\n if (!isObject(source)) {\n continue;\n }\n const keys = Object.keys(source);\n for (let k = 0, klen = keys.length; k < klen; ++k) {\n merger(keys[k], target, source, options);\n }\n }\n return target;\n}\nfunction mergeIf(target, source) {\n return merge(target, source, {merger: _mergerIf});\n}\nfunction _mergerIf(key, target, source) {\n if (!isValidKey(key)) {\n return;\n }\n const tval = target[key];\n const sval = source[key];\n if (isObject(tval) && isObject(sval)) {\n mergeIf(tval, sval);\n } else if (!Object.prototype.hasOwnProperty.call(target, key)) {\n target[key] = clone$1(sval);\n }\n}\nfunction _deprecated(scope, value, previous, current) {\n if (value !== undefined) {\n console.warn(scope + ': \"' + previous +\n\t\t\t'\" is deprecated. Please use \"' + current + '\" instead');\n }\n}\nconst emptyString = '';\nconst dot = '.';\nfunction indexOfDotOrLength(key, start) {\n const idx = key.indexOf(dot, start);\n return idx === -1 ? key.length : idx;\n}\nfunction resolveObjectKey(obj, key) {\n if (key === emptyString) {\n return obj;\n }\n let pos = 0;\n let idx = indexOfDotOrLength(key, pos);\n while (obj && idx > pos) {\n obj = obj[key.substr(pos, idx - pos)];\n pos = idx + 1;\n idx = indexOfDotOrLength(key, pos);\n }\n return obj;\n}\nfunction _capitalize(str) {\n return str.charAt(0).toUpperCase() + str.slice(1);\n}\nconst defined = (value) => typeof value !== 'undefined';\nconst isFunction = (value) => typeof value === 'function';\nconst setsEqual = (a, b) => {\n if (a.size !== b.size) {\n return false;\n }\n for (const item of a) {\n if (!b.has(item)) {\n return false;\n }\n }\n return true;\n};\n\nconst PI = Math.PI;\nconst TAU = 2 * PI;\nconst PITAU = TAU + PI;\nconst INFINITY = Number.POSITIVE_INFINITY;\nconst RAD_PER_DEG = PI / 180;\nconst HALF_PI = PI / 2;\nconst QUARTER_PI = PI / 4;\nconst TWO_THIRDS_PI = PI * 2 / 3;\nconst log10 = Math.log10;\nconst sign = Math.sign;\nfunction niceNum(range) {\n const roundedRange = Math.round(range);\n range = almostEquals(range, roundedRange, range / 1000) ? roundedRange : range;\n const niceRange = Math.pow(10, Math.floor(log10(range)));\n const fraction = range / niceRange;\n const niceFraction = fraction <= 1 ? 1 : fraction <= 2 ? 2 : fraction <= 5 ? 5 : 10;\n return niceFraction * niceRange;\n}\nfunction _factorize(value) {\n const result = [];\n const sqrt = Math.sqrt(value);\n let i;\n for (i = 1; i < sqrt; i++) {\n if (value % i === 0) {\n result.push(i);\n result.push(value / i);\n }\n }\n if (sqrt === (sqrt | 0)) {\n result.push(sqrt);\n }\n result.sort((a, b) => a - b).pop();\n return result;\n}\nfunction isNumber(n) {\n return !isNaN(parseFloat(n)) && isFinite(n);\n}\nfunction almostEquals(x, y, epsilon) {\n return Math.abs(x - y) < epsilon;\n}\nfunction almostWhole(x, epsilon) {\n const rounded = Math.round(x);\n return ((rounded - epsilon) <= x) && ((rounded + epsilon) >= x);\n}\nfunction _setMinAndMaxByKey(array, target, property) {\n let i, ilen, value;\n for (i = 0, ilen = array.length; i < ilen; i++) {\n value = array[i][property];\n if (!isNaN(value)) {\n target.min = Math.min(target.min, value);\n target.max = Math.max(target.max, value);\n }\n }\n}\nfunction toRadians(degrees) {\n return degrees * (PI / 180);\n}\nfunction toDegrees(radians) {\n return radians * (180 / PI);\n}\nfunction _decimalPlaces(x) {\n if (!isNumberFinite(x)) {\n return;\n }\n let e = 1;\n let p = 0;\n while (Math.round(x * e) / e !== x) {\n e *= 10;\n p++;\n }\n return p;\n}\nfunction getAngleFromPoint(centrePoint, anglePoint) {\n const distanceFromXCenter = anglePoint.x - centrePoint.x;\n const distanceFromYCenter = anglePoint.y - centrePoint.y;\n const radialDistanceFromCenter = Math.sqrt(distanceFromXCenter * distanceFromXCenter + distanceFromYCenter * distanceFromYCenter);\n let angle = Math.atan2(distanceFromYCenter, distanceFromXCenter);\n if (angle < (-0.5 * PI)) {\n angle += TAU;\n }\n return {\n angle,\n distance: radialDistanceFromCenter\n };\n}\nfunction distanceBetweenPoints(pt1, pt2) {\n return Math.sqrt(Math.pow(pt2.x - pt1.x, 2) + Math.pow(pt2.y - pt1.y, 2));\n}\nfunction _angleDiff(a, b) {\n return (a - b + PITAU) % TAU - PI;\n}\nfunction _normalizeAngle(a) {\n return (a % TAU + TAU) % TAU;\n}\nfunction _angleBetween(angle, start, end, sameAngleIsFullCircle) {\n const a = _normalizeAngle(angle);\n const s = _normalizeAngle(start);\n const e = _normalizeAngle(end);\n const angleToStart = _normalizeAngle(s - a);\n const angleToEnd = _normalizeAngle(e - a);\n const startToAngle = _normalizeAngle(a - s);\n const endToAngle = _normalizeAngle(a - e);\n return a === s || a === e || (sameAngleIsFullCircle && s === e)\n || (angleToStart > angleToEnd && startToAngle < endToAngle);\n}\nfunction _limitValue(value, min, max) {\n return Math.max(min, Math.min(max, value));\n}\nfunction _int16Range(value) {\n return _limitValue(value, -32768, 32767);\n}\n\nconst atEdge = (t) => t === 0 || t === 1;\nconst elasticIn = (t, s, p) => -(Math.pow(2, 10 * (t -= 1)) * Math.sin((t - s) * TAU / p));\nconst elasticOut = (t, s, p) => Math.pow(2, -10 * t) * Math.sin((t - s) * TAU / p) + 1;\nconst effects = {\n linear: t => t,\n easeInQuad: t => t * t,\n easeOutQuad: t => -t * (t - 2),\n easeInOutQuad: t => ((t /= 0.5) < 1)\n ? 0.5 * t * t\n : -0.5 * ((--t) * (t - 2) - 1),\n easeInCubic: t => t * t * t,\n easeOutCubic: t => (t -= 1) * t * t + 1,\n easeInOutCubic: t => ((t /= 0.5) < 1)\n ? 0.5 * t * t * t\n : 0.5 * ((t -= 2) * t * t + 2),\n easeInQuart: t => t * t * t * t,\n easeOutQuart: t => -((t -= 1) * t * t * t - 1),\n easeInOutQuart: t => ((t /= 0.5) < 1)\n ? 0.5 * t * t * t * t\n : -0.5 * ((t -= 2) * t * t * t - 2),\n easeInQuint: t => t * t * t * t * t,\n easeOutQuint: t => (t -= 1) * t * t * t * t + 1,\n easeInOutQuint: t => ((t /= 0.5) < 1)\n ? 0.5 * t * t * t * t * t\n : 0.5 * ((t -= 2) * t * t * t * t + 2),\n easeInSine: t => -Math.cos(t * HALF_PI) + 1,\n easeOutSine: t => Math.sin(t * HALF_PI),\n easeInOutSine: t => -0.5 * (Math.cos(PI * t) - 1),\n easeInExpo: t => (t === 0) ? 0 : Math.pow(2, 10 * (t - 1)),\n easeOutExpo: t => (t === 1) ? 1 : -Math.pow(2, -10 * t) + 1,\n easeInOutExpo: t => atEdge(t) ? t : t < 0.5\n ? 0.5 * Math.pow(2, 10 * (t * 2 - 1))\n : 0.5 * (-Math.pow(2, -10 * (t * 2 - 1)) + 2),\n easeInCirc: t => (t >= 1) ? t : -(Math.sqrt(1 - t * t) - 1),\n easeOutCirc: t => Math.sqrt(1 - (t -= 1) * t),\n easeInOutCirc: t => ((t /= 0.5) < 1)\n ? -0.5 * (Math.sqrt(1 - t * t) - 1)\n : 0.5 * (Math.sqrt(1 - (t -= 2) * t) + 1),\n easeInElastic: t => atEdge(t) ? t : elasticIn(t, 0.075, 0.3),\n easeOutElastic: t => atEdge(t) ? t : elasticOut(t, 0.075, 0.3),\n easeInOutElastic(t) {\n const s = 0.1125;\n const p = 0.45;\n return atEdge(t) ? t :\n t < 0.5\n ? 0.5 * elasticIn(t * 2, s, p)\n : 0.5 + 0.5 * elasticOut(t * 2 - 1, s, p);\n },\n easeInBack(t) {\n const s = 1.70158;\n return t * t * ((s + 1) * t - s);\n },\n easeOutBack(t) {\n const s = 1.70158;\n return (t -= 1) * t * ((s + 1) * t + s) + 1;\n },\n easeInOutBack(t) {\n let s = 1.70158;\n if ((t /= 0.5) < 1) {\n return 0.5 * (t * t * (((s *= (1.525)) + 1) * t - s));\n }\n return 0.5 * ((t -= 2) * t * (((s *= (1.525)) + 1) * t + s) + 2);\n },\n easeInBounce: t => 1 - effects.easeOutBounce(1 - t),\n easeOutBounce(t) {\n const m = 7.5625;\n const d = 2.75;\n if (t < (1 / d)) {\n return m * t * t;\n }\n if (t < (2 / d)) {\n return m * (t -= (1.5 / d)) * t + 0.75;\n }\n if (t < (2.5 / d)) {\n return m * (t -= (2.25 / d)) * t + 0.9375;\n }\n return m * (t -= (2.625 / d)) * t + 0.984375;\n },\n easeInOutBounce: t => (t < 0.5)\n ? effects.easeInBounce(t * 2) * 0.5\n : effects.easeOutBounce(t * 2 - 1) * 0.5 + 0.5,\n};\n\n/*!\n * @kurkle/color v0.1.9\n * https://github.com/kurkle/color#readme\n * (c) 2020 Jukka Kurkela\n * Released under the MIT License\n */\nconst map = {0: 0, 1: 1, 2: 2, 3: 3, 4: 4, 5: 5, 6: 6, 7: 7, 8: 8, 9: 9, A: 10, B: 11, C: 12, D: 13, E: 14, F: 15, a: 10, b: 11, c: 12, d: 13, e: 14, f: 15};\nconst hex = '0123456789ABCDEF';\nconst h1 = (b) => hex[b & 0xF];\nconst h2 = (b) => hex[(b & 0xF0) >> 4] + hex[b & 0xF];\nconst eq = (b) => (((b & 0xF0) >> 4) === (b & 0xF));\nfunction isShort(v) {\n\treturn eq(v.r) && eq(v.g) && eq(v.b) && eq(v.a);\n}\nfunction hexParse(str) {\n\tvar len = str.length;\n\tvar ret;\n\tif (str[0] === '#') {\n\t\tif (len === 4 || len === 5) {\n\t\t\tret = {\n\t\t\t\tr: 255 & map[str[1]] * 17,\n\t\t\t\tg: 255 & map[str[2]] * 17,\n\t\t\t\tb: 255 & map[str[3]] * 17,\n\t\t\t\ta: len === 5 ? map[str[4]] * 17 : 255\n\t\t\t};\n\t\t} else if (len === 7 || len === 9) {\n\t\t\tret = {\n\t\t\t\tr: map[str[1]] << 4 | map[str[2]],\n\t\t\t\tg: map[str[3]] << 4 | map[str[4]],\n\t\t\t\tb: map[str[5]] << 4 | map[str[6]],\n\t\t\t\ta: len === 9 ? (map[str[7]] << 4 | map[str[8]]) : 255\n\t\t\t};\n\t\t}\n\t}\n\treturn ret;\n}\nfunction hexString(v) {\n\tvar f = isShort(v) ? h1 : h2;\n\treturn v\n\t\t? '#' + f(v.r) + f(v.g) + f(v.b) + (v.a < 255 ? f(v.a) : '')\n\t\t: v;\n}\nfunction round(v) {\n\treturn v + 0.5 | 0;\n}\nconst lim = (v, l, h) => Math.max(Math.min(v, h), l);\nfunction p2b(v) {\n\treturn lim(round(v * 2.55), 0, 255);\n}\nfunction n2b(v) {\n\treturn lim(round(v * 255), 0, 255);\n}\nfunction b2n(v) {\n\treturn lim(round(v / 2.55) / 100, 0, 1);\n}\nfunction n2p(v) {\n\treturn lim(round(v * 100), 0, 100);\n}\nconst RGB_RE = /^rgba?\\(\\s*([-+.\\d]+)(%)?[\\s,]+([-+.e\\d]+)(%)?[\\s,]+([-+.e\\d]+)(%)?(?:[\\s,/]+([-+.e\\d]+)(%)?)?\\s*\\)$/;\nfunction rgbParse(str) {\n\tconst m = RGB_RE.exec(str);\n\tlet a = 255;\n\tlet r, g, b;\n\tif (!m) {\n\t\treturn;\n\t}\n\tif (m[7] !== r) {\n\t\tconst v = +m[7];\n\t\ta = 255 & (m[8] ? p2b(v) : v * 255);\n\t}\n\tr = +m[1];\n\tg = +m[3];\n\tb = +m[5];\n\tr = 255 & (m[2] ? p2b(r) : r);\n\tg = 255 & (m[4] ? p2b(g) : g);\n\tb = 255 & (m[6] ? p2b(b) : b);\n\treturn {\n\t\tr: r,\n\t\tg: g,\n\t\tb: b,\n\t\ta: a\n\t};\n}\nfunction rgbString(v) {\n\treturn v && (\n\t\tv.a < 255\n\t\t\t? `rgba(${v.r}, ${v.g}, ${v.b}, ${b2n(v.a)})`\n\t\t\t: `rgb(${v.r}, ${v.g}, ${v.b})`\n\t);\n}\nconst HUE_RE = /^(hsla?|hwb|hsv)\\(\\s*([-+.e\\d]+)(?:deg)?[\\s,]+([-+.e\\d]+)%[\\s,]+([-+.e\\d]+)%(?:[\\s,]+([-+.e\\d]+)(%)?)?\\s*\\)$/;\nfunction hsl2rgbn(h, s, l) {\n\tconst a = s * Math.min(l, 1 - l);\n\tconst f = (n, k = (n + h / 30) % 12) => l - a * Math.max(Math.min(k - 3, 9 - k, 1), -1);\n\treturn [f(0), f(8), f(4)];\n}\nfunction hsv2rgbn(h, s, v) {\n\tconst f = (n, k = (n + h / 60) % 6) => v - v * s * Math.max(Math.min(k, 4 - k, 1), 0);\n\treturn [f(5), f(3), f(1)];\n}\nfunction hwb2rgbn(h, w, b) {\n\tconst rgb = hsl2rgbn(h, 1, 0.5);\n\tlet i;\n\tif (w + b > 1) {\n\t\ti = 1 / (w + b);\n\t\tw *= i;\n\t\tb *= i;\n\t}\n\tfor (i = 0; i < 3; i++) {\n\t\trgb[i] *= 1 - w - b;\n\t\trgb[i] += w;\n\t}\n\treturn rgb;\n}\nfunction rgb2hsl(v) {\n\tconst range = 255;\n\tconst r = v.r / range;\n\tconst g = v.g / range;\n\tconst b = v.b / range;\n\tconst max = Math.max(r, g, b);\n\tconst min = Math.min(r, g, b);\n\tconst l = (max + min) / 2;\n\tlet h, s, d;\n\tif (max !== min) {\n\t\td = max - min;\n\t\ts = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n\t\th = max === r\n\t\t\t? ((g - b) / d) + (g < b ? 6 : 0)\n\t\t\t: max === g\n\t\t\t\t? (b - r) / d + 2\n\t\t\t\t: (r - g) / d + 4;\n\t\th = h * 60 + 0.5;\n\t}\n\treturn [h | 0, s || 0, l];\n}\nfunction calln(f, a, b, c) {\n\treturn (\n\t\tArray.isArray(a)\n\t\t\t? f(a[0], a[1], a[2])\n\t\t\t: f(a, b, c)\n\t).map(n2b);\n}\nfunction hsl2rgb(h, s, l) {\n\treturn calln(hsl2rgbn, h, s, l);\n}\nfunction hwb2rgb(h, w, b) {\n\treturn calln(hwb2rgbn, h, w, b);\n}\nfunction hsv2rgb(h, s, v) {\n\treturn calln(hsv2rgbn, h, s, v);\n}\nfunction hue(h) {\n\treturn (h % 360 + 360) % 360;\n}\nfunction hueParse(str) {\n\tconst m = HUE_RE.exec(str);\n\tlet a = 255;\n\tlet v;\n\tif (!m) {\n\t\treturn;\n\t}\n\tif (m[5] !== v) {\n\t\ta = m[6] ? p2b(+m[5]) : n2b(+m[5]);\n\t}\n\tconst h = hue(+m[2]);\n\tconst p1 = +m[3] / 100;\n\tconst p2 = +m[4] / 100;\n\tif (m[1] === 'hwb') {\n\t\tv = hwb2rgb(h, p1, p2);\n\t} else if (m[1] === 'hsv') {\n\t\tv = hsv2rgb(h, p1, p2);\n\t} else {\n\t\tv = hsl2rgb(h, p1, p2);\n\t}\n\treturn {\n\t\tr: v[0],\n\t\tg: v[1],\n\t\tb: v[2],\n\t\ta: a\n\t};\n}\nfunction rotate(v, deg) {\n\tvar h = rgb2hsl(v);\n\th[0] = hue(h[0] + deg);\n\th = hsl2rgb(h);\n\tv.r = h[0];\n\tv.g = h[1];\n\tv.b = h[2];\n}\nfunction hslString(v) {\n\tif (!v) {\n\t\treturn;\n\t}\n\tconst a = rgb2hsl(v);\n\tconst h = a[0];\n\tconst s = n2p(a[1]);\n\tconst l = n2p(a[2]);\n\treturn v.a < 255\n\t\t? `hsla(${h}, ${s}%, ${l}%, ${b2n(v.a)})`\n\t\t: `hsl(${h}, ${s}%, ${l}%)`;\n}\nconst map$1 = {\n\tx: 'dark',\n\tZ: 'light',\n\tY: 're',\n\tX: 'blu',\n\tW: 'gr',\n\tV: 'medium',\n\tU: 'slate',\n\tA: 'ee',\n\tT: 'ol',\n\tS: 'or',\n\tB: 'ra',\n\tC: 'lateg',\n\tD: 'ights',\n\tR: 'in',\n\tQ: 'turquois',\n\tE: 'hi',\n\tP: 'ro',\n\tO: 'al',\n\tN: 'le',\n\tM: 'de',\n\tL: 'yello',\n\tF: 'en',\n\tK: 'ch',\n\tG: 'arks',\n\tH: 'ea',\n\tI: 'ightg',\n\tJ: 'wh'\n};\nconst names = {\n\tOiceXe: 'f0f8ff',\n\tantiquewEte: 'faebd7',\n\taqua: 'ffff',\n\taquamarRe: '7fffd4',\n\tazuY: 'f0ffff',\n\tbeige: 'f5f5dc',\n\tbisque: 'ffe4c4',\n\tblack: '0',\n\tblanKedOmond: 'ffebcd',\n\tXe: 'ff',\n\tXeviTet: '8a2be2',\n\tbPwn: 'a52a2a',\n\tburlywood: 'deb887',\n\tcaMtXe: '5f9ea0',\n\tKartYuse: '7fff00',\n\tKocTate: 'd2691e',\n\tcSO: 'ff7f50',\n\tcSnflowerXe: '6495ed',\n\tcSnsilk: 'fff8dc',\n\tcrimson: 'dc143c',\n\tcyan: 'ffff',\n\txXe: '8b',\n\txcyan: '8b8b',\n\txgTMnPd: 'b8860b',\n\txWay: 'a9a9a9',\n\txgYF: '6400',\n\txgYy: 'a9a9a9',\n\txkhaki: 'bdb76b',\n\txmagFta: '8b008b',\n\txTivegYF: '556b2f',\n\txSange: 'ff8c00',\n\txScEd: '9932cc',\n\txYd: '8b0000',\n\txsOmon: 'e9967a',\n\txsHgYF: '8fbc8f',\n\txUXe: '483d8b',\n\txUWay: '2f4f4f',\n\txUgYy: '2f4f4f',\n\txQe: 'ced1',\n\txviTet: '9400d3',\n\tdAppRk: 'ff1493',\n\tdApskyXe: 'bfff',\n\tdimWay: '696969',\n\tdimgYy: '696969',\n\tdodgerXe: '1e90ff',\n\tfiYbrick: 'b22222',\n\tflSOwEte: 'fffaf0',\n\tfoYstWAn: '228b22',\n\tfuKsia: 'ff00ff',\n\tgaRsbSo: 'dcdcdc',\n\tghostwEte: 'f8f8ff',\n\tgTd: 'ffd700',\n\tgTMnPd: 'daa520',\n\tWay: '808080',\n\tgYF: '8000',\n\tgYFLw: 'adff2f',\n\tgYy: '808080',\n\thoneyMw: 'f0fff0',\n\thotpRk: 'ff69b4',\n\tRdianYd: 'cd5c5c',\n\tRdigo: '4b0082',\n\tivSy: 'fffff0',\n\tkhaki: 'f0e68c',\n\tlavFMr: 'e6e6fa',\n\tlavFMrXsh: 'fff0f5',\n\tlawngYF: '7cfc00',\n\tNmoncEffon: 'fffacd',\n\tZXe: 'add8e6',\n\tZcSO: 'f08080',\n\tZcyan: 'e0ffff',\n\tZgTMnPdLw: 'fafad2',\n\tZWay: 'd3d3d3',\n\tZgYF: '90ee90',\n\tZgYy: 'd3d3d3',\n\tZpRk: 'ffb6c1',\n\tZsOmon: 'ffa07a',\n\tZsHgYF: '20b2aa',\n\tZskyXe: '87cefa',\n\tZUWay: '778899',\n\tZUgYy: '778899',\n\tZstAlXe: 'b0c4de',\n\tZLw: 'ffffe0',\n\tlime: 'ff00',\n\tlimegYF: '32cd32',\n\tlRF: 'faf0e6',\n\tmagFta: 'ff00ff',\n\tmaPon: '800000',\n\tVaquamarRe: '66cdaa',\n\tVXe: 'cd',\n\tVScEd: 'ba55d3',\n\tVpurpN: '9370db',\n\tVsHgYF: '3cb371',\n\tVUXe: '7b68ee',\n\tVsprRggYF: 'fa9a',\n\tVQe: '48d1cc',\n\tVviTetYd: 'c71585',\n\tmidnightXe: '191970',\n\tmRtcYam: 'f5fffa',\n\tmistyPse: 'ffe4e1',\n\tmoccasR: 'ffe4b5',\n\tnavajowEte: 'ffdead',\n\tnavy: '80',\n\tTdlace: 'fdf5e6',\n\tTive: '808000',\n\tTivedBb: '6b8e23',\n\tSange: 'ffa500',\n\tSangeYd: 'ff4500',\n\tScEd: 'da70d6',\n\tpOegTMnPd: 'eee8aa',\n\tpOegYF: '98fb98',\n\tpOeQe: 'afeeee',\n\tpOeviTetYd: 'db7093',\n\tpapayawEp: 'ffefd5',\n\tpHKpuff: 'ffdab9',\n\tperu: 'cd853f',\n\tpRk: 'ffc0cb',\n\tplum: 'dda0dd',\n\tpowMrXe: 'b0e0e6',\n\tpurpN: '800080',\n\tYbeccapurpN: '663399',\n\tYd: 'ff0000',\n\tPsybrown: 'bc8f8f',\n\tPyOXe: '4169e1',\n\tsaddNbPwn: '8b4513',\n\tsOmon: 'fa8072',\n\tsandybPwn: 'f4a460',\n\tsHgYF: '2e8b57',\n\tsHshell: 'fff5ee',\n\tsiFna: 'a0522d',\n\tsilver: 'c0c0c0',\n\tskyXe: '87ceeb',\n\tUXe: '6a5acd',\n\tUWay: '708090',\n\tUgYy: '708090',\n\tsnow: 'fffafa',\n\tsprRggYF: 'ff7f',\n\tstAlXe: '4682b4',\n\ttan: 'd2b48c',\n\tteO: '8080',\n\ttEstN: 'd8bfd8',\n\ttomato: 'ff6347',\n\tQe: '40e0d0',\n\tviTet: 'ee82ee',\n\tJHt: 'f5deb3',\n\twEte: 'ffffff',\n\twEtesmoke: 'f5f5f5',\n\tLw: 'ffff00',\n\tLwgYF: '9acd32'\n};\nfunction unpack() {\n\tconst unpacked = {};\n\tconst keys = Object.keys(names);\n\tconst tkeys = Object.keys(map$1);\n\tlet i, j, k, ok, nk;\n\tfor (i = 0; i < keys.length; i++) {\n\t\tok = nk = keys[i];\n\t\tfor (j = 0; j < tkeys.length; j++) {\n\t\t\tk = tkeys[j];\n\t\t\tnk = nk.replace(k, map$1[k]);\n\t\t}\n\t\tk = parseInt(names[ok], 16);\n\t\tunpacked[nk] = [k >> 16 & 0xFF, k >> 8 & 0xFF, k & 0xFF];\n\t}\n\treturn unpacked;\n}\nlet names$1;\nfunction nameParse(str) {\n\tif (!names$1) {\n\t\tnames$1 = unpack();\n\t\tnames$1.transparent = [0, 0, 0, 0];\n\t}\n\tconst a = names$1[str.toLowerCase()];\n\treturn a && {\n\t\tr: a[0],\n\t\tg: a[1],\n\t\tb: a[2],\n\t\ta: a.length === 4 ? a[3] : 255\n\t};\n}\nfunction modHSL(v, i, ratio) {\n\tif (v) {\n\t\tlet tmp = rgb2hsl(v);\n\t\ttmp[i] = Math.max(0, Math.min(tmp[i] + tmp[i] * ratio, i === 0 ? 360 : 1));\n\t\ttmp = hsl2rgb(tmp);\n\t\tv.r = tmp[0];\n\t\tv.g = tmp[1];\n\t\tv.b = tmp[2];\n\t}\n}\nfunction clone(v, proto) {\n\treturn v ? Object.assign(proto || {}, v) : v;\n}\nfunction fromObject(input) {\n\tvar v = {r: 0, g: 0, b: 0, a: 255};\n\tif (Array.isArray(input)) {\n\t\tif (input.length >= 3) {\n\t\t\tv = {r: input[0], g: input[1], b: input[2], a: 255};\n\t\t\tif (input.length > 3) {\n\t\t\t\tv.a = n2b(input[3]);\n\t\t\t}\n\t\t}\n\t} else {\n\t\tv = clone(input, {r: 0, g: 0, b: 0, a: 1});\n\t\tv.a = n2b(v.a);\n\t}\n\treturn v;\n}\nfunction functionParse(str) {\n\tif (str.charAt(0) === 'r') {\n\t\treturn rgbParse(str);\n\t}\n\treturn hueParse(str);\n}\nclass Color {\n\tconstructor(input) {\n\t\tif (input instanceof Color) {\n\t\t\treturn input;\n\t\t}\n\t\tconst type = typeof input;\n\t\tlet v;\n\t\tif (type === 'object') {\n\t\t\tv = fromObject(input);\n\t\t} else if (type === 'string') {\n\t\t\tv = hexParse(input) || nameParse(input) || functionParse(input);\n\t\t}\n\t\tthis._rgb = v;\n\t\tthis._valid = !!v;\n\t}\n\tget valid() {\n\t\treturn this._valid;\n\t}\n\tget rgb() {\n\t\tvar v = clone(this._rgb);\n\t\tif (v) {\n\t\t\tv.a = b2n(v.a);\n\t\t}\n\t\treturn v;\n\t}\n\tset rgb(obj) {\n\t\tthis._rgb = fromObject(obj);\n\t}\n\trgbString() {\n\t\treturn this._valid ? rgbString(this._rgb) : this._rgb;\n\t}\n\thexString() {\n\t\treturn this._valid ? hexString(this._rgb) : this._rgb;\n\t}\n\thslString() {\n\t\treturn this._valid ? hslString(this._rgb) : this._rgb;\n\t}\n\tmix(color, weight) {\n\t\tconst me = this;\n\t\tif (color) {\n\t\t\tconst c1 = me.rgb;\n\t\t\tconst c2 = color.rgb;\n\t\t\tlet w2;\n\t\t\tconst p = weight === w2 ? 0.5 : weight;\n\t\t\tconst w = 2 * p - 1;\n\t\t\tconst a = c1.a - c2.a;\n\t\t\tconst w1 = ((w * a === -1 ? w : (w + a) / (1 + w * a)) + 1) / 2.0;\n\t\t\tw2 = 1 - w1;\n\t\t\tc1.r = 0xFF & w1 * c1.r + w2 * c2.r + 0.5;\n\t\t\tc1.g = 0xFF & w1 * c1.g + w2 * c2.g + 0.5;\n\t\t\tc1.b = 0xFF & w1 * c1.b + w2 * c2.b + 0.5;\n\t\t\tc1.a = p * c1.a + (1 - p) * c2.a;\n\t\t\tme.rgb = c1;\n\t\t}\n\t\treturn me;\n\t}\n\tclone() {\n\t\treturn new Color(this.rgb);\n\t}\n\talpha(a) {\n\t\tthis._rgb.a = n2b(a);\n\t\treturn this;\n\t}\n\tclearer(ratio) {\n\t\tconst rgb = this._rgb;\n\t\trgb.a *= 1 - ratio;\n\t\treturn this;\n\t}\n\tgreyscale() {\n\t\tconst rgb = this._rgb;\n\t\tconst val = round(rgb.r * 0.3 + rgb.g * 0.59 + rgb.b * 0.11);\n\t\trgb.r = rgb.g = rgb.b = val;\n\t\treturn this;\n\t}\n\topaquer(ratio) {\n\t\tconst rgb = this._rgb;\n\t\trgb.a *= 1 + ratio;\n\t\treturn this;\n\t}\n\tnegate() {\n\t\tconst v = this._rgb;\n\t\tv.r = 255 - v.r;\n\t\tv.g = 255 - v.g;\n\t\tv.b = 255 - v.b;\n\t\treturn this;\n\t}\n\tlighten(ratio) {\n\t\tmodHSL(this._rgb, 2, ratio);\n\t\treturn this;\n\t}\n\tdarken(ratio) {\n\t\tmodHSL(this._rgb, 2, -ratio);\n\t\treturn this;\n\t}\n\tsaturate(ratio) {\n\t\tmodHSL(this._rgb, 1, ratio);\n\t\treturn this;\n\t}\n\tdesaturate(ratio) {\n\t\tmodHSL(this._rgb, 1, -ratio);\n\t\treturn this;\n\t}\n\trotate(deg) {\n\t\trotate(this._rgb, deg);\n\t\treturn this;\n\t}\n}\nfunction index_esm(input) {\n\treturn new Color(input);\n}\n\nconst isPatternOrGradient = (value) => value instanceof CanvasGradient || value instanceof CanvasPattern;\nfunction color(value) {\n return isPatternOrGradient(value) ? value : index_esm(value);\n}\nfunction getHoverColor(value) {\n return isPatternOrGradient(value)\n ? value\n : index_esm(value).saturate(0.5).darken(0.1).hexString();\n}\n\nconst overrides = Object.create(null);\nconst descriptors = Object.create(null);\nfunction getScope$1(node, key) {\n if (!key) {\n return node;\n }\n const keys = key.split('.');\n for (let i = 0, n = keys.length; i < n; ++i) {\n const k = keys[i];\n node = node[k] || (node[k] = Object.create(null));\n }\n return node;\n}\nfunction set(root, scope, values) {\n if (typeof scope === 'string') {\n return merge(getScope$1(root, scope), values);\n }\n return merge(getScope$1(root, ''), scope);\n}\nclass Defaults {\n constructor(_descriptors) {\n this.animation = undefined;\n this.backgroundColor = 'rgba(0,0,0,0.1)';\n this.borderColor = 'rgba(0,0,0,0.1)';\n this.color = '#666';\n this.datasets = {};\n this.devicePixelRatio = (context) => context.chart.platform.getDevicePixelRatio();\n this.elements = {};\n this.events = [\n 'mousemove',\n 'mouseout',\n 'click',\n 'touchstart',\n 'touchmove'\n ];\n this.font = {\n family: \"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif\",\n size: 12,\n style: 'normal',\n lineHeight: 1.2,\n weight: null\n };\n this.hover = {};\n this.hoverBackgroundColor = (ctx, options) => getHoverColor(options.backgroundColor);\n this.hoverBorderColor = (ctx, options) => getHoverColor(options.borderColor);\n this.hoverColor = (ctx, options) => getHoverColor(options.color);\n this.indexAxis = 'x';\n this.interaction = {\n mode: 'nearest',\n intersect: true\n };\n this.maintainAspectRatio = true;\n this.onHover = null;\n this.onClick = null;\n this.parsing = true;\n this.plugins = {};\n this.responsive = true;\n this.scale = undefined;\n this.scales = {};\n this.showLine = true;\n this.describe(_descriptors);\n }\n set(scope, values) {\n return set(this, scope, values);\n }\n get(scope) {\n return getScope$1(this, scope);\n }\n describe(scope, values) {\n return set(descriptors, scope, values);\n }\n override(scope, values) {\n return set(overrides, scope, values);\n }\n route(scope, name, targetScope, targetName) {\n const scopeObject = getScope$1(this, scope);\n const targetScopeObject = getScope$1(this, targetScope);\n const privateName = '_' + name;\n Object.defineProperties(scopeObject, {\n [privateName]: {\n value: scopeObject[name],\n writable: true\n },\n [name]: {\n enumerable: true,\n get() {\n const local = this[privateName];\n const target = targetScopeObject[targetName];\n if (isObject(local)) {\n return Object.assign({}, target, local);\n }\n return valueOrDefault(local, target);\n },\n set(value) {\n this[privateName] = value;\n }\n }\n });\n }\n}\nvar defaults = new Defaults({\n _scriptable: (name) => !name.startsWith('on'),\n _indexable: (name) => name !== 'events',\n hover: {\n _fallback: 'interaction'\n },\n interaction: {\n _scriptable: false,\n _indexable: false,\n }\n});\n\nfunction toFontString(font) {\n if (!font || isNullOrUndef(font.size) || isNullOrUndef(font.family)) {\n return null;\n }\n return (font.style ? font.style + ' ' : '')\n\t\t+ (font.weight ? font.weight + ' ' : '')\n\t\t+ font.size + 'px '\n\t\t+ font.family;\n}\nfunction _measureText(ctx, data, gc, longest, string) {\n let textWidth = data[string];\n if (!textWidth) {\n textWidth = data[string] = ctx.measureText(string).width;\n gc.push(string);\n }\n if (textWidth > longest) {\n longest = textWidth;\n }\n return longest;\n}\nfunction _longestText(ctx, font, arrayOfThings, cache) {\n cache = cache || {};\n let data = cache.data = cache.data || {};\n let gc = cache.garbageCollect = cache.garbageCollect || [];\n if (cache.font !== font) {\n data = cache.data = {};\n gc = cache.garbageCollect = [];\n cache.font = font;\n }\n ctx.save();\n ctx.font = font;\n let longest = 0;\n const ilen = arrayOfThings.length;\n let i, j, jlen, thing, nestedThing;\n for (i = 0; i < ilen; i++) {\n thing = arrayOfThings[i];\n if (thing !== undefined && thing !== null && isArray(thing) !== true) {\n longest = _measureText(ctx, data, gc, longest, thing);\n } else if (isArray(thing)) {\n for (j = 0, jlen = thing.length; j < jlen; j++) {\n nestedThing = thing[j];\n if (nestedThing !== undefined && nestedThing !== null && !isArray(nestedThing)) {\n longest = _measureText(ctx, data, gc, longest, nestedThing);\n }\n }\n }\n }\n ctx.restore();\n const gcLen = gc.length / 2;\n if (gcLen > arrayOfThings.length) {\n for (i = 0; i < gcLen; i++) {\n delete data[gc[i]];\n }\n gc.splice(0, gcLen);\n }\n return longest;\n}\nfunction _alignPixel(chart, pixel, width) {\n const devicePixelRatio = chart.currentDevicePixelRatio;\n const halfWidth = width !== 0 ? Math.max(width / 2, 0.5) : 0;\n return Math.round((pixel - halfWidth) * devicePixelRatio) / devicePixelRatio + halfWidth;\n}\nfunction clearCanvas(canvas, ctx) {\n ctx = ctx || canvas.getContext('2d');\n ctx.save();\n ctx.resetTransform();\n ctx.clearRect(0, 0, canvas.width, canvas.height);\n ctx.restore();\n}\nfunction drawPoint(ctx, options, x, y) {\n let type, xOffset, yOffset, size, cornerRadius;\n const style = options.pointStyle;\n const rotation = options.rotation;\n const radius = options.radius;\n let rad = (rotation || 0) * RAD_PER_DEG;\n if (style && typeof style === 'object') {\n type = style.toString();\n if (type === '[object HTMLImageElement]' || type === '[object HTMLCanvasElement]') {\n ctx.save();\n ctx.translate(x, y);\n ctx.rotate(rad);\n ctx.drawImage(style, -style.width / 2, -style.height / 2, style.width, style.height);\n ctx.restore();\n return;\n }\n }\n if (isNaN(radius) || radius <= 0) {\n return;\n }\n ctx.beginPath();\n switch (style) {\n default:\n ctx.arc(x, y, radius, 0, TAU);\n ctx.closePath();\n break;\n case 'triangle':\n ctx.moveTo(x + Math.sin(rad) * radius, y - Math.cos(rad) * radius);\n rad += TWO_THIRDS_PI;\n ctx.lineTo(x + Math.sin(rad) * radius, y - Math.cos(rad) * radius);\n rad += TWO_THIRDS_PI;\n ctx.lineTo(x + Math.sin(rad) * radius, y - Math.cos(rad) * radius);\n ctx.closePath();\n break;\n case 'rectRounded':\n cornerRadius = radius * 0.516;\n size = radius - cornerRadius;\n xOffset = Math.cos(rad + QUARTER_PI) * size;\n yOffset = Math.sin(rad + QUARTER_PI) * size;\n ctx.arc(x - xOffset, y - yOffset, cornerRadius, rad - PI, rad - HALF_PI);\n ctx.arc(x + yOffset, y - xOffset, cornerRadius, rad - HALF_PI, rad);\n ctx.arc(x + xOffset, y + yOffset, cornerRadius, rad, rad + HALF_PI);\n ctx.arc(x - yOffset, y + xOffset, cornerRadius, rad + HALF_PI, rad + PI);\n ctx.closePath();\n break;\n case 'rect':\n if (!rotation) {\n size = Math.SQRT1_2 * radius;\n ctx.rect(x - size, y - size, 2 * size, 2 * size);\n break;\n }\n rad += QUARTER_PI;\n case 'rectRot':\n xOffset = Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n ctx.moveTo(x - xOffset, y - yOffset);\n ctx.lineTo(x + yOffset, y - xOffset);\n ctx.lineTo(x + xOffset, y + yOffset);\n ctx.lineTo(x - yOffset, y + xOffset);\n ctx.closePath();\n break;\n case 'crossRot':\n rad += QUARTER_PI;\n case 'cross':\n xOffset = Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n ctx.moveTo(x - xOffset, y - yOffset);\n ctx.lineTo(x + xOffset, y + yOffset);\n ctx.moveTo(x + yOffset, y - xOffset);\n ctx.lineTo(x - yOffset, y + xOffset);\n break;\n case 'star':\n xOffset = Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n ctx.moveTo(x - xOffset, y - yOffset);\n ctx.lineTo(x + xOffset, y + yOffset);\n ctx.moveTo(x + yOffset, y - xOffset);\n ctx.lineTo(x - yOffset, y + xOffset);\n rad += QUARTER_PI;\n xOffset = Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n ctx.moveTo(x - xOffset, y - yOffset);\n ctx.lineTo(x + xOffset, y + yOffset);\n ctx.moveTo(x + yOffset, y - xOffset);\n ctx.lineTo(x - yOffset, y + xOffset);\n break;\n case 'line':\n xOffset = Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n ctx.moveTo(x - xOffset, y - yOffset);\n ctx.lineTo(x + xOffset, y + yOffset);\n break;\n case 'dash':\n ctx.moveTo(x, y);\n ctx.lineTo(x + Math.cos(rad) * radius, y + Math.sin(rad) * radius);\n break;\n }\n ctx.fill();\n if (options.borderWidth > 0) {\n ctx.stroke();\n }\n}\nfunction _isPointInArea(point, area, margin) {\n margin = margin || 0.5;\n return !area || (point && point.x > area.left - margin && point.x < area.right + margin &&\n\t\tpoint.y > area.top - margin && point.y < area.bottom + margin);\n}\nfunction clipArea(ctx, area) {\n ctx.save();\n ctx.beginPath();\n ctx.rect(area.left, area.top, area.right - area.left, area.bottom - area.top);\n ctx.clip();\n}\nfunction unclipArea(ctx) {\n ctx.restore();\n}\nfunction _steppedLineTo(ctx, previous, target, flip, mode) {\n if (!previous) {\n return ctx.lineTo(target.x, target.y);\n }\n if (mode === 'middle') {\n const midpoint = (previous.x + target.x) / 2.0;\n ctx.lineTo(midpoint, previous.y);\n ctx.lineTo(midpoint, target.y);\n } else if (mode === 'after' !== !!flip) {\n ctx.lineTo(previous.x, target.y);\n } else {\n ctx.lineTo(target.x, previous.y);\n }\n ctx.lineTo(target.x, target.y);\n}\nfunction _bezierCurveTo(ctx, previous, target, flip) {\n if (!previous) {\n return ctx.lineTo(target.x, target.y);\n }\n ctx.bezierCurveTo(\n flip ? previous.cp1x : previous.cp2x,\n flip ? previous.cp1y : previous.cp2y,\n flip ? target.cp2x : target.cp1x,\n flip ? target.cp2y : target.cp1y,\n target.x,\n target.y);\n}\nfunction renderText(ctx, text, x, y, font, opts = {}) {\n const lines = isArray(text) ? text : [text];\n const stroke = opts.strokeWidth > 0 && opts.strokeColor !== '';\n let i, line;\n ctx.save();\n ctx.font = font.string;\n setRenderOpts(ctx, opts);\n for (i = 0; i < lines.length; ++i) {\n line = lines[i];\n if (stroke) {\n if (opts.strokeColor) {\n ctx.strokeStyle = opts.strokeColor;\n }\n if (!isNullOrUndef(opts.strokeWidth)) {\n ctx.lineWidth = opts.strokeWidth;\n }\n ctx.strokeText(line, x, y, opts.maxWidth);\n }\n ctx.fillText(line, x, y, opts.maxWidth);\n decorateText(ctx, x, y, line, opts);\n y += font.lineHeight;\n }\n ctx.restore();\n}\nfunction setRenderOpts(ctx, opts) {\n if (opts.translation) {\n ctx.translate(opts.translation[0], opts.translation[1]);\n }\n if (!isNullOrUndef(opts.rotation)) {\n ctx.rotate(opts.rotation);\n }\n if (opts.color) {\n ctx.fillStyle = opts.color;\n }\n if (opts.textAlign) {\n ctx.textAlign = opts.textAlign;\n }\n if (opts.textBaseline) {\n ctx.textBaseline = opts.textBaseline;\n }\n}\nfunction decorateText(ctx, x, y, line, opts) {\n if (opts.strikethrough || opts.underline) {\n const metrics = ctx.measureText(line);\n const left = x - metrics.actualBoundingBoxLeft;\n const right = x + metrics.actualBoundingBoxRight;\n const top = y - metrics.actualBoundingBoxAscent;\n const bottom = y + metrics.actualBoundingBoxDescent;\n const yDecoration = opts.strikethrough ? (top + bottom) / 2 : bottom;\n ctx.strokeStyle = ctx.fillStyle;\n ctx.beginPath();\n ctx.lineWidth = opts.decorationWidth || 2;\n ctx.moveTo(left, yDecoration);\n ctx.lineTo(right, yDecoration);\n ctx.stroke();\n }\n}\nfunction addRoundedRectPath(ctx, rect) {\n const {x, y, w, h, radius} = rect;\n ctx.arc(x + radius.topLeft, y + radius.topLeft, radius.topLeft, -HALF_PI, PI, true);\n ctx.lineTo(x, y + h - radius.bottomLeft);\n ctx.arc(x + radius.bottomLeft, y + h - radius.bottomLeft, radius.bottomLeft, PI, HALF_PI, true);\n ctx.lineTo(x + w - radius.bottomRight, y + h);\n ctx.arc(x + w - radius.bottomRight, y + h - radius.bottomRight, radius.bottomRight, HALF_PI, 0, true);\n ctx.lineTo(x + w, y + radius.topRight);\n ctx.arc(x + w - radius.topRight, y + radius.topRight, radius.topRight, 0, -HALF_PI, true);\n ctx.lineTo(x + radius.topLeft, y);\n}\n\nconst LINE_HEIGHT = new RegExp(/^(normal|(\\d+(?:\\.\\d+)?)(px|em|%)?)$/);\nconst FONT_STYLE = new RegExp(/^(normal|italic|initial|inherit|unset|(oblique( -?[0-9]?[0-9]deg)?))$/);\nfunction toLineHeight(value, size) {\n const matches = ('' + value).match(LINE_HEIGHT);\n if (!matches || matches[1] === 'normal') {\n return size * 1.2;\n }\n value = +matches[2];\n switch (matches[3]) {\n case 'px':\n return value;\n case '%':\n value /= 100;\n break;\n }\n return size * value;\n}\nconst numberOrZero = v => +v || 0;\nfunction _readValueToProps(value, props) {\n const ret = {};\n const objProps = isObject(props);\n const keys = objProps ? Object.keys(props) : props;\n const read = isObject(value)\n ? objProps\n ? prop => valueOrDefault(value[prop], value[props[prop]])\n : prop => value[prop]\n : () => value;\n for (const prop of keys) {\n ret[prop] = numberOrZero(read(prop));\n }\n return ret;\n}\nfunction toTRBL(value) {\n return _readValueToProps(value, {top: 'y', right: 'x', bottom: 'y', left: 'x'});\n}\nfunction toTRBLCorners(value) {\n return _readValueToProps(value, ['topLeft', 'topRight', 'bottomLeft', 'bottomRight']);\n}\nfunction toPadding(value) {\n const obj = toTRBL(value);\n obj.width = obj.left + obj.right;\n obj.height = obj.top + obj.bottom;\n return obj;\n}\nfunction toFont(options, fallback) {\n options = options || {};\n fallback = fallback || defaults.font;\n let size = valueOrDefault(options.size, fallback.size);\n if (typeof size === 'string') {\n size = parseInt(size, 10);\n }\n let style = valueOrDefault(options.style, fallback.style);\n if (style && !('' + style).match(FONT_STYLE)) {\n console.warn('Invalid font style specified: \"' + style + '\"');\n style = '';\n }\n const font = {\n family: valueOrDefault(options.family, fallback.family),\n lineHeight: toLineHeight(valueOrDefault(options.lineHeight, fallback.lineHeight), size),\n size,\n style,\n weight: valueOrDefault(options.weight, fallback.weight),\n string: ''\n };\n font.string = toFontString(font);\n return font;\n}\nfunction resolve(inputs, context, index, info) {\n let cacheable = true;\n let i, ilen, value;\n for (i = 0, ilen = inputs.length; i < ilen; ++i) {\n value = inputs[i];\n if (value === undefined) {\n continue;\n }\n if (context !== undefined && typeof value === 'function') {\n value = value(context);\n cacheable = false;\n }\n if (index !== undefined && isArray(value)) {\n value = value[index % value.length];\n cacheable = false;\n }\n if (value !== undefined) {\n if (info && !cacheable) {\n info.cacheable = false;\n }\n return value;\n }\n }\n}\nfunction _addGrace(minmax, grace, beginAtZero) {\n const {min, max} = minmax;\n const change = toDimension(grace, (max - min) / 2);\n const keepZero = (value, add) => beginAtZero && value === 0 ? 0 : value + add;\n return {\n min: keepZero(min, -Math.abs(change)),\n max: keepZero(max, change)\n };\n}\nfunction createContext(parentContext, context) {\n return Object.assign(Object.create(parentContext), context);\n}\n\nfunction _lookup(table, value, cmp) {\n cmp = cmp || ((index) => table[index] < value);\n let hi = table.length - 1;\n let lo = 0;\n let mid;\n while (hi - lo > 1) {\n mid = (lo + hi) >> 1;\n if (cmp(mid)) {\n lo = mid;\n } else {\n hi = mid;\n }\n }\n return {lo, hi};\n}\nconst _lookupByKey = (table, key, value) =>\n _lookup(table, value, index => table[index][key] < value);\nconst _rlookupByKey = (table, key, value) =>\n _lookup(table, value, index => table[index][key] >= value);\nfunction _filterBetween(values, min, max) {\n let start = 0;\n let end = values.length;\n while (start < end && values[start] < min) {\n start++;\n }\n while (end > start && values[end - 1] > max) {\n end--;\n }\n return start > 0 || end < values.length\n ? values.slice(start, end)\n : values;\n}\nconst arrayEvents = ['push', 'pop', 'shift', 'splice', 'unshift'];\nfunction listenArrayEvents(array, listener) {\n if (array._chartjs) {\n array._chartjs.listeners.push(listener);\n return;\n }\n Object.defineProperty(array, '_chartjs', {\n configurable: true,\n enumerable: false,\n value: {\n listeners: [listener]\n }\n });\n arrayEvents.forEach((key) => {\n const method = '_onData' + _capitalize(key);\n const base = array[key];\n Object.defineProperty(array, key, {\n configurable: true,\n enumerable: false,\n value(...args) {\n const res = base.apply(this, args);\n array._chartjs.listeners.forEach((object) => {\n if (typeof object[method] === 'function') {\n object[method](...args);\n }\n });\n return res;\n }\n });\n });\n}\nfunction unlistenArrayEvents(array, listener) {\n const stub = array._chartjs;\n if (!stub) {\n return;\n }\n const listeners = stub.listeners;\n const index = listeners.indexOf(listener);\n if (index !== -1) {\n listeners.splice(index, 1);\n }\n if (listeners.length > 0) {\n return;\n }\n arrayEvents.forEach((key) => {\n delete array[key];\n });\n delete array._chartjs;\n}\nfunction _arrayUnique(items) {\n const set = new Set();\n let i, ilen;\n for (i = 0, ilen = items.length; i < ilen; ++i) {\n set.add(items[i]);\n }\n if (set.size === ilen) {\n return items;\n }\n return Array.from(set);\n}\n\nfunction _createResolver(scopes, prefixes = [''], rootScopes = scopes, fallback, getTarget = () => scopes[0]) {\n if (!defined(fallback)) {\n fallback = _resolve('_fallback', scopes);\n }\n const cache = {\n [Symbol.toStringTag]: 'Object',\n _cacheable: true,\n _scopes: scopes,\n _rootScopes: rootScopes,\n _fallback: fallback,\n _getTarget: getTarget,\n override: (scope) => _createResolver([scope, ...scopes], prefixes, rootScopes, fallback),\n };\n return new Proxy(cache, {\n deleteProperty(target, prop) {\n delete target[prop];\n delete target._keys;\n delete scopes[0][prop];\n return true;\n },\n get(target, prop) {\n return _cached(target, prop,\n () => _resolveWithPrefixes(prop, prefixes, scopes, target));\n },\n getOwnPropertyDescriptor(target, prop) {\n return Reflect.getOwnPropertyDescriptor(target._scopes[0], prop);\n },\n getPrototypeOf() {\n return Reflect.getPrototypeOf(scopes[0]);\n },\n has(target, prop) {\n return getKeysFromAllScopes(target).includes(prop);\n },\n ownKeys(target) {\n return getKeysFromAllScopes(target);\n },\n set(target, prop, value) {\n const storage = target._storage || (target._storage = getTarget());\n storage[prop] = value;\n delete target[prop];\n delete target._keys;\n return true;\n }\n });\n}\nfunction _attachContext(proxy, context, subProxy, descriptorDefaults) {\n const cache = {\n _cacheable: false,\n _proxy: proxy,\n _context: context,\n _subProxy: subProxy,\n _stack: new Set(),\n _descriptors: _descriptors(proxy, descriptorDefaults),\n setContext: (ctx) => _attachContext(proxy, ctx, subProxy, descriptorDefaults),\n override: (scope) => _attachContext(proxy.override(scope), context, subProxy, descriptorDefaults)\n };\n return new Proxy(cache, {\n deleteProperty(target, prop) {\n delete target[prop];\n delete proxy[prop];\n return true;\n },\n get(target, prop, receiver) {\n return _cached(target, prop,\n () => _resolveWithContext(target, prop, receiver));\n },\n getOwnPropertyDescriptor(target, prop) {\n return target._descriptors.allKeys\n ? Reflect.has(proxy, prop) ? {enumerable: true, configurable: true} : undefined\n : Reflect.getOwnPropertyDescriptor(proxy, prop);\n },\n getPrototypeOf() {\n return Reflect.getPrototypeOf(proxy);\n },\n has(target, prop) {\n return Reflect.has(proxy, prop);\n },\n ownKeys() {\n return Reflect.ownKeys(proxy);\n },\n set(target, prop, value) {\n proxy[prop] = value;\n delete target[prop];\n return true;\n }\n });\n}\nfunction _descriptors(proxy, defaults = {scriptable: true, indexable: true}) {\n const {_scriptable = defaults.scriptable, _indexable = defaults.indexable, _allKeys = defaults.allKeys} = proxy;\n return {\n allKeys: _allKeys,\n scriptable: _scriptable,\n indexable: _indexable,\n isScriptable: isFunction(_scriptable) ? _scriptable : () => _scriptable,\n isIndexable: isFunction(_indexable) ? _indexable : () => _indexable\n };\n}\nconst readKey = (prefix, name) => prefix ? prefix + _capitalize(name) : name;\nconst needsSubResolver = (prop, value) => isObject(value) && prop !== 'adapters';\nfunction _cached(target, prop, resolve) {\n if (Object.prototype.hasOwnProperty.call(target, prop)) {\n return target[prop];\n }\n const value = resolve();\n target[prop] = value;\n return value;\n}\nfunction _resolveWithContext(target, prop, receiver) {\n const {_proxy, _context, _subProxy, _descriptors: descriptors} = target;\n let value = _proxy[prop];\n if (isFunction(value) && descriptors.isScriptable(prop)) {\n value = _resolveScriptable(prop, value, target, receiver);\n }\n if (isArray(value) && value.length) {\n value = _resolveArray(prop, value, target, descriptors.isIndexable);\n }\n if (needsSubResolver(prop, value)) {\n value = _attachContext(value, _context, _subProxy && _subProxy[prop], descriptors);\n }\n return value;\n}\nfunction _resolveScriptable(prop, value, target, receiver) {\n const {_proxy, _context, _subProxy, _stack} = target;\n if (_stack.has(prop)) {\n throw new Error('Recursion detected: ' + Array.from(_stack).join('->') + '->' + prop);\n }\n _stack.add(prop);\n value = value(_context, _subProxy || receiver);\n _stack.delete(prop);\n if (isObject(value)) {\n value = createSubResolver(_proxy._scopes, _proxy, prop, value);\n }\n return value;\n}\nfunction _resolveArray(prop, value, target, isIndexable) {\n const {_proxy, _context, _subProxy, _descriptors: descriptors} = target;\n if (defined(_context.index) && isIndexable(prop)) {\n value = value[_context.index % value.length];\n } else if (isObject(value[0])) {\n const arr = value;\n const scopes = _proxy._scopes.filter(s => s !== arr);\n value = [];\n for (const item of arr) {\n const resolver = createSubResolver(scopes, _proxy, prop, item);\n value.push(_attachContext(resolver, _context, _subProxy && _subProxy[prop], descriptors));\n }\n }\n return value;\n}\nfunction resolveFallback(fallback, prop, value) {\n return isFunction(fallback) ? fallback(prop, value) : fallback;\n}\nconst getScope = (key, parent) => key === true ? parent\n : typeof key === 'string' ? resolveObjectKey(parent, key) : undefined;\nfunction addScopes(set, parentScopes, key, parentFallback) {\n for (const parent of parentScopes) {\n const scope = getScope(key, parent);\n if (scope) {\n set.add(scope);\n const fallback = resolveFallback(scope._fallback, key, scope);\n if (defined(fallback) && fallback !== key && fallback !== parentFallback) {\n return fallback;\n }\n } else if (scope === false && defined(parentFallback) && key !== parentFallback) {\n return null;\n }\n }\n return false;\n}\nfunction createSubResolver(parentScopes, resolver, prop, value) {\n const rootScopes = resolver._rootScopes;\n const fallback = resolveFallback(resolver._fallback, prop, value);\n const allScopes = [...parentScopes, ...rootScopes];\n const set = new Set();\n set.add(value);\n let key = addScopesFromKey(set, allScopes, prop, fallback || prop);\n if (key === null) {\n return false;\n }\n if (defined(fallback) && fallback !== prop) {\n key = addScopesFromKey(set, allScopes, fallback, key);\n if (key === null) {\n return false;\n }\n }\n return _createResolver(Array.from(set), [''], rootScopes, fallback,\n () => subGetTarget(resolver, prop, value));\n}\nfunction addScopesFromKey(set, allScopes, key, fallback) {\n while (key) {\n key = addScopes(set, allScopes, key, fallback);\n }\n return key;\n}\nfunction subGetTarget(resolver, prop, value) {\n const parent = resolver._getTarget();\n if (!(prop in parent)) {\n parent[prop] = {};\n }\n const target = parent[prop];\n if (isArray(target) && isObject(value)) {\n return value;\n }\n return target;\n}\nfunction _resolveWithPrefixes(prop, prefixes, scopes, proxy) {\n let value;\n for (const prefix of prefixes) {\n value = _resolve(readKey(prefix, prop), scopes);\n if (defined(value)) {\n return needsSubResolver(prop, value)\n ? createSubResolver(scopes, proxy, prop, value)\n : value;\n }\n }\n}\nfunction _resolve(key, scopes) {\n for (const scope of scopes) {\n if (!scope) {\n continue;\n }\n const value = scope[key];\n if (defined(value)) {\n return value;\n }\n }\n}\nfunction getKeysFromAllScopes(target) {\n let keys = target._keys;\n if (!keys) {\n keys = target._keys = resolveKeysFromAllScopes(target._scopes);\n }\n return keys;\n}\nfunction resolveKeysFromAllScopes(scopes) {\n const set = new Set();\n for (const scope of scopes) {\n for (const key of Object.keys(scope).filter(k => !k.startsWith('_'))) {\n set.add(key);\n }\n }\n return Array.from(set);\n}\n\nconst EPSILON = Number.EPSILON || 1e-14;\nconst getPoint = (points, i) => i < points.length && !points[i].skip && points[i];\nconst getValueAxis = (indexAxis) => indexAxis === 'x' ? 'y' : 'x';\nfunction splineCurve(firstPoint, middlePoint, afterPoint, t) {\n const previous = firstPoint.skip ? middlePoint : firstPoint;\n const current = middlePoint;\n const next = afterPoint.skip ? middlePoint : afterPoint;\n const d01 = distanceBetweenPoints(current, previous);\n const d12 = distanceBetweenPoints(next, current);\n let s01 = d01 / (d01 + d12);\n let s12 = d12 / (d01 + d12);\n s01 = isNaN(s01) ? 0 : s01;\n s12 = isNaN(s12) ? 0 : s12;\n const fa = t * s01;\n const fb = t * s12;\n return {\n previous: {\n x: current.x - fa * (next.x - previous.x),\n y: current.y - fa * (next.y - previous.y)\n },\n next: {\n x: current.x + fb * (next.x - previous.x),\n y: current.y + fb * (next.y - previous.y)\n }\n };\n}\nfunction monotoneAdjust(points, deltaK, mK) {\n const pointsLen = points.length;\n let alphaK, betaK, tauK, squaredMagnitude, pointCurrent;\n let pointAfter = getPoint(points, 0);\n for (let i = 0; i < pointsLen - 1; ++i) {\n pointCurrent = pointAfter;\n pointAfter = getPoint(points, i + 1);\n if (!pointCurrent || !pointAfter) {\n continue;\n }\n if (almostEquals(deltaK[i], 0, EPSILON)) {\n mK[i] = mK[i + 1] = 0;\n continue;\n }\n alphaK = mK[i] / deltaK[i];\n betaK = mK[i + 1] / deltaK[i];\n squaredMagnitude = Math.pow(alphaK, 2) + Math.pow(betaK, 2);\n if (squaredMagnitude <= 9) {\n continue;\n }\n tauK = 3 / Math.sqrt(squaredMagnitude);\n mK[i] = alphaK * tauK * deltaK[i];\n mK[i + 1] = betaK * tauK * deltaK[i];\n }\n}\nfunction monotoneCompute(points, mK, indexAxis = 'x') {\n const valueAxis = getValueAxis(indexAxis);\n const pointsLen = points.length;\n let delta, pointBefore, pointCurrent;\n let pointAfter = getPoint(points, 0);\n for (let i = 0; i < pointsLen; ++i) {\n pointBefore = pointCurrent;\n pointCurrent = pointAfter;\n pointAfter = getPoint(points, i + 1);\n if (!pointCurrent) {\n continue;\n }\n const iPixel = pointCurrent[indexAxis];\n const vPixel = pointCurrent[valueAxis];\n if (pointBefore) {\n delta = (iPixel - pointBefore[indexAxis]) / 3;\n pointCurrent[`cp1${indexAxis}`] = iPixel - delta;\n pointCurrent[`cp1${valueAxis}`] = vPixel - delta * mK[i];\n }\n if (pointAfter) {\n delta = (pointAfter[indexAxis] - iPixel) / 3;\n pointCurrent[`cp2${indexAxis}`] = iPixel + delta;\n pointCurrent[`cp2${valueAxis}`] = vPixel + delta * mK[i];\n }\n }\n}\nfunction splineCurveMonotone(points, indexAxis = 'x') {\n const valueAxis = getValueAxis(indexAxis);\n const pointsLen = points.length;\n const deltaK = Array(pointsLen).fill(0);\n const mK = Array(pointsLen);\n let i, pointBefore, pointCurrent;\n let pointAfter = getPoint(points, 0);\n for (i = 0; i < pointsLen; ++i) {\n pointBefore = pointCurrent;\n pointCurrent = pointAfter;\n pointAfter = getPoint(points, i + 1);\n if (!pointCurrent) {\n continue;\n }\n if (pointAfter) {\n const slopeDelta = pointAfter[indexAxis] - pointCurrent[indexAxis];\n deltaK[i] = slopeDelta !== 0 ? (pointAfter[valueAxis] - pointCurrent[valueAxis]) / slopeDelta : 0;\n }\n mK[i] = !pointBefore ? deltaK[i]\n : !pointAfter ? deltaK[i - 1]\n : (sign(deltaK[i - 1]) !== sign(deltaK[i])) ? 0\n : (deltaK[i - 1] + deltaK[i]) / 2;\n }\n monotoneAdjust(points, deltaK, mK);\n monotoneCompute(points, mK, indexAxis);\n}\nfunction capControlPoint(pt, min, max) {\n return Math.max(Math.min(pt, max), min);\n}\nfunction capBezierPoints(points, area) {\n let i, ilen, point, inArea, inAreaPrev;\n let inAreaNext = _isPointInArea(points[0], area);\n for (i = 0, ilen = points.length; i < ilen; ++i) {\n inAreaPrev = inArea;\n inArea = inAreaNext;\n inAreaNext = i < ilen - 1 && _isPointInArea(points[i + 1], area);\n if (!inArea) {\n continue;\n }\n point = points[i];\n if (inAreaPrev) {\n point.cp1x = capControlPoint(point.cp1x, area.left, area.right);\n point.cp1y = capControlPoint(point.cp1y, area.top, area.bottom);\n }\n if (inAreaNext) {\n point.cp2x = capControlPoint(point.cp2x, area.left, area.right);\n point.cp2y = capControlPoint(point.cp2y, area.top, area.bottom);\n }\n }\n}\nfunction _updateBezierControlPoints(points, options, area, loop, indexAxis) {\n let i, ilen, point, controlPoints;\n if (options.spanGaps) {\n points = points.filter((pt) => !pt.skip);\n }\n if (options.cubicInterpolationMode === 'monotone') {\n splineCurveMonotone(points, indexAxis);\n } else {\n let prev = loop ? points[points.length - 1] : points[0];\n for (i = 0, ilen = points.length; i < ilen; ++i) {\n point = points[i];\n controlPoints = splineCurve(\n prev,\n point,\n points[Math.min(i + 1, ilen - (loop ? 0 : 1)) % ilen],\n options.tension\n );\n point.cp1x = controlPoints.previous.x;\n point.cp1y = controlPoints.previous.y;\n point.cp2x = controlPoints.next.x;\n point.cp2y = controlPoints.next.y;\n prev = point;\n }\n }\n if (options.capBezierPoints) {\n capBezierPoints(points, area);\n }\n}\n\nfunction _isDomSupported() {\n return typeof window !== 'undefined' && typeof document !== 'undefined';\n}\nfunction _getParentNode(domNode) {\n let parent = domNode.parentNode;\n if (parent && parent.toString() === '[object ShadowRoot]') {\n parent = parent.host;\n }\n return parent;\n}\nfunction parseMaxStyle(styleValue, node, parentProperty) {\n let valueInPixels;\n if (typeof styleValue === 'string') {\n valueInPixels = parseInt(styleValue, 10);\n if (styleValue.indexOf('%') !== -1) {\n valueInPixels = valueInPixels / 100 * node.parentNode[parentProperty];\n }\n } else {\n valueInPixels = styleValue;\n }\n return valueInPixels;\n}\nconst getComputedStyle = (element) => window.getComputedStyle(element, null);\nfunction getStyle(el, property) {\n return getComputedStyle(el).getPropertyValue(property);\n}\nconst positions = ['top', 'right', 'bottom', 'left'];\nfunction getPositionedStyle(styles, style, suffix) {\n const result = {};\n suffix = suffix ? '-' + suffix : '';\n for (let i = 0; i < 4; i++) {\n const pos = positions[i];\n result[pos] = parseFloat(styles[style + '-' + pos + suffix]) || 0;\n }\n result.width = result.left + result.right;\n result.height = result.top + result.bottom;\n return result;\n}\nconst useOffsetPos = (x, y, target) => (x > 0 || y > 0) && (!target || !target.shadowRoot);\nfunction getCanvasPosition(evt, canvas) {\n const e = evt.native || evt;\n const touches = e.touches;\n const source = touches && touches.length ? touches[0] : e;\n const {offsetX, offsetY} = source;\n let box = false;\n let x, y;\n if (useOffsetPos(offsetX, offsetY, e.target)) {\n x = offsetX;\n y = offsetY;\n } else {\n const rect = canvas.getBoundingClientRect();\n x = source.clientX - rect.left;\n y = source.clientY - rect.top;\n box = true;\n }\n return {x, y, box};\n}\nfunction getRelativePosition(evt, chart) {\n const {canvas, currentDevicePixelRatio} = chart;\n const style = getComputedStyle(canvas);\n const borderBox = style.boxSizing === 'border-box';\n const paddings = getPositionedStyle(style, 'padding');\n const borders = getPositionedStyle(style, 'border', 'width');\n const {x, y, box} = getCanvasPosition(evt, canvas);\n const xOffset = paddings.left + (box && borders.left);\n const yOffset = paddings.top + (box && borders.top);\n let {width, height} = chart;\n if (borderBox) {\n width -= paddings.width + borders.width;\n height -= paddings.height + borders.height;\n }\n return {\n x: Math.round((x - xOffset) / width * canvas.width / currentDevicePixelRatio),\n y: Math.round((y - yOffset) / height * canvas.height / currentDevicePixelRatio)\n };\n}\nfunction getContainerSize(canvas, width, height) {\n let maxWidth, maxHeight;\n if (width === undefined || height === undefined) {\n const container = _getParentNode(canvas);\n if (!container) {\n width = canvas.clientWidth;\n height = canvas.clientHeight;\n } else {\n const rect = container.getBoundingClientRect();\n const containerStyle = getComputedStyle(container);\n const containerBorder = getPositionedStyle(containerStyle, 'border', 'width');\n const containerPadding = getPositionedStyle(containerStyle, 'padding');\n width = rect.width - containerPadding.width - containerBorder.width;\n height = rect.height - containerPadding.height - containerBorder.height;\n maxWidth = parseMaxStyle(containerStyle.maxWidth, container, 'clientWidth');\n maxHeight = parseMaxStyle(containerStyle.maxHeight, container, 'clientHeight');\n }\n }\n return {\n width,\n height,\n maxWidth: maxWidth || INFINITY,\n maxHeight: maxHeight || INFINITY\n };\n}\nconst round1 = v => Math.round(v * 10) / 10;\nfunction getMaximumSize(canvas, bbWidth, bbHeight, aspectRatio) {\n const style = getComputedStyle(canvas);\n const margins = getPositionedStyle(style, 'margin');\n const maxWidth = parseMaxStyle(style.maxWidth, canvas, 'clientWidth') || INFINITY;\n const maxHeight = parseMaxStyle(style.maxHeight, canvas, 'clientHeight') || INFINITY;\n const containerSize = getContainerSize(canvas, bbWidth, bbHeight);\n let {width, height} = containerSize;\n if (style.boxSizing === 'content-box') {\n const borders = getPositionedStyle(style, 'border', 'width');\n const paddings = getPositionedStyle(style, 'padding');\n width -= paddings.width + borders.width;\n height -= paddings.height + borders.height;\n }\n width = Math.max(0, width - margins.width);\n height = Math.max(0, aspectRatio ? Math.floor(width / aspectRatio) : height - margins.height);\n width = round1(Math.min(width, maxWidth, containerSize.maxWidth));\n height = round1(Math.min(height, maxHeight, containerSize.maxHeight));\n if (width && !height) {\n height = round1(width / 2);\n }\n return {\n width,\n height\n };\n}\nfunction retinaScale(chart, forceRatio, forceStyle) {\n const pixelRatio = forceRatio || 1;\n const deviceHeight = Math.floor(chart.height * pixelRatio);\n const deviceWidth = Math.floor(chart.width * pixelRatio);\n chart.height = deviceHeight / pixelRatio;\n chart.width = deviceWidth / pixelRatio;\n const canvas = chart.canvas;\n if (canvas.style && (forceStyle || (!canvas.style.height && !canvas.style.width))) {\n canvas.style.height = `${chart.height}px`;\n canvas.style.width = `${chart.width}px`;\n }\n if (chart.currentDevicePixelRatio !== pixelRatio\n || canvas.height !== deviceHeight\n || canvas.width !== deviceWidth) {\n chart.currentDevicePixelRatio = pixelRatio;\n canvas.height = deviceHeight;\n canvas.width = deviceWidth;\n chart.ctx.setTransform(pixelRatio, 0, 0, pixelRatio, 0, 0);\n return true;\n }\n return false;\n}\nconst supportsEventListenerOptions = (function() {\n let passiveSupported = false;\n try {\n const options = {\n get passive() {\n passiveSupported = true;\n return false;\n }\n };\n window.addEventListener('test', null, options);\n window.removeEventListener('test', null, options);\n } catch (e) {\n }\n return passiveSupported;\n}());\nfunction readUsedSize(element, property) {\n const value = getStyle(element, property);\n const matches = value && value.match(/^(\\d+)(\\.\\d+)?px$/);\n return matches ? +matches[1] : undefined;\n}\n\nfunction _pointInLine(p1, p2, t, mode) {\n return {\n x: p1.x + t * (p2.x - p1.x),\n y: p1.y + t * (p2.y - p1.y)\n };\n}\nfunction _steppedInterpolation(p1, p2, t, mode) {\n return {\n x: p1.x + t * (p2.x - p1.x),\n y: mode === 'middle' ? t < 0.5 ? p1.y : p2.y\n : mode === 'after' ? t < 1 ? p1.y : p2.y\n : t > 0 ? p2.y : p1.y\n };\n}\nfunction _bezierInterpolation(p1, p2, t, mode) {\n const cp1 = {x: p1.cp2x, y: p1.cp2y};\n const cp2 = {x: p2.cp1x, y: p2.cp1y};\n const a = _pointInLine(p1, cp1, t);\n const b = _pointInLine(cp1, cp2, t);\n const c = _pointInLine(cp2, p2, t);\n const d = _pointInLine(a, b, t);\n const e = _pointInLine(b, c, t);\n return _pointInLine(d, e, t);\n}\n\nconst intlCache = new Map();\nfunction getNumberFormat(locale, options) {\n options = options || {};\n const cacheKey = locale + JSON.stringify(options);\n let formatter = intlCache.get(cacheKey);\n if (!formatter) {\n formatter = new Intl.NumberFormat(locale, options);\n intlCache.set(cacheKey, formatter);\n }\n return formatter;\n}\nfunction formatNumber(num, locale, options) {\n return getNumberFormat(locale, options).format(num);\n}\n\nconst getRightToLeftAdapter = function(rectX, width) {\n return {\n x(x) {\n return rectX + rectX + width - x;\n },\n setWidth(w) {\n width = w;\n },\n textAlign(align) {\n if (align === 'center') {\n return align;\n }\n return align === 'right' ? 'left' : 'right';\n },\n xPlus(x, value) {\n return x - value;\n },\n leftForLtr(x, itemWidth) {\n return x - itemWidth;\n },\n };\n};\nconst getLeftToRightAdapter = function() {\n return {\n x(x) {\n return x;\n },\n setWidth(w) {\n },\n textAlign(align) {\n return align;\n },\n xPlus(x, value) {\n return x + value;\n },\n leftForLtr(x, _itemWidth) {\n return x;\n },\n };\n};\nfunction getRtlAdapter(rtl, rectX, width) {\n return rtl ? getRightToLeftAdapter(rectX, width) : getLeftToRightAdapter();\n}\nfunction overrideTextDirection(ctx, direction) {\n let style, original;\n if (direction === 'ltr' || direction === 'rtl') {\n style = ctx.canvas.style;\n original = [\n style.getPropertyValue('direction'),\n style.getPropertyPriority('direction'),\n ];\n style.setProperty('direction', direction, 'important');\n ctx.prevTextDirection = original;\n }\n}\nfunction restoreTextDirection(ctx, original) {\n if (original !== undefined) {\n delete ctx.prevTextDirection;\n ctx.canvas.style.setProperty('direction', original[0], original[1]);\n }\n}\n\nfunction propertyFn(property) {\n if (property === 'angle') {\n return {\n between: _angleBetween,\n compare: _angleDiff,\n normalize: _normalizeAngle,\n };\n }\n return {\n between: (n, s, e) => n >= Math.min(s, e) && n <= Math.max(e, s),\n compare: (a, b) => a - b,\n normalize: x => x\n };\n}\nfunction normalizeSegment({start, end, count, loop, style}) {\n return {\n start: start % count,\n end: end % count,\n loop: loop && (end - start + 1) % count === 0,\n style\n };\n}\nfunction getSegment(segment, points, bounds) {\n const {property, start: startBound, end: endBound} = bounds;\n const {between, normalize} = propertyFn(property);\n const count = points.length;\n let {start, end, loop} = segment;\n let i, ilen;\n if (loop) {\n start += count;\n end += count;\n for (i = 0, ilen = count; i < ilen; ++i) {\n if (!between(normalize(points[start % count][property]), startBound, endBound)) {\n break;\n }\n start--;\n end--;\n }\n start %= count;\n end %= count;\n }\n if (end < start) {\n end += count;\n }\n return {start, end, loop, style: segment.style};\n}\nfunction _boundSegment(segment, points, bounds) {\n if (!bounds) {\n return [segment];\n }\n const {property, start: startBound, end: endBound} = bounds;\n const count = points.length;\n const {compare, between, normalize} = propertyFn(property);\n const {start, end, loop, style} = getSegment(segment, points, bounds);\n const result = [];\n let inside = false;\n let subStart = null;\n let value, point, prevValue;\n const startIsBefore = () => between(startBound, prevValue, value) && compare(startBound, prevValue) !== 0;\n const endIsBefore = () => compare(endBound, value) === 0 || between(endBound, prevValue, value);\n const shouldStart = () => inside || startIsBefore();\n const shouldStop = () => !inside || endIsBefore();\n for (let i = start, prev = start; i <= end; ++i) {\n point = points[i % count];\n if (point.skip) {\n continue;\n }\n value = normalize(point[property]);\n if (value === prevValue) {\n continue;\n }\n inside = between(value, startBound, endBound);\n if (subStart === null && shouldStart()) {\n subStart = compare(value, startBound) === 0 ? i : prev;\n }\n if (subStart !== null && shouldStop()) {\n result.push(normalizeSegment({start: subStart, end: i, loop, count, style}));\n subStart = null;\n }\n prev = i;\n prevValue = value;\n }\n if (subStart !== null) {\n result.push(normalizeSegment({start: subStart, end, loop, count, style}));\n }\n return result;\n}\nfunction _boundSegments(line, bounds) {\n const result = [];\n const segments = line.segments;\n for (let i = 0; i < segments.length; i++) {\n const sub = _boundSegment(segments[i], line.points, bounds);\n if (sub.length) {\n result.push(...sub);\n }\n }\n return result;\n}\nfunction findStartAndEnd(points, count, loop, spanGaps) {\n let start = 0;\n let end = count - 1;\n if (loop && !spanGaps) {\n while (start < count && !points[start].skip) {\n start++;\n }\n }\n while (start < count && points[start].skip) {\n start++;\n }\n start %= count;\n if (loop) {\n end += start;\n }\n while (end > start && points[end % count].skip) {\n end--;\n }\n end %= count;\n return {start, end};\n}\nfunction solidSegments(points, start, max, loop) {\n const count = points.length;\n const result = [];\n let last = start;\n let prev = points[start];\n let end;\n for (end = start + 1; end <= max; ++end) {\n const cur = points[end % count];\n if (cur.skip || cur.stop) {\n if (!prev.skip) {\n loop = false;\n result.push({start: start % count, end: (end - 1) % count, loop});\n start = last = cur.stop ? end : null;\n }\n } else {\n last = end;\n if (prev.skip) {\n start = end;\n }\n }\n prev = cur;\n }\n if (last !== null) {\n result.push({start: start % count, end: last % count, loop});\n }\n return result;\n}\nfunction _computeSegments(line, segmentOptions) {\n const points = line.points;\n const spanGaps = line.options.spanGaps;\n const count = points.length;\n if (!count) {\n return [];\n }\n const loop = !!line._loop;\n const {start, end} = findStartAndEnd(points, count, loop, spanGaps);\n if (spanGaps === true) {\n return splitByStyles(line, [{start, end, loop}], points, segmentOptions);\n }\n const max = end < start ? end + count : end;\n const completeLoop = !!line._fullLoop && start === 0 && end === count - 1;\n return splitByStyles(line, solidSegments(points, start, max, completeLoop), points, segmentOptions);\n}\nfunction splitByStyles(line, segments, points, segmentOptions) {\n if (!segmentOptions || !segmentOptions.setContext || !points) {\n return segments;\n }\n return doSplitByStyles(line, segments, points, segmentOptions);\n}\nfunction doSplitByStyles(line, segments, points, segmentOptions) {\n const chartContext = line._chart.getContext();\n const baseStyle = readStyle(line.options);\n const {_datasetIndex: datasetIndex, options: {spanGaps}} = line;\n const count = points.length;\n const result = [];\n let prevStyle = baseStyle;\n let start = segments[0].start;\n let i = start;\n function addStyle(s, e, l, st) {\n const dir = spanGaps ? -1 : 1;\n if (s === e) {\n return;\n }\n s += count;\n while (points[s % count].skip) {\n s -= dir;\n }\n while (points[e % count].skip) {\n e += dir;\n }\n if (s % count !== e % count) {\n result.push({start: s % count, end: e % count, loop: l, style: st});\n prevStyle = st;\n start = e % count;\n }\n }\n for (const segment of segments) {\n start = spanGaps ? start : segment.start;\n let prev = points[start % count];\n let style;\n for (i = start + 1; i <= segment.end; i++) {\n const pt = points[i % count];\n style = readStyle(segmentOptions.setContext(createContext(chartContext, {\n type: 'segment',\n p0: prev,\n p1: pt,\n p0DataIndex: (i - 1) % count,\n p1DataIndex: i % count,\n datasetIndex\n })));\n if (styleChanged(style, prevStyle)) {\n addStyle(start, i - 1, segment.loop, prevStyle);\n }\n prev = pt;\n prevStyle = style;\n }\n if (start < i - 1) {\n addStyle(start, i - 1, segment.loop, prevStyle);\n }\n }\n return result;\n}\nfunction readStyle(options) {\n return {\n backgroundColor: options.backgroundColor,\n borderCapStyle: options.borderCapStyle,\n borderDash: options.borderDash,\n borderDashOffset: options.borderDashOffset,\n borderJoinStyle: options.borderJoinStyle,\n borderWidth: options.borderWidth,\n borderColor: options.borderColor\n };\n}\nfunction styleChanged(style, prevStyle) {\n return prevStyle && JSON.stringify(style) !== JSON.stringify(prevStyle);\n}\n\nexport { _alignStartEnd as $, _rlookupByKey as A, toPadding as B, each as C, getMaximumSize as D, _getParentNode as E, readUsedSize as F, throttled as G, HALF_PI as H, supportsEventListenerOptions as I, _isDomSupported as J, log10 as K, _factorize as L, finiteOrDefault as M, callback as N, _addGrace as O, PI as P, toDegrees as Q, _measureText as R, _int16Range as S, TAU as T, _alignPixel as U, clipArea as V, renderText as W, unclipArea as X, toFont as Y, _toLeftRightCenter as Z, _arrayUnique as _, resolve as a, overrides as a0, merge as a1, _capitalize as a2, descriptors as a3, isFunction as a4, _attachContext as a5, _createResolver as a6, _descriptors as a7, mergeIf as a8, uid as a9, distanceBetweenPoints as aA, _setMinAndMaxByKey as aB, niceNum as aC, almostWhole as aD, almostEquals as aE, _decimalPlaces as aF, _longestText as aG, _filterBetween as aH, _lookup as aI, getHoverColor as aJ, clone$1 as aK, _merger as aL, _mergerIf as aM, _deprecated as aN, toFontString as aO, splineCurve as aP, splineCurveMonotone as aQ, getStyle as aR, fontString as aS, toLineHeight as aT, PITAU as aU, INFINITY as aV, RAD_PER_DEG as aW, QUARTER_PI as aX, TWO_THIRDS_PI as aY, _angleDiff as aZ, debounce as aa, retinaScale as ab, clearCanvas as ac, setsEqual as ad, _elementsEqual as ae, getAngleFromPoint as af, _readValueToProps as ag, _updateBezierControlPoints as ah, _computeSegments as ai, _boundSegments as aj, _steppedInterpolation as ak, _bezierInterpolation as al, _pointInLine as am, _steppedLineTo as an, _bezierCurveTo as ao, drawPoint as ap, addRoundedRectPath as aq, toTRBL as ar, toTRBLCorners as as, _boundSegment as at, _normalizeAngle as au, getRtlAdapter as av, overrideTextDirection as aw, _textX as ax, restoreTextDirection as ay, noop as az, isArray as b, color as c, defaults as d, effects as e, resolveObjectKey as f, isNumberFinite as g, createContext as h, isObject as i, defined as j, isNullOrUndef as k, listenArrayEvents as l, toPercentage as m, toDimension as n, formatNumber as o, _angleBetween as p, isNumber as q, requestAnimFrame as r, sign as s, toRadians as t, unlistenArrayEvents as u, valueOrDefault as v, _limitValue as w, _lookupByKey as x, getRelativePosition as y, _isPointInArea as z };\n","/*!\n * Chart.js v3.6.0\n * https://www.chartjs.org\n * (c) 2021 Chart.js Contributors\n * Released under the MIT License\n */\nimport { r as requestAnimFrame, a as resolve, e as effects, c as color, d as defaults, i as isObject, b as isArray, v as valueOrDefault, u as unlistenArrayEvents, l as listenArrayEvents, f as resolveObjectKey, g as isNumberFinite, h as createContext, j as defined, s as sign, k as isNullOrUndef, _ as _arrayUnique, t as toRadians, m as toPercentage, n as toDimension, T as TAU, o as formatNumber, p as _angleBetween, H as HALF_PI, P as PI, q as isNumber, w as _limitValue, x as _lookupByKey, y as getRelativePosition$1, z as _isPointInArea, A as _rlookupByKey, B as toPadding, C as each, D as getMaximumSize, E as _getParentNode, F as readUsedSize, G as throttled, I as supportsEventListenerOptions, J as _isDomSupported, K as log10, L as _factorize, M as finiteOrDefault, N as callback, O as _addGrace, Q as toDegrees, R as _measureText, S as _int16Range, U as _alignPixel, V as clipArea, W as renderText, X as unclipArea, Y as toFont, Z as _toLeftRightCenter, $ as _alignStartEnd, a0 as overrides, a1 as merge, a2 as _capitalize, a3 as descriptors, a4 as isFunction, a5 as _attachContext, a6 as _createResolver, a7 as _descriptors, a8 as mergeIf, a9 as uid, aa as debounce, ab as retinaScale, ac as clearCanvas, ad as setsEqual, ae as _elementsEqual, af as getAngleFromPoint, ag as _readValueToProps, ah as _updateBezierControlPoints, ai as _computeSegments, aj as _boundSegments, ak as _steppedInterpolation, al as _bezierInterpolation, am as _pointInLine, an as _steppedLineTo, ao as _bezierCurveTo, ap as drawPoint, aq as addRoundedRectPath, ar as toTRBL, as as toTRBLCorners, at as _boundSegment, au as _normalizeAngle, av as getRtlAdapter, aw as overrideTextDirection, ax as _textX, ay as restoreTextDirection, az as noop, aA as distanceBetweenPoints, aB as _setMinAndMaxByKey, aC as niceNum, aD as almostWhole, aE as almostEquals, aF as _decimalPlaces, aG as _longestText, aH as _filterBetween, aI as _lookup } from './chunks/helpers.segment.js';\nexport { d as defaults } from './chunks/helpers.segment.js';\n\nclass Animator {\n constructor() {\n this._request = null;\n this._charts = new Map();\n this._running = false;\n this._lastDate = undefined;\n }\n _notify(chart, anims, date, type) {\n const callbacks = anims.listeners[type];\n const numSteps = anims.duration;\n callbacks.forEach(fn => fn({\n chart,\n initial: anims.initial,\n numSteps,\n currentStep: Math.min(date - anims.start, numSteps)\n }));\n }\n _refresh() {\n if (this._request) {\n return;\n }\n this._running = true;\n this._request = requestAnimFrame.call(window, () => {\n this._update();\n this._request = null;\n if (this._running) {\n this._refresh();\n }\n });\n }\n _update(date = Date.now()) {\n let remaining = 0;\n this._charts.forEach((anims, chart) => {\n if (!anims.running || !anims.items.length) {\n return;\n }\n const items = anims.items;\n let i = items.length - 1;\n let draw = false;\n let item;\n for (; i >= 0; --i) {\n item = items[i];\n if (item._active) {\n if (item._total > anims.duration) {\n anims.duration = item._total;\n }\n item.tick(date);\n draw = true;\n } else {\n items[i] = items[items.length - 1];\n items.pop();\n }\n }\n if (draw) {\n chart.draw();\n this._notify(chart, anims, date, 'progress');\n }\n if (!items.length) {\n anims.running = false;\n this._notify(chart, anims, date, 'complete');\n anims.initial = false;\n }\n remaining += items.length;\n });\n this._lastDate = date;\n if (remaining === 0) {\n this._running = false;\n }\n }\n _getAnims(chart) {\n const charts = this._charts;\n let anims = charts.get(chart);\n if (!anims) {\n anims = {\n running: false,\n initial: true,\n items: [],\n listeners: {\n complete: [],\n progress: []\n }\n };\n charts.set(chart, anims);\n }\n return anims;\n }\n listen(chart, event, cb) {\n this._getAnims(chart).listeners[event].push(cb);\n }\n add(chart, items) {\n if (!items || !items.length) {\n return;\n }\n this._getAnims(chart).items.push(...items);\n }\n has(chart) {\n return this._getAnims(chart).items.length > 0;\n }\n start(chart) {\n const anims = this._charts.get(chart);\n if (!anims) {\n return;\n }\n anims.running = true;\n anims.start = Date.now();\n anims.duration = anims.items.reduce((acc, cur) => Math.max(acc, cur._duration), 0);\n this._refresh();\n }\n running(chart) {\n if (!this._running) {\n return false;\n }\n const anims = this._charts.get(chart);\n if (!anims || !anims.running || !anims.items.length) {\n return false;\n }\n return true;\n }\n stop(chart) {\n const anims = this._charts.get(chart);\n if (!anims || !anims.items.length) {\n return;\n }\n const items = anims.items;\n let i = items.length - 1;\n for (; i >= 0; --i) {\n items[i].cancel();\n }\n anims.items = [];\n this._notify(chart, anims, Date.now(), 'complete');\n }\n remove(chart) {\n return this._charts.delete(chart);\n }\n}\nvar animator = new Animator();\n\nconst transparent = 'transparent';\nconst interpolators = {\n boolean(from, to, factor) {\n return factor > 0.5 ? to : from;\n },\n color(from, to, factor) {\n const c0 = color(from || transparent);\n const c1 = c0.valid && color(to || transparent);\n return c1 && c1.valid\n ? c1.mix(c0, factor).hexString()\n : to;\n },\n number(from, to, factor) {\n return from + (to - from) * factor;\n }\n};\nclass Animation {\n constructor(cfg, target, prop, to) {\n const currentValue = target[prop];\n to = resolve([cfg.to, to, currentValue, cfg.from]);\n const from = resolve([cfg.from, currentValue, to]);\n this._active = true;\n this._fn = cfg.fn || interpolators[cfg.type || typeof from];\n this._easing = effects[cfg.easing] || effects.linear;\n this._start = Math.floor(Date.now() + (cfg.delay || 0));\n this._duration = this._total = Math.floor(cfg.duration);\n this._loop = !!cfg.loop;\n this._target = target;\n this._prop = prop;\n this._from = from;\n this._to = to;\n this._promises = undefined;\n }\n active() {\n return this._active;\n }\n update(cfg, to, date) {\n if (this._active) {\n this._notify(false);\n const currentValue = this._target[this._prop];\n const elapsed = date - this._start;\n const remain = this._duration - elapsed;\n this._start = date;\n this._duration = Math.floor(Math.max(remain, cfg.duration));\n this._total += elapsed;\n this._loop = !!cfg.loop;\n this._to = resolve([cfg.to, to, currentValue, cfg.from]);\n this._from = resolve([cfg.from, currentValue, to]);\n }\n }\n cancel() {\n if (this._active) {\n this.tick(Date.now());\n this._active = false;\n this._notify(false);\n }\n }\n tick(date) {\n const elapsed = date - this._start;\n const duration = this._duration;\n const prop = this._prop;\n const from = this._from;\n const loop = this._loop;\n const to = this._to;\n let factor;\n this._active = from !== to && (loop || (elapsed < duration));\n if (!this._active) {\n this._target[prop] = to;\n this._notify(true);\n return;\n }\n if (elapsed < 0) {\n this._target[prop] = from;\n return;\n }\n factor = (elapsed / duration) % 2;\n factor = loop && factor > 1 ? 2 - factor : factor;\n factor = this._easing(Math.min(1, Math.max(0, factor)));\n this._target[prop] = this._fn(from, to, factor);\n }\n wait() {\n const promises = this._promises || (this._promises = []);\n return new Promise((res, rej) => {\n promises.push({res, rej});\n });\n }\n _notify(resolved) {\n const method = resolved ? 'res' : 'rej';\n const promises = this._promises || [];\n for (let i = 0; i < promises.length; i++) {\n promises[i][method]();\n }\n }\n}\n\nconst numbers = ['x', 'y', 'borderWidth', 'radius', 'tension'];\nconst colors = ['color', 'borderColor', 'backgroundColor'];\ndefaults.set('animation', {\n delay: undefined,\n duration: 1000,\n easing: 'easeOutQuart',\n fn: undefined,\n from: undefined,\n loop: undefined,\n to: undefined,\n type: undefined,\n});\nconst animationOptions = Object.keys(defaults.animation);\ndefaults.describe('animation', {\n _fallback: false,\n _indexable: false,\n _scriptable: (name) => name !== 'onProgress' && name !== 'onComplete' && name !== 'fn',\n});\ndefaults.set('animations', {\n colors: {\n type: 'color',\n properties: colors\n },\n numbers: {\n type: 'number',\n properties: numbers\n },\n});\ndefaults.describe('animations', {\n _fallback: 'animation',\n});\ndefaults.set('transitions', {\n active: {\n animation: {\n duration: 400\n }\n },\n resize: {\n animation: {\n duration: 0\n }\n },\n show: {\n animations: {\n colors: {\n from: 'transparent'\n },\n visible: {\n type: 'boolean',\n duration: 0\n },\n }\n },\n hide: {\n animations: {\n colors: {\n to: 'transparent'\n },\n visible: {\n type: 'boolean',\n easing: 'linear',\n fn: v => v | 0\n },\n }\n }\n});\nclass Animations {\n constructor(chart, config) {\n this._chart = chart;\n this._properties = new Map();\n this.configure(config);\n }\n configure(config) {\n if (!isObject(config)) {\n return;\n }\n const animatedProps = this._properties;\n Object.getOwnPropertyNames(config).forEach(key => {\n const cfg = config[key];\n if (!isObject(cfg)) {\n return;\n }\n const resolved = {};\n for (const option of animationOptions) {\n resolved[option] = cfg[option];\n }\n (isArray(cfg.properties) && cfg.properties || [key]).forEach((prop) => {\n if (prop === key || !animatedProps.has(prop)) {\n animatedProps.set(prop, resolved);\n }\n });\n });\n }\n _animateOptions(target, values) {\n const newOptions = values.options;\n const options = resolveTargetOptions(target, newOptions);\n if (!options) {\n return [];\n }\n const animations = this._createAnimations(options, newOptions);\n if (newOptions.$shared) {\n awaitAll(target.options.$animations, newOptions).then(() => {\n target.options = newOptions;\n }, () => {\n });\n }\n return animations;\n }\n _createAnimations(target, values) {\n const animatedProps = this._properties;\n const animations = [];\n const running = target.$animations || (target.$animations = {});\n const props = Object.keys(values);\n const date = Date.now();\n let i;\n for (i = props.length - 1; i >= 0; --i) {\n const prop = props[i];\n if (prop.charAt(0) === '$') {\n continue;\n }\n if (prop === 'options') {\n animations.push(...this._animateOptions(target, values));\n continue;\n }\n const value = values[prop];\n let animation = running[prop];\n const cfg = animatedProps.get(prop);\n if (animation) {\n if (cfg && animation.active()) {\n animation.update(cfg, value, date);\n continue;\n } else {\n animation.cancel();\n }\n }\n if (!cfg || !cfg.duration) {\n target[prop] = value;\n continue;\n }\n running[prop] = animation = new Animation(cfg, target, prop, value);\n animations.push(animation);\n }\n return animations;\n }\n update(target, values) {\n if (this._properties.size === 0) {\n Object.assign(target, values);\n return;\n }\n const animations = this._createAnimations(target, values);\n if (animations.length) {\n animator.add(this._chart, animations);\n return true;\n }\n }\n}\nfunction awaitAll(animations, properties) {\n const running = [];\n const keys = Object.keys(properties);\n for (let i = 0; i < keys.length; i++) {\n const anim = animations[keys[i]];\n if (anim && anim.active()) {\n running.push(anim.wait());\n }\n }\n return Promise.all(running);\n}\nfunction resolveTargetOptions(target, newOptions) {\n if (!newOptions) {\n return;\n }\n let options = target.options;\n if (!options) {\n target.options = newOptions;\n return;\n }\n if (options.$shared) {\n target.options = options = Object.assign({}, options, {$shared: false, $animations: {}});\n }\n return options;\n}\n\nfunction scaleClip(scale, allowedOverflow) {\n const opts = scale && scale.options || {};\n const reverse = opts.reverse;\n const min = opts.min === undefined ? allowedOverflow : 0;\n const max = opts.max === undefined ? allowedOverflow : 0;\n return {\n start: reverse ? max : min,\n end: reverse ? min : max\n };\n}\nfunction defaultClip(xScale, yScale, allowedOverflow) {\n if (allowedOverflow === false) {\n return false;\n }\n const x = scaleClip(xScale, allowedOverflow);\n const y = scaleClip(yScale, allowedOverflow);\n return {\n top: y.end,\n right: x.end,\n bottom: y.start,\n left: x.start\n };\n}\nfunction toClip(value) {\n let t, r, b, l;\n if (isObject(value)) {\n t = value.top;\n r = value.right;\n b = value.bottom;\n l = value.left;\n } else {\n t = r = b = l = value;\n }\n return {\n top: t,\n right: r,\n bottom: b,\n left: l,\n disabled: value === false\n };\n}\nfunction getSortedDatasetIndices(chart, filterVisible) {\n const keys = [];\n const metasets = chart._getSortedDatasetMetas(filterVisible);\n let i, ilen;\n for (i = 0, ilen = metasets.length; i < ilen; ++i) {\n keys.push(metasets[i].index);\n }\n return keys;\n}\nfunction applyStack(stack, value, dsIndex, options = {}) {\n const keys = stack.keys;\n const singleMode = options.mode === 'single';\n let i, ilen, datasetIndex, otherValue;\n if (value === null) {\n return;\n }\n for (i = 0, ilen = keys.length; i < ilen; ++i) {\n datasetIndex = +keys[i];\n if (datasetIndex === dsIndex) {\n if (options.all) {\n continue;\n }\n break;\n }\n otherValue = stack.values[datasetIndex];\n if (isNumberFinite(otherValue) && (singleMode || (value === 0 || sign(value) === sign(otherValue)))) {\n value += otherValue;\n }\n }\n return value;\n}\nfunction convertObjectDataToArray(data) {\n const keys = Object.keys(data);\n const adata = new Array(keys.length);\n let i, ilen, key;\n for (i = 0, ilen = keys.length; i < ilen; ++i) {\n key = keys[i];\n adata[i] = {\n x: key,\n y: data[key]\n };\n }\n return adata;\n}\nfunction isStacked(scale, meta) {\n const stacked = scale && scale.options.stacked;\n return stacked || (stacked === undefined && meta.stack !== undefined);\n}\nfunction getStackKey(indexScale, valueScale, meta) {\n return `${indexScale.id}.${valueScale.id}.${meta.stack || meta.type}`;\n}\nfunction getUserBounds(scale) {\n const {min, max, minDefined, maxDefined} = scale.getUserBounds();\n return {\n min: minDefined ? min : Number.NEGATIVE_INFINITY,\n max: maxDefined ? max : Number.POSITIVE_INFINITY\n };\n}\nfunction getOrCreateStack(stacks, stackKey, indexValue) {\n const subStack = stacks[stackKey] || (stacks[stackKey] = {});\n return subStack[indexValue] || (subStack[indexValue] = {});\n}\nfunction getLastIndexInStack(stack, vScale, positive, type) {\n for (const meta of vScale.getMatchingVisibleMetas(type).reverse()) {\n const value = stack[meta.index];\n if ((positive && value > 0) || (!positive && value < 0)) {\n return meta.index;\n }\n }\n return null;\n}\nfunction updateStacks(controller, parsed) {\n const {chart, _cachedMeta: meta} = controller;\n const stacks = chart._stacks || (chart._stacks = {});\n const {iScale, vScale, index: datasetIndex} = meta;\n const iAxis = iScale.axis;\n const vAxis = vScale.axis;\n const key = getStackKey(iScale, vScale, meta);\n const ilen = parsed.length;\n let stack;\n for (let i = 0; i < ilen; ++i) {\n const item = parsed[i];\n const {[iAxis]: index, [vAxis]: value} = item;\n const itemStacks = item._stacks || (item._stacks = {});\n stack = itemStacks[vAxis] = getOrCreateStack(stacks, key, index);\n stack[datasetIndex] = value;\n stack._top = getLastIndexInStack(stack, vScale, true, meta.type);\n stack._bottom = getLastIndexInStack(stack, vScale, false, meta.type);\n }\n}\nfunction getFirstScaleId(chart, axis) {\n const scales = chart.scales;\n return Object.keys(scales).filter(key => scales[key].axis === axis).shift();\n}\nfunction createDatasetContext(parent, index) {\n return createContext(parent,\n {\n active: false,\n dataset: undefined,\n datasetIndex: index,\n index,\n mode: 'default',\n type: 'dataset'\n }\n );\n}\nfunction createDataContext(parent, index, element) {\n return createContext(parent, {\n active: false,\n dataIndex: index,\n parsed: undefined,\n raw: undefined,\n element,\n index,\n mode: 'default',\n type: 'data'\n });\n}\nfunction clearStacks(meta, items) {\n const datasetIndex = meta.controller.index;\n const axis = meta.vScale && meta.vScale.axis;\n if (!axis) {\n return;\n }\n items = items || meta._parsed;\n for (const parsed of items) {\n const stacks = parsed._stacks;\n if (!stacks || stacks[axis] === undefined || stacks[axis][datasetIndex] === undefined) {\n return;\n }\n delete stacks[axis][datasetIndex];\n }\n}\nconst isDirectUpdateMode = (mode) => mode === 'reset' || mode === 'none';\nconst cloneIfNotShared = (cached, shared) => shared ? cached : Object.assign({}, cached);\nconst createStack = (canStack, meta, chart) => canStack && !meta.hidden && meta._stacked\n && {keys: getSortedDatasetIndices(chart, true), values: null};\nclass DatasetController {\n constructor(chart, datasetIndex) {\n this.chart = chart;\n this._ctx = chart.ctx;\n this.index = datasetIndex;\n this._cachedDataOpts = {};\n this._cachedMeta = this.getMeta();\n this._type = this._cachedMeta.type;\n this.options = undefined;\n this._parsing = false;\n this._data = undefined;\n this._objectData = undefined;\n this._sharedOptions = undefined;\n this._drawStart = undefined;\n this._drawCount = undefined;\n this.enableOptionSharing = false;\n this.$context = undefined;\n this._syncList = [];\n this.initialize();\n }\n initialize() {\n const meta = this._cachedMeta;\n this.configure();\n this.linkScales();\n meta._stacked = isStacked(meta.vScale, meta);\n this.addElements();\n }\n updateIndex(datasetIndex) {\n if (this.index !== datasetIndex) {\n clearStacks(this._cachedMeta);\n }\n this.index = datasetIndex;\n }\n linkScales() {\n const chart = this.chart;\n const meta = this._cachedMeta;\n const dataset = this.getDataset();\n const chooseId = (axis, x, y, r) => axis === 'x' ? x : axis === 'r' ? r : y;\n const xid = meta.xAxisID = valueOrDefault(dataset.xAxisID, getFirstScaleId(chart, 'x'));\n const yid = meta.yAxisID = valueOrDefault(dataset.yAxisID, getFirstScaleId(chart, 'y'));\n const rid = meta.rAxisID = valueOrDefault(dataset.rAxisID, getFirstScaleId(chart, 'r'));\n const indexAxis = meta.indexAxis;\n const iid = meta.iAxisID = chooseId(indexAxis, xid, yid, rid);\n const vid = meta.vAxisID = chooseId(indexAxis, yid, xid, rid);\n meta.xScale = this.getScaleForId(xid);\n meta.yScale = this.getScaleForId(yid);\n meta.rScale = this.getScaleForId(rid);\n meta.iScale = this.getScaleForId(iid);\n meta.vScale = this.getScaleForId(vid);\n }\n getDataset() {\n return this.chart.data.datasets[this.index];\n }\n getMeta() {\n return this.chart.getDatasetMeta(this.index);\n }\n getScaleForId(scaleID) {\n return this.chart.scales[scaleID];\n }\n _getOtherScale(scale) {\n const meta = this._cachedMeta;\n return scale === meta.iScale\n ? meta.vScale\n : meta.iScale;\n }\n reset() {\n this._update('reset');\n }\n _destroy() {\n const meta = this._cachedMeta;\n if (this._data) {\n unlistenArrayEvents(this._data, this);\n }\n if (meta._stacked) {\n clearStacks(meta);\n }\n }\n _dataCheck() {\n const dataset = this.getDataset();\n const data = dataset.data || (dataset.data = []);\n const _data = this._data;\n if (isObject(data)) {\n this._data = convertObjectDataToArray(data);\n } else if (_data !== data) {\n if (_data) {\n unlistenArrayEvents(_data, this);\n const meta = this._cachedMeta;\n clearStacks(meta);\n meta._parsed = [];\n }\n if (data && Object.isExtensible(data)) {\n listenArrayEvents(data, this);\n }\n this._syncList = [];\n this._data = data;\n }\n }\n addElements() {\n const meta = this._cachedMeta;\n this._dataCheck();\n if (this.datasetElementType) {\n meta.dataset = new this.datasetElementType();\n }\n }\n buildOrUpdateElements(resetNewElements) {\n const meta = this._cachedMeta;\n const dataset = this.getDataset();\n let stackChanged = false;\n this._dataCheck();\n const oldStacked = meta._stacked;\n meta._stacked = isStacked(meta.vScale, meta);\n if (meta.stack !== dataset.stack) {\n stackChanged = true;\n clearStacks(meta);\n meta.stack = dataset.stack;\n }\n this._resyncElements(resetNewElements);\n if (stackChanged || oldStacked !== meta._stacked) {\n updateStacks(this, meta._parsed);\n }\n }\n configure() {\n const config = this.chart.config;\n const scopeKeys = config.datasetScopeKeys(this._type);\n const scopes = config.getOptionScopes(this.getDataset(), scopeKeys, true);\n this.options = config.createResolver(scopes, this.getContext());\n this._parsing = this.options.parsing;\n }\n parse(start, count) {\n const {_cachedMeta: meta, _data: data} = this;\n const {iScale, _stacked} = meta;\n const iAxis = iScale.axis;\n let sorted = start === 0 && count === data.length ? true : meta._sorted;\n let prev = start > 0 && meta._parsed[start - 1];\n let i, cur, parsed;\n if (this._parsing === false) {\n meta._parsed = data;\n meta._sorted = true;\n parsed = data;\n } else {\n if (isArray(data[start])) {\n parsed = this.parseArrayData(meta, data, start, count);\n } else if (isObject(data[start])) {\n parsed = this.parseObjectData(meta, data, start, count);\n } else {\n parsed = this.parsePrimitiveData(meta, data, start, count);\n }\n const isNotInOrderComparedToPrev = () => cur[iAxis] === null || (prev && cur[iAxis] < prev[iAxis]);\n for (i = 0; i < count; ++i) {\n meta._parsed[i + start] = cur = parsed[i];\n if (sorted) {\n if (isNotInOrderComparedToPrev()) {\n sorted = false;\n }\n prev = cur;\n }\n }\n meta._sorted = sorted;\n }\n if (_stacked) {\n updateStacks(this, parsed);\n }\n }\n parsePrimitiveData(meta, data, start, count) {\n const {iScale, vScale} = meta;\n const iAxis = iScale.axis;\n const vAxis = vScale.axis;\n const labels = iScale.getLabels();\n const singleScale = iScale === vScale;\n const parsed = new Array(count);\n let i, ilen, index;\n for (i = 0, ilen = count; i < ilen; ++i) {\n index = i + start;\n parsed[i] = {\n [iAxis]: singleScale || iScale.parse(labels[index], index),\n [vAxis]: vScale.parse(data[index], index)\n };\n }\n return parsed;\n }\n parseArrayData(meta, data, start, count) {\n const {xScale, yScale} = meta;\n const parsed = new Array(count);\n let i, ilen, index, item;\n for (i = 0, ilen = count; i < ilen; ++i) {\n index = i + start;\n item = data[index];\n parsed[i] = {\n x: xScale.parse(item[0], index),\n y: yScale.parse(item[1], index)\n };\n }\n return parsed;\n }\n parseObjectData(meta, data, start, count) {\n const {xScale, yScale} = meta;\n const {xAxisKey = 'x', yAxisKey = 'y'} = this._parsing;\n const parsed = new Array(count);\n let i, ilen, index, item;\n for (i = 0, ilen = count; i < ilen; ++i) {\n index = i + start;\n item = data[index];\n parsed[i] = {\n x: xScale.parse(resolveObjectKey(item, xAxisKey), index),\n y: yScale.parse(resolveObjectKey(item, yAxisKey), index)\n };\n }\n return parsed;\n }\n getParsed(index) {\n return this._cachedMeta._parsed[index];\n }\n getDataElement(index) {\n return this._cachedMeta.data[index];\n }\n applyStack(scale, parsed, mode) {\n const chart = this.chart;\n const meta = this._cachedMeta;\n const value = parsed[scale.axis];\n const stack = {\n keys: getSortedDatasetIndices(chart, true),\n values: parsed._stacks[scale.axis]\n };\n return applyStack(stack, value, meta.index, {mode});\n }\n updateRangeFromParsed(range, scale, parsed, stack) {\n const parsedValue = parsed[scale.axis];\n let value = parsedValue === null ? NaN : parsedValue;\n const values = stack && parsed._stacks[scale.axis];\n if (stack && values) {\n stack.values = values;\n value = applyStack(stack, parsedValue, this._cachedMeta.index);\n }\n range.min = Math.min(range.min, value);\n range.max = Math.max(range.max, value);\n }\n getMinMax(scale, canStack) {\n const meta = this._cachedMeta;\n const _parsed = meta._parsed;\n const sorted = meta._sorted && scale === meta.iScale;\n const ilen = _parsed.length;\n const otherScale = this._getOtherScale(scale);\n const stack = createStack(canStack, meta, this.chart);\n const range = {min: Number.POSITIVE_INFINITY, max: Number.NEGATIVE_INFINITY};\n const {min: otherMin, max: otherMax} = getUserBounds(otherScale);\n let i, parsed;\n function _skip() {\n parsed = _parsed[i];\n const otherValue = parsed[otherScale.axis];\n return !isNumberFinite(parsed[scale.axis]) || otherMin > otherValue || otherMax < otherValue;\n }\n for (i = 0; i < ilen; ++i) {\n if (_skip()) {\n continue;\n }\n this.updateRangeFromParsed(range, scale, parsed, stack);\n if (sorted) {\n break;\n }\n }\n if (sorted) {\n for (i = ilen - 1; i >= 0; --i) {\n if (_skip()) {\n continue;\n }\n this.updateRangeFromParsed(range, scale, parsed, stack);\n break;\n }\n }\n return range;\n }\n getAllParsedValues(scale) {\n const parsed = this._cachedMeta._parsed;\n const values = [];\n let i, ilen, value;\n for (i = 0, ilen = parsed.length; i < ilen; ++i) {\n value = parsed[i][scale.axis];\n if (isNumberFinite(value)) {\n values.push(value);\n }\n }\n return values;\n }\n getMaxOverflow() {\n return false;\n }\n getLabelAndValue(index) {\n const meta = this._cachedMeta;\n const iScale = meta.iScale;\n const vScale = meta.vScale;\n const parsed = this.getParsed(index);\n return {\n label: iScale ? '' + iScale.getLabelForValue(parsed[iScale.axis]) : '',\n value: vScale ? '' + vScale.getLabelForValue(parsed[vScale.axis]) : ''\n };\n }\n _update(mode) {\n const meta = this._cachedMeta;\n this.configure();\n this._cachedDataOpts = {};\n this.update(mode || 'default');\n meta._clip = toClip(valueOrDefault(this.options.clip, defaultClip(meta.xScale, meta.yScale, this.getMaxOverflow())));\n }\n update(mode) {}\n draw() {\n const ctx = this._ctx;\n const chart = this.chart;\n const meta = this._cachedMeta;\n const elements = meta.data || [];\n const area = chart.chartArea;\n const active = [];\n const start = this._drawStart || 0;\n const count = this._drawCount || (elements.length - start);\n let i;\n if (meta.dataset) {\n meta.dataset.draw(ctx, area, start, count);\n }\n for (i = start; i < start + count; ++i) {\n const element = elements[i];\n if (element.hidden) {\n continue;\n }\n if (element.active) {\n active.push(element);\n } else {\n element.draw(ctx, area);\n }\n }\n for (i = 0; i < active.length; ++i) {\n active[i].draw(ctx, area);\n }\n }\n getStyle(index, active) {\n const mode = active ? 'active' : 'default';\n return index === undefined && this._cachedMeta.dataset\n ? this.resolveDatasetElementOptions(mode)\n : this.resolveDataElementOptions(index || 0, mode);\n }\n getContext(index, active, mode) {\n const dataset = this.getDataset();\n let context;\n if (index >= 0 && index < this._cachedMeta.data.length) {\n const element = this._cachedMeta.data[index];\n context = element.$context ||\n (element.$context = createDataContext(this.getContext(), index, element));\n context.parsed = this.getParsed(index);\n context.raw = dataset.data[index];\n context.index = context.dataIndex = index;\n } else {\n context = this.$context ||\n (this.$context = createDatasetContext(this.chart.getContext(), this.index));\n context.dataset = dataset;\n context.index = context.datasetIndex = this.index;\n }\n context.active = !!active;\n context.mode = mode;\n return context;\n }\n resolveDatasetElementOptions(mode) {\n return this._resolveElementOptions(this.datasetElementType.id, mode);\n }\n resolveDataElementOptions(index, mode) {\n return this._resolveElementOptions(this.dataElementType.id, mode, index);\n }\n _resolveElementOptions(elementType, mode = 'default', index) {\n const active = mode === 'active';\n const cache = this._cachedDataOpts;\n const cacheKey = elementType + '-' + mode;\n const cached = cache[cacheKey];\n const sharing = this.enableOptionSharing && defined(index);\n if (cached) {\n return cloneIfNotShared(cached, sharing);\n }\n const config = this.chart.config;\n const scopeKeys = config.datasetElementScopeKeys(this._type, elementType);\n const prefixes = active ? [`${elementType}Hover`, 'hover', elementType, ''] : [elementType, ''];\n const scopes = config.getOptionScopes(this.getDataset(), scopeKeys);\n const names = Object.keys(defaults.elements[elementType]);\n const context = () => this.getContext(index, active);\n const values = config.resolveNamedOptions(scopes, names, context, prefixes);\n if (values.$shared) {\n values.$shared = sharing;\n cache[cacheKey] = Object.freeze(cloneIfNotShared(values, sharing));\n }\n return values;\n }\n _resolveAnimations(index, transition, active) {\n const chart = this.chart;\n const cache = this._cachedDataOpts;\n const cacheKey = `animation-${transition}`;\n const cached = cache[cacheKey];\n if (cached) {\n return cached;\n }\n let options;\n if (chart.options.animation !== false) {\n const config = this.chart.config;\n const scopeKeys = config.datasetAnimationScopeKeys(this._type, transition);\n const scopes = config.getOptionScopes(this.getDataset(), scopeKeys);\n options = config.createResolver(scopes, this.getContext(index, active, transition));\n }\n const animations = new Animations(chart, options && options.animations);\n if (options && options._cacheable) {\n cache[cacheKey] = Object.freeze(animations);\n }\n return animations;\n }\n getSharedOptions(options) {\n if (!options.$shared) {\n return;\n }\n return this._sharedOptions || (this._sharedOptions = Object.assign({}, options));\n }\n includeOptions(mode, sharedOptions) {\n return !sharedOptions || isDirectUpdateMode(mode) || this.chart._animationsDisabled;\n }\n updateElement(element, index, properties, mode) {\n if (isDirectUpdateMode(mode)) {\n Object.assign(element, properties);\n } else {\n this._resolveAnimations(index, mode).update(element, properties);\n }\n }\n updateSharedOptions(sharedOptions, mode, newOptions) {\n if (sharedOptions && !isDirectUpdateMode(mode)) {\n this._resolveAnimations(undefined, mode).update(sharedOptions, newOptions);\n }\n }\n _setStyle(element, index, mode, active) {\n element.active = active;\n const options = this.getStyle(index, active);\n this._resolveAnimations(index, mode, active).update(element, {\n options: (!active && this.getSharedOptions(options)) || options\n });\n }\n removeHoverStyle(element, datasetIndex, index) {\n this._setStyle(element, index, 'active', false);\n }\n setHoverStyle(element, datasetIndex, index) {\n this._setStyle(element, index, 'active', true);\n }\n _removeDatasetHoverStyle() {\n const element = this._cachedMeta.dataset;\n if (element) {\n this._setStyle(element, undefined, 'active', false);\n }\n }\n _setDatasetHoverStyle() {\n const element = this._cachedMeta.dataset;\n if (element) {\n this._setStyle(element, undefined, 'active', true);\n }\n }\n _resyncElements(resetNewElements) {\n const data = this._data;\n const elements = this._cachedMeta.data;\n for (const [method, arg1, arg2] of this._syncList) {\n this[method](arg1, arg2);\n }\n this._syncList = [];\n const numMeta = elements.length;\n const numData = data.length;\n const count = Math.min(numData, numMeta);\n if (count) {\n this.parse(0, count);\n }\n if (numData > numMeta) {\n this._insertElements(numMeta, numData - numMeta, resetNewElements);\n } else if (numData < numMeta) {\n this._removeElements(numData, numMeta - numData);\n }\n }\n _insertElements(start, count, resetNewElements = true) {\n const meta = this._cachedMeta;\n const data = meta.data;\n const end = start + count;\n let i;\n const move = (arr) => {\n arr.length += count;\n for (i = arr.length - 1; i >= end; i--) {\n arr[i] = arr[i - count];\n }\n };\n move(data);\n for (i = start; i < end; ++i) {\n data[i] = new this.dataElementType();\n }\n if (this._parsing) {\n move(meta._parsed);\n }\n this.parse(start, count);\n if (resetNewElements) {\n this.updateElements(data, start, count, 'reset');\n }\n }\n updateElements(element, start, count, mode) {}\n _removeElements(start, count) {\n const meta = this._cachedMeta;\n if (this._parsing) {\n const removed = meta._parsed.splice(start, count);\n if (meta._stacked) {\n clearStacks(meta, removed);\n }\n }\n meta.data.splice(start, count);\n }\n _sync(args) {\n if (this._parsing) {\n this._syncList.push(args);\n } else {\n const [method, arg1, arg2] = args;\n this[method](arg1, arg2);\n }\n }\n _onDataPush() {\n const count = arguments.length;\n this._sync(['_insertElements', this.getDataset().data.length - count, count]);\n }\n _onDataPop() {\n this._sync(['_removeElements', this._cachedMeta.data.length - 1, 1]);\n }\n _onDataShift() {\n this._sync(['_removeElements', 0, 1]);\n }\n _onDataSplice(start, count) {\n this._sync(['_removeElements', start, count]);\n this._sync(['_insertElements', start, arguments.length - 2]);\n }\n _onDataUnshift() {\n this._sync(['_insertElements', 0, arguments.length]);\n }\n}\nDatasetController.defaults = {};\nDatasetController.prototype.datasetElementType = null;\nDatasetController.prototype.dataElementType = null;\n\nfunction getAllScaleValues(scale, type) {\n if (!scale._cache.$bar) {\n const visibleMetas = scale.getMatchingVisibleMetas(type);\n let values = [];\n for (let i = 0, ilen = visibleMetas.length; i < ilen; i++) {\n values = values.concat(visibleMetas[i].controller.getAllParsedValues(scale));\n }\n scale._cache.$bar = _arrayUnique(values.sort((a, b) => a - b));\n }\n return scale._cache.$bar;\n}\nfunction computeMinSampleSize(meta) {\n const scale = meta.iScale;\n const values = getAllScaleValues(scale, meta.type);\n let min = scale._length;\n let i, ilen, curr, prev;\n const updateMinAndPrev = () => {\n if (curr === 32767 || curr === -32768) {\n return;\n }\n if (defined(prev)) {\n min = Math.min(min, Math.abs(curr - prev) || min);\n }\n prev = curr;\n };\n for (i = 0, ilen = values.length; i < ilen; ++i) {\n curr = scale.getPixelForValue(values[i]);\n updateMinAndPrev();\n }\n prev = undefined;\n for (i = 0, ilen = scale.ticks.length; i < ilen; ++i) {\n curr = scale.getPixelForTick(i);\n updateMinAndPrev();\n }\n return min;\n}\nfunction computeFitCategoryTraits(index, ruler, options, stackCount) {\n const thickness = options.barThickness;\n let size, ratio;\n if (isNullOrUndef(thickness)) {\n size = ruler.min * options.categoryPercentage;\n ratio = options.barPercentage;\n } else {\n size = thickness * stackCount;\n ratio = 1;\n }\n return {\n chunk: size / stackCount,\n ratio,\n start: ruler.pixels[index] - (size / 2)\n };\n}\nfunction computeFlexCategoryTraits(index, ruler, options, stackCount) {\n const pixels = ruler.pixels;\n const curr = pixels[index];\n let prev = index > 0 ? pixels[index - 1] : null;\n let next = index < pixels.length - 1 ? pixels[index + 1] : null;\n const percent = options.categoryPercentage;\n if (prev === null) {\n prev = curr - (next === null ? ruler.end - ruler.start : next - curr);\n }\n if (next === null) {\n next = curr + curr - prev;\n }\n const start = curr - (curr - Math.min(prev, next)) / 2 * percent;\n const size = Math.abs(next - prev) / 2 * percent;\n return {\n chunk: size / stackCount,\n ratio: options.barPercentage,\n start\n };\n}\nfunction parseFloatBar(entry, item, vScale, i) {\n const startValue = vScale.parse(entry[0], i);\n const endValue = vScale.parse(entry[1], i);\n const min = Math.min(startValue, endValue);\n const max = Math.max(startValue, endValue);\n let barStart = min;\n let barEnd = max;\n if (Math.abs(min) > Math.abs(max)) {\n barStart = max;\n barEnd = min;\n }\n item[vScale.axis] = barEnd;\n item._custom = {\n barStart,\n barEnd,\n start: startValue,\n end: endValue,\n min,\n max\n };\n}\nfunction parseValue(entry, item, vScale, i) {\n if (isArray(entry)) {\n parseFloatBar(entry, item, vScale, i);\n } else {\n item[vScale.axis] = vScale.parse(entry, i);\n }\n return item;\n}\nfunction parseArrayOrPrimitive(meta, data, start, count) {\n const iScale = meta.iScale;\n const vScale = meta.vScale;\n const labels = iScale.getLabels();\n const singleScale = iScale === vScale;\n const parsed = [];\n let i, ilen, item, entry;\n for (i = start, ilen = start + count; i < ilen; ++i) {\n entry = data[i];\n item = {};\n item[iScale.axis] = singleScale || iScale.parse(labels[i], i);\n parsed.push(parseValue(entry, item, vScale, i));\n }\n return parsed;\n}\nfunction isFloatBar(custom) {\n return custom && custom.barStart !== undefined && custom.barEnd !== undefined;\n}\nfunction barSign(size, vScale, actualBase) {\n if (size !== 0) {\n return sign(size);\n }\n return (vScale.isHorizontal() ? 1 : -1) * (vScale.min >= actualBase ? 1 : -1);\n}\nfunction borderProps(properties) {\n let reverse, start, end, top, bottom;\n if (properties.horizontal) {\n reverse = properties.base > properties.x;\n start = 'left';\n end = 'right';\n } else {\n reverse = properties.base < properties.y;\n start = 'bottom';\n end = 'top';\n }\n if (reverse) {\n top = 'end';\n bottom = 'start';\n } else {\n top = 'start';\n bottom = 'end';\n }\n return {start, end, reverse, top, bottom};\n}\nfunction setBorderSkipped(properties, options, stack, index) {\n let edge = options.borderSkipped;\n const res = {};\n if (!edge) {\n properties.borderSkipped = res;\n return;\n }\n const {start, end, reverse, top, bottom} = borderProps(properties);\n if (edge === 'middle' && stack) {\n properties.enableBorderRadius = true;\n if ((stack._top || 0) === index) {\n edge = top;\n } else if ((stack._bottom || 0) === index) {\n edge = bottom;\n } else {\n res[parseEdge(bottom, start, end, reverse)] = true;\n edge = top;\n }\n }\n res[parseEdge(edge, start, end, reverse)] = true;\n properties.borderSkipped = res;\n}\nfunction parseEdge(edge, a, b, reverse) {\n if (reverse) {\n edge = swap(edge, a, b);\n edge = startEnd(edge, b, a);\n } else {\n edge = startEnd(edge, a, b);\n }\n return edge;\n}\nfunction swap(orig, v1, v2) {\n return orig === v1 ? v2 : orig === v2 ? v1 : orig;\n}\nfunction startEnd(v, start, end) {\n return v === 'start' ? start : v === 'end' ? end : v;\n}\nfunction setInflateAmount(properties, {inflateAmount}, ratio) {\n properties.inflateAmount = inflateAmount === 'auto'\n ? ratio === 1 ? 0.33 : 0\n : inflateAmount;\n}\nclass BarController extends DatasetController {\n parsePrimitiveData(meta, data, start, count) {\n return parseArrayOrPrimitive(meta, data, start, count);\n }\n parseArrayData(meta, data, start, count) {\n return parseArrayOrPrimitive(meta, data, start, count);\n }\n parseObjectData(meta, data, start, count) {\n const {iScale, vScale} = meta;\n const {xAxisKey = 'x', yAxisKey = 'y'} = this._parsing;\n const iAxisKey = iScale.axis === 'x' ? xAxisKey : yAxisKey;\n const vAxisKey = vScale.axis === 'x' ? xAxisKey : yAxisKey;\n const parsed = [];\n let i, ilen, item, obj;\n for (i = start, ilen = start + count; i < ilen; ++i) {\n obj = data[i];\n item = {};\n item[iScale.axis] = iScale.parse(resolveObjectKey(obj, iAxisKey), i);\n parsed.push(parseValue(resolveObjectKey(obj, vAxisKey), item, vScale, i));\n }\n return parsed;\n }\n updateRangeFromParsed(range, scale, parsed, stack) {\n super.updateRangeFromParsed(range, scale, parsed, stack);\n const custom = parsed._custom;\n if (custom && scale === this._cachedMeta.vScale) {\n range.min = Math.min(range.min, custom.min);\n range.max = Math.max(range.max, custom.max);\n }\n }\n getMaxOverflow() {\n return 0;\n }\n getLabelAndValue(index) {\n const meta = this._cachedMeta;\n const {iScale, vScale} = meta;\n const parsed = this.getParsed(index);\n const custom = parsed._custom;\n const value = isFloatBar(custom)\n ? '[' + custom.start + ', ' + custom.end + ']'\n : '' + vScale.getLabelForValue(parsed[vScale.axis]);\n return {\n label: '' + iScale.getLabelForValue(parsed[iScale.axis]),\n value\n };\n }\n initialize() {\n this.enableOptionSharing = true;\n super.initialize();\n const meta = this._cachedMeta;\n meta.stack = this.getDataset().stack;\n }\n update(mode) {\n const meta = this._cachedMeta;\n this.updateElements(meta.data, 0, meta.data.length, mode);\n }\n updateElements(bars, start, count, mode) {\n const reset = mode === 'reset';\n const {index, _cachedMeta: {vScale}} = this;\n const base = vScale.getBasePixel();\n const horizontal = vScale.isHorizontal();\n const ruler = this._getRuler();\n const firstOpts = this.resolveDataElementOptions(start, mode);\n const sharedOptions = this.getSharedOptions(firstOpts);\n const includeOptions = this.includeOptions(mode, sharedOptions);\n this.updateSharedOptions(sharedOptions, mode, firstOpts);\n for (let i = start; i < start + count; i++) {\n const parsed = this.getParsed(i);\n const vpixels = reset || isNullOrUndef(parsed[vScale.axis]) ? {base, head: base} : this._calculateBarValuePixels(i);\n const ipixels = this._calculateBarIndexPixels(i, ruler);\n const stack = (parsed._stacks || {})[vScale.axis];\n const properties = {\n horizontal,\n base: vpixels.base,\n enableBorderRadius: !stack || isFloatBar(parsed._custom) || (index === stack._top || index === stack._bottom),\n x: horizontal ? vpixels.head : ipixels.center,\n y: horizontal ? ipixels.center : vpixels.head,\n height: horizontal ? ipixels.size : Math.abs(vpixels.size),\n width: horizontal ? Math.abs(vpixels.size) : ipixels.size\n };\n if (includeOptions) {\n properties.options = sharedOptions || this.resolveDataElementOptions(i, bars[i].active ? 'active' : mode);\n }\n const options = properties.options || bars[i].options;\n setBorderSkipped(properties, options, stack, index);\n setInflateAmount(properties, options, ruler.ratio);\n this.updateElement(bars[i], i, properties, mode);\n }\n }\n _getStacks(last, dataIndex) {\n const meta = this._cachedMeta;\n const iScale = meta.iScale;\n const metasets = iScale.getMatchingVisibleMetas(this._type);\n const stacked = iScale.options.stacked;\n const ilen = metasets.length;\n const stacks = [];\n let i, item;\n for (i = 0; i < ilen; ++i) {\n item = metasets[i];\n if (!item.controller.options.grouped) {\n continue;\n }\n if (typeof dataIndex !== 'undefined') {\n const val = item.controller.getParsed(dataIndex)[\n item.controller._cachedMeta.vScale.axis\n ];\n if (isNullOrUndef(val) || isNaN(val)) {\n continue;\n }\n }\n if (stacked === false || stacks.indexOf(item.stack) === -1 ||\n\t\t\t\t(stacked === undefined && item.stack === undefined)) {\n stacks.push(item.stack);\n }\n if (item.index === last) {\n break;\n }\n }\n if (!stacks.length) {\n stacks.push(undefined);\n }\n return stacks;\n }\n _getStackCount(index) {\n return this._getStacks(undefined, index).length;\n }\n _getStackIndex(datasetIndex, name, dataIndex) {\n const stacks = this._getStacks(datasetIndex, dataIndex);\n const index = (name !== undefined)\n ? stacks.indexOf(name)\n : -1;\n return (index === -1)\n ? stacks.length - 1\n : index;\n }\n _getRuler() {\n const opts = this.options;\n const meta = this._cachedMeta;\n const iScale = meta.iScale;\n const pixels = [];\n let i, ilen;\n for (i = 0, ilen = meta.data.length; i < ilen; ++i) {\n pixels.push(iScale.getPixelForValue(this.getParsed(i)[iScale.axis], i));\n }\n const barThickness = opts.barThickness;\n const min = barThickness || computeMinSampleSize(meta);\n return {\n min,\n pixels,\n start: iScale._startPixel,\n end: iScale._endPixel,\n stackCount: this._getStackCount(),\n scale: iScale,\n grouped: opts.grouped,\n ratio: barThickness ? 1 : opts.categoryPercentage * opts.barPercentage\n };\n }\n _calculateBarValuePixels(index) {\n const {_cachedMeta: {vScale, _stacked}, options: {base: baseValue, minBarLength}} = this;\n const actualBase = baseValue || 0;\n const parsed = this.getParsed(index);\n const custom = parsed._custom;\n const floating = isFloatBar(custom);\n let value = parsed[vScale.axis];\n let start = 0;\n let length = _stacked ? this.applyStack(vScale, parsed, _stacked) : value;\n let head, size;\n if (length !== value) {\n start = length - value;\n length = value;\n }\n if (floating) {\n value = custom.barStart;\n length = custom.barEnd - custom.barStart;\n if (value !== 0 && sign(value) !== sign(custom.barEnd)) {\n start = 0;\n }\n start += value;\n }\n const startValue = !isNullOrUndef(baseValue) && !floating ? baseValue : start;\n let base = vScale.getPixelForValue(startValue);\n if (this.chart.getDataVisibility(index)) {\n head = vScale.getPixelForValue(start + length);\n } else {\n head = base;\n }\n size = head - base;\n if (Math.abs(size) < minBarLength) {\n size = barSign(size, vScale, actualBase) * minBarLength;\n if (value === actualBase) {\n base -= size / 2;\n }\n head = base + size;\n }\n if (base === vScale.getPixelForValue(actualBase)) {\n const halfGrid = sign(size) * vScale.getLineWidthForValue(actualBase) / 2;\n base += halfGrid;\n size -= halfGrid;\n }\n return {\n size,\n base,\n head,\n center: head + size / 2\n };\n }\n _calculateBarIndexPixels(index, ruler) {\n const scale = ruler.scale;\n const options = this.options;\n const skipNull = options.skipNull;\n const maxBarThickness = valueOrDefault(options.maxBarThickness, Infinity);\n let center, size;\n if (ruler.grouped) {\n const stackCount = skipNull ? this._getStackCount(index) : ruler.stackCount;\n const range = options.barThickness === 'flex'\n ? computeFlexCategoryTraits(index, ruler, options, stackCount)\n : computeFitCategoryTraits(index, ruler, options, stackCount);\n const stackIndex = this._getStackIndex(this.index, this._cachedMeta.stack, skipNull ? index : undefined);\n center = range.start + (range.chunk * stackIndex) + (range.chunk / 2);\n size = Math.min(maxBarThickness, range.chunk * range.ratio);\n } else {\n center = scale.getPixelForValue(this.getParsed(index)[scale.axis], index);\n size = Math.min(maxBarThickness, ruler.min * ruler.ratio);\n }\n return {\n base: center - size / 2,\n head: center + size / 2,\n center,\n size\n };\n }\n draw() {\n const meta = this._cachedMeta;\n const vScale = meta.vScale;\n const rects = meta.data;\n const ilen = rects.length;\n let i = 0;\n for (; i < ilen; ++i) {\n if (this.getParsed(i)[vScale.axis] !== null) {\n rects[i].draw(this._ctx);\n }\n }\n }\n}\nBarController.id = 'bar';\nBarController.defaults = {\n datasetElementType: false,\n dataElementType: 'bar',\n categoryPercentage: 0.8,\n barPercentage: 0.9,\n grouped: true,\n animations: {\n numbers: {\n type: 'number',\n properties: ['x', 'y', 'base', 'width', 'height']\n }\n }\n};\nBarController.overrides = {\n scales: {\n _index_: {\n type: 'category',\n offset: true,\n grid: {\n offset: true\n }\n },\n _value_: {\n type: 'linear',\n beginAtZero: true,\n }\n }\n};\n\nclass BubbleController extends DatasetController {\n initialize() {\n this.enableOptionSharing = true;\n super.initialize();\n }\n parsePrimitiveData(meta, data, start, count) {\n const parsed = super.parsePrimitiveData(meta, data, start, count);\n for (let i = 0; i < parsed.length; i++) {\n parsed[i]._custom = this.resolveDataElementOptions(i + start).radius;\n }\n return parsed;\n }\n parseArrayData(meta, data, start, count) {\n const parsed = super.parseArrayData(meta, data, start, count);\n for (let i = 0; i < parsed.length; i++) {\n const item = data[start + i];\n parsed[i]._custom = valueOrDefault(item[2], this.resolveDataElementOptions(i + start).radius);\n }\n return parsed;\n }\n parseObjectData(meta, data, start, count) {\n const parsed = super.parseObjectData(meta, data, start, count);\n for (let i = 0; i < parsed.length; i++) {\n const item = data[start + i];\n parsed[i]._custom = valueOrDefault(item && item.r && +item.r, this.resolveDataElementOptions(i + start).radius);\n }\n return parsed;\n }\n getMaxOverflow() {\n const data = this._cachedMeta.data;\n let max = 0;\n for (let i = data.length - 1; i >= 0; --i) {\n max = Math.max(max, data[i].size(this.resolveDataElementOptions(i)) / 2);\n }\n return max > 0 && max;\n }\n getLabelAndValue(index) {\n const meta = this._cachedMeta;\n const {xScale, yScale} = meta;\n const parsed = this.getParsed(index);\n const x = xScale.getLabelForValue(parsed.x);\n const y = yScale.getLabelForValue(parsed.y);\n const r = parsed._custom;\n return {\n label: meta.label,\n value: '(' + x + ', ' + y + (r ? ', ' + r : '') + ')'\n };\n }\n update(mode) {\n const points = this._cachedMeta.data;\n this.updateElements(points, 0, points.length, mode);\n }\n updateElements(points, start, count, mode) {\n const reset = mode === 'reset';\n const {iScale, vScale} = this._cachedMeta;\n const firstOpts = this.resolveDataElementOptions(start, mode);\n const sharedOptions = this.getSharedOptions(firstOpts);\n const includeOptions = this.includeOptions(mode, sharedOptions);\n const iAxis = iScale.axis;\n const vAxis = vScale.axis;\n for (let i = start; i < start + count; i++) {\n const point = points[i];\n const parsed = !reset && this.getParsed(i);\n const properties = {};\n const iPixel = properties[iAxis] = reset ? iScale.getPixelForDecimal(0.5) : iScale.getPixelForValue(parsed[iAxis]);\n const vPixel = properties[vAxis] = reset ? vScale.getBasePixel() : vScale.getPixelForValue(parsed[vAxis]);\n properties.skip = isNaN(iPixel) || isNaN(vPixel);\n if (includeOptions) {\n properties.options = this.resolveDataElementOptions(i, point.active ? 'active' : mode);\n if (reset) {\n properties.options.radius = 0;\n }\n }\n this.updateElement(point, i, properties, mode);\n }\n this.updateSharedOptions(sharedOptions, mode, firstOpts);\n }\n resolveDataElementOptions(index, mode) {\n const parsed = this.getParsed(index);\n let values = super.resolveDataElementOptions(index, mode);\n if (values.$shared) {\n values = Object.assign({}, values, {$shared: false});\n }\n const radius = values.radius;\n if (mode !== 'active') {\n values.radius = 0;\n }\n values.radius += valueOrDefault(parsed && parsed._custom, radius);\n return values;\n }\n}\nBubbleController.id = 'bubble';\nBubbleController.defaults = {\n datasetElementType: false,\n dataElementType: 'point',\n animations: {\n numbers: {\n type: 'number',\n properties: ['x', 'y', 'borderWidth', 'radius']\n }\n }\n};\nBubbleController.overrides = {\n scales: {\n x: {\n type: 'linear'\n },\n y: {\n type: 'linear'\n }\n },\n plugins: {\n tooltip: {\n callbacks: {\n title() {\n return '';\n }\n }\n }\n }\n};\n\nfunction getRatioAndOffset(rotation, circumference, cutout) {\n let ratioX = 1;\n let ratioY = 1;\n let offsetX = 0;\n let offsetY = 0;\n if (circumference < TAU) {\n const startAngle = rotation;\n const endAngle = startAngle + circumference;\n const startX = Math.cos(startAngle);\n const startY = Math.sin(startAngle);\n const endX = Math.cos(endAngle);\n const endY = Math.sin(endAngle);\n const calcMax = (angle, a, b) => _angleBetween(angle, startAngle, endAngle, true) ? 1 : Math.max(a, a * cutout, b, b * cutout);\n const calcMin = (angle, a, b) => _angleBetween(angle, startAngle, endAngle, true) ? -1 : Math.min(a, a * cutout, b, b * cutout);\n const maxX = calcMax(0, startX, endX);\n const maxY = calcMax(HALF_PI, startY, endY);\n const minX = calcMin(PI, startX, endX);\n const minY = calcMin(PI + HALF_PI, startY, endY);\n ratioX = (maxX - minX) / 2;\n ratioY = (maxY - minY) / 2;\n offsetX = -(maxX + minX) / 2;\n offsetY = -(maxY + minY) / 2;\n }\n return {ratioX, ratioY, offsetX, offsetY};\n}\nclass DoughnutController extends DatasetController {\n constructor(chart, datasetIndex) {\n super(chart, datasetIndex);\n this.enableOptionSharing = true;\n this.innerRadius = undefined;\n this.outerRadius = undefined;\n this.offsetX = undefined;\n this.offsetY = undefined;\n }\n linkScales() {}\n parse(start, count) {\n const data = this.getDataset().data;\n const meta = this._cachedMeta;\n if (this._parsing === false) {\n meta._parsed = data;\n } else {\n let getter = (i) => +data[i];\n if (isObject(data[start])) {\n const {key = 'value'} = this._parsing;\n getter = (i) => +resolveObjectKey(data[i], key);\n }\n let i, ilen;\n for (i = start, ilen = start + count; i < ilen; ++i) {\n meta._parsed[i] = getter(i);\n }\n }\n }\n _getRotation() {\n return toRadians(this.options.rotation - 90);\n }\n _getCircumference() {\n return toRadians(this.options.circumference);\n }\n _getRotationExtents() {\n let min = TAU;\n let max = -TAU;\n for (let i = 0; i < this.chart.data.datasets.length; ++i) {\n if (this.chart.isDatasetVisible(i)) {\n const controller = this.chart.getDatasetMeta(i).controller;\n const rotation = controller._getRotation();\n const circumference = controller._getCircumference();\n min = Math.min(min, rotation);\n max = Math.max(max, rotation + circumference);\n }\n }\n return {\n rotation: min,\n circumference: max - min,\n };\n }\n update(mode) {\n const chart = this.chart;\n const {chartArea} = chart;\n const meta = this._cachedMeta;\n const arcs = meta.data;\n const spacing = this.getMaxBorderWidth() + this.getMaxOffset(arcs) + this.options.spacing;\n const maxSize = Math.max((Math.min(chartArea.width, chartArea.height) - spacing) / 2, 0);\n const cutout = Math.min(toPercentage(this.options.cutout, maxSize), 1);\n const chartWeight = this._getRingWeight(this.index);\n const {circumference, rotation} = this._getRotationExtents();\n const {ratioX, ratioY, offsetX, offsetY} = getRatioAndOffset(rotation, circumference, cutout);\n const maxWidth = (chartArea.width - spacing) / ratioX;\n const maxHeight = (chartArea.height - spacing) / ratioY;\n const maxRadius = Math.max(Math.min(maxWidth, maxHeight) / 2, 0);\n const outerRadius = toDimension(this.options.radius, maxRadius);\n const innerRadius = Math.max(outerRadius * cutout, 0);\n const radiusLength = (outerRadius - innerRadius) / this._getVisibleDatasetWeightTotal();\n this.offsetX = offsetX * outerRadius;\n this.offsetY = offsetY * outerRadius;\n meta.total = this.calculateTotal();\n this.outerRadius = outerRadius - radiusLength * this._getRingWeightOffset(this.index);\n this.innerRadius = Math.max(this.outerRadius - radiusLength * chartWeight, 0);\n this.updateElements(arcs, 0, arcs.length, mode);\n }\n _circumference(i, reset) {\n const opts = this.options;\n const meta = this._cachedMeta;\n const circumference = this._getCircumference();\n if ((reset && opts.animation.animateRotate) || !this.chart.getDataVisibility(i) || meta._parsed[i] === null || meta.data[i].hidden) {\n return 0;\n }\n return this.calculateCircumference(meta._parsed[i] * circumference / TAU);\n }\n updateElements(arcs, start, count, mode) {\n const reset = mode === 'reset';\n const chart = this.chart;\n const chartArea = chart.chartArea;\n const opts = chart.options;\n const animationOpts = opts.animation;\n const centerX = (chartArea.left + chartArea.right) / 2;\n const centerY = (chartArea.top + chartArea.bottom) / 2;\n const animateScale = reset && animationOpts.animateScale;\n const innerRadius = animateScale ? 0 : this.innerRadius;\n const outerRadius = animateScale ? 0 : this.outerRadius;\n const firstOpts = this.resolveDataElementOptions(start, mode);\n const sharedOptions = this.getSharedOptions(firstOpts);\n const includeOptions = this.includeOptions(mode, sharedOptions);\n let startAngle = this._getRotation();\n let i;\n for (i = 0; i < start; ++i) {\n startAngle += this._circumference(i, reset);\n }\n for (i = start; i < start + count; ++i) {\n const circumference = this._circumference(i, reset);\n const arc = arcs[i];\n const properties = {\n x: centerX + this.offsetX,\n y: centerY + this.offsetY,\n startAngle,\n endAngle: startAngle + circumference,\n circumference,\n outerRadius,\n innerRadius\n };\n if (includeOptions) {\n properties.options = sharedOptions || this.resolveDataElementOptions(i, arc.active ? 'active' : mode);\n }\n startAngle += circumference;\n this.updateElement(arc, i, properties, mode);\n }\n this.updateSharedOptions(sharedOptions, mode, firstOpts);\n }\n calculateTotal() {\n const meta = this._cachedMeta;\n const metaData = meta.data;\n let total = 0;\n let i;\n for (i = 0; i < metaData.length; i++) {\n const value = meta._parsed[i];\n if (value !== null && !isNaN(value) && this.chart.getDataVisibility(i) && !metaData[i].hidden) {\n total += Math.abs(value);\n }\n }\n return total;\n }\n calculateCircumference(value) {\n const total = this._cachedMeta.total;\n if (total > 0 && !isNaN(value)) {\n return TAU * (Math.abs(value) / total);\n }\n return 0;\n }\n getLabelAndValue(index) {\n const meta = this._cachedMeta;\n const chart = this.chart;\n const labels = chart.data.labels || [];\n const value = formatNumber(meta._parsed[index], chart.options.locale);\n return {\n label: labels[index] || '',\n value,\n };\n }\n getMaxBorderWidth(arcs) {\n let max = 0;\n const chart = this.chart;\n let i, ilen, meta, controller, options;\n if (!arcs) {\n for (i = 0, ilen = chart.data.datasets.length; i < ilen; ++i) {\n if (chart.isDatasetVisible(i)) {\n meta = chart.getDatasetMeta(i);\n arcs = meta.data;\n controller = meta.controller;\n if (controller !== this) {\n controller.configure();\n }\n break;\n }\n }\n }\n if (!arcs) {\n return 0;\n }\n for (i = 0, ilen = arcs.length; i < ilen; ++i) {\n options = controller.resolveDataElementOptions(i);\n if (options.borderAlign !== 'inner') {\n max = Math.max(max, options.borderWidth || 0, options.hoverBorderWidth || 0);\n }\n }\n return max;\n }\n getMaxOffset(arcs) {\n let max = 0;\n for (let i = 0, ilen = arcs.length; i < ilen; ++i) {\n const options = this.resolveDataElementOptions(i);\n max = Math.max(max, options.offset || 0, options.hoverOffset || 0);\n }\n return max;\n }\n _getRingWeightOffset(datasetIndex) {\n let ringWeightOffset = 0;\n for (let i = 0; i < datasetIndex; ++i) {\n if (this.chart.isDatasetVisible(i)) {\n ringWeightOffset += this._getRingWeight(i);\n }\n }\n return ringWeightOffset;\n }\n _getRingWeight(datasetIndex) {\n return Math.max(valueOrDefault(this.chart.data.datasets[datasetIndex].weight, 1), 0);\n }\n _getVisibleDatasetWeightTotal() {\n return this._getRingWeightOffset(this.chart.data.datasets.length) || 1;\n }\n}\nDoughnutController.id = 'doughnut';\nDoughnutController.defaults = {\n datasetElementType: false,\n dataElementType: 'arc',\n animation: {\n animateRotate: true,\n animateScale: false\n },\n animations: {\n numbers: {\n type: 'number',\n properties: ['circumference', 'endAngle', 'innerRadius', 'outerRadius', 'startAngle', 'x', 'y', 'offset', 'borderWidth', 'spacing']\n },\n },\n cutout: '50%',\n rotation: 0,\n circumference: 360,\n radius: '100%',\n spacing: 0,\n indexAxis: 'r',\n};\nDoughnutController.descriptors = {\n _scriptable: (name) => name !== 'spacing',\n _indexable: (name) => name !== 'spacing',\n};\nDoughnutController.overrides = {\n aspectRatio: 1,\n plugins: {\n legend: {\n labels: {\n generateLabels(chart) {\n const data = chart.data;\n if (data.labels.length && data.datasets.length) {\n const {labels: {pointStyle}} = chart.legend.options;\n return data.labels.map((label, i) => {\n const meta = chart.getDatasetMeta(0);\n const style = meta.controller.getStyle(i);\n return {\n text: label,\n fillStyle: style.backgroundColor,\n strokeStyle: style.borderColor,\n lineWidth: style.borderWidth,\n pointStyle: pointStyle,\n hidden: !chart.getDataVisibility(i),\n index: i\n };\n });\n }\n return [];\n }\n },\n onClick(e, legendItem, legend) {\n legend.chart.toggleDataVisibility(legendItem.index);\n legend.chart.update();\n }\n },\n tooltip: {\n callbacks: {\n title() {\n return '';\n },\n label(tooltipItem) {\n let dataLabel = tooltipItem.label;\n const value = ': ' + tooltipItem.formattedValue;\n if (isArray(dataLabel)) {\n dataLabel = dataLabel.slice();\n dataLabel[0] += value;\n } else {\n dataLabel += value;\n }\n return dataLabel;\n }\n }\n }\n }\n};\n\nclass LineController extends DatasetController {\n initialize() {\n this.enableOptionSharing = true;\n super.initialize();\n }\n update(mode) {\n const meta = this._cachedMeta;\n const {dataset: line, data: points = [], _dataset} = meta;\n const animationsDisabled = this.chart._animationsDisabled;\n let {start, count} = getStartAndCountOfVisiblePoints(meta, points, animationsDisabled);\n this._drawStart = start;\n this._drawCount = count;\n if (scaleRangesChanged(meta)) {\n start = 0;\n count = points.length;\n }\n line._chart = this.chart;\n line._datasetIndex = this.index;\n line._decimated = !!_dataset._decimated;\n line.points = points;\n const options = this.resolveDatasetElementOptions(mode);\n if (!this.options.showLine) {\n options.borderWidth = 0;\n }\n options.segment = this.options.segment;\n this.updateElement(line, undefined, {\n animated: !animationsDisabled,\n options\n }, mode);\n this.updateElements(points, start, count, mode);\n }\n updateElements(points, start, count, mode) {\n const reset = mode === 'reset';\n const {iScale, vScale, _stacked, _dataset} = this._cachedMeta;\n const firstOpts = this.resolveDataElementOptions(start, mode);\n const sharedOptions = this.getSharedOptions(firstOpts);\n const includeOptions = this.includeOptions(mode, sharedOptions);\n const iAxis = iScale.axis;\n const vAxis = vScale.axis;\n const {spanGaps, segment} = this.options;\n const maxGapLength = isNumber(spanGaps) ? spanGaps : Number.POSITIVE_INFINITY;\n const directUpdate = this.chart._animationsDisabled || reset || mode === 'none';\n let prevParsed = start > 0 && this.getParsed(start - 1);\n for (let i = start; i < start + count; ++i) {\n const point = points[i];\n const parsed = this.getParsed(i);\n const properties = directUpdate ? point : {};\n const nullData = isNullOrUndef(parsed[vAxis]);\n const iPixel = properties[iAxis] = iScale.getPixelForValue(parsed[iAxis], i);\n const vPixel = properties[vAxis] = reset || nullData ? vScale.getBasePixel() : vScale.getPixelForValue(_stacked ? this.applyStack(vScale, parsed, _stacked) : parsed[vAxis], i);\n properties.skip = isNaN(iPixel) || isNaN(vPixel) || nullData;\n properties.stop = i > 0 && (parsed[iAxis] - prevParsed[iAxis]) > maxGapLength;\n if (segment) {\n properties.parsed = parsed;\n properties.raw = _dataset.data[i];\n }\n if (includeOptions) {\n properties.options = sharedOptions || this.resolveDataElementOptions(i, point.active ? 'active' : mode);\n }\n if (!directUpdate) {\n this.updateElement(point, i, properties, mode);\n }\n prevParsed = parsed;\n }\n this.updateSharedOptions(sharedOptions, mode, firstOpts);\n }\n getMaxOverflow() {\n const meta = this._cachedMeta;\n const dataset = meta.dataset;\n const border = dataset.options && dataset.options.borderWidth || 0;\n const data = meta.data || [];\n if (!data.length) {\n return border;\n }\n const firstPoint = data[0].size(this.resolveDataElementOptions(0));\n const lastPoint = data[data.length - 1].size(this.resolveDataElementOptions(data.length - 1));\n return Math.max(border, firstPoint, lastPoint) / 2;\n }\n draw() {\n const meta = this._cachedMeta;\n meta.dataset.updateControlPoints(this.chart.chartArea, meta.iScale.axis);\n super.draw();\n }\n}\nLineController.id = 'line';\nLineController.defaults = {\n datasetElementType: 'line',\n dataElementType: 'point',\n showLine: true,\n spanGaps: false,\n};\nLineController.overrides = {\n scales: {\n _index_: {\n type: 'category',\n },\n _value_: {\n type: 'linear',\n },\n }\n};\nfunction getStartAndCountOfVisiblePoints(meta, points, animationsDisabled) {\n const pointCount = points.length;\n let start = 0;\n let count = pointCount;\n if (meta._sorted) {\n const {iScale, _parsed} = meta;\n const axis = iScale.axis;\n const {min, max, minDefined, maxDefined} = iScale.getUserBounds();\n if (minDefined) {\n start = _limitValue(Math.min(\n _lookupByKey(_parsed, iScale.axis, min).lo,\n animationsDisabled ? pointCount : _lookupByKey(points, axis, iScale.getPixelForValue(min)).lo),\n 0, pointCount - 1);\n }\n if (maxDefined) {\n count = _limitValue(Math.max(\n _lookupByKey(_parsed, iScale.axis, max).hi + 1,\n animationsDisabled ? 0 : _lookupByKey(points, axis, iScale.getPixelForValue(max)).hi + 1),\n start, pointCount) - start;\n } else {\n count = pointCount - start;\n }\n }\n return {start, count};\n}\nfunction scaleRangesChanged(meta) {\n const {xScale, yScale, _scaleRanges} = meta;\n const newRanges = {\n xmin: xScale.min,\n xmax: xScale.max,\n ymin: yScale.min,\n ymax: yScale.max\n };\n if (!_scaleRanges) {\n meta._scaleRanges = newRanges;\n return true;\n }\n const changed = _scaleRanges.xmin !== xScale.min\n\t\t|| _scaleRanges.xmax !== xScale.max\n\t\t|| _scaleRanges.ymin !== yScale.min\n\t\t|| _scaleRanges.ymax !== yScale.max;\n Object.assign(_scaleRanges, newRanges);\n return changed;\n}\n\nclass PolarAreaController extends DatasetController {\n constructor(chart, datasetIndex) {\n super(chart, datasetIndex);\n this.innerRadius = undefined;\n this.outerRadius = undefined;\n }\n getLabelAndValue(index) {\n const meta = this._cachedMeta;\n const chart = this.chart;\n const labels = chart.data.labels || [];\n const value = formatNumber(meta._parsed[index].r, chart.options.locale);\n return {\n label: labels[index] || '',\n value,\n };\n }\n update(mode) {\n const arcs = this._cachedMeta.data;\n this._updateRadius();\n this.updateElements(arcs, 0, arcs.length, mode);\n }\n _updateRadius() {\n const chart = this.chart;\n const chartArea = chart.chartArea;\n const opts = chart.options;\n const minSize = Math.min(chartArea.right - chartArea.left, chartArea.bottom - chartArea.top);\n const outerRadius = Math.max(minSize / 2, 0);\n const innerRadius = Math.max(opts.cutoutPercentage ? (outerRadius / 100) * (opts.cutoutPercentage) : 1, 0);\n const radiusLength = (outerRadius - innerRadius) / chart.getVisibleDatasetCount();\n this.outerRadius = outerRadius - (radiusLength * this.index);\n this.innerRadius = this.outerRadius - radiusLength;\n }\n updateElements(arcs, start, count, mode) {\n const reset = mode === 'reset';\n const chart = this.chart;\n const dataset = this.getDataset();\n const opts = chart.options;\n const animationOpts = opts.animation;\n const scale = this._cachedMeta.rScale;\n const centerX = scale.xCenter;\n const centerY = scale.yCenter;\n const datasetStartAngle = scale.getIndexAngle(0) - 0.5 * PI;\n let angle = datasetStartAngle;\n let i;\n const defaultAngle = 360 / this.countVisibleElements();\n for (i = 0; i < start; ++i) {\n angle += this._computeAngle(i, mode, defaultAngle);\n }\n for (i = start; i < start + count; i++) {\n const arc = arcs[i];\n let startAngle = angle;\n let endAngle = angle + this._computeAngle(i, mode, defaultAngle);\n let outerRadius = chart.getDataVisibility(i) ? scale.getDistanceFromCenterForValue(dataset.data[i]) : 0;\n angle = endAngle;\n if (reset) {\n if (animationOpts.animateScale) {\n outerRadius = 0;\n }\n if (animationOpts.animateRotate) {\n startAngle = endAngle = datasetStartAngle;\n }\n }\n const properties = {\n x: centerX,\n y: centerY,\n innerRadius: 0,\n outerRadius,\n startAngle,\n endAngle,\n options: this.resolveDataElementOptions(i, arc.active ? 'active' : mode)\n };\n this.updateElement(arc, i, properties, mode);\n }\n }\n countVisibleElements() {\n const dataset = this.getDataset();\n const meta = this._cachedMeta;\n let count = 0;\n meta.data.forEach((element, index) => {\n if (!isNaN(dataset.data[index]) && this.chart.getDataVisibility(index)) {\n count++;\n }\n });\n return count;\n }\n _computeAngle(index, mode, defaultAngle) {\n return this.chart.getDataVisibility(index)\n ? toRadians(this.resolveDataElementOptions(index, mode).angle || defaultAngle)\n : 0;\n }\n}\nPolarAreaController.id = 'polarArea';\nPolarAreaController.defaults = {\n dataElementType: 'arc',\n animation: {\n animateRotate: true,\n animateScale: true\n },\n animations: {\n numbers: {\n type: 'number',\n properties: ['x', 'y', 'startAngle', 'endAngle', 'innerRadius', 'outerRadius']\n },\n },\n indexAxis: 'r',\n startAngle: 0,\n};\nPolarAreaController.overrides = {\n aspectRatio: 1,\n plugins: {\n legend: {\n labels: {\n generateLabels(chart) {\n const data = chart.data;\n if (data.labels.length && data.datasets.length) {\n const {labels: {pointStyle}} = chart.legend.options;\n return data.labels.map((label, i) => {\n const meta = chart.getDatasetMeta(0);\n const style = meta.controller.getStyle(i);\n return {\n text: label,\n fillStyle: style.backgroundColor,\n strokeStyle: style.borderColor,\n lineWidth: style.borderWidth,\n pointStyle: pointStyle,\n hidden: !chart.getDataVisibility(i),\n index: i\n };\n });\n }\n return [];\n }\n },\n onClick(e, legendItem, legend) {\n legend.chart.toggleDataVisibility(legendItem.index);\n legend.chart.update();\n }\n },\n tooltip: {\n callbacks: {\n title() {\n return '';\n },\n label(context) {\n return context.chart.data.labels[context.dataIndex] + ': ' + context.formattedValue;\n }\n }\n }\n },\n scales: {\n r: {\n type: 'radialLinear',\n angleLines: {\n display: false\n },\n beginAtZero: true,\n grid: {\n circular: true\n },\n pointLabels: {\n display: false\n },\n startAngle: 0\n }\n }\n};\n\nclass PieController extends DoughnutController {\n}\nPieController.id = 'pie';\nPieController.defaults = {\n cutout: 0,\n rotation: 0,\n circumference: 360,\n radius: '100%'\n};\n\nclass RadarController extends DatasetController {\n getLabelAndValue(index) {\n const vScale = this._cachedMeta.vScale;\n const parsed = this.getParsed(index);\n return {\n label: vScale.getLabels()[index],\n value: '' + vScale.getLabelForValue(parsed[vScale.axis])\n };\n }\n update(mode) {\n const meta = this._cachedMeta;\n const line = meta.dataset;\n const points = meta.data || [];\n const labels = meta.iScale.getLabels();\n line.points = points;\n if (mode !== 'resize') {\n const options = this.resolveDatasetElementOptions(mode);\n if (!this.options.showLine) {\n options.borderWidth = 0;\n }\n const properties = {\n _loop: true,\n _fullLoop: labels.length === points.length,\n options\n };\n this.updateElement(line, undefined, properties, mode);\n }\n this.updateElements(points, 0, points.length, mode);\n }\n updateElements(points, start, count, mode) {\n const dataset = this.getDataset();\n const scale = this._cachedMeta.rScale;\n const reset = mode === 'reset';\n for (let i = start; i < start + count; i++) {\n const point = points[i];\n const options = this.resolveDataElementOptions(i, point.active ? 'active' : mode);\n const pointPosition = scale.getPointPositionForValue(i, dataset.data[i]);\n const x = reset ? scale.xCenter : pointPosition.x;\n const y = reset ? scale.yCenter : pointPosition.y;\n const properties = {\n x,\n y,\n angle: pointPosition.angle,\n skip: isNaN(x) || isNaN(y),\n options\n };\n this.updateElement(point, i, properties, mode);\n }\n }\n}\nRadarController.id = 'radar';\nRadarController.defaults = {\n datasetElementType: 'line',\n dataElementType: 'point',\n indexAxis: 'r',\n showLine: true,\n elements: {\n line: {\n fill: 'start'\n }\n },\n};\nRadarController.overrides = {\n aspectRatio: 1,\n scales: {\n r: {\n type: 'radialLinear',\n }\n }\n};\n\nclass ScatterController extends LineController {\n}\nScatterController.id = 'scatter';\nScatterController.defaults = {\n showLine: false,\n fill: false\n};\nScatterController.overrides = {\n interaction: {\n mode: 'point'\n },\n plugins: {\n tooltip: {\n callbacks: {\n title() {\n return '';\n },\n label(item) {\n return '(' + item.label + ', ' + item.formattedValue + ')';\n }\n }\n }\n },\n scales: {\n x: {\n type: 'linear'\n },\n y: {\n type: 'linear'\n }\n }\n};\n\nvar controllers = /*#__PURE__*/Object.freeze({\n__proto__: null,\nBarController: BarController,\nBubbleController: BubbleController,\nDoughnutController: DoughnutController,\nLineController: LineController,\nPolarAreaController: PolarAreaController,\nPieController: PieController,\nRadarController: RadarController,\nScatterController: ScatterController\n});\n\nfunction abstract() {\n throw new Error('This method is not implemented: Check that a complete date adapter is provided.');\n}\nclass DateAdapter {\n constructor(options) {\n this.options = options || {};\n }\n formats() {\n return abstract();\n }\n parse(value, format) {\n return abstract();\n }\n format(timestamp, format) {\n return abstract();\n }\n add(timestamp, amount, unit) {\n return abstract();\n }\n diff(a, b, unit) {\n return abstract();\n }\n startOf(timestamp, unit, weekday) {\n return abstract();\n }\n endOf(timestamp, unit) {\n return abstract();\n }\n}\nDateAdapter.override = function(members) {\n Object.assign(DateAdapter.prototype, members);\n};\nvar adapters = {\n _date: DateAdapter\n};\n\nfunction getRelativePosition(e, chart) {\n if ('native' in e) {\n return {\n x: e.x,\n y: e.y\n };\n }\n return getRelativePosition$1(e, chart);\n}\nfunction evaluateAllVisibleItems(chart, handler) {\n const metasets = chart.getSortedVisibleDatasetMetas();\n let index, data, element;\n for (let i = 0, ilen = metasets.length; i < ilen; ++i) {\n ({index, data} = metasets[i]);\n for (let j = 0, jlen = data.length; j < jlen; ++j) {\n element = data[j];\n if (!element.skip) {\n handler(element, index, j);\n }\n }\n }\n}\nfunction binarySearch(metaset, axis, value, intersect) {\n const {controller, data, _sorted} = metaset;\n const iScale = controller._cachedMeta.iScale;\n if (iScale && axis === iScale.axis && _sorted && data.length) {\n const lookupMethod = iScale._reversePixels ? _rlookupByKey : _lookupByKey;\n if (!intersect) {\n return lookupMethod(data, axis, value);\n } else if (controller._sharedOptions) {\n const el = data[0];\n const range = typeof el.getRange === 'function' && el.getRange(axis);\n if (range) {\n const start = lookupMethod(data, axis, value - range);\n const end = lookupMethod(data, axis, value + range);\n return {lo: start.lo, hi: end.hi};\n }\n }\n }\n return {lo: 0, hi: data.length - 1};\n}\nfunction optimizedEvaluateItems(chart, axis, position, handler, intersect) {\n const metasets = chart.getSortedVisibleDatasetMetas();\n const value = position[axis];\n for (let i = 0, ilen = metasets.length; i < ilen; ++i) {\n const {index, data} = metasets[i];\n const {lo, hi} = binarySearch(metasets[i], axis, value, intersect);\n for (let j = lo; j <= hi; ++j) {\n const element = data[j];\n if (!element.skip) {\n handler(element, index, j);\n }\n }\n }\n}\nfunction getDistanceMetricForAxis(axis) {\n const useX = axis.indexOf('x') !== -1;\n const useY = axis.indexOf('y') !== -1;\n return function(pt1, pt2) {\n const deltaX = useX ? Math.abs(pt1.x - pt2.x) : 0;\n const deltaY = useY ? Math.abs(pt1.y - pt2.y) : 0;\n return Math.sqrt(Math.pow(deltaX, 2) + Math.pow(deltaY, 2));\n };\n}\nfunction getIntersectItems(chart, position, axis, useFinalPosition) {\n const items = [];\n if (!_isPointInArea(position, chart.chartArea, chart._minPadding)) {\n return items;\n }\n const evaluationFunc = function(element, datasetIndex, index) {\n if (element.inRange(position.x, position.y, useFinalPosition)) {\n items.push({element, datasetIndex, index});\n }\n };\n optimizedEvaluateItems(chart, axis, position, evaluationFunc, true);\n return items;\n}\nfunction getNearestItems(chart, position, axis, intersect, useFinalPosition) {\n const distanceMetric = getDistanceMetricForAxis(axis);\n let minDistance = Number.POSITIVE_INFINITY;\n let items = [];\n if (!_isPointInArea(position, chart.chartArea, chart._minPadding)) {\n return items;\n }\n const evaluationFunc = function(element, datasetIndex, index) {\n if (intersect && !element.inRange(position.x, position.y, useFinalPosition)) {\n return;\n }\n const center = element.getCenterPoint(useFinalPosition);\n if (!_isPointInArea(center, chart.chartArea, chart._minPadding) && !element.inRange(position.x, position.y, useFinalPosition)) {\n return;\n }\n const distance = distanceMetric(position, center);\n if (distance < minDistance) {\n items = [{element, datasetIndex, index}];\n minDistance = distance;\n } else if (distance === minDistance) {\n items.push({element, datasetIndex, index});\n }\n };\n optimizedEvaluateItems(chart, axis, position, evaluationFunc);\n return items;\n}\nfunction getAxisItems(chart, e, options, useFinalPosition) {\n const position = getRelativePosition(e, chart);\n const items = [];\n const axis = options.axis;\n const rangeMethod = axis === 'x' ? 'inXRange' : 'inYRange';\n let intersectsItem = false;\n evaluateAllVisibleItems(chart, (element, datasetIndex, index) => {\n if (element[rangeMethod](position[axis], useFinalPosition)) {\n items.push({element, datasetIndex, index});\n }\n if (element.inRange(position.x, position.y, useFinalPosition)) {\n intersectsItem = true;\n }\n });\n if (options.intersect && !intersectsItem) {\n return [];\n }\n return items;\n}\nvar Interaction = {\n modes: {\n index(chart, e, options, useFinalPosition) {\n const position = getRelativePosition(e, chart);\n const axis = options.axis || 'x';\n const items = options.intersect\n ? getIntersectItems(chart, position, axis, useFinalPosition)\n : getNearestItems(chart, position, axis, false, useFinalPosition);\n const elements = [];\n if (!items.length) {\n return [];\n }\n chart.getSortedVisibleDatasetMetas().forEach((meta) => {\n const index = items[0].index;\n const element = meta.data[index];\n if (element && !element.skip) {\n elements.push({element, datasetIndex: meta.index, index});\n }\n });\n return elements;\n },\n dataset(chart, e, options, useFinalPosition) {\n const position = getRelativePosition(e, chart);\n const axis = options.axis || 'xy';\n let items = options.intersect\n ? getIntersectItems(chart, position, axis, useFinalPosition) :\n getNearestItems(chart, position, axis, false, useFinalPosition);\n if (items.length > 0) {\n const datasetIndex = items[0].datasetIndex;\n const data = chart.getDatasetMeta(datasetIndex).data;\n items = [];\n for (let i = 0; i < data.length; ++i) {\n items.push({element: data[i], datasetIndex, index: i});\n }\n }\n return items;\n },\n point(chart, e, options, useFinalPosition) {\n const position = getRelativePosition(e, chart);\n const axis = options.axis || 'xy';\n return getIntersectItems(chart, position, axis, useFinalPosition);\n },\n nearest(chart, e, options, useFinalPosition) {\n const position = getRelativePosition(e, chart);\n const axis = options.axis || 'xy';\n return getNearestItems(chart, position, axis, options.intersect, useFinalPosition);\n },\n x(chart, e, options, useFinalPosition) {\n options.axis = 'x';\n return getAxisItems(chart, e, options, useFinalPosition);\n },\n y(chart, e, options, useFinalPosition) {\n options.axis = 'y';\n return getAxisItems(chart, e, options, useFinalPosition);\n }\n }\n};\n\nconst STATIC_POSITIONS = ['left', 'top', 'right', 'bottom'];\nfunction filterByPosition(array, position) {\n return array.filter(v => v.pos === position);\n}\nfunction filterDynamicPositionByAxis(array, axis) {\n return array.filter(v => STATIC_POSITIONS.indexOf(v.pos) === -1 && v.box.axis === axis);\n}\nfunction sortByWeight(array, reverse) {\n return array.sort((a, b) => {\n const v0 = reverse ? b : a;\n const v1 = reverse ? a : b;\n return v0.weight === v1.weight ?\n v0.index - v1.index :\n v0.weight - v1.weight;\n });\n}\nfunction wrapBoxes(boxes) {\n const layoutBoxes = [];\n let i, ilen, box, pos, stack, stackWeight;\n for (i = 0, ilen = (boxes || []).length; i < ilen; ++i) {\n box = boxes[i];\n ({position: pos, options: {stack, stackWeight = 1}} = box);\n layoutBoxes.push({\n index: i,\n box,\n pos,\n horizontal: box.isHorizontal(),\n weight: box.weight,\n stack: stack && (pos + stack),\n stackWeight\n });\n }\n return layoutBoxes;\n}\nfunction buildStacks(layouts) {\n const stacks = {};\n for (const wrap of layouts) {\n const {stack, pos, stackWeight} = wrap;\n if (!stack || !STATIC_POSITIONS.includes(pos)) {\n continue;\n }\n const _stack = stacks[stack] || (stacks[stack] = {count: 0, placed: 0, weight: 0, size: 0});\n _stack.count++;\n _stack.weight += stackWeight;\n }\n return stacks;\n}\nfunction setLayoutDims(layouts, params) {\n const stacks = buildStacks(layouts);\n const {vBoxMaxWidth, hBoxMaxHeight} = params;\n let i, ilen, layout;\n for (i = 0, ilen = layouts.length; i < ilen; ++i) {\n layout = layouts[i];\n const {fullSize} = layout.box;\n const stack = stacks[layout.stack];\n const factor = stack && layout.stackWeight / stack.weight;\n if (layout.horizontal) {\n layout.width = factor ? factor * vBoxMaxWidth : fullSize && params.availableWidth;\n layout.height = hBoxMaxHeight;\n } else {\n layout.width = vBoxMaxWidth;\n layout.height = factor ? factor * hBoxMaxHeight : fullSize && params.availableHeight;\n }\n }\n return stacks;\n}\nfunction buildLayoutBoxes(boxes) {\n const layoutBoxes = wrapBoxes(boxes);\n const fullSize = sortByWeight(layoutBoxes.filter(wrap => wrap.box.fullSize), true);\n const left = sortByWeight(filterByPosition(layoutBoxes, 'left'), true);\n const right = sortByWeight(filterByPosition(layoutBoxes, 'right'));\n const top = sortByWeight(filterByPosition(layoutBoxes, 'top'), true);\n const bottom = sortByWeight(filterByPosition(layoutBoxes, 'bottom'));\n const centerHorizontal = filterDynamicPositionByAxis(layoutBoxes, 'x');\n const centerVertical = filterDynamicPositionByAxis(layoutBoxes, 'y');\n return {\n fullSize,\n leftAndTop: left.concat(top),\n rightAndBottom: right.concat(centerVertical).concat(bottom).concat(centerHorizontal),\n chartArea: filterByPosition(layoutBoxes, 'chartArea'),\n vertical: left.concat(right).concat(centerVertical),\n horizontal: top.concat(bottom).concat(centerHorizontal)\n };\n}\nfunction getCombinedMax(maxPadding, chartArea, a, b) {\n return Math.max(maxPadding[a], chartArea[a]) + Math.max(maxPadding[b], chartArea[b]);\n}\nfunction updateMaxPadding(maxPadding, boxPadding) {\n maxPadding.top = Math.max(maxPadding.top, boxPadding.top);\n maxPadding.left = Math.max(maxPadding.left, boxPadding.left);\n maxPadding.bottom = Math.max(maxPadding.bottom, boxPadding.bottom);\n maxPadding.right = Math.max(maxPadding.right, boxPadding.right);\n}\nfunction updateDims(chartArea, params, layout, stacks) {\n const {pos, box} = layout;\n const maxPadding = chartArea.maxPadding;\n if (!isObject(pos)) {\n if (layout.size) {\n chartArea[pos] -= layout.size;\n }\n const stack = stacks[layout.stack] || {size: 0, count: 1};\n stack.size = Math.max(stack.size, layout.horizontal ? box.height : box.width);\n layout.size = stack.size / stack.count;\n chartArea[pos] += layout.size;\n }\n if (box.getPadding) {\n updateMaxPadding(maxPadding, box.getPadding());\n }\n const newWidth = Math.max(0, params.outerWidth - getCombinedMax(maxPadding, chartArea, 'left', 'right'));\n const newHeight = Math.max(0, params.outerHeight - getCombinedMax(maxPadding, chartArea, 'top', 'bottom'));\n const widthChanged = newWidth !== chartArea.w;\n const heightChanged = newHeight !== chartArea.h;\n chartArea.w = newWidth;\n chartArea.h = newHeight;\n return layout.horizontal\n ? {same: widthChanged, other: heightChanged}\n : {same: heightChanged, other: widthChanged};\n}\nfunction handleMaxPadding(chartArea) {\n const maxPadding = chartArea.maxPadding;\n function updatePos(pos) {\n const change = Math.max(maxPadding[pos] - chartArea[pos], 0);\n chartArea[pos] += change;\n return change;\n }\n chartArea.y += updatePos('top');\n chartArea.x += updatePos('left');\n updatePos('right');\n updatePos('bottom');\n}\nfunction getMargins(horizontal, chartArea) {\n const maxPadding = chartArea.maxPadding;\n function marginForPositions(positions) {\n const margin = {left: 0, top: 0, right: 0, bottom: 0};\n positions.forEach((pos) => {\n margin[pos] = Math.max(chartArea[pos], maxPadding[pos]);\n });\n return margin;\n }\n return horizontal\n ? marginForPositions(['left', 'right'])\n : marginForPositions(['top', 'bottom']);\n}\nfunction fitBoxes(boxes, chartArea, params, stacks) {\n const refitBoxes = [];\n let i, ilen, layout, box, refit, changed;\n for (i = 0, ilen = boxes.length, refit = 0; i < ilen; ++i) {\n layout = boxes[i];\n box = layout.box;\n box.update(\n layout.width || chartArea.w,\n layout.height || chartArea.h,\n getMargins(layout.horizontal, chartArea)\n );\n const {same, other} = updateDims(chartArea, params, layout, stacks);\n refit |= same && refitBoxes.length;\n changed = changed || other;\n if (!box.fullSize) {\n refitBoxes.push(layout);\n }\n }\n return refit && fitBoxes(refitBoxes, chartArea, params, stacks) || changed;\n}\nfunction setBoxDims(box, left, top, width, height) {\n box.top = top;\n box.left = left;\n box.right = left + width;\n box.bottom = top + height;\n box.width = width;\n box.height = height;\n}\nfunction placeBoxes(boxes, chartArea, params, stacks) {\n const userPadding = params.padding;\n let {x, y} = chartArea;\n for (const layout of boxes) {\n const box = layout.box;\n const stack = stacks[layout.stack] || {count: 1, placed: 0, weight: 1};\n const weight = (layout.stackWeight / stack.weight) || 1;\n if (layout.horizontal) {\n const width = chartArea.w * weight;\n const height = stack.size || box.height;\n if (defined(stack.start)) {\n y = stack.start;\n }\n if (box.fullSize) {\n setBoxDims(box, userPadding.left, y, params.outerWidth - userPadding.right - userPadding.left, height);\n } else {\n setBoxDims(box, chartArea.left + stack.placed, y, width, height);\n }\n stack.start = y;\n stack.placed += width;\n y = box.bottom;\n } else {\n const height = chartArea.h * weight;\n const width = stack.size || box.width;\n if (defined(stack.start)) {\n x = stack.start;\n }\n if (box.fullSize) {\n setBoxDims(box, x, userPadding.top, width, params.outerHeight - userPadding.bottom - userPadding.top);\n } else {\n setBoxDims(box, x, chartArea.top + stack.placed, width, height);\n }\n stack.start = x;\n stack.placed += height;\n x = box.right;\n }\n }\n chartArea.x = x;\n chartArea.y = y;\n}\ndefaults.set('layout', {\n autoPadding: true,\n padding: {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n }\n});\nvar layouts = {\n addBox(chart, item) {\n if (!chart.boxes) {\n chart.boxes = [];\n }\n item.fullSize = item.fullSize || false;\n item.position = item.position || 'top';\n item.weight = item.weight || 0;\n item._layers = item._layers || function() {\n return [{\n z: 0,\n draw(chartArea) {\n item.draw(chartArea);\n }\n }];\n };\n chart.boxes.push(item);\n },\n removeBox(chart, layoutItem) {\n const index = chart.boxes ? chart.boxes.indexOf(layoutItem) : -1;\n if (index !== -1) {\n chart.boxes.splice(index, 1);\n }\n },\n configure(chart, item, options) {\n item.fullSize = options.fullSize;\n item.position = options.position;\n item.weight = options.weight;\n },\n update(chart, width, height, minPadding) {\n if (!chart) {\n return;\n }\n const padding = toPadding(chart.options.layout.padding);\n const availableWidth = Math.max(width - padding.width, 0);\n const availableHeight = Math.max(height - padding.height, 0);\n const boxes = buildLayoutBoxes(chart.boxes);\n const verticalBoxes = boxes.vertical;\n const horizontalBoxes = boxes.horizontal;\n each(chart.boxes, box => {\n if (typeof box.beforeLayout === 'function') {\n box.beforeLayout();\n }\n });\n const visibleVerticalBoxCount = verticalBoxes.reduce((total, wrap) =>\n wrap.box.options && wrap.box.options.display === false ? total : total + 1, 0) || 1;\n const params = Object.freeze({\n outerWidth: width,\n outerHeight: height,\n padding,\n availableWidth,\n availableHeight,\n vBoxMaxWidth: availableWidth / 2 / visibleVerticalBoxCount,\n hBoxMaxHeight: availableHeight / 2\n });\n const maxPadding = Object.assign({}, padding);\n updateMaxPadding(maxPadding, toPadding(minPadding));\n const chartArea = Object.assign({\n maxPadding,\n w: availableWidth,\n h: availableHeight,\n x: padding.left,\n y: padding.top\n }, padding);\n const stacks = setLayoutDims(verticalBoxes.concat(horizontalBoxes), params);\n fitBoxes(boxes.fullSize, chartArea, params, stacks);\n fitBoxes(verticalBoxes, chartArea, params, stacks);\n if (fitBoxes(horizontalBoxes, chartArea, params, stacks)) {\n fitBoxes(verticalBoxes, chartArea, params, stacks);\n }\n handleMaxPadding(chartArea);\n placeBoxes(boxes.leftAndTop, chartArea, params, stacks);\n chartArea.x += chartArea.w;\n chartArea.y += chartArea.h;\n placeBoxes(boxes.rightAndBottom, chartArea, params, stacks);\n chart.chartArea = {\n left: chartArea.left,\n top: chartArea.top,\n right: chartArea.left + chartArea.w,\n bottom: chartArea.top + chartArea.h,\n height: chartArea.h,\n width: chartArea.w,\n };\n each(boxes.chartArea, (layout) => {\n const box = layout.box;\n Object.assign(box, chart.chartArea);\n box.update(chartArea.w, chartArea.h);\n });\n }\n};\n\nclass BasePlatform {\n acquireContext(canvas, aspectRatio) {}\n releaseContext(context) {\n return false;\n }\n addEventListener(chart, type, listener) {}\n removeEventListener(chart, type, listener) {}\n getDevicePixelRatio() {\n return 1;\n }\n getMaximumSize(element, width, height, aspectRatio) {\n width = Math.max(0, width || element.width);\n height = height || element.height;\n return {\n width,\n height: Math.max(0, aspectRatio ? Math.floor(width / aspectRatio) : height)\n };\n }\n isAttached(canvas) {\n return true;\n }\n updateConfig(config) {\n }\n}\n\nclass BasicPlatform extends BasePlatform {\n acquireContext(item) {\n return item && item.getContext && item.getContext('2d') || null;\n }\n updateConfig(config) {\n config.options.animation = false;\n }\n}\n\nconst EXPANDO_KEY = '$chartjs';\nconst EVENT_TYPES = {\n touchstart: 'mousedown',\n touchmove: 'mousemove',\n touchend: 'mouseup',\n pointerenter: 'mouseenter',\n pointerdown: 'mousedown',\n pointermove: 'mousemove',\n pointerup: 'mouseup',\n pointerleave: 'mouseout',\n pointerout: 'mouseout'\n};\nconst isNullOrEmpty = value => value === null || value === '';\nfunction initCanvas(canvas, aspectRatio) {\n const style = canvas.style;\n const renderHeight = canvas.getAttribute('height');\n const renderWidth = canvas.getAttribute('width');\n canvas[EXPANDO_KEY] = {\n initial: {\n height: renderHeight,\n width: renderWidth,\n style: {\n display: style.display,\n height: style.height,\n width: style.width\n }\n }\n };\n style.display = style.display || 'block';\n style.boxSizing = style.boxSizing || 'border-box';\n if (isNullOrEmpty(renderWidth)) {\n const displayWidth = readUsedSize(canvas, 'width');\n if (displayWidth !== undefined) {\n canvas.width = displayWidth;\n }\n }\n if (isNullOrEmpty(renderHeight)) {\n if (canvas.style.height === '') {\n canvas.height = canvas.width / (aspectRatio || 2);\n } else {\n const displayHeight = readUsedSize(canvas, 'height');\n if (displayHeight !== undefined) {\n canvas.height = displayHeight;\n }\n }\n }\n return canvas;\n}\nconst eventListenerOptions = supportsEventListenerOptions ? {passive: true} : false;\nfunction addListener(node, type, listener) {\n node.addEventListener(type, listener, eventListenerOptions);\n}\nfunction removeListener(chart, type, listener) {\n chart.canvas.removeEventListener(type, listener, eventListenerOptions);\n}\nfunction fromNativeEvent(event, chart) {\n const type = EVENT_TYPES[event.type] || event.type;\n const {x, y} = getRelativePosition$1(event, chart);\n return {\n type,\n chart,\n native: event,\n x: x !== undefined ? x : null,\n y: y !== undefined ? y : null,\n };\n}\nfunction createAttachObserver(chart, type, listener) {\n const canvas = chart.canvas;\n const observer = new MutationObserver(entries => {\n for (const entry of entries) {\n for (const node of entry.addedNodes) {\n if (node === canvas || node.contains(canvas)) {\n return listener();\n }\n }\n }\n });\n observer.observe(document, {childList: true, subtree: true});\n return observer;\n}\nfunction createDetachObserver(chart, type, listener) {\n const canvas = chart.canvas;\n const observer = new MutationObserver(entries => {\n for (const entry of entries) {\n for (const node of entry.removedNodes) {\n if (node === canvas || node.contains(canvas)) {\n return listener();\n }\n }\n }\n });\n observer.observe(document, {childList: true, subtree: true});\n return observer;\n}\nconst drpListeningCharts = new Map();\nlet oldDevicePixelRatio = 0;\nfunction onWindowResize() {\n const dpr = window.devicePixelRatio;\n if (dpr === oldDevicePixelRatio) {\n return;\n }\n oldDevicePixelRatio = dpr;\n drpListeningCharts.forEach((resize, chart) => {\n if (chart.currentDevicePixelRatio !== dpr) {\n resize();\n }\n });\n}\nfunction listenDevicePixelRatioChanges(chart, resize) {\n if (!drpListeningCharts.size) {\n window.addEventListener('resize', onWindowResize);\n }\n drpListeningCharts.set(chart, resize);\n}\nfunction unlistenDevicePixelRatioChanges(chart) {\n drpListeningCharts.delete(chart);\n if (!drpListeningCharts.size) {\n window.removeEventListener('resize', onWindowResize);\n }\n}\nfunction createResizeObserver(chart, type, listener) {\n const canvas = chart.canvas;\n const container = canvas && _getParentNode(canvas);\n if (!container) {\n return;\n }\n const resize = throttled((width, height) => {\n const w = container.clientWidth;\n listener(width, height);\n if (w < container.clientWidth) {\n listener();\n }\n }, window);\n const observer = new ResizeObserver(entries => {\n const entry = entries[0];\n const width = entry.contentRect.width;\n const height = entry.contentRect.height;\n if (width === 0 && height === 0) {\n return;\n }\n resize(width, height);\n });\n observer.observe(container);\n listenDevicePixelRatioChanges(chart, resize);\n return observer;\n}\nfunction releaseObserver(chart, type, observer) {\n if (observer) {\n observer.disconnect();\n }\n if (type === 'resize') {\n unlistenDevicePixelRatioChanges(chart);\n }\n}\nfunction createProxyAndListen(chart, type, listener) {\n const canvas = chart.canvas;\n const proxy = throttled((event) => {\n if (chart.ctx !== null) {\n listener(fromNativeEvent(event, chart));\n }\n }, chart, (args) => {\n const event = args[0];\n return [event, event.offsetX, event.offsetY];\n });\n addListener(canvas, type, proxy);\n return proxy;\n}\nclass DomPlatform extends BasePlatform {\n acquireContext(canvas, aspectRatio) {\n const context = canvas && canvas.getContext && canvas.getContext('2d');\n if (context && context.canvas === canvas) {\n initCanvas(canvas, aspectRatio);\n return context;\n }\n return null;\n }\n releaseContext(context) {\n const canvas = context.canvas;\n if (!canvas[EXPANDO_KEY]) {\n return false;\n }\n const initial = canvas[EXPANDO_KEY].initial;\n ['height', 'width'].forEach((prop) => {\n const value = initial[prop];\n if (isNullOrUndef(value)) {\n canvas.removeAttribute(prop);\n } else {\n canvas.setAttribute(prop, value);\n }\n });\n const style = initial.style || {};\n Object.keys(style).forEach((key) => {\n canvas.style[key] = style[key];\n });\n canvas.width = canvas.width;\n delete canvas[EXPANDO_KEY];\n return true;\n }\n addEventListener(chart, type, listener) {\n this.removeEventListener(chart, type);\n const proxies = chart.$proxies || (chart.$proxies = {});\n const handlers = {\n attach: createAttachObserver,\n detach: createDetachObserver,\n resize: createResizeObserver\n };\n const handler = handlers[type] || createProxyAndListen;\n proxies[type] = handler(chart, type, listener);\n }\n removeEventListener(chart, type) {\n const proxies = chart.$proxies || (chart.$proxies = {});\n const proxy = proxies[type];\n if (!proxy) {\n return;\n }\n const handlers = {\n attach: releaseObserver,\n detach: releaseObserver,\n resize: releaseObserver\n };\n const handler = handlers[type] || removeListener;\n handler(chart, type, proxy);\n proxies[type] = undefined;\n }\n getDevicePixelRatio() {\n return window.devicePixelRatio;\n }\n getMaximumSize(canvas, width, height, aspectRatio) {\n return getMaximumSize(canvas, width, height, aspectRatio);\n }\n isAttached(canvas) {\n const container = _getParentNode(canvas);\n return !!(container && container.isConnected);\n }\n}\n\nfunction _detectPlatform(canvas) {\n if (!_isDomSupported() || (typeof OffscreenCanvas !== 'undefined' && canvas instanceof OffscreenCanvas)) {\n return BasicPlatform;\n }\n return DomPlatform;\n}\n\nclass Element {\n constructor() {\n this.x = undefined;\n this.y = undefined;\n this.active = false;\n this.options = undefined;\n this.$animations = undefined;\n }\n tooltipPosition(useFinalPosition) {\n const {x, y} = this.getProps(['x', 'y'], useFinalPosition);\n return {x, y};\n }\n hasValue() {\n return isNumber(this.x) && isNumber(this.y);\n }\n getProps(props, final) {\n const anims = this.$animations;\n if (!final || !anims) {\n return this;\n }\n const ret = {};\n props.forEach(prop => {\n ret[prop] = anims[prop] && anims[prop].active() ? anims[prop]._to : this[prop];\n });\n return ret;\n }\n}\nElement.defaults = {};\nElement.defaultRoutes = undefined;\n\nconst formatters = {\n values(value) {\n return isArray(value) ? value : '' + value;\n },\n numeric(tickValue, index, ticks) {\n if (tickValue === 0) {\n return '0';\n }\n const locale = this.chart.options.locale;\n let notation;\n let delta = tickValue;\n if (ticks.length > 1) {\n const maxTick = Math.max(Math.abs(ticks[0].value), Math.abs(ticks[ticks.length - 1].value));\n if (maxTick < 1e-4 || maxTick > 1e+15) {\n notation = 'scientific';\n }\n delta = calculateDelta(tickValue, ticks);\n }\n const logDelta = log10(Math.abs(delta));\n const numDecimal = Math.max(Math.min(-1 * Math.floor(logDelta), 20), 0);\n const options = {notation, minimumFractionDigits: numDecimal, maximumFractionDigits: numDecimal};\n Object.assign(options, this.options.ticks.format);\n return formatNumber(tickValue, locale, options);\n },\n logarithmic(tickValue, index, ticks) {\n if (tickValue === 0) {\n return '0';\n }\n const remain = tickValue / (Math.pow(10, Math.floor(log10(tickValue))));\n if (remain === 1 || remain === 2 || remain === 5) {\n return formatters.numeric.call(this, tickValue, index, ticks);\n }\n return '';\n }\n};\nfunction calculateDelta(tickValue, ticks) {\n let delta = ticks.length > 3 ? ticks[2].value - ticks[1].value : ticks[1].value - ticks[0].value;\n if (Math.abs(delta) >= 1 && tickValue !== Math.floor(tickValue)) {\n delta = tickValue - Math.floor(tickValue);\n }\n return delta;\n}\nvar Ticks = {formatters};\n\ndefaults.set('scale', {\n display: true,\n offset: false,\n reverse: false,\n beginAtZero: false,\n bounds: 'ticks',\n grace: 0,\n grid: {\n display: true,\n lineWidth: 1,\n drawBorder: true,\n drawOnChartArea: true,\n drawTicks: true,\n tickLength: 8,\n tickWidth: (_ctx, options) => options.lineWidth,\n tickColor: (_ctx, options) => options.color,\n offset: false,\n borderDash: [],\n borderDashOffset: 0.0,\n borderWidth: 1\n },\n title: {\n display: false,\n text: '',\n padding: {\n top: 4,\n bottom: 4\n }\n },\n ticks: {\n minRotation: 0,\n maxRotation: 50,\n mirror: false,\n textStrokeWidth: 0,\n textStrokeColor: '',\n padding: 3,\n display: true,\n autoSkip: true,\n autoSkipPadding: 3,\n labelOffset: 0,\n callback: Ticks.formatters.values,\n minor: {},\n major: {},\n align: 'center',\n crossAlign: 'near',\n showLabelBackdrop: false,\n backdropColor: 'rgba(255, 255, 255, 0.75)',\n backdropPadding: 2,\n }\n});\ndefaults.route('scale.ticks', 'color', '', 'color');\ndefaults.route('scale.grid', 'color', '', 'borderColor');\ndefaults.route('scale.grid', 'borderColor', '', 'borderColor');\ndefaults.route('scale.title', 'color', '', 'color');\ndefaults.describe('scale', {\n _fallback: false,\n _scriptable: (name) => !name.startsWith('before') && !name.startsWith('after') && name !== 'callback' && name !== 'parser',\n _indexable: (name) => name !== 'borderDash' && name !== 'tickBorderDash',\n});\ndefaults.describe('scales', {\n _fallback: 'scale',\n});\ndefaults.describe('scale.ticks', {\n _scriptable: (name) => name !== 'backdropPadding' && name !== 'callback',\n _indexable: (name) => name !== 'backdropPadding',\n});\n\nfunction autoSkip(scale, ticks) {\n const tickOpts = scale.options.ticks;\n const ticksLimit = tickOpts.maxTicksLimit || determineMaxTicks(scale);\n const majorIndices = tickOpts.major.enabled ? getMajorIndices(ticks) : [];\n const numMajorIndices = majorIndices.length;\n const first = majorIndices[0];\n const last = majorIndices[numMajorIndices - 1];\n const newTicks = [];\n if (numMajorIndices > ticksLimit) {\n skipMajors(ticks, newTicks, majorIndices, numMajorIndices / ticksLimit);\n return newTicks;\n }\n const spacing = calculateSpacing(majorIndices, ticks, ticksLimit);\n if (numMajorIndices > 0) {\n let i, ilen;\n const avgMajorSpacing = numMajorIndices > 1 ? Math.round((last - first) / (numMajorIndices - 1)) : null;\n skip(ticks, newTicks, spacing, isNullOrUndef(avgMajorSpacing) ? 0 : first - avgMajorSpacing, first);\n for (i = 0, ilen = numMajorIndices - 1; i < ilen; i++) {\n skip(ticks, newTicks, spacing, majorIndices[i], majorIndices[i + 1]);\n }\n skip(ticks, newTicks, spacing, last, isNullOrUndef(avgMajorSpacing) ? ticks.length : last + avgMajorSpacing);\n return newTicks;\n }\n skip(ticks, newTicks, spacing);\n return newTicks;\n}\nfunction determineMaxTicks(scale) {\n const offset = scale.options.offset;\n const tickLength = scale._tickSize();\n const maxScale = scale._length / tickLength + (offset ? 0 : 1);\n const maxChart = scale._maxLength / tickLength;\n return Math.floor(Math.min(maxScale, maxChart));\n}\nfunction calculateSpacing(majorIndices, ticks, ticksLimit) {\n const evenMajorSpacing = getEvenSpacing(majorIndices);\n const spacing = ticks.length / ticksLimit;\n if (!evenMajorSpacing) {\n return Math.max(spacing, 1);\n }\n const factors = _factorize(evenMajorSpacing);\n for (let i = 0, ilen = factors.length - 1; i < ilen; i++) {\n const factor = factors[i];\n if (factor > spacing) {\n return factor;\n }\n }\n return Math.max(spacing, 1);\n}\nfunction getMajorIndices(ticks) {\n const result = [];\n let i, ilen;\n for (i = 0, ilen = ticks.length; i < ilen; i++) {\n if (ticks[i].major) {\n result.push(i);\n }\n }\n return result;\n}\nfunction skipMajors(ticks, newTicks, majorIndices, spacing) {\n let count = 0;\n let next = majorIndices[0];\n let i;\n spacing = Math.ceil(spacing);\n for (i = 0; i < ticks.length; i++) {\n if (i === next) {\n newTicks.push(ticks[i]);\n count++;\n next = majorIndices[count * spacing];\n }\n }\n}\nfunction skip(ticks, newTicks, spacing, majorStart, majorEnd) {\n const start = valueOrDefault(majorStart, 0);\n const end = Math.min(valueOrDefault(majorEnd, ticks.length), ticks.length);\n let count = 0;\n let length, i, next;\n spacing = Math.ceil(spacing);\n if (majorEnd) {\n length = majorEnd - majorStart;\n spacing = length / Math.floor(length / spacing);\n }\n next = start;\n while (next < 0) {\n count++;\n next = Math.round(start + count * spacing);\n }\n for (i = Math.max(start, 0); i < end; i++) {\n if (i === next) {\n newTicks.push(ticks[i]);\n count++;\n next = Math.round(start + count * spacing);\n }\n }\n}\nfunction getEvenSpacing(arr) {\n const len = arr.length;\n let i, diff;\n if (len < 2) {\n return false;\n }\n for (diff = arr[0], i = 1; i < len; ++i) {\n if (arr[i] - arr[i - 1] !== diff) {\n return false;\n }\n }\n return diff;\n}\n\nconst reverseAlign = (align) => align === 'left' ? 'right' : align === 'right' ? 'left' : align;\nconst offsetFromEdge = (scale, edge, offset) => edge === 'top' || edge === 'left' ? scale[edge] + offset : scale[edge] - offset;\nfunction sample(arr, numItems) {\n const result = [];\n const increment = arr.length / numItems;\n const len = arr.length;\n let i = 0;\n for (; i < len; i += increment) {\n result.push(arr[Math.floor(i)]);\n }\n return result;\n}\nfunction getPixelForGridLine(scale, index, offsetGridLines) {\n const length = scale.ticks.length;\n const validIndex = Math.min(index, length - 1);\n const start = scale._startPixel;\n const end = scale._endPixel;\n const epsilon = 1e-6;\n let lineValue = scale.getPixelForTick(validIndex);\n let offset;\n if (offsetGridLines) {\n if (length === 1) {\n offset = Math.max(lineValue - start, end - lineValue);\n } else if (index === 0) {\n offset = (scale.getPixelForTick(1) - lineValue) / 2;\n } else {\n offset = (lineValue - scale.getPixelForTick(validIndex - 1)) / 2;\n }\n lineValue += validIndex < index ? offset : -offset;\n if (lineValue < start - epsilon || lineValue > end + epsilon) {\n return;\n }\n }\n return lineValue;\n}\nfunction garbageCollect(caches, length) {\n each(caches, (cache) => {\n const gc = cache.gc;\n const gcLen = gc.length / 2;\n let i;\n if (gcLen > length) {\n for (i = 0; i < gcLen; ++i) {\n delete cache.data[gc[i]];\n }\n gc.splice(0, gcLen);\n }\n });\n}\nfunction getTickMarkLength(options) {\n return options.drawTicks ? options.tickLength : 0;\n}\nfunction getTitleHeight(options, fallback) {\n if (!options.display) {\n return 0;\n }\n const font = toFont(options.font, fallback);\n const padding = toPadding(options.padding);\n const lines = isArray(options.text) ? options.text.length : 1;\n return (lines * font.lineHeight) + padding.height;\n}\nfunction createScaleContext(parent, scale) {\n return createContext(parent, {\n scale,\n type: 'scale'\n });\n}\nfunction createTickContext(parent, index, tick) {\n return createContext(parent, {\n tick,\n index,\n type: 'tick'\n });\n}\nfunction titleAlign(align, position, reverse) {\n let ret = _toLeftRightCenter(align);\n if ((reverse && position !== 'right') || (!reverse && position === 'right')) {\n ret = reverseAlign(ret);\n }\n return ret;\n}\nfunction titleArgs(scale, offset, position, align) {\n const {top, left, bottom, right, chart} = scale;\n const {chartArea, scales} = chart;\n let rotation = 0;\n let maxWidth, titleX, titleY;\n const height = bottom - top;\n const width = right - left;\n if (scale.isHorizontal()) {\n titleX = _alignStartEnd(align, left, right);\n if (isObject(position)) {\n const positionAxisID = Object.keys(position)[0];\n const value = position[positionAxisID];\n titleY = scales[positionAxisID].getPixelForValue(value) + height - offset;\n } else if (position === 'center') {\n titleY = (chartArea.bottom + chartArea.top) / 2 + height - offset;\n } else {\n titleY = offsetFromEdge(scale, position, offset);\n }\n maxWidth = right - left;\n } else {\n if (isObject(position)) {\n const positionAxisID = Object.keys(position)[0];\n const value = position[positionAxisID];\n titleX = scales[positionAxisID].getPixelForValue(value) - width + offset;\n } else if (position === 'center') {\n titleX = (chartArea.left + chartArea.right) / 2 - width + offset;\n } else {\n titleX = offsetFromEdge(scale, position, offset);\n }\n titleY = _alignStartEnd(align, bottom, top);\n rotation = position === 'left' ? -HALF_PI : HALF_PI;\n }\n return {titleX, titleY, maxWidth, rotation};\n}\nclass Scale extends Element {\n constructor(cfg) {\n super();\n this.id = cfg.id;\n this.type = cfg.type;\n this.options = undefined;\n this.ctx = cfg.ctx;\n this.chart = cfg.chart;\n this.top = undefined;\n this.bottom = undefined;\n this.left = undefined;\n this.right = undefined;\n this.width = undefined;\n this.height = undefined;\n this._margins = {\n left: 0,\n right: 0,\n top: 0,\n bottom: 0\n };\n this.maxWidth = undefined;\n this.maxHeight = undefined;\n this.paddingTop = undefined;\n this.paddingBottom = undefined;\n this.paddingLeft = undefined;\n this.paddingRight = undefined;\n this.axis = undefined;\n this.labelRotation = undefined;\n this.min = undefined;\n this.max = undefined;\n this._range = undefined;\n this.ticks = [];\n this._gridLineItems = null;\n this._labelItems = null;\n this._labelSizes = null;\n this._length = 0;\n this._maxLength = 0;\n this._longestTextCache = {};\n this._startPixel = undefined;\n this._endPixel = undefined;\n this._reversePixels = false;\n this._userMax = undefined;\n this._userMin = undefined;\n this._suggestedMax = undefined;\n this._suggestedMin = undefined;\n this._ticksLength = 0;\n this._borderValue = 0;\n this._cache = {};\n this._dataLimitsCached = false;\n this.$context = undefined;\n }\n init(options) {\n this.options = options.setContext(this.getContext());\n this.axis = options.axis;\n this._userMin = this.parse(options.min);\n this._userMax = this.parse(options.max);\n this._suggestedMin = this.parse(options.suggestedMin);\n this._suggestedMax = this.parse(options.suggestedMax);\n }\n parse(raw, index) {\n return raw;\n }\n getUserBounds() {\n let {_userMin, _userMax, _suggestedMin, _suggestedMax} = this;\n _userMin = finiteOrDefault(_userMin, Number.POSITIVE_INFINITY);\n _userMax = finiteOrDefault(_userMax, Number.NEGATIVE_INFINITY);\n _suggestedMin = finiteOrDefault(_suggestedMin, Number.POSITIVE_INFINITY);\n _suggestedMax = finiteOrDefault(_suggestedMax, Number.NEGATIVE_INFINITY);\n return {\n min: finiteOrDefault(_userMin, _suggestedMin),\n max: finiteOrDefault(_userMax, _suggestedMax),\n minDefined: isNumberFinite(_userMin),\n maxDefined: isNumberFinite(_userMax)\n };\n }\n getMinMax(canStack) {\n let {min, max, minDefined, maxDefined} = this.getUserBounds();\n let range;\n if (minDefined && maxDefined) {\n return {min, max};\n }\n const metas = this.getMatchingVisibleMetas();\n for (let i = 0, ilen = metas.length; i < ilen; ++i) {\n range = metas[i].controller.getMinMax(this, canStack);\n if (!minDefined) {\n min = Math.min(min, range.min);\n }\n if (!maxDefined) {\n max = Math.max(max, range.max);\n }\n }\n min = maxDefined && min > max ? max : min;\n max = minDefined && min > max ? min : max;\n return {\n min: finiteOrDefault(min, finiteOrDefault(max, min)),\n max: finiteOrDefault(max, finiteOrDefault(min, max))\n };\n }\n getPadding() {\n return {\n left: this.paddingLeft || 0,\n top: this.paddingTop || 0,\n right: this.paddingRight || 0,\n bottom: this.paddingBottom || 0\n };\n }\n getTicks() {\n return this.ticks;\n }\n getLabels() {\n const data = this.chart.data;\n return this.options.labels || (this.isHorizontal() ? data.xLabels : data.yLabels) || data.labels || [];\n }\n beforeLayout() {\n this._cache = {};\n this._dataLimitsCached = false;\n }\n beforeUpdate() {\n callback(this.options.beforeUpdate, [this]);\n }\n update(maxWidth, maxHeight, margins) {\n const {beginAtZero, grace, ticks: tickOpts} = this.options;\n const sampleSize = tickOpts.sampleSize;\n this.beforeUpdate();\n this.maxWidth = maxWidth;\n this.maxHeight = maxHeight;\n this._margins = margins = Object.assign({\n left: 0,\n right: 0,\n top: 0,\n bottom: 0\n }, margins);\n this.ticks = null;\n this._labelSizes = null;\n this._gridLineItems = null;\n this._labelItems = null;\n this.beforeSetDimensions();\n this.setDimensions();\n this.afterSetDimensions();\n this._maxLength = this.isHorizontal()\n ? this.width + margins.left + margins.right\n : this.height + margins.top + margins.bottom;\n if (!this._dataLimitsCached) {\n this.beforeDataLimits();\n this.determineDataLimits();\n this.afterDataLimits();\n this._range = _addGrace(this, grace, beginAtZero);\n this._dataLimitsCached = true;\n }\n this.beforeBuildTicks();\n this.ticks = this.buildTicks() || [];\n this.afterBuildTicks();\n const samplingEnabled = sampleSize < this.ticks.length;\n this._convertTicksToLabels(samplingEnabled ? sample(this.ticks, sampleSize) : this.ticks);\n this.configure();\n this.beforeCalculateLabelRotation();\n this.calculateLabelRotation();\n this.afterCalculateLabelRotation();\n if (tickOpts.display && (tickOpts.autoSkip || tickOpts.source === 'auto')) {\n this.ticks = autoSkip(this, this.ticks);\n this._labelSizes = null;\n }\n if (samplingEnabled) {\n this._convertTicksToLabels(this.ticks);\n }\n this.beforeFit();\n this.fit();\n this.afterFit();\n this.afterUpdate();\n }\n configure() {\n let reversePixels = this.options.reverse;\n let startPixel, endPixel;\n if (this.isHorizontal()) {\n startPixel = this.left;\n endPixel = this.right;\n } else {\n startPixel = this.top;\n endPixel = this.bottom;\n reversePixels = !reversePixels;\n }\n this._startPixel = startPixel;\n this._endPixel = endPixel;\n this._reversePixels = reversePixels;\n this._length = endPixel - startPixel;\n this._alignToPixels = this.options.alignToPixels;\n }\n afterUpdate() {\n callback(this.options.afterUpdate, [this]);\n }\n beforeSetDimensions() {\n callback(this.options.beforeSetDimensions, [this]);\n }\n setDimensions() {\n if (this.isHorizontal()) {\n this.width = this.maxWidth;\n this.left = 0;\n this.right = this.width;\n } else {\n this.height = this.maxHeight;\n this.top = 0;\n this.bottom = this.height;\n }\n this.paddingLeft = 0;\n this.paddingTop = 0;\n this.paddingRight = 0;\n this.paddingBottom = 0;\n }\n afterSetDimensions() {\n callback(this.options.afterSetDimensions, [this]);\n }\n _callHooks(name) {\n this.chart.notifyPlugins(name, this.getContext());\n callback(this.options[name], [this]);\n }\n beforeDataLimits() {\n this._callHooks('beforeDataLimits');\n }\n determineDataLimits() {}\n afterDataLimits() {\n this._callHooks('afterDataLimits');\n }\n beforeBuildTicks() {\n this._callHooks('beforeBuildTicks');\n }\n buildTicks() {\n return [];\n }\n afterBuildTicks() {\n this._callHooks('afterBuildTicks');\n }\n beforeTickToLabelConversion() {\n callback(this.options.beforeTickToLabelConversion, [this]);\n }\n generateTickLabels(ticks) {\n const tickOpts = this.options.ticks;\n let i, ilen, tick;\n for (i = 0, ilen = ticks.length; i < ilen; i++) {\n tick = ticks[i];\n tick.label = callback(tickOpts.callback, [tick.value, i, ticks], this);\n }\n }\n afterTickToLabelConversion() {\n callback(this.options.afterTickToLabelConversion, [this]);\n }\n beforeCalculateLabelRotation() {\n callback(this.options.beforeCalculateLabelRotation, [this]);\n }\n calculateLabelRotation() {\n const options = this.options;\n const tickOpts = options.ticks;\n const numTicks = this.ticks.length;\n const minRotation = tickOpts.minRotation || 0;\n const maxRotation = tickOpts.maxRotation;\n let labelRotation = minRotation;\n let tickWidth, maxHeight, maxLabelDiagonal;\n if (!this._isVisible() || !tickOpts.display || minRotation >= maxRotation || numTicks <= 1 || !this.isHorizontal()) {\n this.labelRotation = minRotation;\n return;\n }\n const labelSizes = this._getLabelSizes();\n const maxLabelWidth = labelSizes.widest.width;\n const maxLabelHeight = labelSizes.highest.height;\n const maxWidth = _limitValue(this.chart.width - maxLabelWidth, 0, this.maxWidth);\n tickWidth = options.offset ? this.maxWidth / numTicks : maxWidth / (numTicks - 1);\n if (maxLabelWidth + 6 > tickWidth) {\n tickWidth = maxWidth / (numTicks - (options.offset ? 0.5 : 1));\n maxHeight = this.maxHeight - getTickMarkLength(options.grid)\n\t\t\t\t- tickOpts.padding - getTitleHeight(options.title, this.chart.options.font);\n maxLabelDiagonal = Math.sqrt(maxLabelWidth * maxLabelWidth + maxLabelHeight * maxLabelHeight);\n labelRotation = toDegrees(Math.min(\n Math.asin(_limitValue((labelSizes.highest.height + 6) / tickWidth, -1, 1)),\n Math.asin(_limitValue(maxHeight / maxLabelDiagonal, -1, 1)) - Math.asin(_limitValue(maxLabelHeight / maxLabelDiagonal, -1, 1))\n ));\n labelRotation = Math.max(minRotation, Math.min(maxRotation, labelRotation));\n }\n this.labelRotation = labelRotation;\n }\n afterCalculateLabelRotation() {\n callback(this.options.afterCalculateLabelRotation, [this]);\n }\n beforeFit() {\n callback(this.options.beforeFit, [this]);\n }\n fit() {\n const minSize = {\n width: 0,\n height: 0\n };\n const {chart, options: {ticks: tickOpts, title: titleOpts, grid: gridOpts}} = this;\n const display = this._isVisible();\n const isHorizontal = this.isHorizontal();\n if (display) {\n const titleHeight = getTitleHeight(titleOpts, chart.options.font);\n if (isHorizontal) {\n minSize.width = this.maxWidth;\n minSize.height = getTickMarkLength(gridOpts) + titleHeight;\n } else {\n minSize.height = this.maxHeight;\n minSize.width = getTickMarkLength(gridOpts) + titleHeight;\n }\n if (tickOpts.display && this.ticks.length) {\n const {first, last, widest, highest} = this._getLabelSizes();\n const tickPadding = tickOpts.padding * 2;\n const angleRadians = toRadians(this.labelRotation);\n const cos = Math.cos(angleRadians);\n const sin = Math.sin(angleRadians);\n if (isHorizontal) {\n const labelHeight = tickOpts.mirror ? 0 : sin * widest.width + cos * highest.height;\n minSize.height = Math.min(this.maxHeight, minSize.height + labelHeight + tickPadding);\n } else {\n const labelWidth = tickOpts.mirror ? 0 : cos * widest.width + sin * highest.height;\n minSize.width = Math.min(this.maxWidth, minSize.width + labelWidth + tickPadding);\n }\n this._calculatePadding(first, last, sin, cos);\n }\n }\n this._handleMargins();\n if (isHorizontal) {\n this.width = this._length = chart.width - this._margins.left - this._margins.right;\n this.height = minSize.height;\n } else {\n this.width = minSize.width;\n this.height = this._length = chart.height - this._margins.top - this._margins.bottom;\n }\n }\n _calculatePadding(first, last, sin, cos) {\n const {ticks: {align, padding}, position} = this.options;\n const isRotated = this.labelRotation !== 0;\n const labelsBelowTicks = position !== 'top' && this.axis === 'x';\n if (this.isHorizontal()) {\n const offsetLeft = this.getPixelForTick(0) - this.left;\n const offsetRight = this.right - this.getPixelForTick(this.ticks.length - 1);\n let paddingLeft = 0;\n let paddingRight = 0;\n if (isRotated) {\n if (labelsBelowTicks) {\n paddingLeft = cos * first.width;\n paddingRight = sin * last.height;\n } else {\n paddingLeft = sin * first.height;\n paddingRight = cos * last.width;\n }\n } else if (align === 'start') {\n paddingRight = last.width;\n } else if (align === 'end') {\n paddingLeft = first.width;\n } else {\n paddingLeft = first.width / 2;\n paddingRight = last.width / 2;\n }\n this.paddingLeft = Math.max((paddingLeft - offsetLeft + padding) * this.width / (this.width - offsetLeft), 0);\n this.paddingRight = Math.max((paddingRight - offsetRight + padding) * this.width / (this.width - offsetRight), 0);\n } else {\n let paddingTop = last.height / 2;\n let paddingBottom = first.height / 2;\n if (align === 'start') {\n paddingTop = 0;\n paddingBottom = first.height;\n } else if (align === 'end') {\n paddingTop = last.height;\n paddingBottom = 0;\n }\n this.paddingTop = paddingTop + padding;\n this.paddingBottom = paddingBottom + padding;\n }\n }\n _handleMargins() {\n if (this._margins) {\n this._margins.left = Math.max(this.paddingLeft, this._margins.left);\n this._margins.top = Math.max(this.paddingTop, this._margins.top);\n this._margins.right = Math.max(this.paddingRight, this._margins.right);\n this._margins.bottom = Math.max(this.paddingBottom, this._margins.bottom);\n }\n }\n afterFit() {\n callback(this.options.afterFit, [this]);\n }\n isHorizontal() {\n const {axis, position} = this.options;\n return position === 'top' || position === 'bottom' || axis === 'x';\n }\n isFullSize() {\n return this.options.fullSize;\n }\n _convertTicksToLabels(ticks) {\n this.beforeTickToLabelConversion();\n this.generateTickLabels(ticks);\n let i, ilen;\n for (i = 0, ilen = ticks.length; i < ilen; i++) {\n if (isNullOrUndef(ticks[i].label)) {\n ticks.splice(i, 1);\n ilen--;\n i--;\n }\n }\n this.afterTickToLabelConversion();\n }\n _getLabelSizes() {\n let labelSizes = this._labelSizes;\n if (!labelSizes) {\n const sampleSize = this.options.ticks.sampleSize;\n let ticks = this.ticks;\n if (sampleSize < ticks.length) {\n ticks = sample(ticks, sampleSize);\n }\n this._labelSizes = labelSizes = this._computeLabelSizes(ticks, ticks.length);\n }\n return labelSizes;\n }\n _computeLabelSizes(ticks, length) {\n const {ctx, _longestTextCache: caches} = this;\n const widths = [];\n const heights = [];\n let widestLabelSize = 0;\n let highestLabelSize = 0;\n let i, j, jlen, label, tickFont, fontString, cache, lineHeight, width, height, nestedLabel;\n for (i = 0; i < length; ++i) {\n label = ticks[i].label;\n tickFont = this._resolveTickFontOptions(i);\n ctx.font = fontString = tickFont.string;\n cache = caches[fontString] = caches[fontString] || {data: {}, gc: []};\n lineHeight = tickFont.lineHeight;\n width = height = 0;\n if (!isNullOrUndef(label) && !isArray(label)) {\n width = _measureText(ctx, cache.data, cache.gc, width, label);\n height = lineHeight;\n } else if (isArray(label)) {\n for (j = 0, jlen = label.length; j < jlen; ++j) {\n nestedLabel = label[j];\n if (!isNullOrUndef(nestedLabel) && !isArray(nestedLabel)) {\n width = _measureText(ctx, cache.data, cache.gc, width, nestedLabel);\n height += lineHeight;\n }\n }\n }\n widths.push(width);\n heights.push(height);\n widestLabelSize = Math.max(width, widestLabelSize);\n highestLabelSize = Math.max(height, highestLabelSize);\n }\n garbageCollect(caches, length);\n const widest = widths.indexOf(widestLabelSize);\n const highest = heights.indexOf(highestLabelSize);\n const valueAt = (idx) => ({width: widths[idx] || 0, height: heights[idx] || 0});\n return {\n first: valueAt(0),\n last: valueAt(length - 1),\n widest: valueAt(widest),\n highest: valueAt(highest),\n widths,\n heights,\n };\n }\n getLabelForValue(value) {\n return value;\n }\n getPixelForValue(value, index) {\n return NaN;\n }\n getValueForPixel(pixel) {}\n getPixelForTick(index) {\n const ticks = this.ticks;\n if (index < 0 || index > ticks.length - 1) {\n return null;\n }\n return this.getPixelForValue(ticks[index].value);\n }\n getPixelForDecimal(decimal) {\n if (this._reversePixels) {\n decimal = 1 - decimal;\n }\n const pixel = this._startPixel + decimal * this._length;\n return _int16Range(this._alignToPixels ? _alignPixel(this.chart, pixel, 0) : pixel);\n }\n getDecimalForPixel(pixel) {\n const decimal = (pixel - this._startPixel) / this._length;\n return this._reversePixels ? 1 - decimal : decimal;\n }\n getBasePixel() {\n return this.getPixelForValue(this.getBaseValue());\n }\n getBaseValue() {\n const {min, max} = this;\n return min < 0 && max < 0 ? max :\n min > 0 && max > 0 ? min :\n 0;\n }\n getContext(index) {\n const ticks = this.ticks || [];\n if (index >= 0 && index < ticks.length) {\n const tick = ticks[index];\n return tick.$context ||\n\t\t\t\t(tick.$context = createTickContext(this.getContext(), index, tick));\n }\n return this.$context ||\n\t\t\t(this.$context = createScaleContext(this.chart.getContext(), this));\n }\n _tickSize() {\n const optionTicks = this.options.ticks;\n const rot = toRadians(this.labelRotation);\n const cos = Math.abs(Math.cos(rot));\n const sin = Math.abs(Math.sin(rot));\n const labelSizes = this._getLabelSizes();\n const padding = optionTicks.autoSkipPadding || 0;\n const w = labelSizes ? labelSizes.widest.width + padding : 0;\n const h = labelSizes ? labelSizes.highest.height + padding : 0;\n return this.isHorizontal()\n ? h * cos > w * sin ? w / cos : h / sin\n : h * sin < w * cos ? h / cos : w / sin;\n }\n _isVisible() {\n const display = this.options.display;\n if (display !== 'auto') {\n return !!display;\n }\n return this.getMatchingVisibleMetas().length > 0;\n }\n _computeGridLineItems(chartArea) {\n const axis = this.axis;\n const chart = this.chart;\n const options = this.options;\n const {grid, position} = options;\n const offset = grid.offset;\n const isHorizontal = this.isHorizontal();\n const ticks = this.ticks;\n const ticksLength = ticks.length + (offset ? 1 : 0);\n const tl = getTickMarkLength(grid);\n const items = [];\n const borderOpts = grid.setContext(this.getContext());\n const axisWidth = borderOpts.drawBorder ? borderOpts.borderWidth : 0;\n const axisHalfWidth = axisWidth / 2;\n const alignBorderValue = function(pixel) {\n return _alignPixel(chart, pixel, axisWidth);\n };\n let borderValue, i, lineValue, alignedLineValue;\n let tx1, ty1, tx2, ty2, x1, y1, x2, y2;\n if (position === 'top') {\n borderValue = alignBorderValue(this.bottom);\n ty1 = this.bottom - tl;\n ty2 = borderValue - axisHalfWidth;\n y1 = alignBorderValue(chartArea.top) + axisHalfWidth;\n y2 = chartArea.bottom;\n } else if (position === 'bottom') {\n borderValue = alignBorderValue(this.top);\n y1 = chartArea.top;\n y2 = alignBorderValue(chartArea.bottom) - axisHalfWidth;\n ty1 = borderValue + axisHalfWidth;\n ty2 = this.top + tl;\n } else if (position === 'left') {\n borderValue = alignBorderValue(this.right);\n tx1 = this.right - tl;\n tx2 = borderValue - axisHalfWidth;\n x1 = alignBorderValue(chartArea.left) + axisHalfWidth;\n x2 = chartArea.right;\n } else if (position === 'right') {\n borderValue = alignBorderValue(this.left);\n x1 = chartArea.left;\n x2 = alignBorderValue(chartArea.right) - axisHalfWidth;\n tx1 = borderValue + axisHalfWidth;\n tx2 = this.left + tl;\n } else if (axis === 'x') {\n if (position === 'center') {\n borderValue = alignBorderValue((chartArea.top + chartArea.bottom) / 2 + 0.5);\n } else if (isObject(position)) {\n const positionAxisID = Object.keys(position)[0];\n const value = position[positionAxisID];\n borderValue = alignBorderValue(this.chart.scales[positionAxisID].getPixelForValue(value));\n }\n y1 = chartArea.top;\n y2 = chartArea.bottom;\n ty1 = borderValue + axisHalfWidth;\n ty2 = ty1 + tl;\n } else if (axis === 'y') {\n if (position === 'center') {\n borderValue = alignBorderValue((chartArea.left + chartArea.right) / 2);\n } else if (isObject(position)) {\n const positionAxisID = Object.keys(position)[0];\n const value = position[positionAxisID];\n borderValue = alignBorderValue(this.chart.scales[positionAxisID].getPixelForValue(value));\n }\n tx1 = borderValue - axisHalfWidth;\n tx2 = tx1 - tl;\n x1 = chartArea.left;\n x2 = chartArea.right;\n }\n const limit = valueOrDefault(options.ticks.maxTicksLimit, ticksLength);\n const step = Math.max(1, Math.ceil(ticksLength / limit));\n for (i = 0; i < ticksLength; i += step) {\n const optsAtIndex = grid.setContext(this.getContext(i));\n const lineWidth = optsAtIndex.lineWidth;\n const lineColor = optsAtIndex.color;\n const borderDash = grid.borderDash || [];\n const borderDashOffset = optsAtIndex.borderDashOffset;\n const tickWidth = optsAtIndex.tickWidth;\n const tickColor = optsAtIndex.tickColor;\n const tickBorderDash = optsAtIndex.tickBorderDash || [];\n const tickBorderDashOffset = optsAtIndex.tickBorderDashOffset;\n lineValue = getPixelForGridLine(this, i, offset);\n if (lineValue === undefined) {\n continue;\n }\n alignedLineValue = _alignPixel(chart, lineValue, lineWidth);\n if (isHorizontal) {\n tx1 = tx2 = x1 = x2 = alignedLineValue;\n } else {\n ty1 = ty2 = y1 = y2 = alignedLineValue;\n }\n items.push({\n tx1,\n ty1,\n tx2,\n ty2,\n x1,\n y1,\n x2,\n y2,\n width: lineWidth,\n color: lineColor,\n borderDash,\n borderDashOffset,\n tickWidth,\n tickColor,\n tickBorderDash,\n tickBorderDashOffset,\n });\n }\n this._ticksLength = ticksLength;\n this._borderValue = borderValue;\n return items;\n }\n _computeLabelItems(chartArea) {\n const axis = this.axis;\n const options = this.options;\n const {position, ticks: optionTicks} = options;\n const isHorizontal = this.isHorizontal();\n const ticks = this.ticks;\n const {align, crossAlign, padding, mirror} = optionTicks;\n const tl = getTickMarkLength(options.grid);\n const tickAndPadding = tl + padding;\n const hTickAndPadding = mirror ? -padding : tickAndPadding;\n const rotation = -toRadians(this.labelRotation);\n const items = [];\n let i, ilen, tick, label, x, y, textAlign, pixel, font, lineHeight, lineCount, textOffset;\n let textBaseline = 'middle';\n if (position === 'top') {\n y = this.bottom - hTickAndPadding;\n textAlign = this._getXAxisLabelAlignment();\n } else if (position === 'bottom') {\n y = this.top + hTickAndPadding;\n textAlign = this._getXAxisLabelAlignment();\n } else if (position === 'left') {\n const ret = this._getYAxisLabelAlignment(tl);\n textAlign = ret.textAlign;\n x = ret.x;\n } else if (position === 'right') {\n const ret = this._getYAxisLabelAlignment(tl);\n textAlign = ret.textAlign;\n x = ret.x;\n } else if (axis === 'x') {\n if (position === 'center') {\n y = ((chartArea.top + chartArea.bottom) / 2) + tickAndPadding;\n } else if (isObject(position)) {\n const positionAxisID = Object.keys(position)[0];\n const value = position[positionAxisID];\n y = this.chart.scales[positionAxisID].getPixelForValue(value) + tickAndPadding;\n }\n textAlign = this._getXAxisLabelAlignment();\n } else if (axis === 'y') {\n if (position === 'center') {\n x = ((chartArea.left + chartArea.right) / 2) - tickAndPadding;\n } else if (isObject(position)) {\n const positionAxisID = Object.keys(position)[0];\n const value = position[positionAxisID];\n x = this.chart.scales[positionAxisID].getPixelForValue(value);\n }\n textAlign = this._getYAxisLabelAlignment(tl).textAlign;\n }\n if (axis === 'y') {\n if (align === 'start') {\n textBaseline = 'top';\n } else if (align === 'end') {\n textBaseline = 'bottom';\n }\n }\n const labelSizes = this._getLabelSizes();\n for (i = 0, ilen = ticks.length; i < ilen; ++i) {\n tick = ticks[i];\n label = tick.label;\n const optsAtIndex = optionTicks.setContext(this.getContext(i));\n pixel = this.getPixelForTick(i) + optionTicks.labelOffset;\n font = this._resolveTickFontOptions(i);\n lineHeight = font.lineHeight;\n lineCount = isArray(label) ? label.length : 1;\n const halfCount = lineCount / 2;\n const color = optsAtIndex.color;\n const strokeColor = optsAtIndex.textStrokeColor;\n const strokeWidth = optsAtIndex.textStrokeWidth;\n if (isHorizontal) {\n x = pixel;\n if (position === 'top') {\n if (crossAlign === 'near' || rotation !== 0) {\n textOffset = -lineCount * lineHeight + lineHeight / 2;\n } else if (crossAlign === 'center') {\n textOffset = -labelSizes.highest.height / 2 - halfCount * lineHeight + lineHeight;\n } else {\n textOffset = -labelSizes.highest.height + lineHeight / 2;\n }\n } else {\n if (crossAlign === 'near' || rotation !== 0) {\n textOffset = lineHeight / 2;\n } else if (crossAlign === 'center') {\n textOffset = labelSizes.highest.height / 2 - halfCount * lineHeight;\n } else {\n textOffset = labelSizes.highest.height - lineCount * lineHeight;\n }\n }\n if (mirror) {\n textOffset *= -1;\n }\n } else {\n y = pixel;\n textOffset = (1 - lineCount) * lineHeight / 2;\n }\n let backdrop;\n if (optsAtIndex.showLabelBackdrop) {\n const labelPadding = toPadding(optsAtIndex.backdropPadding);\n const height = labelSizes.heights[i];\n const width = labelSizes.widths[i];\n let top = y + textOffset - labelPadding.top;\n let left = x - labelPadding.left;\n switch (textBaseline) {\n case 'middle':\n top -= height / 2;\n break;\n case 'bottom':\n top -= height;\n break;\n }\n switch (textAlign) {\n case 'center':\n left -= width / 2;\n break;\n case 'right':\n left -= width;\n break;\n }\n backdrop = {\n left,\n top,\n width: width + labelPadding.width,\n height: height + labelPadding.height,\n color: optsAtIndex.backdropColor,\n };\n }\n items.push({\n rotation,\n label,\n font,\n color,\n strokeColor,\n strokeWidth,\n textOffset,\n textAlign,\n textBaseline,\n translation: [x, y],\n backdrop,\n });\n }\n return items;\n }\n _getXAxisLabelAlignment() {\n const {position, ticks} = this.options;\n const rotation = -toRadians(this.labelRotation);\n if (rotation) {\n return position === 'top' ? 'left' : 'right';\n }\n let align = 'center';\n if (ticks.align === 'start') {\n align = 'left';\n } else if (ticks.align === 'end') {\n align = 'right';\n }\n return align;\n }\n _getYAxisLabelAlignment(tl) {\n const {position, ticks: {crossAlign, mirror, padding}} = this.options;\n const labelSizes = this._getLabelSizes();\n const tickAndPadding = tl + padding;\n const widest = labelSizes.widest.width;\n let textAlign;\n let x;\n if (position === 'left') {\n if (mirror) {\n x = this.right + padding;\n if (crossAlign === 'near') {\n textAlign = 'left';\n } else if (crossAlign === 'center') {\n textAlign = 'center';\n x += (widest / 2);\n } else {\n textAlign = 'right';\n x += widest;\n }\n } else {\n x = this.right - tickAndPadding;\n if (crossAlign === 'near') {\n textAlign = 'right';\n } else if (crossAlign === 'center') {\n textAlign = 'center';\n x -= (widest / 2);\n } else {\n textAlign = 'left';\n x = this.left;\n }\n }\n } else if (position === 'right') {\n if (mirror) {\n x = this.left + padding;\n if (crossAlign === 'near') {\n textAlign = 'right';\n } else if (crossAlign === 'center') {\n textAlign = 'center';\n x -= (widest / 2);\n } else {\n textAlign = 'left';\n x -= widest;\n }\n } else {\n x = this.left + tickAndPadding;\n if (crossAlign === 'near') {\n textAlign = 'left';\n } else if (crossAlign === 'center') {\n textAlign = 'center';\n x += widest / 2;\n } else {\n textAlign = 'right';\n x = this.right;\n }\n }\n } else {\n textAlign = 'right';\n }\n return {textAlign, x};\n }\n _computeLabelArea() {\n if (this.options.ticks.mirror) {\n return;\n }\n const chart = this.chart;\n const position = this.options.position;\n if (position === 'left' || position === 'right') {\n return {top: 0, left: this.left, bottom: chart.height, right: this.right};\n } if (position === 'top' || position === 'bottom') {\n return {top: this.top, left: 0, bottom: this.bottom, right: chart.width};\n }\n }\n drawBackground() {\n const {ctx, options: {backgroundColor}, left, top, width, height} = this;\n if (backgroundColor) {\n ctx.save();\n ctx.fillStyle = backgroundColor;\n ctx.fillRect(left, top, width, height);\n ctx.restore();\n }\n }\n getLineWidthForValue(value) {\n const grid = this.options.grid;\n if (!this._isVisible() || !grid.display) {\n return 0;\n }\n const ticks = this.ticks;\n const index = ticks.findIndex(t => t.value === value);\n if (index >= 0) {\n const opts = grid.setContext(this.getContext(index));\n return opts.lineWidth;\n }\n return 0;\n }\n drawGrid(chartArea) {\n const grid = this.options.grid;\n const ctx = this.ctx;\n const items = this._gridLineItems || (this._gridLineItems = this._computeGridLineItems(chartArea));\n let i, ilen;\n const drawLine = (p1, p2, style) => {\n if (!style.width || !style.color) {\n return;\n }\n ctx.save();\n ctx.lineWidth = style.width;\n ctx.strokeStyle = style.color;\n ctx.setLineDash(style.borderDash || []);\n ctx.lineDashOffset = style.borderDashOffset;\n ctx.beginPath();\n ctx.moveTo(p1.x, p1.y);\n ctx.lineTo(p2.x, p2.y);\n ctx.stroke();\n ctx.restore();\n };\n if (grid.display) {\n for (i = 0, ilen = items.length; i < ilen; ++i) {\n const item = items[i];\n if (grid.drawOnChartArea) {\n drawLine(\n {x: item.x1, y: item.y1},\n {x: item.x2, y: item.y2},\n item\n );\n }\n if (grid.drawTicks) {\n drawLine(\n {x: item.tx1, y: item.ty1},\n {x: item.tx2, y: item.ty2},\n {\n color: item.tickColor,\n width: item.tickWidth,\n borderDash: item.tickBorderDash,\n borderDashOffset: item.tickBorderDashOffset\n }\n );\n }\n }\n }\n }\n drawBorder() {\n const {chart, ctx, options: {grid}} = this;\n const borderOpts = grid.setContext(this.getContext());\n const axisWidth = grid.drawBorder ? borderOpts.borderWidth : 0;\n if (!axisWidth) {\n return;\n }\n const lastLineWidth = grid.setContext(this.getContext(0)).lineWidth;\n const borderValue = this._borderValue;\n let x1, x2, y1, y2;\n if (this.isHorizontal()) {\n x1 = _alignPixel(chart, this.left, axisWidth) - axisWidth / 2;\n x2 = _alignPixel(chart, this.right, lastLineWidth) + lastLineWidth / 2;\n y1 = y2 = borderValue;\n } else {\n y1 = _alignPixel(chart, this.top, axisWidth) - axisWidth / 2;\n y2 = _alignPixel(chart, this.bottom, lastLineWidth) + lastLineWidth / 2;\n x1 = x2 = borderValue;\n }\n ctx.save();\n ctx.lineWidth = borderOpts.borderWidth;\n ctx.strokeStyle = borderOpts.borderColor;\n ctx.beginPath();\n ctx.moveTo(x1, y1);\n ctx.lineTo(x2, y2);\n ctx.stroke();\n ctx.restore();\n }\n drawLabels(chartArea) {\n const optionTicks = this.options.ticks;\n if (!optionTicks.display) {\n return;\n }\n const ctx = this.ctx;\n const area = this._computeLabelArea();\n if (area) {\n clipArea(ctx, area);\n }\n const items = this._labelItems || (this._labelItems = this._computeLabelItems(chartArea));\n let i, ilen;\n for (i = 0, ilen = items.length; i < ilen; ++i) {\n const item = items[i];\n const tickFont = item.font;\n const label = item.label;\n if (item.backdrop) {\n ctx.fillStyle = item.backdrop.color;\n ctx.fillRect(item.backdrop.left, item.backdrop.top, item.backdrop.width, item.backdrop.height);\n }\n let y = item.textOffset;\n renderText(ctx, label, 0, y, tickFont, item);\n }\n if (area) {\n unclipArea(ctx);\n }\n }\n drawTitle() {\n const {ctx, options: {position, title, reverse}} = this;\n if (!title.display) {\n return;\n }\n const font = toFont(title.font);\n const padding = toPadding(title.padding);\n const align = title.align;\n let offset = font.lineHeight / 2;\n if (position === 'bottom' || position === 'center' || isObject(position)) {\n offset += padding.bottom;\n if (isArray(title.text)) {\n offset += font.lineHeight * (title.text.length - 1);\n }\n } else {\n offset += padding.top;\n }\n const {titleX, titleY, maxWidth, rotation} = titleArgs(this, offset, position, align);\n renderText(ctx, title.text, 0, 0, font, {\n color: title.color,\n maxWidth,\n rotation,\n textAlign: titleAlign(align, position, reverse),\n textBaseline: 'middle',\n translation: [titleX, titleY],\n });\n }\n draw(chartArea) {\n if (!this._isVisible()) {\n return;\n }\n this.drawBackground();\n this.drawGrid(chartArea);\n this.drawBorder();\n this.drawTitle();\n this.drawLabels(chartArea);\n }\n _layers() {\n const opts = this.options;\n const tz = opts.ticks && opts.ticks.z || 0;\n const gz = valueOrDefault(opts.grid && opts.grid.z, -1);\n if (!this._isVisible() || this.draw !== Scale.prototype.draw) {\n return [{\n z: tz,\n draw: (chartArea) => {\n this.draw(chartArea);\n }\n }];\n }\n return [{\n z: gz,\n draw: (chartArea) => {\n this.drawBackground();\n this.drawGrid(chartArea);\n this.drawTitle();\n }\n }, {\n z: gz + 1,\n draw: () => {\n this.drawBorder();\n }\n }, {\n z: tz,\n draw: (chartArea) => {\n this.drawLabels(chartArea);\n }\n }];\n }\n getMatchingVisibleMetas(type) {\n const metas = this.chart.getSortedVisibleDatasetMetas();\n const axisID = this.axis + 'AxisID';\n const result = [];\n let i, ilen;\n for (i = 0, ilen = metas.length; i < ilen; ++i) {\n const meta = metas[i];\n if (meta[axisID] === this.id && (!type || meta.type === type)) {\n result.push(meta);\n }\n }\n return result;\n }\n _resolveTickFontOptions(index) {\n const opts = this.options.ticks.setContext(this.getContext(index));\n return toFont(opts.font);\n }\n _maxDigits() {\n const fontSize = this._resolveTickFontOptions(0).lineHeight;\n return (this.isHorizontal() ? this.width : this.height) / fontSize;\n }\n}\n\nclass TypedRegistry {\n constructor(type, scope, override) {\n this.type = type;\n this.scope = scope;\n this.override = override;\n this.items = Object.create(null);\n }\n isForType(type) {\n return Object.prototype.isPrototypeOf.call(this.type.prototype, type.prototype);\n }\n register(item) {\n const proto = Object.getPrototypeOf(item);\n let parentScope;\n if (isIChartComponent(proto)) {\n parentScope = this.register(proto);\n }\n const items = this.items;\n const id = item.id;\n const scope = this.scope + '.' + id;\n if (!id) {\n throw new Error('class does not have id: ' + item);\n }\n if (id in items) {\n return scope;\n }\n items[id] = item;\n registerDefaults(item, scope, parentScope);\n if (this.override) {\n defaults.override(item.id, item.overrides);\n }\n return scope;\n }\n get(id) {\n return this.items[id];\n }\n unregister(item) {\n const items = this.items;\n const id = item.id;\n const scope = this.scope;\n if (id in items) {\n delete items[id];\n }\n if (scope && id in defaults[scope]) {\n delete defaults[scope][id];\n if (this.override) {\n delete overrides[id];\n }\n }\n }\n}\nfunction registerDefaults(item, scope, parentScope) {\n const itemDefaults = merge(Object.create(null), [\n parentScope ? defaults.get(parentScope) : {},\n defaults.get(scope),\n item.defaults\n ]);\n defaults.set(scope, itemDefaults);\n if (item.defaultRoutes) {\n routeDefaults(scope, item.defaultRoutes);\n }\n if (item.descriptors) {\n defaults.describe(scope, item.descriptors);\n }\n}\nfunction routeDefaults(scope, routes) {\n Object.keys(routes).forEach(property => {\n const propertyParts = property.split('.');\n const sourceName = propertyParts.pop();\n const sourceScope = [scope].concat(propertyParts).join('.');\n const parts = routes[property].split('.');\n const targetName = parts.pop();\n const targetScope = parts.join('.');\n defaults.route(sourceScope, sourceName, targetScope, targetName);\n });\n}\nfunction isIChartComponent(proto) {\n return 'id' in proto && 'defaults' in proto;\n}\n\nclass Registry {\n constructor() {\n this.controllers = new TypedRegistry(DatasetController, 'datasets', true);\n this.elements = new TypedRegistry(Element, 'elements');\n this.plugins = new TypedRegistry(Object, 'plugins');\n this.scales = new TypedRegistry(Scale, 'scales');\n this._typedRegistries = [this.controllers, this.scales, this.elements];\n }\n add(...args) {\n this._each('register', args);\n }\n remove(...args) {\n this._each('unregister', args);\n }\n addControllers(...args) {\n this._each('register', args, this.controllers);\n }\n addElements(...args) {\n this._each('register', args, this.elements);\n }\n addPlugins(...args) {\n this._each('register', args, this.plugins);\n }\n addScales(...args) {\n this._each('register', args, this.scales);\n }\n getController(id) {\n return this._get(id, this.controllers, 'controller');\n }\n getElement(id) {\n return this._get(id, this.elements, 'element');\n }\n getPlugin(id) {\n return this._get(id, this.plugins, 'plugin');\n }\n getScale(id) {\n return this._get(id, this.scales, 'scale');\n }\n removeControllers(...args) {\n this._each('unregister', args, this.controllers);\n }\n removeElements(...args) {\n this._each('unregister', args, this.elements);\n }\n removePlugins(...args) {\n this._each('unregister', args, this.plugins);\n }\n removeScales(...args) {\n this._each('unregister', args, this.scales);\n }\n _each(method, args, typedRegistry) {\n [...args].forEach(arg => {\n const reg = typedRegistry || this._getRegistryForType(arg);\n if (typedRegistry || reg.isForType(arg) || (reg === this.plugins && arg.id)) {\n this._exec(method, reg, arg);\n } else {\n each(arg, item => {\n const itemReg = typedRegistry || this._getRegistryForType(item);\n this._exec(method, itemReg, item);\n });\n }\n });\n }\n _exec(method, registry, component) {\n const camelMethod = _capitalize(method);\n callback(component['before' + camelMethod], [], component);\n registry[method](component);\n callback(component['after' + camelMethod], [], component);\n }\n _getRegistryForType(type) {\n for (let i = 0; i < this._typedRegistries.length; i++) {\n const reg = this._typedRegistries[i];\n if (reg.isForType(type)) {\n return reg;\n }\n }\n return this.plugins;\n }\n _get(id, typedRegistry, type) {\n const item = typedRegistry.get(id);\n if (item === undefined) {\n throw new Error('\"' + id + '\" is not a registered ' + type + '.');\n }\n return item;\n }\n}\nvar registry = new Registry();\n\nclass PluginService {\n constructor() {\n this._init = [];\n }\n notify(chart, hook, args, filter) {\n if (hook === 'beforeInit') {\n this._init = this._createDescriptors(chart, true);\n this._notify(this._init, chart, 'install');\n }\n const descriptors = filter ? this._descriptors(chart).filter(filter) : this._descriptors(chart);\n const result = this._notify(descriptors, chart, hook, args);\n if (hook === 'destroy') {\n this._notify(descriptors, chart, 'stop');\n this._notify(this._init, chart, 'uninstall');\n }\n return result;\n }\n _notify(descriptors, chart, hook, args) {\n args = args || {};\n for (const descriptor of descriptors) {\n const plugin = descriptor.plugin;\n const method = plugin[hook];\n const params = [chart, args, descriptor.options];\n if (callback(method, params, plugin) === false && args.cancelable) {\n return false;\n }\n }\n return true;\n }\n invalidate() {\n if (!isNullOrUndef(this._cache)) {\n this._oldCache = this._cache;\n this._cache = undefined;\n }\n }\n _descriptors(chart) {\n if (this._cache) {\n return this._cache;\n }\n const descriptors = this._cache = this._createDescriptors(chart);\n this._notifyStateChanges(chart);\n return descriptors;\n }\n _createDescriptors(chart, all) {\n const config = chart && chart.config;\n const options = valueOrDefault(config.options && config.options.plugins, {});\n const plugins = allPlugins(config);\n return options === false && !all ? [] : createDescriptors(chart, plugins, options, all);\n }\n _notifyStateChanges(chart) {\n const previousDescriptors = this._oldCache || [];\n const descriptors = this._cache;\n const diff = (a, b) => a.filter(x => !b.some(y => x.plugin.id === y.plugin.id));\n this._notify(diff(previousDescriptors, descriptors), chart, 'stop');\n this._notify(diff(descriptors, previousDescriptors), chart, 'start');\n }\n}\nfunction allPlugins(config) {\n const plugins = [];\n const keys = Object.keys(registry.plugins.items);\n for (let i = 0; i < keys.length; i++) {\n plugins.push(registry.getPlugin(keys[i]));\n }\n const local = config.plugins || [];\n for (let i = 0; i < local.length; i++) {\n const plugin = local[i];\n if (plugins.indexOf(plugin) === -1) {\n plugins.push(plugin);\n }\n }\n return plugins;\n}\nfunction getOpts(options, all) {\n if (!all && options === false) {\n return null;\n }\n if (options === true) {\n return {};\n }\n return options;\n}\nfunction createDescriptors(chart, plugins, options, all) {\n const result = [];\n const context = chart.getContext();\n for (let i = 0; i < plugins.length; i++) {\n const plugin = plugins[i];\n const id = plugin.id;\n const opts = getOpts(options[id], all);\n if (opts === null) {\n continue;\n }\n result.push({\n plugin,\n options: pluginOpts(chart.config, plugin, opts, context)\n });\n }\n return result;\n}\nfunction pluginOpts(config, plugin, opts, context) {\n const keys = config.pluginScopeKeys(plugin);\n const scopes = config.getOptionScopes(opts, keys);\n return config.createResolver(scopes, context, [''], {scriptable: false, indexable: false, allKeys: true});\n}\n\nfunction getIndexAxis(type, options) {\n const datasetDefaults = defaults.datasets[type] || {};\n const datasetOptions = (options.datasets || {})[type] || {};\n return datasetOptions.indexAxis || options.indexAxis || datasetDefaults.indexAxis || 'x';\n}\nfunction getAxisFromDefaultScaleID(id, indexAxis) {\n let axis = id;\n if (id === '_index_') {\n axis = indexAxis;\n } else if (id === '_value_') {\n axis = indexAxis === 'x' ? 'y' : 'x';\n }\n return axis;\n}\nfunction getDefaultScaleIDFromAxis(axis, indexAxis) {\n return axis === indexAxis ? '_index_' : '_value_';\n}\nfunction axisFromPosition(position) {\n if (position === 'top' || position === 'bottom') {\n return 'x';\n }\n if (position === 'left' || position === 'right') {\n return 'y';\n }\n}\nfunction determineAxis(id, scaleOptions) {\n if (id === 'x' || id === 'y') {\n return id;\n }\n return scaleOptions.axis || axisFromPosition(scaleOptions.position) || id.charAt(0).toLowerCase();\n}\nfunction mergeScaleConfig(config, options) {\n const chartDefaults = overrides[config.type] || {scales: {}};\n const configScales = options.scales || {};\n const chartIndexAxis = getIndexAxis(config.type, options);\n const firstIDs = Object.create(null);\n const scales = Object.create(null);\n Object.keys(configScales).forEach(id => {\n const scaleConf = configScales[id];\n if (!isObject(scaleConf)) {\n return console.error(`Invalid scale configuration for scale: ${id}`);\n }\n if (scaleConf._proxy) {\n return console.warn(`Ignoring resolver passed as options for scale: ${id}`);\n }\n const axis = determineAxis(id, scaleConf);\n const defaultId = getDefaultScaleIDFromAxis(axis, chartIndexAxis);\n const defaultScaleOptions = chartDefaults.scales || {};\n firstIDs[axis] = firstIDs[axis] || id;\n scales[id] = mergeIf(Object.create(null), [{axis}, scaleConf, defaultScaleOptions[axis], defaultScaleOptions[defaultId]]);\n });\n config.data.datasets.forEach(dataset => {\n const type = dataset.type || config.type;\n const indexAxis = dataset.indexAxis || getIndexAxis(type, options);\n const datasetDefaults = overrides[type] || {};\n const defaultScaleOptions = datasetDefaults.scales || {};\n Object.keys(defaultScaleOptions).forEach(defaultID => {\n const axis = getAxisFromDefaultScaleID(defaultID, indexAxis);\n const id = dataset[axis + 'AxisID'] || firstIDs[axis] || axis;\n scales[id] = scales[id] || Object.create(null);\n mergeIf(scales[id], [{axis}, configScales[id], defaultScaleOptions[defaultID]]);\n });\n });\n Object.keys(scales).forEach(key => {\n const scale = scales[key];\n mergeIf(scale, [defaults.scales[scale.type], defaults.scale]);\n });\n return scales;\n}\nfunction initOptions(config) {\n const options = config.options || (config.options = {});\n options.plugins = valueOrDefault(options.plugins, {});\n options.scales = mergeScaleConfig(config, options);\n}\nfunction initData(data) {\n data = data || {};\n data.datasets = data.datasets || [];\n data.labels = data.labels || [];\n return data;\n}\nfunction initConfig(config) {\n config = config || {};\n config.data = initData(config.data);\n initOptions(config);\n return config;\n}\nconst keyCache = new Map();\nconst keysCached = new Set();\nfunction cachedKeys(cacheKey, generate) {\n let keys = keyCache.get(cacheKey);\n if (!keys) {\n keys = generate();\n keyCache.set(cacheKey, keys);\n keysCached.add(keys);\n }\n return keys;\n}\nconst addIfFound = (set, obj, key) => {\n const opts = resolveObjectKey(obj, key);\n if (opts !== undefined) {\n set.add(opts);\n }\n};\nclass Config {\n constructor(config) {\n this._config = initConfig(config);\n this._scopeCache = new Map();\n this._resolverCache = new Map();\n }\n get platform() {\n return this._config.platform;\n }\n get type() {\n return this._config.type;\n }\n set type(type) {\n this._config.type = type;\n }\n get data() {\n return this._config.data;\n }\n set data(data) {\n this._config.data = initData(data);\n }\n get options() {\n return this._config.options;\n }\n set options(options) {\n this._config.options = options;\n }\n get plugins() {\n return this._config.plugins;\n }\n update() {\n const config = this._config;\n this.clearCache();\n initOptions(config);\n }\n clearCache() {\n this._scopeCache.clear();\n this._resolverCache.clear();\n }\n datasetScopeKeys(datasetType) {\n return cachedKeys(datasetType,\n () => [[\n `datasets.${datasetType}`,\n ''\n ]]);\n }\n datasetAnimationScopeKeys(datasetType, transition) {\n return cachedKeys(`${datasetType}.transition.${transition}`,\n () => [\n [\n `datasets.${datasetType}.transitions.${transition}`,\n `transitions.${transition}`,\n ],\n [\n `datasets.${datasetType}`,\n ''\n ]\n ]);\n }\n datasetElementScopeKeys(datasetType, elementType) {\n return cachedKeys(`${datasetType}-${elementType}`,\n () => [[\n `datasets.${datasetType}.elements.${elementType}`,\n `datasets.${datasetType}`,\n `elements.${elementType}`,\n ''\n ]]);\n }\n pluginScopeKeys(plugin) {\n const id = plugin.id;\n const type = this.type;\n return cachedKeys(`${type}-plugin-${id}`,\n () => [[\n `plugins.${id}`,\n ...plugin.additionalOptionScopes || [],\n ]]);\n }\n _cachedScopes(mainScope, resetCache) {\n const _scopeCache = this._scopeCache;\n let cache = _scopeCache.get(mainScope);\n if (!cache || resetCache) {\n cache = new Map();\n _scopeCache.set(mainScope, cache);\n }\n return cache;\n }\n getOptionScopes(mainScope, keyLists, resetCache) {\n const {options, type} = this;\n const cache = this._cachedScopes(mainScope, resetCache);\n const cached = cache.get(keyLists);\n if (cached) {\n return cached;\n }\n const scopes = new Set();\n keyLists.forEach(keys => {\n if (mainScope) {\n scopes.add(mainScope);\n keys.forEach(key => addIfFound(scopes, mainScope, key));\n }\n keys.forEach(key => addIfFound(scopes, options, key));\n keys.forEach(key => addIfFound(scopes, overrides[type] || {}, key));\n keys.forEach(key => addIfFound(scopes, defaults, key));\n keys.forEach(key => addIfFound(scopes, descriptors, key));\n });\n const array = Array.from(scopes);\n if (array.length === 0) {\n array.push(Object.create(null));\n }\n if (keysCached.has(keyLists)) {\n cache.set(keyLists, array);\n }\n return array;\n }\n chartOptionScopes() {\n const {options, type} = this;\n return [\n options,\n overrides[type] || {},\n defaults.datasets[type] || {},\n {type},\n defaults,\n descriptors\n ];\n }\n resolveNamedOptions(scopes, names, context, prefixes = ['']) {\n const result = {$shared: true};\n const {resolver, subPrefixes} = getResolver(this._resolverCache, scopes, prefixes);\n let options = resolver;\n if (needContext(resolver, names)) {\n result.$shared = false;\n context = isFunction(context) ? context() : context;\n const subResolver = this.createResolver(scopes, context, subPrefixes);\n options = _attachContext(resolver, context, subResolver);\n }\n for (const prop of names) {\n result[prop] = options[prop];\n }\n return result;\n }\n createResolver(scopes, context, prefixes = [''], descriptorDefaults) {\n const {resolver} = getResolver(this._resolverCache, scopes, prefixes);\n return isObject(context)\n ? _attachContext(resolver, context, undefined, descriptorDefaults)\n : resolver;\n }\n}\nfunction getResolver(resolverCache, scopes, prefixes) {\n let cache = resolverCache.get(scopes);\n if (!cache) {\n cache = new Map();\n resolverCache.set(scopes, cache);\n }\n const cacheKey = prefixes.join();\n let cached = cache.get(cacheKey);\n if (!cached) {\n const resolver = _createResolver(scopes, prefixes);\n cached = {\n resolver,\n subPrefixes: prefixes.filter(p => !p.toLowerCase().includes('hover'))\n };\n cache.set(cacheKey, cached);\n }\n return cached;\n}\nconst hasFunction = value => isObject(value)\n && Object.getOwnPropertyNames(value).reduce((acc, key) => acc || isFunction(value[key]), false);\nfunction needContext(proxy, names) {\n const {isScriptable, isIndexable} = _descriptors(proxy);\n for (const prop of names) {\n const scriptable = isScriptable(prop);\n const indexable = isIndexable(prop);\n const value = (indexable || scriptable) && proxy[prop];\n if ((scriptable && (isFunction(value) || hasFunction(value)))\n || (indexable && isArray(value))) {\n return true;\n }\n }\n return false;\n}\n\nvar version = \"3.6.0\";\n\nconst KNOWN_POSITIONS = ['top', 'bottom', 'left', 'right', 'chartArea'];\nfunction positionIsHorizontal(position, axis) {\n return position === 'top' || position === 'bottom' || (KNOWN_POSITIONS.indexOf(position) === -1 && axis === 'x');\n}\nfunction compare2Level(l1, l2) {\n return function(a, b) {\n return a[l1] === b[l1]\n ? a[l2] - b[l2]\n : a[l1] - b[l1];\n };\n}\nfunction onAnimationsComplete(context) {\n const chart = context.chart;\n const animationOptions = chart.options.animation;\n chart.notifyPlugins('afterRender');\n callback(animationOptions && animationOptions.onComplete, [context], chart);\n}\nfunction onAnimationProgress(context) {\n const chart = context.chart;\n const animationOptions = chart.options.animation;\n callback(animationOptions && animationOptions.onProgress, [context], chart);\n}\nfunction getCanvas(item) {\n if (_isDomSupported() && typeof item === 'string') {\n item = document.getElementById(item);\n } else if (item && item.length) {\n item = item[0];\n }\n if (item && item.canvas) {\n item = item.canvas;\n }\n return item;\n}\nconst instances = {};\nconst getChart = (key) => {\n const canvas = getCanvas(key);\n return Object.values(instances).filter((c) => c.canvas === canvas).pop();\n};\nclass Chart {\n constructor(item, userConfig) {\n const config = this.config = new Config(userConfig);\n const initialCanvas = getCanvas(item);\n const existingChart = getChart(initialCanvas);\n if (existingChart) {\n throw new Error(\n 'Canvas is already in use. Chart with ID \\'' + existingChart.id + '\\'' +\n\t\t\t\t' must be destroyed before the canvas can be reused.'\n );\n }\n const options = config.createResolver(config.chartOptionScopes(), this.getContext());\n this.platform = new (config.platform || _detectPlatform(initialCanvas))();\n this.platform.updateConfig(config);\n const context = this.platform.acquireContext(initialCanvas, options.aspectRatio);\n const canvas = context && context.canvas;\n const height = canvas && canvas.height;\n const width = canvas && canvas.width;\n this.id = uid();\n this.ctx = context;\n this.canvas = canvas;\n this.width = width;\n this.height = height;\n this._options = options;\n this._aspectRatio = this.aspectRatio;\n this._layers = [];\n this._metasets = [];\n this._stacks = undefined;\n this.boxes = [];\n this.currentDevicePixelRatio = undefined;\n this.chartArea = undefined;\n this._active = [];\n this._lastEvent = undefined;\n this._listeners = {};\n this._responsiveListeners = undefined;\n this._sortedMetasets = [];\n this.scales = {};\n this._plugins = new PluginService();\n this.$proxies = {};\n this._hiddenIndices = {};\n this.attached = false;\n this._animationsDisabled = undefined;\n this.$context = undefined;\n this._doResize = debounce(mode => this.update(mode), options.resizeDelay || 0);\n instances[this.id] = this;\n if (!context || !canvas) {\n console.error(\"Failed to create chart: can't acquire context from the given item\");\n return;\n }\n animator.listen(this, 'complete', onAnimationsComplete);\n animator.listen(this, 'progress', onAnimationProgress);\n this._initialize();\n if (this.attached) {\n this.update();\n }\n }\n get aspectRatio() {\n const {options: {aspectRatio, maintainAspectRatio}, width, height, _aspectRatio} = this;\n if (!isNullOrUndef(aspectRatio)) {\n return aspectRatio;\n }\n if (maintainAspectRatio && _aspectRatio) {\n return _aspectRatio;\n }\n return height ? width / height : null;\n }\n get data() {\n return this.config.data;\n }\n set data(data) {\n this.config.data = data;\n }\n get options() {\n return this._options;\n }\n set options(options) {\n this.config.options = options;\n }\n _initialize() {\n this.notifyPlugins('beforeInit');\n if (this.options.responsive) {\n this.resize();\n } else {\n retinaScale(this, this.options.devicePixelRatio);\n }\n this.bindEvents();\n this.notifyPlugins('afterInit');\n return this;\n }\n clear() {\n clearCanvas(this.canvas, this.ctx);\n return this;\n }\n stop() {\n animator.stop(this);\n return this;\n }\n resize(width, height) {\n if (!animator.running(this)) {\n this._resize(width, height);\n } else {\n this._resizeBeforeDraw = {width, height};\n }\n }\n _resize(width, height) {\n const options = this.options;\n const canvas = this.canvas;\n const aspectRatio = options.maintainAspectRatio && this.aspectRatio;\n const newSize = this.platform.getMaximumSize(canvas, width, height, aspectRatio);\n const newRatio = options.devicePixelRatio || this.platform.getDevicePixelRatio();\n const mode = this.width ? 'resize' : 'attach';\n this.width = newSize.width;\n this.height = newSize.height;\n this._aspectRatio = this.aspectRatio;\n if (!retinaScale(this, newRatio, true)) {\n return;\n }\n this.notifyPlugins('resize', {size: newSize});\n callback(options.onResize, [this, newSize], this);\n if (this.attached) {\n if (this._doResize(mode)) {\n this.render();\n }\n }\n }\n ensureScalesHaveIDs() {\n const options = this.options;\n const scalesOptions = options.scales || {};\n each(scalesOptions, (axisOptions, axisID) => {\n axisOptions.id = axisID;\n });\n }\n buildOrUpdateScales() {\n const options = this.options;\n const scaleOpts = options.scales;\n const scales = this.scales;\n const updated = Object.keys(scales).reduce((obj, id) => {\n obj[id] = false;\n return obj;\n }, {});\n let items = [];\n if (scaleOpts) {\n items = items.concat(\n Object.keys(scaleOpts).map((id) => {\n const scaleOptions = scaleOpts[id];\n const axis = determineAxis(id, scaleOptions);\n const isRadial = axis === 'r';\n const isHorizontal = axis === 'x';\n return {\n options: scaleOptions,\n dposition: isRadial ? 'chartArea' : isHorizontal ? 'bottom' : 'left',\n dtype: isRadial ? 'radialLinear' : isHorizontal ? 'category' : 'linear'\n };\n })\n );\n }\n each(items, (item) => {\n const scaleOptions = item.options;\n const id = scaleOptions.id;\n const axis = determineAxis(id, scaleOptions);\n const scaleType = valueOrDefault(scaleOptions.type, item.dtype);\n if (scaleOptions.position === undefined || positionIsHorizontal(scaleOptions.position, axis) !== positionIsHorizontal(item.dposition)) {\n scaleOptions.position = item.dposition;\n }\n updated[id] = true;\n let scale = null;\n if (id in scales && scales[id].type === scaleType) {\n scale = scales[id];\n } else {\n const scaleClass = registry.getScale(scaleType);\n scale = new scaleClass({\n id,\n type: scaleType,\n ctx: this.ctx,\n chart: this\n });\n scales[scale.id] = scale;\n }\n scale.init(scaleOptions, options);\n });\n each(updated, (hasUpdated, id) => {\n if (!hasUpdated) {\n delete scales[id];\n }\n });\n each(scales, (scale) => {\n layouts.configure(this, scale, scale.options);\n layouts.addBox(this, scale);\n });\n }\n _updateMetasets() {\n const metasets = this._metasets;\n const numData = this.data.datasets.length;\n const numMeta = metasets.length;\n metasets.sort((a, b) => a.index - b.index);\n if (numMeta > numData) {\n for (let i = numData; i < numMeta; ++i) {\n this._destroyDatasetMeta(i);\n }\n metasets.splice(numData, numMeta - numData);\n }\n this._sortedMetasets = metasets.slice(0).sort(compare2Level('order', 'index'));\n }\n _removeUnreferencedMetasets() {\n const {_metasets: metasets, data: {datasets}} = this;\n if (metasets.length > datasets.length) {\n delete this._stacks;\n }\n metasets.forEach((meta, index) => {\n if (datasets.filter(x => x === meta._dataset).length === 0) {\n this._destroyDatasetMeta(index);\n }\n });\n }\n buildOrUpdateControllers() {\n const newControllers = [];\n const datasets = this.data.datasets;\n let i, ilen;\n this._removeUnreferencedMetasets();\n for (i = 0, ilen = datasets.length; i < ilen; i++) {\n const dataset = datasets[i];\n let meta = this.getDatasetMeta(i);\n const type = dataset.type || this.config.type;\n if (meta.type && meta.type !== type) {\n this._destroyDatasetMeta(i);\n meta = this.getDatasetMeta(i);\n }\n meta.type = type;\n meta.indexAxis = dataset.indexAxis || getIndexAxis(type, this.options);\n meta.order = dataset.order || 0;\n meta.index = i;\n meta.label = '' + dataset.label;\n meta.visible = this.isDatasetVisible(i);\n if (meta.controller) {\n meta.controller.updateIndex(i);\n meta.controller.linkScales();\n } else {\n const ControllerClass = registry.getController(type);\n const {datasetElementType, dataElementType} = defaults.datasets[type];\n Object.assign(ControllerClass.prototype, {\n dataElementType: registry.getElement(dataElementType),\n datasetElementType: datasetElementType && registry.getElement(datasetElementType)\n });\n meta.controller = new ControllerClass(this, i);\n newControllers.push(meta.controller);\n }\n }\n this._updateMetasets();\n return newControllers;\n }\n _resetElements() {\n each(this.data.datasets, (dataset, datasetIndex) => {\n this.getDatasetMeta(datasetIndex).controller.reset();\n }, this);\n }\n reset() {\n this._resetElements();\n this.notifyPlugins('reset');\n }\n update(mode) {\n const config = this.config;\n config.update();\n const options = this._options = config.createResolver(config.chartOptionScopes(), this.getContext());\n each(this.scales, (scale) => {\n layouts.removeBox(this, scale);\n });\n const animsDisabled = this._animationsDisabled = !options.animation;\n this.ensureScalesHaveIDs();\n this.buildOrUpdateScales();\n const existingEvents = new Set(Object.keys(this._listeners));\n const newEvents = new Set(options.events);\n if (!setsEqual(existingEvents, newEvents) || !!this._responsiveListeners !== options.responsive) {\n this.unbindEvents();\n this.bindEvents();\n }\n this._plugins.invalidate();\n if (this.notifyPlugins('beforeUpdate', {mode, cancelable: true}) === false) {\n return;\n }\n const newControllers = this.buildOrUpdateControllers();\n this.notifyPlugins('beforeElementsUpdate');\n let minPadding = 0;\n for (let i = 0, ilen = this.data.datasets.length; i < ilen; i++) {\n const {controller} = this.getDatasetMeta(i);\n const reset = !animsDisabled && newControllers.indexOf(controller) === -1;\n controller.buildOrUpdateElements(reset);\n minPadding = Math.max(+controller.getMaxOverflow(), minPadding);\n }\n minPadding = this._minPadding = options.layout.autoPadding ? minPadding : 0;\n this._updateLayout(minPadding);\n if (!animsDisabled) {\n each(newControllers, (controller) => {\n controller.reset();\n });\n }\n this._updateDatasets(mode);\n this.notifyPlugins('afterUpdate', {mode});\n this._layers.sort(compare2Level('z', '_idx'));\n if (this._lastEvent) {\n this._eventHandler(this._lastEvent, true);\n }\n this.render();\n }\n _updateLayout(minPadding) {\n if (this.notifyPlugins('beforeLayout', {cancelable: true}) === false) {\n return;\n }\n layouts.update(this, this.width, this.height, minPadding);\n const area = this.chartArea;\n const noArea = area.width <= 0 || area.height <= 0;\n this._layers = [];\n each(this.boxes, (box) => {\n if (noArea && box.position === 'chartArea') {\n return;\n }\n if (box.configure) {\n box.configure();\n }\n this._layers.push(...box._layers());\n }, this);\n this._layers.forEach((item, index) => {\n item._idx = index;\n });\n this.notifyPlugins('afterLayout');\n }\n _updateDatasets(mode) {\n if (this.notifyPlugins('beforeDatasetsUpdate', {mode, cancelable: true}) === false) {\n return;\n }\n for (let i = 0, ilen = this.data.datasets.length; i < ilen; ++i) {\n this._updateDataset(i, isFunction(mode) ? mode({datasetIndex: i}) : mode);\n }\n this.notifyPlugins('afterDatasetsUpdate', {mode});\n }\n _updateDataset(index, mode) {\n const meta = this.getDatasetMeta(index);\n const args = {meta, index, mode, cancelable: true};\n if (this.notifyPlugins('beforeDatasetUpdate', args) === false) {\n return;\n }\n meta.controller._update(mode);\n args.cancelable = false;\n this.notifyPlugins('afterDatasetUpdate', args);\n }\n render() {\n if (this.notifyPlugins('beforeRender', {cancelable: true}) === false) {\n return;\n }\n if (animator.has(this)) {\n if (this.attached && !animator.running(this)) {\n animator.start(this);\n }\n } else {\n this.draw();\n onAnimationsComplete({chart: this});\n }\n }\n draw() {\n let i;\n if (this._resizeBeforeDraw) {\n const {width, height} = this._resizeBeforeDraw;\n this._resize(width, height);\n this._resizeBeforeDraw = null;\n }\n this.clear();\n if (this.width <= 0 || this.height <= 0) {\n return;\n }\n if (this.notifyPlugins('beforeDraw', {cancelable: true}) === false) {\n return;\n }\n const layers = this._layers;\n for (i = 0; i < layers.length && layers[i].z <= 0; ++i) {\n layers[i].draw(this.chartArea);\n }\n this._drawDatasets();\n for (; i < layers.length; ++i) {\n layers[i].draw(this.chartArea);\n }\n this.notifyPlugins('afterDraw');\n }\n _getSortedDatasetMetas(filterVisible) {\n const metasets = this._sortedMetasets;\n const result = [];\n let i, ilen;\n for (i = 0, ilen = metasets.length; i < ilen; ++i) {\n const meta = metasets[i];\n if (!filterVisible || meta.visible) {\n result.push(meta);\n }\n }\n return result;\n }\n getSortedVisibleDatasetMetas() {\n return this._getSortedDatasetMetas(true);\n }\n _drawDatasets() {\n if (this.notifyPlugins('beforeDatasetsDraw', {cancelable: true}) === false) {\n return;\n }\n const metasets = this.getSortedVisibleDatasetMetas();\n for (let i = metasets.length - 1; i >= 0; --i) {\n this._drawDataset(metasets[i]);\n }\n this.notifyPlugins('afterDatasetsDraw');\n }\n _drawDataset(meta) {\n const ctx = this.ctx;\n const clip = meta._clip;\n const useClip = !clip.disabled;\n const area = this.chartArea;\n const args = {\n meta,\n index: meta.index,\n cancelable: true\n };\n if (this.notifyPlugins('beforeDatasetDraw', args) === false) {\n return;\n }\n if (useClip) {\n clipArea(ctx, {\n left: clip.left === false ? 0 : area.left - clip.left,\n right: clip.right === false ? this.width : area.right + clip.right,\n top: clip.top === false ? 0 : area.top - clip.top,\n bottom: clip.bottom === false ? this.height : area.bottom + clip.bottom\n });\n }\n meta.controller.draw();\n if (useClip) {\n unclipArea(ctx);\n }\n args.cancelable = false;\n this.notifyPlugins('afterDatasetDraw', args);\n }\n getElementsAtEventForMode(e, mode, options, useFinalPosition) {\n const method = Interaction.modes[mode];\n if (typeof method === 'function') {\n return method(this, e, options, useFinalPosition);\n }\n return [];\n }\n getDatasetMeta(datasetIndex) {\n const dataset = this.data.datasets[datasetIndex];\n const metasets = this._metasets;\n let meta = metasets.filter(x => x && x._dataset === dataset).pop();\n if (!meta) {\n meta = {\n type: null,\n data: [],\n dataset: null,\n controller: null,\n hidden: null,\n xAxisID: null,\n yAxisID: null,\n order: dataset && dataset.order || 0,\n index: datasetIndex,\n _dataset: dataset,\n _parsed: [],\n _sorted: false\n };\n metasets.push(meta);\n }\n return meta;\n }\n getContext() {\n return this.$context || (this.$context = createContext(null, {chart: this, type: 'chart'}));\n }\n getVisibleDatasetCount() {\n return this.getSortedVisibleDatasetMetas().length;\n }\n isDatasetVisible(datasetIndex) {\n const dataset = this.data.datasets[datasetIndex];\n if (!dataset) {\n return false;\n }\n const meta = this.getDatasetMeta(datasetIndex);\n return typeof meta.hidden === 'boolean' ? !meta.hidden : !dataset.hidden;\n }\n setDatasetVisibility(datasetIndex, visible) {\n const meta = this.getDatasetMeta(datasetIndex);\n meta.hidden = !visible;\n }\n toggleDataVisibility(index) {\n this._hiddenIndices[index] = !this._hiddenIndices[index];\n }\n getDataVisibility(index) {\n return !this._hiddenIndices[index];\n }\n _updateVisibility(datasetIndex, dataIndex, visible) {\n const mode = visible ? 'show' : 'hide';\n const meta = this.getDatasetMeta(datasetIndex);\n const anims = meta.controller._resolveAnimations(undefined, mode);\n if (defined(dataIndex)) {\n meta.data[dataIndex].hidden = !visible;\n this.update();\n } else {\n this.setDatasetVisibility(datasetIndex, visible);\n anims.update(meta, {visible});\n this.update((ctx) => ctx.datasetIndex === datasetIndex ? mode : undefined);\n }\n }\n hide(datasetIndex, dataIndex) {\n this._updateVisibility(datasetIndex, dataIndex, false);\n }\n show(datasetIndex, dataIndex) {\n this._updateVisibility(datasetIndex, dataIndex, true);\n }\n _destroyDatasetMeta(datasetIndex) {\n const meta = this._metasets[datasetIndex];\n if (meta && meta.controller) {\n meta.controller._destroy();\n }\n delete this._metasets[datasetIndex];\n }\n _stop() {\n let i, ilen;\n this.stop();\n animator.remove(this);\n for (i = 0, ilen = this.data.datasets.length; i < ilen; ++i) {\n this._destroyDatasetMeta(i);\n }\n }\n destroy() {\n const {canvas, ctx} = this;\n this._stop();\n this.config.clearCache();\n if (canvas) {\n this.unbindEvents();\n clearCanvas(canvas, ctx);\n this.platform.releaseContext(ctx);\n this.canvas = null;\n this.ctx = null;\n }\n this.notifyPlugins('destroy');\n delete instances[this.id];\n }\n toBase64Image(...args) {\n return this.canvas.toDataURL(...args);\n }\n bindEvents() {\n this.bindUserEvents();\n if (this.options.responsive) {\n this.bindResponsiveEvents();\n } else {\n this.attached = true;\n }\n }\n bindUserEvents() {\n const listeners = this._listeners;\n const platform = this.platform;\n const _add = (type, listener) => {\n platform.addEventListener(this, type, listener);\n listeners[type] = listener;\n };\n const listener = (e, x, y) => {\n e.offsetX = x;\n e.offsetY = y;\n this._eventHandler(e);\n };\n each(this.options.events, (type) => _add(type, listener));\n }\n bindResponsiveEvents() {\n if (!this._responsiveListeners) {\n this._responsiveListeners = {};\n }\n const listeners = this._responsiveListeners;\n const platform = this.platform;\n const _add = (type, listener) => {\n platform.addEventListener(this, type, listener);\n listeners[type] = listener;\n };\n const _remove = (type, listener) => {\n if (listeners[type]) {\n platform.removeEventListener(this, type, listener);\n delete listeners[type];\n }\n };\n const listener = (width, height) => {\n if (this.canvas) {\n this.resize(width, height);\n }\n };\n let detached;\n const attached = () => {\n _remove('attach', attached);\n this.attached = true;\n this.resize();\n _add('resize', listener);\n _add('detach', detached);\n };\n detached = () => {\n this.attached = false;\n _remove('resize', listener);\n this._stop();\n this._resize(0, 0);\n _add('attach', attached);\n };\n if (platform.isAttached(this.canvas)) {\n attached();\n } else {\n detached();\n }\n }\n unbindEvents() {\n each(this._listeners, (listener, type) => {\n this.platform.removeEventListener(this, type, listener);\n });\n this._listeners = {};\n each(this._responsiveListeners, (listener, type) => {\n this.platform.removeEventListener(this, type, listener);\n });\n this._responsiveListeners = undefined;\n }\n updateHoverStyle(items, mode, enabled) {\n const prefix = enabled ? 'set' : 'remove';\n let meta, item, i, ilen;\n if (mode === 'dataset') {\n meta = this.getDatasetMeta(items[0].datasetIndex);\n meta.controller['_' + prefix + 'DatasetHoverStyle']();\n }\n for (i = 0, ilen = items.length; i < ilen; ++i) {\n item = items[i];\n const controller = item && this.getDatasetMeta(item.datasetIndex).controller;\n if (controller) {\n controller[prefix + 'HoverStyle'](item.element, item.datasetIndex, item.index);\n }\n }\n }\n getActiveElements() {\n return this._active || [];\n }\n setActiveElements(activeElements) {\n const lastActive = this._active || [];\n const active = activeElements.map(({datasetIndex, index}) => {\n const meta = this.getDatasetMeta(datasetIndex);\n if (!meta) {\n throw new Error('No dataset found at index ' + datasetIndex);\n }\n return {\n datasetIndex,\n element: meta.data[index],\n index,\n };\n });\n const changed = !_elementsEqual(active, lastActive);\n if (changed) {\n this._active = active;\n this._updateHoverStyles(active, lastActive);\n }\n }\n notifyPlugins(hook, args, filter) {\n return this._plugins.notify(this, hook, args, filter);\n }\n _updateHoverStyles(active, lastActive, replay) {\n const hoverOptions = this.options.hover;\n const diff = (a, b) => a.filter(x => !b.some(y => x.datasetIndex === y.datasetIndex && x.index === y.index));\n const deactivated = diff(lastActive, active);\n const activated = replay ? active : diff(active, lastActive);\n if (deactivated.length) {\n this.updateHoverStyle(deactivated, hoverOptions.mode, false);\n }\n if (activated.length && hoverOptions.mode) {\n this.updateHoverStyle(activated, hoverOptions.mode, true);\n }\n }\n _eventHandler(e, replay) {\n const args = {event: e, replay, cancelable: true};\n const eventFilter = (plugin) => (plugin.options.events || this.options.events).includes(e.native.type);\n if (this.notifyPlugins('beforeEvent', args, eventFilter) === false) {\n return;\n }\n const changed = this._handleEvent(e, replay);\n args.cancelable = false;\n this.notifyPlugins('afterEvent', args, eventFilter);\n if (changed || args.changed) {\n this.render();\n }\n return this;\n }\n _handleEvent(e, replay) {\n const {_active: lastActive = [], options} = this;\n const hoverOptions = options.hover;\n const useFinalPosition = replay;\n let active = [];\n let changed = false;\n let lastEvent = null;\n if (e.type !== 'mouseout') {\n active = this.getElementsAtEventForMode(e, hoverOptions.mode, hoverOptions, useFinalPosition);\n lastEvent = e.type === 'click' ? this._lastEvent : e;\n }\n this._lastEvent = null;\n if (_isPointInArea(e, this.chartArea, this._minPadding)) {\n callback(options.onHover, [e, active, this], this);\n if (e.type === 'mouseup' || e.type === 'click' || e.type === 'contextmenu') {\n callback(options.onClick, [e, active, this], this);\n }\n }\n changed = !_elementsEqual(active, lastActive);\n if (changed || replay) {\n this._active = active;\n this._updateHoverStyles(active, lastActive, replay);\n }\n this._lastEvent = lastEvent;\n return changed;\n }\n}\nconst invalidatePlugins = () => each(Chart.instances, (chart) => chart._plugins.invalidate());\nconst enumerable = true;\nObject.defineProperties(Chart, {\n defaults: {\n enumerable,\n value: defaults\n },\n instances: {\n enumerable,\n value: instances\n },\n overrides: {\n enumerable,\n value: overrides\n },\n registry: {\n enumerable,\n value: registry\n },\n version: {\n enumerable,\n value: version\n },\n getChart: {\n enumerable,\n value: getChart\n },\n register: {\n enumerable,\n value: (...items) => {\n registry.add(...items);\n invalidatePlugins();\n }\n },\n unregister: {\n enumerable,\n value: (...items) => {\n registry.remove(...items);\n invalidatePlugins();\n }\n }\n});\n\nfunction clipArc(ctx, element, endAngle) {\n const {startAngle, pixelMargin, x, y, outerRadius, innerRadius} = element;\n let angleMargin = pixelMargin / outerRadius;\n ctx.beginPath();\n ctx.arc(x, y, outerRadius, startAngle - angleMargin, endAngle + angleMargin);\n if (innerRadius > pixelMargin) {\n angleMargin = pixelMargin / innerRadius;\n ctx.arc(x, y, innerRadius, endAngle + angleMargin, startAngle - angleMargin, true);\n } else {\n ctx.arc(x, y, pixelMargin, endAngle + HALF_PI, startAngle - HALF_PI);\n }\n ctx.closePath();\n ctx.clip();\n}\nfunction toRadiusCorners(value) {\n return _readValueToProps(value, ['outerStart', 'outerEnd', 'innerStart', 'innerEnd']);\n}\nfunction parseBorderRadius$1(arc, innerRadius, outerRadius, angleDelta) {\n const o = toRadiusCorners(arc.options.borderRadius);\n const halfThickness = (outerRadius - innerRadius) / 2;\n const innerLimit = Math.min(halfThickness, angleDelta * innerRadius / 2);\n const computeOuterLimit = (val) => {\n const outerArcLimit = (outerRadius - Math.min(halfThickness, val)) * angleDelta / 2;\n return _limitValue(val, 0, Math.min(halfThickness, outerArcLimit));\n };\n return {\n outerStart: computeOuterLimit(o.outerStart),\n outerEnd: computeOuterLimit(o.outerEnd),\n innerStart: _limitValue(o.innerStart, 0, innerLimit),\n innerEnd: _limitValue(o.innerEnd, 0, innerLimit),\n };\n}\nfunction rThetaToXY(r, theta, x, y) {\n return {\n x: x + r * Math.cos(theta),\n y: y + r * Math.sin(theta),\n };\n}\nfunction pathArc(ctx, element, offset, spacing, end) {\n const {x, y, startAngle: start, pixelMargin, innerRadius: innerR} = element;\n const outerRadius = Math.max(element.outerRadius + spacing + offset - pixelMargin, 0);\n const innerRadius = innerR > 0 ? innerR + spacing + offset + pixelMargin : 0;\n let spacingOffset = 0;\n const alpha = end - start;\n if (spacing) {\n const noSpacingInnerRadius = innerR > 0 ? innerR - spacing : 0;\n const noSpacingOuterRadius = outerRadius > 0 ? outerRadius - spacing : 0;\n const avNogSpacingRadius = (noSpacingInnerRadius + noSpacingOuterRadius) / 2;\n const adjustedAngle = avNogSpacingRadius !== 0 ? (alpha * avNogSpacingRadius) / (avNogSpacingRadius + spacing) : alpha;\n spacingOffset = (alpha - adjustedAngle) / 2;\n }\n const beta = Math.max(0.001, alpha * outerRadius - offset / PI) / outerRadius;\n const angleOffset = (alpha - beta) / 2;\n const startAngle = start + angleOffset + spacingOffset;\n const endAngle = end - angleOffset - spacingOffset;\n const {outerStart, outerEnd, innerStart, innerEnd} = parseBorderRadius$1(element, innerRadius, outerRadius, endAngle - startAngle);\n const outerStartAdjustedRadius = outerRadius - outerStart;\n const outerEndAdjustedRadius = outerRadius - outerEnd;\n const outerStartAdjustedAngle = startAngle + outerStart / outerStartAdjustedRadius;\n const outerEndAdjustedAngle = endAngle - outerEnd / outerEndAdjustedRadius;\n const innerStartAdjustedRadius = innerRadius + innerStart;\n const innerEndAdjustedRadius = innerRadius + innerEnd;\n const innerStartAdjustedAngle = startAngle + innerStart / innerStartAdjustedRadius;\n const innerEndAdjustedAngle = endAngle - innerEnd / innerEndAdjustedRadius;\n ctx.beginPath();\n ctx.arc(x, y, outerRadius, outerStartAdjustedAngle, outerEndAdjustedAngle);\n if (outerEnd > 0) {\n const pCenter = rThetaToXY(outerEndAdjustedRadius, outerEndAdjustedAngle, x, y);\n ctx.arc(pCenter.x, pCenter.y, outerEnd, outerEndAdjustedAngle, endAngle + HALF_PI);\n }\n const p4 = rThetaToXY(innerEndAdjustedRadius, endAngle, x, y);\n ctx.lineTo(p4.x, p4.y);\n if (innerEnd > 0) {\n const pCenter = rThetaToXY(innerEndAdjustedRadius, innerEndAdjustedAngle, x, y);\n ctx.arc(pCenter.x, pCenter.y, innerEnd, endAngle + HALF_PI, innerEndAdjustedAngle + Math.PI);\n }\n ctx.arc(x, y, innerRadius, endAngle - (innerEnd / innerRadius), startAngle + (innerStart / innerRadius), true);\n if (innerStart > 0) {\n const pCenter = rThetaToXY(innerStartAdjustedRadius, innerStartAdjustedAngle, x, y);\n ctx.arc(pCenter.x, pCenter.y, innerStart, innerStartAdjustedAngle + Math.PI, startAngle - HALF_PI);\n }\n const p8 = rThetaToXY(outerStartAdjustedRadius, startAngle, x, y);\n ctx.lineTo(p8.x, p8.y);\n if (outerStart > 0) {\n const pCenter = rThetaToXY(outerStartAdjustedRadius, outerStartAdjustedAngle, x, y);\n ctx.arc(pCenter.x, pCenter.y, outerStart, startAngle - HALF_PI, outerStartAdjustedAngle);\n }\n ctx.closePath();\n}\nfunction drawArc(ctx, element, offset, spacing) {\n const {fullCircles, startAngle, circumference} = element;\n let endAngle = element.endAngle;\n if (fullCircles) {\n pathArc(ctx, element, offset, spacing, startAngle + TAU);\n for (let i = 0; i < fullCircles; ++i) {\n ctx.fill();\n }\n if (!isNaN(circumference)) {\n endAngle = startAngle + circumference % TAU;\n if (circumference % TAU === 0) {\n endAngle += TAU;\n }\n }\n }\n pathArc(ctx, element, offset, spacing, endAngle);\n ctx.fill();\n return endAngle;\n}\nfunction drawFullCircleBorders(ctx, element, inner) {\n const {x, y, startAngle, pixelMargin, fullCircles} = element;\n const outerRadius = Math.max(element.outerRadius - pixelMargin, 0);\n const innerRadius = element.innerRadius + pixelMargin;\n let i;\n if (inner) {\n clipArc(ctx, element, startAngle + TAU);\n }\n ctx.beginPath();\n ctx.arc(x, y, innerRadius, startAngle + TAU, startAngle, true);\n for (i = 0; i < fullCircles; ++i) {\n ctx.stroke();\n }\n ctx.beginPath();\n ctx.arc(x, y, outerRadius, startAngle, startAngle + TAU);\n for (i = 0; i < fullCircles; ++i) {\n ctx.stroke();\n }\n}\nfunction drawBorder(ctx, element, offset, spacing, endAngle) {\n const {options} = element;\n const inner = options.borderAlign === 'inner';\n if (!options.borderWidth) {\n return;\n }\n if (inner) {\n ctx.lineWidth = options.borderWidth * 2;\n ctx.lineJoin = 'round';\n } else {\n ctx.lineWidth = options.borderWidth;\n ctx.lineJoin = 'bevel';\n }\n if (element.fullCircles) {\n drawFullCircleBorders(ctx, element, inner);\n }\n if (inner) {\n clipArc(ctx, element, endAngle);\n }\n pathArc(ctx, element, offset, spacing, endAngle);\n ctx.stroke();\n}\nclass ArcElement extends Element {\n constructor(cfg) {\n super();\n this.options = undefined;\n this.circumference = undefined;\n this.startAngle = undefined;\n this.endAngle = undefined;\n this.innerRadius = undefined;\n this.outerRadius = undefined;\n this.pixelMargin = 0;\n this.fullCircles = 0;\n if (cfg) {\n Object.assign(this, cfg);\n }\n }\n inRange(chartX, chartY, useFinalPosition) {\n const point = this.getProps(['x', 'y'], useFinalPosition);\n const {angle, distance} = getAngleFromPoint(point, {x: chartX, y: chartY});\n const {startAngle, endAngle, innerRadius, outerRadius, circumference} = this.getProps([\n 'startAngle',\n 'endAngle',\n 'innerRadius',\n 'outerRadius',\n 'circumference'\n ], useFinalPosition);\n const rAdjust = this.options.spacing / 2;\n const betweenAngles = circumference >= TAU || _angleBetween(angle, startAngle, endAngle);\n const withinRadius = (distance >= innerRadius + rAdjust && distance <= outerRadius + rAdjust);\n return (betweenAngles && withinRadius);\n }\n getCenterPoint(useFinalPosition) {\n const {x, y, startAngle, endAngle, innerRadius, outerRadius} = this.getProps([\n 'x',\n 'y',\n 'startAngle',\n 'endAngle',\n 'innerRadius',\n 'outerRadius',\n 'circumference',\n ], useFinalPosition);\n const {offset, spacing} = this.options;\n const halfAngle = (startAngle + endAngle) / 2;\n const halfRadius = (innerRadius + outerRadius + spacing + offset) / 2;\n return {\n x: x + Math.cos(halfAngle) * halfRadius,\n y: y + Math.sin(halfAngle) * halfRadius\n };\n }\n tooltipPosition(useFinalPosition) {\n return this.getCenterPoint(useFinalPosition);\n }\n draw(ctx) {\n const {options, circumference} = this;\n const offset = (options.offset || 0) / 2;\n const spacing = (options.spacing || 0) / 2;\n this.pixelMargin = (options.borderAlign === 'inner') ? 0.33 : 0;\n this.fullCircles = circumference > TAU ? Math.floor(circumference / TAU) : 0;\n if (circumference === 0 || this.innerRadius < 0 || this.outerRadius < 0) {\n return;\n }\n ctx.save();\n let radiusOffset = 0;\n if (offset) {\n radiusOffset = offset / 2;\n const halfAngle = (this.startAngle + this.endAngle) / 2;\n ctx.translate(Math.cos(halfAngle) * radiusOffset, Math.sin(halfAngle) * radiusOffset);\n if (this.circumference >= PI) {\n radiusOffset = offset;\n }\n }\n ctx.fillStyle = options.backgroundColor;\n ctx.strokeStyle = options.borderColor;\n const endAngle = drawArc(ctx, this, radiusOffset, spacing);\n drawBorder(ctx, this, radiusOffset, spacing, endAngle);\n ctx.restore();\n }\n}\nArcElement.id = 'arc';\nArcElement.defaults = {\n borderAlign: 'center',\n borderColor: '#fff',\n borderRadius: 0,\n borderWidth: 2,\n offset: 0,\n spacing: 0,\n angle: undefined,\n};\nArcElement.defaultRoutes = {\n backgroundColor: 'backgroundColor'\n};\n\nfunction setStyle(ctx, options, style = options) {\n ctx.lineCap = valueOrDefault(style.borderCapStyle, options.borderCapStyle);\n ctx.setLineDash(valueOrDefault(style.borderDash, options.borderDash));\n ctx.lineDashOffset = valueOrDefault(style.borderDashOffset, options.borderDashOffset);\n ctx.lineJoin = valueOrDefault(style.borderJoinStyle, options.borderJoinStyle);\n ctx.lineWidth = valueOrDefault(style.borderWidth, options.borderWidth);\n ctx.strokeStyle = valueOrDefault(style.borderColor, options.borderColor);\n}\nfunction lineTo(ctx, previous, target) {\n ctx.lineTo(target.x, target.y);\n}\nfunction getLineMethod(options) {\n if (options.stepped) {\n return _steppedLineTo;\n }\n if (options.tension || options.cubicInterpolationMode === 'monotone') {\n return _bezierCurveTo;\n }\n return lineTo;\n}\nfunction pathVars(points, segment, params = {}) {\n const count = points.length;\n const {start: paramsStart = 0, end: paramsEnd = count - 1} = params;\n const {start: segmentStart, end: segmentEnd} = segment;\n const start = Math.max(paramsStart, segmentStart);\n const end = Math.min(paramsEnd, segmentEnd);\n const outside = paramsStart < segmentStart && paramsEnd < segmentStart || paramsStart > segmentEnd && paramsEnd > segmentEnd;\n return {\n count,\n start,\n loop: segment.loop,\n ilen: end < start && !outside ? count + end - start : end - start\n };\n}\nfunction pathSegment(ctx, line, segment, params) {\n const {points, options} = line;\n const {count, start, loop, ilen} = pathVars(points, segment, params);\n const lineMethod = getLineMethod(options);\n let {move = true, reverse} = params || {};\n let i, point, prev;\n for (i = 0; i <= ilen; ++i) {\n point = points[(start + (reverse ? ilen - i : i)) % count];\n if (point.skip) {\n continue;\n } else if (move) {\n ctx.moveTo(point.x, point.y);\n move = false;\n } else {\n lineMethod(ctx, prev, point, reverse, options.stepped);\n }\n prev = point;\n }\n if (loop) {\n point = points[(start + (reverse ? ilen : 0)) % count];\n lineMethod(ctx, prev, point, reverse, options.stepped);\n }\n return !!loop;\n}\nfunction fastPathSegment(ctx, line, segment, params) {\n const points = line.points;\n const {count, start, ilen} = pathVars(points, segment, params);\n const {move = true, reverse} = params || {};\n let avgX = 0;\n let countX = 0;\n let i, point, prevX, minY, maxY, lastY;\n const pointIndex = (index) => (start + (reverse ? ilen - index : index)) % count;\n const drawX = () => {\n if (minY !== maxY) {\n ctx.lineTo(avgX, maxY);\n ctx.lineTo(avgX, minY);\n ctx.lineTo(avgX, lastY);\n }\n };\n if (move) {\n point = points[pointIndex(0)];\n ctx.moveTo(point.x, point.y);\n }\n for (i = 0; i <= ilen; ++i) {\n point = points[pointIndex(i)];\n if (point.skip) {\n continue;\n }\n const x = point.x;\n const y = point.y;\n const truncX = x | 0;\n if (truncX === prevX) {\n if (y < minY) {\n minY = y;\n } else if (y > maxY) {\n maxY = y;\n }\n avgX = (countX * avgX + x) / ++countX;\n } else {\n drawX();\n ctx.lineTo(x, y);\n prevX = truncX;\n countX = 0;\n minY = maxY = y;\n }\n lastY = y;\n }\n drawX();\n}\nfunction _getSegmentMethod(line) {\n const opts = line.options;\n const borderDash = opts.borderDash && opts.borderDash.length;\n const useFastPath = !line._decimated && !line._loop && !opts.tension && opts.cubicInterpolationMode !== 'monotone' && !opts.stepped && !borderDash;\n return useFastPath ? fastPathSegment : pathSegment;\n}\nfunction _getInterpolationMethod(options) {\n if (options.stepped) {\n return _steppedInterpolation;\n }\n if (options.tension || options.cubicInterpolationMode === 'monotone') {\n return _bezierInterpolation;\n }\n return _pointInLine;\n}\nfunction strokePathWithCache(ctx, line, start, count) {\n let path = line._path;\n if (!path) {\n path = line._path = new Path2D();\n if (line.path(path, start, count)) {\n path.closePath();\n }\n }\n setStyle(ctx, line.options);\n ctx.stroke(path);\n}\nfunction strokePathDirect(ctx, line, start, count) {\n const {segments, options} = line;\n const segmentMethod = _getSegmentMethod(line);\n for (const segment of segments) {\n setStyle(ctx, options, segment.style);\n ctx.beginPath();\n if (segmentMethod(ctx, line, segment, {start, end: start + count - 1})) {\n ctx.closePath();\n }\n ctx.stroke();\n }\n}\nconst usePath2D = typeof Path2D === 'function';\nfunction draw(ctx, line, start, count) {\n if (usePath2D && !line.options.segment) {\n strokePathWithCache(ctx, line, start, count);\n } else {\n strokePathDirect(ctx, line, start, count);\n }\n}\nclass LineElement extends Element {\n constructor(cfg) {\n super();\n this.animated = true;\n this.options = undefined;\n this._chart = undefined;\n this._loop = undefined;\n this._fullLoop = undefined;\n this._path = undefined;\n this._points = undefined;\n this._segments = undefined;\n this._decimated = false;\n this._pointsUpdated = false;\n this._datasetIndex = undefined;\n if (cfg) {\n Object.assign(this, cfg);\n }\n }\n updateControlPoints(chartArea, indexAxis) {\n const options = this.options;\n if ((options.tension || options.cubicInterpolationMode === 'monotone') && !options.stepped && !this._pointsUpdated) {\n const loop = options.spanGaps ? this._loop : this._fullLoop;\n _updateBezierControlPoints(this._points, options, chartArea, loop, indexAxis);\n this._pointsUpdated = true;\n }\n }\n set points(points) {\n this._points = points;\n delete this._segments;\n delete this._path;\n this._pointsUpdated = false;\n }\n get points() {\n return this._points;\n }\n get segments() {\n return this._segments || (this._segments = _computeSegments(this, this.options.segment));\n }\n first() {\n const segments = this.segments;\n const points = this.points;\n return segments.length && points[segments[0].start];\n }\n last() {\n const segments = this.segments;\n const points = this.points;\n const count = segments.length;\n return count && points[segments[count - 1].end];\n }\n interpolate(point, property) {\n const options = this.options;\n const value = point[property];\n const points = this.points;\n const segments = _boundSegments(this, {property, start: value, end: value});\n if (!segments.length) {\n return;\n }\n const result = [];\n const _interpolate = _getInterpolationMethod(options);\n let i, ilen;\n for (i = 0, ilen = segments.length; i < ilen; ++i) {\n const {start, end} = segments[i];\n const p1 = points[start];\n const p2 = points[end];\n if (p1 === p2) {\n result.push(p1);\n continue;\n }\n const t = Math.abs((value - p1[property]) / (p2[property] - p1[property]));\n const interpolated = _interpolate(p1, p2, t, options.stepped);\n interpolated[property] = point[property];\n result.push(interpolated);\n }\n return result.length === 1 ? result[0] : result;\n }\n pathSegment(ctx, segment, params) {\n const segmentMethod = _getSegmentMethod(this);\n return segmentMethod(ctx, this, segment, params);\n }\n path(ctx, start, count) {\n const segments = this.segments;\n const segmentMethod = _getSegmentMethod(this);\n let loop = this._loop;\n start = start || 0;\n count = count || (this.points.length - start);\n for (const segment of segments) {\n loop &= segmentMethod(ctx, this, segment, {start, end: start + count - 1});\n }\n return !!loop;\n }\n draw(ctx, chartArea, start, count) {\n const options = this.options || {};\n const points = this.points || [];\n if (points.length && options.borderWidth) {\n ctx.save();\n draw(ctx, this, start, count);\n ctx.restore();\n }\n if (this.animated) {\n this._pointsUpdated = false;\n this._path = undefined;\n }\n }\n}\nLineElement.id = 'line';\nLineElement.defaults = {\n borderCapStyle: 'butt',\n borderDash: [],\n borderDashOffset: 0,\n borderJoinStyle: 'miter',\n borderWidth: 3,\n capBezierPoints: true,\n cubicInterpolationMode: 'default',\n fill: false,\n spanGaps: false,\n stepped: false,\n tension: 0,\n};\nLineElement.defaultRoutes = {\n backgroundColor: 'backgroundColor',\n borderColor: 'borderColor'\n};\nLineElement.descriptors = {\n _scriptable: true,\n _indexable: (name) => name !== 'borderDash' && name !== 'fill',\n};\n\nfunction inRange$1(el, pos, axis, useFinalPosition) {\n const options = el.options;\n const {[axis]: value} = el.getProps([axis], useFinalPosition);\n return (Math.abs(pos - value) < options.radius + options.hitRadius);\n}\nclass PointElement extends Element {\n constructor(cfg) {\n super();\n this.options = undefined;\n this.parsed = undefined;\n this.skip = undefined;\n this.stop = undefined;\n if (cfg) {\n Object.assign(this, cfg);\n }\n }\n inRange(mouseX, mouseY, useFinalPosition) {\n const options = this.options;\n const {x, y} = this.getProps(['x', 'y'], useFinalPosition);\n return ((Math.pow(mouseX - x, 2) + Math.pow(mouseY - y, 2)) < Math.pow(options.hitRadius + options.radius, 2));\n }\n inXRange(mouseX, useFinalPosition) {\n return inRange$1(this, mouseX, 'x', useFinalPosition);\n }\n inYRange(mouseY, useFinalPosition) {\n return inRange$1(this, mouseY, 'y', useFinalPosition);\n }\n getCenterPoint(useFinalPosition) {\n const {x, y} = this.getProps(['x', 'y'], useFinalPosition);\n return {x, y};\n }\n size(options) {\n options = options || this.options || {};\n let radius = options.radius || 0;\n radius = Math.max(radius, radius && options.hoverRadius || 0);\n const borderWidth = radius && options.borderWidth || 0;\n return (radius + borderWidth) * 2;\n }\n draw(ctx, area) {\n const options = this.options;\n if (this.skip || options.radius < 0.1 || !_isPointInArea(this, area, this.size(options) / 2)) {\n return;\n }\n ctx.strokeStyle = options.borderColor;\n ctx.lineWidth = options.borderWidth;\n ctx.fillStyle = options.backgroundColor;\n drawPoint(ctx, options, this.x, this.y);\n }\n getRange() {\n const options = this.options || {};\n return options.radius + options.hitRadius;\n }\n}\nPointElement.id = 'point';\nPointElement.defaults = {\n borderWidth: 1,\n hitRadius: 1,\n hoverBorderWidth: 1,\n hoverRadius: 4,\n pointStyle: 'circle',\n radius: 3,\n rotation: 0\n};\nPointElement.defaultRoutes = {\n backgroundColor: 'backgroundColor',\n borderColor: 'borderColor'\n};\n\nfunction getBarBounds(bar, useFinalPosition) {\n const {x, y, base, width, height} = bar.getProps(['x', 'y', 'base', 'width', 'height'], useFinalPosition);\n let left, right, top, bottom, half;\n if (bar.horizontal) {\n half = height / 2;\n left = Math.min(x, base);\n right = Math.max(x, base);\n top = y - half;\n bottom = y + half;\n } else {\n half = width / 2;\n left = x - half;\n right = x + half;\n top = Math.min(y, base);\n bottom = Math.max(y, base);\n }\n return {left, top, right, bottom};\n}\nfunction skipOrLimit(skip, value, min, max) {\n return skip ? 0 : _limitValue(value, min, max);\n}\nfunction parseBorderWidth(bar, maxW, maxH) {\n const value = bar.options.borderWidth;\n const skip = bar.borderSkipped;\n const o = toTRBL(value);\n return {\n t: skipOrLimit(skip.top, o.top, 0, maxH),\n r: skipOrLimit(skip.right, o.right, 0, maxW),\n b: skipOrLimit(skip.bottom, o.bottom, 0, maxH),\n l: skipOrLimit(skip.left, o.left, 0, maxW)\n };\n}\nfunction parseBorderRadius(bar, maxW, maxH) {\n const {enableBorderRadius} = bar.getProps(['enableBorderRadius']);\n const value = bar.options.borderRadius;\n const o = toTRBLCorners(value);\n const maxR = Math.min(maxW, maxH);\n const skip = bar.borderSkipped;\n const enableBorder = enableBorderRadius || isObject(value);\n return {\n topLeft: skipOrLimit(!enableBorder || skip.top || skip.left, o.topLeft, 0, maxR),\n topRight: skipOrLimit(!enableBorder || skip.top || skip.right, o.topRight, 0, maxR),\n bottomLeft: skipOrLimit(!enableBorder || skip.bottom || skip.left, o.bottomLeft, 0, maxR),\n bottomRight: skipOrLimit(!enableBorder || skip.bottom || skip.right, o.bottomRight, 0, maxR)\n };\n}\nfunction boundingRects(bar) {\n const bounds = getBarBounds(bar);\n const width = bounds.right - bounds.left;\n const height = bounds.bottom - bounds.top;\n const border = parseBorderWidth(bar, width / 2, height / 2);\n const radius = parseBorderRadius(bar, width / 2, height / 2);\n return {\n outer: {\n x: bounds.left,\n y: bounds.top,\n w: width,\n h: height,\n radius\n },\n inner: {\n x: bounds.left + border.l,\n y: bounds.top + border.t,\n w: width - border.l - border.r,\n h: height - border.t - border.b,\n radius: {\n topLeft: Math.max(0, radius.topLeft - Math.max(border.t, border.l)),\n topRight: Math.max(0, radius.topRight - Math.max(border.t, border.r)),\n bottomLeft: Math.max(0, radius.bottomLeft - Math.max(border.b, border.l)),\n bottomRight: Math.max(0, radius.bottomRight - Math.max(border.b, border.r)),\n }\n }\n };\n}\nfunction inRange(bar, x, y, useFinalPosition) {\n const skipX = x === null;\n const skipY = y === null;\n const skipBoth = skipX && skipY;\n const bounds = bar && !skipBoth && getBarBounds(bar, useFinalPosition);\n return bounds\n\t\t&& (skipX || x >= bounds.left && x <= bounds.right)\n\t\t&& (skipY || y >= bounds.top && y <= bounds.bottom);\n}\nfunction hasRadius(radius) {\n return radius.topLeft || radius.topRight || radius.bottomLeft || radius.bottomRight;\n}\nfunction addNormalRectPath(ctx, rect) {\n ctx.rect(rect.x, rect.y, rect.w, rect.h);\n}\nfunction inflateRect(rect, amount, refRect = {}) {\n const x = rect.x !== refRect.x ? -amount : 0;\n const y = rect.y !== refRect.y ? -amount : 0;\n const w = (rect.x + rect.w !== refRect.x + refRect.w ? amount : 0) - x;\n const h = (rect.y + rect.h !== refRect.y + refRect.h ? amount : 0) - y;\n return {\n x: rect.x + x,\n y: rect.y + y,\n w: rect.w + w,\n h: rect.h + h,\n radius: rect.radius\n };\n}\nclass BarElement extends Element {\n constructor(cfg) {\n super();\n this.options = undefined;\n this.horizontal = undefined;\n this.base = undefined;\n this.width = undefined;\n this.height = undefined;\n this.inflateAmount = undefined;\n if (cfg) {\n Object.assign(this, cfg);\n }\n }\n draw(ctx) {\n const {inflateAmount, options: {borderColor, backgroundColor}} = this;\n const {inner, outer} = boundingRects(this);\n const addRectPath = hasRadius(outer.radius) ? addRoundedRectPath : addNormalRectPath;\n ctx.save();\n if (outer.w !== inner.w || outer.h !== inner.h) {\n ctx.beginPath();\n addRectPath(ctx, inflateRect(outer, inflateAmount, inner));\n ctx.clip();\n addRectPath(ctx, inflateRect(inner, -inflateAmount, outer));\n ctx.fillStyle = borderColor;\n ctx.fill('evenodd');\n }\n ctx.beginPath();\n addRectPath(ctx, inflateRect(inner, inflateAmount));\n ctx.fillStyle = backgroundColor;\n ctx.fill();\n ctx.restore();\n }\n inRange(mouseX, mouseY, useFinalPosition) {\n return inRange(this, mouseX, mouseY, useFinalPosition);\n }\n inXRange(mouseX, useFinalPosition) {\n return inRange(this, mouseX, null, useFinalPosition);\n }\n inYRange(mouseY, useFinalPosition) {\n return inRange(this, null, mouseY, useFinalPosition);\n }\n getCenterPoint(useFinalPosition) {\n const {x, y, base, horizontal} = this.getProps(['x', 'y', 'base', 'horizontal'], useFinalPosition);\n return {\n x: horizontal ? (x + base) / 2 : x,\n y: horizontal ? y : (y + base) / 2\n };\n }\n getRange(axis) {\n return axis === 'x' ? this.width / 2 : this.height / 2;\n }\n}\nBarElement.id = 'bar';\nBarElement.defaults = {\n borderSkipped: 'start',\n borderWidth: 0,\n borderRadius: 0,\n inflateAmount: 'auto',\n pointStyle: undefined\n};\nBarElement.defaultRoutes = {\n backgroundColor: 'backgroundColor',\n borderColor: 'borderColor'\n};\n\nvar elements = /*#__PURE__*/Object.freeze({\n__proto__: null,\nArcElement: ArcElement,\nLineElement: LineElement,\nPointElement: PointElement,\nBarElement: BarElement\n});\n\nfunction lttbDecimation(data, start, count, availableWidth, options) {\n const samples = options.samples || availableWidth;\n if (samples >= count) {\n return data.slice(start, start + count);\n }\n const decimated = [];\n const bucketWidth = (count - 2) / (samples - 2);\n let sampledIndex = 0;\n const endIndex = start + count - 1;\n let a = start;\n let i, maxAreaPoint, maxArea, area, nextA;\n decimated[sampledIndex++] = data[a];\n for (i = 0; i < samples - 2; i++) {\n let avgX = 0;\n let avgY = 0;\n let j;\n const avgRangeStart = Math.floor((i + 1) * bucketWidth) + 1 + start;\n const avgRangeEnd = Math.min(Math.floor((i + 2) * bucketWidth) + 1, count) + start;\n const avgRangeLength = avgRangeEnd - avgRangeStart;\n for (j = avgRangeStart; j < avgRangeEnd; j++) {\n avgX += data[j].x;\n avgY += data[j].y;\n }\n avgX /= avgRangeLength;\n avgY /= avgRangeLength;\n const rangeOffs = Math.floor(i * bucketWidth) + 1 + start;\n const rangeTo = Math.min(Math.floor((i + 1) * bucketWidth) + 1, count) + start;\n const {x: pointAx, y: pointAy} = data[a];\n maxArea = area = -1;\n for (j = rangeOffs; j < rangeTo; j++) {\n area = 0.5 * Math.abs(\n (pointAx - avgX) * (data[j].y - pointAy) -\n (pointAx - data[j].x) * (avgY - pointAy)\n );\n if (area > maxArea) {\n maxArea = area;\n maxAreaPoint = data[j];\n nextA = j;\n }\n }\n decimated[sampledIndex++] = maxAreaPoint;\n a = nextA;\n }\n decimated[sampledIndex++] = data[endIndex];\n return decimated;\n}\nfunction minMaxDecimation(data, start, count, availableWidth) {\n let avgX = 0;\n let countX = 0;\n let i, point, x, y, prevX, minIndex, maxIndex, startIndex, minY, maxY;\n const decimated = [];\n const endIndex = start + count - 1;\n const xMin = data[start].x;\n const xMax = data[endIndex].x;\n const dx = xMax - xMin;\n for (i = start; i < start + count; ++i) {\n point = data[i];\n x = (point.x - xMin) / dx * availableWidth;\n y = point.y;\n const truncX = x | 0;\n if (truncX === prevX) {\n if (y < minY) {\n minY = y;\n minIndex = i;\n } else if (y > maxY) {\n maxY = y;\n maxIndex = i;\n }\n avgX = (countX * avgX + point.x) / ++countX;\n } else {\n const lastIndex = i - 1;\n if (!isNullOrUndef(minIndex) && !isNullOrUndef(maxIndex)) {\n const intermediateIndex1 = Math.min(minIndex, maxIndex);\n const intermediateIndex2 = Math.max(minIndex, maxIndex);\n if (intermediateIndex1 !== startIndex && intermediateIndex1 !== lastIndex) {\n decimated.push({\n ...data[intermediateIndex1],\n x: avgX,\n });\n }\n if (intermediateIndex2 !== startIndex && intermediateIndex2 !== lastIndex) {\n decimated.push({\n ...data[intermediateIndex2],\n x: avgX\n });\n }\n }\n if (i > 0 && lastIndex !== startIndex) {\n decimated.push(data[lastIndex]);\n }\n decimated.push(point);\n prevX = truncX;\n countX = 0;\n minY = maxY = y;\n minIndex = maxIndex = startIndex = i;\n }\n }\n return decimated;\n}\nfunction cleanDecimatedDataset(dataset) {\n if (dataset._decimated) {\n const data = dataset._data;\n delete dataset._decimated;\n delete dataset._data;\n Object.defineProperty(dataset, 'data', {value: data});\n }\n}\nfunction cleanDecimatedData(chart) {\n chart.data.datasets.forEach((dataset) => {\n cleanDecimatedDataset(dataset);\n });\n}\nfunction getStartAndCountOfVisiblePointsSimplified(meta, points) {\n const pointCount = points.length;\n let start = 0;\n let count;\n const {iScale} = meta;\n const {min, max, minDefined, maxDefined} = iScale.getUserBounds();\n if (minDefined) {\n start = _limitValue(_lookupByKey(points, iScale.axis, min).lo, 0, pointCount - 1);\n }\n if (maxDefined) {\n count = _limitValue(_lookupByKey(points, iScale.axis, max).hi + 1, start, pointCount) - start;\n } else {\n count = pointCount - start;\n }\n return {start, count};\n}\nvar plugin_decimation = {\n id: 'decimation',\n defaults: {\n algorithm: 'min-max',\n enabled: false,\n },\n beforeElementsUpdate: (chart, args, options) => {\n if (!options.enabled) {\n cleanDecimatedData(chart);\n return;\n }\n const availableWidth = chart.width;\n chart.data.datasets.forEach((dataset, datasetIndex) => {\n const {_data, indexAxis} = dataset;\n const meta = chart.getDatasetMeta(datasetIndex);\n const data = _data || dataset.data;\n if (resolve([indexAxis, chart.options.indexAxis]) === 'y') {\n return;\n }\n if (meta.type !== 'line') {\n return;\n }\n const xAxis = chart.scales[meta.xAxisID];\n if (xAxis.type !== 'linear' && xAxis.type !== 'time') {\n return;\n }\n if (chart.options.parsing) {\n return;\n }\n let {start, count} = getStartAndCountOfVisiblePointsSimplified(meta, data);\n const threshold = options.threshold || 4 * availableWidth;\n if (count <= threshold) {\n cleanDecimatedDataset(dataset);\n return;\n }\n if (isNullOrUndef(_data)) {\n dataset._data = data;\n delete dataset.data;\n Object.defineProperty(dataset, 'data', {\n configurable: true,\n enumerable: true,\n get: function() {\n return this._decimated;\n },\n set: function(d) {\n this._data = d;\n }\n });\n }\n let decimated;\n switch (options.algorithm) {\n case 'lttb':\n decimated = lttbDecimation(data, start, count, availableWidth, options);\n break;\n case 'min-max':\n decimated = minMaxDecimation(data, start, count, availableWidth);\n break;\n default:\n throw new Error(`Unsupported decimation algorithm '${options.algorithm}'`);\n }\n dataset._decimated = decimated;\n });\n },\n destroy(chart) {\n cleanDecimatedData(chart);\n }\n};\n\nfunction getLineByIndex(chart, index) {\n const meta = chart.getDatasetMeta(index);\n const visible = meta && chart.isDatasetVisible(index);\n return visible ? meta.dataset : null;\n}\nfunction parseFillOption(line) {\n const options = line.options;\n const fillOption = options.fill;\n let fill = valueOrDefault(fillOption && fillOption.target, fillOption);\n if (fill === undefined) {\n fill = !!options.backgroundColor;\n }\n if (fill === false || fill === null) {\n return false;\n }\n if (fill === true) {\n return 'origin';\n }\n return fill;\n}\nfunction decodeFill(line, index, count) {\n const fill = parseFillOption(line);\n if (isObject(fill)) {\n return isNaN(fill.value) ? false : fill;\n }\n let target = parseFloat(fill);\n if (isNumberFinite(target) && Math.floor(target) === target) {\n if (fill[0] === '-' || fill[0] === '+') {\n target = index + target;\n }\n if (target === index || target < 0 || target >= count) {\n return false;\n }\n return target;\n }\n return ['origin', 'start', 'end', 'stack', 'shape'].indexOf(fill) >= 0 && fill;\n}\nfunction computeLinearBoundary(source) {\n const {scale = {}, fill} = source;\n let target = null;\n let horizontal;\n if (fill === 'start') {\n target = scale.bottom;\n } else if (fill === 'end') {\n target = scale.top;\n } else if (isObject(fill)) {\n target = scale.getPixelForValue(fill.value);\n } else if (scale.getBasePixel) {\n target = scale.getBasePixel();\n }\n if (isNumberFinite(target)) {\n horizontal = scale.isHorizontal();\n return {\n x: horizontal ? target : null,\n y: horizontal ? null : target\n };\n }\n return null;\n}\nclass simpleArc {\n constructor(opts) {\n this.x = opts.x;\n this.y = opts.y;\n this.radius = opts.radius;\n }\n pathSegment(ctx, bounds, opts) {\n const {x, y, radius} = this;\n bounds = bounds || {start: 0, end: TAU};\n ctx.arc(x, y, radius, bounds.end, bounds.start, true);\n return !opts.bounds;\n }\n interpolate(point) {\n const {x, y, radius} = this;\n const angle = point.angle;\n return {\n x: x + Math.cos(angle) * radius,\n y: y + Math.sin(angle) * radius,\n angle\n };\n }\n}\nfunction computeCircularBoundary(source) {\n const {scale, fill} = source;\n const options = scale.options;\n const length = scale.getLabels().length;\n const target = [];\n const start = options.reverse ? scale.max : scale.min;\n const end = options.reverse ? scale.min : scale.max;\n let i, center, value;\n if (fill === 'start') {\n value = start;\n } else if (fill === 'end') {\n value = end;\n } else if (isObject(fill)) {\n value = fill.value;\n } else {\n value = scale.getBaseValue();\n }\n if (options.grid.circular) {\n center = scale.getPointPositionForValue(0, start);\n return new simpleArc({\n x: center.x,\n y: center.y,\n radius: scale.getDistanceFromCenterForValue(value)\n });\n }\n for (i = 0; i < length; ++i) {\n target.push(scale.getPointPositionForValue(i, value));\n }\n return target;\n}\nfunction computeBoundary(source) {\n const scale = source.scale || {};\n if (scale.getPointPositionForValue) {\n return computeCircularBoundary(source);\n }\n return computeLinearBoundary(source);\n}\nfunction findSegmentEnd(start, end, points) {\n for (;end > start; end--) {\n const point = points[end];\n if (!isNaN(point.x) && !isNaN(point.y)) {\n break;\n }\n }\n return end;\n}\nfunction pointsFromSegments(boundary, line) {\n const {x = null, y = null} = boundary || {};\n const linePoints = line.points;\n const points = [];\n line.segments.forEach(({start, end}) => {\n end = findSegmentEnd(start, end, linePoints);\n const first = linePoints[start];\n const last = linePoints[end];\n if (y !== null) {\n points.push({x: first.x, y});\n points.push({x: last.x, y});\n } else if (x !== null) {\n points.push({x, y: first.y});\n points.push({x, y: last.y});\n }\n });\n return points;\n}\nfunction buildStackLine(source) {\n const {scale, index, line} = source;\n const points = [];\n const segments = line.segments;\n const sourcePoints = line.points;\n const linesBelow = getLinesBelow(scale, index);\n linesBelow.push(createBoundaryLine({x: null, y: scale.bottom}, line));\n for (let i = 0; i < segments.length; i++) {\n const segment = segments[i];\n for (let j = segment.start; j <= segment.end; j++) {\n addPointsBelow(points, sourcePoints[j], linesBelow);\n }\n }\n return new LineElement({points, options: {}});\n}\nfunction getLinesBelow(scale, index) {\n const below = [];\n const metas = scale.getMatchingVisibleMetas('line');\n for (let i = 0; i < metas.length; i++) {\n const meta = metas[i];\n if (meta.index === index) {\n break;\n }\n if (!meta.hidden) {\n below.unshift(meta.dataset);\n }\n }\n return below;\n}\nfunction addPointsBelow(points, sourcePoint, linesBelow) {\n const postponed = [];\n for (let j = 0; j < linesBelow.length; j++) {\n const line = linesBelow[j];\n const {first, last, point} = findPoint(line, sourcePoint, 'x');\n if (!point || (first && last)) {\n continue;\n }\n if (first) {\n postponed.unshift(point);\n } else {\n points.push(point);\n if (!last) {\n break;\n }\n }\n }\n points.push(...postponed);\n}\nfunction findPoint(line, sourcePoint, property) {\n const point = line.interpolate(sourcePoint, property);\n if (!point) {\n return {};\n }\n const pointValue = point[property];\n const segments = line.segments;\n const linePoints = line.points;\n let first = false;\n let last = false;\n for (let i = 0; i < segments.length; i++) {\n const segment = segments[i];\n const firstValue = linePoints[segment.start][property];\n const lastValue = linePoints[segment.end][property];\n if (pointValue >= firstValue && pointValue <= lastValue) {\n first = pointValue === firstValue;\n last = pointValue === lastValue;\n break;\n }\n }\n return {first, last, point};\n}\nfunction getTarget(source) {\n const {chart, fill, line} = source;\n if (isNumberFinite(fill)) {\n return getLineByIndex(chart, fill);\n }\n if (fill === 'stack') {\n return buildStackLine(source);\n }\n if (fill === 'shape') {\n return true;\n }\n const boundary = computeBoundary(source);\n if (boundary instanceof simpleArc) {\n return boundary;\n }\n return createBoundaryLine(boundary, line);\n}\nfunction createBoundaryLine(boundary, line) {\n let points = [];\n let _loop = false;\n if (isArray(boundary)) {\n _loop = true;\n points = boundary;\n } else {\n points = pointsFromSegments(boundary, line);\n }\n return points.length ? new LineElement({\n points,\n options: {tension: 0},\n _loop,\n _fullLoop: _loop\n }) : null;\n}\nfunction resolveTarget(sources, index, propagate) {\n const source = sources[index];\n let fill = source.fill;\n const visited = [index];\n let target;\n if (!propagate) {\n return fill;\n }\n while (fill !== false && visited.indexOf(fill) === -1) {\n if (!isNumberFinite(fill)) {\n return fill;\n }\n target = sources[fill];\n if (!target) {\n return false;\n }\n if (target.visible) {\n return fill;\n }\n visited.push(fill);\n fill = target.fill;\n }\n return false;\n}\nfunction _clip(ctx, target, clipY) {\n ctx.beginPath();\n target.path(ctx);\n ctx.lineTo(target.last().x, clipY);\n ctx.lineTo(target.first().x, clipY);\n ctx.closePath();\n ctx.clip();\n}\nfunction getBounds(property, first, last, loop) {\n if (loop) {\n return;\n }\n let start = first[property];\n let end = last[property];\n if (property === 'angle') {\n start = _normalizeAngle(start);\n end = _normalizeAngle(end);\n }\n return {property, start, end};\n}\nfunction _getEdge(a, b, prop, fn) {\n if (a && b) {\n return fn(a[prop], b[prop]);\n }\n return a ? a[prop] : b ? b[prop] : 0;\n}\nfunction _segments(line, target, property) {\n const segments = line.segments;\n const points = line.points;\n const tpoints = target.points;\n const parts = [];\n for (const segment of segments) {\n let {start, end} = segment;\n end = findSegmentEnd(start, end, points);\n const bounds = getBounds(property, points[start], points[end], segment.loop);\n if (!target.segments) {\n parts.push({\n source: segment,\n target: bounds,\n start: points[start],\n end: points[end]\n });\n continue;\n }\n const targetSegments = _boundSegments(target, bounds);\n for (const tgt of targetSegments) {\n const subBounds = getBounds(property, tpoints[tgt.start], tpoints[tgt.end], tgt.loop);\n const fillSources = _boundSegment(segment, points, subBounds);\n for (const fillSource of fillSources) {\n parts.push({\n source: fillSource,\n target: tgt,\n start: {\n [property]: _getEdge(bounds, subBounds, 'start', Math.max)\n },\n end: {\n [property]: _getEdge(bounds, subBounds, 'end', Math.min)\n }\n });\n }\n }\n }\n return parts;\n}\nfunction clipBounds(ctx, scale, bounds) {\n const {top, bottom} = scale.chart.chartArea;\n const {property, start, end} = bounds || {};\n if (property === 'x') {\n ctx.beginPath();\n ctx.rect(start, top, end - start, bottom - top);\n ctx.clip();\n }\n}\nfunction interpolatedLineTo(ctx, target, point, property) {\n const interpolatedPoint = target.interpolate(point, property);\n if (interpolatedPoint) {\n ctx.lineTo(interpolatedPoint.x, interpolatedPoint.y);\n }\n}\nfunction _fill(ctx, cfg) {\n const {line, target, property, color, scale} = cfg;\n const segments = _segments(line, target, property);\n for (const {source: src, target: tgt, start, end} of segments) {\n const {style: {backgroundColor = color} = {}} = src;\n const notShape = target !== true;\n ctx.save();\n ctx.fillStyle = backgroundColor;\n clipBounds(ctx, scale, notShape && getBounds(property, start, end));\n ctx.beginPath();\n const lineLoop = !!line.pathSegment(ctx, src);\n let loop;\n if (notShape) {\n if (lineLoop) {\n ctx.closePath();\n } else {\n interpolatedLineTo(ctx, target, end, property);\n }\n const targetLoop = !!target.pathSegment(ctx, tgt, {move: lineLoop, reverse: true});\n loop = lineLoop && targetLoop;\n if (!loop) {\n interpolatedLineTo(ctx, target, start, property);\n }\n }\n ctx.closePath();\n ctx.fill(loop ? 'evenodd' : 'nonzero');\n ctx.restore();\n }\n}\nfunction doFill(ctx, cfg) {\n const {line, target, above, below, area, scale} = cfg;\n const property = line._loop ? 'angle' : cfg.axis;\n ctx.save();\n if (property === 'x' && below !== above) {\n _clip(ctx, target, area.top);\n _fill(ctx, {line, target, color: above, scale, property});\n ctx.restore();\n ctx.save();\n _clip(ctx, target, area.bottom);\n }\n _fill(ctx, {line, target, color: below, scale, property});\n ctx.restore();\n}\nfunction drawfill(ctx, source, area) {\n const target = getTarget(source);\n const {line, scale, axis} = source;\n const lineOpts = line.options;\n const fillOption = lineOpts.fill;\n const color = lineOpts.backgroundColor;\n const {above = color, below = color} = fillOption || {};\n if (target && line.points.length) {\n clipArea(ctx, area);\n doFill(ctx, {line, target, above, below, area, scale, axis});\n unclipArea(ctx);\n }\n}\nvar plugin_filler = {\n id: 'filler',\n afterDatasetsUpdate(chart, _args, options) {\n const count = (chart.data.datasets || []).length;\n const sources = [];\n let meta, i, line, source;\n for (i = 0; i < count; ++i) {\n meta = chart.getDatasetMeta(i);\n line = meta.dataset;\n source = null;\n if (line && line.options && line instanceof LineElement) {\n source = {\n visible: chart.isDatasetVisible(i),\n index: i,\n fill: decodeFill(line, i, count),\n chart,\n axis: meta.controller.options.indexAxis,\n scale: meta.vScale,\n line,\n };\n }\n meta.$filler = source;\n sources.push(source);\n }\n for (i = 0; i < count; ++i) {\n source = sources[i];\n if (!source || source.fill === false) {\n continue;\n }\n source.fill = resolveTarget(sources, i, options.propagate);\n }\n },\n beforeDraw(chart, _args, options) {\n const draw = options.drawTime === 'beforeDraw';\n const metasets = chart.getSortedVisibleDatasetMetas();\n const area = chart.chartArea;\n for (let i = metasets.length - 1; i >= 0; --i) {\n const source = metasets[i].$filler;\n if (!source) {\n continue;\n }\n source.line.updateControlPoints(area, source.axis);\n if (draw) {\n drawfill(chart.ctx, source, area);\n }\n }\n },\n beforeDatasetsDraw(chart, _args, options) {\n if (options.drawTime !== 'beforeDatasetsDraw') {\n return;\n }\n const metasets = chart.getSortedVisibleDatasetMetas();\n for (let i = metasets.length - 1; i >= 0; --i) {\n const source = metasets[i].$filler;\n if (source) {\n drawfill(chart.ctx, source, chart.chartArea);\n }\n }\n },\n beforeDatasetDraw(chart, args, options) {\n const source = args.meta.$filler;\n if (!source || source.fill === false || options.drawTime !== 'beforeDatasetDraw') {\n return;\n }\n drawfill(chart.ctx, source, chart.chartArea);\n },\n defaults: {\n propagate: true,\n drawTime: 'beforeDatasetDraw'\n }\n};\n\nconst getBoxSize = (labelOpts, fontSize) => {\n let {boxHeight = fontSize, boxWidth = fontSize} = labelOpts;\n if (labelOpts.usePointStyle) {\n boxHeight = Math.min(boxHeight, fontSize);\n boxWidth = Math.min(boxWidth, fontSize);\n }\n return {\n boxWidth,\n boxHeight,\n itemHeight: Math.max(fontSize, boxHeight)\n };\n};\nconst itemsEqual = (a, b) => a !== null && b !== null && a.datasetIndex === b.datasetIndex && a.index === b.index;\nclass Legend extends Element {\n constructor(config) {\n super();\n this._added = false;\n this.legendHitBoxes = [];\n this._hoveredItem = null;\n this.doughnutMode = false;\n this.chart = config.chart;\n this.options = config.options;\n this.ctx = config.ctx;\n this.legendItems = undefined;\n this.columnSizes = undefined;\n this.lineWidths = undefined;\n this.maxHeight = undefined;\n this.maxWidth = undefined;\n this.top = undefined;\n this.bottom = undefined;\n this.left = undefined;\n this.right = undefined;\n this.height = undefined;\n this.width = undefined;\n this._margins = undefined;\n this.position = undefined;\n this.weight = undefined;\n this.fullSize = undefined;\n }\n update(maxWidth, maxHeight, margins) {\n this.maxWidth = maxWidth;\n this.maxHeight = maxHeight;\n this._margins = margins;\n this.setDimensions();\n this.buildLabels();\n this.fit();\n }\n setDimensions() {\n if (this.isHorizontal()) {\n this.width = this.maxWidth;\n this.left = this._margins.left;\n this.right = this.width;\n } else {\n this.height = this.maxHeight;\n this.top = this._margins.top;\n this.bottom = this.height;\n }\n }\n buildLabels() {\n const labelOpts = this.options.labels || {};\n let legendItems = callback(labelOpts.generateLabels, [this.chart], this) || [];\n if (labelOpts.filter) {\n legendItems = legendItems.filter((item) => labelOpts.filter(item, this.chart.data));\n }\n if (labelOpts.sort) {\n legendItems = legendItems.sort((a, b) => labelOpts.sort(a, b, this.chart.data));\n }\n if (this.options.reverse) {\n legendItems.reverse();\n }\n this.legendItems = legendItems;\n }\n fit() {\n const {options, ctx} = this;\n if (!options.display) {\n this.width = this.height = 0;\n return;\n }\n const labelOpts = options.labels;\n const labelFont = toFont(labelOpts.font);\n const fontSize = labelFont.size;\n const titleHeight = this._computeTitleHeight();\n const {boxWidth, itemHeight} = getBoxSize(labelOpts, fontSize);\n let width, height;\n ctx.font = labelFont.string;\n if (this.isHorizontal()) {\n width = this.maxWidth;\n height = this._fitRows(titleHeight, fontSize, boxWidth, itemHeight) + 10;\n } else {\n height = this.maxHeight;\n width = this._fitCols(titleHeight, fontSize, boxWidth, itemHeight) + 10;\n }\n this.width = Math.min(width, options.maxWidth || this.maxWidth);\n this.height = Math.min(height, options.maxHeight || this.maxHeight);\n }\n _fitRows(titleHeight, fontSize, boxWidth, itemHeight) {\n const {ctx, maxWidth, options: {labels: {padding}}} = this;\n const hitboxes = this.legendHitBoxes = [];\n const lineWidths = this.lineWidths = [0];\n const lineHeight = itemHeight + padding;\n let totalHeight = titleHeight;\n ctx.textAlign = 'left';\n ctx.textBaseline = 'middle';\n let row = -1;\n let top = -lineHeight;\n this.legendItems.forEach((legendItem, i) => {\n const itemWidth = boxWidth + (fontSize / 2) + ctx.measureText(legendItem.text).width;\n if (i === 0 || lineWidths[lineWidths.length - 1] + itemWidth + 2 * padding > maxWidth) {\n totalHeight += lineHeight;\n lineWidths[lineWidths.length - (i > 0 ? 0 : 1)] = 0;\n top += lineHeight;\n row++;\n }\n hitboxes[i] = {left: 0, top, row, width: itemWidth, height: itemHeight};\n lineWidths[lineWidths.length - 1] += itemWidth + padding;\n });\n return totalHeight;\n }\n _fitCols(titleHeight, fontSize, boxWidth, itemHeight) {\n const {ctx, maxHeight, options: {labels: {padding}}} = this;\n const hitboxes = this.legendHitBoxes = [];\n const columnSizes = this.columnSizes = [];\n const heightLimit = maxHeight - titleHeight;\n let totalWidth = padding;\n let currentColWidth = 0;\n let currentColHeight = 0;\n let left = 0;\n let col = 0;\n this.legendItems.forEach((legendItem, i) => {\n const itemWidth = boxWidth + (fontSize / 2) + ctx.measureText(legendItem.text).width;\n if (i > 0 && currentColHeight + itemHeight + 2 * padding > heightLimit) {\n totalWidth += currentColWidth + padding;\n columnSizes.push({width: currentColWidth, height: currentColHeight});\n left += currentColWidth + padding;\n col++;\n currentColWidth = currentColHeight = 0;\n }\n hitboxes[i] = {left, top: currentColHeight, col, width: itemWidth, height: itemHeight};\n currentColWidth = Math.max(currentColWidth, itemWidth);\n currentColHeight += itemHeight + padding;\n });\n totalWidth += currentColWidth;\n columnSizes.push({width: currentColWidth, height: currentColHeight});\n return totalWidth;\n }\n adjustHitBoxes() {\n if (!this.options.display) {\n return;\n }\n const titleHeight = this._computeTitleHeight();\n const {legendHitBoxes: hitboxes, options: {align, labels: {padding}, rtl}} = this;\n const rtlHelper = getRtlAdapter(rtl, this.left, this.width);\n if (this.isHorizontal()) {\n let row = 0;\n let left = _alignStartEnd(align, this.left + padding, this.right - this.lineWidths[row]);\n for (const hitbox of hitboxes) {\n if (row !== hitbox.row) {\n row = hitbox.row;\n left = _alignStartEnd(align, this.left + padding, this.right - this.lineWidths[row]);\n }\n hitbox.top += this.top + titleHeight + padding;\n hitbox.left = rtlHelper.leftForLtr(rtlHelper.x(left), hitbox.width);\n left += hitbox.width + padding;\n }\n } else {\n let col = 0;\n let top = _alignStartEnd(align, this.top + titleHeight + padding, this.bottom - this.columnSizes[col].height);\n for (const hitbox of hitboxes) {\n if (hitbox.col !== col) {\n col = hitbox.col;\n top = _alignStartEnd(align, this.top + titleHeight + padding, this.bottom - this.columnSizes[col].height);\n }\n hitbox.top = top;\n hitbox.left += this.left + padding;\n hitbox.left = rtlHelper.leftForLtr(rtlHelper.x(hitbox.left), hitbox.width);\n top += hitbox.height + padding;\n }\n }\n }\n isHorizontal() {\n return this.options.position === 'top' || this.options.position === 'bottom';\n }\n draw() {\n if (this.options.display) {\n const ctx = this.ctx;\n clipArea(ctx, this);\n this._draw();\n unclipArea(ctx);\n }\n }\n _draw() {\n const {options: opts, columnSizes, lineWidths, ctx} = this;\n const {align, labels: labelOpts} = opts;\n const defaultColor = defaults.color;\n const rtlHelper = getRtlAdapter(opts.rtl, this.left, this.width);\n const labelFont = toFont(labelOpts.font);\n const {color: fontColor, padding} = labelOpts;\n const fontSize = labelFont.size;\n const halfFontSize = fontSize / 2;\n let cursor;\n this.drawTitle();\n ctx.textAlign = rtlHelper.textAlign('left');\n ctx.textBaseline = 'middle';\n ctx.lineWidth = 0.5;\n ctx.font = labelFont.string;\n const {boxWidth, boxHeight, itemHeight} = getBoxSize(labelOpts, fontSize);\n const drawLegendBox = function(x, y, legendItem) {\n if (isNaN(boxWidth) || boxWidth <= 0 || isNaN(boxHeight) || boxHeight < 0) {\n return;\n }\n ctx.save();\n const lineWidth = valueOrDefault(legendItem.lineWidth, 1);\n ctx.fillStyle = valueOrDefault(legendItem.fillStyle, defaultColor);\n ctx.lineCap = valueOrDefault(legendItem.lineCap, 'butt');\n ctx.lineDashOffset = valueOrDefault(legendItem.lineDashOffset, 0);\n ctx.lineJoin = valueOrDefault(legendItem.lineJoin, 'miter');\n ctx.lineWidth = lineWidth;\n ctx.strokeStyle = valueOrDefault(legendItem.strokeStyle, defaultColor);\n ctx.setLineDash(valueOrDefault(legendItem.lineDash, []));\n if (labelOpts.usePointStyle) {\n const drawOptions = {\n radius: boxWidth * Math.SQRT2 / 2,\n pointStyle: legendItem.pointStyle,\n rotation: legendItem.rotation,\n borderWidth: lineWidth\n };\n const centerX = rtlHelper.xPlus(x, boxWidth / 2);\n const centerY = y + halfFontSize;\n drawPoint(ctx, drawOptions, centerX, centerY);\n } else {\n const yBoxTop = y + Math.max((fontSize - boxHeight) / 2, 0);\n const xBoxLeft = rtlHelper.leftForLtr(x, boxWidth);\n const borderRadius = toTRBLCorners(legendItem.borderRadius);\n ctx.beginPath();\n if (Object.values(borderRadius).some(v => v !== 0)) {\n addRoundedRectPath(ctx, {\n x: xBoxLeft,\n y: yBoxTop,\n w: boxWidth,\n h: boxHeight,\n radius: borderRadius,\n });\n } else {\n ctx.rect(xBoxLeft, yBoxTop, boxWidth, boxHeight);\n }\n ctx.fill();\n if (lineWidth !== 0) {\n ctx.stroke();\n }\n }\n ctx.restore();\n };\n const fillText = function(x, y, legendItem) {\n renderText(ctx, legendItem.text, x, y + (itemHeight / 2), labelFont, {\n strikethrough: legendItem.hidden,\n textAlign: rtlHelper.textAlign(legendItem.textAlign)\n });\n };\n const isHorizontal = this.isHorizontal();\n const titleHeight = this._computeTitleHeight();\n if (isHorizontal) {\n cursor = {\n x: _alignStartEnd(align, this.left + padding, this.right - lineWidths[0]),\n y: this.top + padding + titleHeight,\n line: 0\n };\n } else {\n cursor = {\n x: this.left + padding,\n y: _alignStartEnd(align, this.top + titleHeight + padding, this.bottom - columnSizes[0].height),\n line: 0\n };\n }\n overrideTextDirection(this.ctx, opts.textDirection);\n const lineHeight = itemHeight + padding;\n this.legendItems.forEach((legendItem, i) => {\n ctx.strokeStyle = legendItem.fontColor || fontColor;\n ctx.fillStyle = legendItem.fontColor || fontColor;\n const textWidth = ctx.measureText(legendItem.text).width;\n const textAlign = rtlHelper.textAlign(legendItem.textAlign || (legendItem.textAlign = labelOpts.textAlign));\n const width = boxWidth + halfFontSize + textWidth;\n let x = cursor.x;\n let y = cursor.y;\n rtlHelper.setWidth(this.width);\n if (isHorizontal) {\n if (i > 0 && x + width + padding > this.right) {\n y = cursor.y += lineHeight;\n cursor.line++;\n x = cursor.x = _alignStartEnd(align, this.left + padding, this.right - lineWidths[cursor.line]);\n }\n } else if (i > 0 && y + lineHeight > this.bottom) {\n x = cursor.x = x + columnSizes[cursor.line].width + padding;\n cursor.line++;\n y = cursor.y = _alignStartEnd(align, this.top + titleHeight + padding, this.bottom - columnSizes[cursor.line].height);\n }\n const realX = rtlHelper.x(x);\n drawLegendBox(realX, y, legendItem);\n x = _textX(textAlign, x + boxWidth + halfFontSize, isHorizontal ? x + width : this.right, opts.rtl);\n fillText(rtlHelper.x(x), y, legendItem);\n if (isHorizontal) {\n cursor.x += width + padding;\n } else {\n cursor.y += lineHeight;\n }\n });\n restoreTextDirection(this.ctx, opts.textDirection);\n }\n drawTitle() {\n const opts = this.options;\n const titleOpts = opts.title;\n const titleFont = toFont(titleOpts.font);\n const titlePadding = toPadding(titleOpts.padding);\n if (!titleOpts.display) {\n return;\n }\n const rtlHelper = getRtlAdapter(opts.rtl, this.left, this.width);\n const ctx = this.ctx;\n const position = titleOpts.position;\n const halfFontSize = titleFont.size / 2;\n const topPaddingPlusHalfFontSize = titlePadding.top + halfFontSize;\n let y;\n let left = this.left;\n let maxWidth = this.width;\n if (this.isHorizontal()) {\n maxWidth = Math.max(...this.lineWidths);\n y = this.top + topPaddingPlusHalfFontSize;\n left = _alignStartEnd(opts.align, left, this.right - maxWidth);\n } else {\n const maxHeight = this.columnSizes.reduce((acc, size) => Math.max(acc, size.height), 0);\n y = topPaddingPlusHalfFontSize + _alignStartEnd(opts.align, this.top, this.bottom - maxHeight - opts.labels.padding - this._computeTitleHeight());\n }\n const x = _alignStartEnd(position, left, left + maxWidth);\n ctx.textAlign = rtlHelper.textAlign(_toLeftRightCenter(position));\n ctx.textBaseline = 'middle';\n ctx.strokeStyle = titleOpts.color;\n ctx.fillStyle = titleOpts.color;\n ctx.font = titleFont.string;\n renderText(ctx, titleOpts.text, x, y, titleFont);\n }\n _computeTitleHeight() {\n const titleOpts = this.options.title;\n const titleFont = toFont(titleOpts.font);\n const titlePadding = toPadding(titleOpts.padding);\n return titleOpts.display ? titleFont.lineHeight + titlePadding.height : 0;\n }\n _getLegendItemAt(x, y) {\n let i, hitBox, lh;\n if (x >= this.left && x <= this.right && y >= this.top && y <= this.bottom) {\n lh = this.legendHitBoxes;\n for (i = 0; i < lh.length; ++i) {\n hitBox = lh[i];\n if (x >= hitBox.left && x <= hitBox.left + hitBox.width && y >= hitBox.top && y <= hitBox.top + hitBox.height) {\n return this.legendItems[i];\n }\n }\n }\n return null;\n }\n handleEvent(e) {\n const opts = this.options;\n if (!isListened(e.type, opts)) {\n return;\n }\n const hoveredItem = this._getLegendItemAt(e.x, e.y);\n if (e.type === 'mousemove') {\n const previous = this._hoveredItem;\n const sameItem = itemsEqual(previous, hoveredItem);\n if (previous && !sameItem) {\n callback(opts.onLeave, [e, previous, this], this);\n }\n this._hoveredItem = hoveredItem;\n if (hoveredItem && !sameItem) {\n callback(opts.onHover, [e, hoveredItem, this], this);\n }\n } else if (hoveredItem) {\n callback(opts.onClick, [e, hoveredItem, this], this);\n }\n }\n}\nfunction isListened(type, opts) {\n if (type === 'mousemove' && (opts.onHover || opts.onLeave)) {\n return true;\n }\n if (opts.onClick && (type === 'click' || type === 'mouseup')) {\n return true;\n }\n return false;\n}\nvar plugin_legend = {\n id: 'legend',\n _element: Legend,\n start(chart, _args, options) {\n const legend = chart.legend = new Legend({ctx: chart.ctx, options, chart});\n layouts.configure(chart, legend, options);\n layouts.addBox(chart, legend);\n },\n stop(chart) {\n layouts.removeBox(chart, chart.legend);\n delete chart.legend;\n },\n beforeUpdate(chart, _args, options) {\n const legend = chart.legend;\n layouts.configure(chart, legend, options);\n legend.options = options;\n },\n afterUpdate(chart) {\n const legend = chart.legend;\n legend.buildLabels();\n legend.adjustHitBoxes();\n },\n afterEvent(chart, args) {\n if (!args.replay) {\n chart.legend.handleEvent(args.event);\n }\n },\n defaults: {\n display: true,\n position: 'top',\n align: 'center',\n fullSize: true,\n reverse: false,\n weight: 1000,\n onClick(e, legendItem, legend) {\n const index = legendItem.datasetIndex;\n const ci = legend.chart;\n if (ci.isDatasetVisible(index)) {\n ci.hide(index);\n legendItem.hidden = true;\n } else {\n ci.show(index);\n legendItem.hidden = false;\n }\n },\n onHover: null,\n onLeave: null,\n labels: {\n color: (ctx) => ctx.chart.options.color,\n boxWidth: 40,\n padding: 10,\n generateLabels(chart) {\n const datasets = chart.data.datasets;\n const {labels: {usePointStyle, pointStyle, textAlign, color}} = chart.legend.options;\n return chart._getSortedDatasetMetas().map((meta) => {\n const style = meta.controller.getStyle(usePointStyle ? 0 : undefined);\n const borderWidth = toPadding(style.borderWidth);\n return {\n text: datasets[meta.index].label,\n fillStyle: style.backgroundColor,\n fontColor: color,\n hidden: !meta.visible,\n lineCap: style.borderCapStyle,\n lineDash: style.borderDash,\n lineDashOffset: style.borderDashOffset,\n lineJoin: style.borderJoinStyle,\n lineWidth: (borderWidth.width + borderWidth.height) / 4,\n strokeStyle: style.borderColor,\n pointStyle: pointStyle || style.pointStyle,\n rotation: style.rotation,\n textAlign: textAlign || style.textAlign,\n borderRadius: 0,\n datasetIndex: meta.index\n };\n }, this);\n }\n },\n title: {\n color: (ctx) => ctx.chart.options.color,\n display: false,\n position: 'center',\n text: '',\n }\n },\n descriptors: {\n _scriptable: (name) => !name.startsWith('on'),\n labels: {\n _scriptable: (name) => !['generateLabels', 'filter', 'sort'].includes(name),\n }\n },\n};\n\nclass Title extends Element {\n constructor(config) {\n super();\n this.chart = config.chart;\n this.options = config.options;\n this.ctx = config.ctx;\n this._padding = undefined;\n this.top = undefined;\n this.bottom = undefined;\n this.left = undefined;\n this.right = undefined;\n this.width = undefined;\n this.height = undefined;\n this.position = undefined;\n this.weight = undefined;\n this.fullSize = undefined;\n }\n update(maxWidth, maxHeight) {\n const opts = this.options;\n this.left = 0;\n this.top = 0;\n if (!opts.display) {\n this.width = this.height = this.right = this.bottom = 0;\n return;\n }\n this.width = this.right = maxWidth;\n this.height = this.bottom = maxHeight;\n const lineCount = isArray(opts.text) ? opts.text.length : 1;\n this._padding = toPadding(opts.padding);\n const textSize = lineCount * toFont(opts.font).lineHeight + this._padding.height;\n if (this.isHorizontal()) {\n this.height = textSize;\n } else {\n this.width = textSize;\n }\n }\n isHorizontal() {\n const pos = this.options.position;\n return pos === 'top' || pos === 'bottom';\n }\n _drawArgs(offset) {\n const {top, left, bottom, right, options} = this;\n const align = options.align;\n let rotation = 0;\n let maxWidth, titleX, titleY;\n if (this.isHorizontal()) {\n titleX = _alignStartEnd(align, left, right);\n titleY = top + offset;\n maxWidth = right - left;\n } else {\n if (options.position === 'left') {\n titleX = left + offset;\n titleY = _alignStartEnd(align, bottom, top);\n rotation = PI * -0.5;\n } else {\n titleX = right - offset;\n titleY = _alignStartEnd(align, top, bottom);\n rotation = PI * 0.5;\n }\n maxWidth = bottom - top;\n }\n return {titleX, titleY, maxWidth, rotation};\n }\n draw() {\n const ctx = this.ctx;\n const opts = this.options;\n if (!opts.display) {\n return;\n }\n const fontOpts = toFont(opts.font);\n const lineHeight = fontOpts.lineHeight;\n const offset = lineHeight / 2 + this._padding.top;\n const {titleX, titleY, maxWidth, rotation} = this._drawArgs(offset);\n renderText(ctx, opts.text, 0, 0, fontOpts, {\n color: opts.color,\n maxWidth,\n rotation,\n textAlign: _toLeftRightCenter(opts.align),\n textBaseline: 'middle',\n translation: [titleX, titleY],\n });\n }\n}\nfunction createTitle(chart, titleOpts) {\n const title = new Title({\n ctx: chart.ctx,\n options: titleOpts,\n chart\n });\n layouts.configure(chart, title, titleOpts);\n layouts.addBox(chart, title);\n chart.titleBlock = title;\n}\nvar plugin_title = {\n id: 'title',\n _element: Title,\n start(chart, _args, options) {\n createTitle(chart, options);\n },\n stop(chart) {\n const titleBlock = chart.titleBlock;\n layouts.removeBox(chart, titleBlock);\n delete chart.titleBlock;\n },\n beforeUpdate(chart, _args, options) {\n const title = chart.titleBlock;\n layouts.configure(chart, title, options);\n title.options = options;\n },\n defaults: {\n align: 'center',\n display: false,\n font: {\n weight: 'bold',\n },\n fullSize: true,\n padding: 10,\n position: 'top',\n text: '',\n weight: 2000\n },\n defaultRoutes: {\n color: 'color'\n },\n descriptors: {\n _scriptable: true,\n _indexable: false,\n },\n};\n\nconst map = new WeakMap();\nvar plugin_subtitle = {\n id: 'subtitle',\n start(chart, _args, options) {\n const title = new Title({\n ctx: chart.ctx,\n options,\n chart\n });\n layouts.configure(chart, title, options);\n layouts.addBox(chart, title);\n map.set(chart, title);\n },\n stop(chart) {\n layouts.removeBox(chart, map.get(chart));\n map.delete(chart);\n },\n beforeUpdate(chart, _args, options) {\n const title = map.get(chart);\n layouts.configure(chart, title, options);\n title.options = options;\n },\n defaults: {\n align: 'center',\n display: false,\n font: {\n weight: 'normal',\n },\n fullSize: true,\n padding: 0,\n position: 'top',\n text: '',\n weight: 1500\n },\n defaultRoutes: {\n color: 'color'\n },\n descriptors: {\n _scriptable: true,\n _indexable: false,\n },\n};\n\nconst positioners = {\n average(items) {\n if (!items.length) {\n return false;\n }\n let i, len;\n let x = 0;\n let y = 0;\n let count = 0;\n for (i = 0, len = items.length; i < len; ++i) {\n const el = items[i].element;\n if (el && el.hasValue()) {\n const pos = el.tooltipPosition();\n x += pos.x;\n y += pos.y;\n ++count;\n }\n }\n return {\n x: x / count,\n y: y / count\n };\n },\n nearest(items, eventPosition) {\n if (!items.length) {\n return false;\n }\n let x = eventPosition.x;\n let y = eventPosition.y;\n let minDistance = Number.POSITIVE_INFINITY;\n let i, len, nearestElement;\n for (i = 0, len = items.length; i < len; ++i) {\n const el = items[i].element;\n if (el && el.hasValue()) {\n const center = el.getCenterPoint();\n const d = distanceBetweenPoints(eventPosition, center);\n if (d < minDistance) {\n minDistance = d;\n nearestElement = el;\n }\n }\n }\n if (nearestElement) {\n const tp = nearestElement.tooltipPosition();\n x = tp.x;\n y = tp.y;\n }\n return {\n x,\n y\n };\n }\n};\nfunction pushOrConcat(base, toPush) {\n if (toPush) {\n if (isArray(toPush)) {\n Array.prototype.push.apply(base, toPush);\n } else {\n base.push(toPush);\n }\n }\n return base;\n}\nfunction splitNewlines(str) {\n if ((typeof str === 'string' || str instanceof String) && str.indexOf('\\n') > -1) {\n return str.split('\\n');\n }\n return str;\n}\nfunction createTooltipItem(chart, item) {\n const {element, datasetIndex, index} = item;\n const controller = chart.getDatasetMeta(datasetIndex).controller;\n const {label, value} = controller.getLabelAndValue(index);\n return {\n chart,\n label,\n parsed: controller.getParsed(index),\n raw: chart.data.datasets[datasetIndex].data[index],\n formattedValue: value,\n dataset: controller.getDataset(),\n dataIndex: index,\n datasetIndex,\n element\n };\n}\nfunction getTooltipSize(tooltip, options) {\n const ctx = tooltip._chart.ctx;\n const {body, footer, title} = tooltip;\n const {boxWidth, boxHeight} = options;\n const bodyFont = toFont(options.bodyFont);\n const titleFont = toFont(options.titleFont);\n const footerFont = toFont(options.footerFont);\n const titleLineCount = title.length;\n const footerLineCount = footer.length;\n const bodyLineItemCount = body.length;\n const padding = toPadding(options.padding);\n let height = padding.height;\n let width = 0;\n let combinedBodyLength = body.reduce((count, bodyItem) => count + bodyItem.before.length + bodyItem.lines.length + bodyItem.after.length, 0);\n combinedBodyLength += tooltip.beforeBody.length + tooltip.afterBody.length;\n if (titleLineCount) {\n height += titleLineCount * titleFont.lineHeight\n\t\t\t+ (titleLineCount - 1) * options.titleSpacing\n\t\t\t+ options.titleMarginBottom;\n }\n if (combinedBodyLength) {\n const bodyLineHeight = options.displayColors ? Math.max(boxHeight, bodyFont.lineHeight) : bodyFont.lineHeight;\n height += bodyLineItemCount * bodyLineHeight\n\t\t\t+ (combinedBodyLength - bodyLineItemCount) * bodyFont.lineHeight\n\t\t\t+ (combinedBodyLength - 1) * options.bodySpacing;\n }\n if (footerLineCount) {\n height += options.footerMarginTop\n\t\t\t+ footerLineCount * footerFont.lineHeight\n\t\t\t+ (footerLineCount - 1) * options.footerSpacing;\n }\n let widthPadding = 0;\n const maxLineWidth = function(line) {\n width = Math.max(width, ctx.measureText(line).width + widthPadding);\n };\n ctx.save();\n ctx.font = titleFont.string;\n each(tooltip.title, maxLineWidth);\n ctx.font = bodyFont.string;\n each(tooltip.beforeBody.concat(tooltip.afterBody), maxLineWidth);\n widthPadding = options.displayColors ? (boxWidth + 2 + options.boxPadding) : 0;\n each(body, (bodyItem) => {\n each(bodyItem.before, maxLineWidth);\n each(bodyItem.lines, maxLineWidth);\n each(bodyItem.after, maxLineWidth);\n });\n widthPadding = 0;\n ctx.font = footerFont.string;\n each(tooltip.footer, maxLineWidth);\n ctx.restore();\n width += padding.width;\n return {width, height};\n}\nfunction determineYAlign(chart, size) {\n const {y, height} = size;\n if (y < height / 2) {\n return 'top';\n } else if (y > (chart.height - height / 2)) {\n return 'bottom';\n }\n return 'center';\n}\nfunction doesNotFitWithAlign(xAlign, chart, options, size) {\n const {x, width} = size;\n const caret = options.caretSize + options.caretPadding;\n if (xAlign === 'left' && x + width + caret > chart.width) {\n return true;\n }\n if (xAlign === 'right' && x - width - caret < 0) {\n return true;\n }\n}\nfunction determineXAlign(chart, options, size, yAlign) {\n const {x, width} = size;\n const {width: chartWidth, chartArea: {left, right}} = chart;\n let xAlign = 'center';\n if (yAlign === 'center') {\n xAlign = x <= (left + right) / 2 ? 'left' : 'right';\n } else if (x <= width / 2) {\n xAlign = 'left';\n } else if (x >= chartWidth - width / 2) {\n xAlign = 'right';\n }\n if (doesNotFitWithAlign(xAlign, chart, options, size)) {\n xAlign = 'center';\n }\n return xAlign;\n}\nfunction determineAlignment(chart, options, size) {\n const yAlign = options.yAlign || determineYAlign(chart, size);\n return {\n xAlign: options.xAlign || determineXAlign(chart, options, size, yAlign),\n yAlign\n };\n}\nfunction alignX(size, xAlign) {\n let {x, width} = size;\n if (xAlign === 'right') {\n x -= width;\n } else if (xAlign === 'center') {\n x -= (width / 2);\n }\n return x;\n}\nfunction alignY(size, yAlign, paddingAndSize) {\n let {y, height} = size;\n if (yAlign === 'top') {\n y += paddingAndSize;\n } else if (yAlign === 'bottom') {\n y -= height + paddingAndSize;\n } else {\n y -= (height / 2);\n }\n return y;\n}\nfunction getBackgroundPoint(options, size, alignment, chart) {\n const {caretSize, caretPadding, cornerRadius} = options;\n const {xAlign, yAlign} = alignment;\n const paddingAndSize = caretSize + caretPadding;\n const {topLeft, topRight, bottomLeft, bottomRight} = toTRBLCorners(cornerRadius);\n let x = alignX(size, xAlign);\n const y = alignY(size, yAlign, paddingAndSize);\n if (yAlign === 'center') {\n if (xAlign === 'left') {\n x += paddingAndSize;\n } else if (xAlign === 'right') {\n x -= paddingAndSize;\n }\n } else if (xAlign === 'left') {\n x -= Math.max(topLeft, bottomLeft) + caretPadding;\n } else if (xAlign === 'right') {\n x += Math.max(topRight, bottomRight) + caretPadding;\n }\n return {\n x: _limitValue(x, 0, chart.width - size.width),\n y: _limitValue(y, 0, chart.height - size.height)\n };\n}\nfunction getAlignedX(tooltip, align, options) {\n const padding = toPadding(options.padding);\n return align === 'center'\n ? tooltip.x + tooltip.width / 2\n : align === 'right'\n ? tooltip.x + tooltip.width - padding.right\n : tooltip.x + padding.left;\n}\nfunction getBeforeAfterBodyLines(callback) {\n return pushOrConcat([], splitNewlines(callback));\n}\nfunction createTooltipContext(parent, tooltip, tooltipItems) {\n return createContext(parent, {\n tooltip,\n tooltipItems,\n type: 'tooltip'\n });\n}\nfunction overrideCallbacks(callbacks, context) {\n const override = context && context.dataset && context.dataset.tooltip && context.dataset.tooltip.callbacks;\n return override ? callbacks.override(override) : callbacks;\n}\nclass Tooltip extends Element {\n constructor(config) {\n super();\n this.opacity = 0;\n this._active = [];\n this._chart = config._chart;\n this._eventPosition = undefined;\n this._size = undefined;\n this._cachedAnimations = undefined;\n this._tooltipItems = [];\n this.$animations = undefined;\n this.$context = undefined;\n this.options = config.options;\n this.dataPoints = undefined;\n this.title = undefined;\n this.beforeBody = undefined;\n this.body = undefined;\n this.afterBody = undefined;\n this.footer = undefined;\n this.xAlign = undefined;\n this.yAlign = undefined;\n this.x = undefined;\n this.y = undefined;\n this.height = undefined;\n this.width = undefined;\n this.caretX = undefined;\n this.caretY = undefined;\n this.labelColors = undefined;\n this.labelPointStyles = undefined;\n this.labelTextColors = undefined;\n }\n initialize(options) {\n this.options = options;\n this._cachedAnimations = undefined;\n this.$context = undefined;\n }\n _resolveAnimations() {\n const cached = this._cachedAnimations;\n if (cached) {\n return cached;\n }\n const chart = this._chart;\n const options = this.options.setContext(this.getContext());\n const opts = options.enabled && chart.options.animation && options.animations;\n const animations = new Animations(this._chart, opts);\n if (opts._cacheable) {\n this._cachedAnimations = Object.freeze(animations);\n }\n return animations;\n }\n getContext() {\n return this.$context ||\n\t\t\t(this.$context = createTooltipContext(this._chart.getContext(), this, this._tooltipItems));\n }\n getTitle(context, options) {\n const {callbacks} = options;\n const beforeTitle = callbacks.beforeTitle.apply(this, [context]);\n const title = callbacks.title.apply(this, [context]);\n const afterTitle = callbacks.afterTitle.apply(this, [context]);\n let lines = [];\n lines = pushOrConcat(lines, splitNewlines(beforeTitle));\n lines = pushOrConcat(lines, splitNewlines(title));\n lines = pushOrConcat(lines, splitNewlines(afterTitle));\n return lines;\n }\n getBeforeBody(tooltipItems, options) {\n return getBeforeAfterBodyLines(options.callbacks.beforeBody.apply(this, [tooltipItems]));\n }\n getBody(tooltipItems, options) {\n const {callbacks} = options;\n const bodyItems = [];\n each(tooltipItems, (context) => {\n const bodyItem = {\n before: [],\n lines: [],\n after: []\n };\n const scoped = overrideCallbacks(callbacks, context);\n pushOrConcat(bodyItem.before, splitNewlines(scoped.beforeLabel.call(this, context)));\n pushOrConcat(bodyItem.lines, scoped.label.call(this, context));\n pushOrConcat(bodyItem.after, splitNewlines(scoped.afterLabel.call(this, context)));\n bodyItems.push(bodyItem);\n });\n return bodyItems;\n }\n getAfterBody(tooltipItems, options) {\n return getBeforeAfterBodyLines(options.callbacks.afterBody.apply(this, [tooltipItems]));\n }\n getFooter(tooltipItems, options) {\n const {callbacks} = options;\n const beforeFooter = callbacks.beforeFooter.apply(this, [tooltipItems]);\n const footer = callbacks.footer.apply(this, [tooltipItems]);\n const afterFooter = callbacks.afterFooter.apply(this, [tooltipItems]);\n let lines = [];\n lines = pushOrConcat(lines, splitNewlines(beforeFooter));\n lines = pushOrConcat(lines, splitNewlines(footer));\n lines = pushOrConcat(lines, splitNewlines(afterFooter));\n return lines;\n }\n _createItems(options) {\n const active = this._active;\n const data = this._chart.data;\n const labelColors = [];\n const labelPointStyles = [];\n const labelTextColors = [];\n let tooltipItems = [];\n let i, len;\n for (i = 0, len = active.length; i < len; ++i) {\n tooltipItems.push(createTooltipItem(this._chart, active[i]));\n }\n if (options.filter) {\n tooltipItems = tooltipItems.filter((element, index, array) => options.filter(element, index, array, data));\n }\n if (options.itemSort) {\n tooltipItems = tooltipItems.sort((a, b) => options.itemSort(a, b, data));\n }\n each(tooltipItems, (context) => {\n const scoped = overrideCallbacks(options.callbacks, context);\n labelColors.push(scoped.labelColor.call(this, context));\n labelPointStyles.push(scoped.labelPointStyle.call(this, context));\n labelTextColors.push(scoped.labelTextColor.call(this, context));\n });\n this.labelColors = labelColors;\n this.labelPointStyles = labelPointStyles;\n this.labelTextColors = labelTextColors;\n this.dataPoints = tooltipItems;\n return tooltipItems;\n }\n update(changed, replay) {\n const options = this.options.setContext(this.getContext());\n const active = this._active;\n let properties;\n let tooltipItems = [];\n if (!active.length) {\n if (this.opacity !== 0) {\n properties = {\n opacity: 0\n };\n }\n } else {\n const position = positioners[options.position].call(this, active, this._eventPosition);\n tooltipItems = this._createItems(options);\n this.title = this.getTitle(tooltipItems, options);\n this.beforeBody = this.getBeforeBody(tooltipItems, options);\n this.body = this.getBody(tooltipItems, options);\n this.afterBody = this.getAfterBody(tooltipItems, options);\n this.footer = this.getFooter(tooltipItems, options);\n const size = this._size = getTooltipSize(this, options);\n const positionAndSize = Object.assign({}, position, size);\n const alignment = determineAlignment(this._chart, options, positionAndSize);\n const backgroundPoint = getBackgroundPoint(options, positionAndSize, alignment, this._chart);\n this.xAlign = alignment.xAlign;\n this.yAlign = alignment.yAlign;\n properties = {\n opacity: 1,\n x: backgroundPoint.x,\n y: backgroundPoint.y,\n width: size.width,\n height: size.height,\n caretX: position.x,\n caretY: position.y\n };\n }\n this._tooltipItems = tooltipItems;\n this.$context = undefined;\n if (properties) {\n this._resolveAnimations().update(this, properties);\n }\n if (changed && options.external) {\n options.external.call(this, {chart: this._chart, tooltip: this, replay});\n }\n }\n drawCaret(tooltipPoint, ctx, size, options) {\n const caretPosition = this.getCaretPosition(tooltipPoint, size, options);\n ctx.lineTo(caretPosition.x1, caretPosition.y1);\n ctx.lineTo(caretPosition.x2, caretPosition.y2);\n ctx.lineTo(caretPosition.x3, caretPosition.y3);\n }\n getCaretPosition(tooltipPoint, size, options) {\n const {xAlign, yAlign} = this;\n const {caretSize, cornerRadius} = options;\n const {topLeft, topRight, bottomLeft, bottomRight} = toTRBLCorners(cornerRadius);\n const {x: ptX, y: ptY} = tooltipPoint;\n const {width, height} = size;\n let x1, x2, x3, y1, y2, y3;\n if (yAlign === 'center') {\n y2 = ptY + (height / 2);\n if (xAlign === 'left') {\n x1 = ptX;\n x2 = x1 - caretSize;\n y1 = y2 + caretSize;\n y3 = y2 - caretSize;\n } else {\n x1 = ptX + width;\n x2 = x1 + caretSize;\n y1 = y2 - caretSize;\n y3 = y2 + caretSize;\n }\n x3 = x1;\n } else {\n if (xAlign === 'left') {\n x2 = ptX + Math.max(topLeft, bottomLeft) + (caretSize);\n } else if (xAlign === 'right') {\n x2 = ptX + width - Math.max(topRight, bottomRight) - caretSize;\n } else {\n x2 = this.caretX;\n }\n if (yAlign === 'top') {\n y1 = ptY;\n y2 = y1 - caretSize;\n x1 = x2 - caretSize;\n x3 = x2 + caretSize;\n } else {\n y1 = ptY + height;\n y2 = y1 + caretSize;\n x1 = x2 + caretSize;\n x3 = x2 - caretSize;\n }\n y3 = y1;\n }\n return {x1, x2, x3, y1, y2, y3};\n }\n drawTitle(pt, ctx, options) {\n const title = this.title;\n const length = title.length;\n let titleFont, titleSpacing, i;\n if (length) {\n const rtlHelper = getRtlAdapter(options.rtl, this.x, this.width);\n pt.x = getAlignedX(this, options.titleAlign, options);\n ctx.textAlign = rtlHelper.textAlign(options.titleAlign);\n ctx.textBaseline = 'middle';\n titleFont = toFont(options.titleFont);\n titleSpacing = options.titleSpacing;\n ctx.fillStyle = options.titleColor;\n ctx.font = titleFont.string;\n for (i = 0; i < length; ++i) {\n ctx.fillText(title[i], rtlHelper.x(pt.x), pt.y + titleFont.lineHeight / 2);\n pt.y += titleFont.lineHeight + titleSpacing;\n if (i + 1 === length) {\n pt.y += options.titleMarginBottom - titleSpacing;\n }\n }\n }\n }\n _drawColorBox(ctx, pt, i, rtlHelper, options) {\n const labelColors = this.labelColors[i];\n const labelPointStyle = this.labelPointStyles[i];\n const {boxHeight, boxWidth, boxPadding} = options;\n const bodyFont = toFont(options.bodyFont);\n const colorX = getAlignedX(this, 'left', options);\n const rtlColorX = rtlHelper.x(colorX);\n const yOffSet = boxHeight < bodyFont.lineHeight ? (bodyFont.lineHeight - boxHeight) / 2 : 0;\n const colorY = pt.y + yOffSet;\n if (options.usePointStyle) {\n const drawOptions = {\n radius: Math.min(boxWidth, boxHeight) / 2,\n pointStyle: labelPointStyle.pointStyle,\n rotation: labelPointStyle.rotation,\n borderWidth: 1\n };\n const centerX = rtlHelper.leftForLtr(rtlColorX, boxWidth) + boxWidth / 2;\n const centerY = colorY + boxHeight / 2;\n ctx.strokeStyle = options.multiKeyBackground;\n ctx.fillStyle = options.multiKeyBackground;\n drawPoint(ctx, drawOptions, centerX, centerY);\n ctx.strokeStyle = labelColors.borderColor;\n ctx.fillStyle = labelColors.backgroundColor;\n drawPoint(ctx, drawOptions, centerX, centerY);\n } else {\n ctx.lineWidth = labelColors.borderWidth || 1;\n ctx.strokeStyle = labelColors.borderColor;\n ctx.setLineDash(labelColors.borderDash || []);\n ctx.lineDashOffset = labelColors.borderDashOffset || 0;\n const outerX = rtlHelper.leftForLtr(rtlColorX, boxWidth - boxPadding);\n const innerX = rtlHelper.leftForLtr(rtlHelper.xPlus(rtlColorX, 1), boxWidth - boxPadding - 2);\n const borderRadius = toTRBLCorners(labelColors.borderRadius);\n if (Object.values(borderRadius).some(v => v !== 0)) {\n ctx.beginPath();\n ctx.fillStyle = options.multiKeyBackground;\n addRoundedRectPath(ctx, {\n x: outerX,\n y: colorY,\n w: boxWidth,\n h: boxHeight,\n radius: borderRadius,\n });\n ctx.fill();\n ctx.stroke();\n ctx.fillStyle = labelColors.backgroundColor;\n ctx.beginPath();\n addRoundedRectPath(ctx, {\n x: innerX,\n y: colorY + 1,\n w: boxWidth - 2,\n h: boxHeight - 2,\n radius: borderRadius,\n });\n ctx.fill();\n } else {\n ctx.fillStyle = options.multiKeyBackground;\n ctx.fillRect(outerX, colorY, boxWidth, boxHeight);\n ctx.strokeRect(outerX, colorY, boxWidth, boxHeight);\n ctx.fillStyle = labelColors.backgroundColor;\n ctx.fillRect(innerX, colorY + 1, boxWidth - 2, boxHeight - 2);\n }\n }\n ctx.fillStyle = this.labelTextColors[i];\n }\n drawBody(pt, ctx, options) {\n const {body} = this;\n const {bodySpacing, bodyAlign, displayColors, boxHeight, boxWidth, boxPadding} = options;\n const bodyFont = toFont(options.bodyFont);\n let bodyLineHeight = bodyFont.lineHeight;\n let xLinePadding = 0;\n const rtlHelper = getRtlAdapter(options.rtl, this.x, this.width);\n const fillLineOfText = function(line) {\n ctx.fillText(line, rtlHelper.x(pt.x + xLinePadding), pt.y + bodyLineHeight / 2);\n pt.y += bodyLineHeight + bodySpacing;\n };\n const bodyAlignForCalculation = rtlHelper.textAlign(bodyAlign);\n let bodyItem, textColor, lines, i, j, ilen, jlen;\n ctx.textAlign = bodyAlign;\n ctx.textBaseline = 'middle';\n ctx.font = bodyFont.string;\n pt.x = getAlignedX(this, bodyAlignForCalculation, options);\n ctx.fillStyle = options.bodyColor;\n each(this.beforeBody, fillLineOfText);\n xLinePadding = displayColors && bodyAlignForCalculation !== 'right'\n ? bodyAlign === 'center' ? (boxWidth / 2 + boxPadding) : (boxWidth + 2 + boxPadding)\n : 0;\n for (i = 0, ilen = body.length; i < ilen; ++i) {\n bodyItem = body[i];\n textColor = this.labelTextColors[i];\n ctx.fillStyle = textColor;\n each(bodyItem.before, fillLineOfText);\n lines = bodyItem.lines;\n if (displayColors && lines.length) {\n this._drawColorBox(ctx, pt, i, rtlHelper, options);\n bodyLineHeight = Math.max(bodyFont.lineHeight, boxHeight);\n }\n for (j = 0, jlen = lines.length; j < jlen; ++j) {\n fillLineOfText(lines[j]);\n bodyLineHeight = bodyFont.lineHeight;\n }\n each(bodyItem.after, fillLineOfText);\n }\n xLinePadding = 0;\n bodyLineHeight = bodyFont.lineHeight;\n each(this.afterBody, fillLineOfText);\n pt.y -= bodySpacing;\n }\n drawFooter(pt, ctx, options) {\n const footer = this.footer;\n const length = footer.length;\n let footerFont, i;\n if (length) {\n const rtlHelper = getRtlAdapter(options.rtl, this.x, this.width);\n pt.x = getAlignedX(this, options.footerAlign, options);\n pt.y += options.footerMarginTop;\n ctx.textAlign = rtlHelper.textAlign(options.footerAlign);\n ctx.textBaseline = 'middle';\n footerFont = toFont(options.footerFont);\n ctx.fillStyle = options.footerColor;\n ctx.font = footerFont.string;\n for (i = 0; i < length; ++i) {\n ctx.fillText(footer[i], rtlHelper.x(pt.x), pt.y + footerFont.lineHeight / 2);\n pt.y += footerFont.lineHeight + options.footerSpacing;\n }\n }\n }\n drawBackground(pt, ctx, tooltipSize, options) {\n const {xAlign, yAlign} = this;\n const {x, y} = pt;\n const {width, height} = tooltipSize;\n const {topLeft, topRight, bottomLeft, bottomRight} = toTRBLCorners(options.cornerRadius);\n ctx.fillStyle = options.backgroundColor;\n ctx.strokeStyle = options.borderColor;\n ctx.lineWidth = options.borderWidth;\n ctx.beginPath();\n ctx.moveTo(x + topLeft, y);\n if (yAlign === 'top') {\n this.drawCaret(pt, ctx, tooltipSize, options);\n }\n ctx.lineTo(x + width - topRight, y);\n ctx.quadraticCurveTo(x + width, y, x + width, y + topRight);\n if (yAlign === 'center' && xAlign === 'right') {\n this.drawCaret(pt, ctx, tooltipSize, options);\n }\n ctx.lineTo(x + width, y + height - bottomRight);\n ctx.quadraticCurveTo(x + width, y + height, x + width - bottomRight, y + height);\n if (yAlign === 'bottom') {\n this.drawCaret(pt, ctx, tooltipSize, options);\n }\n ctx.lineTo(x + bottomLeft, y + height);\n ctx.quadraticCurveTo(x, y + height, x, y + height - bottomLeft);\n if (yAlign === 'center' && xAlign === 'left') {\n this.drawCaret(pt, ctx, tooltipSize, options);\n }\n ctx.lineTo(x, y + topLeft);\n ctx.quadraticCurveTo(x, y, x + topLeft, y);\n ctx.closePath();\n ctx.fill();\n if (options.borderWidth > 0) {\n ctx.stroke();\n }\n }\n _updateAnimationTarget(options) {\n const chart = this._chart;\n const anims = this.$animations;\n const animX = anims && anims.x;\n const animY = anims && anims.y;\n if (animX || animY) {\n const position = positioners[options.position].call(this, this._active, this._eventPosition);\n if (!position) {\n return;\n }\n const size = this._size = getTooltipSize(this, options);\n const positionAndSize = Object.assign({}, position, this._size);\n const alignment = determineAlignment(chart, options, positionAndSize);\n const point = getBackgroundPoint(options, positionAndSize, alignment, chart);\n if (animX._to !== point.x || animY._to !== point.y) {\n this.xAlign = alignment.xAlign;\n this.yAlign = alignment.yAlign;\n this.width = size.width;\n this.height = size.height;\n this.caretX = position.x;\n this.caretY = position.y;\n this._resolveAnimations().update(this, point);\n }\n }\n }\n draw(ctx) {\n const options = this.options.setContext(this.getContext());\n let opacity = this.opacity;\n if (!opacity) {\n return;\n }\n this._updateAnimationTarget(options);\n const tooltipSize = {\n width: this.width,\n height: this.height\n };\n const pt = {\n x: this.x,\n y: this.y\n };\n opacity = Math.abs(opacity) < 1e-3 ? 0 : opacity;\n const padding = toPadding(options.padding);\n const hasTooltipContent = this.title.length || this.beforeBody.length || this.body.length || this.afterBody.length || this.footer.length;\n if (options.enabled && hasTooltipContent) {\n ctx.save();\n ctx.globalAlpha = opacity;\n this.drawBackground(pt, ctx, tooltipSize, options);\n overrideTextDirection(ctx, options.textDirection);\n pt.y += padding.top;\n this.drawTitle(pt, ctx, options);\n this.drawBody(pt, ctx, options);\n this.drawFooter(pt, ctx, options);\n restoreTextDirection(ctx, options.textDirection);\n ctx.restore();\n }\n }\n getActiveElements() {\n return this._active || [];\n }\n setActiveElements(activeElements, eventPosition) {\n const lastActive = this._active;\n const active = activeElements.map(({datasetIndex, index}) => {\n const meta = this._chart.getDatasetMeta(datasetIndex);\n if (!meta) {\n throw new Error('Cannot find a dataset at index ' + datasetIndex);\n }\n return {\n datasetIndex,\n element: meta.data[index],\n index,\n };\n });\n const changed = !_elementsEqual(lastActive, active);\n const positionChanged = this._positionChanged(active, eventPosition);\n if (changed || positionChanged) {\n this._active = active;\n this._eventPosition = eventPosition;\n this.update(true);\n }\n }\n handleEvent(e, replay) {\n const options = this.options;\n const lastActive = this._active || [];\n let changed = false;\n let active = [];\n if (e.type !== 'mouseout') {\n active = this._chart.getElementsAtEventForMode(e, options.mode, options, replay);\n if (options.reverse) {\n active.reverse();\n }\n }\n const positionChanged = this._positionChanged(active, e);\n changed = replay || !_elementsEqual(active, lastActive) || positionChanged;\n if (changed) {\n this._active = active;\n if (options.enabled || options.external) {\n this._eventPosition = {\n x: e.x,\n y: e.y\n };\n this.update(true, replay);\n }\n }\n return changed;\n }\n _positionChanged(active, e) {\n const {caretX, caretY, options} = this;\n const position = positioners[options.position].call(this, active, e);\n return position !== false && (caretX !== position.x || caretY !== position.y);\n }\n}\nTooltip.positioners = positioners;\nvar plugin_tooltip = {\n id: 'tooltip',\n _element: Tooltip,\n positioners,\n afterInit(chart, _args, options) {\n if (options) {\n chart.tooltip = new Tooltip({_chart: chart, options});\n }\n },\n beforeUpdate(chart, _args, options) {\n if (chart.tooltip) {\n chart.tooltip.initialize(options);\n }\n },\n reset(chart, _args, options) {\n if (chart.tooltip) {\n chart.tooltip.initialize(options);\n }\n },\n afterDraw(chart) {\n const tooltip = chart.tooltip;\n const args = {\n tooltip\n };\n if (chart.notifyPlugins('beforeTooltipDraw', args) === false) {\n return;\n }\n if (tooltip) {\n tooltip.draw(chart.ctx);\n }\n chart.notifyPlugins('afterTooltipDraw', args);\n },\n afterEvent(chart, args) {\n if (chart.tooltip) {\n const useFinalPosition = args.replay;\n if (chart.tooltip.handleEvent(args.event, useFinalPosition)) {\n args.changed = true;\n }\n }\n },\n defaults: {\n enabled: true,\n external: null,\n position: 'average',\n backgroundColor: 'rgba(0,0,0,0.8)',\n titleColor: '#fff',\n titleFont: {\n weight: 'bold',\n },\n titleSpacing: 2,\n titleMarginBottom: 6,\n titleAlign: 'left',\n bodyColor: '#fff',\n bodySpacing: 2,\n bodyFont: {\n },\n bodyAlign: 'left',\n footerColor: '#fff',\n footerSpacing: 2,\n footerMarginTop: 6,\n footerFont: {\n weight: 'bold',\n },\n footerAlign: 'left',\n padding: 6,\n caretPadding: 2,\n caretSize: 5,\n cornerRadius: 6,\n boxHeight: (ctx, opts) => opts.bodyFont.size,\n boxWidth: (ctx, opts) => opts.bodyFont.size,\n multiKeyBackground: '#fff',\n displayColors: true,\n boxPadding: 0,\n borderColor: 'rgba(0,0,0,0)',\n borderWidth: 0,\n animation: {\n duration: 400,\n easing: 'easeOutQuart',\n },\n animations: {\n numbers: {\n type: 'number',\n properties: ['x', 'y', 'width', 'height', 'caretX', 'caretY'],\n },\n opacity: {\n easing: 'linear',\n duration: 200\n }\n },\n callbacks: {\n beforeTitle: noop,\n title(tooltipItems) {\n if (tooltipItems.length > 0) {\n const item = tooltipItems[0];\n const labels = item.chart.data.labels;\n const labelCount = labels ? labels.length : 0;\n if (this && this.options && this.options.mode === 'dataset') {\n return item.dataset.label || '';\n } else if (item.label) {\n return item.label;\n } else if (labelCount > 0 && item.dataIndex < labelCount) {\n return labels[item.dataIndex];\n }\n }\n return '';\n },\n afterTitle: noop,\n beforeBody: noop,\n beforeLabel: noop,\n label(tooltipItem) {\n if (this && this.options && this.options.mode === 'dataset') {\n return tooltipItem.label + ': ' + tooltipItem.formattedValue || tooltipItem.formattedValue;\n }\n let label = tooltipItem.dataset.label || '';\n if (label) {\n label += ': ';\n }\n const value = tooltipItem.formattedValue;\n if (!isNullOrUndef(value)) {\n label += value;\n }\n return label;\n },\n labelColor(tooltipItem) {\n const meta = tooltipItem.chart.getDatasetMeta(tooltipItem.datasetIndex);\n const options = meta.controller.getStyle(tooltipItem.dataIndex);\n return {\n borderColor: options.borderColor,\n backgroundColor: options.backgroundColor,\n borderWidth: options.borderWidth,\n borderDash: options.borderDash,\n borderDashOffset: options.borderDashOffset,\n borderRadius: 0,\n };\n },\n labelTextColor() {\n return this.options.bodyColor;\n },\n labelPointStyle(tooltipItem) {\n const meta = tooltipItem.chart.getDatasetMeta(tooltipItem.datasetIndex);\n const options = meta.controller.getStyle(tooltipItem.dataIndex);\n return {\n pointStyle: options.pointStyle,\n rotation: options.rotation,\n };\n },\n afterLabel: noop,\n afterBody: noop,\n beforeFooter: noop,\n footer: noop,\n afterFooter: noop\n }\n },\n defaultRoutes: {\n bodyFont: 'font',\n footerFont: 'font',\n titleFont: 'font'\n },\n descriptors: {\n _scriptable: (name) => name !== 'filter' && name !== 'itemSort' && name !== 'external',\n _indexable: false,\n callbacks: {\n _scriptable: false,\n _indexable: false,\n },\n animation: {\n _fallback: false\n },\n animations: {\n _fallback: 'animation'\n }\n },\n additionalOptionScopes: ['interaction']\n};\n\nvar plugins = /*#__PURE__*/Object.freeze({\n__proto__: null,\nDecimation: plugin_decimation,\nFiller: plugin_filler,\nLegend: plugin_legend,\nSubTitle: plugin_subtitle,\nTitle: plugin_title,\nTooltip: plugin_tooltip\n});\n\nconst addIfString = (labels, raw, index) => typeof raw === 'string'\n ? labels.push(raw) - 1\n : isNaN(raw) ? null : index;\nfunction findOrAddLabel(labels, raw, index) {\n const first = labels.indexOf(raw);\n if (first === -1) {\n return addIfString(labels, raw, index);\n }\n const last = labels.lastIndexOf(raw);\n return first !== last ? index : first;\n}\nconst validIndex = (index, max) => index === null ? null : _limitValue(Math.round(index), 0, max);\nclass CategoryScale extends Scale {\n constructor(cfg) {\n super(cfg);\n this._startValue = undefined;\n this._valueRange = 0;\n }\n parse(raw, index) {\n if (isNullOrUndef(raw)) {\n return null;\n }\n const labels = this.getLabels();\n index = isFinite(index) && labels[index] === raw ? index\n : findOrAddLabel(labels, raw, valueOrDefault(index, raw));\n return validIndex(index, labels.length - 1);\n }\n determineDataLimits() {\n const {minDefined, maxDefined} = this.getUserBounds();\n let {min, max} = this.getMinMax(true);\n if (this.options.bounds === 'ticks') {\n if (!minDefined) {\n min = 0;\n }\n if (!maxDefined) {\n max = this.getLabels().length - 1;\n }\n }\n this.min = min;\n this.max = max;\n }\n buildTicks() {\n const min = this.min;\n const max = this.max;\n const offset = this.options.offset;\n const ticks = [];\n let labels = this.getLabels();\n labels = (min === 0 && max === labels.length - 1) ? labels : labels.slice(min, max + 1);\n this._valueRange = Math.max(labels.length - (offset ? 0 : 1), 1);\n this._startValue = this.min - (offset ? 0.5 : 0);\n for (let value = min; value <= max; value++) {\n ticks.push({value});\n }\n return ticks;\n }\n getLabelForValue(value) {\n const labels = this.getLabels();\n if (value >= 0 && value < labels.length) {\n return labels[value];\n }\n return value;\n }\n configure() {\n super.configure();\n if (!this.isHorizontal()) {\n this._reversePixels = !this._reversePixels;\n }\n }\n getPixelForValue(value) {\n if (typeof value !== 'number') {\n value = this.parse(value);\n }\n return value === null ? NaN : this.getPixelForDecimal((value - this._startValue) / this._valueRange);\n }\n getPixelForTick(index) {\n const ticks = this.ticks;\n if (index < 0 || index > ticks.length - 1) {\n return null;\n }\n return this.getPixelForValue(ticks[index].value);\n }\n getValueForPixel(pixel) {\n return Math.round(this._startValue + this.getDecimalForPixel(pixel) * this._valueRange);\n }\n getBasePixel() {\n return this.bottom;\n }\n}\nCategoryScale.id = 'category';\nCategoryScale.defaults = {\n ticks: {\n callback: CategoryScale.prototype.getLabelForValue\n }\n};\n\nfunction generateTicks$1(generationOptions, dataRange) {\n const ticks = [];\n const MIN_SPACING = 1e-14;\n const {bounds, step, min, max, precision, count, maxTicks, maxDigits, includeBounds} = generationOptions;\n const unit = step || 1;\n const maxSpaces = maxTicks - 1;\n const {min: rmin, max: rmax} = dataRange;\n const minDefined = !isNullOrUndef(min);\n const maxDefined = !isNullOrUndef(max);\n const countDefined = !isNullOrUndef(count);\n const minSpacing = (rmax - rmin) / (maxDigits + 1);\n let spacing = niceNum((rmax - rmin) / maxSpaces / unit) * unit;\n let factor, niceMin, niceMax, numSpaces;\n if (spacing < MIN_SPACING && !minDefined && !maxDefined) {\n return [{value: rmin}, {value: rmax}];\n }\n numSpaces = Math.ceil(rmax / spacing) - Math.floor(rmin / spacing);\n if (numSpaces > maxSpaces) {\n spacing = niceNum(numSpaces * spacing / maxSpaces / unit) * unit;\n }\n if (!isNullOrUndef(precision)) {\n factor = Math.pow(10, precision);\n spacing = Math.ceil(spacing * factor) / factor;\n }\n if (bounds === 'ticks') {\n niceMin = Math.floor(rmin / spacing) * spacing;\n niceMax = Math.ceil(rmax / spacing) * spacing;\n } else {\n niceMin = rmin;\n niceMax = rmax;\n }\n if (minDefined && maxDefined && step && almostWhole((max - min) / step, spacing / 1000)) {\n numSpaces = Math.round(Math.min((max - min) / spacing, maxTicks));\n spacing = (max - min) / numSpaces;\n niceMin = min;\n niceMax = max;\n } else if (countDefined) {\n niceMin = minDefined ? min : niceMin;\n niceMax = maxDefined ? max : niceMax;\n numSpaces = count - 1;\n spacing = (niceMax - niceMin) / numSpaces;\n } else {\n numSpaces = (niceMax - niceMin) / spacing;\n if (almostEquals(numSpaces, Math.round(numSpaces), spacing / 1000)) {\n numSpaces = Math.round(numSpaces);\n } else {\n numSpaces = Math.ceil(numSpaces);\n }\n }\n const decimalPlaces = Math.max(\n _decimalPlaces(spacing),\n _decimalPlaces(niceMin)\n );\n factor = Math.pow(10, isNullOrUndef(precision) ? decimalPlaces : precision);\n niceMin = Math.round(niceMin * factor) / factor;\n niceMax = Math.round(niceMax * factor) / factor;\n let j = 0;\n if (minDefined) {\n if (includeBounds && niceMin !== min) {\n ticks.push({value: min});\n if (niceMin < min) {\n j++;\n }\n if (almostEquals(Math.round((niceMin + j * spacing) * factor) / factor, min, relativeLabelSize(min, minSpacing, generationOptions))) {\n j++;\n }\n } else if (niceMin < min) {\n j++;\n }\n }\n for (; j < numSpaces; ++j) {\n ticks.push({value: Math.round((niceMin + j * spacing) * factor) / factor});\n }\n if (maxDefined && includeBounds && niceMax !== max) {\n if (ticks.length && almostEquals(ticks[ticks.length - 1].value, max, relativeLabelSize(max, minSpacing, generationOptions))) {\n ticks[ticks.length - 1].value = max;\n } else {\n ticks.push({value: max});\n }\n } else if (!maxDefined || niceMax === max) {\n ticks.push({value: niceMax});\n }\n return ticks;\n}\nfunction relativeLabelSize(value, minSpacing, {horizontal, minRotation}) {\n const rad = toRadians(minRotation);\n const ratio = (horizontal ? Math.sin(rad) : Math.cos(rad)) || 0.001;\n const length = 0.75 * minSpacing * ('' + value).length;\n return Math.min(minSpacing / ratio, length);\n}\nclass LinearScaleBase extends Scale {\n constructor(cfg) {\n super(cfg);\n this.start = undefined;\n this.end = undefined;\n this._startValue = undefined;\n this._endValue = undefined;\n this._valueRange = 0;\n }\n parse(raw, index) {\n if (isNullOrUndef(raw)) {\n return null;\n }\n if ((typeof raw === 'number' || raw instanceof Number) && !isFinite(+raw)) {\n return null;\n }\n return +raw;\n }\n handleTickRangeOptions() {\n const {beginAtZero} = this.options;\n const {minDefined, maxDefined} = this.getUserBounds();\n let {min, max} = this;\n const setMin = v => (min = minDefined ? min : v);\n const setMax = v => (max = maxDefined ? max : v);\n if (beginAtZero) {\n const minSign = sign(min);\n const maxSign = sign(max);\n if (minSign < 0 && maxSign < 0) {\n setMax(0);\n } else if (minSign > 0 && maxSign > 0) {\n setMin(0);\n }\n }\n if (min === max) {\n let offset = 1;\n if (max >= Number.MAX_SAFE_INTEGER || min <= Number.MIN_SAFE_INTEGER) {\n offset = Math.abs(max * 0.05);\n }\n setMax(max + offset);\n if (!beginAtZero) {\n setMin(min - offset);\n }\n }\n this.min = min;\n this.max = max;\n }\n getTickLimit() {\n const tickOpts = this.options.ticks;\n let {maxTicksLimit, stepSize} = tickOpts;\n let maxTicks;\n if (stepSize) {\n maxTicks = Math.ceil(this.max / stepSize) - Math.floor(this.min / stepSize) + 1;\n if (maxTicks > 1000) {\n console.warn(`scales.${this.id}.ticks.stepSize: ${stepSize} would result generating up to ${maxTicks} ticks. Limiting to 1000.`);\n maxTicks = 1000;\n }\n } else {\n maxTicks = this.computeTickLimit();\n maxTicksLimit = maxTicksLimit || 11;\n }\n if (maxTicksLimit) {\n maxTicks = Math.min(maxTicksLimit, maxTicks);\n }\n return maxTicks;\n }\n computeTickLimit() {\n return Number.POSITIVE_INFINITY;\n }\n buildTicks() {\n const opts = this.options;\n const tickOpts = opts.ticks;\n let maxTicks = this.getTickLimit();\n maxTicks = Math.max(2, maxTicks);\n const numericGeneratorOptions = {\n maxTicks,\n bounds: opts.bounds,\n min: opts.min,\n max: opts.max,\n precision: tickOpts.precision,\n step: tickOpts.stepSize,\n count: tickOpts.count,\n maxDigits: this._maxDigits(),\n horizontal: this.isHorizontal(),\n minRotation: tickOpts.minRotation || 0,\n includeBounds: tickOpts.includeBounds !== false\n };\n const dataRange = this._range || this;\n const ticks = generateTicks$1(numericGeneratorOptions, dataRange);\n if (opts.bounds === 'ticks') {\n _setMinAndMaxByKey(ticks, this, 'value');\n }\n if (opts.reverse) {\n ticks.reverse();\n this.start = this.max;\n this.end = this.min;\n } else {\n this.start = this.min;\n this.end = this.max;\n }\n return ticks;\n }\n configure() {\n const ticks = this.ticks;\n let start = this.min;\n let end = this.max;\n super.configure();\n if (this.options.offset && ticks.length) {\n const offset = (end - start) / Math.max(ticks.length - 1, 1) / 2;\n start -= offset;\n end += offset;\n }\n this._startValue = start;\n this._endValue = end;\n this._valueRange = end - start;\n }\n getLabelForValue(value) {\n return formatNumber(value, this.chart.options.locale);\n }\n}\n\nclass LinearScale extends LinearScaleBase {\n determineDataLimits() {\n const {min, max} = this.getMinMax(true);\n this.min = isNumberFinite(min) ? min : 0;\n this.max = isNumberFinite(max) ? max : 1;\n this.handleTickRangeOptions();\n }\n computeTickLimit() {\n const horizontal = this.isHorizontal();\n const length = horizontal ? this.width : this.height;\n const minRotation = toRadians(this.options.ticks.minRotation);\n const ratio = (horizontal ? Math.sin(minRotation) : Math.cos(minRotation)) || 0.001;\n const tickFont = this._resolveTickFontOptions(0);\n return Math.ceil(length / Math.min(40, tickFont.lineHeight / ratio));\n }\n getPixelForValue(value) {\n return value === null ? NaN : this.getPixelForDecimal((value - this._startValue) / this._valueRange);\n }\n getValueForPixel(pixel) {\n return this._startValue + this.getDecimalForPixel(pixel) * this._valueRange;\n }\n}\nLinearScale.id = 'linear';\nLinearScale.defaults = {\n ticks: {\n callback: Ticks.formatters.numeric\n }\n};\n\nfunction isMajor(tickVal) {\n const remain = tickVal / (Math.pow(10, Math.floor(log10(tickVal))));\n return remain === 1;\n}\nfunction generateTicks(generationOptions, dataRange) {\n const endExp = Math.floor(log10(dataRange.max));\n const endSignificand = Math.ceil(dataRange.max / Math.pow(10, endExp));\n const ticks = [];\n let tickVal = finiteOrDefault(generationOptions.min, Math.pow(10, Math.floor(log10(dataRange.min))));\n let exp = Math.floor(log10(tickVal));\n let significand = Math.floor(tickVal / Math.pow(10, exp));\n let precision = exp < 0 ? Math.pow(10, Math.abs(exp)) : 1;\n do {\n ticks.push({value: tickVal, major: isMajor(tickVal)});\n ++significand;\n if (significand === 10) {\n significand = 1;\n ++exp;\n precision = exp >= 0 ? 1 : precision;\n }\n tickVal = Math.round(significand * Math.pow(10, exp) * precision) / precision;\n } while (exp < endExp || (exp === endExp && significand < endSignificand));\n const lastTick = finiteOrDefault(generationOptions.max, tickVal);\n ticks.push({value: lastTick, major: isMajor(tickVal)});\n return ticks;\n}\nclass LogarithmicScale extends Scale {\n constructor(cfg) {\n super(cfg);\n this.start = undefined;\n this.end = undefined;\n this._startValue = undefined;\n this._valueRange = 0;\n }\n parse(raw, index) {\n const value = LinearScaleBase.prototype.parse.apply(this, [raw, index]);\n if (value === 0) {\n this._zero = true;\n return undefined;\n }\n return isNumberFinite(value) && value > 0 ? value : null;\n }\n determineDataLimits() {\n const {min, max} = this.getMinMax(true);\n this.min = isNumberFinite(min) ? Math.max(0, min) : null;\n this.max = isNumberFinite(max) ? Math.max(0, max) : null;\n if (this.options.beginAtZero) {\n this._zero = true;\n }\n this.handleTickRangeOptions();\n }\n handleTickRangeOptions() {\n const {minDefined, maxDefined} = this.getUserBounds();\n let min = this.min;\n let max = this.max;\n const setMin = v => (min = minDefined ? min : v);\n const setMax = v => (max = maxDefined ? max : v);\n const exp = (v, m) => Math.pow(10, Math.floor(log10(v)) + m);\n if (min === max) {\n if (min <= 0) {\n setMin(1);\n setMax(10);\n } else {\n setMin(exp(min, -1));\n setMax(exp(max, +1));\n }\n }\n if (min <= 0) {\n setMin(exp(max, -1));\n }\n if (max <= 0) {\n setMax(exp(min, +1));\n }\n if (this._zero && this.min !== this._suggestedMin && min === exp(this.min, 0)) {\n setMin(exp(min, -1));\n }\n this.min = min;\n this.max = max;\n }\n buildTicks() {\n const opts = this.options;\n const generationOptions = {\n min: this._userMin,\n max: this._userMax\n };\n const ticks = generateTicks(generationOptions, this);\n if (opts.bounds === 'ticks') {\n _setMinAndMaxByKey(ticks, this, 'value');\n }\n if (opts.reverse) {\n ticks.reverse();\n this.start = this.max;\n this.end = this.min;\n } else {\n this.start = this.min;\n this.end = this.max;\n }\n return ticks;\n }\n getLabelForValue(value) {\n return value === undefined ? '0' : formatNumber(value, this.chart.options.locale);\n }\n configure() {\n const start = this.min;\n super.configure();\n this._startValue = log10(start);\n this._valueRange = log10(this.max) - log10(start);\n }\n getPixelForValue(value) {\n if (value === undefined || value === 0) {\n value = this.min;\n }\n if (value === null || isNaN(value)) {\n return NaN;\n }\n return this.getPixelForDecimal(value === this.min\n ? 0\n : (log10(value) - this._startValue) / this._valueRange);\n }\n getValueForPixel(pixel) {\n const decimal = this.getDecimalForPixel(pixel);\n return Math.pow(10, this._startValue + decimal * this._valueRange);\n }\n}\nLogarithmicScale.id = 'logarithmic';\nLogarithmicScale.defaults = {\n ticks: {\n callback: Ticks.formatters.logarithmic,\n major: {\n enabled: true\n }\n }\n};\n\nfunction getTickBackdropHeight(opts) {\n const tickOpts = opts.ticks;\n if (tickOpts.display && opts.display) {\n const padding = toPadding(tickOpts.backdropPadding);\n return valueOrDefault(tickOpts.font && tickOpts.font.size, defaults.font.size) + padding.height;\n }\n return 0;\n}\nfunction measureLabelSize(ctx, font, label) {\n label = isArray(label) ? label : [label];\n return {\n w: _longestText(ctx, font.string, label),\n h: label.length * font.lineHeight\n };\n}\nfunction determineLimits(angle, pos, size, min, max) {\n if (angle === min || angle === max) {\n return {\n start: pos - (size / 2),\n end: pos + (size / 2)\n };\n } else if (angle < min || angle > max) {\n return {\n start: pos - size,\n end: pos\n };\n }\n return {\n start: pos,\n end: pos + size\n };\n}\nfunction fitWithPointLabels(scale) {\n const furthestLimits = {\n l: 0,\n r: scale.width,\n t: 0,\n b: scale.height - scale.paddingTop\n };\n const furthestAngles = {};\n const labelSizes = [];\n const padding = [];\n const valueCount = scale.getLabels().length;\n for (let i = 0; i < valueCount; i++) {\n const opts = scale.options.pointLabels.setContext(scale.getPointLabelContext(i));\n padding[i] = opts.padding;\n const pointPosition = scale.getPointPosition(i, scale.drawingArea + padding[i]);\n const plFont = toFont(opts.font);\n const textSize = measureLabelSize(scale.ctx, plFont, scale._pointLabels[i]);\n labelSizes[i] = textSize;\n const angleRadians = scale.getIndexAngle(i);\n const angle = toDegrees(angleRadians);\n const hLimits = determineLimits(angle, pointPosition.x, textSize.w, 0, 180);\n const vLimits = determineLimits(angle, pointPosition.y, textSize.h, 90, 270);\n if (hLimits.start < furthestLimits.l) {\n furthestLimits.l = hLimits.start;\n furthestAngles.l = angleRadians;\n }\n if (hLimits.end > furthestLimits.r) {\n furthestLimits.r = hLimits.end;\n furthestAngles.r = angleRadians;\n }\n if (vLimits.start < furthestLimits.t) {\n furthestLimits.t = vLimits.start;\n furthestAngles.t = angleRadians;\n }\n if (vLimits.end > furthestLimits.b) {\n furthestLimits.b = vLimits.end;\n furthestAngles.b = angleRadians;\n }\n }\n scale._setReductions(scale.drawingArea, furthestLimits, furthestAngles);\n scale._pointLabelItems = buildPointLabelItems(scale, labelSizes, padding);\n}\nfunction buildPointLabelItems(scale, labelSizes, padding) {\n const items = [];\n const valueCount = scale.getLabels().length;\n const opts = scale.options;\n const tickBackdropHeight = getTickBackdropHeight(opts);\n const outerDistance = scale.getDistanceFromCenterForValue(opts.ticks.reverse ? scale.min : scale.max);\n for (let i = 0; i < valueCount; i++) {\n const extra = (i === 0 ? tickBackdropHeight / 2 : 0);\n const pointLabelPosition = scale.getPointPosition(i, outerDistance + extra + padding[i]);\n const angle = toDegrees(scale.getIndexAngle(i));\n const size = labelSizes[i];\n const y = yForAngle(pointLabelPosition.y, size.h, angle);\n const textAlign = getTextAlignForAngle(angle);\n const left = leftForTextAlign(pointLabelPosition.x, size.w, textAlign);\n items.push({\n x: pointLabelPosition.x,\n y,\n textAlign,\n left,\n top: y,\n right: left + size.w,\n bottom: y + size.h\n });\n }\n return items;\n}\nfunction getTextAlignForAngle(angle) {\n if (angle === 0 || angle === 180) {\n return 'center';\n } else if (angle < 180) {\n return 'left';\n }\n return 'right';\n}\nfunction leftForTextAlign(x, w, align) {\n if (align === 'right') {\n x -= w;\n } else if (align === 'center') {\n x -= (w / 2);\n }\n return x;\n}\nfunction yForAngle(y, h, angle) {\n if (angle === 90 || angle === 270) {\n y -= (h / 2);\n } else if (angle > 270 || angle < 90) {\n y -= h;\n }\n return y;\n}\nfunction drawPointLabels(scale, labelCount) {\n const {ctx, options: {pointLabels}} = scale;\n for (let i = labelCount - 1; i >= 0; i--) {\n const optsAtIndex = pointLabels.setContext(scale.getPointLabelContext(i));\n const plFont = toFont(optsAtIndex.font);\n const {x, y, textAlign, left, top, right, bottom} = scale._pointLabelItems[i];\n const {backdropColor} = optsAtIndex;\n if (!isNullOrUndef(backdropColor)) {\n const padding = toPadding(optsAtIndex.backdropPadding);\n ctx.fillStyle = backdropColor;\n ctx.fillRect(left - padding.left, top - padding.top, right - left + padding.width, bottom - top + padding.height);\n }\n renderText(\n ctx,\n scale._pointLabels[i],\n x,\n y + (plFont.lineHeight / 2),\n plFont,\n {\n color: optsAtIndex.color,\n textAlign: textAlign,\n textBaseline: 'middle'\n }\n );\n }\n}\nfunction pathRadiusLine(scale, radius, circular, labelCount) {\n const {ctx} = scale;\n if (circular) {\n ctx.arc(scale.xCenter, scale.yCenter, radius, 0, TAU);\n } else {\n let pointPosition = scale.getPointPosition(0, radius);\n ctx.moveTo(pointPosition.x, pointPosition.y);\n for (let i = 1; i < labelCount; i++) {\n pointPosition = scale.getPointPosition(i, radius);\n ctx.lineTo(pointPosition.x, pointPosition.y);\n }\n }\n}\nfunction drawRadiusLine(scale, gridLineOpts, radius, labelCount) {\n const ctx = scale.ctx;\n const circular = gridLineOpts.circular;\n const {color, lineWidth} = gridLineOpts;\n if ((!circular && !labelCount) || !color || !lineWidth || radius < 0) {\n return;\n }\n ctx.save();\n ctx.strokeStyle = color;\n ctx.lineWidth = lineWidth;\n ctx.setLineDash(gridLineOpts.borderDash);\n ctx.lineDashOffset = gridLineOpts.borderDashOffset;\n ctx.beginPath();\n pathRadiusLine(scale, radius, circular, labelCount);\n ctx.closePath();\n ctx.stroke();\n ctx.restore();\n}\nfunction numberOrZero(param) {\n return isNumber(param) ? param : 0;\n}\nfunction createPointLabelContext(parent, index, label) {\n return createContext(parent, {\n label,\n index,\n type: 'pointLabel'\n });\n}\nclass RadialLinearScale extends LinearScaleBase {\n constructor(cfg) {\n super(cfg);\n this.xCenter = undefined;\n this.yCenter = undefined;\n this.drawingArea = undefined;\n this._pointLabels = [];\n this._pointLabelItems = [];\n }\n setDimensions() {\n this.width = this.maxWidth;\n this.height = this.maxHeight;\n this.paddingTop = getTickBackdropHeight(this.options) / 2;\n this.xCenter = Math.floor(this.width / 2);\n this.yCenter = Math.floor((this.height - this.paddingTop) / 2);\n this.drawingArea = Math.min(this.height - this.paddingTop, this.width) / 2;\n }\n determineDataLimits() {\n const {min, max} = this.getMinMax(false);\n this.min = isNumberFinite(min) && !isNaN(min) ? min : 0;\n this.max = isNumberFinite(max) && !isNaN(max) ? max : 0;\n this.handleTickRangeOptions();\n }\n computeTickLimit() {\n return Math.ceil(this.drawingArea / getTickBackdropHeight(this.options));\n }\n generateTickLabels(ticks) {\n LinearScaleBase.prototype.generateTickLabels.call(this, ticks);\n this._pointLabels = this.getLabels().map((value, index) => {\n const label = callback(this.options.pointLabels.callback, [value, index], this);\n return label || label === 0 ? label : '';\n });\n }\n fit() {\n const opts = this.options;\n if (opts.display && opts.pointLabels.display) {\n fitWithPointLabels(this);\n } else {\n this.setCenterPoint(0, 0, 0, 0);\n }\n }\n _setReductions(largestPossibleRadius, furthestLimits, furthestAngles) {\n let radiusReductionLeft = furthestLimits.l / Math.sin(furthestAngles.l);\n let radiusReductionRight = Math.max(furthestLimits.r - this.width, 0) / Math.sin(furthestAngles.r);\n let radiusReductionTop = -furthestLimits.t / Math.cos(furthestAngles.t);\n let radiusReductionBottom = -Math.max(furthestLimits.b - (this.height - this.paddingTop), 0) / Math.cos(furthestAngles.b);\n radiusReductionLeft = numberOrZero(radiusReductionLeft);\n radiusReductionRight = numberOrZero(radiusReductionRight);\n radiusReductionTop = numberOrZero(radiusReductionTop);\n radiusReductionBottom = numberOrZero(radiusReductionBottom);\n this.drawingArea = Math.max(largestPossibleRadius / 2, Math.min(\n Math.floor(largestPossibleRadius - (radiusReductionLeft + radiusReductionRight) / 2),\n Math.floor(largestPossibleRadius - (radiusReductionTop + radiusReductionBottom) / 2)));\n this.setCenterPoint(radiusReductionLeft, radiusReductionRight, radiusReductionTop, radiusReductionBottom);\n }\n setCenterPoint(leftMovement, rightMovement, topMovement, bottomMovement) {\n const maxRight = this.width - rightMovement - this.drawingArea;\n const maxLeft = leftMovement + this.drawingArea;\n const maxTop = topMovement + this.drawingArea;\n const maxBottom = (this.height - this.paddingTop) - bottomMovement - this.drawingArea;\n this.xCenter = Math.floor(((maxLeft + maxRight) / 2) + this.left);\n this.yCenter = Math.floor(((maxTop + maxBottom) / 2) + this.top + this.paddingTop);\n }\n getIndexAngle(index) {\n const angleMultiplier = TAU / this.getLabels().length;\n const startAngle = this.options.startAngle || 0;\n return _normalizeAngle(index * angleMultiplier + toRadians(startAngle));\n }\n getDistanceFromCenterForValue(value) {\n if (isNullOrUndef(value)) {\n return NaN;\n }\n const scalingFactor = this.drawingArea / (this.max - this.min);\n if (this.options.reverse) {\n return (this.max - value) * scalingFactor;\n }\n return (value - this.min) * scalingFactor;\n }\n getValueForDistanceFromCenter(distance) {\n if (isNullOrUndef(distance)) {\n return NaN;\n }\n const scaledDistance = distance / (this.drawingArea / (this.max - this.min));\n return this.options.reverse ? this.max - scaledDistance : this.min + scaledDistance;\n }\n getPointLabelContext(index) {\n const pointLabels = this._pointLabels || [];\n if (index >= 0 && index < pointLabels.length) {\n const pointLabel = pointLabels[index];\n return createPointLabelContext(this.getContext(), index, pointLabel);\n }\n }\n getPointPosition(index, distanceFromCenter) {\n const angle = this.getIndexAngle(index) - HALF_PI;\n return {\n x: Math.cos(angle) * distanceFromCenter + this.xCenter,\n y: Math.sin(angle) * distanceFromCenter + this.yCenter,\n angle\n };\n }\n getPointPositionForValue(index, value) {\n return this.getPointPosition(index, this.getDistanceFromCenterForValue(value));\n }\n getBasePosition(index) {\n return this.getPointPositionForValue(index || 0, this.getBaseValue());\n }\n getPointLabelPosition(index) {\n const {left, top, right, bottom} = this._pointLabelItems[index];\n return {\n left,\n top,\n right,\n bottom,\n };\n }\n drawBackground() {\n const {backgroundColor, grid: {circular}} = this.options;\n if (backgroundColor) {\n const ctx = this.ctx;\n ctx.save();\n ctx.beginPath();\n pathRadiusLine(this, this.getDistanceFromCenterForValue(this._endValue), circular, this.getLabels().length);\n ctx.closePath();\n ctx.fillStyle = backgroundColor;\n ctx.fill();\n ctx.restore();\n }\n }\n drawGrid() {\n const ctx = this.ctx;\n const opts = this.options;\n const {angleLines, grid} = opts;\n const labelCount = this.getLabels().length;\n let i, offset, position;\n if (opts.pointLabels.display) {\n drawPointLabels(this, labelCount);\n }\n if (grid.display) {\n this.ticks.forEach((tick, index) => {\n if (index !== 0) {\n offset = this.getDistanceFromCenterForValue(tick.value);\n const optsAtIndex = grid.setContext(this.getContext(index - 1));\n drawRadiusLine(this, optsAtIndex, offset, labelCount);\n }\n });\n }\n if (angleLines.display) {\n ctx.save();\n for (i = this.getLabels().length - 1; i >= 0; i--) {\n const optsAtIndex = angleLines.setContext(this.getPointLabelContext(i));\n const {color, lineWidth} = optsAtIndex;\n if (!lineWidth || !color) {\n continue;\n }\n ctx.lineWidth = lineWidth;\n ctx.strokeStyle = color;\n ctx.setLineDash(optsAtIndex.borderDash);\n ctx.lineDashOffset = optsAtIndex.borderDashOffset;\n offset = this.getDistanceFromCenterForValue(opts.ticks.reverse ? this.min : this.max);\n position = this.getPointPosition(i, offset);\n ctx.beginPath();\n ctx.moveTo(this.xCenter, this.yCenter);\n ctx.lineTo(position.x, position.y);\n ctx.stroke();\n }\n ctx.restore();\n }\n }\n drawBorder() {}\n drawLabels() {\n const ctx = this.ctx;\n const opts = this.options;\n const tickOpts = opts.ticks;\n if (!tickOpts.display) {\n return;\n }\n const startAngle = this.getIndexAngle(0);\n let offset, width;\n ctx.save();\n ctx.translate(this.xCenter, this.yCenter);\n ctx.rotate(startAngle);\n ctx.textAlign = 'center';\n ctx.textBaseline = 'middle';\n this.ticks.forEach((tick, index) => {\n if (index === 0 && !opts.reverse) {\n return;\n }\n const optsAtIndex = tickOpts.setContext(this.getContext(index));\n const tickFont = toFont(optsAtIndex.font);\n offset = this.getDistanceFromCenterForValue(this.ticks[index].value);\n if (optsAtIndex.showLabelBackdrop) {\n ctx.font = tickFont.string;\n width = ctx.measureText(tick.label).width;\n ctx.fillStyle = optsAtIndex.backdropColor;\n const padding = toPadding(optsAtIndex.backdropPadding);\n ctx.fillRect(\n -width / 2 - padding.left,\n -offset - tickFont.size / 2 - padding.top,\n width + padding.width,\n tickFont.size + padding.height\n );\n }\n renderText(ctx, tick.label, 0, -offset, tickFont, {\n color: optsAtIndex.color,\n });\n });\n ctx.restore();\n }\n drawTitle() {}\n}\nRadialLinearScale.id = 'radialLinear';\nRadialLinearScale.defaults = {\n display: true,\n animate: true,\n position: 'chartArea',\n angleLines: {\n display: true,\n lineWidth: 1,\n borderDash: [],\n borderDashOffset: 0.0\n },\n grid: {\n circular: false\n },\n startAngle: 0,\n ticks: {\n showLabelBackdrop: true,\n callback: Ticks.formatters.numeric\n },\n pointLabels: {\n backdropColor: undefined,\n backdropPadding: 2,\n display: true,\n font: {\n size: 10\n },\n callback(label) {\n return label;\n },\n padding: 5\n }\n};\nRadialLinearScale.defaultRoutes = {\n 'angleLines.color': 'borderColor',\n 'pointLabels.color': 'color',\n 'ticks.color': 'color'\n};\nRadialLinearScale.descriptors = {\n angleLines: {\n _fallback: 'grid'\n }\n};\n\nconst INTERVALS = {\n millisecond: {common: true, size: 1, steps: 1000},\n second: {common: true, size: 1000, steps: 60},\n minute: {common: true, size: 60000, steps: 60},\n hour: {common: true, size: 3600000, steps: 24},\n day: {common: true, size: 86400000, steps: 30},\n week: {common: false, size: 604800000, steps: 4},\n month: {common: true, size: 2.628e9, steps: 12},\n quarter: {common: false, size: 7.884e9, steps: 4},\n year: {common: true, size: 3.154e10}\n};\nconst UNITS = (Object.keys(INTERVALS));\nfunction sorter(a, b) {\n return a - b;\n}\nfunction parse(scale, input) {\n if (isNullOrUndef(input)) {\n return null;\n }\n const adapter = scale._adapter;\n const {parser, round, isoWeekday} = scale._parseOpts;\n let value = input;\n if (typeof parser === 'function') {\n value = parser(value);\n }\n if (!isNumberFinite(value)) {\n value = typeof parser === 'string'\n ? adapter.parse(value, parser)\n : adapter.parse(value);\n }\n if (value === null) {\n return null;\n }\n if (round) {\n value = round === 'week' && (isNumber(isoWeekday) || isoWeekday === true)\n ? adapter.startOf(value, 'isoWeek', isoWeekday)\n : adapter.startOf(value, round);\n }\n return +value;\n}\nfunction determineUnitForAutoTicks(minUnit, min, max, capacity) {\n const ilen = UNITS.length;\n for (let i = UNITS.indexOf(minUnit); i < ilen - 1; ++i) {\n const interval = INTERVALS[UNITS[i]];\n const factor = interval.steps ? interval.steps : Number.MAX_SAFE_INTEGER;\n if (interval.common && Math.ceil((max - min) / (factor * interval.size)) <= capacity) {\n return UNITS[i];\n }\n }\n return UNITS[ilen - 1];\n}\nfunction determineUnitForFormatting(scale, numTicks, minUnit, min, max) {\n for (let i = UNITS.length - 1; i >= UNITS.indexOf(minUnit); i--) {\n const unit = UNITS[i];\n if (INTERVALS[unit].common && scale._adapter.diff(max, min, unit) >= numTicks - 1) {\n return unit;\n }\n }\n return UNITS[minUnit ? UNITS.indexOf(minUnit) : 0];\n}\nfunction determineMajorUnit(unit) {\n for (let i = UNITS.indexOf(unit) + 1, ilen = UNITS.length; i < ilen; ++i) {\n if (INTERVALS[UNITS[i]].common) {\n return UNITS[i];\n }\n }\n}\nfunction addTick(ticks, time, timestamps) {\n if (!timestamps) {\n ticks[time] = true;\n } else if (timestamps.length) {\n const {lo, hi} = _lookup(timestamps, time);\n const timestamp = timestamps[lo] >= time ? timestamps[lo] : timestamps[hi];\n ticks[timestamp] = true;\n }\n}\nfunction setMajorTicks(scale, ticks, map, majorUnit) {\n const adapter = scale._adapter;\n const first = +adapter.startOf(ticks[0].value, majorUnit);\n const last = ticks[ticks.length - 1].value;\n let major, index;\n for (major = first; major <= last; major = +adapter.add(major, 1, majorUnit)) {\n index = map[major];\n if (index >= 0) {\n ticks[index].major = true;\n }\n }\n return ticks;\n}\nfunction ticksFromTimestamps(scale, values, majorUnit) {\n const ticks = [];\n const map = {};\n const ilen = values.length;\n let i, value;\n for (i = 0; i < ilen; ++i) {\n value = values[i];\n map[value] = i;\n ticks.push({\n value,\n major: false\n });\n }\n return (ilen === 0 || !majorUnit) ? ticks : setMajorTicks(scale, ticks, map, majorUnit);\n}\nclass TimeScale extends Scale {\n constructor(props) {\n super(props);\n this._cache = {\n data: [],\n labels: [],\n all: []\n };\n this._unit = 'day';\n this._majorUnit = undefined;\n this._offsets = {};\n this._normalized = false;\n this._parseOpts = undefined;\n }\n init(scaleOpts, opts) {\n const time = scaleOpts.time || (scaleOpts.time = {});\n const adapter = this._adapter = new adapters._date(scaleOpts.adapters.date);\n mergeIf(time.displayFormats, adapter.formats());\n this._parseOpts = {\n parser: time.parser,\n round: time.round,\n isoWeekday: time.isoWeekday\n };\n super.init(scaleOpts);\n this._normalized = opts.normalized;\n }\n parse(raw, index) {\n if (raw === undefined) {\n return null;\n }\n return parse(this, raw);\n }\n beforeLayout() {\n super.beforeLayout();\n this._cache = {\n data: [],\n labels: [],\n all: []\n };\n }\n determineDataLimits() {\n const options = this.options;\n const adapter = this._adapter;\n const unit = options.time.unit || 'day';\n let {min, max, minDefined, maxDefined} = this.getUserBounds();\n function _applyBounds(bounds) {\n if (!minDefined && !isNaN(bounds.min)) {\n min = Math.min(min, bounds.min);\n }\n if (!maxDefined && !isNaN(bounds.max)) {\n max = Math.max(max, bounds.max);\n }\n }\n if (!minDefined || !maxDefined) {\n _applyBounds(this._getLabelBounds());\n if (options.bounds !== 'ticks' || options.ticks.source !== 'labels') {\n _applyBounds(this.getMinMax(false));\n }\n }\n min = isNumberFinite(min) && !isNaN(min) ? min : +adapter.startOf(Date.now(), unit);\n max = isNumberFinite(max) && !isNaN(max) ? max : +adapter.endOf(Date.now(), unit) + 1;\n this.min = Math.min(min, max - 1);\n this.max = Math.max(min + 1, max);\n }\n _getLabelBounds() {\n const arr = this.getLabelTimestamps();\n let min = Number.POSITIVE_INFINITY;\n let max = Number.NEGATIVE_INFINITY;\n if (arr.length) {\n min = arr[0];\n max = arr[arr.length - 1];\n }\n return {min, max};\n }\n buildTicks() {\n const options = this.options;\n const timeOpts = options.time;\n const tickOpts = options.ticks;\n const timestamps = tickOpts.source === 'labels' ? this.getLabelTimestamps() : this._generate();\n if (options.bounds === 'ticks' && timestamps.length) {\n this.min = this._userMin || timestamps[0];\n this.max = this._userMax || timestamps[timestamps.length - 1];\n }\n const min = this.min;\n const max = this.max;\n const ticks = _filterBetween(timestamps, min, max);\n this._unit = timeOpts.unit || (tickOpts.autoSkip\n ? determineUnitForAutoTicks(timeOpts.minUnit, this.min, this.max, this._getLabelCapacity(min))\n : determineUnitForFormatting(this, ticks.length, timeOpts.minUnit, this.min, this.max));\n this._majorUnit = !tickOpts.major.enabled || this._unit === 'year' ? undefined\n : determineMajorUnit(this._unit);\n this.initOffsets(timestamps);\n if (options.reverse) {\n ticks.reverse();\n }\n return ticksFromTimestamps(this, ticks, this._majorUnit);\n }\n initOffsets(timestamps) {\n let start = 0;\n let end = 0;\n let first, last;\n if (this.options.offset && timestamps.length) {\n first = this.getDecimalForValue(timestamps[0]);\n if (timestamps.length === 1) {\n start = 1 - first;\n } else {\n start = (this.getDecimalForValue(timestamps[1]) - first) / 2;\n }\n last = this.getDecimalForValue(timestamps[timestamps.length - 1]);\n if (timestamps.length === 1) {\n end = last;\n } else {\n end = (last - this.getDecimalForValue(timestamps[timestamps.length - 2])) / 2;\n }\n }\n const limit = timestamps.length < 3 ? 0.5 : 0.25;\n start = _limitValue(start, 0, limit);\n end = _limitValue(end, 0, limit);\n this._offsets = {start, end, factor: 1 / (start + 1 + end)};\n }\n _generate() {\n const adapter = this._adapter;\n const min = this.min;\n const max = this.max;\n const options = this.options;\n const timeOpts = options.time;\n const minor = timeOpts.unit || determineUnitForAutoTicks(timeOpts.minUnit, min, max, this._getLabelCapacity(min));\n const stepSize = valueOrDefault(timeOpts.stepSize, 1);\n const weekday = minor === 'week' ? timeOpts.isoWeekday : false;\n const hasWeekday = isNumber(weekday) || weekday === true;\n const ticks = {};\n let first = min;\n let time, count;\n if (hasWeekday) {\n first = +adapter.startOf(first, 'isoWeek', weekday);\n }\n first = +adapter.startOf(first, hasWeekday ? 'day' : minor);\n if (adapter.diff(max, min, minor) > 100000 * stepSize) {\n throw new Error(min + ' and ' + max + ' are too far apart with stepSize of ' + stepSize + ' ' + minor);\n }\n const timestamps = options.ticks.source === 'data' && this.getDataTimestamps();\n for (time = first, count = 0; time < max; time = +adapter.add(time, stepSize, minor), count++) {\n addTick(ticks, time, timestamps);\n }\n if (time === max || options.bounds === 'ticks' || count === 1) {\n addTick(ticks, time, timestamps);\n }\n return Object.keys(ticks).sort((a, b) => a - b).map(x => +x);\n }\n getLabelForValue(value) {\n const adapter = this._adapter;\n const timeOpts = this.options.time;\n if (timeOpts.tooltipFormat) {\n return adapter.format(value, timeOpts.tooltipFormat);\n }\n return adapter.format(value, timeOpts.displayFormats.datetime);\n }\n _tickFormatFunction(time, index, ticks, format) {\n const options = this.options;\n const formats = options.time.displayFormats;\n const unit = this._unit;\n const majorUnit = this._majorUnit;\n const minorFormat = unit && formats[unit];\n const majorFormat = majorUnit && formats[majorUnit];\n const tick = ticks[index];\n const major = majorUnit && majorFormat && tick && tick.major;\n const label = this._adapter.format(time, format || (major ? majorFormat : minorFormat));\n const formatter = options.ticks.callback;\n return formatter ? callback(formatter, [label, index, ticks], this) : label;\n }\n generateTickLabels(ticks) {\n let i, ilen, tick;\n for (i = 0, ilen = ticks.length; i < ilen; ++i) {\n tick = ticks[i];\n tick.label = this._tickFormatFunction(tick.value, i, ticks);\n }\n }\n getDecimalForValue(value) {\n return value === null ? NaN : (value - this.min) / (this.max - this.min);\n }\n getPixelForValue(value) {\n const offsets = this._offsets;\n const pos = this.getDecimalForValue(value);\n return this.getPixelForDecimal((offsets.start + pos) * offsets.factor);\n }\n getValueForPixel(pixel) {\n const offsets = this._offsets;\n const pos = this.getDecimalForPixel(pixel) / offsets.factor - offsets.end;\n return this.min + pos * (this.max - this.min);\n }\n _getLabelSize(label) {\n const ticksOpts = this.options.ticks;\n const tickLabelWidth = this.ctx.measureText(label).width;\n const angle = toRadians(this.isHorizontal() ? ticksOpts.maxRotation : ticksOpts.minRotation);\n const cosRotation = Math.cos(angle);\n const sinRotation = Math.sin(angle);\n const tickFontSize = this._resolveTickFontOptions(0).size;\n return {\n w: (tickLabelWidth * cosRotation) + (tickFontSize * sinRotation),\n h: (tickLabelWidth * sinRotation) + (tickFontSize * cosRotation)\n };\n }\n _getLabelCapacity(exampleTime) {\n const timeOpts = this.options.time;\n const displayFormats = timeOpts.displayFormats;\n const format = displayFormats[timeOpts.unit] || displayFormats.millisecond;\n const exampleLabel = this._tickFormatFunction(exampleTime, 0, ticksFromTimestamps(this, [exampleTime], this._majorUnit), format);\n const size = this._getLabelSize(exampleLabel);\n const capacity = Math.floor(this.isHorizontal() ? this.width / size.w : this.height / size.h) - 1;\n return capacity > 0 ? capacity : 1;\n }\n getDataTimestamps() {\n let timestamps = this._cache.data || [];\n let i, ilen;\n if (timestamps.length) {\n return timestamps;\n }\n const metas = this.getMatchingVisibleMetas();\n if (this._normalized && metas.length) {\n return (this._cache.data = metas[0].controller.getAllParsedValues(this));\n }\n for (i = 0, ilen = metas.length; i < ilen; ++i) {\n timestamps = timestamps.concat(metas[i].controller.getAllParsedValues(this));\n }\n return (this._cache.data = this.normalize(timestamps));\n }\n getLabelTimestamps() {\n const timestamps = this._cache.labels || [];\n let i, ilen;\n if (timestamps.length) {\n return timestamps;\n }\n const labels = this.getLabels();\n for (i = 0, ilen = labels.length; i < ilen; ++i) {\n timestamps.push(parse(this, labels[i]));\n }\n return (this._cache.labels = this._normalized ? timestamps : this.normalize(timestamps));\n }\n normalize(values) {\n return _arrayUnique(values.sort(sorter));\n }\n}\nTimeScale.id = 'time';\nTimeScale.defaults = {\n bounds: 'data',\n adapters: {},\n time: {\n parser: false,\n unit: false,\n round: false,\n isoWeekday: false,\n minUnit: 'millisecond',\n displayFormats: {}\n },\n ticks: {\n source: 'auto',\n major: {\n enabled: false\n }\n }\n};\n\nfunction interpolate(table, val, reverse) {\n let lo = 0;\n let hi = table.length - 1;\n let prevSource, nextSource, prevTarget, nextTarget;\n if (reverse) {\n if (val >= table[lo].pos && val <= table[hi].pos) {\n ({lo, hi} = _lookupByKey(table, 'pos', val));\n }\n ({pos: prevSource, time: prevTarget} = table[lo]);\n ({pos: nextSource, time: nextTarget} = table[hi]);\n } else {\n if (val >= table[lo].time && val <= table[hi].time) {\n ({lo, hi} = _lookupByKey(table, 'time', val));\n }\n ({time: prevSource, pos: prevTarget} = table[lo]);\n ({time: nextSource, pos: nextTarget} = table[hi]);\n }\n const span = nextSource - prevSource;\n return span ? prevTarget + (nextTarget - prevTarget) * (val - prevSource) / span : prevTarget;\n}\nclass TimeSeriesScale extends TimeScale {\n constructor(props) {\n super(props);\n this._table = [];\n this._minPos = undefined;\n this._tableRange = undefined;\n }\n initOffsets() {\n const timestamps = this._getTimestampsForTable();\n const table = this._table = this.buildLookupTable(timestamps);\n this._minPos = interpolate(table, this.min);\n this._tableRange = interpolate(table, this.max) - this._minPos;\n super.initOffsets(timestamps);\n }\n buildLookupTable(timestamps) {\n const {min, max} = this;\n const items = [];\n const table = [];\n let i, ilen, prev, curr, next;\n for (i = 0, ilen = timestamps.length; i < ilen; ++i) {\n curr = timestamps[i];\n if (curr >= min && curr <= max) {\n items.push(curr);\n }\n }\n if (items.length < 2) {\n return [\n {time: min, pos: 0},\n {time: max, pos: 1}\n ];\n }\n for (i = 0, ilen = items.length; i < ilen; ++i) {\n next = items[i + 1];\n prev = items[i - 1];\n curr = items[i];\n if (Math.round((next + prev) / 2) !== curr) {\n table.push({time: curr, pos: i / (ilen - 1)});\n }\n }\n return table;\n }\n _getTimestampsForTable() {\n let timestamps = this._cache.all || [];\n if (timestamps.length) {\n return timestamps;\n }\n const data = this.getDataTimestamps();\n const label = this.getLabelTimestamps();\n if (data.length && label.length) {\n timestamps = this.normalize(data.concat(label));\n } else {\n timestamps = data.length ? data : label;\n }\n timestamps = this._cache.all = timestamps;\n return timestamps;\n }\n getDecimalForValue(value) {\n return (interpolate(this._table, value) - this._minPos) / this._tableRange;\n }\n getValueForPixel(pixel) {\n const offsets = this._offsets;\n const decimal = this.getDecimalForPixel(pixel) / offsets.factor - offsets.end;\n return interpolate(this._table, decimal * this._tableRange + this._minPos, true);\n }\n}\nTimeSeriesScale.id = 'timeseries';\nTimeSeriesScale.defaults = TimeScale.defaults;\n\nvar scales = /*#__PURE__*/Object.freeze({\n__proto__: null,\nCategoryScale: CategoryScale,\nLinearScale: LinearScale,\nLogarithmicScale: LogarithmicScale,\nRadialLinearScale: RadialLinearScale,\nTimeScale: TimeScale,\nTimeSeriesScale: TimeSeriesScale\n});\n\nconst registerables = [\n controllers,\n elements,\n plugins,\n scales,\n];\n\nexport { Animation, Animations, ArcElement, BarController, BarElement, BasePlatform, BasicPlatform, BubbleController, CategoryScale, Chart, DatasetController, plugin_decimation as Decimation, DomPlatform, DoughnutController, Element, plugin_filler as Filler, Interaction, plugin_legend as Legend, LineController, LineElement, LinearScale, LogarithmicScale, PieController, PointElement, PolarAreaController, RadarController, RadialLinearScale, Scale, ScatterController, plugin_subtitle as SubTitle, Ticks, TimeScale, TimeSeriesScale, plugin_title as Title, plugin_tooltip as Tooltip, adapters as _adapters, _detectPlatform, animator, controllers, elements, layouts, plugins, registerables, registry, scales };\n","\n\n\n","\n\n","\n\n
\n
Statistiken
\n {#await calcStats()}\n \n {:then stats}\n \n {:catch error}\n

Statistiken konnten nicht geladen werden :(

\n {/await}\n
\n\n\n","\n\n
\n
\n \n
\n
\n \n
\n
\n\n\n","\n\n\n\n
\n ({\n title: tableEditorConfig.title,\n route: tableEditorConfig.route,\n }))}\n />\n \n
\n\n\n","import App from \"./components/App.svelte\";\n\n// https://github.com/cypress-io/cypress/issues/702\nif (\"serviceWorker\" in navigator && !window.Cypress) {\n window.addEventListener(\"load\", function () {\n if (ENV_SERVICE_WORKER_DISABLED) {\n navigator.serviceWorker.getRegistrations().then(function (registrations) {\n for (let registration of registrations) {\n registration.unregister();\n }\n });\n console.log(\"ServiceWorker is disabled\");\n } else {\n navigator.serviceWorker.register(\"service-worker.js\").then(\n function (registration) {\n // Registration was successful\n console.debug(\n \"ServiceWorker registration successful with scope: \",\n registration.scope\n );\n },\n function (err) {\n // registration failed :(\n console.error(\"ServiceWorker registration failed: \", err);\n }\n );\n }\n });\n}\n\nvar app = new App({\n target: document.body,\n});\n\nexport default app;\n"],"names":["noop","assign","active","bind","init","parse","location","testdataLarge","global","queue","draining","currentQueue","queueIndex","cleanUpNextTick","nextTick","Item","version","config","addListener","once","removeListener","performance","require$$1","require$$2","require$$3","require$$4","require$$5","i","rngBrowser","rng","getRandomValues","rnds8","bytesToUuid_1","byteToHex","bytesToUuid","_default","v1_1","_rng","_interopRequireDefault","require$$0","_bytesToUuid","_nodeId","_clockseq","_lastMSecs","_lastNSecs","v1","v35","uuidToBytes","stringToBytes","DNS","URL","md5Browser","md5","md5ToHexEncodedArray","wordsToMd5","bytesToWords","getOutputLength","md5ff","md5gg","md5hh","md5ii","safeAdd","bitRotateLeft","md5cmn","v3_1","_v","_md","v3","v4_1","v4","sha1Browser","f","ROTL","sha1","v5_1","_sha","v5","uuid","undefined","pop","inherits_browserModule","listenerCount","mangle","unmangle","Map$1","Set$1","supportsMapAndSet","ExportedSet","ExportedMap","isBinaryObject","cloneArrayBuffer","cloneBinaryObject","funcToString","objectCtorString","isPlainObject","clone","getArguments","toPromise","pick","hasLocal","hasLocalStorage","Changes","EE","attachBrowserEvents","immediate","guardedConsole","PouchError","UNKNOWN_ERROR","generateErrorFromResponse","flatten","isRemote","upsert","tryAndPut","thisAtob","createBlob","binaryStringToArrayBuffer","binStringToBluffer","b64ToBluffer","stringMd5","binarySearch","merge","isDeleted","Changes$1","compare","TaskQueue","h","getFieldFromDoc","compare$1","parseField","combinationFields","isCombinationalField","getKey","getValue","mergeAndedSelectors","mergeGtGte","mergeLtLte","mergeNe","mergeEq","mergeAndedSelectorsNested","isAndInSelector","massageSelector","pad","padLeft","MIN_MAGNITUDE","MAGNITUDE_DIGITS","SEP","collate","normalizeKey","collationIndex","stringCollate","arrayCollate","objectCollate","indexify","numToIndexableString","toIndexableString","parseNumber","parseIndexableString","createFieldSorter","filterInMemoryFields","rowFilter","matchCominationalSelector","matchSelector","match","matchers","fieldExists","fieldIsNotUndefined","modField","arrayContainsValue","arrayContainsAllValues","arraySize","regexMatch","typeMatch","validate","CHANGES_BATCH_SIZE","QueryParseError","NotFoundError","BuiltInError","promisedCallback","callbackify","fin","sequentialize","uniq","mapToKeysArray","isArray","TaskQueue$1","stringify","createViewSignature","createView","persistentQueues","tempViewQueue","CHANGES_BATCH_SIZE$1","parseViewName","isGenOne","emitError","createAbstractMapReduce","mapper","reducer","ddocValidator","abstract","isGenOne$1","Set","base64StringToBlobOrBuffer","Headers","Map","createIndex","abstractMapReduce","createIndex$1","createStore","this","PouchDBFind","Cache","get","backgroundColor","countRentals","Database","COLORS","ItemComponent","debounce","ClearIcon","_ClearIcon","_Item","List","_List","Selection","_Selection","MultiSelection","_MultiSelection","VirtualList","_VirtualList","faSort","faSortUp","faSortDown","linear","svelte.setContext","setContext","svelte.onDestroy","svelte.onMount","notifier.success","notifier.danger","initialValues","onDelete","onSave","Checkbox","columns","notifier.warning","notifier.info","exec","saveRange","restoreRange","_exec","_saveRange","_restoreRange","uuidv4","map","map$1","numberOrZero","getComputedStyle","getRelativePosition","Settings"],"mappings":"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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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AC1B,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAC1B,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAC1B,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAC1B,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAC1B,GAAG;AACH;IACA,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,I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AAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,SAAS,EAAE,CAAC,C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"} \ No newline at end of file diff --git a/demo/build/icons/search.svg b/demo/build/icons/search.svg new file mode 100644 index 00000000..fc34a67e --- /dev/null +++ b/demo/build/icons/search.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/demo/favicon.png b/demo/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..7e6f5eb5a2f1f1c882d265cf479de25caa925645 GIT binary patch literal 3127 zcmV-749N3|P)i z7)}s4L53SJCkR}iVi00SFk;`MXX*#X*kkwKs@nFGS}c;=?XFjU|G$3t^5sjIVS2G+ zw)WGF83CpoGXhLGW(1gW%uV|X7>1P6VhCX=Ux)Lb!*DZ%@I3!{Gsf7d?gtIQ%nQiK z3%(LUSkBji;C5Rfgd6$VsF@H`Pk@xtY6t<>FNR-pD}=C~$?)9pdm3XZ36N5PNWYjb z$xd$yNQR9N!dfj-Vd@BwQo^FIIWPPmT&sZyQ$v81(sCBV=PGy{0wltEjB%~h157*t zvbe_!{=I_783x!0t1-r#-d{Y?ae$Q4N_Nd^Ui^@y(%)Gjou6y<3^XJdu{rmUf-Me?)zZ>9OR&6U5H*cK; z$gUlB{g0O4gN0sLSO|Of?hU(l?;h(jA3uH!Z{EBKuV23ouU@^Y6#%v+QG;>e*E}%?wlu-NT4DG zs)z)7WbLr)vGAu(ohrKc^em@OpO&f~6_>E61n_e0_V3@{U3^O;j{`^mNCJUj_>;7v zsMs6Hu3g7+@v+lSo;=yTYFqq}jZmQ-BK8K{C4kqi_i*jBaQE(Au0607V-zKeT;EPg zX(`vrn=L+e74+-Tqeok@_`tDa$G9I|$nTU5H*2V8@y()n*zqM?J1G!-1aX;CfDC9B zTnJ#j_%*n8Qb1)re*Bno7g0RG{Eb;IK14irJYJp$5Z6ac9~b_P?+5t~95~SRG$g?1 znFJ7p$xV&GZ18m~79TGRdfsc-BcX$9yXTR*n)mPD@1~O(_?cT$ZvFPucRmGlq&se0 zKrcUf^k}4hM*biEJOWKzz!qQe;CB_ZtSOO9Owg#lZAc=s65^rb{fZe(TYu_rk!wKkEf}RIt=#Om( zR8mN`DM<^xj~59euMMspBolVN zAPTr8sSDI104orIAdmL$uOXn*6hga1G+0WD0E?UtabxC#VC~vf3|10|phW;yQ3CY8 z2CM=)ErF;xq-YJ5G|um}>*1#E+O_Mu|Nr#qQ&G1P-NMq@f?@*XUcSbV?tX=)ilM-Q zBZP|!Bpv0V;#ojKcpc7$=eqO;#Uy~#?^kNI{vSZfLx&DEt~LTmaKWXcx=joubklI<*Aw z>LtMaQ7DR<1I2LkWvwyu#Rwn~;ezT}_g(@5l3h?W%-a86Y-t#O1PubP+z<%?V5D(U zy57A6{h+{?kOZp7&WKZR+=sznMJ}+Dnpo=C_0%R_x_t~J5T?E_{+))l5v1%52>)d-`iiZyx|5!%M2Fb2dU zW3~MwwpEH9Rhue+k$UIOoo($Ds!NbOyMR36fRHu;*15(YcA7siIZk#%JWz>P!qX1?IUojG&nKR>^gArBt2 zit(ETyZ=@V&7mv_Fi4bABcnwP+jzQuHcfU&BrAV91u-rFvEi7y-KnWsvHH=d2 zgAk(GKm_S8RcTJ>2N3~&Hbwp{Z3NF_Xeh}g4Eke)V&dY{W(3&b1j9t4yK_aYJisZZ{1rcU5- z;eD>K;ndPq&B-8yA_S0F!4ThA&{1{x)H<#?k9a#6Pc6L?V^s0``ynL&D;p(!Nmx`Y zFkHex{4p!Ggm^@DlehW}iHHVi}~u=$&N? z(NEBLQ#UxxAkdW>X9LnqUr#t4Lu0=9L8&o>JsqTtT5|%gb3QA~hr0pED71+iFFr)dZ=Q=E6ng{NE{Z~0)C?deO#?Aj zSDQ$z#TeC2T^|=}6GBo-&$;E{HL3!q3Z-szuf)O=G#zDjin4SSP%o%6+2IT#sLjQa ziyxFFz~LMjWY+_a5H!U6%a<=b7QVP^ z*90a62;bVq{?@)P6^DWd^Yilq4|YTV2Nw!Yu;a1lPI-sxR)rf@Fe5DhDP7FH zZZ%4S*1C30P;|O+jB!1;m|rXT90Sm5*RBbQN`PKu+hDD*S^yE(CdtSfg=z>u$cIj> z + + + + + + LeihLokal Verwaltung + + + + + + + + + + + diff --git a/demo/leihlokal.png b/demo/leihlokal.png new file mode 100644 index 0000000000000000000000000000000000000000..479806ad0c58f15808d8046e75dbd1929aac10fb GIT binary patch literal 4150 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 AKL7v# literal 0 HcmV?d00001 diff --git a/demo/manifest.json b/demo/manifest.json new file mode 100644 index 00000000..47e3f458 --- /dev/null +++ b/demo/manifest.json @@ -0,0 +1,17 @@ +{ + "name": "LeihLokal Verwaltung", + "short_name": "LeihLokal", + "theme_color": "#008cba", + "background_color": "#008cba", + "display": "standalone", + "start_url": "index.html", + "icons": [ + { + "src": "leihlokal.png", + "type": "image/png", + "sizes": "192x192", + "purpose": "any" + } + ], + "splash_pages": null +} diff --git a/demo/service-worker.js b/demo/service-worker.js new file mode 100644 index 00000000..ce9a6de3 --- /dev/null +++ b/demo/service-worker.js @@ -0,0 +1,62 @@ +var CACHE_NAME = "leihlokal-cache-v1"; +var urlsToCache = [ + "index.html", + "global.css", + "build/bundle.css", + "build/bundle.js", + "favicon.png", + "#/rentals", + "#/items", + "#/customers", + "#/settings", +]; + +function shouldCache(request) { + return ( + request.method === "GET" && + !request.url.includes(":6984") && + !request.url.includes(":5984") && + request.url.indexOf("chrome-extension") !== 0 + ); +} + +self.addEventListener("install", function (event) { + event.waitUntil(async () => { + const cache = await caches.open(CACHE_NAME); + await cache.addAll(urlsToCache); + }); +}); + +// delete old caches +self.addEventListener("activate", (event) => { + event.waitUntil(async () => { + const cacheNames = await caches.keys(); + await Promise.all( + cacheNames + .filter((cacheName) => cacheName !== CACHE_NAME) + .forEach((cacheName) => caches.delete(cacheName)) + ); + }); +}); + +self.addEventListener("fetch", (event) => { + if (shouldCache(event.request)) { + event.respondWith( + (async function () { + const cache = await caches.open(CACHE_NAME); + const cachedResponse = await cache.match(event.request); + const networkResponsePromise = fetch(event.request); + + event.waitUntil( + (async function () { + const networkResponse = await networkResponsePromise; + await cache.put(event.request, networkResponse.clone()); + })() + ); + + // Returned the cached response if we have one, otherwise return the network response. + return cachedResponse || networkResponsePromise; + })() + ); + } +}); diff --git a/favicon.png b/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..7e6f5eb5a2f1f1c882d265cf479de25caa925645 GIT binary patch literal 3127 zcmV-749N3|P)i z7)}s4L53SJCkR}iVi00SFk;`MXX*#X*kkwKs@nFGS}c;=?XFjU|G$3t^5sjIVS2G+ zw)WGF83CpoGXhLGW(1gW%uV|X7>1P6VhCX=Ux)Lb!*DZ%@I3!{Gsf7d?gtIQ%nQiK z3%(LUSkBji;C5Rfgd6$VsF@H`Pk@xtY6t<>FNR-pD}=C~$?)9pdm3XZ36N5PNWYjb z$xd$yNQR9N!dfj-Vd@BwQo^FIIWPPmT&sZyQ$v81(sCBV=PGy{0wltEjB%~h157*t zvbe_!{=I_783x!0t1-r#-d{Y?ae$Q4N_Nd^Ui^@y(%)Gjou6y<3^XJdu{rmUf-Me?)zZ>9OR&6U5H*cK; z$gUlB{g0O4gN0sLSO|Of?hU(l?;h(jA3uH!Z{EBKuV23ouU@^Y6#%v+QG;>e*E}%?wlu-NT4DG zs)z)7WbLr)vGAu(ohrKc^em@OpO&f~6_>E61n_e0_V3@{U3^O;j{`^mNCJUj_>;7v zsMs6Hu3g7+@v+lSo;=yTYFqq}jZmQ-BK8K{C4kqi_i*jBaQE(Au0607V-zKeT;EPg zX(`vrn=L+e74+-Tqeok@_`tDa$G9I|$nTU5H*2V8@y()n*zqM?J1G!-1aX;CfDC9B zTnJ#j_%*n8Qb1)re*Bno7g0RG{Eb;IK14irJYJp$5Z6ac9~b_P?+5t~95~SRG$g?1 znFJ7p$xV&GZ18m~79TGRdfsc-BcX$9yXTR*n)mPD@1~O(_?cT$ZvFPucRmGlq&se0 zKrcUf^k}4hM*biEJOWKzz!qQe;CB_ZtSOO9Owg#lZAc=s65^rb{fZe(TYu_rk!wKkEf}RIt=#Om( zR8mN`DM<^xj~59euMMspBolVN zAPTr8sSDI104orIAdmL$uOXn*6hga1G+0WD0E?UtabxC#VC~vf3|10|phW;yQ3CY8 z2CM=)ErF;xq-YJ5G|um}>*1#E+O_Mu|Nr#qQ&G1P-NMq@f?@*XUcSbV?tX=)ilM-Q zBZP|!Bpv0V;#ojKcpc7$=eqO;#Uy~#?^kNI{vSZfLx&DEt~LTmaKWXcx=joubklI<*Aw z>LtMaQ7DR<1I2LkWvwyu#Rwn~;ezT}_g(@5l3h?W%-a86Y-t#O1PubP+z<%?V5D(U zy57A6{h+{?kOZp7&WKZR+=sznMJ}+Dnpo=C_0%R_x_t~J5T?E_{+))l5v1%52>)d-`iiZyx|5!%M2Fb2dU zW3~MwwpEH9Rhue+k$UIOoo($Ds!NbOyMR36fRHu;*15(YcA7siIZk#%JWz>P!qX1?IUojG&nKR>^gArBt2 zit(ETyZ=@V&7mv_Fi4bABcnwP+jzQuHcfU&BrAV91u-rFvEi7y-KnWsvHH=d2 zgAk(GKm_S8RcTJ>2N3~&Hbwp{Z3NF_Xeh}g4Eke)V&dY{W(3&b1j9t4yK_aYJisZZ{1rcU5- z;eD>K;ndPq&B-8yA_S0F!4ThA&{1{x)H<#?k9a#6Pc6L?V^s0``ynL&D;p(!Nmx`Y zFkHex{4p!Ggm^@DlehW}iHHVi}~u=$&N? z(NEBLQ#UxxAkdW>X9LnqUr#t4Lu0=9L8&o>JsqTtT5|%gb3QA~hr0pED71+iFFr)dZ=Q=E6ng{NE{Z~0)C?deO#?Aj zSDQ$z#TeC2T^|=}6GBo-&$;E{HL3!q3Z-szuf)O=G#zDjin4SSP%o%6+2IT#sLjQa ziyxFFz~LMjWY+_a5H!U6%a<=b7QVP^ z*90a62;bVq{?@)P6^DWd^Yilq4|YTV2Nw!Yu;a1lPI-sxR)rf@Fe5DhDP7FH zZZ%4S*1C30P;|O+jB!1;m|rXT90Sm5*RBbQN`PKu+hDD*S^yE(CdtSfg=z>u$cIj> z + + + + + + LeihLokal Verwaltung + + + + + + + + + + + diff --git a/leihlokal.png b/leihlokal.png new file mode 100644 index 0000000000000000000000000000000000000000..479806ad0c58f15808d8046e75dbd1929aac10fb GIT binary patch literal 4150 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 AKL7v# literal 0 HcmV?d00001 diff --git a/manifest.json b/manifest.json new file mode 100644 index 00000000..47e3f458 --- /dev/null +++ b/manifest.json @@ -0,0 +1,17 @@ +{ + "name": "LeihLokal Verwaltung", + "short_name": "LeihLokal", + "theme_color": "#008cba", + "background_color": "#008cba", + "display": "standalone", + "start_url": "index.html", + "icons": [ + { + "src": "leihlokal.png", + "type": "image/png", + "sizes": "192x192", + "purpose": "any" + } + ], + "splash_pages": null +} diff --git a/service-worker.js b/service-worker.js new file mode 100644 index 00000000..ce9a6de3 --- /dev/null +++ b/service-worker.js @@ -0,0 +1,62 @@ +var CACHE_NAME = "leihlokal-cache-v1"; +var urlsToCache = [ + "index.html", + "global.css", + "build/bundle.css", + "build/bundle.js", + "favicon.png", + "#/rentals", + "#/items", + "#/customers", + "#/settings", +]; + +function shouldCache(request) { + return ( + request.method === "GET" && + !request.url.includes(":6984") && + !request.url.includes(":5984") && + request.url.indexOf("chrome-extension") !== 0 + ); +} + +self.addEventListener("install", function (event) { + event.waitUntil(async () => { + const cache = await caches.open(CACHE_NAME); + await cache.addAll(urlsToCache); + }); +}); + +// delete old caches +self.addEventListener("activate", (event) => { + event.waitUntil(async () => { + const cacheNames = await caches.keys(); + await Promise.all( + cacheNames + .filter((cacheName) => cacheName !== CACHE_NAME) + .forEach((cacheName) => caches.delete(cacheName)) + ); + }); +}); + +self.addEventListener("fetch", (event) => { + if (shouldCache(event.request)) { + event.respondWith( + (async function () { + const cache = await caches.open(CACHE_NAME); + const cachedResponse = await cache.match(event.request); + const networkResponsePromise = fetch(event.request); + + event.waitUntil( + (async function () { + const networkResponse = await networkResponsePromise; + await cache.put(event.request, networkResponse.clone()); + })() + ); + + // Returned the cached response if we have one, otherwise return the network response. + return cachedResponse || networkResponsePromise; + })() + ); + } +});